用于视频编解码的仿射帧间预测的方法及装置与流程

文档序号:15213371发布日期:2018-08-21 15:46阅读:354来源:国知局

本申请要求在2016年01月07日提出申请号为62/275,817的美国临时专利申请以及在2016年01月29日提出申请号为62/288,490的美国临时专利申请的优先权。上述美国临时专利申请整体以引用方式并入本文中。

本发明涉及使用运动估计和运动补偿的视频编解码。具体地,本发明涉及生成帧间候选列表,其包括与使用仿射帧间模式编解码的一个或多个块相关的一个或多个仿射运动矢量预测子(motionvectorpredictor,mvp)。



背景技术:

在过去二十年内,不同的视频编解码标准已得到发展。在新编解码标准中,更强大的编解码工具用于提高编解码效率。高效视频编码(highefficiencyvideocoding,hevc)是新的编解码标准,其近年来已得到发展。在hevc系统中,h.264/avc的固定尺寸的宏块由称为编码单元(codingunit,cu)的灵活块来替代。cu中的像素共享相同的编解码参数,以提高编解码效率。cu可以从最大cu(largestcu,lcu)开始,其在hevc中也称为编码树单元(codedtreeunit,ctu)。除了编码单元的概念,hecv中也引进了预测单元(predictionunit,pu)的概念。一旦完成cu分层树的分割,每个叶cu根据预测类型和pu分割被进一步分割成一个或多个pu。

在大部分编解码标准中,自适应帧间/帧内预测是基于块来使用的。在帧间预测模式中,一个或两个运动矢量被确定以用于每个块,以选择一个参考块(即单向预测),或者选择两个参考块(即双向预测)。一个或多个运动矢量被确定且编解码以用于每个单个的块。对于在hevc中,帧间运动补偿以两种不同的方式被支持:显性发信或者隐性发信。在显性发信中,使用预测性编解码方法,块(即pu)的运动矢量被发信。运动矢量(motionvector,mv)预测子对应于与当前块的空间相邻和时间相邻相关的运动矢量。在mv预测子被确定之后,运动矢量差(motionvectordifference,mvd)被编码且发送。这种模式也称为高级运动矢量预测(advancedmotionvectorprediction,amvp)。在隐性发信中,来自于候选预测子集的一个预测子被选择为当前块(即pu)的运动矢量。由于编码器和解码器均将以相同的方式推导出候选集并选择最终运动矢量,所以在隐性模式中无需发信mv或mvd。这种模式也称为合并模式。合并模式中的预测子集的形成也称为合并候选列表构造。称为合并索引的一个索引被发信以指示被选择为当前块的mv的预测子。

沿着时间轴在图像上发生的运动可由多个不同模型描述。假设考虑a(x,y)是位于位置(x,y)处的原始像素,a’(x’,y’)是位于当前像素a(x,y)的参考图像中的位置(x’,y’)处的相应像素,则下面描述一些典型的运动模型。

平移模型

最简单的是2d平移运动,其中感兴趣区域中的所有像素遵循同一运动方向和幅度。这种模型可以按照如下进行描述,其中a0是水平方向上的运动,b0是垂直方向上的运动:

x’=a0+x,以及

y’=b0+y。(1)

在这种模型中,两个参数(即a0和b0)均将被确定。对于感兴趣区域中的所有像素等式(1)为真。因此,像素a(x,y)和该区域中的像素a’(x’,y’)的运动矢量是(a0,b0)。图1示出了根据平移模式的运动补偿的示例,其中当前区域110被映射到参考图像中的参考区域120。当前区域的四个角像素与参考区域的四个角像素之间的对应由四个箭头来表示。

缩放模型

缩放模型包括水平方向和垂直方向上除了平移运动之外的缩放效果。该模型可以按照如下进行描述:

x’=a0+a1*x,以及

y’=b0+b1*y。(2)

根据本模型,总共四个参数均被使用,其包括缩放因素a1和缩放因素b1以及平移运动值a0和平移运动值b0。对于感兴趣区域中的每个像素a(x,y),该像素及其相应的参考像素a’(x’,y’)的运动矢量是(a0+(a1-1)*x,b0+(b1-1)*y)。因此,每个像素的运动矢量是基于位置的。图2示出了根据缩放模型的运动补偿的示例,其中当前区域210被映射到参考图像中的参考区域220。当前区域的四个角像素与参考区域的四个角像素之间的对应由四个箭头来表示。

仿射模型

仿射模型能描述二维块旋转以及二维变形(deformation),以将正方形(或者矩形)变换成平行四边形。本模型可以按照如下进行描述:

x’=a0+a1*x+a2*y,以及

y’=b0+b1*x+b2*y。(3)

在本模型中,总共六个参数被使用。对于感兴趣区域中的每个像素a(x,y),该像素及其相应参考像素a’(x’,y’)的运动矢量是(a0+(a1-1)*x+a2*y,b0+b1*x+(b2-1)*y)。因此,每个像素的运动矢量也是基于位置的。图3示出了根据仿射模型的运动补偿的示例,其中当前区域310被映射到参考图像中的参考区域320。仿射变换可以将任何三角形映射到任何三角形。换句话说,当前区域的三个角像素与参考区域的三个角像素之间的对应可以由如图3所示的三个箭头来确定。在这种情况中,第四个角像素的运动矢量可以以其他三个运动矢量的形式来推导出,而不是独立于其他三个运动矢量来推导出。仿射模型的六个参数可以基于三个不同位置的三个已知的运动矢量来推导出。仿射模型的参数推导在本领域中是已知的,且此处省略详细说明。

仿射运动补偿的不同实施方式已在文献中公开。例如,在李等人的技术文献(“anaffinemotioncompensationframeworkforhighefficiencyvideocoding”,2015ieeeinternationalsymposiumoncircuitsandsystems(iscas),may2015,pages:525–528)中,当当前块以合并模式或者amvp模式进行编解码时,仿射标志被发信以用于2nx2n块分割。如果该标志为真(即仿射模式),则当前块的运动矢量的推导遵循仿射模型。如果该标志为假(即非仿射模式),则当前块的运动矢量的推导遵循传统的平移模型。当仿射amvp模式被使用时,三个控制点(即3个mv)被发信。在每个控制点位置处,mv被预测性编解码。随后,这些控制点的mvd被编解码并发送。

在黄等人的另一技术文件(“control-pointrepresentationanddifferentialcodingaffine-motioncompensation”,ieeetransactionsoncsvt,vol.23,no.10,pages1651-1660,oct.2013)中,公开了不同控制点位置以及控制点中的mv的预测性编解码。如果合并模式被使用,则仿射标志的发信被有条件地发信,其中仅当存在至少一个仿射编解码的合并候选时仿射标志被发信。否则,该标志被推断为假。当仿射标志为真时,第一可用仿射编解码合并候选将用于仿射合并模式。因此,不存在需要发信的合并索引。

仿射运动补偿已被提出到正在发展用于视频编解码专家组(videocodingexpertsgroup,itu-vceg)和ituiso/iecjtc1/sc29/wg11下的未来视频编解码技术的标准化的未来视频编解码。联合探索测试模型(jointexplorationtestmodel1,jem1)软件已在2015年10月建立,作为平台以用于合作者投稿所提出的要素。未来标准化动作可以采用hevc的额外拓展或者一个全新的标准。

