是否有数学证明霍夫曼编码是最有效的无损压缩算法?

时间:2015-11-03 23:34:29

标签: algorithm compression huffman-code lossless-compression lossless

我的朋友告诉我它存在,但我找不到它,不确定他是否在撒谎,但我对证明如何运作非常感兴趣。 (是的,我是那些从硅谷电视节目中发现霍夫曼编码的人之一,抱歉)

3 个答案:

答案 0 :(得分:5)

它不是最有效的无损压缩方法。算术编码胜过它的开始。由于它不是最有效的,因此没有证据证明它是最有效的。我相信当每个符号使用整数位时,它是optimal代码,但也许这是你朋友所说的证据。

答案 1 :(得分:3)

Proof of Optimality of Huffman Codes, CSC373 Spring 2009

它证明了中间定理并且到达:

  

定理3 算法HUF(A,f)计算频率f的最佳树   和字母A

答案 2 :(得分:3)

答案是,它不是,问题是不适当的。 : - )

这是一个高级视图。无损压缩算法提供可压缩文档到压缩文档的可逆映射。可以将文档视为位串。有n个可能的文件有n位。有n ^个可能的压缩文档有n位。因此,pidgin-hole原则表明,对于每个存储更有效的文档,其他一些可能的文档必须存储效率较低。

那么压缩怎么可能呢?这是可能的,因为虽然所有文件都是可能的,但它们不太可能。因此,良好的压缩算法将非常有效地存储可能的文档,而不太可能的文档效率低下。但问题是什么文件是有效的。答案就是“这取决于”。压缩算法有多好的答案也取决于。

假设您采用由一组符号组成的随机文档集,这些符号独立地以不同的概率出现。霍夫曼编码产生最有效的压缩算法。

现在假设您选择了一些可能用英语写的随机句子?霍夫曼编码仅限于查看原始字母频率。它没有使用某些字母组合经常出现的事实。其他可以使用的编码现在可以更好地工作。

现在假设您拍摄了相机可能生成的一组文档。这看起来与文本完全不同,不同的编码方法可以更好地工作。

因此,有些情况下霍夫曼是最好的。不是的情况。这个问题是不合理的,因为它依赖于“可能有哪些文件?”