文本压缩与PPM方法详解
1. 文本压缩概述
文本压缩方法主要分为统计型和基于字典型两类。基于字典的方法将文本拆分为片段,存储在名为字典的数据结构中。当新文本片段与字典中的条目相同时,会在压缩流中写入指向该条目的指针,以此实现对新片段的压缩。
统计型方法则会构建文本的统计模型,常见的统计方法包含建模和编码两个阶段。在建模阶段,会为输入符号分配概率;编码阶段则依据这些概率对符号进行编码。模型可分为静态和动态(自适应)两种,大多数模型基于以下两种方法构建:
- 频率法 :根据文本符号的出现频率为其分配概率,出现频繁的符号会被赋予较短的编码。静态模型使用固定概率,而动态模型会在输入和压缩文本的过程中“即时”修改概率。
- 上下文法 :在为符号分配概率时考虑其上下文。由于解码器无法获取未来文本,编码器和解码器都只能将上下文限制在已输入和处理过的过去文本。实际上,一个符号的上下文是其前面的N个符号,这种基于上下文的文本压缩方法利用符号的上下文来预测(即分配概率),在技术上使用“N阶”马尔可夫模型。PPM方法就是基于上下文的压缩方法的典型示例,而且上下文的概念也可用于图像压缩。
部分现代基于上下文的文本压缩方法会先对输入数据进行转换,再应用统计模型为转换后的符号分配概率,如Burrows - Wheeler方法(也称为Burrows - Wheeler变换或块排序)、符号排序技术以及使用关联字典的ACB方法。
2. PPM方法基础
PPM方法是一种先进的压缩方法,最初由J. Cleary和I. Witten开发,后经A. Moffat扩展和实现。该方法基于