上述实施的一个示例语法如表1所示。如表1所示,当合并模式被使用时,如注释(1-1)所示,关于“whetheratleastonemergecandidateisaffinecoded&&partmode==part_2nx2n)”的测试被执行。如果测试结果为真,则如注释(1-2)所示,仿射标志(即use_affine_flag)被发信。当帧间预测模式被使用时,如注释(1-3)所示,关于“whetherlog2cbsize>3&&partmode==part_2nx2n”的测试被执行。如果测试结果为真,则如注释(1-4)所示,仿射标志(即use_affine_flag)被发信。如注释(1-5)所示,当仿射标志(即use_affine_flag)的值为1时,如注释(1-6)和注释(1-7)所示,另外两个mvd被发信以用于第二控制mv和第三控制mv。对于双向预测,如注释(1-8)到注释(1-10)所示,相似的发信必须完成以用于l1列表。

表1

在递交到itu-vceg的投稿c1016(lin,etal.,“affinetransformpredictionfornextgenerationvideocoding”,itu-u,studygroup16,questionq6/16,contributionc1016,september2015,geneva,ch)中,公开了四参数仿射预测,其包括仿射合并模式和仿射帧间模式。当仿射运动块正在移动时,该块的运动矢量域可以由两个控制点运动矢量或者四个参数进行描述,如下,其中(vx,vy)表示运动矢量

四参数仿射模型的示例如图4a所示。变换块是矩形块。在该移动的块中的每个点的运动矢量域可以通过如下等式进行描述:

其中(v0x,v0y)是位于块的左上角处的一个控制点运动矢量(即v0),(v1x,v1y)是位于块的右上角处的一个控制点运动矢量(即v1)。当两个控制点的mv被解码时,该块的每个4x4块的mv可以根据上述等式来确定。换句话说,该块的仿射运动模型可以由位于两个控制点处的两个运动矢量来指定。另外,虽然块的左上角和右上角用作两个控制点,其他两个控制点也可以被使用。根据等式(5),如图4b所示,当前块的运动矢量的示例可以基于两个控制点的mv而被确定以用于每个4x4块。

在投稿c1016中,对于帧间模式编解码的cu,当cu尺寸等于或大于16x16,仿射标志被发信以表示仿射帧间模式是否被使用。如果当前cu以仿射帧间模式进行编解码,则使用相邻有效重构块来建立候选mvp对列表。如图5所示,v0对应于位于当前块的左上角处的块的运动矢量v0,其是从相邻块a0(称为左上角块)、相邻块a1(称为顶端左(left-top)块)和相邻块a2(称为左顶端(top-left)块)的运动矢量中选择的,v1对应于位于当前块的右上角处的块的运动矢量v1,其是从相邻块b0(称为顶端右块)和相邻块b1(称为右上角块)的运动矢量中选择的。为了选择候选mvp对,“dv”(本揭露书中称为失真值)根据如下进行计算:

deltahor=mvb–mva

deltaver=mvc–mva

在上述等式中,mva是与块a0、块a1或者块a2相关的运动矢量,mvb是从块b0和块b1的运动矢量中选择的,mvc是从块c0和块c1的运动矢量中选择的。具有最小dv的mva和mvb均被选择以形成mvp对。因此,虽然仅两个mv集(即mva和mvb)将被搜索以用于最小dv,但是第三dv集(即mvc)在选择流程中也被涉及。第三dv集对应于位于当前块的左下角处的块的运动矢量,其是从相邻块c0(称为左底端块)和相邻块c1(称为左下角块)的运动矢量中选择的。

对于以amvp模式编解码的块,候选mvp对的索引被发信在比特流中。两个控制点的mvd被编码在比特流中。

在投稿c1016中,也提出了仿射合并模式。如果当前块是合并编解码的pu,则五个相邻块(即图6中的a0块、a1块、b0块、b1块和b2块)被检测是否是仿射帧间模式或者仿射合并模式。如果是,则affine_flag被发信以表示当前pu是否是仿射模式。当当前pu以仿射合并模式被应用时,其从有效相邻重构块中得到用仿射模式编解码的第一块。如图6所示,候选块的选择顺序是从左底端、顶端右、右上角、左下角到左上角(即a1→b1→b0→a0→b2)。仿射编解码块的仿射参数用于推导出当前pu的v0和v1。

透视模型

透视运动模型可以用于描述摄像机运动,例如,缩放、平移和倾斜。本模型可以按照如下进行描述:

x’=(a0+a1*x+a2*y)/(1+c1*x+c2*y),以及

y’=(b0+b1*x+b2*y)/(1+c1*x+c2*y)(7)

在本模型中,八个参数被使用。对于感兴趣区域中的每个像素a(x,y),这种情况的运动矢量可以自相应的a’(x’,y’)和a(x,y),即(x’-x,y’-y)来确定。因此,每个像素的运动矢量是基于位置的。

通常,n参数模型可以通过将m个像素对a和a’作为输入来求解。实际上,m个像素对可以被使用,其中m>n。例如,在仿射模型中,参数集a=(a0,a1,a2)和参数集b=(b0,b1,b2)可以被单独求解。

设c=(1,1,…,1),x=(x0,x1,…,xm-1),y=(y0,y1,…,ym-1),u==(x’0,x’1,…,x’m-1)以及v=(y’0,y’1,…,y’m-1),则如下等式可以被推导出:

kat=u,以及

kbt=v。(8)

因此,参数集a可以根据a=(ktk)-1(ktu)来求解,b可以根据b=(ktk)-1(ktv)来求解,其中k=(ct,xt,yt),ktk总是为3x3矩阵,无论m的尺寸如何。

模板匹配

最近,vceg-az07(chen,etal.,furtherimprovementstohmkta-1.0,itu-telecommunicationsstandardizationsector,studygroup16question6,videocodingexpertsgroup(vceg),52ndmeeting:19–26june2015,warsaw,poland)中,已公开了根据参考图像中的最佳匹配块的当前块的运动矢量推导。根据该方法,当前块周围的所选择的重构像素集(即模板)用于搜索并与参考图像中目标位置周围与模板同一形状的像素匹配。当前块的模板和目标位置的模板之间的成本被计算。具有最低成本的目标位置被选择为当前块的参考块。由于解码器可以使用先前编解码数据来执行相同的成本推导以确定最佳位置,无需发信所选择的运动矢量。因此,运动矢量的发信成本是不需要的。相应地,模板匹配方法也称为解码器侧推导运动矢量推导方法。此外,运动矢量预测子可以用作这种模板匹配程序的起点以降低所需搜索。

在图7中,示出了模板匹配的示例,其中当前图像(即710)中的位于当前块之上的一行像素(即714)和位于当前块(712)左侧的一列像素(即716)均被选择作为模板。搜索始于参考图像中的同位位置。在搜索期间,不同位置中的相同“l”形状参考像素(即724和726)逐个与当前块周围的模板中的相应像素进行比较。具有最小总像素匹配失真的位置在搜索之后被确定。在此位置处,具有较佳的“l”形状像素作为其顶端相邻和左侧相邻(即最小失真)的块被选择为当前块的参考块。运动矢量730被确定,而无需发信。

光流

通过光流方法来分析相邻图像,当前图像的运动矢量域可以被计算且推导出。

为了提高编解码效率,vceg-az07中也公开了另一解码器侧运动矢量推导方法。根据vceg-az07,解码器侧运动矢量推导方法使用帧率向上转换模式(framerateup-conversion,fruc),其称为双边匹配,以用于在b切片中的块。另一方面,模板匹配用于p切片或b切片中的块。

在本发明中,公开了使用运动补偿以提高已有编解码系统的编解码性能的方法。



