原理记录
划重点: 压缩率取决于文件的信息熵,文件的信息熵越小,被压缩后的文件体积越小,因此文件压缩有一定的限度。
举个栗子(仅说明原理,不涉及实际算法):
一个文件内容为:abc123qqqq6562abc123abc123abc123
压缩时,令1=abc123,这个对应关系即所谓的字典
,则压缩后文件变为1qqqq6562111,解压即还原过程。
一些文本文件之所以能被压缩的很小,是由于文件内容有很多内容是重复的,可以被替代掉,这也解释了为什么很多代码的压缩包只有几十兆,而解压后却能达到几个G的大小。
测试过程
测试文件信息:
包含一个mp4视频的文件夹
- zip
使用360ZIP,参数设置如下:
- rar
rar格式已申请专利,所以相关产品属于付费产品,使用winrar,参数设置如下:
- 7z
使用7z-zip,参数设置如下:
结论
结果对比:
使用7z-zip,压缩算法为LAMA,得到如下结果:
由对比结果可见:压缩算法的选择,对压缩率影响很大,同样的zip,使用LAMA算法也可以达到7z相同的效果!