guetzli简单使用

guetzli github仓库

guetzli github

介绍

Guetzli 是一种 JPEG 编码器,旨在以高视觉质量实现出色的压缩密度。Guetzli 生成的图像通常比 libjpeg 生成的同等质量的图像小 20-30%。Guetzli 仅生成顺序(非渐进式)JPEG,因为它们提供更快的解压缩速度。

安装与使用

按照文档去安装蛮简单的,就不过多介绍了。我这边是基于 docker 去实现的,生成的镜像文件已推送到远程,可使用docker pull keyson/guetzli:latest 得到镜像。

生成容器:

docker run -itd --name guetzli-test -v D:\docker_com\guetzli-docker\sync\images:/data/sync --privileged=true keyson/guetzli

进入容器:
docker exec -it -u root guetzli-test /bin/bash

运行命令guetzli,可以看到以下说明:

root@74d386b6d354:/data/sync# guetzli  # 由于镜像里做了软链,任意地方调用guetzli都可
Guetzli JPEG compressor. Usage:
guetzli [flags] input_filename output_filename

Flags:
  --verbose    - Print a verbose trace of all attempts to standard output.
  --quality Q  - Visual quality to aim for, expressed as a JPEG quality value.
                 Default value is 95.
  --memlimit M - Memory limit in MB. Guetzli will fail if unable to stay under
                 the limit. Default limit is 6000 MB.
  --nomemlimit - Do not limit memory usage.

其参数不多,也很容易理解。参数说明:

  • –verbose:打印对标准输出的所有尝试的详细跟踪。
  • –quality Q :目标视觉质量,以 JPEG 质量值表示。默认值为 95。
  • –memlimit M:以 MB 为单位的内存限制。如果不能保持在限制以下,Guetzli 将失败。默认限制为 6000 MB。
  • –nomemlimit:不限制内存使用。

简单的示例

我这边是使用一张原图大小为 1592KB 的图片。 在默认参数下使用 Guetzli对其进行4次压缩看看结果。
第一次
guetzli th15.jpg output.jpg

第二次
guetzli output.jpg output2.jpg

第三次
guetzli output2.jpg output3.jpg

第四次
guetzli output3.jpg output4.jpg

可以看到运行时容器的状态,确实是蛮吃内存:
在这里插入图片描述

可以看到结果:
在这里插入图片描述
图片原大小为1592KB的(在我本机)经过四次压缩后,变成了653 KB,重要的是很难看到图片质量是否降低。这个真得厉害。

结论:可以使用guetzli对图片进行多次压缩。当然如果想一次搞定的话,可以改变参数来降低质量。

注意事项

  • Guetzli 使用大量内存。按官方文档来说,应该为 1Mpix 提供 300MB 的内存。
  • Guetzli 使用了大量的 CPU 时间。每 1MPix 输入图像使用大约1分钟的 CPU。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
谷歌在开源社区发布了一款最新的JPEG图片编辑器Guetzli,其压缩能力强大。 ­  谷歌表示,Guetzli在将无损图片转换成JPEG格式的过程中,步骤与传统编辑器(如:libjepg)无异,但通过新型算法对图片的色彩和细腻度进行了优化,从而在画质与文件体积方面取得了完美平衡。 Guetzli,在瑞士德语中是“cookie(曲奇)”的意思,是一个针对数码图像和网页图像的 JPEG 编码器,能够通过产生更小的 JPEG 文件来达到更快的在线体验,并且同时保持与当前浏览器,图像处理应用和 JPEG 标准的兼容性。Google 称 Guetzli 创建高质量的 JPEG 图像文件的大小比当前的压缩方法要再小 35%。 JPEG 图像的视觉质量与它的多阶段压缩过程有关:色彩空间变换,离散余弦变换,以及量化等等。Guetzli 具体针对量化阶段,图像视觉质量损失越多,输出图像尺寸越小。Guetzli 努力通过一个搜索算法,来克服 JPEG 格式的精神视觉模型与 Guetzli 的精神视觉模型之间的差别,以一种更全面更详细的方式来结合色彩感知和视觉掩蔽,从而在最小化损失和最小化图像尺寸中达到平衡。不过,尽管 Guetzli 可以使图像尺寸更小,但创建压缩图像所花费的时间要与目前的方法更长。 上图为 16x16 像素样本,是挂在蓝天下的一根电话线,传统 JPEG 算法经常会遇到的失真状况。左边是未压缩的原图,中间为较小尺寸的 libjpeg,右边是失真更少的 Guetzli 。 Google 还表示在实验中把压缩图像的尺寸设为常数,相比于 libjpeg 输出的图像,在人工评估时大家总是更偏好 Guetzli 产生的图像,即使当 libjpeg 的图像和 Guetzli 的大小相同甚至更大一些。这点让他们觉得压缩速度慢一点也是值得的。       经笔者测试,Guetzli压缩极其耗时,采用单线程,125KB的图片压缩耗时达2分钟。github也有一群用户抱怨压缩极慢,8M的图片耗时20分钟。 看来被广大开发者应用还得解决性能问题才行,这样的耗时很多人都无法接受。 标签:guetzli  libjepg  谷歌

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值