当JPEG图像的质量设置为100时,它是否是无损压缩?

100

我了解JPEG是一种有损压缩标准,而“质量”因素控制压缩程度和数据丢失的数量。

但是当质量数字设置为100时,生成的JPEG是否为无损压缩?

答案是否定的。即使在质量设置为100的情况下,JPEG仍然使用有损压缩算法,因此仍然会有数据丢失,虽然这种情况下的数据丢失可能会很小。

4个回答

83

如前面正确回答的那样,使用 “典型” JPEG 编码器并将质量设置为 100 并不能获得无损压缩。虽然存在无损 JPEG 编码,但它的性质不同且很少使用。

我只是想说一下为什么质量设置为 100 并不意味着无损。

在 JPEG 压缩中,信息大部分是在 DCT 系数量化步骤(8x8 系数块被 8x8 量化表划分,所以它们变小了-->“更易压缩”)期间丢失的。当您将 JPEG 质量设置为 100 时,实际上没有进行真正的量化(因为量化表将全部为 1,至少在标准 IJG-JPEG 表中是这样),因此您在这里不会失去信息。

但是,即使不进行量化,仍有主要两个因素导致信息丢失:

  1. 通常,JPEG 压缩会减少颜色信息(因为人类视觉系统对亮度比对色彩不敏感)。因此,即使在质量设置为 100 时,您可能仍在进行色度子采样(这意味着丢弃一半或更多的 Cb 和 Cr 系数)。当发生这种情况时,即使没有进行量化,信息也会丢失。但是,您可以告诉编码器保留完整的色度(称为 4:4:4 色彩采样)。
  2. 然而,JPEG 编码意味着进入 DCT 域,这会导致系数舍入。舍入会丢失一些信息。无论所有其他选项如何,这都会发生。

70

Jpeg无论设置为多少,都是有损压缩的。在100的设置下,您只能获得最小的损失。

这很容易测试。制作一个简单的 .bmp 文件,将其压缩为 q=100 的jpeg格式,然后重新提取回一个 .bmp 文件。使用 Gimp/Photoshop 对两个位图进行“差异”比较,您会看到损失 - 它将比 q=50 或 q=1 转换时不太明显,但仍然存在。


10
JPEG2000提供了一种无损模式作为替代方案。 - schnaader
3
您好,要使用Gimp/Photoshop对两个位图执行"差异"操作,应如何操作? - Pacerier
15
@Pacerier,使用GIMP打开参考图像,然后"以图层形式打开"第二张图片。从"图层"工具箱中,您可以选择"差异"叠加方法。如果将图像压平,并拉伸对比度,那么就完成了! - yota

23

虽然存在无损JPEG的形式,但它没有得到广泛支持,并且您不能通过调整质量设置来获得它 - 这是完全不同的过程。


2
那么为什么它被称为JPEG呢? - Pacerier
6
@Pacerier 很好的问题。这是因为它是由Joint Photographic Experts Group开发的,他们也是制作原始JPEG的同一批人。我不知道为什么他们试图将其附加到早期规范上,而不像他们在JPEG-2000中所做的那样创建一个新规范。 - Mark Ransom
4
除了“JPEG”这个我们知道的图像标准名称之外,实际上它的正式名称应该是JFIF。相关信息:https://dev59.com/p3M_5IYBdhLWcg3wUxZB - Glen Davies

0
根据wikipedia,JPEG100的压缩比为2.6:1。通常采用有损压缩方法,意味着一些原始图像信息将会丢失并且无法恢复,可能会影响图像质量。
虽然JPEG标准中定义了可选的无损模式,但这种模式并没有被广泛支持。

18
它具有压缩比并不意味着它是有损的。你可以在不失去质量的情况下进行压缩... PNG/GIF? - IAmGroot
4
压缩方法通常是有损的,意味着一些原始图像信息会丢失并且无法恢复,可能影响图像质量。JPEG标准中定义了一种可选的无损模式,但该模式在产品中得到的支持并不广泛。 - Mark Price
2
你应该把这个加到你的答案里。这是一个更好的解释为什么它是有损的,而不仅仅是说明它有一个压缩比 :) - IAmGroot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接