利用仿射运动补偿的视频编码方法与装置与流程

文档序号:15577086发布日期:2018-09-29 05:43阅读:235来源:国知局

本发明主张在2016年3月1日提出的申请号为pct/cn2016/075024、标题为“methodsforaffinemotioncompensation”的专利申请的优先权。因此在全文中合并参考该专利申请案的申请标的。

本发明是有关于具有仿射运动补偿的图像和视频编码,特别是有关于对包括仿射模式的各种编码模式的视频编码系统提高编码效率或降低复杂度的技术。



背景技术:

在大多数编码标准中,以块为基础应用自适应编码和帧间/帧内预测。例如,高效率视频编码(hevc)系统中用于视频编码的基本块单元称为编码单元(cu)。编码单元可以以最大编码单元(lcu)开始,也称为编码树单元(ctu)。一旦每个最大编码单元被递归地划分为叶编码单元,则根据预测类型和预测单元(pu)分区模式,每个叶编码单元进一步分为一个或多个预测单元。预测单元中的像素共享相同的预测参数。

对于由帧间预测模式处理的当前块,可以使用块匹配来定位参考图片中的参考块。将两个块的位置之间的位移确定为当前块的运动向量(mv)。hevc支持两种不同类型的帧间预测模式,一种是高级运动向量预测(advancedmotionvectorprediction,amvp)模式,另一种是合并模式。当前块的运动向量由对应于与当前块的空间和时间相邻相关联的运动向量的运动向量预估器(motionvectorpredictor,mvp)预测。对mv和mvp之间的运动向量差值(motionvectordifference,mvd)以及mvp的索引进行编码和发送,以用于amvp模式中编码的当前块。在b片中,使用语法元素inter_pred_idc来指示帧间预测方向。如果当前块在单向(uni-directional)预测中被编码,则使用一个mv来定位当前块的预估器,而如果当前块在双向(bi-directional)预测中被编码,则使用两个mv来定位预估器,因此两个mvd和两个mvp索引被发送以用于双向预测编码的块。在多个参考图像的情况下,语法元素ref_idx_10被发送,以指示使用列表0中的哪个参考图像,并且语法元素ref_idx_l1被发送以指示使用列表1中的哪个参考图像。在合并模式中,包含mv,参考图像索引和帧间预测方向的当前块的运动信息从合并候选列表中选择的最终合并候选的运动信息中继承。合并候选列表由当前块的空间和时间相邻块的运动信息构成,并且合并索引被发送以指示最终合并候选。

hevc中基于块的运动补偿假设预测单元内的所有像素透过共享相同的运动向量而遵循相同的平移运动模型;然而,平移运动模型不能捕捉移动物体的旋转,缩放和变形等复杂运动。在文献中引入的仿射变换模型提供了更精确的运动补偿预测,因为仿射变换模型能够描述二维块旋转以及二维变形以将矩形变换为平行四边形。该模型可以描述如下:

x’=a*x+b*y+e,以及

y’=c*x+d*y+f。(1)

其中a(x,y)是所考虑的位置(x,y)处的原始像素,并且a'(x',y')是对于原始像素a(x,y)的参考图像中的位置(x',y')处的对应像素。在仿射变换模型中使用总共六个参数a,b,c,d,e,f,以及该仿射变换模型描述了六参数仿射预测中原始位置与参考位置之间的映像。对于每个原始像素a(x,y),该原始像素a(x,y)与其对应的参考像素a'(x'y')之间的运动向量(vx,vy)被导出为:

vx=(1-a)*x-b*y-e,

vy=(1-c)*x-d*y-f。(2)

块中每个像素的运动向量(vx,vy)是位置相关的,并且可以根据其位置(x,y)由等式(2)中存在的仿射运动模型导出。

图1a标出了根据仿射运动模型的运动补偿的示例,其中当前块102被映像到参考图片中的参考块104。当前块102的三个角像素110,112和114与参考块104的三个角像素之间的对应关系可以由图1a所示的三个箭头来确定。可以基于三个角像素的三个已知运动向量mv0,mv1,mv2导出用于仿射运动模型的六个参数。三个角像素110,112和114也被称为当前块102的控制点。用于仿射运动模型的参数推导在本领域是已知的,并且这里省略细节。

