LZW算法 - 二进制压缩

时间:2017-12-17 14:34:16

标签: binary compression gzip bzip2 lzw

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

1 个答案:

答案 0 :(得分:1)

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