VVC Description

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 45

VVC Description

Min Gao
Block Partition
• New block partitioning of a CTU using
• Recursive quadtree (QT) split
• Nested recursive multi-type tree (MTT) splits with
• PPS syntax elements:
• CTU size, MinQTSize
• MaxBtSize, MaxTtSize
• MaxMttDepth, MinCbSize

SPLIT_BT_VER SPLIT_BT_HOR SPLIT_TT_VER SPLIT_TT_HOR


Block Partition
• New block partitioning of a CTU using
• Syntax elements signaling for QT+MTT
1

MTT (BT) CU node


1 mtt_split_cu_bin
1 ary_flag
QT CU node
split_qt_flag MTT CU node
1
0
CU node
mtt_split_cu_ver MTT (TT) CU node
split_cu_flag 0 tical_flag
MTT CU node 1
CTU/CU node
0
MTT (BT) CU node
mtt_split_cu_bin
CU leaf node 0 ary_flag
MTT CU node
0

MTT (TT) CU node


Block Partition
• redundant CU splits
• Different splitting patterns could potentially result in the same coding block
structure
• Reuse the encoding info for speed-up
Block Partition
• Restrictions on redundant CU splits
• Two levels of consecutive binary splits in one direction could have the same coding block structure as a
ternary tree split followed by a binary tree split of the central partition. In this case, the binary tree split
(in the given direction) for the central partition of a ternary tree split is prevented by the syntax. This
restriction applies for CUs in all pictures
Block Partition
• Picture Boundary Process
Block Partition
• Dual Tree
• Luma and chroma blocks not aligned anymore
• Separate MTT coding tree for chroma
• Typically higher tree depth needed for luma (details/structure)
• Partitioning can stop early for chroma (faster encoding)
• Local dual tree
• No further splitting of 4×N and N×4 chroma intra blocks (including IBC and
palette modes)
Intra Prediction
• Directional intra prediction modes
• Wide-angle intra prediction for non-square blocks
• Cross-component linear model prediction
• Position dependent intra prediction combination
• Multiple reference line intra prediction
• Intra Sub-Partitions
• Matrix weighted Intra Prediction
Intra Prediction
• Directional intra prediction modes
Intra Prediction
• Directional intra prediction modes
• A unified 6-MPM list is used for Intra mode coding
Intra Prediction
• Wide-angle intra prediction for non-square blocks
• prediction directions with angles beyond 45/135 degrees are reasonable
• Add more modes at both ends
Intra Prediction
• Wide-angle intra prediction for non-square blocks
• To reduce the Intra mode signaling bits:
• width/height ratio dependent mapping for signaling
• Horizontal CU: [67, 80] --> [2, 15]
• Vertical CU: [-14, -1]-->[53, 66]
Intra Prediction
• Cross-component linear model prediction (CCLM)
• Chroma samples predicted using corresponding reconstructed luma samples
pred! i, j = α · rec" ′ i, j + β

Parameters α and β : minimize regression error between neighboring reconstructed luma and
chroma samples around current block
• Selection of left/top neighbors via 3 modes:
• INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM
Intra Prediction
• Position dependent intra prediction combination (PDPC)
• Combination of the un-filtered boundary reference samples and HEVC-style
intra prediction with filtered boundary reference samples.
• planar, DC,
• intra angles less than or equal to horizontal
• intra angles greater than or equal to vertical
and less than or equal to 80
Intra Prediction
• Position dependent intra prediction combination (PDPC)
Intra Prediction
• Multiple reference line intra prediction (MRL)
• More reference lines for intra prediction, luma only

the samples of segments A and F are not fetched from


reconstructed neighboring samples but padded with the closest
samples from Segment B and E, respectively.

• Activation of lines by syntax element mrl_idx


• restrict the MRL to angular most probable modes (MPMs) only
• Applied for DC, directional prediction
• mrl_idx> 0:
• No PDPC
• No boundary filter
• No edge filter
Intra Prediction
• Intra Sub-Partitions (ISP)
• CB is further partitioned into sub-partitions for intra prediction
• If block size is greater than 4x8 (or 8x4) then it is divided by 4 sub-partitions
• Else it is divided by 2 sub-partitions
W
W
H/4
H/2
Horizontal Horizontal
W W

W/2
W/4 H
H

H
H Original HxW partition
Vertical
Original HxW partition
Vertical

Examples of sub-partitions for CUs other than 4x8, 8x4 and 4x4 Examples of sub-partitions for 4x8 and 8x4 CUs
Intra Prediction
• Matrix weighted Intra Prediction (MIP)
• First (originally) learned tool in a video coding standard
• Up to 16 weight tables depending on block size
Inter Prediction
• Extended motion vector prediction
• Symmetric motion vector difference coding
• Extended merge mode
• Merge with motion vector difference
• History-based Motion Vector Prediction
• Affine motion compensated prediction
• Subblock-based temporal motion vector prediction
• Adaptive motion vector resolution
• Motion field storage
• Bi-prediction with CU-level weights
• Bi-directional optical flow
• Decoder side motion vector refinement
• Geometric partitioning
• Combined inter and intra prediction
Inter Prediction
• Extended motion vector prediction

