(本申请是申请日为2012年8月16日、申请号为201280040143.4、发明名称为“图像序列的编码方法和装置及图像序列的解码方法和装置”的申请的分案申请。)
本发明涉及一种用于对数字图像序列进行编码的方法和装置以及用于对相应的位流进行解码的方法和装置。本发明还涉及用于推导运动信息的方法和装置,其中该运动信息包括用于对通过相对于至少一个参考图像部分的运动补偿所预测出的图像的图像部分进行预测的至少一个运动信息预测结果。
本发明可以应用于数字信号处理领域,尤其应用于使用运动补偿来减少视频流中的空间冗余和时间冗余的视频压缩领域。
背景技术:
例如h.263、h.264、mpeg-1、mpeg-2、mpeg-4、svc等的许多视频压缩格式使用基于块的离散余弦变换(dct)和运动补偿以除去空间冗余和时间冗余。这些格式可被称为预测视频格式。视频信号的各帧或各图像被分割成编码后的并且能够独立进行解码的片(slice)。片通常是帧的矩形部分、或者更通常为帧的一部分或整个帧。此外,各片被分割成多个宏块(mb),并且各宏块被进一步分割成块、通常为8×8个像素的块。这些编码帧为(被称为p帧的根据一个参考帧而预测到的或者被称为b帧的根据两个参考帧而预测到的)时间预测帧和(被称为内帧或i帧的)非时间预测帧这两种类型。
时间预测在于:从参考帧(视频序列的先前帧或将来帧)中发现最接近要编码的块的图像部分或参考区域。该步骤通常已知为运动估计。接着,在通常被称为运动补偿的步骤中使用参考区域来预测块,即连同与表示运动补偿要使用的参考区域的运动矢量有关的运动信息项一起,对要编码的块和参考部分之间的差进行编码。在帧内(intra)预测中,对预测方向进行编码。
为了进一步降低对运动信息进行编码的代价,可以根据运动矢量和通常根据要编码的块周围的块的一个或多个运动矢量所计算出的运动矢量预测结果之间的差来对运动矢量进行编码。
在h.264中,针对根据位于要编码的块的因果邻域的运动矢量(例如根据位于要编码的块的上方和左方的块)所计算出的中值预测结果,来对运动矢量进行编码。对中值预测结果和当前块运动矢量之间的差(还被称为残差运动矢量)进行编码以降低编码代价。
使用残差运动矢量的编码节省了若干位率,但需要解码器进行运动矢量预测结果的相同计算从而对要解码的块的运动矢量的值进行解码。
近来,已提出了诸如使用多个可能运动矢量预测结果等的编码效率的进一步改进。通常被称为运动矢量竞争(mvcomp)的该方法在于:在几个运动矢量预测结果或候选之间判断哪个运动矢量预测结果使残差运动信息的编码代价(通常为率失真代价)最小。该残差运动信息包括残差运动矢量(即,要编码的块的实际运动矢量和所选择的运动矢量预测结果之间的差)、以及例如所选择的运动矢量预测结果的索引的编码值等的表示所选择的运动矢量预测结果的信息项。基于固定列表大小,以具有一元最大码的位流来对所选择的运动矢量预测结果的索引进行编码。
在高效率视频编码(hevc)中,已提出了用于使得能够从包括空间运动矢量和时间运动矢量的预测结果的给定集合中选择最佳预测结果的相同概念的新实现。该技术被称为高级运动矢量预测(amvp)。如果该给定集合的这些预测结果中的一些预测结果是该集合中的其它预测结果的重复值,则可以除去这些重复值并且可以将更多的预测结果添加至该集合以创建预测结果的新的第二集合。所添加的预测结果可以是已存在于集合中的空间预测结果和时间预测结果、根据这些空间预测结果和时间预测结果所推导出的其它预测结果、或者具有固定值的预测结果的组合。最后,除去预测结果的第二集合中的重复的预测结果从而获得预测结果的第二集合中的非冗余候选。
所生成的预测结果的第二集合大大增加了推导过程的计算复杂性。该计算复杂性增加是由于级联预测结果生成所引起的。
当前hevc实现使用针对帧间模式最多包含2个预测结果以及针对合并跳过模式和合并模式最多包含5个预测结果的运动矢量预测结果的集合。
在当前hevc设计中,帧间预测可以是单向或双向的。单向是指用于预测当前块的一个预测结果块。该一个预测结果块由列表索引、参考帧索引和运动矢量来定义。列表索引与参考帧的列表相对应。例如可以考虑使用l0和l1这两个列表。一个列表包含至少一个参考帧并且参考帧可以包括在这两个列表中。运动矢量具有水平和垂直这两个分量。运动矢量与参考帧中的当前块和时间预测结果块之间的像素方面的空间位移相对应。因而,针对单向预测的块预测结果是利用运动矢量所指向的从列表的参考帧(参考索引)起的块。
对于双向帧间预测,考虑两个块预测结果。针对各列表(l0和l1)存在一个块预测结果。结果,除了2个运动矢量以外,还考虑2个参考帧索引。针对双预测的帧间块预测结果是利用这两个运动矢量所指向的两个块中的针对各像素的平均值。
可以利用以下参数来定义帧间块预测结果所专用的运动信息:
·方向类型:单向或双向
·一个列表(单向)或两个列表(双向):l0、l1、l0和l1
·一个(单向)或两个参考帧索引(双向):refl0、refl1、(refl0,refl1)
·一个(单向)或两个(双向)运动矢量:各运动矢量具有两个分量(水平mvx和垂直mvy)。
可以注意,双向帧间预测结果仅可用于b型片类型。b片中的帧间预测可以是单向或双向的。在p片中,帧间预测仅是单向的。
hevc的当前设计使用帧间模式、合并模式和合并跳过模式这3个不同的帧间模式。这些模式之间的主要不同之处是位流中的数据传输。
在帧间模式中,明确地传输所有数据。这意味着对纹理残差进行编码并且插入到位流中(纹理残差是当前块和帧间预测块之间的差)。对于运动信息,对所有数据进行编码。因而,对方向类型进行编码(单向或双向)。在需要的情况下还对列表索引进行编码并且插入到位流中。明确地对相关的参考帧索引进行编码并且插入到位流中。利用所选择的运动矢量预测结果来预测运动矢量值。然后对针对各分量的运动矢量残差进行编码并且插入到位流中,之后是预测结果索引。
在合并模式中,对纹理残差和预测结果索引进行编码并且插入到位流中。没有对运动矢量残差、方向类型、列表或参考帧索引进行编码。这些运动参数是根据预测结果索引所推导出的。因而,预测结果是运动信息的所有数据的预测结果。
在合并跳过模式中,除了“模式”和预测结果索引以外,没有信息发送至解码器侧。在该模式中,除了没有对纹理残差进行编码或发送以外,处理与合并模式相似。合并跳过块的像素值是块预测结果的像素值。
在图1所示的运动信息预测结果的集合中,从帧n内的位于要编码的块的上方和左方的包括上角部块和左角部块的这些块中选择帧间模式的两个空间运动矢量。
从“左下方”和“左方”的块中选择左方预测结果。按指定顺序评价以下条件,直到找到运动矢量值为止。
1.来自相同参考列表和相同参考图片的运动矢量
2.来自其它参考列表和相同参考图片的运动矢量
3.来自相同参考列表和不同参考图片的缩放运动矢量
4.来自其它参考列表和不同参考图片的缩放运动矢量
如果没有找到值,则左方预测结果被视为不可用。在这种情况下,这表示对相关块进行了帧内编码或者不存在这些块。利用如上所述的相同条件,按特定顺序从“右上方”、“上方”和“左上方”中选择上方预测结果。
时间运动预测结果来自于低延迟结构中的最近参考帧。在b帧的情况下,针对帧n-1中的同位置块,考虑2个运动矢量。一个运动矢量在第一列表“l0”中,并且一个运动矢量在第二列表“l1”中。在这两个运动矢量都存在的情况下,选择时间距离最短的运动矢量。在这两个运动矢量预测结果具有相同的时间距离的情况下,选择来自第一列表“l0”的运动。然后,在需要的情况下,根据所选择的同位置运动矢量的时间距离和编码后的运动矢量的时间距离来对该同位置运动矢量进行缩放。在不存在同位置预测结果的情况下,预测结果被视为不可用。
对于分层b帧编码,可以考虑2个同位置运动矢量。这两者来自于将来参考帧。选择与当前帧交叉的运动矢量。在这两个预测结果均与当前帧交叉的情况下,选择时间距离最短的运动矢量。在这两个预测结果具有相同的时间距离的情况下,选择来自第一列表“l0”的运动。然后,在需要的情况下,根据所选择的同位置运动矢量的时间距离和编码后的运动矢量的时间距离来对该同位置运动矢量进行缩放。在不存在同位置预测结果的情况下,预测结果被视为不可用。
对于低延迟情况和分层情况,当将同位置块分割成多个分区(可能地,同位置块包含多个运动矢量)时,所选择的分区是左上方的中心分区。此外,时间预测结果是同位置块的右下位置(图1中的位置h)处的块的运动矢量。如果该块不存在或者如果对该块进行帧内编码,则选择同位置块的中心位置处的块作为要推导出的运动矢量。
然后,将运动预测结果值添加至预测结果的集合。
最后,应用抑制处理。该抑制处理在于:将重复的预测结果从所选择的运动矢量预测结果的集合中除去。在该处理结束时,该集合包含非重复的运动矢量预测结果。该集合可以包含1、2、3或4个预测结果。在当前设计中,预测结果的列表是固定的从而将列表大小限制为2。结果,利用一位对所选择的预测结果进行编码。因而,如果列表中的预测结果的数量为3个或4个,则除去最后的预测结果或分别除去最后2个预测结果。
合并模式(“传统”或跳过)的预测结果表示方向、列表、参考帧索引和运动矢量的所有运动信息。如表1所示,利用一元最大码来对预测结果索引进行编码。
表1
在当前hevc设计中,针对所有的合并块或合并跳过块将列表大小固定为5。
图2是帧间预测的合并模式所用的运动矢量推导处理的示例的流程图(合并跳过和合并具有相同的运动矢量预测结果推导处理)。应用该方法以获得用于相对于参考图像部分对图像的图像部分进行编码的可能运动信息预测结果的集合。在该推导的第一步骤中,考虑7个块位置(601~607)。这些位置是图1所示的空间位置和时间位置(在这两个图中将各位置以相同方式进行标记)。模块608检查这些运动矢量的可用性并且最多选择5个运动矢量。实现步骤608的该模块在预测结果存在并且没有对块进行帧内编码的情况下,判断为该预测结果可用。根据以下条件来执行所选择的5个运动矢量的选择和验证。
·如果“左方”运动矢量(601)可用(即,如果该运动矢量存在并且如果没有对该块进行帧内编码),则选择并使用“左方”块的运动矢量作为预测结果1(610)。
·如果“上方”运动矢量(602)可用,则选择并使用“上方”块的运动矢量作为预测结果2(611)。
·如果“右上方”运动矢量(603)可用,则选择并使用“右上方”块的运动矢量作为预测结果3(612)。
·如果“左下方”运动矢量(604)可用,则选择并使用“左下方”块的运动矢量作为预测结果4(613)。
·如果先前预测结果中的一个(或多个)不可用、并且如果“左上方”运动矢量(605)可用,则将“左上方”块的运动矢量添加至运动矢量预测结果的集合内的所添加的空间预测结果之后。
·如果“h”运动矢量可用,则选择并使用“h”块的运动矢量作为预测结果5(614)。如果“h”块不可用,则检查“同位置”运动矢量(即,位于参考帧中的与当前帧中的当前块相同的位置处的块的运动矢量)的可用性,并且在该运动矢量存在的情况下,使用该运动矢量作为时间预测结果。模块608所进行的可用性检查需要1个周期。
在需要的情况下应对时间预测结果进行缩放。实际上,对于时间运动矢量,方向和参考帧索引不是依赖于h或同位置块而是依赖于当前片的数据。如果当前块在b片中,则时间预测结果始终是双向的并且对于p片始终是单向的。针对参考帧的各列表(l0,l1)的参考帧索引是根据左方和上方的预测结果推导出的。对于列表,如果左方和上方的块这两者都不具有参考帧索引,则将针对时间预测结果的参考帧索引设置为零。
由于针对时间预测结果的参考帧索引不是依赖于“h”或“同位置”块的参考帧索引而是依赖于左方和上方的预测结果的参考帧,则应对其运动矢量值进行缩放。这意味着:如果时间运动矢量所覆盖的时间距离不同于预测结果的当前帧和参考帧之间的差,则对时间运动矢量进行缩放以覆盖正确的时间距离。
在模块608和609结束时,预测结果集合最多包含5个预测结果(610~614)。接着,应用抑制处理615以从该预测结果集合中除去重复候选。该处理在于:将该集合的各预测结果与同一集合的所有其它预测结果进行比较并且除去等于集合内的另一预测结果的那些预测结果(而保持重复候选是集合内的重复值的其它预测结果),以使得在集合内的预测结果中不存在重复值。针对p片的抑制处理考虑到运动矢量的值和它们的参考帧索引。因此,将运动矢量的两个分量及其参考索引与其它所有进行比较,并且仅在这三个值相等的情况下才从集合中除去预测结果。对于b帧,该标准扩展至方向和列表。因而,在预测结果使用相同的方向、相同的列表(l0、l1、或者l0和l1)、参考帧索引和相同值的运动矢量(对于双预测为mv_l0和mv_l1)的情况下,该预测结果被视为重复的预测结果。在最多需要比较5个预测结果的情况下,抑制处理持续1个周期。实际上,可以认为在1个周期内能够计算12次比较。在最复杂的情况下抑制处理所用的比较次数等于0~n-1的总和。结果,对于5个预测结果,需要10次比较(即,4+3+2+1=10)。
在该抑制处理615结束时,生成缩减预测结果集合616。
接着,运动矢量生成模块617基于缩减运动矢量预测结果集合来生成新的候选。该处理通常可以持续至少一个周期。可以注意,在当前hevc设计中,所使用的方案在最复杂的情况下可以产生最大为20个预测结果。该模块617产生预测结果的第二集合618。
将预测结果的第二集合618添加至预测结果的缩减集合616,并且应用抑制处理以除去该第二预测结果集合中的与缩减集合和第二集合这两者相比较的重复候选。该抑制处理与模块615的抑制处理相似。然而最终,如果列表包含5个以上的预测结果,则将预测结果的列表删减为作为hevc设计中所定义的当前列表大小的5个。可以注意,该处理至少可以持续1个周期。然而,该周期的持续时间依赖于预测结果的第二集合618中所生成的预测结果的数量。在hevc的当前实现中,由于所生成的预测结果的量(最复杂的情况:对于当前设计为32次比较),因此该处理持续3个周期。
最后,抑制处理619产生要提取针对当前块的预测结果的预测结果的最终集合620。
该处理的缺陷在于:针对合并模式的当前运动矢量预测结果推导在最复杂的情况下可以达到11个周期,而在最不复杂的情况下至少需要5个周期。因而运动矢量推导对编码和解码复杂性产生重大影响。
技术实现要素:
本发明是为了解决前述担心中的一个或多个而作出的。
根据本发明的第一方面,提供一种用于推导至少一个运动信息预测结果的方法,所述至少一个运动信息预测结果是通过相对于至少一个参考图像部分的运动补偿来对图像的图像部分进行编码或解码所用的,其中对于要编码或解码的所述图像部分,所述方法包括以下步骤:提供运动信息预测结果的第一集合内的运动信息预测结果的至少两个不同的第一子集和第二子集以供处理;处理运动信息预测结果的所述第一子集;处理运动信息预测结果的所述第二子集,运动信息预测结果的所述第二子集的处理的至少一部分是与运动信息预测结果的所述第一子集的处理的至少一部分同时进行的;以及基于通过运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理所得到的运动信息预测结果,来获得根据所述参考图像部分预测所述图像部分所能够使用的运动信息预测结果的最终集合。
如此,可以通过并行地处理运动矢量推导来降低当前hevc设计的运算复杂性。
在本发明的实施例中,运动信息预测结果至少包括运动矢量预测结果。在其它实施例中,运动信息预测结果还可以包括诸如参考图像的索引、方向类型即单或双、一个列表(单向)或两个列表(双向)即l0、l1、l0和l1等的运动信息参数。在一些实施例中,各运动矢量预测结果具有两个分量(水平和垂直)。
在本发明的一些实施例中,所述第一子集包括至少一个时间运动信息预测结果并且所述第二子集包括至少一个空间运动信息预测结果。
在本发明的特定实施例中,运动信息预测结果的第一子集包括时间运动信息预测结果,并且所述第一集合的所述第一子集的处理包括:基于要编码的所述图像部分的图像和所述参考图像部分的图像之间的时间差来对所述时间运动信息预测结果进行时间缩放。
所述第二子集的处理可以包括生成非重复运动信息预测结果的集合,其中在所述集合的运动信息预测结果中,不存在重复值。
在本发明的实施例中,在各运动矢量的两个分量的各值和其它关联运动信息参数彼此相等的情况下,运动信息预测结果可被视为另一运动信息预测结果的重复值。
所述第二子集的处理可以包括基于所述第二子集的运动信息预测结果来生成一个或多个附加运动信息预测结果。例如,生成一个或多个附加运动信息预测结果的步骤包括:对所述第二子集的一个或多个运动信息预测结果进行组合;以及/或者向所述第二子集的一个或多个信息预测结果添加偏移量。
通过仅基于不需要缩放操作的预测结果生成附加预测结果,使复杂性降低并且可以使缩放处理与预测结果的新生成并行地工作。可以减少合并模式的推导运动矢量所需的周期的数量,并且还减少了合并模式运动矢量为了提供非重复预测结果的集合所需的比较的次数。
在实施例中,运动信息预测结果的所述第一集合的所述第二子集的处理包括:在所述第二子集包含相同的一个或多个运动信息预测结果的情况下,从所述第二子集的运动信息预测结果中除去重复值,以提供运动信息预测结果的缩减子集;以及基于运动信息预测结果的所述缩减子集来生成更多运动信息预测结果,以提供运动信息预测结果的另一第二子集。
在本发明的相关方面中,可以独立地提供一种用于推导至少一个运动信息预测结果的方法,所述至少一个运动信息预测结果是通过相对于至少一个参考图像部分的运动补偿来对图像的图像部分进行编码或解码所用的,其中对于要编码或解码的所述图像部分,所述方法包括以下步骤:提供运动信息预测结果的第一集合(801~807)内的运动信息预测结果的至少两个不同的第一子集和第二子集以供处理,其中所述第一子集包括至少一个时间运动信息预测结果,并且所述第二子集包括至少一个空间运动信息预测结果且排除任何时间运动信息预测结果;处理(808,809)运动信息预测结果的所述第一子集;处理(808,815,817)运动信息预测结果的所述第二子集;以及基于通过运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理所得到的运动信息预测结果(818,814),来获得(819)根据所述参考图像部分预测所述图像部分所能够使用的运动信息预测结果的最终集合(820),其中,所述第二子集的处理包括:在所述第二子集包含相同的一个或多个运动信息预测结果的情况下,从所述第二子集的运动信息预测结果中除去重复值,以提供运动信息预测结果的缩减子集(816)。
由于将时间预测结果从针对第二子集的选择中排除,因此应当理解,从所选择的第二子集的预测结果中除去或抑制重复值的处理可以仅应用于空间预测结果,并且这样不涉及处理时间运动信息预测结果。
通过这样将时间预测结果从抑制处理中排除,减少了整体比较次数,由此降低了运算复杂性。
相反,在特定实施例中,将空间预测结果从针对第一子集的选择中排除。在一些实施例中第一集合(即,时间运动预测结果)的处理可以不涉及重复值的除去,尽管如以下更详细地所述,实施例可以有利地组合处理后的第一子集和第二子集以在获得最终集合的阶段排除重复值。换言之,因此第一集合的处理可以不涉及在获得最终集合之前除去重复值。
在实施例中,与所述第二子集的除去重复值并且生成更多运动信息预测结果的步骤同时进行所述第一子集的时间运动信息预测结果的缩放。
在实施例中,所述方法还包括以下步骤:在通过运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理所得到的一个或多个运动信息预测结果相同的情况下,从通过运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理所得到的运动信息预测结果中除去重复值,以提供对所述图像部分进行编码所能够使用的运动信息预测结果的所述最终集合,从而使得在运动信息预测结果的所述最终集合中不存在重复值。
在实施例中,运动信息预测结果的所述第二子集的处理还包括:在所述缩减子集和所述另一第二子集的运动信息预测结果包含相同的一个或多个运动信息预测结果的情况下,从运动信息预测结果的所述缩减子集和运动信息预测结果的所述另一第二子集内的运动信息预测结果中除去重复值,以提供运动信息预测结果的第二缩减子集。
在实施例中,与所述第一子集的时间运动信息预测结果的缩放同时进行从所述另一第二子集的运动信息预测结果中除去重复值的步骤。
在实施例中,所述方法包括以下:将通过运动信息预测结果的所述第一子集的处理所得到的、并非是运动信息预测结果的所述第二缩减子集内的任何运动信息预测结果的重复值的运动信息预测结果添加至运动信息预测结果的所述第二缩减子集,以获得运动信息预测结果的所述最终集合.
在实施例中,所述方法包括以下:将通过运动信息预测结果的所述第一子集的处理所得到的、并非是运动信息预测结果的所述缩减子集内的任何运动信息预测结果的重复值的运动信息预测结果添加至运动信息预测结果的所述缩减子集,其中,运动信息预测结果的所述最终集合包括运动信息预测结果的所述缩减子集和运动信息预测结果的所述另一第二子集内的运动矢量预测结果中的非重复运动矢量。
在实施例中,与所述第一子集的处理同时进行的所述第二子集的处理是基于针对所述第一子集的处理的持续时间的估计。
在实施例中,添加至通过所述第一子集的处理所得到的运动信息预测结果以获得运动信息预测结果的所述最终集合所用的、通过所述第二子集的处理所得到的运动信息预测结果是基于所述第一子集的处理的持续时间。
在实施例中,所述方法还包括基于所述图像部分的图像和所述参考图像部分的图像之间的时间差来判断是否要对运动信息预测结果的所述第一子集应用时间缩放处理的步骤,其中,在判断为要应用时间缩放处理的情况下,运动信息预测结果的所述第一子集的处理包括基于所述图像部分的图像和所述参考图像部分的图像之间的时间差来对运动信息预测结果的所述第一子集内的运动信息预测结果进行时间缩放的步骤,否则,在判断为不应用时间缩放处理的情况下,在除去所述第二子集内的重复值的处理期间使用所述第一子集的运动信息预测结果,由此通过运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理来提供包括运动信息预测结果的所述第一子集和运动信息预测结果的所述第二子集内的运动信息预测结果中的非重复运动信息预测结果的缩减子集。
在实施例中,在判断为要应用时间缩放处理的情况下,通过从根据运动信息预测结果的所述第一子集和运动信息预测结果的所述第二子集的同时处理所得到的运动信息预测结果中除去重复值来获得运动信息预测结果的所述最终集合,否则,在判断为不应用时间缩放处理的情况下,通过基于所述缩减子集生成(917)更多运动信息预测结果以提供运动信息预测结果的另一第二子集、并且从运动信息预测结果的所述另一第二子集中除去重复值,来获得运动信息预测结果的所述最终集合。
在实施例中,所述方法还包括以下步骤:判断运动信息预测结果的所述第一子集的时间缩放处理的复杂性,其中,在判断为所述时间缩放处理将持续比预定持续时间阈值长的持续时间的情况下,通过从根据运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理所得到的运动信息预测结果中除去重复值,来获得运动信息预测结果的所述最终集合,否则,在判断为所述时间缩放处理将持续比预定持续时间阈值短的持续时间的情况下,通过将根据运动信息预测结果的所述第一子集的处理所得到的、并非是运动信息预测结果的所述缩减子集内的任何运动信息预测结果的重复值的运动信息预测结果添加至根据运动矢量预测结果的所述第二子集所获得的运动信息预测结果的所述缩减子集,来获得运动信息预测结果的所述最终集合,其中运动信息预测结果的所述最终集合包括运动信息预测结果的所述缩减子集和运动信息预测结果的另一第二子集内的运动信息预测结果中的非重复运动信息预测结果。
在实施例中,运动信息预测结果的所述第一集合的所述第二子集的处理还包括:基于所述第二子集的运动信息预测结果中的一个运动信息预测结果来生成运动信息预测结果的另一集合,并且将所述第二子集的运动信息预测结果中的所述一个运动信息预测结果包括在运动信息预测结果的所述另一集合内,其中在运动信息预测结果的所述另一集合内不存在重复值,所述方法还包括以下步骤:从运动信息预测结果的所述缩减子集和运动信息预测结果的所述另一集合中除去重复值,以提供非重复运动信息预测结果的集合。
在实施例中,运动信息预测结果的所述第一集合的所述第二子集的处理还包括:基于运动信息预测结果的所述缩减子集来生成更多运动信息预测结果,以提供运动信息预测结果的另一第二子集;以及从运动信息预测结果的所述另一第二子集和非重复运动信息预测结果的所述集合内的运动信息预测结果中除去重复值,以提供运动信息预测结果的第二非重复集合。
在实施例中,所述方法还包括以下步骤:将通过运动信息预测结果的所述第一子集的处理所得到的、并非是非重复运动信息预测结果的所述第二集合内的任何运动信息预测结果的重复值的运动信息预测结果添加至非重复运动信息预测结果的所述第二集合,以获得运动信息预测结果的所述最终集合。
根据本发明的第二方面,提供一种用于推导至少一个运动信息预测结果的装置,所述至少一个运动信息预测结果是通过相对于至少一个参考图像部分的运动补偿来对图像的图像部分进行编码或解码所用的,所述装置包括:用于获得运动信息预测结果的第一集合内的运动信息预测结果的至少两个不同的第一子集和第二子集的部件;第一处理部件,用于处理运动信息预测结果的所述第一子集;第二处理部件,用于处理运动信息预测结果的所述第二子集,其中所述第二处理部件能够用于与所述第一处理部件所进行的运动信息预测结果的所述第一子集的处理的至少一部分同时进行运动信息预测结果的所述第二子集的处理的至少一部分;以及用于基于通过运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理所得到的运动信息预测结果、来获得根据所述参考图像部分预测所述图像部分所能够使用的运动信息预测结果的最终集合的部件。
在实施例中,所述第一子集包括至少一个时间运动信息预测结果并且所述第二子集包括至少一个空间运动信息预测结果。
在实施例中,所述第一处理部件能够用于基于要编码的所述图像部分的图像和所述参考图像部分的图像之间的时间差,对所述时间运动信息预测结果或各所述时间运动信息预测结果进行时间缩放。
在实施例中,所述第二处理部件还能够用于生成非重复运动信息预测结果的集合,其中在所述集合的运动信息预测结果中不存在重复值。
在实施例中,所述第二处理部件还能够用于基于所述第二子集的运动信息预测结果来生成一个或多个附加运动信息预测结果。
在实施例中,所述第二处理部件还能够用于对所述第二子集的一个或多个运动信息预测结果进行组合、以及/或者向所述第二子集的一个或多个运动信息预测结果添加偏移量。
在实施例中,所述第二处理部件能够用于进行以下操作:在所述第二子集包含相同的一个或多个运动信息预测结果的情况下,从所述第二子集的运动信息预测结果中除去重复值,以提供运动信息预测结果的缩减子集;并且基于运动信息预测结果的所述缩减子集来生成更多运动信息预测结果以提供运动信息预测结果的另一第二子集。
在相关方面中,可以独立地提供一种用于推导至少一个运动信息预测结果的装置,所述至少一个运动信息预测结果是通过相对于至少一个参考图像部分的运动补偿来对图像的图像部分进行编码或解码所用的,所述装置包括:用于获得运动信息预测结果的第一集合(801~807)内的运动信息预测结果的至少两个不同的第一子集和第二子集的部件,其中所述第一子集包括至少一个时间运动信息预测结果,并且所述第二子集包括至少一个空间运动信息预测结果且排除任何时间运动信息预测结果;第一处理部件(808,809),用于处理运动信息预测结果的所述第一子集;第二处理部件(808,815,817),用于处理运动信息预测结果的所述第二子集;以及用于基于通过运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理所得到的运动信息预测结果(818,814)、来获得(819)根据所述参考图像部分预测所述图像部分所能够使用的运动信息预测结果的最终集合(820)的部件,其中,所述第二处理部件能够用于在所述第二子集包含相同的一个或多个运动信息预测结果的情况下,从所述第二子集的运动信息预测结果中除去重复值,以提供运动信息预测结果的缩减子集(816)。
在实施例中,所述第一处理部件还能够用于与所述第二处理部件所进行的所述第二子集的除去重复值并且生成更多运动信息预测结果的操作同时进行所述第一子集的所述时间运动信息预测结果的缩放。
在实施例中,所述装置还包括:抑制部件,用于在通过运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理所得到的一个或多个运动信息预测结果相同的情况下,从通过运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理所得到的运动信息预测结果中除去重复值,以提供对所述图像部分进行编码所能够使用的运动信息预测结果的所述最终集合,从而使得在运动信息预测结果的所述最终集合中不存在重复值。
在实施例中,所述第二处理部件还能够用于进行以下操作:在所述缩减子集和所述另一第二子集的运动信息预测结果包含相同的一个或多个运动信息预测结果的情况下,从运动信息预测结果的所述缩减子集和运动信息预测结果的所述另一第二子集内的运动信息预测结果中除去重复值,以提供运动信息预测结果的第二缩减子集。
在实施例中,所述第二处理部件能够用于与所述第一处理部件所进行的所述第一子集的时间运动信息预测结果的缩放同时,从运动信息预测结果的所述缩减子集和运动信息预测结果的所述另一第二子集内的运动信息预测结果中除去重复值。
在实施例中,所述装置还包括以下部件,所述部件能够用于将通过运动信息预测结果的所述第一子集的处理所得到的、并非是运动信息预测结果的所述第二缩减子集内的任何运动信息预测结果的重复值的运动信息预测结果添加至运动信息预测结果的所述第二缩减子集,以获得运动信息预测结果的所述最终集合。
在实施例中,所述装置还包括:用于将通过运动信息预测结果的所述第一子集的处理所得到的、并非是运动信息预测结果的所述缩减子集内的任何运动信息预测结果的重复值的运动信息预测结果添加至运动信息预测结果的所述缩减子集的部件,其中,运动信息预测结果的所述最终集合包括运动信息预测结果的所述缩减子集和运动信息预测结果的所述另一第二子集内的运动矢量预测结果中的非重复运动矢量。
在实施例中,所述装置还包括用于估计所述第一子集的处理的持续时间的部件,其中与所述第一处理部件所进行的所述第一子集的处理同时进行的所述第二处理部件所进行的所述第二子集的处理是基于针对所述第一子集的处理的持续时间的估计。
在实施例中,所述装置还包括用于估计所述第一子集的处理的持续时间的部件,其中添加至通过所述第一子集的处理所得到的运动信息预测结果以获得运动信息预测结果的所述最终集合所用的、通过所述第二子集的处理所得到的运动信息预测结果是基于所述第一子集的处理的持续时间。
在实施例中,所述装置还包括:用于基于所述图像部分的图像和所述参考图像部分的图像之间的时间差来判断是否要对运动信息预测结果的所述第一子集应用时间缩放处理的部件,其中,在判断为要应用时间缩放处理的情况下,所述第一处理部件能够用于基于所述图像部分的图像和所述参考图像部分的图像之间的时间差来对运动信息预测结果的所述第一子集内的运动信息预测结果进行时间缩放,否则,在判断为不应用时间缩放处理的情况下,所述第二处理部件能够用于使用所述第一子集的运动信息预测结果以从运动信息预测结果中除去重复值,由此通过所述第一处理部件和所述第二处理部件所进行的处理来提供包括运动信息预测结果的所述第一子集和运动信息预测结果的所述第二子集内的运动信息预测结果中的非重复运动信息预测结果的缩减子集。
在实施例中,所述装置还包括抑制部件,其中,在判断为要应用时间缩放处理的情况下,所述抑制部件能够用于通过从根据运动信息预测结果的所述第一子集和运动信息预测结果的所述第二子集的同时处理所得到的运动信息预测结果中除去重复值来获得运动信息预测结果的所述最终集合,否则,在判断为不应用时间缩放处理的情况下,所述第一处理部件或所述第二处理部件能够用于基于所述缩减子集来获得更多运动信息预测结果以提供运动信息预测结果的另一第二子集,并且所述抑制部件能够用于从运动信息预测结果的所述另一第二子集中除去重复值。
在实施例中,所述装置还包括:用于判断运动信息预测结果的所述第一子集的时间缩放处理的复杂性的部件;以及抑制部件,用于获得非重复的运动信息预测结果的所述最终集合,其中,在判断为所述时间缩放处理将持续比预定持续时间阈值长的持续时间的情况下,所述抑制部件能够用于从根据运动信息预测结果的所述第一子集的处理和运动信息预测结果的所述第二子集的处理所得到的运动信息预测结果中除去重复值。
否则,在判断为所述时间缩放处理将持续比预定持续时间阈值短的持续时间的情况下,所述抑制部件能够用于向根据运动矢量预测结果的所述第二子集获得的运动信息预测结果的所述缩减子集,添加通过运动信息预测结果的所述第一子集的处理所得到的、并非是运动信息预测结果的所述缩减子集内的任何运动信息预测结果的重复值的运动信息预测结果,其中运动信息预测结果的所述最终集合包括运动信息预测结果的所述缩减子集和运动信息预测结果的另一第二子集内的运动信息预测结果中的非重复运动信息预测结果。
在实施例中,所述第二处理部件包括:用于基于所述第二子集的运动信息预测结果中的一个运动信息预测结果来生成运动信息预测结果的另一集合、并且将所述第二子集的运动信息预测结果中的所述一个运动信息预测结果包括在运动信息预测结果的所述另一集合内的部件,其中在运动信息预测结果的所述另一集合内不存在重复值,所述装置还包括抑制部件,所述抑制部件用于从运动信息预测结果的所述缩减子集和运动信息预测结果的所述另一集合中除去重复值,以提供运动信息预测结果的非重复集合。
在实施例中,所述第二处理部件还包括:用于基于运动信息预测结果的所述缩减子集来生成更多运动信息预测结果以提供运动信息预测结果的另一第二子集的部件;以及用于从运动信息预测结果的所述另一第二子集和非重复运动信息预测结果的所述集合内的运动信息预测结果中除去重复值以提供运动信息预测结果的第二非重复集合的部件。
在实施例中,所述抑制部件能够用于将通过运动信息预测结果的所述第一子集的处理所得到的、并非是非重复运动信息预测结果的所述第二集合内的任何运动信息预测结果的重复值的运动信息预测结果添加至非重复运动信息预测结果的所述第二集合,以获得运动信息预测结果的所述最终集合。
根据本发明的第三方面,提供一种用于推导至少一个运动信息预测结果的方法,所述至少一个运动信息预测结果是通过相对于至少一个参考图像部分的运动补偿来对图像的图像部分进行编码或解码所用的,其中对于要编码或解码的所述图像部分,所述方法包括以下步骤:提供运动信息预测结果的第一集合内的运动信息预测结果的至少两个不同的第一子集和第二子集以供处理;基于代表运动信息预测结果的所述第一子集和所述第二子集中的至少一个子集的数据来估计对所述至少一个子集进行处理所用的持续时间;根据所估计出的处理持续时间,所述第一集合的运动信息预测结果的处理包括:对运动信息预测结果的所述第一子集进行处理,并且对运动信息预测结果的所述第二子集进行处理,其中运动信息预测结果的所述第二子集的处理的至少一部分是与运动信息预测结果的所述第一子集的处理的至少一部分同时进行的,或者一起处理运动信息预测结果的所述第一子集和所述第二子集;以及基于通过所述第一集合的运动信息预测结果的处理所得到的运动信息预测结果来获得根据所述参考图像部分预测所述图像部分所能够使用的运动信息预测结果的最终集合。
在实施例中,所述方法还包括以下步骤:将处理运动信息预测结果的所述第一子集所用的持续时间与处理运动信息预测结果的所述第二子集所用的持续时间进行比较,其中运动信息预测结果的所述第一集合的处理是基于该比较。
在实施例中,所述方法还包括以下步骤:将处理所述第一子集所用的持续时间和/或处理所述第二子集所用的持续时间与预定阈值进行比较,其中运动信息预测结果的所述第一集合的处理是基于该比较。
在实施例中,所述第一子集的处理包括所述第一子集的一个运动信息预测结果或各运动信息预测结果的时间缩放处理。
在实施例中,代表所述第一子集和/或所述第二子集的数据包括所述第一子集和/或所述第二子集的各运动信息预测结果的数据。
在实施例中,各运动信息预测结果的数据包括时间缩放处理所用的时间距离。
在实施例中,代表所述第一子集和/或所述第二子集的数据包括所述子集或各子集的运动信息预测结果的数量。
在实施例中,代表所述第一子集和/或所述第二子集的数据包括处理所述第一子集和/或所述第二子集所用的操作的最大数量。
根据本发明的第四方面,提供一种用于推导至少一个运动信息预测结果的装置,所述至少一个运动信息预测结果是通过相对于至少一个参考图像部分的运动补偿来对图像的图像部分进行编码或解码所用的,所述装置包括:
用于获得运动信息预测结果的第一集合内的运动信息预测结果的至少两个不同的第一子集和第二子集的部件;
用于基于代表运动信息预测结果的所述第一子集和所述第二子集中的至少一个子集的数据来估计对所述至少一个子集进行处理所用的持续时间的部件;
用于处理运动信息预测结果的所述第一子集的第一处理部件和用于处理运动信息预测结果的所述第二子集的第二处理部件,
根据所估计出的处理持续时间,所述第二处理部件能够用于:
与所述第一处理部件所进行的运动信息的所述第一子集的处理的至少一部分同时进行运动信息预测结果的所述第二子集的处理的至少一部分,或者
一起处理运动信息预测结果的所述第一子集和所述第二子集;以及
所述装置还包括:用于基于通过所述第一集合的运动信息预测结果的处理所得到的运动信息预测结果来获得根据所述参考图像部分预测所述图像部分所能够使用的运动信息预测结果的最终集合的部件。
在实施例中,所述装置还配备有比较部件,所述比较部件用于将处理运动信息预测结果的所述第一子集所用的持续时间与处理运动信息预测结果的所述第二子集所用的持续时间进行比较,其中所述第一处理部件所进行的运动信息预测结果的所述第一集合的处理是基于该比较。
在实施例中,所述装置还配备有比较部件,所述比较部件用于将处理所述第一子集所用的持续时间和/或处理所述第二子集所用的持续时间与预定阈值进行比较,其中所述第一处理部件所进行的运动信息预测结果的所述第一集合的处理是基于该比较。
在实施例中,所述第一处理部件能够用于进行所述第一子集的一个运动信息预测结果或各运动信息预测结果的时间缩放处理。
在实施例中,代表所述第一子集和/或所述第二子集的数据包括所述第一子集和/或所述第二子集的各运动信息预测结果的数据。
在实施例中,各运动信息预测结果的数据包括时间缩放处理所用的时间距离。
在实施例中,代表所述第一子集和/或所述第二子集的数据包括所述子集或各子集的运动信息预测结果的数量。
在实施例中,代表所述第一子集和/或所述第二子集的数据包括处理所述第一子集和/或所述第二子集所用的操作的最大数量。
本发明的另一方面提供一种用于推导至少一个运动信息预测结果的方法,所述至少一个运动信息预测结果是通过相对于至少一个参考图像部分的运动补偿来对图像的图像部分进行编码或解码所用的,其中对于要编码或解码的所述图像部分,所述方法包括以下步骤:处理运动信息预测结果的第一集合内的运动信息预测结果,以获得根据所述参考图像部分预测所述图像部分能够使用的运动信息预测结果的最终集合,其中运动信息预测结果的所述第一集合的处理包括:将所述第一集合细分成运动信息预测结果的至少两个不同的第一子集和第二子集;基于代表运动信息预测结果的所述第一子集和所述第二子集中的至少一个子集的数据来估计对所述至少一个子集进行处理所用的持续时间;根据所估计出的处理持续时间,进行以下操作:使用所述细分来进行运动信息预测结果的所述第一集合的处理,以使得运动信息预测结果的所述第二子集的处理的至少一部分是与运动信息预测结果的所述第一子集的处理的至少一部分同时进行的,或者在无需使用所述细分的情况下进行运动信息预测结果的所述第一集合的处理。
本发明的又一方面提供一种用于推导至少一个运动信息预测结果的装置,所述至少一个运动信息预测结果是通过相对于至少一个参考图像部分的运动补偿来对图像的图像部分进行编码或解码所用的,其中对于要编码或解码的所述图像部分,所述装置包括以下部件:处理部件,用于处理运动信息预测结果的第一集合内的运动信息预测结果,以获得根据所述参考图像部分预测所述图像部分能够使用的运动信息预测结果的最终集合,其中所述处理部件包括:用于将所述第一集合细分成运动信息预测结果的至少两个不同的第一子集和第二子集的部件;用于基于代表运动信息预测结果的所述第一子集和所述第二子集中的至少一个子集的数据来估计对所述至少一个子集进行处理所用的持续时间的部件;所述处理部件能够用于根据所估计出的处理持续时间,进行以下操作:使用所述细分来进行运动信息预测结果的所述第一子集的处理,以使得运动信息预测结果的所述第二子集的处理的至少一部分是与运动信息预测结果的所述第一子集的处理的至少一部分同时进行的,或者在无需使用所述细分的情况下进行运动信息预测结果的所述第一集合的处理。
本发明的还一方面提供一种用于推导至少一个运动信息预测结果的方法,所述至少一个运动信息预测结果是通过相对于至少一个参考图像部分的运动补偿来对图像的图像部分进行编码或解码所用的,其中对于要编码或解码的所述图像部分,所述方法包括以下步骤:获得运动信息预测结果的第一集合并且同时处理运动信息处理结果的所述第一集合内的运动信息预测结果的至少两个不同的子集,其中所述同时处理提供根据所述参考图像部分预测所述图像部分能够使用的运动信息预测结果的最终集合。
本发明的第五方面提供一种用于将数字图像序列编码成位流的方法,图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的,其中对于要编码的至少一个图像部分,所述方法包括以下步骤:根据本发明的第一方面或第三方面的任一实施例所述的方法来获得相对于至少一个所述参考图像部分来对所述图像部分进行运动预测所能够使用的运动信息预测结果的集合;从运动信息预测结果的所述集合中选择至少一个运动信息预测结果以对所述图像部分进行编码;以及使用所选择的至少一个运动信息预测结果来对所述图像部分进行编码。
所述方法还可以包括以下步骤:对用于识别所选择的运动信息预测结果的信息项进行编码。
本发明的第六方面提供一种用于将图像序列编码成位流的编码装置,图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的,所述编码装置包括:用于根据本发明的第二方面或第四方面的任一实施例所述的装置来推导至少一个运动信息预测结果的装置;选择部件,用于从运动信息预测结果的集合中选择至少一个运动信息预测结果以对所述图像部分进行编码;以及编码部件,用于使用所选择的至少一个运动信息预测结果来对所述图像部分进行编码。
本发明的第七方面提供一种用于对包括编码后的图像序列的位流进行解码的方法,图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的,其中对于要解码的至少一个图像部分,所述方法包括以下步骤:根据本发明的第一方面或第三方面的任一实施例所述的方法来获得相对于至少一个所述参考图像部分来对所述图像部分进行运动预测所能够使用的运动信息预测结果的集合;从运动信息预测结果的所述集合中选择至少一个运动信息预测结果以对所述图像部分进行解码;以及使用所选择的至少一个运动信息预测结果来对所述图像部分进行解码。
本发明的第八方面提供一种用于对包括编码后的图像序列的位流进行解码的解码装置,图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的,所述解码装置包括:用于根据本发明的第二方面或第四方面的任一实施例所述的装置来推导至少一个运动信息预测结果的装置;选择部件,用于从运动信息预测结果的集合中选择至少一个运动信息预测结果以对所述图像部分进行解码;以及解码部件,用于使用所选择的至少一个运动信息预测结果来对所述图像部分进行解码。
应当理解,本发明的不同方面的实施例可以用于p片和b片并且可以用于单向和双向的帧间预测这两者。
根据本发明的方法的至少一部分可以通过计算机来实现。因此,本发明可以采用完全硬件实施例、(包括固件、常驻软件、微代码等的)完全软件实施例、或者组合这里通常可以全部称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明可以采用以介质中嵌入有计算机可用程序代码的表现的任何有形介质中体现的计算机程序产品的形式。
由于本发明可以以软件来实现,因此本发明可以体现为计算机可读代码以提供至可编程设备的任何适当载体介质上。有形载体介质可以包括诸如软盘、cd-rom、硬盘驱动器、磁带装置或固态存储器装置等的存储介质。瞬态载体介质可以包括诸如电信号、光学信号、声学信号、磁信号或者例如微波或rf信号的电磁信号等的信号。
附图说明
现在将通过仅示例的方式并且参考以下附图来说明本发明的各实施例,其中:
图1是本发明的实施例的上下文中的运动矢量预测处理所使用的运动矢量预测结果的集合的示意图;
图2是示出用于推导运动矢量预测结果的集合的现有技术的处理的步骤的流程图;
图3是示出可以实现本发明的实施例的处理装置的组件的框图;
图4是示出根据本发明的实施例的编码器装置的组件的框图;
图5是示出根据本发明的实施例的解码器装置的组件的框图;
图6是示出根据本发明的第一实施例的用于获得运动信息预测结果的集合的方法的步骤的流程图;
图7是示出根据本发明的第二实施例的用于获得运动信息预测结果的集合的方法的步骤的流程图;
图8是示出根据本发明的第三实施例的用于获得运动信息预测结果的集合的方法的步骤的流程图;
图9是示出根据本发明的第四实施例的用于获得运动信息预测结果的集合的方法的步骤的流程图;
图10(a)~10(c)示意性示出根据本发明的一个或多个实施例的运动矢量预测结果的生成的方案;以及
图11是用于示出本发明的实施例中所使用的时间预测结果的缩放的处理的示意图。
具体实施方式
图3示意性示出被配置为实现本发明的至少一个实施例的处理装置200。处理装置200可以是诸如微计算机、工作站或轻薄便携式装置等的装置。装置200包括通信总线213,其中优选该通信总线213连接有以下组件:
-诸如微处理器等的表示为cpu的中央处理单元211;
-表示为rom的只读存储器207,用于存储实现本发明所用的计算机程序;
-表示为ram的随机存取存储器212,用于存储本发明的实施例的方法的可执行代码以及如下寄存器,其中这些寄存器被配置为记录实现根据本发明的实施例的对数字图像序列进行编码的方法和/或对位流进行解码的方法所需的变量和参数;以及
-通信接口202,其连接至传输要处理的数字数据所经由的通信网络203。
可选地,装置200还可以包括以下组件:
-诸如硬盘等的数据存储部件204,用于存储实现本发明的一个或多个实施例的方法的计算机程序以及在本发明的一个或多个实施例的实现期间所使用或所产生的数据;
-盘206所用的盘驱动器205,其中该盘驱动器被配置为从盘206读取数据或者将数据写到所述盘上;
-屏幕209,用于利用键盘210或任何其它指示部件来显示数据以及/或者用作与用户的图形界面。
装置200可以连接至例如数字照相机200或麦克风208等的各种外围设备,其中这些外围设备各自连接至输入/输出卡(未示出)从而向装置200供给多媒体数据。
通信总线提供装置200内所包括的或连接至装置200的各种元件之间的通信和互操作性。该总线的代表并非限制性的,并且特别地,中央处理单元可用于直接地或者利用装置200的其它元件向装置200的任意元件通信指示。
盘206可以由例如(可重写或不可重写的)致密盘(cd-rom)、zip盘或存储卡等的任何信息介质以及概括而言由信息存储部件来替换,其中该信息存储部件可以由集成于该装置内或没有集成于该装置内的可能能够移除的微计算机或微处理器来读取,并且被配置为存储如下的一个或多个程序,其中执行该一个或多个程序使得能够实现根据本发明的对数字图像序列进行编码的方法和/或对位流进行解码的方法。
可执行代码可以存储在只读存储器207中、硬盘204上或者例如前面所述的盘206等的可移除数字介质上。根据变形例,程序的可执行代码可以利用通信网络203经由接口202接收到,从而在执行之前存储在诸如硬盘204等的装置200的存储部件的其中一个内。
中央处理单元211被配置为控制和指导根据本发明的程序的指令或软件代码的一部分的执行,其中这些指令存储在上述存储部件的其中一个内。在通电时,将存储在非易失性存储器中(例如硬盘204上或只读存储器207中)的程序传递至随机存取存储器212,然后该随机存取存储器212容纳程序的可执行代码以及用于存储实现本发明所需的变量和参数的寄存器。
在本实施例中,该设备是使用软件来实现本发明的可编程设备。然而,可选地,本发明可以以硬件形式(例如,以专用集成电路或asic的形式)来实现。
图4示出根据本发明的至少一个实施例的编码器的框图。该编码器由所连接的模块来表示,其中各模块被配置为例如以装置200的cpu211要执行的编程指令的形式来执行实现根据本发明的一个或多个实施例的对图像序列中的图像进行编码的至少一个实施例的方法的至少一个相应步骤。
编码器30接收到原始的数字图像序列i0~in301作为输入。各数字图像由已知为像素的一组样本来表示。
编码器30在执行了编码处理之后输出位流310。
位流310包括多个编码单位或片,其中各片包括:片头,用于传输对片进行编码所使用的编码参数的编码值;以及片本体,其包括编码视频数据。
模块302将所输入的数字图像i0~in301分割成像素的块(302)。这些块与图像部分相对应并且可以具有可变大小(例如,4×4、8×8、16×16、32×32个像素)。针对各输入块,选择编码模式。设置有基于空间预测编码的编码模式(帧内预测)和基于时间预测的编码模式(帧间编码、双向、跳过)的这两类编码模式。对可能的编码模式进行测试。
模块303实现帧内预测,其中利用根据给定要编码的块附近的像素计算出的预测结果来预测该要编码的块。在选择帧内编码的情况下,对所选择的帧内预测结果和给定块与其预测结果之间的差的标示进行编码,以提供残差。
时间预测由运动估计模块304和运动补偿模块305来实现。首先,选择一组参考图像316中的参考图像,并且利用运动估计模块304来选择该参考图像中的作为最接近要编码的给定块的区域的部分(还被称为参考区域或图像部分)。然后,运动补偿模块305使用所选择的区域来预测要编码的块。利用运动补偿模块305来计算所选择的参考区域和给定块(还称为残差块)之间的差。所选择的参考区域由运动矢量来表示。
因而,在这两种情况(空间和时间预测)中,通过从原始的预测块中减去预测值来计算残差。
在利用块303实现的帧内预测中,对预测方向进行编码。在时间预测中,对至少一个运动矢量进行编码。
在选择了帧间预测的情况下,对与运动矢量和残差块有关的信息进行编码。为了进一步降低比特率,利用相对于运动矢量预测结果的差来对运动矢量进行编码。利用运动矢量预测和编码模块317来从运动矢量字段318获得运动信息预测结果的集合中的运动矢量预测结果。
如以下针对图7~10中的任一个更详细地所述,生成选择运动矢量预测结果以对当前运动矢量进行编码所依据的运动矢量预测结果的集合。对于给定要编码的当前块,在本发明的一些实施例中,确定运动矢量预测结果的数量n,结果,可以根据运动矢量预测结果的该数量n,使用预定的位数来对作为表示所选择的运动矢量预测结果的信息项的所选择运动矢量预测结果的索引进行编码。即使在丢失的情况下,解码器也可以检索到该预定的位数,因此确保解码器即使在错误或丢失的情况下也能够对位流进行解析。这n个运动矢量预测结果根据本发明的各实施例被选择为全部彼此不同,从而提高压缩效率。
编码器30还包括编码模式的选择所用的选择模块306。选择模块306应用诸如率失真标准等的编码代价标准以判断空间预测模式和时间预测模式中哪个模式是最佳模式。为了进一步减少冗余,变换模块307向残差块应用变换,然后所获得的变换数据由量化模块308进行量化并且由熵编码模块309进行熵编码。最后,将编码中的当前块的编码残差块连同诸如所选择运动矢量预测结果的索引等的与所使用的预测结果有关的信息一起插入位流310。对于以“跳过”模式编码后的块,仅将该预测结果的参考编码在位流中,而无任何残差块。
编码器30还进行编码图像的解码,从而产生后续图像的运动估计所用的参考图像。这使得编码器和解码器能够接收位流以具有相同的参考帧。逆量化模块311对量化数据进行逆量化,之后由逆变换模块312进行逆变换。逆帧内预测模块313使用预测信息来判断哪个预测结果用于给定块,并且逆运动补偿模块314实际将模块312所获得的残差添加至从一组参考图像316所获得的参考区域。可选地,应用去块滤波器315以除去结块效果并且提高解码图像的视觉质量。在解码器处应用相同的去块滤波器,以使得在不存在传输损失的情况下,编码器和解码器应用相同的处理。
图5示出根据本发明的至少一个实施例的解码器40的框图。该解码器由所连接的模块来表示,其中各模块被配置为例如以装置200的cpu211要执行的编程指令的形式来执行实现本发明实施例的方法的相应步骤。
解码器40接收包括编码单位的位流401,其中每一个编码单位包括包含与编码参数有关的信息的头以及包含编码视频数据的本体。如参考图4所述,对编码视频数据进行熵编码,并且按预定的位数针对给定块对运动矢量预测结果的索引进行编码。所接收到的编码视频数据由模块402进行熵解码。然后残差数据由模块403去量化,然后由模块404应用逆变换以获得像素值。
还对模式数据进行熵解码,并且基于该模式,进行帧内型解码或帧间型解码。
在帧内模式的情况下,逆帧内预测模块405基于位流中所指定的帧内预测模式来确定帧内预测结果。
在模式是帧间的情况下,从位流提取运动预测信息以寻找编码器所使用的参考区域。该运动预测信息包括参考帧索引和运动矢量残差。利用运动矢量解码模块410将运动矢量预测结果添加至运动矢量残差以获得运动矢量。
运动矢量解码模块410对通过运动预测编码后的各当前块应用运动矢量解码。一旦获得了针对当前块的运动矢量预测结果的索引,则可以对与当前块相关联的运动矢量的实际值进行解码并且模块406使用该实际值以应用逆运动补偿。从参考图像408提取由解码后的运动矢量所表示的参考区域以应用逆运动补偿406。利用解码后的运动矢量来更新运动矢量字段数据411以用于下一解码后的运动矢量的逆预测。
最终,获得了解码块。与在编码器处应用的去块滤波器315类似,应用去块滤波器407。最终,解码器40提供解码后的视频信号409。
图6是示出根据本发明第一实施例的用于推导可能运动信息预测结果的集合的方法的步骤的流程图,其中这些可能运动信息预测结果适合相对于参考图像部分对图像的图像部分进行编码。在该方法的第一步骤中,考虑7个块位置(701~707)。这些位置与图1所示的空间位置和时间位置相对应。模块708验证这7个块位置的运动矢量的可用性并且选择4个运动矢量作为运动矢量预测结果。在该模块中,在运动矢量存在并且没有对运动矢量块进行帧内编码的情况下,该运动矢量可用作预测结果。在以下条件下说明4个运动矢量预测结果的选择和验证。
·如果“左方”运动矢量(701)可用(如果“左方”运动矢量存在并且如果没有对该块进行帧内编码),则选择并使用“左方”块的运动矢量作为预测结果1(710)。
·如果“上方”运动矢量(702)可用,则选择并使用“上方”块的运动矢量作为预测结果2(711)。
·如果“右上方”运动矢量(703)可用,则选择并使用“右上方”块的运动矢量作为预测结果3(712)。
·如果“左下方”运动矢量(704)可用,则选择并使用“左下方”块的运动矢量作为预测结果4(713)。
·如果这些预测结果中的一个(或多个)不可用、并且如果“左上方”运动矢量(705)可用,则将“左上方”块的运动矢量添加至所选择的运动矢量预测结果的集合中的所添加的空间预测结果之后。
·如果“h”运动矢量可用,则选择并使用“h”块的运动矢量作为预测结果5(714)。如果“h”块不可用,则检查“同位置”运动矢量(位于当前块中的相同位置处的块的运动矢量)的可用性,并且如果同位置运动矢量可用,则使用该运动矢量作为时间预测结果。模块708的可用性检查需要1个周期。
由于该处理开始时所选择的运动矢量预测结果的集合仅包含空间预测结果1、2、3、4,因此与包括4个空间预测结果和1个时间预测结果的图2中的现有技术的选择处理相比,选择处理715的复杂性降低。
抑制处理在于:将所选择的各预测结果与所选择的所有其它预测结果进行比较,并且除去与所选择的另一预测结果相等的那些所选择的预测结果(而保留所除去的预测结果是重复值的所选择的其它预测结果),以提供预测结果均不是彼此重复的预测结果的集合。针对p片的抑制处理考虑到运动矢量的值及其参考帧索引。因此,将运动矢量的两个分量及其参考帧索引与其它运动矢量的所有相应分量进行比较,并且仅在这三个值相等的情况下,才将该预测结果从集合中除去(或者不将该预测结果添加至集合)。对于b帧,该标准可以扩展至方向和列表。因而,在预测结果使用相同的方向、相同的列表(l0、l1、或者l0和l1)、相同的参考帧索引、以及所选择运动矢量的集合中的相同值的运动矢量(对于双预测为mv_l0和mv_l1)的情况下,将该预测结果视为重复的预测结果。在最多需要比较5个预测结果的情况下,抑制处理持续1个周期。实际上,可以认为能够在1个周期内计算12次比较。在最复杂的情况下抑制处理所用的比较次数等于0~n-1的总和。由于抑制处理开始时预测结果的最大数量为4而不是5,因此与关于图2的现有技术的所选择的5个预测结果的10相比,要进行的比较的最大数量为6(即,3+2+1=6)。在该抑制处理715结束时,生成预测结果的缩减集合716。与现有技术的5相比,缩减运动矢量预测结果集合716最多包含4个预测结果。
运动矢量预测结果的生成模块717基于缩减运动矢量预测结果集合的预测结果来生成新的预测结果候选。可以使用用于创建这些预测结果的几个方案并且后面将参考图10(a)~(c)来说明一个这种方案。可以认为,运动矢量预测结果的生成模块所进行的处理至少持续1个周期并且产生预测结果的第二集合718。由于缩减预测结果的集合716与图2所示的现有技术的缩减预测结果集合616相比通常包含较少的预测结果,因此平均而言,与现有技术相比,在缩减运动矢量预测结果集合717中生成较少的组合预测结果和缩放预测结果,并且可以降低处理的复杂性。
接着,以与抑制处理模块715相似的方式工作的抑制处理模块721通过将各运动矢量分量和相关联的运动信息参数进行比较,来从第二预测结果集合718和缩减预测结果集合716中除去重复的候选。在图2所示的现有技术中,特别是在应用当前hevc设计的运动矢量预测结果生成的情况下,该特别处理的持续时间根据第二预测结果集合718中所生成的预测结果的数量而可达到3个周期。抑制处理721产生运动矢量预测结果的第二缩减集合722。
最后,在模块719中,将时间预测结果714与运动矢量预测结果的第二缩减集合722进行比较。在模块719所进行的抑制和重新排序处理中,将时间预测结果与最多5个预测结果顺次进行比较以判断该时间预测结果是否是重复的预测结果。如果该时间预测结果是非重复预测结果,则将该时间预测结果插入预测结果的列表中的紧挨上一非重复空间预测结果之前。时间位置已由抑制处理模块715确定并且被发送至处理模块719,并且与715中的预测结果的数量相对应。如果预测结果的列表包含5个以上的预测结果,则删减该列表以产生预测结果的最终集合720。可以注意,模块719所进行的比较的最大次数在最复杂的情况下为5,这与图2所示的现有技术的抑制模块619的情况相比有所减少。
在替代实施例中,抑制处理模块719可以以与现有技术的抑制处理模块619相似的方式工作。在这种情况下,如果预测结果的缩减集合722最多包含4个预测结果,则仅将时间预测结果添加至预测结果的集合。否则,将时间预测结果添加至预测结果的列表的末尾。
图7示出本发明的第二实施例。与图6的实施例的主要不同之处在于以下:代替与图6的模块717的情况相同的1个周期,模块817所进行的运动矢量预测结果生成处理持续2个周期的持续时间。在图7的情况下,没有与时间缩放处理809并行地执行用于除去第二预测结果集合818的重复预测结果的抑制处理。结果,在图7中,在抑制模块819中,将时间预测结果814与运动矢量预测结果的缩减集合816的预测结果和第二预测结果集合818的预测结果这两者进行比较。在该处理中,在时间预测结果814是缩减运动矢量预测结果集合816的运动矢量预测结果的非重复预测结果的情况下,将时间预测结果814添加至运动矢量预测结果的缩减集合中的空间预测结果之后。接着,将第二预测结果集合818的预测结果与添加有时间预测结果814的运动矢量预测结果的缩减集合816的预测结果以及第二预测结果集合818的其它预测结果进行比较。
图6或图7的实施例的处理的优点是通过与第一抑制处理715或815以及运动矢量预测结果生成处理717或817并行地完全执行缩放处理709所得到的。根据各处理的复杂性,在该方法中可以包括附加抑制处理721以预先确定非重复集合,从而降低最终抑制处理719的复杂性。因而,在本发明的第一实施例中,可以认为将整体抑制处理分成模块721和719所执行的两个抑制处理。
并行缩放处理对编码效率产生有益影响。实际上,由于没有使用时间预测结果714或814来生成预测结果的第二集合718或818,因此这对运动矢量预测结果的生成产生影响。
在图8的流程图中示出根据本发明的第三实施例的用于生成运动矢量预测结果的集合的方法的步骤。根据本发明的第三实施例的方法进一步降低了对编码效率产生的影响。
选择模块908以与本发明的第一实施例和第二实施例的相应选择模块708和808相似的方式工作,以基于可用性来从空间和时间块位置901~907选择4个运动矢量910~913。
主要不同之处是缩放决定模块923的使用。在缩放决定模块923中,对时间运动矢量的时间距离和时间预测结果(预测结果数量为5)的时间距离进行比较。对于单向类型的帧间预测,这意味着将时间帧(h和同位置块的帧)和时间运动矢量(h或同位置的)所指向的参考帧之间的图片顺序计数(poc)与时间预测结果的当前帧和参考帧之间的时间距离进行比较。在这些时间距离相等的情况下,缩放决定模块923返回值“否”。否则,这意味着需要缩放处理,并且缩放决定模块923返回值“是”。对于双向预测类型,决定模块923针对各列表比较时间距离,并且所返回的决定依赖于针对这两个列表的决定。因而,在针对这两个列表均不需要缩放的情况下,缩放决定模块923返回值“否”,并且在针对一个列表需要至少一个缩放处理的情况下,缩放决定模块923返回值“是”。
在缩放决定模块923返回值“否”的情况下,在抑制处理915中使用时间预测结果5(924)。结果,运动矢量预测结果的生成917使用时间预测结果5的值以生成预测结果的第二集合918。然后,向预测结果的缩减集合916和第二预测结果集合918应用抑制处理921。接着,决定模块925基于缩放决定模块923的决定来决定运动矢量预测结果的最终集合的提供(即,使用缩放决定模块923所进行的决定来判断抑制处理921所产生的缩减预测结果集合是否是最终预测结果集合),在决定模块923返回“否”的情况下,判断为抑制处理921所产生的缩减预测结果集合是最终预测结果集合。因而,在缩放决定模块923返回表示不需要缩放的“否”的情况下,预测结果集合的推导以与如图2所示的预测结果的集合的推导相似的方式工作。
否则,在缩放决定模块923返回表示在模块909中对时间预测结果进行缩放以产生时间预测结果数量5(914)的值“是”的情况下,判断为抑制处理921所产生的缩减预测结果集合不是最终预测结果集合。在这种情况下,抑制处理模块915没有使用时间预测结果来进行抑制处理并且运动矢量预测结果生成模块917没有使用时间预测结果来创建新的预测结果。结果,以与图6的流程图所示的处理相似的方式,与运动矢量预测结果的生成917并行地执行时间预测结果5的缩放处理909。缩放决定模块925在第二抑制处理之后返回值“是”。因而,在抑制处理919中将缩放后的时间预测结果914与预测结果的第二缩减集合922的预测结果进行比较。与图6的抑制处理模块719的情况相同,在预测结果的第二缩减集合中时间预测结果914是预测结果的非重复预测结果的情况下,抑制和重新排序模块919将时间预测结果插入预测结果的集合中的第一缩减预测结果集合916之后,以提供预测结果的最终集合920。
为了概述本实施例,仅在需要缩放时间预测结果的情况下,才与第二集合918的生成处理917并行地执行缩放处理909。
如果认为运动矢量预测结果的生成917持续1个周期、并且如果时间预测结果不需要缩放处理,则需要4个周期来产生合并预测结果集合,否则需要5个周期。结果,在与第一实施例相同的最复杂情况下,该处理缩短了2个周期。本实施例与前一实施例相比的主要优点是仅在时间预测结果不需要缩放的情况下才使用时间预测结果来生成预测结果的第二集合。结果,与第一实施例相比,可以提高编码效率。
在附加实施例中,可以考虑缩放处理的复杂性。例如,可以知晓缩放处理是否仅需要一个周期。在需要改变运动矢量预测结果的符号的情况下,仅需要一个周期。在这种情况下,时间预测结果在与缩减预测结果集合916的同一时间是可用的。因而,可以使用时间预测结果来进行抑制处理921。在这种情况下,缩放决定模块925返回值“是”并且无需模块922和919提供预测结果的最终集合。结果,由于抑制处理919持续1个周期,因此推导处理的持续时间缩短了一个周期。
图9是示出根据本发明的第四实施例的用于推导运动矢量预测结果的集合的方法的流程图。图9的流程图基于图6的流程图。结果,图9的模块1001~1020和1022分别与图6的模块701~720和722相同。不同之处是如针对图10(a)~(c)在运动矢量预测结果的生成中将说明的、通过加上偏移量来并行地使用非重复预测结果。在定义了第一预测结果11010的情况下,模块1023生成列表非重复预测结果。如针对图10(c)所述,该处理在于向第一预测结果1010的一个或两个运动矢量分量加上偏移量。非重复预测结果的集合1024包含所有均彼此不同并且不同于选择处理模块1008所执行的可用性检查之后可用的第一预测结果1010的4个预测结果。结果,在本实施例中,非重复预测结果的集合1024在添加至第一预测结果1010的情况下包含如针对合并模式固定的5个非重复预测结果。与抑制处理1015并行地执行非重复预测结果的生成。抑制处理模块1025将非重复预测结果集合1024与缩减预测结果集合1016进行比较以仅获得5个预测结果。非重复预测结果集合1026包含缩减预测结果集合1016,之后是1024中所生成的非重复预测结果集合。可以注意,抑制处理1025通常需要最大6次比较。在缩减运动矢量预测结果集合1016包含4个预测结果的情况下,发生最复杂的情况。非重复预测结果的集合1024包含4个预测结果。理论上,抑制处理在最复杂的情况下需要16次比较(缩减运动矢量预测结果集合1016的4个预测结果×非重复预测结果集合1024的4个预测结果)。然而,非重复预测结果集合1024中的运动矢量预测结果不同于第一预测结果,因此仅需将缩减运动矢量预测结果集合1016中的第二预测结果、第三预测结果和第四预测结果与非重复运动矢量预测结果的集合1024进行比较。结果,需要12(4×3)次比较。在非重复预测结果集合1024中这些预测结果彼此全部不同,因此在最复杂的情况下,如果非重复预测结果1024中的最初3个预测结果等于缩减运动矢量预测结果集合1016的最后3个预测结果,则可以假定1024中的最后预测结果不同于缩减运动矢量预测结果集合1016的预测结果。因而,仅需要9(3×3)次比较。
接着,运动矢量预测结果的生成模块1017生成运动矢量预测结果的第二集合1018。抑制和重新排序处理1021检查第二预测结果集合1018的运动矢量预测结果与已包含5个预测结果的非重复集合1026相比是否是非重复的。如果第二预测结果集合1018的预测结果不同于所有其它预测结果,则将该预测结果插入缩减预测结果集合1016中的部分预测结果的位置处(列表中的缩减运动矢量预测结果集合1016的预测结果之后)。后续步骤1022、1019和1020以与图6的模块722、719和720的处理相似的方式工作。
可以注意,在抑制处理1019之后,可以在推导处理的末尾处添加非重复预测结果的生成1023。这将要求需要又一个周期的附加抑制处理并且将不会得到相同的预测结果集合排序。
第四实施例具有几个优点。首先,在本实施例中,各预测结果位置具有值。结果,该方法与hevc的当前设计相比提供了更具鲁棒性的处理。实际上,编码器可能在解码器处使用不具有值的预测结果索引,这可能导致解码器崩溃。例如,这可能在出现网络错误的情况下发生。
本实施例补偿了并行缩放的编码效率的损失。此外,该变更还补偿了模块1017的运动矢量预测结果的生成中所产生的候选的数量缩减的编码效率的损失。利用这些非重复预测结果,在1021中仅需生成2个预测结果。结果,在最复杂的情况下,抑制处理1021仅需10次比较。因而,针对图2所呈现的当前hevc设计的最复杂情况,代替3而仅需要一个周期。通过该简化,代替针对当前hevc设计的11个周期,在最复杂的情况下仅需5个周期来推导出合并预测结果集合。
应当理解,可以容易地将图9的第四实施例与图8所呈现的第三实施例组合。
现在将参考图10(a)~(c)来说明图6、7、8和9的运动矢量预测结果生成模块717、817、917和1017分别执行的用于生成更多的运动矢量作为预测结果的处理的示例。当前hevc设计使用3个方案以基于当前集合生成来添加新的预测结果。第一方案用于b片。运动矢量预测结果生成涉及分别组合图6、7、8和9的缩减预测结果集合716、816、916、1016的预测结果。通过选择第一预测结果的列表l0的运动矢量并且通过根据另一预测结果选择列表l1的运动矢量来生成组合预测结果。例如,第1个可能的组合预测结果具有来自716的第一预测结果的l0的运动矢量(和参考索引)和来自716的第二预测结果的l1的运动矢量(和参考索引)。在当前hevc设计中,可以生成12个可能的组合预测结果。图10(a)示出该处理的示例。
第二方法可以仅用于b片。缩放预测结果包括利用双向预测结果来改变单向预测结果。在716的预测结果为单向的情况下,基于初始运动矢量,在相对的列表中创建运动矢量。例如,如果716的第一预测结果为单向并且如果其指向参考索引为0的l0,则对其运动矢量的值进行缩放以指向l1的参考索引0。所构建的预测结果包含针对l0的参考索引0和运动矢量值以及针对列表l1的参考索引0和缩放矢量。将该新的双向预测结果添加至第二预测结果集合(718)。这种预测结果生成由于需要对运动矢量进行缩放因而非常复杂,因此这样增加了模块717所用的周期的数量(3个周期)。因而,代替针对传统缩放处理的3个周期,可以对缩放处理进行限制以反转运动矢量值分量的符号,这可在一个周期内执行。图10(b)示出该生成的示例。
生成新的运动矢量预测结果的另一方法是将双向预测结果改变为单向预测结果。在这种情况下,在预测结果为双向的情况下,可以生成2个新的预测结果(针对各列表生成一个预测结果)。这与图10(a)的缩放运动矢量处理相比是复杂性低的处理。
在hevc的当前设计中,在列表的末尾添加“零运动矢量”值。关于合并,针对l0和l1的这两个运动矢量设置零值。并且在可能的情况下,使各列表的参考帧索引递增以创建其它的零预测结果。因而,仅参考索引改变。如果在这两个列表中使用n参考索引,则可以将n个零矢量添加至预测结果的集合。图10(c)示出运动矢量预测结果的生成的这种处理的示例。
此外,可以通过向预测结果的初始集合的一个可用预测结果的分量或几个分量加上一个或多个偏移量来使用非重复预测结果。例如,如果在预测结果的初始集合中仅存在一个预测结果,则可以生成全部均不同的4个预测结果。例如,如果认为列表中的预测结果为单向,则通过向第一运动矢量的一个分量加上偏移值来生成第一预测结果。通过向第一分量加上逆偏移量来生成第二预测结果。通过向第二分量加上偏移量来获得第三预测结果,并且通过向第二分量加上逆偏移量来生成第四预测结果。可以注意,该处理能够应用于第一候选,由此可以在抑制处理715之前推导出预测结果。
图11示出如在图6、7、8和9的缩放模块709、809、909和1009中分别应用的针对时间预测结果的缩放的示例。在该图中,参考帧ref0中的同位置运动矢量mvcol指向poc(图片顺序计数)等于n-3的ref2。已经确定了时间预测结果mvt的参考帧,并且其等于ref0(poc数等于n-1)。同位置运动矢量的时间距离idiffpocd等于ref2的poc-ref0的poc。因而,其时间距离等于以下。
idiffpocd=(n-3)–(n-1)=2
同样,时间预测结果需要覆盖的时间距离idiffpocb等于当前帧n的poc-ref0的poc。
idiffpocb=(n)–(n-1)=1
理论上,针对时间预测结果的缩放运动矢量等于以下。
mvt=(idiffpocb*mvcol)/idiffpocd
因而,在该示例中,将各分量(水平和垂直)除以2。然而,在当前hevc设计中,通过以下处理给出运动矢量的缩放。
-通过以下公式来确定缩放因数:
iscale=(idiffpocb*ix+32)>>6;
-其中ix如下:
ix=(0×4000+abs(idiffpocd/2))/idiffpocd;
-然后通过以下给出mvt:
mvt=(iscale*mvcol+127+(iscale*mvcol<0))>>8
在这些公式中:
“>>”表示移位算子
“abs”表示返回绝对值的函数
“0×4000”表示值16384
本发明的实施例如此提供并行推导处理,其中该并行推导处理的目的是在对编码效率的影响小的情况下减少推导运动矢量预测结果的集合所需的周期的数量。
尽管以上已经参考特定实施例说明了本发明,但本发明不限于这些特定实施例,并且本领域技术人员将明白存在于本发明的范围内的变形例。许多其它修改和改变在参考仅以示例方式给出的并且并不意图限制本发明的范围的前述例示实施例时向精通本技术的人员表明这些修改和改变仅是由所附权利要求书来确定的。特别地,在适当情况下,可以互换来自不同实施例的不同特征。
在权利要求书中,词语“包括”没有排除其它元件或步骤,并且不定冠词“a”或“an”没有排除多个。在相互不同的从属权利要求中陈述不同的特征的仅有事实并不表明不能有利地使用这些特征的组合。