数据压缩——有益无害(1)

爱玛很快活。如果不是从卧室里传来埃尔顿太太的声音,从而妨碍了她,使她急匆匆地真诚地紧紧握住她的手以表达最诚挚的祝愿和深厚的感情,她真想立刻就表示有话要讲。

——简·奥斯汀,《爱玛》 译文选自张宇译本。——译者注

我们对压缩实物的概念都很熟悉:当你试图将许多衣服放入一个小提箱中时,你可以压一压衣服,让它们小到能被小提箱容纳,即便衣服的正常体积会超出小提箱。你压缩了衣服。之后,再从小提箱中拿出衣服时,你就能解压它们,并以它们的原始大小和形状再度穿着(希望能如此)。

令人惊讶的是,我们也有可能对信息做同样的事:计算机文件和其他种类的数据,通常能被压缩成更小的体积,以方便存储或传输。然后,它们会被解压并以原始形式被使用。

绝大多数人的计算机上有足够的磁盘空间,无须为压缩自己的文件烦心。因此,人们倾向于认为,压缩对绝大多数人没有影响。但这种印象是错误的:事实上,计算机系统背后经常用到压缩。比如,许多通过互联网发送的消息都经过了压缩,用户甚至不知道这一点;几乎所有软件都是以压缩格式被下载——这意味着你下载和转移文件的速度,要比不压缩时快数倍。甚至当你对着电话讲话时,你的声音也经过了压缩:如果电话公司能在传输语音数据前进行压缩,它们就能对自己的资源实现超高利用率。

压缩也以更明显的方式得到了运用。流行的ZIP文件格式运用的精巧压缩算法,将在本章得到介绍。你很有可能也对涉及压缩数字视频的得失很熟悉:高质量视频的文件体积,要比相同视频的低质量版本大很多。

无损压缩:终极免费午餐

计算机使用两种截然不同的压缩:无损压缩和有损压缩,这点很重要。无损压缩是真正的免费午餐,对你有益无害。一种无损压缩算法能将一个数据文件压缩为其原始体积的一小部分,然后将其解压为和之前一样的东西。相反,有损压缩会导致解压后的原始文件发生一些小改变。我们稍后再讨论有损压缩,现在让我们专注于无损压缩吧。举个无损压缩的例子,假设原始文件包含本书文本。那么你在压缩前和压缩后得到的文件版本包含完全相同的文本——不会有一个字、空格或标点符号不同。在我们为免费午餐感到欣喜若狂之前,我要加一个重要警告:无损压缩算法并不能为所有文件都节省大量空间。但一个好的压缩算法能为特定大类的文件节省大量空间。

读书导航