開顯卡硬件加速和不開的差別

更新時(shí)間:2016-04-04本文內(nèi)容轉(zhuǎn)載自互聯(lián)網(wǎng)
簡(jiǎn)而言之,硬件加速就是利用硬件模塊來替代軟件算法以充分利用硬件所固有的快速特性。硬件解碼生效的時(shí)候,系統(tǒng)是怎么運(yùn)轉(zhuǎn)的呢?現(xiàn)在我們有兩個(gè)處理器,CPU和GPU。他們通過PCI/AGP/PCIE總線交換數(shù)據(jù)。 1。CPU從文件系統(tǒng)里讀出原始數(shù)據(jù)DirectSHow的源濾鏡,分離出壓縮的視頻數(shù)據(jù)(分離器)。放在系統(tǒng)內(nèi)存中。 GPU 發(fā)呆 2。CPU把壓縮視頻數(shù)據(jù)交給GPU 這時(shí)總線上開始忙了,壓縮數(shù)據(jù)從系統(tǒng)內(nèi)存拷貝到顯卡上的顯卡 內(nèi)存里。 3. CPU要求 GPU開始硬件解碼,現(xiàn)在 CPU進(jìn)入發(fā)呆期,GPU開始忙。當(dāng)然CPU會(huì)定期查詢一下GPU忙的怎么樣了。 4。GPU開始用自己的電路解碼視頻數(shù)據(jù)(已經(jīng)在顯卡 內(nèi)存里了),解壓后的數(shù)據(jù)還是放在顯卡 內(nèi)存里面。CPU繼續(xù)發(fā)呆。 5. 視頻數(shù)據(jù)剛解碼完成以后還不能立即拿去顯示,因?yàn)檫€需要后期處理,如deinterlace 3:2pulldown,等等。GPU再用自己的后期處理電路來進(jìn)行處理。CPU還是發(fā)呆 6。后期處理以后的未壓縮數(shù)據(jù)拿去顯示到屏幕上, GPU再開始忙視頻的縮放,亮度gamma等事情。CPU還是閑 7. GPU終于忙完了,下面的視頻數(shù)據(jù)在哪里?通知CPU,GPU先歇會(huì)。 CPU又開始忙了,回到第1步。 上面可以看到,硬件解碼生效的時(shí)候,CPU真的可以很閑,但是為了讓它生效,有些條件必須滿足。最關(guān)鍵的原因是,與CPu->系統(tǒng)內(nèi)存和GPU->顯卡顯卡 內(nèi)存比起來,PCI、AGP、PCIE總線是龜速。PCI是133MB/S AGP8X是2.1GB/S PCIE16X是4GB/S 而CPU-系統(tǒng)內(nèi)存,GPU-顯卡 內(nèi)存則快若干倍。有興趣的可以把不同時(shí)代的內(nèi)存總線和AGP/PCIE總線速度進(jìn)行一下對(duì)比。因?yàn)镃PU和GPU互連的總線很慢,因此,視頻數(shù)據(jù)(無論是解壓前還是解壓后)一旦交給GPU,GPU就要負(fù)責(zé)把它處理完,直到最終顯示。 如果在前面1-5步里有哪一步GPU不能做或你不讓它做,視頻硬件解碼就不生效,CPU要負(fù)責(zé)。 當(dāng)然,你可能會(huì)問,也許CPU很慢,說不定在龜速總線上載輸數(shù)據(jù),GPU分擔(dān)一部分工作,還是比全部CPU做要快呢? 也許如此,但在Directshow架構(gòu)里,代表視頻數(shù)據(jù)處理各環(huán)節(jié)的濾鏡(分離器,解碼器,后期處理,渲染器)需要協(xié)商出一個(gè)大家都接受的視頻數(shù)據(jù)儲(chǔ)存方式,如果某個(gè)濾鏡說我只能在系統(tǒng)內(nèi)存里玩,大家都得要在內(nèi)存里玩,GPU和顯卡 內(nèi)存只好舍棄。 3D硬件加速是什么意思 我們看到的畫面就不那么舒服了……)馬賽克現(xiàn)象沒有了,貼圖更細(xì)致,連衣物的褶皺和皮膚的細(xì)部都表現(xiàn)完美。這些都是拜3D硬件加速所賜 現(xiàn)在一般的顯卡都支持,下載安裝一個(gè)顯卡驅(qū)動(dòng)就可以了
有用 0 無用 0 我要提問