用于视频编解码的基于双向预测光流技术的运动补偿方法及装置与流程

文档序号:15886003发布日期:2018-11-09 18:53阅读:310来源:国知局
用于视频编解码的基于双向预测光流技术的运动补偿方法及装置与流程

本发明要求在2016年02月05日提出的申请号为62/291,588的美国临时专利申请的优先权。上述美国临时专利申请整体以引用方式并入本文中。

本发明涉及运动补偿,以用于使用双向光流(bi-directionalopticalflow,bio)技术的视频编解码。具体地,本发明涉及在一些条件下选择性地使用bio,以提高性能或者降低使用bio技术的复杂度。

背景技术

双向光流是jctvc-c204(e.alshina,etal.,bi-directionalopticalflow,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,3rdmeeting:guangzhou,cn,7-15october,2010,document:jctvc-c204)和vceg-az05(e.alshina,etal.,knowntoolsperformanceinvestigationfornextgenerationvideocoding,itu-tsg16question6,videocodingexpertsgroup(vceg),52ndmeeting:19–26june2015,warsaw,poland,document:vceg-az05)中公开的运动估计/运动补偿技术。双向光流基于光流和稳定运动的假设推导出样本层运动细分(refinement)。双向光流仅被使用以用于真实双向预测块,其可以自对应于先前帧和后续帧的两个参考帧预测。在vceg-az05中,双向光流采用5x5窗口以推导出每个样本的运动细分。因此,对于nxn块,(n+4)x(n+4)块的运动补偿结果和相应的梯度信息被需要,以推导出用于nxn块的基于样本的运动细分。根据vceg-az05,6抽头(tap)梯度滤波器和6抽头插值滤波器用于生成用于双向光流的梯度信息。因此,双向光流的计算复杂度比传统的双向预测的计算复杂度高得多。为了进一步提高双向光流的性能,提出了如下方法。

在hevc中的传统的双向预测中,使用等式(1),生成预测子,其中p(0)和p(1)分别是列表0预测子和列表1预测子。

pconventional[i,j]=(p(0)[i,j]+p(1)[i,j]+1)>>1(1)

在jctvc-c204和vecg-az05中,使用等式(2),生成双向光流预测子。

popticalflow=(p(0)[i,j]+p(1)[i,j]+vx[i,j](ix(0)-ix(1)[i,j])+

vy[i,j](iy(0)-iy(1)[i,j])+1)>>1(2)

在等式(2)中,ix(0)和ix(1)分别表示列表0预测子和列表1预测子中的x方向梯度;iy(0)和iy(1)分别表示列表0预测子和列表1预测子中的y方向梯度;vx和vy分别表示x方向的偏移和y方向的偏移。图1示出了使用双向光流技术的运动补偿的示例,其中参考图像0(130)和参考图像1(110)用于推导用于b切片(120)的运动矢量。偏移vx和偏移vy被推导出,并在等式(2)中使用。如等式(3a)和等式(3b)所示,使用差分技术以自图像强度(intensity)的时空导数(derivatives)计算速度,上述等式被推导出,i(x,y,t)表示时空坐标系中图像强度。

i(x,y,t)=i(x+mv0x+vx,y+mv0y+vy,t-δt)(3a)

=i(x+mv1x-vx,y+mv1y-vy,t+δt)(3b)

等式(3a)可以被进一步推导成如下:

同理,等式(3b)可以被进一步推导成如下:

因此,双向光流被推导成如下,其等价于等式(2),其中

根据如下,两点的值之间的差δ[i,j]可以被推导成:

在本发明中,两点的值之间的差δ[i,j]称为位于两点处的流差(flowdifference)。在等式(6)中,vx[i,j]和vy[i,j]是像素方向(pixel-wise)运动矢量细分分量,其中仅微运动(finemotion)被考虑,并且主运动(majormotion)由运动补偿而进行补偿。相应地,也是列表0参考帧和列表1参考帧的位置[i,j]处的亮度i的梯度。在本发明中,运动矢量细分分量,即vx[i,j]和vy[i,j],也称为x偏移值和y偏移值。

