当质量设置为 100 时,JPEG 是无损的吗?
Posted
技术标签:
【中文标题】当质量设置为 100 时,JPEG 是无损的吗?【英文标题】:Is JPEG lossless when quality is set to 100? 【发布时间】:2011-12-20 09:51:34 【问题描述】:我了解 JPEG 是一种有损压缩标准,“质量”因素控制压缩程度,从而控制数据丢失量。
但是当质量数设置为100时,生成的jpeg是无损的吗?
【问题讨论】:
【参考方案1】:正如上面正确回答的那样,使用质量为 100 的“典型”JPEG 编码器不会为您提供无损压缩。无损JPEG编码存在,但性质不同,很少使用。
我只是想说明为什么质量 100 并不意味着无损。
在 JPEG 中,压缩信息在 DCT 系数量化步骤中大部分丢失(8×8 系数块除以 8×8 量化表,因此它们变得更小 --> '更可压缩')。当您将 JPEG 质量设置为 100 时,不会发生真正的量化(因为量化表将全为 1,至少对于标准 IJG-JPEG 表而言),因此实际上您不会在这里丢失信息..
但是,即使没有进行量化,也主要有两个因素导致信息丢失:
-
通常,JPEG 压缩会减少颜色信息(因为人类视觉系统对颜色信息的敏感度低于对亮度的敏感度)。因此,即使在质量 100 下,您也可能正在执行色度二次采样(这意味着,减少一半或更多的 Cb 和 Cr 系数)。发生这种情况时,即使没有发生量化,信息也会丢失。但是,您可以告诉编码器保留完整的色度(所谓的 4:4:4 颜色采样)。
尽管如此,JPEG 编码意味着进入 DCT 域,这会导致系数舍入。四舍五入会丢弃一些信息。无论其他所有选项如何,都会发生这种情况。
【讨论】:
【参考方案2】:根据wikipedia,没有。
jpeg 100 的压缩比为 2.6:1。压缩方式通常是有损的,意味着一些原始图像信息丢失并且无法恢复,可能会影响图像质量。
JPEG 标准中定义了一种可选的无损模式;但是,这种模式在产品中并未得到广泛支持。
【讨论】:
仅仅因为它具有压缩比并不会使其有损。您可以在不损失质量的情况下进行压缩... PNG/GIF? 压缩方式通常是有损的,意味着一些原始图像信息丢失,无法恢复,可能影响图像质量。 JPEG标准中定义了一种可选的无损模式;但是,这种模式在产品中并未得到广泛支持。 您应该将其添加到您的答案中。对于为什么它是有损的,这是一个更好的解释 - 而不是仅仅说明它具有压缩比:)【参考方案3】:有一个lossless form of JPEG,但它没有得到广泛支持,而且您无法通过调整质量设置来获得它 - 这是一个完全不同的过程。
【讨论】:
那为什么叫JPEG呢? @Pacerier 好问题。这是因为它是由联合图像专家组开发的,也就是制作原始 JPEG 的人。我不知道他们为什么试图在早期的规范中搭载它,而不是像使用 JPEG-2000 那样创建一个新的规范。 另外,我们所知的JPEG图像标准的名称实际上是JFIF。相关:***.com/questions/1427623/are-all-jpeg-files-jfif【参考方案4】:无论设置如何,Jpeg 都是有损的。在 100 时,您只会得到尽可能少的损失。
测试很容易。制作一个简单的 .bmp,将其压缩为 q=100 jpeg,然后重新提取回 .bmp。使用 Gimp/Photoshop 对两个位图进行“差异”处理,您会看到损失 - 与 q=50 或 q=1 转换相比,损失要少得多,但仍然存在。
【讨论】:
作为替代方案,JPEG2000 支持无损模式。 @MarcB,您将如何“使用 Gimp/Photoshop 对两个位图进行“区分””? @Pacerier,使用 gimp 打开参考图像,然后“作为图层打开”第二个。从“图层”工具箱中,您可以选择“差异”叠加方法。如果你像这样将图像展平,并拉伸对比度,等等!以上是关于当质量设置为 100 时,JPEG 是无损的吗?的主要内容,如果未能解决你的问题,请参考以下文章
图像压缩基本matlab DCT+量化+huffman JPEG图像压缩含Matlab源码 1217期