• MVD and reference picture list (RPL) index explicitly signaled


• MVP derived from list of 2 candidates
• Spatial (A,B) and temporal (C) neighbors (same as HEVC)
• History-based candidates
• Pairwise average MVP
• Zero MV (same as HEVC)

A1 B1 B0 A0 B2
Inter Prediction
• History-based Motion Vector Prediction (HMVP)
• The HMVP table size S is set to be 6 and MVs of up to 5 non-subblock inter-coded CUs stored
in table
• FIFO buffer with redundancy check
• Reset for new CTU row, and at tile / slice
Inter Prediction
• High precision motion compensation
• VVC increases the MV precision to 1/16 luma sample
• HEVC’s 8-tap luma interpolation filters and 4-tap chroma interpolation filters are extended to 16 phases for
luma and 32 phases for chroma
• non-affine CU without inferred MV:
• 1/4 luma sample
• non-affine CU with inferred MV:
• 1/16 luma sample
• affine mode CU:
• 1/16 luma sample
Inter Prediction
• Merge mode with MVD (MMVD)
• After a merge candidate is selected, it is further refined by the signaled MVDs information
• MVDs info
• Distance index:
• specifies motion magnitude information
Distance IDX 0 1 2 3 4 5 6 7
Offset (in unit of
1/4 1/2 1 2 4 8 16 32
luma sample)

• Direction index:
• represents the direction of the MVD relative to the starting point

Direction IDX 00 01 10 11
x-axis + − N/A N/A
y-axis N/A N/A + −
Inter Prediction
• Symmetric motion vector difference coding (SMVD)
• Signal only motion MVP, RPL index and MVD for List0 for Bi prediction
• Apply inverse MVD on opposite reference picture from List1

𝑚𝑣𝑥# , 𝑚𝑣𝑦# = (𝑚𝑣𝑝𝑥 # + 𝑚𝑣𝑑𝑥# , 𝑚𝑣𝑝𝑦# + 𝑚𝑣𝑑𝑦# 1


