什么是jpeg人工制品,可以对它们做些什么?


25

我知道JPEG是一种“有损”压缩算法,该算法会丢弃信息以节省空间。这在视觉上有什么影响?我听说过“ JPEG伪像”。这些看起来像什么?

是否存在相同级别的压缩会产生更多伪像且看起来更糟的情况?图像的内容是否重要?该算法处理得很好,有什么问题呢?

假设需要JPEG,是否有减少伪影的方法?如果我要上传到将在控件之外应用其自身压缩的Web服务,那么我可以对图像进行任何预先处理以使其更好地生存吗?


一些对此问题的回答件存在的位置:photo.stackexchange.com/questions/5317/...
dpollitt

谢谢@dpollit。由于英国的拼写和缺少标签,我没有看到那个。另外,它特别涉及低分辨率和小文件大小。
mattdm 2012年

我很乐意在答案中看到一些像素级(或更大)的示例。
mattdm 2012年

1
我会引导您到我的答案的话题@dpollit之前的联系,特别是该网站链接的话,其中有从每一个主要的“质量”水平样本图像的整个负载,以像素级的细节,适用于多种类型的图片。
jrista

1
@BBking —我很乐意看到一个包含参考文献的详细答案。
mattdm 2012年

Answers:


19

一个例子

使用当前的一周照片。这是高质量的JPEG:

imp子Q = 99

重新以JPEG品质80(低)保存在Gimp中;请注意一般清晰度的损失,高对比度边缘周围的“点”,低对比度区域的细节损失:

imp子Q = 80

并以JPEG质量30(非常低)重新保存在GIMP中;请注意明显的8x8块以及锐度和色彩细节的严重损失:

imp子Q = 30

三种失真

JPEG倾向于引入两种三种失真:

  • 锐度和高对比度边缘周围的振荡通常会丢失:这是由于具有平滑函数(余弦)的近似强度转换造成的;您会看到它们是边缘周围的小“点”或“光晕”;在手绘图的图像中特别容易看到它们。
  • 块结构:对每个8x8块(或在色度下采样的情况下更大)分别处理图像,块边缘在高压缩率下变得可见。
  • 颜色细节丢失:取决于保存的参数,程序可能会主动“降低采样率”(降低分辨率)色度通道;对于自然摄影来说,这很少是一个问题。

可见的块结构和边缘周围的光晕通常称为JPEG伪像。让我们放大示例以更好地查看它们。从左到右,从原始JPEG Q80和JPEG Q30图像中裁剪。我将伪像标记为绿色(圆圈表示光晕,点表示8x8块):

三向比较

由于任何信息丢失,您实际上无法恢复。锐化可能有助于恢复丢失的边缘对比度,但会使“光晕”更明显。去噪可能有助于消除“光晕”,但会进一步降低清晰度。如果块结构可见,则可能为时已晚。只需保留原始的高分辨率,高质量图像即可,不要覆盖它们。

托管策略

如果您控制JPEG压缩参数并希望最大化图像质量,请执行以下操作:

  • 保持尽可能低的压缩率(使用高质量设置)
  • 考虑对色度通道进行下采样(对于某些图像可能几乎不明显,并且在给定相同文件大小约束的情况下允许在亮度通道中使用较低的压缩率)
  • 考虑使用浮点离散余弦变换(它可以提高变换的精度,但是文件保存将花费更长的时间)
  • 考虑使用较低的分辨率而不是较高的压缩率(给定相同的文件大小限制)

如果您上传到第三方服务,并且不控制压缩参数,那么您将无法做很多事情:

  • 选择一种已知的服务,而不是已知的过度压缩以节省流量的服务(Picasa,Imgur,Dropbox),该服务优先选择高质量JPEG(Flickr,SmugMug,23hq,500px);通常你会得到你所支付的。
  • 尝试自己调整照片大小并上传适当大小的照片(某些服务仍会对其进行重新压缩,有些可能会在您上传文件时为其提供服务)

16

