APP下载

基于已重建先验信息的VVC 快速仿射运动估计算法*

2022-04-11杨若兰何小海熊淑华卿粼波陈洪刚

通信技术 2022年3期
关键词:编码文献预测

杨若兰,何小海,熊淑华,卿粼波,陈洪刚

(四川大学 电子信息学院,四川 成都 610065)

0 引言

随着5G 技术的发展与普及,超高清视频的应用也越来越广泛,视频数据迅速增长,但传输宽带和各种终端设备的存储容量有限,以往的视频压缩编码技术H.264/高级视频编码(Advanced Video Coding,AVC)[1]和H.265/高效视频编码(High Efficiency Video Coding,HEVC)[2]已无法满足市场的需求。为了研究更加高效的视频压缩编码技术,以支持未来一代的高分辨率视频编码标准,由联合视频探索组(Joint Video Explore Team,JVET)在2020 年7 月正式发布了新一代视频压缩编码标准H.266/多功能视频编码(Versatile Video Coding,VVC)[3,4],标准参考软件为VVC 测试软件(VVC Test Model,VTM)[5]。VVC 与HEVC的整体编码框架区别不大,只是在每个编码模块中引入了新的技术。在不影响视频视觉质量的前提下,VVC的编码效率较HEVC 提升了约50%。但同时带来的还有编码时间的巨大提高,不利于实时通信。

在帧间预测模块中,VVC 引入了仿射运动估计模型[6]。与HEVC 帧间预测时仅采用平移运动对运动物体进行运动补偿相比,仿射运动模型除了能描述物体的平移运动,还能描述物体的旋转和缩放,这也更贴近现实中物体的真实运动过程。仿射运动带来了更高的压缩效率,然而同时也导致计算复杂度升高,从而使预测编码时间大幅度增加,不利于在很多实际场景中的应用[7]。同时,VVC 在编码块(Coding Unit,CU)划分部分引入了多类型树划分[8],与选择最佳帧间预测模式递归进行,这也进一步增加了计算量,使编码时间大幅增加[9]。因此找到一种不明显影响VVC 压缩效率的快速仿射运动估计方法是有意义的。

为了降低VVC 帧间仿射运动估计的计算复杂度,文献[10]提出了一种基于边缘检测算法的VVC 快速仿射运动估计算法,利用迭代梯度下降法的对称性限制仿射运动估计的迭代次数,并根据VVC 中仿射高级矢量预测(Affine Advanced Motion Vector Prediction,A AMVP)模式对于4 参数仿射模型的对称性对6 参数的A AMVP 模式进行了修正。文献[11]提出了一种自适应选择4 参数或6 参数仿射运动模型的框架,减少了遍历两种仿射模型的冗余计算。文献[12]针对HEVC 提出了两种快速仿射运动补偿算法:一种是单步亚像素查值法,第二种是基于插值精度的自适应块大小运动补偿方法。由于文献[12]提出的基于H.265/HEVC的算法不能很好适用于H.266/VVC,文献[13]对文献[12]提出的算法做出了改进,对AAMVP 候选列表的构建方法和迭代搜索法进行了优化,进一步节省了编码时间。文献[14]和文献[15]都利用父CU的相关性,提出了一种根据父CU 最佳帧间预测模式是否是Skip 模式来跳过当前CU的仿射运动估计过程的方法,此外,文献[15]还通过最佳预测方向缩小仿射运动估计参考帧的大小。以上方法都在一定程度上降低了H.266/VVC 中仿射运动估计的复杂度,节省了编码时间,但很少使用到划分过程中同一父CU 下,前面已经使用过的划分方式下的子CU(后文称为前序子CU)和相邻CU 之间的运动相关性。因此,本文在分析了H.266/VVC 中仿射运动估计模式的分布情况,以及它与已重建先验信息的相关性的基础上,提出了一种基于已重建先验信息的快速仿射运动估计算法。

1 H.266/VVC 中的仿射运动估计

HEVC 在帧间预测中仅使用平移运动作为运动补偿的基本模型[16],而VVC 在帧间预测模块中引入了基于块的仿射运动估计模型(Afiine),提高了帧间预测编码的性能。仿射运动估计除了能表示平移运动,还能表示物体的旋转和缩放,这也更加符合现实生活中运动物体的运动轨迹。VVC 中的仿射运动估计模型有两种,分别为4 参数模型和6 参数模型[17,18]。4 参数模型中,一个块的仿射运动向量由两个控制点控制,而6 参数模型中有3 个控制点。图1 为VVC 中的仿射运动模型,图1(a)和图1(b)分别为4 参数仿射运动模型和6 参数仿射运动模型。这两种模型都是通过当前块控制点的运动矢量(Control Point Motion Vector,CPMV),并根据相应公式计算得到当前块的运动矢量。

