原理记录

划重点: 压缩率取决于文件的信息熵,文件的信息熵越小,被压缩后的文件体积越小,因此文件压缩有一定的限度。

举个栗子(仅说明原理,不涉及实际算法):

一个文件内容为:abc123qqqq6562abc123abc123abc123

压缩时,令1=abc123,这个对应关系即所谓的字典,则压缩后文件变为1qqqq6562111,解压即还原过程。

一些文本文件之所以能被压缩的很小,是由于文件内容有很多内容是重复的,可以被替代掉,这也解释了为什么很多代码的压缩包只有几十兆,而解压后却能达到几个G的大小。

测试过程

测试文件信息:
             包含一个mp4视频的文件夹

  • zip
    使用360ZIP,参数设置如下:

在这里插入图片描述

  • rar
    rar格式已申请专利,所以相关产品属于付费产品,使用winrar,参数设置如下:

在这里插入图片描述
在这里插入图片描述

  • 7z
    使用7z-zip,参数设置如下:

在这里插入图片描述

结论

结果对比:

在这里插入图片描述
使用7z-zip,压缩算法为LAMA,得到如下结果:
在这里插入图片描述

由对比结果可见:压缩算法的选择,对压缩率影响很大,同样的zip,使用LAMA算法也可以达到7z相同的效果!


参考文献:
如何压缩文件到最小(压缩参数调整教程 for 7z)

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