Saturday, December 10, 2016

bookmarks: Optimized implementation of an MVC decoder ---Jochen Britz

focus on : design and implementation of a real-time decoder based on
the FFmpeg framework, that is compliant with H.264/AVC Annex H (referred
to as MVC)
In order to make ffmpeg support MVC, we

  1. make it support new NAL unit type
  2. enhance data structure to support new SPS, PPS parameters
  3. implement new buffer management(DBP) to store MVC buffer
Hierarchical B-picture:
Hierarchical B frame can be referenced by other B frame in lower hierarchy. 
The main gain is accomplished by applying a prediction hierarchy and spreading the quantization parameters QPk over the hierarchy levels k, so that the pictures lower in hierarchy have a higher quantization. One simple way to do so is:
QPk = QPk−1 + (k == 1?4 : 1)
The reason why higher quantization for pictures lower in hierarchy is possible without affecting perceptual quality is that the lower the picture is in the hierarchy, the less it can be referenced such that its impact on other pictures is lower. Since pictures of the same hierarchy level should not be next to each other, according to display order, they do not have a big effect on the viewer.

IDR pictures are intra-coded pictures without spatial or temporal references.
Successors of IDR pictures are prohibited to reference any predecessor of
the IDR picture. Successors and predecessors are according to both the
display and the decoding order.
Anchor pictures are similar to IDR pictures but they allow spatial references.
Since any kind of temporal references are still prohibited, their reference
pictures have to be either IDR or anchor pictures.
Key pictures are either IDR or anchor pictures. They are called key pictures
because they are the access points for decoding the stream.

following, Author writes how to modify ffmpeg to add new mvc decoder. it is very detail, so, if you want to do that again, you can read it carefully.

No comments:

Post a Comment