WebP

圖像文件格式的類型

WebP(發音:weppy[6][7])是一種同時提供了有損壓縮無失真壓縮(可逆壓縮)的圖片檔案格式[8]

WebP
副檔名
.webp[1]
網路媒體型式
image/webp
首次發布2010年9月30日 (2010-09-30)[2]
最新版本
1.5.0[3]在維基數據編輯
2024年12月19日
使用容器資源交換檔案格式(RIFF)[4]
免費格式?[5]
網站developers.google.com/speed/webp/

WebP最初在2010年9月釋出,其支援庫於2018年4月發布1.0版本。截至2021年5月,已有94%的瀏覽器支援此格式[9]

WebP的設計目標是在減少檔案容量的同時,達到和JPEGPNGGIF格式相同的圖片品質,並希望藉此能夠減少圖片檔在網路上的傳送時間。[10]根據Google較早的測試,WebP的無失真壓縮比網路上找到的PNG檔少了45%的檔案容量,即使這些PNG檔在使用pngcrushPNGOUT處理過,WebP還是可以減少28%的檔案容量[11]

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[12],被認為是WebM多媒體格式的姊妹項目,是Google在購買On2 Technologies後獲得技術發展而來的[13],該格式及其衍生的支援庫以BSD授權條款釋出。[14]

2011年10月3日,Google給WebP添加了擴充格式以讓其支援ICC色彩特性檔案可延伸後設資料平台EXIF[15]

2011年11月8日,Google開始讓WebP支援無失真壓縮和透明色(alpha通道)的功能,而在2012年8月16日的參考實做libwebp 0.2.0中正式支援[16][17]

截至2024年8月,已有96.45%的瀏覽器支援此格式[18]

技術

簡單WebP
內容
 0- 3 R I F F
 4- 7 length+8
 8-11 W E B P
12-15 V P 8 [15]
16-19 length (padded)
20- … VP8關鍵訊框
pad (even length)

WebP的失真壓縮演算法是基於VP8影片格式的訊框內編碼英語Intra-frame coding[19],並以RIFF作為容器格式[2] 因此,它是一個具有八位色彩深度和以1:2的比例進行色度子採樣亮度-色度模型YCbCr 4:2:0)的基於塊的轉換方案。[20] 不含內容的情況下,RIFF容器要求只需20位元組的開銷,依然能儲存額外的元資料(metadata)。[2] WebP圖像的邊長限制為16383像素。[5]

WebP是基於塊預測的。每個塊都是根據它上面三個塊的值和其左邊一個塊的值進行預測的(塊解碼以光柵掃描順序完成:從左到右,從上到下)。塊預測有四種基本模式:水平、垂直、DC(單色)和TrueMotion。利用離散餘弦變換沃爾什-阿達瑪轉換將預測錯誤的資料和未預測塊壓縮在4×4像素子塊中。這兩種轉換都是使用定點算術英語fixed-point arithmetic完成的,以避免捨入誤差。輸出使用熵編碼進行壓縮。[20] WebP也明確支援並列解碼。[20]

參考實現包含一個Linux命令列程式的轉換器,以及用於解碼的,與WebM相同。開源社群很快設法將轉換器移植到其他平台,例如Windows。[21]

WebP的無失真壓縮採用先進的技術,例如用於不同顏色通道的專用熵代碼,利用反向參考距離的2D位置和最近使用的顏色的顏色快取。這補充了字典編碼、霍夫曼編碼和顏色索引變換等基本技術。[17]

支援

瀏覽器

Chrome和所有基於Chromium的瀏覽器(如OperaBrave等)均原生支援靜態與動態的WebP格式[22][23],且自12版開始支援WebP的漸進式解碼功能[24]

從2020年1月後發布的基於Chromium的Edge版本原生支援WebP格式。在此之前基於EdgeHTML的Edge版本則在除安全應用保護模式外,通過預設安裝的平台擴充實現支援[25]

Firefox和所有延伸自Firefox的瀏覽器(如Pale MoonWaterfox等)瀏覽器亦在65.0版本起支援WebP圖像。[26]

2020年9月,在iOS 14macOS Big SurSafari 14中加入了WebP支援。[27]

Linux中使用的GNOME WebKDE圖片瀏覽器Gwenview也支援WebP。

此外所有可以原生播放WebM影像的瀏覽器,也可以透過javascript來顯示WebP影像[28][29]。不過在Internet Explorer 6和以上版本中是通過Flash實現的。

