我知道JPEG压缩是有损的。 我有两个问题:
给定操作T:
1.拍摄JPEG-80图像
2.将其解码为字节缓冲区
3.将给定的字节缓冲区编码为JPEG-80
在视觉质量方面,T是否是幂等操作? 或者,当我重复T时,图像的质量会不断降低? JPEG-XR编解码器也适用吗?
谢谢!
修改: 由于答案存在冲突,如果你能提供参考资料会很棒!
答案 0 :(得分:3)
不保证,但可能会发生。特别是如果你重复编码 - >解码 - >编码 - >解码过程足够多次,它最终将落在一个固定点上,并进一步停止质量(只要你坚持相同的质量和相同的编码器)。
JPEG编码分几个步骤完成:
解码是向后的过程。
步骤1和2有舍入误差(特别是在使用整数运算的速度优化编码器中),因此对于幂等重新编码,您需要很幸运地将编码和解码舍入误差变小或相互抵消。< / p>
步骤3是主要的有损步骤,实际上是幂等的。如果您的解码像素转换为足够相似的DCT,它将再次量化为相同的数据!
JPEG XR也使用YUV,因此它可能会遇到一些舍入错误,但OTOH而不是DCT它使用不同的变换可以计算而不会出现舍入错误,所以它应该比其他格式更容易往返JPEG-XR
答案 1 :(得分:1)
根据定义,有损操作通过以(理想情况下)最终用户无法察觉的方式简化表示来丢弃数据。然而,编码器没有神奇的方法来确定哪些像素是重要的,哪些不重要,所以它对所有像素进行相同的编码,即使它们是伪像!
换句话说,编码器将丢失压缩的图像视为无损图像。有损图像将进一步简化,在此过程中丢弃其他数据,因为对于所有编码器都知道,用户打算来表示工件。
以下是JPEG生成丢失的一些示例: