文件压缩包应该是大家都用过的东西,通过打包压缩,可以减少文件体积,对文件加密,绕过一些网络传输规则。
虽然我们几乎每天都在使用压缩文件,但却很少有人真正了解,数据压缩的原理和压缩文件格式的区别,其实不同的压缩格式的效率有很大区别,你选对格式了吗?
01—压缩原理
压缩分为「有损压缩」和「无损压缩」。
有损压缩就是直接对文件进行压缩,删除不重要的数据,一般用于音乐、视频、图像等媒体文件。有损压缩后不能还原,比如在微信上传图片未勾选「原图」时,就会被有损压缩。
无损压缩,数据可以被完美还原。我们今天讨论的是无损压缩中的,压缩包形式。
简单来说所有文件都是由代码组成的,代码数量决定了文件体积,但是,文件体积与文件包含的有效信息量却并不对等。因为文件中的代码并不是最精简的状态,如果将这些代码精简,就能在文件内容不变的情况下缩小文件体积。
所有压缩软件的工作原理都是这样,只是不同格式的算法不同。
举个不太恰当的例子:
我家门前有两棵树,一棵是枣树,另一颗也是枣树。
我家门前两枣树。
这两句话传达的信息是一样的。
解压文件的过程也就是将精简的内容还原,比如 N*8 还原成 NNNNNNNN。
综上所述,如果压缩率高,自然要进行的运算量也就更大,压缩和解压也就更花时间。
02—.zip 格式
目前主流的压缩格式是 zip 和 rar,这两个都是历史悠久的压缩格式。
zip 格式诞生于 1986 年,它的压缩率在众多压缩格式中只能算平庸,但因为它是开放免费的格式,所以在那个没有太多压缩方式可选的年代很快流行起来,现在几乎所有的压缩软件都可以创建或打开 zip 格式的文件,不用担心格式不兼容的问题,毕竟 Windows 系统都自带 zip 支持。
另外 zip 格式相当简单,没有制定统一的标准,导致很多格式问题,比如不同语言的操作系统互传 zip 后打开显示为乱码;同一个文件压缩后 md5 值不一样;不同软件打开同一个压缩文件看到的时间信息不一样等等。
03—.rar 格式
如果你对比过的话会发现 rar 格式的压缩率通常高于 zip,但你大概不知道这是一个专利文件格式,只有收费软件「WinRAR」可以创建rar格式的压缩文件,但其他压缩软件可以解压 rar 文件。