仅仅打开和关闭JPEG文件会降低图像质量吗?


24

我参加了很多摄影课,读了许多摄影书,并参观了许多论坛。而且我找不到这个问题的一致答案。一个“阵营”说,每次打开和关闭JPEG文件时(由于压缩),图像质量都会下降。其他阵营说,除非您实际编辑照片,然后重新保存,否则图像质量没有损失。

如果满足以下条件,它会有所不同吗?

  • 我可以在标准图片查看器中打开图片,然后简单地“关闭”图片?
  • 我在Photoshop Elements Editor中打开图像并在那里关闭了吗?
  • 如果我只是关闭图像并重新保存图像呢?

关于关闭或保存JPEG何时会导致图像质量下降以及何时不会导致图像质量下降,有人可以给出简单的答案吗?


1
打开JPEG不会“解压缩”,关闭JPEG不会“重新压缩”并导致质量下降。压缩(和“损坏”)是在最初生成JPEG时完成的,而不是在打开时进行的。
ElendilTheTall 2014年

11
@ElendilTheTall:打开JPEG图像绝对可以将其解压缩,至少如果打开的意思是实际显示它而不是文件系统操作。
Michael Borgwardt 2014年

Answers:


55

这是基于误解。在将图像另存为JPEG的压缩过程中才会发生质量损失。但是,是否进行编辑都没有关系。

所以:你(有一些非常具体的例外,见注释)丢失质量,如果你在一个图像编辑器并重新保存打开的图像,即使你没有做任何修改。但是,如果只打开它以显示它,然后关闭它而不是保存它,则什么都不会改变。

顺便说一句:这仅适用于传统的图像编辑程序,例如Photoshop。像Lightroom这样的“开发” RAW文件的程序采用了不同的方法(即使在处理JPEG文件时):它们始终保持原始图像不变,并分别保存已完成的编辑步骤,这些步骤在导出最终结果时应用。因此,有了这样的程序,您不必担心质量下降(就是一次以上)。但是,无论如何,您不应该为它们使用JPEG源文件。


4
“ 即使您不进行任何编辑,您也会失去质量。” 这取决于应用程序。应用程序可能很清楚没有进行任何更改,并重写了原始压缩方案,而没有比原始JPEG更高的质量损失。
DocMax 2014年

9
@LightnessRacesinOrbit:我敢肯定,你对此有误。将数据从频率域转换到原始域然后再返回,可能会由于每次量化而增加其他误差。也许它最终会收敛到某种稳定状态,但是我对此表示怀疑。
Michael Borgwardt 2014年

2
这里:photo.stackexchange.com/a/34192在我的例子8或9个周期收敛。
mattdm 2014年

1
@DocMax:这将需要1)应用程序将压缩后的流存储在内存中(或重新读取),或者2)实际上不重写JPEG文件,使其保持完整(包括时间戳,如果存在的话)。非常不可能的情况
leonbloy 2014年

1
我同意,很少有应用程序按原样保留并重写压缩流。我见过一次,但是那是很多年前记忆比今天更宝贵的。我的意思是,“ 失去质量”意味着根本无法避免质量损失。我对“几乎肯定会失去质量”没有任何疑问。
DocMax 2014年

23

绝对不。您需要编辑文件并将其重新保存为JPEG,以增强图像压缩效果。仅查看它根本没有任何效果-如果这样做,则网络上的所有JPEG最多在一两天内就会完全“用完”。


仅供参考-这是一个令我感到困惑的指导类型的示例(这来自photoblog网站):“拍摄.JPEG有什么缺点?它具有一种压缩方案,每次打开和保存文件时,该压缩方案都会导致图像质量下降。降级很小。您一开始可能不会注意到它,但是随着时间的推移,您会看到它。”
markthomas 2014年

14
@markthomas:关键词已保存 -保存与结束是完全不同的事情。
Michael Borgwardt 2014年

