掌桥专利:专业的专利平台
掌桥专利
首页

一种运动矢量预测方法、装置与编解码器

文献发布时间:2023-06-19 11:06:50


一种运动矢量预测方法、装置与编解码器

技术领域

本申请涉及视频编解码技术领域,尤其涉及一种运动矢量预测方法、装置以及相应的编码器和解码器

背景技术

随着信息技术的发展,高清晰度电视,网络会议,IPTV,3D电视等视频业务迅速发展,视频信号以其直观性和高效性等优势成为人们日常生活中获取信息最主要的方式。由于视频信号包含的数据量大,需要占用大量的传输带宽和存储空间。为了有效的传输和存储视频信号,需要对视频信号进行压缩编码,视频压缩技术越来越成为视频应用领域不可或缺的关键技术。

发明内容

本发明实施例公开了一种视频编码器、视频解码器及相应方法。具体实现方式通过本申请中权利要求、说明书以及附图的描述是显而易见的。

第一方面,本发明涉及一种解码方法,也可以是一种运动矢量预测的方法,该方法包括:获得包括当前块的最优候选运动信息的候选运动信息列表的构建方式,和最优候选运动信息在候选运动信息列表中的索引;其中,所述候选运动信息列表的构建方式为构建基于块的候选运动信息列表或构建基于子块的候选运动信息列表中的一种;根据所述构建方式构建候选运动信息列表;根据所述索引在构建的候选运动信息列表中确定最优运动信息;根据所述最优运动信息对所述当前块进行预测。

应理解,在现有技术中,图像块可以分割成较小的子块,例如,通过迭代使用四叉树(quad-tree,QT)分割、二进制树(binary-tree,BT)分割或三叉树(triple-tree,TT)分割,或其任何组合进行分割。即一个图像块可以被划分出更多小的子块。

本方法将当前块(由于语言习惯的差异,在一些情形下可以指代当前图像块、当前编码块、当前解码块、当前待编码块或当前待解码块等,不应对发明构成任何限定)的候选运动信息列表进行了分类,将基于块(BLOCK)进行预测的候选运动信息和基于子块(SUB-BLOCK)进行预测的候选运动信息进行分类,并分别构建基于块的候选运动信息列表以及基于子块的候选运动信息列表。可以有效减少最优候选运动信息的传输代价。

根据第一方面,在一种可能的实现过程中,获得包括当前块的最优候选运动信息的候选运动信息列表的构建方式包括:获取用于确定候选运动信息列表的标识;其中,当前块采用的帧间预测模式为融合模式;其中,所述标识为第一特征值时,所述候选运动信息列表的构建方式为构建基于块的候选运动信息列表;所述标识为第二特征值时,所述候选运动信息列表的构建方式为构建基于子块的候选运动信息列表。应理解,第一特征值和第二特征值是用于表征两个值的称谓,并不构成任何限定。

可选的,第一特征值可以为0或1,第二特征值可以为1或0。可选的,标识的表示可以例如但不限于list-idx。可选的,基于块的方式构建的候选运动信息列表可以表示为list0(或list1),基于子块的方式构建的候选运动信息列表可以表示为list1(或list0)。应理解,本发明中对特征值的具体取值、标识或列表的具体表示符号不予以限定和穷举。

根据第一方面,在一种可能的实现过程中,所述基于块的候选运动信息列表包括基于HEVC标准定义的或HEVC标准的演进版本定义的融合模式所构建的候选运动信息列表。如将当前编码块空域或时域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一些可能的构建方式可以参见实施例S11.1中的相关描述。

根据第一方面,在一种可能的实现过程中,对于基于块的候选运动信息列表,其中的候选运动信息包括当前块空域或时域相邻已编码块的运动信息中的至少一个。候选运动信息列表中的候选运动信息可以全部是当前块空域或时域相邻已编码块的运动信息;还可以部分是当前块空域或时域相邻已编码块的运动信息,部分是其他方式得到的运动信息。

根据第一方面,在一种可能的实现过程中,基于子块的候选运动信息列表包括基于Affine model merge,Complex merge或ATMVP中的至少一种子块融合模式所构建的候选运动信息列表。基于子块的候选运动信息列表中的候选运动信息可以全部是基于Affinemodel merge方式推导得到的,也可以全部是基于Complex merge方式推导得到的,也可以是仅基于ATMVP方式推导得到的,也可以是基于多种不同的方式推导出来的。多种不同的方式可以是Affine model merge,Complex merge,ATMVP这三种方式的任意可能组合。在一些可能的情形下,候选运动信息列表还可以包括其他基于子块方式得到的运动信息。本发明不予以列举和赘述。

根据第一方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于运动模型的仿射变换融合模式(Affine model merge,AMM模式),将当前编码块空域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先找到一个仿射编码块,获得该仿射编码块的控制点的运动信息,进而基于仿射变换模型推导出当前编码块的左上顶点和右上顶点的运动信息,检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.1中的相关描述。

