由于PNG格式具有压缩参数,它是否无损?
PNG格式应该是无损格式,但是将图像另存为PNG文件时,会要求您选择压缩级别。这是否意味着PNG格式实际上并不是无损的?今天的“超级用户问答”帖子有助于消除好奇读者的困惑。
今天的问答环节由SuperUser提供,这是Stack Exchange的一个分支,Stack Exchange是由社区驱动的Q&A网站分组。
问题
超级用户阅读器pkout想要知道PNG图像的质量是否受所选压缩级别的影响:
据我了解,PNG文件使用无损压缩。但是,当我使用图像编辑器(例如Gimp)并尝试将图像保存为PNG文件时,它要求的压缩级别在0到9之间。
如果压缩参数会影响压缩图像的视觉精度,那么PNG如何无损?有人可以向我解释一下吗?仅当将压缩级别设置为9时,我才会获得无损行为吗?
根据您选择的压缩级别,图像质量是否有所不同?
答案
超级用户贡献者LordNeckbeard和jjlin为我们提供了答案。首先,领颈长:
PNG已压缩,但无损
压缩级别是文件大小和编码/解码速度之间的权衡。为了过度概括,甚至非图像格式(例如FLAC)也具有类似的概念。
不同的压缩级别,相同的解码输出
尽管由于压缩级别不同,文件大小也不同,但是实际解码输出将是相同的。您可以使用MD5多路复用器将解码输出的MD5散列与ffmpeg进行比较。最好通过一些示例来说明。
创建PNG文件
- 默认情况下,ffmpeg将使用-compression_level 100进行PNG输出。
- 快速,草率的测试表明,在此示例中,100(最高压缩级别)花费的时间比0(最低压缩级别)花费的时间大约长三倍,而解码时间则长了五倍。
比较文件大小
解码PNG文件并显示MD5哈希
由于两个哈希值相同,因此可以确保解码后的输出(未压缩的原始文件)完全相同。
随后是jjlin的回答:
PNG是无损的。在这种情况下,GIMP很可能没有使用最佳的措词选择。
认为是 压缩质量 或者 压缩程度。使用较低的压缩率,您可以获得较大的文件,但是生成时间较短,而使用较高的压缩率,则文件较小,而生成时间更长。
通常情况下,您获得的收益会逐渐减少,即与达到最高压缩级别所需的时间增加相比,大小的减少不会那么多,但完全取决于您。
有什么要补充的解释吗?在评论中听起来不错。是否想从其他精通Stack Exchange的用户那里获得更多答案?在此处查看完整的讨论线程。