一种视频编/解码中运动信息的获取方法及装置与流程

文档序号:16817996发布日期:2019-02-10 22:31阅读:205来源:国知局
一种视频编/解码中运动信息的获取方法及装置与流程

本申请涉及视频编码技术,特别涉及一种视频编/解码中运动信息的获取方法及装置。



背景技术:

目前主流的视频编/解码技术都是基于混合框架的,其主要编码工具包括:预测编码、变化编码和熵编码。其中预测编码包括帧间预测编码和帧内预测编码,分别用于去除视频信号中的时间上的相关性和空间上的相关性。

帧间预测编码采用已编码帧的图像对当前正编码帧的图像进行预测,然后对预测残差进行变换编码和熵编码,用于预测当前帧的已编码帧称为参考帧。参考帧上预测块和当前的编码块之间的空间位置关系通过运动矢量来表示。

随着预测技术的不断进步,图像预测残差不断减小,因此在视频码流中图像残差信息所占比重减小,而运动信息所占比例上升。因此运动矢量的高效编码,对提高整个视频编码的性能至关重要。

视频编/解码中对运动矢量处理的方法有两种:一种是编码器通过运动估计得到运动矢量后对运动矢量进行预测,然后将运动矢量预测残差信息写入视频码流,解码器使用相同的方法对运动矢量进行预测,然后再根据从码流中读取的运动矢量预测残差信息重建当前运动矢量。另一种方法是编/解码器使用同样的方法直接导出运动矢量,这种方法不需要在码流中传输运动矢量预测残差信息。但是无论采用哪种方法,都需要涉及到运动信息的导出,该运动信息可以是运动矢量预测值也可以直接是运动矢量,或者是运动矢量的候选、运动矢量预测值的候选。

在H.264/AVC中,帧间预测模式采用中值预测方法来对运动矢量进行预测,该方法先选择与当前编码块空域上相邻的三个已编码块,然后分别取这三个已编码块的运动矢量的水平分量和垂直分量的中间值作为当前编码块运动矢量水平分量和垂直分量值。时域直接模式则将参考帧上与当前编码块相同位置块的运动矢量进行缩放后作为当前编码块的运动矢量。

在AVS中,帧间模式采用基于距离中值的方法来对运动矢量进行预测,该方法先选择与当前编码块空域上相邻的三个已编码块,然后计算出这三个已编码块的运动矢量两两之间的距离,再选择值为中间大小的距离所对的运动矢量作为当前编码块运动矢量的预测值。时域直接模式则将参考帧上与当前编码块相同位置块的运动矢量进行缩放后作为当前编码块的运动矢量。

在国际最新视频编码标准HEVC中,引入了运动矢量竞争机制。该机制先按一定规则导出候选运动矢量集合,然后在集合中选择一个最优的候选运动矢量作为当前编码块运动矢量值,并将选中的候选运动矢量的集合下标写入码流。候选运动矢量集合包括了空域候选运动矢量和时域候选运动矢量。空域候选运动矢量按一定顺序和优先级从当前块上边相邻块和左边相邻块的运动矢量中选取。时域候选运动矢量按一定优选级从参考帧上与当前编码块有相同位置或相邻位置的块的运动矢量中选取。

现有的技术都只对运动矢量进行一次导出或预测,将该导出值或预测值作为最终的运动矢量或预测值。但是对于空间上或时间上的相邻块而言,它们的预测残差之间仍然存在相关性,但在现有视频编/解码方法中都没有利用预测残差间的相关性。例如基于时域中值或是距离的运动矢量预测或导出方法中,只考虑了与当前编码块处于同一帧的块的运动矢量,这种方法只能消除运动矢量在空域上的相关性,其预测残差在时域上仍然存在相关性;而H.264/AVC和AVS的时域直接模式中的运动矢量导出方法只考虑了与当前编码块处于相同位置的参考帧上块的运动矢量,这种方法导出的运动矢量只考虑了时域上的相关性而没有考虑空间相邻块之间的相关性,导出的运动矢量并不是最佳的;而即便是HEVC中基于竞争机制的运动矢量预测和导出方法,虽然将时域上的候选运动矢量和空域上的候选运动矢量同时纳入了候选运动矢量集合并选择最佳候选运动矢量,其相邻块预测后的预测残差之间仍然会存在一定相关性。



技术实现要素:

本申请提供一种视频编/解码中运动信息的获取方法和装置,能够提高编码性能。为实现上述目的,本申请采用如下的技术方案:

一种视频编/解码中运动信息的获取方法,对视频图像的当前处理块/子块确定运动信息的处理包括:

根据当前处理块/子块的第一参考块集中各参考块的运动矢量,计算所述当前处理块/子块的运动矢量第一预测值;所述第一参考块集中包括用于进行当前处理块/子块运动矢量的第一次预测或导出的参考块;

确定当前处理块/子块的第二参考块集中各参考块的运动矢量第一预测残差值,根据该残差值,对所述当前处理块/子块的运动矢量第一预测残差进行预测,得到运动矢量第一预测残差预测值;所述第二参考块集中包括用于进行当前处理块/子块的运动矢量第一预测残差预测的参考块;

根据当前处理块/子块的所述运动矢量第一预测残差预测值和所述运动矢量第一预测值,确定所述当前处理块/子块的运动矢量第二预测值。

较佳地,所述当前处理块的第一参考块集包括当前处理帧上与所述当前处理块相邻的已编/解码块、和/或当前处理帧的参考帧上与所述当前处理块有空间位置重合或相邻的已编/解码块;

所述当前处理块的第二参考块集包括当前处理帧上与所述当前处理块相邻的已编/解码块、和/或当前处理帧的参考帧上与所述当前处理块有空间位置重合或相邻的已编/解码块;

所述当前处理子块的第一参考块集包括当前处理帧上与所述当前处理子块或子块所在块相邻的已编/解码块、和/或当前处理帧的参考帧上与所述当前处理子块或子块所在块有空间位置重合或相邻的已编/解码块;

所述当前处理子块的第二参考块集包括当前处理帧上与所述当前处理子块或子块所在块相邻的已编/解码块、和/或当前处理帧的参考帧上与所述当前处理子块或子块所在块有空间位置重合或相邻的已编/解码块。

较佳地,所述计算当前处理块/子块的运动矢量第一预测值时包括:

编码器根据当前处理块/子块的第一参考块集中各参考块的运动矢量导出当前处理块/子块的运动矢量第一预测值并将关于当前处理块/子块的运动矢量第一预测值导出的信息写入码流。

解码器根据当前处理块/子块的第一参考块集中各参考块的运动矢量和码流中关于当前处理块/子块的运动矢量第一预测值导出的信息,计算当前处理块/子块的运动矢量第一预测值。

较佳地,所述确定当前处理块/子块的第二参考块集中各参考块的运动矢量第一预测残差值包括:

在对当前处理块/子块确定运动信息时,获取所述第二参考块集中各参考块的运动矢量及其运动矢量第一预测值,并计算运动矢量减去运动矢量第一预测值的差值作为相应参考块的运动矢量第一预测残差值;或者,

