VP8視訊格式初探

阮一峰發表於2010-05-20

昨天,Google釋出了一個開源專案WebM

這個專案的目的,是在檔案格式方面,為製作和釋出網際網路視訊提供了一個開源的解決方案。

VP8視訊格式初探

WebM採用MKV作為封裝格式,裡面的音訊編碼用Vorbis格式,視訊編碼用VP8格式。

MKV和Vorbis都是早就存在的開源格式,而VP8本來屬於On2公司的封閉格式,是不開源的。去年8月,Google花了1億美元收購On2,才有了今天。

VP8視訊格式初探

這個決定轟動了業界,因為這意味著,我們終於有了一個沒有專利約束、並且獲得大公司支援的免費視訊編碼格式VP8(詳見我翻譯的《HTML5視訊格式之爭》一文)。

但是,VP8其實只是一種規格,以前從來沒有公開過,也沒有任何基於它的產品問世。所以,外界一直不知道VP8的效能究竟如何。

開源視訊轉換程式ffmpeg的開發者之一Jason Garrett-Glaser,有機會提前接觸到了VP8。他寫了一篇很詳細的評估,說出了自己對VP8的印象,並將VP8與專利格式H.264做了比較。

下面就是這篇評估的簡單翻譯,刪去了討論技術細節的部分。

=======================

VP8視訊格式初探(精簡版)

作者:Jason Garrett-Glaser

譯者:阮一峰

原文網址:http://x264dev.multimedia.cx/?p=377


一、On2是一家怎樣的公司?

在開始討論VP8之前,我想先談談對On2公司的印象。

它曾經宣稱,VP8比H.264的效能高出50%。但是,它的話是不可信的。因為它也說過,VP7比H.264的效能高出15%。但是後來人們發現,VP7遠遠不如H.264。

2003年,On2宣佈VP3開源。表面上,它好像為開源事業做出了貢獻。但是實際上,它的目的是,希望開源社群為它修正錯誤。Theora專案上了當,選擇VP3作為自己的程式碼基礎,結果修改程式碼的時間用去了6年,做出來的產品效能還是不如H.264。

二、VP8的規格

這份規格檔案令人很不滿意。很多技術細節,不是寫得太簡單,就是寫得太模糊。大部分地方都是直接張貼C程式碼,而不是用文字表述。要知道C程式碼和格式規格,完全是兩回事,根本不能替代。

我曾經覺得,H.264的規格寫得太囉嗦,但它至少是準確的。VP8的規格根本就是不清晰,不準確,太簡短,很多細節沒有解釋清楚。老實說,僅僅根據這份規格,地球上根本不可能有人能夠寫出VP8的解碼器。

更令人驚奇的是,根據程式碼中的註釋,VP8有些部分寫於2004年初,比H.264還要古老!On2在此後6年的時間中,都不做修改,這是說不過去的。

三、VP8編碼器(Encoder)

首先要明確一件事情。格式規格和它的具體實現,是兩回事。一個很好的編碼程式,可能是基於一個很爛的規格;而一個很好的規格,也可能會產生出一個很爛的編碼程式。

原廠提供的解碼器,生成的影像質量雖然大大好於VP3,但是並沒有明顯勝過H.264的地方。

這個編碼器的編碼速度要慢於H.264。我的機器是1.6Ghz的Core i7,編碼1080p時速度為26fps;而用H.264編碼器,選擇"最快速度"選項時,可以達到101fps。

在壓縮效能方面,VP8也不如H.264。

四、VP8解碼器(Decoder)

原廠提供的VP8解碼器,比ffmpeg的H.264解碼器慢了16%,更不要說其他更先進的H.264解碼器了。

就算最終通過各種優化,VP8解碼器可以達到H.264的同樣水平。但是,H.264有眾多硬體支援,而VP8只能靠軟解碼,所以誰快誰慢不言而喻。

五、專利問題

VP8的一大賣點,就是沒有專利權問題。但是,它的某些細節與H.264太像,我覺得已經很難用巧合解釋了,將來肯定會出現專利糾紛。

在沒有明確證據表明VP8通過專利檢驗之前,我建議使用時一定要非常謹慎。

[附錄]

Youtube已經開始提供WebM視訊了,不過只有最新的瀏覽器才支援。具體的觀看方法請檢視http://www.ghacks.net/2010/05/20/webm-video/(英文)。

(完)

相關文章