100种算法【Python版】第54篇——无损压缩之DEFLATE算法
DEFLATE算法是一种无损数据压缩算法,结合了LZ77压缩和Huffman编码。它广泛用于文件格式(如ZIP和PNG)中。
1 DEFLATE算法的步骤
(1)数据块分割:
- 将输入数据分成多个数据块(通常为256字节或更小),每个数据块可以独立压缩。
(2)LZ77压缩:
- 使用LZ77算法对每个数据块进行压缩。LZ77通过查找重复的字节序列来压缩数据。
- 创建一个滑动窗口(通常为32KB)以查找当前字节的匹配。
- 对于每个字节,输出匹配的偏移量和长度,或者直接输出字面值(literal)。
(3)Huffman编码:
- 对于LZ77的输出,统计各个符号(字面值和匹配)的出现频率。
- 使用这些频率构建Huffman树,并生成Huffman编码。
- 将LZ77输出的每个符号替换为其对应的Huffman编码。
(4)输出压缩数据:
原文地址:https://blog.csdn.net/qq_32882309/article/details/143572075
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!