【发布时间】:2013-01-18 00:39:41
【问题描述】:
我想知道在 Huffman Copression 中处理最后一个字节的最佳方法是什么。我在 C++ 中有一些不错的代码,可以很好地压缩文本文件,但目前我必须向我的编码文件写入编码字符的数量(嗯,它等于输入文件的大小),因为不知道如何处理最后一个字节更好。
例如,最后一个要压缩的字符是'a',代码是011,我刚刚开始写新字节,所以最后一个字节看起来像: 011 + 一些 5 位垃圾,例如最后我将它们设为零。 当我对这个编码文件进行编码时,可能会发生代码 00000(或更少的零)是某些字符的代码,所以我的编码文件末尾会有一些垃圾字符。
正如我在第一段中所写,我通过在编码文件中保存输入文件的字符数来避免这种情况,并且在编码时,我正在读取编码文件以达到该数字(不是 EndOfFile,不要得到到那些示例 5 个零)。 这不是很有效,编码文件的大小会增加。
我怎样才能更好地处理这个问题?
【问题讨论】:
标签: algorithm compression ascii eof huffman-code