bzip1 怎么了?

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源代码的仅解压版本的链接,供任何想要使用它的人使用。

  • 我可能在某处的某些备份档案中有原始 bzip。我曾经广泛使用它,发现切换到 bzip2 很烦人。在大多数文件上,bzip 获得了更好的压缩率。 (5认同)