Graphics Reference
In-Depth Information
2.4
Picture Buffering Management
2.4.1
Picture Order Count and the DPB
Every picture in HEVC has a picture order count (POC) value assigned to it, denoted
as PicOrderCntVal. It has three main uses: to uniquely identify pictures, to indicate
the output position relative to other pictures in the same CVS, and to perform motion
vector scaling within the lower-level VCL decoding process. All pictures in the same
CVS must have a unique POC value. Pictures from different CVSs may share the
same POC value, but pictures can still be uniquely identified since there are no
possibilities to mix pictures from one CVS with any picture of another CVS. Gaps
in POC values are allowed in a CVS—i.e., the POC value difference between two
pictures that are consecutive in output order can differ by more than one (and in fact
the amount by which the POC values for consecutive pictures may differ can vary
arbitrarily).
The POC value of a picture is signaled by the slice_pic_order_cnt_lsb codeword
in the slice header. The range of allowed POC values is from 2 31 to 2 31 1, so
in order to save bits in the slice header, only the least significant bits of the POC
value (POC LSB) is signaled. The number of bits to use for POC LSB can be
between 4 and 16, and is signaled in the SPS. Since only the POC LSB is signaled
in the slice header, the most significant POC value bits (POC MSB) for the current
picture are derived from a previous picture, called prevTid0Pic. In order for POC
derivation to work the same way even if pictures are removed, prevTid0Pic is set to
the closest previous picture of temporal layer 0 that is not a RASL picture, a RADL
picture, or a sub-layer non-reference picture. The decoder derives the POC MSB
value by comparing the POC value of the current picture with the POC value of the
prevTid0Pic picture.
The decoded picture buffer (DPB) in HEVC is a buffer that contains decoded
pictures. Decoded pictures other than the current picture may be stored in the
DPB either because they are needed for reference, or because they have not been
output yet, something that is necessary to enable out-of-order output. Note that the
current decoded picture is also stored in the DPB. Figure 2.12 shows two example
referencing structures that both need a DPB size of at least three pictures. Pictures
P 1 and P 2 in Fig 2.12 a both need to be stored in the DPB when P 3 is being decoded
since they are both output after P 3 . The DPB therefore needs to be capable to store
P 1 ,P 2 ,andP 3 simultaneously. In Fig. 2.12 b, each picture uses two reference pictures
so the DPB needs to be large enough to store three pictures simultaneously here as
well. The referencing structure in Fig. 2.12 b is an example of a so-called low-delay
B structure, in which bi-prediction is extensively used without any out-of-order
output.
The minimum DPB size that the decoder needs to allocate for decoding a par-
ticular bitstream is signaled by the sps_max_dec_pic_buffering_minus1 codeword,
which may be sent for each temporal sub-layer in the sequence parameter set. The
maximum possible DPB size that is allowed in the first version of HEVC is 16,
Search WWH ::




Custom Search