Graphics Reference
In-Depth Information
bin
De-
Binarization
syntax elements
bin index
Context
Selection
FSM
address
Line
Buffer
Top Info
probability
bit stream
Arithmetic
Decoder
Context
Memory
updated probability
Fig. 10.4
Top-level architecture for CABAC. Memories are shown with grey boxes
probability should be read from the context memory based on the type of the syntax
element being processed, as well as the bin index, neighboring information (top
neighbor is read from a line buffer), and component (i.e., luma or chroma). When
the probability used to decode a bin is read from the context memory, it is referred
to as a regular coded bin; otherwise, a probability of 0.5 is assumed and the bin is
referred to as bypass coded. Bypass coded bins can be decoded much faster than
regular coded bins. After each regular coded bin is decoded, an updated context
with the updated probability estimate is sent back to the context memory. Finally,
the debinarization module maps the sequence of bins to a syntax element.
The CABAC in HEVC was redesigned for higher throughput [ 17 ]. Specifically,
the CABAC in HEVC has fewer regular coded bins compared to H.264/AVC. In
addition, the context selection FSM is simplified by reducing dependencies across
consecutive states. Both the line buffer and context memory sizes are reduced. The
number of types of binarization has increased in order to account for the reduction
in regular coded bins, without coding loss. More details on this can be found in
Chap. 8 . HEVC uses the same arithmetic decoder as H.264/AVC.
10.3.1
Implementation Challenges
The challenge with CABAC is that it inherently has a different workload than the
rest of the decoder. The workload of the entropy decoder varies based on bit-rate,
while the rest of the decoder varies based on pixel-rate. The workload of CABAC
can vary widely per block of pixels (i.e. CTU). Thus a high throughput CABAC is
needed to order to handle the peaks of the workload variation to prevent stalls in
the decoder pipeline. However, it is difficult to parallelize the CABAC due to its
strong data dependencies. This is particularly true at the decoder where the data
dependencies result in feedback loops. For H.264/AVC CABAC, decoders have
throughput on the order of hundreds of Mbin/s versus up to Gbin/s for encoders.
 
Search WWH ::




Custom Search