数字图像序列编码方法和位流解码方法与流程

文档序号:12697259阅读:305来源:国知局
数字图像序列编码方法和位流解码方法与流程

技术领域

本发明涉及一种用于对数字图像序列进行编码的方法和装置以及用于对相应的位流进行解码的方法和装置。

本发明属于数字信号处理领域,尤其属于使用运动补偿来减少视频流中的空间冗余和时间冗余的视频压缩领域。



背景技术:

例如H.263、H.264、MPEG-1、MPEG-2、MPEG-4、SVC等的许多视频压缩格式使用基于块的离散余弦变换(DCT)和运动补偿以去除空间冗余和时间冗余。这些格式可被称为预测视频格式。视频信号的各帧或图像被分割成编码后的并且能够独立进行解码的片(slice)。片通常是帧的矩形部分、或者更通常为帧的一部分或整个帧。此外,各片被分割成多个宏块(MB),并且将各宏块被进一步分割成块、通常为8×8个像素的块。这些编码帧为(被称为P帧的根据一个参考帧而预测到的或者被称为B帧的根据两个参考帧而预测到的)时间预测帧和非时间预测帧(被称为内帧或I帧)这两种类型。

时间预测在于从参考帧(视频序列的先前帧或将来帧)中发现最接近要编码的块的图像部分或参考区域。该步骤已知为运动估计。接着,连同与表示运动补偿要使用的参考区域的运动矢量有关的运动信息项一起,对要编码的块和参考部分之间的差进行编码(运动补偿)。

为了进一步降低对运动信息进行编码的代价,已提出了利用相对于通常根据要编码的块周围的块的运动矢量所计算出的运动矢量预测结果的差来对运动矢量进行编码。

在H.264中,针对根据位于要编码的块的因果邻域(例如根据位于要编码的块的上方和左方的块)的运动矢量所计算出的中值预测结果来对运动矢量进行编码。仅对中值预测结果和当前块运动矢量之间的差(还被称为残差运动矢量)进行编码。

使用残差运动矢量的编码节省了若干位率,但需要解码器进行运动矢量预测结果的相同计算从而对要编码的块的运动矢量的值进行解码。

近来,已提出了诸如使用多个可能运动矢量预测结果等的进一步改进。被称为运动矢量竞争的该方法在于在几个运动矢量预测结果或候选之间判断哪个运动矢量预测结果使残差运动信息的编码代价(通常为率失真代价)最小。该残差运动信息包括残差运动矢量(即,要编码的块的实际运动矢量和所选择的运动矢量预测结果之间的差)、以及例如所选择的运动矢量预测结果的索引的编码值等的表示所选择的运动矢量预测结果的信息项。

在目前标准化期间的高效率视频编码(HEVC)中,已提出了使用如图1示意性示出的多个运动矢量预测结果:从位于要编码的块的邻域的块提取的3个所谓的空间运动矢量预测结果V1、V2和V3;基于三个空间运动矢量预测结果V1、V2和V3的分量所计算出的中值运动矢量预测结果;以及作为该序列的前一图像中的同一位置块(例如位于与图像N的块“编码中”相同的空间位置处的图像N-1的块)的运动矢量的时间运动矢量预测结果V0。当前在HEVC中,根据可用性的预定规则,从位于要编码的块的左方的块(V3)、位于上方的块(V2)、以及从位于要编码的块的各角部的块之一中提取3个空间运动矢量预测结果。该运动矢量预测结果选择方案被称为高级运动矢量预测(AMVP)。在图1的例子中,选择位于左上方的块的矢量V1

最终,获得了混合有空间预测结果和时间预测结果的5个运动矢量预测结果候选的集合。为了减少在位流中传送运动矢量预测结果的开销,通过除去重复的运动矢量、即具有相同值的运动矢量来缩减运动矢量预测结果的集合。例如,在图1的例示中,V1和V2相等,并且V0和V3也相等,因而应仅保持这四者中的两个(例如,V0和V1)作为运动矢量预测候选。在这种情况下,仅需要1位来向解码器指示运动矢量预测结果的索引。

可以基于预测结果的值来进一步缩减运动矢量预测结果的集合。在得知运动矢量残差和编码器的代价优化标准的情况下,一旦选择了最佳的运动矢量预测结果并且计算出运动矢量残差,可以从该预测集合中进一步除去尚未选择的候选。由于可以使用较少的位来对所选择的运动矢量预测结果的指示进行编码,因此充分缩减预测结果的集合使得获得信令开销。在极限的情况下,例如如果所有的运动矢量预测结果都相等,则可以将候选的集合缩减为1,因此无需将与所选择的运动矢量预测结果有关的任何信息插入位流。

概括而言,利用与运动矢量预测结果的差所进行的运动矢量的编码连同运动矢量预测结果候选的数量的缩减一起会导致压缩增益。然而,如上所述,对于给定要编码的块,运动矢量预测结果候选的数量的缩减基于该集合的运动矢量预测结果所取的值、特别是相邻块的运动矢量的值和同一位置块的运动矢量的值。此外,解码器需要能够对可能运动矢量预测结果的集合应用与编码器相同的分析,从而推知表示所选择的运动矢量预测结果所使用的位量、能够对运动矢量预测结果的索引进行解码、并且最终使用接收到的运动矢量残差对运动矢量进行解码。参考图1的示例,利用编码器将块“编码中”的运动矢量预测结果的集合缩减为V0和V1,因而将索引编码到一位上。在图像N-1的块“同一位置”在传输期间丢失的情况下,解码器无法获得V0的值,因此无法得出V0和V3相等。因此,解码器无法发现使用多少位来对块“编码中”的运动矢量预测结果的索引进行编码,结果解码器由于其无法发现索引编码在何处停止以及视频数据的编码在何处开始因此无法正确地解析片的数据。

因此,在有损通信网络上将位流传输至解码器的情况下,发送运动矢量预测结果所使用的位数依赖于运动矢量预测结果所取的值这一事实使得该方法非常容易受通信错误所影响。实际上,该方法需要了解运动矢量预测结果的值以在解码器处正确地解析位流。在包丢失的情况下,当某些运动矢量残差值丢失时,解码器无法判断使用多少位来对表示运动矢量预测结果的索引进行编码,因而无法正确地解析位流。这种错误可能会传播,由此造成在解码器接收到随后的未经预测的编码后的同步图像之前发生解码器的去同步。

期望即使在包丢失的情况下也至少能够在解码器处对编码位流进行解析,以使得随后可以应用某些去同步或错误隐藏。

在2010年10月7~15日于广州召开的视频编码联合组(JTC-VC)第三次会议上K.Sato所发布的文献JCTVC-C166r1,“TE11:Study on motion vector coding(experiment 3.3a and 3.3c)”中提出了仅使用预测结果集合内的来自同一片的空间运动矢量预测结果。该解决方案解决了在片丢失的情况下在解码器处进行解析的问题。然而,由于不再使用时间运动矢量预测结果,因此编码效率显著下降。因此,该解决方案在压缩性能方面不令人满意。



技术实现要素:

期望解决一个或多个现有技术的缺陷。

根据本发明的一个方面,提供一种用于将数字图像序列编码成位流的方法,其中图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的,所述方法包括以下步骤:针对要编码的图像部分获得运动信息预测结果的初始集合;测试所述初始集合的运动信息预测结果的数量(N;N1)是否低于目标数量,并且在低于所述目标数量的情况下,向所述初始集合添加一个或多个运动信息预测结果以生成运动信息预测结果的集合;以及从所生成的运动信息预测结果的集合中选择用于所述要编码的图像部分的运动信息预测结果,其中,所述初始集合的运动信息预测结果是具有从编码中图像或参考图像的图像部分获得的运动矢量的实际运动信息预测结果,以及用于添加的可能运动信息预测结果包括一个或多个其它实际运动信息预测结果,并且还包括不具有从所述编码中图像或所述参考图像的图像部分获得的运动矢量的一个或多个虚拟运动信息预测结果。

根据本发明的另一方面,提供一种用于对包括编码后的数字图像序列的位流进行解码的方法,其中图像的至少一部分是通过相对于参考图像的运动补偿来进行编码的,所述方法包括以下步骤:针对要解码的图像部分获得运动信息预测结果的初始集合;测试所述初始集合的运动信息预测结果的数量是否低于目标数量,并且在低于目标数量的情况下,向所述初始集合添加一个或多个运动信息预测结果以生成运动信息预测结果的集合;以及使用所生成的运动信息预测结果的集合来确定用于所述要解码的图像部分的运动信息预测结果,其中,所述初始集合的运动信息预测结果是具有从解码中图像或参考图像的图像部分获得的运动矢量的实际运动信息预测结果,以及用于添加的可能运动信息预测结果包括一个或多个其它实际运动信息预测结果,并且还包括不具有从所述解码中图像或所述参考图像的图像部分获得的运动矢量的一个或多个虚拟运动信息预测结果。

根据本发明的另一方面,提供一种用于将数字图像序列编码成位流的装置,其中图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的,所述装置包括以下部件:用于针对要编码的图像部分获得运动信息预测结果的初始集合的部件;用于测试所述初始集合的运动信息预测结果的数量是否低于目标数量、并且在低于目标数量的情况下向所述初始集合添加一个或多个运动信息预测结果以生成运动信息预测结果的集合的部件;以及用于从所生成的运动信息预测结果的集合中选择用于所述要编码的图像部分的运动信息预测结果的部件,其中,所述初始集合的运动信息预测结果是具有从编码中图像或参考图像的图像部分获得的运动矢量的实际运动信息预测结果,以及用于添加的可能运动信息预测结果包括一个或多个其它实际运动信息预测结果,并且还包括不具有从所述编码中图像或所述参考图像的图像部分获得的运动矢量的一个或多个虚拟运动信息预测结果。

根据本发明的另一方面,提供一种用于对包括编码后的数字图像序列的位流进行解码的装置,其中图像的至少一部分是通过相对于参考图像的运动补偿来进行编码的,所述装置包括以下部件:用于针对要解码的图像部分获得运动信息预测结果的初始集合的部件;用于测试所述初始集合的运动信息预测结果的数量是否低于目标数量、并且在低于目标数量的情况下向所述初始集合添加一个或多个运动信息预测结果以生成运动信息预测结果的集合的部件;以及用于使用所生成的运动信息预测结果的集合来确定用于所述要解码的图像部分的运动信息预测结果的部件,其中,所述初始集合的运动信息预测结果是具有从解码中图像或参考图像的图像部分获得的运动矢量的实际运动信息预测结果,以及用于添加的可能运动信息预测结果包括一个或多个其它实际运动信息预测结果,并且还包括不具有从所述解码中图像或所述参考图像的图像部分获得的运动矢量的一个或多个虚拟运动信息预测结果。

根据本发明的另一方面,提供一种计算机程序,其中所述计算机程序在运行在计算机上的情况下,使计算机执行如上所述的用于对数字视频信号进行编码的方法或者如上所述的用于对位流进行解码的方法。该程序可以存储在计算机可读存储介质上。

根据本发明的另一方面,提供一种用于将数字图像序列编码成位流的方法,其中图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的,所述方法包括以下步骤:针对要编码的图像部分获得运动信息预测结果的初始集合;测试所述初始集合的运动信息预测结果的数量是否低于目标数量,并且在低于所述目标数量的情况下,向所述初始集合添加一个或多个运动信息预测结果以生成具有受控多样性的运动信息预测结果的集合;以及从所生成的运动信息预测结果的集合中选择用于所述要编码的图像部分的运动信息预测结果。

在一个实施例中,所述初始集合的运动信息预测结果是具有从编码中图像或参考图像的图像部分获得的运动矢量的实际运动信息预测结果,以及用于添加的可能运动信息预测结果包括一个或多个其它实际运动信息预测结果,并且还包括不具有从所述编码中图像或所述参考图像的图像部分获得的运动矢量的一个或多个虚拟运动信息预测结果。

在一个实施例中,所述方法还包括以下步骤:测试所述初始集合的运动信息预测结果的数量是否低于所述目标数量,并且在“是”的情况下,首先添加一个或多个所述其它实际运动信息预测结果,然后再次测试在添加了所述其它实际运动信息预测结果之后运动信息预测结果的数量是否低于所述目标数量,并且在“是”的情况下,添加一个或多个所述虚拟运动信息预测结果。

在一个实施例中,至少一个所述虚拟运动信息预测结果是根据现有运动信息预测结果计算出的。

在一个实施例中,向现有运动信息预测结果的运动矢量加上补充矢量,其中所述补充矢量相对于所述现有运动信息预测结果的运动矢量的方向具有预先确定的方向。

在一个实施例中,所述补充矢量的大小依赖于所述现有运动信息预测结果的运动矢量的大小。

在一个实施例中,所述补充矢量具有与所述现有运动信息预测结果的运动矢量的各相应分量成比例的分量。

在一个实施例中,所述方法还包括以下步骤:对表示所选择的运动信息预测结果的信息项进行编码。

在一个实施例中,所述方法还包括以下步骤:在所述位流中发送所述目标数量。

在一个实施例中,所述方法还包括以下步骤:从所述初始集合中除去重复值。

根据本发明的另一方面,提供一种用于对包括编码后的数字图像序列的位流进行解码的方法,其中图像的至少一部分是通过相对于参考图像的运动补偿来进行编码的,所述方法包括以下步骤:针对要解码的图像部分获得运动信息预测结果的初始集合;测试所述初始集合的运动信息预测结果的数量是否低于目标数量,并且在低于目标数量的情况下,向所述初始集合添加一个或多个运动信息预测结果以生成具有受控多样性的运动信息预测结果的集合;以及从所生成的运动信息预测结果的集合中确定用于所述要解码的图像部分的运动信息预测结果。

在一个实施例中,所述方法还包括以下步骤:对表示所选择的用于所述要解码的图像部分的运动信息预测结果的信息项进行解码。

在一个实施例中,所述方法还包括以下步骤:使用解码后的信息项来从所生成的运动信息预测结果的集合中检索所选择的运动信息预测结果。

在一个实施例中,所述初始集合的运动信息预测结果是具有从解码中图像或参考图像的图像部分获得的运动矢量的实际运动信息预测结果,以及用于添加的可能运动信息预测结果包括一个或多个其它实际运动信息预测结果,并且还包括不具有从所述解码中图像或所述参考图像的图像部分获得的运动矢量的一个或多个虚拟运动信息预测结果。

在一个实施例中,所述方法还包括以下步骤:测试所述初始集合的运动信息预测结果的数量是否低于所述目标数量,并且在“是”的情况下,首先添加一个或多个所述其它实际运动信息预测结果,然后再次测试在添加了所述其它实际运动信息预测结果之后运动信息预测结果的数量是否低于所述目标数量,并且在“是”的情况下,添加一个或多个所述虚拟运动信息预测结果。

在一个实施例中,至少一个所述虚拟运动信息预测结果是根据现有运动信息预测结果计算出的。

在一个实施例中,向现有运动信息预测结果的运动矢量加上补充矢量,其中所述补充矢量相对于所述现有运动信息预测结果的运动矢量的方向具有预先确定的方向。

在一个实施例中,所述补充矢量的大小依赖于所述现有运动信息预测结果的运动矢量的大小。

