Deflate 压缩规范
Deflate Compression Specification
我目前正在查看 DEFLATE 压缩规范,对 this 部分感到困惑:
0 - 15: Represent code lengths of 0 - 15
16: Copy the previous code length 3 - 6 times.
The next 2 bits indicate repeat length
(0 = 3, ... , 3 = 6)
Example: Codes 8, 16 (+2 bits 11),
16 (+2 bits 10) will expand to
12 code lengths of 8 (1 + 6 + 5)
17: Repeat a code length of 0 for 3 - 10 times.
(3 bits of length)
18: Repeat a code length of 0 for 11 - 138 times
(7 bits of length)
如果我没理解错的话,0-15
是码长序列的霍夫曼码的长度。但是,我不明白 16-18
应该是什么。感谢您的帮助!
16-18 码是指示解码器生成多个长度,可以是零,也可以是最后一个长度的重复。
例如:
18(12) 14 4 3 3 3 4 4 5 17(3) 5 16(9) 7
变为:
0 0 0 0 0 0 0 0 0 0 0 0 14 4 3 3 3 4 4 5 0 0 0 5 5 5 5 5 5 5 5 5 5 7
括号中的数字分别编码为 7、3 和 2 位,紧跟在该符号的霍夫曼编码之后。
我目前正在查看 DEFLATE 压缩规范,对 this 部分感到困惑:
0 - 15: Represent code lengths of 0 - 15
16: Copy the previous code length 3 - 6 times.
The next 2 bits indicate repeat length
(0 = 3, ... , 3 = 6)
Example: Codes 8, 16 (+2 bits 11),
16 (+2 bits 10) will expand to
12 code lengths of 8 (1 + 6 + 5)
17: Repeat a code length of 0 for 3 - 10 times.
(3 bits of length)
18: Repeat a code length of 0 for 11 - 138 times
(7 bits of length)
如果我没理解错的话,0-15
是码长序列的霍夫曼码的长度。但是,我不明白 16-18
应该是什么。感谢您的帮助!
16-18 码是指示解码器生成多个长度,可以是零,也可以是最后一个长度的重复。
例如:
18(12) 14 4 3 3 3 4 4 5 17(3) 5 16(9) 7
变为:
0 0 0 0 0 0 0 0 0 0 0 0 14 4 3 3 3 4 4 5 0 0 0 5 5 5 5 5 5 5 5 5 5 7
括号中的数字分别编码为 7、3 和 2 位,紧跟在该符号的霍夫曼编码之后。