技术实现要素:

本发明公开了一种视频编解码的帧间预测的方法及装置,视频编解码由视频编码器或视频解码器执行,使用运动矢量预测来编解码与用多个编解码模式编解码的块相关的运动矢量,多个编解码模式包括仿射帧间模式。当前块的多个运动矢量预测子对是基于分别表示与当前块相关的仿射运动模型的第一控制点的第一相邻块集和第二控制点的第二相邻块集而导出的。每个运动矢量预测子对包括自第一相邻块集确定的第一运动矢量和自第二相邻块集确定的第二运动矢量。仅使用每个运动矢量预测子对中的第一运动矢量和第二运动矢量,评估每个运动矢量预测子对的失真值,以根据失真值,选择最终运动矢量预测子对。生成包括最终运动矢量预测子对作为运动矢量预测子候选的运动矢量预测子候选列表。若仿射帧间模式用于当前块,且最终运动矢量预测子对被选择,则使用最终运动矢量预测子对作为预测子,在视频编码器侧处编码或者在视频解码器侧处解码与仿射运动模型相关的当前运动矢量对。

在上述方法中,失真值可以是根据失真值基于每个运动矢量预测子对中的第一运动矢量和第二运动矢量计算的,其中:第一运动矢量为mvp0,mvp0=(mvp0_x,mvp0_y);第二运动矢量为mvp1,mvp1=(mvp1_x,mvp1_y);失真值dv=|mvp1_x–mvp0_x|+|mvp1_y–mvp0_y|。失真值也可以是通过引进中间运动矢量计算的,其中:中间运动矢量为mvp2,mvp2=(mvp2_x,mvp2_y),mvp2_x=–(mvp1_y–mvp0_y)*pu_height/pu_width+mvp0_x且mvp2_y=–(mvp1_x–mvp0_x)*pu_height/pu_width+mvp0_y;并且失真值计算变成:失真值=|(mvp1_x–mvp0_x)*pu_height–(mvp2_y–mvp0_y)*pu_width|+|(mvp1_y–mvp0_y)*pu_height–(mvp2_x–mvp0_x)*pu_width|;其中pu_height对应于当前块的高度,pu_width对应于当前块的宽度。在一个实施例中,具有较小失真值的运动矢量预测子对被选择为最终运动矢量预测子对。

本发明公开了第二种方法,当前块的多个运动矢量预测子集是基于用于表示与当前块相关的6参数仿射运动模型的第一控制点的第一相邻块集、第二控制点的第二相邻块集和第三控制点的第三相邻块集来确定的。每个运动矢量预测子集包括自第一相邻块集确定的第一运动矢量、自第二相邻块集确定的第二运动矢量和自第三相邻块集确定的第三运动矢量。使用每个运动矢量预测子集中的第一运动矢量、第二运动矢量和第三运动矢量,评估每个运动矢量预测子集的失真值,以根据失真值,选择最终运动矢量预测子集。生成包括最终运动矢量预测子集作为运动矢量预测子候选的运动矢量预测子候选列表。若仿射帧间模式用于当前块,且最终运动矢量预测子集被选择,则在视频编码器侧处,通过发信当前运动矢量集与最终运动矢量预测子集之间的多个运动矢量差,与6参数仿射运动模型相关的当前运动矢量集被编码,或者在视频解码器侧处,使用最终运动矢量预测子集以及当前运动矢量集与最终运动矢量预测子集之间的多个运动矢量差,与6参数仿射运动模型相关的当前运动矢量集被解码。

在第二方法中,第一相邻块集包括左上角块、顶端左块和左顶端块;第二相邻块集包括顶端右块和右上角块;以及第三相邻块集包括左底端块和左下角块。本发明公开了计算失真值的不同方式。

本发明公开了第三方法,一个或多个解码器侧推导的运动矢量是使用模板匹配或双边匹配,或者使用与多个相邻块相关的多个运动矢量的函数来推导出的,以用于与当前块的仿射运动模型相关的至少一个控制点。与多个相邻块相关的多个运动矢量的函数不包括仅基于空间相邻块和时间相邻块中的至少一个的相应运动矢量的可用性、优先级中的至少一个,自空间相邻块和时间相邻块中的至少一个选择一个推导运动矢量。包括仿射运动矢量预测子候选的运动矢量预测子候选列表被生成,其中仿射运动矢量预测子候选包括一个或多个解码器侧推导运动矢量。若仿射帧间模式用于当前块,且仿射运动矢量预测子候选被选择,则在视频编码器侧处,通过发信当前运动矢量集与仿射运动矢量预测子候选之间的至少一个运动矢量差,与仿射运动模型相关的当前运动矢量集被编码,或者在视频解码器侧处,使用仿射运动矢量预测子候选以及当前运动矢量集与仿射运动矢量预测子候选之间的至少一个运动矢量差,与仿射运动模型相关的当前运动矢量集被解码。

在第三方法中,解码器侧推导的运动矢量对应于与当前块的三个控制点或两个控制点相关的运动矢量。在这种情况中,与每个控制点相关的运动矢量对应于位于各自角像素处的运动矢量,或者与包含各自角像素的最小块相关的运动矢量。解码器侧推导的运动矢量标志可以被发信以表示一个或多个解码器侧推导运动矢量是否用于当前块。两个控制点位于当前块的左上角和右上角,且三个控制点包括位于左下角处的额外位置。与多个相邻块相关的多个运动矢量的函数对应于与多个相邻块相关的多个运动矢量的平均值或中间值。

根据一个实施例,当模板匹配用于推导出与与当前块的仿射运动模型相关的多个控制点相关的一个或多个解码器侧推导的运动矢量时,多个控制点分别位于各自的nxn角子块内,每个解码器侧推导的运动矢量是使用分别对应于每个nxn角子块的各自nxn相邻块的模板推导的,其中n为正整数。对于4参数仿射模型,多个nxn角子块分别对应于当前块的左上块和右上块;对于6参数仿射模型,多个nxn角子块分别对应于当前块的左上块、右上块和左下块。当模板匹配被使用时,多个控制点也可以对应于当前块的多个角像素,以及每个解码器侧推导的运动矢量是使用分别对应于当前块的每个角像素的一行和一列中至少一个内的各自相邻像素的模板推导的。对于4参数仿射模型,多个角像素可以对应于当前块的左上角像素和右上角像素;对于6参数仿射模型,多个角像素对应于当前块的左上角像素、右上角像素和左下角像素。

附图说明

图1是平移运动模型的示例。

图2是缩放运动模型的示例。

图3是仿射运动模型的示例。

图4a是四参数仿射模型的示例,其中变换块仍然是矩形块。

图4b是基于两个控制点的mv而确定以用于每个4x4子块的当前块的运动矢量的示例。

图5是基于各自的相邻块推导出三个角块的运动矢量的示例。

图6是基于五个相邻块(即a0,a1,b0,b1和b2)推导出仿射合并候选列表的示例。

图7是模板匹配的示例,其中当前图像中的位于当前块之上的一行像素和位于当前块左侧的一列像素被选择作为模板。

图8是在参考图像中以及窗口内基于仿射编解码块推导出新的仿射合并候选的示例。

图9是当前块的三个控制点的示例,其中三个控制点对应于左上角、右上角和左下角。

图10是位于当前块的控制点处的模板匹配的相邻像素的示例,其中三个控制点的相邻像素的模板(即点填充的区域)被示出。

