交叉申请
本申请要求在2017年8月8日提出申请号为62/542,383的美国临时专利申请。上述美国临时专利申请整体以引用方式并入本文中。
本发明涉及视频处理。具体而言,本发明涉及一种用于透过预测对像素块进行编码或解码的方法。
背景技术:
除非本文另有说明,否则本部分中描述的方法不是权利要求的先前技术。
高效视频编码(hevc)是由视频编码联合协作小组(jct-vc)开发的国际视频编码标准。hevc是依据基于混合块的运动补偿dct类变换编码架构。用于压缩的基本单元(称为编码单元(codingunit,cu))是2n×2n的正方形像素块,并且每个cu可以递归地分成四个较小的cu,直到达到预定义的最小尺寸。每个cu包含一个或多个预测单元(predictionunits,pu)。每个pu对应于cu中的像素块。
为了实现混合编码架构的最佳编码效率,hevc针对每个pu采用画面内预测和/或画面间预测模式。对于画面内预测模式,空间相邻重建像素可用于在35个方向上生成方向预测。对于画面间预测模式,运动信息用于重建时间参考帧,其用于生成运动补偿预测。运动信息可以包括运动矢量,运动矢量预测值,运动矢量差值,用于选择参考帧的参考索引等。
存在三种类型的画面间预测模式:跳过模式,合并模式和高级运动矢量预测(advancedmotionvectorprediction,amvp)模式。在amvp模式下,依据mv=mvp+mvd,从运动矢量预测值(mvp)和运动矢量差值(mvd或残余运动数据)导出用于pu的运动补偿预测的运动矢量(mv)。对于amvp预测的pu,从包括两个空间候选和一个时间候选的一组mvp候选中选择mvp。标识mvp选择的索引被编码并与相应的mvd一起作为运动信息而被发送。用于从参考帧列表l0和/或l1中选择用于双向或单向预测的参考帧的一个或多个参考索引也被编码并作为运动信息而被发送。
当pu以跳过模式或合并模式而被编码时,除了所选候选的合并索引之外,不发送运动信息。这是因为跳过模式和合并模式利用运动推断方法(mv=mvp+mvd,其中mvd为零)以从所选择的时间相邻块(时间候选)中的空间相邻块(空间候选)或并置块获得运动信息,其中该时间相邻块(时间候选)从参考帧列表l0或l1(在切片头中指示)选择。在跳过pu的情况下,也省略了正被编码的块的残留信号。为了透过使用amvp,合并模式或跳过模式来传递hevc下的像素块的运动信息,索引被使用以从候选运动预测子列表中选择mvp(或运动预测子)。在合并/跳过模式中,合并索引用于从包括四个空间候选和一个时间候选的候选运动预测子列表中选择mvp。传输合并索引,但不传输运动预测子。
技术实现要素:
以下发明内容仅是说明性的,不打算以任何方式加以限制。也就是说,以下发明内容被提供以介绍此处所描述的新且非明显的技术的概念、重点、好处和优势。选择而不是所有的实施方式在下面的详细说明中进行进一步描述。因此,以下发明内容不用于确定所要求主题的本质特征,也不用于确定所要求主题的范围。
本发明的一些实施例提供画面内合并预测(imp)模式,其是在编码或解码像素块时将画面内预测模式与合并模式组合的预测模式。当采用imp模式时,视频编解码器选择画面内预测模式和合并模式。视频编解码器透过由所选择的画面内预测模式生成的预测和由所选择的合并模式生成的预测的简单平均或加权和来获得组合预测。在一些实施例中,除了用于选择画面内预测模式的索引之外,视频编解码器还使用视频编解码比特流中的imp模式标志来指示是否还应当应用合并模式预测。如果imp模式标志指示除了画面内预测模式之外正在将合并模式用于特定像素块,则提供imp合并索引以用信号通知从用于像素块的合并候选列表中选择合并候选。。
imp模式通常可以称为组合预测模式。当对视频图片进行编码或解码时,视频编解码器确定是否使用组合预测模式来编码或解码视频图片的当前像素块。当确定使用组合预测模式时,视频编解码器基于选择的画面内预测模式生成当前块的画面内预测子,基于来自合并候选列表的所选合并候选生成当前块的合并索引预测子。然后,视频编解码器基于画面内预测子和合并索引预测子生成当前块的最终预测子。然后使用最终预测子对当前块进行编码或解码。
附图说明
包括附图以提供对本发明的进一步理解,并且附图被并入并构成本发明公开的一部分。附图示出了本发明公开的实施方式,并且与说明书一起用于解释本发明的原理。可以理解的是,附图不一定按比例绘制,因为为了清楚地说明本公开的概念,一些部件可能被示出为与实际实施中的尺寸不成比例。
图1示出了不同方向上的画面内预测模式。
图2示出了针对hevc中的画面间预测模式设置的mvp候选。
图3标出了包括组合的双向预测合并候选(bi-predictivemergecandidates)的合并候选列表。
图4示出了包括缩放合并候选的合并候选列表。
图5示出了将零矢量候选添加到合并候选列表或amvp候选列表的示例。
图6概念性地示出了透过使用组合预测模式对像素块进行编码或解码。
图7a-图7c标出了从组合预测编码块的相邻块参考运动信息和/或模式方向。
图8示出了将画面间预测应用于当前块的第一区域并且将画面内预测应用于当前块的第二区域。
图9概念性地示出了在将画面内预测与多个合并候选的画面间预测相结合时应用加权处理。
图10标出了示例的视频编码器。
图11标出了视频编码器可在编码像素块时实施组合预测模式的结构。
图12标出了示例的视频解码器。
图13标出了视频解码器可在解码像素块时实施组合预测模式的结构。
图14a-图14b概念性地说明视频编解码器在编码或解码视频图片的像素块时用以实施组合预测模式的过程。
图15概念性地示出了实现了本发明的一些实施例的电子系统。
具体实施方式
在以下详细描述中,透过示例阐述了许多具体细节,以便透彻理解本发明。基于本文描述和教导的任何变化和/或扩展都在本发明的保护范围内。在一些实例中,与本发明公开的一个或多个示例实现有关的公知方法,过程,组件和/或电路可以相对概括地描述而省略掉一些细节,以避免不必要地模糊本公开的关键特征。。
画面内预测模式
画面内预测方法利用与当前预测单元(pu)相邻的一个参考层和一个画面内预测模式来产生当前pu的预测值。可以在包含多个预测方向的模式集中选择画面内预测方向。对于透过画面内预测编码的每个pu,将使用一个索引并对其进行编码以选择一个画面内预测模式。将生成相应的预测,然后残差可以被导出并进行变换。
图1示出了不同方向上的画面内预测模式。这些画面内预测模式被称为方向模式,并且不包括dc模式或平面模式。如图所示,有33种方向模式(v:垂直方向;h:水平方向),标示为h,h+1~h+8,h-1~h-7,v,v+1~v+8,v-1~v-8。通常,方向模式可以表示为h+k或v+k模式,其中k=±1,±2,...(因此,如果画面内预测模式具有65个方向模式,则k可以在从±1到±16)。
在hevc中的35个画面内预测模式中,3种模式被认为是最可能模式(mpm)以用于预测当前预测块的画面内预测模式。选择这三种模式作为mpm集。例如,在左预测块中使用的画面内预测模式和在上方预测块中使用的画面内预测模式被用作mpm。当两个相邻块中的画面内预测模式使用相同的画面内预测模式时,画面内预测模式可以用作mpm。当两个相邻块中只有一个可用并用方向模式编码时,紧邻该方向模式的两个相邻方向可用作mpm。dc模式和平面模式也被认为是mpm以用于填充mpm集合中的可用点(availablespots),尤其是如果上部或顶部相邻块不可用或未被编码于画面内预测,或者如果相邻块中的画面内预测模式不是方向模式。如果当前预测块的画面内预测模式是mpm集合中的一个模式,则使用1或2位来发信号通知它是哪一个。否则,当前块的画面内预测模式与mpm集合中的任何条目不同,并且当前块将被编码为非mpm模式。共有32种这样的非mpm模式和(5位)固定长度编码方法被用于发信号通知该非mpm模式。
画面间预测模式
图2示出了针对hevc中的画面间预测模式设置的mvp候选(即,跳过,合并和amvp)。该图标出了正被编码或解码的视频图像或帧的当前块100。当前块100(其可以是pu或cu)指的是用于导出空间和时间mvp的相邻块以用于amvp模式,合并模式或跳过模式。
对于跳过模式和合并模式,从a0,a1,b0和b1导出多达四个空间合并索引,并且从tbr或tctr导出一个时间合并索引(首先使用tbr,如果tbr不可用,则改为使用tctr)。如果四个空间合并索引中的任何一个不可用,则位置b2用于导出合并索引作为替换。在导出四个空间合并索引和一个时间合并索引之后,移除冗余合并索引。如果非冗余合并索引的数量小于5,则可以从原始候选中导出附加候选并将其添加到候选列表中。派生的候选有三种类型:
1.组合双向预测合并候选(派生候选类型1)
2.缩放的双向预测合并候选(导出的候选类型2)
3.零向量合并/amvp候选(导出的候选类型3)
对于导出的候选类型1,透过组合原始合并候选来创建组合的双向预测合并候选。具体地,如果当前切片是b切片,则可以透过组合来自列表0和列表1的候选来生成另一合并候选。图3标出了包括组合双向预测合并候选的合并候选列表。如图所示,具有mvl0(列表0中的运动矢量)和refidxl0(列表0中的参考图片索引)或mvl1(列表1中的运动矢量)和refidxl1(列表1中的参考图片索引)的两个原始候选者是用于创建双向预测合并候选。
对于导出的候选类型2,透过缩放原始合并候选来创建缩放的合并候选。图4示出了包括缩放合并候选的合并候选列表。如图所示,原始合并候选俱有mvlx(列表x中的运动矢量,x可以是0或1)和refidxlx(列表x中的参考图片索引,x可以是0或1)。例如,原始候选a是具有mvl0_a和参考图片索引ref0的列表0单预测mv。候选a最初被复制到列表l1,因为它具有参考图片索引ref0'。透过基于ref0和ref0'缩放mvl0_a来计算缩放的mvmvl0'_a。创建具有列表l0中的mvl0_a和ref0以及列表l1中的mvl0'_a和ref0'的缩放双向预测合并候选,并将其添加到合并候选列表中。同样地,创建在列表0中具有mvl1'_a和ref1'并且在列表1中具有mvl1_a,ref1的缩放的双向预测合并候选,并将其添加到合并候选列表。
对于导出的候选类型3,透过组合零向量和参考索引来创建零向量候选。如果创建的零向量候选不是重复,则将其添加到合并/amvp候选列表中。图5示出了将零矢量候选添加到合并候选列表或amvp候选列表的示例。
画面内合并预测
本发明的一些实施例提供画面内合并预测(imp)模式,其是在编码或解码像素块时将画面内预测模式与合并模式组合的预测模式。当采用imp模式时,视频编解码器(编码器或解码器)选择画面内预测模式(来自可能的画面内预测模式)和合并候选(来自合并候选列表)。视频编解码器透过由所选择的画面内预测模式生成的预测和由所选择的合并候选生成的预测的简单平均或加权和来获得组合预测(也称为最终预测子)。在一些实施例中,除了用于选择画面内预测模式的索引之外,视频编解码器还使用视频编码比特流中的imp模式标志来指示是否还应当应用合并模式预测。如果imp模式标志指示除了画面内预测模式之外正在将合并模式用于特定块,则提供imp合并索引以用信号通知从pu的合并候选列表中选择合并候选。
imp模式通常可以称为组合预测模式。当对视频图片进行编码或解码时,视频编解码器确定是否使用组合预测模式来编码或解码视频图片的当前像素块(例如,pu或cu)。当确定使用组合预测模式时,视频编解码器基于所选择的画面内预测模式和当前块的合并索引预测子,基于来自合并候选列表的所选合并候选,生成当前块的画面内预测子。然后,视频编解码器基于画面内预测子和合并索引预测子生成当前块的最终预测子。然后使用最终预测子对当前块进行编码或解码。
组合预测模式特别适合于具有复杂纹理的区域(例如,包含边缘/环的区域等),这些区域不能用纯画面内或画面间预测模式很好地预测。因此,将组合预测模式应用于具有复杂纹理的区域将实现更好的编码效果。
此外,当组合预测时,使用合并索引预测子而不是画面间预测子可以进一步减少信令开销。使用合并索引预测子仅需要合并索引的信令(可以隐式地导出相应的运动信息)。这与使用画面间预测子形成对比,画面间预测子除了合并索引之外还需要参考索引,mvp索引和mvd的信令。
图6概念性地示出了透过使用组合预测模式对像素块进行编码或解码。该图示出了包括被安排在不同时间显示的视频图像601和602的视频序列。视频图片601包括以组合预测模式编码或待编码的像素块610。像素块610可以是当前由视频编解码器600编码或解码的pu(或cu)。
参考下面的图10描述实现视频编解码器600的视频编码器的示例。参考下面的图12描述实现视频编解码器600的视频解码器的示例。视频编解码器600包括画面内预测模块604,画面间预测模块606和组合预测模块608。在一些实施例中,模块604-608是由计算设备或电子设备的一个或多个处理单元(例如,处理器)执行的软件指令的模块。在一些实施例中,模块604-608是由电子设备的一个或多个集成电路(ic)实现的硬件电路的模块。尽管模块604-608被示为单独的模块,但是一些模块可以组合成单个模块。
当前块610与画面内信息612和画面间信息614相关联。画面内预测模块604透过使用画面内信息612从当前块610的空间相邻参考像素来生成画面内预测子620。画面间预测模块606透过使用画面间信息614和运动信息616至其他视频图像(例如,视频图像602)的参考像素来产生画面间预测子630。画面内信息612可以包括用于选择一个画面内预测模式的索引(例如,33个方向模式,1个平面模式,1个dc模式或其他可用的画面内预测模式)。画面间信息614可以包括合并索引以用于从合并候选列表中选择合并候选。因此,画面间预测子630也被称为合并索引预测子。
对于对当前块610进行编码的视频编解码器,画面内信息612和画面间信息614由画面内图像估计和运动估计算法生成,并且将被编码为比特流以及用于视频图像601和视频图像602的其他编码数据。对于正在解码当前块610的视频编解码器,画面内信息612和画面间信息614从包括视频图像601和视频图像602的比特流中恢复。
组合预测模块608基于画面内预测子620和画面间预测子630产生最终预测子640。组合预测模块608可基于画面内预测子620和画面间预测子630的平均或加权和来产生组合预测子,并将其作为最终预测子640。
一个或多个模式标志650指示当前块610是处于组合预测模式(例如,imp模式),画面内预测模式还是某种其他预测模式。如果当前块处于组合预测模式,则组合预测模块608将使用所生成的组合预测子作为最终预测子650。否则,画面内预测子640或画面间预测子630可以用作最终预测子650。标志650可以包括在比特流中显式地用信号通知的标志。模式标志还可以包括由视频编解码器600隐式导出的标志。
在一些实施例中,当视频编解码器600决定透过画面内模式对当前块进行编码或解码时,视频编解码器可对imp模式标志进行编码或解码以确定是否应用组合预测模式。额外标志可以在存储当前块的比特流中利用上下文编码显式被发送。该显示发送的标志可以在编码单元(cu)层,编码树单元(ctu)层,切片层,图像层,序列参数集(sequenceparameterset,sps)层或图像参数集(pictureparameterset,pps)层被编码。
在一些实施例中,当视频编解码器决定透过画面内模式对当前块进行编码或解码时,可以基于诸如当前块的属性或当前块的相邻块的属性的相关准则来隐式地导出imp模式标志。例如,如果块大小,高度或宽度大于阈值,则将应用组合预测模式(即,除了画面内模式之外还应用合并模式);否则,将不使用组合预测模式(即,仅使用画面内模式)。在又一示例中,如果要透过画面间预测(例如,跳过,合并,amvp)预测待预测当前块的大多数相邻块,则视频编解码器将应用除了画面内预测之外的画面间预测。在这些实例中,比特流可以不包括用于指示是否应用组合预测模式的显式标志。在一些实施例中,当块(大小/高度/宽度)小于或大于阈值时,不能使用组合预测模式,并且该标志不需要被发送。
在一些实施例中,impmerge候选索引被使用并对其进行编码以选择用于组合预测模式的合并候选。与传统的合并模式索引(例如,hevc中的合并模式)一样,imp合并索引可以被显式地发送于比特流中。
在一些实施例中,imp合并索引可以以预定方式隐式地被发送,而不是显示地被发送。举例来说,视频编解码器可使用预定义表格将每一画面内预测模式映像到对应的合并候选,使得透过画面内预测模式索引获得所选择的画面内预测模式,并且透过预定义表将画面内预测模式索引映像至对应的合并索引而获得选择的合并候选。
如上,视频编解码器用透过从imp合并候选列表中选择合并候选得到的组合的预测模式来编码或解码一个块。该imp合并候选列表可以与传统合并模式的候选列表相同。此imp合并候选列表也可以与常规合并模式的合并候选列表不同。在一些实施例中,imp合并候选列表仅包含“正常”合并候选列表的子集。例如,imp合并候选列表可以仅包括不需要从编码器到解码器的显式传输的运动信息的空间合并模式。换句话说,只有跳过和合并模式候选包括在imp合并候选列表中,但是imp合并候选列表不包括amvp候选。在一些其他实施例中,当与“正常”合并候选列表进行比较时,imp合并候选列表可以包括另外的合并候选。
在一些实施例中,视频编解码器透过重用当前块的相邻块的画面间预测运动信息(例如,运动向量,参考列表等)和/或画面内预测信息(例如,模式方向)来对可用imp编码的当前块进行编码或解码。同样地,可用imp编码的当前块的画面内预测信息和画面间预测运动信息可以被其他块(例如,随后编码或解码的块)参考。
图7a-图7c标出了来自组合预测编码块的相邻块的参考运动信息和/或模式方向的示意图。这些图标出了与画面间信息(例如,合并索引)和画面内信息相关联的imp编码块710。在块710的编码或解码期间,用于执行画面内预测的模式方向和用于执行画面间预测的运动信息被保存并且可以由随后编码的块继承。
图7a标出了使用来自imp编码块710的画面内预测信息(例如,模式方向)的画面内预测块721。ini编码块710是画面内预测块721的相邻块。画面内预测块721使用来自imp编码块710的保存模式方向731以透过mpm机制执行画面内预测。
图7b标出了使用来自imp编码块710的已保存运动信息的画面间预测块722。imp编码块710是画面间预测块722的相邻块。画面间预测块722使用来自imp编码块710的保存的运动信息732以执行画面间预测。
图7c标出了使用来自imp编码块710的已保存的运动信息和模式方向的imp编码块723。imp编码块710是imp编码块723的相邻块。imp编码块723使用来自imp编码块710的保存模式方向731和运动信息732来执行画面间预测和画面内预测。
在一些实施例中,视频编解码器透过将画面间预测应用于当前块的第一区域并且将画面内预测应用于当前块的第二区域来应用imp模式,第一和第二区域可以大小相等或大小不等,可以重叠或不重叠。在一些实施例中,基于与当前块相关的画面间预测运动信息的源的位置或画面内预测模式,确定当前块的哪个区域透过画面间预测而被编码以及当前块的的哪个区域透过画面内预测而被编码。例如,当从当前块的左侧的相邻块导出当前块的imp模式的运动信息时,基于自左向量块继承运动信息,更靠近左侧(或左侧区域)的区域被编码,而更靠近右侧的区域透过画面内预测而被编码。
图8说明将画面间预测应用于当前块的第一区域且将画面内预测应用于当前块的第二区域。如图所示,在imp模式下,块800正被编码或解码。不是计算整个块800的组合预测,而是将块划分为左区域810和右区域820。透过基于画面间信息812的合并索引预测来预测左区域810,同时透过基于画面内信息822的画面内预测预测右区域820。视频编解码器透过画面间预测(合并索引预测)对左区域810进行编码/解码,因为用于块800的画面间预测的运动信息是从当前块800的左侧的相邻块830获得的。
如果画面内预测区域和画面间预测区域重叠,则可以透过对来自画面间预测的预测和来自画面内预测的预测进行平均来计算重叠区域的预测。在一些实施例中,当平均来自重叠区域的画面内预测和画面间预测时,可应用加权因子。
图8标出了画面间预测区域810在重叠区域815处与画面内预测区域820重叠的场景。在这种情况下,画面间信息810和画面内信息820都适用于重叠区域815,包括从相邻块830获得的运动信息。基于画面间信息812的画面间预测和基于画面内信息822的画面内预测的组合预测,重叠区域的像素将被编码或解码。
通常,当针对给定区域(例如,整个块或重叠区域)获得由画面内预测模式生成的预测和由画面间预测生成的预测时,可以使用简单平均或加权和来生成组合预测。在一些实施例中,对画面内模式生成的预测给予更高的权重。在一些实施例中,当存在多于一个可用于当前块的imp模式的合并候选时,视频解码器可基于多个合并候选产生多个预测。可以透过由多个合并候选生成的预测的简单平均值或加权和来计算当前块的最终预测。在一些实施例中,如果用于计算不同合并候选的预测的运动信息是从空间相邻块导出的,则可以依据当前块与那些空间相邻块之间的像素距离给出预测的权重,更接近像素距离对应于更高的权重。
图9概念性地示出了在将画面内预测与多个合并候选的画面间预测相结合时应用加权的示意图。在该示例中,组合预测模块608从画面内预测接收预测子,以及来自不同相邻块(例如,如图2中所描述的b0,b1,b2,a1,a0)的不同合并候选的各种预测子。基于提供合并候选的相邻块的属性对合并候选的每个预测子进行加权。例如,基于从当前块到候选b0,b1,b2,a1,a0的对应的各个块的像素距离,对合并候选b0,b1,b2,a1,a0的预测值进行加权。
在一些实施例中,组合预测模块608接收用于确定是否执行组合预测(例如,imp模式)的标志,以及用于选择要包括在组合预测中的合并候选的标志。这些标志可以依据选择哪些合并候选用于组合预测来改变应用于各种不同合并候选的加权值。
示例视频编码器
图10标出了示范性的视频编码器1000。如图所示,视频编码器1000从视频源1005接收输入视频信号且将信号编码到比特流1095中。视频编码器1000具有用于编码视频信号1005的若干组件或模块,视频编码器1000包括变换模块1010,量化模块1011,逆量化模块1014,逆变换模块1015,画面内图像估计模块1020,画面内图像预测模块1025,运动补偿模块1030,运动估计模块1035,环路滤波器1045,重建图像缓冲器1050,mv缓冲器1065和mv预测模块1075,以及熵编码器1090。
在一些实施例中,模块1010-1090是由计算设备或电子设备的一个或多个处理单元(例如,处理器)执行的软件指令的模块。在一些实施例中,模块1010-1090是由电子设备的一个或多个集成电路(ic)实现的硬件电路的模块。尽管模块1010-1090被示为单独的模块,但是一些模块可以组合成单个模块。
视频源1005提供原始视频信号,其呈现每个视频帧的像素数据而无需压缩。减法器1008依据运动补偿1030或画面内预测1025计算视频源1005的原始视频像素数据与预测像素数据1013之间的差值。变换1010转换差值(或残差像素数据或残差信号1009)为转换系数(例如,透过执行离散余弦变换,或dct)。量化器1011将变换系数量化为已量化的数据(或已量化的系数)1012,其由熵编码器1090编码到比特流1095中。
逆量化模块1014对量化数据(或量化系数)1012进行逆量化以获得变换系数,并且逆变换模块1015对变换系数执行逆变换以产生已重建的残差1019。已重建的残差1019与预测像素数据1013相加来产生已重建的像素数据1017。在一些实施例中,已重建的像素数据1017被临时存储在行缓冲器(未示出)中,以用于画面内预测和空间mv预测。已重建的像素由环路滤波器1045滤波并被存储在重建图像缓冲器1050中。在一些实施例中,重建图像缓冲器1050是视频编码器1000的外部存储器。在一些实施例中,重建图像缓冲器1050是视频编码器1000的内部存储器。
画面内估计模块1020基于已重建的像素数据1017执行画面内预测以产生画面内预测数据。画面内预测数据被提供给熵编码器1090以被编码至比特流1095中。画面内预测数据也被画面内预测模块1025使用以产生已预测像素数据1013。
运动估计模块1035透过产生mv以对存储在重建图片缓冲器1050中的先前解码的帧的参考像素数据执行画面间预测。这些mv被提供给运动补偿模块1030以产生已预测的像素数据。视频编码器1000使用mv预测来产生预测mv,而不是对比特流中的完整的实际mv进行编码,并且用于运动补偿的mv与预测mv之间的差值被编码为残余运动数据并存储在比特流1095中。
基于被产生用于编码先前视频帧的参考mv,即用于执行运动补偿的运动补偿mv,mv预测模块1075产生已预测的mv。mv预测模块1075从mv缓冲器1065检索来自先前视频帧的参考mv。视频编码器1000将针对当前视频帧生成的mv存储在mv缓冲器1065中作为用于生成预测mv的参考mv。
mv预测模块1075使用参考mv来创建预测的mv。可以透过空间mv预测或时间mv预测来计算预测的mv。预测mv与当前帧(残差运动数据)的运动补偿mv(mcmv)之间的差值由熵编码器1090编码到比特流1095中。
熵编码器1090透过使用诸如上下文自适应二进制算术编码(context-adaptivebinaryarithmeticcoding,cabac)或霍夫曼编码的熵编码技术将各种参数和数据编码到比特流1095中。熵编码器1090将诸如量化变换数据和残余运动数据的参数编码到比特流1095中。反过来,比特流1095被存储在存储设备中或透过诸如网络的通讯介质发送到解码器。
环路滤波器1045对已重建的像素数据1017执行滤波或平滑操作,以减少编码的伪像,特别是在像素块的边界处。在一些实施例中,执行的滤波操作包括样本自适应偏移(sao)。在一些实施例中,滤波操作包括自适应环路滤波(adaptiveloopfilter,alf)。
图11标出了视频编码器1000可在编码像素块时实施组合预测模式的结构。如图所示,视频编码器1000实作组合预测模块608,其产生预测像素数据1013。组合预测模块608接收由画面内预测模块1025产生的画面内模式预测值(即,画面内预测子)。组合预测模块608还从运动补偿模块1030接收画面间模式预测值(即,画面间预测子或合并索引预测子)。运动补偿1030可针对组合预测模块608的多个不同合并候选生成多个合并索引预测子。用于由运动补偿模块1030和画面内图像预测模块1025对像素块进行编码的运动信息和模式方向被保存在存储器1150中,以供相同的模块用于后续块。
基于由画面内估计模块1020和运动估计模块1035生成的标志,诸如imp模式的标记和所选择的合并候选的索引,来对接收的预测进行加权和求和。在一些实施例中,还将控制组合预测模块608的操作的相同标志提供给熵编码器1090,以作为比特流1095的一部分进行上下文编码。
示例视频解码器
图12标出了示范性的视频解码器1200。如图所示,视频解码器1200是图像解码或视频解码电路,其接收比特流1295并将比特流的内容解码为视频帧的像素数据以供显示。视频解码器1200具有用于解码比特流1295的若干组件或模块,包括逆量化模块1205,逆变换模块1215,画面内图像预测模块1225,运动补偿模块1230,环路滤波器1245,解码图像缓冲器1250,mv缓冲器1265,mv预测模块1275和比特流解析器1290。
在一些实施例中,模块1210-1290是由计算设备的一个或多个处理单元(例如,处理器)执行的软件指令的模块。在一些实施例中,模块1210-1290是由电子设备的一个或多个ic实现的硬件电路的模块。尽管模块1210-1290被示为单独的模块,但是一些模块可以组合成单个模块。
解析器1290(或熵解码器)接收比特流1295并依据视频编码或图像编码标准定义的语法执行初始解析。已解析的语法元素包括各种标头元素,标志以及量化数据(或量化系数)1212。解析器1290透过使用诸如上下文自适应二进制算术编码(cabac)或霍夫曼编码之类的熵编码技术来解析各种语法元素。
逆量化模块1205对量化数据(或量化系数)1212进行逆量化(de-quantizes)以获得变换系数,并且逆变换模块1215对变换系数1216执行逆变换以产生已重建的残差信号1219。已重建的残差信号1219和来自画面内预测模块1225或运动补偿模块1230的预测像素数据1213相加,以产生已解码的像素数据1217。已解码的像素数据由环路滤波器1245滤波并存储在解码图像缓冲器1250中。在一些实施例中,解码图像缓冲器1250是视频解码器1200的外部存储器。在一些实施例中,解码图像缓冲器1250是视频解码器1200的内部存储器。
画面内预测模块1225从比特流1295接收预测数据,并依据该预测数据从存储在解码图片缓冲器1250中的解码像素数据1217产生已预测的像素数据1213。在一些实施例中,已解码的像素数据1217还存储在行缓冲器(未示出)中,用于画面内预测和空间mv预测。
在一些实施例中,解码图片缓冲器1250的内容被显示。显示设备1255或者恢复解码图像缓冲器1250的内容以便直接显示,或者将解码图像缓冲器的内容恢复到显示缓冲器。在一些实施例中,显示设备透过像素传输从解码图像缓冲器1250接收像素值。
运动补偿模块1230依据运动补偿mv(mcmv)从存储在解码图像缓冲器1250中的已解码像素数据1217产生预测像素数据1213。透过将从比特流1295接收的残差运动数据与从mv预测模块1275接收的预测mv相加来解码这些运动补偿mv。
mv预测模块1275基于为解码先前视频帧而生成的参考mv(例如,用于执行运动补偿的运动补偿mv)来产生预测的mv。mv预测模块1275从mv缓冲器1265恢复先前视频帧的参考mv。视频解码器1200将用于解码当前视频帧而在mv缓冲器1265中生成的运动补偿mv存储作为用于产生预测mv的参考mv。
环路滤波器1245对解码的像素数据1217执行滤波或平滑操作以减少编码的伪像,特别是在像素块的边界处。在一些实施例中,执行的滤波操作包括样本自适应偏移(sao)。在一些实施例中,滤波操作包括自适应环路滤波(alf)。
图13示出了视频解码器1200可在解码像素块时实施组合预测模式的结构。如图所示,视频解码器实作组合预测模块608,其产生已预测的像素数据1213。组合预测模块608接收由画面内预测模块1225生成的画面内模式预测值(即,画面内预测子)。组合预测模块还从运动补偿模块1230接收画面间模式预测值(即,画面间预测子或合并索引预测子)。运动补偿1230可针对组合预测模块608产生用于多个不同合并候选的多个合并索引预测值。用于由运动补偿模块1230和画面内预测模块1225解码像素块的运动信息和模式方向被保存在存储器1350中,以供相同的模块用于后续块。
基于诸如imp模式和所选合并候选的索引/索引的标记,对接收到的预测进行加权和求和。在一些实施例中,控制组合预测模块608的操作的这些标志由熵解码器1290透过解析比特流1295来提供。在一些实施例中,基于被解码的像素块的属性,这些标志由画面内预测模块1225和运动补偿模块1230生成。
图14a-图14b概念性地示出了视频编解码器在编码或解码视频图片的像素块时用以实作组合预测模式或imp模式的过程1400。在一些实施例中,实作编码器1000或解码器1200的计算设备的一个或多个处理单元(例如,处理器)透过执行存储在计算器可读介质中的指令来执行过程1400。在一些实施例中,实作编码器1000或解码器1200的电子设备执行过程1400。
视频编解码器接收(在步骤1410)视频图像的像素块作为要编码的当前块。像素块可以来自被作为pu或cu编码至比特流中的原始视频。像素块也可以来自作为pu或cu被解码为像素数据的比特流。
视频编解码器确定(在步骤1415)是否透过使用画面内预测或画面间预测来编码当前块。视频编解码器可以基于在比特流中明确编码的标志来而做出。视频编解码器可以基于当前块的属性来进行。如果透过画面内预测对当前块进行编码,则处理进行到1420。否则,透过画面间预测对当前块进行编码,并且处理进行到1460。
在步骤1420,视频编解码器生成当前块的画面内预测子。画面内预测子是基于一个可用画面内预测模式生成的预测像素值。
然后,视频编解码器确定(在步骤1425)组合预测模式是应用还是将应用于当前块。对于编码器,这透过例如执行速率-失真优化(rdo)方法来确定,并且确定结果可以由结合在比特流中的显式信号标记来指示。或者,这可以由编码器基于块的属性(诸如当前块的大小(例如,宽度,高度或面积)或相邻块的预测类型)来确定。对于解码器,这透过在比特流中解析上下文编码的显式标志来确定,或者基于块的属性(诸如当前块的大小(例如,宽度,高度或面积)或者相邻块的预测类型)来确定。如果透过组合预测模式对当前块进行编码或将要编码,则处理进行到步骤1430。如果当前块未被组合预测模式编码,则处理进行到步骤1480。
在步骤1480,视频编解码器透过使用所生成的画面内预测子作为最终预测子来对当前块进行编码或解码,以提供预测的像素数据。在此阶段,视频编解码器已决定仅执行画面内预测但不执行组合预测。然后,过程1400结束。
在步骤1430,视频编解码器基于一个合并候选产生一个画面内或合并索引的预测子,或基于多个合并候选产生多个画面内或合并索引的预测子。在一些实施例中,imp编码块利用比特流中的一个合并索引或多个合并索引进行编码,用于选择合并候选。视频编解码器可以使用来自先前块的运动信息来执行当前imp编码块的画面间预测。用于执行当前imp编码块的画面间预测的运动信息还可以用于执行后续块的画面间预测。然后,该过程进行到步骤1440。
在步骤1460,视频编解码器生成画面间预测子或合并索引预测子。然后,视频编解码器确定(在步骤1465)组合预测模式是应用还是将应用于当前块。例如,对于编码器,透过执行速率-失真优化(rdo)方法来确定,并且确定结果可以由结合在比特流中的显式信号标记来指示。或者,这可以由编码器基于块的属性(诸如当前块的大小(例如,宽度,高度或面积)或相邻块的预测类型)来确定。对于解码器,这透过解析比特流中的上下文编码的显式标志来确定,或者这是基于块的属性(诸如当前块的大小(例如,宽度,高度或面积)或相邻块的预测类型)来确定。如果当前块透过组合预测模式进行编码,则处理进行到步骤1468。如果当前块未被组合预测模式编码,则处理进行到步骤1470。
在步骤1468,视频编解码器视频编解码器生成一个画面内预测子或多个画面内预测子。然后,该过程进行到步骤1440。
在步骤1470,视频编解码器透过使用所生成的画面间预测子作为最终预测子来对当前块进行编码或解码,以提供预测的像素数据。在此阶段,视频编解码器已决定仅执行画面间预测而不执行组合预测。然后,过程1400结束。
在步骤1440,基于透过对预测子执行平均或加权和所生成的画面内预测子和所生成的画面间预测子,视频编解码器生成当前块的组合预测子。
然后,视频编解码器透过使用组合预测子作为最终预测子来编码或解码(在步骤1450)当前块,以提供预测像素数据(例如,1013或1213)。然后,过程1400结束。
示范性电子系统
很多上述的特征和应用可以被实作为软件处理,其被指定为记录在计算器可读存储介质(computerreadablestoragemedium)(也称为计算器可读介质)上的指令集当这些指令由一个或多个计算或处理单元(例如,一个或多个处理器,处理器核心或其他处理单元)执行时,它们使处理单元执行指令中指示的动作。计算器可读介质的示例包括但不限于cd-rom,闪存驱动器,随机存取存储器(ram)芯片,硬盘驱动器,可擦除可编程只读存储器(eprom),电可擦除可编程只读存储器(eeprom)等。计算器可读介质不包括透过无线或有线连接传递的载波和电子信号。
在本说明书中,术语“软件”旨在包括存在只读存储器中的固件或存储在磁存储器中的应用程序,其可被读入存储器以供处理器处理。而且,在一些实施例中,多个软件发明可以实作为较大程序的子部分,同时保持不同的软件发明。在一些实施例中,多个软件发明也可以实现为单独的程序。最后,共同实现这里描述的软件发明的单独程序的任何组合都在本公开的范围内。在一些实施例中,当安装软件程序以在一个或多个电子系统上操作时,软件过程定义执行软件程序的操作的一个或多个特定机器实现。
图15概念性地示出了电子系统1500,利用该电子系统1500实作了本公开的一些实施例。电子系统1500可以是计算器(例如,台式计算器,个人计算器,平板计算器等),电话,pda或任何其他种类的电子设备。这种电子系统包括各种类型的计算器可读介质和用于各种其他类型的计算器可读介质的接口。电子系统1500包括总线1505,处理单元1510,图像处理单元(gpu)1515,系统存储器1520,网络1525,只读存储器1530,永久存储设备1535,输入设备1540和输出设备1545。
总线1505共同表示通讯地连接电子系统1500的众多内部设备的所有系统,外围设备和芯片组总线。例如,总线1505将处理单元1510与gpu1515,只读存储器1530,系统存储器1520和永久存储设备1535通讯地连接。
从这些各种存储器单元,处理单元1510恢复要执行的指令和要处理的数据,以便执行本发明的过程。在不同实施例中,处理单元可以是单个处理器或多核处理器。一些指令被传递到gpu1515并由gpu1515执行。gpu1515可以卸除各种计算或补充由处理单元1510提供的图像处理。
只读存储器(rom)1530存储处理单元1510和电子系统的其他模块所需的静态数据和指令。另一方面,永久存储设备1535是读写存储设备。该设备是非易失性存储器单元,即使在电子系统1500关闭时也存储指令和数据。本发明的一些实施例使用大容量存储设备(诸如磁盘或光盘及其相应的磁盘驱动器)作为永久存储设备1535。
其他实施例使用便携式存储设备(诸如软盘,闪存设备等,以及其对应的磁盘驱动器)作为永久存储设备。与永久存储设备1535类似,系统存储器1520是读写存储器设备。然而,与存储设备1535不同,系统存储器1520是易失性读写存储器,例如随机存取存储器。系统存储器1520存储处理器在运行时需要的一些指令和数据。在一些实施例中,依据本发明的过程存储在系统存储器1520,永久存储设备1535和/或只读存储器1530中。例如,各种存储器单元包括用于依据一些实施例的处理多媒体剪辑的指令。在一些实施例中。从这些各种存储器单元,处理单元1510恢复要执行的指令和要处理的数据,以便执行一些实施例的处理。
总线1505还连接到输入和输出设备1540和1545。输入设备1540使用户能够向电子系统传送信息和选择命令。输入设备1540包括字母数字键盘和指示设备(也称为“光标控制设备”),相机(例如,网络摄像头),麦克风或用于接收语音命令等的类似设备。输出设备1545显示由电子系统生成的图像或否则输出数据。输出设备1545包括打印机和显示设备,例如阴极射线管(crt)或液晶显示器(lcd),以及扬声器或类似的音频输出设备。一些实施例包括诸如触摸屏之类的设备,其用作输入和输出设备。
最后,如图15所示,总线1505还透过网络适配器(未示出)将电子系统1500耦合到网络1525。以这种方式,计算器可以是计算器网络的一部分(例如局域网(“lan”),广域网(“wan”)或内部网络,或网络中的网络,例如因特网。电子系统1500的任何或所有组件可以与本公开结合使用。
一些实施例包括电子组件,诸如微处理器,存储器和存储器,其将计算器程序指令存储在机器可读或计算器可读介质中(或者称为计算器可读存储介质,机器可读介质,或机器-可读存储介质)。这种计算器可读介质的一些示例包括ram,rom,只读光盘(cd-rom),可记录光盘(cd-r),可重写光盘(cd-rw),只读数字通用光盘(例如,dvd-rom,双层dvd-rom),各种可记录/可重写dvd(例如,dvd-ram,dvd-rw,dvd+rw等),闪存(例如sd卡,mini-sd)卡,micro-sd卡等),磁性和/或固态硬盘驱动器,只读和可记录蓝光
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但是许多上述特征和应用由一个或多个集成电路执行,例如专用集成电路(asic)或现场可编程门数组(fpga)。在一些实施例中,这种集成电路执行存储在电路自身上的指令。另外,一些实施例执行存储在可编程逻辑器件(pld),rom或ram器件中的软件。
如在本说明书和本申请的权利要求中所使用,术语“计算器”,“服务器”,“处理器”和“存储器”均指电子或其他技术设备。这些条款不包括人或群体。出于说明书的目的,术语显示或显示设备指显示在电子设备上。如在本说明书和本申请的任何权利要求中所使用的,术语“计算器可读介质”,和“机器可读介质”完全限于计算器可读形式中存储的信息的有形物理对象。这些术语不包括任何无线信号,有线下载信号和任何其他短暂的信号。
虽然已经参考许多具体细节描述了本发明,但是本领域通常知识者将认识到,在不脱离本公开的精神的情况下,本公开可以以其他具体形式实施。此外,许多图(包括图14a-图14b)概念性地说明了这些过程。这些过程的具体操作可能无法按照显示和描述的确切顺序执行。可以不在一个连续的一系列操作中执行特定操作,并且可以在不同的实施例中执行不同的特定操作。此外,该过程可以使用多个子过程来实现,或者作为更大的宏过程的一部分来实现。因此,本领域通常知识者将理解,本发明不受前述说明性细节的限制,而是由所附权利要求限定。
补充说明
本文描述的主题有时示出包含在不同其他组件内或与不同其他组件连接的不同组件。要理解的是,这样描绘的架构仅仅是示例,并且实际上可以实现许多其他架构,其实现相同的功能。在概念意义上,实现相同功能的任何组件布置有效地“关联”,使得实现期望的功能。因此,这里组合以实现特定功能的任何两个组件可以被视为彼此“相关联”,使得实现期望的功能,而不管架构或中间组件。同样地,如此关联的任何两个组件也可以被视为彼此“可操作地连接”或“可操作地耦合”以实现期望的功能,并且能够如此关联的任何两个组件也可以被视为“可操作地耦合”,以使得彼此实现所需的功能。可操作耦合的具体示例包括但不限于物理上可配对和/或物理上相互作用的组件和/或可无线交互和/或无线交互的组件和/或逻辑上相互作用和/或逻辑上可交互的组件。
此外,关于本文中基本上任何复数和/或单数术语的使用,只要符合本发明的内容,本领域通常知识者可以依据上下文从复数转换为单数和/或从单数转换为复数。为清楚起见,这里可以明确地阐述各种单数/复数排列。
此外,本领域的通常知识者可以理解,通常,本发明所使用的术语特别是权利要求中的,如权利要求的主题,通常用作“开放”术语,例如,“包括”应解释为“包括但不限于”,“有”应理解为“至少有”,“包括”应解释为“包括但不限于”等。本领域的通常知识者可以进一步理解,若计划介绍特定数量的权利要求内容,将在权利要求内明确表示,并且,在没有这类内容时将不显示。例如,为帮助理解,下面权利要求可能包含短语“至少一个”和“一个或复数个”,以介绍权利要求内容。然而,这些短语的使用不应理解为暗示使用不定冠词“a”或“an”介绍权利要求内容,而限制了任何特定的权利要求。甚至当相同的权利要求包括介绍性短语“一个或复数个”或“至少有一个”,不定冠词,例如“a”或“an”,则应被解释为表示至少一个或者更多,对于用于介绍权利要求的明确描述的使用而言,同样成立。此外,即使明确引用特定数量的介绍性内容,本领域通常知识者可以认识到,这样的内容应被解释为表示所引用的数量,例如,没有其他修改的“两个引用”,意味着至少两个引用,或两个或两个以上的引用。此外,在使用类似于“a、b和c中的至少一个”的表述的情况下,通常如此表述是为了本领域通常知识者可以理解该表述,例如,“系统包括a、b和c中的至少一个”将包括但不限于单独具有a的系统,单独具有b的系统,单独具有c的系统,具有a和b的系统,具有a和c的系统,具有b和c的系统,和/或具有a、b和c的系统,等。本领域通常知识者进一步可理解,无论在说明书中、权利要求中或者附图中,由两个或两个以上的替代术语所表现的任何分隔的单词和/或短语应理解为,包括这些术语中的一个,其中一个,或者这两个术语的可能性。例如,“a或b”应理解为,“a”,或者“b”,或者“a和b”的可能性。
从前述可知,为了说明目的,此处已描述了各种实施方案,并且在不偏离本发明的范围和精神的情况下,可以进行各种变形。因此,此处所公开的各种实施方式不用于限制,权利要求表示真实的范围和精神。