Graphics Reference
In-Depth Information
bin
De-
Binarizer
syntax
elements
range
update
binIdx
4
3
1
bitstream
Context
Modeler
Arithmetic
Decoder
probability
2
context update
Fig. 8.2 Three key operations in CABAC (from a decoder perspective): Binarization, Context
Modeling/Selection and (Binary) Arithmetic Coding. Feedback loops in the decoder are high-
lighted with dashed lines
example also illustrates how both aspects of coding efficiency and throughput were
considered during the HEVC standardization process in a balanced way. More on
the throughput aspects is given in the next subsection, while the details of context
modeling for all syntax elements related to residual coding are provided in Sect. 8.6 .
8.3.2
CABAC Throughput Bottlenecks
CABAC, as originally designed for H.264/AVC and also, as initially selected for
the HEVC standardization starting point in HM1.0, has some serious throughput
issues (particularly for decoder implementations at higher bit rates) [ 80 , 95 ]. The
throughput of CABAC is determined based on the number of binary symbols (bins)
that it can process per second. The throughput can be improved by increasing the
number of bins that can be processed in a cycle. However, the data dependencies
in CABAC make processing multiple bins in parallel difficult and costly to achieve.
These dependencies result in feedback loops in the CABAC decoder as shown in
Fig. 8.2 , and can be described as follows:
1. The updated range is fed back for recursive interval subdivision.
2. The updated context is fed back for probability estimation.
3. The context modeler selects the probability model based on the type of syntax
element and, as already noted above, for selected syntax elements, based on some
derivation process that involves other previously decoded bin values or other
relevant side information. At the decoder, for non-binary syntax elements, the
decoded bin value is fed back to determine whether to continue processing the
same syntax element or to switch to another syntax element. If a switch occurs,
the value of the decoded bin may also be used to determine which syntax element
to decode next.
4. The context modeler may also select the probability model based on the bin
position in the syntax element (binIdx). At the decoder, the decoded bin value
is fed back to determine whether to increment binIdx and continue to decode
the current syntax element, or set binIdx equal to 0 and switch to another syntax
element.
Search WWH ::




Custom Search