The GOP structure with two consecutive non-used-for-reference B frames (IPbbPbbPbb…) is widely used in various applications.

In the figure above lines denote “refering to”.

What are pros and cons of such GOPs?

Cons:

1) Distance between two successive P-frames is two leaps in frames. Consequently, the coding efficiency deteriorated.

2) One of references of each B-frame is not nearest. Hence, the coding efficiency deteriorated.

Pros:

1) Easy to parallel encoding and decoding processes at frame-level. Because two successive non-reference B-frames are independent each another, hence they can be encoded and decoded in parallel.

Approximately 2/3 frames in the GOP – IbbPbbPbbP…. are B frames. Let’s assume that the average processing time of a single frame is T and GOP length in frames is N.

          Without parallelization the whole GOP processing time is NxT. 

          With processing B-frames in parallel the GOP processing time is approximately 1/3NxT + (2/3NxT)/2 = 2/3NxT

The GOP processing speed is increased by 1.5x times if non-reference B-frames are processed in parallel.

2) Enhancement in Error Resilience: if a bitstream error or packet loss or too-late packet incurs a B-frame corrupted then visual impairments are “locked” within this frame and they are not temporally propagated (since B-frames are not used for reference).

3) Bitrate Adaptation by stream thinning: in case of network jams Middle Box can safety discard non-reference B-frames from a stream without a risk of incurring severe and long-term visual distortions, only jerkiness effects can be visible.

Penalty in bit-sizes of using IPbbPbb  over IPbPb, the latter GOP structure is more coding efficient since distance between P frames is only single frame leap, each B-frame has nearest references.

I use x265 in constant QP mode (QP=25), closed GOP = 30 frames:

      on container yuv sequence (384×320, 300 frames): a penalty (in bit-size) of using IPbbPbb against IPbPbP is ~6%.  

      on akiyo sequence, (384×320, 300 frames): a penalty is ~3.5%

x265 command line for IPbPb:

x265 –input akiyo_384x320.yuv –input-res 384×320 –fps 30 –b-adapt 0 -b 1 –ref 1 –no-scenecut –keyint 30 –min-keyint 30 –repeat-headers –qp 25 -o testa_ipb.h265

for IPbbPbbP:

x265 –input akiyo_384x320.yuv –input-res 384×320 –fps 30 –b-adapt 0 -b 2 –no-b-pyramid –ref 1 –no-scenecut –keyint 30 –min-keyint 30 –repeat-headers –qp 25 -o testb_ibb.h265

13 Responses

  1. I discovered your blog site on google and check a few of your early posts. Continue to keep up the very good operate. I just additional up your RSS feed to my MSN News Reader. Seeking forward to reading more from you later on!…

  2. I have been browsing online more than three hours today, yet I never found any interesting article like yours. It’s pretty worth enough for me. Personally, if all site owners and bloggers made good content as you did, the internet will be much more useful than ever before.

  3. You really make it seem so easy with your presentation but I find this matter to be actually something which I think I would never understand. It seems too complex and extremely broad for me. I am looking forward for your next post, I will try to get the hang of it!

  4. I’ve been surfing online greater than 3 hours today, but I never discovered any interesting article like yours. It’s lovely value sufficient for me. In my view, if all website owners and bloggers made good content material as you probably did, the web might be much more useful than ever before.

Leave a Reply

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