对于所述当前处理块/子块的第二参考块集中的任一参考块,在确定该任一参考块的运动信息后、在确定所述任一参考块的下一处理块/子块的运动信息前,计算所述任一参考块的运动矢量减去其运动矢量第一预测值间的差值,作为相应参考块的运动矢量第一预测残差值,并进行保存;在对当前处理块/子块确定运动信息时,获取保存的所述第二参考块集中各个参考块的运动矢量第一预测残差值。

较佳地,当所述当前处理块/子块的第二参考块集中的参考块的运动矢量或运动矢量第一预测值不存在时,

确定相应参考块的运动矢量第一预测残差值不存在,不参与所述当前处理块/子块的运动矢量第一预测残差预测值的计算;或者,

将该第一运动矢量预测残差值设为零矢量,参与所述当前处理块/子块的运动矢量第一预测残差预测值的计算。

较佳地,当所述当前处理块/子块的第二参考块集中某一参考块的运动矢量第一预测残差值均不存在,则将所述当前处理块/子块的运动矢量第一预测残差预测值设为零矢量;或者,

当所述当前处理块/子块的第二参考块集中所有参考块的运动矢量第一预测残差值均不存在,则将所述当前处理块/子块的运动矢量第一预测残差预测值设为零矢量。

较佳地,所述对当前处理块/子块的第一运动矢量预测残差进行预测包括:按照水平分量和垂直分量,分别将所述第二参考块集中各参考块的运动矢量第一预测残差值各分量的最小值,作为所述当前处理块/子块的运动矢量第一预测残差预测值的相应分量值;或者,

将所述第二参考块集中所有参考块的运动矢量第一预测残差值的均值作为所述第一预测残差预测值;或者,

按照水平分量和垂直分量,在所述第二参考块集中所有参考块的运动矢量第一预测残差值中,分别选择取值大小位于中间的分量作为所述第一预测残差预测值的相应分量值;或者,

先计算所述第二参考块集中所有参考块的运动矢量第一预测残差值之间的两两距离,再根据各个距离值导出当前处理块/子块的运动矢量第一预测残差预测值;或者,

编码器根据第二参考块集中各参考块的运动矢量第一预测残差值导出当前处理块/子块的运动矢量第一预测残差预测值并将关于当前处理块/子块的第一运动矢量预测残差预测值导出信息写入码流;解码器根据第二参考块集中各参考块的运动矢量第一预测残差值和码流中关于当前处理块/子块的第一运动矢量预测残差预测值导出信息来导出当前处理块/子块的运动矢量第一预测残差预测值

较佳地,所述确定所述当前处理块/子块的运动矢量第二预测值包括:将当前处理块/子块的所述运动矢量第一预测残差预测值和所述运动矢量第一预测值的求和结果或加权求和结果,作为所述运动矢量第二预测值。

较佳地,所述当前处理块/子块的第一参考块集和第二参考块集中包括的参考块相同或不同。

较佳地,对于同一块上的不同子块,各个子块的第一参考块集包括的参考块相同或不同,各个子块的第二参考块集包括的参考块相同或不同。

较佳地,当所述第一参考块集或第二参考块集中的参考块是以子块为单位确定的运动信息,则所述参考块为相应子块。

一种视频编/解码器中运动信息的获取装置,包括:输入单元、预测单元和计算单元;

所述输入单元,用于获取当前处理块/子块的第一参考块集中各参考块的运动矢量;还用于确定当前处理块/子块的第二参考块集中各参考块的运动矢量第一预测残差值;所述第一参考块集中包括用于进行当前处理块/子块运动矢量预测的参考块;所述第二参考块集中包括用于进行当前处理块/子块的运动矢量第一预测残差值预测的参考块;

所述预测单元,用于根据所述第一参考块集中各参考块的运动矢量计算所述当前处理块的运动矢量第一预测值,还用于根据所述第二参考块集中各参考块的运动矢量第一预测残差值,对所述当前处理块/子块的运动矢量第一预测残差进行预测,得到运动矢量第一预测残差预测值;

所述计算单元,用于根据当前处理块/子块的所述运动矢量第一预测残差预测值和所述运动矢量第一预测值,确定所述当前处理块/子块的运动矢量第二预测值,将其作为所述当前处理块/子块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选,用于进行所述当前处理块/子块的编/解码处理。

由上述本申请的技术方案可以看到,本申请对当前处理块/子块进行运动矢量进行预测得到运动矢量第一预测值后,再利用第二参考块集中的参考块的运动矢量第一预测残差值,对当前处理块/子块的运动矢量第一预测残差值进行预测,导出运动矢量第一预测残差预测值,然后根据运动矢量第一预测残差预测值和运动矢量第一预测值,得到运动矢量第二预测值,作为当前处理块/子块最终的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量。通过上述方式,充分利用参考块与当前处理块/子块在预测残差上的相关性,估计当前处理块/子块的预测残差,进而对运动矢量第一预测值进行修正,得到更为准确的运动矢量第二预测值,这样可以大大提高对运动信息估计的准确性,提高编码性能。

附图说明

图1为本申请提供的获取运动矢量的总体方法流程图;

图2为本申请提供的实施例一的流程图;

图3为本申请提供的实施例中的一种当前处理块的第一类参考块示意图;

图4为本申请提供的实施例二的流程图;

图5为本申请提供的实施例中的一种当前处理块的第二类参考块示意图;

图6为本申请提供的实施例三的流程图;

图7为本申请提供的实施例四的流程图;

图8为本申请提供的实施例五的流程图;

图9为本申请提供的实施例中的一种当前处理块的第一类参考块示意图;

图10为本申请提供的实施例中的一种当前处理块的第二类参考块示意图;

图11为本申请提供的实施例六的流程图;

图12为本申请提供的实施例中的一种当前处理块的第一类参考块示意图;

图13为本申请提供的实施例中的一种当前处理块的第二类参考块示意图;

图14为本申请提供的实施例中的运动信息获取装置示意图;

图15为本申请提供的实施例中的运动信息获取装置中的预测单元结构示意图;

图16为本申请提供的实施例中的运动信息获取装置中的计算单元结构示意图。

具体实施方式

为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。

如背景技术中所述,在现有视频编/解码的处理方法中,只对运动矢量进行一次导出或预测,而对于空间上或时间上的相邻块而言,他们的预测残差之间仍然存在相关性,可以进一步利用该相关性提高编码性能。为了充分利用运动矢量预测残差之间的相关性,本申请提出一种获取运动矢量的方法,该方法的总体流程如图1所示,包括:

步骤101,根据当前处理块/子块的第一参考块集中各参考块的运动矢量,计算当前处理块的运动矢量第一预测值。

其中,第一参考块集中包括用于进行当前处理块/子块运动矢量的第一次预测或导出的参考块。

步骤102,确定当前处理块/子块的第二参考块集中各参考块的运动矢量第一预测残差值,根据该残差值,对当前处理块/子块的运动矢量第一预测残差进行预测,得到运动矢量第一预测残差预测值。

