我的 .jpg 文件比 .png 大?
My .jpg file is larger than .png?
我使用 Microsoft Paint 创建了 15248 x 6552 纯色图片。我将它同时保存为 .png 和 .jpg,并期望 .jpg 比 .png 小,但事实并非如此。
.jpg 文件为 1.49MB,而 .png 文件为 391KB。作为有损压缩的 jpeg 不应该在技术上更小吗?
我在某处读到 .png 更适合纯色等,所以我从网上下载了一张图片(不是纯色)并使用画图将其保存为两种格式。这次 jpeg 比 png 小。仅仅是因为颜色的渐变吗?如果是,那为什么?
即使图片是纯色的,jpg编码能不能压缩得更好?
不一定。
PNG 是一种基于预测的算法,这意味着它会尝试根据先前编码的像素来扣除一个像素的值。我敢打赌,对于实体图像的预测是非常准确的,因此结果非常好。
JPEG 接受不同的 "quality levels",这决定了压缩文件的大小。您的实验版本和网络版本之间的大小差异可能是由于此原因造成的(当然,除非您下载的是不同的图片!)。
请注意,JPEG 可能会引入一些图像伪影,因为它是一种有损算法,而 PNG 将为您恢复准确的输入图像。
在这种情况下,PNG 的性能优于 JPEG 是意料之中的事。
正如其他答案中所指出的,PNG 进行逐行像素预测,然后进行 ZLIB 压缩。如果图像具有单一颜色,则预测将为所有像素生成一个恒定的零值,每行的开头除外。因此压缩将非常有效。我敢打赌,如果图像是“风景”(6552 x 15248 而不是 15248 x 6552),压缩效果会更好一些。
JPEG 压缩相反,将图像分成 8x8 像素的块,并且对于每个块,它尝试精细量化低频分量和粗略地量化高频分量。这对于“自然”(照片或渲染)图像效果很好,但对于颜色很少(或只有一种!)的图像效果不佳。
我发现对于同一张图片,如果先保存为 PNG 然后再保存为 JPG,则 PNG 会更小,如果先保存为 JPG,它将小于之后保存的 PNG
我使用 Microsoft Paint 创建了 15248 x 6552 纯色图片。我将它同时保存为 .png 和 .jpg,并期望 .jpg 比 .png 小,但事实并非如此。 .jpg 文件为 1.49MB,而 .png 文件为 391KB。作为有损压缩的 jpeg 不应该在技术上更小吗?
我在某处读到 .png 更适合纯色等,所以我从网上下载了一张图片(不是纯色)并使用画图将其保存为两种格式。这次 jpeg 比 png 小。仅仅是因为颜色的渐变吗?如果是,那为什么?
即使图片是纯色的,jpg编码能不能压缩得更好?
不一定。
PNG 是一种基于预测的算法,这意味着它会尝试根据先前编码的像素来扣除一个像素的值。我敢打赌,对于实体图像的预测是非常准确的,因此结果非常好。
JPEG 接受不同的 "quality levels",这决定了压缩文件的大小。您的实验版本和网络版本之间的大小差异可能是由于此原因造成的(当然,除非您下载的是不同的图片!)。
请注意,JPEG 可能会引入一些图像伪影,因为它是一种有损算法,而 PNG 将为您恢复准确的输入图像。
在这种情况下,PNG 的性能优于 JPEG 是意料之中的事。
正如其他答案中所指出的,PNG 进行逐行像素预测,然后进行 ZLIB 压缩。如果图像具有单一颜色,则预测将为所有像素生成一个恒定的零值,每行的开头除外。因此压缩将非常有效。我敢打赌,如果图像是“风景”(6552 x 15248 而不是 15248 x 6552),压缩效果会更好一些。
JPEG 压缩相反,将图像分成 8x8 像素的块,并且对于每个块,它尝试精细量化低频分量和粗略地量化高频分量。这对于“自然”(照片或渲染)图像效果很好,但对于颜色很少(或只有一种!)的图像效果不佳。
我发现对于同一张图片,如果先保存为 PNG 然后再保存为 JPG,则 PNG 会更小,如果先保存为 JPG,它将小于之后保存的 PNG