ace*_*ace 3 jpeg imagemagick webp
我正在尝试压缩和调整 DSLR 相机照片的大小。但到目前为止我的观察是,当 webp 文件大小比 JPEG 小 30% 左右时,webp 的质量明显下降。
用于使用 imagemagick 生成 webp 的命令:
转换 1.JPG -strip -quality 80 -resize 800 -define webp:method=6 1.webp
我的目标是让 webp 格式的文件大小至少比 JPEG 小 20%,同时 JPEG 和 webp 之间的质量几乎没有差异。这是可以实现的,还是没有免费午餐这样的事情?
只是为了给 @Pwpwpw 的优秀答案添加一个旁注,webp 是一个很好的 PNG 替代品,但作为 JPG 替代品却不太好。
它击败 PNG 是因为它比 libpng 具有更好的无损压缩算法,并且它具有允许不同通道使用不同压缩设置的强大功能。例如,您可以对 alpha 进行无损处理,但对 RGB 进行有损处理,这对于叠加来说非常有用。
相对于 JPG,它的表现较差。它使用 VP8 编解码器进行有损,仅比 JPG 好一些。
我会看一下 HEIC。它使用更现代的 h.265 进行有损压缩,在相同质量下通常比 JPG 好两倍。这是苹果现在在 iOS 上默认使用的格式。
libheif这里有一个很好的演示:
https://strukturag.github.io/libheif/
这就是 libheif,编译为 javascript 并在浏览器中运行。您可以将 .heic 上传到其中并下载为 jpg。libheif 有一些基本的命令行工具来编码和解码图像。
遗憾的是它确实存在一些专利问题,您可能需要谨慎一些。
更新展望更远,当前的希望是 AVIF:它与 HEIC 相同的容器格式(称为 HEIF,令人困惑),但将有问题的 h.265 压缩器替换为 AV1。AV1 大致相当于 h.265,但没有专利。
2022 AVIF 的更新似乎太慢了,不太实用,所以现在希望寄托在JXL上。它速度快,无专利,支持 HDR、透明度等,压缩效果与 HEIC 一样好。Chrome 已经提供了支持,尽管目前还处于支持状态。
您正在重新编码有损压缩 jpeg;如果您有权访问原始原始文件,您应该将它们用作主文件。目前,您正在压缩 jpeg 编码器引入的噪声(和其他伪影),因此 WebP 编解码器无法访问 jpeg 编码时已丢失的相同信息。当然看起来会更糟。
换句话说; 如果可能的话,您应该对原始图像数据进行编码。我知道某些相机和设备仅输出 HEIC / JPEG 而不是 RAW,因此您可能别无选择 - 最好的办法是将 JPEG 保留为 JPEG。
更新自从最初发布以来,我发现使用Google 的 cwebp压缩器显示出比 ImageMagik 6.7.8显着改善的压缩,这是我最初测试的动力。与 PNG 相比,对于具有透明度的图像尤其如此。使用该webp命令的 mac 版本(在引擎盖下使用 cwebp)的文件大约是使用 ImageMagik 压缩的同一文件大小的 1/4,并且确实提供了显着的性能提升。
根据谷歌的说法,“WebP 通常比 JPG 压缩率平均高出 30%” (来源),其视觉质量与 JPG 相似。然而,正如你所建议的,从来没有免费的午餐这样的事情。
质量 质量在很大程度上是一种主观衡量标准,但请记住,您正在比较以 80 质量压缩的文件与没有该压缩级别的文件(至少,这是我从您的问题中了解到的)。仅在不指定较低质量的情况下运行默认转换可能会为您提供略小的文件,而不会损失可见质量。不过,缩小 20% 可能有点困难,但对于某些图像可能是可以实现的。
convert 1.JPG 1.webp # do not specify quality
Run Code Online (Sandbox Code Playgroud)
尺寸 实际上,这在很大程度上取决于您的设置和源图像。例如,我最近在“野外”网站上的文件夹中的所有 jpg 图像上运行此命令:
convert filename.jpg -quality 80 -strip -define webp:lossless=false -define webp:method=6 filename.webp
Run Code Online (Sandbox Code Playgroud)
convert此特定服务器上的命令由 ImageMagick 6.7.8 提供支持。与原始 JPG 相比,某些文件要小得多,而其他文件实际上更大。总的来说,运行该命令后,所有 JPG 图像的总文件大小为 49MB,而所有 WebP 图像的总文件大小为 29MB。这是一个相当不错的节省,但是,当我运行 ImageMagick 的 JPG 压缩时,效果更好:
convert filename.jpg -sampling-factor 4:2:0 -strip -quality 80 -interlace JPEG filename-new.jpg;
Run Code Online (Sandbox Code Playgroud)
目录中所有新 jpg 的大小为 21MB。两者都设置为以 80 质量压缩,但 jpg 压缩似乎更好。这可能与我的一组测试图像上已有的一些压缩以及它如何与 WebP 转换过程交互有关。
正如我发现的那样,文件大小甚至会增加,通常是在有损和无损图像之间进行转换时。在上面链接的常见问题解答页面上,谷歌声称:“这主要是由于色彩空间差异(YUV420 与 ARGB)以及它们之间的转换。”
tl; dr:实际上,它可能会或可能不会改善文件大小,具体取决于图像类型、源文件是否/如何压缩以及您为 WebP 设置的质量。可见退化更难衡量,但请尝试设置更高的质量,或者根本不指定质量。
| 归档时间: |
|
| 查看次数: |
4638 次 |
| 最近记录: |