根据运动信息压缩方案通过层间运动信息预测对图像进行编码或解码的方法和设备与流程

文档序号:16889442发布日期:2019-02-15 22:56阅读:155来源:国知局
根据运动信息压缩方案通过层间运动信息预测对图像进行编码或解码的方法和设备与流程

本发明通常涉及可分级视频编码和解码领域,尤其涉及将扩展高效率视频编码(hevc)标准的可分级视频编码和解码。更特别地,本发明涉及用于可分级视频编码器和解码器中的运动矢量预测的方法、装置和计算机程序。



背景技术:

视频编码是将一系列视频图像变换成紧凑的数字化位流以使得可以传输或存储这些视频图像的方式。编码装置用于对视频图像进行编码,而关联的解码装置可用于对位流进行重建以供显示和观看。一般目的是将位流形成为具有与原始视频信息相比更小的大小。这样有利地降低了针对传送网络或存储装置所要求的用以传输或存储位流码的容量。

特别是关于解码部分,已将常见的标准化方法用于编码处理的格式和方法。绝大多数的过去视频标准将视频图像分割成较小的段(被称为宏块或块)。在最终确定的新高效率视频编码(hevc)视频压缩标准中,根据考虑中的原始图像片段的特性,宏块被所谓的最大编码单位(lcu)(还被称为编码树块(ctb))替代,并且被分区并调整成现在被称为编码单位(cu)的块。这样使得能够对视频图像的包含相对较多信息的区域进行更详细的编码,并且使得针对特征较少的区域的编码工作较少。注意,根据视频压缩文献的以下不同术语,图像区域也是已知的:像素块、像素的块、块、编码单位(cu)和宏块。

现在正定义hevc的可分级扩展。在该扩展中,图像被视为包括多个层级层。层级层包括基本层(等同于原始视频序列的低质量版本的图像(或帧)的集合)以及一个或多个增强层(还已知为细化层)。

原本通过以类似于静止图像或图片的数字编码的方式单独对各宏块进行编码来处理视频图像。随后的编码模型允许根据相邻宏块(空间或intra(帧内)预测)或者通过与相邻帧中的相似宏块相关联(时间预测)来预测一个帧中的特征。这样使得能够使用已可用的编码信息,由此缩短整体所需的编码位率的量。在值的残差集合中捕获到要编码的原始块和预测所使用的块之间的差。然后,以残差和预测所使用的块的标识符的形式对原始块进行编码。许多不同类型的预测是可能的。有效编码在考虑到各预测模式用以在位流中代表将要编码的块所引起的位流大小的情况下,选择在解码时针对该块提供最佳质量的最佳预测模式。解码后的图片质量和所需位率的降低之间的权衡(还已知为率/失真权衡)是整体目标。

在时间预测的情况下,可以进行多种预测,并且可以聚集为单向预测和双向预测这两个主要类型。在单向预测的情况下,要预测的块与一个预测结果相关联。将该预测结果的位置编码作为运动信息。该运动信息由包含预测结果的参考帧的索引(在标准中被称为ref_idx)和如下的矢量构成,其中该矢量是由垂直位移和给出所参考的帧中的预测结果块的位置的水平位移所定义的。在双向预测的情况下,要编码的块与在两个不同的参考帧中所获取到的两个预测结果相关联。结果,运动信息包括两个矢量和参考帧的两个索引。

可以以预测方式对运动信息自身进行编码。可以使用针对相同帧中的相邻编码单位所获得的运动信息作为空间运动信息预测结果。可以使用从其它帧中的同位置编码单位所获得的运动信息作为时间运动信息预测结果。然后,利用与所使用的运动信息预测结果有关的索引以及表示所选择的运动信息预测结果和要编码的运动信息之间的差的残差信息来对针对要编码的块所要编码的运动信息进行编码。

根据与先前图像相对应的运动信息所进行的运动信息的预测要求编码器和解码器存储先前编码图像的运动场。该运动场可以表示用以更能存储如4k2k或8k4k视频那样的分辨率大的视频的大量数据。为了限制hevc编解码器的存储要求,hevc标准采用了代替整个运动场而是使用压缩运动场来进行运动信息预测的策略。

仅在使用先前图像的运动信息的情况下才要求存储运动场。在hevc中,可以使得时间运动信息预测结果的使用变得无效。在这种情况下,可以通过防止存储运动信息来进一步降低hevc编解码器的存储要求。

可分级编解码器的主要思路其中之一是重复使用来自使用给定编解码器(例如,hevc)进行编码后的参考层(rl)的信息,以对增强层的信息进行编码。

将期望如下:使用在参考层中所确定的运动信息来对增强层中的运动信息进行预测编码。特别地,如果在参考层中使得时间运动信息预测结果的使用变得无效,则可能发生以下情况:可能不存在可用的运动信息以用于进行增强层中的运动信息预测。



技术实现要素:

本发明是为了解决前述担心中的一个或多个而设计的。本发明涉及用以确定可分级编码方案的增强层中的运动信息预测结果的处理(还已知为运动推导处理)。该处理包括对挑选由于压缩方案而可用的更相关的运动信息所使用的参考层中的位置进行校正。

根据本发明的第一方面,提供一种用于根据可分级的编码格式来对图像进行编码的方法,所述编码格式至少包括参考层和增强层,基于运动信息来对所述图像的至少一部分进行预测编码,基于运动信息预测结果的集合来对所述运动信息自身进行预测编码,所述方法至少针对所述增强层中的图像区域包括以下步骤:基于图像中属于所述参考层的其它部分的运动信息来确定运动信息预测结果的集合;以及确定所述增强层中的要编码的图像区域在所述参考层中的同位位置,以选择与所述同位位置相关联的运动信息作为运动信息预测结果的所述集合的一部分,其中,所述方法还包括以下步骤:将所述同位位置的至少一个坐标x校正为通过以下表达式所给出的新值x’:其中,是((x+4)/16)取整数值的截断。因此,改进了运动信息预测。

