低复杂度的帧速率上变换的制作方法

文档序号:22191627发布日期:2020-09-11 22:04阅读:168来源:国知局
低复杂度的帧速率上变换的制作方法

相关申请的交叉引用

本申请是2018年1月29日提交的名称为“低复杂度的帧速率上变换”的美国临时专利申请序列号62/623,143的非临时申请,并且要求依照35u.s.c.§119(e)享有优先权,所述申请在这里被全部引入以作为参考。



背景技术:

视频译码系统被广泛用于压缩数字视频信号,以便减少此类信号的存储需求和/或传输带宽。在不同类型的视频译码系统(例如基于块、基于小波以及基于对象的系统)中,现今最广泛使用和部署的是基于块的混合视频译码系统。关于基于块的视频译码系统的示例包括国际视频编码标准,例如mpeg1/2/4部分2、h.264/mpeg-4部分10avc、vc-1、以及由itu-t/sg16/q.6/vceg和iso/iec/mpeg的jct-vc(视频编码联合协作组)开发的名为高效视频编码(hevc)的最新视频编码标准。

hevc标准的第一个版本于2013年10月完成,与前一代视频编码标准h.264/mpegavc相比,其节省了大约50%的比特率或是提供了等效的感知质量。虽然hevc标准与其前身相比提供了显著的译码改进,但是有证据表明,通过使用附加的译码工具,可以实现超越hevc的更高的译码效率。据此,vceg和mpeg全都启动了有关新的译码技术的探索性工作,以便将未来的视频编码标准化。在2015年10月,itu-tvecg和iso/iecmpeg组建了联合视频探索小组(jvet),从而开始对相比于hevc能够大幅增强译码效率的先进技术进行重要研究。同月,针对未来的视频译码探索工作,还建立了名为联合探索模型(jem)的软件代码库。jem参考软件以jct-vc为hevc开发的hevc测试模型(hm)为基础。优选地,所提议的任何附加译码工具都可以被集成在jem软件中,并且可以用jvet通用测试条件(ctc)来检测。



技术实现要素:

例示实施例包括在视频编码和解码(统称为“译码”)中使用的方法。在一个示例中,所提供的是一种用于对包含了包括当前图像在内的多个图像的视频进行编码的方法。针对当前图像中的至少一个当前块(作为示例,它可以是译码单元或子译码单元块),识别用于所述块的帧速率上变换(fruc)预测的第一运动矢量候选集合。所述第一运动矢量候选集合可以是主运动矢量,其中每一个主运动矢量都与一个或多个初始运动矢量的聚类(cluster)相关联。基于第一运动矢量候选集合来定义搜索中心。所述搜索中心可以位于由所述第一集合中的一个或多个运动矢量候选的平均值确定的位置。

确定搜索窗口,所述搜索窗口具有选定的宽度且以搜索中心为中心。第一运动矢量候选集合会通过剪裁所述第一集合中落在搜索窗口之外的任何运动矢量而被处理,从而落入搜索窗口以内。可以执行对选定的运动矢量的搜索,该搜索会从经过处理的第一运动矢量候选集合中选择运动矢量。

在一些例示实施例中,所述搜索窗口的宽度会被选择,以便允许使用存储器缓存来执行搜索,同时限制访问外部存储器的次数。

运动细化搜索可以以选定的运动矢量为开始来执行。在一些实施例中,细化搜索的搜索范围是受到约束的,由此允许使用存储器缓存来执行细化搜索并且限制主内存的访问次数。在一些实施例中,搜索迭代次数会受到约束,以便限制译码复杂度。

在一些实施例中,第一运动矢量候选集合是使用高级运动矢量预测或别的技术识别的初始候选集合。在一些实施例中,该初始运动矢量候选集合会通过执行聚类算法而被聚集,并且每一个聚类的典型运动矢量(例如质心)将被贡献给第一集合。在一些实施例中,聚类的数量会受到约束,以便限制译码复杂性。

所选择的(并且在一些情况下是细化的)运动矢量可被用于预测当前块。在一种由编码器执行的方法中,关于当前块的预测会与输入块相比较,确定残差,并且所述残差会被编码在比特流中。在一种由解码器执行的方法中,从比特流解码残差,并且会将其添加到预测中,以便生成可被显示的(有可能在滤波之后)的重建块。

所公开的实施例进一步包括编码器和解码器,其具有处理器以及存储了可通过操作来执行这里描述方法的指令的非暂时性计算机可读存储介质。所公开的实施例进一步包括用于存储使用这里描述的任何方法产生的比特流的非暂时性计算机可读存储介质。

附图说明

图1是基于块的视频编码器的功能框图。

图2是视频解码器的功能框图。

图3a-3b示出了使用模板匹配(图3a)和双边匹配(图3b)的帧速率上转换(fruc)。

图4是用于jem实施方式中的fruc的运动推导过程的流程图。

图5是关于合并模式中的空间运动矢量候选的位置的例图。

图6是关于在fruc中使用的运动场插值的例图。

图7示出了在为fruc应用了mv聚类之后的参考采样访问的示例。

图8是用于子cu级运动搜索的存储器访问的图示。

图9是根据一些实施例的使用了用于cu级/子cu级初始运动搜索的受约束的搜索范围的fruc运动搜索处理的流程图。

图10a-10b示出了一些实施例中的搜索中心选择方法的示例。图10a示出的是基于多数的选择,并且图10b示出的是基于平均的选择。

图11示出了在将受约束的搜索范围应用于初始cu级/子cu级运动搜索之后的例示实施例中的存储器访问。

图12是在将受约束的搜索范围应用于cu级运动细化、子cu级初始运动搜索以及子cu级运动细化之后的例示实施例中的fruc运动搜索处理的流程图。

图13是在将统一的搜索范围应用于整个fruc处理之后的例示的fruc运动搜索处理的流程图。

图14是示出了译码比特流结构的示例的图示。

图15是示出了例示通信系统的图示。

图16是示出了例示无线发射/接收单元(wtru)的图示。

具体实施方式

基于块的视频译码

hevc测试模型(hm)和联合探索模型(jem)软件都是在基于块的混合视频译码框架上构建的。图1是基于块的混合视频编码系统的框图。输入视频信号102被以逐块的方式处理。在hevc中,扩展块大小(其被称为“译码单元”或cu)被用于有效压缩高分辨率(1080p及以上)视频信号。在hevc中,cu可以高达64x64个像素。cu可被进一步分割成预测单元(pu),其中所述预测单元会被应用单独的预测方法。每一个输入视频块(mb或cu)都可以被执行空间预测(160)和/或时间预测(162)。空间预测(或“帧内预测”)会使用来自同一视频图像/切片中的已译码的相邻块的采样(其被称为参考采样)的像素来预测当前视频块。空间预测减小了视频信号中固有的空间冗余度。时间预测(也被称为“帧间预测”或“运动补偿预测”)使用源于已译码的视频图像的重建像素来预测当前视频块。时间预测减小了视频信号中固有的时间冗余度。用于指定视频块的时间预测信号通常是由指示了当前块与其参考块之间的运动量和运动方向的一个或多个运动矢量用信号通告的。此外,如果支持多个参考图像(如同最近的视频编码标准(例如h.264/avc或hevc)那样),那么还会附加地为每一个视频块发送其参考图像索引;并且该参考索引被用于识别时间预测信号源自参考图像存储器(164)中的哪一个参考图像。在空间和/或时间预测之后,编码器中的模式决策块(180)选择最优的预测模式(例如基于速率失真优化方法)。然后,从当前视频块(116)中将会减去预测块(116);并且将会使用变换(104)和量化来去相关预测残差。经过量化的残差系数将被反量化(110)和反变换(112),以便形成重建残差,然后,所述重建残差会被加回到预测块(126)中,以便形成重建视频块。在将重建视频块放入参考图像存储器(164)并将其用于译码将来的视频块之前,在该重建视频块上还可以进一步应用(166)环路滤波处理,例如去块滤波器和自适应环路滤波器。为了形成输出视频比特流120,编码模式(帧间或帧内)、预测模式信息、运动信息以及量化残差系数全部会被发送到熵编码单元(108),以便被进一步的压缩和封装以形成比特流。