圖像軟體

圖像軟體當中,Picasa(從3.9版本起)、PhotoLine英語PhotoLine[30]Pixelmator[31]ImageMagickXnViewIrfanViewGDAL[32]、Aseprite和GIMP(2.10起)皆原生支援WebP格式。

系統

Android 4.0 支援解碼和編碼 WebP 圖像(通過點陣圖和 Skia 引擎)。[33]

其他程式

FFmpeg 在連結 VP8/VP9 參考代碼庫 libvpx 的情況下可以從 WebM 影片提取 VP8 關鍵訊框,並有指令碼追加 WebP RIFF 檔頭,並對怪異的訊框長度追加 NUL 填充位元組。同時 FFmpeg 也支援直接使用 libwebp。

Gmail 和 Google 相簿都支援 WebP。

Sumatra PDF 從2.4版開始支援 WebP。[34]

Telegram 將 WebP 用於他們的表情符號,聲稱它們的顯示速度比訊息應用程式中通常使用的其他格式快5倍[35]

Signal 在非動態圖片貼紙中使用 WebP 格式。[36]

LibreOffice 從7.4版本開始支援匯入及匯出 WebP 圖像,[37]採用同樣技術的 Collabora Online 也獲得這一格式的支援。

Godot 引擎 4.0 版支援匯入及匯出 WebP 圖像,並使用 WebP 作為編排已匯入的壓縮紋飾圖像的內部格式。[38]

評論

x264的開發者之一:Jason Garrett-Glaser,在2010年時針對WebP做出了幾點評論[39],根據和其他編碼器(JPEG、x264、Theora)測試的結果,他認為WebP的影像品質是最差的,多數是在模糊度方面。他也評論Google應該等到WebP可以超越JPEG之後再發佈。不過在2011年4月20日,他提到新的WebP編碼器表現的非常好,超越JPEG指日可待。

WebP 2

WebP 2是Google自2021年6月起開發的新一代WebP。它的具體實現為libwebp2。這種新格式的主要目標是達到與AV1類似的壓縮比,並同時保有更快的編碼和解碼速度[40]

相關條目

