ZIP和GZip格式的DEFLATE压缩算法是基于LZ77还是LZSS?

问题描述 投票:0回答:1

维基百科指出,

DEFLATE
算法(由ZIPGZip压缩格式以及PNG图像格式使用)基于LZ77算法

Deflate 是一种无损数据压缩文件格式,采用 LZ77 和 Huffman 编码的组合。

LZSS'(LZ77 的衍生版本)维基百科页面另一方面指出,它是各种工具的主要算法,包括 PKZip(使用 ZIP 格式,使用

DEFLATE
算法):

许多流行的存档器,如 PKZip、ARJ、RAR、ZOO、LHarc 使用 LZSS 而不是 LZ77 作为主要压缩算法。

同样,此 GitHub 页面指出:

LZSS算法可以用于很多应用,例如gzip、PKZIP等

与 ZIP 一样,GZip 文件格式也使用

DEFLATE
算法。

并且这里他们指出:

DEFLATE (...) 将 LZ77 或 LZSS 预处理器与后端的 Huffman 编码相结合,可在短时间内实现适度压缩的结果。

所以,如果我理解正确的话,

DEFLATE
可以基于
LZ77
LZSS
。如今
DEFLATE
是如何在 ZIP 文件格式(PKZip 使用)和 GZip 文件格式中实现的?是基于LZ77还是基于LZSS?

zip gzip deflate lz77 pkzip
1个回答
0
投票

LZ77 + 霍夫曼。一直是LZ77。维基百科是错误的。

Deflate 并不像原始论文中所介绍的那样使用 LZ77,因为 LZ77 总是在一个匹配后面跟一个文字,而 Deflate 可以在一个匹配后面跟另一个匹配或文字。

© www.soinside.com 2019 - 2024. All rights reserved.