图2是基于块的视频解码器的框图。首先,在熵解码单元208对视频比特流202执行解封装和熵解码处理。译码模式和预测信息被发送至空间预测单元260(如果执行帧内译码)或时间预测单元262(如果执行帧间译码),以便形成预测块。残差变换系数则被发送到反量化单元210和反变换单元212,以便重建残差块。然后,在226,预测块与残差块将被加在一起。在被存入参考图像存储器264之前,重建块可以进一步经历环路滤波处理。然后,参考图像存储器中的重建视频将被送出以驱动显示设备,以及用于预测未来的视频块。

在hevc中,运动信息(包括mv和参考图像索引)由编码器确定并被显性地发送到解码器。因此,对于帧间编码块来说,在译码运动参数方面将会花费大量开销。为了节省信令运动信息开销,在当前jem中支持一种用于帧间译码且名为帧速率上变换(fruc)的译码模式。在为cu启用该模式时,mv和参考图像索引是不会用信号通告的;取而代之的是,在解码器端会通过模板匹配或双边匹配技术来推导该信息。图3a-3b示出了在fruc中使用的mv推导过程。在图3a的示例中使用了模板匹配,其通过寻找当前图像306中的当前cu304的模板302(顶部和/或左侧相邻采样)与参考图像310中的参考块的参考模板308之间的最优匹配来推导当前cu的mv。最优匹配可被选为是在当前模板与参考模板之间实现最低匹配成本(例如最低绝对差值和(sad))的mv。在图3b中使用的是双边匹配,其通过寻找沿着两个不同参考图像中的当前块的运动轨迹上的两个块354、356之间的最优匹配来推导当前块352的运动信息。双边匹配的运动搜索处理是以运动轨迹为基础的,由此,分别指向两个参考块354、354的运动矢量mv0和mv1应该与当前图像和两个参考图像(t0和t1)中的每一个参考图像之间的时间距离成比例。为了确定在双边fruc模式中使用的运动矢量配对mv0和mv1,运动矢量候选将被检查。针对每一个候选将会单独使用列表-0运动矢量和列表-1运动矢量来执行运动搜索,并且所选择的是具有最低匹配成本(例如sad)的运动矢量配对。关于使用模板匹配模式还是双边匹配模式的决定是以速率-失真(r-d)成本优化为基础的。产生最小速率-失真成本的模式将被选择作为当前cu的fruc模式。

模板匹配模式和双边匹配模式的运动推导处理包括四个步骤:cu级运动搜索、cu级运动细化、子cu级运动搜索、以及子cu级运动细化。在cu级运动搜索中会基于模板匹配或双边匹配来推导出关于整个cu的初始运动(包括mv和参考图像索引)。特别地,首先将会生成mv候选列表,并且将会选择产生最小匹配成本的候选作为cu的起始mv。然后,在cu级运动细化阶段将会围绕该起始点执行基于模板匹配或双边匹配的局部搜索,并且会将具有最小匹配成本的mv当作是整个cu的mv。随后,在子cu级运动搜索阶段和子cu级运动细化阶段,通过将当前cu分割成多个子cu以及以从cu级推导的mv作为起始搜索点来推导每一个子cu的运动信息,将会进一步细化运动信息的粒度和精度。图4是当前jem中的fruc模式的运动推导处理的流程图。

帧速率上转换

cu级运动搜索。

在cu级运动搜索中会应用一种基于候选的搜索方法来推导当前cu的初始mv。该方法通过选择一组唯一的mv候选来工作,针对所述mv候选将会计算其模板匹配或双边匹配(取决于为当前cu应用的fruc模式)的成本量度;将成本降至最低的mv候选会被选择作为整个cu的初始mv。特别地,在cu级运动搜索中会评估如下所述的mv候选:

1)在通过应用fruc来预测采用高级运动矢量预测(amvp)模式的当前cu的一个或多个mv时,从jem中的avmp推导得到的mv预测器;

2)常规的合并候选的mv,其中包括五个空间候选a1、b1、b0、a0和b2(如图5中所述),以及通过时间运动矢量预测(tmvp)从时间相邻图像的并置块的mv中推导得到的时间候选;

3)通过如在“图像级mv字段插值”章节描述的图像级mv字段插值处理产生的处于位置(0,0)、(w/2,0)、(0,h/2)以及(w/2,h/2)的四个插值mv,其中w和h是当前cu的宽度和高度;以及

4)当前cu的顶部和左侧相邻mv。

此外,当在cu级生成mv候选列表时,会执行修剪操作,由此不会在mv候选冗余的情况下(也就是在mv候选与mv候选列表中的已有mv候选具有相同运动的情况下)将其添加到mv候选列表中。这种用于生成候选列表的技术可以在如下所述的步骤904、1204和1304中使用。

此外,在应用双边匹配模式时,每一个有效候选的mv都会被用作输入,以便基于这样一种假设来产生mv配对,即两个mv处于当前cu的相同运动轨迹上。举例来说,一个有效mv是位于参考列表a(a=0,1)的(mva,refa)。那么,在另一个参考列表b上会发现与之配对的双边mv的参考图像refb,以使refa和refb在时间上关于当前图像是对称的。如果参考列表b中没有这种与refa对称的参考图像refb,那么将会通过选择与refa不同的参考图像来确定refb,并且该refb在列表b与当前图像的时间距离最小。在确定了refb之后,通过以如下方式按比例缩放当前图像与refa和refb之间的逐个时间距离的mva,可以推导出mvb,

其中以及是mva和mvb的水平和垂直运动分量;τa和τb是参考图像refa和refb与当前图像的时间距离。基于现有设计,在cu级运动搜索阶段可以包含多达15个mv。

子cu级运动搜索

在cu级运动搜索中,相应的mv是在cu级推导的(所推导的mv用于代表整个cu的运动)。然而,考虑到当前cu有可能会覆盖与关联于不同运动的不同对象相对应的区域,这种粒度有可能还不够好。因此,为了提高所推导的mv的精度,使用fruc模式(模板匹配或双边匹配)编码的每一个cu会被进一步分割成m×m个子cu,并且用于每一个子cu的单个mv是单独推导的。m值是以等式2中的方式计算的,其中d是预先定义的分割深度约束,其在jem中被设置成3。

此外,与cu级运动搜索相似,每一个子cu的mv是通过先生成mv候选列表以及选择将匹配成本最小化的mv候选作为子cu的mv来推导的。在一些实施例中,子cu级别的mv候选列表包括:

1)在cu级运动搜索中确定的mv;

2)来自顶部、左侧、左上和右上的空间相邻的cu的mv;

3)来自时间参考图像的并置mv的缩放版本;

4)从通过高级时间运动矢量预测(atmvp)推导得到的候选中获取的多达4个mv;以及

5)从通过空间-时间运动矢量预测(stmvp)推导得到的候选中获取的多达4个mv。

此外,在子cu运动搜索期间,只有在特定的mv候选指向起始cu级mv指示的相同参考图像时,才可以将该mv候选包含在mv候选列表中;否则,该mv候选将被排除在匹配成本计算之外。由于cu内部的所有子cu的mv全都指向相同的参考图像(与起始cu级mv相关联的参考图像),因此,当在硬件中实施fruc时,这样做将会减少存储器带宽消耗。由此,只有这些参考图像会被访问,以便在子cu级发现最优的mv。基于现有设计,在cu级运动搜索阶段可以包括多达17个mv。这种用于生成子cu级mv候选列表的技术可以在以下论述的步骤918、1218和1318中使用。

图像级mv场插值

在启用fruc时,在对每一个帧间图像进行译码之前,将会基于单边mv投影来为该图像中的所有的4×4块生成插值运动字段。然后,在cu级运动搜索中会使用插值mv来搜索最优的mv。图6示出了用于在当前图像中生成插值mv的处理。特别地,针对当前图像(curpic)的所有的两个参考图像列表中的每一个参考图像(currefpic),其运动字段会在4×4的块的等级上被检查。针对参考图像中的每一个4×4的块,如果其mv通过当前块中的4×4块并且所述4×4的块尚未被指配插值mv,那么所述4×4参考块的mv会依照当前图像与参考图像(td0)之间的时间距离以及参考图像与其自身参考图像(td1)之间的时间距离的比值缩放到当前图像。并且,经过缩放的mv将被指配给当前图像中的4×4的块。如果没有指配给4×4块的经过缩放的mv,那么在插值运动字段中会将所述块的运动标记成不可用。