在文献中已经公开了仿射运动补偿的各种实施方式。例如,基于子块的仿射运动模型被应用于为每个子块而不是每个像素导出mv,以降低仿射运动补偿的复杂度。在李等人揭示的技术文件中(“anaffinemotioncompensationframeworkforhighefficiencyvideocoding”,2015ieeeinternationalsymposiumoncircuitsandsystems(iscas),2015年5月,页数:525-528),当当前块以合并模式或amvp模式编码时,针对每个2nx2n块分区发出仿射标志以指示仿射运动补偿的使用。如果该标志为真,则当前块的运动向量的推导遵循仿射运动模型,否则当前块的运动向量的推导遵循传统的平移运动模型。当使用仿射帧间模式(也称为仿射amvp模式或amvp仿射模式)时,三个角像素的三个运动向量被发送。在每个控制点位置,透过发送控制点的运动向量差值,运动向量被进行预测编码。在另一示例性实现中,当当前块在合并模式下被编码时,仿射标志根据合并候选条件地被发送。仿射标志指示当前块是否以仿射合并模式进行编码。当至少有一个合并候选被进行仿射编码时,仿射标志才会被发送,如果仿射标志为真,则选择第一可用仿射编码的合并候选。

四参数仿射预测是六参数仿射预测的替代,其具有两个控制点而不是三个控制点。图1b中示出了四参数仿射预测的示例。两个控制点130和132位于当前块122的左上角和右上角,并且运动向量mv0和mv1将当前块122映像到参考图片中的参考块124。



技术实现要素:

本发明揭示了一种用于在视频编码系统中用仿射运动补偿进行视频编码和解码的方法和装置。根据本发明的视频编码器或解码器的实施例,接收与当前图像中的当前块相关联的输入数据,并且如果当前块以仿射合并模式被编码或者将被编码,则导出当前块的第一仿射候选。在视频编码器侧,与当前块相关联的输入数据包括一组像素,或者在解码器侧,与当前块相关联的输入数据是对应于包括当前块的已压缩数据的视频比特。第一仿射候选包括三个仿射运动向量mv0,mv1和mv2,用于预测当前块的控制点处的运动向量。mv0从当前块的第一相邻已编码块的运动向量导出,mv1从当前块的第二相邻已编码块的运动向量导出,mv2从当前块的第三相邻已编码块的运动向量导出。如果选择第一仿射候选来编码或解码当前块,则根据第一仿射候选的仿射运动向量mv0,mv1和mv2,导出仿射运动模型。根据仿射运动模型透过定位用于当前块的参考图像中参考块来对当前块进行编码或解码。

在一个实施例中,三个相邻已编码块是与当前块相邻的左上角子块,当前块上方的上右子块和当前块旁边的左下子块块。在另一个实施例中,仿射运动向量mv0,mv1和mv2中的每一个是从相邻已编码块的预定的运动向量组中选择的第一可用运动向量。例如,mv0是与当前块相邻的左上角子块处,当前块上方的上左子块处和当前块旁边的左上子块处的运动向量的第一可用运动向量。mv1是当前块上方的上右子块处和与当前块相邻的右上角子块处的运动向量的第一可用运动向量。mv2是当前块旁边的左下子块处和与当前块相邻的左下角子块处的运动向量的第一可用运动向量。

在一些实施例中,在仿射合并模式中使用多个仿射候选。例如,包括三个仿射运动向量的第二仿射候选也被导出,并将其插入到合并候选列表中,并且如果第二仿射候选被选择来编码或解码当前块,则根据仿射第二仿射候选的运动向量导出仿射运动模型。第二仿射候选中的至少一个仿射运动向量与第一仿射候选中的对应仿射运动向量不同。

如果三个仿射运动向量mv0,mv1和mv2的帧间预测方向或参考图像不全部相同,则视频编码器或解码器的实施例表示第一仿射候选不存在或不可用。视频编码器或解码器可以导出新的仿射候选来替换第一仿射候选。如果所有三个仿射运动向量mv0,mv1和mv2仅在第一参考列表中可用,则当前块的帧间预测方向被设置为单向预测并且仅使用第一参考列表。第一参考列表从列表0和列表1中选择。如果三个仿射运动向量的参考图片不完全相同,则实施例将第一仿射候选中的仿射运动向量mv0,mv1和mv2缩放到指定的参考图片;或者如果两个仿射运动向量对应于相同的参考图像,则该方法对第一仿射候选中的剩余仿射运动向量进行缩放,以设置三个仿射运动向量的所有参考图像相同。

本发明的实施例一方面进一步提供视频编码器或解码器接收与当前图像中的当前块相关联的输入数据,并且如果当前块以仿射帧间模式被编码或者将被编码,则导出当前块的仿射候选。仿射候选包括用于在当前块的控制点处预测运动向量的多个仿射运动向量,并且从一个或多个相邻已编码块导出仿射运动向量。如果选择仿射候选者对当前块进行编码或解码,则编码器或解码器根据仿射候选的仿射运动向量导出仿射运动模型,并根据仿射运动模型透过定位当前参考图像中的参考块来对当前块进行编码或解码。当前参考图像由参考图像索引指示,并且如果当前块以仿射帧间模式被编码或者将被编码,则透过禁用双向预测,当前块被限制为在单向预测中被编码。仿射运动模型基于三个控制点计算运动,或者可以使用仅基于两个控制点计算运动的简化仿射运动模型。在一个实施例中,候选列表中只有一个仿射候选者,所以在不发送运动向量预估器(mvp)索引的情况下选择仿射候选。

在一些实施例中,如果一个或多个仿射运动向量的参考图像不同于当前参考图像的仿射运动向量,则仿射候选中的一个或多个仿射运动向量被缩放到由参考图像索引指向的当前参考图像。如果当前块的参考列表0和参考列表1不相同,则用帧间预测方向标志被发送以指示所选择的参考列表,并且如果当前块的参考列表0和参考列表1不相同,则帧间预测方向标志块不被发送。

本发明的实施例一方面进一步提供了一种非暂时计算器可读介质,其存储用于使装置的处理电路执行仿射运动补偿的视频编码方法的程序指令。视频编码方法包括根据包含从当前块的多个相邻已编码块导出的仿射运动向量的仿射候选对当前块进行编码或解码。视频编码方法包括:禁止双向预测以用于以仿射帧间模式编码或将被编码的块。透过对具体实施例的以下描述,本发明的其他方面和特征对于本领域技术人员将变得清楚。

附图说明

将参考以下图式详细描述作为示例提出的本公开的各种实施例,其中相同的图式标记表示相同的元件,并且其中:

图1a示出了根据三个控制点将当前块映射到参考块的六参数仿射预测。

图1b示出了根据两个控制点将当前块映射到参考块的四参数仿射预测。

图2标出了基于相邻已编码块导出一个或多个仿射候选的示例。

图3是示出仿射合并预测方法的实施例的流程图。

图4示出了根据本发明实施例的用于具有仿射预测的视频编码器的示例性系统框图。

图5示出了根据本发明实施例的用于具有仿射预测的视频解码器的示例性系统框图。

图6是示出仿射帧间预测方法的实施例的流程图。

具体实施方式

将容易理解的是,本发明的元件,如本文图中一般描述和示出的,可以以各种各样的不同配置进行布置和设计。因此,如附图所示的本发明的系统和方法的实施例的以下更详细的描述并不旨在限制如所要求保护的本发明的范围,而是仅代表本发明的选定实施例。

整个说明书中对“实施例”,“一些实施例”或类似语言的引用意味着结合实施例描述的特定特征,结构或特性可以包括在本发明的至少一个实施例中。因此,贯穿本说明书的各个地方的短语“在一个实施例中”或“在一些实施例中”的出现不一定全部指代相同的实施例,这些实施例可以单独地或结合一个或多个其他实施例来实现。