2
+1表示“用完” ... Google将需要每两秒钟在其搜索结果页面上涂上一层新的“油漆”!
hjk

@MichaelBorgwardt的确如此,但是可能会被误解为“每次打开文件,每次保存文件”。当然,如果您不先打开就进行保存,则会造成更大的降级,但是我仍然不认为应该提到开放。
传真

7

JPEG压缩可以描述为具有两个不同的阶段:首先是有损阶段,然后是无损阶段。理解它们之间的区别对这个问题很重要。这并不是因为它有助于了解发生了什么,而是因为它有助于了解常见错误的出处。

有损压缩在文件保存时发生。这是导致质量下降的部分。但是,仅关闭文件不足以触发有损压缩:您必须保存它。一些编辑器可能会拒绝保存未编辑的JPEG文件,以避免意外触发无损压缩,但是我不知道是不是有任何编辑器实际上在进行此操作。

无损压缩也在文件保存时发生。主要区别在于,即使在关闭文件时不保存而发生该操作,也没关系,因为它是无损的。JPEG同时使用这两种技术。

每当打开文件时都会进行无损解压缩,但不会在其他时间进行。不是在关闭时,甚至在保存时也没有。与无损减压一样,即使在这段时间内发生也没关系,因为它是无损的。

永远不会发生“松散减压”。没有这样的事情。不可能,因为在有损压缩阶段丢掉的数据消失了。如果您能以某种方式对其进行重构,那么您将拥有一种无损压缩算法,而不是一种有损压缩算法。我什至只提到这个概念,因为提到了两种类型的压缩,如果我只提到一种类型的解压而不解释原因,那看起来会很奇怪。

请注意,保存文件会触发两种压缩。除非您知道图像尚未编辑,否则没有太多解决方法,但是保存图像也没有太多意义。还要注意,仅关闭文件而不保存就不会触发任何一个阶段,甚至不会触发 “安全”的无损压缩。因此,仅打开和关闭文件不会降低图像质量


关于“毫无意义的保存”,我担心如果用户界面为“打开-编辑-保存”并且没有特别指示复制图像数据时仅编辑元数据(注释,注释),程序将如何处理但未重新压缩。
JDługosz

尽管我不知道有什么方法可以实现,但“松散减压”这个概念还是很合理的。压缩文件包含一定数量的数据;可以想象一种减压算法,该算法仅提取该数据的低分辨率版本。这样做可能比提取所有可用数据快得多,例如,可以使用这种算法来提供预览。(例如,JPEG将图像压缩为8x8块的序列;您可以提取每个块的平均颜色,并将其渲染为1/8尺寸预览的单个像素。)
David Richerby 2014年

@jdlugosz通常仅更新元数据的程序不会解压缩/重新压缩JPG的图像部分。他们只是像复制新文件一样复制该部分。JPG文件格式的构造使其实际上更容易且工作量更少,就像只需要更新元数据一样。但这一切都取决于软件。如果这样做很愚蠢,那就没有办法解决(使用其他软件除外)。
托尼2014年

@DavidRicherby有很多使用解压缩引擎进行预览的软件。大多数基于Web的照片相册都会这样做,以生成缩略图并将低分辨率版本发送到具有小显示屏的浏览器。在MacOSX中,Finder和iPhoto中的缩略图视图可以执行此操作。我怀疑Windows的资源管理器中的缩略图也可以这样做,但是我不确定该缩略图。
Tonny 2014年

其实,AIUI,既JPEG压缩解压即可(有些)损耗。也就是说,你可以不完全从压缩数据重构原始图像,并且你不能(总是)正好从解压缩的图像重建压缩数据。通常,AFAIK会由于削波而发生:将压缩的YUV DCT系数映射回8位RGB像素颜色时,某些像素最终可能会遇到小于0或大于255的颜色值,将被削波。
Ilmari Karonen 2014年

4

仅打开和关闭JPEG文件不应触发保存命令(在我所知道的任何程序中),因此不会进行重新压缩。

对于您实际上确实点击“保存”的时间,发生的情况取决于您所做的更改以及所涉及的图像程序的智能程度。

用户CutNGlass已经提到了智能图像程序“更好的JPEG”的示例,该示例利用了JPEG图像由许多独立编码的矩形像素块组成的事实,只有真正需要-保存图像时进行压缩。例如,使用这样的程序,您可以消除红眼,并且在保存JPEG图像时,仅重新压缩受更改影响的块。 http://www.betterjpeg.com/features.htm

现在,这种避免重新压缩JPEG图像不需要重新压缩的任何部分的技术确实是“老新闻”(我不是专家,而且我已经知道十多年了),因此,我想我认为所有好的图像处理程序到现在都可以完美地处理了这是理所当然的(这意味着打开JPEG图像并按“保存”通常不会进行任何重新压缩,因为程序会知道对任何块都没有任何更改,只保留它们不变),但是从查看这个问题及其变化的答案来看,我只能发现这个STILL是不正确的!*也许这种解决方案背后的编程比我想象的要复杂-否则,所有JPEG处理程序都将在今年前拥有!*


嗨,新用户。感谢您的贡献,包含指向Betterjpeg的链接是一个有用的补充。从开发人员的角度来看,这种情况称为极端情况-要发挥作用,它依赖于用户进行部分编辑并且想要完全相同的质量输出设置,并且源文件是少数JPEG编码选项之一。对于所涉及的工作量,没有足够的收益。
James Snell 2014年

嗨@JamesSnell!首先,我真的非常感谢您的反馈,并向我解释了为什么所有图像处理程序都没有尽其所能避免JPEG降级。但是,我必须说,如果投入过多的编程工作以及用例是否代表“极端情况”,那是相当主观的!它取决于程序处理的图像格式数量以及JPEG的常用程度,还取决于您不希望失去任何不必失去的东西的肛门(在这种情况下,图像质量不会降低) 。
卡尔

另外,我要说的是,由于JPEG是世界上#1(使用最多的)图像格式,因此它本身就使它成为“极端边缘情况”之外的东西(至少应删除“极端”一词) )。如果您还考虑到这种块处理技术(如果在图像程序中实现的话)可以用于各种不同的情况(部分编辑,例如消除红眼;旋转/翻转图像;裁剪),也表示“极端边缘情况”以外的内容。它可能不是MOST所要求的功能,但与此同时,我相信它会受到赞赏!
卡尔

1
卡尔,我同意@JamesSnell的观点,这是一个边缘案例-我已经在一个流行的图像编辑器上工作,所以我在这里有一些经验。当您打开文件时,会将其复制到内存中未压缩的版本进行编辑,而原始文件将立即被丢弃。这样可以节省内存,并使您可以灵活地使用任何文件格式作为源。我见过可以无损翻转或旋转JPEG的软件,但这是一个非常专业的功能。您链接到的程序是我见过的唯一将此功能扩展到常规编辑的编辑器。
Mark Ransom

马克,感谢您的发言,也感谢您的见解。但是,由于我们谈论的是使用世界上最常见的图像文件类型的非常常见的编辑类型,因此我仍然不称这种情况为“边缘情况”……程序员希望保持这种简单性,或者可能不太在意关于图像质量下降的问题,让他们感到“值得”,以使他们能够处理这个问题,这说明了为什么大多数图像程序不处理这种情况,但并不能使其成为“边缘案例”。JPEG文件通常比未压缩的版本小得多,因此可以将其保存在内存中并添加此功能。
卡尔,

3

您绝对不会因为观看而失去任何品质。但是,如上所述,如果编辑器在保存文件时对其进行压缩,则在不进行更改的情况下保存它可能会失去图像质量。例如,假设您有未压缩的JPEG:

  1. 您在GIMP中将其打开,不做任何更改并保存
  2. GIMP询问您要压缩多少(质量)
  3. 输入90%的质量(默认)

这样做20次,由于压缩了20次,您会发现质量明显下降。如果您不压缩而保存(100%质量),则不会看到任何更改。


3
JPEG 始终具有压缩功能。JPEG没有“不压缩”之类的东西。它本质上是有损的。但是,将[JPEG压缩的]图像以100%的质量通过JPEG压缩器传递可能不会导致质量下降。
与莫妮卡(Monica)进行的轻量级比赛,2014年

2
@geometrikal 真的吗?
罗林2014年

1
@geometrikal绝对不是这种情况
mattdm 2014年

2
以相同质量级别重新保存而导致质量损失的示例:photo.stackexchange.com/a/34192
mattdm 2014年

2
另请注意,100%的质量并非没有压缩。
mattdm 2014年

2

绝对,像任何文件一样,如果您不单击“保存”而是仅关闭文件,则不会进行任何更改。(想起来就像您刚打开和关闭的Doc一词)

如果您进行更改,大多数程序都会向您发送通知,询问您是否要“保存更改”

因此,对于您的问题,答案肯定是“否”。

希望能有所帮助。


1

简单的说:

  • 开业:不失品质
  • 复印:无质量损失
  • 显示:无质量损失
  • 保存而无需编辑:正在复制,没有质量损失*
  • 仅保存元数据编辑即可保存:不会降低质量*
  • 通过更改压缩质量来节省:质量下降
  • 图像数据编辑后保存:质量下降

*根据程序的不同,执行不当的程序实际上可能会重新压缩,即使不需要时也会导致质量下降

解码任何数字数据都是无损的。没有单一的数字格式,仅通过解码和显示即可更改数据。

仅重新压缩可能会丢失的图像数据。某些实际上只是元数据编辑的编辑操作不应引起质量损失,例如EXIF旋转是无损的。


程序可以使用从图像中未更改的部分逐字复制的数据生成文件,但为其他部分生成新的压缩数据。例如,使用JPEG向导,可以突出显示JPEG的“重要”区域并将其保留不变,同时可以以各种程度积极地压缩图像的其他次要区域。
2014年

复制文件(在资源管理器,Finder等中)不会导致质量下降。打开图像,进行全选,复制,从复制中复制新图像然后保存,导致质量下降。
fzwo 2014年

@supercat-块替换仅适用于某些jpeg编码方案。但是选择性的质量(仅在某些区域有效)选项可以节省一些有趣的空间,而不会导致网络上的主要图像质量下降。
詹姆斯·斯内尔2014年

@JamesSnell:我很久以前就使用过JPEG向导;我没有看过是否/如何维护或更新它,但是在图片有一些需要细节的地方而很多地方不需要的情况下,它可以节省一些空间。在某些情况下,模糊除图片的主要对象以外的所有内容可能会在美学上改善图片,因为这会使文件变得更小。
supercat 2014年

1

简单地说没有

再具体一点。保存JPEG图像时,由于JPEG被定义为有损压缩,因此会有一些损失。

如果我没有记错的话,使用霍夫曼编码对图像进行压缩。现在,当图像编辑器打开图像时,它不会解压缩图像。它只是解码压缩图像,以便屏幕可以显示其中的内容。

但是,当您进行更改并重新保存图像时,图像将被重新压缩为一个新的jpeg,而丢失的数据会更多。像GIMP这样的软件会询问您想要多少质量,因此您可以选择100%保留现有质量。

现在,无需进行任何更改即可打开和关闭图像,这与存储方式和丢失的数据无关。将其打开以查看然后关闭不会对文件进行任何更改。无论大小写(mp3,图像,Word文档)。由于什么都没有保存,质量将始终保持不变。

但是正如先前的回答所说,如果您真的担心数据丢失,可以简单地使用其他格式,例如png或tiff。


