数据压缩:原理、方法与性能评估
1. 数据压缩的起源与概念
数据压缩的概念其实由来已久。早在 1558 年,文艺复兴科学家 Giambattista della Porta 在《Magia Naturalis》中提到了“感应电报”的设想。到了 1711 年,Joseph Addison 建议用它来让爱人交流,还提出用短码代表常用信息,这是文本压缩的早期例子,体现了人们对减少数据传输量的自然需求。
数据压缩是将输入数据流转换为更小的输出数据流的过程。它受欢迎主要有两个原因:一是人们喜欢积累数据,压缩能延缓存储设备溢出;二是人们讨厌长时间等待数据传输。
数据压缩领域常被称为源编码,输入符号由信息源发出并需编码后传输。信息源可分为无记忆和有记忆两种,无记忆源的每个比特相互独立,也称为独立同分布(IIID)。
2. 数据压缩的原理:去除冗余
数据压缩的核心原理是去除原始数据中的冗余。非随机数据都有一定结构,可利用这些结构实现更精简的表示。例如,在典型英语文本中,字母“E”出现频率高,“Z”出现频率低,这就是字母冗余,可给“E”分配短码,“Z”分配长码。
冗余的类型还包括上下文冗余,如字母“Q”后面几乎总是跟着“U”。图像中,相邻像素颜色相似也是一种冗余。
一般的数据压缩法则是“为常见事件(符号或短语)分配短码,为罕见事件分配长码”。大多数压缩方法都遵循这一法则。
数据通常以比必要长度更长的格式存储在计算机中,这是因为这种格式便于数据处理,而数据处理比数据压缩更常见和重要。例如,ASCII 码使用 7 位固定码,虽便于处理但存在冗余,可变长度码会更高效。
超级会员免费看
订阅专栏 解锁全文
8万+

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



