人们为什么使用JPG图像?


17

我到处都可以看到JPG图片。但为什么?

PNG文件具有不透明度,而JPG没有。我尝试将一些图像导出到PNG和JPG以比较大小,它们要么匹配,要么PNG较小(当然取决于图像)。

在此处输入图片说明

这是一个512x512的JPG图片,上面写着“ JPG”

在此处输入图片说明

这是一个512x512的PNG图片,上面写着“ PNG”。

JPG为31.7kb,PNG为25.9kb

那有什么呢?


3
您还应该知道,.png是无损的,而.jpg不是。因此,.png更适合源图像,而.jpg更适合发布。
没人

1
@没人PNG可以是有损的或无损的。取决于您的导出方式。
DA01 2015年

8
仅供参考,像在此使用的示例一样,您很少将JPG用于线条图。因此,仅基于这些示例,您就不会使用JPG。但是,如果这些是照片,您将意识到您得到了完全不同的结果。
DA01 2015年

7
我真不敢相信这个问题能存活超过10秒。
便衣2015年

2
@ DA01 PNG永远不会有损,但是您可以在将图像导出到PNG使其变小之前对其进行有损的操纵。PNG规范对此一无所知。
没人

Answers:


35

因为它们在压缩具有很多颜色和不规则形状的图片(例如照片)方面效果更好。

您是否尝试过与您尝试的相同的实验,但随后又拍摄了照片?无论.jpg的压缩系数如何,.png都可能比任何.jpg都明显更大。

例:

png图片
.png图片,110k

JPEG质量为100
.jpg,质量为100%,63k

JPEG质量为30
.jpg质量为30%,仅9k

如果仔细观察,会发现质量为30%的.jpg出现了一些伪影,但这主要是因为灯泡在光滑的绿色背景上的坚硬边缘不太适合压缩算法。您可以将常规图片的质量降低到甚至10或5%,而不会一眼就发现任何损失。


3
FWIW:优化PNG后,它有34 KB,没有任何可识别的损失。
马里奥(Mario)

哇,我从来不知道。我尝试将拍摄的照片转换为PNG,结果从550k变为2933k。你知道是什么原因吗?
JediBurrell 2015年

10
@JediBurrell PNG压缩始终是无损(AFAIK),而JPG的压缩最终将丢失图像信息。在您的情况下,一个已经压缩过的JPG(尽管看起来很漂亮)图像将在每个存储桶周围包含边缘(压缩后的小正方形构成JPG图像),PNG会拾取这些伪像,以使它们不会丢失。因此,您的PNG比原始JPG大得多。使用JPG重新压缩JPG将使这种情况恶化很多倍-这种效果称为“元阻止”。
杰伊·韦斯鲁瓦

2
@JediBurrell如果您对技术和数学细节感兴趣,可以通过Computerphile 观看此视频
Paul Manta 2015年

2
“平滑的绿色背景不能很好地适合压缩算法”:相反,JPEG很好地表示了渐变,而硬边缘却没有,在附近产生了伪像。出于好奇,请阅读有关傅立叶变换方波的信息。
Lloeki 2015年

13

JPEG获得了摄影行业的支持,比PNG早了六五年左右,而PNG被设计为GIF的替代品,而后者受到CompuServe的热心保护。人们被起诉使用其网站上的GIF,例如,仅仅因为他们没有使用CompuServe许可的程序来制作这些图像。

从一开始,JPEG就被设计为通过减小文件大小来恢复一些空间,但以像素完美质量为代价。即使将Q设置为100,也会造成较小的,几乎看不见的伪像-造成损坏,并且每修改和保存文件一次,就会发生进一步的损坏。但是,除非你做这么时间,你可能永远不会,除非你去寻找它注意到效果。

另一方面,PNG完全无损。无论文件被修改和保存多少次,每次都会忠实地复制每个像素。尽管PNG采取了多种技巧将尽可能多的信息打包到尽可能少的数据字节中,但是如何压缩数据而又不会丢失没有限制。如果不进行优化,高质量JPEG的大小可能与PNG差不多,甚至更大。随着PNG开始优化(例如,通过使用滤镜或调整窗口大小),文件会变小而不会丢失,而JPEG必须开始丢弃视觉信息以跟上潮流。

那么,为什么要使用JPEG?毕竟,它在保真度和存储空间方面通常不佳。当然,主要原因是它是一种行业标准并且得到了广泛的支持。几乎世界上的每台相机都使用RAW(从字面上看是原始数据)或JPEG。这些相机内置有硬件数据处理器,以尽可能快地压缩JPEG数据等。

您会发现这与GIF仍然无处不在的原因相同。大多数软件支持GIF,而PNG在较旧的软件中的支持较少(例如,较旧的Internet Explorer版本需要显示PNG文件的插件)。尽管它支持糟糕的颜色,但它确实支持动画,而PNG却不支持动画(存在一种相关的文件格式APNG,它从未像PNG那样完全脱颖而出)。GIF仍然是动画图像的冠军,因为它是唯一得到广泛支持的文件格式。

从硬件的角度来看,从JPEG更改为PNG的成本将非常高。相机需要新的处理器来支持快速PNG压缩,例如,因为它们已经被硬编码为现在使用JPEG。您的旧相机将一文不值,因为您必须购买一台内置PNG芯片的新相机。这也意味着您必须说服制造商违反行业标准并开始制造此类设备,这意味着必须有足够的需求来证明其合理性,这样的相机起初会比基于JPEG的相机贵。同行。改变行业非常困难。


PNG可能无损。保存软件可能会选择丢失很难获得更好压缩格式的数据。jpeg的vavelet性质使它成为无损的是不可能的。
joojaa 2015年

@joojaa您能否支持PNG压缩“可能选择丢失困难数据”的说法?
CJ丹尼斯

@joojaa JPEG使用DCT压缩,而不是小波。你可能会想JPEG 2000
bcrist

7
据我了解,色彩还原会在图像传递到PNG编解码器之前发生。仅仅因为一种格式能够存储本已有损的数据并不会使它有损。将具有Alpha图像的32位RGB更改为1位黑白图像将丢失大量数据,但并不是PNG会这样做。减少色彩深度是有损转换,不是有损压缩
CJ丹尼斯

2
我的错误是DCT。我的观点是,尽管PNG无损,但并非所有PNG优化器都是如此!因此,在不知道您使用过什么的情况下,您不知道该过程是否有损。因此,关于非损耗性的问题并不像人们想象的那么简单。就像在保存之前发生颜色深度变化一样,PNG优化器可能会在保存之前以其他方式更改图像,以减小占地面积。@JCDennis这些紧缩饼干的存在只是请参阅他们的手册。
joojaa 2015年

7

这些压缩算法的工作方式没有很详细地提及。JPEG直接针对未发现像素颜色略有变化的照片。PNG的目标更多是伪造的图像,其中包含单色的大区域,充分利用了压缩,就像您的示例中带有纯黑字体的巨大的全白照片一样。如果您拍摄同一张照片,然后将白色背景从白色到灰色均匀地从图像的一侧到另一侧逐渐淡化,则png大小将急剧增加,而jpg可能几乎没有变化。大约10年前,我直接使用这两种格式进行了一些编码,以将这些文件类型解压缩为bmps。JPEG非常复杂。PNG非常简单,仅对某些颜色在水平线上不变的图片有效


1
您实际尝试过吗?PNG 不仅游程长度编码,而且比您建议的要复杂得多。它使用自适应算法,将有效压缩实心区域和重复图案。
z7sgѪ2016年
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.