WebP最初在2010年发布,目标是减少
文件大小,但达到和
JPEG格式相同的图片质量,希望能够减少图片档在网络上的发送时间。2011年11月8日,
Google开始让WebP支持
无损压缩和透明色(
alpha通道)的功能,而在2012年8月16日的参考实做libwebp 0.2.0中正式支持。根据Google较早的测试,WebP的无损压缩比网络上找到的
PNG档少了45%的文件大小,即使这些PNG档在使用pngcrush和PNGOUT处理过,WebP还是可以减少28%的文件大小。
WebP的有损压缩算法是基于
VP8视频格式的
帧内编码,并以RIFF作为容器格式。因此,它是一个具有八位
色彩深度和以1:2的比例进行
色度子采样的亮度-色度模型(YCbCr4:2:0)的基于块的转换方案。不含内容的情况下,RIFF容器要求只需20字节的开销,依然能保存额外的
元数据(metadata)。WebP图像的边长限制为16383像素。
WebP是基于块预测的。每个块都是根据它上面三个块的值和其左边一个块的值进行预测的(块解码以
光栅扫描顺序完成:从左到右,从上到下)。块预测有四种
基本模式:水平、垂直、DC(单色)和TrueMotion。利用
离散余弦变换或沃尔什-阿达玛转换将预测错误的数据和未预测块压缩在4×4像素子块中。这两种转换都是使用定点算术完成的,以避免
舍入误差。输出使用
熵编码进行压缩。WebP也明确支持并行解码。
参考实现包含一个
Linux命令行程序的转换器,以及以及用于解码的库,与
WebM相同。
开源社区很快设法将转换器移植到其他平台,例如Windows。
WebP的
无损压缩采用先进的技术,例如用于不同
颜色通道的专用熵代码,利用反向参考距离的2D位置和最近使用的颜色的颜色缓存。这补充了字典编码、
霍夫曼编码和颜色索引变换等
基本技术。
当前网页
浏览器当中,
Google Chrome和
Opera原生支持静态与动态的WebP格式,而Google Chrome自12版开始支持WebP的渐进式解码功能。此外所有可以原生播放
WebM影像的浏览器,也可以透过javascript来显示WebP影像。又
Pale Moon 26+浏览器仅支持静态的WebP图像。
Firefox浏览器
亦在65.0版本支持WebP图像。
苹果在
macOS Sierra及
iOS 10的早期beta版本中加入了WebP支持。而在2016年9月7日发布的iOS 10和macOS Sierra GM种子版本中却移除了WebP的支持。
x264的开发者之一:
Jason Garrett-Glaser,针对WebP做出了几点评论,根据和其他
编码器(
JPEG、x264、
Theora)测试的结果,他认为WebP的
影像质量是最差的,多数是在
模糊度方面。他也评论
Google应该等到WebP可以超越JPEG之后
再发布。不过在2011年4月20日,他提到新的WebP编码器表现的非常好,超越JPEG指日可待。
谷歌表示,webp这种格式的主要优势在于高效率。他们发现,“在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。
谷歌浏览器已经支持webp格式,
Opera在
版本号Opera11.10后也增加了支持,然而
火狐和
ie暂时还不支持webp格式,可以采用flash插件来显示webp,当然这样会耗费一些性能。
分析人士认为,尽管WebP格式尚未像JPEG格式那样,得到各种软硬件的广泛支持,但
谷歌推广这一格式的优势在于Chrome浏览器。这款谷歌开发的浏览器的
市场份额已达50%以上。