概览
Deflate 分两个阶段压缩数据:重复消除和位减少
基于字典的无损压缩算法,它搜索重复的未压缩序列并用引用指针替换它们。
引用指针由 2 个元素定义:
当对序列进行压缩的时候,采用 “滑动窗口” 算法, 结构如下:
要使用 LZ77 压缩算法:
主要逻辑 : 通过先行缓冲区预读取数据,然后向字典中移入, 不断搜索字典中与先行缓冲区连续相匹配的最长序列,然后输出metadata标记。
以微软的例子来理解算法:微软介绍: