我可以将 PNG 图像无损编码为另一种格式,然后再将其解码回相同的文件吗?

我可以将 PNG 图像无损编码为另一种格式,然后再将其解码回相同的文件吗?

我正在存档大约 150GB 的 PNG 资产。为了提高图像的压缩率,我正在尝试荧光素酶抑制剂(免费无损图像格式)。这提供了极好的压缩率,我能够通过使用以下参数将所有文件压缩到 80gb 左右:

flif -e --effort=100 input.png output.flif

出于兼容性原因(这些资产是一个更大项目的一部分),我需要能够将这些图像解码回相同的逐字节文件。我的解码方式如下:

flif -d out.flif out.png

但是,解码后的 PNG 与原始图片并不完全相同,我可以确认 EXIF 数据不是原因。相反,似乎是颜色类型/压缩设置不同。

我是一名软件开发人员,我认为编写一个工具来存储有关原始图像的一些信息,然后使用原始设置重新压缩解码后的图像是一个有趣的项目,但这引出了一个问题 - 这可能吗?我一直在研究 ImageMagick,它似乎可以处理这项任务,但这引出了一个问题:

有可能做到这一点吗?也就是说,使用适当的设置重新压缩 PNG,使其与原始图像逐字节完全相同?或者 PNG 文件的二进制内容是否总是任意的,取决于最初用来对其进行编码的内容?

总结:

我想要拍摄两个使用不同设置进行编码的像素相同的 PNG 图像(A 和 B),并且能够重新压缩 B,以使其在字节上与 A 相同。

答案1

  1. PNG 本身就是无损,但有不同程度的压缩压缩算法用时间换取空间,因此可能的以更压缩的格式保存 PNG 文件可以节省一些空间,尽管在上面的链接中,最佳压缩和最差压缩仅分开 13%。
  2. 从你的测试来看,在这种情况下,荧光素酶抑制剂不是真正无损,准确地重建文件。
  3. 压缩格式旨在重建原始文件逐字,使用校验和或其他完整性验证。豌豆拉链基准测试表明 ARC 4、7Z、RAR、ZIPX 和 ZPAQ 都可以产生与其相当的压缩率测试文件. 话虽如此,已压缩的图像信息数据过于随机,无法通过其他压缩方案进行大幅压缩。

总之,使用真正的无损压缩(即不依赖于视觉细微差别),不太可能将 PNG 缩小超过百分之几。

相关内容