2

我阅读了有关 gzip 压缩和 png 图像压缩的信息,它们都使用 DEFLATE 算法,但我不确定该算法的实现是否相同。此外,如果它是相同的算法,那么除了 png 压缩在 DEFLATE 之前使用 delta 过滤这一事实之外,这些压缩之间有什么区别?

4

2 回答 2

1

DEFLATE是一种压缩数据格式,而不是一种算法。gzipPNG都专门使用 deflate 压缩数据格式,并围绕该压缩数据使用不同的包装器。两者都可以有多个放气流。

gzip 是一个命令行实用程序,实现了符合 DEFLATE 的压缩器。在编写 gzip 之后的某个时间,编写该压缩器的同一个人 Jean-loup Gailly 将该代码改编为通用压缩库zlib 。zlib 是为了使图像能够采用 PNG 格式而专门编写的。大多数 PNG 压缩器使用 zlib。

由于 zlib 的压缩代码是从 gzip 改编而来的,因此实现非常相似,但并不完全相同。如果用 gzip 和 zlib 中的压缩代码压缩相同的数据,一般会得到不同的结果,除了短输入。压缩器决定发出 deflate 块的方式以及算法的调整参数发生了变化。

于 2018-01-24T22:05:19.140 回答
0

简短的回答是肯定的,他们使用相同的放气算法。有关血腥细节,请参阅此链接中的第一个答案。以下是摘录

zlib 库提供 Deflate 压缩和解压缩代码,供 zip、gzip、png(在 deflate 数据上使用 zlib 包装器)和许多其他应用程序使用。

于 2018-01-24T09:31:45.257 回答