让我们先回到20世纪40年代,一位名叫克劳德•香农的统计学家发表了好几篇论文,详述了他在第二次世界大战期间在军队任职时以及之后在贝尔实验室工作时所做的研究工作。

香农非常聪明,数学学得特别好。在1936年离开密歇根大学之前,他已经取得了工程技术学士学位和数学学士学位。随后,他又去了麻省理工学院,并在那里做了很多研究工作。他的硕士论文题为《继电器与开关电路的符号分析》,该论文为基于开关的现代电路计算奠定了基础。

1948年,香农又发表了《通信的数学理论》,在这篇论文中他详细论述了发送者怎样对要发送的信息进行编码才能达到最佳效果,由此开创了信息论(information theory)这一全新的学术领域。对消息进行编码有多种方式,“字母表”与“摩尔斯码”只是其中常见的两种。但是对每一个特定的消息来说,都有一个最佳的编码方式,这里的“最佳”指的是传递消息时用到的字母或者符号(也可以说是二进制位,即信息的单位)最少。至于这里说的“最少”到底是多少,则取决于消息所包含的信息内容。香农发明了一种度量消息所携带信息内容的方法,并称之为信息熵(information entropy)。

数据压缩其实是香农的研究工作的一项实际应用,它所研究的问题是,“在保证信息能恢复的前提下,我们能将消息变得多么紧凑”。需要注意的是,根据现代信息论的观点,在压缩数据以减少总二进制位数的时候存在一个临界点,如果超过了这个值,我们就不能将压缩后的数据唯一正确地恢复为原来的数据流。因此,我们的压缩目标就是尽可能地减少总二进制位数以接近这个临界值,并且不超过这个值。

不过,等一等,为什么我们要在这一节的标题中说香农惹人“愤怒”呢?

答案是,虽然我们要感谢香农帮助创造了现代计算机——这本书就是在计算机上写作后出版的(你也很可能是在计算机上阅读这本书的),但他在信息论方面的工作一直以来都是我们想要突破和超越的。你可以把数据压缩看成对信息熵的挑战。计算机科学家所写的每一个数据压缩算法都是为了反驳香农的研究,使数据的压缩程度超过用香农发明的公式计算出来的信息熵。我们想方设法地去掉信息中每一个冗余的二进制位,想让它变得尽可能小,以突破香农所定义的熵的下限,从而达到对信息的全新层次的理解。在过去的60多年里,工程人员花了大量时间,想通过创造新的算法来超越或者巧妙地绕开这位伟人所创造的概念。