不同zlib压缩级别的压缩率

DIM*_*Sum 2 compression zlib

我正在考虑使用哪种级别的zlib压缩,并且对可以在zlib命令中指定的不同压缩级别的不同压缩率感到好奇。该ZLIB手册具有用于指定的压缩级别以下常量:

#define Z_NO_COMPRESSION         0
#define Z_BEST_SPEED             1
#define Z_BEST_COMPRESSION       9
#define Z_DEFAULT_COMPRESSION  (-1)
Run Code Online (Sandbox Code Playgroud)

显然,数量越少意味着压缩和放缩的延迟时间越短,但代价是压缩文件较少,而数量越多,压缩效果越好,而代价则是等待时间更长。

我的问题是,对于不同的压缩级别,可以预期的压缩率是多少?这个zlib网页说,在最大压缩的情况下,更典型的zlib压缩率在2:1到5:1的数量级上,但是其他压缩因子的压缩率/范围也一样吗?

Mar*_*ler 7

您的问题没有与数据无关的答案。您不能仅根据各自的压缩级别来预测压缩率,也不能预测压缩率的比率。这些级别反映了压缩器在前32K数据中寻找匹配字符串的努力程度。就这样。

  • 这是“pngcrush”存在的主要原因。我所知道的找到 PNG 数据流的“最佳”压缩的唯一方法是使用 zlib 压缩级别和策略、PNG 过滤等的多种组合进行蛮力试验。 (2认同)