掌桥专利:专业的专利平台
掌桥专利
首页

基于控制点运动矢量的仿射模型优化

文献发布时间:2024-01-17 01:27:33


基于控制点运动矢量的仿射模型优化

技术领域

本发明涉及图像与视频处理领域,更具体而言,涉及用于基于控制点运动矢量的仿射模型优化的方法、装置和计算机程序产品。

背景技术

数字视频功能可以结合到各种设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型电脑或台式计算机、平板电脑、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏机、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流设备等。

数字视频设备实施视频编码(coding)技术,诸如由MPEG-2、MPEG-4、ITU-T H.263、ITU-TH.264/MPEG-4,第10部分,高级视频编码(AVC)、高效视频编码(HEVC)标准、ITU-TH.265/高效视频编码(HEVC)、多功能视频编码(Versatile Video Coding)VVC(H.266)、以及此类标准的扩展定义的标准中描述的那些技术。通过实施这样的视频编码技术,视频设备可以更有效地发送、接收、编码、解码和/或存储数字视频信息。

2010年4月,两大国际视频编码标准组织VCEG和MPEG成立视频压缩联合小组JCT-VC(Joint collaborative Team on Video Coding),一同开发高效视频编码标准。

在2013年,JCT-VC完成了对HEVC(High efficiency video coding)标准(也称为H.265)开发,并且随后陆续发布了多个版本。

HEVC提出了全新的语法单元:编码单元(CU)是进行预测、变换、量化和熵编码的基本单元,预测单元(PU)是进行帧内帧间预测的基本单元,变换单元(TU)是进行变换和量化的基本单元。另外,每个CU定义了共享相同预测模式(帧内或帧间)的区域。

如图1所示,在HEVC中,可以进行帧内预测模式和帧间预测模式的切换。在帧内预测模式和帧间预测模式中,HEVC都采用编码树单元(CTU)的编码结构,CTU是HEVC编解码的基本处理单元。CTU由1个亮度CTB(编码树块,Coding Tree Block)、2个色度CTB和相应的语法元素组成。图2显示了在一个LCU(最大编码单元)编码后的CTU结构。在HEVC中,LCU可以只包含一个编码单元(CU),也可以使用CTU四叉树结构划分出为不同大小的CU。

HEVC中有四种大小CU,大小分别为:64x64、32x32、16x16和8x8。CU块越小,其在CTU树中位置越深。当CU为64x64、32x32和16x16时称为2Nx2N模式(表示可以划分为更小的CU),当CU为8x8时称为NxN模式(表示不可以进行进一步划分)。对于帧内预测,CU被分成两个PartMode(2Nx2N和NxN),这取决于它是否可以被分成更小的CU。尺寸为64x64、32x32和16x16的CU属于2N×2N,尺寸为8×8的CU属于N×N。

在HEVC中,PU进行帧内帧间预测的基本单元,PU的划分是以CU为基础的,具有五种规则大小64x64、32x32、16x16、8x8和4x4。更具体地,PU尺寸基于PartMode:对于2N×2N的PartMode PU尺寸与CU相同,对于N×N的PartMode CU可以被划分为四个4×4子PU。对于2N*2N的CU模式,帧内预测PU的可选模式包括2N*2N和N*N,帧间预测PU的可选模式有8种,包括4种对称模式(2N*2N,N*2N,2N*N,N*N)和4种非对称模式(2N*nU,2N*nD,nL*2N,nR*2N),其中,2N*nU和2N*nD分别以上下1:3、3:1的比例划分,nL*2N和nR*2N分别以左右1:3、3:1的比例划分。

在HEVC中,仍然继续使用H.264/AVC的拉格朗日率失真优化(RDO)进行模式选择,为每一个帧内模式计算其RDO:

J=D+λR                             (1)

其中,J为拉格朗日代价(亦即RD-cost),D表示当前帧内模式的失真,R表示编码当前预测模式下所有信息所需的比特数,λ为拉格朗日因子。其中D通常使用绝对哈达玛变换差之和(SATD)来实现。

处理一帧视频图像需要首先将其划分成多个LCU(64x64),然后依次编码每个LCU。每个LCU依次递归划分,其通过计算当前深度的RD-cost判定是否继续划分。一个LCU最小可划分至8x8大小的单元,如图2所示。编码器通过比较深度的RD-cost值判定是否继续划分,如果当前深度内的4个子CU的编码代价总和大于当前CU,则不继续划分;反之则继续划分,直至划分结束。

本领域技术人员容易理解,由于CTU是对LCU进行CU划分的树状编码结构,CTU中的CU划分方式是以LCU开始的,因此在本领域中这两个名词经常可交换地使用。

在帧内预测中,每个PU使用总共35种预测模式。使用粗略模式决策(RMD),我们可以获得64x64、32x32和16x16块的三种候选模式以及8x8和4x4块的八种候选模式。通过合并来自相邻块的最可能模式(MPM)来获得每个PU大小的最佳候选列表。然后,通过RDO来选择当前PU的最佳帧内预测模式。当完成当前CU中包括的所有PU的帧内预测时,完成当前CU的帧内预测。通过当前CU的RD-cost与当前CU及其4个子CU的四个子CU的总RD-cost之间的比较来选择具有较小RD-cost的次优CU内部预测完成。当完成所有CU分区时,完成当前CTU帧内预测。对于HEVC,当对LCU进行编码时,应当执行85个CU(一个64×64CU,四个32×32CU,十六个16×16CU和六十四个8×8CU)的帧内预测。当CU被编码时,应当执行一个PU或四个子PU的帧内预测。大量CU和PU导致帧内预测的高复杂性。

为了开发超越HEVC的新技术,2015年成立的一个新的组织,联合视频探索组(Joint Video Exploration Term),并在2018年更名为联合视频专家组(Joint VideoExperts Term,JVET)。在HEVC的基础上,多功能视频编码(Versatile Video Coding)VVC(H.266)的研究由JVET组织于2018年4月10美国圣地亚哥会议上提出,在H.265/HEVC基础上改进的新一代视频编码技术,其主要目标是改进现有HEVC,提供更高的压缩性能,同时会针对新兴应用(360°全景视频和高动态范围(HDR)视频)进行优化。VVC的第一版在2020年8月完成,在ITU-T网站上以H.266标准正式发布。

有关HEVC和VVC的相关文件和测试平台可以从https://jvet.hhi.fraunhofer.de/获得,并且VVC的相关提案可以从http://phenix.it-sudparis.eu/jvet/获得。

VVC依然沿用H.264就开始采用的混合编码框架,其VTM编码器的一般性方框图如图1所示。帧间和帧内预测编码:消除时间域和空间域的相关性。变换编码:对残差进行变换编码以消除空间相关性。熵编码:消除统计上的冗余度。VVC将在混合编码框架内,着力研究新的编码工具或技术,提高视频压缩效率。

虽然VVC和HEVC中都采用树结构来进行CTU划分,但是在VVC采用了与HEVC不同的树结构CTU划分方式。并且,与HEVC相比,VVC中的CTU的(亮度块)最大大小达到了128x128(尽管亮度变换块的最大大小为64x64)。