此外,所描述的特征,结构或特性可以以任何合适的方式组合在一个或多个实施例中。然而,本领域技术人员将认识到,可以在没有一个或多个具体细节,或其他方法,元件等的情况下实现本发明。在其他情况下,已知的结构或操作,未示出或详细描述以避免模糊本发明。在下面的讨论和申请专利的范围中,术语“包括”和“包含”以开放式方式使用,因此应被解释为“包括但不限于...”。

为了提高编码效率或降低与仿射运动预测的视频编码系统相关的系统复杂度,公开了在仿射合并模式或仿射帧间模式利用仿射运动补偿的各种方法和改进。

仿射运动导出

本发明的实施例示出了用于基于子块或基于像素的仿射运动补偿的改进的仿射运动导出。第一示例性仿射运动导出方法是用于具有三个控制点的基于子块的六参数仿射运动预测,这三个控制点一个在左上角,一个在右上角,一个在左下角。给出三个仿射运动向量mv0,mv1和mv2,表示当前块的三个控制点处的运动向量,表示为:mv0=(mvx0,mvy0),mv1=(mvx1,mvy1)和mv2=(mvx2,mvy2)。

当前块具有等于blkwidth的宽度和等于blkheight的高度,并且被划分为子块,其中每个子块具有等于subwidth的宽度和等于subheight的高度。当前块的一行中的子块m的数量为m=blkwidth/subwidth,当前块的一列中的子块n的数量为n=blkheight/subheight。第i个子块列和第j个子块行的子块mv(i,j)的运动向量为(mvx(i,j),mvy(i,j)),其中i=0,...,n-1,并且j=0,...,m-1,运动向量被导出为:

mvx(i,j)=mvx0+(i+1)*deltamvxver+(j+1)*deltamvxhor,以及

mvy(i,j)=mvy0+(i+1)*deltamvyver+(j+1)*deltamvyhor。(3)

其中,deltamvxhor,deltamvyhor,deltamvxver,deltamvyver透过如下公式计算:

deltamvxhor=(mvx1-mvx0)/m,

deltamvyhor=(mvy1-mvy0)/m,

deltamvxver=(mvx2-mvx0)/n,以及

deltamvyver=(mvy2-mvy0)/n。(4)

在另一个实施例中,第i个子块列和第j个子块行的子块mv(i,j)的运动向量为(mvx(i,j),mvy(i,j)),其中i=0,...,n-1和j=0,...,m-1,运动向量被导出为:

mvx(i,j)=mvx0+i*deltamvxver+j*deltamvxhor,以及

mvy(i,j)=mvy0+i*deltamvyver+j*deltamvyhor.(5)

为了将第一示例性仿射运动导出方法应用于基于像素的仿射预测,可以修改等式(4)中的m和n的定义以表示当前块的一行中的像素数目和当前块的一列中的像素数目,在这种情况下,m=blkwidth以及n=blkheight。位置(i,j)处的每个像素的运动向量mv(i,j)是(mvx(i,j),mvy(i,j)),并且每个像素处的运动向量也可以透过等式(3)或等式(5)得到。

对于以仿射帧间模式或仿射合并模式编码或要编码的当前块,选择最终候选来预测当前块的运动。最终候选者包括用于当前块的三个控制点的预测运动的三个仿射运动向量mv0,mv1和mv2。使用在本发明的实施例中描述的仿射运动推导方法来计算当前块或每个子块处的每个像素的运动向量。根据当前块的运动向量定位参考图像中的参考块,并且使用参考块对当前块进行编码或解码。

仿射合并候选推导

图2标出了基于相邻已编码块导出仿射候选的示例。常规的仿射合并候选导出方法以预定的顺序检查相邻的编码块a0(称为左上角块),b0(称为右上方块),b1(称为右上角块),c0(称为左下块)和c1(称为左下角块),并且当当前块20是合并已编码块时,确定相邻已编码块中的任何一个是否以仿射帧间模式或仿射合并模式进行编码。仅当相邻已编码块中的任何一个以仿射帧间模式或仿射合并模式进行编码时,仿射标志被发送以指示当前块20是否是仿射模式。当以仿射合并模式对当前块20进行编码或解码时,从相邻已编码块中选择第一可用仿射已编码块。如图2所示,仿射已编码块的选择顺序为从左下方块,右上方块,右上角块,左下角块至左上角块(c0→b0→b1→c1→a0)。第一可用仿射已编码块的仿射运动向量用于导出当前块20的运动向量。