cu级和子cu级运动细化

由于搜索候选数量有限,从cu级运动搜索和子cu级运动搜索中推导的mv并不是始终都足以精确到代表当前cu的真实运动,由此可能会降低运动补偿预测的效率。为了进一步提高所推导的mv的精度,在cu级运动搜索和子cu级运动搜索之后会进一步应用mv细化处理。mv细化是一种借助于将模板匹配或双边匹配的成本量度最小化的基于样式的局部mv搜索处理。特别地,在当前jem中支持两种样式,其分别是处于cu级运动细化的菱形搜索模式以及处于子cu级运动细化的十字形搜索模式。对于cu级运动细化和子cu级运动细化来说,首先以四分之一采样的精度来执行mv搜索,然后以八分之一采样的精度来执行附加的局部运动细化(围绕最优的四分之一采样的mv)。此外,当mv指向分数采样位置时,不同于在hevc中使用8抽头插值滤波器,取而代之的是为模板匹配和双边匹配模式使用双线性插值滤波器,以便降低编码/解码复杂度。此外,应该提到的是,在cu级运动细化和子cu级运动细化中,从细化搜索会一直重复直至在预先定义的范围(在当前jem中,其被设置成等于8个整数亮度采样)中不再更新搜索中心的意义上讲,搜索处理是不受限制的。

基于mv聚类的fruccu/子cu运动搜索

如上所述,在现有fruc中的cu级运动搜索和子cu级运动搜索中,最优的mv是是从一组唯一的mv候选中选择的。作为示例,在cu级运动搜索和子cu级运动搜索中分别需要检查多达15和17个mv候选。由于需要多次执行运动补偿预测来为每一个mv候选产生预测信号,因此,这样做会导致编码器和解码器的复杂度显著提升。此外,由于要从时间参考图像中取回参考采样以计算成本量度,因此,这种基于候选的搜索处理极大地增加了硬件实施方式的存储器带宽。对于mv候选有可能来自不同参考图像的cu级运动搜索来说,此类存储器带宽问题有可能变得尤为关键。因此,编码器/解码器会频繁地将存储器访问切换到不同的参考图像。这样做可能会增大缓存读取不命中的可能性,并且由此会导致显著增加外部存储器访问。

为了降低复杂性以及改善存储器带宽使用情况,针对cu级和子cu级的运动搜索处理,提出了一种mv聚类方法。特别地,所提出的方法包括三个步骤:1)参考图像选择,2)mv缩放和修剪,以及3)mv聚类。

参考图像选择

为了避免频繁地将存储器访问切换到多个参考图像,在基于mv聚类的运动搜索中会为处于cu级和子cu级运动搜索的指定参考图像列表选择单个参考图像。为了选择参考图像,多数规则将被应用,以便选择候选列表中的mv候选最常使用的指定参考图像列表的参考图像索引。特别地,假设有k个mv候选并且在参考图像列表lx(x=0,1)中有m个参考图像。更进一步,假设这k个mv候选与lx中具有索引r0,r1,…,rk-1的参考图像选集相关联,其中ri∈[0,m-1],那么所选择的参考图像索引被确定成是:

其中1n(ri)是如下定义的指示符函数:

此外,由于使用了上述参考图像选择方法来确定指定参考图像列表(即l0或l1)的最优参考图像索引,因此,这些方法可被直接应用于基于单边的运动推导(例如模板匹配模式),其中l0和l1中的mv是以独立方式推导的。在应用双边匹配模式时,mv是基于两个mv处于当前块的相同运动轨迹这一假设而被成对推导的。因此,在将所提出的参考图像选择方法应用于双边匹配模式时,还可以通过应用附加的约束条件来确保所选择的l0和l1中的参考图像满足启用双边匹配的条件(两个参考图像在时间上是关于当前图像对称的,或者与当前图像的时间距离在参考图像列表中是最小化的)。这种参考图像选择方法可以在如下所述的步骤906、1206和1306中使用。

mv缩放和修剪

在确定了参考图像索引之后,mv候选列表会通过将初始mv候选缩放至所选择的参考图像索引指示的相同参考图像而被更新。在不丧失一般性的情况下,参考图像列表l0将被用作示例来示出mv缩放处理。举例来说,考虑到第i个mv候选mvi,如果其原始l0参考图像索引(即)等于所选择的l0参考图像索引那么经过更新的mv候选mvi'被直接设置成mvi;否则(不等于),mvi'被设置成是以如下方式计算的mvi的缩放版本:

其中τi是指示的参考图像与当前图像之间的时间距离;τ*指示的参考图像与当前图像之间的时间距离。此外,由于不同mv候选的值在mv缩放操作之后有可能会变成完全相同的值(例如因为精度损失),因此将会执行修剪处理来移除任何重复的条目,由此在最终的列表中只保持唯一的mv候选。

mv聚类

为了进一步降低初始运动搜索的复杂度,可以使用mv聚类方法来减少将要在cu级运动搜索和子cu级运动搜索中被计算成本量度的mv候选的总数。通常,该mv聚类方法的目的是将候选列表中的mv划分成l个群组,以使落入相同群组的所有mv候选的平均距离最小化,其中l是最终候选列表中的mv元素的数量。在参考图像选择和mv缩放/修剪处理之后,mv候选列表中的mv被表示成{mv0’,mv1’,…,mvn-1’},其中n是mv候选列表中的元素的总数。所提出的mv聚类方法的目的是将n个mv划分成l(l≤n)个群组s={s0,s1,...,sl-1},以使以如下方式公式化的聚类内部的距离最小化:

其中μi是si的质心。为了解决等式6中的聚类优化问题,经典的k均值细化算法(也被称为lloyd算法)可被适配成将mv聚集在初始候选列表中。特别地,该算法会通过在遍历所有mv候选时以交替的方式重复以下的两个步骤来进行。

1)指配步骤:计算mv候选与每一个mv聚类的质心的距离,并且找出产生最小距离的聚类。如果最优距离小于预先定义的距离阈值,则将该mv候选添加到聚类中;否则创建新的聚类并将该mv候选添加到所述新的聚类中。

2)更新步骤:在将新的mv候选添加到聚类中时,以如下指示的方式将新的平均值更新为该聚类中的所有mv候选(包括新添加的候选)的质心:

其中代表第t次聚类迭代时的mv群组si中的元素的数量;是经过更新的si的质心。

考虑到所推导的mv聚类,所产生的聚类的质心mv可被用作最终mv候选,以便通过比较成本量度来推导cu级和子cu级的初始mv。在一些实施例中,每一个初始mv候选都会被执行一次指配步骤和更新步骤。在一个这样的实施例中,第一运动矢量候选初始被设置成第一聚类的质心。如果第二运动矢量候选小于与第一质心的阈值距离,则将第二运动矢量候选添加到第一聚类中,并且重新计算第一聚类的质心;否则将会产生第二聚类,并且用第二运动矢量作为其质心。该处理会继续进行,其中每一个后续的候选运动矢量要么被指配给具有最接近的质心的已有聚类(随后更新质心),要么被用于繁衍新的聚类。候选mv可以依照预定顺序来处理,以确保该处理在编码器和解码器端给出相同的聚类结果。该聚类方法可以在如下所述的步骤908、920、1208、1220、1308以及1320中使用。

如在2017年12月15日提交的名称为“低复杂度的帧速率上变换”的美国临时专利申请序列号62/599,238中描述的那样,附加的细节和替换的聚类方法也是可以实施的。

在一些实施例中解决的问题

如上所述,基于聚类的运动搜索会将初始mv候选分组到若干个集合中,并且仅仅为每一个mv群组确定一个主mv(例如mv质心)。如此一来可以减少执行成本量度所要测试的mv候选的总数。虽然mv聚类方法可以有效降低fruc运动推导(cu级和子cu级)的复杂度,但在实际的编码器/解码器硬件中仍旧难以实施现有fruc设计中的若干个方面。特别地,在本公开中识别出了当前fruc中存在的下列复杂性问题。

