知识卡片
基于指针复用的压缩原理
内容
文本压缩的一种基础思路是把重复片段替换成”指针”——指向该片段此前首次出现的位置加长度值,而非再存一遍原始字符。这能省空间的前提是指针占用的比特数要小于被替代文本,而这取决于引用距离:越近编码代价越低。这解释了为什么压缩算法偏爱局部重复而非任意距离重复,也是[[LZ77与LZ78的窗口取舍]]等字典模型压缩算法的雏形。
参考来源
- 位置:第1章《概览》1.2节《压缩》(源文件:_epub-src/OEBPS/text00007.html)
- 结论依据:原文用图1-5的例子说明压缩通过“箭头”(指针)复用前文文本重建原文,并明确指出指针占用空间小于被替换文本是压缩得以实现的前提,且引用距离影响编码代价,与卡片描述的指针复用原理及局部重复偏好完全对应。
- 原始内容:"隐去的文本通过一个箭头复用了前而出现过的文本……由于这些“指针”(pointers)一般都比它们替换的文本占用更少的空间,所以文本压缩才能得以实现。注意一个单个字符有时由指针表示,有时由其本身表示。这主要取决于引用与被引用的距离。"