一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

交织预测的概念的制作方法

2022-11-13 14:04:22 来源:中国专利 TAG:

交织预测的概念
1.相关申请的交叉引用
2.本技术是申请日为2019年5月31日、申请号为201910468364.5、发明名称为“交织预测的概念”的发明专利申请的分案申请。
技术领域
3.本技术文件涉及视频编码技术、设备和系统。


背景技术:

4.运动补偿(mc)是一种视频处理中的技术,给出先前的和/或将来的帧,通过考虑相机和/或视频中的对象的运动来预测视频中的帧。运动补偿可以用于视频数据的编码以实现视频压缩。


技术实现要素:

5.本文件公开了与视频运动补偿中基于子块的运动预测相关的方法、系统和设备。
6.在一个典型的方面,公开了一种视频处理方法。该方法包括:根据第一模式将视频块分割成第一组子块,并且根据第二模式将视频块分割成第二组子块。第二组中的至少有一个子块具有与第一组中的一个子块不同的尺寸。该方法还包括确定预测块,该预测块是从第一组子块生成的第一中间预测块和从第二组子块生成的第二中间预测块的组合。
7.在另一个典型的方面,公开了一种视频处理方法。该方法包括:基于视频块的尺寸或与视频块相关联的编码算法的类型将视频块划分成多个子块。多个子块中的一个子块具有与多个子块中其他子块不同的尺寸。该方法还包括通过将编码算法应用到多个子块生成运动矢量预测,并且使用运动矢量预测执行视频块的进一步处理。
8.在另一个典型的方面,公开了一种装置,其包括:处理器,该处理器被配置为实现本文中所述的方法。
9.在又一个典型的方面,本文所述的各种技术可以实现为一种计算机程序产品,其存储在非暂时性计算机可读介质上,该计算机程序产品包括用于实现本文所述方法的程序代码。
10.在又一个典型的方面,一种视频解码装置,其可以实现本文所述的方法。
11.在下面的附件、附图、以及说明书中阐述一个或多个实施例的细节。其他特征将从说明书和附图以及权利要求书中显而易见。
附图说明
12.图1是示出基于子块的预测的示例的示意图。
13.图2示出了由两个控制点运动矢量描述的块的仿射运动场的示例。
14.图3示出了块的每个子块的仿射运动矢量场的示例。
15.图4示出了在af_inter模式中块400的运动矢量预测的示例。
16.图5a示出了当前编码单元(cu)的候选块的选择顺序的示例。
17.图5b示出了在af_merge模式中当前cu的候选块的另一个示例。
18.图6示出了cu的可选时域运动矢量预测(atmvp)运动预测处理的示例。
19.图7示出了具有四个子块的一个cu和相邻块的示例。
20.图8示出了双向光流(bio)方法中的示例光流轨迹。
21.图9a示出了块外部的访问位置的示例。
22.图9b示出了填充区域可用于避免额外的存储器访问和计算。
23.图10示出了在帧速率上转换(fruc)方法中使用的双向匹配的示例。
24.图11示出了在fruc方法中使用的模板匹配的示例。
25.图12示出了fruc方法中的单向运动估计(me)的示例。
26.图13示出了根据所公开的技术的具有两个划分模式的交织预测的示例。
27.图14a示出了根据所公开的技术其中将块划分为4
×
4个子块的示例划分模式。
28.图14b示出了根据所公开的技术其中将块划分为8
×
8个子块的示例划分模式。
29.图14c示出了根据所公开的技术其中将块划分为4
×
8个子块的示例划分模式。
30.图14d示出了根据所公开的技术其中将块划分为8
×
4个子块的示例划分模式。
31.图14e示出了根据所公开的技术其中将块划分为不一致的子块的示例划分模式。
32.图14f示出了根据所公开的技术其中将块划分为不一致的子块的另一个示例划分模式。
33.图14g示出了根据所公开的技术其中将块划分为不一致的子块的又一个示例划分模式。
34.图15a是视频处理的方法的示例流程图。
35.图15b是视频处理的方法的另一个示例流程图。
36.图16是图示可以用于实现本公开技术的各个部分的计算机系统或其他控制设备的架构的示例的示意图。
37.图17示出可以用于实现本公开技术的各个部分的移动设备的示例实施例的框图。
38.图18a、图18b和图18c示出了部分交织预测技术的示例实施例。
39.图19是可以实施所公开技术的示例视频处理系统的框图。
具体实施方式
40.全局运动补偿是运动补偿技术的变体之一,并且可以用来预测相机的运动。然而,在帧内的移动对象并没有通过全局运动补偿的各种实现充分地表示出来。局部运动估计,诸如块运动补偿可以用于解释帧内的移动对象,其中帧被划分成像素块以用于执行运动预测。
41.基于块运动补偿开发出的基于子块的预测通过高效视频编码(hevc)附录i(3d-hevc)首次引入视频编码标准。
42.图1是示出了基于预测的子块的示例的示意图。使用基于子块的预测,将块100诸如编码单元(cu)或预测单元(pu)划分为几个不重叠的子块101。不同的子块可以被分配不同的运动信息,诸如参考索引或运动矢量(mv)。然后对每个子块分别执行运动补偿。
43.为了探索hevc之外的未来视频编码技术,视频编码专家组(vceg)和运动图像专家
组(mpeg)于2015年联合成立了联合视频探索小组(jvet)。jvet采用了许多方法,并且将其添加到了名为联合探索模型(jem)的参考软件中。在jem中,基于子块的预测在多种编码技术中被采用,诸如仿射预测、可选时域运动矢量预测(atmvp)、空时运动矢量预测(stmvp)、双向光流(bio),以及帧速率上转换(fruc),其详细讨论如下。
44.仿射预测
45.在hevc中,仅平移运动模型应用于运动补偿预测(mcp)。然而,相机和对象可能具有多种运动,例如放大/缩小、旋转、透视运动和/或其他不规则运动。另一方面,jem应用了简化的仿射变换运动补偿预测。
46.图2示出了由两个控制点运动矢量v0和v1描述的块200的仿射运动场的示例。块200的运动矢量场(mvf)可以由以下等式描述:
[0047][0048]
如图2所示,(v
0x
,v
0y
)是左上角控制点的运动矢量,并且(v
1x
,v
1y
)是右上角控制点的运动矢量。为了简化运动补偿预测,可以应用基于子块的仿射变换预测。子块大小m
×
n推导如下:
[0049][0050]
这里,mvpre是运动矢量分数精度(例如,jem中的1/16)。(v
2x
,v
2y
)是左下控制点的运动矢量,其根据等式(1)计算。如果需要,m和n可以被向下调节使其分别作为w和h的除数。
[0051]
图3示出了块300的每个子块的仿射mvf的示例。为了推导出每个m
×
n子块的运动矢量,可以根据等式(1)计算每个子块的中心样本的运动矢量,并且四舍五入到运动矢量分数精度(例如,jem中的1/16)。然后可以应用运动补偿插值滤波器,利用推导出的运动矢量生成各子块的预测。在mcp之后,对每个子块的高精度运动矢量进行取整,并将其保存为与正常运动矢量相同的精度。
[0052]
在jem中,有两个仿射运动模式:af_inter模式和af_merge模式。对于宽度和高度都大于8的cu,可以应用af_inter模式。在位流中,cu级别的仿射标志被发信令(signal),以指示是否使用af_inter模式。在af_inter模式中,使用相邻的块构造具有运动矢量对{(v0,v1)|v0={va,vb,vc},v1={vd,ve}}的候选列表。
[0053]
图4示出了在af_inter模式中块400的运动矢量预测(mvp)的示例。如图4所示,v0从子块a、b或c的运动矢量中选择。可以根据参考列表对相邻块的运动矢量进行缩放。也可以根据相邻块参考的图片顺序计数(poc)、当前cu参考的poc和当前cu的poc之间的关系对运动矢量进行缩放。从相邻的子块d和e中选择v1的方法类似。如果候选列表的数目小于2,则该列表由复制每个amvp候选组成的运动矢量对来填充。当候选列表大于2时,可以首先根据相邻的运动矢量对候选进行排序(例如,基于一对候选中两个运动矢量的相似性)。在一些实现中,保留前两个候选。在一些实施例中,使用速率失真(rd)成本检查来确定选择哪个
运动矢量对候选作为当前cu的控制点运动矢量预测(cpmvp)。可以在位流中发信令指示cpmvp在候选列表中的位置的索引。在确定了当前仿射cu的cpmvp后,应用仿射运动估计,并且找到控制点运动矢量(cpmv)。然后,在比特流中对cpmv和cpmvp的差异发信令。
[0054]
当在af_merge模式下应用cu时,它从有效的相邻重构块中获取用仿射模式编码的第一个块。图5a示出了当前cu 500的候选块的选择顺序的示例。如图5a所示,选择顺序可以是从当前cu 500的左(501)、上(502)、右上(503)、左下(504)到左上(505)。图5b示出了在af_merge模式中当前cu 500的候选块的另一个示例。如果相邻的左下块501以仿射模式编码,如图5b所示,则导出包含子块501的cu左上角、右上角和左下角的运动矢量v2、v3和v4。当前cu 500左上角的运动矢量v0是基于v2、v3和v4计算的。可以相应地计算当前cu右上方的运动矢量v1。
[0055]
根据等式(1)中的仿射运动模型计算当前cu的cpmv v0和v1后,可以生成当前cu的mvf。为了识别当前cu是否使用af_merge模式编码,当至少有一个相邻的块以仿射模式编码时,可以在比特流中发信令仿射标志。
[0056]
可选时域运动矢量预测(atmvp)
[0057]
在atmvp方法中,通过从小于当前cu的块中提取多组运动信息(包括运动矢量和参考指数),修改时间运动矢量预测(tmvp)方法。
[0058]
图6示出了cu 600的atmvp运动预测过程的示例。atmvp方法分两步预测cu 600内子cu 601的运动矢量。第一步是用时间矢量识别参考图片650中的相应块651。参考图片650也称为运动源图片。第二步是将当前的cu 600划分成子cu 601,并从每个子cu对应的块中获取每个子cu的运动矢量和参考指数。
[0059]
在第一步中,参考图片650和对应的块由当前cu 600的空间相邻块的运动信息确定。为了避免相邻块的重复扫描处理,使用当前cu 600的merge候选列表中的第一merge候选。第一可用的运动矢量及其相关联的参考索引被设置为时间矢量和运动源图片的索引。这样,与tmvp相比,可以更准确地识别对应的块,其中对应的块(有时称为并置块)始终位于相对于当前cu的右下角或中心位置。
[0060]
在第二步中,通过将时间矢量添加到当前cu的坐标中,通过运动源图片650中的时间矢量识别子cu 651的对应块。对于每个子cu,使用其对应块的运动信息(例如,覆盖中心样本的最小运动网格)来导出子cu的运动信息。在识别出对应的n
×
n块的运动信息后,用与hevc的tmvp同样方式,将其转换为当前子cu的运动矢量和参考指数,其中应用运动缩放和其他程序。例如,解码器检查是否满足低延迟条件(例如,当前图片的所有参考图片的poc都小于当前图片的poc),并且可能使用运动矢量mvx(例如,与参考图片列表x对应的运动矢量)来预测每个子cu的运动矢量mvy(例如,x等于0或1并且y等于1-x)。
[0061]
空时运动矢量预测(stmvp)
[0062]
在stmvp方法中,子cu的运动矢量按照光栅扫描顺序递归导出。图7示出具有四个子块的一个cu和相邻块的示例。考虑8
×
8的cu 700,其包括四个4
×
4子cu a(701)、b(702)、c(703)和d(704)。当前帧中相邻的4
×
4块标记为a(711)、b(712)、c(713)和d(714)。
[0063]
子cu a的运动推导由识别其两个空间邻居开始。第一邻居是子cu a 701上方的n
×
n块(块c 713)。如果该块c(713)不可用或内部编码,则检查子cu a(701)上方的其他n
×
n块(从左到右,从块c 713处开始)。第二个邻居是子cu a 701左侧的一个块(块b 712)。如果
块b(712)不可用或是内部编码,则检查子cu a 701左侧的其他块(从上到下,从块b 712处开始)。每个列表从相邻块获得的运动信息被缩放到给定列表的第一参考帧。接下来,按照hevc中规定的与tmvp相同的程序,推导出子块a701的时间运动矢量预测(tmvp)。提取块d 704处的并置块的运动信息并进行相应的缩放。最后,在检索和缩放运动信息后,对每个参考列表分别平均所有可用的运动向量。将平均运动矢量指定为当前子cu的运动矢量。
[0064]
双向光流(bio)
[0065]
双向光流(bio)法是在分块运动补偿之上对双向预测进行的样本方向运动细化。在一些实现中,样本级的运动细化不使用信令。
[0066]
设i
(k)
为块运动补偿后到参考k(k=0,1)的亮度值,并且分别为i
(k)
梯度的水平分量和垂直分量。假设光流是有效的,则运动矢量场(v
x
,vy)由下式给出:
[0067][0068]
将此光流等式与每个样品运动轨迹的埃尔米特插值相结合,得到唯一的三阶多项式,该多项式在末端同时匹配函数值i
(k)
和其导数该多项式在t=0时的值是bio预测:
[0069][0070]
图8示出了双向光流(bio)方法中的示例光流轨迹。这里,τ0和τ1表示到参考帧的距离。基于ref0和ref1的poc计算距离τ0和τ1:τ0=poc(current)-poc(ref0),τ1=poc(ref1)-poc(current)。如果两个预测都来自同一个时间方向(都来自过去或都来自未来),则符号是不同的(例如,τ0·
τ1<0)。在这种情况下,如果预测不是来自同一时间点(例如,τ0≠τ1),则应用bio。两个参考区域都具有非零运动(例如,mvx0,mvy0,mvx1,mvy1≠0),并且块运动矢量与时间距离成比例(例如,mvx0/mvx1=mvy0/mvy1=-τ0/τ1)。
[0071]
通过最小化a点和b点之间的值的差δ来确定运动矢量场(v
x
,vy)。图9a-9b示出了运动轨迹与参考帧平面相交的示例。对δ,模型仅使用局部泰勒展开的第一个线性项:
[0072][0073]
上述等式中的所有值取决于样本位置,表示为(i

,j

)。假设在局部周围区域的运动是一致的,那么δ可以在以当前预测点(i,j)为中心的(2m 1)x(2m 1)方形窗口ω内最小化,其中m等于2:
[0074][0075]
对于这个优化问题,jem使用简化方法,首先在垂直方向上最小化,然后在水平方向最小化。结果如下:
[0076][0077][0078]
其中,
[0079][0080]
为了避免被零除或很小的值除,可在式(7)和式(8)中引入正则化参数r和m。
[0081]
r=500
·4d-8
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
等式(10)
[0082]
m=700
·4d-8
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
等式(11)
[0083]
这里,d是视频样本的位深度。
[0084]
为了使bio的内存访问与常规双向预测运动补偿相同,计算当前块内位置的所有预测和梯度值i
(k)
,图9a示出了块900外部的访问位置示例。如图9a所示,在等式(9)中,以预测区块边界上当前预测点为中心的(2m 1)x(2m 1)的方形窗口ω需要访问区块外的位置。在jem中,块外的值i
(k)
,设置为等于块内最近的可用值。例如,这可以实现为填充区域901,如图9b所示。
[0085]
使用bio,可以对每个样本的运动场进行细化。为了降低计算复杂度,在jem中采用了基于块设计的bio。运动细化可以基于4x4块计算。在基于块的bio中,可以对4x4块中所有样本的等式(9)中的sn值进行聚合,然后将sn的聚合值用于4x4块的推导的bio运动矢量偏移。更具体地说,下面的等式可以用于基于块的bio推导:
[0086][0087]
这里,bk表示属于预测块的第k个4x4块的样本组。等式(7)和等式(8)中的sn替换为((s
n,bk
)》》4)以推导相关联的运动矢量偏移。
[0088]
在某些情况下,由于噪声或不规则运动,bio的mv团(regiment)可能不可靠。因此,在bio中,mv团的大小被固定到一个阈值。该阈值是基于当前图片的参考图片是否全部来自一个方向确定的。例如,如果当前图片的所有参考图片都来自一个方向,则该阈值的值被设置为12
×214-d
,否则其被设置为12
×213-d