一个问题是,在基于聚类的运动搜索开始时将会应用参考图像选择处理,以便基于初始候选列表(cu级或子cu级)中的mv的参考图像索引来确定每一个参考图像列表的最佳参考图像。不同于要求频繁地将存储器访问切换到不同参考图像的mv搜索方法,参考图像选择处理会将所有mv候选缩放到所选择的参考图像(在l0和l1中)。因此,所有被转发到mv聚类处理的mv候选都与相同的参考图像相关联。然而,mv聚类方法是通过最小化聚类内部距离来将mv分组在初始候选列表中的。因此,如果初始候选列表包含了具有显著特性的mv,那么将会产生很多聚类,并且这些聚类的质心彼此有可能相距甚远。在这种情况下,编码器/解码器会频繁地将存储器访问切换到所选择的参考图像中的不同区域。这样做有可能会增加缓存读取未命中的可能性,并且由此可能导致显著增加外部存储器访问。图7显示了一个用于例证在将mv聚类处理应用于fruccu/子cu级运动初始搜索之后出现的存储器访问带宽问题的实例。在图7的示例中,mv聚类处理之后总共有5个不同的主mv候选(mv群集的质心)。由于这些mv候选具有不同的特性,针对所选择的参考图像将会执行5次单独的存储器访问,以便推导出当前cu/子cu的初始mv。在实际的编码器/解码器实施过程中,这样做有可能需要大量的存储器带宽。

另一个问题源于这样一个事实:对于每一个fruccu(模板匹配或双边匹配),其可以进一步被分成多个子cu,每一个子cu都可以推导其自身的运动,以便提高mv精度。此外,通过使用在子cu级初始搜索中确定的mv作为起始点,将会为每一个子cu执行以下的mv细化处理。虽然每一个子cu的mv细化处理被局限于围绕相应起始点的预先定义的搜索窗口(例如8个整数亮度采样),但整个子cu级运动搜索的搜索范围则不受限制,因为处于cu内部的子cu的初始mv是无界的。图8显示了一个用于例证在子cu级运动搜索阶段执行的存储器访问处理的示例,其中当前cu被分成4个子cu,并且虚线方块围绕了每一个子cu的相应的本地搜索窗口(例如来自起始mv的8个整数亮度采样)。从图8中可以看出,在设置每一个子cu的相应搜索起点之后,它会频繁地切换(图8中的四个不同的存储器访问)访问参考图像中的不同区域。在实践中,对于编码器/解码器硬件来说,这种设计有可能需要使用大量的存储器带宽。

另一个问题涉及fruc运动细化(cu级运动细化或子cu级运动细化),所述细化是是一个通过从初始mv开始以迭代方式重复基于样式的运动搜索(例如菱形搜索和十字形搜索)来提升所推导的mv的精度的局部mv搜索处理。然而,在现有设计中并未规定用于fruc运动细化的迭代的最大次数。换句话说,除非搜索中心在两个连续的搜索迭代中保持不变,否则该细化处理将持续进行。基于对已解码比特流的分析,统计结果显示出搜索迭代次数可能会多达约100次。由于没有对每一个fruccu的计算复杂性做出限制,因此,这种设计对于实际的硬件实施方式而言并不友好。考虑到fruc会使用相邻的重建采样来导出当前块的运动信息,这种无约束的运动搜索过程将会降低并行处理能力,并且会使针对实际的编码器/解码器硬件实施方式的流水线设计复杂化。

为了解决这些问题,本公开中提出的各种方法通过操作来降低fruc的平均复杂度以及最差情况下的复杂度。这里描述的不同实施例包括以下方面。在一些实施例中,所提供的是用于约束在不同的fruc运动搜索阶段推导最优mv的搜索范围的方法。例示的方法可以在统一的搜索区域执行与fruc相关的运动搜索处理,以便将外部存储器访问总数减至最少。在一些实施例中,其中通过提出约束条件来限制在fruc运动细化处理中执行的最大搜索迭代,以及限制mv聚类处理产生的主mv候选的总数。这些实施例目的是降低fruc在最差情况下的复杂性。

具有受约束的搜索范围的fruc运动搜索

如上所述,在不同的fruc运动搜索处理中可以生成多个初始mv候选,例如在mv聚类处理之后的主mv候选以及初始的子cu级运动搜索之后的每一个子cu的初始mv。由于这些初始mv有可能以较大的距离分离,因此有可能需要对相应的参考图像执行多次外部存储器访问,以便推导出当前cu/子cu的最优mv。对于硬件编码解码器的实施方式来说,这种情况可能会导致大幅增加存储器带宽。为了解决这个存储器带宽问题,在下文中提出了处于不同fruc运动搜索阶段的受约束的搜索范围,以便可以通过单次访问外部存储器来获取指定fruc运动搜索所需要的所有参考采样。

cu级初始运动搜索的约束搜索范围

在一些实施例中,供cu/子cu级初始运动搜索使用以减少主mv候选的存储器带宽使用的受限搜索空间是在mv聚类处理之后产生的。图9示出了在将所提出的受约束的搜索范围应用于cu/子cu级初始运动搜索处理之后的经过修改的fruc运动搜索过程。

在图9中,在cu级初始运动搜索(902)中会产生初始cu级mv候选列表(904),并且会选择参考图像(906)。该mv候选列表中的mv将被聚类(908),其中每一个聚类是由主mv表示的。聚类的主mv可以是该聚类中的mv候选的质心。搜索中心和搜索范围是基于主mv确定的(910)。这些主mv可以通过恰当地剪裁所述主mv而被处理(911),以使其落入搜索范围以内,并且将会通过执行搜索来选择经过处理的最优的主mv(912)。在所选择的mv上将会执行cu级运动细化(914)。在cu级运动细化之后则会执行子cu级初始运动搜索(916)。针对cu中的每一个子cu,都会生成初始子cu级mv候选列表(918),并且子cu级mv将被聚类(920),其中每一个聚类都是由主mv表示的。用于子cu级初始运动搜索的搜索中心和搜索范围将被确定(922),并且mv会通过剪裁而被处理(923),以便落入子cu级搜索范围以内。在该搜索区域以内将会选择经过处理的最优主mv(924),并且将会执行子cu级别运动细化(926)。

更详细地说,如图9所示,在通过mv聚类处理(908)生成主mv候选(例如mv聚类的质心)之后,搜索中心将被确定(910),以便选择初始cu/子cu级mv。为了选择搜索中心,在一些实施例中会应用多数规则来选择包含了cu/子cu级运动候选列表中的大多数初始mv候选的mv聚类的质心。特别地,假设从初始mv候选列表的m个mv候选(mv0,mv1,…,mvm-1)中产生了k个mv聚类(c0,c1,…,ck-1),所选择的搜索中心将被确定成是:

其中1n(mvi)是如下的指示符函数:

图10a显示了一个用于例证以上的搜索中心选择方法的示例。在图10a中,初始mv候选列表中总共有29个mv候选(即m=29),并且其被分成了3个mv聚类(即k=3):聚类1002、1004、1006。此外,在该示例中,每一个mv聚类覆盖的初始mv候选的数量在顶部聚类中是20,在左下的聚类中是6,在右下的聚类中是3。聚类1002、1004和1006的质心分别在1003、1005和1007指示。依据等式8中的基于大多数的选择方法,所选择的搜索中心被设置成是具有20个初始mv候选的mv聚类的质心1003(用五边形表示)。当初始mv候选稀疏分布时,包含在不同mv聚类中的初始mv候选的数量有可能会较为相似。在这种情况下,不同的mv聚类可以发挥相同作用以推导当前cu/子cu的最优运动。

在本公开的另一个实施例中,当所产生的聚类在初始mv候选列表中显示出相似的mv候选覆盖时(例如没有处于其他mv聚类之上的占主导地位的mv聚类),这时建议取所有mv聚类的质心的平均值,以及使用该平均值作为后续的cu/子cu级初始运动搜索的搜索中心。图10b显示了一个用于例证基于平均值的搜索中心选择方法的示例,其中三个mv聚类1010、1012、1014包含相同数量的初始mv候选。所述mv聚类的相应质心由三角形1016、1018、1020示出。所产生的聚类是否具有相似的初始mv候选覆盖可以通过应用不同的方法来确定。在一个示例中,所使用的可以是(i)包括在具有最大覆盖范围的mv聚类中的mv候选的数量与(ii)包括在具有最小覆盖范围的mv聚类中的mv候选的数量之间的差值。如果该差值小于预先定义的阈值,则可以认为所产生的聚类具有相似的覆盖范围(也就是说,所应用的应该是基于平均来确定搜索中心的处理);否则,不同聚类的相应覆盖范围将认为是不平衡的,由此应该应用基于大多数来确定搜索中心的处理。在图10b的示例中,响应于确定聚类1010、1012、1014具有相似的初始mv候选覆盖,所选择的搜索中心是质心1016、1018、1020的平均值。位于1022的五角形示出了所选择的搜索中心。

应该指出的是,图10a和10b全都示出的是所选择的搜索中心是一个或多个主mv候选的平均值的实施例。特别地,在图10a的实施例中,所选择的搜索中心是仅仅一个主mv候选的平均值,并且由此等于该候选自身,而在图10b的实施例中,所选择的搜索中心是一个以上的mv候选的平均值。

再次参考图9,在计算了搜索中心之后将会确定搜索窗口(910),其中该搜索窗口的中心被设置成所选择的搜索中心,并且其宽度被设置成所选择的范围(例如预先定义或是用信号通告的范围)。此后将会通过将每一个主mv剪裁到搜索窗口中来更新主mv(例如mv聚类的质心)(911)。基于图7中的相同示例,图11示出了在将所提出的搜索约束应用于cu/子cu级初始运动搜索之后的外部存储器访问。基于图7与图11之间的比较可以看出,与无约束的运动搜索(其在该示例中使用了针对参考图像的五次单独的存储器访问)相比,受约束的运动搜索只使用了针对相应区域(如搜索窗口1102所示)的一次单独的外部存储器访问就取回了确定用于初始cu/子cu级运动搜索的最优的mv(912)所需要的所有参考采样。这样做有效地减小了供fruc使用的编码器/解码器硬件的存储器带宽。

在以上描述中,应用于cu级初始运动搜索和子cu级初始运动搜索的是相同的搜索范围。然而,考虑到子cu级运动搜索是以从cu级运动搜索中推导的mv为基础的,为每一个子cu产生的初始mv候选与在cu级产生的初始mv候选相比通常更具相关性。因此,为子cu级运动搜索使用的搜索范围小于为cu级运动搜索使用的搜索范围是合理的。这样做可以进一步减小将要从参考图像访问的区域的尺寸。

在上文中,所提出的受约束的cu/子cu级初始运动搜索是在应用了mv聚类处理的情况下描述的。然而,在实践中有可能会独立使用受约束的运动搜索。也就是说,受约束的运动搜索是可以在使用或未使用mv聚类处理的情况下应用的。在没有应用mv聚类处理时,所述受约束的运动搜索可以进一步考虑初始mv候选所源于的参考图像,并且可以被单独应用于来自相同参考图像的mv候选的集合。

用于cu级运动细化、子cu级初始运动搜索以及子cu级运动细化的受约束的搜索范围

如上所述,考虑到当前cu内部的每一个子cu都可以推导出其自身的初始cu,并且这些cu彼此是相互远离的,子cu级运动搜索的搜索区域通常是受到约束的。在硬件实施方面,这种设计有可能要求使用大量的存储器带宽。为了解决此类问题,在一些实施例中提出为cu级初始运动搜索之后的所有fruc相关运动搜索处理添加搜索范围约束条件,这其中包括cu级运动细化,子cu级初始运动搜索以及子cu级运动细化。

图12示出了在将所提出的搜索范围应用于cu级运动细化、子cu级初始运动搜索以及子cu级运动细化之后的经过修改的fruc运动搜索处理。特别地,在图12中,搜索窗口是在cu级初始运动搜索之后通过将cu级初始mv设置成搜索中心来确定的(1212);因此,后续的cu级运动细化仅仅是在该搜索窗口内部执行的。在子cu级,为每一个子cu获取的所有mv候选都被剪裁(1221)到搜索窗口区域,并且每一个子cu的运动细化仅仅在该搜索窗口内部才被允许。如此一来,其在获取了cu级初始mv之后可以使用针对外部参考图像的单次存储器访问。相比之下,其他fruc设计可能需要用于每一个子cu的运动搜索的外部存储器访问,并且在一个cu内部有可能会存在多达64个子cu。因此,在确定了cu级初始mv之后,其他fruc方法可以使用多达64个单独的存储器访问来生成cu的运动信息。从这个意义上讲,例示实施例可以减少fruc的存储器带宽使用。

在根据图12的方法中,在cu级初始运动搜索(1202)中会产生初始cu级mv候选列表(1204),并且将会选择参考图像(1206)。mv候选列表中的mv将被聚类(1208),其中每一个聚类是由主mv表示的。聚类的主mv可以是聚类中的mv候选的质心,并且最优的主mv是通过执行搜索而被选择的(1210)。对于cu级运动细化来说,其搜索范围将被确定(1212),并且会在该搜索范围内部执行cu级运动细化(1214)。在cu级运动细化之后则会执行子cu级初始运动搜索(1216)。cu中的每一个子cu都会被生成一个初始子cu级mv候选列表(1218),并且会对子cu级mv执行聚类处理(1220),其中每一个聚类是由主mv表示的。这些主mv会根据需要并通过剪裁而被处理(1221),以使所述主mv落入搜索窗口以内。最优的mv是在所定义的搜索范围内部从经过处理的主mv中选择的(1222)。在子cu级运动搜索(1216)之后,在所定义的搜索范围内部将会执行子cu级运动细化(1224)。

处于一个统一的搜索范围中的fruc运动搜索

虽然如上所述的受约束的运动搜索方法与其他fruc方法相比可以提供显著的存储器带宽减少,但有一些这样的实施例仍旧会使用至少两次针对参考图像的外部缓存的单独的存储器访问:其中一次访问是供cu级初始运动搜索生成cu级初始mv,另一次访问则是供其他fruc运动搜索处理产生处于当前cu内部的子cu的mv。为了进一步减小fruc存储器带宽,所提出的是将统一的搜索范围用于所有的fruc相关运动搜索处理,由此仅仅为整个fruc处理使用针对外部参考图像的单次存储器访问。图13描述了在将统一的搜索范围应用于整个fruc运动搜索处理之后的经过修改的fruc运动推导处理。更具体地说,在mv聚类处理之后(1308)会基于等式8和9而从主mv候选中确定搜索中心,并且还会确定搜索窗口(1310),该搜索窗口的中心被设置成所选择的搜索中心,并且其宽度被设置成所选择的范围。

后续的cu级运动细化(1314)和子cu级运动搜索——包括子cu级初始运动搜索(1316)和子cu级运动细化(1324)——只被允许在所定义的搜索窗口内部搜索mv候选。在图13的示例中,通过所提出的统一的搜索范围,仅仅会使用针对所选择的参考图像的单次外部存储器访问来取回处于搜索窗口尺寸以内的参考采样,以便生成整个cu的运动信息。此外,由于如上所述的统一搜索方法减少了外部存储器访问的次数,因此,合理的做法是与如上所述的实施例中的受约束的搜索方法所使用的搜索空间相比使用更大的搜索空间,以便更好地在编码性能与存储器带宽使用之间进行权衡。

如图13所示,在cu级初始运动搜索中(1302)会生成初始cu级mv候选列表(1304),并且会选择参考图像(1306)。mv候选列表中的mv将被聚类(1308),其中每一个聚类均由主mv表示。聚类的主mv可以是该聚类中的mv候选的质心。搜索中心和搜索范围是基于主mv确定的(1310)。通过酌情剪裁主mv来对其进行处理(1311),以使其落入搜索范围以内,此外还会执行搜索来选择经过处理的最优的主mv(1312)。cu级运动细化是针对所选择的mv执行的(1314)。在cu级运动细化之后将会执行子cu级初始运动搜索(1316)。cu中的每一个子cu都会被生成初始子cu级mv候选列表(1318)并且所述子cu级mv会被聚类(1320),其中每一聚类均由主mv表示。所述主mv通过酌情剪裁(1321)而被处理以落入搜索范围以内。在该搜索区域内部将会选择经过处理的最优的主mv(1322),并且将会执行子cu级运动细化(1324)。

用于fruc运动搜索的自适应搜索范围

