February 1st, 2010
[Review] NVdia video decode API (Vdpau) and comparison performance
Computer Hardware & Software, Software review, by brigs.
VDPAU or Video Decode Presentation API for UNIX or Linux. The big name “Nvidia” was the behind schene with developing this API for X-Windows system library for using by UNIX ( Linux), BSD and Solaris operating system. VDPAU allowing video program to offload decode and post processing process to GPU Video hardware based or the same like what we seeing in DxVA (DirectX Video Acceleration) in Windows based. This time the process being capable to offload by VDPAU to GPU are motion composition (mo comp), inverse Descrete Cosine Transform (iDCT), Variable Lenght Decoding (VLD) for MPEG-1, MPEG-2, MPEG-4 ASP (Mpeg 4 part 2), MPEG-4 AVC (H.264 Divx 6), VC-1, WMV3/WMV9, Xvid and Divx encoded video.
For hardware supporting by Nvidia GPU with featured Second Generation Pure Video only capable offload acceleration decode video. X11 and video drivers are some basic environment requirement. Nvidia Geforce 8 series and later has support since first beta driver released for supporting VDPAU. The exception in Geforce 8 family are Geforce 8800 GTS 320/640Mb and Geforce 8800GTX/Ultra. Later card Geforce 9 card with G92 core like Geforce 8400GS and Geforce 8800GTS 512mb are supported. No compromising for Nvidia for release support for non supported GPU at rightnow.
In otherhand video card from Intel and ATI this time not supported VDPAU. Intel is still looking for new chance for development API-VA or VDPAU and ATI GPU card since released ATI 4000 series have UVD (Unified Video Decode) that part of ATI AVIVO HD for supporting video decode acceleration in DxVA (WIndows) and Xbox 360 platform that supporting H.264 and VC-1 builtin decoder. In the future AMD still developing XvBA or X Video Bitstream Acceleration for suporting X WIndows system in UVD hardware acceleration for those platform. You can see and compare NVIDIA GPU that supporting VDPAU or not in chart below.
Platform Testing
For testing purpose i using 2 different processor and platform for comparing performance. Intel Core 2 Duo E6600 (Conroe) for old fashion represented dualcore era and Core i5 750 for new beginning. Here a brief system configuration and testing
Core i5 Rig
CPU Intel Core i5 750 with running core speed at 4Ghz
Biostar Tpower P55 chipset
2×2Gb Team Extreme PC15000 with running at 1910Mhz 8-8-7-21 1T
Colorfull Geforce GT220 with 128bit 512Mb DDR3
WD Black 1Tb
PC Power & Cooling Silencer 750W
Core 2 Duo E6600 Rig
CPU Intel Core 2 Duo E6600 with running at 3.32Ghz
J&W P45D2 Ultra
2×2Gb Gskill PC8800GBPI with running at 1100Mhz 5-5-5-15 2T
Colorfull Geforce GT220 with 128bit 512Mb DDR3
WD Caviar 160Gb
Enlight 500W
For operating system test i using OpenSuse 11.2 x64 with latest 2.6.31.8 kernel and X-Windows using X-Org Nvidia 190.53 driver. VDPAU testing application using Mplayer SVN r-30099 x64 and Sysstat 9.0.2 x64 for CPU recording activity.
Testing Result
For comparison result i using different video output and codec in X11 windows that capable using video acceleration with GPU hardware. Old but still good enough video ouput setting like X-Video (XV) and GL2 including in these test with exception GL2 and XV ouput can’t rendering graphics if i using together with ffh264vdpau codec. I using 39.3Mb “Avatar trailer” movie with 3.30 minutes long in 720p resolution for video codec ffh264 (ffmpeg based) and ffh264fdpau test with .mkv format. I do not included screnshoot video cause these is only decode comparison test only that still used the same video input.
Real screenshoot :
X-Video with ffh264 codec E6600
X-Video with ffh264 codec i5
GL2 with ffh264 codec E6600
GL2 with ffh264 codec i5
VDPAU with ffh264 codec E6600
VDPAU with ffh264 codec i5
VDPAU with ffh264vdpau codec E6600
VDPAU with ffh264vdpau codec i5
As you can see in the chart above, combining VDPAU with ffh264vdpau codec make lowest CPU utilization. Both platform test either the Core 2 Duo E6600 have same par performance with core i5 750 here. Differential have bigger space between both platform when i used FDPAU with ffh264 codec at almost 265% in CPU utilization. I still looking what behind that issue here, we know that E6600 only lack of complete SSE4 instruction. When i choosing the other video output GL2 with ffh264, Core i5 cpu usage about 2.72% and C2D E6600 get high stack with 7.07%. And latest test with X-Video ouput with ffh264 codec C2D E6600 have the bigger cpu utilitzation about 8.6% and the core i5 still can holding of using minimal cpu about 3.84%.
Good start for nVdia for developing new API for GPU based hardware Video decode acceleration. Although Nvidia supported is still Beta stage released cause i can’t using ffhWMV3vdpau and ffhvc1dpau codec to working with Mplayer. Maybe later i will give more comparative comparison performance with XVBA that will introduce by ATI/AMD. If you are Windows user and want to trying using GPU acceleration when decode your video you can using many good software out there likes MPC Home Cinema, Cyberlink PowerDVD, Corel WinDVD or maybe you wanna to try Mplayer Windows version that supported with the latest Nvidia Forceware driver. One the great articles was written by Mr Hilbert Hagedorn in his website “Accelerate x.264 1080p movies over the GPU Guide“
Thank for reading my articles and have a good day…..















I don’t sometimes comment on websites but I had to drop in and tell you thanks for writing this, I totally agree and hopefully other people will understand your argument.
thanks for coming here and read my articles, i hope u enjoy….
cool, i have enjoyed reading thank for sharing your story Greeting.
[...] video API VP4 acceleration while decoding MPEG4 ASP codec. as you can read my previus article about nvidia decode video acceleration for UNIX (Vdpau). While we all waiting for new GPU from GT400 based that will landed a few month again, [...]