More Details on Elemental's GPU Accelerated H.264 Encoder
by Anand Lal Shimpi on June 23, 2008 10:52 PM EST- Posted in
- GPUs
The Deal with BadaBOOM
Due out in Q3, BadaBOOM is going to be the consumer version of the encoder. It will be an "affordable" program designed for those users who want to quickly take a video file and convert it to another format without playing with settings like bitrate. This is the application we were given a chance to preview.
Under the RapiHD brand, Elemental will deliver a professional version of their encoder/transcoding software. This application will allow you more options than BadaBOOM, letting you select bitrate and resolution, among other quality settings, manually.
As we mentioned before, the software was developed using CUDA and thus will only run on a CUDA-enabled NVIDIA GPU. NVIDIA has a full list here but in short, anything from the GeForce 8, GeForce 9 or GeForce GTX 280/260 families will work.
Mr. Blackman told us that the company isn't specifically tied to using NVIDIA hardware and that as Larrabee and other AMD/ATI solutions come to light it may evaluate bringing the technology to more platforms. But for now, this will only work if you have a CUDA-enabled GPU (and as such, it stands to be one of the biggest non-gaming killer apps for NVIDIA hardware).
Performance
In our testing we found that even though performance improved tremendously over a CPU-only encode, the process still required a fast host CPU (the Core 2 Extreme QX9770 was at 25 - 30% CPU utilization). It turns out that there are two factors at work here.
According to Mr. Blackman, NVIDIA's initial CUDA release didn't have the streaming mechanism that allows you to run CPU cycles in parallel with the GPU. This functionality was added in later versions of CUDA, but the early beta we tested was developed using the initial CUDA release. Once the CPU and GPU can be doing work in parallel, the CPU side of the equation should be reduced.
Secondly, it's worth pointing out that only parts of the codec are very parallelizable (motion compensation, motion estimation, DCT and iDCT) but other parts of the pipeline (syntax decoding, variable length coding, CABAC) are not so well suited for NVIDIA's array of Streaming Processors.
Elemental also indicated that performance scales linearly with the number of SPs in the GPU, so presumably the GeForce GTX 280 should be nearly 90% faster (at least at the GPU-accelerated functions) than a GeForce 9800 GTX.
SLI Support?
As we found in our GT200 article, in most cases NVIDIA's fastest GPU is actually the pair of G92s found on a single GeForce 9800 GX2. Unfortunately, Elemental's software will not split up a single video stream for processing across multiple GPUs - so NVIDIA's fastest GPU would be the GeForce GTX 280.
There is an exception however; if you do have multiple GPUs in your system, the professional version of Elemental's software will let you output to two different resolution/bitrate targets at the same time - with each GPU handling a different transcode stream.
Final Words
We've still got a couple of months before Elemental's software makes its official debut, but it's honestly the most exciting non-gaming application we've seen for NVIDIA's hardware.
We have already given Elemental some feedback as to features we'd like to see in the final version of the software (including support for .m2ts and .evo files as well as .mkv input/output). If there's anything you'd like to see, leave it in the comments and we'll pass along the thread to Elemental.
Elemental's software, if it truly performs the way we've seen here, has the potential to be a disruptive force in both the GPU and CPU industries. On the GPU side it would give NVIDIA hardware a significant advantage over AMD's GPUs, and on the CPU side it would upset the balance between NVIDIA and Intel. Video encoding has historically been an area where Intel's CPUs have done very well, but if the fastest video encoder ends up being a NVIDIA GPU - it could mean that video encoding performance would be microprocessor agnostic, you'd just need a good NVIDIA GPU.
If you're wondering why Intel is trying to launch Larrabee next year, this is as good of a consumer example as you're going to get.
50 Comments
View All Comments
7oby - Wednesday, June 25, 2008 - link
> Contrary to what someone else said x264 is being ported to GPUs and the project is active.>
Just Google this: Dark Shikari GPU
> It looks like Avail Media has hired a contractor who gets paid full time to work on the project.
I said that and it looks like my information is more uptodate (06/21/2008):
"Dark Shikari has already said that Avail Media is now going for FPGA's instead of CUDA ..."
http://forum.doom9.org/showpost.php?p=1151050&...">http://forum.doom9.org/showpost.php?p=1151050&...
Dark Shikari is working for Avail Media
PatMeenan - Tuesday, June 24, 2008 - link
Anand, I'm sure I didn't just see you publicly admit to violating the DMCA by ripping BD movies for your home theater, right?legoman666 - Tuesday, June 24, 2008 - link
He didn't rip them. He tripped over the power cable for the comp and when he got up, the movie had ripped itself somehow.icrf - Tuesday, June 24, 2008 - link
hehe, I was going to go with the slightly more feasible "I encoded them on a box overseas"JonnyDough - Wednesday, June 25, 2008 - link
You've been reading too many news articles about the U.S. Military "not torturing" "terrorists".michal1980 - Tuesday, June 24, 2008 - link
nearly all blu-rays are encoded using a 'next gen' codec. Ethier mpg4, or an AVC flavor.given that they are both efficent codecs. Why on earth would you want to compress that file even more? Loss of quality will happen.
to me, its like compressing mp3 to another mp3. At least when ripping DVD's to compress then to x264, you are taking mpg2, and putting in a new format that is vastly more efficent.
And while I see a need to rip the blu-ray to a harddrive(media center). To loss the new audio formats in the process, is destroying half the point of new formats.
legoman666 - Tuesday, June 24, 2008 - link
You clearly have never seen a HD rip @ 12gb. The difference between the 12gb reencode and the 30gb original is negligible.Re-encoding to 720p is also useful for people who don't have a 1080p display to take full advantage of the Blu-Ray.
icrf - Tuesday, June 24, 2008 - link
It's like buying CBR 320k mp3's from an online retailer, and transcoding them to VBR to save a little space on your mobile audio player. Makes perfect sense, especially if you'll always listen on the mobile device which isn't high fidelity and you can't hear the difference between the two. If I have a 720p HDTV at home and hardware that can't decode a 1080p stream, why would I spend the extra storage space on the original?michal1980 - Tuesday, June 24, 2008 - link
expect the video encoding is already VBR.If you are going for true quality, then why throw out data? I can almost understand the transcode from 1080p to 720p.
Still are you going to be stuck with a 720p display forever?
another poster said the difference is neglabile. Depending on the size of your screen, and moive then yes.
But i'd argue, that esspically if you are using it in a prue teather setting like Anand is doing, Then why? you spent thosands on the display/projector/screen, etc, a lot of money on the audio gear.
And then you are going to worry about sainvg 8gb on your hard drive?
how cheap is harddrive space these days? I saw 750gb for ~90 dollars
or about 12 cents a gb, Is it worth the the dollar, or buck fifty, a movie + processing time? I would venture to geuss that the electric bill to re-encode the movies, would make that difference in cost savings even smaller.
Unless you are really space limited, or doing it for compatiablity reasons. I'd rather have the data as original as possible. The enocders spent lots of times in most cases optimizing the encode, so it always looks good. No Automagic encoder is going to do that.
chrnochime - Tuesday, June 24, 2008 - link
I don't see why it's such an exciting news when you don't even know what kind of quality setting is being used by the transcoder.