鐵之狂傲
標題:
H.264轉碼加速:NVENC大戰Quick Sync
[列印本頁]
作者:
ARIESS
時間:
12-5-26 12:53
標題:
H.264轉碼加速:NVENC大戰Quick Sync
在GPU通用計算剛剛進入桌面平台時,NVIDIA以及AMD都把視訊轉碼加速功能當作重點,因為這幾乎是GPU計算帶給普通消費者最直接、最有感觸的功能了,比如MediaCoder、BadaBoom、MediaEspresso等軟體都支援NVIDIA的CUDA加速以及AMD的Stream加速。 GPU轉碼加速的好處是速度快,但是畫質也低了,無法與單純的CPU轉碼相媲美,隨着技術的進步,GPU轉碼的畫質才慢慢提升上來。再往後Intel也加入戰場,SNB架構的GPU部分增加了專用的Quick Sync單元,無論轉碼速度還是畫質都要比A/N兩家的GPU加速效果要好。
AMD在最新一代的GCN架構中增加了專用的VCE(Video Encodec Enigine)引擎,支援1080P 60fps視訊轉碼,而且支援完整的H.264規範(前一代轉碼只支援H.264 Baseline),唯一的問題是軟體支援度不夠好,發布5個多月了才有MediaEspresso支援。
12-5-26 13:21 上傳
下載附件 (點選圖片檢視原圖)
(58.63 KB)
AMD的VCE引擎
Ivy Bridge處理器中,Intel也將轉碼單元Quick Sync做了升級,雖然Intel官方資料中並沒有提及實際的變化,但是
我們之前也做過測試
,發現轉碼速度變快了。此外,IVB的Quick Sync也統一到了Media SDK API下。
12-5-26 13:21 上傳
下載附件 (點選圖片檢視原圖)
(21.82 KB)
再有一個新選手就是NVIDIA的NVENC編碼引擎了,它是Kepler架構新增的功能,按照NVIDIA給出的資料來看,NVENC比自家的CUDA編碼還要優秀,因為它跟Quick Sync一樣屬於是專用的編碼加速單元,而CUDA加速則是比較通用的,速度上不如專用單元快。
12-5-26 13:21 上傳
下載附件 (點選圖片檢視原圖)
(173.84 KB)
NVENC編碼加速功能
稍早我們也打算把NVENC編碼加速專門測試一下,只是一直沒能成行,不過首發測試中也做了MediaEspresso轉碼加速測試,GTX 680轉碼一段視訊需要32秒,GTX 580和HD 7970分別需要40、45秒,也就是在GPU計算性能更差的情況下,GTX 680的轉碼速度依然要高於GTX 580、HD 7970,NVENC功不可沒。
法國Hardware.fr
網站最近做了詳細的NVENC編碼加速測試,並與Intel Quick Sync做了對比,雖然沒能對比AMD的VCE編碼引擎(軟體支援是AMD的軟肋啊),但是本文的測試方法和結果依然值得推薦,特別是畫質對比方面專業得多,小編受益匪淺啊。
測試軟體及方法:
12-5-26 13:21 上傳
下載附件 (點選圖片檢視原圖)
(31.23 KB)
MediaEspresso也有bug和限制,比如GOP 固定限制,對比測試並非以其為主要手段
訊連科技的MediaEspresso 6.5軟體支援Quick Sync以及NVENC加速。CPU為Core i5-3570K(HD 4000顯示卡),主機板為華碩P8Z77 Pro-V。對比的顯示卡主要是GTX 670、GTX 680、GTX 480,雖然GTX 480是上上代的顯示卡了,不過CUDA編碼加速實際上對顯示卡要求並不高,即便是GTX 450與高級顯示卡的差距也非常小。
另外,軟體編碼使用的是Build 2197版本的H.264,分別測試了1-past和2-past。
畫質對比
畫質對比值得着重說一下。平時我們做畫質對比主要是用肉眼看,這種方法雖然直觀一些,但是誤差太大,而且不同的截圖差別也不一樣,不夠有說服力。
Hardware.fr用的是PSNR和SSIM數值,
PSNR
(Peak signal-to-noise ratio,峰值信號噪點比例)是信號強度與噪點強度的比值,可以用來衡量有損壓縮編碼過程中的失真度。而
SSIM
(structural similarity index,結構相似指數)也是用來衡量兩張圖片之間的相似度。
有興趣的可以參考上面的維基百科解釋研究一下,總之,PSNR和SSIM是科學的測量方法,要比肉眼查看可靠得多,說服力也足夠強。
12-5-26 13:21 上傳
下載附件 (點選圖片檢視原圖)
(3.74 KB)
上面就是幾種編碼方案的PSNR和SSIM結果。
雖然速度更快,但是NVENC引擎的轉碼畫質與CUDA轉碼是一樣的,絲毫沒有降低。
上面的計算只是基於平均狀況,並不是全部內容,再來看一下500張逐幀截圖中的SSIM指數吧。
12-5-26 13:21 上傳
下載附件 (點選圖片檢視原圖)
(53.32 KB)
這裡只是一張圖片,推薦去原文看對比,因為他們做的是網頁特效,下面的六個選項是可以點擊選中或者取消的,方便對比任意幾種編碼方案的結果,滑鼠指上去還會顯示各個方案的實際SSIM數值,這是單一截圖展示不了的。
由於軟體的Bug和限制,N卡和Quick Sync轉碼的截圖中每隔30幀就會出現一次劇烈波動(場景太複雜),0到187幀之間的場景容易壓縮,因此SSIM比較穩定,188到243幀以及244到350幀之間波動就非常大,SSIM指下降的厲害。
雖然Quick Sync在複雜場景中SSIM有所下降,但是依然要領先與NVIDIA顯示卡,H.264 1-pass編碼依然有明顯優勢。
那麼實際畫質是如何呢?來看一下317張截圖的真實截圖對比吧。
12-5-26 13:21 上傳
下載附件 (點選圖片檢視原圖)
(63.31 KB)
這裡依然去
原文
查看,因為他們作出了動態效果,最下面是各種編碼方案的畫質選擇,點擊左側部分,轉碼後的截圖就會出現在網頁左邊,右邊則是另一種方案的畫質截圖,比如上圖中我選擇了原圖與GTX 670(NVENC)編碼,效果就是這個樣子。
(ps,這裡有點瑕疵,出現了兩個GTX 670選項,實際上應該是一個GTX 670和一個GTX 680)
結果是:NVIDIA GPU加速編碼的畫質損失依然是最嚴重的,而最新的H.264編碼做的比較好,特別是2-pass畫質十分接近原始畫質。
轉碼速度及功耗
使用的影片是720P解析度的《阿凡達》,結果如下:
12-5-26 13:21 上傳
下載附件 (點選圖片檢視原圖)
(4.98 KB)
(說下表格的數據,第一列是轉碼時間,之後是待機功耗,第三列是轉碼時的功耗,最後一列是功耗差值)
來看NVENC,其轉碼速度明顯優於GTX 480,性能高了133%之多。功耗方面,固定轉碼單元的GTX 680比GTX 480隻低了21W,從差值上看也只有11W,並沒有表現出比預期更明顯的優勢。
總的來看,Quick Sync依然是最好的編碼加速方案,功耗和轉碼性能上都排名第一。另外,H.264 1-pass編碼速度要比CPU還快,畫質也高一些,而2-pass編碼的速度不出意外地倒數第一,但是畫質上傲視群雄。
12-5-26 13:21 上傳
下載附件 (點選圖片檢視原圖)
(5.25 KB)
如果以W(功耗)/H(時間,小時)為基礎來看(轉碼功耗乘以時間(s)再除以3600,上圖中的法文符號","在英文中是".",也就是說上圖中的數值是6.87、8.95這樣的小數而非整數),Quick Sync轉碼每小時消耗了0.83W電力,而GTX 670、GTX 680消耗的電力在3.10、3.24左右,其他方案消耗的就更高了,GTX 480效費比最差。
總結:
原文的總結有三段,其實意思可以歸納為三句話:
無論轉碼速度還是轉碼效率,Quick Sync依然是最佳的方案,NVIDIA的NVENC要勝過前代的CUDA方案,但還是比不過Intel。
H.264軟體轉碼中1-pass速度要超過CPU轉碼,2-pass雖然速度最慢,但是畫質是最好的,適合對畫質有較高要求的場合。
至於AMD,技術上是好的,軟體支援是杯具的。
歡迎光臨 鐵之狂傲 (https://gamez.com.tw/)