0
𝑚𝑣𝑥$ , 𝑚𝑣𝑦$ = (𝑚𝑣𝑝𝑥$ − 𝑚𝑣𝑑𝑥# , 𝑚𝑣𝑝𝑦$ − 𝑚𝑣𝑑𝑦# 1

MVD0 MVD1

List-0 reference picture Current picture List-1 reference picture


Inter Prediction
• Affine motion compensated prediction

𝑚𝑣$% − 𝑚𝑣#% 𝑚𝑣#& − 𝑚𝑣$&


𝑚𝑣% = 𝑥+ 𝑦 + 𝑚𝑣#%
𝑊 𝑊
𝑚𝑣$& − 𝑚𝑣#& 𝑚𝑣$% − 𝑚𝑣#%
𝑚𝑣& = 𝑥+ 𝑦 + 𝑚𝑣#&
𝑊 𝑊

𝑚𝑣$% − 𝑚𝑣#% 𝑚𝑣'% − 𝑚𝑣#%


𝑚𝑣% = 𝑥+ 𝑦 + 𝑚𝑣#%
𝑊 𝐻
𝑚𝑣$& − 𝑚𝑣#& 𝑚𝑣'& − 𝑚𝑣#&
𝑚𝑣& = 𝑥+ 𝑦 + 𝑚𝑣#&
𝑊 𝐻
Inter Prediction
• Affine motion compensated prediction
• Each 4×4 luma subblock has a MV
• The MV of a 4×4 chroma subblock is calculated as the average of the MVs of the top-left and
bottom-right luma subblocks in the collocated 8x8 luma region
Inter Prediction
• Affine Merge Prediction
• the CPMVs of the current CU is generated based on the motion information of the spatial
neighboring CUs.
B2 B0 B1

( x0 , y0 ) ( x1, y1 )

v0

v1
A0

A1

( x2 , y2 ) ( x3 , y3 ) Cur
 
v2 v3
• up to five CPMVP candidates
 A
v4
( x4 , y4 )
Inter Prediction
• Subblock-based temporal motion vector prediction (SbTMVP)
• uses the motion field in the collocated picture to improve motion vector prediction and merge
mode for CUs in the current picture

B1 B0

A1'
Motion shift is set
to A1's motion

A1 A1

A0
Collocated picture Current picture

MV_L0 from collocated MV_L1 from collocated


block block

MV_L0 for current block MV_L1 for current block


(after scaling) (after scaling)
Inter Prediction
• Adaptive motion vector resolution (AMVR)
• MVD of the CU is coded in different precision
• Normal AMVP mode:
• quarter-luma-sample, half-luma-sample
• integer-luma-sample or four-luma-sample.
• Affine AMVP mode:
• quarter-luma-sample, integer-luma-sample
• 1/16 luma-sample
• Alternative Interpolation filter for HPEL resolution:
• Smoothing Filter based on Gaussian kernel
• Symmetrical 6-tap filter: 1 {3,9,20,20,9,3}
• Merge block: HPEL IF flag inherited from neighbor
Inter Prediction
• Bi-prediction with CU-level weight (BCW)
• The bi-prediction mode is extended beyond simple averaging to allow weighted averaging of
the two prediction signals

𝑃bi−pred = 8 − 𝑤 ∗ 𝑃# + 𝑤 ∗ 𝑃$ + 4 ≫ 3

• Low delay pictures:


• W is {-2, 3, 4, 5, 10}
• Non-low-delay pictures
• W is {3, 4, 5,}
• The weight w is determined in one of two ways
• for a non-merge CU, the weight index is signalled after the motion vector difference
• for a merge CU, the weight index is inferred from neighbouring blocks based on the
merge candidate index
Inter Prediction
• Bi-directional optical flow (BDOF)
• BDOF is used to pixel-wise compensate the fine motion missed by the block-based motion
compensation

General Bi-Pred:

BDOF:
Inter Prediction
• Bi-directional optical flow (BDOF)

4x4 block

6x6 surrounding region

Samples & gradients


padding
Inter Prediction
• Prediction refinement with optical flow for affine mode (PROF)
• refine the subblock based affine motion compensated prediction

Δ𝐼 𝑖 𝑗 = 𝑔% 𝑖, 𝑗 ∗ Δ𝑣% 𝑖 𝑗 + 𝑔& 𝑖, 𝑗 ∗ Δ𝑣& 𝑖 𝑗

𝐼′ 𝑖 𝑗 = 𝐼 𝑖, 𝑗 + Δ𝐼 𝑖 𝑗
Inter Prediction
• Decoder side motion vector refinement (DMVR)
• a refined MV is searched around the initial MVs in the reference picture list L0 and reference
picture list L1

• 25 points full search is applied for integer sample offset


searching

• parametric error surface based sub-pixel offsets estimation


Inter Prediction
• Geometric partitioning mode (GPM)
• One kind of merge mode
• CU is split into two parts by a geometrically located straight line
• Only uni-prediction is allowed for each partition
• The uni-prediction candidate list is derived directly from the merge candidate list constructed
Inter Prediction
• Geometric partitioning mode (GPM)
• The geometrically located straight line
Inter Prediction
• Geometric partitioning mode (GPM)
• Blending along the geometric partitioning edge
Inter Prediction
• Combined inter and intra prediction (CIIP)
• The inter prediction signal in the CIIP mode Pinter is derived using the same inter prediction
process applied to regular merge mode;
• The intra prediction signal Pintra is derived following the regular intra prediction process with
the planar mode
• If the top neighbor is available and intra coded, then set isIntraTop
to 1, otherwise set isIntraTop to 0;
• If the left neighbor is available and intra coded, then set isIntraLeft
to 1, otherwise set isIntraLeft to 0;

• If (isIntraLeft + isIntraTop) is equal to 2, then wt is set to 3;


• Otherwise, if (isIntraLeft + isIntraTop) is equal to 1, then wt is set to
2;
• Otherwise, set wt to 1.
Transform
• Multiple transform selection
• Subblock transforms for Inter CUs
• Low frequency non-separable transform Dependent quantization
• Joint coding of chroma residuals
Transform
• Joint coding of chroma residuals (JCCR)
• The chroma residuals are coded jointly and one single joint chroma residual block is signaled.
• Encoder:
Mode=2: resJointC[ x ][ y ] = ( resCb[ x ][ y ] + CSign * resCr[ x ][ y ] ) / 2

Mode=1: resJointC[ x ][ y ] = ( 4 * resCb[ x ][ y ] + 2 * CSign * resCr[ x ][ y ] ) / 5

Mode=3: resJointC[ x ][ y ] = ( 4 * resCr[ x ][ y ] + 2 * CSign * resCb[ x ][ y ] ) / 5

• Decoder:
Transform
• Joint coding of chroma residuals (JCCR)
• The chroma residuals are coded jointly and one single joint chroma residual block is signaled.

Mode:

Alpha:

Inverse
Matrix:
Adaptive Loop Filter
• Wiener Filter:
Adaptive Loop Filter
• Wiener Filter:

• Wiener-Hopf equations:
• T is auto-correlation matrix and v is cross-correlation vector
Adaptive Loop Filter
• Filter Shape:
• Two diamond filter shapes

• Block classification:
• For luma component, each 4×4 block is categorized into one out of 25 classes.
• The classification index C is derived based on its directionality D and a quantized value of
activity 𝐴!
𝐶 = 5𝐷 + 𝐴K
Adaptive Loop Filter
• Geometric transformations:
• rotation or diagonal and vertical flipping

You might also like