下一代图像格式

WebP 详解

由 Google 开发的现代图像格式。旨在以更小的体积提供无与伦比的画质,加速 Web 浏览体验。

支持透明度
支持动画

帧内预测引擎

px0
px1
px2
px3
px4
px5
px6
px7
px8
px9
px10
px11
px12
px13
px14
px15
目标块: BLOCK_0
预测源:
残差数据: 计算中...

VP8 帧内预测模拟演示

极致压缩,
保留细节。

WebP 的压缩效率源于其基于块的预测编码。它使用图像中已经解码的部分来构建新像素的预测值。

这意味着文件体积更小,加载速度更快,带宽消耗更低。

JPEG (原始) 100 KB
WebP (有损) 65 KB (-35%)
Google WebP

* 基于 SSIM 质量指标测算,同等画质下 WebP 有损压缩比 JPEG 小 25-34%。

压缩原理的核心逻辑

function Predict(NeighborPixels) {

// 利用相邻像素预测当前像素

Predicted_P = Average(Left, Top, TopLeft);

// 只存储预测值与实际值的差值 (Residual)

return Actual_P - Predicted_P;

}

WebP 不会直接存储每个像素的颜色(像 BMP 那样),而是根据周围已知的像素去“猜”当前像素的颜色。它只需要存储“猜错”的那一小部分数据(残差)。这使得文件体积大幅减小。

全能选手的特性

不仅仅是 JPEG 的替代品,更是 PNG 和 GIF 的进化版。

有损与无损

WebP 是一种独特的格式,同时支持有损压缩(VP8 视频编码技术)和无损压缩(WebP Lossless)。

Alpha 透明度

即使在有损压缩模式下,WebP 也支持 8 位 Alpha 通道。这是 JPEG 无法做到的。

动画支持

WebP 可以替代 GIF。它支持有损和无损动画,体积通常比 GIF 小 64% 以上。

底层技术架构

预测编码

WebP 有损压缩主要基于 VP8 视频编解码器的关键帧编码。它将图像分割成 16x16 的宏块,并在每个块内部进一步分割成 4x4 的子块进行预测。

熵编码

预测后的残差数据和运动矢量会经过基于上下文的算术编码(Arithmetic Coding),这比 JPEG 使用的哈夫曼编码(Huffman Coding)效率更高。

comparison.log
格式 比特/像素
JPEG (Q=80) 2.65
WebP (Q=80) 1.82
> 检测到效率提升: ~31%