其中,第二参考块集中包括用于进行当前处理块/子块的运动矢量第一预测残差预测的参考块。

步骤103,根据当前处理块/子块的运动矢量第一预测残差预测值和所述运动矢量第一预测值,确定当前处理块/子块的运动矢量第二预测值。

至此,本申请中的运动信息获取方法流程结束。将上述流程获取的运动矢量第二预测值作为当前处理块/子块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选,用于进行当前处理块/子块的编/解码处理。由上述流程可见,本申请中的运动信息获取方法为可以看做是运动矢量二次预测或二次导出方法。具体地,在运动矢量预测中,对第一次预测得到的预测残差再进行一次预测,得到一次预测残差的预测值,然后结合两次预测得到最终的运动矢量预测值;在运动矢量导出中,先得到一个运动矢量导出值,然后根据相邻块第一预测残差信息再得到一个运动矢量预测残差值的导出值,然后结合两次导出值得到最终的运动矢量值,以提高导出的运动矢量的准确性。

其中,将当前处理块/子块的第一次预测的运动矢量预测值和第一次导出的运动矢量导出值称为运动矢量第一预测值。将通过本申请中的二次预测和二次导出得到的运动矢量估计结果称为运动矢量第二预测值。其中,在计算当前处理块/子块的运动矢量第一预测值和运动矢量第一预测残差预测值时可以采用在码流中传输导出信息的方法。当采用这种方法时,编码器将运动矢量第一预测值的导出信息和/或运动矢量第一预测残差预测值的导出信息写入码流,解码器结合码流中的所述信息来计算运动矢量第一预测值和/或运动矢量第一预测残差预测值。

此外,本方法中的两次预测或导出可以同时参考当前帧和参考帧上与当前块空间位置相邻或重合的块,或是两次分别参考当前帧和参考帧上与当前块空间位置相邻或重合的块,以最大限度去除时域和空域上不同块运动矢量之间的相关性,提高运动矢量编码效率。

同时,在本申请的运动信息获取方法中,当编码块被划分为子块处理时,可以逐个对子块采用本申请的方法获取相应子块的运动信息。因此,本申请对于以块为单位进行的运动信息获取和以子块为单位进行的运动信息获取均适用。下面通过几个实施例说明本申请的具体实现方式。

在实施例一到实施例四中,对于一个当前块确定一个运动信息,给出每个当前块导出运动信息的具体流程。在实施例五和实施例六中,将一个当前块划分为若干子块,为每个子块确定一个运动信息,给出每个当前块导出若干运动信息的具体流程。

实施例一:

图2本申请提供的实施例一的流程图;图3本申请提供的实施例中的一种当前处理块的第一类参考块示意图;如图2所示,本实施例的运动信息获取方法包含:

步骤201,确定当前处理块的第一参考块集。

本申请中,第一参考块集和第二参考块集至少包括第一类参考块、第二类参考块中的一类。第一类参考块为位于当前处理帧上与当前处理块相邻的已编/解码块。第二类参考块为位于参考帧上与当前处理块有空间位置重合或相邻的已编/解码块。

本实施例中,步骤201一种可能的实现方法为,第一参考块集只包含第一类参考块。如图3所示,当前处理块的第一类参考块有AL1、AL2、AU1、AU2、AU3、AC1和AC2。本实施例中设定当前处理块的第一参考块集中的参考块为:当前处理块左上顶点上边的相邻块AU1、当前处理块左上顶点左边相邻块AL2和当前处理块左上顶点左上相邻块AC2。

步骤202,获取步骤201中的第一参考块集中的各个参考块的运动矢量。

特别地,步骤202获取运动矢量时,若某个参考块的运动矢量不存在,则返回该块运动矢量不存在指示。

步骤203,由步骤202所获运动矢量计算当前处理块的运动矢量第一预测值。

本步骤中,可以采用与现有编/解码方法中对当前处理块进行预测或运动矢量导出相同的方式,计算运动矢量第一预测值。

具体地,本实施例中步骤203的一种可能实现方法为分别按照水平分量和垂直分量,计算获取的运动矢量的平均值作为该当前处理块的运动矢量预测值。特别地,当第一参考块集中的参考块运动矢量不存在时,可以将该不存在的运动矢量设置为零矢量。

另外,考虑到第一参考块集中参考块所在帧及其参考帧的距离,与当前处理块所在帧及其参考帧的距离可能不同,因此,为提高编/解码性能,优选地,可以在步骤203确定运动矢量第一预测值前,先按照第一参考块集中的参考块的所在帧与其参考帧之间的距离和当前处理块所在帧与其参考帧之间的距离,对第一参考块集中的参考块的运动矢量进行缩放,再利用缩放后的运动矢量计算当前处理块的运动矢量第一预测值,从而提高第一预测值的准确性。

步骤204:确定当前处理块的第二参考块集。

具体地,步骤204一种可能的实现方法为第二参考块集只包含第一类参考块。如图3所示,当前处理块的第一类参考块有AL1、AL2、AU1、AU2、AU3、AC1和AC2。本实施例中设定当前处理块的第二参考块集内的参考块为当前处理块左上顶点上边的相邻块AU1、当前处理块左上顶点左边相邻块AL2和当前处理块左上顶点左上相邻块AC2。

步骤205:获取步骤204中的第二参考块集中的各个参考块的运动矢量及运动矢量第一预测值,并计算该参考块的运动矢量第一预测残差值。

特别地,在步骤205获取第二参考块集中的参考块的运动矢量及运动矢量第一预测值时,若某参考块的运动矢量及运动矢量第一预测值不是同时存在,则返回该块运动矢量第一预测残差值不存在指示。

第二参考块集中的各个参考块均是已编码块,因此,系统已经产生了相应参考块的运动矢量和运动矢量第一预测值。这里,直接获取已经产生的各个参考块的运动矢量和运动矢量第一预测值,并将运动矢量减去运动矢量第一预测值,得到相应参考块的运动矢量第一预测残差值。

与前述步骤203中类似地,考虑到第二参考块集中的参考块所在帧及其参考帧的距离,与当前处理块所在帧及其参考帧的距离可能不同,因此,为提高编/解码性能,优选地,在步骤205确定运动矢量第一预测残差值前,可先按照当前处理块的第二参考块集中的参考块的所在帧与其参考帧之间的距离、当前处理块所在帧与其参考帧之间的距离对当前处理块的第二参考块集中的参考块的运动矢量和运动矢量第一预测值进行缩放,从而提高相应参考块的运动矢量第一预测残差值的准确性。

同时,当第二参考块集中的参考块A在作为当前处理块利用图2的流程导出运动信息时,若在步骤203中,该参考块A的第一参考块集中的参考块的运动矢量没有进行缩放处理,还可以在本步骤中,根据参考块A的第一参考块集中的参考块的所在帧与其参考帧之间的距离、参考块A所在帧及其参考帧之间的距离,对参考块A的运动矢量第一预测值进行缩放。或者,当第二参考块集中的参考块A在作为当前处理块利用图2的流程导出运动信息时,若在步骤203中,该参考块A的第一参考块集中的参考块B的运动矢量没有进行完全的缩放处理(即缩放比例没有完全补偿参考块A所在帧及其参考帧间的距离与参考块B所在帧及其参考帧间的距离差),还可以在本步骤中,对参考块A的运动矢量第一预测值做进一步缩放,以完全补偿相应的距离差。再利用缩放后的运动矢量进行上一段中描述的缩放处理及本步骤中的第一预测残差值的计算。

