2011-11-02 302 views
46

据我所知,JPEG是一种有损压缩标准,“质量”因素控制着压缩程度,从而控制了数据丢失量。质量设置为100时JPEG是否无损?

但是当质量数值设置为100时,生成的jpeg是无损的吗?

回答

2

正如上面正确地回答的那样,在质量100下使用“典型”JPEG编码器不会给你无损压缩。存在无损JPEG编码,但本质上不同并且很少使用。

我只是发布说,为什么质量100并不意味着无损。在JPEG压缩信息在DCT系数量化步骤期间大部分丢失(8乘8的系数块被8乘8的量化表分割,所以它们变得越小→越“可压缩”)。当您将JPEG质量设置为100时,不会发生真正的量化(因为量化表将全部为1,至少使用标准IJG-JPEG表),所以实际上您在这里不会丢失信息。

但是主要有两个因素导致的信息损失即使在没有量化发生:

  1. 通常,JPEG压缩减少颜色信息(becase的人类视觉系统是比lumimance少senstitive到这一点)。因此,即使在质量为100的情况下,您可能正在执行色度二次采样(这意味着会降低一半或更多的Cb和Cr系数)。发生这种情况时,即使未发生量化,信息也会丢失。但是,您可以告诉编码器保持完整的色度(所谓的4:4:4颜色采样)。然而,JPEG编码意味着去​​往DCT域,这导致系数舍入。舍入丢弃一些信息。无论所有其他选项如何,这都会发生。
+0

优秀的答案。谢谢。 – Sugrue

54

无论设置如何,Jpeg都是有损的。在100,你可能会损失至少。

这很容易测试。掀起一个简单的.bmp,将其压缩到q = 100 jpeg,然后重新提取回.bmp。使用Gimp/Photoshop做两个位图的“差异”,你会看到有损失 - 它会比在q = 50或q = 1的转换上少得多,但仍然存在。

+9

作为替代,JPEG2000支持无损模式。 – schnaader

+1

@MarcB,你将如何*“使用Gimp/Photoshop做两个位图的”差异“*? – Pacerier

+6

@Pacerier,用瘸子,你打开参考图像,然后“打开一层”第二个。从“图层”工具箱中,您可以选择“差异”叠加方法。如果你像这样将图像弄平,并拉伸对比度,等等! – yota

0

根据wikipedia

JPEG 100具有2.6的压缩比为2:1。压缩方法通常是有损的,这意味着一些原始图像信息丢失并且不能被恢复,可能影响图像质量。

在JPEG标准中定义了可选的无损模式;但是,这种模式在产品中并未得到广泛支持。

+10

仅仅因为它具有压缩比率并不会使其成为有损耗的。你可以压缩无损的质量... PNG/GIF? – Doomsknight

+3

压缩方法通常是有损的,这意味着某些原始图像信息丢失,无法恢复,可能会影响图像质量。在JPEG标准中定义了一种可选的无损模式;但是,这种模式在产品中并未得到广泛支持。 –

+2

你应该添加到你的答案。这是一个更好的解释,为什么它是有损的 - 而不仅仅是说它有一个压缩比:) – Doomsknight

19

有一个lossless form of JPEG但它没有得到广泛支持,你不通过调整质量设置得到它 - 这是一个完全不同的过程。

+0

那么为什么它被称为JPEG? – Pacerier

+1

@Prier好问题。这是因为它是由联合图像专家组开发的,它们是制作原始JPEG的相同人员。我不知道他们为什么试图搭载早期的规格,而不是像JPEG-2000那样创建一个新规格。 –