Archive for October 8th, 2010

H.264 performance on Vegas Pro 10

Disclaimer: This article is published with Sony’s permission, but they had no say in the content or benchmarks.

Vegas Pro 10 is almost out of the door, with many new features (particularly 3D support). One feature that is of major importance to modern dSLR and digicam videographers, is its new h.264 support.

In the past, Vegas was using Quicktime or MainConcept to decode the various h.264 streams. However, especially when Quicktime was used, there was a major stability and speed problem. Add more than a handful of h.264 MOV files on your timeline, and you will be most likely looking into a crashed application. And when it would not crash, you’d probably had to deal with low frame rate performance. A very common problem for dSLR users.

Thankfully for all of us, Vegas Pro 10 has dealt with the problem by optimizing their own h.264 Sony AVC decoder, named “compoundplug.dll”. Here’s the kick of the story: the decoder does not use special h.264 decoding APIs from graphics cards (like CUDA) for full hardware acceleration (like Premiere or CoreAVC do). Instead, it’s using the generic Windows APIs, but with some hard-earned hand optimizations. The downside is, that while fast, it can’t be faster than true hardware acceleration. But it might just be “good enough” for most of us who don’t own very expensive graphics cards (and a good bonus for laptop users too who can’t install fast nVidia cards).

Optimization was carried out especially around Canon’s dSRL/digicam MOV clips. However, the optimizations are also very visible on AVCHD and .MP4 h.264 files too! How fast you ask? Here’s a rundown, from my own PC:

Vegas Pro 9 32bit (Pro/Platinum 7/8/9 numbers should be pretty close to this):
30p 1080p Canon 5D file: about 8 fps
720/60p 7D file: about 10 fps
720/30p Canon P&S digicam file: 25-30 fps
Main Profile CABAC MP4 720/30p: 12 fps
AVCHD 60i: 28-30 fps (near real-time)

Premiere Pro CS5 64bit (software rendering):
30p 1080p Canon 5D file: choppy (~10-20 fps, no exact numbers available)
720/60p 7D file: choppy (~10-20 fps, no exact numbers available)
720/30p Canon P&S digicam file: real-time
Main Profile CABAC MP4 720/30p: real-time
AVCHD 60i: Anywhere between 10 and 30 fps (very choppy at times)

Vegas Pro 10 32bit (64bit version was identical in numbers):
30p 1080p Canon 5D file: smooth, real-time playback
720/60p 7D file: smooth, real-time playback
720/30p Canon P&S digicam file: smooth, real-time playback
Main Profile CABAC MP4 720/30p: smooth, real-time playback
AVCHD 60i: smooth, real-time playback

The PC used was a DELL workstation, with a 2.4 Ghz Core 2 Quad, 6 GB of RAM, 64bit Vista, Quicktime 7.6.6. Proper project settings, and Preview(“Full”) fullscreen view were used. The video performance was measured while running on a secondary 1080p screen. Please note that playing back a file on a 1080p screen, in full screen, is slower than on a smaller window — but it makes for a better stress test, and it is how most professionals would edit anyway.

Also note that my PC does not support Adobe’s Mercury Engine (it requires an nVidia card with 768 MB of VRAM, while my 9800GT is “only” 512 MB). However, even the plain software rendering on CS5 is significantly faster than on CS4, so this is a more even comparison to the “software-only” Vegas Pro 10 decoding ability. I have no way to test this for you, but common sense says that the Mercury Engine would be faster than any software-only hand optimization.

Anyways, the point is that for us dSLR/digicam users, Vegas Pro 10 is a major update in terms of h.264 stability and performance. h.264 is now fast enough, even on less fortunate machines.

For those who prefer the old way of doing things, like, converting to Cineform, you will also be glad to know that Vegas now uses the Cineform SDK to decode Cineform files, rather than the old “Video for Windows” API. This means that some modern, extra features of Cineform (e.g. 3D) will now be working on Vegas too, the same way they do on Premiere.

Update: A friend sent me a link to test a Kodak Zi8 file (1080/30p h.264), and the results were:
– Vegas Pro 9: ~7 fps
– Vegas Pro 10: 30 fps, real time.

Update 2: Another friend sent me a link to a 1080/60p file from a Panasonic AVCHD camera. The results were:
– Vegas Pro 9: ~3-4 fps
– Vegas Pro 10: 18 fps.