【问题标题】:Compression ratios for different zlib compression levels不同 zlib 压缩级别的压缩比
【发布时间】:2016-11-14 18:24:29
【问题描述】:

我正在考虑使用什么级别的 zlib 压缩,我很好奇可以在 zlib 命令中指定的不同压缩级别的不同压缩率。 zlib manual 具有以下用于指定压缩级别的常量:

#define Z_NO_COMPRESSION         0
#define Z_BEST_SPEED             1
#define Z_BEST_COMPRESSION       9
#define Z_DEFAULT_COMPRESSION  (-1)

显然,数字越小意味着压缩和通缩的延迟越低,但会以压缩程度较低的文件为代价,而数字越大则意味着以更高的延迟为代价进行更好的压缩。

我的问题是,对于不同的压缩级别可以预期哪些压缩比?zlib web page 说,更典型的 zlib 压缩比约为 2:1 到 5 :1 在最大压缩的情况下,但是否还有其他压缩因子的压缩比/范围?

【问题讨论】:

  • 这在很大程度上取决于您压缩的数据。我的经验是,像 JSON 这样的数据使用压缩通常会缩小到 10% 左右,而像 H.264 视频这样的数据根本没有好处。
  • 我知道这取决于数据,但是对于给定的数据,我想您仍然可以说“7 级将数据压缩比 8 级少 x”,等等。换句话说,如果您可以给出最大压缩级别的一般范围,我很想知道是否也可以为其他压缩级别规定范围。

标签: zlib compression


【解决方案1】:

您的问题没有独立于数据的答案。您既不能预测压缩率,也不能仅从各自的压缩级别预测压缩率的比率。这些级别反映了压缩器在前 32K 数据中查找匹配字符串的难度。就是这样。

【讨论】:

  • 这是“pngcrush”存在的主要原因。我知道找到 PNG 数据流的“最佳”压缩的唯一方法是使用 zlib 压缩级别和策略、PNG 过滤等多种组合进行暴力试验。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
相关资源
最近更新 更多