图11是根据所公开的方法的合并候选构造流程的示例,其中当前块的五个相邻块(即a到e)的mv用于合并候选列表构造。

图12是用于在解码器侧处推导出6参数仿射模型的mv的三个子块(即a、b和c)的示例。

图13是根据本发明实施例的具有仿射帧间模式的视频编解码系统的示例性流程图,其中该系统仅使用位于两个控制点处的两个运动矢量以选择mvp对。

图14是根据本发明实施例的具有仿射帧间模式的视频编解码系统的示例性流程图,其中该系统使用位于三个控制点处的三个运动矢量以推导出使用6参数仿射模型编解码的块的mvp集。

图15是根据本发明实施例的具有仿射帧间模式的视频编解码系统的示例性流程图,其中该系统生成包括mvp集的高级运动矢量预测子候选列表,mvp集包括一个或多个解码器侧推导mv。

具体实施方式

以下描述为实施本发明的较佳方式。本描述的目的在于阐释本发明的一般原理,并非起限定意义。本发明的保护范围当视权利要求书所界定为准。

在本发明中,公开了用于视频压缩的使用仿射运动估计和补偿的不同方法。具体地,仿射运动估计或补偿用于以合并模式或帧间预测模式编解码视频数据。

仿射运动补偿已被提出到ituiso/iecjtc1/sc29/wg11下的未来视频编解码技术的标准化主体。jem1软件已在2015年10月建立,作为平台以用于合作者投稿所提出的要素。未来标准化动作将采用hevc的额外拓展的形式或者一种全新的标准。

在hevc的拓展的情况中,当仿射运动补偿用于以合并模式编解码的当前块时,其推导的合并候选中的一些可以是仿射编解码块。例如,在图6中当前块610的五个空间合并候选中,a1和b1可以使用仿射运动补偿来编解码,而a0、b0和b2以传统的帧间模式编解码。根据hevc,列表中的合并候选的顺序是a1->b1->b0->a0->b2->时间候选->其他候选。合并索引用于表示合并列表中哪个候选被实际使用。另外,对于基于已有hevc拓展的仿射运动补偿,仿射运动补偿仅被应用到2nx2n块尺寸(即pu)。对于合并模式,如果merge_flag为真(即合并模式被使用)且当存在至少一个使用仿射帧间模式编解码的空间相邻块时,一标志用于发信当前块是否以仿射合并模式进行编解码。如果当前块以仿射合并模式进行编解码,则第一仿射编解码相邻的运动信息用作当前块的运动。无需发信当前块的运动信息。对于帧间预测模式(即amvp模式),4参数仿射模型被使用。左上角和右上角的mvd均被发信。对于cu中的每个4x4子块,其mv根据仿射模型被推导出。此外,根据已有hevc拓展,仿射合并候选列表独立于帧间合并候选列表。因此,该系统必须生成并维持两个合并列表。

改进的仿射合并模式

为了提高编解码性能或者降低与仿射合并模式相关的处理复杂度,本发明中公开了仿射合并模式的不同改进。

方法a–统一合并列表

根据方法a,统一合并候选列表被生成,并用于仿射帧间编解码相邻块和传统帧间编解码相邻块。传统帧间编解码块也称为常规帧间编解码块。根据方法a,无需两个独立的候选列表以用于这两个编解码模式。在一个实施例中,候选选择顺序与hevc中的顺序相同,即图6中所示的a1->b1->b0->a0->b2->时间候选->其他候选。仿射合并候选可以用于替代传统帧间候选,或者被插入到合并列表中。例如,根据本实施例,如果块b1和块b2被仿射编解码,则上述顺序变成a1->b1a->b0->a0->b2a->时间候选->其他候选,其中b1a和b2a表示仿射编解码的块b1和块b2。尽管如此,其他候选选择或者顺序可以使用。

根据本发明的使用统一的仿射合并与帧间合并候选列表的编解码系统与使用独立的仿射合并列表和帧间合并列表的传统编解码系统进行比较。具有统一合并候选列表的系统已显示了在随机访问测试条件下的大于1%和低延迟b帧测试条件下大于1.78%的更好的编解码效率。

方法b–合并索引以表示仿射合并模式的使用

根据方法b,表示仿射合并模式的使用的合并索引被发信。这将消除合并模式中的特定仿射标志发信或者条件的需要。如果合并索引指向仿射编解码的候选,则当前块将继承候选块的仿射模型,并基于该仿射模型推导出当前块中的像素的运动信息。

方法c–除了2nx2n之外的pu的仿射合并模式

如上所述,基于已有hevc拓展的仿射合并模式被应用到仅具有2nx2n分割的cu。根据方法c,公开了pu层(pu-level)仿射合并模式,其中仿射合并模式被拓展到除了2nx2n分割之外的不同的pu分割,例如2nxn、nx2n、nxn、非对称运动分割(asymmetricmotionpartition,amp)模式等。对于cu中的每个pu,仿射合并模式遵循与方法a和方法b相同的思想。换言之,统一合并候选列表构造可以被使用,并且表示仿射编解码的相邻候选的合并索引可以被发信。一些约束可以被施加到允许的pu分割上。例如,除了2nx2n,仅2nxn分割和nx2n分割的pu被使能以用于仿射合并模式。在另一实施例中,除了2nx2n,仅2nxn分割、nx2n分割和nxn分割的pu被使能以用于仿射合并模式。在又一实施例中,除了2nx2n、2nxn、nx2n和nxn,仅具有大于16x16的cu尺寸的amp模式被使能以用于仿射合并模式。

在另一实施例中,仿射模型所生成的合并候选可以被插入在正常合并候选之后,以用于统一合并候选列表生成。例如,根据合并候选选择的顺序,如果相邻块是仿射编解码pu,则块的正常合并候选(即传统合并候选,在本发明中也称为常规合并候选)先被插入,随后,块的仿射合并候选被插入在正常候选之后。例如,如果块b1和块b2被仿射编解码,则顺序变成a1->b1->b1a->b0->a0->b2->b2a->时间候选->其他候选。

在另一实施例中,所有仿射模型所生成的合并候选可以被插入到统一合并候选列表的前面,以用于统一合并候选列表生成。例如,根据合并候选选择的顺序,所有可用仿射合并候选均被插入到该列表的前面。随后,hevc合并候选构造方法可以用于生成正常合并候选。例如,如果块b1和块b2被仿射编解码,则顺序变成b1a->b2a->a1->b1->b0->a0->b2->时间候选->其他候选。又例如,仅部分仿射编解码块被插入到合并候选列表的前面。此外,部分的仿射编解码块可以用于替代常规帧间候选,并且剩余的仿射编解码块可以被插入到统一合并候选列表中。

方法a、方法b和方法c的一个示例性语法表格如表2所示。如表2所示,如注释(2-2)所示,当合并模式被使用,use_affine_flag的发信是不需要的,其中框中的文本表示删除。同样地,如注释(2-1)和注释(2-3)所示,无需执行关于“whetheratleastonemergecandidateisaffinecoded&&partmode==part_2nx2n”的测试。实际上相比于原始hevc标准(即没有仿射运动补偿的版本),不存在改变。

表2

方法d–新的仿射合并候选

根据方法d,新的仿射合并候选被添加到统一合并候选列表。因为先前仿射编解码块可能不属于当前块的相邻块。如果没有当前块的相邻块被仿射编解码,则将没有可用的仿射合并候选。然而,根据方法d,先前仿射编解码块的仿射参数可以被存储,并用于生成新的仿射合并候选。当合并索引指向这些候选中一个时,当前块以仿射模式进行编解码,且所选择的候选的参数用于推导出当前块的运动矢量。

