LZW算法 - 二进制压缩

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LZW算法 - 二进制压缩相关的知识,希望对你有一定的参考价值。

我正在尝试构建一个文件压缩程序。到目前为止,我实现了霍夫曼编码算法,但我注意到它还不够 - 压缩是最小的,我只能压缩几百万位,通常它只占原始文件的1%。我搜索了有关它的信息,我发现大多数压缩文件程序如bzip2和gzip都在一起使用LZW和Huffman算法的组合。当我尝试使用LZW算法时,我遇到了关于如何在二进制位上执行此操作的问题。关于该算法的大多数示例和解释都是对字母字符串的检查以及关于二进制的一些有限的不充分信息。是否有关于如何在二进制上实现它或者简单地理解它的完整明确指南?

答案

都不使用LZW。 gzip使用LZ77,它在以前的数据中找到匹配的字符串。然后使用霍夫曼码发送文字和长度/距离对。 bzip2使用Burrows-Wheeler transform,然后是移动到前面的游程编码和霍夫曼编码。

以上是关于LZW算法 - 二进制压缩的主要内容,如果未能解决你的问题,请参考以下文章

LZW压缩算法

压缩算法实现,LZW和RLE用法测试

数据压缩LZW算法原理与源代码解析

为啥我不能在 Android 上用 Java 解压这个 LZW 文件?

数据处理方法LZW编码(C语言实现)

数据处理方法LZW编码(C语言实现)