正文
GitHub地址:
https://github.com/google/guetzli/
Google的这个新的JPEG编码器叫做Guetzli,由Google研究院苏黎世办公室领导开发。Guetzli在瑞士德语中是曲奇的意思,不过项目内容似乎跟曲奇并没有太大的关联,这也许是Google命名传统的延续,就像Android系统都是以糖果名称来命名那样。
一般而言,优化JPEG图片质量与大小有好几种手段,不过Guetzli聚焦的是量化阶段的压缩。简而言之,量化就是把大量难以压缩的无序数据缩减为易于压缩的有序数据的过程。在JPEG的编码中,这一过程往往是通过将渐变的颜色简化为色块而把小的细节完全抹除掉。
不过这个过程的困难之处在于,要在抹除细节与缩小文件大小之间找到平衡。每一种有损编码器(比如libjpeg、x264、lame)的做法都不一样。
而Guetzli的做法是利用一种新的精神性视觉模型(基于人类的视觉处理系统)来确定应该保留和丢弃哪些颜色和细节,它的名字叫做Butteraugli。Butteraugli的具体细节淹没在一堆高精度的常量之中,这些常量可以生成一个“近似于颜色感知和视觉”的模型,而且比其他的编码器更加透彻和详细。