本文以4 参数模型的仿射运动估计具体过程为例,如图1(a)中左上和右上两个控制点的运动矢量分别为mv0和mv1,则以(x,y)像素为中心的当前块的运动向量计算公式为:

式中:mvh(x,y)和mvh(x,y)分别为当前块的水平和垂直方向的运动矢量;和分别为左上角控制点的水平和垂直方向的运动矢量;和分别为右上角控制点的水平和垂直方向的运动矢量;W为当前块的宽。

对于6 参数模型,如图1(b)中所示,它比4 参数模型多了左下角的控制点,其运动矢量为mv2,6 参数模型的当前块的运动向量计算公式为:

图1 VVC 中的仿射运动模型

HEVC帧间预测中的平移运动有合并(Merge)[19]模式和高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)[20]模式,VVC 中的仿射运动估计也有仿射合并(Affine Merge,AMerge)模式和AAMVP 两种模式。Affine Merge 模式应用于宽和高均大于8的CU 块,类似于HEVC 帧间预测的Merge 模式,Affine Merge 模式也会构建一个具有5个元素的候选列表,其中每个元素是CPMV的集合,每一个元素中包含2 个或者3 个CPMV,在编码时仅需传输最佳的一个元素在列表中的索引[21]。Affine Merge 构建候选列表的具体过程为:

(1)继承相邻CU的CPMV:需要搜索的相邻CU 如图2 候选列表搜索块所示,其中,左边相邻CU的搜索顺序为L0->L1,上方相邻CU的搜索顺序为A0->A1->A2,然后利用包含L0的相邻CU的CPMV 计算得到当前CU的CPMV。Affine Merge 模式的继承过程如图3 所示。

图2 候选列表搜索块

图3 Affine Merge 模式继承过程

(2)利用相邻CU的平移MV 构造CPMVs:图4 为Affine Merge 模式的构造过程,左上角的CPMV 由顺序搜索A2->A3->L2的MV 得到,右上角的CPMV 由顺序搜索A1->A0的MV 得到,左下角的CPMV 由顺序搜索L1->L0的MV 得到,将得到的CPMV 构建候选列表。

图4 Affine Merge 模式的构造过程

(3)零向量填充:当候选列表中的候选模式数量少于候选列表规定模式数量时,用零向量进行填充。

Affine AMVP 模式应用于宽和高均大于16的CU 块,Affine AMVP 会构建一个长度为2的候选列表,编码器根据候选列表中最优的矢量组元素进行迭代搜索实际CPMV,并且传输的是当前CU的实际CPMV 和预测CPMV 之间的差值,而不是Affine Merge 模式是直接传输预测CPMV的索引。

2 基于已重建先验信息的快速仿射运动估计算法

2.1 先验信息分析

在普遍情况下,视频中的运动物体往往只占整帧图像的一小部分,其余的大部分为背景区域,而通常只有运动物体的运动轨迹存在平移、旋转和缩放,背景区域一般只存在平移运动。在VVC的帧间预测时,是对所有的区域都进行仿射运动估计,而最终只有很少一部分区域将仿射运动估计模式作为最佳帧间预测模式,因此存在大量不必要的计算,造成了时间的浪费。设事件A表示最佳帧间预测模式是仿射运动估计模式的情况,P(A)表示最佳帧间预测模式是仿射运动估计模式的概率,P(A)的定义如式(3)所示,其中的MAffine表示最佳帧间预测模式是仿射运动估计模式的CU 数量,Mall表示所有帧间预测的CU 总数量。表1 展示了4 个视频序列中仿射运动估计模式为最佳帧间预测模式的CU 占比情况,表1 中的P(A)普遍较小,均值为9.3%。从表1 可以看出,在整帧图片中,仅有很少一部分图像区域最终采用仿射运动估计,但其他没有将仿射运动估计作为最佳模式的CU 在计算过程中也会使用仿射运动估计模型进行计算,这些不必要的计算在编码时间上造成了较大的浪费。

