PNG:deflate和zlib

use*_*835 3 png zlib deflate huffman-code

我试图理解PNG中的压缩 - 但我似乎

在网上找到很多矛盾的信息...我想了解 - 在LZ77部分中如何进行搜索:带链表的哈希表?这是在deflate中定义的吗?或在zlib中实现?有搜索方法的选择吗? - PNG编码器/解码器可以为压缩设置一些参数(策略,过滤器等),还是PNG有默认值? - LZ77部分做贪婪或懒惰的评估吗?或者这也是一个选择? - 最后:2个霍夫曼树,它们是在第三棵树中压缩的,而且它们都被编码了?或者只用它们的代码长度编码的2棵树?

zlib实现是否与其他deflate实现不同?也许这就是我所有的困惑来自哪里?

感谢您的任何帮助!!我的新工作需要这个

LuCu

Mar*_*ler 5

PNG压缩采用 zlib格式.zlib格式使用deflate.使用的代码通常是zlib库.

用于压缩的算法未由格式指定.zlib库deflate算法使用哈希链在滑动窗口中搜索匹配的字符串.zlib的deflate需要几个参数进行压缩调整 - 请参阅deflateInit2().

deflate格式指定动态块前面的Huffman代码的压缩.文字/长度和距离代码长度是游程长度,霍夫曼自己编码.

LZMA SDKGoogle的zopfli中还有其他的deflate压缩器实现,其中两者都使用更密集的方法,这些方法需要更多的时间来获得小的压缩增益.