压缩机制

时间:2018-06-27 01:10:05

标签: file compression huffman-code

我知道霍夫曼编码是一种用于文件压缩的​​流行技术,并且我知道它可以通过编码更短的更频繁的字符来工作。问题是您只有在拥有树的情况下才能对其进行解码。您实际上也必须发送树吗?如果可以,采用什么形式?请提供详细信息。

2 个答案:

答案 0 :(得分:0)

是的,您必须先发送代码的表示形式。霍夫曼代码为bidirectional @OneToMany which is more efficient,因此您只需发送代码中与每个符号相对应的位数即可。然后可以从另一端的长度重建规范代码。您无需发送树。

长度本身也可以压缩,以提高效率和复杂性。有关如何有效传输霍夫曼码的示例,请参见canonical

答案 1 :(得分:0)

霍夫曼树的传输方式完全取决于压缩格式。

  • 静态霍夫曼编码树。 Deflate算法仅编码the number of bits per symbol

  • 对于Adaptive Huffman,不需要对树进行显式编码,因为会不时地重建(或稍加修改)树。然后对初始树进行硬编码。