Versatile Video Coding(VVC)总结

(参考的VTM2,可能不准确,选择性阅读)

一、VVC 编码结构

基于块的分层编码结构。VTM2的编码结构如下图所示:
编码结构

二、分块

CTU

图像被分成一系列的树形编码单元(CTU),CTU的概念和HEVC的相同。一个CTU包含一个NxN的亮度分量和两个对应的色度分量。最大的CTU块的亮度分量是128x128。

CU

在HEVC中CTU使用四叉树结构划分成多个CU。每一个CU进一步分成一个、两个或四个PU,每一个PU采用相同的预测模式。预测完之后获得残差,CU又根据四叉树结构分成TU。
在VVC中,CTU的划分有四叉树结构、二叉树结构和三叉树结构。并且取消了CU、PU和TU的概念,除非CU的大小大于最大变换单元(64x64)大小。CTU最先使用四叉树分割,然后四个节点可以进一步采用多种方式分割,包括水平二分(SPLIT_BT_HOR)、垂直二分(SPLIT_BT_VER)、垂直三等分(SPLIT_TT_VER)和水平三等分(SPLIT_TT_HOR)。如下图所示:
二分三分
CTU划分flag表示如下图所示:
CTU划分

图像边界的CU划分

(1)若CU部分超过右边和下边边界(右下角)
a.如果block是QT节点且block size 大于最小QT size,该block使用QT分割模式分割。
b.否则,采用SPLIT_BT_HOR分割模式。
(2)若CU部分超过下边界
a.如果block是QT节点,且block size 大于最小QT size,并且block的size大于最大的BT size,采用QT模式。
b.否则,若block是QT节点,size大于最小QT size,并且size小于等于最大的BT size,采用QT或SPLIT_BT_HOR模式。
c.否则,采用SPLIT_BT_HOR模式。
(3)部分CU超过右边界
a.如果block是QT节点,且block size 大于最小QT size,并且block的size大于最大的BT size,采用QT模式。
b.否则,若block是QT节点,size大于最小QT size,并且size小于等于最大的BT size,采用QT或SPLIT_BT_VER模式。
c.否则,采用SPLIT_BT_VER模式。

CU划分的限制

产生同样划分结果的不同划分模式应该加以限制。如下图所示:
划分限制

三、帧内预测

帧内预测编码

67种帧内预测模式,如下图所示:
帧内预测
使用三个MPM(most probable mode),分别是邻近的intra mode、得到的intra mode和默认的intra mode。邻近的intra mode是左和上方的intra mode。如果左和上不等,PLANA(0) DC(1) Angular(50)中的一个默认mode加入MPMs中(经过裁剪);否则默认的mode和得到的mode都加入到MPMs中。(经过裁剪,去重)。对于非MPM中的mode,采用6 bit固定长度编码(FLC Fixed Length Code)。

非方块的wide-angle帧内预测

传统的角度帧内预测方向定义为45度到-135度顺时针方向。在VTM2中,几个传统的角度帧内预测模式被自适应地替换为用于非方块的广角帧内预测模式。 使用原始模式索引来信号化替换的模式,其在解析之后被重新映射到宽角度模式的索引。 帧内预测模式的总数不变,即67,并且帧内模式编码方法不变。
wide-angular

cross-component 线性模型预测

色度分量和亮度分量存在线性关系,所以可以用重构的亮度分量计算色度分量。线性模型如下图所示:
线性模型
pred代表要预测的色度分量,rec代表下采样的重构的亮度分量。参数的计算方式如下图所示:
参数计算
其中L(n)表示下采样的顶部和左相邻重构亮度样本,C(n)表示顶部和左侧相邻的重构色度样本,并且N的值等于当前色度编码块宽度和高度的最小值的两倍。

position dependent 帧内预测联合

PDPC:position dependent intra prediction combination

四、帧间预测

Affine motion compensated prediction

在HEVC中,帧间预测只有一个MV表示平移运行。采用2个或3个MV表示仿射运动。
仿射
4参数模型:
4参数
6参数模型:
6参数
仿射模型分为AF_INTER和AF_MERGE两种模式。

Subblock-based temporal motion vector prediction (SbTMVP)

SbTVMP

Adaptive motion vector resolution (AMVR)

AMVR允许MVD(motion vector differences)被编码成1/4亮度精度、整数亮度精度和4亮度精度。如果所有的MVD分量都是0,采用1/4亮度精度,否则选择根据RDO选择三种中的一种。先计算1/4精度的RD cost,然后计算整数精度的RD cost,若1/4小于整数,则不计算4精度,否则计算。

发布了37 篇原创文章 · 获赞 66 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/shayashi/article/details/88978440