为了解出vx[i,j]和vy[i,j],一个包括正在被处理的像素和(2m+1)×(2m+1)相邻像素的窗口被使用。像素集ω表示窗口中的像素,即当且仅当i-m≤i'≤i+m和j-m≤j’≤j+m,[i',j’]∈ω。基于减少的值,vx[i,j]和vy[i,j]被选择。

用于整数像素分辨率的梯度计算如下所示:

对于分数像素分辨率,插值先被执行,并且梯度被计算为:

在上述等式中,α是块运动矢量,r(k)[i,j]是位于整数位置[i,j]的参考图像值,其中k=0或1,fn(α)是用于分数mv的插值滤波器的滤波器。

对于x方向梯度,如果y位置是整数,则亮度梯度滤波器被使用。如果y位置是分数,则y方向中的插值被执行,并且亮度梯度滤波器在x方向中被使用。对于y方向梯度,如果x位置是整数,则亮度梯度滤波器被使用。如果x位置是分数,则亮度梯度滤波器在y方向中被使用,并且x方向中的插值被执行。

在现有的双向光流实施方式中,用于vx[i,j]和vy[i,j]的窗口尺寸是5x5,并且双向光流仅被应用到仅具有真实双向预测2n×2n编码单元(codingunit,cu)的亮度分量。对于位于分数像素分辨率处的梯度计算,额外的6抽头插值滤波器/6抽头梯度滤波器被使用。另外,垂直流程先被执行,然后水平流程被执行。



技术实现要素:

本发明公开了一种运动补偿方法及装置,其使用双向光流技术。根据本发明的一方法,如果当前块是使用双向预测模式编解码的,则基于用于编码或解码当前块的当前模式,将有条件地应用双向光流流程以编码或解码当前块。如果当前模式等于一个或多个所选择的模式,则具有双向光流流程的当前模式用于编码或解码当前块,以及如果当前模式不等于一个或多个所选择的模式,则没有双向光流流程的当前模式用于编码或解码当前块。在一个实施例中,所选择的模式仅包括合并模式。在另一实施例中,所选择的模式仅包括高级运动矢量预测模式。

根据另一方法,如果当前块是使用双向预测模式编解码的,则基于联合编解码标志,将有条件地应用双向光流流程以编码或解码当前块。如果联合编解码标志具有第一值,则具有双向光流流程的当前模式用于编码或解码当前块,以及如果联合编解码标志具有第二值,则没有双向光流流程的当前模式用于编码或解码当前块。当当前块不是以双向预测模式编解码的时,联合编解码标志可以用于指示另一流程是否是被开启还是被关闭以用于当前块。另一流程可以对应于低通滤波器流程、尖锐滤波器流程或偏移流程,以修改多个运动补偿结果。

根据又一方法,双向光流流程被应用以推导出当前块的x偏移值vx和y偏移值vy。x偏移值vx和y偏移值vy被添加到一个或多个原始运动矢量,以获得当前块的一个或多个最终运动矢量。基于当前块的最终运动矢量,多个双向预测子被生成,并且使用双向预测子的双向模式用于编码或解码当前块。当前块的最终运动矢量被存储以由一个或多个后续块参考。在最终运动矢量被存储之前,x偏移值vx和y偏移值vy可以被裁剪到预定义范围。预定义范围可以对应于[-16,16]。x偏移值vx和y偏移值vy可以在一个整数像素内被裁剪。

在又一实施例中,如果当前色度块是使用双向预测模式编解码的,则双向光流流程被应用以编码或解码当前色度块。用于当前色度块的与双向光流流程相关的色度x偏移值vx和色度y偏移值vy可以是仅基于一个或多个色度分量推导出的。用于当前色度块的与双向光流流程相关的色度x偏移值vx和色度y偏移值vy也可以重新使用仅基于亮度分量推导出的与双向光流流程相关的亮度x偏移值vx和亮度y偏移值vy。在这种情况中,色度x偏移值vx和色度y偏移值vy可以是基于亮度分量与一个或多个色度分量的分辨率之比进行缩放的。用于当前色度块的与双向光流流程相关的x偏移值vx和y偏移值vy也可以是基于亮度分量和一个或多个色度分量推导出的。