JPEG实际上使用两种压缩方式:有损压缩和无损压缩。无损压缩不会造成伪影,因此我们可以忽略该部分。JPEG中的特殊类型的有损压缩(称为数学余量的离散余弦变换)允许在压缩率和保真度之间进行权衡。大多数软件都将其称为“质量”值,通常在0-100范围内,其中100实际上没有损失或损失很小,并且从那里开始下降。

之所以采用这种特殊的压缩算法,是因为它可以很好地排除人类视觉系统不如其他场景组件注意到的那种东西。这部分是为什么看起来相当不错的图片可以具有令人印象深刻的高压缩率的原因。这也是为什么它在真实的连续色调照片上效果很好,而在合成图像和艺术线条上效果不佳的原因。

这是一张较大照片的200 x 300区域,其中像素被复制了2倍以更好地看到它们。这使用JPEG压缩“质量” 100:

质量80,文件大小减少了79%:

质量60,降低86%:

质量40,降低90%:

文件大小的减少是基于整个文件的JPEG压缩,因此标头结构和其他固定开销只是数据的一小部分。

请注意,即使原始信息中的近4/5被扔掉了,您也必须在第二张图片中找到工件。JPEG压缩伪影通常在锐利边缘和缓慢变化的平坦区域中最明显。由于线条艺术都是尖锐的边缘,因此JPEG压缩不适合这种情况。

您会看到,压缩率越高,压缩伪影会越差。请记住,尽管底部图片保留了惊人的可视信息量,但原始信息却被删除了9/10。

JPEG有损压缩所特有的伪像类型为缓慢变化的平坦区域中的“块状”和高对比度边缘周围的“污垢”。例如,请参见上图的右下区域。这包含焦点不清晰的背景,因此值变化缓慢。块状性很明显。有关“污垢”的示例,请环顾山羊的左角。通常,这两种伪像是涉及JPEG压缩的有力线索。还要在上面的其他图片中查找这些内容,以了解它们刚开始出现时的外观,以及在各种情况下您可以承受的压缩率。


1
可见损耗不是来自DCT本身,而是来自变换后DCT系数的量化。
萨尔赫·博尔希

10

JPG压缩以像素块进行。在高度压缩的JPG图像中,可以看到这些块的边缘:在原始图像中,两个像素的亮度和颜色可能非常接近,但是如果它们位于不同的块中,则在压缩和解压缩(查看时)后,每个像素它们的值可能与原始值不同,因此您会逐渐失去这种融合,并开始看到这种“块状感”。

在此处输入图片说明

这是天空中的典型示例-以0质量保存的JPG。

如果您上传到使用JPG压缩的网站,则在做两件事时可能会获得更好的结果(您需要对该网站进行实验以查看其效果):

  • 将图片的尺寸调整为网站允许的最大高度/宽度,因此网站不会为您调整图片的尺寸

  • 自己进行压缩,以获得质量更好的较小文件。根据站点的工作方式,如果图像已经足够小,它可能不会做进一步的压缩,或者即使压缩了,效果也会变差。

就从图像中去除JPG伪像而言,JPG伪像看起来可能类似于正常的传感器噪声。降噪软件在去除一些较小的JPG伪影方面会取得一定的成功,但会丢失细节。

像jpg伪像一样的噪音

这是一个JPG质量为50%,有块状但又较暗和较亮的像素(类似于噪点)的示例。

Topaz Labs有一个名为DeJpeg的产品,该产品专门作用于JPG工件。它在没有太多细节损失的情况下做得很好。该插件还可以进行一些锐化和总体降噪。该插件与Photoshop CS,Photoshop Elements和Paint Shop Pro兼容。我认为它不适用于Lightroom或Aperture。


您能举一个看起来类似于传感器噪声的jpeg伪像的示例吗?
mattdm 2012年

添加了以50%JPG品质保存的黑暗天空之一。
MikeW

5

对于压缩文件直到达到特定目标文件大小的网站,有一种方法可以在某些情况下提高图像质量。

