我想知道是否有任何无损图像压缩格式(例如PNG)具有某种唯一性保证,即两个不同的压缩二进制文件始终解码为不同的图像。
我想计算以无损压缩格式存储的图像的哈希,并且想知道计算压缩版本的哈希是否足够。
(有一些充分的理由在未压缩的图像上计算散列,但超出了我的问题范围。)
不,PNG并非如此。压缩过程具有许多参数(每行使用的过滤类型,ZLIB压缩级别和设置),因此单个原始图像可能会生成许多不同的PNG文件。更糟糕的是,PNG允许包含带有错误信息(例如文本注释)的辅助数据(块)。