認識 VP8 影像編碼:整合 HTML5 更小更漂亮、挑戰 H.264 地位

認識 VP8 影像編碼:整合 HTML5 更小更漂亮、挑戰 H.264 地位

ADVERTISEMENT

由 Google 所領導的影像 codec:VP8,想要靠著與 HTML5 的整合,以及對手機、平板電腦等,運算能力較低的手持裝置最佳化,提供無專利問題的解決方案,來挑戰H.264龍頭霸主的地位。

目前影像codec(編碼、解碼器)仍以H.264為主流規格,無論手機、平板電腦,或是YouTube,甚至是藍光影片光碟,都將H.264列入支援清單,儼然成為當代影像codec霸主。

在2012年3月舉辦的MWC(Mobile World Congress,世界移動通訊大會)中,Qualcomm展示了下一代影像codec H.265,它的代號是HEVC(High Effciency Video Codec,高效率影像編碼解碼器),從名字上聽起來比代號為AVC(Advance Video Codec,先進影像編碼解碼器)的H.264還要威猛。

不過這項技術目前還在發展階段,第1版的委員會版草案於2012年2月才剛拍板定案,依據其發展規劃,最終版本的國際版草案預定於2013年1月制定,至於推出正式版則沒有明確的時間表,H.264似乎還有一段長路要走。

影像技術大事紀 年份 VP8大事紀
Louis Le Prince展示人類史上第一部電影 1888  
  1992 On2 Technologies公司成立
發表MPEG-1 1993  
MPEG-2發表,DVD問市 1995 首款編碼器TrueMotion S發表
MPEG-4發表 1998 Google成立
MPEG-4 Part10(H.264)發表 2000 TrueMotion VP3發表,隨後改以VP做為系列名稱
  2005 VP7發表,並獲Skype採用
HD DVD、藍光光碟問市 2006  
中國藍光高清光碟(CBHD)標準發表 2007  
HD DVD退出市場 2008 VP8發表
YouTube提供1080p影片服務 2009  
  2010 Google收購On2 Technologies
  2011 VP8函數庫libvpx發表
H.265第一版草案發表 2012 正式版libvpx發表

挑戰者出現

但在H.265正式登場之前的這段空窗期,H.264可能要面臨一項新的挑戰。由Google所領導的影像codec:VP8,想要靠著與HTML5的整合,以及對手機、平板電腦等,運算能力較低的手持裝置最佳化,提供無專利問題的解決方案,來挑戰H.264龍頭霸主的地位。VP8 最早由On2 Technologiesis開發,於2008年9月13日首度釋出,其目地在於取代自家上一代產品VP7。不過Google在2010年收購On2 Technologiesis,這項技術便轉為Google所有。

走向免費之路

這一連串發展的轉捩點在2010年3月12日,自由軟體基金會(Free Software Foundation)發表了一封公開信,呼籲Google使用HTML5和VP8,取代Adobe Flash Player和H.264,成為YouTube使用的影片格式。

在聽到了自由軟體基金會的聲音後,Google於同年5月19日釋出免費的VP8 codec函數庫libvpx,經過數次改版後,libvpx終於在2012年1月27發佈第1個穩定版本1.0.0版。至於解碼方面,除了可以使用libvpx進行軟體解碼外,WebM專案的硬體小組也設計了VP8的硬體解碼器,無償提供給晶片廠商使用。

以WebM之名闖江湖

在影片封裝容器方面,Google制定了專屬的影片容器:WebM,它以Matroska(MKV)封裝格式為基礎,並搭配Vorbis音訊(Ogg使用的編碼方式),這樣好處是所有技術都是免費、自由的,不會產生專利權或權利金等問題。

VP8主打網路應用

最初在制定VP8標準時,其功能設計的焦點就在網路應用上,由於網路的頻寬將成為品質的一大限制,因此VP8選擇了頻寬先決的開發方向,以較低的品質來彌補頻寬的不足。

VP8的設計重心放在尖峰訊噪比(Peak Signal to Noise Ratio,PSNR)為30dB至45dB之間的表現,根據Google所釋出的官方文件,在這個尖峰訊噪比區間的影像品質,大約在「尚堪入目」(watchable)到「目視無損」(visually lossless)之間。

YUV 4:2:0是什麼意思

由於人的眼睛對亮度比較敏感,對彩度比較遲鈍,因此在處理影像的時候,往往會減少對色彩抽樣的數量,以節省儲存空間。YUV的色彩格式是將顏色分為3種分量,以Y表示亮度(Luma),U、V表示色度(Chroma),並可透過公式轉換成RGB色彩格式。

最基本的YUV取樣方式就是對所有像素皆進行取樣,這種方式稱為YUV 4:4:4,名稱中的3個數字分別表示U、V分量的水平寬度參考值、第1行取樣數目、第2行取樣數目。如果是YUV 4:2:2的話,代表在寬度為4個像素的區塊中,只取2個取樣,每個2 x 1像素區塊共用一個色度取樣,而YUV 4:2:0則是更進一步精簡掉第2行的取樣,讓2 x 2像素區塊共用一個色度取樣。

