Tucked away in our NVIDIA GT200 review was a bit of gold. Elemental Technologies has been developing, in CUDA, a GPU-accelerated H.264 video transcoder.

If you've ever tried ripping a Blu-ray movie you'll know that just a raw rip of just one audio and one video stream can easily be over 20 - 30GB. I've been doing a lot of this lately for my HTPC and even without 8-channel audio tracks, my ripped movies are still huge (Casino Royal was around 27GB for the 1080p video track and 5.1-channel english audio track). On a massive screen, you'll want to preserve every last bit of information, but on most displays you could actually stand to compress the video quite a bit.

Using the H.264 codec (or the open-source x264 version), it's very easy to preserve video quality but reduce file size down to the 8 - 15GB range - the problem is that it requires a great deal of processing power to do so. Transcoding from a H.264 encoded Blu-ray to a lower bitrate H.264/x264 can often take several hours, if not over a day for a very high quality re-encode on a fast dual or quad-core system.

Right now transcoding Blu-ray movies isn't exactly at the top of everyone's list, but using H.264/x264 you can significantly reduce file sizes on any video. x264 is the new DivX and its usefulness extends far beyond just ripping HD movies. Needless to say, its use isn't going to increase unless encoding using the codec gets faster.

Elemental Technologies has been working on a technology they called RapiHD, which is a GPU-accelerated H.264 video encoder and the consumer implementation of RapiHD is a software application called BadaBOOM (yes, that's what it's actually called, there's even a video).

RapiHD and thus BadaBOOM are both CUDA applications, meaning they are written in C and compiled to run on NVIDIA's GPUs. They won't work without a CUDA-enabled GPU (GeForce 8xxx, 9xxx or GTX 280/260) and they won't work on AMD/ATI hardware.

Elemental allowed NVIDIA to use a very early beta of BadaBOOM in its GT200 launch, which meant we got access to the beta. We could only transcode up to 2 minutes of video and we weren't given access to any options, we could only choose a vague output format and run the encode.

BadaBOOM uses its own H.264 codec that Elemental developed, we were forced to compare it to the open-source x264 in our tests since Elemental's software won't run without GPU acceleration. We used AutoMKV and played with its presets to vary quality. Even with the awkward comparison, the advantage of GPU-accelerated H.264 encoding was obvious:

Those numbers are compared to an Intel Core 2 Extreme QX9770, the fastest quad-core CPU available today. In the worst case scenario, the GTX 280 is around 40% faster than encoding on Intel's fastest CPU alone. In the best case scenario however, the GTX 280 can complete the encoding task in 1/10th the time. We're not sure where a true apples-to-apples comparison would end up, but somewhere between those two extremes is probably a good guesstimate.

Given the level of performance we saw with the GeForce GTX 280, we scheduled a meeting with Elemental's CEO, Sam Blackman to learn more about BadaBOOM as his application has the ability to truly revolutionize video encoding performance for the masses.

The Deal with BadaBOOM
Comments Locked

50 Comments

View All Comments

  • mmntech - Tuesday, June 24, 2008 - link

    ATI still has the software for AVIVO encoding in their drivers section. However, it only works with certain X1000 series cards. Somebody did make a crack of the program to work on all cards but I couldn't get it to work.
    I have no idea why they stopped it for the HD series. So far the only exercise my HD 3850 is getting lately is Folding@Home and Compiz. I agree they really missed the boat on GPU encoding. It would be nice to rip and encode a full DVD movie to DivX or AVC without it taking two hours.

  • djc208 - Tuesday, June 24, 2008 - link

    I would think ATI is either seriously re-thinking that plan or trying to find someone to pair with for similar software on their cards. Their new "shoot for the middle" strategy is good but this will give nVidia not only an advantage in the graphics card market but also help sell more high end cards. ATI may not be able to compete on the high end but they can't afford not to compete in this new space at all.
  • shiggz - Tuesday, June 24, 2008 - link

    I hope they include a ps3 264 compatible profile.

    I've started noticing that lots of of my old 4-6yr old downloaded video files are just not very compatible these days. So Ive started encoding all of my files with the ps3 profile in nero. Hoping that they will 99% be compatible with ps4 or even later thus giving me hopefully another decade or more of guaranteed hardware compatibility.
  • ViRGE - Tuesday, June 24, 2008 - link

    Speaking of profiles, did Elemental say what profiles BadaBoom and their professional applications will support? I've been told that the BadaBoom beta was limited to the Baseline profile, which is fine if you're encoding for mobile devices but not very useful for your backup scenario. Will the final version be able to encode material with High Profile features?
  • ltcommanderdata - Tuesday, June 24, 2008 - link

    Well, I definitely can't wait for OpenCL to avoid these platform dependent situations.

    In any case, I wonder if trying to reduce CPU load should be the only option. As in, if a GPU can encode very quickly, why not have an option where multiple CPU cores can be loaded to make things even faster while leaving a single-core free for other system tasks. I'm sure there are lots of cases where most of a quad-core processor would be free anyways, so why not use them too?
  • phatboye - Tuesday, June 24, 2008 - link

    I was against CUDA from the start. There really needs to be an Open API so we don't get tied to one developer's hardware. Not sure if OpenCL will be it but I do hope something comes soon.
  • ltcommanderdata - Tuesday, June 24, 2008 - link

    I imagine it could be a bit difficult to deal with all the different architectures out there. I believe only nVidia's new GT200 series has IEEE 754 compliant 64-bit support, while the older 8-series and 9-series were only 32-bit. ATI's 2k-series and 3k-series only had partial IEEE 754 64-bit support and the 1k-series were GPGPU capable as well through their Pixel Shaders. With so many different platforms on the market right now, it'll be interesting to see where they find the common ground or whether OpenCL will try focus more on setting the standard for future generations. I suppose OpenCL could use OpenGL's extensions approach which will presumably allow all current GPGPU forms to be supported, but that will still leave developers having to optimize for each platform.
  • SlyNine - Tuesday, June 24, 2008 - link

    Also unless I missed it, What quality level did the GPU Transcode equal too , Fast Balanced or Insane Quality?
  • Anand Lal Shimpi - Tuesday, June 24, 2008 - link

    We couldn't really do a direct comparison - the bitrates put it at somewhere between balanced and insane.

    Take care,
    Anand
  • Manabu - Wednesday, June 25, 2008 - link

    >We couldn't really do a direct comparison - the bitrates put it
    >at somewhere between balanced and insane.

    To make an comparison, is only set the x264 encoder to make an encode of the same size as your gpu-acelerated one. It don't matter that the gpu-acelerated one isn't tweakable, because x264 is. Bitrate is only size(bits)/time(seconds). Then you can compare quality. If the quality is too high in both to make an good comparison, then an reduction of bitrate would be necessary, to see witch one loose quality faster.

    And I couldn't get exact infomation on AutoMKV profiles, but maybe the fastest profile try to retain an minimum of decency. DarkShikari speculates that you can reach 240+ fps in an quadcore, on an 720p stream. http://forum.doom9.org/showpost.php?p=1152036&...">http://forum.doom9.org/showpost.php?p=1152036&...

Log in

Don't have an account? Sign up now