附图说明

图1是使用双向光流技术的运动补偿的示例。

图2是根据本发明一实施例的视频编解码系统的示例性流程图,其中bio的使用仅被应用于所选择的编解码模式。

图3是根据本发明一实施例的视频编解码系统的示例性流程图,其中,如果当前块是以双向预测模式进行编解码的,则bio的使用是根据联合编解码的标志的。

图4是根据本发明一实施例的视频编解码系统的示例性流程图,其中当前块的x偏移值vx和y偏移值vy被细分且添加到当前运动矢量,作为由后续块参考的最终运动矢量。

图5是根据本发明一实施例的视频编解码系统的示例性流程图,其中bio被应用于色度分量。

具体实施方式

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

在vceg-az05中,双向光流被实现为对hevc参考软件中所指定的流程而言的额外流程。如等式(1)所示,根据传统的hevc,运动补偿预测被生成。另一方面,根据双向光流的运动补偿预测如等式(2)所示,其中额外参数被确定以修改传统的运动补偿预测。bio总是被应用到用真实双向预测的这些块。

本发明公开了不同的方法以降低与bio流程相关的复杂度或成本。下面公开了每种方法。

仅用于合并模式或高级运动矢量预测(advancedmotionvectorprediction,amvp)模式的bio

在vecg-az05中,bio流程总是被应用于所有真实双向预测的cu。如前面所述,真实双向预测的块是自对应于先前帧和后续帧的两个参考帧预测的。然而,并不是所有真实双向预测的cu可以通过bio流程来改善。因此,根据本发明的方法公开了有条件地将bio应用于真实双向预测的cu。例如,bio流程仅被应用于由合并模式编解码的真实预测的cu。又例如,bio流程仅被应用于由amvp模式编解码的真实预测的cu。如果bio流程被使能以用于合并模式,并被禁能以用于amvp模式,则在当前cu需要bio流程时,合并模式可以被使用。当bio流程不能实现当前cu的一些编解码增益时,我们可以使用amvp模式以编码当前cu。通过使用这种方式,我们可以通过使用不同语法,禁能或使能bio以用于具有相同运动信息的一个帧间cu。

如高级视频编解码标准所知,例如hevc,对于以合并模式编解码的块,运动信息是自一个或多个相邻块的运动信息继承的。当bio流程被应用到以合并模式编解码的块时,两个参考块的运动信息是自相邻块继承的。基于合并模式的预测子与bio预测子组合以形成已组合预测子。对于以amvp模式编解码的块,当前运动矢量(motionvector,mv)与运动矢量预测子(mvpredictor,mvp)之间的运动矢量差(motionvectordifference,mvd)被编解码。在mv使用mvd和mvp被解码之后,根据amvp模式的预测子可以被生成。当bio流程被应用到以amvp模式编解码的块时,amvp模式的预测子与bio预测子进行组合,以形成已组合预测子。

在常规的视频编码器中,率失真优化流程通常用于在允许的编解码模式集中选择最佳编解码模式。当bio被使能以用于合并模式和amvp模式时,与每个编解码模式相关的成本函数将被评估。bio使能的合并模式和bio使能的amvp模式所涉及的计算将相当地复杂。根据本方法,bio流程仅被允许用于合并模式或者amvp模式。因此,bio使能的帧间模式的复杂度本质上被降低。此外,并不是所有真实双向预测的cu可以通过bio流程来改善。通过使用这种方式,我们可以使能bio流程以用于这些cu,其可以仅通过bio流程而被改善。因此,与使能以仅用于合并模式的bio或使能以仅用于amvp模式的bio相关的编解码性能非常靠近具有使能以用于合并模式和amvp模式的bio的系统。换句话说,具有使能以仅用于合并模式的bio或使能以仅用于amvp模式的bio的系统可以本质上降低复杂度,同时,关于编解码性能的惩罚非常小。因此,相比于具有使能以用于合并模式和amvp模式的bio的系统,更需要具有使能以仅用于合并模式的bio或使能以仅用于amvp模式的bio的系统。

