Archive for July 26th, 2009

The importance of accelerated drivers

Geeks.com, sent over one of their popular computer parts products, video cards, the nVidia GeForce 8800GT (512 MB DDR3, PCIe, PureVideo2 HD support, GL 2.0, DirectX10, HDCP). This is a test on video playback performance with Vista-default drivers (Vista 64bit, SP2), and nVidia accelerated drivers (latest stable, v190).

I tested a Canon 5D Mark-II file, since it’s a heavy format: MOV h.264 High Profile, 40 mbps, no audio. File was loaded full screen in a 1:1 screen (1920×1080) at 32bit color, using various decoders and media players. Then, the frame rate and CPU usage was measured. I used a video file with a lot of movement to visually figure out if VLC was playing the file in real time or not (from the players I tried, it was the only one that didn’t have a way to show fps performance). The rest of the players had a way to get actual concrete numbers. Results below:

The CoreAVC Pro CUDA-accelerated version had of course the best result with just 3% CPU utilization (the Vista default drivers had no CUDA support). When CUDA was turned off, there was still a small speed up with the newer, non-Vista, drivers. The rest of the decoders also had it easier either with better frame rate, or with less CPU utilization. If they didn’t do better in terms of frame rate was mostly because of multi-threaded issues, as these decoders are written in legacy styled code (JBQ and I still joke sometimes how even today’s programmers can’t get multi-threading). The only decoder from the ones I tested that was actually multi-threaded was CoreAVC’s. These guys rock.

Please note that I used a speed up option for VLC to get real time decoding with it. By default, VLC doesn’t do real time on the 5D files, not even in this Quad Core 2.4 Ghz DELL PC I used for the test.

The moral of the story is:
– Use graphics cards that have a fast memory bus. Since 2D acceleration tapped by generic non-Purevideo decoders is mostly bandwidth-bounded, get cards that don’t cut costs by using slow memory or buses.
– Don’t leave your PC with the default XP/Vista/Win7 drivers. Upgrade to the latest stable version from your manufacturer’s web site.
– When possible, use CoreAVC Pro as your default decoder on media players/editors (Vegas won’t support it unfortunately, since it doesn’t support DirectShow decoders — but Premiere might).
– Prefer nVidia over ATi. nVidia’s PureVideo architecture is better supported by decoders, be it CoreAVC or Adobe’s CS4.
– Don’t ever opt for an Intel integrated card, unless you are really short on money.