表1 仿射运动估计模式为最佳帧间预测模式的CU 占比情况

VVC 在选择CU 最佳帧间预测模式的过程中,CU 划分和模式的率失真代价计算是递归进行的。通过计算每种划分方式下的每种模式的率失真代价值选择代价最小的作为最佳模式。率失真代价的计算公式为:

式中:SAD为绝对误差和;λ为拉格朗日算子;B为编码所需比特数。CU的划分顺序如图5 所示。

图5 是VVC 中CU的划分方式,父CU 一共有5种划分方式划分为子CU,分别为四叉树划分(QT),水平二叉树划分(BH),垂直二叉树划分(BV),水平三叉树划分(TH),垂直三叉树划分(TV)。但是在实际划分过程中,是按照图5 中虚线所示的顺序进行的,并会保存前面划分后的预测模式和编码信息,而在同一编码树单元(Coding Tree Unit,CTU)中的图像纹理及运动方式具有很强的相似性,因此可以利用前面已经进行划分编码的同层级子CU(前序子CU)的信息和上一层级父CU的信息来预测当前CU 选择仿射运动估计模式作为最佳模式的可能性,从而可以跳过不必要的仿射运动估计过程。同时,相邻CU的纹理和运动方式也具有较强的相关性,因此相邻CU的重建信息也可以作为是否跳过仿射运动估计的判断条件之一。

图5 VVC 中CU 划分方式

帧间预测Merge 模式中存在一种特殊模式,即Skip 模式。Skip 模式的特殊之处在于它不传残差,是一种更为简单的模式。Skip 模式和Affine 模式具有互斥性。Skip 模式多用于背景区域以及纹理较少和运动缓慢的区域,而此类区域往往不会将仿射运动估计模式作为最佳模式,因此可以通过判断父CU、前序子CU 和相邻CU的最佳模式是否是Skip模式,来提前终止仿射运动估计过程。

设事件Nskip为相邻左、上CU 最佳模式都为Skip的事件,事件Pskip为父CU 和前序子CU 中至少有一个的最佳模式为Skip的事件。P(A|B)表示,在事件B(B∈{Nskip,Pskip})的条件下,当前CU的最佳帧间预测模式是Affine 模式的概率。表2 统计了4 个视频序列中的P(A|B)情况。P(A|Nskip)和P(A|Pskip)的定义为:

从表2 可以看出,P(A|B)的值普遍较小,P(A|Nskip)的平均值为0.13,P(A|Pskip)的平均值为0.1,这表明在当前CU 相邻块的最佳帧间预测模式都是Skip 模式时,或者在父CU 和前序子CU 中至少有一个的最佳帧间预测模式为Skip 模式时,当前CU将Affine 模式作为最佳模式的概率很低。通过以上分析可以根据条件提前跳过很多冗余的仿射运动估计计算过程。

表2 条件概率P(A|B)

2.2 算法提出

本文提出了一种基于已重建先验信息的快速仿射运动估计算法,算法整体框架如图6 所示。

图6 本文算法整体框架

本文算法的具体步骤为:

(1)执行仿射运动估计之前的常规平移运动估计过程,获取父CU、前序子CU、相邻左边和相邻上边CU的最佳帧间预测模式以及当前CU 目前的最佳模式;

(2)判断当前CU 目前的最佳帧间预测模式是否是Skip 模式,若是,则跳过当前CU的仿射运动估计过程,执行步骤(6),若否,执行步骤(3);

(3)判断父CU 和前序子CU 中是否存在最佳帧间预测模式为Skip 模式的CU,若存在,则跳过当前CU的仿射运动估计过程,执行步骤(6),若不存在,执行步骤(4);

(4)判断相邻左边、上边对CU的最佳帧间预测模式是否都为Skip 模式,若是,则跳过当前CU的仿射运动估计过程,执行步骤(6),若否,则执行步骤(5);

(5)执行原始仿射运动估计过程;

(6)确定最佳帧间预测模式;

(7)结束运动估计过程。

3 实验结果与分析

