Earlier today we shared that NVIDIA is bringing PureVideo features to Linux through a major update in their binary display driver. The NVIDIA 180.06 driver adds VDPAU support on Linux, Solaris, and FreeBSD operating systems, with VDPAU being a set of APIs designed by NVIDIA to accelerate video decoding, provide post-processing capabilities, timestamp-based presentation of video frames, and compositing of sub-picture elements. We have now had the time to benchmark the Video Decode and Presentation API for Unix and have seen the benefits of PureVideo features finally arriving on alternative platforms.
We had used the latest MPlayer SVN code and used the NVIDIA-supplied patches that add VDPAU support to mplayer, libavcodec, libavutil, and ffmpeg. This was done on an Ubuntu 8.10 system with the Linux 2.6.27 kernel, X Server 1.5.2, and the NVIDIA 180.08 driver. We had monitored the CPU usage while playing back a sample H.264 video using the GL2, X-Video, and finally VDPAU. The graphics card in use was a NVIDIA GeForce 9800GTX 512MB running at its stock frequencies. The motherboard in use was the ASUS P5E64 Professional and the processor being used was an Intel Core 2 Duo E8400. This processor is clocked at 3.00GHz by default, but we had down-clocked it to 1.80GHz so that the CPU usage would be more measurable during video playback. The system had 2GB of DDR3 memory.
The sample H.264 video used for testing out the Video Decode and Presentation API for Unix was the one referenced by NVIDIA's VDPAU read-me file and is available from the H.264 sample collection on the MPlayer web-site (Grey.ts). To use VDPAU for the codec and output module with mplayer, the -vo vdpau -vc ffh264vdpau arguments are needed. Today we are focusing on H.264 but MPEG, WMV3, and VC-1 (on select GPUs) is supported. To monitor the CPU usage we had used the Phoronix Test Suite and run MONITOR=all ./phoronix-test-suite benchmark idle. The system had idled for two minutes and during that time the CPU usage (as a percent) was being logged and then graphed. We had played the H.264 sample video with all three modules twice during the two-minute period. On the next page are the results.