与HEVC类似,VVC将图片划分为子图片(subpicture)、切片(slice)、和图块(tile)。一个图片被划分为一个或多个图块行和一个或多个图块列。图块是覆盖图片的矩形区域的CTU序列。切片由整数个完整图块或在图片的图块内的整数个连续的完整CTU行。支持两种切片模式,即光栅扫描切片模式和矩形切片模式。在光栅扫描切片模式中,切片包含图片的图块光栅扫描中的完整图块的序列。在矩形切片模式中,切片包含共同形成图片的矩形区域的多个完整图块,或者一个图块的、共同形成图片中的矩形区域的多个连续完整CTU行。矩形切片内的图块在对应于该图块的矩形区域内以图块光栅扫描顺序进行扫描。子图片包含一个或多个切片,这些切片共同覆盖图片的矩形区域。

如上所述地,在HEVC中,使用四叉树结构将CTU划分为CU(即编码树)。关于帧内编码和帧间编码的决策是在叶节点CU处做出的。换言之,一个叶节点CU定义了共享相同预测模式(例如帧内预测或帧间预测)的一个区域。然后,根据PU划分类型,每个叶CU可以进一步划分为1、2或4个预测单元PU。在每个PU内,使用相同的预测过程,并将相关信息以PU为基础发送到解码器段。在基于PU的预测过程获得了残差块后,可以根据类似于CU的编码树的另一类似四叉树结构将叶CU划分为TU。

而在VVC中,则采用了具有嵌套的多类型树的四叉树分割结构(QTMT)来划分CTU,其中嵌套的多类型树使用二叉树和三叉树。作为一个示例,这种嵌套的多类型树的一个实例是四叉树-二叉树(QTBT)结构。QTBT结构包括两个级别:根据四叉树划分而划分的第一级,以及根据二叉树划分而划分的第二级。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于编码单元(CU),CU定义了共享相同预测模式(例如帧内预测或帧间预测)的一个区域。在VVC中删除了CU、PU和TU的不同形式。

在VVC中,一个CTU首先通过四叉树进行划分,然后再通过多类型树进行进一步划分。如图3所示,VVC规定了4种多类型树划分模式:水平二叉树划分(SPLIT_BT_HOR)、垂直二叉树划分(SPLIT_BT_VER)、水平三叉树划分(SPLIT_TT_VER)、垂直三叉树划分(SPLIT_TT_HOR)。多类型树的叶节点被称为编码单元(CU),并且除非CU对于最大变换长度而言过大,否则该CU分割就会用于预测和变换处理而不进行进一步分割。这就意味着在大多数情况下,CU、PU和TU在该具有嵌套的多类型树的四叉树分割结构是具有相同的块大小的。其中的例外是所支持的最大变换长度小于CU的颜色分量的宽度或高度。图4示出了VVC的具有嵌套的多类型树的四叉树分割结构的CTU到CU的分割的一个具体实施例,其中,粗体框表示四叉树分割,剩余的边表示多类型树分割。VVC的这种具有嵌套的多类型树的四叉树分割结构提供了包括CU的内容自适应编码树结构。

CU的大小可以与CTU一样大,也可以以亮度样本为单位小到4x4。对于4:2:0色度格式的情况,最大色度编码块大小为64x64,最小大小色度大小由16个色度样本组成。在VVC中,支持的最大亮度变换大小为64x 64,支持的最高色度变换大小为32x32。当编码块的宽度或高度大于最大变换宽度或高度时,编码块在水平和/或垂直方向上自动分割,以满足该方向上的变换大小限制。

以下参数由具有嵌套多类型树编码树方案的四叉树的序列参数集(SPS)语法元素定义和指定:

–CTU大小:四元树的根节点大小

–MinQTSize:允许的最小四叉树叶节点大小

–MaxBtSize:允许的最大二叉树根节点大小

–MaxTtSize:允许的最大三叉树根节点大小

–MaxMttDepth:从四叉树叶划分多类型树时允许的最大层次深度

–MinBtSize:允许的最小二叉树叶节点大小

–MinTtSize:允许的最小三叉树叶节点大小

在具有嵌套多类型树编码树结构的四叉树的一个示例中,CTU大小被设置为128x128亮度样本,具有两个对应的64x64块4:2:0色度样本,MinQTSize被设置为16x16,MaxBtSize被设置成128x128并且MaxTtSize被设置成64x64,MinBtSize和MinTtSize(对于宽度和高度)被设置为4x4,并且MaxMttDepth被设置成4。将四叉树划分首先应用于CTU以生成四叉树叶节点。四叉树叶节点的大小可以从16x16(即MinQTSize)到128x128(即CTU大小)。如果叶四叉树节点为128x128,则不会被二叉树进一步划分,因为其大小超过了MaxBtSize和MaxTtSize(即64x64)。否则,叶四叉树节点可以通过多类型树进一步划分。因此,四叉树叶节点也是多类型树的根节点,并且它具有多类型树深度(mttDepth)为0。当多类型树深度达到MaxMttDepth(即4)时,不考虑进一步划分。当多类型树节点的宽度等于MinBtSize且小于或等于2*MinTtSize时,不考虑进一步的水平划分。类似地,当多类型树节点的高度等于MinBtSize且小于或等于2*MinTtSize时,不考虑进一步的垂直划分。

在VVC中,编码树方案支持亮度分量和色度分量具有单独的块树结构的能力。对于P和B切片,一个CTU中的亮度和色度CTB必须共享相同的编码树结构。然而,对于I切片,亮度和色度可以具有单独的块树结构。当应用单独的块树模式时,亮度CTB通过一个编码树结构被划分为CU,色度CTB通过另一编码树结构而被划分为色度CU。这意味着I切片中的CU可以由亮度分量的编码块或两个色度分量的编码块组成,并且P或B切片中的CU总是由所有三个颜色分量的编码块组成,除非视频是单色的。

在进行了CTU划分后,对表示预测和/或残差信息以及其他信息的CU的视频数据进行编码。预测信息指示将如何预测CU以便形成CU的预测块。残差信息通常表示编码之前的CU的样本与预测块的样本之间的逐样本差。

为了预测CU,通常可通过帧间预测或帧内预测来形成CU的预测块。帧间预测通常是指根据先前译码的图片的数据来预测CU,而帧内预测通常是指根据同一图片的先前译码的数据来预测CU。为了执行帧间预测,可使用一个或多个运动向量来生成预测块。通常可以例如按照CU与参考块之间的差来执行运动搜索,以识别与CU紧密匹配的参考块。可使用绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)或其他此类差值计算来计算差值度量,以确定参考块是否与当前CU紧密匹配。在一些示例中,可使用单向预测或双向预测来预测当前CU。

在帧间预测中,VVC中仍然使用了HEVC中的跳过(SKIP)模式和合并(Merge)模式。对于每个帧间预测CU,由运动矢量、参考图片索引和参考图片列表使用索引组成运动参数,以及VVC的新编码特征所需的附加信息,被用于帧间预测样本生成。可以以显式或隐式的方式用信号通知运动参数。当用跳过(SKIP)模式对CU进行编码时,该CU与一个PU相关联,并且不具有有效的残差系数,不具有编码的运动矢量差值或参考图片索引。指定合并模式,从而从相邻CU获得当前CU的运动参数(包括空间后续和时间候选),以及VVC中引入的附加调度。合并模式可以应用于任何帧间预测CU,而不仅仅是用于跳过模式。合并模式的替代方案是运动参数的显式传输,其中运动向量、每个参考图片列表的对应参考图片索引和参考图片列表使用标志以及其他所需信息被显式地按每个CU发信号通知。

对于帧间预测,在VVC中,除了HEVC中使用的平移运动预测和运动补偿之外,还提供了仿射运动补偿模式(仿射motion compensated prediction)。在仿射运动补偿模式中,可以确定表示非平移运动(诸如,放大或缩小、旋转、透视运动或其他不规则运动类型)的两个或更多个运动向量。图5中示出了用于VVC的两种仿射变换模型,其中,块的仿射运动场由两个控制点(4参数)或三个控制点运动矢量(6参数)的运动信息来描述。

对于4参数仿射运动模型,块中采样位置(x,y)处的运动矢量导出为:

对于6参数仿射运动模型,块中采样位置(x,y)处的运动矢量导出为:

其中,(mv

为了简化运动补偿预测,应用了基于块的仿射变换预测。为了推导每个4x4亮度子块的运动矢量,根据上述方程计算每个子块的中心样本的运动矢量(如图6所示,图6示出了根据一个实施例的4参数运动模型情况下的每个子块的仿射运动矢量域),并四舍五入到1/16分数精度。然后应用运动补偿插值滤波器来生成具有导出的运动向量的每个子块的预测。色度分量的子块大小也被设置为4x4。4x4色度子块的MV被计算为并置的8x8亮度区域中的左上和右下亮度子块的MVs的平均值。

仿射运动补偿包括仿射合并模式和仿射AMVP(高级运动矢量预测)两种方式。

仿射合并模式主要应用于编码块的宽和高都大于等于8的情况下。它的CPMV(Control Point Motion vector,控制点运动矢量)候选列表最多可以使用5个候选CPMV。在编码比特流中,用一个语法元素指示要用于当前CU的CPMV候选。

仿射合并模式考虑了块的形变情况,使用了多个参考块来进行预测。它的优势在于可以更准确地估计块的形变情况,从而提高视频编码的质量。仿射合并模式候选列表的构建需要借助邻居块的已编码信息,包括邻居块仿射模式编码和平移模型编码的MV信息。仿射合并模式候选列表主要由三种方式构建,它们分别是(1)通过空间域相邻仿射模式CU的CPMV构建CPMV候选,(2)通过空间域和时间域相邻CU的平移MV构建CPMV候选以及(3)直接由0向量构建CPMV候选三种方式。一种示例性的CPMV候选过程如图7所示。

以下是仿射合并候选列表三种构建方式的详细介绍:

(1)仿射模式的邻居CU构建CPMV候选

仿射模式的邻居CU构建CPMV候选,就是当邻居CU采用仿射预测模型编码时,通过其空间域邻居CU来构建CPMV候选。在一个示例中,当前编码块的邻居块如图8所示,主要分为左侧邻居块CU,包括B0、B1块以及上侧邻居块CU,包括A0、A1、A2块。这种方式构建的CPMV候选最多有两个,分别来自左侧邻居块CU和上侧邻居块CU,每侧只采用第一个有效的CU邻居块。左侧邻居块的检查顺序为B0、B1,上侧邻居块的检查顺序为A0、A1、A2。

图9示出了根据一个实施例的,通过仿射模式的空间邻居块CU构建CPMV候选项的一个示例性过程的示意图。通过仿射模式的邻居块CU构建CPMV候选项详细过程如下,如图9所示,假如利用当前编码块左侧邻居块A构建CPMV候选,对应图8的B0块。如果A块被4参数仿射预测模型编码,其控制点运动矢量记为U0、U1,通过U0、U1可以计算得出V0、V1,作为生成的CPMV候选。同理,如果A被6参数仿射预测模型编码,其控制点运动矢量记为U0,U1,U2,根据编码块A的三个控制点运动矢量U0,U1,U2计算得到V0、V1、V2,作为构建的CPMV候选。

(2)平移模式的邻居CU构建CPMV候选

仿射合并候选列表的第二种构建方式,主要是通过和当前编码块空域和时域上相邻的采用平移模式编码的邻居块CU构建,以此生成当前编码块的4个备选控制点运动矢量。

图10示出了根据一个实施例的,仿射模式的通过空间域和时间域相邻CU的平移MV构建CPMV候选的一个示例性过程的示意图。

如图10所示,按照B2、B3、A2顺序,采用第一个有效邻居块的平移MV信息生成CPMV0。同理,按照B1、B0的顺序,筛选出第一个有效块的MV来生成CPMV1。按照A1、A0的顺序,采用第一个有效邻居块的平移MV生成CPMV2。右下角相邻块T(时域)的同位块MV,按照时域距离缩放作为CPMV3。

当得到CPMV0、CPMV1、CPMV2、CPMV3后,这些CPMV通过特定组合,形成有效的CPMV候选,以供四参数仿射预测模型和六参数仿射预测模型使用。4参数仿射模型和6参数仿射模型获得CPMV后,生成子块的MV,然后进行仿射运动补偿得到最终的预测块。

(3)零MV构建CPMV候选

如果当前仿射合并候选列表仍然没填满,直接用零MV构建CPMV候选。由于仿射运动模型是为了解决复杂运动物体而生,0向量使用概率较小,因此0向量直接作为当前编码块的CPMV这一类型排在仿射候选列表顺序最后。

另一方面,当仿射合并模式无法得到有效的CPMV时,此时使用仿射AMVP模式来达到更好的编码效果。仿射AMVP模式应用的前提是当前编码块的宽和高都必须大于等于16,仿射AMVP模式的候选列表大小有两个。CU编码块宽度和高度的最大值可由(VVC TestModel,VTM)进行设置,目前VVC支持使用仿射AMVP模式的最大编码块尺寸为128x128。仿射AMVP模式的候选列表大小为2,其候选列表中的CPMV候选主要通过五种方式构建,它们分别是利用仿射模式的邻居CU构建、平移模式的邻居CU的平移MVP构建、平移模式的邻居CU的平移MV构建、时间域平移MV构建以及零MV构建。

图11示出了根据一个实施例的,仿射运动补偿模式中的仿射AMVP候选列表构建的一个示例性过程的示意图。

图12示出了根据一个实施例的,仿射运动补偿模式中的仿射AMVP候选列表构建的邻居块的示意图。

由于仿射AMVP候选列表的构建方式和仿射合并候选列表的构建方式非常相似,在此不对每一项构建方式都进行详细展开。其中需要注意的是,仿射AMVP利用时域平移MV构建CPMV候选时,如果同位块无效或者是不是帧间预测模式,可以使用当前编码块中心块位置处的同位块。如图12所示,如果Br位置的同位块无效,可以使用中心Ctr块所示位置的同位块。若同位块MV有效,则经过缩放后的MV作为构建CPMV候选的MV。A0、A1、A2、A3以及B0、B1、B2为其他方式构建仿射AMVP候选列表使用的邻居块。

在编码比特流中,用一个语法元素指示是否使用仿射AMVP模式,用另一个语法元素指示使用4参数还是6参数模型。在仿射AMVP模式中,在比特流中传送当前CU的CPMV与其预测子CPMV之间的差,即运动矢量差MVD(motion vector differences)。

为了执行帧内预测,可以选择用于生成预测块的帧内预测模式。VVC提供了67种帧内预测模式,包括各种方向模式,以及平面模式和DC模式。通常,选择帧内预测模式,该帧内预测模式描述到当前块(例如,CU的块)的相邻样本,其中从所述相邻样本预测当前块的样本。假设以光栅扫描顺序(从左到右、从上到下的译码顺序或从右到左、从上到下的译码顺序)对CTU和CU进行译码,则这些样本通常可以在与当前块相同的图片中当前块的上方、上方及左侧或左侧。

对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用各种可用帧间预测模式中的哪一种帧间预测模式的数据以及用于对应模式的运动信息进行编码。对于单向或双向帧间预测,例如,可以使用高级运动向量预测(AMVP)或合并模式来对运动向量进行编码。可以使用类似模式来编码用于仿射运动补偿模式的运动向量。

在诸如块的帧内预测或帧间预测之类的预测之后,可以计算块的残差数据。残差数据(诸如残差块)表示该块与使用相应预测模式形成的该块的预测块之间的逐样本差。可将一个或多个变换应用于残差块,以产生在变换域而非样本域中的经变换的数据。例如,可将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可在一次变换之后应用二次变换,例如,与模式相关的不可分离的二次变换(MDNSST)、与信号相关的变换、Karhunen-Loeve变换(KLT)等。在应用一个或多个变换之后产生变换系数。

如上所述,在用以产生变换系数的任何变换之后,可以根据量化系数(QP),执行对变换系数的量化。量化通常是指对变换系数进行量化以可能减少用于表示系数的数据量,从而提供进一步压缩的过程。通过执行量化过程,可以减小与一些或所有系数相关联的位深度。例如,可以在量化期间将n-位值舍入为m-位值,其中n大于m。在一些示例中,为了执行量化,可以执行对待量化的值的按位右移。量化系数(QP)通常是采用语法元素的行驶包含在头信息中的。

在量化之后,可以扫描变换系数,从而从包括经量化的变换系数的二维矩阵产生一维向量。可以将扫描设计为将较高能量(并且因此较低频率)的系数放置在向量的前面,并将较低能量(并且因此较高频率)的变换系数放置在向量的后面。在一些示例中,可以利用预定义的扫描顺序来扫描经量化的变换系数以产生串行化的向量,然后对向量的经量化的变换系数进行熵编码。在其他示例中,可以执行自适应扫描。在扫描经量化的变换系数以形成一维向量之后,可以例如根据上下文自适应二进制算术译码(CABAC)对一维向量进行熵编码还可对用于语法元素的值进行熵编码,语法元素描述与经编码视频数据相关联的元数据,以供视频解码器300在解码视频数据时使用。

在编码过程中,可以例如在图片报头、块报头、切片报头中,生成语法数据,诸如基于块的语法数据、基于图片的语法数据和基于序列的语法数据,或其他语法数据,诸如序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS)。视频解码器可类似地解码此类语法数据以确定如何解码对应的视频数据。这些信息都可以被称为“头信息”。