2
请注意,使用“质量百分比设置”的100%值将照片重新保存到GINMP中时,您将不会保留现有的质量。它仅将编码器使用的某些参数设置为可能的最高质量级别。这些设置不是无损的。
雨果

2
没问题。您可以在此问题中了解更多信息。
雨果

0

即使在这些答案中,似乎仍然存在很多错误信息。

JPEG是一种有损块编码标准。它是一个频域代码,通过以较低的精度表示较高频率的图像分量来进行压缩。块大小为8x8像素。

要对JPEG图像进行编码,您需要采取每个块,执行2-D DCT并将结果记录为一种锯齿形图案,从最低频率开始到最高频率到位的位数越来越少。精度曲线由单个质量变量控制。

只要在一个块上完成一次此过程,就可以根据需要多次解码和重新编码,而不会损失任何图像质量(只要始终使用相同的quality变量)。这不是夸大其词。可以使jpeg块的解码和重新编码过程完全无损,并且任何值得赞扬的编辑应用程序都可以做到这一点。

这对于编辑图像的人意味着什么?如果打开图像并以相同的图像质量保存(重新编码),则不会有质量损失(您的编辑应用程序应该能够告诉您用于编码图像的质量变量)。如果打开图像并仅编辑其中一部分,则唯一会改变的块是您编辑的8x8块。其他所有内容都将完全相同。



1
我没有仔细调查,但我认为是舍入错误导致情况并非如此。
mattdm 2014年

如果程序使用相同的Q矩阵,而您仅更改隔离的区域,则@stevecox摘要正确。如果使用相同的程序,则相同的滑块设置应提供相同的内部参数。从左/上裁剪可以更改块对齐;诸如色调和亮度之类的整体变化触及到所有事物,并且两者都可能导致超出标称压缩质量的可怕退化。如果原始保存的质量很高,则效果将是微妙的但会累积。
JDługosz

5
-1刚刚做了一个快速的实验用Photoshop CC和反复开有完全相同的设置保存图像做的结果相比,用“差异化”混合模式原来当每一次不同的文件。显然,Photoshop并非“值得”。我不能代表其他编辑,但我敢打赌他们是一样的。您可以非常仔细地编写程序,以避免在连续解压缩和重新压缩图像时出现舍入错误,但是没有意义-JPEG并不是一种很好的中间格式,是句号。
Matt Grum 2014年

3
@SteveCox我在Photoshop中打开图像,将其保存为JPEG质量7,打开该JPEG并将其保存为JPEG质量7,然后重复5次。然后,我将第一个JPEG与第五个JPEG进行了比较。如果主要编辑都引起质量下降,则参考实施仅对学术有帮助。
Matt Grum 2014年

0

简单的答案是“取决于情况”。

如果满足以下条件,它会有所不同吗?

我可以在标准图片查看器中打开图片,然后简单地“关闭”图片?

应该是安全的,因为观看者永远都不能改变图像。

我在Photoshop Elements Editor中打开图像并在那里关闭了吗?

不应更改图像。

如果我只是关闭图像并重新保存图像呢?

关闭图像不应更改图像。重新保存图像很可能会改变它,具体取决于您使用的插件。

您会找到许多不同答案的原因之一是“何时关闭或保存JPEG会导致图像质量下降,何时不下降?” 它取决于很多不同的事物,包括:用于编辑图像的软件,安装在该软件上的插件,软件是否执行“自动保存”以及使用的设置当您保存jpg图片时!这就是为什么我不编辑原始文件。

我不使用photoshop,但是有一个可用的插件可以解决特定的问题-保存jpeg时避免图像质量下降:http : //www.betterjpeg.com /jpeg-plug-in.htm

适用于Adobe Photoshop和Adobe Photoshop Elements的更好的JPEG无损重新保存插件 是一种工具,旨在避免在Photoshop中重新保存编辑的JPEG图像时避免重新压缩损失。该插件利用了JPEG图像由许多小的独立块组成的事实,并且不会重新压缩未更改的块。