bio开启/关闭标志

根据本发明的另一方法,不是隐性指示bio流程是否被有条件地使能,而是开启/关闭标志被显性发信以用于每个帧间编解码的cu。然而,bio可以仅被应用于真实双向预测的cu。因此,与任何真实双向预测的cu的开启/关闭标志相关的码元是冗余的。如果一个开启/关闭标志总是被发信以用于每个cu,则冗余的码元将发生。如果一个开启/关闭标志被有条件地发信,则其可能引起解析问题,因为在解析阶段中比较难验证当前cu是否由真实双向预测编解码。为了解决此问题,公开了联合编解码标志。根据此方法,一个开启/关闭标志总是被编解码以用于每个帧间cu。当当前cu由真实双向预测编解码时,则此标志用于指示bio流程是被使能还是禁能以用于当前cu。例如,另一功能可以是一个额外的流程,其被应用到运动补偿结果。一个额外的流程可以是一个低通滤波器,一个锐化滤波器或者一些偏移流程,以修改运动补偿结果。在另一实施例中,公开了视频编解码的多意义(multi-meaning)语法。对于具有第一条件的块,多意义语法被发信。当第二条件被满足时,多意义语法是用于第一功能的开启-关闭标志,模式或参数。否则(即第二条件不被满足),多意义语法是用于第二功能的开启-关闭标志,模式或参数。例如,对于帧间模式cu,当当前cu是由真实双向预测预测的时,多意义语法是用于bio流程的开启/关闭标志;以及当当前cu不是由真实双向预测预测的时,多意义语法是用于低通运动补偿滤波器的开启/关闭标志。

当将vx和vy存储为mv时限制vx和vy

在vecg-az05的bio流程中,位移,即x偏移值vx和y偏移值vy被推导出且仅用于细分运动补偿结果。根据本发明的一方法,x偏移值vx和y偏移值vy被添加到当前块的原始运动矢量。x偏移值vx和y偏移值vy可以被检索到并添加到原始mv,以形成最终运动矢量,其由后续cu参考。当存储最终mv时,vx和vy的范围还被限制在一个整数像素内。整数vx和vy的限制可以帮助降低存储器带宽。例如,当运动补偿流程被应用于重叠的cu或pu时,限制的vx和vy可以降低重叠区域的数据范围。在另一实施例中,当x偏移值vx和y偏移值vy将被添加到原始mv时,vx和vy的范围被限制在预定义范围内(例如,被裁剪到预定义范围,例如[-16,16]),以降低运动补偿的存储器带宽。

色度分量的bio

在vecg-az05中,bio流程仅被应用于亮度分量。为了提高bio性能,根据本发明的一方法,bio流程被应用于色度分量。当将bio流程应用于色度分量时,x偏移值vx和y偏移值vy可以仅基于色度分量而被推导出。可选地,亮度分量的x偏移值vx和y偏移值vy可以用于色度bio流程。当x偏移值vx和y偏移值vy在亮度分量与色度分量之间分享时,位移可以仅由亮度分量推导出,或者由亮度分量和色度分量联合确定。如果亮度分量的x偏移值vx和y偏移值vy被直接重新使用,则基于亮度分量和色度分量的分辨率之比,x偏移值vx和y偏移值vy还可以而被平移或缩放,这相似于亮度分量与色度分量之间的运动矢量缩放。例如,对于yuv420,亮度平移将被右移一个码元(即除以2),随后用于色度bio。