步骤206:由步骤205所获运动矢量第一预测残差值计算当前处理块的运动矢量第一预测残差预测值。

根据第二参考块集中参考块的第一预测残差值,对当前处理块的运动矢量第一预测残差进行预测。具体预测方式可以根据需要选择,例如,可以对各参考块的第一预测残差值求加权平均等的方式,或者分别按照水平分量和竖直分量取中间大小值的方式,或者采用现有对运动矢量进行预测的方式。

本实施例中,步骤206一种可能的实现方法为取步骤205中所获运动矢量第一预测残差值的最小值为当前处理块运动矢量第一预测残差预测值。特别地,若第二参考块集中的某个参考块的运动矢量第一预测残差值不存在时,可不将其纳入计算过程,若第二参考块集中的参考块的运动矢量第一预测残差值都不存在时,可以设当前处理块的运动矢量第一预测残差预测值为零矢量。

与前述步骤203类似地,考虑到第二参考块集中的参考块所在帧及其参考帧的距离,与当前处理块所在帧及其参考帧的距离可能不同,如果在步骤205中没有根据第二参考块集中的参考块所在帧及其参考帧的距离,与当前处理块所在帧及其参考帧的距离,对第二参考块集中参考块的运动矢量和运动矢量第一预测值进行缩放处理,或者缩放处理不完全,优选地,在步骤206导出运动矢量第一预测残差预测值前,可先按照第二参考块集中的参考块所在帧与其参考帧之间的距离和当前处理块所在帧与其参考帧之间距离对相应参考块的运动矢量第一预测残差值进行缩放。

步骤207:由当前处理块的运动矢量第一预测值和运动矢量第一预测残差预测值导出当前处理块的运动矢量第二预测值。

其中,确定运动矢量第二预测值的方式可以为:对运动矢量第一预测值和第一预测残差预测值求和或加权求和。

与前述步骤203类似地,考虑到两个参考块集中的参考块所在帧及其参考帧的距离,与当前处理块所在帧及其参考帧的距离可能不同,为提高编/解码性能,如果在前述步骤中,没有根据第一参考块集中的参考块所在帧及其参考帧的距离,与当前处理块所在帧及其参考帧的距离,对第一参考块集中参考块的运动矢量或当前处理块的第一预测值进行缩放,或者缩放不完全,优选地,在步骤207计算运动矢量第二预测值前,可按照第一参考块集中的参考块所在帧与其参考帧之间的距离和当前处理块所在帧与其参考帧之间的距离对运动矢量第一预测值进行缩放;如果在前述步骤中,没有根据第二参考块集中的参考块作为当前块处理时其第一参考块集中的参考块的所在帧及其参考帧的距离,第二参考块集中的参考块所在帧及其参考帧的距离,与当前处理块所在帧及其参考帧的距离,对第二参考块集中参考块的运动矢量和运动矢量第一预测值、或者第二参考块集中参考块的第一预测残差值进行缩放处理,或缩放不完全,优选地,在步骤207导出运动矢量第二预测值前,可按照第二参考块集中的参考块所在帧与其参考帧之间的距离和当前处理块所在帧与其参考帧之间的距离对当前处理块的运动矢量第一预测残差预测值进行缩放。

在通过步骤207确定运动矢量第二预测值后,将该运动矢量第二预测值作为当前处理块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选,用于进行当前处理块的编/解码处理。

至此,实施例一中的方法流程结束。

实施例二:

图4为本申请提供的实施例二的流程图;图3本申请提供的实施例中的一种当前处理块的第一类参考块示意图;图5本申请提供的实施例中的一种当前处理块的第二类参考块示意图。如图4所示,本实施例的运动信息获取方法包含:

步骤401,确定当前处理块的第一参考块集。

本实施例中,步骤401一种可能的实现方法为,第一参考块集只包含第一类参考块。如图3所示,当前处理块的第一类参考块有AL1、AL2、AU1、AU2、AU3、AC1和AC2。本实施例中设定当前处理块的第一参考块集内的参考块为:当前处理块左上顶点上边的相邻块AU1、当前处理块左上顶点左边相邻块AL2、当前处理块左上顶点左上相邻块AC2和当前处理当前右上顶点右上相邻块AU3。

步骤402,获取步骤401中的第一参考块集中的各个参考块的运动矢量。

特别地,步骤402获取运动矢量时,若某个参考块运动矢量不存在,则返回该块运动矢量不存在指示。

具体地可以采用现有的运动矢量返回方式。一种运动矢量可能的返回方法为:当AU3块存在运动矢量时,返回AU3的运动矢量,记为mv3,不返回AC2的运动矢量;当AU3不存在运动矢量而AC2存在运动矢量时,返回AC2的运动矢量,记为mv3;当AU3和AC2同时不存在运动矢量时,则返回零矢量,记为mv3。当AU1和AL2存在运动矢量时,返回AU1和AL2的运动矢量,记为mv1和mv2;当AU1和AL2不存在运动矢量时,都返回零矢量,记为mv1和mv2。其中,当某个块本身就不存在时,可以认为该块不存在运动矢量来进行处理。此处理方法同样适用于本申请中其他的实施例。

步骤403,由步骤402所获运动矢量导出当前处理块的运动矢量第一预测值。

其中,可以采用与现有编/解码方法中对当前处理块进行预测或运动矢量导出相同的方式,计算运动矢量第一预测值。

具体地,本实施例中步骤403的一种可能实现方法为,记mv1的水平分量和垂直分量分别为mv1_x和mv1_y,记mv2水平分量和垂直分量分别为mv2_x和mv2_y,mv3的水平分量和垂直分量分别为mv3_x和mv3_y。若mv1_x与mv2_x同号,则取两者平均值为当前处理块运动矢量第一预测值的水平分量值,若mv1_x与mv2_x异号,则取mv1_x和mv2_x中与mv3_x同号的一个与mv3_x的平均值为当前处理块运动矢量第一预测值的水平分量值;若mv1_y与mv2_y同号,则取两者平均值为当前处理块运动矢量第一预测值的垂直分量值,若mv1_y与mv2_y异号,则取mv1_y和mv2_y中与mv3_y同号的一个与mv3_y的平均值作为当前处理块运动矢量第一预测值的垂直分量值。特别地,当某个参考块的运动矢量第一值不存在时,可以将其设为零矢量。

本实施例中,在确定出当前处理块的运动矢量和运动矢量第一预测值后,计算当前处理块的运动矢量第一预测残差值,用于当前处理块作为后续处理块的第二参考块集中的参考块使用时,可以直接获取相应的运动矢量第一预测残差值。

与实施例一中相同地,本步骤还可以进行运动矢量的缩放,这里就不再赘述。

