BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Google开源Brotli压缩算法

| 作者 谢丽 关注 12 他的粉丝 发布于 2015年10月8日. 估计阅读时间: 3 分钟 | ArchSummit北京2018 共同探讨机器学习、信息安全、微服务治理的关键点

谷歌非常重视互联网用户的体验,而提升网页加载速度是提升用户体验的一种重要方式。两年前,他们发布了Zotfli压缩算法。该算法在默认设置下的输出比zlib的最大压缩比输出还要小3-8%。PNG优化器、Web内容预处理等许多压缩方案中都集成了该算法。基于该算法的应用情况,结合其它现代压缩需求,谷歌开发并开源了一个新的算法——Brotli压缩算法。该算法由谷歌压缩团队的Jyrki Alakuijala和Zoltan Szabadka开发,其中Jyrki亦是Zotfli压缩算法的创建者。

不同于Zopfli兼容Deflate,Brotli是一种全新的数据格式,可以提供比Zopfli高20-26%的压缩比。据谷歌研究,Brotli压缩速度同zlib的Deflate实现大致相同,而在Canterbury语料库上的压缩密度比LZMAbzip2略大。

谷歌对这种数据格式寄予了厚望,Zoltan写道:

更小的压缩尺寸可以提供更好的空间利用率和更快的页面加载速度。我们希望,在不远的将来,主流浏览器都能支持这种格式,而且,更小的压缩尺寸会给移动用户带来额外的好处,比如更低的数据传输费用和电量消耗。

谷歌的这份发布公告吸引了许多网友的关注。网友Szabolcs Péter指出,Brotli在2013年就已经发布,不应该算是一种新的压缩算法了。对此,Jyrki答复道:

Brotli的第一个版本是用于Web字体一次性压缩的非对称算法,而现在的Brotli已经扩展成为一个通用的无损压缩算法。我们重写了编码器的重要组成部分,提高了压缩比以及编码器和解码器的速度,改进了流API,增加了质量等级,减少了解码内存占用,并考虑了更多的应用场景,Brotli在各种平台上的性能也更平衡了。我们今天的发布就是关于这个。我们认为,它已经做好准备吸引更多注意及广泛应用于各种场景。

网友Lucas Marsh则对该算法的性能提出了质疑。他在一项基准测试中发现,Brotli虽然比bzip好,但并没有比LZMA强。对此,Jyrki是这样解释的:

从设计上讲,对于非常大的文件,LZMA和LZHAM压缩得更多,尤其是当文件大小超过16MB时。提高大文件的压缩比有三个缺点:增加了解码时的内存占用,降低了小文件压缩的性能以及在某种程度上降低了编码和解码速度。Brotli通常压缩的更多的是0.5-1MB的文件。当你有更大的数据,并且不用为解码内存占用担心时,可以通过使用更大的滑动窗口来提高Brotlin的性能——对于大文件,可以试下将窗口大小参数设为24位(16MB)。


感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

唉。一天新闻google能占三成。 by 孙 庚泽

这公司也忒牛逼了,一天的新闻三成都是关于他的。。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT