Graphics Reference
In-Depth Information
8.3.3.6
Reduce Parsing Dependencies
As parsing with CABAC may constitute a throughput bottleneck, it is important to
minimize any dependency on other video decoding processes, which could cause
CABAC to stall or may even prevent a successful parsing process in case of picture
loss due to transmission errors [ 7 , 79 , 108 ] (see Sect. 8.5.1.1 ). Ideally the parsing
process should be decoupled from all other decoding processes, which actually is the
case for CABAC in H.264/AVC. Decoupling parsing from the sample reconstruction
process is also important when entropy decoupling is used, i.e., when a large frame
level buffer is inserted between the entropy decoder and the rest of the decoder to
absorb the variance in the bit-rate and pixel-rate workloads, respectively.
8.3.3.7
Reduce Memory Requirements
Memory accesses often contribute to the critical path delay. Thus, reducing memory
storage requirements is desirable as fewer memory accesses increases throughput as
well as reduces implementation cost and power consumption [ 81 , 90 ].
8.4
Coding Tree Unit and Coding Unit Syntax Elements
In HEVC, a picture is partitioned into a regular grid of disjoint square blocks of
2 N 2 N luma samples and, in case of 4:2:0 color sampling, corresponding square
blocks of 2 N 1 2 N 1 chroma samples. The parameter N D 4; 5, or 6 can be
chosen by the encoder and transmitted in the sequence parameter set (SPS), such
that the corresponding coding tree units represent luma CTBs of size 16 16,
32 32,or64 64 samples, respectively. The CTU syntax elements describe how
the corresponding CTBs can be further partitioned into smaller coding blocks by use
of the coding quadtree and how the method of sample adaptive offset (SAO) in-loop
filtering is performed on the reconstructed luma and chroma samples belonging to
the CTU.
Within a picture, an integer number of CTUs can be grouped into a slice.
Each slice itself consists of one (leading) independent slice segment and zero
or more subsequently ordered dependent slice segments. A flag called end_of
_slice_segment_flag is sent to indicate the last CTU in a slice segment.
In addition, tiles and wavefront parallel processing, which are introduced in
Chap. 3 , can be used to fragment the slice segment into multiple substreams, 6 each
being represented by its own CABAC codeword. Therefore, if end_of_slice
_segment_flag indicates that it is not the last CTU in a slice segment, a flag
called end_of_sub_stream_one_bit is used to indicate whether it is the
6 Slice segments can also be used to fragment tiles and wavefronts into substreams.
Search WWH ::




Custom Search