JPEG通过将图像转换为[一系列]频率空间表示来工作(其中X和Y代表水平和垂直频率,“亮度”代表频率的幅度)。低于特定幅度的频率将被忽略,从而减少了存储的数据量,从而实现了压缩。

噪声具有JPEG无法压缩的广泛频率范围。这就是为什么您可以拥有两张图像,应用相同级别的压缩并在JPEG压缩后获得两个不同的文件大小的原因。

如果您拍摄图像并故意模糊不重要的背景区域,则会减少信息总量并实现这些区域更高的压缩率,从而留出更多千字节来编码对细节至关重要的区域。这对于背景已经不清晰的图像特别有效。


3

这是一个放大的jpeg的示例:

在此处输入图片说明

维基百科用户FelixH的图片。该图像已根据知识共享署名-相同方式共享3.0未移植许可证获得许可。

在此图像中,您可以清楚地看到蓝色区域中的所谓“工件”。请注意,图像看起来如何分成块,并且块边界不匹配。

为了避免或减少此问题,可以采取许多措施:

  • 最明显的是:不要使用jpeg。您可能需要使用无损压缩格式(例如RAW,PNG或无损TIFF)处理图像。当您要将图片上传到网络,电子邮件等时,仅在最后一步将其降级为jpeg。

  • jpeg格式允许配置压缩级别。如果需要,可以减少工件,但是文件会更大。

  • 避免一遍又一遍地保存jpeg,因为每一代都会进一步降低质量。


由于像素量化,即使是RAW和PNG也会出现伪像。只要您不更改任何值,那只是一次效应,不会因为数字化而造成进一步的损失。但是,如果您在任何步骤(例如,使场景变暗或变亮)或与其他值混合等更改值,则由于量化(可以说是合理的),值的移动会在下一次保存(即使没有压缩)时导致新的伪像。一种压缩形式)以保存新计算出的图像。为了最大程度地减少这些影响,请在每个步骤中使用尽可能多的位,并保留整个工作流程。
Skaperen 2012年

@Skaperen:您在这里混淆了两件事。这个问题是关于由于jpeg压缩导致的细节损失。您所描述的是某些图像处理算法引入的细节损失。您所描述的是正确的,但与图像格式完全无关,因此说RAW和PNG与像素量化相关是错误的,这些文件格式不会造成质量损失。
Miguel

顺便说一下,此图像还演示了另一个问题:它显示了不清晰蒙版的光晕。
mattdm 2012年

1

伪影是处理图像的不良副作用。在这种情况下,它们是由JPEG算法压缩数据的方式导致的。

通常,人们希望能够以数字方式存储照片,而无需使用过多的存储空间。结果,大多数照片都以JPEG格式存储。这种格式将压缩构成图像的数据,并尝试保留尽可能多的细节。创建文件时可以更改压缩级别。但是,这是一种“有损”算法,这意味着它会丢弃一些数据-无法从压缩的JPEG文件返回到原始数据。

数据丢失是以图像质量为代价的。压缩的目的是使对整体图像的影响降到最低,但是在高压缩级别下可以明显看到。

JPEG伪像最通常看起来像是块状的彩色部分。可以看到它们在大量的颜色变化中存在细微的渐变颜色变化-例如在蓝天或有雾的场景中。这些伪像看起来像是特定颜色的锯齿状轮廓,而不是平滑的混合色。

在压缩程度更高的场景中,还可以在被摄对象的边界附近看到伪影-例如,树木在天空映衬下的树枝。这些看起来像对象周围的斑点。

减少伪像的最佳方法是:

  1. 始终保留原始图像-不要保存压缩的JPEG,然后稍后将其重新打开并重新保存。有关此问题的极端示例,请参见“ 生成损失”,该视频显示图像被重新压缩600次。
  2. 给定任何文件大小限制,请尽可能高品质地保存。
  3. 避免使用会严重压缩图像的服务-如有必要,将它们托管在其他位置并直接链接到它们。

有关更多信息,请参见http://photo.net/learn/jpeg/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.