在根据本发明的仿射合并候选导出方法的一些实施例中,从当前块20的多个相邻编码块导出单个仿射合并候选的仿射运动向量mv0,mv1和mv2,例如mv0从左上方的相邻子块(图2中的子块a0,a1或a2)导出,mv1从右上方的相邻子块(子块b0或b1)导出,并且mv2从左下方的相邻子块(子块c0或c1)导出。仿射运动向量是预测当前块20的三个控制点处的运动向量的运动向量预估器(mvp)的集合。子块不是必须是单独的已编码的块(即,hevc中的预测单元),它可以是编码块的一部分。例如,子块是与当前块相邻的仿射已编码块的一部分,或者子块是amvp已编码块。在一个实施例中,如图2所示,mv0从左上角子块(a0)导出,mv1从上右子块(b0)导出,mv2从左下子块(c0)导出。在另一个实施例中,仿射运动向量mv0是子块a0,a1或a2处的第一可用运动向量,仿射运动向量mv1是子块b0或b1处的第一可用运动向量,仿射运动向量mv2是在子块c0或c1处的第一可用运动向量。衍生的仿射合并候选被插入到合并候选列表中,并且从合并候选列表中选择最终合并候选,以对当前块进行编码或解码。

仿射合并候选派生方法的另一实施例构建多个仿射合并候选,并将仿射合并候选插入合并候选列表。例如,第一仿射合并候选包括仿射运动向量mv0,mv1和mv2,其中mv0是图2中子块a0处的运动向量。mv1是子块b0处的运动向量,mv2是子块c0处的运动向量。第二仿射合并候选包括仿射运动向量mv0,mv1和mv2,其中mv0是子块a0处的运动向量,mv1是子块b0处的运动向量,mv2是子块c1处的运动向量。本示例中的第一个和第二个仿射合并候选在mv2中不同。第三仿射合并候选包括仿射运动向量mv0,mv1和mv2,其中mv0是子块a0处的运动向量,mv1是子块b1处的运动向量,mv2是子块c0处的运动向量。本例中的第一和第三个仿射合并候选在mv1中不同。第四仿射合并候选包括仿射运动向量mv0,mv1和mv2,其中mv0是子块a0处的运动向量,mv1是子块b1处的运动向量,mv2是子块c1处的运动向量。本例中的第一和第四仿射合并候选在mv1和mv2中不同。前一示例中的第一仿射运动向量mv0可以由上左子块(a1)或左上子块(a2)的运动向量代替。在一个实施例中,如果运动向量在左上角子块(a0)处无效或不可用,则从子块a1或子块a2导出第一运动向量mv0。对于构建当前块的两个仿射合并候选的示例,可以从前面示例中的第一,第二,第三和第四仿射合并候选中的任意两个中选择两个仿射合并候选。在一个实施例中,两个仿射合并候选的构造可以是先前示例中从第一,第二,第三和第四仿射合并候选获得的前两个候选。当前块透过增加合并候选列表中的仿射合并候选的数量,可以更大概率地透过仿射合并模式进行编码,这有效地提高了使用仿射运动补偿的视频编码系统的编码效率。

存在改进仿射合并候选导出方法的各种修改。修改是检查仿射合并候选中的三个仿射运动向量的帧间预测方向是否相同,如果帧间预测方向不完全相同,则该仿射合并候选被表示为不存在或不可用。在一个实施例中,导出新的仿射合并候选来代替该仿射合并候选。另一个修改是检查参考列表0和参考列表1的可用性,并相应地设置当前块的帧间预测方向。例如,如果所有三个仿射运动向量mv0,mv1和mv2仅在参考列表0中可用,则当前块被编码或被将编码在单向预测中并且仅使用参考列表0。如果所有三个仿射运动向量mv0,mv1和mv2仅在参考列表1中可用,则当前块被编码或被将编码在单向预测中并且仅使用参考列表1。第三修改检查仿射运动向量mv0,mv1和mv2的参考图像是否不同,如果参考图像不完全相同,则一个实施例是将仿射合并候选表示为不存在或不可用,另一个实施例是将所有仿射运动向量缩放到指定的参考图像,例如具有参考索引为0的参考图像。如果在仿射运动向量的三个参考图像中,两个参考图像是相同的,具有不同参考图像的仿射运动向量可以是缩放到相同的参考图像。

