【问题标题】:Compressing file after generate huffman tree生成霍夫曼树后压缩文件
【发布时间】:2014-04-28 12:25:45
【问题描述】:

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

【问题讨论】:

    标签: c file compression huffman-code


    【解决方案1】:

    我能想到的解决方法有两种:

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

    【讨论】:

      【解决方案2】:

      来自维基百科:

      在任何情况下,由于压缩数据可能包含未使用的“尾随位”,因此解压缩器必须能够确定何时停止生成输出。这可以通过将解压缩数据的长度与压缩模型一起传输或通过定义一个特殊的代码符号来表示输入的结束来实现(但是后一种方法会对代码长度的优化产生不利影响)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多