我试图用十六进制字符压缩文件,但我不知道使用霍夫曼编纂是否有效,因为RLE取决于文件和字符,而且从不如果我将文件更改为压缩,则相同。
我应该使用霍夫曼吗?如果它效率低下,为什么呢?是否有任何已知的algorythm可以用来更好地压缩它,我可以用任何语言编写代码吗?
答案 0 :(得分:2)
首先,您应该将每两个十六进制字符转换为一个字节。这将让你立刻成为两个因素。
其次,您可以应用RLE(或更好的LZ77匹配字符串,这是RLE的推广)和Huffman,具体取决于结果字节中的冗余(如果有)。现有的压缩方法(如zlib)将为您执行此操作,同时应用这两种方法。
答案 1 :(得分:1)
如果RLE有效,霍夫曼会更好地工作。有证据表明,如果你的文件足够大,霍夫曼会收敛到最大可能的熵,从而最大化压缩。