图3示出了具有包含本发明的实施例的仿射合并模式的视频编码系统的示例性流程图,其中系统从三个不同的相邻已编码块导出仿射合并候选。在步骤300中,在视频编码器侧接收与当前块相关的输入数据,或者在视频解码器侧接收与包括当前块的压缩数据相对应的视频比特流。步骤302检查当前块是否被编码或者将被编码为仿射合并模式,如果否,则在步骤312中根据另一模式对当前块进行编码或解码。例如,在步骤304中,从三个相邻已编码块导出第一仿射合并候选(mv0,mv1,mv2),从与当前块相邻的左上角子块处的运动向量导出第一仿射运动向量mv0,从当前块的上方的上右子块的运动向量导出第二仿射运动向量mv1,以及从当前块的左侧的左下子块的运动向量导出第三仿射运动向量mv2。在步骤306中从合并候选列表中选择最终仿射合并候选,并且在步骤308中根据最终仿射合并候选来导出仿射运动模型。在步骤310中,然后透过根据仿射运动模型定位参考块,来对当前块进行编码或解码。

图4示出了根据本发明的实施例的基于具有仿射运动补偿的高效率视频编码(hevc)的视频编码器400的示例性系统框图。帧内预测410基于当前图像的重建视频数据提供帧内预测值,而仿射预测412基于来自其他图像的视频数据执行运动估计(motionestimation,me)和运动补偿(motioncompensation,mc),以提供预估器。由仿射预测412处理的当前图像中的每个块透过仿射帧间预测4122选择以仿射帧间模式编码,或者透过仿射合并预测4124以仿射合并模式进行编码。对于以仿射帧间模式或仿射合并模式编码的块,选择最终仿射候选以使用由最终仿射候选导出的仿射运动模型来定位参考块,并且使用该参考块来预测该块。仿射合并预测4124根据多个相邻已编码块的运动向量构建一个或多个仿射合并候选,并将一个或多个仿射合并候选插入合并候选列表。仿射合并模式允许在相邻编码块的控制点处继承仿射运动向量;因此运动信息仅由合并索引发出信号。用于选择最终仿射候选的合并索引然后在已编码的视频比特流中被发送。对于以仿射帧间模式编码的块,运动信息,诸如最终仿射候选中的仿射运动向量和块的控制点处的运动向量之间的运动向量差值,在已编码的视频比特流中被编码。开关414从帧内预测410和仿射预测412中选择一个输出,并将所选择的预估器提供给加法器416,以形成也称为预测残差信号的预测误差。

预测残差信号进一步透过变换(transformation,t)418和跟随的量化(quantization,q)420进行处理。然后,经熵编码器434对已变换和量化的残差信号进行编码以形成已编码的视频比特流。然后,已编码的视频比特流与诸如运动信息的边信息(sideinformation)一起封装。与边信息相关联的数据也被提供给熵编码器434。当使用运动补偿预测模式时,也必须在编码器端重建参考图像。透过逆量化(iq)422和逆变换(it)424来处理已变换和已量化的残差信号,以恢复参考图像的预测残差信号。如图4所示,透过在重建(rec)426处加到所选择的预估器来恢复预测残差信号,以产生重建的视频数据。已重建的视频数据可以存储在参考图像缓冲器(ref.pict.缓冲器)432中,并用于预测其它图像。由于编码处理,来自重建426的重建的视频数据可能受到各种损害,因此,在存储于参考图像缓冲器432之前,环路内处理去块滤波器(df)428和采样自适应偏移(sao)430应用于重建的视频数据,以进一步提高图像质量。来自去块滤波器428的去块滤波器信息和来自采样自适应偏移430的采样自适应偏移信息也被提供给熵编码器434,以合并到已编码的视频比特流中。