在新的仿射合并候选的第一实施例中,n个先前仿射编解码块的参数被存储,其中n是正整数。复制的候选,即具有相同的仿射参数的块,可以被修剪(pruned)。

在第二实施例中,仅当新的仿射候选不同于当前合并候选列表中的仿射合并候选时,新的仿射合并候选被添加到该列表中。

在第三实施例中,使用来自于参考图像中的先前仿射编解码块的新的仿射合并候选。这种仿射合并候选也称为时间仿射合并候选。搜索窗口可以用参考图像中的同位块作为中心来定义。参考图像中以及该窗口内的仿射编解码块被考虑为新的仿射合并候选。本实施例的一示例如图8所示,其中图像810对应于当前图像,图像820对应于参考图像。块812对应于当前图像810中的当前块,块822对应于参考图像820中与当前块对应的同位块。虚线块824表示参考图像中的搜索窗口。块826和块828表示搜索窗口中的两个仿射编解码块。因此,根据本实施例,这两个块可以被插入到合并候选列表中。

在第四实施例中,这些新的仿射合并候选可以被放置在统一合并候选列表中的最后位置,即统一合并候选列表的末端。

在第五实施例中,这些新的仿射合并候选可以被放置在统一合并候选列表中空间候选和时间候选之后。

在第六实施例中,如果适用,则先前实施例的组合被形成。例如,来自于参考图像的搜索窗口的新的仿射合并候选可以被使用。同时,这些候选必须不同于统一合并候选列表中的已有仿射合并候选,例如,来自于空间相邻块的那些。

在第七实施例中,一个或多个全局仿射参数(globalaffineparameter)被发信在序列、图像或切片层头中。本领域所已知的是,全局仿射参数可以描述图像的一区域的或者整个图像的仿射运动。图像可以具有多个区域,其可以由全局仿射参数进行建模。根据本实施例,全局仿射参数可以用于生成当前块的一个或多个仿射合并候选。全局仿射参数可以自参考图像预测。这样,当前全局仿射参数与先前全局仿射参数的差被发信。生成的仿射合并候选被插入到统一合并候选列表中。复制的候选(具有相同仿射参数的块)可以被修剪。

改进的仿射amvp模式

为了提高编解码性能或者降低与仿射amvp模式相关的处理复杂度,公开了不同的改进以用于仿射amvp模式。当仿射运动补偿被使用时,通常需要三个控制点以用于运动矢量推导。图9示出了当前块910的三个控制点的示例,其中三个控制点对应于左上角、右上角和左下角。在一些实施方式中,通过特定简化而使用两个控制点。例如,假设仿射变换不进行变形,则两个控制点是足够的。通常,可以存在n(n=0,1,2,3,4)个控制点,其中运动矢量需要被发信以用于这些控制点。根据本发明的一方法,一些推导或者估计的运动矢量可以用于表示一些控制点中的所发信的运动矢量。例如,在所发信的mv的总数量是m(m<=n)的情况下,当m<n,意味着至少一个控制点不通过相应的mvd来发信。因此,此控制点中的运动矢量是推导出或预测的。例如,在三个控制点的情况中,两个控制点中的运动矢量可以被发信,而第三控制点中的运动矢量是通过运动矢量推导或者预测来获得的。又例如,在两个控制点的情况中,一个控制点的运动矢量被发信,而另一个控制点的运动矢量是通过运动矢量推导或预测来获得的。

在一个方法中,控制点x(x对应于块的任何控制点)的推导或预测的运动矢量是该控制点附近的空间相邻块和时间相邻块的运动矢量的函数。在一个实施例中,可用相邻运动矢量的平均值用作控制点的运动矢量。例如,如图9所示,控制点b的推导的运动矢量是b0和b1中的运动矢量的平均值。在另一实施例中,可用相邻运动矢量的中间值用作控制点的运动矢量。例如,如图9所示,控制点a的推导的运动矢量是a0、a1和a2中的运动矢量的中间值。在又一实施例中,来自于相邻块之一的运动矢量被选择。在这种情况下,如图9所示,一标志可以被发送以表示一个块(例如a1,如果可用)的运动矢量被选择以表示位于控制点a处的运动矢量。在又一实施例中,不发信mvd的控制点x基于逐块来确定。换句话说,对于每个特定编解码块,控制点被选择以使用推导的运动矢量,而无需发信其mvd。用于编解码块的这种控制点的选择可以通过显性发信或者隐性推导来完成。例如,在显性发信的情况中,在发信每个控制点的mvd之前,1比特标志可以被用于发信其mvd是否为0。如果mvd为0,则该控制点的mvd不被发信。

在另一方法中,来自于其他运动矢量推导流程的推导或预测的运动矢量被使用,其中其他运动矢量推导流程不直接从空间相邻块或时间相邻块推导出运动矢量。控制点中的运动矢量可以是位于控制点处的像素的运动矢量,或者包含控制点的最小块(例如,4x4块)的运动矢量。在一个实施例中,光流方法用于推导出位于控制点处的运动矢量。在另一实施例中,模板匹配方法用于推导出控制点中的运动矢量。在又一实施例中,控制点中的mv的运动矢量预测子列表被构造。模板匹配方法可以用于确定哪个预测子具有最小失真(成本)。随后,选择的mv用作控制点的mv。

在又一实施例中,仿射amvp模式可以被应用到除了2nx2n之外的不同尺寸的pu。

上述方法的一示例性语法表格通过修改已有hevc语法表格显示于表3。该示例假设总共使用三个控制点,并且其中一个控制点使用推导的运动矢量。由于本方法将仿射amvp应用到除了2nx2n分割之外的pu,所以如注释(3-1)所示,发信use_affine_flag的限制条件“&&partmode==part_2nx2n”被删除。由于每个选择的列表存在三个控制点(即三个mv)需发信,所以除了用于原始hevc(即没有仿射运动补偿的版本)的一个mv之外,通过mvd的两个额外的mv需要被发信。根据本方法,一个控制点使用推导的运动矢量。因此,仅一个额外的mv需要通过mvd的方式被发信。因此,分别如注释(3-2)和(3-3)所示,list_0和list_1的第二额外mvd发信被消除以用于双向预测的情况。在表3中,框中的文本表示删除。

表3

下面描述对应于上述方法的一个示例性解码流程,以用于三个控制点的情况:

1.在amvp的仿射标志被解码之后,且如果仿射标志为真,则解码器开始解析两个mvd。

2.第一解码mvd被添加到第一控制点(例如图9中的控制点a)的mv预测子。

3.第二解码mvd被添加到第二控制点(例如图9中的控制点b)的mv预测子。

4.对于第三控制点,如下步骤使用:

·推导位于控制点(例如图9中的控制点c)处的运动矢量的mv预测子集。这些预测子可以是来自于图9中的块a1或块a0或者时间上的同位块的mv。

·使用模板匹配方法来比较所有预测子,以选择具有最小成本的一个。

·使用选择的mv作为第三控制点的mv。

下面描述对应于上述方法的另一个示例性解码流程,以用于三个控制点的情况:

1.在amvp的仿射标志被解码之后,且如果仿射标志为真,则解码器开始解析两个mvd。

2.第一解码mvd被添加到第一控制点(例如图9中的控制点a)的mv预测子。

3.第二解码mvd被添加到第二控制点(例如图9中的控制点b)的mv预测子。

4.对于第三控制点(例如图9中的控制点c),如下步骤使用:

·设置搜索起始点和搜索窗口尺寸。例如搜索起始点可以通过来自于相邻块a1的运动矢量或者来自于上述示例的具有最小成本的mv预测子来指示。搜索窗口尺寸可以是x方向和y方向上的±1整数像素。

·使用模板匹配方法来比较搜索窗口中的所有位置,并选择具有最小成本的一个位置。

·使用选择的位置与当前块之间的平移作为第三控制点的mv。

5.在所有三个控制点处的mv可用的情况下,执行当前块的仿射运动补偿。

在另一实施例中,不同的参考列表可以使用不同的帧间模式。例如,list_0可以使用正常帧间模式,而list_1可以使用仿射帧间模式。如表4所示,在此情况中,仿射标志被发信以用于每个参考列表。表4中的语法结构与表3中的语法结构相似。用于发信use_affine_flag的限制条件“&&partmode==part_2nx2n”的删除如注释(4-1)所示。发信第三mv(即第二额外mv)的删除如注释(4-2)所示。然而,如注释(4-4)所示,单个use_affine_flag被发信,以用于list_1。同样地,如注释(4-3)所示,用于发信use_affine_flag的限制条件“&&partmode==part_2nx2n”被删除,以用于list_1。用于list_1的发信第三mv(即第二额外mv)的删除如注释(4-5)所示。

表4

在一个实施例中,控制点的运动矢量预测子(motionvectorpredictor,mvp)可以自合并候选推导出。例如,仿射候选之一的仿射参数可以用于推导两个控制点或者三个控制点的mv。如果仿射合并候选的参考图像不等于当前目标图像,则mv缩放被使用。在mv缩放之后,已缩放mv的仿射参数可以用于推导出控制点的mv。在另一实施例中,如果一个或多个相邻块被仿射编解码,则相邻块的仿射参数用于推导出控制点的mvp。否则,上述的mvp生成可以被使用。

仿射帧间模式mvp对和mvp集选择

在仿射帧间模式中,mvp在每个控制点处被使用以预测该控制点的mv。

在位于三个角的三个控制点的情况中,mvp集被定义为{mvp0,mvp1,mvp2},其中mvp0是左顶端控制点的mvp,mvp1是右顶端控制点的mvp,mvp2是左底端控制点的mvp。可以存在多个可用的mvp集,以预测位于控制点处的mv。

在一个实施例中,失真值(distortionvalue,dv)可以用于选择最佳mvp集。具有较小dv的mvp集被选择为最终mvp集。mvp集的dv可以被定义为:

dv=|mvp1–mvp0|*pu_height+|mvp2–mvp0|*pu_width,

(9)

或者

dv=|(mvp1_x–mvp0_x)*pu_height|+|(mvp1_y–mvp0_y)*pu_height|+|(mvp2_x–mvp0_x)*pu_width|+|(mvp2_y–mvp0_y)*pu_width|。(10)

在itu-vcegc1016中,公开了两控制点仿射帧间模式。在本发明中,公开了三控制点(即六个参数)仿射帧间模式。三控制点仿射模型的示例如图3所示。左顶端点、右顶端点和左底端点的mv用于形成变换块。变换块是平行四边形(即320)。在仿射帧间模式中,左底端点(即v2)的mv需要被发信在比特流中。mvp集列表根据相邻块来构造,例如来自于图5中的a0块、a1块、a2块、b0块、b1块、c0块和c1块。根据本方法的一个实施例,一个mvp集具有三个mvp(即mvp0、mvp1和mvp2)。mvp0可以自a0、a1或a2来推导;mvp1可以自b0或b1来推导;mvp2可以自c0或c1来推导。在一个实施例中,第三mvd被发信在比特流中。在另一实施例中,第三mvd被推断为(0,0)。

在mvp集列表构造中,不同的mvp集可以自相邻块来推导。根据另一实施例,mvp集基于mv对失真而被排序。对于mvp集{mvp0,mvp1,mvp2},mv对失真被定义为:

dv=|mvp1–mvp0|+|mvp2–mvp0|,(11)

dv=|mvp1–mvp0|*pu_width+|mvp2–mvp0|*pu_height,(12)

dv=|mvp1–mvp0|*pu_height+|mvp2–mvp0|*pu_width,(13)

dv=|(mvp1_x–mvp0_x)*pu_height–(mvp2_y–mvp0_y)*pu_width|+|(mvp1_y–mvp0_y)*pu_height–(mvp2_x–mvp0_x)*pu_width|,

(14)

或者

dv=|(mvp1_x–mvp0_x)*pu_width–(mvp2_y–mvp0_y)*pu_height|+|(mvp1_y–mvp0_y)*pu_width–(mvp2_x–mvp0_x)*pu_height|。

(15)

在上述等式中,mvpn_x是mvpn的水平分量,mvpn_y是mvpn的垂直分量,其中n等于0、1或2。

在又一实施例中,具有较小dv的mvp集具有较高优先级,即放置在列表的前面。在另一实施例中,具有较大dv的mvp集具有较高优先级。

基于梯度仿射参数估计或者光流仿射参数估计可以被应用以查找用于所公开的仿射帧间模式的三个控制点。

在另一实施例中,模板匹配可以用于比较不同mvp集中的整体成本。随后,具有最小整体成本的最佳预测子集被选择。例如,mvp集的成本可以被定义为:

dv=template_cost(mvp0)+template_cost(mvp1)+template_cost(mvp2)。(16)

在上述等式中,mvp0是左顶端控制点的mvp,mvp1是右顶端控制点的mvp,mvp2是左底端控制点的mvp。template_cost()是成本函数,其比较当前块的模板中的像素与参考块(即由mvp所示的位置)的模板中的这些像素之间的差。图10示出了位于当前块1010的控制点处的模板匹配的相邻像素的示例。用于三个控制点的相邻像素的模板(即,点填充的区域)被示出。

在itu-vcegc1016中,相邻mv用于形成mvp对。在本发明中,公开了基于mv对或mv集失真来排序mvp对(即2个控制点)或mvp集(即3个控制点)的方法。对于mvp对{mvp0,mvp1},mv对失真被定义为

dv=|mvp1–mvp0|,(17)

dv=|mvp1_x–mvp0_x|+|mvp1_y–mvp0_y|(18)

在上述等式中,mvpn_x是mvpn的水平分量,mvpn_y是mvpn的垂直分量,其中n等于0或1。另外mvp2可以被定义为:

mvp2_x=–(mvp1_y–mvp0_y)*pu_height/pu_width+mvp0_x,

(19)

mvp2_y=–(mvp1_x–mvp0_x)*pu_height/pu_width+mvp0_y。

(20)

dv可以以mvp0、mvp1和mvp2的形式来确定:

dv=|mvp1–mvp0|+|mvp2–mvp0|。(21)

或者

在上述等式中,虽然dv是基于mvp0、mvp1和mvp2推导的,但是mvp2是基于mvp0和mvp1推导的。因此,dv实际上是自两个控制点推导的。另一方面,三个控制点已在itu-vcegc1016中使用,以推导出dv。因此,相比于itu-vcegc1016,本发明降低了推导dv的复杂度。

在一个实施例中,具有较小dv的mvp对具有较高优先级,即放置到列表的更前面。在另一实施例中,具有较大dv的mvp对具有较高优先级。

仿射合并模式发信和合并候选推导

