数据压缩技术全解析
1. 数据压缩基础
在日常处理数据时,我们往往更关注数据所承载的信息,如客户列表、音频 CD、信件等,而较少考虑数据的物理表示形式。实际上,数据的信息内容和物理表示是可以分开来看的。
早在 20 世纪 50 年代,Claude Shannon 奠定了信息论的基础,提出数据可以用最少的比特数来表示,这个最少的比特数被称为熵(entropy),该术语源自热力学。通常,数据的物理表示所使用的比特数会比其熵所暗示的要多。
以抛硬币实验为例,记录每次抛硬币结果有多种方式:可以写下“heads”或“tails”、字母 “H” 或 “T”,或者用单个比特(如 1 表示 tails)。从信息论的角度来看,每次抛硬币的结果用一个比特就可以编码,所以最后一种方式在编码结果所需的空间上是最有效的,而第一种方式则最浪费空间,因为记录一次抛硬币结果需要五个字符。从这个例子可以看出,从第一种记录数据的方式到最后一种,我们用越来越少的空间存储了相同的结果,也就是在进行数据压缩。
数据压缩是一种以不同方式编码信息的算法,目的是让数据占用比之前更少的空间。其核心是去除冗余,即去掉数据物理表示中并非真正需要的比特,以达到熵所预测的用于表示该信息所需的正确比特数。衡量数据压缩效果的指标是压缩比,计算公式为:压缩比 = 1 -(压缩后数据的大小 / 原始数据的大小),通常以百分比表示。例如,如果压缩后的数据为 1000 比特,未压缩的数据为 4000 比特,那么压缩比就是 75%。
不过,压缩后的数据形式可能我们人类难以直接读取和理解。因为人类在识别和理解数据时,需要数据表示有一定程度的冗余。在抛硬币实验中,我们会觉得一连串的 “H” 和 “T” 比每次 8
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



