Ok...
關於這部分...
我做了幾個測試...
以一部影片來進行H264解碼效率的測試...
先看測試影片
http://j122251751.myweb.hinet.net/h264_test/ff7_ac.jpg
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : AVC
Format/Info : Advanced Video Codec
Format profile :
[email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 2 frames
Duration : 2h 6mn
Bit rate : 32.3 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.649
Stream size : 28.5 GiB (82%)
-----------------------------------------------------------------------------------------------------------------
測試的目的是來衡量執行緒的負載情況..
而不是執行緒的平均執行效率...
這邊分成三個部份:
1.使用DXVA的負載情況
2.利用CoreAVC調用CUDA的負載情況
3.使用CPU去解碼的負載情況
我們這邊使用了幾個解碼器進行測試:
1.MPC Video Decoder
2.Microsoft DTV-DVD Decoder
3.CoreAVC
4.DivX H.264 Decoder
那麼測試環境如下:
CPU:Intel Xeon W3570 (Core:8 Units)
GPU: nVIDIA GTX-275
OS:Windows 7 x86
Video Renderer:EVR Custom
來看看整個測試結果..
===Using DXVA===
MPC Video Decoder
http://j122251751.myweb.hinet.net/h264_test/01_mpc_dxva.gif
Microsoft DTV-DVD Decoder
http://j122251751.myweb.hinet.net/h264_test/03_ms_dtv_dvd.gif
===Using CUDA===
CoreAVC
http://j122251751.myweb.hinet.net/h264_test/05_coreavc_cuda.gif
===Using CPU Decoding===
MPC Video Decoder
http://j122251751.myweb.hinet.net/h264_test/02_mpc_no_dxva.gif
CoreAVC
http://j122251751.myweb.hinet.net/h264_test/04_coreavc.gif
DivX H.264 Decoder
http://j122251751.myweb.hinet.net/h264_test/06_divx.gif
-----------------------------------------------------------------------------------------------------------------
大致上就這些...
不過要說明一下..
CoreAVC調用CUDA並沒有用到GPU上的TPC中的SM裡每個SP...
他實際上只是變相的調用PureVideo API...
在來不管是CUDA或著DXVA這種調用硬線功能的解碼效能相對於用CPU去解碼本來就快上不少,因此這點無異議.....
大概就差不多給各位參考看看...