用于图4的视频编码器400的相应视频解码器500如图5所示。已编码的视频比特流是视频解码器500的输入,并由熵解码器510解碼以恢复已变换和量化的残差信号df和sao信息以及其他系统信息。视频解码器500的解码过程类似于视频编码器400处的重建循环,除了视频解码器500在仿射预测514中仅需要运动补偿预测。仿射预测514包括仿射帧间预测5142和仿射合并预测5144。以仿射帧间模式编码的块透过仿射帧间预测5142解码,并以仿射合并模式编码的块透过仿射合并预测5144解码。选择最终仿射候选以用于以仿射帧间模式或仿射合并模式编码的块,并且根据最终仿射候选参考块被定位。开关516根据解码模式信息从帧内预测512选择帧内预估器或从仿射预测514中选择内部预估器。透过逆量化(inversequantization,iq)520和逆变换(inversetransformation,it)522来恢复经变换和量化的残差信号。已恢复的经变换和量化的残差信号透过在重建518中加回预估器来重建以产生已重建的视频。已重建的视频由去块滤波器524和采样自适应偏移526进一步处理以产生最终已解码的视频。如果当前解码的图像是参考图像,则当前解码图像的重建视频也存储在参考图像缓冲器528中。

图4、5中的视频编码器400和视频解码器500的各种元件可以由硬件元件实现,一个或多个处理器被配置为执行存储在存储器中或硬件和处理器的组合中的程序指令。例如,处理器执行程序指令以控制与当前块相关联的输入数据的接收。处理器配备有单个或多个处理核心。在一些示例中,处理器执行程序指令以在编码器400和解码器500中的一些元件中执行功能,并且与处理器电耦合的存储器用于存储程序指令,对应于仿射模式的信息,块的已重建图像、和/或在编码或解码过程中的中间数据。在一些实施例中的存储器包括非暂时性(non-transitory)计算器可读介质,诸如半导体或固态存储器,随机存取存储器(ram),只读存储器(rom),硬盘,光盘或其他合适的存储介质。存储器还可以是上面列出的两个或多个非暂时性计算器可读介质的组合。如图4和5所示,编码器400和解码器500可以在相同的电子设备中实现,因此如果在相同的电子设备中实现,则编码器400和解码器500的各种功能元件可以被共享或重新使用。例如,图4中的重建426,变换418,量化420,去块滤波器428,采样自适应偏移430和参考图像缓冲器432中的一个或多个,还可以分别用作图5中的重建518,变换522,量化520,去块滤波器524,采样自适应偏移526和参考图像缓冲器528。在一些示例中,图4中的帧内预测410和仿射预测412的一部分,可以共享或重用图5中的帧内预测512和仿射预测514的一部分。

仿射帧间预测

如果当前块以仿射帧间模式编码,则使用相邻的有效已编码块构建候选列表。如图2所示,仿射候选者包括三个仿射运动向量mv0,mv1和mv2。当前块20的左上角控制点处的仿射运动向量mv0从相邻子块a0(称为左上角子块)a1(被称为上左子块)和a2(称为左上子块)的运动向量中的一个来得到。来自当前块30的右上方控制点的仿射运动向量mv1从相邻子块b0(称为上右子块)和b1(称为右上角子块)的运动向量中的一个来得到。当前块20的左下控制点处的仿射运动向量mv2从相邻子块c0(称为左下子块)和c1(称为左下角子块)的运动向量中的一个导出。例如,从相邻子块a0的运动向量导出mv0,从相邻子块b0的运动向量导出mv1,从相邻子块c0的运动向量导出mv2。在另一示例中,mv0是相邻子块a0,a1和a2处的第一可用运动向量,mv1是在相邻子块b0和b1处的第一可用运动向量,mv2是相邻子块c0和c1处的第一可用运动向量。

在仿射帧间预测的一些实施例中,在候选列表中只有一个候选,因此当选择仿射帧间模式来编码或解码当前块时,仿射候选总是被选择,而不用发送运动向量预估器(mvp)索引。当前块中的运动透过仿射运动模型根据仿射候选中的仿射运动向量导出,并且参考块由当前块的运动向量定位。如果用于导出仿射运动向量的相邻已编码块的参考图像与当前块的当前参考图像不相同,则透过对相邻已编码块的相应运动向量进行缩放来导出仿射运动向量。