在原始hevc(即没有仿射运动补偿的版本),所有合并候选均是正常合并候选。在本发明中,公开了不同的合并候选构造方法。如下,示出了根据所公开的方法的合并候选构造流程的示例,其中当前块1110的五个相邻块(例如,图11中的块a到块e)的mv用于统一合并候选列表构造。优先级顺序a→b→c→d→e被使用,且块b和块e被假设以仿射模式进行编解码。在图11中,块b是位于仿射编解码块1120之内。块b的仿射合并候选的三个控制点的mvp集可以是基于位于三个控制点处的三个mv(即vb0,vb1和vb2)推导的。相似地,块e的仿射参数可以被确定。

如下所示,三个控制点(即图3中的v0,v1和v2)的mvp集可以被推导出。对于v0:

v0_x=vb0_x+(vb2_x-vb0_x)*(poscurpu_y-posrefpu_y)/refpu_height+(vb1_x-vb0_x)*(poscurpu_x-posrefpu_x)/refpu_width,(23)

v0_y=vb0_y+(vb2_y-vb0_y)*(poscurpu_y-posrefpu_y)/refpu_height+(vb1_y-vb0_y)*(poscurpu_x-posrefpu_x)/refpu_width。(24)

在上述等式中,vb0,vb1和vb2对应于各自的参考/相邻pu的左顶端mv、右顶端mv和左底端mv,(poscurpu_x,poscurpu_y)是相对于图像的左顶端样本的当前pu的左顶端样本的像素位置,(posrefpu_x,posrefpu_y)是相对于图像的左顶端样本的参考/相邻pu的左顶端样本的像素位置。对于v1和v2,其可以按照如下来推导出:

v1_x=vb0_x+(vb1_x-vb0_x)*pu_width/refpu_width(25)

v1_y=vb0_y+(vb1_y-vb0_y)*pu_width/refpu_width(26)

v2_x=vb0_x+(vb2_x-vb0_x)*pu_height/refpu_height(27)

v2_y=vb0_y+(vb2_y-vb0_y)*pu_height/refpu_height(28)

如下面示例所示,统一合并候选列表可以被推导:

1.将仿射候选插入在各自的正常候选之后:

如果相邻块是仿射编解码pu,则先插入该块的正常合并候选,随后插入该块的仿射合并候选。因此,统一合并候选列表可以被构造为{a,b,ba,c,d,e,ea},其中x表示块x的正常合并候选,xa表示块x的仿射合并候选。

2.将所有仿射候选插入在统一合并候选列表的前面:

根据候选块位置,先插入所有可用的合并候选,然后使用hevc合并候选构造方法以生成正常合并候选。因此,统一合并候选列表可以被构造为{ba,ea,a,b,c,d,e}。

3.将所有仿射候选插入在统一合并候选列表的前面,并移除相应的正常候选:

根据候选块位置,先插入所有可用的合并候选,然后使用hevc合并候选构造方法以生成不以仿射模式编解码的块的正常合并候选。因此,统一合并候选列表可以被构造为{ba,ea,a,c,d}。

4.仅将一个仿射候选插入在候选列表的前面:

根据候选块位置,插入第一可用仿射合并候选,然后使用hevc合并候选构造方法以生成正常合并候选。因此,统一合并候选列表可以被构造为{ba,a,b,c,d,e}。

5.用仿射合并候选替代正常合并候选,并移动位于前面的第一可用仿射合并候选:

如果相邻块是仿射编解码pu,则使用自其仿射参数推导出的仿射合并候选,而不是使用相邻块的平移mv。因此,统一合并候选列表可以被构造为{a,ba,c,d,ea}。

6.用仿射合并候选替代正常合并候选,并将第一可用仿射合并候选移动到前面:

如果相邻块是仿射编解码pu,则使用自其仿射参数推导出的仿射合并候选,而不是使用相邻块的正常mv。在统一合并候选列表被生成之后,将第一可用仿射合并候选移动到前面。因此,统一合并候选列表可以被构造为{ba,a,c,d,ea}。

7.将一个仿射候选插入候选列表的前面,并使用剩余的仿射合并候选以替代各自的正常合并候选:

根据候选块位置,插入第一可用仿射合并候选。随后,根据hevc合并候选构造顺序,如果相邻块是仿射编解码pu,且其仿射合并候选没有被插入到前面,则使用自其仿射参数推导出的仿射合并候选,而不是相邻块的正常mv。因此,统一合并候选列表可以被构造为{ba,a,b,c,d,ea}。

8.将一个仿射候选插入在候选列表的前面,并将剩余的仿射候选插入在各自的正常候选之后:

根据候选块位置,插入第一可用仿射合并候选。随后,根据hevc合并候选构造顺序,如果相邻块是仿射编解码pu,且其仿射合并候选没有被插入到前面,则先插入该块的正常合并候选,随后插入该块的仿射合并候选。因此,统一合并候选列表可以被构造为{ba,a,b,c,d,e,ea}。

9.如果没有冗余,则替代正常合并候选:

如果相邻块是仿射编解码pu,且推导的仿射合并候选不是已经位于候选列表中,则使用自其仿射参数推导出的仿射合并候选,而不是使用相邻块的正常mv。如果相邻块是仿射编解码pu且推导的仿射合并候选是冗余的,则使用正常合并候选。

10.如果仿射合并候选是不可用的,则插入一个伪仿射候选:

如果没有相邻块是仿射编解码pu,则将一个伪仿射候选插入到候选列表中。伪仿射候选是通过将相邻块的两个mv或者三个mv组合而生成的。例如,伪仿射候选的v0可以是e,伪仿射候选的v1可以是b,伪仿射候选的v2可以是a。又例如,伪仿射候选的v0可以是e,伪仿射候选的v1可以是c,伪仿射候选的v2可以是d。相邻块a、相邻块b、相邻块c、相邻块d和相邻块e的位置如图11所示。

11.在上述的示例4、示例7和示例8中,第一仿射候选也可以被插入到候选列表中的预定义位置处。例如,如示例4、示例7和示例8所示,预定义位置可以是第一位置。又例如,第一仿射候选被插入到候选列表的第四位置处。候选列表在示例4中将变成{a,b,c,ba,d,e},在示例7中将变成{a,b,c,ba,d,ea},并且在示例8中将变成{a,b,c,ba,d,e,ea}。预定义位置可以被发信在序列层、图像层或者切片层。

在第一轮的合并候选构造之后,修剪流程可以被执行。对于仿射合并候选,如果所有控制点等同于已在该列表中的仿射合并候选之一的控制点,则该仿射合并候选可以被移除。

在itu-vcegc1016中,affine_flag被有条件地发信以用于以合并模式编解码的pu。当相邻块之一以仿射模式进行编解码时,affine_flag被发信。否则其被跳过。该有条件的发信增加了解析复杂度。此外,仅相邻仿射参数之一可以用于当前块。因此,在本发明中公开了仿射合并模式的另一种方法,其中多于一个相邻仿射参数可以用于合并模式。另外,在一个实施例中,合并模式中的affine_flag的发信不是有条件的。相反,仿射参数被合并到合并候选中。

仿射合并或者帧间模式的解码器侧mv推导