为测试本文提出算法的有效性,将所提算法实验结果与VVC 标准算法进行比较,采用H.266/VVC标准测试序列进行测试。实验平台的硬件配置为Inter(R)Core(TM)i7-6700 CPU @ 3.40 GHz。然后,在H.266/VVC 标准参考软件模型VTM9.1 上进行了实验,选择22、27、32 和37 作为量化参数,测试配置文件为encoder_lowdelay_P_vtm.cfg。使用总体编码时间差∆Tall,仿射运动估计编码时间差∆Taffine,同等客观质量下本文算法较VVC 标准算法改变的码率百分比(Bjøntegaard Delta Bit Rate,BDBR)和同等码率下本文算法较VVC 标准算法改变的客观质量(Bjøntegaard Delta Peak Signal-to-Noise Rate,BDPSNR)作为实验效果的评价参数。∆Tall和∆Taffine的定义分别为:

式中:Tpro为本文提出算法的总体编码时间;Tori为VVC 标准算法的总体编码时间;TApro为所提算法的仿射运动估计总体编码时间;TAori为VVC 标准算法的仿射运动估计总体编码时间。TApro和TAori分别表示为:

式中:TAoff为将标准VVC 配置文件中的Affine flag设置为0,即关闭仿射运动估计的VVC 标准算法总体编码时间。式(7)也可写成:

∆Tall和∆Taffine为负数则分别表示本文提出算法节省了VVC 标准算法的总体编码时间和仿射运动估计的编码时间。

BDBR 表示在视频图像相同的情况下码率的变化情况:若为负数,表示降低了码率;若为正数,则表示增加了码率。BDPSNR 表示在码率相同的情况下,视频图像质量的变化情况:若为正数,表示视频质量提升;若为负数,则表示质量下降。表3给出了该算法的实验结果。

表3 算法实验结果

如表3 所示,相较于VVC 标准算法,所提算法在所有测试序列中的编码时间均有所下降,整体编码时间平均下降了10.17%,仿射运动估计的编码时间平均下降了44.20%,BDBR 平均只增加了0.21%,BDPSNR 平均值降低了0.008 dB。其中,序列BQTerrace、BQMall、RaceHorsesC、BQSquare、RaceHorses、Johnny 和SlideEditing的仿射运动估计时间都降低了超过50%,这主要是因为这些序列中大多为背景区域,且所包含的运动也多为平移运动,仅有很小一部分的区域采用了仿射运动,因此本算法减少了背景区域和平移运动区域的仿射运动估计计算过程,大幅度降低了仿射运动估计的预测编码时间。为了更直观地展示所提算法的实验效果,图7 给出了测试序列BQMall、BasketballDrillText 和PartyScene的率失真曲线。

在图7 中,横坐标表示编码的比特率(Bitrate),单位为Kbps,纵坐标表示视频的客观质量评价标准PSNR,单位为dB。图7 中星号标注的曲线表示原始VTM9.1算法的率失真曲线,竖直断线标注的曲线表示所提算法的率失真曲线。从图7 可以看出,本文算法与原始VVC算法的率失真曲线基本重合,表明本文所提快速仿射运动估计算法未明显降低视频的压缩效率。

图7 部分序列率失真曲线

为进一步体现所提算法的有效性,将所提算法与文献[10]和文献[15]中提出的快速仿射运动估计算法进行了对比。对比结果分别如表4 和表5 所示。

从表4 可知,本文算法在比文献[10]中的算法只增加了0.02%的BDBR的情况下,进一步降低了3.26%的总体编码时间。从表5 可知,本文算法在比文献[15]中的算法只增加了0.09%的BDBR的情况下,进一步减少了4.6%的总体编码时间和7%的仿射运动估计时间。从表4 和表5 可以看出,本文所提算法在降低复杂度的性能上均优于文献[10]和文献[15]。

表4 所提算法与文献[10]算法比较 %

表5 所提算法与文献[15]算法比较 %

4 结语

针对H.266/VVC 帧间预测中的仿射运动估计过程存在大量冗余计算,复杂度高的问题,本文分析了VVC 帧间仿射运动估计模式的分布情况和编码块间最佳预测模式的相关性,提出了一种基于已重建先验信息的快速仿射运动估计算法。该算法利用Skip 模式和Affine 模式之间的互斥性,根据上层级CU、本层级子CU 和相邻CU的重建信息跳过冗余的仿射运动估计过程。实验结果表明,在不明显影响视频码率和质量的情况下,所提算法有效地降低了VVC的整体编码时间和仿射运动估计时间。

猜你喜欢

编码文献预测
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
生活中的编码
Hostile takeovers in China and Japan
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Cultural and Religious Context of the Two Ancient Egyptian Stelae An Opening Paragraph
Genome and healthcare