WebP
WebP(發音:weppy[6][7])是一種同時提供了有損壓縮與無損壓縮(可逆壓縮)的圖片檔案格式[8],衍生自影像編碼格式VP8[9],被認為是WebM多媒體格式的姊妹項目,是由Google在購買On2 Technologies後發展出來[10],以BSD授權條款釋出。[11]
.webp[1] | |
image/webp | |
特征签名 | WEBP |
初始版本 | 2010年9月30日[2] |
最新版本 | 1.2.0 (2021年1月30日[3]) |
專門由 | 資源交換檔案格式(RIFF)[4] |
自由格式 | 是[5] |
网站 | developers |
WebP最初在2010年釋出,目標是減少檔案大小,但達到和JPEG格式相同的圖片品質,希望能夠減少圖片檔在網路上的傳送時間。[12]2011年11月8日,Google開始讓WebP支援無損壓縮和透明色(alpha通道)的功能,而在2012年8月16日的參考實做libwebp 0.2.0中正式支援[13][14]。根據Google較早的測試,WebP的無損壓縮比網路上找到的PNG檔少了45%的檔案大小,即使這些PNG檔在使用pngcrush和PNGOUT處理過,WebP還是可以減少28%的檔案大小[15]。
WebP支援的像素最大數量是16383x16383。有損壓縮的WebP僅支援8-bit的YUV 4:2:0格式。而無損壓縮(可逆壓縮)的WebP支援VP8L編碼與8-bit之ARGB色彩空間。又無論是有損或無損壓縮皆支援Alpha透明通道、ICC色彩配置、XMP詮釋資料。
WebP有靜態與動態兩種模式。動態WebP(Animated WebP)支援有損與無損壓縮、ICC色彩配置、XMP詮釋資料、Alpha透明通道。
技術
位 | 内容 | |||
---|---|---|---|---|
0- 3 |
R | I | F | F |
4- 7 |
length+8 | |||
8-11 |
W | E | B | P |
12-15 |
V | P | 8 | [16] |
16-19 |
length (padded) | |||
20- … |
VP8关键帧 | |||
pad | ? (even length) |
WebP的有损压缩算法是基于VP8视频格式的帧内编码[17],并以RIFF作为容器格式。[2] 因此,它是一个具有八位色彩深度和以1:2的比例进行色度子采样的亮度-色度模型(YCbCr 4:2:0)的基于块的转换方案。[18] 不含内容的情况下,RIFF容器要求只需20字节的开销,依然能保存额外的 元数据(metadata)。[2] WebP图像的边长限制为16383像素。[5]
WebP是基于块预测的。每个块都是根据它上面三个块的值和其左边一个块的值进行预测的(块解码以光栅扫描顺序完成:从左到右,从上到下)。块预测有四种基本模式:水平、垂直、DC(单色)和TrueMotion。利用离散余弦变换或沃尔什-阿达玛转换将预测错误的数据和未预测块压缩在4×4像素子块中。这两种转换都是使用定点算术完成的,以避免舍入误差。输出使用熵编码进行压缩。[18] WebP也明确支持并行解码。[18]
参考实现包含一个Linux命令行程序的转换器,以及以及用于解码的库,与WebM相同。开源社区很快设法将转换器移植到其他平台,例如Windows。[19]
WebP的无损压缩采用先进的技术,例如用于不同颜色通道的专用熵代码,利用反向参考距离的2D位置和最近使用的颜色的颜色缓存。这补充了字典编码、霍夫曼编码和颜色索引变换等基本技术。[14]
支援
目前網頁瀏覽器當中,Google Chrome和Opera原生支援靜態與動態的WebP格式[20][21],而Google Chrome自12版開始支援WebP的漸進式解碼功能[22]。此外所有可以原生播放WebM影像的瀏覽器,也可以透過javascript來顯示WebP影像[23][24]。又Pale Moon 26+瀏覽器僅支援靜態的WebP圖像。Firefox瀏覽器亦在65.0版本支援WebP圖像。[25]
網頁瀏覽器GNOME Web和KDE圖片瀏覽器Gwenview也支援WebP。
圖像軟體當中,Picasa(從3.9版本起)、PhotoLine[26]、Pixelmator[27]、ImageMagick、XnView、IrfanView、GDAL[28]、Aseprite和GIMP(2.10起)皆原生支援WebP格式。
蘋果在macOS Sierra及iOS 10的早期beta版本中加入了WebP支援。[29]而在2016年9月7日釋出的iOS 10和macOS Sierra GM種子版本中卻移除了WebP的支援。
評論
x264的開發者之一:Jason Garrett-Glaser,針對WebP做出了幾點評論[30],根據和其他編碼器(JPEG、x264、Theora)測試的結果,他認為WebP的影像品質是最差的,多數是在模糊度方面。他也評論Google應該等到WebP可以超越JPEG之後再發佈。不過在2011年4月20日,他提到新的WebP編碼器表現的非常好,超越JPEG指日可待。
參考文獻
- . DotWhat.net. [2010-10-01]. (原始内容存档于2013-03-13).
- Rabbat, Richard. . Chromium Blog. Google. 2010-09-30 [2010-10-01]. (原始内容存档于2011-08-13).
- Zern, James. . Chromium. Google. 2021-01-30 [2021-01-30].
- . Google Code. Google. [2010-10-01]. (原始内容存档于2013-03-13).
- . Google Code. Google. [2010-10-06]. (原始内容存档于2013-03-13).
- WebP Home: "Did you know? WebP is pronounced 'weppy'. /(wĕpˈē)/"
- Chapman, Stephen. . ZDNet. 2010-10-04 [2010-10-06]. (原始内容存档于2010-10-07).
- Calore, Michael. . Wired. 2010-10-01 [2010-10-05].
- Paul, Ryan. . Ars Technica. 2010-10-02 [2010-10-05]. (原始内容存档于2011-07-31).
- Shankland, Stephen. . CNET News. CBS Interactive. 2010-09-30 [2010-10-01]. (原始内容存档于2011-04-03).
- Rabbat, Richard. . 2010-10-03 [2011-03-11].
- . Google Code. Google. [2010-10-01]. (原始内容存档于2010-10-04).
- . [2013-08-21]. (原始内容存档于2013-07-01).
- Google Developers Blog: Lossless and Transparency Modes in WebP
- . [2013-08-21]. (原始内容存档于2011-11-20).
- WebP Container Specification: U+0020 for lossy images, and "L" for lossless images.
- Glaser, Fiona. . Diary Of An x264 Developer. 2010-09-30 [2010-10-01]. (原始内容存档于2015-03-19).
- (PDF). Google. 2010-09-23 [2010-10-02].
- . Codeplex. Microsoft. 2010-10-01.
- Metz, Cade. . The Register (San Francisco). 2010-09-30 [2010-10-03].
- Ødegaard, Ruarí. . Opera Desktop Team (Opera Software ASA). My Opera. 2011-03-15 [2011-03-15]. (原始内容存档于2011-03-17).
- . Google. 2011-05-21 [2011-05-20]. (原始内容存档于2011-08-06).
- . GitHub. [2010-10-11]. (原始内容存档于2011-08-11).
- . Blog: this title probably isn't very original. antimatter15.com. 2010-10-03 [2011-05-24]. (原始内容存档于2011-01-13).
- .
- . pl32.com. [2013-10-05].
- David, Chartier. . PC World. IDG. 2010-10-04 [2010-10-05].
- . gdal.org. GDAL - Geospatial Data Abstraction Library. [2011-11-30].
- Stephen Shankland. . CNET. 2016-07-19 [2016-07-20].
- Garrett-Glaser, Jason. . Diary Of An x264 Developer. 2010-09-30 [2010-10-01]. (原始内容存档于2010-11-27).