在一个实施例中,所述补充矢量具有与所述现有运动信息预测结果的运动矢量的各相应分量成比例的分量。

在一个实施例中,所述方法还包括以下步骤:从所述位流获得所述目标数量。

在一个实施例中,所述方法还包括以下步骤:从所述初始集合中除去重复值。

本发明的其它方面提供一种编码所用的相应装置、解码所用的相应装置、以及相应的计算机程序和计算机可读存储介质。

根据本发明的另一方面,提供一种用于将数字图像序列编码成位流的方法,其中图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的,所述方法包括以下步骤:针对要编码的图像部分获得运动信息预测结果的第一集合;进行所述第一集合的运动信息预测结果的数量是否低于目标数量的第一测试,并且在低于所述目标数量的情况下,进行向所述第一集合添加一个或多个运动信息预测结果以获得运动信息预测结果的第二集合的第一添加处理;进行所述第二集合的运动信息预测结果的数量是否低于所述目标数量的第二测试,并且在低于所述目标数量的情况下,进行向所述第二集合添加一个或多个运动信息预测结果以生成具有受控多样性的运动信息预测结果的集合的第二添加处理;以及从所生成的运动信息预测结果的集合中选择用于所述要编码的图像部分的运动信息预测结果。

在一个实施例中,所述第一集合的运动信息预测结果是具有从编码中图像或参考图像的图像部分获得的运动矢量的实际运动信息预测结果,以及所述第一添加处理添加一个或多个其它实际运动信息预测结果,并且所述第二添加处理添加不具有从所述编码中图像或所述参考图像的图像部分获得的运动矢量的一个或多个虚拟运动信息预测结果。

在一个实施例中,至少一个所述虚拟运动信息预测结果是根据现有运动信息预测结果计算出的。

在一个实施例中,向现有运动信息预测结果的运动矢量加上补充矢量,其中所述补充矢量相对于所述现有运动信息预测结果的运动矢量的方向具有预先确定的方向。

在一个实施例中,所述补充矢量的大小依赖于所述现有运动信息预测结果的运动矢量的大小。

在一个实施例中,所述补充矢量具有与所述现有运动信息预测结果的运动矢量的各相应分量成比例的分量。

在一个实施例中,所述方法还包括以下步骤:对表示所选择的运动信息预测结果的信息项进行编码。

在一个实施例中,所述方法还包括以下步骤:在所述位流中发送所述目标数量。

在一个实施例中,所述方法还包括以下步骤:从所述初始集合中除去重复值。

根据本发明的另一方面,提供一种用于对包括编码后的数字图像序列的位流进行解码的方法,其中图像的至少一部分是通过相对于参考图像的运动补偿来进行编码的,所述方法包括以下步骤:针对要解码的图像部分获得运动信息预测结果的第一集合;进行所述第一集合的运动信息预测结果的数量是否低于目标数量的第一测试,并且在低于所述目标数量的情况下,进行向所述第一集合添加一个或多个运动信息预测结果以获得运动信息预测结果的第二集合的第一添加处理;进行所述第二集合的运动信息预测结果的数量是否低于所述目标数量的第二测试,并且在低于所述目标数量的情况下,进行向所述第二集合添加一个或多个运动信息预测结果以生成具有受控多样性的运动信息预测结果的集合的第二添加处理;以及从所生成的运动信息预测结果的集合中确定用于所述要解码的图像部分的运动信息预测结果。

在一个实施例中,所述方法还包括以下步骤:对表示所选择的用于所述要解码的图像部分的运动信息预测结果的信息项进行解码。

在一个实施例中,所述方法还包括以下步骤:使用解码后的信息项来从所生成的运动信息预测结果的集合中检索所选择的运动信息预测结果。

在一个实施例中,所述第一集合的运动信息预测结果是具有从解码中图像或参考图像的图像部分获得的运动矢量的实际运动信息预测结果,以及所述第一添加处理添加一个或多个其它实际运动信息预测结果,并且所述第二添加处理添加不具有从所述解码中图像或所述参考图像的图像部分获得的运动矢量的一个或多个虚拟运动信息预测结果。

在一个实施例中,至少一个所述虚拟运动信息预测结果是根据现有运动信息预测结果计算出的。

在一个实施例中,向现有运动信息预测结果的运动矢量加上补充矢量,其中所述补充矢量相对于所述现有运动信息预测结果的运动矢量的方向具有预先确定的方向。

在一个实施例中,所述补充矢量的大小依赖于所述现有运动信息预测结果的运动矢量的大小。

在一个实施例中,所述补充矢量具有与所述现有运动信息预测结果的运动矢量的各相应分量成比例的分量。

在一个实施例中,所述方法还包括以下步骤:从所述位流获得所述目标数量。

在一个实施例中,所述方法还包括以下步骤:从所述初始集合中除去重复值。

本发明的其它方面提供一种编码所用的相应装置、解码所用的相应装置、以及相应的计算机程序和计算机可读存储介质。

还期望提供如下一种方法,其中该方法使得即使在因传输损失而损坏的位流的情况下也能够在解码器处进行正确解析,同时保持良好的压缩效率。

为此,本发明涉及一种用于将数字图像序列编码成位流的方法,其中图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的。针对至少一个要编码的图像部分,所述方法包括以下步骤:

-获得所述要编码的图像部分要使用的运动信息预测结果的目标数量,以及

-生成包括所述目标数量的运动信息预测结果的运动信息预测结果的集合,其中所生成的集合的各运动矢量预测结果不同于所生成的集合的任何其它运动矢量预测结果。

有利地,本发明的方法使得能够系统地确定对与图像部分相关联的诸如运动矢量等的运动信息进行编码要使用的运动信息预测结果的目标数量,并且通过生成全部彼此不同的运动信息预测结果的集合来有利地改善压缩。使用固定的运动信息预测结果的目标数量的潜在开销由所选择的各种预测结果来补偿,从而有助于改善压缩率。不同的运动信息预测结果的目标数量与作为用于要编码的当前图像部分的运动信息预测结果所选择的诸如运动矢量等的运动信息的项的实际值无关地确定的并且是固定的。

本发明的实施例在例如使用AMVP的情况那样、初始生成的运动信息预测结果的数量先验未知的情况下是有效的。例如,在执行初始集合的缩减、并且通过缩减处理所除去的初始预测结果的数量是先验未知的情况下,本发明的实施例可用于确保运动信息预测结果的最终集合包括目标数量的运动信息预测结果。

根据实施例,编码方法还包括以下步骤:

-从所述所生成的运动信息预测结果的集合中选择用于所述要编码的图像部分的运动信息预测结果,以及

-基于所获得的所述目标数量来对表示所述所选择的运动信息预测结果的信息项进行编码。

有利地,可以针对要编码的当前块选择运动信息预测结果并且可以根据所确定的运动信息预测结果的数量对所选择的运动矢量预测结果进行编码。解码器可以系统地检索到运动信息预测结果的数量,由此即使在损失的情况下也可以在解码器处系统地对编码位流进行解析。

根据实施例,表示所述所选择的运动矢量预测结果的信息项是所生成的运动信息预测结果的集合中的所选择运动信息预测结果的索引,并且将该索引编码到依赖于所获得的所述目标数量的位数上。

根据实施例,在获得所述要编码的图像部分要使用的运动信息预测结果的目标数量的步骤中,针对数字图像的序列中的任何要编码的图像部分将所述目标数量设置得等于预定值。

本实施例的优点在于以下:在编码器和解码器这两者处,可以在无需任何辅助计算或信令开销的情况下容易地获得运动信息预测结果的目标数量。

根据另一实施例,在获得所述要编码的图像部分要使用的运动信息预测结果的目标数量的步骤中,针对给定要编码的图像部分,根据所述给定要编码的图像部分的编码信息来确定所述目标数量。