0

有趣的答案。但是有些仍然有些误导。我会尝试总结一下。

绝对不是

1)打开文件不会对其产生任何影响。同时关闭它。不在查看器或编辑程序中。

您可能会在不同的程序中查看不同的文件,但这可能是因为该程序如何解释某些信息,例如颜色模式或颜色配置文件。但是这个过程只是在阅读。

有小的变化的机会

2)进行无损操作,例如旋转图像。通常,程序只对jpg文件的数据重新排序,而无需进行分析和重新压缩。但是,我不会为所有需要这样做的程序而着火。

小小的臭名昭著的变化

3)在同一程序中以相同的压缩率打开并保存。

第一次保存jpg文件时会进行第一次重新压缩。如果您使用相同的设置再次保存文件,则原始数据丢失已经完成,但是可以再次应用较小的更改。程度与第一个不一样,但可以多次注意到。但这取决于程序。

明显的变化

4)最明显的是使用不同的压缩设置重新保存。

不仅程序具有“规模”,而且使用的算法也是如此。这有点技术性,但是至少有两个主要的压缩算法4:4:4和4:2:2。

您可以在程序上使用“滑块”来提高“质量”,但是如果您的程序使用的是4:2:2,而原始程序是在4:4:4,则可能会导致大量数据丢失。

这是我几年前写的一小篇论文,因此您可以了解这种数据丢失的含义,它是西班牙语,但您可以使用Google翻译:http : //otake.com.mx/Apuntes/PruebasDeCompresion2/1-CompresionJpgProceso.htm

一团糟

5)如果您打开图像并将其重新保存在功能有限的程序中。例如,一个viwer只能保存RGB文件,而不能与CMYK文件一起正常工作,或者它可能不了解嵌入的颜色配置文件。保存时您可能完全毁了您的形象。

6)使用大量压缩。您将其保存为网站并进行了压缩。请勿删除原件!

仅在图像的编辑部分

7)通常对所有图像执行重新压缩,但是正如我在第3点所述,如果图像未更改,则压缩并不多。当您编辑图像时,必须在此编辑部分再次进行分析。

请记住,编辑可以分为三类。

a)颜色校正,对比度等

b)改变图像的一部分(红眼睛,移走人,清洁不需要的斑点)

c)全新的拼贴。

因此,在某些情况下,至少从分析和重新压缩的角度来看,图像是完全不同的。

在这篇文章中:https : //photo.stackexchange.com/a/67434/37321,用户提到了一个程序,该程序对现有压缩进行了非常巧妙的分析,并且在不需要时不会再次对其进行重新压缩。


0

是的,显然可以!我将使用示例图像和JPEG质量30来做到这一点,以使其成为快速的初始图像。(160 Kb) 在此处输入图片说明

第一轮(10 Kb) 在此处输入图片说明

第二轮(9Kb) 在此处输入图片说明

因此,只要您不调整大小或更改质量指标,JPEG不会显着降低图像质量。图像将继续缓慢变差,但影响不大。现在,我仅从图像中删除了4个像素(右列)。并再次保存。 在此处输入图片说明

明显恶化。为了说明这一点,我们需要深入研究JPEG算法。无论如何,如果您发现自己处在这种情况下,请记住-还没有结束。有一些很棒的JPEG噪声消除软件,例如神经网络图像超分辨率和增强。我已将最后一张图片(最糟糕的一张)上传到该服务中,这就是我得到的。真的很好的结果。 在此处输入图片说明


什么软件是你打开和关闭?您确定关闭软件后不会保存(并因此重新压缩)该图像吗?
mattdm

只是基本的Photoshop重新保存
Sofiia什韦茨

1
由于该问题询问了几种不同的情况,因此该答案令人困惑,没有明确说明。
mattdm
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.