在关于如上所述的受约束的fruc运动搜索方法的一些实施例中,处于一个视频序列中的所有图像都被应用相同的搜索范围。然而,在替换实施例中,在不同的等级(例如序列级,图像级以及块级)可以自适应地调整该搜索范围;并且每一个适配等级都可以提供不同的性能/复杂性权衡。此外,在应用自适应搜索范围的时候可以应用不同的方法来确定最优搜索范围。举例来说,当在图像级适配搜索范围时,依照当前图像与其参考图像之间的相关性,一些图像中的视频块会显示稳定运动(例如处于随机访问配置中的高时间层的图像),而一些图像中的视频块的运动则相对不稳定(例如处于随机访问配置中的低时间层的图像)。在这种情况下,较为有益的是为具有稳定运动的图像使用与具有不稳定运动的图像所使用的搜索范围相比相对较小的搜索范围,以便在保持译码性能的同时实现较大幅度的存储器访问减少。在另一个示例中,当在块级适配搜索范围时,块的最优搜索范围可以基于当前块的空间邻居的mv的相关性来确定。为了测量运动相关性,一种方法是计算当前块的相邻mv的方差。如果运动方差小于预先定义的阈值,那么可以合理认为当前块的运动与其邻居的运动高度相关,并且可以安全地应用一个很小的搜索范围;否则,当前块的运动将被视为与其邻居的相关性较低,并且应该应用一个很大的搜索范围来确保可以在搜索窗口内部识别出当前块的最优mv。在另一个方法中,所提出的是基于块尺寸来自适应地调整搜索范围。这种方法背后的考虑是在当前块的尺寸较大时,所述当前块更有可能包含更复杂的内容(例如丰富的纹理和/或定向边缘);由此可以应用很大的搜索范围,这样做有助于当前块从参考图像中找到良好的匹配。否则,如果当前块的尺寸相对较小,那么可以合理假设当前块有可能包含较少的纹理信息;相应地,在这种情况下,很小的搜索窗口就已经足够好了。在本公开的另一个实施例中,所提出的是基于当前图像及其参考图像之间的poc距离来自适应地调整搜索范围。特别地,通过该方法,如果当前图像与其最接近的参考图像之间的poc距离小于预先定义的阈值,那么当前图像中的块将会显示出稳定的运动,并且可以应用一个较小的搜索范围;否则(如果当前图像与其最接近的参考图像之间的poc距离大于和等于预先定义的阈值),那么处于当前图像内部的块的运动有可能是不稳定的,在这种情况下应该应用很大的搜索范围。

在将自适应搜索范围应用于fruc时,相应的搜索范围要么会在比特流(例如在视频参数集合(vps)、序列参数集合(sps)、图像参数集合(pps)和切片分段报头)中用信号通告,要么会在没有用信号通告的情况下在编码器和解码器上推导得到。

用于fruc的复杂度受限的运动搜索

对fruc运动细化的搜索迭代次数的限制

在已知的fruc设计中,除非在两个连续的搜索循环中更新搜索中心,否则细化搜索将会持续进行,从这个意义上讲,cu级运动细化和子cu级运动细化在计算方面都是不受约束的。对于实际的编码器/解码器硬件实施方式的流水线设计来说,由于fruc块的编码/解码复杂度是无界的,因此,这种设计是不切实际的。由此,为了使fruc设计对硬件实施而言更加友好,所提出的是对在cu/子cu级运动细化阶段执行的搜索迭代的最大次数加以限制。与如上所述的cu级初始运动搜索的受约束的搜索范围相似,搜索迭代的最大次数可以在不同的译码级(例如序列级、图像级和块级)被适配或是用信号通告。此外,应用于cu级运动细化和子cu级运动细化的最大搜索迭代次数可以是相同的。但是,由于子cu级运动候选与cu级运动候选相比通常会显示出更强的相关性,因此,在至少一些实施例中还提出相比于子cu级运动细化,为cu级运动细化设置更大的最大搜索迭代值。

对用于mv聚类的主mv的数量所做的限制

虽然如上所述的mv聚类方法可以显著降低初始mv推导(在cu级和子cu级)的平均计算复杂度。但其不必改变需要测试的mv候选的最大值。例如,在最差的情况下,在cu级运动搜索和子cu级运动搜索中仍旧分别要检查多达15和17个mv候选。在实践中,最差情况的场景是实际的编码器/解码器实施方式的重要考虑因素,其直接确定了硬件设计所要满足的处理能力/条件。由此,在一些实施例中提出对从mv聚类处理生成的主mv的数量施加约束,以便减小被测试的mv候选的平均值和最大值。考虑到主mv的最大数量(例如l),可以使用不同的判据来确定应该为fruc运动搜索选择哪些主mv。

在一些实施例中,所使用的一个判据是基于mv候选平均来选择主mv。在一些使用了此类判据的实施例中,编码器/解码器会计数包含在每一个mv聚类(cu级或子cu级)的初始mv候选列表(mv候选覆盖)中的初始mv的数量;然后,编码器/解码器通过将具有更多覆盖的主mv置于列表开端来根据mv候选覆盖对所产生的主mv进行排序,并且只保持前l个主mv作为进一步被用于后续的cu/子cu级运动搜索过程的输出。

在一些实施例中,所使用的另一个判据是基于mv候选方差来选择mv。在一些使用了此类判据的实施例中,编码器/解码器会在mv聚类过程中计算包含在每一个mv聚类中的初始mv的方差;然后,编码器/解码器按mv候选方差上升的顺序来对所产生的主mv进行排序,并且只保持具有最小mv候选方差的第一主mv,以此作为后续的cu级或子cu级运动搜索过程的输出。

主mv的最大数量可以在不同编码等级(例如序列等级、图像等级和块等级)被适配或是用信号通告。另外,为在cu级运动搜索和子cu级运动搜索中应用的mv聚类处理使用的最大值可以是不同的。

将受约束的搜索范围用于cu级初始运动搜索的方法

在一些实施例中,所提供的是一种用于包含了包括当前图像在内的多个图像的视频进行译码的方法。该方法包括:对于当前图像中的至少一个当前块:识别用于所述块的帧速率上变换(fruc)预测的第一运动矢量候选集合;基于所述第一运动矢量候选集合来定义搜索中心;确定搜索窗口,所述搜索窗口具有选定的宽度并以所述搜索中心为中心;通过剪裁落在搜索窗口以外的第一运动矢量候选集合中的任何运动矢量来处理所述第一集合,以使其落入搜索窗口以内;以及从经过处理的第一运动矢量候选集合中对选定的运动矢量执行搜索。作为示例,该搜索中心可以是第一运动矢量候选集合的平均值。

一些这样的实施例进一步包括:基于选定的运动矢量候选来执行运动细化搜索,以便生成细化的运动矢量;以及使用所述经过细化的运动矢量来预测所述块。

作为示例,当前块可以是译码单元或子译码单元块。

选定的运动矢量可被选定成致使实现最低的匹配成本或是最低的绝对差值和(sad)。

在一些实施例中,第一运动矢量候选集合是通过一种包含以下步骤的方法产生的:将初始运动矢量候选集合聚合成多个聚类;并且针对每一个聚类,计算相应聚类的质心,并且将代表相应聚类的质心的质心运动矢量贡献给第一运动矢量候选集合。在这样的实施例中,搜索中心可以是具有最多运动矢量候选的聚类的中心。

作为示例,选定的宽度可以在vps、sps、pps、切片分段报头中或者在块级用信号通告。在一些实施例中,至少部分地基于当前图像中的运动稳定性水平来确定当前图像的所选宽度。在一些实施例中,至少部分地基于当前块的空间邻居的运动矢量的相关性水平来确定当前块的所选宽度。在一些实施例中,至少部分地基于当前块的大小来确定当前块的所选宽度。在一些实施例中,为当前图像选择的宽度至少部分是基于当前图像与其参考图像之间的poc距离确定的。

为cu级运动细化、子cu级初始运动搜索以及子cu级运动细化使用受约束的搜索范围的方法

在一些实施例中,所提供的是一种对包含了包括当前图像在内的多个图像的视频进行译码的方法。所述方法包括:针对当前图像中的至少一个当前译码单元(cu):识别用于所述译码单元的帧速率上变换(fruc)预测的第一运动矢量候选集合;为从所述第一运动矢量候选集合中选择的cu级运动矢量执行搜索;确定搜索窗口,所述搜索窗口具有选定的宽度并且以所选择的cu级运动矢量为中心;以及在所述搜索窗口内部执行运动细化搜索,以便生成细化的cu级运动矢量。所述译码单元可以用所述细化的cu级运动矢量来预测。