以此方式,可以生成包括经编码视频数据(例如,描述从图片到块(例如,CU)的划分的语法元素以及块的预测和/或残差信息)的位流。

在VVC中的针对帧间预测的仿射运动估计仍然存在众多缺点,例如,VVC构建的仿射候选列表不够完善,不能提供潜在更优的CPMV。再例如,VVC只引入了4参数和6参数仿射模型,限制了对复杂运动的描述能力。

发明内容

本公开内容提出了用于在多功能视频编码(VVC)中。更具体而言,本公开内容用于在VVC中基于运动矢量差的快速仿射模式决策的方法、装置、编解码器以及处理器可读存储介质。

VVC中的控制点运动矢量(CPMV)的候选列表只包含了部分紧邻的邻居块的信息,没有包含非紧邻的邻居块和其他部分紧邻的邻居块的空间信息,影响了仿射预测模型的性能。此外,VVC的仿射预测模型只采用了2个CPMV和3个CPMV,限制了对复杂运动的描述能力。

根据一个方面,在本文中,首先对仿射候选列表的构建方式进行改进,引入了更多紧邻的邻居块和非紧邻的邻居块的运动信息。

根据另一方面,在本文中,对现有的仿射预测模型增加了新的控制点运动矢量,从而形成了8参数仿射预测模型。通过改进的仿射候选列表,8参数仿射预测模型能利用更丰富的参考信息来减少预测误差。

根据再另一方面,为了降低仿射预测模型的计算复杂度。本文中利用四参数仿射预测模型的控制点运动矢量差(CPMVD)来跳过6参数仿射预测模型;附加地或替换地,根据另一方面,在6参数仿射预测模型代价大于4参数仿射预测模型代价时,来跳过8参数仿射预测模型的检查。因而,本公开内容能够应用于实时性要求高并且运动复杂的场景中。

根据一个方面,公开了一种用于仿射模式帧间预测的方法,包括:

在构造当前CU的仿射运动估计候选列表时,考虑如下运动矢量:当前CU的左下方紧邻块的左侧第一块和左侧第二块、当前CU右上方紧邻块的上方第一块和左侧第二块、当前CU上方最右侧紧邻块的左侧第一块、当前CU左侧最下方紧邻块的上方第一块;以及

基于候选列表是否被填满,来在候选列表中加入零运动矢量。

在一个方面中,在构造当前CU的仿射运动估计的仿射合并模式的候选列表时,将候选列表大小设定为大于5且小于等于11。

在一个方面中,在构造当前CU的仿射运动估计的仿射AMVP模式的候选列表时,将候选列表大小设定为2。

在一个方面中,该方法基于以下次序进行仿射模型运动估计:4参数仿射模型、6参数仿射模型、8参数仿射模型。

在一个方面中,该方法基于以下次序进行运动估计:平移运动估计、4参数仿射模型、6参数仿射模型、8参数仿射模型。

在一个方面中,该方法还包括:在进行了4参数仿射模型的运动估计之后,根据一指标(SSPAN)来判断是否执行6参数仿射模型的运动估计,所述指标(SSPAM)表示当前CU的运动是否简单。

在一个方面中,通过如下来4参数仿射模型的SSPAM:

其中,i值分别表示前向参考帧和后向参考帧的索引,hor和ver分别表示水平分量和垂直分量,CPMVD0和CPMVD1分别表示通过4参数仿射运动估计得到的当前CU的两个控制点的CPMVD。

在一个方面中,该方法还包括:

根据代价函数来确定4参数仿射模型的代价和6参数仿射模型的代价;以及

响应于4参数仿射模型的代价大于6参数仿射模型的代价,不执行8参数仿射模型的运动估计。

在一个方面中,当SSPAN为0或1时,不执行6参数仿射模型和8参数仿射模型的运动估计。

根据另一方面,提出了一种硬件视频编码器,所述编码器被配置为通过如下操作来:

在构造当前CU的仿射运动估计候选列表时,考虑如下运动矢量:当前CU的左下方紧邻块的左侧第一块和左侧第二块、当前CU右上方紧邻块的上方第一块和左侧第二块、当前CU上方最右侧紧邻块的左侧第一块、当前CU左侧最下方紧邻块的上方第一块;以及

基于候选列表是否被填满,来在候选列表中加入零运动矢量。

根据一方面,所述编码器被配置为通过如下操作来:基于以下次序进行仿射模型运动估计:4参数仿射模型、6参数仿射模型、8参数仿射模型。

根据一方面,所述编码器被配置为通过如下操作来:平移运动估计、4参数仿射模型、6参数仿射模型、8参数仿射模型。

根据一方面,所述编码器被配置为通过如下操作来:在进行了4参数仿射模型的运动估计之后,根据一指标(SSPAN)来判断是否执行6参数仿射模型的运动估计,所述指标(SSPAM)表示当前CU的运动是否简单。

根据一方面,所述编码器被配置为通过如下操作来:根据代价函数来确定4参数仿射模型的代价和6参数仿射模型的代价;以及响应于4参数仿射模型的代价大于6参数仿射模型的代价,不执行8参数仿射模型的运动估计。