步骤404:确定当前处理块的第二参考块集。

具体地,步骤404一种可能的实现方法为第二参考块集包含第一类参考块和第二类参考块。如图3所示,当前处理块的第一类参考块有AL1、AL2、AU1、AU2、AU3、AC1和AC2。本实施例中设定当前处理块的第二参考块集内的第一类参考块为当前处理块左上顶点上边的相邻块AU1、当前处理块左上顶点左边相邻块AL2、当前处理块左上顶点左上相邻块AC2。如图5所示,当前处理块的第二类参考块有B1、B2、B3、B4、B5、B6和B7,其中B1、B2、B3、B4为与当前处理块有空间位置重合的块,B5、B6、B7为与当前处理块有空间位置相邻的块。本实施例中设定当前处理块的第二参考块集内的第二类参考块为包含与当前处理块左上顶点有相同空间位置的点的块B1和包含与当前处理块右下顶点有相同空间位置的点的块B4。

步骤405:获取步骤404中的第二参考块集中的各个参考块的运动矢量第一预测残差值。

本实施例中,在对当前处理块确定出运动矢量和运动矢量第一预测值后,即计算当前处理块的运动矢量第一预测残差值并进行保存。在本步骤中,第二参考块集中的各个参考块均是已编码块,因此其运动矢量第一预测残差值就是已经产生并保存的,所以这里可以直接获取第二参考块集中各个参考块的运动矢量第一预测残差值。

特别地,在步骤405获取运动矢量第一预测残差值时,若某个参考块的运动矢量第一预测残差值不存在,则返回该参考块的运动矢量第一预测残差值不存在指示。

步骤406:由步骤405所获运动矢量第一预测残差值计算当前处理块的运动矢量第一预测残差预测值。

具体地,步骤406一种可能的实现方法为由编码器在步骤405所获的存在的运动矢量第一预测残差值和零矢量值中选择一个值作为当前处理块运动矢量第一预测残差预测值,并将所选值的索引值写入码流;解码器根据码流中的所述索引值在步骤405中所获得的存在的运动矢量第一预测残差值和零矢量值中选择正确的值作为当前处理块运动矢量第一预测残差预测值。其中,码流中传输的索引值即可看作前述图1流程说明中提到的通过在码流中传输导出信息来计算当前处理块/子块的第一预测残差预测值的方法中的所述的运动矢量第一预测残差预测值的导出信息。

与实施例一中相同地,本步骤还可以进行运动矢量第一预测残差值的缩放,这里就不再赘述。

步骤407:由当前处理块的运动矢量第一预测值和运动矢量第一预测残差预测值计算当前处理块的运动矢量第二预测值。

本步骤的处理与实施例一中的步骤207相同,这里就不再赘述。

在通过步骤407确定运动矢量第二预测值后,将该运动矢量第二预测值作为当前处理块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选,用于进行当前处理块的编/解码处理。

至此,实施例二的流程结束。

在前面两个实施例中,都是先计算当前处理块的运动矢量第一预测值,再计算当前处理块的运动矢量第一预测残差预测值;事实上,这两个量的获取可以是并行的,或者先计算运动矢量第一预测残差预测值,再计算运动矢量第一预测值。在实施例三和实施例四中,就以先计算运动矢量第一预测残差预测值再计算运动矢量第一预测值为例,说明本申请中的运动信息获取方法。

实施例三:

图6为本申请提供的实施例三的流程图,图5本申请提供的实施例中的一种当前处理块的第二类参考块示意图。如图3所示,本实施例中的运动信息获取方法包含:

步骤601:确定当前处理块的第二参考块集。

具体地,步骤601一种可能的实现方法为第二参考块集只包含第二类参考块。如图8所示,当前处理块的第二类参考块有B1、B2、B3、B4、B5、B6和B7,其中B1、B2、B3、B4为与当前处理块有空间位置重合的块,B5、B6、B7为与当前处理块有空间位置相邻的块。本实施例中设定当前处理块的第二参考块集内的参考块为包含与当前处理块中心点有相同空间位置的点的块B1、包含与当前处理块左上顶点有相同空间位置的点的块B1和包含与当前处理块右下顶点有相同空间位置的点的块B4。

步骤602:获取步骤601中的第二参考块集中的参考块的运动矢量及运动矢量第一预测值,并计算该参考块的运动矢量第一预测残差值。

本步骤的处理与实施例一种步骤202相同。特别地,在步骤602获取第二参考块集中的参考块的运动矢量及运动矢量第一预测值时,若某个块的运动矢量和运动矢量第一预测值不是同时存在,若则返回该参考块的运动矢量第一预测残差值不存在指示。

与实施例一中相同地,本步骤还可以进行运动矢量的缩放,这里就不再赘述。

步骤603:由步骤602所获运动矢量第一预测残差值计算当前处理块的运动矢量第一预测残差预测值。

步骤603可以采用现有的对运动矢量预测的方法对当前处理块的运动矢量第一预测残差进行预测。

具体地,步骤603一种可能的实现方法为按照水平分量和垂直分量,在步骤602中所获运动矢量第一预测残差值中选择取值大小位于中间的值作为当前处理块的运动矢量第一预测残差预测值的相应分量值。特别地,若第二参考块集中的存在参考块的运动矢量第一预测残差值不存在或为零时,将零矢量作为当前处理块运动矢量第一预测残差预测值。

或者步骤603另一种可能实现方式为由编码器在步骤602所获的存在的运动矢量第一预测残差值中选择一个值作为当前处理块运动矢量第一预测残差预测值并将所选值的索引值写入码流;解码器根据码流中的所述索引值在步骤602中所获得的存在的运动矢量第一预测残差值中选择正确的值作为当前处理块运动矢量第一预测残差预测值。其中,码流中传输的索引值即可看作前述图1流程说明中提到的通过在码流中传输导出信息来计算当前处理块/子块的第一预测残差预测值的方法中所述的运动矢量第一预测残差预测值的导出信息。

与实施例一中相同地,本步骤还可以进行运动矢量的缩放,这里就不再赘述。

步骤604:确定当前处理块的第一参考块集。

具体地,步骤604一种可能的实现方法为第一参考块集只包含第二类参考块。如图5所示,当前处理块的第二类参考块有B1、B2、B3、B4、B5、B6和B7,其中B1、B2、B3、B4为与当前处理块有空间位置重合的块,B5、B6、B7为与当前处理块有空间位置相邻的块。本实施例中设定当前处理块的第二参考块集的参考块为包含与当前处理块左上顶点有相同空间位置的点的块B1和包含与当前处理块右下顶点有相同空间位置的点的块B4。

步骤605:获取步骤604中的第一参考块集中的参考块的运动矢量。

特别地,步骤605获取运动矢量时,若参考块不存在运动矢量,则返回该参考块的运动矢量不存在指示。

步骤606:由步骤605所获运动矢量计算当前处理块的运动矢量第一预测值。

其中,可以采用与现有编/解码方法中对当前处理块进行预测或运动矢量导出相同的方式,计算运动矢量第一预测值。