根据本发明的另一方面,提供一种用于根据可分级的编码格式来对图像进行解码的方法,所述编码格式至少包括参考层和增强层,基于运动信息来对所述图像的至少一部分进行预测编码,基于运动信息预测结果的集合来对所述运动信息自身进行预测编码,所述方法至少针对所述增强层中的图像区域包括以下步骤:基于图像中属于所述参考层的其它部分的运动信息来确定运动信息预测结果的集合;以及确定所述增强层中的要编码的图像区域在所述参考层中的同位位置,以选择与所述同位位置相关联的运动信息作为运动信息预测结果的所述集合的一部分,其中,所述方法还包括以下步骤:将所述同位位置的至少一个坐标x校正为通过以下表达式所给出的新值x’:其中,是((x+4)/16)取整数值的截断。

根据本发明的另一方面,提供一种用于根据可分级的编码格式来对图像进行编码的装置,所述编码格式至少包括参考层和增强层,基于运动信息来对所述图像的至少一部分进行预测编码,基于运动信息预测结果的集合来对所述运动信息自身进行预测编码,所述装置至少针对所述增强层中的图像区域包括:预测结果确定模块,用于基于图像中属于所述参考层的其它部分的运动信息来确定运动信息预测结果的集合;以及位置确定模块,用于确定所述增强层中的要编码的图像区域在所述参考层中的同位位置,以选择与所述同位位置相关联的运动信息作为运动信息预测结果的所述集合的一部分,其中,所述装置还包括:位置校正模块,用于将所述同位位置的至少一个坐标x校正为通过以下表达式所给出的新值x’:其中,是((x+4)/16)取整数值的截断。

根据本发明的又一方面,提供一种用于根据可分级的编码格式来对图像进行解码的装置,所述编码格式至少包括参考层和增强层,基于运动信息来对所述图像的至少一部分进行预测编码,基于运动信息预测结果的集合来对所述运动信息自身进行预测编码,所述装置至少针对所述增强层中的图像区域包括:预测结果确定模块,用于基于图像中属于所述参考层的其它部分的运动信息来确定运动信息预测结果的集合;以及位置确定模块,用于确定所述增强层中的要编码的图像区域在所述参考层中的同位位置,以选择与所述同位位置相关联的运动信息作为运动信息预测结果的所述集合的一部分,其中,所述装置还包括:位置校正模块,用于将所述同位位置的至少一个坐标x校正为通过以下表达式所给出的新值x’:其中,是((x+4)/16)取整数值的截断。

根据本发明的另一方面,提供一种可编程设备所用的计算机程序产品,所述计算机程序产品包括指令序列,所述指令序列用于在被载入所述可编程设备并且由所述可编程设备执行的情况下,实现根据本发明的方法。

根据本发明的另一方面,提供一种计算机可读存储介质,用于存储计算机程序的指令,所述指令用于实现根据本发明的方法。

根据本发明的方法的至少一部分可以通过计算机来实现。因此,本发明可以采用完全硬件实施例、(包括固件、常驻软件、微代码等的)完全软件实施例、或者组合这里通常可以全部称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明可以采用以介质中嵌入有计算机可用程序代码的表现的任何有形介质中所体现的计算机程序产品的形式。

由于本发明可以以软件来实现,因此本发明可以体现为计算机可读代码以提供至可编程设备的任何适当载体介质上。有形载体介质可以包括诸如软盘、cd-rom、硬盘驱动器、磁带装置或固态存储器装置等的存储介质。瞬态载体介质可以包括诸如电信号、电子信号、光学信号、声学信号、磁信号或者例如微波或rf信号的电磁信号等的信号。

附图说明

现在将仅通过示例的方式并且参考以下附图来说明本发明的各实施例,其中:

图1示出传统的可分级视频编码器的框图;

图2示出本发明实施例中的运动信息预测结果的空间位置和时间位置;

图3示出本发明实施例中的、使用参考层的运动信息来预测增强层中的运动信息;

图4示出本发明实施例中的解码处理所用的流程图;

图5示出本发明实施例中的运动信息的粒度;

图6示意性示出本发明实施例中的texturerl方法的原理;

图7示出本发明实施例中的、针对增强层中的amvp模式和合并模式这两者在texturerl方法的情形下的改写的运动信息预测结果推导处理;

图8示出本发明实施例中的在参考帧索引(referenceframeindex)方法的情形下的改写的处理;

图9是本发明实施例中的合并模式中的运动信息推导处理的流程图;

图10呈现本发明实施例中的可分级解码器的框图;

图11是用于实现本发明的一个或多个实施例的计算装置的示意框图;

图12示出本发明实施例中的amvp运动信息预测结果集合推导;

图13示出本发明实施例中的存储器区域的详情。

具体实施方式

图1示出可以包括多个子部分或阶段并且代表hevc的可分级扩展的传统的可分级视频编码器的框图。这里示出两个子部分或阶段a10和b10,其中这些子部分或阶段a10和b10生成与基本层相对应的数据1.13和与一个增强层相对应的数据1.14。子部分a10和b10各自遵循标准视频编码器的原理,其中在两个单独路径(一个路径对应于每一层)中应用变换、量化和熵编码的步骤。

第一阶段b10的目的在于对输出可分级流的h.264/avc或hevc兼容的基本层进行编码。向该非可分级编码器的输入包括通过向图像1.1应用下采样1.17所获得的原始帧图像序列。该编码器顺次进行以下步骤以对标准视频位流进行编码。在步骤1.2中,将要编码(压缩)的图片或帧分割成像素块(在hevc标准中被称为编码单位(cu))。各块首先经过运动估计操作1.3,其中该运动估计操作1.3包括:在专用存储器缓冲器1.4内所存储的参考图片中搜索将提供块的良好预测的参考块。该运动估计步骤提供了包含所找到的参考块的一个或多个参考图片索引、以及相应的运动矢量。然后,运动补偿步骤1.5将所估计出的运动矢量应用于所找到的参考块以获得时间残差块,其中该时间残差块是运动补偿后的预测块和要预测的原始块之间的差。此外,帧内预测步骤1.6确定将提供用以预测当前块的最佳性能的空间预测模式。再次地,计算空间残差块,但该空间残差块在这里作为空间预测结果和要预测的原始块之间的差。

之后,编码模式选择机构1.7从空间预测和时间预测中选择在当前块的编码中提供最佳率失真权衡的编码模式。根据所选择的预测模式,残差预测块随后经过变换(dct)和量化1.8。对如此量化后的系数qtc(和关联的运动数据md)进行熵编码1.10。发送与编码后的当前块1.2相关联的压缩纹理数据1.13以供输出。