ituvceg-az07(chen,etal.,“furtherimprovementstohmkta-1.0”,itustudygroup16question6,videocodingexpertsgroup(vceg),52ndmeeting:19–26june2015,warsaw,poland,document:vceg-az07)中,公开了解码器侧mv推导方法。在本发明中,解码器侧mv推导用于生成仿射合并模式的控制点。在一个实施例中,dmvd_affine_flag被发信。如果dmvd_affine_flag为真,则解码器侧mv推导被应用以查找左顶端子块、右顶端子块和左底端子块的mv,其中这些子块的尺寸为nxn,且n等于4或8。图12示出了用于在解码器侧推导出用于6参数仿射模型的mv的三个子块(即a、b和c)的示例。同样,左顶端子块和右顶端子块(例如,图12中的a和b)可以用于在解码器侧推导出4参数仿射模型。解码器侧推导的mvp集可以用于仿射帧间模式或仿射合并模式。对于仿射帧间模式,解码器推导出的mvp集可以是mvp之一。对于仿射合并模式,推导的mvp集可以是仿射合并候选的三个(或两个)控制点。对于解码器侧mv推导的方法,模板匹配或双边匹配可以被使用。对于模板匹配,相邻重构像素可以用作模板,以在目标参考帧中查找最佳匹配模板。例如,像素区域a’可以是块a的模板,b’可以是块b的模板,c’可以是块c的模板。

图13是根据本发明实施例的具有仿射帧间模式的视频编解码系统的示例性流程图,其中该系统仅使用位于两个控制点处的两个运动矢量以选择mvp对。在步骤1310中,在视频编码器侧处,接收与当前块相关的输入数据,或者在视频解码器侧处,接收对应于包括当前块的已压缩数据的比特流。当前块包括来自于视频数据的像素集。本领域所已知的是,对应于像素数据的输入数据被提供给编码器以用于后续的编码流程。在解码器侧处,视频比特流被提供给视频解码器以用于解码。在步骤1320中,基于用于表示与当前块相关的仿射运动模型的第一控制点的第一相邻块集和第二控制点的第二相邻块集,确定当前块的mvp对。每个mvp对包括自第一相邻块集确定的第一mv和自第二相邻块集确定的第二mv。在步骤1330中,仅使用每个mvp对中的第一mv和第二mv,评估每个mvp对的失真值。如前面所述,根据已有方法,失真值是基于位于三个控制点处的三个运动矢量而计算的。因此,本发明简化该流程。随后,在步骤1340中,根据失真值,选择最终mvp对。例如,最终mvp对可以对应于具有最小失真值的mvp对。在步骤1350中,生成包括最终mvp对作为mvp候选的mvp候选列表。在步骤1360中,若仿射帧间模式用于当前块,且最终mvp对被选择,则使用最终mvp对作为预测子,在视频编码器侧处编码或者在视频解码器侧处解码与仿射运动模型相关的当前mv对。

图14示出了根据本发明实施例的具有仿射帧间模式的视频编解码系统的示例性流程图,其中该系统使用位于三个控制点处的三个运动矢量以推导出使用6参数仿射模型编解码的块的mvp集。在步骤1410中,在视频编码器侧处,接收与当前块相关的输入数据,或者在视频解码器侧处,接收对应于包括当前块的已压缩数据的比特流。当前块包括来自于视频数据的像素集。在步骤1420中,基于用于表示与当前块相关的6参数仿射运动模型的第一控制点的第一相邻块集、第二控制点的第二相邻块集和第三控制点的第三相邻块集,确定当前块的mvp集。每个mvp集包括自第一相邻块集确定的第一mv、自第二相邻块集确定的第二mv和自第三相邻块集确定的第三mv。在步骤1430中,使用每个mvp集中的第一mv、第二mv和第三mv,评估每个mvp集的失真值。在步骤1440中,根据失真值,选择最终mvp集,以及在步骤1450中,生成包括最终mvp集作为mvp候选的mvp候选列表。在步骤1460中,若仿射帧间模式用于当前块,且最终mvp集被选择,则在视频编码器侧处,通过发信当前mv集与最终mvp集之间的mv差,编码与6参数仿射运动模型相关的当前mv集,或者在视频解码器侧处,使用最终mvp集和当前mv集与最终mvp集之间的mv差,解码与6参数仿射运动模型相关的当前mv集。

图15示出了根据本发明实施例的具有仿射帧间模式的视频编解码系统的示例性流程图,其中该系统生成包括mvp集的高级运动矢量预测子候选列表,mvp集包括一个或多个解码器侧推导mv。在步骤1510中,在视频编码器侧处,接收与当前块相关的输入数据,或者在视频解码器侧处,接收对应于包括当前块的已压缩数据的比特流。在步骤1520中,推导出一个或多个解码器侧推导mv以用于与当前块的仿射运动模型相关的至少一个控制点。解码器侧推导的mv是使用模板匹配或双边匹配或者使用与相邻块相关的运动矢量的函数而推导出的。与相邻块相关的运动矢量的函数不包括仅基于空间相邻块和时间相邻块中的至少一个的相应mv的可用性、优先级中的至少一个,自空间相邻块和时间相邻块中的至少一个选择一个推导mv。在步骤1530中,生成包括仿射mvp候选的mvp候选列表,其中仿射mvp候选包括一个或多个解码器侧推导mv。在步骤1540中,若仿射帧间模式用于当前块,且仿射mvp候选被选择,则在视频编码器侧处,通过发信当前mv集与仿射mvp候选之间的至少一个mv差,编码与仿射运动模型相关的当前mv集,或者在视频解码器侧处,使用仿射mvp候选和当前mv集与仿射mvp候选之间的至少一个mv差,解码与仿射运动模型相关的当前mv集。

本发明所示的流程图用于示出根据本发明的视频的示例。在不脱离本发明的精神的情况,本领域的技术人员可以修改每个步骤、重组这些步骤、将一个步骤进行分离或者组合这些步骤而实施本发明。在本发明中,特定语法及语义已被使用以示出实施本发明的实施例的示例。本领域的技术人员可以通过用等效的语法及语义替代这些语法及语义来实施本发明,而不脱离本发明的精神。

上述说明被呈现,以使得本领域的普通技术人员能够在特定应用程序的上下文及其需求中实施本发明。对本领域技术人员来说,所描述的实施例的各种变形将是显而易见的,并且本文定义的一般原则可以应用于其他实施例中。因此,本发明不限于所示和描述的特定实施例,而是将被赋予与本文所公开的原理和新颖特征相一致的最大范围。在上述详细说明中,说明了各种具体细节,以便透彻理解本发明。尽管如此,将被本领域的技术人员理解的是,本发明能够被实践。

如上所述的本发明的实施例可以在各种硬件、软件代码或两者的结合中实现。例如,本发明的实施例可以是集成在视频压缩芯片内的电路,或者是集成到视频压缩软件中的程序代码,以执行本文所述的处理。本发明的一个实施例也可以是在数字信号处理器(digitalsignalprocessor,dsp)上执行的程序代码,以执行本文所描述的处理。本发明还可以包括由计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(fieldprogrammablegatearray,fpga)所执行的若干函数。根据本发明,通过执行定义了本发明所实施的特定方法的机器可读软件代码或者固件代码,这些处理器可以被配置为执行特定任务。软件代码或固件代码可以由不同的编程语言和不同的格式或样式开发。软件代码也可以编译为不同的目标平台。然而,执行本发明的任务的不同的代码格式、软件代码的样式和语言以及其他形式的配置代码,不会背离本发明的精神和范围。

本发明以不脱离其精神或本质特征的其他具体形式来实施。所描述的例子在所有方面仅是说明性的,而非限制性的。因此,本发明的范围由附加的权利要求来表示,而不是前述的描述来表示。权利要求的含义以及相同范围内的所有变化都应纳入其范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1