Video Compression

VideoNerd

Overhead of SPS and PPS is typically negligible (excepting bizarre cases when all frames are black and takes several dozens bytes). SPS and PPS are usually transmitted once per closed GOP and the size of SPS and PPS is negligible to the size of the whole GOP. So, why dozens parameters in SPS and PPS are Exp-Golomb coded? To save 10-20 bytes and to complicate parsing? Indeed, variable length coding of parameters complicates parsing of SPS and PPS by Middle boxes. My conjecture is related to Mpeg-2 Systems (or to Transport Stream container).  Smaller SPS and PPS are more likely placed in a single ts-packet (notice that after PES header ts-packet payload size can be really small). If SPS content is dispersed among several ts-packets (pls. bear in mind that video ts-packets can be interleaved with audio ones and consequently the next video ts-packet is not necessarily the next one).

Golomb coding assigns to smaller value fewer bits:

value=0 the codeword “0” is assigned

value=1 the codeword “010”

value=2 the codeword “011”

value=3 the codeword “00100”

value=4 the codeword “00110”

…..

Unfortunately many Golomb parameters in SPS and PPS are coded non-effective. i provide the example with SPS Golomb coded parameter – max_num_ref_frames:

in my opinion the case with max_num_ref_frames=0 (I-only streams) is not popular, however max_num_ref_frames=0 is coded with a single bit, while most popular cases max_num_ref_frames=3 or max_num_ref_frames=4 are coded with 5 bits. Thus, less popular values of max_num_ref_frames are coded with fewer bits and most popular values of max_num_ref_frames are coded with more bits. It’s definitely non-effective. 

19 Responses

  1. Excellent beat ! I wish to apprentice at the same time as you amend your site, how can i subscribe for a weblog site? The account aided me a applicable deal. I have been tiny bit familiar of this your broadcast provided brilliant clear concept

  2. I simply wished to say thanks all over again. I am not sure what I could possibly have sorted out in the absence of the thoughts revealed by you about this problem. It previously was a real distressing difficulty in my position, however , noticing a expert approach you managed it made me to weep for fulfillment. I will be happy for your information and as well , believe you recognize what a great job you were putting in training the rest by way of a web site. Probably you have never met any of us.

  3. Thanks for ones marvelous posting! I really enjoyed reading it, you’re a great author.I will make certain to bookmark your blog and definitely will come back very soon. I want to encourage that you continue your great job, have a nice evening!

  4. Wow that was odd. I just wrote an very long comment but after I clicked submit my comment didn’t appear. Grrrr… well I’m not writing all that over again. Anyway, just wanted to say great blog!

  5. Hello just wanted to give you a quick heads up. The text in your post seem to be running off the screen in Safari. I’m not sure if this is a format issue or something to do with internet browser compatibility but I figured I’d post to let you know. The design and style look great though! Hope you get the issue resolved soon. Kudos

  6. I’ve been surfing online more than 3 hours today, yet I never found any interesting article like yours. It is pretty worth enough for me. Personally, if all web owners and bloggers made good content as you did, the internet will be a lot more useful than ever before.

  7. I would like to thnkx for the efforts you have put in writing this blog. I am hoping the same high-grade blog post from you in the upcoming as well. In fact your creative writing abilities has inspired me to get my own blog now. Really the blogging is spreading its wings quickly. Your write up is a good example of it.

Leave a Reply

Your email address will not be published. Required fields are marked *