为了进一步提高编码效率,使用相邻块运动信息来对与正进行运动补偿步骤的inter(帧间)块相关联的运动信息进行预测编码。在这种情况下,相邻块包括空间相邻块以及可选的时间相邻块。结果,如果使用时间相邻块,则需要存储先前编码图像的运动信息以使得能够进行预测。在标准的当前版本中,该信息由编码器和解码器以压缩形式进行存储以限制编码和解码处理的存储器使用量。然而,如上所述,在运动信息预测时不使用时间预测结果的情况下,不必存储先前图像的运动场。

然后,利用逆量化(还称为缩放)和逆变换1.11对当前块进行重建。在需要的情况下,在该步骤之后对逆变换残差和当前块的预测块进行求和以形成重建块。将这些重建块添加至缓冲器以形成重建帧。然后,在1.12中对该重建帧进行后置滤波。将该后置滤波之后的重建帧存储在被称为dpb(代表解码图片缓冲器(decodedpicturebuffer))的存储器缓冲器1.4中,以使得该重建帧可用作参考图片以预测任何后续要编码的图片。

最后,向最后的熵编码步骤提供编码模式,并且在帧间块的情况下,提供运动数据以及先前计算出的量化dct系数。该熵编码器将这些数据各自编码成二值形式,并且将如此编码后的块封装在被称为nal(代表网络抽象层(networkabstractlayer))单位的容器中。nal单位包含来自给定片的所有编码后的编码单位。编码hevc位流包括一系列nal单位。

接着,第二阶段a10示出使用基本层作为参考层来对增强层进行编码。这里,该增强层为上采样后的基本层带来空间分辨率的细化。如图1所示,除针对来自压缩中的流1.10的当前图片的各编码单位、考虑基于层间预测的附加模式以外,该增强层的编码方案与基本层的编码方案相同。

将被称为intrabl1.90的附加模式添加至针对增强层块所考虑的模式的列表,其中该附加模式包括:使用参考层的上采样后的同位置块来预测增强层的块。

可以修改inter模式中所使用的运动信息预测以考虑来自于参考层的运动信息。另外,可以在熵编码步骤1.20中应用运动信息的特定熵编码。

对于这些新工具,中间层间模块1.18可以将来自参考层的可以根据空间分辨率变化进行上采样后的信息(运动信息、样本)提供至增强层编码的诸如运动估计模块1.23、intrabl模式1.90或帧内预测模块1.26等的不同模块。特别地,在参考帧方法中,模块1.18将对dpb1.4中的如此得到的帧的样本数据和运动数据这两者进行上采样以匹配增强层尺寸,并且将如此得到的数据(图像及其运动)插入到dpb1.24中,而该dpb1.24影响1.25和1.23的操作。

图10呈现将应用于由两个可分级性层(例如,包括基本层和增强层)构成的可分级位流的可分级解码器的框图。因而,该解码处理是图1的可分级编码处理的逆处理。解码中的可分级流10.10由一个基本层和位于该基本层上方的一个空间增强层构成,其中这些流在步骤10.20中被解多路复用到各自的层中。

图10的第一阶段涉及基本层解码处理b12。该解码处理通过对基本层中的各编码图片的各编码单位或块进行熵解码10.30而开始。该熵解码10.30提供编码模式、运动信息(inter编码块的参考图片索引和运动矢量)、帧内预测所用的预测方向和残差数据。该残差数据包括量化和变换后的dct系数。接着,这些量化后的dct系数经过逆量化和逆变换操作10.31。可以通过操作10.34将运动补偿10.32或帧内预测10.33后的数据与该残差相加。

然后,应用去块滤波步骤10.35。然后,将如此重建的图像存储在帧缓冲器10.40中。

接着,将inter块的解码运动信息以及重建块存储在图10的可分级解码器中的第一个帧缓冲器中(b12)。这些帧包含可用作用以预测上侧可分级性层的参考数据的数据。

接着,图10的第二阶段对位于第一阶段解码后的基本层的上方的空间增强层a12进行解码。该空间增强层解码涉及对第二层进行熵解码,从而提供第二层的块的编码模式、运动信息和帧内预测信息以及变换和量化后的残差信息。

下一步骤在于预测增强图片中的块。不同类型的块预测(intra、inter、或者在texturerl方法的情况下为层间)之间的选择10.51依赖于从熵解码步骤10.50所获得的预测模式。

关于intra块,针对这些块的处理依赖于intra编码单位的类型。在层间预测intra块(intrabl编码模式)10.57的情况下,如果针对该块已对残差数据进行了编码,则熵解码10.50的结果经过逆量化和逆变换10.52,然后通过操作10.53,采用该残差数据的解码、后置滤波和上采样(在空间可分级性的情况下)版本将该结果与基本图片中的当前块的同位置块相加。在intra块的情况下,完全重建这种块,经过逆量化、逆变换以获得空间域中的残差数据,然后经过intra预测10.54以获得完全重建块。

关于inter块,这些块的重建涉及根据帧存储器10.60所计算出的这些块的运动补偿10.55、残差数据解码、然后将这些块的解码后的残差信息与这些块的时间预测结果块相加。在该inter块解码处理中,可以以预测方式将与所考虑的块相关联的运动信息解码作为基本图片中的同位置块的运动信息的细化。以下将说明该方面。

与基本层相同,可以将去块滤波步骤10.56应用于从10.53输出的图像,并且将这些图像在通过解码返回为完全解码帧10.70之前,存储在帧存储器10.60中。注意,在本发明的实施例中,运动补偿10.55实际使用来自增强层图像缓冲器10.60和基本层图像缓冲器10.40的数据。连同样本数据一起,模块10.80可以负责通过对该数据进行上采样来从参考层提供该数据。

可以考虑图像预测所用的两个方法。更特别地,图像预测包括运动信息预测。在这两个方法中,运动信息预测以不同的方式受到影响。以下说明图像预测的这两个方法。这些方法的特征是使得能够使用参考层的运动信息来预测增强层的运动信息。将与图3相关地更详细说明该特征,并且该特征影响如何访问参考层的图1上的帧存储器1.4。

然后,针对这两个方法详细说明作为本发明的关键点的运动信息预测的情况。

