高清播放再次革命!CUDA解碼方案評測

擺脫DXVA!CoreAVC支持CUDA解碼
來源:PCPOP 更新日期:2009-07-10 作者:佚名
內(nèi)容導航:  分頁瀏覽 | 全文瀏覽

擺脫DXVA!CoreAVC支持CUDA解碼

    為什么會出現(xiàn)如上一頁中描述的那些問題呢?要回答這個問題,我們還得從一個叫做DXVA的東西談起。因為,DXVA工作與否正是決定當前視頻是否在使用硬件解碼的標志。

四大編碼全攻克!高清硬解碼設置寶典

“DXVA”全稱是DirectX VIDEo AccelerATIon(硬件視頻加速接口),它是一個由微軟和圖形芯片廠商聯(lián)合定義的一個硬件接口規(guī)范,就好象DirectX 3D是游戲開發(fā)的應用程序接口一樣,DXVA就是視頻硬件解碼的程序接口,顯卡的視頻單元必須滿足DXVA的規(guī)范和要求才能實現(xiàn)相應的功能。

DXVA_ModeH264_A H264_A
DXVA_ModeH264_B H264_B
DXVA_ModeH264_C H264_C
DXVA_ModeH264_D H264_D
DXVA_ModeH264_E H264_E
DXVA_ModeH264_F H264_F
DXVA_ModeVC1_A VC1_A
DXVA_ModeVC1_B VC1_B
DXVA_ModeVC1_C VC1_C
DXVA_ModeVC1_D VC1_D

    不過需要注意的是,DXVA是一個具有“分級”特性的標準。簡單的理解就是硬件支持DXVA的級別,而不僅僅只有“支持”與“不支持”兩個檔次。從上面的表中我們可以看出,DXVA對H.264視頻硬件加速有6種級別,而對于VC-1視頻有四種級別。

    DXVA不僅僅對顯卡的支持度進行了分級,而且對解碼器的支持度也進行了分級,也就是說解碼器即使支持DXVA,也不一定能夠實現(xiàn)DXVA中所有的功能。而由于目前視頻封裝格式非;靵y,就極容易出現(xiàn)一些不可預知的問題。如果對DXVA這個標準進行評價的話,既有好評也有壞評,好評是微軟直接提供了硬件加速與解碼器之間的橋梁,而壞評就是其要求十分嚴格,導致我們前面所說的一些問題

   前面我們說到,DXVA是導致使用GPU硬解碼出現(xiàn)問題的根本原因,如果要解決這個問題,最好的辦法是脫離DXVA,比如CPU解碼就不會出現(xiàn)什么問題,而且畫質(zhì)也非常好,這就是因為CPU軟解碼不需要DXVA(DXVA是硬件加速標準)。那么,有沒有辦法利用顯卡模擬CPU進行解碼呢?——CUDA做到了這一點。

    對于CUDA這個名詞相信各位都不會陌生,簡單的說就是NVIDIA顯卡的通用計算技術,CUDA可以直接使用GPU來進行CPU很難完成的復雜運算,理論上來說可以運行任意CPU運算的程序。而且由于CUDA編程語言和C語言基本沒有區(qū)別,所以CUDA很快就被全世界各個行業(yè)所接受。

    在視頻領域,我們之前經(jīng)常都說到了利用CUDA進行視頻編碼,比如我們之前測試過的Cyberlink MediaShow,vReveal MotionDSP,ArcSoft TotalMedia Theatre以及MediaCoder等。但是視頻解碼一直由于GPU內(nèi)有專門的運算模塊,導致這一領域幾乎無人問津。而日前,CoreAVC推出了1.9.x版本的解碼器,正式加入了CUDA視頻解碼的功能。


CoreAVC官方網(wǎng)站上1.9.5版本的廣告已經(jīng)赫然出現(xiàn)了CUDA標志

    CoreAVC是非常流行的H.264解碼器之一,幾乎所有集多種解碼器于一身的播放器都帶有CoreAVC解碼器。今年2月份,CoreAVC率先發(fā)布了1.9.0版本的解碼器,首次支持CUDA解碼H.264視頻,不過由于當時存在一些播放色塊的問題,很快CoreAVC就推出了1.9.5版本的解碼器,從此H.264高清視頻解碼正式邁入CUDA時代。

   我們知道,CUDA是一個完整的NVIDIA GPGPU解決方案,它直接提供了硬件的訪問接口,而不必通過圖形API來實現(xiàn)GPU硬件的訪問。也就是說,CUDA從某種意義上模擬了CPU的計算。而使用CUDA進行高清視頻解碼的原理也就不難理解了!實際上,使用CUDA進行高清視頻解碼,就是通過調(diào)用GPU中龐大的流處理器資源,進行視頻解碼運算,并不是調(diào)用GPU中專門的視頻處理單元。

    視頻解碼的運算量雖然不高,但是對處理器的并行處理效率有很高的要求,這就是為什么多核心CPU高清視頻解碼的效率比單核高很多的原因。而使用CUDA進行解碼,GPU中有很多的流處理器資源可以調(diào)用,所以使用CUDA進行視頻解碼運算,簡直是輕而易舉。而且由于運算量不高,解碼計算基本不可能讓GPU全速工作,所以在功耗方面也能得到有效的控制。

    另外,由于采用CUDA架構,GPU視頻解碼不再需要通過DXVA進行硬件加速,所以可以徹底脫離DXVA的各種限制,從某種意義上模擬CPU進行運算,不僅可以獲得非常完美的兼容性,而且畫質(zhì)也和CPU軟解沒有什么區(qū)別,設置起來也更加方便。


MediaCoder也只有編碼過程采用CUDA技術

    再來我們還可以談到CUDA視頻轉碼這件事情上,我們知道視頻的轉碼過程實際上就是解碼——編碼的過程,而之前部分即使采用CUDA進行視頻轉碼,但解碼過程仍然是CPU來完成,只有編碼過程由CUDA來完成,這樣實際上還是沒有完全利用到GPU的優(yōu)勢。

 標簽:
廣告聯(lián)系:010-82755684 | 010-82755685 手機版:m.pjtime.com官方微博:weibo.com/pjtime官方微信:pjtime
Copyright (C) 2007 by PjTime.com,投影時代網(wǎng) 版權所有 關于投影時代 | 聯(lián)系我們 | 歡迎來稿 | 網(wǎng)站地圖
返回首頁 網(wǎng)友評論 返回頂部 建議反饋
快速評論
驗證碼: 看不清?點一下
發(fā)表評論