Google Guetzli图片压缩算法预研报告

作者介绍:陈磊,腾讯社交平台部后台开发,高级工程师。参与过朋友网、手机qq空间、微群组、企鹅FM等产品的开发,对大型服务器架构设计、音频、直播、图片领域有研究和工程经验。

背景

Google推出了一个新的编码算法Guetzli,用于编码jpeg格式,官方称比之前libjpeg可以缩小30%的量。此算法只是改了jpeg的编码算法,并没有改解码算法,编出的jpg通用目前的jpg解码器。考虑webp相对弱的兼容性和慢解码速度,Guetzli值得考虑的方案。本文将通过比较libjpeg, Guetzli,webp的压缩率、压缩延时、压缩资源、解压性能,评估Guetzli可用性。

原理

Guetzli基于同样来源于google的一个图片视觉差异评价工具Butteraugli。Butteraugli的评价体系基于三个传统方法没有考虑的原则:

  • 人眼对强黄色光附近蓝光变化是不敏感的,因此黄光区域附近的蓝光可以用更少的bit来编码
  • 人眼对蓝光有着较低的空间分辨率,视网膜中用于分辨高清细节的区域没有蓝色光的受体,故高频区域的蓝色光部分可以用更粗的粒度编码。
  • 将图像中的噪声区域分辨出来进行粗粒度的编码。

基于这三点,Guetzli主要从两方面下手来进行:

  • 对全局量化表进行微调,这一步和我们调整质量参数本质上是一样的
  • 对DCT系数的高频部分进行有选择的丢弃

第二步就比较tricky了。我们通常调整质量参数本质上就是有选择的丢弃高频信息。Guetzli在这一步就相当于替我们降低了质量而不告诉用户,让用户以为仍然保持了质量。总的流程就是Guetzli尝试多种a,b两个方面的可能性,然后分别放到Butteraugli评测工具中评分,最后选择一张它认为最好的结果返回给用户。所以它的处理时延特别长。