由于允许使用intrabl模式,因此第一个方法通常被称为texturerl。该方法在块等级使用低等级句法以用信号通知intrabl模式的使用。该方法有时被一些专家称为“intrabl方法”。

被称为参考帧插入的第二个方法大多使用高等级变化。特别地,不在块等级进行句法变化。参考帧索引方法的主要特征在于:将被称为ilr图像(代表层间参考图像)的参考层的(在分辨率不同的情况下有可能被放大的)图像引入到增强层的解码图像的缓冲器中。然后,将这些图像插入用作dpb(解码图片缓冲器)中的参考图像的特定参考图像列表(l0和l1列表)的末尾。该插入依赖于增强层的当前片的类型。在p片中,将ilr图像插入l0列表的末尾。在b片中,将ilr图像插入l0列表和l1列表这两者的末尾。该方法有时被一些专家称为“ref_idx方法”。利用该方法,可以使用参考层中位于同位置的参考层时间运动信息预测结果来对给定块的运动信息进行预测编码。

值得注意的是,texturerl方法中的intrabl和参考帧索引方法中的插入参考帧的使用是用以使用基本层信息来预测增强层的两个方式。在本发明的说明书中,为了简便,一次考虑这些方法其中之一而不是一起考虑这两者。

现在将说明与对于这两个方法均有效的运动信息有关的一般信息。

典型的视频编解码器在各个帧内模式和帧间模式中利用像素之间的空间相关和时间相关这两者。这里关注帧间模式,其中帧间模式利用当前帧和先前编码/解码帧的像素之间的时间相关。

在hevc(和经扩展的shvc)中,“帧间”模式是定义时间预测方向的预测模式。根据该时间方向来定义运动信息的0~2个集合。如果“帧间”预测方向等于0,则利用帧内模式对块进行编码,并且该块不包含运动信息。如果“帧间”预测方向等于1,则块包含来自被称为l0的参考帧的列表的运动信息。如果“帧间”预测方向等于2,则块包含来自被称为l1的参考帧的另一列表的运动信息。如果“帧间”预测方向等于3,则块包含来自这两个列表l0和l1的运动信息。

运动信息包含以下信息:参考帧的列表中的索引(ref_idx)、以及具有水平运动值和垂直运动值这两个分量的运动矢量。这些值与参考帧中的当前块和时间预测结果块的位置在像素方面的空间位移相对应。该位移可以具有子像素精度(像素的0、1、2或3个四分之一)。

上述的“帧间”预测方向1和2与单向预测相对应,并且不能用在i(=帧内编码片)片中,而可以用在p(预测片)和b(双预测)片中。特定类型(i、p或b)的图像由相同类型的至少一个片构成。“帧间”预测方向3被称为双向预测,并且可以仅用在b片中。在这种情况下,考虑两个块预测结果(针对各列表l0和l1为一个块预测结果)。结果,考虑两个参考帧索引以及两个运动矢量。双预测所用的帧间块预测结果是这两个运动矢量所指向的这两个块的针对各像素的平均值。这里,块预测结果与hevc或shvc中的预测单位或预测块的概念相对应。

如上所述,通过预测编码来使用包括在时间上同位置的运动信息的多个运动信息预测结果对hevc中的运动信息进行编码。因此,针对用作参考帧的各帧,需要在编码器侧和解码器侧存储其相关运动信息。对该运动信息进行压缩,以减小其在运动信息的专用存储器中的大小。

因此,hevc使用特定粒度来表示运动。在图5中示出该情况。对于16×16个像素的每个块5.0,hevc所使用的最小粒度为4×4个像素,这样得到16个潜在的运动信息(针对每4×4块为一个运动信息)。运动信息的压缩在于:仅保持与给定块5.0的左上方的4×4块5.1相对应的运动信息。

一旦对16×16块进行了最终选择并且进行了编码,就可以发生运动信息压缩处理,但将该处理想象为一旦对整个图像进行了编码就进行,这更为简单。为了简单,可以将该处理视为在自适应环路滤波器处理之后并且在将解码图片放置到解码图片缓冲器(dpb)中之前进行。该压缩处理可被描述为特定查找:对于给定的像素坐标x和y,从位置x’=(x>>4)<<4和y’=(y>>4)<<4获得运动信息,其中按照如下所述描述“>>”和“<<”运算符。

x>>y表示将x的整数二进制补码算术右移了y个二进制位。该函数是仅针对y的非负整数值所定义的。作为右移的结果而移位到msb中的位的值等于移位运算之前的x的msb。

x<<y表示将x的整数二进制补码算术左移了y个二进制位。该函数是仅针对y的非负整数值所定义的。作为左移的结果而移位到lsb中的位的值等于0。

可以注意,一些实现可以使用缓冲器来存储相应的压缩运动。

在hevc设计中,通过预测编码使用多个运动信息预测结果来对运动矢量进行编码。对于inter编码块,存在跳过、帧间和合并块编码子模式这三个子模式。帧间子模式使用被称为amvp的特定运动预测方法,并且使用残差纹理数据。跳过子模式和合并子模式使用相同的运动预测方法(但前者不使用残差数据)。该预测方法使得能够从包括空间和时间运动信息的给定集合中选择最佳运动信息预测结果。

将说明被称为合并模式的运动信息预测模式、以及如何将该合并模式应用于上述的texturerl和参考帧索引这两个方法。这用于跳过子模式和合并子模式这两个inter编码子模式。接着将详述在amvp模式中可以使用的等同方案。

图3示出简称为“合并模式”的针对编码器侧的合并子模式和跳过子模式的合并运动信息预测结果方案的通用流程图。合并模式的原理是在无需对任何运动细化进行编码的情况下使用运动矢量预测来进行运动补偿。如以下详细所述,运动信息预测结果生成模块3.3基于运动信息场3.1来生成运动信息预测结果集合3.4。在运动信息预测结果集合3.4中应用最佳运动信息预测结果的率/失真选择3.7。这样生成了要进行编码的运动矢量预测结果索引3.8。

转换模块3.14将所述索引转换成截断一元码3.15:针对要编码的值n,除需要n个位的最大值n以外,生成长度为n+1的码字。该代码包括被设置为1的n个位和被设置为0的末位。如果n值等于最大候选数量,则不需要该末端位,由此码字长度为n。由于可以在片等级(hevc中的five_minus_max_num_merge_cand句法元素)选择该最大值(合并候选的数量(对于hevc而言通常为5)),因此步骤3.14考虑到预测结果的最大数量3.16。

然后,通过熵编码步骤3.12对所生成的码字3.15进行熵编码:

-第一位使用具有特定上下文的运算编码;

-其余位使用旁路编码、即生成实际位。

图4示出相应的解码处理的流程图。在第一步骤中,模块4.2基于当前帧和先前帧的运动信息场4.1来生成运动信息预测结果集合4.8。从位于片头部的句法元素five_minus_max_num_merge_cand解码了运动预测结果的最大数量4.16。然后,在4.6中使用该运动预测结果的最大数量4.16以提取运动信息预测结果码字4.14。该码字由步骤4.15转换成预测结果索引4.9。然后,根据该预测结果索引值4.9从集合4.8提取要使用的运动信息预测结果4.10。然后,使用该预测结果作为运动补偿期间的实际运动信息。

运动信息预测结果或候选包含所有的运动信息:方向(即,列表内的运动矢量和参考索引的可用性)、参考帧索引和运动矢量。通过以下所述的合并推导处理来生成各自具有索引的多个候选。在hevc中,最大候选数量max_cand默认等于5,但可以减小为1。这里利用texturerl方法和参考帧索引方法的特定部分来说明合并运动信息预测结果确定。

图9是合并模式的运动信息推导处理的流程图。在texturerl方法和参考帧索引方法的这两个hevc核心的推导的第一步骤中,考虑9.1~9.7这七个块位置。

另外,在texturerl方法情况中,考虑另一候选(如前面所述的smvp9.0(smvp代表空间运动矢量预测结果))。这些位置是图2所示的空间位置和时间位置。在这些图中各位置具有相同的名称。在参考帧索引方法中不存在该smvp。

模块9.8检查空间运动信息的可用性,并且在texturerl方法中,还检查增强层的smvp。模块9.8选择最多四个运动信息预测结果。在该模块中,在预测结果存在于参考层中并且没有对该块进行intra编码的情况下,可利用该预测结果。另外,在下文,在texturerl方法内,除任何其它运动信息外,还将要添加的任何候选与smvp进行比较,并且仅在比较结果为不同的情况下才实际加上该候选。例如,还将标记为a1或9.1的“左方”候选与smvp进行比较,并且该“左方”候选在运动存在于位置x2的情况下被添加作为第二个、或者在其它情况下被添加作为第一个。如此,通过进行以下检查来进行该比较:

-来自两个候选的运动信息具有相同的预测方向;

-如果是这种情况,则针对与预测方向相关联的各运动信息:

○参考相同的帧(即,ref_idx索引的相同值);

○运动矢量在垂直候选和水平候选这两者上相同。

在以下条件下说明这5个运动矢量的选择和检查:

●在texturerl方法中,如果可利用(9.8)来自pu的中心位置x1的同位位置x2的运动信息9.0,则可以将该运动信息9.0缩放并用作为列表9.10中的第一个候选。

●如果可利用(9.8)“左方”a1运动信息9.1、这意味着如果存在“左方”a1运动信息9.1并且没有对该块进行帧内编码,则选择“左方”块的运动信息并且用作列表9.10中的第一个候选。

●如果可利用(9.8)“上方”b1运动信息9.2,则将候选“上方”块与a1(在存在的情况下)进行比较(9.9)。如果b1等于a1,则不将b1添加在空间候选的列表9.10中,否则将b1添加到该列表中。

●如果可利用(9.8)“右上方”b0运动信息9.3,则将“右上方”的运动矢量与b1进行比较(9.9)。如果b0等于b1,则不将b0添加在空间候选的列表(9.10)中,否则将b0添加到该列表中。

●如果可利用(9.8)“左下方”a0运动矢量9.4,则将“左下方”的运动信息与a1进行比较(9.9)。如果a0等于a1,则不将a0添加在空间候选的列表9.10中,否则将a0添加到该列表中。

●如果空间候选的列表不包含4个候选,则测试(9.8)“左上方”b2运动信息9.5的可用性;如果可用,则将“左上方”b2的运动矢量与a1和b1进行比较(9.9)。如果b2等于a1或b1,则不将b2添加在空间候选的列表9.10中;否则,将b2添加在列表中。

在该阶段结束时,列表9.10包含0~4个候选。

对于时间候选,可以使用两个位置:与同位置块的右下方位置br1相对应的h9.6或者与当前块的中心位置x1相对应的同位置块(同位置块意味着在时间上不同的帧中的相同位置处的块)的中心c9.7。在图2中示出这些位置。

首先,检查(9.11)h位置9.6处的块的可用性。如果不可用,则检查(9.11)中心位置9.7处的块。如果可利用这些位置的至少一个运动信息,则在需要的情况下针对列表l0和l1这两者,可以将该时间运动信息在需要的情况下缩放(9.12)为与来自具有索引0的参考帧的运动信息同质,从而创建时间候选9.13;然后将时间候选插入到合并候选列表中的紧挨空间候选之后。

此外,时间候选的最后位置(根据可用性的h或中心)被约束为保持在相同的ctb(代表编码树块)或其右方邻接区域内,以减少存储器访问。

注意到以下情况很重要:对于所有层和所有方法但最重要的是在参考层中,根据以下来有条件地确定并添加该运动信息预测结果:

-是否例如使用位于sps(代表序列参数集合)中的标志sps_temporal_mvp_enable_flag在序列等级禁用所述时间运动信息预测结果(tmvp)-这与本发明的实施例特别相关;

-如果在序列等级启用该tmvp,是否例如使用位于片头部的标志enable_temporal_mvp_flag在片等级禁用该tmvp。

可以禁用该运动信息预测结果这一事实以及该运动信息预测结果如何受到运动矢量存储器压缩影响在所述处理以及如何推导预测结果smvp9.0中起着重要作用。

其次,在参考帧索引方法中,该时间运动信息预测结果可以来自于所插入的帧。如以下将说明的,所述运动信息是根据参考层帧压缩运动场实际推导出的。

