谷歌通过线上社区的形式创造了各种新的工具和工业标准,它们所衍生出的服务和产品旨在为使用者提供更好的线上体验。
谷歌近日开源了用于数字图像和网络图形的JPEG编码器 Guetzli( [gu?tsli], 在瑞士德语中被翻译为饼干)。与现有的方法相比,它能将高质量图片的大小缩小35%。这就使网站管理员可以使用更少的数据更快地加载网页,此外,它能兼容现有的浏览器、图像处理应用和JPEG标准。
从实现的角度来说Guetzli 与Zopfli算法类似,并不需要引入新的格式就能生成更小的PNG和gzip文件。与前段时间谷歌推出的基于循环神经网络(RNN)的图像压缩方法RAISR和WebP不同,它并不需要对客户端和系统环境进行修改。
JPEG图像的质量与多级压缩过程直接相关:色彩空间转换,离散余弦变换以及量化过程。
在这一阶段,为了得到更小的图片,图像质量也会随之降低。Guetzli通过引入搜索算法来减小JPEG和Guetzli在视觉模型上的差别,试图在最小的质量损失和文件大小之间找到平衡。Guetzli视觉模型用一种更全面和细致的方式来完成色彩感知和视觉遮蔽,以此来代替简单的色彩转换和离散余弦变换。但Guetzli生成更小文件的代价在于,这种搜索算法所需要的时间远远长于现有的压缩方法。
图1 16x16像素的合成示例:一根以蓝天为背景的电话线,传统的JPEG压缩算法会产生加工的痕迹。左图为未压缩的原图。相比于中图(libjpeg),右图(Guetzli)文件的大小更小,也更少出现振铃现象。
Guetzli在不牺牲质量的条件下生成了更小的图像文件。谷歌研究院在试验过程中发现,如果把压缩文件大小设为一个定值,相比于libjpeg图像,人类受试者仍然更倾向于Guetzli生成的图像,即使libjpeg文件大小与Guetzli相似或略大一点。
图2 20x24像素的猫眼图片。左图为未压缩的原图。相比于左图(libjpeg),右图(Guetzli)呈现更弱的振铃效应,并且文件大小也更小。
Guetzli 的目标用户是网站管理员和图形设计者。在多图网站中,Guetzli能够给用户提供更顺畅的体验,并且减少移动用户的加载时间和带宽消耗。此外,谷歌还希望这种新的尝试可以激励大家在图像和视频压缩领域的研究。
附上GitHub项目地址:https://github.com/google/guetzli/