d33*_*tah 41 compression history bzip2
多年来,bzip2 一直是强大压缩的事实上的标准。bzip2
到目前为止,我自己已经输入了数千次命令,这让我想知道 - bzip 或 bzip1 发生了什么?谷歌似乎没有告诉我太多关于它的信息,听起来这可能是一堂有趣的历史课。
Gra*_*eme 33
bzip
由于所使用的算术压缩的专利问题,原始文件似乎在 1998 年左右被撤下。稍微挖掘一下(实际上只是阅读维基百科),就会发现bzip2
大约在这个时候指向该网站的存档链接。
这是相关部分详细说明了这一点和其他差异:
它与您之前的产品 (bzip-0.21) 有何关系?
bzip2 是 0.21 的重写和重新设计版本。它表面上看起来相当相似,但几乎完全被重写(多次:-)。重要的区别是:
无专利!(我希望;见上面的声明)。bzip-0.21 使用算术编码;bzip2 使用霍夫曼编码,从专利的角度来看,这通常被认为是没有问题的。这两个程序都基于 Burrows-Wheeler 变换,但据我所知,这也没有获得专利。
更快,尤其是在减压时。bzip2 的解压速度比 0.21 快 50% 以上,主要是因为使用了霍夫曼编码。我还提高了压缩速度,虽然没有那么多——也许它比 0.21 压缩速度快 30%。
从媒体错误中恢复。这两个程序都以块为单位压缩数据,默认情况下,长度为 900k。使用 bzip2,每个块都完全独立处理,带有自己的校验和,并由 48 位序列分隔。因此,如果您有损坏的压缩文件,bzip2 可以提取压缩块,检测哪些未损坏,然后解压缩它们。
测试模式。您可以测试压缩文件的完整性而无需解压缩它们。我应该把它放在 0.21 中,真的,但是太懒了(+ 在我发布它时被黑客烧坏了)。
处理非常重复的文件要好得多。对于任何块排序压缩器来说,此类文件都是最坏的情况。对于此类文件,bzip2 的运行速度大约比 0.21 快十倍。
支持小型机器。bzip2 可以解压缩它在 2300k 中创建的任何文件,这意味着您可以在 4-meg 机器上解压缩文件。与 0.21 相比,压缩期间的峰值内存使用量也减少了约 900k,降至 6400k 左右。
更好的标志处理。特别是,支持长标志(--like --this),这使得它更容易使用。
0.21 打印的一行启动消息消失了。这是 0.21 最受抱怨的功能。现在它甚至困扰着我。
我不再分发 0.21,因为这样做会使专利问题永久化,从而确保该程序永远不会被广泛使用。这是一种耻辱,因为它是一个有用的程序,而且很多人似乎都喜欢它。如果您已经使用 0.21,请升级到 bzip2。不幸的是,我不能让 bzip2 能够解压缩 0.21 的 .bz 文件,因为这会使专利规避工作变得毫无意义。我知道更改文件格式很痛苦;从现在开始,我将尝试以向后兼容的方式进行任何进一步的更改。
这也是一个指向bzip
源代码的仅解压版本的链接,供任何想要使用它的人使用。