參考文獻

  1. ^ WEBP file extension. DotWhat.net. [2010-10-01]. (原始內容存檔於2013-03-13). 
  2. ^ 2.0 2.1 2.2 Rabbat, Richard. WebP, a new image format for the Web. Chromium Blog. Google. 2010-09-30 [2010-10-01]. (原始內容存檔於2011-08-13). 
  3. ^ refs/tags/v1.5.0 - webm/libwebp - Git at Google. [2024年12月21日]. 
  4. ^ RIFF Container. Google Code. Google. [2010-10-01]. (原始內容存檔於2013-03-13). 
  5. ^ 5.0 5.1 WebP FAQs. Google Code. Google. [2010-10-06]. (原始內容存檔於2013-03-13). 
  6. ^ WebP Home頁面存檔備份,存於網際網路檔案館): "Did you know? WebP is pronounced 'weppy'. /(wĕpˈē)/"
  7. ^ Chapman, Stephen. Google's New WebP Image Standard Is All About SEO. ZDNet. 2010-10-04 [2010-10-06]. (原始內容存檔於2010-10-07). 
  8. ^ Calore, Michael. Meet WebP, Google's New Image Format. Wired. 2010-10-01 [2010-10-05]. (原始內容存檔於2011-09-25). 
  9. ^ WebP image format | Can I use... Support tables for HTML5, CSS3, etc. caniuse.com. [2021-07-18]. (原始內容存檔於2021-07-23). 
  10. ^ Comparative Study of WebP, JPEG and JPEG 2000. Google Code. Google. [2010-10-01]. (原始內容存檔於2010-10-04). 
  11. ^ Google Code blog: Lossless and transparency encoding in WebP. [2013-08-21]. (原始內容存檔於2011-11-20). 
  12. ^ Paul, Ryan. Google's new VP8-based image format could replace JPEG. Ars Technica. 2010-10-02 [2010-10-05]. (原始內容存檔於2011-07-31). 
  13. ^ Shankland, Stephen. Google offers JPEG alternative for faster Web. CNET News. CBS Interactive. 2010-09-30 [2010-10-01]. (原始內容存檔於2011-04-03). 
  14. ^ Rabbat, Richard. License/Patent clarification. 2010-10-03 [2011-03-11]. (原始內容存檔於2013-06-20). 
  15. ^ 15.0 15.1 WebP Container Specification頁面存檔備份,存於網際網路檔案館): U+0020 for lossy images, and "L" for lossless images.
  16. ^ WebP v0.2.0 decoder and encoder source tree. [2013-08-21]. (原始內容存檔於2013-07-01). 
  17. ^ 17.0 17.1 Google Developers Blog: Lossless and Transparency Modes in WebP. [2013-08-21]. (原始內容存檔於2016-03-03). 
  18. ^ WebP image format | Can I use... Support tables for HTML5, CSS3, etc. caniuse.com. [2022-01-29]. (原始內容存檔於2021-07-23). 
  19. ^ Glaser, Fiona. H.264 and VP8 for still image coding: WebP?. Diary Of An x264 Developer. 2010-09-30 [2010-10-01]. (原始內容存檔於2015-03-19). 
  20. ^ 20.0 20.1 20.2 VP8 Data Format and Decoding Guide (PDF). Google. 2010-09-23 [2010-10-02]. [永久失效連結]
  21. ^ WebP for .NET. Codeplex. Microsoft. 2010-10-01 [2018-03-02]. (原始內容存檔於2018-01-16). 
  22. ^ Metz, Cade. Google open sources JPEG assassin. The Register (San Francisco). 2010-09-30 [2010-10-03]. (原始內容存檔於2019-11-04). 
  23. ^ Ødegaard, Ruarí. CSS gradients, WebP, and Declarative UI. Opera Desktop Team (Opera Software ASA). My Opera. 2011-03-15 [2011-03-15]. (原始內容存檔於2011-03-17). 
  24. ^ The Chromium Blog: WebP in Chrome, Picasa, Gmail With a Slew of New Features and Improvements. Google. 2011-05-21 [2011-05-20]. (原始內容存檔於2011-08-06). 
  25. ^ Aleksandersen, Daniel. WebP images won’t load in Microsoft Edge with Application Guard. www.ctrl.blog. 2018-11-14 [2021-07-18]. (原始內容存檔於2021-07-28) (英語). 
  26. ^ Firefox 65 Release Note. [2019-01-29]. (原始內容存檔於2021-12-15). 
  27. ^ Apple Developer Documentation - Safari 14 Release Notes. developer.apple.com. [2021-05-13]. (原始內容存檔於2021-05-14). 
  28. ^ Weppy Demo: WebP in modern browsers today. GitHub. [2010-10-11]. (原始內容存檔於2011-08-11). 
  29. ^ Weppy: Javascript Shim for WebP on Chrome 6 and Firefox 4.0. Blog: this title probably isn't very original. antimatter15.com. 2010-10-03 [2011-05-24]. (原始內容存檔於2011-01-13). 
  30. ^ Release notes Version 18.00. pl32.com. [2013-10-05]. (原始內容存檔於2021-05-13). 
  31. ^ David, Chartier. Pixelmator to Add Support for Google's WebP Image Format. PC World. IDG. 2010-10-04 [2010-10-05]. [失效連結]
  32. ^ GDAL supported formats. gdal.org. GDAL - Geospatial Data Abstraction Library. [2011-11-30]. (原始內容存檔於2016-01-12). 
  33. ^ Android 4.0 Platform Highlights. [2023-09-16]. (原始內容存檔於2011-11-11). 
  34. ^ version history. SumatraPDF documentation. [2023-09-16]. (原始內容存檔於2021-06-02). 
  35. ^ Stickers Done Right. Telegram. 2015-01-02 [2022-01-29]. (原始內容存檔於2022-04-29). 
  36. ^ Stickers – Signal Support. [2023-09-16]. (原始內容存檔於2023-04-19). 
  37. ^ LibreOffice 7.4 Community: Release Notes - the Document Foundation Wiki. [2023-09-16]. (原始內容存檔於2022-08-24). 
  38. ^ Add support for saving WebP images #61770. GitHub. 21 June 2022-06-21 [2023-09-16]. (原始內容存檔於2023-02-28). 
  39. ^ Garrett-Glaser, Jason. H.264 and VP8 for still image coding: WebP?. Diary Of An x264 Developer. 2010-09-30 [2010-10-01]. (原始內容存檔於2010-11-27). 
  40. ^ codecs/libwebp2 - Git at Google. chromium.googlesource.com. [2021-07-18]. (原始內容存檔於2021-03-25). 

外部連結