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.
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.)