根据另一方面,一种计算机程序产品,包括非暂时性存储介质,所述非暂时性存储介质中存储有用于执行上述方法的代码。

根据另一方面,提出了一种对使用所述的方法或所述的编码器进行编码的视频流进行解码的解码器。

根据另一方面,提出了一种用于执行所述的方法的计算机程序产品。根据进一步的方面,该计算机程序产品具有非暂时性存储介质,其上存储有计算机代码/指令,当其被处理器执行时,可以实现本文所述的各种操作。

根据另一方面,提出了一种可用于视频编解码的设备,该设备包括:

一个或多个处理器;

存储器,其中存储有计算机代码,所述计算机代码当由所述处理器执行时,实现所述的方法。

附图说明

图1示出了HEVC/VVC的通用编码器的一般性方框图的实施例。

图2示出了HEVC中的编码树(CTU)的示意图。

图3示出了用于VVC的多类型树划分模式。

图4示出了VVC的具有嵌套的多类型树的四叉树分割结构的CTU到CU的分割的一个具体实施例。

图5示出了用于VVC的两种仿射变换模型。

图6示出了在仿射运动补偿预测中,根据一个实施例的4参数运动模型情况下的每个子块的仿射运动矢量域。

图7示出了根据一个实施例的,在仿射合并模式下的一种示例性的CPMV候选过程。

图8示出了根据一个实施例的,当前CU和相邻块CU之间的关系的一个示例,其可以用于基于仿射模式的邻居CU构建CPMV候选。

图9示出了根据一个实施例的,通过仿射模式的空间邻居块CU构建CPMV候选项的一个示例性过程的示意图。

图10示出了根据一个实施例的,仿射模式的通过空间域和时间域相邻CU的平移MV构建CPMV候选的一个示例性过程的示意图。

图11示出了根据一个实施例的,仿射运动补偿模式中的仿射AMVP候选列表构建的一个示例性过程的示意图。

图12示出了根据一个实施例的,仿射运动补偿模式中的仿射AMVP候选列表构建的邻居块的示意图。

图13示出了根据一个实施例的,仿射运动补偿模式中的当前编码块的紧邻块区域和非紧邻块区域的示意图。

图14示出了根据一个实施例的,仿射运动补偿模式中的8参数仿射预测模型控制点运动矢量示意图的示意图。

图15示出了根据一个实施例的四参数仿射模型运动矢量控制点的运动矢量差图的示例。

图16示出了根据一个实施例的,仿射运动补偿模式中的仿射合并模式下的仿射候选列表扩展示意图。

图17示出了根据一个实施例的,仿射运动补偿模式中的优化后的仿射合并和仿射AMVP候选列表创建顺序的示意图。

图18示出了根据本发明的实施例的用于仿射模式决策的一个示例方法。

图19示出了根据本发明的实施例的用于对屏幕内容视频流进行CU划分的一种可用于视频编解码的设备。

具体实施方式

现在参考附图来描述各种方案。在以下描述中,为了进行解释,阐述了多个具体细节以便提供对一个或多个方案的透彻理解。然而,显然,在没有这些具体细节的情况下也能够实现这些方案。

如在本申请中所使用的,术语“组件”、“模块”、“系统”等等旨在指代与计算机相关的实体,例如但不限于,硬件、固件、硬件和软件的组合、软件,或者是执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行体(executable)、执行线程、程序、和/或计算机。举例而言,运行在计算设备上的应用程序和该计算设备都可以是组件。一个或多个组件可以位于执行进程和/或者执行线程内,并且组件可以位于一台计算机上和/或者分布在两台或更多台计算机上。另外,这些组件可以从具有存储在其上的各种数据结构的各种计算机可读介质执行。组件可以借助于本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号,例如,来自于借助于信号与本地系统、分布式系统中的另一组件交互和/或者与在诸如因特网之类的网络上借助于信号与其他系统交互的一个组件的数据。

在本文中,根据上下文,“CTU划分”和“CU划分”可以互换地使用,“编码块”、“CU”、“区域”可以互换地使用,“图片(picture)”和“帧(frame)”可以互换地使用。

虽然在本文中主要在VVC的上下文中在对基于运动矢量差的快速仿射模式决策提出了新颖的算法。但是,本领域技术人员容易理解,本发明同样适用于采用了基于仿射运动补偿作为帧间预测模式技术的其他视频编解码协议。

另外,本领域技术人员很容易理解,本发明是主要基于亮度分量的基于运动矢量差的快速仿射模式决策,但是同样适用于色度分量的基于运动矢量差的快速仿射模式决策。

在VVC中,对于帧间预测,除了HEVC中使用的平移运动预测和运动补偿之外,还提供了仿射运动补偿模式。在仿射运动补偿模式中,可以确定表示非平移运动(诸如,放大或缩小、旋转、透视运动或其他不规则运动类型)的两个或更多个运动向量。图5中示出了用于VVC的两种仿射变换模型,包括4参数仿射模型和6参数仿射模型。

仿射变换是一种线性变换,它包括旋转、缩放、平移等操作。仿射预测技术利用这些操作来描述当前帧与参考帧之间的几何变换关系。仿射预测技术首先对当前帧的每个图像块与参考帧进行匹配,以寻找两者之间的最佳匹配块。接着,通过计算当前帧与参考帧之间的仿射变换参数,可以得到一个预测块,它在几何变换上尽可能地接近当前帧的图像块。最后,将预测误差进行压缩和编码,以实现对当前编码块的高效压缩。

当前编码块的子块尺寸越小,越可以提高仿射预测模型的性能,但是需要传输更多子块的信息,从而需要更多的比特去传输这些信息。因此为了平衡编码性能和编码复杂度,VVC采用了基于4x4块的仿射变换运动补偿模型。基于子块的仿射运动补偿相比于全局运动补偿具有一定优势,能对局部运动区域有更加精确的描述。4参数仿射预测模型和6参数仿射预测模型分别使用了2个CPMV和3个CPMV,如图5所示,这些CPMV参数描述了参考帧的区域如何通过仿射变换映射为当前帧的块。相比于具有2个CPMV(2个控制点)的4参数仿射预测模型,具有3个CPMV(3个控制点)的6参数仿射预测模型的左下角控制点运动矢量加权了左下角的空间信息。因此6参数仿射模型相比于比4参数仿射模型,对当前编码块子块的局部运动描述更加准确。

如果当前编码块非常复杂,运动形式是旋转、缩放和剪切的组合,当前编码块的各个子块运动差别就比较大,平移模型的单个运动矢量无法描述各个子块的运动。此时,可以采用6参数仿射预测模型。

在某些情况下物体可能只发生相对复杂的运动,如单一的旋转运动,此时并不需要6参数仿射预测模型来描述。使用用4参数仿射预测模型来处理这类相对复杂的运动更加合适。

仿射运动补偿包括仿射合并(Merge)模式和仿射AMVP(高级运动矢量预测)两种方式,二者都需要根据当前CU的空间域(以及时间域)邻居CU来构造仿射候选列表(仿射合并候选列表或仿射AMVP候选列表)。

在VVC中的针对帧间预测的仿射运动估计仍然存在众多缺点。

