WebP調研

WebP簡介:

WebP 格式是 Google 于2010年發布的一種支持有損壓縮和無損壓縮的圖片文件格式,派生自圖像編碼格式 VP8。它具有較優的圖像數據壓縮算法,能帶來更小的圖片體積,而且擁有肉眼識別無差異的圖像質量,同時具備了無損和有損的壓縮模式、Alpha 透明以及動畫的特性。目前googleG+、YouTube以及Google Play全站都在使用WebP格式的圖片。15年雙11手淘前端技術巡演中提到,淘寶3年前native層面就已經支持WebP, 兩年前H5頁面全面支持。QQ空間裝扮、淘寶廣告圖,Facebook Android也都使用WebP。

以下通過研究WebP圖片格式,盡可能全面地了解WebP圖片的優劣勢以及應用WebP圖片給我們帶來的收益以及風險,最終達到提升用戶體驗,提升圖片加載速度,節省帶寬的目的。

WebP優勢

官方測試:

根據測試,WebP無損壓縮的圖片比PNG格式圖片,文件大小上少 26%;

根據測試,WebP有損圖片在同樣SSIM質量指標上比JPEG格式圖片少25~34%。 SSIM是一種衡量兩張數字影像相似的指標

有損壓縮測試方法簡述:

1.將PNG圖片設置不同的壓縮參數壓縮成JPEG圖片,記錄壓縮后的對比的SSIM。

2.將同一張PNG圖片壓縮成WebP圖片,壓縮的WebP圖片的SSIM指標必須比1中記錄的SSIM高。

jpg、webp相同ssim測試

其他測試:

同樣質量的WebP與JPG圖片,在線加載速度測試。測試的JPG和WebP圖片大小如下:

在線測試圖片大小

測試數據折線圖如下:

加載時間對比

從折線圖可以看到,WebP雖然會增加額外的解碼時間,但由于減少了文件體積,縮短了加載的時間,頁面的渲染速度加快了。同時,隨著圖片數量的增多,WebP頁面加載的速度相對JPG頁面增快了。所以,使用WebP基本沒有技術阻礙,還能帶來性能提升以及帶寬節省。

通過以上兩組對比可以得知,WebP在文件大小以及傳輸速度上肯定是擁有優勢的,將極大節省用戶及cdn流量。

動圖

GIF 圖片主要應用于圖片分享類應用中,如微博等。與傳統的 GIF 圖比較,動態 WebP 的優勢在于:

1.支持有損和無損壓縮,并且可以合并有損和無損圖片幀;

2.體積更小,GIF 轉成有損動態 WebP 后可以減小 64% 的體積,轉成無損可以節省 19% 的體積;

3.顏色更豐富,支持 24-bit 的 RGB 顏色以及 8-bit 的 Alpha 透明通道(而GIF 只支持8-bit RGB 顏色以及 1-bit 的透明);

4.添加了關鍵幀、metadata 等數據;

動圖測試:

GIF動圖1?63.9KB ??WebP動圖1?28.9KB

GIF動圖2?1.7MB ??WebP動圖2?479KB

GIF動圖3?2MB?WebP動圖3?208KB

WebP劣勢:

1.各個端支持情況不一。這點會在下一節中詳細說明。

2.遷移成本較大,需要對所有圖片重新編碼,考慮到對舊版的支持,需要額外開辟空間存兩種格式的圖片。

3.編解碼速度上,根據Google的測試,目前WebP與JPG相比較,毫秒級別上,編碼速度慢10倍,解碼速度慢1.5倍。編碼速度即可被沒影響,我們只是在上傳時生成一份WebP圖片。解碼速度則需要客戶端綜合節省下的流量來綜合考慮。總之帶寬節省比cpu消耗更有價值

4.盡管有不少app在使用WebP圖片,但與JPG/PNG相比還是太少了,接受度并沒有太高。

5.app中部分“歸檔化”的交互操作,比如圖片保存,因此這些交互操作上需要進行WebP編解碼成JPG。直接保存下來的webp圖片,非常不方便reuse以及review。

WebP各端支持情況:

瀏覽器支持情況:

瀏覽器支持情況

根據對目前國內瀏覽器占比與 WebP 的兼容性分析,大約有 50% 以上的國內用戶可以直接體驗到 WebP。

如何檢測瀏覽器是否支持:

1.JavaScript 能力檢測,對支持 WebP 的用戶輸出 WebP 圖片

2.使用 WebP?支持插件:WebPJS

3.有一部分CDN廠商是提供webp檢測服務

4.Http header accept type 返回接受的image typ

5.GooglePageSpeed提供自動將jpg轉化成webp,提供給支持webp的瀏覽器上。

Android:

Android 4.0及以上原生支持; 4.0以下可以使用官方提供提供的編解碼庫

iOS:

iOS native 不支持,safari目前也不支持。據說ios 10的safari有可能會支持。native支持層面,google官方,以及第三方都提供了解決方案。國內也有不少ios團隊在做webp圖片的支持工作。

視覺設計:

Photoshop 原生是不支持WebP的,但有插件提供WebP支持

webp各端支持情況

總結:

1.圖片占據云音樂cdn服務中很大的一部分流量,更節省的圖片流量對產品及用戶肯定有巨大提升。一部分cnd廠商是支持webp轉化服務或者web支持探測服務的,這點可以問我們的cdn廠商。

2.目前各端從jpg/png圖片遷移肯定需要一段比較長的過程,并且需要cdn、后臺等準備工作。

參考:

1. WebP官方文檔https://developers.google.com/speed/webp/

2. 淘寶前端優化https://github.com/amfe/article/issues/21

3. 騰訊WebP探尋https://isux.tencent.com/introduction-of-webp.html

4. iOS WebP實踐https://segmentfault.com/a/1190000006266276

5. 七牛云存儲WebP支持https://segmentfault.com/a/1190000002726138

6. 探究WebP一些事兒http://web.jobbole.com/87103/

7. Frequently Asked Questionshttps://developers.google.com/speed/webp/faq

8. 七牛云圖片處理http://blog.qiniu.com/archives/5793

9. https://havecamerawilltravel.com/photographer/webp-website

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 移動端圖片格式調研 圖片通常是移動端流量耗費最多的部分,并且占據著重要的視覺空間。合理的圖片格式選用和優化可以為你...
    AngeloD閱讀 1,253評論 0 5
  • 圖片通常是移動端流量耗費最多的部分,并且占據著重要的視覺空間。合理的圖片格式選用和優化可以為你節省帶寬、提升視覺效...
    傻傻小蘿卜閱讀 794評論 1 9
  • 注明:本人原創翻譯,原版為Essential Image Optimization電子書,這里將其拆分為幾篇文章發...
    ProteanBear閱讀 5,284評論 0 5
  • 盡量減少PNG圖片的大小是Android里面很重要的一條規范。相比起JPEG,PNG能夠提供更加清晰無損的圖片,但...
    Viking_Den閱讀 466評論 0 0
  • WebP(發音 weppy),是一種支持有損壓縮和無損壓縮的圖片文件格式,派生自圖像編碼格式 VP8。根據 Goo...
    九都散人閱讀 4,435評論 0 10