H.264 HRD simulator

It might be easier to read H.264 standard Annex C (Hypothetical Reference Decoder) compared to ISO/IEC 13818-2 Annex C (MPEG-2 VBV), but it’s quite difficult to understand why it’s defined in this way.

What’s the purpose of initial_cpb_removal_delay_offset?

I could not understand the purpose even after reading the standard four times!

So, I decided to write a small GUI application. It shows the actual graph of HRD. Red line is input to HRD, and Blue line is removal from HRD (=decoding). Parameters can be adjusted by slider bar so that you can see how HRD behaves with the given parameters.

6a00d10a7a8c668bfa0100a800e085000e

And, then, I finally understand the purpose of initial_cpb_removal_delay_offset. It’s for reducing the initial delay between the first byte arrival and the first picture decoding. By setting the initial_cpb_removal_delay_offset properly, you can make the delay short without increasing the bit rate.
It was long way to understand it – but it was worth doing it.
The application is available here: (You may need IE7. Firefox might not work.)
http://perfectio.jp/~motonari/HRDEmulator/publish.htm

Advertisements

About Moto

Engineer who likes coding
This entry was posted in Video. Bookmark the permalink.

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s