如果候选数量(nb_cand)9.14严格来说劣于最大候选数量max_cand(默认为且最大为5),则在步骤9.15中生成组合候选,否则在步骤9.18中构建合并候选的最终列表。仅在当前帧是b帧的情况下才使用模块9.15,并且该模块在步骤9.15中基于两个合并列表中的可用候选来生成多个候选。该生成在于:将列表l0的候选的一个运动信息与列表l1的不同候选的另一运动信息组合。

如果候选量(nb_cand)9.16严格劣于最大候选数量max_cand,则在步骤9.17中添加无位移(0,0)(即,运动矢量值全部等于0)的空运动信息候选,从而使nb_cand递增,直到nb_cand等于max_cand为止。

在该处理结束时,在步骤9.18中构建合并候选的最终列表。

shvc(hevc的可分级扩展)的当前规格不使用在amvp模式下从参考层所获得的运动信息预测结果,而是可以按照如下引入该运动信息预测结果。

图12示出amvp运动信息预测结果集合推导。该处理用于对运动信息进行预测编码。与合并模式相比,必须传输附加信息即预测方向,并且针对要传输的各运动信息,还传输参考帧索引、预测结果索引和运动信息残差。

预测结果索引依赖于候选数量:hevc需要生成最多两个运动信息预测结果。在这种情况下,该图中的max_cand被设置得等于2,而且可以想象将3用于增强层。针对与合并模式的位置相同的位置,在左方块a012.1和a112.2之间选择第一个空间候选。

再次地,关于合并模式,在上述块以及包括上方角部块和左方角部块的左方块中选择amvp模式的两个空间运动信息预测结果。在块“左下方”a0和“左方”a1中选择(12.8)该左方候选结果cand112.9。按该特定顺序,评价以下条件,直到针对来自相同参考列表和相同参考图片的运动信息或者来自其它参考列表和相同参考图片的运动信息求出运动信息值为止。

利用如以下所述的相同条件,在步骤12.10中,按特定顺序从“右上方”b012.3、“上方”b112.4和“左上方”b212.5中依次选择上方运动信息预测结果cand212.11。接着,比较cand1和cand2,以在这两者相等的情况下去除这些运动信息预测结果其中之一(12.15)。在该删除之后,在步骤12.16中将候选数量与max_cand进行比较:如果相等,则完全确定了amvp运动信息候选的列表,并且处理在步骤12.23结束。

否则,如果候选数量小于max_cand,则如合并模式那样推导出时间运动预测结果cand312.14,并且在步骤12.17中在存在的情况下添加该预测结果。为此,在可用性检查模块12.12中首先考虑右下方(h)12.6位置。如果不存在该位置,则选择同位置块的中心12.7。

接着,在步骤12.18中,再次将所添加的候选的数量与最大候选数量进行比较。如果达到该最大数量,则在步骤12.23中构建amvp预测结果的最终列表。否则,步骤12.19检查是否正构建针对增强层的列表。如果不是,则在步骤12.22中继续传统列表构建,其中在该步骤12.22中,将达到最大值所需的尽可能多的零候选添加至该列表,因此完成该列表并且在步骤12.23中结束。否则,发生如下的具体处理:根据以下所述的计算来从参考层获得smvp候选。在进行该操作的情况下,在步骤12.22中继续正常处理。

选择了例示如下情况:在cand3之后使用该候选。当然,显然设想在cand3之前、在cand1和cand2之间、或者在cand2和cand3之间使用该候选。在所有情况下,可以在删除处理中进行附加比较,以考虑到新候选smvp。

在考虑将合并模式应用于texturerl方法的情况下,合并模式将新运动信息预测结果即smvp添加在从参考层所获得的增强层中。所述运动信息预测结果当前来自于在确定压缩后的参考层中的时间候选时所使用的运动信息。图6示意性示出texturerl方法的原理。这里的说明是指图像的亮度颜色分量,但该处理还可应用于色度颜色分量。

在图6中,示出增强层图像6.1及其参考层图像6.2之间的空间比为r(通常是1、1.5或2)的增强层图像6.1及其参考层图像6.2。无论r的值如何,使用术语“放大”作为应用于参考层的重采样处理以匹配增强层尺寸。如果r等于1,则重采样产生了与输入相同的输出。逆重采样被称为“缩小”。将增强层图像细分为表示图像的粒度的网格。在以下文本中将每一个较小的正方形称为样本。

现在,对于利用粗线正方形表示的给定预测单位6.3,该处理在于:

a.计算所考虑的亮度预测块6.3的中心位置6.4(xpctr,ypctr),这可以通过如下所述进行推导:

○xpctr=xp+npbw/2

○ypctr=yp+npbh/2

■xp、yp指定相对于当前图片的左上方亮度样本6.7的当前亮度预测块的左上方样本6.6

■npbw和npbh指定亮度预测块的宽度和高度

b.根据缩放系数r(1、1.5和2.0)缩小其坐标,以求出参考层图像6.2中的同位位置6.5;

○xpctrrl=(xpctr*picwrl+scaledw/2)/scaledw

○ypctrrl=(ypctr*pichrl+scaledh/2)/scaledh

■变量picwrl和pichrl被设置成等于参考层图片的宽度和高度。

■scaledh的值取r*pichrl的值,并且scaledw的值等于r*picwrl的值。

c.通过识别参考层图片内的覆盖通过((xpctrrl>>4)<<4,(ypctrrl>>4)<<4)给出的修改位置的编号为1的亮度预测块blpb6.8,来从参考层图像6.2中检索该位置的运动信息。这与参考层的运动汇总步骤相对应。

○然后将亮度位置(xprl,yprl)设置成等于相对于参考层图片的左上方亮度样本的由blpb指定的同位置亮度预测块的左上方样本6.8。

