Graphics Reference
In-Depth Information
block sizes of neighboring CBs, thus the context selection for
split_cu_flag
depends on the relative depth of the top and left neighboring CBs compared to that of
the current CB. Note that in H.264/AVC the partitioning information is sent together
with other data as aggregated syntax elements
mb_type
and
sub_mb_type
with
different ranges of allowed values and hence different binarization schemes for
different slices.
8
This kind of aggregating different information in one single syntax
element is mostly due to historical reasons, reflecting the circumstances that earlier
video coding standards (including H.264/AVC) were designed under the regime
of VLC-based entropy coding, where alphabet extensions are used to circumvent
the lower bound of 1 bit per symbol. Thus, by allowing the signaling of a coding
quadtree structure with a one-bin syntax element, i.e., the
split_cu_flag
at each node, HEVC is much more flexible and allows many more coding and
prediction block structures than H.264/AVC, even when choosing a CTB size of
16
16 luma samples and ignoring the fact that HEVC doesn't allow for inter-
predicted 4
4 luma blocks, as discussed in Chap.
3
.
8.4.2
Prediction Mode and Prediction Block Structure
In P and B slices, a
cu_skip_flag
is sent for each CU to indicate whether
all associated CBs are coded using skip mode, i.e., by using the so-called merge
mode for inter-picture prediction (as explicitly described in Sect.
8.5
) and not
sending any residual data. To leverage spatial correlation of neighboring CUs, the
context of the
cu_skip_flag
depends on whether the top and left neighboring
CUs are also skipped. For every non-skipped CU, a regular coded flag called
pred_mode_flag
is sent to indicate the prediction mode, i.e., the decision
whether the CU is either intra coded or inter coded.
9
Every non-skipped CU may be further subdivided into PUs, as shown for the
example in Fig.
8.6
. The syntax element
part_mode
indicates if and how each CU
is partitioned for the purpose of prediction. The choice of prediction block structures
for each CU depends on whether the CU is intra-coded or inter-coded; accordingly,
part_mode
is binarized and coded differently for intra-coded CUs and inter-coded
CUs, as shown in Fig.
8.7
.
Intra-coded CUs can have a single PU (referred to as PART_2Nx2N) equal to the
size of the CU, or be subdivided into four smaller PUs (referred to as PART_NxN).
PART_NxN, however, is only allowed when the CU size is equal to the minimum
allowed CU size. If the CU size is greater than the minimum allowed CU size,
8
In H.264/AVC,
mb_type
and
sub_mb_type
are used to represent the following equivalent
information in HEVC:
split_cu_flag
,
pred_mode_flag
,
part_mode
,
pcm_flag
,
inter_pred_idc
, coded block pattern (
cbf_luma
,
cbf_cr
,
cbf_cb
) and intra prediction
mode for 16
16 intra-coded PU.
9
pred_mode_flag
is not sent for CUs in I slices since they are all intra-coded.