Pushing H.264 to the limit – Part II

My latest H.264 encoding experiment has been largely appreciated by Flash Video fans, developers and media firms’ executives. Indeed, a lot of people watched my experiment and congratulate with me for the final result. In the next posts I’ll go further in exploring the limits of the H.264, but now, I would like to discuss some point of interest about the “HD video @ 500Kbit/s” topic.

1) Generally speaking, you need more than 500Kbit/s for HD videos.

This is an experiment. Heima footage is very well suited for H.264 encoding. H.264 can retrieve a lot of informations from the previous frames with very little bistream when the video is slowly changing or “quiet”. A very fast moving footage, with back and forth or stroboscopic lights is much more difficult to encode and require an higher bitrate. How much higher ? In my experience It is possible to encode *generic* video in 720p with very good result with around 1Mbit/s and 1080p with no less than 2Mbit/s. Its is a great achievement in any case.

2) The video shows less quality in panning scenes

I’m able today to improve such behavior. That is: I’m now able to achieve a slightly higher perceptual quality for the same 500Kbit/s, or go down to less than 450Kbit/s.
This is possible using a better motion vector prediction in B-frame and passing from two to three pass encoding.

3) What tools am I useing ?

I use a mix of Ffmpeg, x264, Mencoder and Nero AAC. Here some parameters used:
5 reference frames, 5 B-frames, authomatic B-Frames, B-pyramid enabled, adaptive macroblock type, advanced Trellis on, Subq=7, advanced exagon search, deblocking filter with custom alpha e beta parameter, three pass encoding…

4) Why does the video stutter ?

There are a main reason: the web hosting I used, is limited to a 10Mbit/s bandwidth, the high amount of viewer saturated the bandwidth. A second possibility is the processing power of your pc: decoding an HD video require at least a P4@3GHz, Athlon 3500+ or better, but it depends significantly by your monitor’s resolution, too.
On my QuadCore @ 3GHz with a 22” monitor, the 10-15% of the cpu is used.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s