今天我准备向大家介绍Mozilla的一个新项目:mozjpeg。在目前兼容各个JPEG编码器的情况下,这个项目以期提供产品级的JPEG格式解码器来提高压缩率。
我们为什么要做这个项目呢?
1992年左右,JPEG格式就作为有损压缩的图片格式在Web世界里流行起来了,它的主流地位持续了很长时间。可以说Web上绝大部分照片都是以JPEG格式存在。作为有损压缩的图片格式化,只有JPEG能在各个浏览器甚至所有的软件上正常工作。
这些年来,各个网站上的图片的数量和大小都增长了很多。相对的,HTML、JS和CSS文件大小都减小了。这说明在页面加载的过程里,图片占用了大量的网络流量。所以减小图片的大小能够有效地实现页面优化。
在压缩效率方面,JPEG编码器经历了一段时间的停滞不前,用别的方式来替代JPEG也一度成为了热门话题。但是使用新的图片格式以后,还要在兼容 性上再花费好几年时间,所以JPEG的弃用论的热度也渐渐冷却。在Mozilla,我们从不怀疑在算法层面上的改进是有作用的。即使在目前的过渡 期,JPEG仍然会被广泛地使用。
经过了20多年,现在JPEG编码器不知道是不是真的到达了压缩极限。在经过和多为工程师的讨论后,我们认为即使在很高的兼容性要求下,JPEG仍然可以进一步压缩。我们掌握了一些可靠的方式来进行进一步探索,于是mozjpeg项目就开始了。
在现在的1.0发布版添加了“jpgcrush”功能的libjpeg-turbo的 分支。我们注意到用perl脚本写的“jpgcrush”能够有效减小JPEG文件大小,你可以在许许多多网上论坛上搜索到关于“jpgcrush”的信 息。它在无损的基础上有效减小了文件大小,特别是在PNG转为JPEG时,用IJG libjpeg可以达到2%-6%的压缩比;维基媒体上获取的1500个JPEG文件样本平均达到了10%的压缩率。达到这样的效果是通过在编码过程里寻 找使用到的最少位数。就我们所知,目前为止还没有任何产品用到了这项技术,所以我们把它作为mozjpeg的第一个特性。
我们下一个目标是利用栅格量化来提高编码质量。可以通过下面的方式为这个项目提供帮助或者了解更多信息:
- github
- 邮件组
原文链接: Mozilla Research 翻译: 伯乐在线 - kmokidd
文章转载自 开源中国社区 [http://www.oschina.net]