用 SSIMULACRA2 衡量真实的体积节省
文件大小只能告诉你一半的故事。以下说说一项感知指标如何让你信任某个有损设置——并把它推得比肉眼判断敢做到的更远。
文件大小只能告诉你一半的故事。以下说说一项感知指标如何让你信任某个有损设置——并把它推得比肉眼判断敢做到的更远。
让图片变小很容易。难的是判断它是否依然好看——而且要在规模化的场景下、面对整个素材库,还不能靠眯着眼睛一张张看。这正是感知画质指标要填补的空白,而目前静态图像领域最好的一个就是 <b>SSIMULACRA2</b>。
文件小了 90% 听起来很棒,直到你注意到天空出现了块状瑕疵,或者文字变得模糊不清。体积衡量的是成本,而不是结果——所以只针对体积做优化,会在不知不觉中把你推向明显劣化的图像。你需要另一个衡量<i>画质</i>的数字,这样才能找到那个“文件小<b>而且</b>依然好看”的甜蜜点。
经典指标存在明显不足。<b>PSNR</b> 只是衡量像素误差,几乎无法反映人眼实际看到的东西。<b>SSIM</b> 算是一次进步,但很容易被“欺骗”,而且在高画质区间会饱和。两者都可能把两张明明有明显差异的图像判定为“相等”——这让它们在选择压缩设置时显得靠不住。
SSIMULACRA2 是一个基于大规模人类画质评分数据库调校出来的现代指标。它建模图像的方式与人类感知相似——在多个尺度上,并在一个按人眼响应特性加权的色彩空间中——因此它的评分与人们<i>实际</i>能注意到的差异是吻合的。当它说两张图看起来一样时,它们通常确实一样。
分数最高到 100,下面这些区间是可靠的经验法则。对大多数网页照片来说,把目标定在<b>约 80–90</b>,能在获得有意义的体积节省的同时,得到视觉上近乎无损的结果;一旦低于 70,就会开始在渐变、肤色和文字上显现出差异。
与其去猜一个质量数字,不如在心里定一个<b>画质下限</b>,然后用 SSIMULACRA2 这样的感知指标来确认某个设置是否达标。给几张有代表性的图片打分,找到落在目标区间的质量值,再把它应用到整个批次——这样整个素材库都能落在一致、可信的画质水准上。你不再需要在“质量 90”这种保守数值上原地踏步,而是能真正拿到那些原本被白白浪费掉的体积节省。
# 找到能达到感知目标的质量值,然后批量应用 imageforge photo.jpg --convert avif --quality 88 imageforge ./batch/*.jpg --convert webp --quality 85 --json