Skip to content


Handbrake 0.9.4 Released! Finally!

Rejoice! Handbrake 0.9.4 has finally been released! Its been a year since 0.9.3 was released. There are some significant new features in this release, as well as performance improvements in the x264 encoding engine.

The Improvements

The goal of Handbrake is to encode videos into the H.264 codec using the x264 engine, so we can start with those improvements. These improvements are done by a different group of developers (the x264 team) and the HB developers leverage x264 to create Handbrake. The first big boost is the instructions optimized for the Intel Nehalem architecture – up to 40% over a similarly clocked Penryn, and further improvements that have been subsequently committed to the codebase. Unfortunately I don’t have a Nehalem-based CPU to test them on (I’m waiting for motherboards that will have USB 3.0). Other non-performance code improvements have been made as well – one improvement is known as MB-Tree (macroblock tree). This optimization will track the progression of data from the current frame and how its used in future frames, so that data in the current frame that is wiped off screen very soon doesn’t get a whole lot of bits spent on it, and data that will be persisted for many frames to come will get more bits invested. Likewise weighted-prediction will increase the compression and quality of the video, but require extra processing and time.

The Handbrake software also has numerous improvements, most notably the addition of soft subtitles to allow people to turn on/off subtitles on their video instead of having them burned into the video frame. DVDs typically come with closed captioned text available, and you can choose to encode those into the video and turn them on and off through the video playback software if supported – VLC, iTunes, QuickTime X and the iPhone/iPod Touch all support it. I tested it on some raw high-def content (MPEG2 in a m2ts container and H.264 AVC in an m2ts container), it was able to handle converting it to a MP4 container (maintaining the 1080 resolution) as well as scaling it down to DVD resolution and iPhone resolution. Lastly, the video preview option will have HandBrake create a 5-60 second clip from anywhere in the video so you can check for things like proper deinterlacing as well as cropping without having to wait for the entire encode to finish (or just picking out one chapter).

Whats Been Cut

Much like the few months before your high school reunion, Handbrake developers cut the fat from the software by removing AVI container and Xvid and OGM codec support. As Handbrake is primarily for encoding video to H.264 in an MPEG-4 container, its appropriate to keep the focus on those aspects. It can still encode to MKV and supports features through MKV that aren’t supported using the MP4 container format (DTS audio passthrough).

Support was also removed for CQP (constant quantization parameter) encoding in lieu of CRF (constant rate factor). I could retype this entire page in a paragraph, but just go read it and understand that the HB developers made a sound decision. In one sentence, its another human perception vs computer analysis question that came down on the side of human perception. I would have liked to see some sort of feedback indicator on the CRF setting for novices – red for either too low or too high, yellow for the boundary area, and green for good RF values (18-22) – it was discussed at some point but not yet implemented.

What Isn’t Included

One of the top hits to my website from Google searches has to do with Handbrake and OpenCL or Grand Central technologies for the Mac. First, its inappropriate to even lay this at the feet of the Handbrake developer team because they aren’t in a position to implement them. As I mentioned above, the x264 team would be the ones responsible for implementing those technologies, and they haven’t shown much interest – they did post a Google Summer of Code opening for someone to write a Motion Estimator in CUDA (which would be restricted to Nvidia cards). The SoC is over now, and it doesn’t appear anything came of it so we’ll continue to wait. I believe it will eventually come, but it might not be for another year or two as the features of the underlying GPU hardware and languages like OpenCL and DirectCompute mature.

Another item not included is the support of WMA Pro as an input audio codec. The source library (ffmpeg) that would provide the decoding for WMA Pro had the feature added too late for the update to be included in 0.9.4. This means decoding of WMA Pro audio tracks wont be included in Handbrake until 0.9.5 (hopefully sooner than November 2010). Likewise, multi-threaded decoding is also not included (ffmpeg-mt). This isn’t quite needed yet, since the ffmpeg can currently decode input video faster in one thread than x264 can encode video in 8 threads, but as CPUs move towards 6 and 8 cores per CPU plus hyper-threading (12-16 threads) the need for multi-threaded decoding will increase – I would expect that by the time the next release hits sometime in 2010, ffmpeg-mt will be standard.

Benchmarks

Normal or iPhone presets at CRF: 20 (source: Juno DVD, all chapters; 1080i source from TiVo HD STB w/ deinterlace-slow)

Handbrake 0.9.4 Benchmark

Handbrake 0.9.4 Benchmark

I tested the 0.9.3 release against the 0.9.4 32- and 64-bit releases on a 4-core 2.66Ghz Penryn-based OSX computer. The source material for the iPhone and Normal tests were the Juno DVD (copied to HDD first), and the 1080i-source was an episode of The Big Bang Theory from my TiVo HD with the commercials removed. On the 1080i-source, the material was de-interlaced during the encode. You can see that the 64-bit version has better performance that the 32-bit version. The caveat is that the 64-bit version of VLC is (at the time of this post) not very stable. So if you do use the 64b version of HB, I’d recommend you pick another piece of software to remove the DVD encryption. The quality of the output was comparable for each version. The file size for the iPhone version was surprisingly larger (521MB vs 440MB), but the standard resolution version was smaller (929MB vs 1.1GB) and the 1080i version was much smaller in 0.9.4 (1.1GB vs 1.6GB).

There could be even larger gains for those who have Intel Core i5/i7-based CPUs, as x264 can take advantage of new SSE instructions in those CPUs – benchmarks from around the web indicate an additional boost of 10-25%. For those with the advanced chips, moving from 0.9.3 to 0.9.4 64-bit could result in performance increases between 40-50%.

Handbrake 0.9.4 is a much needed upgrade – the new features can really put a polish on the video for those who are in to ripping all their media to a home server, plus speed improvement from the x264 library will cut 20-30% or more off the time to encode video, which can be a while when you’re encoding in high definition. Get it, and if you can, get the Intel-64 bit version!

Possibly Related Posts:


Posted in Digital Entertainment, Digital Video. Tagged with , .

0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.