解法
无损压缩受限于方法能看到的冗余程度。LZ 系列和 Huffman 编码在普通文本上分别达到瓶颈。
Burrows 和 Wheeler 在 1994 年的 DEC 报告中描述了一种块排序变换:列出块的每个旋转,排序,并输出最后一列。由于旋转共享后缀,相同字符聚集,短游程和move-to-front 编码将其转化为很少的符号。
该变换是可逆的,因此是重排而非损失。结果用于 bzip2,其压缩文本效果优于当时工具,使该技术成为慢但紧凑压缩的标准。
取得了什么结果
对块的旋转进行排序,使相似邻居聚集
为什么有效
对旋转排序使上下文相同的相同符号聚集。
游程和 move-to-front 编码随后找到长且便宜的游程。
变换是一种排列,因此解压是精确的。
它适用于任何重复结构,因此不针对特定文件类型。
可以借鉴什么
在压缩之前,重新排列数据,使相同符号相邻。聚集可预测部分的变换能让普通压缩器显著增强。
后续
Burrows-Wheeler 变换成为 bzip2 的核心,后来成为 FM-index 的基础,用于查找子串和基因组图谱。同一思想如今驱动着高通量生物信息学比对工具。
从这里,追溯依据
参考来源
- A block-sorting lossless data compression algorithm DEC Systems Research Center Research Report 124 · web.stanford.edu
- Burrows-Wheeler transform Wikipedia · en.wikipedia.org