ADVERTISEMENT
在視訊編碼的領域中,H.264 是大家比較常聽到的名詞,而另一個正在發展中的 VP8 技術也不容小看,而且有 Google 的加持。所以小編在研究完 VP8 的技術之後,也實際動手測試了 VP8 的編碼效果,發現它和 H.264 比較起來,不但不會落於人後,在低流量的應用上,還可以壓制 H.264。
編碼請用libvpx
筆者找了很多轉檔軟體來測試VP8的編碼效果,不過都找不到滿意的方案,轉出來的影片效果都不是很好,因此還是以libvpx編碼器進行轉檔,雖然它轉出來的效果很不錯,但是麻煩的是,它沒有圖形化介面,因此需要透過指令列(command line,也就是命令提示字元)操作。
讀者可以在http://ffmpeg.zeranoe.com/builds/這邊找到最新的ffmpeg程式,下載後在解開壓縮檔中bin資料夾中的ffmpeg.exe,然後以指令列進行操作。首先必需在指令列終端機中,切換到ffmpeg.exe所在的資料夾位置,然後以輸入參數的方式,控制轉檔時的相關設定。
編碼參數範例
筆者在這邊以固定品質編碼為範例,它可以在較短的編碼時間中,獲得較佳的畫質,但是它的問題是無法確認轉出影片的檔案大小,從筆者的經驗來看很少發生影片爆肥的情況,所以筆者還是推薦這種編碼方式。
固定品質參數範例
ffmpeg.exe -y -i "C:\Movie\Input.mkv" -f webm -codec:v libvpx -crf 20 –v:b 60000k -quality best -codec:a libvorbis -b:a 128k "C:\Movie\Output.webm"
在參數中Input與Output是輸入、輸出檔案的位置及名稱,讀者可自行更改引號中的路徑,-f webm代表使用webm封裝,-codec:v libvpx、-codec:a libvorbis分別表示以libvpx、libvorbis做為影音編碼格式。
控制影片的重要參數是「-crf 20 –v:b 60000k」這段文字,前方的crf代表品質參數,數字越小品質越好,推薦設在20到25之間。v:b在這邊則代表視訊最大資料流量,因為crf參數可以發揮控制流量的效果,所以筆者建議不要在v:b中再次限制資料流量,因此可將此參數設一極大數值,讓它不會影響編碼即可。-b:a則是音訊資料流量,若無特殊需求,128~196是可以兼顧品質與檔案大小的選擇。
品質足以取代H.264
在實際測試時,筆者以libvpx以及x264編碼器,分別將1080p的片源,轉成流量為3500kbps的1080p影片,以及流量為500kbps、解析度為960 x 544影片,分別測試在一般及低流量下的編碼表現。
▲在這一組圖中,可以看到VP8的圖像只是稍微模糊,但是H.264的圖像已經完全「馬賽克化」了。
▲這次VP8更厲害了,畫面十分正確且清晰,H.264在右上角不但出現圖像錯誤,馬賽克情況也頗嚴重。
筆者之所以不使用固定品質壓製影片,其主要的考量是因為無法確認2種編碼器,在相同的定品質參數下,是否能夠壓出品質一樣的影片,因此還是以變動流量方式進行測試。結果很明顯地,VP8在低流量時可以把H.264打得滿地找牙,然而在高流量時差距就沒有那麼大了。在此只刊出低流量測試圖片,完整圖片請至 http://pcadv.in/IsYlf0 下載。
筆者之所以不使用固定品質壓製影片,...
-------------------
那“筆者”是推薦固定品質編碼但自己卻不使用固定品質編碼來壓製影片嗎?
> 筆者在這邊以固定品質編碼為範例,....,所以筆者還是推薦這種編碼方式。
>
> 筆者之所以不使用固定品質壓製影片,...
>
> -------------------
> 那“筆者”是推薦固定品質編碼但自己卻不使用固定品質編碼來壓製影片嗎?
文中有說明
筆者之所以不使用固定品質壓製影片,其主要的考量是因為無法確認2種編碼器,在相同的定品質參數下,是否能夠壓出品質一樣的影片,因此還是以變動流量方式進行測試。
謝謝
> 如果無法確認的話,是不是應該就用固定品質壓一次來比較才比較有意義?
固定品質就代表流量不固定,
這樣就不能比出「特定流量時何者較佳」。
http://compression.ru/video/codec_comparison/h264_2010/appendixes.html#Appendix_8
轉載 Wiki {
根據 MSU Graphics & Media Lab 在2011年5月的測試,VP8 需要約213%的資料量,才能達到和 H.264 相同的影像品質。
x264 的開發者之一:Jason Garrett-Glaser,給了一些針對 VP8 的評論,他認為 VP8 目前並沒有實現真正的位元流規範,而且在一些編碼的技術上有所欠缺。
}
我很好奇是不是T客邦不會用 x264,只設個很糟的參數,然後得到完全相反的結論?
在低畫質的設定中,VP8可以和x264抗衡是能夠預期的,但是在高畫質應用中,可能就無法達到這樣的效果。
在者,VP8直到2012年2月才發表1.00穩定版本,在先前的版本應該都是Alpha或Bata版,在那個時間點的測試,或許也無法完整呈現正式版的狀況。
如果讀者有興趣,筆者可以在接下來的技研堂單元中,測試兩者在高畫質情況的表現。
不管什麼實驗,都一定會有設置對照組
測試影片編碼,也請一併放上沒壓縮的原圖,如果有量化的數據(PSNR)就更好了。I, B, P frame 也要分別比較,因為有些編碼在 I, B 很強,P 偏弱;有些則相反。
若只隨便挑一兩張 frames 就得到某一個打趴另一個的結論,未免貽笑大方.