WebP
package.lua第80行Lua错误:module 'Module:CGroup/core' not found
页面Module:Infobox/styles.css没有内容。
| 脚本错误:没有“InfoboxImage”这个模块。 | |
| 脚本错误:没有“InfoboxImage”这个模块。 | |
| 扩展名 | Template:Monodiv |
|---|---|
| 互联网媒体类型 | Template:Monodiv |
| 首次发布 | 2010年9月30日[2] |
| 最新版本 | 脚本错误:没有“Wd”这个模块。 脚本错误:没有“Wd”这个模块。 |
| 使用容器 | 资源交换档案格式(RIFF)[3] |
| 免费格式? | 是[4] |
| 网站 | developers |
WebP(发音:weppy[5][6])是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片档案格式[7]。
WebP最初在2010年9月释出,其支持库于2018年4月发布1.0版本。截至2021年5月,已有94%浏览器支持此格式[8]。
WebP的设计目标是在减少档案容量同时,达到和JPEG、PNG、GIF格式相同的图片品质,并希望借此能够减少图片档在网络上的传送时间。[9]根据Google较早的测试,WebP的无损压缩比网络上找到的PNG档少了45%档案容量,即使这些PNG档在使用pngcrush和PNGOUT处理过,WebP还是可以减少28%的档案容量[10]。
WebP支援的像素最大数量是16383x16383。有损压缩的WebP仅支援8-bit的YUV 4:2:0格式。而无损压缩(可逆压缩)的WebP支援VP8L编码与8-bit之RGBA色彩空间。而无论是有损或无损压缩皆支援Alpha透明通道、ICC色彩配置、XMP诠释资料。
WebP有静态与动态两种模式。动态WebP(Animated WebP)支援有损与无损压缩、ICC色彩配置、XMP诠释资料、Alpha透明通道。
历史[编辑]
Google于2010年9月30日首次公布WebP格式,它衍生自影像编码格式VP8[11],有认为是WebM多媒体格式的姊妹项目,是Google在购买On2 Technologies后获得技术发展而来的[12],该格式及其衍生的支持库以BSD授权条款释出。[13]
2011年10月3日,Google给WebP添加了扩展格式以让其支持ICC色彩特性文件、可扩展后设资料平台和EXIF[14]。
2011年11月8日,Google开始让WebP支援无损压缩和透明色(alpha通道)的功能,而在2012年8月16日的参考实做libwebp 0.2.0中正式支援[15][16]。
截至2024年8月,已有96.45%的浏览器支持此格式[17]。
技术[编辑]
| 位 | 内容 | |||
|---|---|---|---|---|
0- 3
|
R | I | F | F |
4- 7
|
length+8 | |||
8-11
|
W | E | B | P |
12-15
|
V | P | 8 | [14] |
16-19
|
length (padded) | |||
20- …
|
VP8关键帧 | |||
| pad | ? (even length) | |||
WebP的有损压缩算法是基于VP8视频格式的帧内编码[18],并以RIFF作为容器格式。[2] 因此,它是一个具有八位色彩深度和以1:2的比例进行色度子采样的亮度-色度模型(YCbCr 4:2:0)的基于块的转换方案。[19] 不含内容的情况下,RIFF容器要求只需20字节的开销,依然能保存额外的元数据(metadata)。[2] WebP图像的边长限制为16383像素。[4]
WebP是基于块预测的。每个块都是根据它上面三个块的值和其左边一个块的值来预测(块解码以光栅扫描顺序完成:从左到右,从上到下)。块预测有四种基本模式:水平、垂直、DC(单色)和TrueMotion。利用离散余弦变换或沃尔什-阿达玛转换将预测错误的数据和未预测块压缩在4×4像素子块中。这两种转换都是使用脚本错误:没有“ilh”这个模块。完成的,以避免舍入误差。输出使用熵编码进行压缩。[19] WebP也明确支持并行解码。[19]
参考实现包含一个Linux命令行程序的转换器,以及用于解码的库,与WebM相同。开源社区很快设法将转换器移植到其他平台,例如Windows。[20]
WebP的无损压缩采用先进技术,例如用于不同颜色通道的专用熵代码,利用反向参考距离的2D位置和最近使用的颜色的颜色缓存。这补充了字典编码、霍夫曼编码和颜色索引变换等基本技术。[16]
支援[编辑]
浏览器[编辑]
Chrome和所有基于Chromium的浏览器(如Opera、Brave等)均原生支援静态与动态的WebP格式[21][22],且自12版开始支援WebP的渐进式解码功能[23]。
从2020年1月后发布基于Chromium的Edge版本原生支持WebP格式。在此之前基于EdgeHTML的Edge版本则在除安全应用保护模式外,通过默认安装的平台扩展实现支持[24]
Firefox和所有延伸自Firefox的浏览器(如Pale Moon和Waterfox等)浏览器亦在65.0版本起支援WebP图像。[25]
2020年9月,在iOS 14和macOS Big Sur的Safari 14中加入了WebP支持。[26]
在Linux中使用的GNOME Web和KDE图片浏览器Gwenview也支援WebP。
此外所有可以原生播放WebM影像的浏览器,也可以透过javascript来显示WebP影像[27][28]。不过在Internet Explorer 6和以上版本中是通过Flash实现的。
图像软件[编辑]
图像软件当中,Picasa(从3.9版本起)、脚本错误:没有“ilh”这个模块。[29]、Pixelmator[30]、ImageMagick、XnView、IrfanView、GDAL[31]、Aseprite和GIMP(2.10起)皆原生支援WebP格式。
系统[编辑]
Android 4.0 支持解码和编码 WebP 图像(通过位图和 Skia 引擎)。[32]
其他程序[编辑]
FFmpeg 在链接 VP8/VP9 参考代码库 libvpx 的情况下可以从 WebM 视频提取 VP8 关键帧,并有脚本追加 WebP RIFF 标头,并对怪异的帧长度追加 NUL 填充字节。同时 FFmpeg 也支持直接使用 libwebp。
Gmail 和 Google 相册都支持 WebP。
Sumatra PDF 从2.4版开始支持 WebP。[33]
Telegram 将 WebP 用于他们的表情符号,声称它们的显示速度比消息应用程序中通常使用的其他格式快5倍[34]。
Signal 在非动态图片贴纸中使用 WebP 格式。[35]
LibreOffice 从7.4版本开始支持导入及导出 WebP 图像,[36]采用同样技术的 Collabora Online 也获得这一格式支持。
Godot 引擎 4.0 版支持导入及导出 WebP 图像,并使用 WebP 编排已导入的压缩纹饰图像的内部格式。[37]
评论[编辑]
x264的开发者之一:Jason Garrett-Glaser,在2010年时针对WebP做出了几点评论[38],根据和其他编码器(JPEG、x264、Theora)测试结果,他认为WebP影像品质是最差的,多数是在模糊度方面。他也评论Google应该等到WebP可以超越JPEG之后再发布。不过在2011年4月20日,他提到新的WebP编码器表现非常好,超越JPEG指日可待。
WebP 2[编辑]
WebP 2是Google自2021年6月起开发的新一代WebP。它具体实现为libwebp2。这种新格式的主要目标是达到与AV1类似压缩比,并同时保有更快编码和解码速度[39]。
相关条目[编辑]
参考文献[编辑]
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 2.0 2.1 2.2 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 4.0 4.1 脚本错误:没有“citation/CS1”这个模块。
- ↑ WebP Home (页面存档备份,存于互联网档案馆): "Did you know? WebP is pronounced 'weppy'. /(wĕpˈē)/"
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 14.0 14.1 WebP Container Specification (页面存档备份,存于互联网档案馆): U+0020 for lossy images, and "L" for lossless images.
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 16.0 16.1 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 19.0 19.1 19.2 脚本错误:没有“citation/CS1”这个模块。package.lua第80行Lua错误:module 'Module:Category handler/data' not foundpackage.lua第80行Lua错误:module 'Module:Category handler/data' not found[永久失效链接]
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。package.lua第80行Lua错误:module 'Module:Category handler/data' not foundpackage.lua第80行Lua错误:module 'Module:Category handler/data' not found[失效链接]
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
- ↑ 脚本错误:没有“citation/CS1”这个模块。
外部链接[编辑]
页面Module:Side box/styles.css没有内容。页面Template:Sister project/styles.css没有内容。
package.lua第80行Lua错误:module 'Module:Navbar/configuration' not found