d.如果相应信息不是帧内,则提取运动矢量mvrl,并且根据比r来放大这些运动矢量mvrl。该操作基本上生成值smvp等于如下表达式的空间运动矢量:smvp=rnd(r*mvrl(rnd(xprl/r),rnd(yprl/r),其中rnd(.)表示舍入处理)。连同与该空间运动矢量相关联的参考帧索引一起,这样构成了插入集合的开始处的空间运动矢量预测结果。

如以上通过步骤c看出,针对texturerl的当前shvc设计规定了针对参考层的运动矢量值mvrl是从参考层的运动压缩缓冲器所获得的。由于与4×4块6.8相对应的运动信息是通过运动信息压缩处理针对整个16×16块所保持的唯一一个运动信息,因此需要该规定。

现在考虑参考帧索引方法,在这种情况下,插入增强层的参考列表中的新帧的运动信息也来自于所述压缩运动信息场。然后,可以如上所述使用该运动信息来确定时间预测结果。

详述如何推导该运动。对于给定16×16块,选择该块的中心,并且将该位置等同地用于上述情况以求出相应的运动信息。将详述针对亮度分量的相应步骤。请注意,大部分与同图6相关地所述的处理基本相同,并且定义针对相同变量保持相同。这些定义如下所述:

a.如下所述推导亮度预测块的中心位置(xpctr,ypctr)(在前述部分中定义了变量的名称):

xpctr=xp+8

ypctr=yp+8

b.根据缩放系数r(1、1.5和2.0)来缩小其坐标,以求出参考层图像中的同位位置;

xpctrrl=(xpctr*picwrl+scaledw/2)/scaledw

ypctrrl=(ypctr*pichrl+scaledh/2)/scaledh

变量picwrl和pichrl被设置成等于参考层图片的宽度和高度。

scaledh的值取r*pichrl的值,并且scaledw的值等于r*picwrl的值。

c.如下所述推导同位位置(xrl,yrl):

xrl=(xref>>4)<<4

yrl=(yref>>4)<<4。

d.如下所述推导参考层运动矢量。该操作基本上按照如下所述生成参考层rl_mv值的运动矢量:rl_mv=rnd(r*mv(rnd(xprl/r),rnd(yprl/r))。

然后,使用该信息仿佛该信息是运动信息压缩的输出那样。这样使得能够使用来自参考层的运动信息来预测增强层中的运动信息。与texturerl方法相反,运动信息具有较粗的粒度,但在帧间块所使用的合并列表确定处理和amvp列表确定处理这两者中都可用作时间运动信息预测结果。

既然已呈现了可分级编解码器的整体架构、两个方法和这两者如何使用运动信息来进行预测,可以总结如下。

在texturerl方法中,从参考层获得增强层的新运动信息预测结果。所述运动信息预测结果通常来自于确定压缩后的参考层中的时间候选时所使用的运动信息。因此,压缩影响推导,并由此影响合并模式。在amvp模式中,如果存在可分级候选,则压缩将影响该可分级候选。由于参考帧索引方法中的amvp模式和合并模式也使用时间运动矢量预测结果,因此这两者始终受到影响,并且如果所参考的帧是所插入的帧,则该预测结果将来自于参考层帧的运动。

在参考帧索引方法中,插入在增强层的参考列表中的新帧的运动信息也来自于所述压缩运动信息。

如与图6相关地所述,对针对参考层所存储的运动信息进行压缩。这意味着对于完整的16×16块(最初存在多达16个运动信息,其中针对16×16块内所包含的每4×4块为一个),仅保持一个、即与左上方的4×4块有关的一个运动信息。

在需要参考层运动信息时的运动信息预测结果的推导处理中,由于该压缩,因此所使用的运动信息是可利用的运动信息、即与左上方4×4块相关联的运动信息。再次参考图6,在查找与同要编码的编码单位的中心6.4相对应的同位置点6.5相关联的运动信息的情况下,使用与编号为1的左上方的4×4块6.8相关联的运动信息。可以注意,与针对位于下方的16×16块的压缩之后所保持的运动信息相对应的、同编号为3的左上方4×4块相关联的运动信息更靠近同位置点6.5的位置,因此有可能与4×4块6.8的运动信息相比更加相关。

可以测量由于应用于参考层中的运动信息的压缩处理所引起的运动信息的该非最佳选择,以引起编码效率的损失。在本发明的实施例中,运动信息预测结果推导处理适用于克服该位置问题。

图7详述在texturerl方法的情形下的改写的处理。在增强层中的amvp推导处理和合并推导处理这两者中,该处理均可适用。该修改后的合并推导处理可以位于编码器的图1中的运动估计模块1.23以及解码器的图10中的运动估计模块10.55上。本质上,在图9中确定smvp候选9.0时,发生所有该处理。

步骤7.1通过计算参考层中的要确定运动的位置(例如,通过设置当前预测结果单位信息(尺寸/位置)并且推导所述预测结果单位的中心),来初始化该处理。主要改写在于用于校正位置的步骤7.3。首先通过以下两个可能性来进行该处理。

在第一实施例中,对于针对参考层中的位置所获得的给定坐标x(例如,上述的xpctrrl或ypctrrl),通过根据两个参数r和m进行舍入操作来计算新值。

例如,可以如下所述计算新值x’:

其中,表示x的截断,这意味着取其整数部分。m可以是2的幂,其中在该实施例中,m=16以匹配hevc压缩运动粒度。在该实施例中,r=4,并且并非使用更自然的选择r=8,这是因为该选择提供了更好的编码效率。

这同样可适用于其它坐标。仅作为比较例,可以选择参数r和m的不同值。

在比较例中,位置的校正可以基于查找表。在这种情况下,假定坐标(x,y),可以针对这些坐标至少之一定义校正f[x,y]的表。该表可以是针对各坐标有所不同。还可以仅利用坐标其中之一即x或y来向该表加索引。代替坐标本身,还可以通过使用与坐标有关的值作为索引来缩减该表,例如代替f[x],可以通过f[xmodulom]来获得校正,其中m=2^n作为典型值。在一个示例中,m=16。

在所有情况下,校正值(无论是r的值还是针对至少一个分量的表)可以在高级句法信息中传输并且从高级句法信息中检索到(例如,在视频参数集合、序列参数集合、图片参数集合或片头部中)。在传输r的至少一个值的情况下:

-位标志可以表示r的值是第一个还是第二个、例如0和4(其中在这种情况下,该值可被视为校正所用的开启/关闭标志);

-代码可以表示r的准确值、例如表示r-4的值的截断一元码,例如:对于r4,二元序列为“0”,对于r=5,二元序列为“10”,并且对于其它值,二元序列为“1110”和“1111”。

以上,重要的是注意到可以仅影响一个坐标(特别是横坐标),这是因为修改纵坐标可能引起从不同的存储器区域检索运动信息,由此引起附加的存储器访问。

继续该减少存储器访问的要求,如果至少一个校正值不匹配标准、诸如满足阈值等,则可以将所述校正值改变为其它值,其中该其它值可以是原始值。所述阈值可以是沿着该坐标的图像尺寸,使得在图像外不可能发生查找。可选地,所述阈值可以是沿着该坐标的存储器区域的极限。存储器区域通常与参考层中的最大编码单位的预定集合相对应。将利用图13更详细地示出该存储器区域。

然后,正常预测结果判断在步骤7.4继续。使用步骤7.3的输出位置来从压缩运动缓冲器检索运动信息。如果该运动信息是帧内(即,不存在运动),则在步骤7.8中如此对候选进行标记、特别地既不计算任何预测结果也不向合并候选列表添加任何预测结果,因此在步骤7.9中结束推导处理。否则,放大相应的运动以匹配增强层尺寸。

图8示出在参考帧索引方法的情形下的改写的处理。在增强层中在amvp推导处理和合并推导处理这两者中均可应用该改写的处理。该改写的处理位于图1上的编码器的帧缓冲器1.24或运动估计模块1.23中、以及图10上的解码器的帧缓冲器10.60或运动估计模块10.55中。实际上,该改写的处理影响与压缩运动信息有关的帧存储器的内容。

因此,步骤8.1通过将当前16×16块设置为增强层图像中的第一个块来初始化运动信息预测结果推导处理。在步骤8.2中,确定16×16编码单位的中心的位置,并且在步骤8.3中求出参考层中的相应同位位置。在新步骤8.4中,对所求出的位置进行校正。可以参考上述的步骤7.1来查看该校正的详情,其中这些详情这里同样适用。

在步骤8.5中,验证该位置的运动是否是帧内。如果“是”,则在步骤8.7中将16×16块运动设置为帧内,否则获得并放大运动矢量以匹配增强层尺寸,并且在步骤8.8中,将放大后的运动矢量、参考索引和可用性设置为当前16×16块的运动信息预测结果。

步骤8.9通过验证当前块是否是图像中的最后一个块来准备进行下一迭代。如果是这种情况,则完全确定了该新帧的运动信息,并且在步骤8.11中处理结束。否则,在步骤8.10中将当前块设置为下一16×16块,并且迭代循环回至步骤8.2。

图13示出定义为存储器区域的内容的详情。假定参考层图像13.4及其关联的增强层图像13.5,可以定义应用运动确定处理的区域13.6(例如,ctb)。(例如,在紧挨同位置的参考层ctb之后处理增强层ctb的流水线式编码器或解码的情况下)存储器访问限制可以适用,因而可以在本发明的第一方面中在参考层帧13.4的内部定义同位置区域13.1。步骤7.1和8.4所述的存储器区域在第一方面中对应于包含13.1的区域13.2(这里由参考层的两个ctb构成):针对13.6的任何部分所求出的校正位置必须保持在区域13.2内。以限制较少的方式,能够强制存储器区域可以包括区域13.2的右侧的ctb的附加列,从而得到区域13.3。可以理解,这里的约束基于13.6,但可以使用增强层中的任何大小的区域或参考层中的扩增存储器区域。

图11是用于实现本发明的一个或多个实施例的计算装置11.0的示意框图。计算装置11.0可以是诸如微计算机、工作站或轻薄便携式装置等的装置。计算装置11.0包括通信总线,其中该通信总线连接有以下组件:

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

-表示为ram的随机存取存储器11.2,用于存储本发明实施例的方法的可执行代码以及如下寄存器,其中这些寄存器被配置为记录实现用于实现根据本发明实施例的用于对图像的至少一部分进行编码或解码的方法所需的变量和参数,其中ram11.2的存储器容量例如可以利用连接至扩展口的可选ram来扩展;

-表示为rom的只读存储器11.3,用于存储实现本发明实施例所用的计算机程序;

-网络接口11.4,其通常连接至可以进行要处理的数字数据的发送或接收所经由的通信网络。网络接口11.4可以是单个网络接口、或者包括不同的网络接口的集合(例如,有线接口和无线接口或者不同种类的有线接口或无线接口)。在cpu11.1中所运行的软件应用程序的控制下,将数据包写入网络接口以供发送或者从网络接口读取数据包以供接收;

-用户接口11.5,其可用于从用户接收输入或向用户显示信息;

-表示为hd的硬盘11.6,其可被设置为大容量存储装置;

-i/o模块11.7,其可用于相对于诸如视频源或显示器等的外部装置进行数据的接收/发送。

可执行代码可以存储在只读存储器11.3中、硬盘11.6上或者例如盘等的可移除数字介质上。根据变形例,程序的可执行代码可以利用通信网络经由网络接口11.4来接收,从而在执行之前存储在通信装置11.0的诸如硬盘11.6等的存储部件其中之一内。

中央处理单元11.1被配置为控制和引导根据本发明实施例的程序的指令或软件代码的一部分的执行,其中这些指令存储在上述存储部件其中之一内。在通电之后,cpu11.1例如能够在从程序rom11.3或硬盘(hd)11.6下载了来自主ram存储器11.2的与软件应用程序有关的指令之后,执行这些指令。这种软件应用程序在由cpu11.1执行的情况下,使得进行上述图1~4所示的流程图的步骤。

图7所示的算法的任何步骤可以通过以软件通过利用诸如pc(“个人计算机”)、dsp(“数字信号处理器”)或微控制器等的可编程计算机器执行指令集合或程序来实现,或者以硬件利用机器或者诸如fpga(“现场可编程门阵列”)或asic(“专用集成电路”)等的专用组件来实现。

尽管以上已经参考具体实施例说明了本发明,但本发明不限于这些具体实施例,并且本领域技术人员将明白存在于本发明的范围内的变形。

许多其它修改和改变在参考仅以示例方式给出的并且并不意图限制本发明的范围的前述例示实施例时向精通本技术的人员表明这些修改和改变仅是由所附权利要求书来确定的。特别地,在适当情况下,可以互换来自不同实施例的不同特征。

在权利要求书中,词语“包括”没有排除其它元件或步骤,并且不定冠词“a”或“an”没有排除多个。在相互不同的从属权利要求中陈述不同的特征的仅有事实并不表明不能有利地使用这些特征的组合。

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