熵与无损压缩率的关系

时间:2009-02-26 19:38:02

标签: compression information-theory

Shannon's Source Coding Theorem我们知道压缩字符串的熵受原始字符串的熵限制,如下所示:

H(X) <= L < H(X) + 1/N 

其中H(X)是源字符串的熵,N是源字符串的长度,L是压缩字符串的预期长度。

这必然意味着无损压缩存在限制。

我想知道的是:

  • 我们可以直接将熵与某些预期的压缩比相关联吗?

  • 我们可以使用熵来找到压缩率的上限吗?

4 个答案:

答案 0 :(得分:6)

香农定理是根据随机数据和概率定义的。类似地,字符串的 entropy 仅为随机字符串定义 - 熵是分布的属性,而不是字符串本身。所以,我们可以非正式地重申香农的定理:

  

如果你从给定的概率分布中随机选择一个字符串,那么我们可以得到的最佳平均压缩比是由概率分布的熵率给出的。

给定任意随机字符串,我可以轻松编写压缩算法,将该字符串压缩为1位,但我的算法必然会增加其他字符串的长度。我的压缩算法的工作原理如下:

  1. 如果输入字符串等于某些预先选择的随机字符串,则输出为1位字符串“0”
  2. 否则,输出为N + 1位字符串“1”,后跟输入字符串
  3. 相应的解压缩算法是:

    1. 如果输入为“0”,则输出我们之前预先选择的随机字符串
    2. 否则,输出是除第一个输入位之外的所有内容
    3. 这里的关键是我们不能写下一个算法,对于来自给定发行版的所有字符串,它平均以高速率压缩它们 all 。有太多的字符串了。

      如果我们有一个给定的字符串概率分布,我们可以计算分布的熵率,然后根据分布随机选择字符串并尝试使用压缩它任何算法,压缩字符串的相对大小平均来说永远不会小于熵率。这就是香农定理所说的。

答案 1 :(得分:2)

在不知道源串的长度的情况下,不能直接将熵与压缩比相关联,但是通过求解L的最小可能值,可以看到最大压缩比的理论极限。您可以使用此限制作为压缩算法效率的度量标准,尽管糟糕的度量标准并不意味着已发现甚至存在更好的算法。

所以,是的。您可以使用熵来找到理论上的最大无损压缩比,但不能,您不能使用它来确定任何给定压缩算法的预期压缩比。

答案 2 :(得分:2)

是。英语的熵率通常被引用为每个字符1.5比特(给予或接受)。典型编码每个字符使用8位。因此,最大压缩文本应为原始大小的1.5 / 8(~19%)。简奥斯汀“傲慢与偏见”纯文本版本的实际结果:orig = 701K,bzip2 = 178K,约为25%。

答案 3 :(得分:0)

是的!我认为this paper会指出你正确的方向。

ETA 您似乎需要成为IEEE会员才能阅读实际论文。如果有人能够找到公开的资源(或者在这里解释数学),那当然会好得多!