生成huffman树后压缩文件

时间:2014-04-28 12:25:46

标签: c file compression huffman-code

我制作了一个程序,可以从输入文件中生成霍夫曼代码。现在我不知道如何结束输出文件(应该根据输入文件和生成的代码压缩)。让我们说我们有43位保存所以如何结束文件?我最后可以简单地添加5个零,但是代码可能是错误的。有任何想法吗? PS抱歉我的英语不好。

2 个答案:

答案 0 :(得分:1)

有两种方法可以解决这个问题:

  • 将未压缩数据的长度放在压缩数据前面。然后,当您解压缩时,计算已解压缩的字符数,并在正确的数字后停止。
  • 将一个特殊的结束符号放入您只在文件末尾使用的霍夫曼树中。然后,当解压缩时,在看到该符号时停止。

答案 1 :(得分:1)

来自维基百科:

在任何情况下,由于压缩数据可以包括未使用的&#34;尾随位&#34;解压缩器必须能够确定何时停止产生输出。这可以通过传输解压缩数据的长度以及压缩模型或通过定义特殊代码符号来表示输入结束来实现(然而,后一种方法会对代码长度最优性产生负面影响)。 < / p>