在一些实施例中,所述方法进一步包括:识别子cu初始运动矢量集合,并且针对译码单元内部的每一个子cu:通过剪裁所述子cu初始运动矢量集合中落入搜索窗口之外的任何运动矢量来处理所述集合,以使其落入搜索窗口以内;为从经过处理的子cu初始运动矢量集合中选择的子cu运动矢量执行搜索;以及在搜索窗口内部执行运动细化搜索,以便产生细化的子cu运动矢量。所述子cu可以用细化的子cu级运动矢量来预测。

所选择的宽度可以在视频参数集合(vps)、序列参数集合(sps)、图像参数集合(pps)、切片分段报头中或是在块级用信号通告。为当前图像选择的宽度可以至少部分基于当前图像中的运动稳定性等级来确定。为当前块选择的宽度可以至少部分基于当前块的空间邻居的运动矢量的相关性等级来确定。为当前块选择的宽度可以至少部分基于当前块的尺寸来确定。为当前块选择的宽度可以至少部分基于当前图像与其参考图像之间的poc距离来确定。

在统一的搜索范围中使用fruc运动搜索的方法

在一些实施例中,所提供的是一种用于对包含了包括当前图像在内的多个图像的视频进行译码的方法。所述方法包括:针对当前图像中的至少一个译码单元(cu):识别用于所述译码单元的帧速率上变换(fruc)预测的第一cu级运动矢量候选集合;基于所述第一cu级运动矢量候选集合来定义搜索中心(例如将其作为第一cu级运动矢量候选集合的平均值);确定搜索窗口,所述搜索窗口具有选定的宽度并以所述搜索中心为中心;通过剪裁落在所述搜索窗口之外的第一cu级运动矢量候选集合中的任何运动矢量来处理所述第一集合,以使其落入所述搜索窗口以内;为从经过处理的第一运动矢量候选集合中选择的cu级运动矢量执行搜索;在所述搜索窗口内部执行运动细化搜索,以便产生细化的cu级运动矢量;识别子cu初始运动矢量集合;并且针对译码单元内部的每一个子cu:通过剪裁所述子cu初始运动矢量集合中落在搜索窗口之外的任何运动矢量来处理所述集合,以使其落入搜索窗口以内;为从经过处理的子cu初始运动矢量集合中选择的子cu运动矢量执行搜索;以及通过在搜索窗口内部执行运动细化搜索来产生细化的子cu运动矢量。

在一些这样的实施例中,第一cu级运动矢量候选集合是通过将初始cu级运动矢量候选集合聚合成多个聚类产生的;并且针对每一个聚类,计算相应聚类的质心,以及将代表相应聚类质心的质心运动矢量贡献给第一运动矢量候选集合。所述搜索中心可以是具有最多的cu级运动矢量候选的聚类的中心。

所选择的宽度可以在视频参数集合(vps)、序列参数集合(sps)、图像参数集合(pps)、切片分段报头中或者在块级用信号通告。为当前图像选择的宽度可以至少部分基于当前图像中的运动稳定性等级来确定。为当前块选择的宽度可以至少部分基于当前块的空间邻居的运动矢量的相关性等级来确定。为当前块选择的宽度可以至少部分基于当前块的尺寸来确定。为当前图像选择的宽度可以至少部分基于当前图像与其参考图像之间的poc距离来确定。

为fruc运动细化使用搜索迭代次数约束的方法

在一些实施例中,所提供的是一种用于对包含了包括当前图像在内的多个图像的视频进行译码的方法。所述方法包括:针对当前图像中的至少一个块:识别用于所述块的帧速率上变换(fruc)预测的第一运动矢量候选集合;从所述第一运动矢量候选集合中执行对选定的运动矢量的搜索;基于选定的运动矢量候选来执行运动细化搜索,以便生成细化的运动矢量,其中所述运动细化搜索限于所选择的最大迭代次数。所述块可以是译码单元或子译码单元块。

所选择的最大迭代次数可以至少部分取决于所述块是译码单元块还是子译码单元块。所选择的最大迭代次数可以在序列级、图像级、块级或是在切片分段报头中用信号通告。

为mv聚类处理使用数量受约束的主mv的方法

在一些实施例中,所提供的是一种用于对包含了包括当前图像在内的多个图像的视频进行译码的方法。所述方法包括:针对当前图像中的至少一个块(例如译码单元或子译码单元块):将初始运动矢量候选集合聚集成多个聚类;并且针对每一个聚类,计算相应聚类的质心,并且将代表相应聚类质心的质心运动矢量贡献给主运动矢量集合;从主运动矢量集合中选择不多于所选择的最大数量的运动矢量,以便产生受约束的运动矢量集合;从所述受约束的运动矢量候选集合执行对选定的运动矢量的搜索。

在一些实施例中,选择不多于所选择的最大数量的运动矢量包括从主运动矢量集合中选择代表了具有最大数量的初始运动矢量候选的聚类的主运动矢量。在一些实施例中,选择不多于所选择的最大数量的运动矢量包括从主运动矢量集合中选择代表运动矢量候选之间的方差最小的聚类的主运动矢量。

所选择的最大运动矢量数量可以至少部分取决于所述块是译码单元块还是子译码单元块。所选择的最大运动矢量数量可以在序列级、图像级、块级或者在切片分段报头中用信号通告。

译码比特流结构

图14是示出了关于译码比特流结构的示例的图示。译码比特流1300包括多个nal(网络抽象层)单元1301。nal单元可以包含译码采样数据(例如译码切片1306)或高级语法元数据(例如参数集合数据、切片报头数据1305或补充增强信息数据1307(其可称为sei消息))。参数集合是包含了基本语法元素的高级语法结构,所述基本语法元素可以应用于多个比特流层(例如视频参数集合1302(vps),或者可以应用于处于一个层内部的译码视频序列(例如序列参数集合1303(sps)),或是可以应用于一个译码视频序列内部的多个译码图像(例如图像参数集合1304(pps))。参数集合既可以与视频比特流的译码图像一起发送,也可以通过其他方式发送(包括使用了可靠信道的带外传输、硬译码等等)。切片报头1305同样是高级语法结构,其中所述结构可以包含一些相对较小或只与某些切片或图像类型相关的图像相关信息。sei消息1307携带的信息有可能不为解码处理所需要,但是该信息可以用于其他各种目的,例如图像输出定时或显示以及丢失检测和隐藏。

通信设备和系统

图15是示出了通信系统示例的示意图。通信系统1400可以包括编码器1402、通信网络1404和解码器1406。编码器1402可以经由连接1408与网络1404通信,该连接1408可以是有线连接或无线连接。编码器1402可以与图1的基于块的视频编码器相类似。编码器1402可以包括单层编解码器(例如图1)或多层编解码器。解码器1406可以经由连接1410与网络1404通信,所述连接1410可以是有线连接或无线连接。解码器1406可以与图2的基于块的视频解码器相类似。解码器1406可以包括单层编解码器(例如图2)或多层编解码器。

编码器1402和/或解码器1406可被引入到各种有线通信设备和/或无线发射/接收单元(wtru)中,例如数字电视、无线广播系统、网络部件/终端、服务器(例如内容或网络服务器(例如超文本传输协议(http)服务器))、个人数字助理(pda)、膝上型或台式计算机、平板电脑、数码相机、数字记录设备、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话,和/或数字媒体播放器等等,但是并不局限于此。

通信网络1404可以是适当类型的通信网络。例如,通信网络1404可以是向多个无线用户提供内容(例如语音、数据、视频、消息、广播等等)的多址接入系统。通信网络1404能使多个无线用户通过共享包括无线带宽在内的系统资源来访问此类内容。作为示例,通信网络1404可以使用一种或多种信道接入方法,例如码分多址(cdma)、时分多址(tdma)、频分多址(fdma)、正交fdma(ofdma)、和/或单载波fdma(sc-fdma)等等。通信网络1404可以包括多个相连的通信网络。该通信网络1404可以包括因特网和/或一个或多个私人商业网络,例如蜂窝网络、wifi热点和/或因特网服务提供商(isp)网络等等。

图16是例示wtru的系统图示。如所示,例示的wtru1500可以包括处理器1518、收发信机1520、发射/接收部件1522、扬声器/麦克风1524、键盘或数字键盘1526、显示器/触摸板1528、不可移除存储器1530、可移除存储器1532、电源1534、全球定位系统(gps)芯片组1536以及其他外围设备1538。应该了解的是,在保持与实施例相符的同时,wtru1500还可以包括前述部件的任何子组合。更进一步,编码器(例如编码器100)和/或解码器(例如解码器200)的终端可以包含在图16的wtru1500中描绘以及在这里参考图16的wtru1500描述的一些或所有部件。

处理器1518可以是通用处理器、专用处理器、常规处理器、数字信号处理器(dsp)、图形处理单元(dpu)、多个微处理器、与dsp核心关联的一个或多个微处理器、控制器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)电路、其他任何类型的集成电路(ic)、状态机等等。处理器1518可以执行信号译码、数据处理、功率控制、输入/输出处理和/或其他任何能使wtru1500在无线环境中工作的功能。处理器1518可以耦合至收发信机1520,收发信机1520则可以耦合至发射/接收部件1522。虽然图16将处理器1518和收发信机1520描述成了独立组件,然而应该了解,处理器118和收发信机1520也可以一起集成在电子组件或芯片中。