例如,仿射运动估计提高了预测复杂运动的性能,但是带来了较高的计算复杂度。仿射运动估计模型的复杂度来自于多个方面。在一个方面,由于VVC采用了多叉树划分技术,每个编码块通过四叉树、三叉树和二叉树等划分方式被划分为不同尺寸的CU,如图4所示。一般小的CU相比于大的CU,仿射预测模型预测会更加准确。在对小CU使用仿射预测模型的过程中,需要对参考帧进行插值操作,小CU数量越多,插值过程消耗的时间越多。VVC还需要从多个参考帧中选择一个最佳参考帧用于仿射预测模型,因而造成了仿射运动估计复杂度较高。

再例如,VVC构建的仿射候选列表不够完善,不能提供潜在更优的CPMV;例如,VVC中的控制点运动矢量(CPMV)的候选列表只包含了部分紧邻的邻居块的信息,没有包含非紧邻的邻居块和其他部分紧邻的邻居块的空间信息,影响了仿射预测模型的性能。例如,

再例如,VVC只引入了4参数和6参数仿射模型(即2个CPMV和3个CPMV),限制了对复杂运动的描述能力。

因此,根据本公开内容的一个方面,在本文中,首先对仿射候选列表的构建方式进行改进,引入了更多紧邻的邻居块和非紧邻的邻居块的运动信息。

仿射候选列表有仿射合并候选列表和仿射AMVP候选列表两种类型,仿射候选列表的构建需要邻居块的运动信息,如图11所示。VVC现有的仿射候选列表在构建过程中,仅利用了当前编码块紧邻区域的A0、A1、B0、B1、B2等邻居块的运动信息。没有利用B1左侧紧邻块和B0上侧紧邻块的运动信息,也没有利用B0和A0的非紧邻区域的邻居块运动信息,不能为当前仿射模型提供潜在最优的CPMV候选项。如果在仿射候选列表引入紧邻块和非紧邻块区域的信息,会使得仿射预测模型的CPMV信息更加丰富,有利于仿射预测技术更好地适应复杂运动场景,提高编码效率。A0、B0在现有的仿射候选列表构建中优先级比较靠前,被选中作为CPMV候选的概率较大,因此本文中主要是应该对A0、B0的对应非紧邻的邻居块进行扩展。考虑到VVC现有仿射候选列表构建过程中,只用了当前编码块右上角和左下角部分两个紧邻块,本文中将非紧邻的邻居块的数量也定义为2,和VVC现有模型的紧邻块数量保持一致。另外A1上侧紧邻块区域和B1左侧紧邻块区域和当前编码块空间相关性很大,不能保证A0比A1上侧紧邻块区域更接近于当前编码块的运动情况,因此对A1上侧紧邻块区域进行扩展。同理,对B1左侧紧邻块区域进行扩展。

在物体快速运动的情境下,物体的速度和运动路径在较短的时间内发生了剧烈的变化。现有仿射预测技术控制点的CPMV仅来源于紧邻邻居块的运动信息,该邻居块已经不能很好反映当前编码块的运动情况,此时容易产生预测残差较大的情况。随着高分辨率视频的普及,高动态大运动范围的视频会越来越多,此时仅仅利用紧邻邻居块的参考信息将会限制仿射预测技术的预测能力。而利用上述方面,进一步利用图11所示的非紧邻块区域和紧邻块区域中的CU的MV来构造仿射候选列表,能够获得更好的技术效果。

(1)对于仿射合并模式的候选列表优化

仿射候选列表有一定的优先级,优先级高的候选块会被先检查,直至仿射候选列表填满。

图16示出了根据一个实施例的,仿射运动补偿模式中的仿射合并模式下的仿射候选列表扩展示意图。如图16所示,VVC的仿射候选列表通常采用当前编码块的左紧邻块A0、A1以及上紧邻块B0、B1、B2的运动信息构建候选列表,但是没有合理利用其他紧邻块和非紧邻块的空间相关性信息,造成仿射候选列表空间信息不足。仿射预测模型使用的控制点运动矢量CPMV来源于仿射候选列表的候选项,仿射候选项空间信息的不足可能会造成当前仿射预测模型的CPMV不是最优的。

由于A0优先级高于A1,B0优先级高于B1块,A0、B0块更容易被提前选中添加到仿射候选列表中。因此,本文扩充的非紧邻的邻居块也以优先级较高的A0、B0为基础,分别对A0的进行了水平向左的扩充,得到了当前编码块的非紧邻的邻居块A01以及A02。同理,对B0块进行了垂直向上的扩充,得到了B01以及B02块。如图16所示。从而使当前编码块的候选列表空间性信息在水平和垂直空间方向上都有所扩展,因而会提供潜在最优的CPMV候选项,这些潜在的候选项通过代价的计算,选取最优的候选项作为当前仿射预测模型的CPMV,同时能为8参数仿射预测模型提供更多的参考信息,促进整体仿射预测模型的性能。

VVC现有的仿射候选列表在检查紧邻的邻居块的信息时,只检查了A0块的上方块A1,但是没有检查A1的上方块A2,A1不一定比A2更接近当前编码块的运动情况。同理,只检查了B0的左方块B1,没有检查B1的左方块B3。B1不一定比B3更接近当前编码块的运动情况。因此本算法不仅扩展了非紧邻的邻居块,也扩展了部分紧邻邻居块,引入了紧邻块B3和A2。

VVC标准的仿射合并候选列表构建方式中,采用了当前编码块右上角的B0、B1块以及当前编码块左下角的A0、A1块,并且VVC标准没有严格证明当前编码块右上角和左下角选取的邻居块数量为2。因此,本算法类比这种数量选取思想,同时,本文基于优先级高的邻居块被选中的概率更大原则,对当前编码块左侧邻居块优先级较高的A0块、上侧优先级较高的B0块,同样分别引入两个非紧邻的邻居块。选取优先级高的A0块以及B0块,相比于优先级低的A1块和B1块,能够增加非邻居块被选中加入到仿射候选列表的概率。VVC现有的仿射合并候选列表大小为5,本文在此基础上一共扩展了2个紧邻的邻居块和4个非紧邻的邻居块。最多同时将新增的候选邻居块的信息都加到仿射候选列表中,因此,本算法将扩展后的仿射候选列表大小设置为11,最多允许11个仿射候选项。通常来说,可以将仿射候选列表的大小设置一个更大值,但是会带来很高的计算复杂度。本文综合考虑了编码复杂度和编码性能,又借鉴了VVC现有仿射候选列表选取候选块的数量规律,将仿射候选列表的大小定义为11。

(2)对于仿射AMVP模式的候选列表优化

VVC现有的仿射AMVP候选列表大小为2,本算法对仿射AMVP候选列表的优化主要是引入更多的部分紧邻的邻居块和非紧邻的邻居块的信息,并没有改变仿射AMVP候选列表的大小,主要是改动了仿射AMVP候选列表的构建顺序。由于仿射运动是一种比较复杂的运动,对于仿射合并和仿射AMVP而言,使用0向量作为仿射候选列表的候选项使用概率较小。因此,本文将新引入的邻居块构建仿射候选项列表的顺序提前,放到使用零MV作为仿射候选列表的候选项之前,如图17所示。

本文新引入的紧邻的邻居块和非紧邻的邻居块构建仿射合并和仿射AMVP仿射候选列表的顺序均放在零MV构造CPMV候选之前。并且本章算法引入的邻居块遵循仿射合并常见的三种构建方式和仿射AMVP常见的五种构建方式,根据这些新增邻居块的特点选取特定的仿射候选列表构建方式。本章算法重点是引入了更多的邻居块信息,扩大了仿射合并的候选列表大小,以及优化了仿射合并和仿射AMVP的构建顺序。

