从右到左读取比特时如何正确解码?Deflate解码问题咨询
Deflate动态块手动解码逻辑修正问题
我对压缩技术有一定了解,后续会在GitHub发布相关研究成果,但目前还无法手动正确解码部分字节序列。以下是调试程序infgen的输出:
dynamic ! 10 0 count 259 27 14 ! 1010 11010 00010 code 16 2 ! 010 code 17 3 ! 011 code 18 5 ! 101 code 0 5 ! 101 code 8 6 ! 110 code 7 4 ! 100 code 9 4 ! 100 code 6 3 ! 011 code 10 5 ! 101 code 5 4 ! 100 code 11 3 ! 011 code 4 4 ! 100 code 3 6 ! 110 000
由于比特是从右到左读取的,我无法得到预期的字节序列:
14 5A B5 D6 E4 CA 11 CE F7
我解码第一个字节14(二进制00010100)的过程如下:
- 第一位比特为
0 - 接下来2位比特为
10 - 再接下来5位比特为
00010
我不清楚自己遗漏了什么,已知Deflate的前17位结构为: - block type:3 bits
- hdist:5 bits
- hlit:5 bits
- hclen:4 bits
请帮我修正解码逻辑,我的目标是实现双向解码,例如修改code 16的长度从2改为3后,观察字节序列的变化。
内容的提问来源于stack exchange,提问作者terry franklin
相关产品推荐
相关产品推荐

