Graphics Reference
In-Depth Information
Tabl e 8. 21 Context memory
requirements for H.264/AVC
(4:2:0) and HEVC
H.264/AVC
(w/ interlace)
(w/o interlace)
HEVC
CTU/CU contexts
25
22
16
PU contexts
26
26
14
TU contexts
390
244
124
Total
441
292
154
8.8.3.1
Context Memory
The motivation for context reduction was first proposed in [ 81 ], where the number of
contexts was reduced for coeff_abs_level_greater1_flag and coeff_
abs_level_greater2_flag without impacting coding efficiency. Subsequent
proposals [ 3 , 66 , 93 ] were made to reduce the number of contexts for other syntax
elements (e.g., sig_coeff_flag ). HEVC uses only 154 contexts as compared
to 441 (or 292 without interlaced) used in H.264/AVC as shown in Table 8.21 ; thus,
a 3 reduction in context memory size is achieved with HEVC.
8.8.3.2
Line Buffer Memory
The motivation to reduce the size of the line buffer in the CABAC was first proposed
in [ 90 , 92 ], where the line buffer size was reduced by changing the context selection
for motion vector difference. Subsequent proposals [ 15 , 20 , 58 , 68 , 82 , 91 ] were made
to further reduce neighboring dependencies to reduce the line buffer size. Based on
these optimizations, in the worst case, the line buffer only need to store the CU
depth (2-bits) of the top neighbor for context selection of split_cu_flag for
every 8 8 block, and to indicate if the top neighbor is skipped (1-bit) for context
selection of cu_skip_flag for ever 4 4 block. Assuming a minimum CU size
of 8 8 for a 4k 2k sequence, HEVC only requires a line buffer size of 1,024 bits
versus 30,720 bits in H.264/AVC, which is a 30 reduction.
8.8.3.3
Coefficient Storage
Large TB sizes have large hardware cost implications. Compared to H.264/AVC,
the 16 16 and 32 32 TBs in HEVC have 4 and 16 more coefficients
than an 8 8 TB, respectively, and consequently require an increase in storage
cost. Several techniques were used to reduce the coefficient storage cost. First, the
sign information is sent before coeff_abs_level_remaining such that only
3-bits storage is required per coefficient for the partial decoded value (if stored as
a 2-bit number with a range from 0 to 3, and a sign bit). Second, the coefficient
information is interleaved at a 4 4 subblock level, such that the fully constructed
coefficient can be achieved for every subblock and be sent out to the next module
[ 75 ]. Thus, only a coefficient storage of 4 4 3-bits is required in HEVC CABAC
 
Search WWH ::




Custom Search