認識 VP8 影像編碼:整合 HTML5 更小更漂亮、挑戰 H.264 地位

▲以4 x 4的像素區塊為例,無論使用哪種方法,亮度都會採集16個取樣。在色度方面,YUV 4:4:4也是採集16個取樣,YUV 4:2:2、YUV 4:2:0則是分別將取樣數降低至8個、4個。

從圖中可以清處看到,YUV 4:2:0可以把色度取樣數從16縮減至4,原本相較於YUV 4:4:4需要對4 x 4像素區塊進行3種分量共48個取樣,YUV 4:2:0只需24個取樣(16+4+4),可以節省一半的資料空間。

如果將網路應用的平台拉到手機或平版電腦等,效能相對薄弱的手持終端裝置上的話,除了會面臨資料流量的問題,也得盡量節省解碼時所需要耗費的硬體資源。VP8可以將經過熵編碼(entropy encode)處理的資料,切割成許多可平行處理的區塊,只要在編碼時付出些微的效能衝擊,就能夠讓多核心處理器,在解碼時發揮多工優勢,並確保單核心處理器的效能,不會因此受到影響。

仍具應用彈性

VP8除了更貼近低頻寬網路,也沒有冷落了高階應用。VP8在制定規格時,將色彩取樣定為8-bit YUV 4:2:0,採用循序(progressive)掃瞄,並將解析度上限定為16383 x 16383,VP8也希望能夠藉由其高效率的解碼能力,以及能屈能伸的編碼彈性,讓手持裝置到效能強大的桌上型電腦一體適用。不過VP8卻有個矛盾的地方,它不具有類似H.264的範本(profile)設計。

範本的用意是針對不同的播放設備,制定其效能足以負擔的編碼設定,如果播放設備性能較弱,可能就要犧牲壓縮效率(如降低品質)以求得播放流暢。廠商在規劃產品時,就可以依據效能表現,限制該產品所支援的範本,明確地區隔出能流暢播放的檔案。希望能在網路平台及手持裝置一展長才的VP8,反倒不具有這項功能,讓人覺得有些怪異。

延伸閱讀:

網路視訊編碼格式實際測試,動手玩 VP8、技壓 H.264

Google WebP 圖片新進展:無失真壓縮、去背透明、動畫

影片壓縮方式大比拼,為什麼壓成 VBR 會更好?

DVD 8片變1片:簡單工具、高品質進階技巧實作給你看

(後面還有:VP8的3大特色)

國寶大師 李文恩
作者

電腦王特約作者,專門負責硬派內容,從處理器、主機板到開發板、零組件,尖端科技都一手包辦,最近的研究計畫則包括Windows 98復活與AI圖像生成。

使用 Facebook 留言
18e846c93645d367bc0e99f0cdedfd3b?size=48&default=wavatar
3.  Thomas (發表於 2012年6月25日 10:39)
使用效率相近, 編碼效率差這麼大, 為何要改用VP8 ?
Ae05d59c1c23bf4b84acb66359a2cc0b?size=48&default=wavatar
1人給推

4.  RC (發表於 2012年6月25日 10:45)
※ 引述《Thomas》的留言:
> 使用效率相近, 編碼效率差這麼大, 為何要改用VP8 ?

因為不用錢
18e846c93645d367bc0e99f0cdedfd3b?size=48&default=wavatar
2人給推

5.  Thomas (發表於 2012年6月25日 11:25)
※ 引述《RC》的留言:
> ※ 引述《Thomas》的留言:
> > 使用效率相近, 編碼效率差這麼大, 為何要改用VP8 ?
>
> 因為不用錢

咳咳..檯面下的何時付過費..呵呵..

就像MP3當時一起競爭的格式, 最後廠商還是趨向"主流"..
Cc71a7e0c2171af5a740610cd0d6f40d?size=48&default=wavatar
8.  zzz (發表於 2012年6月25日 16:51)
「免費的從來都是最貴..」
這句話是花大錢卻沒得到好服務品質的時候在用的,
跟「長那麼高的葡萄都很酸」差不多,
立場相反而已╮(╯_╰)╭
B62b5e27df8c1b5b22f9261340a44e2a?size=48&default=wavatar
11.  Lewis (發表於 2012年6月26日 11:57)
編碼效率真的差太多了,這絕對是個問題!
感覺在播放處理效率也沒改善太多,搞不好統計檢定根本不顯著!
Fe9ec061bc82c67eb65c25401e3478ba?size=48&default=wavatar
13.  Hancock (發表於 2012年7月10日 18:42)
那張圖為什麼P frame會參考B frame,B frame又參考P frame?兩者互相參考,誰先誰後?
是不是P frame參考I frame比較合理(⊙ˍ⊙)
發表回應
謹慎發言,尊重彼此。按此展開留言規則