AVIVO HD與PUREVIDEO HD技術(shù)對(duì)比介紹(上)
新一代編碼H.264/VC-1的編解碼方案流程主要包括如下5個(gè)部分:精密運(yùn)動(dòng)估計(jì)與幀內(nèi)估計(jì)(Estimation)、變換(Transform)及逆變換、量化(Quantization)及逆量化、環(huán)路濾波器(Loop Filter)、 熵解碼(Entropy Coding)。下圖則是H.264編碼流程圖
如果使用CPU軟解,我們看到在熵解碼時(shí)CPU占用率為最高,而其它各項(xiàng)加起來也不少,尤其是H.264主要檔次。
% CPU Util
(P4 2.8GHz)
MPEG2
AVC
VLC
CAVLC
CABAC
CABAC
8Mbps
20Mbps
20Mbps
40Mbps
Entropy Decode
1.6
8.9
26.5
47.8
Freq trans
0.7
1.2
1.5
2.6
Pixel predic ' n
0.5
11.0
11.5
11.6
Deblock
N/A
8.2
8.5
8.2
AMD上代Radeon X1000顯卡硬件支持ATI AVIVO技術(shù), 針對(duì)H.264和VC-1編碼的視頻,由CPU處理器負(fù)責(zé)Bitstream Processing( 碼流處理)和Entropy Decode(熵解碼),由Shader著色單元來硬件加速Frequency Transform(頻率轉(zhuǎn)換)、Pixel Prediction(像素預(yù)測(cè))和Deblocking(環(huán)內(nèi) 解塊濾波)過程。因此,不能稱上純硬件解碼。
熵解碼 Entropy decode
Frequency transform
Pixel prediction
Deblocking
MPEG-2
VLC
iDCT非連續(xù)反余弦變換
(浮點(diǎn))
Inter Frame
(Bilinear)
N/A
VC-1
VLC
iDCT非連續(xù)反余弦變換
(整數(shù)r)
Inter Frame
(+ Bicubic)
Inloop
H.264
VLC / CAVLC / CABAC
Inverse Transform
Inter & Intra Frame
Inloop
AVIVO HD與PUREVIDEO HD技術(shù)對(duì)比介紹(下)
可以看出,AMD上一代的高清視頻硬件解碼技術(shù)并不完美,到了HD 2000系列,Radeon HD 2600系列(RV630),Radeon HD 2400系列(RV610)圖形芯片當(dāng)中集成專門的UVD硬件單元(通用視頻解碼器),完全負(fù)責(zé)硬件加速處理Bitstream Processing( 碼流處理)和Entropy Decode(熵解碼),由Shader著色單元來硬件加速Frequency Transform(頻率轉(zhuǎn)換)、Pixel Prediction(像素預(yù)測(cè))和Deblocking(環(huán)內(nèi) 解塊濾波)過程,即Avivo HD。
NVIDIA早在GeForce 6時(shí)代就開始引入HD視頻解決方法-PureVideo,實(shí)現(xiàn)硬件加速,其實(shí)其原理就是通過驅(qū)動(dòng)利用可編程GPU的空閑運(yùn)算能力對(duì)編碼進(jìn)行加速,實(shí)際上這并非完整的硬件解碼,有相當(dāng)一大部分是GPU通過軟件來完成,但不論如何很大程度的分擔(dān)了CPU的壓力。 并且在畫質(zhì)上也有一定的改觀。
前代的PureVideo的硬件組成部分只有一個(gè)VP(視頻處理器,Video Processcor),并且這個(gè)VP的處理能力以及性能還是比較低下。到了G84,NVIDIA在GPU里不僅重新設(shè)計(jì)了一個(gè)功能更強(qiáng)強(qiáng)大的新的視頻處理器,并且增加了一個(gè) 熵解碼處理器引擎,NVIDIA稱為BSP ENGINE(Bitstream Processcor ENGINE)。新的視頻處理器(NEW VP或者是VP2)可以對(duì)MPEG-2,VC-1,H.264進(jìn)行實(shí)時(shí)解碼,包含了最近比較流行的第三代視頻編碼。而Bitstream Processcor ENGINE則主要針對(duì)H264的CABAC/CAVLC這兩種 熵編碼進(jìn)行解碼。
前面說過H.264標(biāo)準(zhǔn)采用的熵解碼有兩種:一種是基于內(nèi)容的自適應(yīng)變長編碼(CAVLC)與統(tǒng)一的變長編碼(CAVLC)結(jié)合;另一種是基于內(nèi)容的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC),也就是 主要檔次。CAVLC與CABAC根據(jù)相臨塊的情況進(jìn)行當(dāng)前塊的編碼,以達(dá)到更好的編碼效率。CABAC比CAVLC壓縮效率高,但要復(fù)雜一些,對(duì)硬件要求會(huì)更高一些。 CABAC (CAVLC 也同樣)是一個(gè)不會(huì)損傷畫面的無損編碼,但是會(huì)降低編碼和解碼的速度。
初步看之下PUREVIDEO HD以用AVIVO HD都擁有了完整的硬件解碼功能,事實(shí)上則不然,兩家在對(duì)視頻編碼的支持上有一些出入。
首先就是兩家視頻加速技術(shù)對(duì)MPEG2的并非全硬件解碼,相當(dāng)多的一部分交給了CPU去軟解壓,這一點(diǎn)上相信沒有多少人會(huì)有異議,畢竟MPEG2本身對(duì)硬件損耗就非常低,再通過部分硬件解碼,其CPU占用率已經(jīng)降得相當(dāng)?shù)偷囊粋€(gè)地步,這在我們后面的測(cè)試中也得到證實(shí)。
而在對(duì)相當(dāng)損費(fèi)資源的H.264編碼時(shí),兩家也采用了統(tǒng)一的態(tài)度,完全的硬件解碼,徹底解放CPU瓶頸,這使得H.264在兩家新顯卡上解碼不再是問題。
另外,對(duì)于VC-1,ATI/AMD和NVIDIA的態(tài)度就有所差異了。ATI/AMD認(rèn)為,VC-1作為和H.264新一代HDTV標(biāo)準(zhǔn)編碼,同時(shí)又有比較高的CPU占用率,所以仍然采用與H.264一樣的全程VC-1解碼(這也就是為何2600xt集成如此多晶體管的一個(gè)原因);而NVIDIA則認(rèn)為,VC-1盡管占用比較高,但進(jìn)行部分解碼之后,低端CPU仍然能勝任解碼工作,并且隨著CPU主頻的提升,這一狀況會(huì)得到緩解。另外NVIDIA同時(shí)也認(rèn)為,現(xiàn)在主流CPU即使軟解也才70%的CPU占用,再加上PUREVIDEO HD分擔(dān)一部分后則僅有40%左右的占用,在不進(jìn)行其它大型任務(wù)的情況下,與0%CPU占用沒有任何區(qū)別。
這一點(diǎn)上是仁者見仁智者見智,按照筆者個(gè)人看法,所有硬解碼在未來都會(huì)給軟解碼所代替,而現(xiàn)在筆者即使是在解碼CABAC 40m碼率的片源時(shí)使用采用軟解碼,就為了保證畫質(zhì)以及可以隨心換解碼器;另外一方面,有總比沒有好,哪天筆者要是沒了3.6G的Conroe,使用一顆Athlon64 3000+時(shí),帶有全程解碼VC-1以及H264的AVIVO HD顯然會(huì)更好一些。
解碼器,分離器以及DXVA的概念
我們介紹一下解碼器,分離器以及DXVA的概念
解碼器的功能就是對(duì)視頻或者音頻進(jìn)行解壓縮。我們知道不論是原始的視頻或者是原始的音頻,數(shù)據(jù)都是十分驚人和龐大的,所以我們要用編碼器對(duì)其進(jìn)行壓縮,這樣才有利于傳輸和存儲(chǔ)。在播放時(shí)我們就要需要還原成畫面或者聲音,這就需要解壓,也就是解碼。其中視頻解碼器比較復(fù)雜:
視頻壓縮技術(shù)就像我們之前所說有很多種,每一種里又有不少官方的,第三方的解碼器,各種解碼器功能,畫面,速度都有差異,不過一般分為兩種解碼器:硬件解碼器和軟件解碼器。
硬件解碼器就是利用解碼器所帶的驅(qū)動(dòng)接口和硬件本身連接上,利用硬件所帶的功能對(duì)視頻進(jìn)行解碼,這樣可以降低對(duì)CPU的負(fù)荷,從而實(shí)現(xiàn)流暢播放以及提升CPU多任務(wù)的能力。
軟件解碼器就是除了硬件解碼器之外的所有解碼器,其最大特征就是利用CPU通用處理的功能,對(duì)其進(jìn)行軟件解碼。軟件解碼雖然耗費(fèi)CPU,但是可以修改,升級(jí),在CPU資源充足的情況下是最好的選擇。
分離器的功能就是把封裝在一起的視頻以及音頻還原出來。之前我們談過有不少的封裝,每一種封裝必須對(duì)應(yīng)一種分離器,才能正確的把視頻和音頻分離出來以供解碼器解碼。
分離器也有很多種,一般情況下非標(biāo)準(zhǔn)的封裝格式在正規(guī)的播放器里都沒有相應(yīng)的分離器,比如MKV。而分離器比較出名的有月光分離器,haali等。
DXVA(也稱DirectX VA)全稱就是DirectX Video Acceleration(硬件視頻加速接口)。
DXVA是一個(gè)由微軟和圖形芯片廠商聯(lián)合定義的一個(gè)硬件接口規(guī)范。如果一種顯卡芯片在硬件上支持DXVA規(guī)范,并不代表它就實(shí)現(xiàn)了DXVA里面定義的所有功能。不過有一點(diǎn)可以肯定的是:對(duì)于DXVA定義的每一項(xiàng)功能,符合DXVA規(guī)范的顯示芯片驅(qū)動(dòng)程序一定會(huì)告訴系統(tǒng),這項(xiàng)功能在它的硬件里實(shí)現(xiàn)了還是沒有實(shí)現(xiàn)——這是DXVA規(guī)范強(qiáng)制性要求的。這樣做的好處是應(yīng)用程序不需要自己花費(fèi)時(shí)間和精力去測(cè)試顯卡有沒有實(shí)現(xiàn)某項(xiàng)功能。
同樣的,如果一種解碼器支持DXVA規(guī)范,也不代表它就能利用DXVA規(guī)范里面所有的功能組合,它可以選擇自己有能力支持的,或者想要支持的那些功能的組合,而其他功能組合也許就放棄了。
此外,如果某種顯示芯片雖然通過驅(qū)動(dòng)表示支持某種功能,但解碼器認(rèn)為該芯片對(duì)這個(gè)功能的支持是不穩(wěn)定的,容易導(dǎo)致系統(tǒng)崩潰或錯(cuò)誤,那么解碼器也可以放棄使用該芯片的這種功能。
按照DXVA規(guī)范,硬件解碼加速有3種級(jí)別
1、MC加速(運(yùn)動(dòng)補(bǔ)償,也就前文提到Pixel Prediction)
2、IDCT加速(前文提到的Frequency Transform) + MC加速
3、VLD加速(前文提到的熵解碼) + IDCT加速 + MC加速+(deblocking fliter環(huán)內(nèi)解塊濾波)
除了比較老的顯卡(例如Geforce3)才支持MC加速之外,現(xiàn)在GF6/7,X1000系列第二級(jí),而GF 8600/8500支持H.264第三級(jí)加速,以及HD2000系列支持VC-1/H.264第三級(jí)加速,當(dāng)然,這也需要解碼器支持才能被調(diào)用。
當(dāng)播放器或者解碼器顯示DXVA(也稱DirectX VA)時(shí)也代表著硬件加速已經(jīng)被開啟。
PowerDVD開啟硬解設(shè)置指南
在所有所有的播放軟件器,設(shè)置最為簡單,又能直接開啟硬件解碼的軟件,只能是PowerDVD了??梢哉fPowerDVD是目前最好的軟件解壓VCD/DVD/HDTV播放工具,同時(shí)它自帶了HDTV硬件加速的編碼,使得調(diào)用極其簡單。
如果您使用的是NVIDIA的顯卡并且?guī)в蠵UREVIDEO技術(shù),那么它會(huì)有一個(gè)PUREVIDEO HD的標(biāo)志顯示出來。
PowerDVD分別可以對(duì)H.264,VC-1,MPEG2,X264,XVID,DVIX等格式進(jìn)行解壓。也就是說基本上主流的DVD/DVDrip,HDTV/HDrip都可以解碼,并且在顯卡有硬解功能時(shí)無需任何設(shè)置即可開啟硬解。
以下信息代表DXVA硬件加速啟用。
PowerDVD無疑是強(qiáng)大的而且方便的,非常適合菜鳥使用硬解看中文片,即使是軟解,它也能最為迅速的找到正解的解碼器,不會(huì)出現(xiàn)畫面,音頻不正確的情況,而這一切都是無需設(shè)置的。對(duì)了,為何要說中文片呢,因?yàn)槌四庹Z特別好的情況下,PowerDVD是沒有辦法外掛字幕的,這也是該軟件的一大遺憾,許多人正是因?yàn)槿绱藪仐壛薖owerDVD,而僅僅使用它所附帶的解碼器配合其它播放器。
PowerDVD的缺點(diǎn)不僅如此,由于不可配置,其分離器比較少,就連AVI這種老得不行了的封裝分離得都有些問題,當(dāng)然,這和現(xiàn)在HDTV的AVI封裝了dts多音軌可能有些關(guān)系。其它方面,盡管PowerDVD是靠播放DVD起家,但是如果碰到了HDDVD的同樣為MPEG-2 PS封裝的EVO文件,PowerDVD一樣無法對(duì)其分離。
PowerDVD優(yōu)點(diǎn):無需設(shè)置,有眾多同時(shí)存在不同級(jí)加速的解碼器即開即用,十分方便,是購買HDDVD/BD碟最佳播放器。
PowerDVD缺點(diǎn):PowerDVD對(duì)網(wǎng)上下載的Remux非TS封裝片源都無法正常分離,如果碰到HDrip的MKV格式更是無可奈何。最為氣憤的是無法掛任何字幕。
注意:PowerDVD一定要優(yōu)先于其它播放器安裝。如果PowerDVD工作不正常,有可能是解碼器/分離器混亂,重裝一般可以解決問題。