【问题标题】:JPEG baseline standard VS progressive: compression costJPEG 基线标准 VS 渐进式:压缩成本
【发布时间】:2013-03-28 22:08:29
【问题描述】:

我们正在动态地对大量图像进行 JPEG 压缩。

这是一个服务器端进程,用于以交互方式准备要发送到客户端浏览器的图像。

使用渐进式压缩可以改善用户体验。

我知道这种压缩需要更多的解压计算,但这不是问题。

我想知道渐进式压缩是否也更昂贵以及多少(无需运行我自己的一系列测试和基准测试)。

【问题讨论】:

  • 什么成本(时间/大小)?渐进式 JPEG 肯定需要更多的 CPU 时间来实现;这是您要问的还是要问文件是否会更大?
  • 我说的是 CPU 时间。
  • 取决于你如何实现它,它不一定是一个巨大的差异,它取决于你为每个图像创建多少扫描。渐进式编码也需要更多的临时内存,因为 FDCT 转换的 MCU 必须保存在内存中。每次扫描都必须遍历每个 MCU 的每个系数并提取正确的位,然后对它们进行熵编码。渐进式编码所需的实际内存和 CPU 数量对于每个编解码器都是唯一的,因为有不止一种方法可以做到这一点。
  • 我正在使用 MAC OS X 的核心图形 API 来做这件事。而且我的压缩时间明显增加。我肯定会运行一些基准测试。然而,令我惊讶的是,我注意到一些浏览器不会逐个扫描呈现渐进式 jpeg,其中一个是 Safari(移动设备和桌面设备)。
  • 我对 Mac 不熟悉,所以无法发表评论。某些浏览器不会逐步显示图像是有道理的,因为它需要编解码器和浏览器渲染引擎之间的交互。如果使用的编解码器是外部库,则可能无法在解码时接收较低分辨率的图像。

标签: jpeg image-compression


【解决方案1】:

如果您正在动态压缩,则基线将允许您在完成下载和转换图像的其余部分之前将压缩数据到客户端。这将使您减少延迟。 OTOH 压缩渐进式 JPEG 您需要先下载整个源图像。

对于像缩略图或头像这样的小图像,这两种方式都无关紧要。

对于大图像……它取决于压缩器、逐行扫描的数量和图像大小。与优化的基线相比,成本可以忽略不计,或者与一次性流式编码器相比,成本可以翻倍。

【讨论】:

    【解决方案2】:

    运行基准测试后,我注意到生成 JPEG 所需的 CPU 时间量与逐行扫描的数量大致成正比

    我在问题中所说的......

    使用渐进式压缩可以改善用户体验

    实际上是错误的,因为大多数浏览器仅在客户端完全加载时才显示图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 2015-06-20
      相关资源
      最近更新 更多