仿射候选列表引入其他紧邻的邻居块和非紧邻的邻居块的运动信息,使得仿射预测模型有更多的参考信息可供选择,增强了参考信息的丰富性。在编码更加复杂运动的场景中有更好的优势,尤其是物体运动比较快速并且运动不规律,此时非邻居块可能比邻居块包含更加接近真实运动矢量的信息,可以更好地减少预测误差。对于那些运动物体相互遮挡的运动情境,如PartyScene视频序列中人物相互遮挡,扩充的非紧邻的邻居块和紧邻的邻居块有助于在遮挡区域提供更多运动矢量参考信息,从而改善运动矢量估计的准确性。

根据本公开内容的另一方面,现有仿射预测模型的表达能力受限。对于非平移运动等复杂的运动情景,VVC分别采用了4参数仿射预测模型和6参数仿射预测模型。4参数仿射预测模型和6参数仿射预测模型分别有2个CPMV和3个CPMV,相比于平移运动模型,4参数仿射预测模型和6参数仿射预测模型通过加权当前编码块的左上角、右上角和左下角的空间运动信息,使其能够描述更复杂的运动情景。然而VVC现有的仿射预测模型最多只有6个参数来描述物体的复杂运动,限制了对复杂运动的描述能力。

仿射预测模型本质是为了描述物体从参考块到当前编码块的仿射变换,VVC现有的6参数仿射预测模型有时候不能准确地描述这种仿射变换。因此,需要更高阶运动模型对复杂运动进行更为精确地描述。并且,引入的高阶仿射预测模型应该具有较低的复杂度,使其能应用于对实时性和视频质量都有较高要求的场景。图13示出了根据一个实施例的,仿射运动补偿模式中的8参数仿射预测模型控制点运动矢量示意图的示意图。如果在当前编码块右下角引入新的控制点运动矢量CPMV3,如图12所示,就可以构成8参数仿射预测模型。并且CPMV3位于当前编码块的右下角,可以和VVC现有仿射预测模型的三个角落的CPMV相结合,实现对四个角落的全面覆盖。有利于捕捉边缘运动信息,提高预测准确性。因此,将CPMV3放到当前编码块右下角位置,能实现更全面的角落信息覆盖、减少仿射预测模型扩展的复杂度、增强VVC仿射预测模型的可扩展性和兼容性。8参数仿射预测模型的引入,将使得仿射预测模型描述复杂运动的能力更强。

在本文中,对现有的仿射预测模型增加了新的控制点运动矢量,从而形成了8参数仿射预测模型。通过改进的仿射候选列表,8参数仿射预测模型能利用更丰富的参考信息来减少预测误差。

相比于引入弹性运动模型或者缩放运动模型等高阶运动模型,8参数仿射模型不仅更适合VVC仿射模型的扩展,避免复杂的数学运算,具有和现有的仿射预测模型兼容性好、计算复杂度相对低、可扩展性强等优点。相比于VVC现有的仿射预测模型,能够更加精确地描述复杂运动。尤其是如今高分辨视频越来越多,更容易出现复杂度更高的视频,更适合使用8参数仿射模型。

8参数仿射预测模型可由8个参数进行描述,当前编码块新引入的右下角控制点运动矢量MV

其中,x和y是块中采样位置(x,y),h,v分别表示运动矢量的水平和垂直分量,参数a1,a2计算可由如下公式所示:

根据本公开内容的一个实施例,在对当前CU进行帧间预测时,依据如下次序对各种帧间预测模式进行评估:平移运动估计、4参数仿射模型运动估计、6参数仿射模型运动估计、8参数仿射模型运动估计。

根据本公开内容的再另一方面,为了降低仿射预测模型的计算复杂度。本文中利用四参数仿射预测模型的控制点运动矢量差(CPMVD)来跳过6参数仿射预测模型;附加地或替换地,根据另一方面,在6参数仿射预测模型代价大于4参数仿射预测模型代价时,来跳过8参数仿射预测模型的检查。因而,本公开内容能够应用于实时性要求高并且运动复杂的场景中。

根据本公开内容的再一方面,可以通过平移运动模型的MVD,判决是否跳过整个仿射运动估计,然后再进行对于是否跳过6参数仿射模型和是否跳过8参数仿射模型的上述判断。

本公开内容的8参数仿射预测模型建立在仿射候选列表优化的前提下。可替换地,本公开内容的8参数仿射预测模型也可以独立于本公开内容的仿射候选列表优化方案。

根据本发明的一个实施例,当4参数仿射预测模型代价小于6参数仿射预测模型的代价,说明当前编码块复杂度较小,不必使用描述复杂运动能力更好的8参数仿射预测模型。反之,当4参数仿射预测模型的代价大于6参数仿射预测模型的代价时,当前编码块倾向于比较复杂,需要6参数仿射预测模型才能更好地描述。但是,此时并不知道6参数仿射预测模型是否能够精确地描述了物体的复杂运动,应该进一步检查8参数仿射模型是否为更优模式。

如果引入了8参数仿射预测模型,通过分别计算4参数、6参数、8参数仿射预测模型代价的方式,最终才选择出最优模型,这种复杂度会很高。因此本公开内容对这种仿射模式选择进行优化,跳过不必要的6参数和8参数仿射模型。从而使得本文设计的带有8参数的仿射预测模型的整体复杂度较低,从而使得本文改进的仿射预测模型能够应用于低延迟实时性要求高的场景。

因此,在本公开内容的一个实施例中,依据如下次序对各种帧间预测模式进行评估:平移运动估计、4参数仿射模型运动估计、6参数仿射模型运动估计、8参数仿射模型运动估计,其中,当4参数仿射预测模型代价小于6参数仿射预测模型的代价时,不检查8参数仿射预测模型。在一个具体实施例中,所使用的代价为根据预先确定的代价函数计算的代价值。根据进一步的实施例,代价函数可以采用RD-Cost函数。根据可替代实施例,代价函数可以采用其他用于确定预测子与当前CU块之间的失真的度量的其他函数。

根据本公开内容,MVD可由当前编码块的实际运动矢量(MV)和当前编码块的运动矢量预测值(MVP)得到(即二者的矢量差),其中MVP通常由空间域预测方式和时间域预测方式得到。当前编码块和邻居块有较大的空间相关性,如图8所示,可以通过邻居块的运动信息得到当前编码块的MVP。这种方式得到的MVP可以在一定程度上反映邻居块的运动情况。当前编码块的实际MV是以MVP作为搜索起始点,根据搜索算法在一定的范围内搜索与当前编码块最为匹配的块而获得。当前编码块与参考帧中的最佳匹配块之间的位置关系用MV表示。

在当前编码块运动较为简单时,当前编码块更倾向于和邻居块运动一致,此时,MV和空间域预测的MVP差别越小,MVD也会越小。如果当前编码块运动很剧烈,当前编码块的运动相对于邻居块通常会发生剧烈变化,那么MVD相对会比较大。MVD越小,说明当前编码块的运动和邻居块的运动情况越接近,说明当前编码块可能由于运动简单而跳过仿射模式。

同理,对于时间域预测的MVP,如果当前编码块的实际MV和时间域预测方式得到的时间域MVP差别非常小,则当前编码块的时间域MVD就比较小,那么当前编码块和相邻重建帧的已编码块运动很相似,当前编码块也更倾向于运动简单而跳过仿射模式。