根据仿射帧间预测的一些实施例,仿射帧间模式编码的块仅允许单向预测以降低系统复杂度。换句话说,当当前块以仿射帧间模式编码或将被编码时,双向预测被禁止。当当前块以仿射合并模式,合并模式,amvp模式或其任何组合编码时,可以启用双向预测。在一个实施例中,当当前块的参考列表0和参考列表1相同时,使用参考列表0而不发送帧间预测索引inter_pred_idc;当当前块的参考列表0和参考列表1不同时,帧间预测索引inter_pred_idc被发送以指示当前块使用哪个列表。

图6示出了包含本发明实施例的仿射帧间预测的视频编码系统的示例性流程图,其中根据是否选择了仿射帧间模式来禁用双向预测。在步骤600中,在视频编码器侧接收与当前块相关的输入数据,或者在视频解码器侧接收与包括当前块的已压缩数据相对应的视频比特流。步骤602检查是否使用仿射帧间模式进行编码或解码当前块。如果选择仿射帧间模式来编码当前块,则在步骤604中视频编码系统透过禁用双向预测来将当前块限制为以单向预测进行编码或解码;否则在步骤610中视频编码系统使能用于对当前块进行编码或解码的双向预测。如果当前块在仿射帧间模式下编码或解码,则导出仿射候选,并且在步骤606中仿射运动模型根据仿射候选而被导出。仿射候选从当前块的一个或多个相邻编码块导出,并且如果任何相邻已编码块是双向预测的,则一个列表中仅使用一个运动向量来导出对应的仿射运动向量。在一个实施例中的仿射候选包括两个仿射运动向量,而另一实施例中的仿射候选包括三个仿射运动向量。在步骤608中,透过根据在步骤606中导出的仿射运动模型定位参考块来对当前块进行编码或解码。

仿射帧间预测方法的各种实施例可以在图4中的视频编码器400或图5中的视频解码器500中实现。编码器400和解码器500可以透过共享具有仿射预测412或514的元件的至少一部分或具有与帧内预测410或512和仿射预测412或514并行的附加的元件,来进一步包括帧间预测。例如,当统一合并候选列表用于仿射合并模式和常规合并模式时,仿射合并预测4124使用帧间合并预测共享程序集;类似地,当统一的帧间候选列表用于仿射帧间模式和常规amvp模式时,仿射帧间预测4122共享具有帧间合并预测的元件。在该示例中,单个合并索引或mvp索引可以被发送来指示仿射模式或常规帧间模式的使用。

可以使用简化的仿射运动模型来实现上述仿射运动导出方法,仿射合并预测方法或仿射帧间预测方法,例如,使用两个控制点而不是三个控制点。示例性的简化仿射运动模型仍然使用相似的仿射运动模型的数学方程,但是透过仿射运动向量mv0和mv1导出左下控制点的仿射运动向量mv2。或者,可以透过仿射运动向量mv0和mv2导出用于右上角控制点的仿射运动向量mv1,或者可以透过仿射运动向量mv1和mv2导出用于左上控制点的仿射运动向量mv0。

可以在集成到执行上述处理的视频压缩芯片的电路中或视频压缩软件的程序代码中实作仿射运动导出方法,仿射合并预测方法或仿射帧间预测方法的实施例。例如,可以在计算器处理器,数字信号处理器(dsp),微处理器或现场可编程门数组(dsp)上执行的程序代码中实现仿射运动导出方法,仿射合并预测方法或仿射帧间预测方法fpga)。可以透过执行定义本发明所体现的特定方法的机器可读软件代码或韧体代码来将这些处理器配置成执行根据本发明的特定任务。

在不脱离本发明的精神或基本特征的情况下,本发明可以以其他具体形式实施。所描述的例子仅在所有方面被认为是说明性的而不是限制性的。因此,本发明的范围由权利要求而不是前面的描述来指示。与权利要求范围的等同的含义和范围内的所有变化将被包括在其范围内。

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