【问题标题】:Best huffman tree for optimal compression最佳压缩的最佳霍夫曼树
【发布时间】:2012-01-17 01:19:37
【问题描述】:

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

我正在使用这种树:

而不是这种树:

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

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

【问题讨论】:

    标签: compression huffman-code


    【解决方案1】:

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

    将此规则一直遵守到树的根部,保证生成的树将是最佳

    因此,您无法控制树的形状:这完全取决于字符的概率分布。如果概率分布看起来像斐波那契数列,那么它最终可能会变成一棵退化树(每层一个分支)。

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

    【讨论】:

      猜你喜欢
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多