Graphics Reference
In-Depth Information
8.5
Prediction Unit Syntax Elements
The prediction unit (PU) syntax elements describe how the prediction is performed
in order to reconstruct the samples belonging to each PU. Coding efficiency
improvements have been made in HEVC for both modeling and coding of motion
parameters and intra prediction modes. While H.264/AVC uses a single motion
vector predictor (unless direct mode is used) and a single most probable mode
(MPM), HEVC uses multiple candidate predictors or MPMs together with an index
or flag for signaling the selected predictor or MPM, respectively. In addition,
HEVC provides a mechanism for exploiting spatial and temporal dependencies with
regard to motion modeling by merging neighboring blocks with identical motion
parameters. This has been found to be particularly useful in combination with
quadtree-based block partitioning, since a pure hierarchical subdivision approach
may lead to partitionings with suboptimal rate-distortion behavior [ 32 , 49 , 102 ].
Also, due to the significant increased number of angular intra prediction modes
relative to H.264/AVC, three MPMs for each PU are considered in HEVC.
This section will discuss how the various PU syntax elements are processed
in terms of binarization, context modeling, and context assignment. Also, aspects
related to parsing dependencies and throughput for the various prediction parame-
ters are considered.
8.5.1
Motion Data Coding
In HEVC, motion data can be either signaled using merge mode or directly using
motion vector differences, reference indices, and inter-prediction direction.
8.5.1.1
Signaling of Merge Mode
In HEVC, merge mode enables motion data (i.e., prediction direction, reference
index and motion vectors) to be inherited from a spatial or temporal (co-located)
neighbor. A list of merge candidates are generated from these neighbors. merge
_flag is signaled to indicate whether merge is used in a given PU. If merge is
used, then merge_idx is signaled to indicate from which candidate the motion
data should be inherited. merge_idx is coded with truncated unary, which means
that the bins are parsed until a zero bin value is reached or when the number of bins
is equal to the cMax, the max allowed number of bins.
Determining how to set cMax involved evaluating the throughput and coding
efficiency trade-offs in a core experiment [ 7 ]. For optimal coding efficiency, cMax
should be set to equal the merge candidate list size of the PU. Furthermore,
merge_flag should not be signaled if the list is empty. However, this makes
parsing depend on list construction, which is needed to determine the list size.
Search WWH ::




Custom Search