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

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

擺脫DXVA!CoreAVC支持CUDA解碼

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

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

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

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是一個具有“分級”特性的標(biāo)準(zhǔn)。簡單的理解就是硬件支持DXVA的級別,而不僅僅只有“支持”與“不支持”兩個檔次。從上面的表中我們可以看出,DXVA對H.264視頻硬件加速有6種級別,而對于VC-1視頻有四種級別。

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

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

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

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


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

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

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

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

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


MediaCoder也只有編碼過程采用CUDA技術(shù)

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

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