开发 | 谷歌开源JPEG编码器Guetzli,压缩35%也能生成高质量图片

谷歌通过线上社区的形式创造了各种新的工具和工业标准,它们所衍生出的服务和产品旨在为使用者提供更好的线上体验。

谷歌近日开源了用于数字图像和网络图形的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/

via googleblog

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-03-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

24010
来自专栏谈补锅

记录C#常用的代码片段

using Newtonsoft.Json; using Newtonsoft.Json.Linq;

962
来自专栏DT乱“码”

简单的考勤系统

连接数据库类 package com.lianrui.it; import java.sql.Connection; import java.sql.Driv...

3509
来自专栏跟着阿笨一起玩NET

C# 通过HttpWebRequest在后台对WebService进行调用

http://www.cnblogs.com/macroxu-1982/archive/2009/12/23/1630415.html

2822
来自专栏玩转JavaEE

RestTemplate的逆袭之路,从发送请求到负载均衡

上篇文章我们详细的介绍了RestTemplate发送请求的问题,熟悉Spring的小伙伴可能会发现:RestTemplate不就是Spring提供的一个发送请求...

1.1K4
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

3006
来自专栏跟着阿笨一起玩NET

winform treeView 数据绑定

982
来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1171
来自专栏c#开发者

jquery easyui datagrid mvc server端分页排序筛选的实现

1自定义一个ModelBinder public class filterRule { public string field { g...

4199
来自专栏码匠的流水账

聊聊spring cloud的AbstractLoadBalancingClient

本文主要研究一下spring cloud的AbstractLoadBalancingClient

852

扫码关注云+社区