GPU-Based Video Encoding is Here: Does That Mean Curtains For Your CPU?
Earlier this summer, both Nvidia and ATI hosted press events to unveil their new hardware—and the excitement about GPU-based encoding was palpable. We were promised that our videocards would make Photoshop faster and better and our GPUs would encode video 10 times faster than our CPUs. In fact, someone lacking tech savvy would have left these presentations thinking, "Wow, these GPU things can make common computing tasks run insanely fast, and there are a couple of games that work with them too." Of course, as is typical, the truly big promises (like 10x faster video encodes) were off in the future, when the software was "ready."
Well, the software's nearly ready. Elemental's Badaboom uses Nvidia's CUDA interface to do lots of the grunt work of DVD ripping by using the GPU instead of your musty old CPU. I've been in the Lab for the last few days putting this app through the ringer. Our test bed for this challenge is an Intel Q6600 quad core, running at a stock 2.4GHz, with 4GB of memory and a GeForce GTX 280 reference board.
The short, short version, for anyone who wants to skip ahead, is that Badaboom is an extremely promising first-generation utility, and there's a lot to like. However, there are some serious problems for anyone looking to replace Handbrake (www.handbrake.fr) or AutoMKV (http://forum.doom9.org/showthread.php?t=134478) for their archival DVD rips.
To properly evaluate Badaboom, we compared its speed and video quality to Handbrake’s, which is essentially a GUI front end for a tweaked version of the CPU-powered X264 encoder. Unfortunately, we quickly discovered a hitch: Badaboom isn't capable of running H.264’s maximum quality settings, as Handbrake is. By default, Handbrake uses the H.264 high profile, while Badaboom uses the lower-quality baseline profile. To see how both apps performed in an apples-to-apples scenario, we ripped a copy of Pee-Wee's Big Adventure to our hard drive and then ripped it to H.264 with each app, using a variety of settings. Here's our test matrix:
Settings for Test Runs
| |
Elemental Badaboom Beta 2 |
Handbrake 0.9.2 |
| Test #1: PS3 Stock Settings |
upscales to 1280x720 (?!), 2500 kbits/sec, default settings |
PS3 Stock settings, Single-pass, 720x480 resolution
|
| Baseline Settings |
PS3 preset, 2100kbit/s |
2100kbit/sec, single pass, Handbrake using baseline settings(see end of article) |
| "Best" Quality |
Custom Media Center Preset - 2500kbit/s |
Deux Six Quatre preset - 2500kbit/s |
| iPhone |
1500 kbit/s, preset settings |
1500kbit/s, preset settings |
PS3 Stock Settings
When using two different codecs, even when you're encoding the same content, it's extremely difficult to ensure that you're actually measuring similar workloads. As a case in point, examine the first test we ran, the PS3 stock settings. We chose the PS3 profile because video ripped for the PS3 will also work on many other devices, and includes options that are commonly used while ripping.
While Handbrake ripped the DVD video at native resolution using the PS3 preset, the default Badaboom PS3 profile ripped the disc using the H.264 baseline preset and then upscaled it to 1280x720. The two apps showed remarkably similar results, separated by about 3 minutes on a 40-minute rip, but the quality of the Handbrake encode was vastly superior, despite the higher resolution of Badaboom's output. When we ran the test again, without forcing Badaboom to upscale the video, our results strongly favored Badaboom. However, since Handbrake runs a High profile H.264 encode by default, we wanted to see how the GPU stacked up against the CPU when the workloads were more equal. (Be sure to click through to see the native-resolution, losslessly-compressed image. There are additional quality comparison images on the final page of the story.)

PS3 Stock Settings: When we stopped Badaboom from upscaling the video to 720p from DVD resolution, we saw a substantial speed boost for the GPU-accelerated app. However, Handbrake was encoding using the much more strenuous High H.264 profile. (click image for full-size)
TEST #1: PS3 STOCK SETTINGS
| |
Elemental BadaBoom (PS3 preset, 2500bits/sec, 720p) |
Elemental BadaBoom (baseline, PS3 preset, 2500bits/sec, 480p) |
Handbrake .9.2 PS3 (high profile, 2500bits/sec, 480p) |
| PeeWeeMark (sec) |
2256 |
1097 |
2460 |
| File Size (gb) |
1.56 |
1.53 |
1.7 |