【发布时间】:2014-04-28 12:25:45
【问题描述】:
我已经制作了一个从输入文件生成霍夫曼代码的程序。现在我不知道如何结束输出文件(应该根据输入文件和生成的代码进行压缩)。假设我们有 43 位要保存,那么如何结束文件呢?我可以简单地在最后添加 5 个零,但是代码可能是错误的。有任何想法吗? PS对不起我的英语不好。
【问题讨论】:
标签: c file compression huffman-code
我已经制作了一个从输入文件生成霍夫曼代码的程序。现在我不知道如何结束输出文件(应该根据输入文件和生成的代码进行压缩)。假设我们有 43 位要保存,那么如何结束文件呢?我可以简单地在最后添加 5 个零,但是代码可能是错误的。有任何想法吗? PS对不起我的英语不好。
【问题讨论】:
标签: c file compression huffman-code
我能想到的解决方法有两种:
【讨论】:
来自维基百科:
在任何情况下,由于压缩数据可能包含未使用的“尾随位”,因此解压缩器必须能够确定何时停止生成输出。这可以通过将解压缩数据的长度与压缩模型一起传输或通过定义一个特殊的代码符号来表示输入的结束来实现(但是后一种方法会对代码长度的优化产生不利影响)。
【讨论】: