确定视频序列的图像的编码或解码所用的参数的方法和装置制造方法
【专利摘要】一种用于确定将视频序列的图像部分编码成位流的编码参数所用的方法和装置,图像部分通过相对于至少一个参考图像部分的运动补偿进行编码,对图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,编码模式是从至少第一编码模式和第二编码模式选择的,运动信息预测结果是从针对至少第一编码模式和第二编码模式相同的运动信息预测结果的集合所选择的,编码模式和运动信息预测结果的选择涉及对这两个编码模式中使用集合的运动信息预测结果来编码图像部分的成本进行比较,该方法包括以下步骤或该装置包括以下的部件:针对集合的至少一个运动信息预测结果,省略针对第一编码模式和第二编码模式至少之一的成本的计算。结果,可缩短编码时间并降低复杂性,并且可改进编码性能。
【专利说明】确定视频序列的图像的编码或解码所用的参数的方法和装
【技术领域】
[0001]本发明涉及用于确定将视频序列的图像编码成位流所用的参数的方法和装置。本发明还涉及用于对数字图像序列进行编码的方法和装置。
[0002]本发明可以应用于数字信号处理领域,尤其应用于使用运动补偿来减少视频流中的空间冗余和时间冗余的视频压缩领域。
【背景技术】
[0003]例如H.263、H.264、MPEG-U MPEG-2、MPEG-4、SVC等的许多视频压缩格式使用基于块的离散余弦变换(DCT)和运动补偿来除去空间冗余和时间冗余。这些格式经常被称为预测视频格式。视频信号的各帧或各图像被分割成编码后的并且能够独立进行解码的片(slice)。片通常是帧的矩形部分、或者更通常为帧的一部分或整个帧。此外,各片可以被分割成宏块(MB),并且各宏块被进一步分割成块、通常为64 X 64、32 X 32、16 X 16或8 X 8个像素的块。
[0004]在高效率视频编码(HEVC)中,使用64X64~4X4的块。根据四叉树结构,基于最大编码单位(IXU)来对该分区进行组织。IXU与64X64的正方形块相对应。如果需要对IXU进行分割,则分割标志表示将IXU分割成4个32 X 32的块。同样,如果需要对这4个块中的任何块进行分割,则将分割标志设置为真并且将32X32的块分割成4个16X16的块
坐寸ο
[0005]在将分割标志设置为假的情况下,当前块是编码单位⑶。⑶的大小等于64X64、32X32、16X 16 或 8X8 个像素。
[0006]各CU具有如后面将说明的跳过、合并、帧间或帧内的编码模式。对于合并或帧间编码,可以将该编码单位分割成两个预测单位(PU)。因而,对于合并模式和帧间模式,可以利用一个2NX2N的PU或者利用具有如图10所示的NX2N、2NXN、NXN、nLX2N、nRX2N、2NXnT和2ΝΧηΒ的这些分区的2个PU来预测编码单位。对于跳过模式,仅使2ΝΧ 2Ν的分区有效。
[0007]针对图像的编码块,存在被称为帧内(INTRA)预测的基于空间预测的编码模式和基于时间预测的模式(帧间(INTER)、合并、跳过)这两类编码模式。在空间预测模式和时间预测模式这两者中,通过从原始块中减去预测值来计算残差。
[0008]通常根据INTRA块的因果边界处的编码像素、通过INTRA预测处理来预测该INTRA块。在INTRA预测中,对预测方向进行编码。
[0009]时间预测在于:从参考帧(视频序列的先前帧或将来帧)中发现最接近要编码的块的图像部分或参考区域。该步骤通常已知为运动估计。接着,在通常被称为运动补偿的步骤中使用参考区域来预测要编码的块,即连同与表示运动补偿要使用的参考区域的运动矢量有关的运动信息项一起,对要编码的块和参考部分之间的差进行编码。在时间预测中,对至少一个运动矢量进行编码。[0010]为了进一步降低对运动信息进行编码的成本,代替直接对运动矢量进行编码,在假定运动均匀的情况下,可以按照运动矢量和通常根据要编码的块周围的块的一个或多个运动矢量所计算出的运动矢量预测结果之间的差来对运动矢量进行编码。
[0011]在H.264中,例如,针对根据位于要编码的块的因果邻域的运动矢量(例如根据位于要编码的块的上方和左方的三个块)所计算出的中值预测结果,来对运动矢量进行编码。仅将中值预测结果和当前块运动矢量之间的差(还被称为残差运动矢量)编码成位流以降低编码成本。
[0012]使用残差运动矢量的编码节省了若干位率,但需要解码器进行运动矢量预测结果的相同计算从而对要解码的块的运动矢量的值进行解码。
[0013]近来,已提出了诸如使用多个潜在运动矢量预测结果等的编码效率的进一步改进。通常被称为运动矢量竞争(MVCOMP)的该方法在于:在几个运动矢量预测结果候选之间判断哪个运动矢量预测结果候选使编码成本最小化。该成本一般是残差运动信息的率失真成本。这种处理中的残差运动信息包括残差运动矢量(即,要编码的块的实际运动矢量和所选择的运动矢量预测结果之间的差),并且在必要时包括例如所选择的运动矢量预测结果的索引的编码值等的表示所选择的运动矢量预测结果的信息项。基于固定列表大小,以具有一元最大码的位流来对所选择的运动矢量预测结果的索引进行编码。在所有的运动矢量候选均相等的情况下,获得了进一步改进。在这种情况下,解码器能够推断运动矢量预测结果值,结果无需对索引进行编码。
[0014]在高效率视频编码(HEVC)中,已提出了用于使得能够从包括空间运动矢量和时间运动矢量的预测结果的给定集合中选择最佳预测结果的相同概念的新实现。该技术被称为高级运动矢量预测(AMVP),并且可以应用于帧间模式、合并模式和跳过模式。该方法使得能够从包括空间运动矢量和 时间运动矢量的给定集合中选择最佳预测结果。对该集合中的最佳性能所用的空间预测结果和时间预测结果的数量进行评估。例如,HEVC的一个已知实现包括2个空间预测结果和I个时间同位置预测结果。
[0015]在HEVC标准中,定义了如前面所述的帧间模式、合并模式和跳过模式这三个帧间编码模式。这些模式之间的差异是所传输的信息的种类和所使用的分区大小。
[0016]在帧间模式中,对所有数据进行编码。对运动矢量的参考帧索引进行编码,并且还对运动矢量的预测结果索引进行编码。HEVC标准草案的当前实现使用2个运动矢量预测结果。因而,可以将预测结果索引编码为具有I位。利用所选择的预测结果来预测帧间块的运动矢量,并且对运动矢量残差(运动和该运动的预测结果之间的运动矢量差)进行编码。对于运动矢量残差,单独对垂直分量和水平分量进行编码。在需要的情况下,还对纹理残差进行编码(变换和量化)。纹理残差是原始当前块和参考帧索引中运动矢量所指向的块预测结果之间的差。
[0017]双向帧间预测使用2个块预测结果来进行运动补偿,而对于单向预测,使用I个块。双向预测的最终块预测结果是2个块预测结果的平均值。这2个块来自于被称为LO和LI的参考帧的两个列表(针对各“方向”为一个列表)。
[0018]在能够对片进行双向预测的情况下,针对各帧间块来明确地对方向预测的类型(双向或单向)进行编码。对于单向预测,在能够进行双向预测的情况下,还针对使用单向方向的各帧间块来编码单向方向所使用的列表(L0或LI)。在帧间块是双向块的情况下,由于使用这两个列表,因此无需对列表索引进行编码。然而,需要传输与各块预测结果相对应的两个集合的运动信息。因而,对于各列表LO和LI,对一个参考帧索引、以及一个运动矢量预测结果和一个运动矢量残差进行编码。
[0019]在HEVC标准草案中,对于所有块分区均可用帧间模式。因此,对于CU,以帧间模式对所有PU进行编码。
[0020]合并模式是帧间编码的特定类型。在合并模式中,仅对预测结果索引及其相关纹理残差(在需要的情况下)进行编码。与帧间模式相比,没有对预测类型(单向或双向)、单向预测的列表索引、参考帧索引和运动矢量残差进行编码。合并模式具有5个可能的预测结果。在HEVC标准草案中,利用最大值等于5的一元最大码来对预测结果索引进行编码。与帧间模式的主要不 同之处是预测结果推导。合并预测结果不仅是运动矢量值,而且是针对包括参考帧和列表索引的所有运动矢量信息的预测结果。这些预测结果是根据现有的空间相邻运动矢量和时间运动矢量所推导出的。此外,帧间预测的类型(双向或单向)、列表索引和参考帧索引是根据空间相邻块所推导出的。
[0021]可以将合并模式应用于所有块分区。因而,对于合并编码单位,可以以合并模式对所有PU进行编码。
[0022]跳过模式是合并模式编码的特定类型。跳过模式使用与合并模式完全相同的运动矢量预测结果的列表。关于合并模式,仅对5个潜在候选中的预测结果索引进行编码。该预测结果是所有运动信息的预测结果。与合并模式的主要不同之处是没有对纹理残差进行编码。
[0023]跳过模式仅应用于2NX2N的分区并且没有如帧间和合并模式那样应用于所有块大小。因而,对于跳过CU,与合并模式和帧间模式相比,无需对CU分区进行编码。
[0024]图1示出HEVC编码器中的用于针对运动矢量预测结果选择最佳预测模式和最佳候选的选择处理。
[0025]在初始步骤101中,确定候选运动矢量预测结果的列表。这些运动矢量预测结果可以是空间预测结果或时间预测结果。这意味着这些运动矢量预测结果与已编码的编码单位的运动矢量相对应。例如,使用位于当前运动矢量上方或位于左侧的编码单位的运动矢量。
[0026]接着,在步骤102中,通过将候选索引i设置为i = O来初始化该选择处理,以对列表中的第一候选进行编索引。然后,在步骤103中,提取具有索引i的候选。在步骤105中,计算与第i候选相关联的针对跳过模式的率失真成本。该率失真成本表示视频序列和对该视频序列进行编码时的位率之间的折中。通常,使用Lagrangian(拉格朗日)表达式来确定率失真成本J。
[0027]J = D(i) + AR(i) (I)
[0028]其中,D与针对编码单位引入的失真相对应,R表示与该编码单位相关联的率,并且λ表示固定为给定值的Lagrangian参数。
[0029]因而,在步骤105期间,将跳过模式的率失真成本确定为如下。
[0030]JSkip (i) 二 DSkip (i) +λ RSkip (i) (2)
[0031]这意味着:在跳过模式的情况下,使用该预测结果来进行运动补偿并且没有使用附加数据。由于与跳过模式相关联的率RSkip(i)全局对应于预测结果索引编码,因此该率较低。
[0032]在使用该预测结果进行运动补偿之后,通过计算例如该编码单位和原始图像中的相应块之间的均方差来确定失真DSkip (i)。
[0033]同样,在步骤106中,根据等效表达式,针对合并模式来评价利用i编索引的同一预测结果候选。
[0034]JMrg (i) =DMrg (i) + λ RMrg (i) (3)
[0035]在这种情况下,由于针对合并模式计算纹理残差数据,因此该计算耗费大量时间。这意味着:在运动补偿之后,首先对预测到的编码单位和与该编码单位相对应的原始数据之间的差进行变换,然后进行量化,并且最后进行熵编码。在HEVC的特殊情况中,针对合并模式来评价变换的四叉树:这导致确定一个预测结果的合并模式的成本所用的时间大幅增加。
[0036]接着,在步骤107中,进行比较,以求出步骤106中针对合并模式所确定出的率失真成本和步骤105中针对跳过模式所确定出的率失真成本之间的率失真成本的最小值。
[0037]在步骤108中,使与该预测结果候选的索引i有关的计数器递增。
[0038]然后,在步骤109中进行检查,从而判断是否处理了 N个运动矢量预测结果候选的列表中的所有预测结果候选。
[0039]如果判断为尚未处理所有N个运动矢量预测结果候选,则该处理返回至步骤103以从运动矢量候选的列表中提取下一运动矢量预测结果候选来进行处理。
[0040]否则,如果步骤109中判断为处理了所有N个运动矢量预测结果候选,则该处理进入步骤110,其中该步骤110与选择算法的输出相对应。作为选择处理的输出,识别出最佳预测结果imin。该最佳预测结果与所有N个预测结果候选中的给出最小成本J的预测结果候选相对应。该结果还提供了跳过模式和合并模式之间的、提供imin候选的最小成本的最佳模式BM。
[0041]在上述处理中,针对跳过模式和合并模式这两者来评价列表中的各运动矢量预测结果候选的率失真成本。由于对该列表的各候选进行评价,因此该评价的成本相当高。由于在运动矢量(MV)预测之后进行用于基于变换四叉树来确定最佳残差编码的步骤,因此这特别是在合并模式的情况下为真。
[0042]因而,与跳过模式相比,针对帧间模式或合并模式的运动矢量推导对编码和解码复杂性产生极大影响。实际上,对于当前HEVC运动矢量推导,需要推导各预测结果位置(上方、左方、时间、左下方、右上方)。这种推导处理暗示了在计算方面成本相当高的存储器访问和微缩性。
[0043]此外,在编码侧,测试各预测结果,并且将各预测结果与给定列表的其它预测结果进行比较以求出最佳预测结果。这意味着:在选择一个预测结果之后,计算与该预测值和原始信号之间的差相对应的残差数据。然后,对该纹理残差数据进行变换和量化。由于对几个类型的变换进行了测试,因此纹理残差编码的该步骤特别复杂。因而,复杂性依赖于要评价的候选的数量。
[0044]在该处理结束时,通过使考虑到与该预测结果相对应的率和该预测结果所产生的失真的成本函数最小化,来求出最佳预测结果。
[0045]已提出了用以降低编码器侧所测试的编码可能性的许多算法。提前终止算法是这样一种方式。主要思想是:测试块的一个或多个可能性,并且一旦找到一个可能性的RD成本低于阈值,则停止寻找更好的编码可能性。
[0046]图2示出用于选择与H.264视频编码器相对应的编码模式的提前终止算法。在
H.264规格中,对于帧间模式仅考虑一个运动矢量预测结果,并且对于跳过模式也仅考虑一个运动矢量预测结果。运动矢量预测结果是基于相邻块的中值,但对于跳过模式和帧间模式并不完全相同。在针对H.264的提前终止规则的该简单实施例中,认为在编码器侧仅测试一个块大小。因而在该示例中,编码器针对一个块或编码单位选择最佳编码模式。可以注意,在H.264中,合并模式并不存在,并且仅是在HEVC标准化过程中最近才引入的。
[0047]首先,在步骤201中,编码器推导跳过模式。在步骤202中,确定跳过模式的最佳RD成本。接着,在步骤203中,提前决定步骤将RD成本与预定的第一阈值threshold_l进行比较。如果判断为该RD成本低于该第一阈值,则选择跳过模式作为当前块的编码模式。在步骤209中,编码器利用跳过模式对当前块进行编码并且进入下一步骤。否则,如果判断为所计算出的RD成本高于预定的第一阈值,则编码器在步骤204中推导帧间模式并且在步骤205中计算其RD成本。在步骤206中,将所计算出的帧间RD成本与第二预定阈值threshold_2进行比较。如果所计算出的帧间RD成本低于第二阈值,则在步骤209中编码器选择帧间模式作为用于对当前块进行编码的最佳模式。否则,编码器在步骤207中推导帧内模式预测并且在步骤208中计算最佳相关RD成本。在该步骤,对所有编码可能性进行了测试。在步骤209中,编码器选择这三个模式中给出最佳RD成本的模式来对块进行编码。
[0048]上述方法的缺陷是该方法针对各编码模式仅考虑一个候选,并且不适用于最近发展的编码方法。
【发明内容】
[0049]本发明是为了解决前述担心中的一个或多个而作出的。
[0050]根据本发明的第一方面,提供一种用于确定将视频序列的图像部分编码成位流所用的编码参数的方法,所述图像部分是通过相对于至少一个参考图像部分的运动补偿来进行编码的,对所述图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,其中,所述编码模式是从至少第一编码模式和第二编码模式中所选择的,以及所述运动信息预测结果是从针对至少所述第一编码模式和所述第二编码模式相同的运动信息预测结果的集合中所选择的,所述编码模式和所述运动信息预测结果的选择涉及对所述第一编码模式和所述第二编码模式这两个编码模式中使用所述集合的运动信息预测结果来编码所述图像部分的成本进行比较,所述方法包括以下步骤:针对所述集合的至少一个所述运动信息预测结果,省略针对所述第一编码模式和所述第二编码模式中的至少一个编码模式的成本的计算。
[0051]通过针对该集合的至少一个运动信息预测结果省略针对编码模式其中之一的成本的计算,可以降低编码处理的复杂性并且可以改进编码性能。
[0052]在实施例中,所述方法还包括:检测满足与所述集合的一个或多个运动信息预测结果有关或与已计算出的一个或多个成本有关的至少一个条件的时间;以及在检测到满足所述条件的情况下,针对所述集合的至少一个所述运动信息预测结果,省略所述第一编码模式的成本和/或所述第二编码模式的成本的计算,否则,执行所述第一编码模式的成本和/或所述第二编码模式的成本的计算。
[0053]在实施例中,所述条件或一个所述条件为:所述集合中的第一个运动信息预测结
果是零矢量。
[0054]在实施例中,在检测到满足所述条件的情况下,针对除所述第一个运动信息预测结果以外的所有运动信息预测结果,省略所述第二编码模式的成本的计算。
[0055]在实施例中,所述条件或一个所述条件为:针对所述集合的运动信息预测结果其中之一,所述第二编码模式的成本大于所述第一编码模式的成本。在本实施例中,该条件可以依赖于所述第二编码模式对残差纹理数据的使用。
[0056]在实施例中,所述条件或一个所述条件为:针对所述集合的运动信息预测结果其中之一,所述第二编码模式的成本相对于所述第一编码模式的成本超出了大于预定量的量。
[0057]在实施例中,在检测到满足所述条件的情况下,针对满足所述条件的所述一个运动信息预测结果之后的所有运动信息预测结果,省略所述第二编码模式的成本的计算。
[0058]在实施例中,所述方法还包括:从所述集合的第一个运动信息预测结果起,针对所述集合的各运动信息预测结果顺次计算所述成本。
[0059]在特定实施例中,所述方法还包括:在不满足所述条件的情况下、或者在存在多于一个的条件时不满足 任何条件的情况下,针对运动信息预测结果,计算所述第一编码模式的成本和所述第二编码模式的成本这两者;以及在检测到满足所述条件或一个所述条件的情况下,针对运动信息预测结果,计算所述第一编码模式的成本而不计算所述第二编码模式的成本。
[0060]在实施例中,各所述成本是率失真成本。
[0061]本发明的另一方面提供一种用于确定将视频序列的图像部分编码成位流所用的编码参数的方法,所述图像部分是通过相对于至少一个参考图像部分的运动补偿来进行编码的,对所述图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,其中,所述编码模式是从至少第一编码模式和第二编码模式中所选择的,以及所述运动信息预测结果是从运动信息预测结果的集合中所选择的,所述集合的各运动信息预测结果被配置为用来在至少所述第一编码模式和所述第二编码模式中通过运动补偿对所述图像部分进行编码,所述方法包括以下步骤:针对所述集合的多个运动信息预测结果中的各运动信息预测结果,确定表示使用所述第一编码模式对所述图像部分进行编码的成本的第一成本参数值;针对确定了所述第一成本参数值的所述多个运动信息预测结果中的一部分运动信息预测结果,确定表示使用所述第二编码模式对所述图像部分进行编码的成本的第二成本参数值;以及选择与所确定的所述第一成本参数值和所述第二成本参数值中的最小成本参数值相对应的编码模式和运动信息预测结果。
[0062]通过减少针对编码模式其中之一的成本的计算次数,可以降低编码处理的复杂性并且可以改进编码性能。
[0063]在实施例中,在所述集合中,运动信息预测结果是按预定顺序排列的。
[0064]在实施例中,针对所述集合的运动信息预测结果来确定所述第一成本参数值,直到满足第一预定条件为止。在特定实施例中,根据所述预定顺序针对所述集合的运动信息预测结果来确定所述第一成本参数,直到满足第一预定条件为止。[0065]在实施例中,针对根据所述预定顺序得到的所述集合的运动信息预测结果来确定所述第二成本参数值,直到满足第二预定条件为止。
[0066]在实施例中,在针对所述多个运动信息预测结果中的所述一部分运动信息预测结果确定所述第二成本参数值之前,针对所述多个运动信息预测结果来顺次确定所述第一成本参数值。
[0067]在实施例中,针对所述多个运动信息预测结果中的所述一部分运动信息预测结果,以运动信息预测结果为单位来并行地确定所述第一成本参数值和所述第二成本参数值。
[0068]在实施例中,所述第一预定条件为:针对整个所述集合的运动信息预测结果中的各运动信息预测结果确定了所述第一成本参数值。
[0069]在实施例中,所述第二预定条件为:
[0070](i)运动信息预测结果具有预定索引并且是零矢量;或者
[0071](ii)针对运动预测结果所确定的所述第一成本参数值表示比针对所述运动预测结果所确定的各所述第二成本参数值低的成本。
[0072]在实施例中,所述预定索引表示所述运动信息预测结果是所述集合的第一个运动信息预测结果。 [0073]在实施例中,所述第一成本参数和所述第二成本参数各自表示率失真成本。
[0074]在实施例中,在所述第一编码模式中,仅将运动信息预测结果的索引编码成所述位流。
[0075]在实施例中,在所述第二编码模式中,将运动信息预测结果的标识符以及表示所述图像部分和所述参考图像部分之间的差的纹理残差信息编码成所述位流。
[0076]在实施例中,所述第一编码模式是跳过型帧间编码模式,并且所述第二编码模式是合并型帧间编码模式。
[0077]在实施例中,确定所述第二成本参数值,直到满足了所述第二预定条件、或者所述运动信息预测结果满足了另一第二预定条件为止,其中,所述第二预定条件为所述运动信息预测结果具有预定索引并且是零矢量,以及所述另一第二预定条件为:针对所述集合的所述运动预测结果所确定的所述第一成本参数值表示比针对所述运动预测结果的各所述第二成本参数值低的成本。
[0078]根据本发明的另一方面,提供一种用于确定将视频序列的图像部分编码成位流所用的编码参数的方法,所述图像部分是通过相对于至少一个参考图像部分的运动补偿来进行编码的,对所述图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,其中,所述编码模式是从至少第一编码模式和第二编码模式中所选择的,以及所述运动信息预测结果是从运动信息预测结果的集合中所选择的,各运动信息预测结果被配置为用来在至少所述第一编码模式和所述第二编码模式中通过运动补偿对所述图像部分进行编码,所述方法包括以下步骤:
[0079]针对所述集合的多个运动信息预测结果中的各运动信息预测结果,确定表示使用所述第一编码模式对所述图像部分进行编码的成本的第一成本参数值,直到满足第一预定条件为止;
[0080]针对所述集合的多个运动信息预测结果中的各运动信息预测结果,确定表示使用所述第二编码模式对所述图像部分进行编码的成本的第二成本参数值,直到所述集合的所述运动信息预测结果满足第二预定条件为止;以及
[0081]选择与所确定的所述第一成本参数值和所述第二成本参数值中的最小成本参数值相对应的编码模式和运动信息预测结果。
[0082]结果,通过一旦运动信息预测结果其中之一满足了预定条件、则终止针对第二编码模式的计算成本的判断,可以缩短编码时间并降低复杂性,由此改进视频编码性能。
[0083]在特定实施例中,所述第二预定条件为:
[0084](i)所述运动信息预测结果具有预定索引并且是零矢量;或者
[0085](ii)针对所述运动信息预测结果所确定的所述第一成本参数值表示比针对所述集合的所述运动信息预测结果所确定的各所述第二成本参数值低的成本。例如,所述第一预定条件可以是:针对整体所述集合的运动信息预测结果中的各运动信息预测结果确定了第一成本参数值。
[0086]可以并行或顺次进行用于确定所述第一成本参数值和所述第二成本参数值的步骤。在优选实施例中,针对各候选来计算所述第一成本参数值和所述第二成本参数值。所述运动信息预测结果可以是运动矢量预测结果。
[0087]本发明的另一方面提供一种用于将图像部分编码成位流的方法,所述方法包括以下步骤:
[0088]根据前述实施例中任一实施例所述的方法来确定通过相对于参考图像部分的运动补偿来对所述图像部分进行编码所用的编码参数;以及
[0089]使用所确定的编码参数来对所述图像部分进行编码。
[0090]本发明的又一方面提供一种用于确定将视频序列的图像部分编码成位流所用的编码参数的装置,所述图像部分是通过相对于至少一个参考图像部分的运动补偿来进行编码的,对所述图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,所述装置包括:选择部件,用于从至少第一编码模式和第二编码模式中选择编码模式,并且从针对至少所述第一编码模式和所述第二编码模式相同的运动信息预测结果的集合中选择运动信息预测结果,其中所述选择是基于所述第一编码模式和所述第二编码模式这两个编码模式中使用所述集合的运动信息预测结果来编码所述图像部分的成本;以及处理部件,用于计算所述第一编码模式和所述第二编码模式这两个编码模式中使用所述集合的运动信息预测结果来编码所述图像部分的所述成本,并且被配置为针对所述集合的至少一个所述运动信息预测结果,省略针对所述第一编码模式和所述第二编码模式中的至少一个编码模式的成本的计算。
[0091]本发明的另一方面提供一种用于确定将视频序列的图像部分编码成位流所用的编码参数的装置,所述图像部分是通过相对于至少一个参考图像部分的运动补偿来进行编码的,对所述图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,所述装置包括:选择部件,用于从至少第一编码模式和第二编码模式中选择编码模式并且从运动信息预测结果的集合中选择运动信息预测结果,所述集合的各运动信息预测结果被配置为用来在至少所述第一编码模式和所述第二编码模式中通过运动补偿对所述图像部分进行编码,所述装置还包括处理部件,所述处理部件用于进行以下操作:针对所述集合的多个运动信息预测结果中的各运动信息预测结果,确定表示使用所述第一编码模式对所述图像部分进行编码的成本的第一成本参数值;以及针对确定了所述第一成本参数值的所述多个运动信息预测结果中的一部分运动信息预测结果,确定表示使用所述第二编码模式对所述图像部分进行编码的成本的第二成本参数值,其中,所述选择部件被配置为选择与所确定的所述第一成本参数值和所述第二成本参数值中的最小成本参数值相对应的编码模式和运动信息预测结果。
[0092]本发明的又一方面提供一种用于确定将视频序列的图像部分编码成位流所用的编码参数的装置,所述图像部分是通过相对于至少一个参考图像部分的运动补偿来进行编码的,对所述图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,其中,所述编码模式是从至少第一编码模式和第二编码模式中所选择的,以及所述运动信息预测结果是从被配置为在至少所述第一编码模式和所述第二编码模式中通过运动补偿来对所述图像部分进行编码的运动信息预测结果的集合中所选择的,所述装置包括:处理部件,用于针对所述集合的多个运动信息预测结果中的各运动信息预测结果来确定表示使用所述第一编码模式对所述图像部分进行编码的成本的第一成本参数值,直到满足第一预定条件为止;以及针对所述集合的多个运动信息预 测结果中的各运动信息预测结果来确定表示使用所述第二编码模式对所述图像部分进行编码的成本的第二成本参数值,直到所述集合的所述运动信息预测结果满足第二预定条件为止;以及选择部件,用于选择与所确定的所述第一成本参数值和所述第二成本参数值中的最小成本参数值相对应的编码模式和运动信息预测结果。
[0093]在特定实施例中,所述第二预定条件是:所述运动信息预测结果具有预定索引并且是零矢量;或者针对所述运动预测结果所确定的所述第二成本参数值表示比针对所述集合的所述运动预测结果所确定的各所述第一成本参数值大的成本;所述第一预定条件可以是:针对整个所述集合的运动信息预测结果中的各运动信息预测结果确定了所有成本参数值。
[0094]本发明的另一方面提供一种用于将图像部分编码成位流的编码器,所述方法包括:根据前述实施例的装置,用于确定通过相对于参考图像部分的运动补偿来对所述图像部分进行编码所用的编码参数;以及编码部件,用于使用所确定的编码参数来对所述图像部分进行编码。
[0095]根据本发明的方法的至少一部分可以通过计算机来实现。因此,本发明可以采用完全硬件实施例、(包括固件、常驻软件、微代码等的)完全软件实施例、或者组合这里通常可以全部称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明可以采用以介质中嵌入有计算机可用程序代码的表现的任何有形介质中所体现的计算机程序产品的形式。
[0096]由于本发明可以以软件来实现,因此本发明可以体现为计算机可读代码以提供至可编程设备的任何适当载体介质上。有形载体介质可以包括诸如软盘、⑶-ROM、硬盘驱动器、磁带装置或固态存储器装置等的存储介质。瞬态载体介质可以包括诸如电信号、光学信号、声学信号、磁信号或者例如微波或RF信号的电磁信号等的信号。
【专利附图】
【附图说明】
[0097]现在将仅通过示例的方式并且参考以下附图来说明本发明的各实施例,其中:[0098]图1是示出现有技术的用于选择编码参数的选择处理的步骤的流程图;
[0099]图2是示出现有技术的用于选择编码模式的处理的步骤的流程图;
[0100]图3是示出可以实现本发明的实施例的处理装置的组件的框图;
[0101]图4是示出根据本发明的实施例的编码方法的步骤的流程图;
[0102]图5是示出解码方法的步骤的流程图;
[0103]图6是示出根据本发明第一实施例的用于选择编码参数的方法的步骤的流程图;
[0104]图7是示出根据本发明第二实施例的用于选择编码参数的方法的步骤的流程图;
[0105]图8是示出根据本发明第三实施例的用于选择编码参数的方法的步骤的流程图;
[0106]图9是示出根据本发明第四实施例的用于选择编码参数的方法的步骤的流程图;以及
[0107]图10示出本发明的实施例的上下文中可以使用的块分区的示例。
【具体实施方式】
[0108]图3示意性示出被配置为实现本发明的至少一个实施例的处理装置300。处理装置300可以是诸如微计算机、工作站或轻薄便携式装置等的装置。装置300包括通信总线313,其中该通信总线 313连接有以下组件:
[0109]-诸如微处理器等的表示为CPU的中央处理单元311;
[0110]-表示为ROM的只读存储器307,用于存储实现本发明所用的计算机程序;
[0111]-表示为RAM的随机存取存储器312,用于存储本发明的实施例的方法的可执行代码以及如下寄存器,其中这些寄存器被配置为记录实现根据本发明的实施例的对数字图像序列进行编码的方法和/或对位流进行解码的方法所需的变量和参数;以及
[0112]-通信接口302,其连接至发送或接收要处理的数字数据所经由的通信网络303。
[0113]可选地,装置300还可以包括以下组件:
[0114]-诸如硬盘等的数据存储部件304,用于存储实现本发明的一个或多个实施例的方法的计算机程序以及在本发明的一个或多个实施例的实现期间所使用或所产生的数据;
[0115]-盘306所用的盘驱动器305,其中该盘驱动器被配置为从盘306读取数据或者将数据写到所述盘上;
[0116]-屏幕309,用于利用键盘310或任何其它指示部件来显示数据以及/或者用作与用户的图形界面。
[0117]装置300可以连接至例如数字照相机320或麦克风308等的各种外围设备,其中这些外围设备各自连接至输入/输出卡(未示出)从而向装置300供给多媒体数据。
[0118]通信总线提供装置300内所包括的或连接至装置300的各种元件之间的通信和互操作性。该总线的代表并非限制性的,并且特别地,中央处理单元可用于将指示直接地或者利用装置300的其它元件通信至装置300的任意元件。
[0119]盘306可以由例如(可重写或不可重写的)致密盘(⑶-ROM)、ZIP盘或存储卡等的任何信息介质以及概括而言由信息存储部件来替换,其中该信息存储部件可以由集成于该装置内或没有集成于该装置内的可移除的微计算机或微处理器来读取,并且被配置为存储如下的一个或多个程序,其中执行该一个或多个程序使得能够实现根据本发明的对数字图像序列进行编码的方法和/或对位流进行解码的方法。
[0120]可执行代码可以存储在只读存储器307中、硬盘304上或者例如前面所述的盘306等的可移除数字介质上。根据变形例,程序的可执行代码可以利用通信网络303经由接口302来接收,从而在执行之前存储在诸如硬盘304等的装置300的存储部件的其中一个内。
[0121]中央处理单元311被配置为控制和指导根据本发明的程序的指令或软件代码的一部分的执行,其中这些指令存储在上述存储部件的其中一个内。在通电时,将存储在非易失性存储器中(例如硬盘304上或只读存储器307中)的程序传递至随机存取存储器312,然后该随机存取存储器312容纳程序的可执行代码以及用于存储实现本发明所需的变量和参数的寄存器。
[0122]在本实施例中,该设备是使用软件来实现本发明的可编程设备。然而,可选地,本发明可以以硬件形式(例如,以专用集成电路或ASIC的形式)来实现。
[0123]图4示出根据本发明的至少一个实施例的编码器的框图。该编码器由所连接的模块来表示,其中各模块被配置为例如以装置300的CPU311要执行的编程指令的形式来执行用于实现根据本发明的一个或多个实施例的对图像序列中的图像进行编码的至少一个实施例的方法的至少一个相应步骤。
[0124]编码器40接收原始的数字图像序列i0~in401作为输入。各数字图像由已知为像素的一组样本来表不。
[0125]编码器40在执行了编码处理之后输出位流410。
[0126]位流410包括多个 编码单位或片,其中各片包括:片头,用于传输对片进行编码所使用的编码参数的编码值;以及片本体,其包括编码视频数据。
[0127]模块402将所输入的数字图像iO~in401分割成像素的块。这些块与图像部分相对应,并且可以具有可变大小(例如,4\4、8父8、16\16、32父32个像素)。针对各输入块来选择编码模式。设置有基于空间预测编码的编码模式(帧内预测)和基于时间预测的编码模式(帧间编码、合并、跳过)这两类编码模式。对可能的编码模式进行测试。
[0128]模块403实现帧内预测,其中在帧内预测中,利用根据要编码的给定块附近的像素计算出的预测结果来预测该要编码的块。在选择帧内编码的情况下,对所选择的帧内预测结果和给定块与其预测结果之间的差的标示进行编码,以提供残差。
[0129]时间预测由运动估计模块404和运动补偿模块405来实现。首先,选择一组参考图像416中的参考图像,并且利用运动估计模块404来选择该参考图像中作为与要编码的给定块最接近的区域的部分(还被称为参考区域或图像部分)。然后,运动补偿模块405使用所选择的区域来预测要编码的块。利用运动补偿模块405来计算所选择的参考区域和给定块(还称为残差块)之间的差。所选择的参考区域由运动矢量来表示。
[0130]因而,在这两种情况(空间和时间预测)中,通过从原始块中减去预测值来计算残差。
[0131]在利用块403实现的帧内预测中,对预测方向进行编码。在时间预测中,对至少一个运动矢量进行编码。
[0132]在选择了帧间预测的情况下,对与运动矢量和残差块有关的信息进行编码。为了进一步降低位率,在运动均匀的情况下,利用相对于运动矢量预测结果的差来对运动矢量进行编码。利用运动矢量预测和编码模块417来从运动矢量字段418获得运动信息预测结果的集合中的运动矢量预测结果。
[0133]编码器40还包括用于通过应用诸如率失真标准等的编码成本标准来选择编码模式的选择模块406。以下将参考图6~8中的任一个来更详细地说明编码模式和运动矢量预测的选择。
[0134]为了进一步减少冗余,变换模块407向残差块应用变换,然后所获得的变换数据由量化模块408进行量化并且由熵编码模块409进行熵编码。最后,将编码中的当前块的编码残差块连同诸如所选择运动矢量预测结果的索引等的与所使用的预测结果有关的信息一起插入位流410。对于以“跳过”模式编码后的块,仅将针对该预测结果的索引编码成位流,而无任何残差块。
[0135]编码器40还进行编码图像的解码,从而产生后续图像的运动估计所用的参考图像。这使得编码器和解码器能够接收位流以具有相同的参考帧。逆量化模块411对量化数据进行逆量化,之后由逆变换模块412进行逆变换。逆帧内预测模块413使用预测信息来判断哪个预测结果用于给定块,并且逆运动补偿模块414实际将模块412所获得的残差添加至从一组参考图像416所获得的参考区域。可选地,应用去块滤波器415以除去块效应并且提高解码图像的视觉质量。在解码器处应用相同的去块滤波器,以使得在不存在传输损失的情况下,编码器和解码器应用相同的处理。
[0136]图5示出根据本发明的至少一个实施例的可以用于接收来自编码器的数据的解码器50的框图。该解码器由所连接的模块来表示,其中各模块被配置为例如以装置300的CPU311要执行的编程指令的形式来执行解码方法的相应步骤。
[0137]解码器50接收包 括编码单位的位流501,其中每一个编码单位包括包含与编码参数有关的信息的头以及包含编码视频数据的本体。如参考图4所述,对编码视频数据进行熵编码,并且按预定的位数针对给定块来编码运动矢量预测结果的索引。所接收到的编码视频数据由模块502进行熵解码。然后残差数据由模块503去量化,然后由模块504应用逆变换以获得像素值。
[0138]还对表示编码模式的模式数据进行熵解码,并且基于该模式,对编码后的图像数据的块进行帧内型解码或帧间型解码。
[0139]在帧内模式的情况下,逆帧内预测模块505基于位流中所指定的帧内预测模式来确定帧内预测结果。
[0140]在模式是帧间模式的情况下,从位流提取运动预测信息以寻找编码器所使用的参考区域。该运动预测信息包括参考帧索引和运动矢量残差。利用运动矢量解码模块510将运动矢量预测结果与运动矢量残差相加以获得运动矢量。
[0141]运动矢量解码模块510对通过运动预测编码后的各当前块应用运动矢量解码。一旦获得了针对当前块的运动矢量预测结果的索引,则可以对与当前块相关联的运动矢量的实际值进行解码并且模块506使用该实际值来应用逆运动补偿。从参考图像508提取由解码后的运动矢量所表示的参考图像部分以应用逆运动补偿506。利用解码后的运动矢量来更新运动矢量字段数据511从而用于下一解码后的运动矢量的逆预测。
[0142]最终,获得了解码块。与在编码器处应用的去块滤波器415类似,应用去块滤波器507。最终,解码器50提供了解码后的视频信号509。
[0143]图6是示出根据本发明第一实施例的用于选择视频序列的图像的块所用的编码参数的方法的步骤的流程图。在本实施例中,从合并编码模式和跳过编码模式中选择编码模式;并且根据所确定的率失真成本,从候选运动矢量预测结果的列表中选择运动矢量预测结果。通常,根据第一实施例,在运动预测结果矢量候选的列表中的第一个运动预测结果矢量候选等于零矢量(O,O)的情况下,在合并模式中仅针对该第一个运动预测结果矢量候选计算率失真成本。如果满足该条件,则在合并模式中针对列表中的剩余运动预测结果候选没有计算进一步的率失真成本。如果不满足该条件,则在合并模式中计算列表中的剩余运动预测结果候选的率失真成本,以选择编码参数。
[0144]通过本发明人所进行的统计分析,已经表明运动矢量预测结果候选的列表中的第一个运动矢量预测结果非常重要并且表示使用图1的选择处理时约60%的选择。此外,在第一个运动矢量预测结果候选等于零矢量(0,0)的情况下,这表示无运动的图像的区域。结果,考虑该集合的其它运动矢量预测结果候选不太可能是高效的。
[0145]现在将参考图6来说明用于避免针对编码的合并模式的率失真成本的不必要计算的这种终止规则的应用示例。
[0146]在步骤600中,通过将提前终止标志(ETF)变量设置为FALSE (假)来初始化用于选择编码参数的处理。在步骤601中提供N个运动矢量预测结果候选的列表,并且在步骤602中考虑列表中的索引为O (i = O)的第一候选。
[0147]在下一步骤603中,进行检查以评价列表中的第一个运动矢量预测结果候选是否等于表示所有分量均等于O的零矢量。如果判断为列表中的第一个运动矢量预测结果候选等于零,则在步骤604中将变量ETF设置为TRUE (真)。这意味着满足了使针对合并模式的率失真成本的计算提前终止的条件。
[0148]否则,如果 在步骤603中判断为列表中的第一个运动矢量预测结果候选不等于零矢量,则该处理直接进入步骤605,其中在该步骤605中,从候选的列表中提取索引i的运动矢量预测结果候选(606)。在下一步骤607中,计算跳过模式中的运动矢量预测结果候选i的率失真成本。
[0149]可以使用Lagrangian表达式来确定用于对当前块进行编码的跳过模式中的运动矢量预测结果候选i的率失真成本JSkipi。
[0150]JSkip ⑴=DSkip ⑴ + λ RSkip ⑴
[0151]其中,D与针对编码单位所引入的失真相对应,R表示与该编码单位相关联的率,并且λ表示固定为给定值的Lagrangian参数。
[0152]在步骤609中,进行检查,以验证所评估的运动矢量预测结果候选是否是列表中的第一个运动矢量预测结果候选、并且ETF变量是否被设置为真,从而判断是否需要在合并模式中针对运动矢量预测结果候选i计算率失真成本。
[0153](i>0)并且(ETF ==真)
[0154]如果在步骤609中判断为ETF被设置为真、但候选不是列表的第一候选,则针对利用i编索引的运动矢量预测结果候选没有进行合并模式的率失真成本计算。
[0155]在另一示例中,在步骤609中,可以检查运动矢量预测结果候选的索引是否大于预定索引i(i>I),其中I与能够控制编码时间的预定义值相对应。
[0156]否则,如果在步骤609中判断为要针对候选i计算率失真成本,则在步骤611中,根据与跳过模式所用的表达式等效的表达式,针对列表中利用i编索引的运动矢量预测结果候选来计算合并模式的率失真成本。
[0157]JMrg (i) =DMrg (i) + λ RMrg (i)
[0158]然后,在步骤613中,针对该特定运动矢量预测结果候选i,将针对合并模式所计算出的率失真成本和针对跳过模式所计算出的率失真成本进行比较。
[0159]接着,在步骤614中,使与运动矢量预测结果候选的索引i有关的计数器递增。在步骤615中,进行检查以判断是否处理了 η个运动矢量预测结果候选的整个列表。如果判断为尚未处理运动矢量预测结果候选的整个列表、即i〈N-l,则通过返回至该处理的步骤605来处理运动矢量预测结果列表中的下一候选,否则在步骤616中完成用于选择MV预测结果和编码的选择处理。
[0160]在步骤616中,识别出跳过模式和合并模式中的最佳模式以及最佳预测结果。最佳模式和最佳候选运动矢量预测结果与针对跳过模式和/或合并模式计算了率失真成本的所有候选中的给出最小率失真成本的运动矢量预测结果候选相对应。
[0161]与图1中的针对HEVC编码器的现有技术的选择处理相比,针对合并模式的率失真成本运算次数大幅减少。
[0162]在编码HEVC测试模型中所进行的数值实验表明:在没有对编码效率产生影响的情况下,编码时间缩短了约5%。
[0163]图7是示出根据本发明第二实施例的用于选择视频序列图像的块所用的编码参数的方法的步骤的流程图。在本实施例中,从合并编码模式和跳过编码模式中选择编码模式;并且根据所确定的率失真成本,从N个候选运动矢量预测结果的列表中选择运动矢量预测结果。通常,根据第二实施例,针对运动矢量预测结果候选在合并模式中计算率失真成本,直到列表的运动矢量预测结果候选其中之一满足了预定标准为止。在该特定实施例中,针对运动矢量预测结果候选在合并模式中计算率失真成本,直到得出(给定候选的针对合并模式的率失真成本+ △所表示的给定值)高于该给定候选的针对跳过模式的相应RD成本为止,其中Λ可以表示JMrgi或JSkipi的特定百分比。在另一示例中,Λ可以等于O。如果运动矢量预测结果候选满足了该条件,则在合并模式中没有针对列表中的剩余运动预测结果候选计算进一步的率失真成本。如果不满足该条件,则在合并模式中计算列表中的剩余运动矢量预测结果候选的率失真成本以选择编码参数,直到满足了该条件为止、或者直到评价了列表的所有运动预测结果候选为止。
[0164]关于前述实施例,第一预测结果非常重要并且表示使用图1的选择处理时约60%的选择。如果合并模式对于给定预测结果是高效的,则可以认为合并模式对于列表的后续运动矢量预测结果候选可能不是高效的。
[0165]在初始步骤701中,确定候选运动矢量预测结果的列表。这些运动矢量预测结果与作为跳过编码模式和合并编码模式中的运动补偿所用的适当运动矢量预测结果的已编码块的运动矢量相对应。
[0166]在步骤702中,通过将提前终止标志ETF设置为假来初始化该选择处理。
[0167]在步骤703中,将候选索引i设置为i = 0,从而对列表中的第一候选编索引。然后,在步骤704中提取具有索引i的候选(705)。在步骤706中,根据Lagrangian表达式来计算与第i候选相关联的针对跳过模式的率失真成本。
[0168]JSkip ⑴=DSkip ⑴ + λ RSkip ⑴[0169]其中,D与针对编码单位所引入的失真相对应,R表示与该编码单位相关联的率,并且λ表示固定为给定值的Lagrangian参数。通过计算该编码单位和原始图像中的相应块之间的均方差来确定失真DSkip (i)。
[0170]在步骤708中,通过判断列表的运动矢量预测结果候选是否已满足预定条件来判断是否需要针对合并模式计算利用i编索引的运动矢量预测结果候选的率失真成本。在该示例中,这通过验证ETF标志是否被设置为真来进行。如果ETF标志没有被设置为真,则判断为尚未满足预定条件,并且在步骤710中,根据等效表达式来评价利用i编索引的预测结果候选的针对合并模式的RD成本。
[0171]JMrg (i) =DMrg (i) + λ RMrg (i)
[0172]在该步骤之后进行步骤711,其中在该步骤711中,针对列表中的利用i编索引的候选,在跳过模式的率失真成本和合并模式的率失真成本之间进行比较。在步骤711中针对利用i编索引的候选判断为跳过模式的率失真成本低于合并模式的率失真成本的情况下,即JSkiPi〈JMrgi+Λ,然后,在步骤712中,将ETF标志设置为真以表示满足了预定终止条件,其中△是可以与JSkipi或JMrgi成比例的正值或者等于O。结果,针对列表中的剩余运动矢量预测结果候选没有计算合并模式的率失真成本。然后,在步骤712之后进行步骤707,其中在该步骤707中,将针对利用i编索引的运动矢量预测结果候选的跳过模式的成本JSkipi与迄今为止针对列表中的先前运动矢量预测结果候选所求出的最小值J进行比较。如果JSkipi是最小值,则将新的最小值J设置为JSkipi。
[0173]否则,如果在步骤711中针对利用i编索引的运动矢量预测结果候选判断为跳过模式的率失真成本大于合并模式的率失真成本,则该处理进入步骤713。在步骤713中,将迄今为止针对列表的 运动矢量预测结果候选所计算出的最小率失真成本J、针对利用i编索引的运动矢量预测结果候选的跳过模式的率失真成本JSkiP1、以及针对利用i编索引的运动矢量预测结果候选的合并模式的率失真成本JMrgi中的最小值保持在存储器中。
[0174]在步骤714中,使与预测结果候选的索引i有关的计数器递增。
[0175]然后,在步骤715中进行检查,以判断是否处理了 N个运动矢量预测结果候选的列表中的所有运动矢量预测结果候选。
[0176]如果判断为尚未处理所有N个运动矢量预测结果候选,则该处理返回至步骤704以提取MV预测结果候选的列表中的下一运动矢量预测结果候选来进行处理。
[0177]否则,如果在步骤715中判断为处理了所有N个运动矢量预测结果候选,则该处理进入步骤716,其中该步骤716与选择算法的输出相对应。作为选择处理的输出,识别出最佳运动矢量预测结果候选imin。该最佳运动矢量预测结果候选与确定了率失真成本的所有N个预测结果候选中的给出最小成本J且源于跳过模式和合并模式这两个模式的预测结果候选相对应。该结果还提供了跳过模式和合并模式中的针对imin候选的最佳模式BM。
[0178]与针对HEVC编码器的现有技术方法相比,针对合并模式的率失真成本运算次数大幅减少。在HEVC测试模型的编码器中所进行的数值实验表明:在没有对编码效率产生影响的情况下,编码时间缩短了约5%。
[0179]图8是示出根据本发明第三实施例的用于选择视频序图像的块所用的编码参数的方法的步骤的流程图。在本实施例中,从合并帧内编码模式和跳过帧内编码模式中选择编码模式;并且根据所确定的率失真成本来从N个候选运动矢量预测结果的列表中选择运动矢量预测结果。通常,根据第三实施例,针对运动矢量预测结果候选在合并模式中计算率失真成本,直到该列表的运动矢量预测结果候选其中之一满足了两个预定条件其中之一为止。第一条件与第一实施例的条件相对应,即在第一个运动预测结果候选等于零矢量(O,O)的情况下,在合并模式中仅针对运动预测结果矢量候选中的第一个运动预测结果矢量候选来计算率失真成本。第二条件与第二实施例的条件相对应,即给定候选的针对合并模式的率失真成本高于该给定候选的针对跳过模式的相应RD成本。如果满足了这两个预定条件任意一个,则在合并模式针对该列表中的剩余运动预测结果候选没有计算进一步的率失真成本。如果没有满足条件,则在合并模式中计算该列表中的剩余运动预测结果候选的率失真成本,以选择编码参数。
[0180]在步骤800中,通过将提前终止标志(ETF)变量设置为假来初始化根据本发明第三实施例的选择编码参数的处理。在步骤801中提供适合在合并编码模式和跳过编码模式中通过运动补偿进行编码的N个运动矢量预测结果候选的列表,并且在步骤802中考虑该列表中的索引为O (i = O)的第一候选。
[0181]在下一步骤803中,进行检查以评价列表中的第一个运动矢量预测结果候选是否等于表示所有分量均等于O的零矢量。如果判断为列表中的第一个运动矢量预测结果候选等于零,则在步骤817中将变量ETF设置为TRUE。这意味着满足了使针对合并模式的率失真成本的计算提前终止的条件。
[0182]否则,如果在步骤803中判断为列表中的第一个运动矢量预测结果候选不等于零矢量,则该处理直接进入步骤804,其中在该步骤804中,从运动矢量预测结果候选的列表中提取索引i的运动矢量预测结果候选(805)。在下一步骤806中,计算跳过模式的运动矢量预测结果候选i的率失真成本。 [0183]可以使用Lagrangian表达式来确定用于以跳过模式对当前块进行编码的运动矢量预测结果候选i的率失真成本JSkipi。
[0184]JSkip ⑴=DSkip ⑴ + λ RSkip ⑴
[0185]其中,D与针对块所引入的失真相对应,R表示与该编码单位相关联的率,并且入表示固定为给定值的Lagrangian参数。
[0186]在步骤808中,进行检查以验证所评估的运动矢量预测结果候选是否是列表中的第一个运动矢量预测结果候选、并且ETF变量是否被设置为真,从而判断是否需要在合并模式中针对运动矢量预测结果候选i来计算率失真成本。
[0187](i>0)并且(ETF ==真)
[0188]如果在步骤808中判断为ETF被设置为真、但候选不是列表的第一候选,则针对利用i编索引的运动矢量预测结果候选没有进行合并模式的率失真成本计算。
[0189]在步骤808的另一示例中,可以检查运动矢量预测结果候选的索引是否大于预定索引i(i>I),其中I与能够控制编码时间的预定义值相对应。
[0190]否则,如果在步骤808中判断为要在合并模式中针对候选i计算率失真成本,则在步骤810中,根据与跳过模式所用的表达式等效的表达式,针对列表中的利用i编索引的运动矢量预测结果候选来计算合并模式的率失真成本。
[0191]JMrg (i) =DMrg (i) + λ RMrg (i)
[0192]在该步骤之后进行步骤811,其中在步骤811中,针对列表中的利用i编索引的候选,在跳过模式的率失真成本和合并模式的率失真成本之间进行比较。如果在步骤811中针对利用i编索引的候选判断为跳过模式的率失真成本低于合并模式的率失真成本、即JSkiPi〈JMrgi的情况下,则在步骤812中,将ETF标志设置为真以表示满足了替代的预定终止条件。结果,针对列表中的剩余运动矢量预测结果候选没有计算合并模式的率失真成本。在替代实施例中,与图7的步骤711相同,在步骤811中将JSkipi与JMrgi+ Δ进行比较,其中Δ是可以与JSkipi或JMrgi成比例的正值、或者等于O。
[0193]然后,在步骤812之后进行步骤807,其中在该步骤807中,将针对利用i编索引的运动矢量预测结果候选的跳过模式的成本JSkipi与迄今为止针对列表中的先前运动矢量预测结果候选所求出的最小值J进行比较。如果JSkipi是最小值,则将新的最小值J设置为 JSkipi。
[0194]否则,如果在步骤811中针对利用i编索引的运动矢量预测结果候选判断为跳过模式的率失真成本大于合并模式的率失真成本,则该处理进入步骤813。在步骤813中,将迄今为止针对列表的运动矢量预测结果候选所计算出的最小率失真成本J、针对利用i编索引的运动矢量预测结果候选的跳过模式的率失真成本JSkiP1、以及针对利用i编索引的运动矢量预测结果候选的合并模式的率失真成本JMrgi中的最小值保持在存储器中。
[0195]在步骤814中,使与预测结果候 选的索引i有关的计数器递增。
[0196]然后,在步骤815中进行检查,以判断是否处理了 N个MV预测结果候选的列表中的所有运动矢量预测结果候选。
[0197]如果判断为尚未处理所有N个MV预测结果候选,则该处理返回至步骤804以提取MV预测结果候选的列表中的下一 MV预测结果候选,以进行处理。
[0198]否则,如果在步骤815中判断为处理了所有N个MV预测结果候选,则该处理进入步骤816,其中该步骤816与选择算法的输出相对应。作为选择处理的输出,识别出最佳运动矢量预测结果候选imin。该最佳运动矢量预测结果候选与确定了率失真成本的所有N个预测结果候选中的给出最小成本J且源于跳过模式和合并模式这两个模式的运动矢量预测结果候选相对应。该结果还提供了跳过模式和合并模式中的针对imin候选的最佳模式BM0
[0199]图9是示出根据本发明第四实施例的用于选择视频序列图像的块所用的编码参数的方法的步骤的流程图。在本实施例中,从合并编码模式和跳过编码模式中选择编码模式,并且根据所确定的率失真成本来从N个候选运动矢量预测结果的列表中选择运动矢量预测结果。通常,根据第二实施例,针对运动矢量预测结果候选在合并模式中计算率失真成本,直到该列表的运动矢量预测结果候选其中之一满足了预定标准为止。在该特定实施例中,针对运动矢量预测结果候选在合并模式中计算率失真成本,直到得出给定候选的针对跳过模式的率失真成本低于已处理的先前候选的(跳过模式或合并模式的)最小率失真成本为止。如果运动矢量预测结果候选满足该条件,则在合并模式中针对列表中的剩余运动矢量预测结果候选没有计算进一步的率失真成本。如果没有满足该条件,则在合并模式中计算列表中的剩余运动矢量预测结果候选的率失真成本以选择编码参数,直到满足该条件为止、或直到评价了列表的所有运动预测结果候选为止。
[0200]在初始步骤901中,确定候选运动矢量预测结果的列表。这些运动矢量预测结果与作为跳过编码模式和合并编码模式中的运动补偿所用的适当运动矢量预测结果的已编码块的运动矢量相对应。
[0201]在步骤902中,通过将提前终止条件ETF设置为假来初始化该选择处理。
[0202]在步骤903中,将候选的索引i设置为i = 0,以对列表中的第一候选进行编索引。然后,在步骤904中提取(附图标记905所示的)具有索引i的候选。在步骤906中,根据Lagrangian表达式来计算与第i候选相关联的针对跳过模式的率失真成本。
[0203]JSkip (i) =DSkip (i) + λ RSkip (i)
[0204]其中,D与针对编码单位所引入的失真相对应,R表示与该编码单位相关联的率,并且λ表示固定为给定值的Lagrangian参数。失真DSkip(i)是通过计算该编码单位和原始图像中的相应块之间的均方差所确定的。
[0205]然后,在步骤906之后进行步骤917。在步骤917中,通过判断列表的运动矢量预测结果候选是否已满足预定条件,来判断除了迄今为止针对列表的运动矢量预测结果候选所计算出的最小率失真成本J以外、是否必须将针对利用i编索引的运动矢量预测结果候选的跳过模式的率失真成本JSkipi与针对利用i编索引的运动矢量预测结果候选的合并模式的率失真成本JMrgi进行比较。在该示例中,这通过验证ETF标志是否被设置为真来进行。如果ETF被设置为真,则在步骤917之后进行步骤907,其中在该步骤907中,将针对利用i编索引的运动矢量预测结果候选的跳过模式的成本JSkipi与迄今为止针对列表的先前运动矢量预测结果候选所求出的最小值J进行比较。如果JSkipi是最小值,则将新的最小值J设置为JSkipi。
[0206]如果ETF没有被设置为真,则在步骤917之后进行以下所述的步骤911。 [0207]在步骤908中,通过判断列表的运动矢量预测结果候选是否已满足预定条件,来判断针对合并模式是否需要计算利用i编索引的运动矢量预测结果候选的率失真成本。如果ETF标志没有被设置为真,则判断为尚未满足预定条件,并且在步骤910中,根据等效表达式来评价针对利用i编索引的预测结果候选的合并模式的RD成本。
[0208]JMrg (i) =DMrg (i) + λ RMrg (i)
[0209]在该步骤910之后进行步骤911,其中在该步骤911中,将迄今为止针对列表的运动矢量预测结果候选所计算出的最小率失真成本J、针对利用i编索引的运动矢量预测结果候选的跳过模式的率失真成本JSkiP1、以及针对利用i编索引的运动矢量预测结果候选的合并模式的率失真成本JMrgi中的最小值保持在存储器中。
[0210]然后在步骤911之后进行步骤912,其中在该步骤912中,在最小率失真成本J和针对利用i编索引的运动矢量预测结果候选的跳过模式的率失真成本JSkipi之间进行相等测试。
[0211]如果在步骤912中回答为肯定,则在该步骤之后进行步骤913,其中在该步骤913中,将ETF标志设置为真以表示满足了预定终止条件。结果,针对列表中的剩余运动矢量预测结果候选没有计算合并模式的率失真成本(参见步骤917和908)。
[0212]如果步骤912中回答为否定,则该处理继续步骤914,其中在该步骤914中,使与预测结果候选的索引i有关的计数器递增。
[0213]然后,在步骤915中进行检查,以判断是否处理了 N个运动矢量预测结果候选的列表中的所有运动矢量预测结果候选。
[0214]如果判断为尚未处理所有N个运动矢量预测结果候选,则该处理返回至步骤904,以在MV预测结果候选的列表中提取下一运动矢量预测结果候选来进行处理。
[0215]否则,如果在步骤915中判断为处理了所有N个运动矢量预测结果候选,则该处理进入步骤916,其中该步骤916与选择算法的输出相对应。作为选择处理的输出,识别出最佳运动矢量预测结果候选imin。该最佳运动矢量预测结果候选与确定了率失真成本的所有N个预测结果候选中的给出最小成本J且源于跳过模式和合并模式这两个模式的预测结果候选相对应。该结果还提供了跳过模式和合并模式中的针对imin候选的最佳模式BM。
[0216]与针对HEVC编码器的现有技术方法相比,针对合并模式的率失真成本运算次数大幅减少。在HEVC测试模型的编码器中所进行的数值实验表明:在没有对编码效率产生影响的情况下,编码时间缩短了约5%。另外,由于通过该处理较少选择合并模式,因此解码时间也缩短,并且在HEVC测试模型中观察到解码时间缩短了约3%。
[0217]本发明的实施例由此提供降低HEVC编码器中选择运动矢量预测结果候选和编码模式的计算复杂性的方式。通过使与跳过模式(或帧间模式)相比、针对评价耗费更多时间的合并模式的率失真成本的评价最小化,来降低该复杂性。因而引入提前终止算法有助于避免针对所有候选预测结果计算率失真成本的必要性。
[0218]尽管以上已经参考特定实施例说明了本发明,但本发明不限于这些特定实施例,并且本领域技术人员将明白存在于本发明的范围内的变形例。许多其它修改和改变在参考仅以示例方式给出的并且并不意图限制本发明的范围的前述例示实施例时向精通本技术的人员表明这些修改和改变仅是由所附权利要求书来确定的。特别地,在适当情况下,可以互换来自不同实施例的不同特征。
[0219]在权利要求书中,词语“包括”没有排除其它元件或步骤,并且不定冠词“a”或“an”没有排除多个。在 相互不同的从属权利要求中陈述不同的特征的仅有事实并不表明不能有利地使用这些特征的组合。
【权利要求】
1.一种用于确定将视频序列的图像部分编码成位流所用的编码参数的方法,所述图像部分是通过相对于至少一个参考图像部分的运动补偿来进行编码的,对所述图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,其中,所述编码模式是从至少第一编码模式和第二编码模式中所选择的,以及所述运动信息预测结果是从针对至少所述第一编码模式和所述第二编码模式相同的运动信息预测结果的集合中所选择的,所述编码模式和所述运动信息预测结果的选择涉及对所述第一编码模式和所述第二编码模式这两个编码模式中使用所述集合的运动信息预测结果来编码所述图像部分的成本进行比较,所述方法包括以下步骤: 针对所述集合的至少一个所述运动信息预测结果,省略针对所述第一编码模式和所述第二编码模式中的至少一个编码模式的成本的计算。
2.根据权利要求1所述的方法,其中,还包括以下步骤: 检测满足与所述集合的一个或多个运动信息预测结果有关或与已计算出的一个或多个成本有关的至少一个条件的时间;以及 在检测到满足所述条件的情况下,针对所述集合的至少一个所述运动信息预测结果,省略所述第一编码模式的成本和/或所述第二编码模式的成本的计算,否则,执行所述第一编码模式的成本和/或所述第二编码模式的成本的计算。
3.根据权利要求2所述的方法,其中,所述条件或一个所述条件为:所述集合中的第一个运动信息预测结果是零矢量。
4.根据权利要求3 所述的方法,其中,在检测到满足所述条件的情况下,针对除所述第一个运动信息预测结果以外的所有运动信息预测结果,省略所述第二编码模式的成本的计笪
5.根据权利要求2至4中任一项所述的方法,其中,所述条件或一个所述条件为:针对所述集合的运动信息预测结果其中之一,所述第二编码模式的成本大于所述第一编码模式的成本。
6.根据权利要求5所述的方法,其中,所述第二编码模式的成本大于所述第一编码模式的成本的条件依赖于所述第二编码模式对残差纹理数据的使用。
7.根据权利要求2至6中任一项所述的方法,其中,所述条件或一个所述条件为:针对所述集合的运动信息预测结果其中之一,所述第二编码模式的成本相对于所述第一编码模式的成本超出了大于预定量的量。
8.根据权利要求2至4中任一项所述的方法,其中,所述条件或一个所述条件为:针对所述集合的运动信息预测结果其中之一,所述第一编码模式的成本小于任意先前计算出的第一编码模式的成本、并且小于任意先前计算出的第二编码模式的成本。
9.根据权利要求2至4中任一项所述的方法,其中,所述条件或一个所述条件为:针对所述集合的运动信息预测结果其中之一,所述第一编码模式的成本比任意先前计算出的第一编码模式的成本少了大于预定量的量、并且比任意先前计算出的第二编码模式的成本少了大于预定量的量。
10.根据权利要求5至9中任一项所述的方法,其中,在检测到满足所述条件的情况下,针对满足所述条件的所述一个运动信息预测结果之后的所有运动信息预测结果,省略所述第二编码模式的成本的计算。
11.根据权利要求1至10中任一项所述的方法,其中,还包括以下步骤:从所述集合的第一个运动信息预测结果起,针对所述集合的各运动信息预测结果顺次计算所述成本。
12.根据在引用权利要求2至10中任一项的情况下的权利要求11所述的方法,其中,还包括以下步骤: 在不满足所述条件的情况下、或者在存在多于一个的条件时不满足任何条件的情况下,针对运动信息预测结果,计算所述第一编码模式的成本和所述第二编码模式的成本这两者;以及 在检测到满足所述条件或一个所述条件的情况下,针对运动信息预测结果,计算所述第一编码模式的成本而不计算所述第二编码模式的成本。
13.根据权利要求1至12中任一项所述的方法,其中,各所述成本是率失真成本。
14.一种用于确定将视频序列的图像部分编码成位流所用的编码参数的方法,所述图像部分是通过相对于至少一个参考图像部分的运动补偿来进行编码的,对所述图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,其中,所述编码模式是从至少第一编码模式和第二编码模式中所选择的,以及所述运动信息预测结果是从运动信息预测结果的集合中所选择的,所述集合的各运动信息预测结果被配置为用来在至少所述第一编码模式和所述第二编码模式中通过运动补偿对所述图像部分进行编码,所述方法包括以下步骤: 针对所述集合的多个运动信息预测结果中的各运动信息预测结果,确定表示使用所述第一编码模式对所述图像部分进行编码的成本的第一成本参数值; 针对确定了所述第一成本参数值的所述多个运动信息预测结果中的一部分运动信息预测结果,确定表示使用所述第二编码模式对所述图像部分进行编码的成本的第二成本参数值;以及 选择与所确定的所述第一成本参数值和所述第二成本参数值中的最小成本参数值相对应的编码模式和运动信息预测结果。
15.根据权利要求14所述的方法,其中,在所述集合中,运动信息预测结果是按预定顺序排列的。
16.根据权利要求14或15所述的方法,其中,针对所述集合的运动信息预测结果来确定所述第一成本参数值,直到满足第一预定条件为止。
17.根据权利要求15或16所述的方法,其中,针对根据所述预定顺序得到的所述集合的运动信息预测结果来确定所述第二成本参数值,直到满足第二预定条件为止。
18.根据权利要求14至17中任一项所述的方法,其中,在针对所述多个运动信息预测结果中的所述一部分运动信息预测结果确定所述第二成本参数值之前,针对所述多个运动信息预测结果来顺次确定所述第一成本参数值。
19.根据权利要求14至17中任一项所述的方法,其中,针对所述多个运动信息预测结果中的所述一部分运动信息预测结果,以运动信息预测结果为单位来并行地确定所述第一成本参数值和所 述第二成本参数值。
20.根据权利要求16至19中任一项所述的方法,其中,所述第一预定条件为:针对整个所述集合的运动信息预测结果中的各运动信息预测结果确定了所述第一成本参数值。
21.根据权利要求17至20中任一项所述的方法,其中,所述第二预定条件为:(iii)运动信息预测结果具有预定索引并且是零矢量;或者 (iv)针对运动预测结果所确定的所述第一成本参数值表示比针对所述运动预测结果所确定的各所述第二成本参数值低的成本。
22.根据权利要求21所述的方法,其中,所述预定索引表示所述运动信息预测结果是所述集合的第一个运动信息预测结果。
23.根据权利要求14至22中任一项所述的方法,其中,所述第一成本参数和所述第二成本参数各自表示率失真成本。
24.根据权利要求14至23中任一项所述的方法,其中,在所述第一编码模式中,仅将运动信息预测结果的索引编码成所述位流。
25.根据权利要求14至24中任一项所述的方法,其中,在所述第二编码模式中,将运动信息预测结果的标识符以及表示所述图像部分和所述参考图像部分之间的差的纹理残差信息编码成所述位流。
26.根据权利要求24或25所述的方法,其中,所述第一编码模式是跳过型帧间编码模式,并且所述第二编码模式是合并型帧间编码模式。
27.根据权利要求17至26中任一项所述的方法,其中,确定所述第二成本参数值,直到满足了所述第二预定条件、或者所述运动信息预测结果满足了另一第二预定条件为止,其中,所述第二预定 条件为所述运动信息预测结果具有预定索引并且是零矢量,以及所述另一第二预定条件为:针对所述集合的所述运动预测结果所确定的所述第一成本参数值表示比针对所述运动预测结果的各所述第二成本参数值低的成本。
28.一种用于将图像部分编码成位流的方法,所述方法包括以下步骤: 根据权利要求1至27中任一项所述的方法来确定通过相对于参考图像部分的运动补偿对所述图像部分进行编码所用的编码参数;以及 使用所确定的编码参数来对所述图像部分进行编码。
29.一种用于确定将视频序列的图像部分编码成位流所用的编码参数的装置,所述图像部分是通过相对于至少一个参考图像部分的运动补偿来进行编码的,对所述图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,所述装置包括: 选择部件,用于从至少第一编码模式和第二编码模式中选择编码模式,并且从针对至少所述第一编码模式和所述第二编码模式相同的运动信息预测结果的集合中选择运动信息预测结果,其中所述选择是基于所述第一编码模式和所述第二编码模式这两个编码模式中使用所述集合的运动信息预测结果来编码所述图像部分的成本;以及 处理部件,用于计算所述第一编码模式和所述第二编码模式这两个编码模式中使用所述集合的运动信息预测结果来编码所述图像部分的所述成本,并且被配置为针对所述集合的至少一个所述运动信息预测结果,省略针对所述第一编码模式和所述第二编码模式中的至少一个编码模式的成本的计算。
30.一种用于确定将视频序列的图像部分编码成位流所用的编码参数的装置,所述图像部分是通过相对于至少一个参考图像部分的运动补偿来进行编码的,对所述图像部分进行编码所用的编码参数包括编码模式和运动信息预测结果,所述装置包括: 选择部件,用于从至少第一编码模式和第二编码模式中选择编码模式并且从运动信息预测结果的集合中选择运动信息预测结果,所述集合的各运动信息预测结果被配置为用来在至少所述第一编码模式和所述第二编码模式中通过运动补偿对所述图像部分进行编码, 所述装置还包括处理部件,所述处理部件用于进行以下操作: 针对所述集合的多个运动信息预测结果中的各运动信息预测结果,确定表示使用所述第一编码模式对所述图像部分进行编码的成本的第一成本参数值;以及 针对确定了所述第一成本参数值的所述多个运动信息预测结果中的一部分运动信息预测结果,确定表示使用所述第二编码模式对所述图像部分进行编码的成本的第二成本参数值, 其中,所述选择部件被配置为选择与所确定的所述第一成本参数值和所述第二成本参数值中的最小成本参数值相对应的编码模式和运动信息预测结果。
31.一种用于将图像部分编码成位流的编码器,所述方法包括: 根据权利要求29或30所述的装置,用于确定通过相对于参考图像部分的运动补偿来对所述图像部分进行编码所用的编码参数;以及 编码部件,用于使用所确定的编码参数来对所述图像部分进行编码。
32.—种可编程设备所用的计算机程序产品,所述计算机程序产品包括用于在载入所述可编程设备并且由所述可编程设备执行的情况下、实现根据权利要求1至28中任一项所述的方法的指令序列。
33.一种存储有 计算机程序的指令的计算机可读存储介质,所述指令用于实现根据权利要求I至28中任一项所述的方法。
【文档编号】H04N19/109GK104025592SQ201280053150
【公开日】2014年9月3日 申请日期:2012年10月26日 优先权日:2011年10月28日
【发明者】G·拉罗彻, P·乌诺 申请人:佳能株式会社