具体地,本实施例中步骤606的一种可能实现方法为:由编码器在步骤605所获的存在的运动矢量中选择一个值作为当前处理块运动矢量第一预测值,并将所选值的索引值写入码流;解码器根据码流中的所述索引值在步骤605中所获得存在的运动矢量中选择正确的值作为当前处理块运动矢量第一预测值。特别地,若第一参考块集中的参考块运动矢量不存在时,可以将该块的不存在的运动矢量设置为零矢量。其中,码流中传输的索引值即可看作前述图1流程说明中提到的通过在码流中传输导出信息来计算当前处理块/子块的第一预测值的方法中所述的运动矢量第一预测值的导出信息。

与实施例一中相同地,本步骤还可以进行运动矢量的缩放,这里就不再赘述。

步骤607:根据当前处理块的运动矢量第一预测值和运动矢量第一预测残差预测值,计算当前处理块的运动矢量第二预测值。

本步骤的处理与实施例一中的步骤207相同,这里就不再赘述。

在通过步骤607确定运动矢量第二预测值后,将该运动矢量第二预测值作为当前处理块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选,用于进行当前处理块的编/解码处理。

至此,本实施例中的方法流程结束。

实施例四:

图7为本申请提供的实施例四的流程图,图3为本实施例中的一种当前处理块的第一类参考块示意图,图5为本实施例中的一种当前处理块的第二类参考块示意图;如图7所示,本实施例中的运动信息获取方法包含:

步骤701:确定当前处理块的第二参考块集。

具体地,步骤701一种可能的实现方法为第二参考块集只包含第二类参考块。如图5所示,当前处理块的第二类参考块有B1、B2、B3、B4、B5、B6和B7,其中B1、B2、B3、B4为与当前处理块有空间位置重合的块,B5、B6、B7为与当前处理块有空间位置相邻的块。本实施例中设定当前处理块的第二参考块集内的参考块为位于与当前处理块左上顶点有相同空间位置的点的上边块B1、位于与当前处理块左上顶点有相同空间位置的点的左边块B1、位于与当前处理块左上顶点有相同空间位置的点的左上块B1。

步骤702:获取步骤701中的第二参考块集中的参考块的运动矢量第一预测残差值。

本步骤的处理与实施例二中的步骤405相同。特别地,步骤702获取第二参考块集中的参考块的运动矢量第一预测残差值时,若参考块的运动矢量第一预测残差值不存在,则返回该参考块的运动矢量第一预测残差值不存在指示。

与实施例一中相同地,本步骤还可以进行运动矢量的缩放,这里就不再赘述。

步骤703:由步骤702所获运动矢量第一预测残差值,计算当前处理块的运动矢量第一预测残差预测值。

步骤703具体地计算残差预测值的方式可以采用现有的对运动矢量进行预测的方式对当前处理块的运动矢量第一预测残差进行预测。

具体地,一种可能的实现方法为,记步骤702中上边块B1返回的运动矢量第一预测残差值为mvd_U,左边块B1返回的运动矢量第一预测残差值为mvd_L,左上块B1返回的运动矢量第一预测残差值为mvd_LU。计算mvd_L、mvd_U和mvd_LU之间的两两距离,d12=|mvd_L-mvd_U|,d13=|mvd_L-mvd_LU|,d23=|mvd_U-mvd_LU|。若d12为d12、d13和d23中最小值时,取mvd_LU为当前处理块的运动矢量第一预测残差预测值;若d13为d12、d13和d23中最小值时,取mvd_U为当前处理块的运动矢量第一预测残差预测值;若d23为d12、d13和d23中最小值时,取mvd_L为当前处理块的运动矢量第一预测残差预测值。特别地,当某个参考块的运动矢量第一预测残差值存在且为零时,可以将当前处理块运动矢量第一残差预测值其设为零矢量。

与实施例一中相同地,本步骤还可以进行运动矢量的缩放,这里就不再赘述。

步骤704,确定当前处理块的第一参考块集。

具体地,步骤704一种可能的实现方法为第一参考块集包含第一类参考块和第二类参考块。如图3所示,当前处理块的第一类参考块有AL1、AL2、AU1、AU2、AU3、AC1和AC2。如图5所示,当前处理块的第二类参考块有B1、B2、B3、B4、B5、B6和B7,其中B1、B2、B3、B4为与当前处理块有空间位置重合的块,B5、B6、B7为与当前处理块有空间位置相邻的块。本实施例中设定当前处理块的第一参考块集内的参考块为当前处理块左上顶点左上的相邻块AC2、当前处理块右上顶点右上相邻块AU3、当前处理块左下顶点左下相邻块AC1以及参考帧上包含与当前处理块中心点有相同空间位置的点的块B1。

步骤705,获取步骤704中的第一参考块集中的参考块的运动矢量。

特别地,步骤705获取运动矢量时,若某个参考块运动矢量不存在,则返回该参考块运动矢量不存在指示。

步骤706,由步骤705所获运动矢量导出当前当前处理块的运动矢量第一预测值。

其中,可以采用与现有编/解码方法中对当前处理块进行预测或运动矢量导出相同的方式,计算运动矢量第一预测值。

具体地,本实施例中步骤706的一种可能实现方法为计算AC1的运动矢量mv1、AC2的运动矢量mv2和AC3的运动矢量mv3的平均值mva,取B1块的运动矢量为mvb,再取mva和mvb中模较小者作为当前处理块的运动矢量第一预测值。特别地,当mv1、mv2、mv3中有不存在的运动矢量时可以将其设为零矢量,当mvb不存在时,直接将mva作为处理块的运动矢量第一预测值。

本实施例中,与实施例二类似地,在确定出当前处理块的运动矢量和运动矢量第一预测值后,计算当前处理块的运动矢量第一预测残差值,用于当前处理块作为后续处理块的第二参考块集中的参考块使用时,可以直接获取相应的运动矢量第一预测残差值。

与实施例一中相同地,本步骤还可以进行运动矢量的缩放,这里就不再赘述。

步骤707:根据由当前处理块的运动矢量第一预测值和运动矢量第一预测残差预测值,计算导出当前处理块的运动矢量第二预测值。

本步骤的处理与实施例一中的步骤207相同,这里就不再赘述。

在通过步骤707确定运动矢量第二预测值后,将该运动矢量第二预测值作为当前处理块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选,用于进行当前处理块的编/解码处理。

至此,本实施例中的方法流程结束。

实施例五:

图8为本申请提供的实施例五的流程图,图9为本实施例中的一种当前处理块的第一类参考块示意图,图10为本实施例中的一种当前处理块的第二类参考块示意图。如图8所示,本实施例中的运动信息获取方法包含:

步骤801,将当前处理块E按图9划分为四个子块E1、E2、E3和E4。

本实施例中,对于一个处理块划分为四个子块,对于每个子块应用上述本申请提供的方法计算相应的运动信息。具体地,可以如下进行:

步骤802,分别确定每个当前处理子块的第一参考块集。

对于同一处理块中的不同子块,第一参考块集中包括的参考块可以完全相同,也可以部分相同,或者还可以完全不同。