有利地,这种编码信息可以是编码参数,例如在将图像分割成可变大小的宏块以进行处理的情况下要编码的图像部分所属于的宏块的大小等。这种编码信息例如还可以是与要编码的图像部分相关联的编码模式。

根据又一方面,本发明涉及一种用于将数字图像序列编码成位流的装置,其中图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的。针对至少一个要编码的图像部分,所述装置包括:

-用于获得所述要编码的图像部分要使用的运动信息预测结果的目标数量的部件,以及

-用于生成包括所述目标数量的运动信息预测结果的运动信息预测结果的集合的部件,其中所生成的集合的各运动信息预测结果不同于所生成的集合的任何其它运动信息预测结果。

根据又一方面,本发明还涉及一种能够载入可编程设备的计算机程序产品,包括指令序列,其中所述指令序列用于在将所述计算机程序载入所述可编程设备并且由所述可编程设备来执行的情况下,实现如以上简要说明的用于对数字图像序列进行编码的方法。这种计算机程序可以是瞬态或非瞬态的。在实现中,该计算机程序可以存储在非瞬态计算机可读载体介质上。

用于对数字图像序列进行编码的装置、存储部件和计算机程序产品的特定特征和优点与数字视频信号编码方法的特征和优点类似,因而这里不进行重复。

根据又一方面,本发明还涉及一种用于对包括编码后的数字图像序列的位流进行解码的方法,其中图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的。针对至少一个所述要解码的图像部分,所述方法包括以下步骤:

-获得所述要解码的图像部分要使用的运动信息预测结果的目标数量,以及

-生成包括所述目标数量的运动信息预测结果的运动信息预测结果的集合,其中所生成的集合的各运动矢量预测结果不同于所生成的集合的任何其它运动矢量预测结果。

用于对位流进行解码的方法具有使得能够确定运动信息预测结果的目标数量并且使用这些数量的不同运动信息预测结果的优点。可以系统地检索到运动信息预测结果的目标数量,结果即使在传输错误的情况下也可以系统地解析位流。另一优点如下:在所有情况下,位流的解析简单,并且特别是与不使用解码器能够获得的预定目标数量的、自适应地缩减运动信息预测结果的数量的现有技术方法相比更为简单。

根据实施例,该方法还包括基于所获得的所述目标数量来对表示所选择的用于所述要解码的图像部分的运动信息预测结果的信息项进行解码的步骤。

有利地,如果在编码器处应用了依赖于运动信息预测结果的数量的编码的情况下,则即使在传输错误的情况下,也可以系统地对表示所选择的用于所述要解码的图像部分的运动信息预测结果的信息项进行解码。

根据又一方面,本发明还涉及一种用于对包括编码后的数字图像序列的位流进行解码的装置,其中图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的。针对至少一个所述要解码的图像部分,所述装置包括:

-用于获得所述要解码的图像部分要使用的运动信息预测结果的目标数量的部件,以及

-用于生成包括所述目标数量的运动信息预测结果的运动信息预测结果的集合的部件,其中所生成的集合的各运动矢量预测结果不同于所生成的集合的任何其它运动矢量预测结果。

根据又一方面,本发明还涉及一种计算机或微处理器能够读取的信息存储部件,其中该存储部件是能够移除的,并且存储有实现如以上简要说明的用于对位流进行解码的方法所用的计算机程序的指令。

根据又一方面,本发明还涉及一种能够载入可编程设备的计算机程序产品,包括指令序列,其中所述指令序列用于在将所述计算机程序载入所述可编程设备并且由所述可编程设备来执行的情况下,实现如以上简要说明的用于对位流进行解码的方法。这种计算机程序可以是瞬态或非瞬态的。在实现中,该计算机程序可以存储在非瞬态计算机可读载体介质上。

用于对位流进行解码的装置、存储部件和计算机程序产品的特定特征和优点与解码方法的特征和优点类似,因而这里不进行重复。

根据本发明的另一方面,提供一种用于将数字图像序列编码成位流的方法,其中图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的,所述方法包括以下步骤:生成具有受控多样性的运动信息预测结果的集合;以及从所述所生成的运动信息预测结果的集合中选择用于所述要编码的图像部分的运动信息预测结果。

受控多样性意味着该集合的运动信息预测结果彼此不同,但这些运动信息预测结果中的一个或多个从统计上有可能接近实际运动信息由此残差(实际运动信息和所关注的预测结果之间的差)小,因而能够高效地进行压缩。

所述方法可以包括以下步骤:

生成第一运动信息预测结果;

将一个或多个第一运动信息预测结果识别为种子预测结果;

基于种子预测结果来生成一个或多个第二运动信息预测结果;以及

根据第一和/或第二运动信息预测结果来形成运动信息预测结果的所述集合。

在这种情况下,第一运动信息预测结果可以是从统计上有望在压缩效率方面得到良好结果的预测结果。然后,可以使用基于第一预测结果的第二运动信息预测结果来以有组织或系统方式研究第一预测结果附近的预测结果空间内的其它预测结果。这些预测结果也有望得到良好结果,并且研究的预测结果越多,发现与实际运动信息良好匹配的机会越大。

在一个实施例中,基于所关注的第一运动信息预测结果的重要度来将至少一个第一运动信息预测结果识别为这种种子预测结果。

该重要度可以依赖于所关注的第一运动信息预测结果在这些第一运动信息预测结果中出现的次数。次数越大,该预测结果被视为越重要并且在该集合中越有可能使用该预测结果。除了寻找相同的预测结果(重复值)以外,寻找相近匹配也是有效的。

可选地,重要度可以依赖于所关注的第一运动信息预测结果表示第一运动信息预测结果整体的程度的度量。例如,在对第一运动信息预测结果求平均的情况下,平均预测结果和给定的第一运动信息预测结果之间的差或距离是该给定预测结果表示第一运动信息预测结果整体的程度的度量。

控制多样性的一个方式是通过从所述种子预测结果的其中一个中加上或减去偏移量来生成至少一个所述第二运动信息预测结果。该偏移量可以是固定的。还可以是伪随机值,只要对于解码器可利用与编码器相同的种子值即可。在种子预测结果是矢量的情况下,还可以通过向该种子预测结果添加例如具有固定大小和相对于该种子预测结果的方向的预定方向的另一矢量来控制多样性。

多个所述第二运动信息预测结果可以是基于同一所述种子预测结果所生成的。在运动信息预测结果是各自具有X分量和Y分量的矢量的情况下,可以通过相对于同一所述种子预测结果的一个或这两个所述分量加上和/或减去偏移量来获得多个第二运动信息预测结果。例如,可以相对于同一种子预测结果加上和减去同一偏移量。在种子预测结果是具有X分量和Y分量的矢量的情况下,存在相对于同一种子预测结果的X分量和Y分量的其中一个或这两个加上/减去偏移量的多个排列。这是在不会产生大的处理负荷的情况生成受控多样性的高效方式。

控制多样性的另一方式是通过形成不同对(或其它组合)的第一运动信息预测结果的平均值来生成多个第二运动信息预测结果。例如,在第一运动信息预测结果为V1、V2和V3的情况下,可以根据V1&V2、V2&V3和V3&V1的平均值形成3个第二运动信息预测结果。还可以形成相同的第一运动信息预测结果的不同加权组合作为不同的第二运动信息预测结果。

第一运动信息预测结果可以是或者包括与编码中的图像部分具有预定的空间和/或时间关系的图像部分相关联的运动信息预测结果。例如,AMVP中使用的运动信息预测结果可以是第一运动信息预测结果。这些运动信息预测结果是种子预测结果的良好源。

在另一实施例中,所述方法包括以下步骤:

生成第一运动信息预测结果;

检查所生成的第一运动信息预测结果之间的差;以及

基于这些差来从运动信息预测结果的所述集合中排除一个或多个第一运动信息预测结果。

通过考虑到第一运动信息预测结果之间的差,可以对该集合的运动信息预测结果的多样性进行控制。在这种情况下,无需在第一运动信息预测结果中识别种子预测结果以及基于这些种子预测结果来生成第二运动信息预测结果。例如,这在初始可利用充分高的数量的第一运动信息预测结果的情况下可以是有效的。

例如,作为控制多样性的方式,可以除去相对于另一第一运动信息预测结果的差最小的第一运动信息预测结果。可以根据需要重复该处理,以连续除去变化较少的预测结果。

在本发明的该方面中,重要的是要注意所述集合中的运动信息预测结果的数量可以是可变的。

然而,与本发明的其它基本方面相同,至少针对要编码的给定图像部分或者即使针对所有图像部分,所述集合中的运动信息预测结果的数量可以是预先确定的(目标数量)。这使得不仅可以实现该集合的预测结果中的受控多样性,而且还可以解决引言部分所提到的解析问题。

本发明的该方面还提供一种相应的解码方法、相应的编码装置和解码装置、以及使得进行编码和解码的程序。

根据又一方面,本发明涉及一种用于将数字图像序列编码成位流的方法,其中图像的至少一部分是通过相对于参考图像部分的运动补偿来进行编码的。针对至少一个要编码的图像部分,所述方法包括以下步骤:

-获得所述要编码的图像部分要使用的运动矢量预测结果的第一集合,以及

-根据所述运动信息预测结果的第一集合来生成运动信息预测结果的第二集合,该所生成的集合的各运动矢量预测结果不同于所生成的运动矢量预测结果的第二集合的任何其它运动矢量预测结果,其中第二集合的至少一个运动矢量预测结果是根据第一集合的所选择的运动矢量预测结果计算出的。

有利地,所生成的运动矢量预测结果的第二集合用于对与要编码的图像部分相关联的运动矢量进行编码。该运动矢量预测结果的第二集合包括所生成的(并且有可能是所选择的)各种不同运动矢量预测结果,从而提高压缩效率。

根据实施例,在选择步骤中,根据重要度值来选择第一集合的运动矢量预测结果。

根据实施例,该编码方法包括用于计算与第一集合的各运动矢量预测结果相关联的重要度值的步骤。

根据实施例,在选择步骤中,根据第一集合的运动矢量预测结果之间的距离来选择第一集合的运动矢量预测结果。

用于选择运动矢量预测结果以进一步生成附加或虚拟运动矢量预测结果的各实施例使得能够应用受控多样性选择,从而具有提高压缩效率的优点。实际上,使用根据初始集合的重要运动矢量预测结果所计算出的运动矢量预测结果使得能够更加精确地表示要编码的当前图像部分的运动矢量。此外,在最终集合中具有固定或目标数量的预测结果并非是必需的。

根据实施例,运动矢量预测结果的第一集合中的运动矢量预测结果是与编码中图像和/或参考图像中的要编码的图像部分相关联的运动矢量。该第一集合可以由AMVP中使用的预测结果构成或者可以包括AMVP中使用的预测结果。

附图说明

在以下参考附图所进行的仅以非限制性示例的方式给出的说明中将出现其它特征和优点,其中:

(前面所述的)图1示意性示出运动矢量预测方案中所使用的运动矢量预测结果的集合;

图2是被配置为实现本发明的实施例的处理装置的图;

图3是根据本发明的实施例的编码器的框图;

图4示出根据本发明的实施例的解码器的框图;

图5详细说明根据第一实施例的运动矢量预测结果的集合的判断;

图6详细说明根据第二实施例的运动矢量预测结果的集合的判断;

图7示意性示出运动矢量预测结果的第二集合;以及

图8示意性示出坐标系中的运动矢量。

具体实施方式

图2示出被配置为实现本发明的一个实施例的处理装置1000的图。该装置1000例如是微计算机、工作站或轻薄便携式装置。

装置1000包括通信总线1113,其中优选该通信总线1113连接有以下组件:

-诸如微处理器等的表示为CPU的中央处理单元1111;

-表示为ROM的只读存储器1107,其能够容纳实现本发明所用的计算机程序;

-表示为RAM的随机存取存储器1112,其能够容纳本发明的方法的可执行代码以及如下寄存器,其中这些寄存器被配置为记录实现对数字图像序列进行编码的方法和/或对位流进行解码的方法所需的变量和参数;以及

-通信接口1102,其连接至传输要处理的数字数据所经由的通信网络1103。

可选地,装置1000还可以具有以下组件:

-诸如硬盘等的数据存储部件1104,其能够容纳实现本发明的程序以及在本发明的实现期间所使用或所产生的数据;

-盘1106所用的盘驱动器1105,其中该盘驱动器被配置为从盘1106读取数据或者将数据写到所述盘上;

-屏幕1109,用于利用键盘1110或任何其它指示部件来显示数据以及/或者用作与用户的图形界面。

装置1000可以连接至例如数字照相机1100或麦克风1108等的各种外围设备,其中这些外围设备各自连接至输入/输出卡(未示出)从而向装置1000供给多媒体数据。

通信总线提供装置1000内所包括的或连接至装置1000的各种元件之间的通信和互操作性。该总线的表示并非限制性的,并且特别地,中央处理单元能够直接地或者利用装置1000的其它元件向装置100的任意元件通信指示。

盘1106可以由例如(可重写或不可重写的)致密盘(CD-ROM)、ZIP盘或存储卡等的任何信息介质以及概括而言由信息存储部件来替换,其中该信息存储部件可以由集成于该装置内或没有集成于该装置内的可能能够移除的微计算机或微处理器来读取,并且被配置为存储如下的一个或多个程序,其中执行该一个或多个程序使得能够实现根据本发明的对数字图像序列进行编码的方法和/或对位流进行解码的方法。

可执行代码可以存储在只读存储器1107中、硬盘1104上或者例如前面所述的盘1106等的可移除数字介质上。根据变形例,程序的可执行代码可以利用通信网络1103经由接口1102接收到,从而在执行之前存储在诸如硬盘1104等的装置1000的存储部件的其中一个中。

中央处理单元1111被配置为控制和指导根据本发明的程序的指令或软件代码的一部分的执行,其中这些指令存储在上述存储部件的其中一个中。在通电时,将存储在非易失性存储器中(例如硬盘1104上或只读存储器1107中)的程序传递至随机存取存储器1112,然后该随机存取存储器1112容纳程序的可执行代码以及用于存储实现本发明所需的变量和参数的寄存器。

在本实施例中,该装置是使用软件来实现本发明的可编程设备。然而,可选地,本发明可以以硬件形式(例如,以专用集成电路或ASIC的形式)来实现。

图3示出根据本发明的实施例的编码器的框图。该编码器由所连接的模块来表示,其中各模块被配置为例如以对装置1000的CPU 1111要执行的编程指令的形式来执行实现本发明的实施例的方法的相应步骤。

编码器30接收到原始的数字图像序列i0~in 301作为输入。各数字图像由已知为像素的一组样本来表示。

编码器30输出位流310。

位流310包括多个编码单位或片,其中各片包括:片头,其包括对片进行编码所使用的编码参数的编码值;以及片本体,其包括编码视频数据。

将所输入的数字图像分割成块(302),其中这些块是图像部分并且可以具有可变大小(例如,4×4、8×8、16×16、32×32)。针对各输入块选择编码模式。存在空间预测编码或帧内编码以及时间预测编码或帧间编码这两类编码模式。对可能的编码模式进行测试。

模块303实现帧内预测,其中利用根据给定要编码的块附近的像素计算出的预测结果来预测该要编码的块。在选择帧内编码的情况下,对所选择的帧内预测结果的指示和给定块与其预测结果之间的差进行编码。

时间预测由模块304和305来实现。首先,选择一组参考图像316中的参考图像,并且利用运动估计模块304来选择该参考图像中的作为最接近要编码的给定块的区域的部分(还被称为参考区域)。利用运动补偿模块305来计算所选择的参考区域和给定块之间的差(还称为残差块)。所选择的参考区域由运动矢量来表示。

在选择帧间预测的情况下,对与运动矢量和残差块有关的信息进行编码。为了进一步降低比特率,利用相对于运动矢量预测结果的差来对运动矢量进行编码。利用运动矢量预测和编码模块317来从运动矢量字段318获得运动矢量预测结果(还称为运动信息预测结果)的集合。

有利地,如以下参考图5和6更详细地所述,生成用于选择最佳运动矢量预测结果以对当前运动矢量进行编码的运动矢量预测结果的集合。对于给定要编码的当前块,设置预定数量Nmax的运动矢量预测结果,结果可以使用预定的位数来对作为表示所选择的运动矢量预测结果的信息项的、所选择的运动矢量预测结果的索引进行编码。即使在丢失的情况下,解码器也可以检索到该预定的位数,因此确保解码器即使在错误或丢失的情况下也能够对位流进行解析。这Nmax个运动矢量预测结果根据各实施例被选择为全部彼此不同,从而提高了压缩效率。

根据诸如块大小或编码模式等的编码参数,可以针对整个序列、针对该序列的一组图像或者以块水平应用预定数量Nmax的运动矢量预测结果和用于对运动矢量预测结果的索引进行编码的相应的位数的选择。例如,针对使用对残差块进行编码的帧间预测而进行编码的块,可以使用第一预定数量Nmax1的运动矢量预测结果,并且针对使用仅对运动矢量进行编码而没有对残差块进行编码的SKIP模式而进行编码的块,可以使用第二预定数量Nmax2的运动矢量预测结果。例如,可以通过将运动矢量预测结果的各数量Nmax1和Nmax2插入诸如片头等的头或者任何适当的元数据字段来在位流中发送这些数量。

编码器30还包括编码模式的选择的模块306,其中该模块306使用诸如率失真标准等的编码代价标准来判断在空间预测模式和时间预测模式中哪个模式是最佳模式。将变换307应用于残差块,然后所获得的变换数据由模块308进行量化并且由模块309进行熵编码。最后,将要编码的当前块的编码残差块连同与所使用的预测结果有关的信息一起插入位流310。对于以“SKIP”模式编码后的块,仅将该预测结果的参考编码在位流中,而无任何残差块。

编码器30还进行编码图像的解码从而产生后续图像的运动估计所用的参考图像。模块311对量化数据进行逆量化,之后进行逆变换312。逆运动预测模块313使用预测信息来判断哪个预测结果用于给定块,并且逆运动补偿模块314实际将模块312所获得的残差加至从一组参考图像316获得的参考区域。可选地,应用去块滤波器315以除去结块效果并且提高解码图像的视觉质量。在解码器处应用相同的去块滤波器,以使得在不存在传输损失的情况下,编码器和解码器应用相同的处理。

图4示出根据本发明的实施例的解码器的框图。该解码器由所连接的模块来表示,其中各模块被配置为例如以对装置1000的CPU 1111要执行的编程指令的形式执行实现本发明的实施例的方法的相应步骤。

解码器40接收包括编码单位的位流401,其中每一个编码单位包括包含与编码参数有关的信息的头以及包含编码视频数据的本体。如参考图3所述,对编码视频数据进行熵编码,并且按预定的位数针对给定块对运动矢量预测结果的索引进行编码。对接收到的编码视频数据进行熵解码(402),去量化(403),然后应用逆变换(404)。

特别地,在接收到的编码视频数据与要编码的当前块的残差块相对应的情况下,解码器也对来自该位流的运动预测信息进行解码,从而得到编码器所使用的参考区域。

模块410对通过运动预测编码后的各当前块应用运动矢量解码,其中该运动矢量解码包括确定所使用的运动矢量预测结果的数量Nmax并且检索按根据Nmax的位数编码后的运动矢量预测结果索引。与图3的模块317类似,运动矢量解码模块410生成Nmax个运动矢量预测结果的集合。以下参考图5和6所述的实施例同样适用。在毫无丢失地接收到位流的情况下,解码器生成与编码器完全相同的运动矢量预测结果的集合。在丢失的情况下,可能无法生成运动矢量预测结果的集合并且因此无法正确地对与当前块相关联的运动矢量进行解码。然而,由于解码器可以系统地检索到对运动矢量预测结果的索引进行编码所使用的位数,因此即使在丢失的情况下也总是可以进行位流的解析。

一旦获得了当前块的运动矢量预测结果的索引,则在没有发生丢失的情况下,可以对与当前块相关联的运动矢量的实际值进行解码并且使用该实际值来应用逆运动补偿(406)。从参考图像(408)提取由解码后的运动矢量表示的参考区域以最终应用逆运动补偿406。

在应用了帧内预测的情况下,利用模块405应用逆帧内预测。

最终,获得了解码块。与在编码器处应用的去块滤波器315类似,应用去块滤波器407。最终,解码器40提供解码后的视频信号409。

图5详细说明本发明的第一实施例中的运动矢量预测结果或运动矢量候选的集合的生成。图5所示的算法的所有步骤可以以软件形式实现并且由装置1000的中央处理单元1111来执行。

图5示出适用于具有在参考图像中指定参考区域的关联运动矢量的给定要编码的当前块的流程图。

首先,在步骤S500中获得运动矢量预测结果的初始集合L1。该集合L1包括N个候选。在实施例中,运动矢量预测结果的初始集合包括根据参考图1已经说明的运动矢量预测方案AMVP所选择的运动矢量候选(例如,图1的矢量V0~V3以及根据V1、V2和V3计算出的中值矢量)。因此,N的最大值为5。

优选地,运动矢量预测结果的初始集合L1仅包含彼此不同的运动矢量。以图1为例,应仅将运动矢量V0、V1和中值矢量保持在L1中,并且运动矢量预测结果的数量为N=3。

在可选实施例中,可以应用用于选择已计算出的运动矢量、并且根据可用的运动矢量计算其它运动矢量(即,平均值、中间值等)以形成运动矢量预测结果的初始集合L1的任何其它方案。

在又一可选实施例中,运动矢量预测结果的初始集合L1为空并且N=0。

在以下的步骤S502中,获得要使用的候选运动矢量预测结果的目标数量Nmax。Nmax可以是针对要编码的整个数字图像序列预先确定的(例如,Nmax=4),或者可以根据要编码的当前块或该要编码的当前块所属于的编码单位(例如,片)的编码参数来选择的。

例如,数量Nmax可以依赖于应用于处理中的当前块所属于的宏块的变换的大小:例如,对于施加于2p+1×2p+1的块的变换,Nmax=p。

在本实施例中对运动矢量预测结果的索引进行编码要使用的位数k与Nmax直接有关:k=INTsup(log2(Nmax)),其中INTsup(x)是紧接着值x的整数。优选地,Nmax应当是2的幂(Nmax=2k),从而使用能够在k位上编码的所有索引。有利地,使用发信令所使用的所有位从而能够指定各种运动矢量预测结果并且提高压缩。

可选地,在确定了不同的运动矢量预测结果的数量Nmax之后,可以使用表示运动矢量预测结果的索引的任意类型的编码。特别地,可以使用诸如霍夫曼(Huffman)编码或算术编码等的任意类型的熵编码。此外,还可以使用诸如Rice-Golomb或一元编码等的前缀型编码来对索引进行编码。

接着,在步骤S503中测试集合L1中的运动矢量预测结果的数量N是否高于Nmax

在回答为肯定的情况下,在测试S503之后进入从L1中选择运动矢量预测结果候选的步骤S504,之后在步骤S506中从L1中除去所选择的运动矢量预测结果候选以形成运动矢量预测结果的修改集合L2。

根据例如距离标准的除去标准来应用步骤S504的选择。例如,集合L1包括运动矢量预测结果{V1,….,VN},其中如图8所示,各运动矢量预测结果是由其在坐标系的X轴和Y轴上的分量或坐标所表示的矢量。

在实施例中,步骤S504通过如下计算距离来确定L1的各矢量Vk和除Vk自身以外的各其它矢量Vn之间的距离:d(Vk,Vn)=|Vkx-Vnx|+|Vky-Vny|,其中|a|表示a的绝对值。以图8为例,矢量V的坐标为(3,2),矢量V’的坐标为(4,2)并且V”的坐标为(3,3)。在该示例中,d(V,V’)=d(V,V”)=1,因而V’和V”相对于矢量V位于相同距离处,而d(V’,V”)=2。

可选地,可以应用距离的计算所使用的任何其它类型的度量。

得到d(Vp,Vq)的最小距离表示集合L1中的两个最近矢量Vp、Vq,因此选择这两个矢量的其中一个以进行除去。针对这两个矢量的其中一个的选择可以基于这两个矢量中的每一个到修改集合L1中的剩余运动预测矢量的距离:选择Vp和Vq中的相对于集合L1中的其它矢量的距离最小的矢量来进行除去。

效果是确保修改集合L2中的剩余矢量之间的距离最大,从而使得能够使用尽可能不同或多样的运动矢量预测结果。

在除去了所选择的矢量之后,N的值递减(S508),然后将N与Nmax进行比较(S510)。在N的值尚未达到Nmax的情况下(针对测试S510的回答为“否”),重复步骤S504~S510。否则,在N达到Nmax的情况下,在步骤S510之后进入以下所述的步骤S522。

在针对测试S503的回答为“否”的情况下,测试S512检查N是否低于Nmax。在回答为否定的情况下、即在N=Nmax的情况下,在测试S512之后进入以下所述的步骤S522。

在针对测试S512的回答为“是”的情况下、即在N严格低于Nmax的情况下,在测试S512之后进入步骤S514,其中该步骤S514获得或生成附加运动矢量预测结果候选。实际上,从运动矢量预测结果的初始集合L1开始,可以按预定顺序添加其它候选作为运动矢量预测结果,以形成运动矢量预测结果的修改集合L2。以图7为例,可以添加块710、720、730和740的运动矢量作为可能运动矢量预测结果。此外,可以添加S500中没有选择的770、760、750中的两个预测结果作为可能运动矢量预测结果。

针对各可能运动矢量预测结果候选MV,检查运动矢量预测结果MV是否不同于已存储在集合L2中的所有运动矢量预测结果候选。

在例如作为图7的块710、720、730、740、750、760和770的运动矢量所考虑的各可能运动矢量候选等于集合L2的运动矢量预测结果的情况下,在步骤S514中计算新的“虚拟”运动矢量预测结果候选。

这些运动矢量预测结果候选由于不是当前图像或参考图像的其它块的运动矢量因而被称为虚拟的。这些虚拟运动矢量预测结果例如是通过添加偏移量来根据现有运动矢量预测结果计算出的。例如,根据坐标为(MVx,MVy)的集合L2的运动矢量MV,可以通过向其坐标加上/减去偏移量off来计算出四个虚拟运动矢量预测结果:MV’(MVx±off,MVy±off)。通常,可以将off设置为等于1或2。

可选地,可以应用运动矢量预测结果MV的分量的其它变形以获得虚拟运动矢量预测结果,从而获得相对于现有运动矢量预测结果不同的运动矢量预测结果,从而增加压缩效率。

例如,可以分别使用两个值offx和offy来独立修改运动矢量MV的分量,并且可以将offx或offy设置为0。

在实施例中,offx和offy这两者与相应的分量成比例:offx=aMVx并且offy=bMVy,其中a和b通常小于0.5。在需要的情况下,将修改后的坐标MVx和MVy四舍五入为最近整数值,从而表示像素的网格上的位移。

在实施例中,将预定规范的补充运动矢量加至矢量MV,其中该补充矢量具有与运动矢量MV相同的方向,如图8所示:将补充矢量850加至矢量820。

在又一可选实施例中,如下计算集合L2的运动矢量的方差:

其中,表示L2的矢量的MVx坐标的平均值并且表示L2的矢量的MVy坐标的平均值。然后,通过将计算出的值var与预定阈值T进行比较来选择偏移量off。T可以等于50/L2。在var低于T的情况下,值off小(例如off=1);在var高于T的情况下,将off设置为较大值(例如off=3)。此外,同样在本实施例中,可以针对各分量计算不同的值offx或offy。

在步骤S516中将步骤S514中获得的一个运动矢量预测结果添加至运动矢量预测结果的集合L2,并且数量N增加1(步骤S518)。

接着,在步骤S520中检查N是否等于Nmax。在回答为否定的情况下,重复步骤S514~S520。

在回答为肯定的情况下,达到了所确定的运动矢量预测结果候选的目标数量Nmax,并且在步骤S520之后在编码器处进行从集合L2中选择当前块的最佳运动矢量预测结果的步骤S522。例如,应用率失真优化标准以选择最佳运动矢量预测结果MVi,从而对当前块的运动矢量进行编码。

在编码器处,在步骤S524中,对运动残差(即,当前块的运动矢量和所选择的运动矢量预测结果之间的差)、以及所选择的运动矢量预测结果的指示进行编码。例如,使用k=INTsup(log2(Nmax))位来对L2的所选择的运动矢量预测结果MVi的索引i进行编码。

可选地,可以应用索引i的熵编码。

在又一可选例中,可以使用诸如Rice-Golomb编码等的前缀型编码来对索引i进行编码,其中使用之后跟着“0”的i个“1”来对各值i进行编码。

在无需进行步骤S522和S524的情况下,图5的算法还可以通过解码器生成给定块的运动矢量预测结果或运动矢量候选的集合来实现。

在解码器处,在得知Nmax并由此得知对索引i进行了编码的位数k的情况下,从位流获得针对给定要解码的块的所选择的运动矢量预测结果MVi的索引i。同样地实现步骤S500~S518以获得运动矢量预测结果的集合L2,由此从位流解码得到的索引i指定编码器实际使用的运动矢量预测结果。

在传输期间发生损失的情况下,由于解码器可以系统地检索到数量Nmax,因此即使根据包损失、在解码器处可能无法获得运动矢量预测结果的完整集合L2,也可以系统地对接收到的位流进行解析以提取指定所选择的运动矢量预测结果的索引i。

图6详细说明本发明的第二实施例中的运动矢量预测结果或运动矢量候选的集合的生成。图6所示的算法的所有步骤可以以软件形式来实现并且由装置1000的中央处理单元1111来执行。

图6示出适用于具有在参考图像中指定参考区域的关联运动矢量的给定要编码的当前块的流程图。

首先,与图5的步骤S502类似,在步骤S600中确定要使用的运动矢量预测结果候选的目标数量Nmax

在实施例中,Nmax是2k的形式,以使得可以在k位上编码的各索引值与可能运动矢量预测结果相对应。

例如,为了使用提出5个运动矢量预测结果的AMVP方案的所有运动矢量预测结果,需要3位来对运动矢量预测结果的索引进行编码。在这种情况下,优选为Nmax=23=8。

在步骤S602中,获得运动矢量预测结果候选的初始集合L1。例如,选择AMVP的N=5个运动矢量预测结果的初始集合。

对运动矢量预测结果的初始集合应用缩减处理以除去重复值,从而获得包含N1个元素的运动矢量预测结果的缩减集合。优选地,将缩减处理之后的各剩余矢量的重复值的数量记录和存储在存储器中以随后在以下所述的步骤S612中使用。

接着,检查N1是否高于或等于运动矢量预测结果的目标数量Nmax(测试S606)。可以指出,针对该测试的肯定结果仅在算法以运动矢量的数量比Nmax大的运动矢量预测结果的第一集合开始的情况下发生。在回答为肯定的情况下,在步骤S606之后进入步骤S630,其中该步骤S630选择集合L1的最初Nmax个运动矢量预测结果候选以形成运动矢量预测结果的集合L2。

在回答为否定的情况下,即在N1低于Nmax的情况下,必须利用附加运动矢量预测结果来补充运动矢量预测结果的该集合。

在步骤S608中,获得运动矢量预测结果候选的第二集合L1’。

运动矢量预测结果候选的第二集合L1’包括第一集合L1的剩余运动矢量预测结果以及例如与如图7所示的参考图像的块710、720、730和740的运动矢量相对应的附加运动矢量。此外,可以添加S600中没有选择的770、760、750中的两个预测结果作为可能运动矢量预测结果。集合L1’的各运动矢量预测结果具有相应的索引。

接着,在步骤S610中向运动矢量预测结果的第二集合应用缩减处理以获得N2个矢量的运动矢量预测结果的缩减第二集合L1”。该缩减处理除去重复值,由此L1”的所有运动矢量预测结果彼此不同。将L1”中所保持的各矢量的重复值的数量记录和存储在存储器中以随后在以下所述的步骤S612中使用。

然后,在步骤S628中检查运动矢量预测结果的数量N2是否高于或等于Nmax。在回答为肯定的情况下,在步骤S628之后进入已经说明的步骤S630。

在回答为否定的情况下,需要向运动矢量预测结果的缩减第二集合L1”添加更多的运动矢量预测结果,以获得Nmax个运动矢量预测结果的最终集合。

在测试S628之后,在回答为否定的情况下,在步骤S612中向运动矢量预测结果的缩减第二集合L1”的各剩余运动矢量预测结果候选指派重要度值。

在可选实施例中,在针对测试S606的回答为否定的情况下,在测试S606之后直接进入步骤S612。

在本实施例中,使用在步骤S604和S610期间计算和存储的给定运动矢量预测结果的重复值的数量来将重要度值作为给定运动矢量预测结果的重复值的数量进行计算。以图1为例,两个矢量V0和V3相等,因而矢量V0的重要度值等于2。

在可选实施例中,可以将重要度值作为相对于所考虑的矢量的集合中的代表矢量(诸如该集合的矢量的平均值或该集合的矢量的中间值等)的距离的函数来计算。然后,可以将重要度作为该集合Vn的给定矢量相对于代表矢量的距离的倒数来计算:矢量Vn越接近该集合的代表值,Vn的重要度越高。

然后,在步骤S614中,根据重要度值递减的顺序对剩余的N2个运动矢量预测结果候选排序。在几个运动矢量预测结果具有相同的重要度值的情况下,可以根据这些运动矢量预测结果的索引的递增顺序来对它们排序。

向重新排序后的运动矢量预测结果重新指派递增索引{V0,V1,…,VN2-1}。

在下一步骤S616中,将变量n初始化为0并且将变量N初始化为N2,这是重新排序后的集合中的运动矢量预测结果的当前数量。

接着,在步骤S616之后的步骤S618中,向重新排序后的集合添加虚拟运动矢量预测结果候选。在本实施例中,根据基于重要度排序后的剩余运动矢量预测结果来计算虚拟运动矢量预测结果。考虑重新排序后的集合的索引n的运动矢量预测结果(坐标为(Vnx,Vny)的Vn)。根据Vn,可以通过向Vn的一个或两个坐标连续加上+off和-off来计算由坐标所定义的以下列出的8个虚拟运动矢量预测结果:{(Vnx+off,Vny),(Vnx-off,Vny),(Vnx+off,Vny+off),(Vnx+off,Vny-off),(Vnx-off,Vny+off),(Vnx-off,Vny-off),(Vnx,Vny+off),(Vnx,Vny-off)}。

可以使用从运动数量预测结果Vn开始的虚拟运动矢量预测结果(特别是以上针对图5的步骤S514所述的替代值)的任何替代计算。

将虚拟运动矢量预测结果的该列表添加至运动矢量预测结果的当前集合。

在步骤S620中除去重复值。

在除去了可能的重复值之后,在步骤S622中将值N更新为运动矢量预测结果的剩余数量。

接着,在步骤S624中检查N是否高于或等于Nmax。在回答为否定的情况下,在步骤S624之后进行使值n增加1的步骤S626,并且重复步骤S618~S624。

在针对步骤S624的回答为肯定的情况下,获得了足够的运动矢量预测结果。在步骤S624之后进入步骤S630,其中在该步骤S630中,选择最初Nmax个运动矢量候选以构成Nmax个矢量的运动矢量预测结果的最终集合L2。

在编码器处,在步骤S630之后进入步骤S632,其中在该步骤S632中,与图5的步骤S522类似,根据诸如率失真标准等的预定标准来在当前块的运动矢量预测结果的集合中选择最佳运动矢量预测结果MVi。

在步骤S632之后进入步骤S634,其中在该步骤S634中,与图5的步骤S524类似,使用运动矢量预测结果MVi来对当前块的运动矢量进行编码。例如,使用k位来对运动矢量预测结果MVi的索引i进行编码,其中k是根据Nmax计算出的、即k=INTsup(log2(Nmax))。

可选地,可以应用索引i的熵编码。

在又一可选例中,可以使用诸如Rice-Golomb编码等的前缀型编码来对索引i进行编码,其中使用之后跟着“0”的i个“1”来对各值i进行编码。

在解码器侧,除了省略了步骤S632和S634以外,图6的算法还可以通过解码器生成给定块的运动矢量预测结果或运动矢量候选的集合来实现。

在解码器处,在得知Nmax并由此得知对索引i进行了编码的位数k的情况下,从位流获得给定要编码的块的所选择的运动矢量预测结果MVi的索引i。类似地执行步骤S600~S630以获得运动矢量预测结果的集合L2,由此从位流解码得到的索引i指定编码器实际使用的运动矢量预测结果。

在传输期间发生损失的情况下,由于解码器可以系统地检索到数量Nmax,因此即使根据包丢失、在解码器处可能无法获得运动矢量预测结果的完整集合L2,也可以系统地对接收到的位流进行解析以提取指定所选择的运动矢量预测结果的索引i。

上述实施例基于输入图像的块分割,但更通常地,可以考虑要编码或解码的任何类型的图像部分(特别是矩形部分或者更通常为几何部分)。

可以设想例如以下等的其它可选实施例:以包括比被确定为Nmax的运动矢量预测结果的目标数量大的N个矢量的运动矢量预测结果候选的大集合开始,并且应用聚类算法以缩减矢量的集合。例如,可以应用分割以根据该集合的矢量之间的预先定义的距离来将该集合缩减为该集合的Nmax个最具代表性的矢量。

更通常地,本领域技术人员可以容易地想到的上述实施例的任何变形或改进均应被视为落在本发明的范围内。

本申请要求2011年1月12日提交的英国专利申请1100462.9的优先权,在此通过引用包含其全部内容。

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