(此原理描述摘自文章《Guetzli:谷歌家的东西可能也没有想像的辣么美》

压缩率

压缩率:描述压缩文件的效果名,是文件压缩后的大小与压缩前的大小之比

质量系数:图片压缩级别,质量系数1表示最低图像质量和最高的压缩,质量系数100表示最佳的图片质量和最低效的压缩。下图是libjpg、Guetzli、webp不同质量系数下的压缩率,可以看出:

  • 整体压缩效果:webp>Guetzli>libjpg
  • guetzli比libjpg优12%-33%, webp比Guetzli优20%左右
  • guetzli在高质量系数下,压缩率表现更好

图片肉眼观察质量

对于相同质量系数压缩的图片,各算法肉眼是看不出区别

压缩延时

模型:这里假设业务需要转5档图,这里压缩延时计算模型是一张图片转换成业务需要的五档图的总延时

数据:下面的表是测试后的平均值,每个数据都是五档图加起来的总延时

可以看出:quetilz算法的压缩延时远远高于libjpg webp,前者到分钟,后者不到秒。也就是说业务用guetzli算法,单个节目或者专辑的图片转五档图,不算任务排队时间,转码就需要1分钟。

OMG的yajunwang同学最近用guetzli算法跑了一个不同大小图片,范围是1k到4M,转换成图表如下:横坐标是图片大小,纵坐标是耗时

(此原理描述摘自文章:《谷歌开源图片压缩算法Guetzli实测体验报告》)

分析得出:

  • 转码耗时整体随着图片大小增长
  • 有些异常数据点,是图片size相对小的图片有比较大的像素,这个算法严格的说是耗时和像素大小相关,而不是文件大小

后台压缩资源评估

  • cpu:执行一个guetzli进程可以把单核cpu跑满
  • 内存:guetzli是个内存消耗性的的算法,占用内存随着像素增加而增加,具体测试数据如下:

比如:处理个7.9MPix的图片,尺寸3264*2448,占用1G内存,60G内存的机器只能同时处理不到60张;库里的图片在100K左右,也要100M左右内存。

假设业务每天的图片入库量10000,上面的数据看到单核cpu处理一个图片均值60s,也就是一小时处理60个图片,10核处理600个图片,17个小时可以消化一天的量。对于延时要求不高的运营图片上架场景,是满足的,也可以增加逻辑提高指定图片的优先级。

客户端下载、解码耗时

用户查看图片经过客户端下载和解码两个阶段:

  • 下载延时依赖网络环境、文件大小
  • 解码延时依赖解码算法、机器性能
  • 同一档图,不同算法,总延时优劣比较方法:

设带宽用户网络带宽为N,Guetzli算法压缩的文件大小与Webp压缩后的文件之差为DeltaSize,Webp解压延时与Guetzli解压延时之差DeltaDecodeCost

Guetzli与Webp的优劣公式: 整体耗时差 = DeltaSize/N - DeltaDecodeCost, 整体耗时差大于0表示Webp更优,整体耗时差小于0表示Guetzli更优

以上算法需要线上大量数据测出个均衡值,可以考虑根据带宽和文件大小动态选择。

看一下真实测试的效果

  • 输入:相同的图片源,转换成五档不同的大小
  • 机型:andirod选8核、4核、单核三种机型,ios选择iphone5s、iphone6p、iphone7
  • 下面第一张表是不同机型的解码耗时;第二张表是两个平台不同网络条件的下载耗时、解码耗时、总耗时

(数据由wealongcai,freddyyao两位同学提供)

分析出:

  • 解压性能:guetzli>jpg>webp
  • 解压性能与机器性能成正相关关系
  • 整体耗时上,webp和Guetzli接近,webp从此数据看更胜一筹,两者比jpg优势明显
  • 在网络环境越来越好的情况下,guetzli整体性能表现会越来越好

兼容性

gutilz只能编码yuv编码的图片,不能直接编码RGB格式,需要做先做一步转换

综合评估

  • 对于jpg与guetzli的比较,视觉质量上无区别,压缩率上guetzli有明显优势;编码延时上,guetzli对资源要求高,对图片上线延时要求不高的可以接受。
  • 对于guetzli与webp的比较,视觉质量上无区别,从目前的测试数据来看,webp整体优一些,但是优势不是特别明显,网络环境越好,guetzli表现的越好。
  • 对于H5的jpg在上传延时要求不高的场景,都适合直接用guetzli替换

Guetzli算法刚提出不久,还需要更多的数据支持和验证,如果有问题,请各位指正,谢谢!

相关推荐

Android动态库压缩壳的实现

关于Android图片资源瘦身的奇思妙想

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

陈磊的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

深度 | PyTorch和TensorFlow哪家强:九项对比读懂各自长项短板

选自GitHub 作者:Awni Hannun 机器之心编译 参与:Panda 现在是各种机器学习框架群雄争霸的时代,各种各样的比较文章也层出不穷。近日,斯坦福...

35460
来自专栏AI研习社

深度学习库 Keras 2 重磅发布,与 TensorFlow 联系更紧密

昨天,著名深度学习开源库 Keras 通过官方博客正式发布了全新版本:Keras 2。 根据官方介绍,此次更新的重点有两个: Keras 2 API 将作为 ...

38680
来自专栏瓜大三哥

SDI中的GTX

信号的高频成分经过PCB走线或者电缆传输后相对于信号的低频成分会被衰减得更多,此现象被称为曲阜效应,它会破坏高速信号的完整性,使其眼图关闭并增加信号抖动。为了补...

13940
来自专栏机器之心

资源 | 小米开源移动端深度学习框架MACE:可转换TensorFlow模型

文档地址:https://mace.readthedocs.io/en/latest/

17030
来自专栏PPV课数据科学社区

PyTorch和TensorFlow哪家强:九项对比读懂各自长项短板

近日,斯坦福大学计算机科学系博士生 Awni Hannun 也发表了一篇文章,谈了自己对 PyTorch 和 TensorFlow 这两大明星框架的心得体验,并...

48860
来自专栏华章科技

学习R语言,一篇文章让你从懵圈到入门

PivotalR:用于读取Pivitol(Greenplum)和HAWQ数据库中的数据

31330
来自专栏PPV课数据科学社区

学习R语言,一篇文章让你从懵圈到入门

在实际工作中,每个数据科学项目各不相同,但基本都遵循一定的通用流程。具体如下: 数据科学工作流程 数据导入 数据整理 反复理解数据 数据可视化 数据转换 ...

43240
来自专栏个人分享

PageRank算法

PageRank,网页排名,又称网页级别,传说中是PageRank算法拯救了谷歌,它是根据页面之间的超链接计算的技术,作为网页排名的要素之一。它通过网络浩瀚的超...

35720
来自专栏新智元

【最大降40%】CPU漏洞补丁对机器学习和深度学习性能影响实测

来源:Medium 作者:Mikel Bober-Irizar 编译:刘小芹 【新智元导读】上周爆出的英特尔CPU漏洞门受到很大关注,Linux内核针对Me...

372100
来自专栏CVer

【重磅】吴恩达最新的机器学习书籍更新啦!

Amusi曾于2018年4月5日推送了重磅:吴恩达最新的机器学习书籍《Machine Learning Yearning》,当时Amusi收到了一封邮件,如下所...

13020

扫码关注云+社区

领取腾讯云代金券