本实施例中,步骤802一种可能的实现方法为:各个子块具有相同的第一参考块集,且都只包含第二类参考块。如图10所示,E1、E2、E3和E4的第二类参考块有B1、B2、B3、B4和B5。本实施例中设定当前处理子块的第一参考块集中的参考块为包含与当前处理子块所在块的中心点空间位置相同的点的块。具体地说,对于E1,其第一参考块集为B1;对于E2,其第一参考块集为B3,;对于E3,其第一参考块集为B4;对于E4,其第一参考块集为B1。

其中,若某处理子块的第一参考块集中的参考块a,在确定其运动信息时是以子块为单位进行的,则该参考块a为相应的子块。换句话说,第一参考块集中的参考块可以是块或者是子块,若某单一运动信息对应的是块,则对应的参考块为块,若某单一运动信息对应的是子块,则对应的参考块为子块。

例如,当前处理子块所在块的相邻已编码块有块A,A在确定其运动信息时,将A划分为子块A1和子块A2分别计算对应的运动信息,其中,A1与当前处理子块或当前子块所在的块相邻,A2不与当前处理子块和当前子块所在的块相邻。假定当前处理子块的第一参考块集中包括的是与当前处理子块相邻的块或子块,那么该第一参考块集中包括的参考块应当是子块A1,而不是块A(因为块A不是对应单一运动信息,而是对应子块A1和子块A2的运动信息),子块A2由于与当前处理子块和当前处理子块所在的块不是相邻的关系也不属于第一参考块集中。

步骤803,获取步骤802中的各个处理子块的第一参考块集中的各个参考块的运动矢量。

获取参考块运动矢量的方式与现有方式相同。特别地,步骤803获取运动矢量时,若某个参考块的运动矢量不存在,则返回该参考块运动矢量不存在指示。

步骤804,根据步骤803所获取的各个参考块的运动矢量分别对应计算每个当前处理子块的运动矢量第一预测值。

其中,利用参考块的运动矢量确定当前处理子块的运动矢量第一预测值的方式与现有的运动矢量预测和导出方式可以相同。而确定每个当前处理子块的运动矢量第一预测值的方法可以相同或不同。具体地,步骤804的一种可能实现方法为直接将每个当前处理子块的第一参考块集中的参考块的运动矢量作为该当前处理子块的运动矢量第一预测值。特别地,若某当前处理子块的第一参考块集中的参考块不存在运动矢量,则设该当前处理子块的运动矢量第一预测值为零矢量,或跳过步骤805至808,采用其他预测方式直接导出当前子块的运动矢量第二预测值作为相应的当前处理子块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选。。

与步骤203相类似地,本步骤可以针对每个当前处理子块,进行第一参考块集中参考块的运动矢量缩放。

步骤805:分别确定每个当前处理子块的第二参考块集。

可以根据实际需要确定当前处理子块的第二参考块集。具体地,步骤805一种可能的实现方法为:E1和E2具有不同或相同的第二参考块集,但且都只包含第一类参考块。如图9所示,E1、E2、E3和E4第一类参考块有AL1、AC1、AU1、AU2和AU3。本实施例中设定,E1、E2、E3和E4E1的第一参考块集中的参考块为E1左上顶点左边块AL1、E1左上顶点上边块AU1和E1左上顶点左上块AC1,若E1左上顶点左边块AL1不存在运动矢量时,则用E3左上顶点左边块AL1代替,若E1左上顶点上边块AU1不存在运动矢量时,则用E2左上顶点上边块AU2代替。

步骤806:分别获取每个当前处理子块的第二参考块集中的参考块的运动矢量及运动矢量第一预测值,并计算该参考块运动矢量第一预测残差值。

本步骤的处理与实施例一的步骤205类似,区别仅在于本步骤中需要针对每个当前处理子块进行一次相应操作。特别地,由于本例中各个子块的第二参考块集相同所以可以只进行一次操作。在步骤806获取第二参考块集中的参考块的运动矢量及运动矢量第一预测值时,若某个块的运动矢量及运动矢量第一预测值不是同时存在,否则返回该参考块运动矢量第一预测残差值不存在指示。

与步骤205相类似地,本步骤可以针对每个当前处理子块,进行第二参考块集中参考块的运动矢量和运动矢量第一预测值的缩放。

步骤807:根据步骤806所获取的运动矢量第一预测残差值分别计算每个当前处理子块的运动矢量第一预测残差预测值。

对于每个处理子块,采用相同或不同的方式计算运动矢量第一预测残差预测值,可以根据需要确定预测方式,例如选择前面几个实施例中给出的方式。本实施例中,具体地,步骤807一种可能的实现方法为分别取步骤806当前处理子块的第二参考块集中的参考块的存在的运动矢量第一预测残差值的平均值作为该处理子块的运动矢量第一预测残差预测值。特别地,当某当前处理子块的第二参考块集中的参考块的运动矢量第一预测残差值都不存在时,则设其的第一预测残差预测值为零。或者,步骤807的另一种可能的实现方法为:由编码器在步骤806所获的存在的运动矢量第一预测残差值中选择一个直接作为当前处理子块运动矢量第一预测残差预测值,并将所选值的索引值写入码流;解码器根据码流中的所述索引值在步骤806中所获得的存在的运动矢量第一预测残差值中选择正确的值作为当前处理子块运动矢量第一预测残差预测值。其中,码流中传输的索引值即可看作前述图1流程说明中提到的通过在码流中传输导出信息来计算当前处理块/子块的第一预测残差预测值的方法中所述的运动矢量第一预测残差预测值的导出信息。特别地,各个子块可以共享运动矢量第一预测残差预测值,在这种情况下,对于整个当前块E只需要进行一次运动矢量第一预测残差预测值的计算,并且在码流中只需传输一个所选的运动矢量第一预测残差值的索引值。

与实施例一中步骤206类似地,本步骤可以针对每个当前处理子块,对第二参考块集中的参考块运动矢量第一预测残差值进行缩放。

步骤808:根据步骤807计算的每个当前处理子块的运动矢量第一预测值和运动矢量第一预测残差预测值,分别计算相应当前处理子块的运动矢量第二预测值,并将该运动矢量第二预测值作为相应的当前处理子块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选。

本步骤的处理与实施例一的步骤207类似,区别仅在于针对每个当前处理块进行一次处理。

在通过步骤808确定每个当前处理子块的运动矢量第二预测值后,将该运动矢量第二预测值作为相应处理子块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选,用于进行相应处理子块的编/解码处理。

至此,本实施例中的方法流程结束。

实施例六:

图11为本申请提供的实施例六的流程图,图12为本实施例中的一种当前处理子块的第一类参考块示意图,图13为本实施例中的一种当前处理子块的第二类参考块示意图。如图11所示,本实施例中的运动信息获取方法包含:

步骤1101,将当前处理块划分为E1和E2。

如图12所示,将当前处理块划分为E1和E2。依次对E1和E2执行下列步骤1102-1108。

步骤1102:确定当前处理子块的第二参考块集。

