
作者|马超
责编|王晓曼
出品|CSDN(ID:CSDNnews)

何以如此高效
/VVC与/HEVC有相同的编解码器模块,都包含块划分、帧内预测、帧间预测、变换与量化、熵编码、滤波。/VVC在每个模块上都有相应的提高,才最终达到相同主观质量下50%左右的码率节省。下面笔者将就各模块划一下重点,向各位读者加以解读一下:
编码器框架:(/VVC)基于块的分层编码结构。其参考软件编码结构如下图所示:

CTU首先由四叉树结构划分,即CTU块可以不划分或递归地划分成4个相同大小的子块。

然后,在QT的叶节点可以通过二叉树或三叉树结构进一步划分。二叉树和三叉树划分可以交错并递归进行。但是,一旦应用二叉树或三叉树划分,就不允许进行四叉树的划分了。二叉树和三叉树有水平和垂直两种划分类型。对于二叉树划分,两种划分类型都是对称的。对于三叉树划分,划分的比例为1:2:1。
由下图可以看到,二叉树划分以中心线将一个块一分为二,而三叉树划分将中心区域保留成一个完整区域,与二叉树划分形成互补,从而提高了编码效率。此外,1:2:1的划分比例使得三叉树划分后,每一个CU的边长仍然是2的整数次幂,既方便进一步划分,又使得变换(transform)设计相对简单。

帧内预测:这是一种空间域压缩算法,利用当前块周边已重建像素对当前块进行预测,以去除相邻块之间的空间冗余度,实现更为有效的压缩。
滤波:/VVC中,除上一代标准中已有的Deblocking和SAO两种滤波器外,还增加了自适应环路滤波ALF和亮度映射色度缩放滤波LMCS,从而进一步提高了编码效率。
来自腾讯的贡献
在本次标准的制订过程中,腾讯多媒体实验室刘杉博士担任标准文本联合主编,李翔博士任参考软件联合主席,实验室数十人次担任专家小组主席,核心实验负责人。技术方面,腾讯的主要贡献包括:
首发针对屏幕内容编码技术,并担任专家小组主席与核心实验负责人,牵头相关技术研究开发;
牵头贡献多项帧内预测技术,如宽角度预测,多参考行预测等;
担任帧间预测核心实验负责人,贡献包括放射变换和Merge模式提高等多项技术;
牵头主导变换类技术研究,负责相关核心实验,定义VVC主变换矩阵,贡献多个变换类技术与提高;
牵头主导自适应分辨率技术与可伸缩编码技术的研究开发;
在笔者看到相关资料后,重点向读者介绍一下下面三个技术。
帧内块复制模式(IBC):
与/HEVCSCCextension中的IBC不同,在/VVC的IBC技术中,所有能够对当前编码块进行预测的当前图像的重建像素,将存放在大小为1个CTU的高速访问内存空间中,并通过当前块所在当前CTU中的位置,阶段性的刷新这个内存空间,实现最大化IBC的预测范围的目的。
如图所示,当左边CTU完成编码时,区域0,1,2,3的重建像素将存储在IBC的内存中(状态0)。当前CTU按照4-5-6-7的顺序依次编码四个区域。IBC内存中可用于对当前块进行预测的参考像素如状态1~状态4所示,在此过程中逐步将左边CTU中的像素,更新为当前CTU中的重建像素,直到当前CTU所有区域完成编码。
这样的内存更新机制,在高性能的编码和低实现成本的两个目标中达到了一个很好的平衡。
宽角度模式(WAIP):在之前的帧内角度预测中,总共有65种角度模式,从模式2一直到模式66,宽角度模式从模式2往下扩展10个角度模式,新增了模式-1到-10,从模式66开始扩展10个角度模式,分别为模式67到76,从而可以更好编码压缩长方形的CU。
当然在进行帧内预测的过程中,并不是所有的角度模式都可以使用,而是需要根据宽高比来选择合适候选预测模式的。
多参考行帧内预测技术(MRL):在之前的帧内预测中,使用当前块的相邻左侧一列和相邻上侧一行作为参考采样来计算当前块的预测值,在MRL技术中,将可以使用的参考行扩展到多行。
也就是在使用角度模式进预测时,要将这多个参考行都尝试过,然后根据RDCOST(率失真损失)选择最小的一个参考行,参考行的索引和模式索引一样也要发送到解码端。解码端根据参考行索引来选择对应的参考行进行预测。