[0089]
可以使用与hevc运动补偿处理一致的操作(例如,2d可分离有限脉冲响应(fir))通过运动补偿插值同时计算bio的梯度。在一些实施例中,2d可分离fir的输入是与运动补偿处理相同的参考帧,以及根据块运动矢量的分数部分的分数位置(fracx,fracy)。对于水平梯度首先使用biofilters对信号进行垂直内插,该biofilters对应于具有去缩放标度位移d-8的分数位置fracy。然后在水平方向上应用梯度滤波器biofilterg,该biofilterg对应于具有去缩放标度位移18-d的分数位置fracx。对于垂直梯度使用biofilterg垂直地应用梯度滤波器,该biofilterg对应于具有去缩放标度位移d-8的分数位置fracy。然后,然后在水平方向上使用biofilters执行信号替换,该biofilters对应于
具有去缩放标度位移18-d的分数位置fracx。用于梯度计算biofilterg和信号替换biofilters的插值滤波器的长度可以更短(例如,6-tap),以保持合理的复杂度。表1示出了可用在bio中块运动矢量的不同分数位置的梯度计算的示例滤波器。表2示出了可用在bio中预测信号生成的插值示例滤波器。
[0090]
表1 bio中用于梯度计算的示例滤波器
[0091]
分数像素位置梯度的插值滤波器(biofilterg)0{8,-39,-3,46,-17,5}1/16{8,-32,-13,50,-18,5}1/8{7,-27,-20,54,-19,5}3/16{6,-21,-29,57,-18,5}1/4{4,-17,-36,60,-15,4}5/16{3,-9,-44,61,-15,4}3/8{1,-4,-48,61,-13,3}7/16{0,1,-54,60,-9,2}1/2{-1,4,-57,57,-4,1}
[0092]
表2 bio中用于预测信号生成的示例插值滤波器
[0093]
分数像素位置用于预测信号的插值滤波器(biofilters)0{0,0,64,0,0,0}1/16{1,-3,64,4,-2,0}1/8{1,-6,62,9,-3,1}3/16{2,-8,60,14,-5,1}1/4{2,-9,57,19,-7,2}5/16{3,-10,53,24,-8,2}3/8{3,-11,50,29,-9,2}7/16{3,-11,44,35,-10,3}1/2{3,-10,35,44,-11,3}
[0094]
在jem中,当两个预测来自不同的参考图片时,bio可应用于所有的双向预测块。当为cu启用局部照明补偿(lic)时,可以禁用bio。
[0095]
在一些实施例中,在正常mc处理之后将obmc应用于块。为了降低计算复杂度,在obmc处理期间可能不应用bio。这意味着在obmc处理期间,当使用自己的mv时,将bio应用于块的mc处理,而当使用相邻块的mv时,bio不应用于块的mc处理。
[0096]
帧速率上转换(fruc)
[0097]
对于cu,当其merge标志为真时,可以对fruc标志发信令。当fruc标志为假时,可以对merge索引发信令并且使用常规merge模式。当fruc标志为真时,可以对另一个fruc模式标志发信令来指示将使用哪种方法(例如,双向匹配或模板匹配)来导出该块的运动信息。
[0098]
在编码器端,基于对正常merge候选所做的rd成本选择决定是否对cu使用fruc merge模式。例如,通过使用rd成本选择来检查cu的多个匹配模式(例如,双向匹配和模板匹配)。导致最低成本的模式进一步与其它cu模式相比较。如果fruc匹配模式是最有效的模式,那么对于cu,fruc标志设置为真,并且使用相关的匹配模式。
[0099]
通常,fruc merge模式中的运动推导处理有两个步骤:首先执行cu级运动搜索,然后执行子cu级运动细化。在cu级,基于双向匹配或模板匹配,导出整个cu的初始运动矢量。首先,生成mv候选列表,并且选择导致最低匹配成本的候选作为进一步cu级细化的起点。然后在起始点附近执行基于双向匹配或模板匹配的局部搜索。将最小匹配成本的mv结果作为整个cu的mv值。随后,以导出的cu运动矢量为起点,进一步在子cu级细化运动信息。
[0100]
例如,对于w
×
h cu运动信息推导执行以下推导过程。在第一阶段,推导出了整个w
×
h cu的mv。在第二阶段,该cu进一步被分成m
×
m子cu。m的值按照(16)计算,d是预先定义的划分深度,在jem中默认设置为3。然后导出每个子cu的mv值。
[0101][0102]
图10示出在帧速率上转换(fruc)法中使用的双向匹配的示例。通过在两张不同的参考图片(1010,1011)中沿当前cu(1000)的运动轨迹找到两个块之间最接近的匹配,使用双向匹配来获得当前cu的运动信息。在连续运动轨迹假设下,指向两个参考块的运动矢量mv0(1001)和mv1(1002)与当前图片和两个参考图片之间的时间距离(例如,td0(1003)和td1(1004))成正比。在一些实施例中,当当前图片1000暂时位于两个参考图片(1010,1011)之间并且当前图片到两个参考图片的时间距离相同时,双向匹配成为基于镜像的双向mv。
[0103]
图11示出在fruc方法中使用的模板匹配的示例。模板匹配可以用于通过找到当前图片中的模板(例如,当前cu的顶部和/或左侧相邻块)与参考图片1110中的块(例如,与模板大小相同)之间的最接近匹配来获取当前cu 1100的运动信息。除了上述的fruc merge模式外,模板匹配也可以应用于amvp模式。在jem和hevc中,amvp都具有两个候选。通过模板匹配方法,可以导出新的候选。如果通过模板匹配新导出的候选与第一个现有的amvp候选不同,则将其插入amvp候选列表的最开始处,并且然后将列表大小设置为2(例如,通过删除第二个现有amvp候选)。当应用于amvp模式时,仅应用cu级搜索。
[0104]
cu级设置的mv候选可以包括以下:(1)原始amvp候选,如果当前cu处于amvp模式,(2)所有merge候选,(3)插值mv场(稍后描述)中的数个mv,以及顶部和左侧相邻运动矢量。
[0105]
当使用双向匹配时,merge候选的每个有效mv可以用作输入,以生成假设为双向匹配的mv对。例如,merge候选在参考列表a处的一个有效mv为(mva,refa)。然后在另一个参考列表b中找到其配对的双向mv的参考图片refb,使得refa和refb在时间上位于当前图片的不同侧。如果参考列表b中的参考refb不可用,则将参考refb确定为与参考refa不同的参考,并且其到当前图片的时间距离是列表b中的最小距离。确定参考refb后,通过基于当前图片和参考refa、参考refb之间的时间距离缩放mva导出mvb。
[0106]
在一些实现中,还可以将来自插值mv场中的四个mv添加到cu级候选列表中。更具体地,添加当前cu的位置(0,0),(w/2,0),(0,h/2)和(w/2,h/2)处插值的mv。当在amvp模式下应用fruc时,原始的amvp候选也添加到cu级的mv候选集。在一些实现中,在cu级,可以将amvp cu的15个mv和merge cu的13个mv添加到候选列表中。
[0107]
在子cu级设置的mv候选包括从cu级搜索确定的mv,(2)顶部、左侧、左上方和右上方相邻的mv,(3)参考图片中并置的mv的缩放版本,(4)一个或多个atmvp候选(例如,最多四个)和(5)一个或多个stmvp候选(例如,最多四个)。来自参考图片的缩放mv如下导出。两个列表中的参考图片都被遍历。参考图片中子cu的并置位置处的mv被缩放为起始cu级mv的参
考。atmvp和stmvp候选可以是前四个。在子cu级,一个或多个mv(例如,最多17个)被添加到候选列表中。
[0108]
插值mv场的生成
[0109]
在对帧进行编码之前,基于单向me生成整个图片的内插运动场。然后,该运动场可以随后用作cu级或子cu级的mv候选。
[0110]
在一些实施例中,两个参考列表中每个参考图片的运动场在4
×
4的块级别上被遍历。图12示出了在fruc方法中的单向运动估计(me)1200的示例。对于每个4
×
4块,如果与块相关联的运动通过当前图片中的4
×
4块,并且该块没有被分配任何内插运动,则根据时间距离td0和td1将参考块的运动缩放到当前图片(与hevc中tmvp的mv缩放相同方式),并且在当前帧中将该缩放运动指定给该块。如果没有缩放的mv指定给4
×
4块,则在插值运动场中将块的运动标记为不可用。
[0111]
插值和匹配成本
[0112]
当运动矢量指向分数采样位置时,需要运动补偿插值。为了降低复杂度,对双向匹配和模板匹配都使用双线性插值而不是常规的8抽头hevc插值。
[0113]
匹配成本的计算在不同的步骤处有点不同。当从cu级的候选集中选择候选时,匹配成本可以是双向匹配或模板匹配的绝对和差(sad)。在确定起始mv后,双向匹配在子cu级搜索的匹配成本c如下计算:
[0114][0115]
这里,w是权重系数。在一些实施例中,w可以被经验地设置为4。mv和mvs分别指示当前mv和起始mv。仍然可以将sad用作模式匹配在子cu级搜索的匹配成本。
[0116]
在fruc模式下,mv通过仅使用亮度(luma)样本导出。导出的运动将用于亮度(luma)和色度(chroma),用于mc帧间预测。确定mv后,对亮度使用8抽头(8-taps)插值滤波器并且对色度使用4抽头(4-taps)插值滤波器执行最终mc。
[0117]
mv细化是基于模式的mv搜索,以双向匹配成本或模板匹配成本为标准。在jem中,支持两种搜索模式—无限制中心偏置菱形搜索(ucbds)和自适应交叉搜索,分别在cu级别和子cu级别进行mv细化。对于cu级和子cu级的mv细化,都在四分之一亮度样本mv精度下直接搜索mv,接着是八分之一亮度样本mv细化。将cu和子cu步骤的mv细化的搜索范围设置为8个亮度样本。
[0118]
在双向匹配merge模式下,应用双向预测,因为cu的运动信息是基于在两个不同的参考图片中沿着当前cu运动轨迹的两个块之间的最近匹配得出的。在模板匹配merge模式下,编码器可以从列表0的单向预测、列表1的单向预测或者双向预测中为cu做出选择。该选择可以基于如下的模板匹配成本:
[0119]
如果costbi《=factor*min(cost0,cost1)
[0120]
则使用双向预测;
[0121]
否则,如果cost0《=cost1
[0122]
则使用列表0中的单向预测;
[0123]
否则,
[0124]
使用列表1中的单向预测;
[0125]
这里,cost0是列表0模板匹配的sad,cost1是列表2模板匹配的sad,并且costbi是
双向模板匹配的sad。例如,当factor的值等于1.25时,意味着选择过程朝双向预测偏移。帧间预测方向选择可应用于cu级模板匹配处理。
[0126]
以上讨论的基于子块的预测技术可用于在子块大小较小时获得每个子块更精确的运动信息。然而,较小的子块在运动补偿中施加了更高的带宽要求。另一方面,对于较小的子块,推导的运动信息可能不准确,尤其是当块中存在一些噪声时。因此,在一个块内具有固定的子块大小可能是次优的。
[0127]
本文描述了可以在各种实施例中使用的技术,以使用非均匀和/或可变子块大小来解决固定子块大小引入的带宽和精度问题。这些技术(也被称为交织预测)使用不同的划分块的方法,以便在不增加带宽消耗的情况下更可靠地获取运动信息。
[0128]
使用交织预测技术,将块划分为具有一个或多个划分模式的子块。划分模式表示将块划分为子块的方法,包括子块的大小和子块的位置。对于每个划分模式,可以通过基于划分模式推导出每个子块的运动信息来生成相应的预测块。因此,在一些实施例中,即使对于一个预测方向,也可以通过多个划分模式生成多个预测块。在一些实施例中,对于每个预测方向,可能只应用一个划分模式。
[0129]
图13示出根据所公开的技术的具有两个划分模式的交织预测的示例。当前块1300可以划分成多个模式。例如,如图13所示,当前块被划分成模式0(1301)和模式1(1302)。生成两个预测块p0(1303)和p1(1304)。通过计算p0(1303)和p1(1304)的加权和,可以生成当前块1300的最终预测块p(1305)。
[0130]
一般来说,给定x个划分模式,当前块的x个预测块(表示为p0,p1,,

,p
x-1
)可以以x个划分模式由基于子块的预测生成。当前块的最终预测(表示为p)可生成为:
[0131][0132]
这里,(x,y)是块中像素的坐标,并且wi(x,y)是pi的权重系数。通过示例而不是限制,权重可以表示为:
[0133][0134]
n是非负值。可选地,等式(8)中的位移操作也可以表示为:
[0135][0136]
权重之和是2的幂,通过执行移位操作而不是浮点除法,可以更有效地计算加权和p。
[0137]
划分模式可以具有不同的子块形状、尺寸或位置。在一些实施例中,划分模式可以包括不规则的子块大小。图14a-图14g显示了16
×
16块的几个划分模式的示例。在图14a中,根据所公开的技术将块划分为4
×
4个子块。这种模式也用于jem。图14b示出根据所公开的技术将块划分为8
×
8个子块的划分模式的示例。图14c示出根据所公开的技术将块划分为8
×
4个子块的划分模式的示例。图14d示出根据所公开的技术将块划分为4
×
8个子块的划分模式的示例。在图14e中,根据所公开的技术将块的一部分划分为4x4子块。块边界上的像素被划分成更小的子块,其大小如2
×
4,4
×
2或2
×
2。一些子块可以合并以形成更大的子块。图14f示出了相邻子块(如4x4子块和2x4子块)的示例,这些子块合并后形成尺寸为6
×
4、4
×
6或6
×
6的较大子块。在图14g中,块的一部分被划分为8
×
8子块。而块边界处的像素被划
分为较小的子块如8
×
4、4
×
8或4
×
4。
[0138]
基于子块的预测中,子块的形状和大小可以基于编码块的形状和/或大小和/或编码块信息来确定。编码块信息可以包括块和/或子块上使用的一种编码算法,诸如运动补偿预测是否是(1)仿射预测方法,(2)可选时域运动矢量预测方法,(3)空时运动矢量预测方法,(4)双向光流方法,或(5)帧速率上转换方法。例如,在一些实施例中,当当前块的大小为m
×
n时,子块的大小为4
×
n(或8
×
n等),即子块与当前块具有相同的高度。在一些实施例中,当当前块的大小为m
×
n时,子块的大小为m
×
4(或m
×
8等),即子块与当前块具有相同的宽度。在一些实施例中,当当前块的大小为m
×
n(其中m》n)时,子块的大小为a
×
b,其中a》b(例如,8
×
4)。或者,子块的大小为b
×
a(例如,4
×
8)。
[0139]
在一些实施例中,当前块的大小为m
×
n。当m
×
n《=t(或min(m,n)《=t,或max(m,n)《=t等)时,子块的大小为a
×
b;当m
×
n》t(或min(m,n)》t,或max(m,n)》t等)时,子块的大小为c
×
d,其中a《=c,b《=d。例如,如果m
×
n《=256,子块的大小可以是4
×
4。在一些实现中,子块的大小为8
×
8。
[0140]
应当注意的是,本文公开的交织预测技术可以应用于基于子块预测的一种、部分或全部编码技术。例如,交织预测技术可以应用于仿射预测,而其他基于子块预测的编码技术(例如,atmvp、stmvp、fruc或bio)不使用交织预测。作为另一个示例,所有仿射、atmvp和stmvp应用本文公开的交织预测技术。
[0141]
图15a是根据所公开的技术提高视频系统中运动预测的方法1500的示例流程图。方法1500包括在1502从视频帧中选择一组像素以形成块。方法1500包括在1504根据第一模式将块分割成第一组子块。方法1500包括在1506基于第一组子块生成第一中间预测块。方法1500包括在1508根据第二模式将块划分成第二组子块。第二组中至少一个子块具有与第一组中的一个子块的尺寸不同的尺寸。方法1500包括在1510基于第二组子块生成第二中间预测块。方法1500还包括在1512基于第一中间预测块和第二中间预测块确定预测块。
[0142]
在一些实施例中,可以在不明确地生成中间预测块的情况下实现方法1500。例如,可以对预测块的生成执行以下操作:根据第一模式将视频块分割成第一组子块,根据第二模式将视频块分割成第二组子块,其中第二组中至少有一个子块与第一组中的子块具有不同的大小;以及确定预测块,该预测块是从第一组子块预测地生成的第一中间预测块和从第二组子块预测地生成的第二中间预测块的组合。
[0143]
在一些实施例中,使用(1)仿射预测方法、(2)可选时域运动矢量预测法、(3)空时运动矢量预测法、(4)双向光流法、或(5)帧速率上转换法中的至少一种生成第一中间预测块或第二中间预测块。本文公开了这些视频编码方法的一些示例实施例。
[0144]
在一些实施例中,第一组或第二组中的子块具有矩形形状。例如,矩形形状可以指宽度和高度不相等的非方形形状。在一些实施例中,第一组子块中的子块具有不均匀的形状。在一些实施例中,第二组子块中的子块具有不均匀的形状。例如,不均匀的形状可能包括在第一组(或第二组)中具有不同大小的子块。
[0145]
在一些实施例中,所述方法包括基于视频块的大小确定第一模式或第二模式。例如,高矩形块可以拆分为多个水平子块。在某些情况下,矩形块可以拆分为多个方形子块。在一些实施例中,所述方法包括基于来自与该视频块在时间上或空间上相邻的第二个块的信息确定第一模式或第二模式。例如,在某些情况下,用于视频块的第一或第二模式可能与
至少一个时间或空间邻居的模式完全相同。
[0146]
在一些实施例中,对于在第一方向中的块的运动补偿,执行将块分割成第一组子块。在一些实施例中,对于在第二方向中的块的运动补偿,执行将块分割成第二组子块。例如,第一方向和/或第二方向可以是预测编码的反向(“b预测”)或预测编码的正向(“p预测”)。
[0147]
在一些实施例中,对于在第一方向中的块的运动补偿,执行将块分割成第一组子块,并将块分割成第二组子块。在一些实施例中,该方法还包括:通过根据第三模式将块划分为第三组子块,在第二方向上对块进行运动补偿;基于第三组子块生成第三中间预测块;根据第四模式将块划分为第四组子块,其中第四组中的至少一个子块与第三组中的子块大小不同;基于第四组子块生成第四中间预测块;基于第三中间预测块和第四中间预测块确定第二预测块;以及基于预测块和第二预测块确定第三预测块。
[0148]
在一些实施例中,该方法包括在基于块的运动补偿视频系统中向编码设备发送用于对块进行分割的第一模式和第二模式的信息。在一些实施例中,传输第一模式和第二模式的信息在以下之一执行:(1)序列级、(2)图片级、(3)视图级、(4)切片级、(5)编码树单元、(6)最大编码单元级、(7)编码单元级、(8)预测单元级、(10)树单元级、或(11)区域级。
[0149]
在一些实施例中,确定预测结果包括:将第一组权重应用于第一中间预测块以获得第一加权预测块;将第二组权重应用于第二中间预测块以获得第二加权预测块;以及计算第一加权预测块和第二加权预测块的加权和以得到预测块。
[0150]
在一些实施例中,第一组权重或第二组权重包括固定权重值。在一些实施例中,第一组权重或第二组权重是基于来自与该块在时间上或空间上相邻的另一块的信息确定的。在一些实施例中,使用用于生成第一预测块或第二预测块的编码算法确定第一组权重或第二组权重。在一些实现中,第一组权重中的至少一个值与第一组权重中的另一个值不同。在一些实现中,第二组权重中的至少一个值与第二组权重中的另一个值不同。在一些实现中,权重之和等于二的幂。
[0151]
在一些实施例中,该方法包括将权重传输到基于块的运动补偿视频系统中的编码设备。在一些实施例中,传输权重在以下之一执行:(1)序列级、(2)图片级、(3)视图级、(4)切片级、(5)编码树单元、(6)最大编码单元级、(7)编码单元级、(8)预测单元级、(10)树单元级、或(11)区域级。
[0152]
图15b是根据所公开的技术提高视频系统中基于块的运动补偿的方法1550的示例流程图。方法1550包括在1552处从视频帧中选择一组像素以形成块。方法1550包括在1554处基于块的大小或者与该块空间或时间相邻的另一个块的信息将块划分为多个子块。多个子块中的至少一个子块的大小与其他子块不同。方法1550还包括在1556处通过对多个子块应用编码算法生成运动矢量预测。在一些实施例中,编码算法包括(1)仿射预测方法、(2)可选时域运动矢量预测方法、(3)空时运动矢量预测方法、(4)双向光流法、或(5)帧速率上转换法中的至少一种。
[0153]
可替代方法包括基于视频块的大小或与视频块相关联的编码算法类型将视频块划分为多个子块,其中多个子块的一个子块的大小与多个子块的其他子块的大小不同,通过将编码算法应用到多个子块生成运动矢量预测,并且使用运动矢量预测执行视频块的进一步处理。
[0154]
在方法1500和1550中,可以实施部分交织。使用该方案,将预测样本的第一个子集中的样本计算为第一中间预测块的加权组合,并且预测样本的第二个子集中的样本是从基于子块的预测中复制出来,其中第一个子集和第二个子集基于分割模式。第一个子集和第二个子集可以一起构成整个预测块,例如,当前正在处理的块。如图18a到18c所示,在各种示例中,排除在交织之外的第二个子集可以由(a)角子块或(b)子块的最上面和最下面一行或(c)子块的最左边或最右边的列组成。当前正在处理的块的大小可以作为决定是否从交织预测中排除某些子块的条件。例如,在随后描述了一些条件。
[0155]
如本文进一步所述,编码处理可以避免检查从父块拆分的块的仿射模式,其中父块本身使用不同于仿射模式的模式编码。
[0156]
图16是图示可以用于实现本公开技术的各个部分的计算机系统或其他控制设备1600的结构的示例的示意图。在图16中,计算机系统1600包括通过互连1625连接的一个或多个处理器1605和存储器1610。互连1625可以表示由适当的桥、适配器或控制器连接的任何一条或多条单独的物理总线、点对点连接或两者。因此,互连1625可以包括例如系统总线、外围组件互连(pci)总线、超传输或工业标准体系结构(isa)总线、小型计算机系统接口(scsi)总线、通用串行总线(usb)、iic(i2c)总线或电气与电子工程师协会(ieee)标准674总线(有时被称为“火线”)。
[0157]
处理器1605可以包括中央处理器(cpu),来控制例如主机的整体操作。在一些实施例中,处理器1605通过执行存储在存储器1610中的软件或固件来实现这一点。处理器1605可以是或可以包括一个或多个可编程通用或专用微处理器、数字信号处理器(dsp)、可编程控制器、专用集成电路(asic)、可编程逻辑器件(pld)等,或这些器件的组合。
[0158]
存储器1610可以是或包括计算机系统的主存储器。存储器1610表示任何适当形式的随机存取存储器(ram)、只读存储器(rom)、闪存等,或这些设备的组合。在使用中,存储器1610除其他外可包含一组机器指令,当处理器1605执行该指令时,使处理器1605执行操作以实现本公开技术的实施例。
[0159]
通过互连1625连接到处理器1605的还有(可选的)网络适配器1615。网络适配器1615为计算机系统1600提供与远程设备(诸如存储客户机和/或其他存储服务器)通信的能力,并且可以是例如以太网适配器或光纤通道适配器。
[0160]
图17示出了可以用于实施本公开技术的各个部分的移动设备1700的示例实施例的框图。移动设备1700可以是笔记本电脑、智能手机、平板电脑、摄像机或其他能够处理视频的设备。移动设备1700包括处理器或控制器1701来处理数据,以及与处理器1701通信的存储器1702来存储和/或缓冲数据。例如,处理器1701可以包括中央处理器(cpu)或微控制器单元(mcu)。在一些实现中,处理器1701可以包括现场可编程门阵列(fpga)。在一些实现中,移动设备1700包括或与图形处理单元(gpu)、视频处理单元(vpu)和/或无线通信单元通信,以实现智能手机设备的各种视觉和/或通信数据处理功能。例如,存储器1702可以包括并存储处理器可执行代码,当处理器1701执行该代码时,将移动设备1700配置为执行各种操作,例如接收信息、命令和/或数据、处理信息和数据,以及将处理过的信息/数据发送或提供给另一个数据设备,诸如执行器或外部显示器。为了支持移动设备1700的各种功能,存储器1702可以存储信息和数据,诸如指令、软件、值、图像以及处理器1701处理或引用的其他数据。例如,可以使用各种类型的随机存取存储器(ram)设备、只读存储器(rom)设备、闪
存设备和其他合适的存储介质来实现存储器1702的存储功能。在一些实现中,移动设备1700包括输入/输出(i/o)单元1703,来将处理器1701和/或内存1702与其他模块、单元或设备进行接口。例如,i/o单元1703可以与处理器1701和内存1702进行接口,以利用与典型数据通信标准兼容的各种无线接口,例如,在云中的一台或多台计算机和用户设备之间。在一些实现中,移动设备1700可以通过i/o单元1703使用有线连接与其他设备进行接口。i/o单元1703可以包括无线传感器,诸如用于检测远程控制信号的红外探测器,或其他合适的无线人机界面技术。移动设备1700还可以与其他外部接口(例如数据存储器)和/或可视或音频显示设备1704连接,以检索和传输可由处理器处理、由存储器存储或由显示设备1704或外部设备的输出单元上显示的数据和信息。例如,显示设备1704可以根据所公开的技术显示基于mvp修改的视频帧(例如,包括如图13所示的预测块1305的视频帧)。
[0161]
在一些实施例中,视频解码器装置可以实施视频解码方法,其中使用本文所述的改进的基于块的运动预测进行视频解码。该方法可以包括使用来自视频帧的一组像素形成视频块。块可以根据第一模式分割成第一组子块。第一中间预测块可以对应于第一组子块。块可以包括根据第二模式的第二组子块。第二组中至少有一个子块的大小与第一组中的一个子块的大小不同。该方法还可以基于第一中间预测块和从第二组子块生成的第二中间预测块来确定预测块。该方法的其他特征可能与上述方法1500相似。
[0162]
在一些实施例中,视频解码的解码器端的方法可以通过使用视频帧的块,利用基于块的运动预测来提高预测的视频质量,其中块对应一组像素块。基于块的大小或来自与该块在空间或时间上相邻的另一块的信息,可以将块划分为多个子块,其中多个子块的至少一个子块的大小与其他子块的大小不同。解码器可以使用通过对多个子块应用编码算法生成的运动矢量预测。该方法的其他特征参考图15b和相应的说明做出了描述。
[0163]
在一些实施例中,可以使用实现在如图16和图17所述的硬件平台上的解码装置来实现视频解码方法。
[0164]
部分交织
[0165]
在一些实施例中,部分交织预测可实现如下。
[0166]
在一些实施例中,交织预测应用于当前块的一部分。某些位置的预测样本计算作两个或多个基于子块预测的加权和。其他位置的预测样本不用于加权和。例如,这些预测样本是从具有特定划分模式的基于子块的预测中复制的。
[0167]
在一些实施例中,通过基于子块的预测p1和p2预测当前块,p1和p2分别具有划分模式d0和划分模式d2。最终预测值按p=w0
×
p0 w1
×
计算。在某些位置,w0≠0且w1≠0。但在其他一些位置,w0=1且w1=0,也就是说,这些位置不应用交织预测。
[0168]
在一些实施例中,交织预测不适用于图18a所示的四角子块。
[0169]
在一些实施例中,交织预测不适用于图18b所示的子块最左列和子块最右列。
[0170]
在一些实施例中,交织预测不适用于图18c所示的子块最上行和子块最下行。
[0171]
包含在编码器实施例中的技术示例
[0172]
在一些实施例中,交织预测不应用于运动估计(me)处理。
[0173]
例如,6参数仿射预测的me处理中不应用交织预测。
[0174]
例如,如果当前块的大小满足以下某些条件,则me处理中不应用交织预测。这里,假定当前块的宽度和高度分别为w和h,并且t、t1和t2为整数值:
[0175]
w》=t1且h》=t2;
[0176]
w《=t1且h《=t2;
[0177]
w》=t1或h》=t2;
[0178]
w《=t1或h《=t2;
[0179]
w h》=t
[0180]
w h《=t
[0181]w×
h》=t
[0182]w×
h《=t
[0183]
例如,如果当前块与父块分离,并且父块在编码器处不选择仿射模式,则在me过程中省略交织预测。
[0184]
或者,如果当前块与父块分离,并且父块在编码器处不选择仿射模式,则编码器处不检查仿射模式。
[0185]
表a说明了对随机访问(ra)配置使用常规2x2仿射预测的示例性能结果。
[0186]
表a 2x2仿射预测的示例测试结果
[0187][0188][0189]
表b说明了根据本技术的实施例,将交织预测应用于单向预测得到的示例性能结果。表c说明了根据本技术的实施例,将交织预测应用于双向预测得到的示例性能结果。
[0190]
表b单向预测中交织预测的示例测试结果
[0191] yuvenctdect类别a1-0.05%-0.14%-0.02%101%100%类别a2-0.55%-0.17%-0.11%102%101%类别b-0.33%-0.17%-0.20%101%101%类别c-0.15%-0.16%-0.04%100%100%类别d-0.21%-0.09%-0.02%106%106%类别f-0.39%-0.40%-0.39%102%102%总体-0.27%-0.16%-0.11%101%101%
[0192]
表c双向预测中交织预测的示例测试结果
[0193] yuvenctdect类别a1-0.09%-0.18%-0.12%103%102%
类别a2-0.74%-0.40%-0.28%104%104%类别b-0.37%-0.39%-0.35%103%102%类别c-0.22%-0.19%-0.13%102%102%类别d-0.42%-0.28%-0.32%103%102%类别f-0.60%-0.64%-0.62%102%102%总体-0.38%-0.30%-0.23%103%102%
[0194]
如表b和表c所示,与传统的基于2x2仿射预测的编码相比,交织预测以更低的复杂度实现了主要的编码增益。特别地,与2x 2仿射方法(0.47%)相比,应用于双向预测的交织预测获得0.38%的编码增益。与2x 2仿射方法中的136%和114%相比,2x 2仿射方法的编码时间和解码时间分别为103%和102%。
[0195]
图19是示出其中可以实施本文公开的各种技术的示例视频处理系统1900的框图。各种实现可能包括系统1900的部分或全部组件。系统1900可包括用于接收视频内容的输入1902。视频内容可以以原始或未压缩格式接收(例如,8位或10位多分量像素值),或者可以以压缩或编码格式接收。输入1902可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(pon)等)以及无线接口(诸如wi-fi或蜂窝接口)。外围总线接口的示例可以包括通用串行总线(usb)或高清晰度多媒体接口(hdmi)或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。
[0196]
系统1900可以包括编码组件1904,其可以实现本文中所述的各种编码方法。编码组件1904可以降低视频从输入1902到编码组件1904输出的平均比特率。因此,该编码技术有时被称为视频压缩或视频转码技术。编码组件1904的输出可以通过连接的通信(如由组件1906表示)进行存储或传输。组件1906可以使用在输入1902处接收到的视频的存储或通信比特流表示来生成发送到显示接口1908的可显示视频。从比特流表示生成用户可观看视频的过程有时被称为视频解压。
[0197]
本文所述技术可以实施在各种电子设备中,例如移动电话、笔记本电脑、智能手机或其他能够执行数字数据处理和/或视频显示的设备。
[0198]
在一个示例方面,视频处理方法包括根据第一模式将视频块分割成第一组子块,并根据第二模式将视频块分割成第二组子块。第二组中的至少一个子块与第一组中的子块具有不同的尺寸。该方法还包括确定预测块,该预测块是从第一组子块生成的第一中间预测块和从第二组子块生成的第二中间预测块的组合。
[0199]
在一些实施例中,使用(1)仿射预测方法、(2)可选时域运动矢量预测方法、(3)空时运动矢量预测方法、(4)双向光流方法或(5)帧速率上转换方法中的至少一种生成第一中间预测块或第二中间预测块。
[0200]
在一些实施例中,第一组或第二组中的子块具有矩形形状。在一些实施例中,第一组子块中的子块具有不均匀的形状。在一些实施例中,第二组子块中的子块具有不均匀的形状。
[0201]
在一些实施例中,该方法包括基于视频块的尺寸确定第一模式或第二模式。在一些实施例中,为了基于第一参考图片列表中的参考图片对视频块进行运动补偿,将视频块分割成第一组子块。在一些实施例中,为了基于与第一参考图片列表不同的第二参考图片列表中的参考图片对视频块进行运动补偿,将块分割成第二组子块。在一些实施例中,为了
从与第一参考图片列表相同的第二参考图片列表中的参考图片对视频块进行运动补偿,将视频块分割成第二组子块。在一些实施例中,从第二参考图片列表中的参考图片对视频块进行运动补偿,方法通过根据第三模式将视频块分割成第三组子块,基于第三组子块生成第三中间预测块,根据第四模式将视频块分割成第四组子块,其中第四组中的至少一个子块与第三组中的子块具有不同的尺寸,基于第四组子块生成第四中间预测块,基于第三中间预测块和第四中间预测块确定第二预测块,并且根据预测块和第二预测块确定第三预测块。
[0202]
在一些实施例中,预测块被确定为使用第一组权重加权的第一中间预测块和使用第二组权重加权的第二中间预测块的加权组合。在一些实施例中,第一组权重或第二组权重包括固定的权重值。在一些实施例中,第一组权重中的至少一个值不同于第一组权重中的另一个值。在一些实施例中,第二组权重中的至少一个值不同于第二组权重中的另一个值。
[0203]
在另一个示例方面,视频处理方法包括根据视频块的尺寸或与视频块关联的编码算法类型将视频块划分为多个子块。多个子块的一个子块的具有与多个子块的其他子块的尺寸不同的尺寸。该方法还包括通过将编码算法应用于多个子块生成运动矢量预测,并使用运动矢量预测对视频块进行进一步的处理。
[0204]
在一些实施例中,编码算法包括(1)仿射预测方法、(2)可选时域运动矢量预测方法、(3)空时运动矢量预测方法、(4)双向光流方法或(5)帧速率上转换法中的至少一种。在一些实施例中,视频块的尺寸为m
×
n,其中m>n,视频块的特定子块具有a
×
b的大小,其中a>b,其中m、n、a和b是整数。在一些实施例中,块的尺寸为m
×
n,其中m《=n,视频块的特定子块具有尺寸a
×
b,其中a《=b。在一些实施例中,该方法包括对第一组子块中的每个子块进行预测,以确定第一中间预测块。在一些实施例中,该方法包括对第二组子块中的每个子块进行预测,以确定第二中间预测块。
[0205]
从上述来看,应当理解的是,为了便于说明,本发明公开的技术的具体实施例已经在本文中进行了描述,但是可以在不偏离本发明范围的情况下进行各种修改。因此,除了的之外,本发明公开的技术不限于权利要求的限定。
[0206]
本文中公开的和其他描述的实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实现,包括本文中所公开的结构及其结构等效体,或其中一个或多个的组合。公开的实施例和其他实施例可以实现为一个或多个计算机程序产品,即一个或多个编码在计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或多个的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。传播信号是人为产生的信号,例如机器产生的电信号、光学信号或电磁信号,生成这些信号以对信息进行编码,以便传输到适当的接收装置。
[0207]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为
模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[0208]
本文中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0209]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光磁盘;以及cdrom和dvd-rom光盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0210]
虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中删除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
[0211]
同样,尽管图纸中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献