图2是根据本发明一实施例的视频编解码系统的示例性流程图,其中bio的使用仅被应用于所选择的编解码模式。本流程图中所示的步骤可以被实现为编码器侧或解码器侧处的一个或多个处理器(例如,一个或多个cpu)上可执行的程序代码。本流程图中所示的步骤也可以基于硬件而被实现,例如,用于执行本流程图中的步骤的一个或多个电子电路或处理器。根据该方法,在步骤210中,在编码器侧处,接收与当前图像中的当前块相关的数据,或者在解码器侧处,接收包括当前块的已压缩数据的视频比特流。在步骤220中,如果当前块是使用双向预测模式编解码的,则基于用于编码或解码当前块的当前模式,将有条件地应用bio流程以编码或解码当前块。如果当前模式等于一个或多个所选择的模式,则具有bio流程的当前模式用于编码或解码当前块,以及如果当前模式不等于一个或多个所选择的模式,则没有bio流程的当前模式用于编码或解码当前块。例如,一个或多个所选择的模式仅包括合并模式。又例如,一个或多个所选择的模式仅包括amvp模式。在步骤230中,在编码器侧处,输出包括当前块的已压缩数据的视频比特流,或者在解码器侧处,输出包括当前块的已重构块的已重构数据。

图3是根据本发明一实施例的视频编解码系统的示例性流程图,其中,如果当前块是以双向预测模式进行编解码的,则bio的使用是根据联合编解码标志的。同样地,本流程图中所示的步骤可以被实现为编码器侧或解码器侧处的一个或多个处理器(例如,一个或多个cpu)上可执行的程序代码。本流程图中所示的步骤也可以基于硬件而被实现,例如,用于执行本流程图中的步骤的一个或多个电子电路或处理器。根据该方法,在步骤310中,在编码器侧处,接收与当前图像中的当前块相关的数据,或者在解码器侧处,接收包括当前块的已压缩数据的视频比特流。在步骤320中,如果当前块是使用双向预测模式编解码的,则基于联合编解码标志,将有条件地应用bio流程以编码或解码当前块。如果联合编解码标志具有第一值,则具有bio流程的当前模式用于编码或解码当前块,以及如果联合编解码标志具有第二值,则没有bio流程的当前模式用于编码或解码当前块。例如,第一值可以对应于“1”,以指示使能,以及对应于“0”以指示禁能。在步骤330中,在编码器侧处,输出包括当前块的已压缩数据的视频比特流,或者在解码器侧处,输出包括当前块的已重构块的已重构数据。

图4是根据本发明一实施例的视频编解码系统的示例性流程图,其中当前块的x偏移值vx和y偏移值vy被细分且添加到当前运动矢量,作为由后续块参考的最终运动矢量。根据该方法,在步骤410中,在编码器侧处,接收与当前图像中的当前块相关的数据,或者在解码器侧处,接收包括当前块的已压缩数据的视频比特流。在步骤420中,通过应用bio流程,推导出当前块的x偏移值vx和y偏移值vy。在步骤430中,将x偏移值vx和y偏移值vy添加到一个或多个原始运动矢量,以生成当前块的一个或多个最终运动矢量。x偏移值vx和y偏移值vy被限制到预定义范围或一个整数像素内被裁剪。在步骤440中,基于当前块的最终运动矢量,生成双向预测子。在步骤450中,使用双向预测子,以双向模式编码或解码当前块。在步骤460中,将当前块的最终运动矢量进行存储以由一个或多个后续块参考。在步骤470中,在编码器侧处,输出包括当前块的已压缩数据的视频比特流,或者在解码器侧处,输出包括当前块的已重构块的已重构数据。

图5是根据本发明一实施例的视频编解码系统的示例性流程图,其中bio被应用于色度分量。根据该方法,如步骤510所示,在编码器侧处,接收与当前图像中的当前块相关的数据,或者在解码器侧处,接收包括当前块的已压缩数据的视频比特流。当前图像包括亮度分量和一个或多个色度分量。在步骤520中,如果当前色度块是使用双向预测模式编解码的,则应用bio流程以编码或解码当前色度块。在步骤530中,在编码器侧处,输出包括当前块的已压缩数据的视频比特流,或者在解码器侧处,输出包括当前块的已重构块的已重构数据。

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

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

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

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

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