根据第一方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于控制点的复杂融合模式(Complex merge模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动矢量列表。一种具体实现方法例如但不限于:推导得到各个控制点的运动信息,将控制点的运动信息进行组合,得到非平动(仿射模型)的运动信息,按照预置的顺序遍历这些模型,对于模型合法的候选运动信息检查可用性并剔除重复项,插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.2中的相关描述。

根据第一方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于高级时域运动矢量预测(Advanced temporal motion vectorprediction,ATMVP)模式。即将ATMVP候选运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先确定对应位置参考帧(Collocated referencepicture),然后将当前编码单元(当前块)划分为M*N的子编码单元(子编码块),获取当前每一个子编码单元在对应位置参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息;检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表。一些可能的构建方式可以参见实施例S12.3中的相关描述。

根据第一方面,在一种可能的实现过程中,上述当前块的宽大于等于一个阈值,和/或当前块的高大于等于一个阈值。阈值的取值包括但不限于4、8、16等。

根据第一方面,在一种可能的实现过程中,如果最优运动信息是基于块的候选运动信息列表中的运动信息,则根据该最优运动信息对当前块进行预测。

根据第一方面,在一种可能的实现过程中,如果最优运动信息是基于子块的候选运动信息列表中的运动信息,则至少包括下列两种情形:

情形1:如果S23中确定出的最优运动信息是通过Affine方式(至少包括Affinemodel merge或Complex merge)得到的,则通过最优运动信息推导出当前块的子块对应的运动信息,并对当前块的子块进行预测。其中,当前块可以包括多个子块,当前块的子块可以泛指是多个子块中的任意一个。在一种可能的实现过程中,通过最优运动信息推导出当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

情形2:如果S23中确定出的最优运动信息是通过ATMVP模式得到的,则通过最优运动信息对当前块的子块进行预测。在一种可能的实现过程中,最优候选运动信息可以是一个运动信息组合,包含当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

情形3:如果S23中确定出的最优运动信息是指示通过ATMVP模式去获取的,则根据相应指示获取最优运动信息,并通过最优运动信息对当前块的子块进行预测。在一种可能的实现过程中,最优候选运动信息可以是通过一个指示信息指示获取的,通过指示信息可以基于ATMVP的方式获取到当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

第二方面,本发明涉及一种解码方法,也可以是一种运动矢量预测的方法,该方法包括:获取用于确定包括当前块的最优候选运动信息所在的候选运动信息列表的标识,和最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式;根据所述标识构建候选运动信息列表;其中,所述标识为第一特征值时,候选运动信息列表是基于块的候选运动信息列表;所述标识为第二特征值时,候选运动信息列表是基于子块的候选运动信息列表;根据所述索引在构建的候选运动信息列表中确定最优运动信息;根据所述最优运动信息对所述当前块进行预测。

根据第二方面,在一种可能的实现过程中,所述基于块的候选运动信息列表包括基于HEVC标准定义的或HEVC标准的演进版本定义的融合模式所构建的候选运动信息列表。如将当前编码块空域或时域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一些可能的构建方式可以参见实施例S11.1中的相关描述。

根据第二方面,在一种可能的实现过程中,对于基于块的候选运动信息列表,其中的候选运动信息包括当前块空域或时域相邻已编码块的运动信息中的至少一个。候选运动信息列表中的候选运动信息可以全部是当前块空域或时域相邻已编码块的运动信息;还可以部分是当前块空域或时域相邻已编码块的运动信息,部分是其他方式得到的运动信息。

根据第二方面,在一种可能的实现过程中,基于子块的候选运动信息列表包括基于Affine model merge,Complex merge或ATMVP中的至少一种子块融合模式所构建的候选运动信息列表。基于子块的候选运动信息列表中的候选运动信息可以全部是基于Affinemodel merge方式推导得到的,也可以全部是基于Complex merge方式推导得到的,也可以是仅基于ATMVP方式推导得到的,也可以是基于多种不同的方式推导出来的。多种不同的方式可以是Affine model merge,Complex merge,ATMVP这三种方式的任意可能组合。在一些可能的情形下,候选运动信息列表还可以包括其他基于子块方式得到的运动信息。本发明不予以列举和赘述。

根据第二方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于运动模型的仿射变换融合模式(Affine model merge,AMM模式),将当前编码块空域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先找到一个仿射编码块,获得该仿射编码块的控制点的运动信息,进而基于仿射变换模型推导出当前编码块的左上顶点和右上顶点的运动信息,检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.1中的相关描述。

根据第二方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于控制点的复杂融合模式(Complex merge模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动矢量列表。一种具体实现方法例如但不限于:推导得到各个控制点的运动信息,将控制点的运动信息进行组合,得到非平动(仿射模型)的运动信息,按照预置的顺序遍历这些模型,对于模型合法的候选运动信息检查可用性并剔除重复项,插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.2中的相关描述。

根据第二方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于高级时域运动矢量预测(Advanced temporal motion vectorprediction,ATMVP)模式。即将ATMVP候选运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先确定对应位置参考帧(Collocated referencepicture),然后将当前编码单元(当前块)划分为M*N的子编码单元(子编码块),获取当前每一个子编码单元在对应位置参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息;检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表。一些可能的构建方式可以参见实施例S12.3中的相关描述。

根据第二方面,在一种可能的实现过程中,上述当前块的宽大于等于一个阈值,和/或当前块的高大于等于一个阈值。阈值的取值包括但不限于4、8、16等。

第三方面,本发明涉及一种运动矢量预测的方法,该方法包括:若当前块的大小满足预设像素数,获取用于确定包括当前块的最优候选运动信息的候选运动信息列表的标识,和最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式;根据所述标识构建候选运动信息列表;其中,标识为第一特征值时,构建基于块的候选运动信息列表;所述标识为第二特征值时,构建基于子块的候选运动信息列表;根据所述索引在构建的候选运动信息列表中确定最优运动信息;根据所述最优运动信息对所述当前块进行预测。

根据第三方面,在一种可能的实现过程中,若当前块的大小不满足预设像素数时,则构建基于块的候选运动信息列表,并且获取最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式;根据获取到的索引在构建的候选运动信息列表中确定最优运动信息;根据所述最优运动信息对所述当前块进行预测。

该方案的发明构思是:首先判断当前块是否满足预设条件,如果满足预设条件,则获取能够指示当前块的最优候选运动信息的候选运动信息列表的标识,根据标识去构建基于块的候选运动信息列表或基于子块的候选运动信息列表;如果不满足预设条件,则只需构建基于块的候选运动信息列表;根据获取到的运动信息索引在构建的候选运动信息列表中确定出最优候选运动信息,并对当前块进行预测。

根据第三方面,在一种可能的实现过程中,当前块是否满足预设条件包括但不限于当前块的大小是否满足预设的像素数。

根据第三方面,在一种可能的实现过程中,所述当前块的大小满足预设像素数包括:所述当前块的宽大于等于一个阈值,和/或当前块的高大于等于一个阈值。

可选地,当前块的大小满足预设像素数为当前块的宽大于等于一个阈值时,当前块的大小不满足预设像素数为当前块的宽小于所述一个阈值;当前块的大小满足预设像素数为当前块的高大于等于一个阈值时,当前块的大小不满足预设像素数为当前块的高小于所述一个阈值;当前块的大小满足预设像素数为当前块的宽大于等于一个阈值,或高大于等于另一个阈值时,当前块的大小不满足预设像素数为当前块的宽小于所述一个阈值,且高小于所述另一个阈值;当前块的大小满足预设像素数为当前块的宽大于等于一个阈值,且高大于等于另一个阈值时,当前块的大小不满足预设像素数为当前块的宽小于所述一个阈值,或高小于所述另一个阈值。阈值的取值包括但不限于4、8、16等。应理解,本逻辑仅作举例不做限定,另外宽和高的大小关系本发明中也不做限定。

根据第三方面,在一种可能的实现过程中,所述基于块的候选运动信息列表包括基于HEVC标准定义的或HEVC标准的演进版本定义的融合模式所构建的候选运动信息列表。如将当前编码块空域或时域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一些可能的构建方式可以参见实施例S11.1中的相关描述。

根据第三方面,在一种可能的实现过程中,对于基于块的方式得到的候选运动信息列表中的候选运动信息可以全部是当前块空域或时域相邻已编码块的运动信息;还可以部分是当前块空域或时域相邻已编码块的运动信息,部分是其他方式得到的运动信息。

根据第三方面,在一种可能的实现过程中,基于子块的候选运动信息列表包括基于Affine model merge,Complex merge或ATMVP中的至少一种子块融合模式所构建的候选运动信息列表。基于子块的候选运动信息列表中的候选运动信息可以全部是基于Affinemodel merge方式推导得到的,也可以全部是基于Complex merge方式推导得到的,也可以是仅基于ATMVP方式推导得到的,也可以是基于多种不同的方式推导出来的。多种不同的方式可以是Affine model merge,Complex merge,ATMVP这三种方式的任意可能组合。在一些可能的情形下,候选运动信息列表还可以包括其他基于子块方式得到的运动信息。本发明不予以列举和赘述。

根据第三方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于运动模型的仿射变换融合模式(Affine model merge,AMM模式),将当前编码块空域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先找到一个仿射编码块,获得该仿射编码块的控制点的运动信息,进而基于仿射变换模型推导出当前编码块的左上顶点和右上顶点的运动信息,检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.1中的相关描述。

根据第三方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于控制点的复杂融合模式(Complex merge模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动矢量列表。一种具体实现方法例如但不限于:推导得到各个控制点的运动信息,将控制点的运动信息进行组合,得到非平动(仿射模型)的运动信息,按照预置的顺序遍历这些模型,对于模型合法的候选运动信息检查可用性并剔除重复项,插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.2中的相关描述。

根据第三方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于高级时域运动矢量预测(Advanced temporal motion vectorprediction,ATMVP)模式。即将ATMVP候选运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先确定对应位置参考帧(Collocated referencepicture),然后将当前编码单元(当前块)划分为M*N的子编码单元(子编码块),获取当前每一个子编码单元在对应位置参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息;检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表。一些可能的构建方式可以参见实施例S12.3中的相关描述。

上述方法可以由一种运动矢量预测装置或设备来执行。可选的,本发明根据第一方面、第二方面、第三方面对应地给出第四方面、第五方面和第六方面的装置。

第四方面,本发明涉及一种解码装置,也可以是一种运动矢量预测的装置,该装置包括:获取模块,用于获得包括当前块的最优候选运动信息的候选运动信息列表的构建方式,和最优候选运动信息在候选运动信息列表中的索引;其中,所述候选运动信息列表的构建方式为构建基于块的候选运动信息列表或构建基于子块的候选运动信息列表中的一种;构建模块,用于根据所述构建方式构建候选运动信息列表;确定模块,用于根据所述索引在构建的候选运动信息列表中确定最优运动信息;预测模块,用于根据所述最优运动信息对所述当前块进行预测。

根据第四方面,在一种可能的实现过程中,获取模块具体用于:获取用于确定候选运动信息列表的标识;其中,当前块采用的帧间预测模式为融合模式;其中,标识为第一特征值时,所述候选运动信息列表的构建方式为构建基于块的候选运动信息列表;所述标识为第二特征值时,所述候选运动信息列表的构建方式为构建基于子块的候选运动信息列表。

可选的,第一特征值可以为0或1,第二特征值可以为1或0。可选的,标识的表示可以例如但不限于list-idx。可选的,基于块的方式构建的候选运动信息列表可以表示为list0(或list1),基于子块的方式构建的候选运动信息列表可以表示为list1(或list0)。应理解,本发明中对特征值的具体取值、标识或列表的具体表示符号不予以限定和穷举。

根据第四方面,在一种可能的实现过程中,所述基于块的候选运动信息列表包括基于HEVC标准定义的或HEVC标准的演进版本定义的融合模式所构建的候选运动信息列表。如将当前编码块空域或时域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一些可能的构建方式可以参见实施例S11.1中的相关描述。

根据第四方面,在一种可能的实现过程中,对于基于块的候选运动信息列表,其中的候选运动信息包括当前块空域或时域相邻已编码块的运动信息中的至少一个。候选运动信息列表中的候选运动信息可以全部是当前块空域或时域相邻已编码块的运动信息;还可以部分是当前块空域或时域相邻已编码块的运动信息,部分是其他方式得到的运动信息。

根据第四方面,在一种可能的实现过程中,基于子块的候选运动信息列表包括基于Affine model merge,Complex merge或ATMVP中的至少一种子块融合模式所构建的候选运动信息列表。基于子块的候选运动信息列表中的候选运动信息可以全部是基于Affinemodel merge方式推导得到的,也可以全部是基于Complex merge方式推导得到的,也可以是仅基于ATMVP方式推导得到的,也可以是基于多种不同的方式推导出来的。多种不同的方式可以是Affine model merge,Complex merge,ATMVP这三种方式的任意可能组合。在一些可能的情形下,候选运动信息列表还可以包括其他基于子块方式得到的运动信息。本发明不予以列举和赘述。

根据第四方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于运动模型的仿射变换融合模式(Affine model merge,AMM模式),将当前编码块空域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先找到一个仿射编码块,获得该仿射编码块的控制点的运动信息,进而基于仿射变换模型推导出当前编码块的左上顶点和右上顶点的运动信息,检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.1中的相关描述。

根据第四方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于控制点的复杂融合模式(Complex merge模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动矢量列表。一种具体实现方法例如但不限于:推导得到各个控制点的运动信息,将控制点的运动信息进行组合,得到非平动(仿射模型)的运动信息,按照预置的顺序遍历这些模型,对于模型合法的候选运动信息检查可用性并剔除重复项,插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.2中的相关描述。

根据第四方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于高级时域运动矢量预测(Advanced temporal motion vectorprediction,ATMVP)模式。即将ATMVP候选运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先确定对应位置参考帧(Collocated referencepicture),然后将当前编码单元(当前块)划分为M*N的子编码单元(子编码块),获取当前每一个子编码单元在对应位置参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息;检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表。一些可能的构建方式可以参见实施例S12.3中的相关描述。

根据第四方面,在一种可能的实现过程中,上述当前块的宽大于等于一个阈值,和/或当前块的高大于等于一个阈值。阈值的取值包括但不限于4、8、16等。

第五方面,本发明涉及一种解码装置,也可以是一种运动矢量预测的装置,该装置包括:获取模块,用于获取用于确定包括当前块的最优候选运动信息的候选运动信息列表的标识,和最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式;构建模块,用于根据所述标识构建候选运动信息列表;其中,所述标识为第一特征值时,候选运动信息列表是基于块的候选运动信息列表;所述标识为第二特征值时,候选运动信息列表是基于子块的候选运动信息列表;确定模块,用于根据所述索引在构建的候选运动信息列表中确定最优运动信息;预测模块,用于根据所述最优运动信息对所述当前块进行预测。

根据第五方面,在一种可能的实现过程中,所述基于块的候选运动信息列表包括基于HEVC标准定义的或HEVC标准的演进版本定义的融合模式所构建的候选运动信息列表。如将当前编码块空域或时域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一些可能的构建方式可以参见实施例S11.1中的相关描述。

根据第五方面,在一种可能的实现过程中,对于基于块的候选运动信息列表,其中的候选运动信息包括当前块空域或时域相邻已编码块的运动信息中的至少一个。候选运动信息列表中的候选运动信息可以全部是当前块空域或时域相邻已编码块的运动信息;还可以部分是当前块空域或时域相邻已编码块的运动信息,部分是其他方式得到的运动信息。

根据第五方面,在一种可能的实现过程中,基于子块的候选运动信息列表包括基于Affine model merge,Complex merge或ATMVP中的至少一种子块融合模式所构建的候选运动信息列表。基于子块的候选运动信息列表中的候选运动信息可以全部是基于Affinemodel merge方式推导得到的,也可以全部是基于Complex merge方式推导得到的,也可以是仅基于ATMVP方式推导得到的,也可以是基于多种不同的方式推导出来的。多种不同的方式可以是Affine model merge,Complex merge,ATMVP这三种方式的任意可能组合。在一些可能的情形下,候选运动信息列表还可以包括其他基于子块方式得到的运动信息。本发明不予以列举和赘述。

根据第五方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于运动模型的仿射变换融合模式(Affine model merge,AMM模式),将当前编码块空域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先找到一个仿射编码块,获得该仿射编码块的控制点的运动信息,进而基于仿射变换模型推导出当前编码块的左上顶点和右上顶点的运动信息,检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.1中的相关描述。

根据第五方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于控制点的复杂融合模式(Complex merge模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动矢量列表。一种具体实现方法例如但不限于:推导得到各个控制点的运动信息,将控制点的运动信息进行组合,得到非平动(仿射模型)的运动信息,按照预置的顺序遍历这些模型,对于模型合法的候选运动信息检查可用性并剔除重复项,插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.2中的相关描述。

根据第五方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于高级时域运动矢量预测(Advanced temporal motion vectorprediction,ATMVP)模式。即将ATMVP候选运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先确定对应位置参考帧(Collocated referencepicture),然后将当前编码单元(当前块)划分为M*N的子编码单元(子编码块),获取当前每一个子编码单元在对应位置参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息;检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表。一些可能的构建方式可以参见实施例S12.3中的相关描述。

根据第五方面,在一种可能的实现过程中,上述当前块的宽大于等于一个阈值,和/或当前块的高大于等于一个阈值。阈值的取值包括但不限于4、8、16等。

第六方面,本发明涉及一种解码装置,也可以是一种运动矢量预测的装置,该装置包括:获取模块,用于若当前块的大小满足预设像素数时,获取当前块的最优候选运动信息的候选运动信息列表的标识,和最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式;构建模块,用于根据所述标识构建候选运动信息列表;其中,标识为第一特征值时,构建基于块的候选运动信息列表;所述标识为第二特征值时,构建基于子块的候选运动信息列表;确定模块,用于根据所述索引在构建的候选运动信息列表中确定最优运动信息;预测模块,用于根据所述最优运动信息对所述当前块进行预测。

所述构建模块还具体用于:

根据第六方面,在一种可能的实现过程中,若当前块的大小不满足预设像素数时,构建基于块的候选运动信息列表;其中,所述当前块采用的帧间预测模式为融合模式。

根据第六方面,在一种可能的实现过程中,当前块是否满足预设条件包括但不限于当前块的大小是否满足预设的像素数。

根据第六方面,在一种可能的实现过程中,所述当前块的大小满足预设像素数包括:所述当前块的宽大于等于一个阈值,和/或当前块的高大于等于一个阈值。

可选地,当前块的大小满足预设像素数为当前块的宽大于等于一个阈值时,当前块的大小不满足预设像素数为当前块的宽小于所述一个阈值;当前块的大小满足预设像素数为当前块的高大于等于一个阈值时,当前块的大小不满足预设像素数为当前块的高小于所述一个阈值;当前块的大小满足预设像素数为当前块的宽大于等于一个阈值,或高大于等于另一个阈值时,当前块的大小不满足预设像素数为当前块的宽小于所述一个阈值,且高小于所述另一个阈值;当前块的大小满足预设像素数为当前块的宽大于等于一个阈值,且高大于等于另一个阈值时,当前块的大小不满足预设像素数为当前块的宽小于所述一个阈值,或高小于所述另一个阈值。阈值的取值包括但不限于4、8、16等。应理解,本逻辑仅作举例不做限定,另外宽和高的大小关系本发明中也不做限定。

根据第六方面,在一种可能的实现过程中,所述基于块的候选运动信息列表包括基于HEVC标准定义的或HEVC标准的演进版本定义的融合模式所构建的候选运动信息列表。如将当前编码块空域或时域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一些可能的构建方式可以参见实施例S11.1中的相关描述。

根据第六方面,在一种可能的实现过程中,对于基于块的方式得到的候选运动信息列表中的候选运动信息可以全部是当前块空域或时域相邻已编码块的运动信息;还可以部分是当前块空域或时域相邻已编码块的运动信息,部分是其他方式得到的运动信息。

根据第六方面,在一种可能的实现过程中,基于子块的候选运动信息列表包括基于Affine model merge,Complex merge或ATMVP中的至少一种子块融合模式所构建的候选运动信息列表。基于子块的候选运动信息列表中的候选运动信息可以全部是基于Affinemodel merge方式推导得到的,也可以全部是基于Complex merge方式推导得到的,也可以是仅基于ATMVP方式推导得到的,也可以是基于多种不同的方式推导出来的。多种不同的方式可以是Affine model merge,Complex merge,ATMVP这三种方式的任意可能组合。在一些可能的情形下,候选运动信息列表还可以包括其他基于子块方式得到的运动信息。本发明不予以列举和赘述。

根据第六方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于运动模型的仿射变换融合模式(Affine model merge,AMM模式),将当前编码块空域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先找到一个仿射编码块,获得该仿射编码块的控制点的运动信息,进而基于仿射变换模型推导出当前编码块的左上顶点和右上顶点的运动信息,检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.1中的相关描述。

根据第六方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于控制点的复杂融合模式(Complex merge模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动矢量列表。一种具体实现方法例如但不限于:推导得到各个控制点的运动信息,将控制点的运动信息进行组合,得到非平动(仿射模型)的运动信息,按照预置的顺序遍历这些模型,对于模型合法的候选运动信息检查可用性并剔除重复项,插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.2中的相关描述。

根据第六方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于高级时域运动矢量预测(Advanced temporal motion vectorprediction,ATMVP)模式。即将ATMVP候选运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先确定对应位置参考帧(Coll ocated referencepicture),然后将当前编码单元(当前块)划分为M*N的子编码单元(子编码块),获取当前每一个子编码单元在对应位置参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息;检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表。一些可能的构建方式可以参见实施例S12.3中的相关描述。

第七方面,本发明涉及一种解码方法,也可以是一种运动矢量预测的方法,该方法包括:解析码流,得到语法元素;所述语法元素至少包括当前块的最优候选运动信息的索引;根据所述语法元素确定构建用于当前图像块的第一列表或第二列表;其中,所述第一列表是基于块的候选运动信息列表;所述第二列表是基于子块的候选运动信息列表;根据所述索引在所述第一列表或所述第二列表中确定最优运动信息;根据所述最优运动信息对所述当前块进行预测。

根据第七方面,在一种可能的实现过程中,所述基于块的候选运动信息列表是基于常规融合(一些场景下也可以表述为general_merge或regular_merge)模式所构建的候选运动信息列表。

根据第七方面,在一种可能的实现过程中,所述常规融合模式包括基于HEVC标准定义的或基于HEVC标准的演进版本定义的模式。具体的,所述基于块的候选运动信息列表包括基于HEVC标准定义的或HEVC标准的演进版本定义的常规融合模式所构建的候选运动信息列表。

根据第七方面,在一种可能的实现过程中,所述第一列表中的候选运动信息包括当前图像块的左上、左侧、左下、右上或右侧空域相邻块的运动信息中的一个或多个。

根据第七方面,在一种可能的实现过程中,所述基于子块的候选运动信息列表是基于子块融合(merge_subblock)模式所构建的候选运动信息列表。

根据第七方面,在一种可能的实现过程中,所述融合子块模式包括Affine modelmerge,Complex merge或ATMVP中的至少一种。具体的,所述基于子块的候选运动信息列表包括基于Affine model merge,Complex merge或ATMVP中的至少一种子块融合模式所构建的候选运动信息列表。

根据第七方面,在一种可能的实现过程中,所述基于子块的候选运动信息列表仅包括基于ATMVP子块融合模式所构建的候选运动信息列表。

根据第七方面,在一种可能的实现过程中,

根据第七方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于运动模型的仿射变换融合模式(Affine model merge,AMM模式),将当前编码块空域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先找到一个仿射编码块,获得该仿射编码块的控制点的运动信息,进而基于仿射变换模型推导出当前编码块的左上顶点和右上顶点的运动信息,检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.1中的相关描述。

根据第七方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于控制点的复杂融合模式(Complex merge模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动矢量列表。一种具体实现方法例如但不限于:推导得到各个控制点的运动信息,将控制点的运动信息进行组合,得到非平动(仿射模型)的运动信息,按照预置的顺序遍历这些模型,对于模型合法的候选运动信息检查可用性并剔除重复项,插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.2中的相关描述。

根据第七方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于高级时域运动矢量预测(Advanced temporal motion vectorprediction,ATMVP)模式。即将ATMVP候选运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先确定对应位置参考帧(Collocated referencepicture),然后将当前编码单元(当前块)划分为M*N的子编码单元(子编码块),获取当前每一个子编码单元在对应位置参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息;检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表。一些可能的构建方式可以参见实施例S12.3中的相关描述。

根据第七方面,在一种可能的实现过程中,所述语法元素包括列表索引,所述根据所述语法元素确定构建用于当前图像块的第一列表或第二列表包括:获取候选运动信息列表索引;所述列表索引为第一特征值时,指示构建用于当前图像块的第一列表,所述列表索引为第二特征值时,指示构建用于当前图像块的第二列表。

根据第七方面,在一种可能的实现过程中,所述语法元素还包括用于指示当前块采用的常规融合模式的指示信息或者当前块采用的融合子块模式的指示信息。

根据第七方面,在一种可能的实现过程中,所述语法元素还包括用于指示当前块采用基于块的候选运动信息列表的指示信息或者当前块采用基于子块的候选运动信息列表的指示信息。

根据第七方面,在一种可能的实现过程中,第一特征值可以为0或1,第二特征值可以为1或0。可选的,标识的表示可以例如但不限于list-idx。可选的,基于块的方式构建的候选运动信息列表可以表示为list0(或list1),基于子块的方式构建的候选运动信息列表可以表示为list1(或list0)。应理解,本发明中对特征值的具体取值、标识或列表的具体表示符号不予以限定和穷举。

根据第七方面,在一种可能的实现过程中,所述当前块的宽大于等于一个阈值,和/或所述当前块的高大于等于一个阈值。阈值的取值包括但不限于4、8、16等。

根据第七方面,在一种可能的实现过程中,如果最优运动信息是基于块的候选运动信息列表中的运动信息,则根据该最优运动信息对当前块进行预测。

根据第七方面,在一种可能的实现过程中,如果最优运动信息是基于子块的候选运动信息列表中的运动信息,则至少包括下列两种情形:

情形1:如果S23中确定出的最优运动信息是通过Affine方式(至少包括Affinemodel merge或Complex merge)得到的,则通过最优运动信息推导出当前块的子块对应的运动信息,并对当前块的子块进行预测。其中,当前块可以包括多个子块,当前块的子块可以泛指是多个子块中的任意一个。在一种可能的实现过程中,通过最优运动信息推导出当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

情形2:如果S23中确定出的最优运动信息是通过ATMVP模式得到的,则通过最优运动信息对当前块的子块进行预测。在一种可能的实现过程中,最优候选运动信息可以是一个运动信息组合,包含当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

情形3:如果S23中确定出的最优运动信息是指示通过ATMVP模式去获取的,则根据相应指示获取最优运动信息,并通过最优运动信息对当前块的子块进行预测。在一种可能的实现过程中,最优候选运动信息可以是通过一个指示信息指示获取的,通过指示信息可以基于ATMVP的方式获取到当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

第八方面,本发明涉及一种解码装置,也可以是一种运动矢量预测的装置,该装置包括:获取模块,用于获取解析码流,得到语法元素;所述语法元素至少包括当前块的最优候选运动信息的索引;构建模块,用于根据所述语法元素确定构建用于当前图像块的第一列表或第二列表;其中,所述第一列表是基于块的候选运动信息列表;所述第二列表是基于子块的候选运动信息列表;确定模块,用于根据所述索引在所述第一列表或所述第二列表中确定最优运动信息;预测模块,用于根据所述最优运动信息对所述当前块进行预测。

根据第八方面,在一种可能的实现过程中,所述基于块的候选运动信息列表是基于常规融合(一些场景下也可以表述为general_merge或regular_merge)模式所构建的候选运动信息列表。

根据第八方面,在一种可能的实现过程中,所述常规融合模式包括基于HEVC标准定义的或基于HEVC标准的演进版本定义的模式。具体的,所述基于块的候选运动信息列表包括基于HEVC标准定义的或HEVC标准的演进版本定义的常规融合模式所构建的候选运动信息列表。

根据第八方面,在一种可能的实现过程中,所述第一列表中的候选运动信息包括当前图像块的左上、左侧、左下、右上或右侧空域相邻块的运动信息中的一个或多个。

根据第八方面,在一种可能的实现过程中,所述基于子块的候选运动信息列表是基于子块融合(merge_subblock)模式所构建的候选运动信息列表。

根据第八方面,在一种可能的实现过程中,所述融合子块模式包括Affine modelmerge,Complex merge或ATMVP中的至少一种。具体的,所述基于子块的候选运动信息列表包括基于Affine model merge,Complex merge或ATMVP中的至少一种子块融合模式所构建的候选运动信息列表。

根据第八方面,在一种可能的实现过程中,所述基于子块的候选运动信息列表仅包括基于ATMVP子块融合模式所构建的候选运动信息列表。

根据第八方面,在一种可能的实现过程中,

根据第八方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于运动模型的仿射变换融合模式(Affine model merge,AMM模式),将当前编码块空域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先找到一个仿射编码块,获得该仿射编码块的控制点的运动信息,进而基于仿射变换模型推导出当前编码块的左上顶点和右上顶点的运动信息,检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.1中的相关描述。

根据第八方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于控制点的复杂融合模式(Complex merge模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动矢量列表。一种具体实现方法例如但不限于:推导得到各个控制点的运动信息,将控制点的运动信息进行组合,得到非平动(仿射模型)的运动信息,按照预置的顺序遍历这些模型,对于模型合法的候选运动信息检查可用性并剔除重复项,插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.2中的相关描述。

根据第八方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于高级时域运动矢量预测(Advanced temporal motion vectorprediction,ATMVP)模式。即将ATMVP候选运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先确定对应位置参考帧(Collocated referencepicture),然后将当前编码单元(当前块)划分为M*N的子编码单元(子编码块),获取当前每一个子编码单元在对应位置参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息;检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表。一些可能的构建方式可以参见实施例S12.3中的相关描述。

根据第八方面,在一种可能的实现过程中,所述语法元素包括列表索引,所述构建模块具体用于:获取候选运动信息列表索引;所述列表索引为第一特征值时,指示构建用于当前图像块的第一列表,所述列表索引为第二特征值时,指示构建用于当前图像块的第二列表。

根据第八方面,在一种可能的实现过程中,所述语法元素还包括用于指示当前块采用的常规融合模式的指示信息或者当前块采用的融合子块模式的指示信息。

根据第八方面,在一种可能的实现过程中,所述语法元素还包括用于指示当前块采用基于块的候选运动信息列表的指示信息或者当前块采用基于子块的候选运动信息列表的指示信息。

根据第八方面,在一种可能的实现过程中,第一特征值可以为0或1,第二特征值可以为1或0。可选的,标识的表示可以例如但不限于list-idx。可选的,基于块的方式构建的候选运动信息列表可以表示为list0(或list1),基于子块的方式构建的候选运动信息列表可以表示为list1(或list0)。应理解,本发明中对特征值的具体取值、标识或列表的具体表示符号不予以限定和穷举。

根据第八方面,在一种可能的实现过程中,所述当前块的宽大于等于一个阈值,和/或所述当前块的高大于等于一个阈值。阈值的取值包括但不限于4、8、16等。

第九方面,本发明涉及一种编码方法,也可以是一种运动矢量预测的方法,该方法包括:构建第一列表;其中,所述第一列表是基于块的候选运动信息列表;构建第二列表;其中,所述第二列表是基于子块的候选运动信息列表;在所述第一候选运动信息列表和所述第二候选运动信息列表中确定最优候选运动信息;根据所述最优运动信息对所述当前块进行预测。

根据第九方面,在一种可能的实现过程中,所述方法还包括:获取用于确定包括当前块的最优候选运动信息的候选运动信息列表的标识,和最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式;其中,所述标识为第一特征值时,候选运动信息列表为所述第一列表;所述标识为第二特征值时,候选运动信息列表为所述第二列表;将所述标识和所述索引编入码流。

第十方面,本发明涉及一种编码方法,也可以是一种运动矢量预测的方法,所述方法包括:获取用于确定包括当前块的最优候选运动信息的候选运动信息列表的标识,和最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式;其中,所述标识为第一特征值时,候选运动信息列表是基于块的候选运动信息列表;所述标识为第二特征值时,候选运动信息列表是基于子块的候选运动信息列表;将所述标识和所述索引编入码流。

第十一方面,本发明涉及一种编码方法,也可以是一种运动矢量预测的方法,所述方法包括:若当前块的大小满足预设像素数,则,构建第一列表和第二列表;其中,所述第一列表是基于块的候选运动信息列表;所述第二列表是基于子块的候选运动信息列表;其中,当前块采用的帧间预测模式为融合模式;在所述第一列表和所述第二列表中确定最优候选运动信息;根据所述最优运动信息对所述当前块进行预测。

根据第十一方面,在一种可能的实现过程中,所述方法还包括:若当前块的大小满足预设像素数,则,构建第一列表;其中,所述第一列表是基于块的候选运动信息列表;其中,当前块采用的帧间预测模式为融合模式;在所述第一列表中确定最优候选运动信息;根据所述最优运动信息对所述当前块进行预测。

第十二方面,本发明涉及一种编码装置,也可以是一种运动矢量预测的装置,所述装置包括:构建模块,用于构建第一列表和第二列表;其中,所述第一列表是基于块的候选运动信息列表,所述第二列表是基于子块的候选运动信息列表;确定模块,用于在所述第一候选运动信息列表和所述第二候选运动信息列表中确定最优候选运动信息;预测模块,用于根据所述最优运动信息对所述当前块进行预测。

根据第十二方面,在一种可能的实现过程中,所述装置还包括:获取模块,用于获取用于确定包括当前块的最优候选运动信息的候选运动信息列表的标识,和最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式;其中,所述标识为第一特征值时,候选运动信息列表为所述第一列表;所述标识为第二特征值时,候选运动信息列表为所述第二列表;编码模块,用于将所述标识和所述索引编入码流。

第十三方面,本发明涉及一种编码装置,也可以是一种运动矢量预测的装置,所述装置包括:获取模块,用于获取用于确定包括当前块的最优候选运动信息的候选运动信息列表的标识,和最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式;其中,所述标识为第一特征值时,候选运动信息列表是基于块的候选运动信息列表;所述标识为第二特征值时,候选运动信息列表是基于子块的候选运动信息列表;编码模块,将所述标识和所述索引编入码流。

第十四方面,本发明涉及一种编码装置,也可以是一种运动矢量预测的装置,所述装置包括:构建模块,用于若当前块的大小满足预设像素数,则构建第一列表和第二列表;其中,所述第一列表是基于块的候选运动信息列表;所述第二列表是基于子块的候选运动信息列表;其中,当前块采用的帧间预测模式为融合模式;确定模块,用于在所述第一列表和所述第二列表中确定最优候选运动信息;预测模块,用于根据所述最优运动信息对所述当前块进行预测。

根据第十四方面,在一种可能的实现过程中,所述构建模块还用于若当前块的大小满足预设像素数,则,构建第一列表;其中,所述第一列表是基于块的候选运动信息列表;其中,当前块采用的帧间预测模式为融合模式。

根据第九-第十四方面(包括第九方面、第十方面、第十一方面、第十二方面、第十三方面和第十四方面中的任意方面),在一种可能的实现过程中,第一特征值可以为0或1,第二特征值可以为1或0。可选的,标识的表示可以例如但不限于list-idx。可选的,基于块的方式构建的候选运动信息列表可以表示为list0(或list1),基于子块的方式构建的候选运动信息列表可以表示为list1(或list0)。应理解,本发明中对特征值的具体取值、标识或列表的具体表示符号不予以限定和穷举。

根据第九-第十四方面,在一种可能的实现过程中,所述基于块的候选运动信息列表包括基于HEVC标准定义的或HEVC标准的演进版本定义的融合模式所构建的候选运动信息列表。如将当前编码块空域或时域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一些可能的构建方式可以参见实施例S11.1中的相关描述。

根据第九-第十四方面,在一种可能的实现过程中,对于基于块的候选运动信息列表,其中的候选运动信息包括当前块空域或时域相邻已编码块的运动信息中的至少一个。候选运动信息列表中的候选运动信息可以全部是当前块空域或时域相邻已编码块的运动信息;还可以部分是当前块空域或时域相邻已编码块的运动信息,部分是其他方式得到的运动信息。

根据第九-第十四方面,在一种可能的实现过程中,

第九-第十四方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于运动模型的仿射变换融合模式(Affine model merge,AMM模式),将当前编码块空域相邻已编码块的运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先找到一个仿射编码块,获得该仿射编码块的控制点的运动信息,进而基于仿射变换模型推导出当前编码块的左上顶点和右上顶点的运动信息,检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.1中的相关描述。

第九-第十四方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于控制点的复杂融合模式(Complex merge模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动矢量列表。一种具体实现方法例如但不限于:推导得到各个控制点的运动信息,将控制点的运动信息进行组合,得到非平动(仿射模型)的运动信息,按照预置的顺序遍历这些模型,对于模型合法的候选运动信息检查可用性并剔除重复项,插入候选运动矢量列表。一些可能的构建方式可以参见实施例S12.2中的相关描述。

第九-第十四方面,在一种可能的实现过程中,构建基于子块的候选运动信息列表的实现方式可以包括基于高级时域运动矢量预测(Advanced temporal motion vectorprediction,ATMVP)模式。即将ATMVP候选运动信息按某一预设规则放入候选运动信息列表。一种具体实现方法例如但不限于:先确定对应位置参考帧(Collocated referencepicture),然后将当前编码单元(当前块)划分为M*N的子编码单元(子编码块),获取当前每一个子编码单元在对应位置参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息;检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表。一些可能的构建方式可以参见实施例S12.3中的相关描述。

第九-第十四方面,在一种可能的实现过程中,上述当前块的宽大于等于一个阈值,和/或当前块的高大于等于一个阈值。阈值的取值包括但不限于4、8、16等。

应理解,根据本发明上述可能的方法的其它特征和实现方式可以取决于本发明提供的对应装置的功能性及其不同实现方式。

第十五方面,本发明涉及一种运动矢量预测方法,包括:获得当前块的最优候选运动信息的索引信息;根据所述索引信息构建候选运动信息列表,其中,所述索引信息为不同字段时,所述候选运动信息列表包含的运动矢量的获取模式不同;根据所述索引信息在所述候选运动信息列表中确定最优运动矢量;根据所述最优运动矢量对所述当前块进行预测。

根据第十五方面,在一种可能的实现过程中,所述索引信息为第一特征值时,所述候选运动信息列表中包括HEVC,non-adjacent模式中至少一种候选运动矢量。

根据第十五方面,在一种可能的实现过程中,所述索引信息为第二特征值时,所述候选运动信息列表中包括AFFINE,ATMVP,STMVP,Planar模式中至少一种候选运动矢量。

根据第十五方面,在一种可能的实现过程中,所述索引信息为第三特征值时,所述候选运动信息列表中包括HEVC,non-adjacent,ATMVP,STMVP模式中至少一种候选运动矢量。

根据第十五方面,在一种可能的实现过程中,所述索引信息为第四特征值时,所述候选运动信息列表中包括AFFINE,Planar模式中至少一种候选运动矢量。

根据第十五方面,在一种可能的实现过程中,所述获得当前块的最优候选运动信息的索引信息包括:若当前块满足第一预设条件,获得的索引信息用于指示构建当前块的候选运动信息列表。

根据第十五方面,在一种可能的实现过程中,所述获得当前块的最优候选运动信息的索引信息包括:若当前块满足第二预设条件,获得的索引信息用于指示构建当前子块的候选运动信息列表,所述当前子块为所述当前块划分得到的。

根据第十五方面,在一种可能的实现过程中,所述获得当前块的最优候选运动信息的索引信息包括:若当前块不满足第一预设条件时,解析码流,获取最优的候选运动信息所在的候选运动信息列表索引。

第十六方面,本发明涉及一种运动矢量预测装置,包括:获取模块,用于获得当前块的最优候选运动信息的索引信息;构建模块,用于根据所述索引信息构建候选运动信息列表,其中,所述索引信息为不同字段时,所述候选运动信息列表包含的运动矢量的获取模式不同;确定模块,用于根据所述索引信息在所述候选运动信息列表中确定最优运动矢量;预测模块,用于根据所述最优运动矢量对所述当前块进行预测。

根据第十六方面,在一种可能的实现过程中,所述索引信息为第一特征值时,所述候选运动信息列表中包括HEVC,non-adjacent模式中至少一种候选运动矢量。

根据第十六方面,在一种可能的实现过程中,所述索引信息为第二特征值时,所述候选运动信息列表中包括AFFINE,ATMVP,STMVP,Planar模式中至少一种候选运动矢量。

根据第十六方面,在一种可能的实现过程中,所述索引信息为第三特征值时,所述候选运动信息列表中包括HEVC,non-adjacent,ATMVP,STMVP模式中至少一种候选运动矢量。

根据第十六方面,在一种可能的实现过程中,所述索引信息为第四特征值时,所述候选运动信息列表中包括AFFINE,Planar模式中至少一种候选运动矢量。

第十七方面,本发明涉及一种视频编解码设备,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行如上述任一方面以及任一种可能的设计方法。

第十八方面,本发明涉及一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当其在处理器上运行时,实现上述任一方面以及任一种可能的设计方法。

第十九方面,本发明涉及一种解码器,包括存储器和处理器,可以用于对应实现任意方面的解码方法、解码装置以及可能的实现方案。

第二十方面,本发明涉及一种编码器,包括存储器和处理器,可以用于对应实现任意方面的编码方法、编码装置以及可能的实现方案。

应理解,编码端和解码端的功能可以是耦合的,因此一些可能的情形中,解码端侧的方法可以对应到编码端侧,反之亦然,本发明中不予以赘述。

应理解,由于实现方案的多样性,上述可能的实现方式以及描述,在不违背组合逻辑的前提下,可以任意自由组合。各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。在附图及以下说明中阐述一个或多个实施例的细节。其它特征、目的和优点通过说明书、附图以及权利要求是显而易见的。

附图说明

图1是一种视频编码流程示意图;

图2是一种帧间预测示意图;

图3是一种视频解码流程示意图;

图4是一种运动信息候选位置示意图;

图5是一种仿射变换先进运动矢量预测模式示意图;

图6是一种视频传输系统原理图;

图7是一种空域相邻候选块运动信息示意图;

图8是一种空域非相邻候选块运动信息示意图;

图9是一种仿射变换融合模式示意图;

图10是一种复杂融合模式示意图;

图11是一种ATMVP预测模式示意图;

图12是一种STMVP预测模式示意图;

图13是一种planar运动矢量推导示意图;

图14是本发明实施例中一种解码方法;

图15是本发明实施例中另一种解码方法;

图16是本发明实施例中一种语法表;

图17是本发明实施例中另一种解码方法;

图18是本发明实施例中一种解码装置;

图19是本发明实施例中一种编解码设备。

具体实施方式

下面结合本申请实施例中的附图对本申请实施例进行描述。

对于编码过程,如图1所示,该过程主要包括帧内预测(Intra Prediction)、帧间预测(Inter Prediction)、变换(Transform)、量化(Quantization)、熵编码(Entropyencode)、环内滤波(in-loop filtering)(主要为去块滤波,de-blocking filtering)等环节。将图像划分为编码块之后进行帧内预测或者帧间预测,并且在得到残差之后进行变换量化,最终进行熵编码并输出码流。此处编码块为由像素点组成的大小的阵列(M可以等于N,也可以不等于N),并且已知各个像素点位置的像素值。

帧内预测是指利用当前图像内已重建区域内像素点的像素值对当前编码块内像素点的像素值进行预测。

帧间预测是在已重建的图像中,为当前图像中的当前编码块寻找匹配的参考块,将参考块中的像素点的像素值作为当前编码块中像素点的像素值的预测信息或者预测值(以下不再区分信息和值),此过程称为运动估计(Motion estimation,ME)(如图2所示),并传输当前编码块的运动信息。

需要说明的是,当前编码块的运动信息包括了预测方向的指示信息(通常为前向预测、后向预测或者双向预测),一个或两个指向参考块的运动矢量(Motion vector,MV),以及参考块所在图像的指示信息(通常记为参考帧索引,Reference index)。

前向预测是指当前编码块从前向参考图像集合中选择一个参考图像获取参考块。后向预测是指当前编码块从后向参考图像集合中选择一个参考图像获取参考块。双向预测是指从前向和后向参考图像集合中各选择一个参考图像获取参考块。当使用双向预测方法时,当前编码块会存在两个参考块,每个参考块各自需要运动矢量和参考帧索引进行指示,然后根据两个参考块内像素点的像素值确定当前块内像素点像素值的预测值。

运动估计过程需要为当前编码块在参考图像中尝试多个参考块,最终使用哪一个或者哪几个参考块用作预测则使用率失真优化(Rate-distortion optimization,RDO)或者其他方法确定。

利用帧内预测或者帧间预测得到预测信息之后,当前编码块内像素点的像素值减去对应的预测信息便得到残差信息,然后利用离散余弦变换(Discrete CosineTransformation,DCT)等方法对残差信息进行变换,再使用量化熵编码得到码流。预测信号加上重建残差信号之后需进一步进行滤波操作,进而得到重建信号,并将其作为后续编码的参考信号。

解码则相当于编码的逆过程。例如,如图3所示,首先利用熵解码反量化反变换得到残差信息,解码码流确定当前编码块使用的是帧内预测还是帧间预测。如果是帧内预测,则利用周围已重建区域内像素点的像素值按照所使用的帧内预测方法构建预测信息。如果是帧间预测,则需要解析出运动信息,并使用所解析出的运动信息在已重建的图像中确定参考块,并将块内像素点的像素值作为预测信息,此过程称为运动补偿(Motioncompensation,MC)。使用预测信息加上残差信息经过滤波操作便可以得到重建信息。

在HEVC中,使用两种帧间预测模式,分别为先进的运动矢量预测(AdvancedMotion Vector Prediction,AMVP)模式和融合(Merge)模式。

对于AMVP模式,先通过当前编码块空域或者时域相邻的已编码块的运动信息,构建候选运动矢量列表,然后通过从候选运动矢量列表中确定最优的运动矢量作为当前编码块的运动矢量预测值(Motion vector predictor,MVP)。率失真代价由公式(1)计算获得,其中J为率失真代价RD Cost,SAD为使用候选运动矢量预测值进行运动估计后得到的预测像素值与原始像素值之间的绝对误差和(Sum of Absolute Differences,SAD),R为码率,λ为拉格朗日乘子,编码端将选择的运动矢量预测值在候选运动矢量列表中的索引值和参考帧索引值传递到解码端。进一步地,在MVP为中心的邻域内进行运动搜索获得当前编码块实际的运动矢量,编码端将MVP与实际运动矢量之间的差值(Motion vector difference)传递到解码端。

J=SAD+λR (1)

对于Merge模式,先通过当前编码块空域或者时域相邻的已编码块的运动信息,构建候选运动信息列表,然后通过率失真代价从候选运动信息列表中确定最优的运动信息作为当前编码块的运动信息,再将最优的运动信息在候选运动信息列表中位置的索引值(记为merge index,下同)传递到解码端。当前编码块空域和时域候选运动信息如图4所示,空域候选运动信息来自于空间相邻的5个块(A0,A1,B0,B1和B2),若相邻块不可得或者为帧内编码模式,则不加入候选运动信息列表。当前编码块的时域候选运动信息根据参考帧和当前帧的图序计数(Picture order count,POC)对参考帧中对应位置块的MV进行缩放后获得。首先判断参考帧中位置为T的块是否可得,若不可得则选择位置在C的块。

可以看到,在AMVP模式和Merge模式中,都需要维护一个候选运动矢量列表(亦称为候选者列表,可简称为候选列表)。每次向候选列表中加入新的运动信息之前都会先检查列表中是否已经存在相同的运动信息,如果存在则不会将该运动信息加入列表中。将这个检查过程称为候选运动矢量列表的修剪。列表修剪是为了防止列表中出现相同的运动信息,避免冗余的率失真代价计算。

在HEVC的帧间预测中,编码块内的所有像素都采用了相同的运动信息,然后根据运动信息进行运动补偿,得到编码块的像素的预测值。然而在编码块内,并不是所有的像素都有相同的运动特性,采用相同的运动信息可能会导致运动补偿预测的不准确,进而增加了残差信息。

现有的视频编码标准使用基于平动运动模型的块匹配运动估计,并且假设块中所有像素点的运动一致。但是由于在现实世界中,运动多种多样,存在很多非平动运动的物体,如旋转的的物体,在不同方向旋转的过山车,投放的烟花和电影中的一些特技动作,特别是在UGC场景中的运动物体,对它们的编码,如果采用当前编码标准中的基于平动运动模型的块运动补偿技术,编码效率会受到很大的影响,因此业界和我们都对非平动运动模型进行了研究,特别是对基于仿射变换的运动模型进行了深入地研究,以便进一步提高编码效率。

非平动运动模型预测指在编解码端使用相同的运动模型推导出当前编码块内每一个子运动补偿单元的运动信息,根据子运动补偿单元的运动信息进行运动补偿,得到预测块,从而提高预测效率。常用的运动模型有6参数仿射模型或者4参数仿射变换模型。

4参数的仿射变换模型如公式(2)所示:

4参数仿射变换模型可以通过两个像素点的运动矢量及其相对于当前编码块左上顶点像素的坐标来表示,将用于表示运动模型参数的像素点记为控制点。若采用左上顶点(0,0)和右上顶点(W,0)像素点作为控制点,则先确定当前编码块左上顶点和右上顶点控制点的运动矢量(vx0,vy0)和(vx1,vy1),然后根据公式(3)推导得到当前编码块中每一个子运动补偿单元的运动信息,其中(x,y)为子运动补偿单元相对于当前编码块左上顶点像素的坐标,W为当前编码块的宽。

6参数的仿射变换模型如公式(4)所示:

6参数仿射变换模型可以通过三个像素点的运动矢量及其相对于当前编码块左上顶点像素的坐标来表示。若采用左上顶点(0,0)、右上顶点(W,0)和左下顶点(0,H)像素点作为控制点,则先确定当前编码块左上顶点、右上顶点和左下顶点控制点的运动矢量(vx

8参数的双线性模型如公式(6)所示:

8参数双线性模型可以通过四个像素点的运动矢量及其相对于当前编码块左上顶点像素的坐标来表示。若采用左上顶点(0,0)、右上顶点(W,0)、左下顶点(0,H)和右下顶点(W,H)像素点作为控制点,则先确定当前编码块左上顶点、右上顶点、左下顶点和右下顶点控制点的运动矢量(vx

采用非平动运动模型进行预测的编码块称为非平动编码块。

通常的,可以使用仿射变换先进运动矢量预测(Advanced Motion VectorPrediction,AMVP)模式或者仿射变换融合(Merge)模式,获得非平动编码块的控制点的运动信息。

下面以4参数仿射变换模型两个控制点的运动信息的获取方法进行说明:

仿射变换先进运动矢量预测模式:

(1)构建候选运动矢量二元组

利用当前编码块周边邻近的已编码块的运动信息确定当前编码块左上顶点和右上顶点的运动矢量。如图5所示:首先,利用左上顶点相邻已编码块A,B和C块的运动矢量,作为当前编码块左上顶点的候选运动矢量;利用右上顶点相邻已编码块D和E块的运动矢量,作为当前编码块右上顶点的候选运动矢量。将上述左上顶点和右上顶点的候选运动矢量进行组合,构成两个控制点的候选运动矢量二元组队列:

{(v

其中v

可选的,将候选运动矢量二元组队列根据特定的规则进行剪枝和排序,并可将其截断或填充至特定的个数。

(2)确定最佳候选运动矢量二元组

在编码端,利用每个候选运动矢量二元组,通过公式(3)获得当前编码块中每个子运动补偿单元(像素点或特定方法划分的大小为N_1×N_2的像素块)的运动矢量,进而得到每个子运动补偿单元的运动矢量所指向的参考帧中位置的像素值,作为其预测值,进行仿射变换运动补偿。计算当前编码块中每个像素点的原始值和预测值之间差值的平均值,选择差值的平均值最小的对应候选运动矢量二元组中的运动矢量作为当前编码块两个控制点的运动矢量预测值。将表示该二元组在候选运动矢量二元组队列中位置的索引号编码入码流发送给解码器。

在解码端,解析索引号,得到两个控制点的运动矢量预测值。

(3)确定控制点的运动矢量

在编码端,以两个控制点的运动矢量预测值作为搜索起始点在一定搜索范围内进行运动搜索获得两个控制点的运动矢量。并将两个控制点的运动矢量与运动矢量预测值之间的差值传递到解码端。

在解码端,解析两个控制点的运动矢量差值,与运动矢量预测值相加,得到控制点的运动矢量。

本发明的系统框架如图6所示。本发明在系统框架中主要位于视频编码和视频解码中。现有视频传输系统通常由采集、编码、发送、接收、解码、和显示这些部分组成。采集模块包含摄像头或摄像头组以及前处理,将光信号转化为数字化的视频序列。接着视频序列经编码器编码,转化为码流。然后码流由发送模块经网络发送至接收模块,经接收模块转化为码流后经解码器解码重建为视频序列。最后重建视频序列经渲染等后处理送至显示设备显示。

现有视频传输系统通常由采集、编码、发送、接收、解码、和显示这些部分组成。采集模块包含摄像头或摄像头组以及前处理,将光信号转化为数字化的视频序列。接着视频序列经编码器编码,转化为码流。然后码流由发送模块经网络发送至接收模块,经接收模块转化为码流后经解码器解码重建为视频序列。最后重建视频序列经渲染等后处理送至显示设备显示。本发明在系统框架中主要位于视频编码和视频解码中。

本发明的应用场景如图1和图2的基于混合编码框架的视频编码和解码系统所示。对于编码过程,如图1所示,主要包括帧内预测(Intra Prediction)、帧间预测(InterPrediction)、变换(Transform)、量化(Quantization)、熵编码(Entropy encode)、环路内滤波(Loop filter)等环节,分别完成从当前帧临近像素得到预测块、计算MV信息并从参考帧取得预测块、将残差从像素域变换至变换域、对变换域系数进行压缩、对于编码信息进行压缩、对于重建图像进行后处理等作用。对于解码系统,如图2所示,相当于编码的逆过程。本发明在视频编码和解码系统中主要应用于帧间预测。

实施例一(编码端)

简述:根据不同的运动信息列表构建方式为当前块(Block)构建出list0和list1,其中,所述list0用于在当前块采用基于块为基本预测单元的情况下为当前块提供候选运动矢量列表,所述list1用于在当前块采用基于子块为基本预测单元的情况下为当前块提供候选运动矢量列表。当前块可以划分成多个子块,每个子块的形式可以是正方形或矩形,例如但不限于4*4、8*8、4*8的大小形式,上述的list0,list 1中包含有候选运动信息,所述候选运动信息包含运动矢量、预测方向、参考帧索引等。简单来说,是按照适用于当前块特性的不同的运动信息列表构建方式分别构建出list0和list1。

例如,

Block based list0:可以包括HEVC,non-adjacent模式。

Sub-block based list1:可以包括AFFINE(包括基于运动模型的仿射变换融合模式,和/或基于控制点的复杂融合模式),ATMVP,STMVP,Planar模式。

具体实现过程中,Block based list0可以包括HEVC,non-adjacent等候选运动矢量推导方式中的一种或者多种,Sub-block based list1可以包括AFFINE,ATMVP,STMVP,Planar等候选运动矢量推导方式中的一种或者多种,例如:list1也可能只有ATMVP一种。本申请中可以用多种进行描述。

S11:构建当前编码块的候选运动信息列表一(List0),即构建基于块的候选运动信息列表。其中,List0中的运动信息可以称为基于块的候选运动信息。

S11.1:基于HEVC的方式,将当前编码块空域和/或时域相邻已编码块的运动信息按预设规则放入候选运动信息列表一。

空域相邻候选块运动信息如7图所示,对于最左边,空间候选块选择顺序依次是:a1,b1,b0,a0,(b2),若前面4个有任意一个不可用时,则会检查b2的运动信息是否存在且可用,若b2的运动信息存在且可用,则将b2的运动信息增加至所述候选运动信息列表中,之后,则考虑将时域的候选运动信息和/或0矢量增加至所述运动信息列表中。应理解,空域候选和时域候选的选择顺序的预设规则可以有多种,本发明并不做任何限定。

在一种可能的实现过程中,推导顺序可以为a0、b0、b1、a1和b2。仅当位置a0、b0、b1、a1中的任何CU不可用(例如,因为它属于另一个slice或tile)或被帧内编码时,才考虑位置b2。在添加了位置a1的候选之后,剩余候选的添加需要进行冗余校验,该冗余校验确保将具有相同运动信息的候选项从列表中排除,从而提高了编码效率。为了降低计算复杂度,在所提及的冗余校验中可以有选择地考虑一些候选对,例如只有当用于冗余检查的相应候选没有相同的运动信息时,才会将候选添加到列表中。

在一种可能的实现中,空间候选块的最大个数为4。另外,若list0的候选运动信息个数(去除重复和不符合要求的之后)数目等于MaxNumMergeCand,则停止插入或添加。Candidates List1最大的候选列表数目MaxNumMergeCand可以在码流中传输,也可以编解码使用默认值,本实施例中以最大候选个数为5为例。

可选的,基于块的候选运动信息列表包括基于HEVC标准定义的或HEVC标准的演进版本定义的常规融合(一些场景下也可以表述为general_merge或regular_merge)模式所构建的候选运动信息列表;基于块的候选运动信息列表中的候选运动信息可以全部是当前块空域或时域相邻已编码块的运动信息;还可以部分是当前块空域或时域相邻已编码块的运动信息,部分是其他方式得到的运动信息。

S11.2:将当前编码块空域非相邻已编码块的运动信息按预设规则放入候选运动信息列表一

空域非相邻候选块运动矢量如下图(图8)所示,空间候选块选择顺序依次是6~49,检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表一,若list0的候选运动信息个数(去除重复和不符合要求的之后)数目等于MaxNumMergeCand,则停止插入。

根据S11.1和S11.2构建List0,若List0的候选运动信息个数(去除重复和不符合要求的之后)数目小于5,则通过补0运动矢量的方式使得候选运动信息列表数目达到规定数目,例如:当前块候选运动信息列表一(List0)的形式可以如下:

表1

又或者:当前块候选运动信息列表一(List0)的形式也可以如下:

表2

需要说明的是,在本发明中,对于S11,即构建基于块的候选运动信息列表,S11.1和S11.2的候选运动信息的加入列表的顺序不做限定;可以先加入S11.1的运动信息,再加入S11.2的运动信息;也可以先加入S11.2的运动信息,再加入S11.1的运动信息;也可以S11.1和S11.2的运动信息交替的加入列表。对于S11,还可以执行S11.1和S11.2中的一个或多个。

S12:构建当前编码子块的候选运动信息列表二(List1),即构建基于子块的候选运动信息列表。List1中的运动信息可以称为基于子块的候选运动信息。

S12.1:基于运动模型的仿射变换融合模式(Affine model merge,AMM模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动信息列表二(List1)

为了提高当前块为仿射变换预测块时的编码效率,对当前块的控制点的运动信息进行编码时,从当前块的周边相邻块中按照预设选择策略选择一个块,利用该块顶点的运动信息推导出当前块顶点的运动信息;(标准中可以称为luma affine control pointmotion vectors from a neighbouring block)。编码端无需向解码端传递所选择的相邻块的指示信息。此时当前块与相邻块采用相同的仿射变换模型。

如图9所示,A、B、C、D、E为当前编码块的相邻已编码块,按照A、B、C、D、E的顺序遍历,找到仿射编码块,获得该仿射编码块的控制点的运动信息,进而推导出当前编码块的左上顶点和右上顶点的运动信息。

下面以A为例描述推导过程,其他情况以此类推:若A所在的编码块为仿射编码块,则获得该仿射编码块左上顶点(x2,y2)的运动矢量(vx2,vy2)、右上顶点(x3,y3)的运动矢量(vx3,vy3);利用公式(8)计算获得当前编码块左上顶点(x0,y0)的运动矢量(vx0,vy0),利用公式(9)计算获得当前编码块右上顶点(x1,y1)的运动矢量(vx1,vy1)。

检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动矢量列表二(List1),若List1的候选运动信息个数(去除重复和不符合要求的之后)数目等于MaxNumMergeCand,则停止插入。

S12.2:基于控制点的复杂融合模式(Complex merge模式),将当前编码块空域相邻已编码块的运动信息按预设规则放入候选运动矢量列表二(List1)。

首先,推导得到各个控制点的运动信息。如图10所示,CPk(k=1,2,3,4)表示第k个控制点。A0,A1,A2,B0,B1,B2和B3为当前块的空域相邻位置,用于预测CPk(k=1,2,3);Tr为当前块的时域相邻位置,用于预测CP4。

CP1,CP2,CP3和CP4的坐标分别为(0,0),(W,0),(H,0)和(W,H),其中W和H为当前块的宽度和高度。

对于每个控制点,其运动信息按照以下顺序获得:

-对于CP1,检查顺序为B2->A2->B3,如果B2可得,则采用B2的运动信息。否则,检测A2,B3。若三个位置的运动信息均不可得,则无法获得CP1的运动信息。

-对于CP2,检查顺序为B0->B1;

-对于CP3,检测顺序为A0->A1;

-对于CP4,采用Tr的运动信息。

此处可得表示包括X位置的块已经编码并且为帧间编码模式;否则,X位置不可得。需要说明的是,其他获得控制点运动信息的方法也可适用于本发明,在此不做赘述。

接着,将控制点的运动信息进行组合,得到非平动(仿射模型)的运动信息。

将两个控制点的运动信息进行组合,用来构建4参数仿射变换模型。两个控制点的组合方式为{CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4}。例如,采用CP1和CP2控制点构建的4参数仿射变换模型,记做Affine(CP1,CP2)。将三个控制点的运动信息进行组合,用来构建6参数仿射变换模型。三个控制点的组合方式为{CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4}。例如,采用CP1、CP2和CP3控制点构建的6参数仿射变换模型,记做Affine(CP1,CP2,CP3)。

将四个控制点的运动信息进行组合,用来构建8参数双线性模型。采用CP1、CP2、CP3和CP4控制点构建的8参数双线性模型,记做Bilinear(CP1,CP2,CP3,CP4)。

按照预置的顺序遍历这些模型(类别之间,同一类别下都可以),若组合模型对应的控制点运动信息不可得,则认为该模型不可得;否则,确定该模型的参考帧索引(所有控制点的运动矢量指向同一个参考帧),并将控制点的运动矢量进行缩放,一种举例如公式(10),其中缩放系数为当前帧到参考帧的距离与当前帧到相邻块参考帧的距离的比值。若缩放后的所有控制点的运动信息一致,则该模型不合法。否则,加入候选运动信息列表中。

通过complex merge mode得到的候选运动信息在最新标准中被称为constructedaffine control point motion vector merging candidates。

S12.3:将ATMVP和/或STMVP候选运动矢量按预设规则放入候选运动信息列表二(List1)

子编码单元运动矢量预测(Sub-BLOCK based motion vector prediction,SMVP)技术将当前编码单元划分为大小为M*N的子编码单元,并推导出每个子编码单元的运动信息,然后利用各个子编码单元的运动信息进行运动补偿,得到当前编码单元的预测值。

该技术在Merge模式中有两种候选运动信息,分别为高级时域运动矢量预测(Advanced temporal motion vector prediction,ATMVP)和空域时域运动矢量预测(Spatial-temporal motion vector prediction,STMVP)。

ATMVP技术先确定对应位置参考帧(Collocated reference picture),然后将当前编码单元(当前块)划分为M*N的子编码单元(子编码块),获取当前每一个子编码单元在对应位置参考帧中对应的子编码单元中心点位置像素的运动信息,并将其进行缩放,转换为当前每一个子编码单元的运动信息,如图11所示。

STMVP技术通过获取当前每一个子编码单元的上边空域、左边空域和右下角时域相邻位置的运动信息,求其平均值,并转化为当前每一个子编码单元的运动信息。如下图(图12)所示,当前编码单元划分为A、B、C、D四个子编码单元。以A为例,利用空域相邻位置c、b和对应位置参考帧中D位置的运动信息推导得到子编码单元A的运动信息。

检查可用性及剔除重复项后将可用位置块对应的运动矢量依次插入候选运动信息列表二(List1),若List1的候选运动信息个数(去除重复和不符合要求的之后)数目等于MaxNumMergeCand,则停止插入。

S12.4:将Planar候选运动信息按预设规则放入候选运动信息列表二(List1)

参阅图13,获取当前块右下角时域邻近M*N块的运动信息;右上角空域邻近(AR)和右下角时域邻近M*N块(BR)的运动信息根据下述公式垂直插值出右侧邻近每个M*N块R(W,y)的运动信息;其中,M*N表示的是块的大小。

R(W,y)=((H-y-1)×AR+(y+1)×BR)/H

左下角空域邻近(BL)和右下角时域邻近M*N块(BR)的运动信息根据下述公式水平插值出下侧邻近每个M*N块(B(x,H))的运动信息

B(x,H)=((W-x-1)BL+(x+1)BR)/W

其中,(x,y)代表当前M*N子块相对于当前块左上角子块的坐标,W和H代表当前块的宽度和高度(以子块为度量单位),AR代表右上角空域邻近M*N块的运动信息,BR代表右下角时域邻近M*N块的运动信息,BL代表左下角空域邻近M*N块的运动信息。

每个子块的运动信息按照如下方式获取:

当前子块所在行的左侧邻近和右侧邻近M*N块的运动矢量根据下述公式水平插值一个水平运动矢量:

P

当前子块所在列的上侧邻近和下侧邻近M*N块的运动矢量根据下述公式垂直插值一个垂直运动矢量:

P

水平和垂直线性插值的运动矢量均值根据下述公式得到,即每个子块的运动矢量为:

P(x,y)=(H×P

其中,L(-1,y)和R(W,y)代表当前子块所在行的左侧邻近和右侧邻近M*N块的运动矢量;A(x,-1)和B(x,H)代表当前子块所在列的上侧邻近和下侧邻近M*N块的运动矢量,P

如果所有空域邻近块(和时域邻近块)在某个列表方向包含的运动信息(仅存在的,处理过的)相同,该列表方向不可用;如果两个列表方向都不可用,那么planar运动信息不可用。或者如果所有空域邻近块(和时域邻近块)在某个列表方向包含的运动信息(仅存在的,处理过的)相同,该相同运动信息为当前图像块的所有子块在该列表方向的运动信息。

检查可用性及剔除重复项后将可用位置块对应的运动信息依次插入候选运动信息列表二(List1),若List1的候选运动信息个数(去除重复和不符合要求的之后)数目等于MaxNumMergeCand,则停止插入。

根据S12.1~S12.4构建List1,若List1的候选运动信息个数(去除重复和不符合要求的之后)数目小于5,则通过补0运动矢量的方式使得候选运动信息列表数目达到规定数目。例如:当前块候选运动信息列表二(List1)的形式可以如下表3:

表3

又或者:当前块候选运动矢量列表二(List1)的形式也可以如下表4:

表4

需要说明的是,在本发明中,对于S12,即构建基于子块的候选运动信息列表,采用S12.1、S12.2、S12.3或S12.4的候选运动信息的加入列表的顺序不做限定。可以按照特定顺序加入,也可以将不同类别的运动信息交替的加入列表;或者可以执行S12.1、S12.2、S12.3、S12.4中的一个或多个。

应理解,基于子块的候选运动信息列表是基于子块融合(merge_subblock)模式所构建的候选运动信息列表,基于子块的候选运动信息列表可以包括基于Affine modelmerge,Complexmerge或ATMVP中的至少一种子块融合模式所构建的候选运动信息列表。基于子块的候选运动信息列表中的候选运动信息可以全部是基于Affine model merge方式推导得到的,也可以全部是基于Complex merge方式推导得到的,也可以是仅基于ATMVP方式推导得到的,也可以是基于多种不同的方式推导出来的。多种不同的方式可以是Affinemodel merge,Complex merge,ATMVP这三种方式的任意可能组合。在一些可能的情形下,候选运动信息列表还可以包括其他基于子块方式得到的运动信息。加入列表的顺序可以是先加入ATMVP这种方式的候选运动信息,再加入其它方式推导得到的候选运动信息。对于组合方式和上述的加入顺序,本发明不予以列举和赘述。

可选的,以包含2*2个子块的块为例,构建的基于子块的候选运动信息列表List 1可能的实现形式可以包括:List1{ATMVP((MV

可选的,构建的基于子块的候选运动信息列表List 1可能的实现形式可以包括:(ATMVP,(MV

通过率失真代价最小从两个候选运动信息列表中确定最优的候选运动信息作为当前编码块的运动信息,再将最优的候选运动信息所在的候选运动信息列表索引(例如:list-idx)以及其在列表中位置的索引值(例如:mv-idx)传递到解码端。率失真代价由如下公式计算获得,其中J为率失真代价RD Cost,SAD为使用候选运动信息进行运动补偿后得到的预测像素值与原始像素值之间的绝对误差和(Sum of Absolute Differences,SAD),R为码率,λ为拉格朗日乘子,编码端将选择的运动信息在候选运动信息列表中的索引值传递到解码端。

J=SAD+λR

S14:当前块根据S13中得到的最优候选运动信息进行运动补偿得到该块的像素预测值。

此外,应理解,list0和list1仅仅是代号上的区分,对于基于块的列表或基于子块的列表,命名为list0还是list1是可以根据预设规则来确定的。本申请中不予以限定。

具体地,如果最优运动信息是基于块的候选运动信息列表中的运动信息,则根据该最优运动信息对当前块进行预测。

具体地,如果最优运动信息是基于子块的候选运动信息列表中的运动信息,则至少包括下列两种情形:

情形1:如果最优运动信息是通过Affine方式(至少包括Affine model merge或Complex merge)推导得到的,则通过最优运动信息推导出当前块的子块对应的运动信息,并对当前块的子块进行预测。其中,当前块可以包括多个子块,当前块的子块可以泛指是多个子块中的任意一个。

在一种可能的实现过程中,通过最优运动信息推导出当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

情形2:如果最优运动信息是通过ATMVP推导得到的,则通过最优运动信息对当前块的子块进行预测。

在一种可能的实现过程中,最优候选运动信息可以是一个运动信息组合,包含当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

此外,还应理解,根据最优运动信息进行预测可以包括直接根据最优运动信息去预测;还可以包括对最优运动信息进行推导,利用推导后的运动信息去预测;还可以包括对最优运动信息进行修正,利用修正后的运动信息去预测。

上述情形仅仅是本发明可能的部分实现方式,不应构成任何限定。对于其他情形,本发明不予以穷举。

可选的,所述当前块的宽大于等于一个阈值,和/或所述当前块的高大于等于一个阈值。阈值的取值包括但不限于4、8、16等。

通过实施例一,可以得到以下方法流程:

S1301,构建第一列表;其中,所述第一列表是基于块的候选运动信息列表;

S1302,构建第二列表;其中,所述第二列表是基于子块的候选运动信息列表;

S1303,在所述第一候选运动信息列表和所述第二候选运动信息列表中确定最优候选运动信息;

S1304,根据所述最优运动信息对所述当前块进行预测。

该方法还可以进一步包括:

S1305,获取用于确定包括当前块的最优候选运动信息的候选运动信息列表的标识,和最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式;其中,所述标识为第一值时,候选运动信息列表为所述第一列表;所述标识为第二值时,候选运动信息列表为所述第二列表;

S1306,将所述标识和所述索引编入码流。

其中,S1305和S1306还可以独立构成一个新的编码方法,此处不再赘述。

实施例一与现有技术的区别包括:将多种类型的候选运动信息插入不同候选运动信息列表,用RDO选择最优的候选运动信息,并传递到解码端。通过实施例一,可以将块(BLOCK)和子块(Sub-BLOCK)的候选运动信息列表区别开,得到基于块的候选运动信息列表和基于子块的候选运动信息列表,有效减少最优候选运动信息的传输代价。

实施例二(解码端)

简述:可以将当前块(Block)和当前子块(Sub-BLOCK)的候选运动信息按照候选运动信息的获取模式分别插入(或构建)list0和list1。

Block based list0:包括HEVC,non-adjacent模式。

Sub-block based list1:包括AFFINE(包括基于运动模型的仿射变换融合模式,或基于控制点的复杂融合模式),ATMVP,STMVP,Planar模式。

具体实现过程中,Block based list0可以包括HEVC中的(general_merge或regular_merge),non-adjacent等候选运动矢量推导方式中的一种或者多种,Sub-blockbased list1可以包括AFFINE,ATMVP,STMVP,Planar等候选运动矢量推导方式中的一种或者多种,本申请中可以用多种进行描述。例如:list1也可能只有ATMVP一种。

S21:解析码流,获得最优候选运动信息索引信息。

具体地,解析码流,获取最优的候选运动信息所在的候选运动信息列表索引(例如:list-idx)以及其在列表中位置的索引值(例如:mv-index)。应理解,解析码流,还可以得到更多的语法元素,列表索引仅仅是一种可能的实现方式。

S22:根据候选运动信息列表索引,构建候选运动信息列表。

例如但不限于:

若list-idx=0,具体实现可以与S11采用相同或相似方法。如按照S11.1和/或S11.2的方式构建基于块的候选运动信息列表,例如但不仅限于可以如表1或表2所示。

若list-idx=1,则具体实现可以与S12采用相同或相似方法。如按照S12.1、S12.2、和/或S12.3的方式构建基于子块的候选运动信息列表,例如但不仅限于可以如表3或表4所示。

从表中可以看出,只要确定了运动矢量的列表的索引(list-idx)和该列表中向量的索引(mv-index),就能确定出一个确定的运动矢量。可选的,标识的表示可以例如但不限于list-idx;可选的,list-idx标识的值可以包括但不限于0或1;可选的,基于块的方式构建的候选运动信息列表可以表示为list0(或list1),基于子块的方式构建的候选运动信息列表可以对应表示为list1(或list0)。其中,所述“基于块的方式”指的是以当前块为基础进行预测的方式,所述“基于子块的方式”指的是当前块被划分为多个子块之后,以子块为基础进行预测的方式。

应理解,本发明中对特征值的具体取值、标识形式或列表的具体表示符号不予以限定和穷举。

应理解,列表索引或者类似的标识或类似的语法元素可以用于确定包括当前块的最优候选运动信息的候选运动信息列表;或用于确定包括当前块的最优候选运动信息的候选运动信息列表的构建方式;或者用于指示当前块采用的是常规融合模式还是融合子块模式。

可选的,解析码流时,获得的语法元素可以包括列表索引,所述根据所述语法元素确定构建用于当前图像块的第一列表或第二列表包括:获取候选运动信息列表索引;所述列表索引为第一特征值时,指示构建用于当前图像块的第一列表,所述列表索引为第二特征值时,指示构建用于当前图像块的第二列表。

可选的,解析码流时,获得的语法元素可以包括用于确定当前块采用的常规融合模式的指示信息或者当前块采用的融合子块模式的指示信息。

可选的,解析码流时,获得的语法元素可以包括用于确定当前块采用基于块的候选运动信息列表的指示信息或者当前块采用基于子块的候选运动信息列表的指示信息。

S23,根据索引信息,确定最优候选运动信息。

具体地,根据list-idx和mv-index,从列表中确定最优的候选运动信息

例如:list-idx=0,mv-index=0,则当前块的运动信息为MVB1。

S24,当前块根据S23得到最优候选运动信息进行运动补偿得到该块的像素预测值。

具体的预测方式可以与编码端相对应。

具体地,如果最优运动信息是基于块的候选运动信息列表中的运动信息,则根据该最优运动信息对当前块进行预测。

具体地,如果最优运动信息是基于子块的候选运动信息列表中的运动信息,则至少包括下列两种情形:

情形1:如果S23中确定出的最优运动信息是通过Affine方式(至少包括Affinemodel merge或Complex merge)得到的,则通过最优运动信息推导出当前块的子块对应的运动信息,并对当前块的子块进行预测。其中,当前块可以包括多个子块,当前块的子块可以泛指是多个子块中的任意一个。

在一种可能的实现过程中,通过最优运动信息推导出当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

情形2:如果S23中确定出的最优运动信息是通过ATMVP模式得到的,则通过最优运动信息对当前块的子块进行预测。

在一种可能的实现过程中,最优候选运动信息可以是一个运动信息组合,包含当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

情形3:如果S23中确定出的最优运动信息是指示通过ATMVP模式去获取的,则根据相应指示获取最优运动信息,并通过最优运动信息对当前块的子块进行预测。

在一种可能的实现过程中,最优候选运动信息可以是通过一个指示信息指示获取的,通过指示信息可以基于ATMVP的方式获取到当前块的各个子块对应的运动信息,并对应地对当前块的各个子块进行预测。

此外,还应理解,根据最优运动信息进行预测可以包括直接根据最优运动信息去预测;还可以包括对最优运动信息进行推导,利用推导后的运动信息去预测;还可以包括对最优运动信息进行修正,利用修正后的运动信息去预测。

上述情形仅仅是本发明可能的部分实现方式,不应构成任何限定。对于其他情形,本发明不予以穷举。

可选的,所述当前块的宽大于等于一个阈值,和/或所述当前块的高大于等于一个阈值。阈值的取值包括但不限于4、8、16等。

综上实施例一和实施例二,本发明可以得到如下方法流程,请参阅图14、图15。

图14示意了一种解码方法,该方法包括:

S141,获得包括当前块的最优候选运动信息的候选运动信息列表的构建方式,和最优候选运动信息在候选运动信息列表中的索引;其中,所述候选运动信息列表的构建方式为构建基于块的候选运动信息列表或构建基于子块的候选运动信息列表中的一种。

可选的方式,可以参照实施例中的S21。

具体的,获取用于确定候选运动信息列表的标识;其中,当前块采用的帧间预测模式为融合模式;其中,所述标识为第一特征值时,所述候选运动信息列表的构建方式为构建基于块的候选运动信息列表;所述标识为第二特征值时,所述候选运动信息列表的构建方式为构建基于子块的候选运动信息列表。

可选的方式,可以参照实施例中S22中标识的作用。

S142,根据所述构建方式构建候选运动信息列表。

可选的方式,可以参照实施例中S22。

构建基于块的候选运动信息列表可以参照实施例中S11.1和/或S11.2。

构建基于子块的候选运动信息列表可以参照实施例中S12.1、S12.2、S12.3和/或S12.4。

S143,根据所述索引在构建的候选运动信息列表中确定最优运动信息;可选的方式可以参照实施例中S13。

S144,根据所述最优运动信息对所述当前块进行预测。可选的方式可以参照实施例中S14。

图15示意了一种解码方法,该方法包括:

S151,解析码流,得到语法元素;所述语法元素至少包括当前块的最优候选运动信息的索引。

可选的方式,可以参照实施例中的S21。

S152,根据所述语法元素确定构建用于当前图像块的第一列表或第二列表;其中,所述第一列表是基于块的候选运动信息列表;所述第二列表是基于子块的候选运动信息列表;

可选的方式,可以参照实施例中的S22。

构建基于块的候选运动信息列表可以参照实施例中S11.1和/或S11.2。

构建基于子块的候选运动信息列表可以参照实施例中S12.1、S12.2、S12.3和/或S12.4。

S153,根据所述索引在所述第一列表或所述第二列表中确定最优运动信息;

可选的方式,可以参照实施例中的S23。

S154,根据所述最优运动信息对所述当前块进行预测。

可选的方式,可以参照实施例中的S24。

具体实现方案上述实例中已经充分描述,此处不再详细赘述。

一种更为清晰的语法表可以参见下图16。图16为Merge data syntax表。

可以看出,语法表或码流中包含了merge_subblock_flag[x0][y0];其中,merge_subblock_flag[x0][y0]可以对应本发明中的可以指示当前块采用基于块的候选运动信息列表或采用基于子块的候选运动信息列表的指示信息。

实施例二与现有技术的区别包括:将多种类型的候选运动信息插入不同候选运动信息列表,解析码流获得最优候选运动信息索引信息,并根据相应的运动信息解码当前块。通过实施例二,可以将块(BLOCK)和子块(Sub-BLOCK)的候选运动信息列表区别开,有效减少最优候选运动信息的传输代价。

实施例三(编码端)

简述:根据不同的运动信息列表构建方式为当前块(Block)构建出list0和list1,其中,所述list0用于在当前块采用基于块为基本预测单元的情况下为当前块提供候选运动矢量列表,所述list1用于在当前块采用基于子块为基本预测单元的情况下为当前块提供候选运动矢量列表。当前块可以划分成多个子块,每个子块的形式可以是正方形或矩形,例如但不限于4*4、8*8、4*8的大小形式,上述的list0,list 1中包含有候选运动信息,所述候选运动信息包含运动矢量、预测方向、参考帧索引等。简单来说,是按照适用于当前块特性的不同的运动信息列表构建方式分别构建出list0和list1。例如,

Block based list0:包括HEVC,non-adjacent,ATMVP,STMVP模式。

Sub-block based list1:包括AFFINE(包括基于运动模型的仿射变换融合模式,或基于控制点的复杂融合模式),Planar模式。

具体实现过程中,List0可以包括HEVC,non-adjacent,ATMVP,STMVP等候选运动矢量推导方式中的一种或者多种,例如:在其他实施例中,list0也可能只有ATMVP一种。List1可以包括AFFINE,Planar等候选运动矢量推导方式中的一种或者多种。本申请中可以用多种进行描述。

S31:构建当前编码块的候选运动信息列表一(List0)。

S31.1,具体实现可以与S11.1采用相同或相似方法。

S31.2,具体实现可以与S11.2采用相同或相似方法。

S31.3,具体实现可以与S12.3采用相同或相似方法。

需要说明的是,在本发明中,对于S31,S31.1和S31.2的候选运动信息的加入列表的顺序不做限定;可以先加入S31.1的运动信息,再加入S31.2的运动信息;也可以先加入S31.2的运动信息,再加入S31.1的运动信息;也可以对S11.1和S11.2的运动信息交替的加入列表。

S32:构建当前编码块的候选运动矢量列表二(List1)。

S32.1,具体实现可以与S12.1采用相同或相似方法。

S32.2,具体实现可以与S12.2采用相同或相似方法。

S32.3,具体实现可以与S12.4采用相同或相似方法。

需要说明的是,在本发明中,对于S32,S32.1、S32.2、S32.3的候选运动信息的加入列表的顺序不做限定。可以按照特定顺序加入,也可以将不同类别的运动信息交替的加入列表;或者可以执行S32.1、S32.2、S32.3中的一个或多个。

S33:选择两个list中最优的候选运动信息,具体实现可以与S13采用相同或相似方法。

S34:当前块根据S33中得到的最优候选运动信息进行运动补偿得到该块的像素预测值。具体实现可以与S14采用相同或相似方法。

应理解,list0和list1可以互换。

实施例三与现有技术的区别包括:将多种类型的候选运动矢量插入不同候选运动矢量列表,解析码流获得最优候选运动矢量索引信息,并根据相应的运动信息解码当前块。通过实施例三,可以将基于模型的子块(SUB-BLOCK)的候选运动信息列表与其他候选运动信息区别开,有效减少最优候选运动信息的传输代价。

实施例四(解码端)

简述:可以将当前块(Block)和当前子块(Sub-BLOCK)的候选运动信息按照候选运动信息的获取模式分别插入(或构建)list0和list1。

Block based list0:包括HEVC,non-adjacent,ATMVP,STMVP模式。

Sub-block based list1:包括AFFINE(包括基于运动模型的仿射变换融合模式,或基于控制点的复杂融合模式),Planar模式。

具体实现过程中,List0可以包括HEVC,non-adjacent,ATMVP,STMVP等候选运动矢量推导方式中的一种或者多种,例如:在其他实施例中,list0也可能只有ATMVP一种。List1可以包括AFFINE,Planar等候选运动矢量推导方式中的一种或者多种。本申请中可以用多种进行描述。

S41:解析码流,获得最优候选运动信息索引信息。

具体地,解析码流,获取最优的候选运动信息所在的候选运动信息列表索引(例如:list-idx)以及其在列表中位置的索引值(例如:mv-index)。

S42:根据候选运动信息列表索引,构建候选运动信息。

若list-idx=0,具体实现可以与S31采用相同或相似方法。如按照S31.1、S31.2和/或S31.3的方式构建基于块的候选运动信息列表;相应地,再如按照S11.1、S11.2和/或S12.3的方式构建基于块的候选运动信息列表。

若list-idx=1,则按照S32.1、S32.2和/或S32.3构建基于模型的子块的候选运动信息列表;相应地,再如按照S12.1、S12.2和/或S12.4的方式构建基于块的候选运动信息列表。

S43,根据索引信息,确定最优候选运动信息。

具体地,根据list-idx和mv-index,从列表中确定最优的候选运动信息。

S44,当前块根据S43得到最优候选运动信息进行运动补偿得到该块的像素预测值。

实施例四与现有技术的区别包括:将不同类型的候选运动信息插入不同候选运动信息列表,解析码流获得最优候选运动信息索引信息,并根据相应的运动信息解码当前块。通过实施例四,可以将基于模型的子块(SUB-BLOCK)的候选运动信息列表与其他候选运动信息区别开,有效减少最优候选运动信息的传输代价。

实施例五(编码端)

判断当前编码块是否满足预设条件,如果满足预设条件,执行S51和S52;如果不满足时,执行S51;也可以是满足预设条件,执行S51和S52;如果不满足时,执行S52。

预设条件可以如下:

1)当编码块的宽大于等于一个阈值(例如但不限于4、8、16、32),和/或当前编码块的高大于等于一个阈值(例如但不限于4、8、16、32)。或者,

2)当前编码块的像素个数(宽*高)大于等于一个阈值(如256)。

该预设条件可以在编解码端中共同约定,或者通过SPS,PPS等高层语法指定。

S51:构建当前编码块的候选运动矢量列表一(List0)。

按照实施例1或者实施例3中的相应方法构建;具体地,可以如S11或S31,此处不再赘述。

S52:构建当前编码块的候选运动矢量列表二(List1)。

按照实施例1或者实施例3中的相应方法构建;具体地,可以如S12或S32,此处不再赘述。

S53:选择最优的候选运动信息

若满足预设条件,通过率失真代价从两个候选运动信息列表中确定最优的候选运动信息作为当前编码块的运动信息,再将最优的候选运动信息所在的候选运动信息列表索引(例如:list-idx)以及其在列表中位置的索引值(例如:mv-idx)传递到解码端。

若不满足预设条件,通过率失真代价从一个候选运动信息列表中确定最优的候选运动信息作为当前编码块的运动信息,再将最优的候选运动信息在候选运动信息列表中位置的索引值(例如:mv-idx)传递到解码端。

S54:当前块根据S53中得到的最优候选运动信息进行运动补偿得到该块的像素预测值。

具体实现可以与S14或S34采用相同或相似方法。

实施例五与现有技术的区别包括:将多种类型的候选运动矢量插入不同候选运动矢量列表,解析码流获得最优候选运动矢量索引信息,并根据相应的运动信息解码当前块;此外根据预设条件,构建不同的运动信息列表,根据当前编码块的特性,条件性解析采用的候选列表,可以减少指示候选列表的比特数。

结合实施例5,可以得到一种编码的方法流程:

S161,若当前块的大小满足预设像素数,则,构建第一列表;

S162,并构建第二列表;其中,所述第一列表是基于块的候选运动信息列表;所述第二列表是基于子块的候选运动信息列表;其中,当前块采用的帧间预测模式为融合模式;

S163,在所述第一列表和所述第二列表中确定最优候选运动信息;

S164,根据所述最优运动信息对所述当前块进行预测。

可选的,在S161之前,所述方法还可以包括:

判断当前块的大小满足预设像素数。

可选的,判断当前编码块的宽和高是否有一者大于等于某一个阈值;比如宽和/或高是否有大于等于8。

如果不满足预设像素数,所述方法还包括:

S165,构建第一列表;其中,所述第一列表是基于块的候选运动信息列表;其中,当前块采用的帧间预测模式为融合模式;

S166,在所述第一列表中确定最优候选运动信息;

S167,根据所述最优运动信息对所述当前块进行预测。

应理解,S165-S167可以独立于S161-S164构成一种可实现的编码方法。

实施例六(解码端)

S61:根据预设条件,解析码流,获得最优候选运动信息索引信息

预设条件可以为:

1)当前编码块的宽大于等于一个阈值(例如但不限于4、8、16、32),和/或当前编码块的高大于等于一个阈值(例如但不限于4、8、16、32)。或者,

2)当前编码块的像素个数(宽*高)大于等于一个阈值(如256)。

该预设条件可以在编解码端中共同约定,或者通过SPS、PPS等高层语法指定。

当不满足预设条件时(可理解为所有预设条件均不满足),不解析运动信息索引信息(只采用基于块的运动信息),此时默认用list0(具体实现中可以是list-idx=0),并解析列表list0中位置的索引值(mv-index)。具体地,可以只解析列表list0中位置的索引值(mv-index)。

当满足条件时(可理解为满足预设条件中任意一个),解析码流,获取最优的候选运动信息所在的候选运动信息列表索引(例如:list-idx,值可以为0或1)以及其在列表中位置的索引值(例如:mv-index)。

S62:根据候选运动信息列表索引,构建候选运动信息列表

具体地,可按照实施例2或实施例4中相应的方法进行构建。具体地,可以如S22或S42采用相同或相似方法,此处不再赘述。

S63:根据索引信息,确定最优候选运动信息

具体地,根据list-idx和mv-index,从列表中确定最优的候选运动信息。具体地,可以如S23或S43采用相同或相似方法,此处不再赘述。

S64:当前块根据S63中得到的最优候选运动信息进行运动补偿得到该块的像素预测值。

具体实现可以与S24或S44采用相同或相似方法。

实施例六与现有技术的区别包括:将多种类型的候选运动矢量插入不同候选运动矢量列表,解析码流获得最优候选运动矢量索引信息,并根据相应的运动信息解码当前块;此外根据预设条件,构建不同的运动信息列表,根据当前编码块的特性,条件性解析采用的候选列表,可以减少指示候选列表的比特数。

结合实施例6,可以得到一种解码的方法流程,请参阅图17,所述方法包括:S171,若当前块的大小满足预设像素数,获取用于确定包括当前块的最优候选运动信息的候选运动信息列表的标识,和最优候选运动信息在候选运动信息列表中的索引;其中,所述当前块采用的帧间预测模式为融合模式。

可选的,具体实施方式可以参照S61。

S172,根据所述标识构建候选运动信息列表;其中,所述标识为第一特征值时,构建基于块的候选运动信息列表;所述标识为第二特征值时,构建基于子块的候选运动信息列表;

可选的,具体实施方式可以参照S62。

S173,根据所述索引在构建的候选运动信息列表中确定最优运动信息;

可选的,具体实施方式可以参照S63。

S174,根据所述最优运动信息对所述当前块进行预测。

可选的,具体实施方式可以参照S64。

在S171之前,所述方法还包括:判断当前块的大小是否满足预设条件或预设像素数。

可选的,判断当前编码块的宽和高是否有一者大于等于某一个阈值;比如宽和/或高是否有大于等于8。

如果不满足预设像素数,所述方法还包括:

S175,构建第一列表;其中,所述第一列表是基于块的候选运动信息列表;其中,当前块采用的帧间预测模式为融合模式;

S176,在所述第一列表中确定最优候选运动信息;

S177,根据所述最优运动信息对所述当前块进行预测。

应理解,S175-S177可以独立于S171-S174构成一种可实现的编码方法。

实施例七(解码端)

S71:根据预设条件,解析码流,获得最优候选运动信息索引信息

当满足第一预设条件时,最优候选运动信息列表索引为0(只采用基于块的运动信息),即用的是list0(也可以是list-idx=0表示)。

当满足第二预设条件时,最优候选运动信息列表索引为1(只采用基于子块的运动信息),即用的是list1(也可以是list-idx=1表示)。

当第一预设条件和第二预设条件均不满足时,解析码流,获取最优的候选运动信息所在的候选运动信息列表索引(例如:list-idx),通过list-idx决定用list0还是list1。最后,再解析最优的候选运动信息在相应的列表中位置的索引值(例如:mv-index)

第一预设条件可以为:

1)当前编码块的宽小于第一阈值(如16),和/或当前编码块的高小于第一阈值(如16)。或者,

2)当前编码块的像素个数(宽*高)小于第一阈值(如256)

该第一预设条件可以在编解码端中共同约定,或者通过SPS、PPS等高层语法指定。

第二预设条件可以为:

1)当前编码块的宽大于等于第二阈值(如64),和/或当前编码块的高大于等于第二阈值(如64)。或者,

2)当前编码块的像素个数(宽*高)大于等于第二阈值(如1024)

第二预设条件可以在编解码端中共同约定,或者通过SPS、PPS等高层语法指定。

其中第二阈值大于第一阈值。

S72:根据候选运动信息列表索引,构建候选运动信息列表

具体地,可按照实施例2或实施例4或实施例6中相应的方法进行构建。具体地,可以如S22或S42或S62,采用相同或相似方法,此处不再赘述。

S73:根据索引信息,确定最优候选运动信息

具体地,根据list-idx和mv-index,从列表中确定最优的候选运动信息。具体地,可以如S23或S43或S63,采用相同或相似方法,此处不再赘述。

S74:当前块根据S73中得到的最优候选运动信息进行运动补偿得到该块的像素预测值。

具体实现可以与S24或S44或S64采用相同或相似方法。

实施例七与现有技术的区别包括:将多种类型的候选运动矢量插入不同候选运动矢量列表,解析码流获得最优候选运动矢量索引信息,并根据相应的运动信息解码当前块;此外根据预设条件,构建不同的运动信息列表,根据当前编码块的特性,条件性解析采用的候选列表,可以减少指示候选列表的比特数。

本申请实施例提供一种装置1800,请参阅图18,所述装置1800包括:

获取模块1801,用于获得当前块的最优候选运动信息的索引信息;

构建模块1802,用于根据所述索引信息构建候选运动信息列表,其中,所述索引信息为不同字段时,所述候选运动信息列表包含的运动矢量的获取模式不同;

确定模块1803,用于根据所述索引信息在所述候选运动信息列表中确定最优运动矢量;预测模块1804,用于根据所述最优运动矢量对所述当前块进行预测。

具体地,获取模块1801用于执行S21相应的方法以及可以对其进行部分等同替换的方法;构建模块1802用于执行S22相应的方法以及可以对其进行部分等同替换的方法;确定模块1803用于执行S23相应的方法以及可以对其进行部分等同替换的方法;预测模块1804用于执行S24相应的方法以及可以对其进行部分等同替换的方法。

具体地,获取模块1801用于执行S41相应的方法以及可以对其进行部分等同替换的方法;构建模块1802用于执行S42相应的方法以及可以对其进行部分等同替换的方法;确定模块1803用于执行S43相应的方法以及可以对其进行部分等同替换的方法;预测模块1804用于执行S44相应的方法以及可以对其进行部分等同替换的方法。

具体地,获取模块1801用于执行S51相应的方法以及可以对其进行部分等同替换的方法;构建模块1802用于执行S52相应的方法以及可以对其进行部分等同替换的方法;确定模块1803用于执行S53相应的方法以及可以对其进行部分等同替换的方法;预测模块1804用于执行S54相应的方法以及可以对其进行部分等同替换的方法。

具体地,获取模块1801用于执行S61相应的方法以及可以对其进行部分等同替换的方法;构建模块1802用于执行S62相应的方法以及可以对其进行部分等同替换的方法;确定模块1803用于执行S63相应的方法以及可以对其进行部分等同替换的方法;预测模块1804用于执行S64相应的方法以及可以对其进行部分等同替换的方法。

具体地,获取模块1801用于执行S71相应的方法以及可以对其进行部分等同替换的方法;构建模块1802用于执行S72相应的方法以及可以对其进行部分等同替换的方法;确定模块1803用于执行S73相应的方法以及可以对其进行部分等同替换的方法;预测模块1804用于执行S74相应的方法以及可以对其进行部分等同替换的方法。

此外,获取模块1801用于执行S141或S151或S171相应的方法以及可以对其进行部分等同替换的方法;构建模块1802用于执行S142或S152或S172相应的方法以及可以对其进行部分等同替换的方法;确定模块1803用于执行S143或S153或S173相应的方法以及可以对其进行部分等同替换的方法;预测模块1804用于执行S144或S154或S174相应的方法以及可以对其进行部分等同替换的方法。

本申请实施例提供一种编码设备19,请参阅图19,该设备可以是编解码通用设备,,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行S11,S12,S13,S14等方法以及等同方法。

本申请实施例提供一种编码设备19,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行S31,S32,S33,S34等方法以及等同方法。

本申请实施例提供一种编码设备19,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行S51,S52,S53,S54等方法以及等同方法。

本申请实施例提供一种解码设备19(其中,该设备可以是编解码设备),包括:相互耦合的非易失性存储器1901和处理器1902,所述处理器调用存储在所述存储器中的程序代码以执行S21,S22,S23,S24等方法以及等同方法。

本申请实施例提供一种解码设备19,包括:相互耦合的非易失性存储器1901和处理器1902,所述处理器调用存储在所述存储器中的程序代码以执行S41,S42,S43,S44等方法以及等同方法。

本申请实施例提供一种解码设备19,包括:相互耦合的非易失性存储器1901和处理器1902,所述处理器调用存储在所述存储器中的程序代码以执行S61,S62,S63,S64等方法以及等同方法。

本申请实施例提供一种解码设备19,包括:相互耦合的非易失性存储器1901和处理器1902,所述处理器调用存储在所述存储器中的程序代码以执行S71,S72,S73,S74等方法以及等同方法。

编解码设备19还可以包括显示器1903,显示视频画面。

本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行S11-S14,S21-S24,S31-S34,S41-S44,S51-S54,S61-S64,和/或S71-S74中的部分或全部步骤的指令。

本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行S11-S14,S21-S24,S31-S34,S41-S44,S51-S54,S61-S64,和/或S71-S74中的部分或全部步骤。

应理解,方法实施例中一些技术特征的解释和表述同样适用在装置实施例、编码设备、解码设备、计算机程序、存储介质等。

本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。

作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。

可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。

本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。

以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

相关技术
  • 一种运动矢量预测方法、装置与编解码器
  • 一种运动矢量预测方法、装置与编解码器
技术分类

06120112804918