为了降低仿射预测模型的编码复杂度,应该提取出跳过仿射运动估计的CU的属性特征,编码器通过提前分析CU的属性特征,从而决定是否跳过不必要的仿射模型。并且应该对CU进行合理的分类,根据CU的不同属性,从而设置不同的门限值来跳过仿射模型。

图16示出了根据一个实施例的四参数仿射模型运动矢量控制点的运动矢量差图的示例。如图所示,CPMVD0和CPMVD1分别是四参数仿射预测模型的两个控制点运动矢量差。在本文中,将CPMVD0和CPMVD1的所有分量之和定义为(Skip Six Parameter仿射Model,SSPAM)指标,以判决是否需要跳过六参数仿射模型,如式(2)所示:

其中,i值分别表示前向参考帧和后向参考帧的索引,hor和ver分别表示水平分量和垂直分量,CPMVD0和CPMVD1分别表示通过4参数仿射运动估计得到的当前CU的两个控制点的CPMVD,例如图15所示。

根据以上论述,本公开内容提出了多个实施例以用于仿射模式预测的优化。

在第一实施例中,提出了一种用于仿射模式帧间预测的方法,包括:在构造当前CU的仿射运动估计候选列表时,考虑如下运动矢量:当前CU的左下方紧邻块的左侧第一块和左侧第二块、当前CU右上方紧邻块的上方第一块和左侧第二块、当前CU上方最右侧紧邻块的左侧第一块、当前CU左侧最下方紧邻块的上方第一块;以及基于候选列表是否被填满,来在候选列表中加入零运动矢量。

在一个具体实施例中,当前CU的仿射运动估计候选列表包括当前CU的仿射运动估计的仿射合并模式的候选列表和当前CU的仿射运动估计的仿射AMVP模式的候选列表中的任一者。

在一个具体实施例中,在构造当前CU的仿射运动估计的仿射合并模式的候选列表时,将候选列表大小设定为大于5且小于等于11。

在一个具体实施例中,在构造当前CU的仿射运动估计的仿射AMVP模式的候选列表时,将候选列表大小设定为2。

在一个具体实施例中,基于以下次序进行仿射模型运动估计:4参数仿射模型、6参数仿射模型、8参数仿射模型。

在第二实施例中,基于以下次序进行运动估计:4参数仿射模型、6参数仿射模型、8参数仿射模型,其中,4参数仿射模型和6参数仿射模型为VVC规定的4参数仿射模型和6参数仿射模型。8参数仿射模型如上所定义的。

在一个具体实施例中,计算根据代价函数来确定4参数仿射模型的代价和6参数仿射模型的代价;以及响应于4参数仿射模型的代价大于6参数仿射模型的代价,不执行8参数仿射模型的运动估计。

在一个具体实施例中,在进行了4参数仿射模型的运动估计之后,根据一指标(SSPAN)来判断是否执行6参数仿射模型的运动估计(换言之,判断4参数仿射模型是否是最优仿射模型),所述指标(SSPAM)表示当前CU的运动是否简单。

在一个方面中,通过如下来4参数仿射模型的SSPAM:

其中,i值分别表示前向参考帧和后向参考帧的索引,hor和ver分别表示水平分量和垂直分量,CPMVD0和CPMVD1分别表示通过4参数仿射运动估计得到的当前CU的两个控制点的CPMVD。

在一个具体实施例中,当SSPAN为0或1时,确定4参数仿射模型是最优仿射模型,而不执行6参数仿射模型和8参数仿射模型的运动估计。

在一个具体实施例中,可以根据代价函数来确定4参数仿射模型的代价和6参数仿射模型的代价;以及响应于4参数仿射模型的代价大于6参数仿射模型的代价,不执行8参数仿射模型的运动估计。

在一个具体实施例中,可以基于以下次序进行运动估计:平移运动估计、4参数仿射模型、6参数仿射模型、8参数仿射模型。

在第三实施例中,可以将第一实施例和第二实施例的进行组合。即将第一实施例中的候选列表的扩展和第二实施例中的仿射变换决策方式进行各种形式的组合。

作为一个非限定实施例,图18示出了根据本发明的实施例的用于基于运动矢量差的快速仿射模式决策的一个示例方法,其大致包括如下步骤:

步骤1:根据本公开内容的上述方式,对仿射预测模式的候选列表进行改进,引入当前编码块的紧邻的部分邻居块和非紧邻的部分邻居块,从而为候选仿射预测模型提供潜在的更好的CPMV。

步骤2:在当前编码进行过4参数仿射运动估计后,利用4参数仿射模型构建的特征指标SSPAM,如果该指标为0或1,表示当初CU变化小,从而直接跳过不必要的6参数仿射模型,否则,进行下一步。

步骤3:在当前编码块进行过6参数仿射运动估计后,如果根据代价函数,4参数仿射模型代价小于6参数仿射预测模型的代价,则假设当前编码块的最优仿射模型为4参数仿射预测模型,从而无需进行6参数和8参数仿射预测模型的估计。否则,进入下一步。

步骤4:扩充CPMV的个数,引入8参数仿射模型,比较使用6参数仿射模型和8参数仿射模型的代价,如果8参数仿射模型代价小于6参数仿射模型代价,选取8参数仿射模型作为最优模式,否则,选取6参数仿射模型作为最优模式。

图19示出了根据本发明的实施例的用于基于运动矢量差的快速仿射模式决策的一种可用于视频编解码的设备。该设备包括:处理器和存储器,在所述存储器中包括用于实现本发明的各种方法的处理器可执行代码。所述处理器可执行代码在被处理器加载时,可由处理器执行,或者可以将处理器配置为实现本发明的各个实施例或各个实施例的任意组合。

根据另一方面,本公开内容还可以涉及用于实现上述编码方法的编码器。该编码器可以是专用硬件,或者具有与图10类似的组件的系统或软件与硬件的组合或固件、软件和硬件的任意组合。

根据另一方面,本公开内容还可以涉及对应的对编码后的视频流进行解码的解码器。

根据另一方面,本公开内容还可以涉及执行本文所述方法的计算机程序产品。根据进一步的方面,该计算机程序产品具有非暂时性存储介质,其上存储有计算机代码/指令,当其被处理器执行时,可以实现本文所述的各种操作。

当用硬件实现时,视频编码器可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件或者设计为执行本文所述功能的其任意组合,来实现或执行。通用处理器可以是微处理器,但是可替换地,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器的组合、一个或多个微处理器与DSP内核的组合或者任何其它此种结构。另外,至少一个处理器可以包括可操作以执行上述的一个或多个步骤和/或操作的一个或多个模块。

当用ASIC、FPGA等硬件电路来实现视频编码器时,其可以包括被配置为执行各种功能的各种电路块。本领域技术人员可以根据施加在整个系统上的各种约束条件来以各种方式设计和实现这些电路,来实现本发明所公开的各种功能。

尽管前述公开文件论述了示例性方案和/或实施例,但应注意,在不背离由权利要求书定义的描述的方案和/或实施例的范围的情况下,可以在此做出许多变化和修改。而且,尽管以单数形式描述或要求的所述方案和/或实施例的要素,但也可以设想复数的情况,除非明确表示了限于单数。另外,任意方案和/或实施例的全部或部分都可以与任意其它方案和/或实施例的全部或部分结合使用,除非表明了有所不同。

相关技术
  • 用于基于仿射运动模型的视频译码的自适应控制点选择
  • 基于仿射运动模型的运动矢量预测方法及设备
技术分类

06120116224230