鐵之狂傲

 取回密碼
 註冊
搜尋

【顯示卡】 H.264轉碼加速:NVENC大戰Quick Sync

[複製連結] 檢視: 17967|回覆: 0

  在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支援。
IMG0034559.jpg

AMD的VCE引擎
  Ivy Bridge處理器中,Intel也將轉碼單元Quick Sync做了升級,雖然Intel官方資料中並沒有提及實際的變化,但是我們之前也做過測試,發現轉碼速度變快了。此外,IVB的Quick Sync也統一到了Media SDK API下。
IMG0036448.png

  再有一個新選手就是NVIDIA的NVENC編碼引擎了,它是Kepler架構新增的功能,按照NVIDIA給出的資料來看,NVENC比自家的CUDA編碼還要優秀,因為它跟Quick Sync一樣屬於是專用的編碼加速單元,而CUDA加速則是比較通用的,速度上不如專用單元快。
IMG0036746.png

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的軟肋啊),但是本文的測試方法和結果依然值得推薦,特別是畫質對比方面專業得多,小編受益匪淺啊。
測試軟體及方法:
IMG0031977.jpg

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是科學的測量方法,要比肉眼查看可靠得多,說服力也足夠強。
IMG0036742.png

  上面就是幾種編碼方案的PSNR和SSIM結果。
  雖然速度更快,但是NVENC引擎的轉碼畫質與CUDA轉碼是一樣的,絲毫沒有降低。
  上面的計算只是基於平均狀況,並不是全部內容,再來看一下500張逐幀截圖中的SSIM指數吧。
quality.jpg

  這裡只是一張圖片,推薦去原文看對比,因為他們做的是網頁特效,下面的六個選項是可以點擊選中或者取消的,方便對比任意幾種編碼方案的結果,滑鼠指上去還會顯示各個方案的實際SSIM數值,這是單一截圖展示不了的。
  由於軟體的Bug和限制,N卡和Quick Sync轉碼的截圖中每隔30幀就會出現一次劇烈波動(場景太複雜),0到187幀之間的場景容易壓縮,因此SSIM比較穩定,188到243幀以及244到350幀之間波動就非常大,SSIM指下降的厲害。
  雖然Quick Sync在複雜場景中SSIM有所下降,但是依然要領先與NVIDIA顯示卡,H.264 1-pass編碼依然有明顯優勢。
  那麼實際畫質是如何呢?來看一下317張截圖的真實截圖對比吧。
quality2.jpg

  這裡依然去原文查看,因為他們作出了動態效果,最下面是各種編碼方案的畫質選擇,點擊左側部分,轉碼後的截圖就會出現在網頁左邊,右邊則是另一種方案的畫質截圖,比如上圖中我選擇了原圖與GTX 670(NVENC)編碼,效果就是這個樣子。
(ps,這裡有點瑕疵,出現了兩個GTX 670選項,實際上應該是一個GTX 670和一個GTX 680)
  結果是:NVIDIA GPU加速編碼的畫質損失依然是最嚴重的,而最新的H.264編碼做的比較好,特別是2-pass畫質十分接近原始畫質。
轉碼速度及功耗
  使用的影片是720P解析度的《阿凡達》,結果如下:
IMG0036743.png

(說下表格的數據,第一列是轉碼時間,之後是待機功耗,第三列是轉碼時的功耗,最後一列是功耗差值)
  來看NVENC,其轉碼速度明顯優於GTX 480,性能高了133%之多。功耗方面,固定轉碼單元的GTX 680比GTX 480隻低了21W,從差值上看也只有11W,並沒有表現出比預期更明顯的優勢。
  總的來看,Quick Sync依然是最好的編碼加速方案,功耗和轉碼性能上都排名第一。另外,H.264 1-pass編碼速度要比CPU還快,畫質也高一些,而2-pass編碼的速度不出意外地倒數第一,但是畫質上傲視群雄。
IMG0036745.png

  如果以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,技術上是好的,軟體支援是杯具的。
 

回覆 使用道具 檢舉

全世界最先進的跳動筆
你需要登入後才可以回覆 登入 | 註冊

存檔|手機版|聯絡我們|新聞提供|鐵之狂傲

GMT+8, 21-9-28 09:05 , Processed in 0.057897 second(s), 18 queries .

回頂部