最佳压缩的最佳霍夫曼树

时间:2012-01-17 01:19:37

标签: compression huffman-code

我正在编写一个Huffman字符串压缩器,我想确认我正在使用我的树进行最佳压缩。

我正在使用这种树:

enter image description here

而不是这种树:

enter image description here

我认为超过10个单个字符,不可能压缩8位..

第一张图片真的是最佳图片吗?

1 个答案:

答案 0 :(得分:3)

最基本的想法是添加两个最小的节点,创建一个新节点,其值是其两个子节点的总和。

将此规则尊重到树的根,可以保证所生成的树最佳

因此,您对树的形状有无控制:它完全取决于字符的概率分布。如果概率分布看起来像斐波纳契系列,它可能最终成为退化树(每个级别一个分支)。

创建具有预设最大深度的霍夫曼树因此更加复杂,并且需要打破通常添加2个最小节点的规则。结果树显然不是最佳的。