发射/接收部件1522可被配置成经由空中接口1515来发射和/或接收往来于另一个终端的信号。举例来说,在一个或多个实施例中,发射/接收部件1522可以是被配置成发射和/或接收rf信号的天线。作为示例,在一个或多个实施例中,发射/接收部件1522可以是被配置成发射和/或接收ir、uv或可见光信号的放射器/检测器。在一个或多个实施例中,发射/接收部件1522可被配置成发射和/或接收rf以及光信号。应该了解的是,该发射/接收部件1522可以被配置成发射和/或接收无线信号的任何组合。

此外,虽然在图16中将发射/接收部件1522描述成了单个部件,但是wtru1500可以包括任何数量的发射/接收部件1522。更具体地说,wtru1500可以使用mimo技术。因此,在一个实施例中,wtru1500可以包括两个或多个经由空中接口1516来发射和接收无线电信号的发射/接收部件1522(例如多个天线)。

收发信机1520可被配置成对发射/接收部件1522所要发射的信号进行调制,以及对发射/接收部件1522接收的信号进行解调。如上所述,wtru1500可以具有多模能力。因此,收发信机1520可以包括允许wtru1500借助多种rat(例如utra和ieee802.11)来进行通信的多个收发信机。

wtru1500的处理器1518可以耦合到扬声器/麦克风1524、数字键盘1526和/或显示器/触摸板1528(例如液晶显示器(lcd)显示单元或有机发光二极管(oled)显示单元),并且可以接收来自这些部件的用户输入数据。处理器1518还可以向扬声器/麦克风1524、数字键盘1526和/或显示器/触摸板1528输出用户数据。此外,处理器1518可以从任何适当的存储器(例如不可移除存储器1530和/或可移除存储器1532)中存取信息,以及将数据存入这些存储器。不可移除存储器1530可以包括随机存取存储器(ram)、只读存储器(rom)、硬盘或是其他任何类型的记忆存储设备。可移除存储器1532可以包括订户身份模块(sim)卡、记忆棒、安全数字(sd)记忆卡等等。在一个或多个实施例中,处理器1518可以从那些并非实际位于wtru1500的存储器存取信息,以及将数据存入这些存储器,作为示例,此类存储器可以位于服务器或家庭计算机(未显示)。

处理器1518可以接收来自电源1534的电力,并且可被配置分发和/或控制用于wtru1500中的其他组件的电力。电源1534可以是为wtru1500供电的任何适当设备。举例来说,电源1534可以包括一个或多个干电池组(例如镍镉(ni-cd)、镍锌(ni-zn)、镍氢(nimh)、锂离子(li-ion)等等)、太阳能电池以及燃料电池等等。

处理器1518还可以与gps芯片组1536耦合,该芯片组可被配置成提供与wtru1500的当前位置相关的位置信息(例如经度和纬度)。作为来自gps芯片组1536的信息的补充或替换,wtru1500可以经由空中接口1515接收来自终端(例如基站)的位置信息,和/或基于从两个或多个附近基站接收的信号定时来确定其位置。应该了解的是,在保持与实施例相符的同时,wtru1500可以借助任何适当的定位方法来获取位置信息。

处理器1518可以进一步耦合到其他外围设备1538,这些设备可以包括提供附加特征、功能和/或有线或无线连接的一个或多个软件和/或硬件模块。例如,外围设备1538可以包括加速度计、方位传感器、运动传感器、接近传感器、电子指南针、卫星收发信机、数码相机和/或录像机(用于照片和视频)、通用串行总线(usb)端口、振动设备、电视收发信机、免提耳机、模块、调频(fm)无线电单元、以及软件模块(例如数字音乐播放器、媒体播放器、视频游戏机模块以及因特网浏览器等等)。

作为示例,wtru1500可被配置成发射和/或接收无线信号,并且可以包括用户设备(ue)、移动站、固定或移动订户单元、寻呼机、蜂窝电话、个人数字助理(pda)、智能电话、膝上型计算机、上网本、平板电脑、个人计算机、无线传感器、消费类电子产品或是其他任何能够接收和处理压缩视频通信的终端。

wtru1500和/或通信网络(例如通信网络804)可以实施诸如通用移动电信系统(umts)地面无线电接入(utra)之类的无线电技术,该无线电技术可以使用宽带cdma(wcdma)来建立空中接口1515。wcdma可以包含通信协议,例如高速分组接入(hspa)和/或演进性hspa(hspa+)。hspa可以包括高速下行链路分组接入(hsdpa)和/或高速上行链路分组接入(hsupa)。wtru1500和/或通信网络(例如通信网络804)可以实现诸如演进umts陆地无线电接入(e-utra)之类的无线电技术,该无线电技术可以使用长期演进(lte)和/或先进lte(lte-a)来建立空中接口1515。

wtru1500和/或通信网络(例如通信网络804)可以实施无线电技术,例如ieee802.16(例如全球微波接入互操作性(wimax))、cdma2000、cdma20001x、cdma2000ev-do、临时标准2000(is-2000)、临时标准95(is-95)、临时标准856(is-856)、全球移动通信系统(gsm)、gsm演进增强数据速率(edge)以及gsmedge(geran)等等。wtru1500和/或通信网络(例如通信网络804)可以实施ieee802.11或ieee802.15等无线电技术。

应该指出的是,所描述的实施例中的一个或多个的不同的硬件部件被称为“模块”,所述模块执行在这里结合相应模块描述的不同功能。这里使用的模块包含了被相关领域的技术人员认为适合与指定的实施方式相适合的硬件(例如一个或多个处理器、一个或多个微处理器、一个或多个微控制器、一个或多个微芯片、一个或多个专用集成电路(asic)、一个或多个现场可编程门阵列(fpga)、一个或多个存储器设备)。所描述的每一个模块还可以包括可被执行以实施被描述成由相应模块执行的一个或多个功能的指令,并且应该指出的是,这些指令可以采用硬件(即硬连线)指令、固件指令和/或软件指令的形式或者包含这些指令,并且可被保存在任何适当的非暂时性计算机可读介质或媒体中,例如通常被称为ram、rom等等的介质或媒体。

虽然在上文中描述了采用特定组合的特征和要素,但是本领域普通技术人员将会认识到,每一个特征既可以单独使用,也可以与其他特征和要素进行任何组合。此外,这里描述的方法可以在引入计算机可读介质中以供计算机或处理器运行的计算机程序、软件或固件中实施。关于计算机可读存储媒体的示例包括但不局限于只读存储器(rom)、随机存取存储器(ram)、寄存器、缓冲存储器、半导体存储设备、内部硬盘盒可拆卸磁盘之类的磁介质、磁光介质、以及cd-rom碟片和数字多用途碟片(dvd)之类的光介质。与软件关联的处理器可以用于实施在wtru、ue、终端、基站、rnc或任何计算机主机中使用的射频收发信机。

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