介绍
Guetzli
是一款JPEG
编码器,其目标是在高视觉质量下实现卓越的压缩密度。Guetzli
生成的图像通常比libjpeg
生成的同等质量的图像小20-30%
。Guetzli
只生成顺序的(非渐进的)JPEG
,因为它们提供了更快的解压缩速度。
JPEG
图像的视觉质量与它的多阶段压缩过程有关:色彩空间变换,离散余弦变换,以及量化等等。Guetzli
具体针对量化阶段,图像视觉质量损失越多,输出图像尺寸越小。Guetzli
努力通过一个搜索算法,来克服 JPEG
格式的精神视觉模型与 Guetzli
的精神视觉模型之间的差别,以一种更全面更详细的方式来结合色彩感知和视觉掩蔽,从而在最小化损失和最小化图像尺寸中达到平衡。不过,尽管 Guetzli
可以使图像尺寸更小,但创建压缩图像所花费的时间要与目前的方法更长。
项目地址
guetzli使用
要试用Guetzli
,您需要构建或下载Guetzli
二进制文件。二进制文件读取PNG
或JPEG
图像并创建优化的JPEG
图像。
guetzli
的使用比较简单,参数很少。默认采用95
的质量,也可以通过 -quality
来指定大于等于84的质量,如果要小于84
,需要修改源码。输入必须是符合转换要求的图片,输出则是jpeg
格式图片。
什么样的图片才是符合要求的呢?
官方说明:
Only YUV color space input jpeg is supported
使用透明通道的png
图、非YUV
的jpeg
比如黑白图、gif
图都是不能转换的。
guetzli [--quality Q] [--verbose] original.png output.jpg
guetzli [--quality Q] [--verbose] original.jpg output.jpg
压缩比例还是不错的,图像质量越高,体积越大压缩的比例就越高。目前测试7M
的图片最大压缩到941 KB
。
请注意,Guetzli
是为处理高质量图像而设计的。您应该始终倾向于提供未压缩的输入图像(例如,尚未使用任何JPEG
编码器压缩的图像,包括Guetzli
)。虽然它也适用于其他图像,但效果会较差。您可以尝试压缩一个封闭的样本高质量图像。
您可以传递--quality
Q
参数来设置质量,单位相当于libjpeg
质量。您还可以传递一个--verbose
标志来查看所进行的编码尝试的跟踪。
请注意,JPEG
图像不支持alpha
通道(透明度)。如果输入是带有alpha
通道的PNG
,则在编码之前,它将覆盖在黑色背景上。
guetzli优劣
优势
兼容性比较好,输出的jpeg
格式图片通用性非常高。没有webp
、sharpp
那种协议不兼容的困扰。
压缩比率高,压缩质量比较好。
劣势
处理类型局限,并不能应对全部类型的图片。只能处理YUV颜色编码的图片。
时效性较差,图片越大处理越慢。7M
的图片要1
个多小时,不适合超高质量大体积的图片批量处理。
结论
guetzli
是一款不错的JPEG
编码器,在何种方面使用还需要根据自身的需求来确定。
转载请注明:清风亦平凡 » Guetzli高质量压缩图片算法工具