[英]DEFLATE Decoding
我目前正在阅读有关用于编码/解码数据的DEFLATE方法。 我了解该过程由两部分组成:
一世。 将重复的信息(在指定窗口内)替换为对先前相同部分的引用。
II。 使用霍夫曼编码来减少最常见符号的大小。
我对(i)有疑问。 DEFLATE使用LZ77,它基于大小窗口搜索信息,如果发现重复信息,则将其替换为“指针”。 这是很合理的。
但是,使用LZ77解码时,DEFLATE如何识别指针? (指针是长度-距离对;如何辨别它是指针还是仅存在于初始数据中的数字?)
参考: http : //en.wikipedia.org/wiki/DEFLATE#Duplicate_string_elimination
建议阅读Deflate RFC 1951规范 ,该规范要精确得多,并回答此类问题。
您将在=> 3.2.5中看到。 压缩块(长度和距离代码)
“文字和长度字母合并为一个字母”
这意味着,只需检索下一个符号,您就可以立即知道它是文字(0..255)还是匹配长度(257..285),甚至是块结尾(256)。 在匹配长度的情况下,也必须对参考(偏移)进行解码。 偏移使用单独的树进行编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.