11

我知道JPEG压缩是有损的。我有两个问题:

给定一个操作 T:
1. 获取 JPEG-80 图像
2. 将其解码为字节缓冲区
3. 将给定的字节缓冲区编码为 JPEG-80

就视觉质量而言,T 是幂等运算吗?或者当我重复 T 时,图像的质量会持续下降吗?JPEG-XR 编解码器也是如此吗?

谢谢!

编辑:由于存在相互矛盾的答案,如果您能提供参考,那就太好了!

4

2 回答 2

5

这不能保证,但它可能会发生。尤其是如果你重复编码 -> 解码 -> 编码 -> 解码过程足够多次,它最终会固定在一个固定点上并停止进一步失去质量(只要你坚持相同的质量和相同的编码器)。

JPEG 编码分几个步骤完成:

  1. RGB 到 YUV 的转换
  2. DCT(变为频域)
  3. 量化(丢弃 DCT 的位)
  4. 无损压缩

并且解码是向后的相同过程。

步骤 1 和 2 存在舍入误差(尤其是在使用整数数学的速度优化编码器中),因此对于幂等重新编码,您需要幸运地使编码和解码舍入误差很小或相互抵消。

步骤 3 是主要的有损步骤,实际上是幂等的。如果您的解码像素转换为足够相似的 DCT,它将再次量化为相同的数据!

JPEG XR 也使用 YUV,因此它可能会遇到一些舍入错误,但 OTOH 而不是 DCT,它使用不同的变换,可以在没有舍入错误的情况下计算,所以它应该比其他格式更容易往返 JPEG-XR。

于 2014-07-27T21:17:31.323 回答
-1

根据定义,有损操作通过以一种(理想情况下)最终用户不会注意到的方式简化表示来丢弃数据。但是,编码器没有确定哪些像素重要哪些不重要的神奇方法,因此它对所有像素进行平等编码,即使它们是伪像!

换句话说,编码器会将有损压缩的图像视为无损图像。有损图像将被进一步简化,丢弃过程中的额外数据,因为就编码器所知,用户打算表示伪影。

以下是 JPEG 生成损失的一些示例:

http://vimeo.com/3750507

http://en.wikipedia.org/wiki/File:JPEG_Generrion_Loss_rotating_90_(stitch_of_0,100,200,500,900,2000_times).png

于 2013-09-19T13:43:33.410 回答