知识卡片
同步点:压缩格式与随机访问之间的接口
内容
高性能压缩方法默认从头解码到尾——变长编码没有固定码字边界,自适应模型状态依赖此前全部历史,两者都排斥随机访问。全文检索要求任意跳转到某文档直接解码,因此必须在文档边界处人为创造”同步点”:记录该文档在压缩流中的精确起始位置(通常是位偏移),并标记文档结束,平均每篇文档只多花约1比特。算术编码创造同步点的额外开销比哈夫曼编码更大,这是全文检索场景哈夫曼编码更受青睐的又一原因。
参考来源
- 位置:第2章《文本压缩》「创造同步点」小节(源文件:_chapter-text/ch02.txt)
- 结论依据:原文明确说明变长编码和自适应模型天然排斥随机访问,需要用位偏移记录文档起始位置来创造同步点,平均每篇文档多花的比特数也有具体数据,直接支持卡片论点。
- 原始内容:"性能较好的压缩方法要求解码从文件起始处开始,原因是使用变长编码和模型是自适应的……本节描述了如何通过创造同步点(synchronization point)来克服这些缺点……给出这个文档从文件起头开始的位偏移(bit offset)……平均每个文档有3.5个废弃的数据位。"