霍夫曼与十六进制中的RLE

时间:2015-01-14 18:11:02

标签: compression huffman-code run-length-encoding

我试图用十六进制字符压缩文件,但我不知道使用霍夫曼编纂是否有效,因为RLE取决于文件和字符,而且从不如果我将文件更改为压缩,则相同。

我应该使用霍夫曼吗?如果它效率低下,为什么呢?是否有任何已知的algorythm可以用来更好地压缩它,我可以用任何语言编写代码吗?

2 个答案:

答案 0 :(得分:2)

首先,您应该将每两个十六进制字符转换为一个字节。这将让你立刻成为两个因素。

其次,您可以应用RLE(或更好的LZ77匹配字符串,这是RLE的推广)和Huffman,具体取决于结果字节中的冗余(如果有)。现有的压缩方法(如zlib)将为您执行此操作,同时应用这两种方法。

答案 1 :(得分:1)

如果RLE有效,霍夫曼会更好地工作。有证据表明,如果你的文件足够大,霍夫曼会收敛到最大可能的熵,从而最大化压缩。