具体地,步骤1102一种可能的实现方法为E1和E2具有不同的第二参考块集,但都只包含第二类参考块。如图13所示,当前处理子块的第二类参考块有B1、B2、B3、B4和B5,其中B1、B2和B3为与E有空间位置重合的块,B4和B5为与E有空间位置相邻的块。本实施例中设定当前处理子块第一参考块集中的参考块为包含与当前处理子块中心点有相同空间位置的点的块。具体地说就是若当前处理子块为E1,则B1为其第二参考块集中的参考块;若当前处理子块为E2,则B2为其第二参考集中的参考块。

步骤1103:获取步骤1102中的第二参考块集中的参考块的运动矢量及运动矢量第一预测值,并计算其运动矢量第一预测残差值。

特别地,在步骤1103获取第二参考块集中的参考块的运动矢量及运动矢量第一预测值时,若第二参考块集中的参考块的运动矢量及运动矢量第一预测值不是同时存在则返回该参考块运动矢量第一预测残差值不存在指示。

与前述实施例中类似地,本步骤还可以进行运动矢量和运动矢量第一预测残差值的缩放。

步骤1104:由步骤1103所获取的运动矢量第一预测残差值,计算当前处理子块的运动矢量第一预测残差预测值。

具体地,步骤1104一种可能的实现方法为直接将步骤1103所获第二参考块集中的参考块的运动矢量第一预测残差值作为当前处理子块的运动矢量第一预测残差预测值。特别地,若当前处理子块的第二参考块集中的参考块的运动矢量第一预测残差值不存在时,设当前处理子块的第一预测残差预测值为零矢量。

与前述实施例类似地,本步骤中还可以对第一预测残差值进行缩放。

步骤1105:确定当前处理子块的第一参考块集。

具体地,步骤1105一种可能的实现方法为E1和E2具有不同的第一参考块集,但都只包含第一类参考块。如图12所示,E1和E2的第一类参考块有AL1、AL2、AC1、AU1、AU2和AU3。本实施例中设定当前处理子块的第一参考块集中的参考块为当前处理子块左上顶点左边块和当前处理子块所在左上顶点上边块。具体地说就是若当前处理子块为E1,则AL2和AU1为其第一参考块集中的参考块;若当前处理子块为E2,则E1和AU2为其的第一参考块集中的参考块。

步骤1106:获取步骤1105中的第一参考块集中的参考块的运动矢量。

特别地,步骤1106获取运动矢量时,若当前处理块的第一参考块集中的参考块运动矢量不存在,则返回运动矢量不存在指示。

步骤1107,由步骤1106所获运动矢量导出当前处理子块的运动矢量第一预测值。

具体地,步骤1107的一种可能实现方法为将当前处理子块的第一参考块集中的参考块的运动矢量的最小值作为当前处理子块的运动矢量第一预测值,若当前处理子块的第一参考块集中的参考块的运动矢量都不存在时,可将当前处理子块的运动矢量第一预测值设为零矢量。

与前述实施例类似地,本步骤中还可以对第一参考块集中第一参考块的运动矢量进行缩放。

步骤1108:根据步骤1107所获取的运动矢量第一预测值和运动矢量第一预测残差预测值,计算当前处理子块的运动矢量第二预测值,并将该运动矢量第二预测值作为当前处理子块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选。

本步骤的处理与实施例一步骤207中相同,区别仅在于本步骤是针对每个当前处理子块进行一次相应操作。

在通过步骤1108确定当前处理子块的运动矢量第二预测值后,将该运动矢量第二预测值作为当前处理子块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选,用于进行当前处理子块的编/解码处理。

至此,本实施例中的方法流程结束。本实施例与实施例五的区别在于,本实施例中对同一当前处理块中各个处理子块的运动矢量获取采用串行处理,实施例五中对各个处理子块的运动矢量获取采用并行处理。

实施例七:

图14为本申请提供的实施例中的运动信息获取装置示意图,图15为本实施例中的运动信息获取装置中的输入单元结构示意图,图16为本实施例中的运动信息获取装置中的预测单元结构示意图。如图14所示,本实施例提供一种编/解码器或视频编/解码系统中运动信息获取装置,包括输入单元141,预测单元142和计算单元143。

本实施例提供的输入单元141,用于输入当前处理块/子块的第一参考块集和第二参考块集的运动信息。一种可能的实现方法为,如图15所示,包含第一参考块集信息输入单元和第二参考块集信息输入单元。第一参考块集信息输入单元用于输入当前处理块/子块的第一参考块集的参考块的运动矢量;第二参考块集信息输入单元用于输入当前处理块/子块的第二参考块集的参考块的运动矢量第一预测残差值,也可以输入当前处理块/子块的第二参考块集的参考块的运动矢量和运动矢量第一预测值,并计算得到当前处理块/子块的第二参考块集的参考块的运动矢量第一预测残差值。

本实施例提供的预测单元142,用于计算当前处理块/子块的运动矢量第一预测值和运动矢量第一预测残差预测值。一种可能的实现方法为,如图16所示,包括用于计算当前处理块/子块的运动矢量第一预测值的运动矢量第一预测值计算单元和用于计算当前处理块/子块的运动矢量第一预测残差预测值的运动矢量第一预测残差预测值计算单元。

本实施例提供的计算单元143,用于根据当前处理块/子块的运动矢量第一预测值和运动矢量第一预测残差预测值计算其运动矢量第二预测值。在计算得到当前处理块/子块的运动矢量第二预测值后,将该运动矢量第二预测值作为当前处理块/子块的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选,用于进行当前处理块/子块的编/解码处理。

由上述本申请的具体实现可见,本申请通过先利用第一参考集块中的参考块对当前处理块/子块进行运动矢量的预测,得到其运动矢量一次预测值,再利用第二参考块集中的参考块对当前处理块/子块进行运动矢量一次预测残差的预测,得到一次预测残差预测值,最终根据运动矢量一次预测值和一次预测残差预测值得到当前运动矢量二次预测值,并将该运动矢量二次预测值作为当前处理块/子块的最终的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选,用于后续当前处理块/子块的编/解码处理。而现有技术则直接将运动矢量一次预测值作为当前处理块最终的运动矢量预测值、运动矢量预测值候选、运动矢量或运动矢量候选。因此本发明在原有运动矢量预测的基础上增加了第二次运动矢量预测,利用运动矢量一次预测残差预测值来提高运动矢量预测和导出的准确性。对应于背景技术中提到的第一种编/解码方法,由于运动矢量预测值准确性的提高,使得需要传输的预测残差减小,从而提高了对运动矢量的压缩效率;对应于背景技术中提到的第二种编/解码方法,由于得到更优的运动矢量导出值,因此能够提高视频编码的性能。特别地,当第一参考块集只选用第一类参考块而第二参考块集只选用第二类参考块,或第一参考块集只选用第二类参考块而第二参考块集只选用第一类参考块时,可以在不增加两次预测各自复杂度下同时去除运动矢量空域和时域上的相关性,即可以以较小的代价获取更大的编码性能增益。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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