[研究]图像压缩质量研究
图像压缩质量研究
问题的提出
我有大量的图片存储于硬盘上,并大多数时间只做浏览。考虑到占用空间的性价比,我需要一种二次备份方案,将随身硬盘上的这些图片减小体积,将原图冷存储于另一个机械硬盘中,以兼顾存储成本和效率。
因此,一种面向PNG、JPG的压缩技术是首先就需要考虑且十分必要的。而在实践中,我发现利用JPEG压缩和WebP压缩可以在某种程度上压缩图片,从而降低体积。然而,质量数字不同,图片体积也不同,并且压缩后效果也不一样,那么,这个质量数字应该取值多少呢?
对此,笔者进行了一定的研究。在研究时,使用的照片是NSFW类型(不适合工作场所访问),下文中将使用Lena图片进行介绍。
有趣的是,Lena图本身其实也是一张NSFW图。
对Lena图感兴趣的读者可以去Lenna 97: A Complete Story of Lenna进行了解,然而,如前文所述,Lena图本身也是一张不适合工作场所访问的图。
实验结论
talk is cheap,先把结论放出来

如上图所示:
当压缩质量设置为70时,JPEG和WebP都能获得较好的尺寸和图像质量。
而图上也告诉我们其他信息:
- 质量=100时,webp总比jpeg能够节省约一半的空间
- 质量>80时,提升质量获得的图像质量并不明显(<10%),而体积成指数形式飙升
- 质量<30时,JPEG的图像质量开始明显下降,并随着质量数字的降低而飞快身高,最终将生成完全不可用的图片
- 质量<10时,图像将被压缩到原体积的不足5%,而WebP还能保持可读
JPEG压缩损失的像素距离-频数分布图


上图显示了JPEG将一张图片压缩到质量5时,损失的像素信息的分布。如图所示,可以确认99.9%的像素差异集中于0.4以内(归一化距离,计算方法是将所有距离按照最大值规范化到\([0,1]\)内),而95%的损失集中于0.2以内。
近似的,JPEG压缩时损失的像素距离及其频率的关系符合卡方分布。如上图的红色线所示。
WEBP压缩损失的像素距离-频数分布图


WebP在压缩时也符合相似的规律,然而,其像素差异更集中,可以确认99%的像素差异集中于0.2以内。
WebP的像素差异-频数近似符合指数分布,如上图的红色线所示。
低画质下的压缩效果
webp在质量<10下有损压缩的效果

jpeg在质量<10下有损压缩的效果

尤其是,当质量<5时,JPEG的可读性已经非常差。

如上图所示,JPEG的低画质压缩效果是毁灭性的。
实验过程
通过使用mozjpeg(mozjpeg version 4.1.5 (build 20231110))和libwebp(v1.4.0)进行压缩。基本过程是:将实验照片进行压缩,分别保存为100个级别的图片,随后对这些图片进行图片像素对比。对比的方法是:计算图片的每个像素RGB值的欧几里得距离\(d\)(此处忽略了Alpha通道),当欧几里得距离\(d <10\)时,认为像素存在肉眼可见的差异,并进行标记。随后,统计压缩前后的体积和差异像素点数量,并整理总结成上图。
如上图所示,压缩后的图片与原图片的像素差异点在图片中使用紫色点标识出。
附录
多次实验、多张图片取均值得到的另一实验结果。

作者发布、转载的任何文章中所涉及的技术、思路、工具仅供以安全目的的学习交流,并严格遵守《中华人民共和国网络安全法》、《中华人民共和国数据安全法》等网络安全法律法规。
任何人不得将技术用于非法用途、盈利用途。否则作者不对未许可的用途承担任何后果。
本文遵守CC BY-NC-SA 3.0协议,您可以在任何媒介以任何形式复制、发行本作品,或者修改、转换或以本作品为基础进行创作
您必须给出适当的署名,提供指向本文的链接,同时标明是否(对原文)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示作者为您或您的使用背书。
同时,本文不得用于商业目的。混合、转换、基于本作品进行创作,必须基于同一协议(CC BY-NC-SA 3.0)分发。
如有问题, 可发送邮件咨询.

本文探讨了图像压缩在存储优化中的实际应用,旨在寻找JPEG与WebP压缩格式下的最佳压缩质量设置。作者通过使用mozjpeg与libwebp对图像进行多质量级别压缩,结合像素级欧几里得距离分析,评估了压缩图像的视觉差异与文件大小的关系。实验表明,在质量为70时,JPEG和WebP都能取得良好的画质与体积平衡;WebP在高质量压缩中表现更优,低质量下的可读性也优于JPEG。作者进一步指出,JPEG压缩引起的像素差异近似卡方分布,而WebP则接近指数分布。文章以Lena图为实验样本,并辅以多图平均验证,为图像备份与浏览提供了实用的压缩参数建议。
浙公网安备 33010602011771号