对比研究

对 WebP、JPEG 和 JPEG 的比较研究,2000 年,2010 年 9 月

注意:我们使用 libvpx 库发布的第一个 WebP 版本进行了此初步研究。此外,源图片是我们从网络中抓取的 JPEG 图片。根据社区的反馈,我们现在开展了一项新研究,版本为 0.1.2 libwebp,并以无损图片 (PNG) 作为来源。这项新研究取代了这项研究。

WebP 团队对一组随机选择的 100 万张图片进行了三种图片压缩方法的比较研究。本研究的目标是衡量这些方法实现的压缩,并分析图片大小与压缩之间的权衡取舍。

对数据集中包含的 90 万张 JPEG 图片应用了 WebP、JPEG 2000 和 Re-JPEG 三种压缩方法。JPEG 图片使用 Re-JPEG 重新压缩,以便每张图片尽可能接近目标峰值信噪比 (PSNR) 值。该团队对压缩后的图片进行了分析。

除了大规模研究之外,该团队还手动检查了 100 张随机图片,发现在大多数情况下,WebP 图片的视觉质量令人满意。

总结

与 JPEG 或 JPEG 2000 相比,WebP 可实现更高的整体压缩率。对于网络上最常见的图片,缩小文件大小的增益尤为突出。

数据集

本研究使用的数据集是从网络中抓取的图片库中随机抽取的 100 万张图片集合。下表显示了数据集中不同类型的图片的分布情况。

类型 计数
JPEG 约 90 万
PNG 约 4.7 万
GIF 约 4.7 万
其他 约 6,000

实验设计

这些实验分两个阶段运行:

  1. 该团队针对目标 PSNR 为 42 的图片运行 WebP。他们调整了 WebP 编码器的质量参数 (QP),直到获得的结果接近于为给定图片获取的 42。因此,每张图片的实际 PSNR 并不一定正好为 42。

  2. 该团队使用 WebP 压缩图片的 PSNR 值作为 JPEG 2000 和 Re-JPEG 图片的目标 PSNR。他们还对 JPEG 2000 和 JPEG 图片的质量参数执行了线搜索,以尽可能接近目标 PSNR。

实际压缩结果采用以下公式以百分比形式衡量:

compression_percentage = 100 * (original_image.length - compressed_image.length) / original_image.length

成果

这些测试针对负压缩增益和非负压缩增益得出了以下结果:

非负压缩增益

如果某种方法在压缩后增加了图片大小,该团队没有对该方法做出惩罚。也就是说,当压缩图片长度大于原始图片长度时,系统会将 compression_percentage 视为 0。

负压缩增益

该团队允许采用负压缩百分比结果,以更好地了解各种压缩器的原始性能。

以下是三种方法实现的平均压缩百分比。

类型 获得的平均 PSNR 平均压缩百分比
(非负压缩增益)
平均压缩百分比
(负压缩增益)
WebP 39.38 岁 41.30 39.80 美元
JPEG 2000 39.49 美元 27.67 9.71
重新 JPEG 39.36 岁 22.37 14.62

如果允许负压缩增益,JPEG 2000 的平均性能低于 JPEG。这可能是因为 JPEG 图片中存在高频伪影;这些伪影可能会导致压缩效果不太理想。

实验中用于转换为 JPEG 2000 的 Kakadu 实现未能转换大约 24 万张图片。

JPEG 2000 的压缩百分比低于 Re-JPEG,主要是因为 JPEG 2000 的结果是对许多图片的负压缩。因此,JPEG 图片的总体压缩得分较低。

下图提供了三种方法的分布图:

图 1:图片大小填充分布图

该图表显示,大多数图片都很小。大小超过 500K 的图片的频率通常小于 100。

图 2:WebP、JPEG 和 JPEG 2000 图片的压缩百分比

此图表明,使用 WebP 压缩的图片正文的压缩效果优于 re-jpeg 和 jpeg 2000。此外,使用 WebP 压缩的照片获得了比其他照片更多的正压缩。

图 3:图片大小和压缩百分比的比较

此图显示,WebP 的压缩效果优于其他格式,尤其是对于较小的图片。