METHOD AND DEVICE FOR MOTION VECTOR PREDICTION

20-12-2018 дата публикации
Номер:
WO2018228016A1
Автор: MAO, Jue, YU, Lu, ZHAO, Yin
Принадлежит: 华为技术有限公司
Контакты:
Номер заявки: CN01-08-201825
Дата заявки: 23-03-2018

一种运动矢量预测的方法及设备
[1]

本申请要求于2017年6月13日提交中国专利局、申请号为201710445873.7、发明名称为“一种运动矢量预测的方法及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

[2]

本申请涉及图像处理技术领域,尤其涉及一种运动矢量预测的方法及设备。

背景技术

[3]

高效率视频编码(high efficiency video coding,HEVC)标准的帧间编码采用运动矢量(motion vector,MV)预测编码技术降低传递MV相关信息的数据量,提高编码效率。HEVC标准的帧间预测编码细分为两种模式:帧间(inter)模式和融合(merge)/跳过(skip)模式。当前块采用inter模式时,在码流中标识当前块MV的参考帧索引(reference index)、运动矢量预测值索引(motion vector predictor index,MVP index)以及运动矢量残差值(motion vector difference,MVD);由参考帧索引确定当前块MV指向的参考帧,由运动矢量预测值索引指示运动矢量预测值(motion vector predictor,MVP)候选者列表中的一个候选者作为当前块MV的预测值,MVP与MVD相加得到当前块MV。当前块采用merge/skip模式时,码流中不标识运动矢量残差值和参考帧索引,只标识MVP index,根据MVP index从MVP候选者列表中选择相应的MV和MV对应的参考帧,作为当前块的MV和它对应的参考帧。

[4]

在两种方案中,均需要由当前块的空间相邻块和时间相邻块的运动矢量构造运动矢量预测值列表(motion vector predictor list),其中的每一个运动矢量称为MVP候选者(MVP candidate),再根据码流中传递的MVP index从运动矢量预测值列表中找到对应的MVP候选者,将它确定为图像块的运动矢量预测值。一个inter模式的当前块可使用前向预测、后向预测以及双向预测中的任一种方式进行帧间预测。任意一个inter模式的块,具有1个或2个MV,对块中的每一个MV,需要分别构造MVP列表。

[5]

当前块的每个空间相邻块或时间相邻块使用单向预测时只含有一个MV,当前块使用双向预测时,含有的两个MV也可能是相同类型。对于inter模式,如果相邻块的MV类型与当前块的MV类型不同(即一个为长期运动矢量,另一个为短期运动矢量),则此MV不会加入MVP列表,导致MVP列表中零运动矢量(zero motion vector,Zero MV)增加,MV预测效率低下。

[6]

发明内容

[7]

本申请实施例提供了一种运动矢量预测的方法,当前块的运动矢量的运动矢量类型与相邻块的运动矢量的运动矢量类型不同时,用于为当前块的运动矢量预测值列表中补充与当前块的运动矢量的运动矢量类型相同的运动矢量,从而丰富运动矢量预测值列表,提高运动矢量的预测效率。

[8]

本申请实施例第一方面提供一种运动矢量预测的方法,包括:设备从码流中获取当前块的运动矢量对应的参考帧;设备再确定所述参考帧的参考帧类型,并根据所述参考帧的参考帧类型确定所述当前块的运动矢量的运动矢量类型,所述参考帧的参考帧类型包括长期参考帧和短期参考帧,所述当前块的运动矢量的运动矢量类型包括长期运动矢量和短期运动矢量,所述短期运动矢量在短期参考帧中获得,所述长期运动矢量在长期参考帧中获得;当所述当前块的至少一个空间相邻预测块为帧间预测块时,设备从用于所述空间相邻预测块的帧间预测的第一运动矢量中获取所述至少一个空间相邻预测块的第一运动矢量的运动矢量类型;当获取的所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型均不相同时,设备根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,并将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例中,当前块的运动矢量的运动矢量类型与相邻块的第一运动矢量的运动矢量类型不同时,确定当前块的运动矢量预测值,即为当前块的运动矢量预测值列表中补充与当前块运动矢量的运动矢量类型相同的第二运动矢量,从而丰富运动矢量预测值列表,提高运动矢量预测效率。

[9]

在一种可能的设计中,在本申请实施例第一方面的第一种实现方式中,所述方法还包括:当获取的至少一个所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型相同时,将所述至少一个所述第一运动矢量作为所述当前块的候选运动矢量预测值。本申请实施例中,当获取的至少一个所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型相同时,确定所述至少一个第一运动矢量作为当前块的运动矢量预测值,增加了本申请实施例的实现方式。

[10]

在一种可能的设计中,在本申请实施例第一方面的第二种实现方式中,所述方法还包括:当全部所述当前块的空间相邻预测块为帧内预测块时,设备在至少一个所述空间相邻预测块的虚拟参考帧中确定和所述空间相邻预测块的像素差异最小的虚拟参考块,所述虚拟参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,所述虚拟参考帧为已重建帧,并将所述虚拟参考块和所述空间相邻预测块间的运动矢量作为所述当前块的运动矢量预测值。本申请实施例中,当全部所述当前块的空间相邻预测块为帧内预测块时,设备确定运动矢量预测值的过程,增加了本申请实施例的实现方式。

[11]

在一种可能的设计中,在本申请实施例第一方面的第三种实现方式中,所述当前块的空间相邻像素块包括所述当前块空间相邻的至少一个预设范围内的像素块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块空间相邻的至少一个预设范围内的像素块的像素重建值,对应的,所述根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,包括:设备在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,并将该第一参考块和所述像素块间的运动矢量作为所述第二运动矢量,进一步将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例细化了根据像素块确定运 动矢量预测值的过程,使本申请实施例更具有可操作性。

[12]

在一种可能的设计中,在本申请实施例第一方面的第四种实现方式中,所述在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,包括:当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例提供了根据像素块确定运动矢量预测值的具体过程,使本申请实施例更具有可操作性和可实现性。

[13]

在一种可能的设计中,在本申请实施例第一方面的第五种实现方式中,所述当前块的空间相邻像素块包括所述当前块的至少一个空间相邻预测块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块的至少一个空间相邻预测块的第二运动矢量,所述第二运动矢量的运动矢量类型和所述第一运动矢量的运动矢量类型不同,对应的,所述根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,包括:将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例细化了根据空间相邻预测块确定运动矢量预测值的过程,使本申请实施例更具有可操作性。

[14]

在一种可能的设计中,在本申请实施例第一方面的第六种实现方式中,所述将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,包括:当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或者所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值;当所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述上方预设位置空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例提供了根据空间相邻预测块确定运动矢量预测值的具体过程,使本申请实施例更具有可操作性和可实现性。

[15]

在一种可能的设计中,在本申请实施例第一方面的第七种实现方式中,所述将所述至 少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,包括:当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,其中,当至少一个所述当前块的左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,或者,当至少一个所述当前块的上方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例提供了根据空间相邻预测块确定运动矢量预测值的另一种具体过程,使本申请实施例更具有可操作性和可实现性。

[16]

在一种可能的设计中,在本申请实施例第一方面的第八种实现方式中,所述方法还包括:当所述候选运动矢量预测值的数量小于预设值,至少一个所述当前块的时域对应位置预测块(co-located block)的第一运动矢量可用,且所述至少一个所述当前块的时域对应位置预测块的第一运动矢量的运动矢量类型与所述当前块的运动矢量的运动矢量类型相同时,将所述至少一个所述时域对应位置预测块的第一运动矢量或所述至少一个所述时域对应位置预测块的第一运动矢量的缩放值作为候选运动矢量预测值。本申请实施例提供了当候选运动矢量预测值数量小于预设值时,将时域对应位置预测块的第一运动矢量作为当前块的运动矢量预测值,增加了本申请实施例的实现方式。

[17]

在一种可能的设计中,在本申请实施例第一方面的第九种实现方式中,将所述至少一个所述时域对应位置预测块的第一运动矢量或所述至少一个所述时域对应位置预测块的第一运动矢量的缩放值作为候选运动矢量预测值之后,所述方法还包括:当所述候选运动矢量预测值的数量小于预设值时,将至少一个零运动矢量作为候选运动矢量预测值,以使得所述候选运动矢量预测值的数量达到预设值。本申请实施例提供了当候选运动矢量预测值数量小于预设值时,利用零运动矢量作为当前块的运动矢量预测值,增加了本申请实施例的实现方式。

[18]

在一种可能的设计中,在本发明实施例第一方面的第十种实现方式中,所述方法可用于所述当前块的编码方法或者所述当前块的解码方法。

[19]

本申请实施例第二方面提供一种运动矢量预测的设备,包括:第一获取单元,用于获取当前块的运动矢量对应的参考帧;确定单元,用于根据所述参考帧的参考帧类型,确定所述当前块的运动矢量的运动矢量类型,其中,所述运动矢量类型包括:短期运动矢量和长期运动矢量,其中,所述短期运动矢量在短期参考帧中获得,所述长期运动矢量在长期参考帧中获得;第二获取单元,当所述当前块的至少一个空间相邻预测块为帧间预测块时,用于获取所述至少一个空间相邻预测块的第一运动矢量的运动矢量类型,所述第一运动矢量用于所述空间相邻预测块的帧间预测;第一处理单元,当获取的所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型均不相同时,用于根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量 或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例中,当前块的运动矢量的运动矢量类型与相邻块的第一运动矢量的运动矢量类型不同时,确定当前块的运动矢量预测值,即为当前块的运动矢量预测值列表中补充与当前块运动矢量的运动矢量类型相同的第二运动矢量,从而丰富运动矢量预测值列表,提高运动矢量预测效率。

[20]

在一种可能的设计中,在本申请实施例第二方面的第一种实现方式中,所述设备还包括:第二处理单元,当获取的至少一个所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型相同时,用于将所述至少一个所述第一运动矢量作为所述当前块的候选运动矢量预测值。本申请实施例中,当获取的至少一个所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型相同时,确定所述至少一个第一运动矢量作为当前块的运动矢量预测值,增加了本申请实施例的实现方式。

[21]

在一种可能的设计中,在本申请实施例第二方面的第二种实现方式中,所述设备还包括:第三处理单元,当全部所述当前块的空间相邻预测块为帧内预测块时,用于在至少一个所述空间相邻预测块的虚拟参考帧中确定和所述空间相邻预测块的像素差异最小的虚拟参考块,将所述虚拟参考块和所述空间相邻预测块间的运动矢量作为所述当前块的运动矢量预测值,所述虚拟参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,所述虚拟参考帧为已重建帧。本申请实施例中,当全部所述当前块的空间相邻预测块为帧内预测块时,设备确定运动矢量预测值的过程,增加了本申请实施例的实现方式。

[22]

在一种可能的设计中,在本申请实施例第二方面的第三种实现方式中,所述当前块的空间相邻像素块包括所述当前块空间相邻的至少一个预设范围内的像素块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块空间相邻的至少一个预设范围内的像素块的像素重建值,对应的,所述第一处理单元包括:第一处理模块,用于在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例细化了根据像素块确定运动矢量预测值的过程,使本申请实施例更具有可操作性。

[23]

在一种可能的设计中,在本申请实施例第二方面的第四种实现方式中,所述第一处理模块包括:第一处理子模块,当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,用于在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例提供了根据像素块确定运动矢量预测值的具体过程,使本申请实施例更 具有可操作性和可实现性。

[24]

在一种可能的设计中,在本申请实施例第二方面的第五种实现方式中,所述当前块的空间相邻像素块包括所述当前块的至少一个空间相邻预测块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块的至少一个空间相邻预测块的第二运动矢量,所述第二运动矢量的运动矢量类型和所述第一运动矢量的运动矢量类型不同,对应的,第一处理单元包括:第二处理模块,用于将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例细化了根据空间相邻预测块确定运动矢量预测值的过程,使本申请实施例更具有可操作性。

[25]

在一种可能的设计中,在本申请实施例第二方面的第六种实现方式中,所述第二处理模块包括:第二处理子模块,当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述左方预设位置的空间相邻预测块的第二运动矢量可用时,用于将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或者所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值;第三处理子模块,当所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述上方预设位置空间相邻预测块的第二运动矢量可用时,用于将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例提供了根据空间相邻预测块确定运动矢量预测值的具体过程,使本申请实施例更具有可操作性和可实现性。

[26]

在一种可能的设计中,在本申请实施例第二方面的第七种实现方式中,所述第二处理模块包括:第四处理子模块,当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,其中,当至少一个所述当前块的左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,或者,当至少一个所述当前块的上方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例提供了根据空间相邻预测块确定运动矢量预测值的另一种具体过程,使本申请实施例更具有可操作性和可实现性。

[27]

在一种可能的设计中,在本申请实施例第二方面的第八种实现方式中,所述设备还包括:第四处理单元,当所述候选运动矢量预测值的数量小于预设值,至少一个所述当前块的时域对应位置预测块的第一运动矢量可用,且所述至少一个所述当前块的时域对应位置预测块的第一运动矢量的运动矢量类型与所述当前块的运动矢量的运动矢量类型相同时,用于将所述至少一个所述时域对应位置预测块的第一运动矢量或所述至少一个所述时域对 应位置预测块的第一运动矢量的缩放值作为候选运动矢量预测值。本申请实施例提供了当候选运动矢量预测值数量小于预设值时,将时域对应位置预测块的第一运动矢量作为当前块的运动矢量预测值,增加了本申请实施例的实现方式。

[28]

在一种可能的设计中,在本申请实施例第二方面的第九种实现方式中,所述设备还包括:第五处理单元,当所述候选运动矢量预测值的数量小于预设值时,用于将至少一个零运动矢量作为候选运动矢量预测值,以使得所述候选运动矢量预测值的数量达到预设值。本申请实施例提供了当候选运动矢量预测值数量小于预设值时,利用零运动矢量作为当前块的运动矢量预测值,增加了本申请实施例的实现方式。

[29]

在一种可能的设计中,在本发明实施例第二方面的第十种实现方式中,所述设备可用于编码所述当前块的编码器或者解码所述当前块的解码器。

[30]

本申请的第三方面提供了一种运动矢量预测的设备,所述设备包括:处理器和耦合于所述处理器的存储器;所述处理器用于:获取当前块的运动矢量对应的参考帧;根据所述参考帧的参考帧类型,确定所述当前块的运动矢量的运动矢量类型,其中,所述运动矢量类型包括:短期运动矢量和长期运动矢量,其中,所述短期运动矢量在短期参考帧中获得,所述长期运动矢量在长期参考帧中获得;当所述当前块的至少一个空间相邻预测块为帧间预测块时,获取所述至少一个空间相邻预测块的第一运动矢量的运动矢量类型,所述第一运动矢量用于所述空间相邻预测块的帧间预测;当获取的所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型均不相同时,根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[31]

在一种可能的设计中,在本申请实施例第三方面的第一种实现方式中,所述处理器还用于:当获取的至少一个所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型相同时,将所述至少一个所述第一运动矢量作为所述当前块的候选运动矢量预测值。

[32]

在一种可能的设计中,在本申请实施例第三方面的第二种实现方式中,所述处理器还用于:当全部所述当前块的空间相邻预测块为帧内预测块时,在至少一个所述空间相邻预测块的虚拟参考帧中确定和所述空间相邻预测块的像素差异最小的虚拟参考块,将所述虚拟参考块和所述空间相邻预测块间的运动矢量作为所述当前块的运动矢量预测值,所述虚拟参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,所述虚拟参考帧为已重建帧。

[33]

在一种可能的设计中,在本申请实施例第三方面的第三种实现方式中,所述当前块的空间相邻像素块包括所述当前块空间相邻的至少一个预设范围内的像素块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块空间相邻的至少一个预设范围内的像素块的像素重建值,对应的,所述处理器用于:在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢 量的缩放值作为所述当前块的候选运动矢量预测值。

[34]

在一种可能的设计中,在本申请实施例第三方面的第四种实现方式中,所述处理器用于:当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[35]

在一种可能的设计中,在本申请实施例第五方面的第五种实现方式中,所述当前块的空间相邻像素块包括所述当前块的至少一个空间相邻预测块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块的至少一个空间相邻预测块的第二运动矢量,所述第二运动矢量的运动矢量类型和所述第一运动矢量的运动矢量类型不同,对应的,所述处理器用于:将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[36]

在一种可能的设计中,在本申请实施例第三方面的第六种实现方式中,所述处理器用于:当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或者所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值;当所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述上方预设位置空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[37]

在一种可能的设计中,在本申请实施例第三方面的第七种实现方式中,所述处理器用于:当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,其中,当至少一个所述当前块的左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,或者,当至少一个所述当前块的上方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[38]

在一种可能的设计中,在本申请实施例第三方面的第八种实现方式中,所述设备可用于编码所述当前块的编码器或者解码所述当前块的解码器。

[39]

本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储 有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

[40]

本申请的第五方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

[41]

从以上技术方案可以看出,本申请实施例具有以下优点:

[42]

本申请实施例提供的技术方案中,获取当前块的运动矢量对应的参考帧;根据所述参考帧的参考帧类型,确定所述当前块的运动矢量的运动矢量类型,其中,所述运动矢量类型包括:短期运动矢量和长期运动矢量,其中,所述短期运动矢量在短期参考帧中获得,所述长期运动矢量在长期参考帧中获得;当所述当前块的至少一个空间相邻预测块为帧间预测块时,获取所述至少一个空间相邻预测块的第一运动矢量的运动矢量类型,所述第一运动矢量用于所述空间相邻预测块的帧间预测;当获取的所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型均不相同时,根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。本申请实施例丰富了运动矢量预测值列表,解决了在相邻块的运动矢量类型与当前块的运动矢量类型不同情况下,不能从相邻块中获得运动矢量预测值的问题,提高运动矢量的预测效率。

附图说明

[43]

图1为本申请实施例应用的系统框架示意图;

[44]

图2为本申请实施例中相邻的L型区域中重建像素的示意图;

[45]

图3为本申请实施例中运动矢量预测的方法的一个实施例示意图;

[46]

图4为本申请实施例中运动矢量预测的方法的另一个实施例示意图;

[47]

图5为本申请实施例中运动矢量预测的方法的另一个实施例示意图;

[48]

图6为本申请实施例中运动矢量预测的设备的一个实施例示意图;

[49]

图7为本申请实施例中运动矢量预测的设备的另一个实施例示意图;

[50]

图8为本申请实施例中运动矢量预测的设备的另一个实施例示意图;

[51]

图9为本申请实施例中运动矢量预测的设备的另一个实施例示意图;

[52]

图10为本申请实施例中运动矢量预测的设备的另一个实施例示意图;

[53]

图11是本申请实施例的编解码装置的示意性框图;

[54]

图12是本申请实施例的编解码装置的示意性图。

具体实施方式

[55]

本申请实施例提供了一种运动矢量预测的方法,当前块的运动矢量的运动矢量类型与相邻块的运动矢量的运动矢量类型不同时,用于为当前块的运动矢量预测值列表中补充与当前块运动矢量的运动矢量类型相同的运动矢量,从而丰富运动矢量预测值列表,提高运动矢量的预测效率。

[56]

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例进行描述。

[57]

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

[58]

本申请实施例提供的方法可应用于如图1所示的系统框架。在该网络框架中,根据当前块的空间相邻预测块和时域对应位置预测块确定运动矢量预测值,当前块的空间相邻预测块可以划分成左方空间相邻预测块、上方空间相邻预测块,空间相邻预测块可以有不同的划分方式,例如,可以如图1所示进行划分,左方空间相邻预测块包括当前块的左下块A0和左侧块A1,上方空间相邻预测块包括当前块的右上块B0,上侧块B1,左上块B2;时域对应位置预测块(co-located block)包括右下块C0和中心块C1。当根据当前块的相邻重建像素得到当前块的运动矢量预测值,在当前块的相邻区域选择部分区域中选择重建像素,时域对应位置预测块可以如图2所示进行划分,在当前块周围L型区域中选择重建像素。本申请实施例中需要判断当前块的相邻块的第一运动矢量的运动矢量类型与当前块的运动矢量的运动矢量类型是否相同,并根据实际情况确定相邻块的运动矢量或运动矢量的缩放值为当前块的运动矢量预测值,提高运动矢量的预测效率。

[59]

为便于理解,下面对本申请实施例的具体流程进行描述,请参阅图3,当该当前块的空间相邻像素块包括当前块的至少一个空间相邻预测块时,本申请实施例中运动矢量预测的方法的一个实施例包括:

[60]

301、获取当前块的运动矢量对应的参考帧。

[61]

设备获取当前块的运动矢量对应的参考帧。设备根据H.265视频编码标准,将图像分割成相同规格的多个图像块,设备首先选择正在进行编码/解码处理的图像块作为当前块,然后获取所选择的当前块的运动矢量(motion vector,MV)所对应的参考帧索引,再根据索引信息确定当前块的运动矢量对应的参考帧。

[62]

需要说明的是,对一个图像块进行预测处理时,当前块所在的图像称为当前帧,在当前帧进行编码/解码之前已经完成编码/解码处理的帧称为重建帧。当前帧可以为单向预测帧或双向预测帧,若当前帧为单向预测帧,则当前帧具有一个参考帧列表L0;若当前帧为双向预测帧,则当前帧具有两个参考帧列表,两个列表分别称为L0和L1,每个列表中包含至少一个重建帧,称为当前帧的参考帧,参考帧为当前帧的帧间预测提供参考像素。设备根据参考帧索引确定当前块的运动矢量指向的参考帧。

[63]

可以理解的是,一个inter模式下的当前块可使用前向预测、后向预测、或双向预测的方式进行帧间预测。当使用前向预测时,此当前块具有一个前向参考帧列表(L0)和一个前向运动矢量(L0_MV);当使用后向预测时,此当前块具有一个后向参考帧列表(L1)和一个后向MV(L1_MV);当使用双向预测时,此当前块具有L0和L1两个参考帧列表,同时也具有一个L0_MV和一个L1_MV。也就是说,任意一个inter模式的块,具有1个或2 个MV。对块中的每一个MV,可以分别构造运动矢量预测值(motion vector predictor,MVP)列表。上述参考帧索引在码流中标识,例如,在高效率视频编码(high efficiency video coding,HEVC)中的ref_idx_l0和ref_idx_l1语法元素,分别表示参考帧列表L0和L1中的参考帧索引。本申请实施例中可以对每一个当前块进行处理,确定MVP,每一个当前块的MVP列表的数量可以为一个或两个,此处不做限定。

[64]

302、根据参考帧的参考帧类型,确定当前块的运动矢量的运动矢量类型。

[65]

设备在获取到的参考帧后,从该参考帧中获取相关信息,确定该参考帧的参考帧类型,该参考帧的参考帧类型包括长期参考帧和短期参考帧;设备再根据该参考帧的参考帧类型,然后设备根据对应关系确定当前块的运动矢量的运动矢量类型。当参考帧为长期参考帧时,该长期参考帧对应的当前块的运动矢量为长期运动矢量,当参考帧为短期参考帧时,该短期参考帧对应的当前块的运动矢量为短期运动矢量。

[66]

303、当该当前块的至少一个空间相邻预测块为帧间预测块时,获取该至少一个空间相邻预测块的第一运动矢量的运动矢量类型。

[67]

在确定参考帧的参考帧类型和当前块的运动矢量的参考帧类型之后,当该当前块的至少一个空间相邻预测块为帧间预测块时,设备根据预设顺序访问当前块的至少一个空间相邻预测块,设备从当前块的至少一个空间相邻预测块中获取第一运动矢量,并确定当前块的空间相邻预测块的第一运动矢量的运动矢量类型,即确定第一运动矢量为长期运动矢量或短期运动矢量。

[68]

需要说明的是,第一运动矢量为使用帧间预测编码的空间相邻块进行运动补偿时使用的运动矢量,即第一运动矢量用于空间相邻预测块的帧间预测。例如,该第一运动矢量可以为L0_MV或/和L1_MV。

[69]

可以理解的是,在确定参考帧的参考帧类型和当前块的运动矢量的参考帧类型之后,当全部当前块的空间相邻预测块为帧内预测块时,设备首先在至少一个空间相邻预测块的虚拟参考帧中确定和空间相邻预测块的像素差异最小的虚拟参考块,然后再将虚拟参考块和空间相邻预测块间的运动矢量作为当前块的运动矢量预测值,该虚拟参考帧的参考帧类型和该当前块的运动矢量对应的参考帧的参考帧类型相同。

[70]

304、当该当前块的左方预设位置的空间相邻预测块的第一运动矢量与当前块的运动矢量的运动矢量类型不相同,且至少一个左方预设位置的空间相邻预测块的第二运动矢量可用时,将至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或者至少一个左方预设位置的空间相邻预测块的第二运动矢量的缩放值作为当前块的候选运动矢量预测值。

[71]

在一种可行的实施方式中,左方预设位置的空间相邻预测块可以为全部左方空间相邻预测块。

[72]

设备判断当前块的左方空间相邻预测块中的第一运动矢量中是否存在至少一个与当前块的运动矢量的运动矢量类型相同的第一运动矢量;若存在,则设备从左方空间相邻预测块中选择至少一个第一运动矢量或第一运动矢量的缩放值作为候选MVP,并将其加入MVP列表;若不存在,即当该当前块的全部左方空间相邻预测块的第一运动矢量与当前块的运动矢量的运动矢量类型不相同时,判断左方空间相邻预测块的第二运动矢量是否可用;当 且至少一个左方空间相邻预测块的第二运动矢量可用时,将至少一个左方空间相邻预测块的第二运动矢量或者至少一个左方空间相邻预测块的第二运动矢量的缩放值作为当前块的候选运动矢量预测值。

[73]

需要说明的是,当前块的全部左方空间相邻预测块的第一运动矢量与当前块的运动矢量的运动矢量类型不相同,可以有两种类型:类型一:当前块的全部左方空间相邻预测块的第一运动矢量为长期运动矢量且当前块的运动矢量的运动矢量类型为短期运动矢量;类型二:当前块的全部左方空间相邻预测块的第一运动矢量为短期运动矢量且当前块的运动矢量的运动矢量类型为长期运动矢量。

[74]

可以理解的是,一个块的运动矢量可用,至少需要满足两个条件,条件一:此块在图像内,此块与当前块属于同一条带或同一条带片段。条件二:此块使用帧间预测编码。还可能有其它限制条件,例如,此块与当前块属于同一区块(tile)等,这些限制条件在不同的标准中不一样,具体此处不做限定。

[75]

举例说明,设备判断当前块的左方空间相邻预测块中的第一运动矢量中是否存在至少一个与当前块的运动矢量的运动矢量类型相同的第一运动矢量的过程包括3轮筛选。第一轮筛选:设备按照预设顺序1,依次访问左方空间相邻预测块的第一运动矢量,判断第一运动矢量是否满足条件1“第一运动矢量可用且第一运动矢量的参考帧与当前块的运动矢量的参考帧图像顺序号(picture order count,POC)相同”,首先将满足条件1的第一运动矢量作为候选MVP。第二轮筛选:设备按照预设顺序1,依次访问左方空间相邻预测块的第一运动矢量,判断第一运动矢量是否满足条件2“第一运动矢量可用且第一运动矢量的参考帧与当前块运动矢量的参考帧类型相同”,对满足条件2的第一运动矢量而言,将此第一运动矢量或第一运动矢量的缩放值作为候选MVP。当两个参考帧的类型都为短期参考帧,且不为同一帧时,空间相邻预测块的第一运动矢量需要进行缩放后作为候选MVP,运动矢量的缩放基于两组POC差值的比值得到,例如HEVC中的运动矢量缩放处理。若这些第一运动矢量均不满足条件2,进入第三轮筛选。第三轮筛选:设备按照预设顺序2,依次访问左方空间相邻预测块的第二运动矢量,判断左方空间相邻预测块的第二运动矢量是否可用。访问顺序2与访问顺序1可以相同,也可以不同,例如,访问顺序2可以为左下块A0、左侧块A1块的先后顺序。

[76]

305、当该当前块的上方预设位置的空间相邻预测块的第一运动矢量与当前块的运动矢量的运动矢量类型不相同,且至少一个上方预设位置的空间相邻预测块的第二运动矢量可用时,将至少一个上方预设位置的空间相邻预测块的第二运动矢量或至少一个上方预设位置的空间相邻预测块的第二运动矢量的缩放值作为当前块的候选运动矢量预测值。

[77]

在一种可行的实施方式中,上方预设位置的空间相邻预测块可以为全部上方空间相邻预测块。

[78]

设备判断当前块的上方空间相邻预测块中的第一运动矢量中是否存在至少一个与当前块的运动矢量的运动矢量类型相同的第一运动矢量;若存在,则设备从上方空间相邻预测块中选择至少一个第一运动矢量或第一运动矢量的缩放值作为候选MVP,并将其加入MVP列表;若不存在,即当该当前块的全部上方空间相邻预测块的第一运动矢量与当前块的运 动矢量的运动矢量类型不相同时,判断上方空间相邻预测块的第二运动矢量是否可用;当且至少一个上方空间相邻预测块的第二运动矢量可用时,将至少一个上方空间相邻预测块的第二运动矢量或者至少一个上方空间相邻预测块的第二运动矢量的缩放值作为当前块的候选运动矢量预测值。

[79]

举例说明,设备判断当前块的上方空间相邻预测块中的第一运动矢量中是否存在至少一个与当前块的运动矢量的运动矢量类型相同的第一运动矢量的过程包括3轮筛选。第一轮筛选:设备按照预设顺序3,依次访问上方空间相邻预测块的第一运动矢量,判断第一运动矢量是否满足条件1“第一运动矢量可用且第一运动矢量的参考帧与当前块的运动矢量的参考帧图像顺序号相同”,首先将满足条件1的第一运动矢量确定为候选MVP,然后判断上方空间相邻预测块是否满足条件3“左方空间相邻预测块的左侧块和左下块的MV均为不可用”,若满足条件3则进行第二轮筛选。第二轮筛选:设备按照预设顺序3,依次访问上方空间相邻预测块的第一运动矢量,判断第一运动矢量是否满足条件2“第一运动矢量可用且第一运动矢量的参考帧与当前块运动矢量的参考帧类型相同”,对满足条件2的第一运动矢量而言,将此第一运动矢量或第一运动矢量的缩放值作为候选MVP。当两个参考帧的类型都为短期参考帧,且不为同一帧时,空间相邻预测块的第一运动矢量需要进行缩放后作为候选MVP,运动矢量的缩放基于两组POC差值的比值得到,例如HEVC中的运动矢量缩放处理。若这些第一运动矢量均不满足条件2,进入第三轮筛选。第三轮筛选:设备按照预设顺序4,依次访问上方空间相邻预测块的第二运动矢量,判断上方空间相邻预测块的第二运动矢量是否可用。访问顺序4与访问顺序3可以相同,也可以不同,例如,访问顺序4可以为右下块B0、上侧块B1块、左上块B2的先后顺序。

[80]

需要说明的是,当选中的第二运动矢量为短期运动矢量且该第二运动矢量对应的POC差值与当前块的运动矢量对应的POC差值不同时,对第二运动矢量进行缩放后作为候选MVP;否则不需要缩放,直接作为候选MVP,加入MVP列表。

[81]

可以理解的是,如果此时MVP列表中有相同的候选MVP,则从MVP列表中去掉重复的候选MVP,并更新候选MVP的数目。

[82]

306、当候选运动矢量预测值的数量小于预设值,至少一个当前块的时域对应位置预测块的第一运动矢量可用,且至少一个该当前块的时域对应位置预测块的第一运动矢量的运动矢量类型与该当前块的运动矢量的运动矢量类型相同时,将至少一个该时域对应位置预测块的第一运动矢量或至少一个该时域对应位置预测块的第一运动矢量的缩放值作为候选运动矢量预测值。

[83]

可选的,当候选运动矢量预测值的数量小于预设值,设备判断当前块的时域对应位置预测块的第一运动矢量可用且该当前块的时域对应位置预测块的第一运动矢量的运动矢量类型与当前块的运动矢量的运动矢量类型相同时,设备将至少一个该时域对应位置预测块的第一运动矢量或至少一个该时域对应位置预测块的第一运动矢量的缩放值作为候选运动矢量预测值。

[84]

需要说明的是,当从空间相邻预测块选出的候选MVP数目小于N时(即MVP列表还未填满,MVP列表的长度为N),从时域对应位置预测块的第一运动矢量中挑选MVP加入MVP 列表。例如,N的取值可以是N=2或N=3。

[85]

举例说明,设备依次访问时域对应位置预测块中的右下块C0和中心块C1的第一运动矢量,判断从时域对应位置预测块中获取到的第一运动矢量是否满足条件2“第一运动矢量可用且第一运动矢量的参考帧与当前块运动矢量的参考帧类型相同”,对满足条件2的第一运动矢量而言,将此第一运动矢量或第一运动矢量的缩放值作为候选MVP。

[86]

307、当候选运动矢量预测值的数量小于预设值时,将至少一个零运动矢量作为候选运动矢量预测值,以使得候选运动矢量预测值的数量达到预设值。

[87]

若候选运动矢量预测值的数量仍然小于预设值,则设备将至少一个零运动矢量为运动矢量预测值,以使得当前块的候选运动矢量预测值的数量达到预设值。

[88]

本申请实施例中,当前块的运动矢量的运动矢量类型与相邻块的第一运动矢量的运动矢量类型不同时,确定当前块的候选运动矢量预测值,即为当前块的运动矢量预测值列表中补充与当前块的运动矢量的运动矢量类型相同类型的第二运动矢量,从而丰富运动矢量预测值列表,提高运动矢量的预测效率。

[89]

可选的,提供一种为上述空间相邻像素块导出第二运动矢量(以及第一运动矢量)的方法。空间相邻像素块(简称为相邻块)完成重建得到重建像素后,根据它的预测编码模式以及它运动补偿时使用MV类型,利用相邻块的重建像素在参考帧上进行运动搜索,得到第二运动矢量(及第一运动矢量,如果相邻块为帧内预测块)。相邻块存在以下四种类型,每种类型的相邻块处理方式分别给出。

[90]

(A)如果相邻块使用帧间预测并且只使用短期运动矢量(short-term motion vector,SMV)进行运动补偿(即它的第一运动矢量中只包含SMV),则在长期参考帧上进行运动搜索导出长期运动矢量(long-term motion vector,LMV),作为第二运动矢量,相邻块运动补偿使用的SMV作为第一运动矢量。更具体的,包括以下处理:首先,确定运动搜索的起始点。找出相邻块的空间相邻预测块(可选的,还可以包括时域对应位置预测块)中的所有LMV(上述LMV来自这些块的第一运动矢量和第二运动矢量)。特别的,当没有可用的LMV时,第二运动矢量为不可用。以相邻块的重建像素为模板,各LMV作为运动矢量进行运动补偿,得到当前帧上的模板区域与LMV指向的参考帧上对应模板区域之间的差异图像(即第一差异图像)。将第一差异图像能量最小的LMV指向的位置作为下一步运动搜索中的搜索起始点LMV_start。第一差异图像能量可以用差异图像中各像素的平方和(sum of squared difference,SSD)、各像素的绝对值之和(sum of absolute difference,SAD)、差异图像经过哈达玛变换后的变换系数的绝对值之和(sum of absolute hadamard transformed differences,SATD)三种方式中的任意一种来计算。相邻块的重建像素可以是相邻块的所有重建像素,也可以是右下角矩形像素,右侧多列像素及下侧多行像素组合而成的L形区域内的重建像素等,具体此处不做限定。

[91]

然后,根据起始点,执行运动搜索,确定导出的LMV。以相邻块的重建像素为模板,在LMV_start对应的长期参考帧上、以LMV_start为起始点、搜索范围为[-X1,X1]的搜索窗内搜索最优MV,此最优MV使得当前帧上的模板区域与MV指向的搜索位置对应的模板区域之间的差异图像(即第二差异图像)能量最小。将此最优MV确定为导出的LMV。其中, 搜索精度可以为1/4像素精度或1/2像素精度,搜索方法可以为全搜索或钻石形快速搜索(diamond search)或六角形快速搜索(hexagon search);X1为大于等于1的正整数,例如X1等于1或2或3或4;第二差异图像能量可以用SAD、SSD、SATD三种方式中的其中之一来计算,第二差异图像能量可以与第一差异图像能量的计算方法相同,也可以不同。优选的,第一差异图像能量和第二差异图像能量都使用SAD;或者第一差异图像能量使用SAD,第二差异图像能量使用SATD。

[92]

(B)如果相邻块使用帧间预测并只使用LMV进行运动补偿(即它的第一运动矢量中只包含LMV),则在短期参考帧上进行运动搜索导出SMV,作为第二运动矢量,相邻块的LMV作为第一运动矢量。可通过以下两种方法之一实现。方法一:首先,确定每个短期参考帧上的运动搜索起始点。对参考帧列表中的M个短期参考帧的每一个参考帧Fs,将相邻块的空间相邻预测块(可选的,还可以包括时域对应位置预测块)上的所有SMV(上述SMV来自于这些块的第一运动矢量和第二运动矢量)缩放为指向参考帧Fs的SMVs。特别的,当没有可用的SMV时,第二运动矢量为不可用。以相邻块的重建像素为模板,各SMVs作为运动矢量在参考帧Fs上进行运动补偿,将第一差异图像能量最小的SMVs作为短期参考帧Fs上运动搜索的起始点SMV_start。所有短期参考帧进行上述过程,确定各个短期参考帧上的运动搜索起始点。其次,为M个短期参考帧的每一个参考帧,确定该短期参考帧上的最优MV。对这M个参考帧中的每一个参考帧Fs,以相邻块的重建像素为模板,在以参考帧Fs对应的SMV_start为运动搜索起始点、搜索范围为[-X2,X2]的搜索窗范围内搜索最优MV,此最优MV使得当前帧上的模板区域与MV指向的搜索位置对应的模板区域之间的第二差异图像能量最小。X2为大于等于1的正整数,例如X2等于1或2或3或4,还可以是其他值,具体此处不做限定。所有短期参考帧进行上述过程,确定每个短期参考帧上的最优MV。最后,确定导出的SMV。比较M个短期参考帧上的最优MV对应的第二残差能量,将第二残差能量最小的最优MV确定为最终导出的SMV。方法二:首先,确定运动搜索的起始点:找出相邻块的空间相邻预测块上的所有SMV,以相邻块的重建像素为模板,各SMV作为运动矢量在各SMV对应的参考帧上进行运动补偿,将第一差异图像能量最小的SMV作为运动搜索的起始点SMV_start。其次,确定导出的SMV。以相邻块的重建像素为模板,在SMV_start对应的短期参考帧上,以SMV_start为运动搜索起始点、搜索范围为[-X2,X2]的搜索窗范围内搜索最优MV,此最优MV使得当前帧上的模板区域与MV指向的搜索位置对应的模板区域之间的第二差异图像能量最小。

[93]

(C)如果相邻块使用帧间预测并且使用SMV和LMV进行运动补偿(即它的第一运动矢量中包含SMV和LMV),则不需要为相邻块导出第二运动矢量,相邻块的第二运动矢量为不可用。

[94]

(D)如果相邻块使用帧内预测,则按照(A)中所示方法导出LMV,按照(B)中所示方法导出SMV。比较SMV和LMV对应的第二差异图像能量,将第二差异图像能量较小的MV作为第一运动矢量,较大的作为第二运动矢量。可选的,或者,始终将SMV作为第一运动矢量,LMV作为第二运动矢量。

[95]

可选的,作为一种实现方式,编码/解码一帧时,这一帧中各块的第一运动矢量以4x4 块为单位存储为一个运动矢量场,类似HEVC中的运动矢量储存方式;第二运动矢量以4x4块为单位存储在另一个运动矢量场中。因而,空间相邻预测块的两类MV可以在相应的运动矢量场上获得。当编码/解码一帧完成后,仅需要保留第一运动矢量场在存储器中,第二运动矢量场可以不保留存储。

[96]

可选的,为减少运算复杂度,当一个重建块使用帧间编码模式且它的第一运动矢量只有一种类型的MV,对这种重建块,如果它的空间相邻预测块的第一运动矢量均与此重建块的第一运动矢量的类型相同,则不执行上述对重建块进行运动搜索导出它的第二运动矢量的处理,此块的第二运动矢量为不可用。

[97]

可选的,为减少运算复杂度,可以在slice header中加入一个编码树单元(coding tree unit,CTU)索引Start_CTU_index,图像中CTU编号小于Start_CTU_index的CTU中的块不执行上述对重建块进行运动搜索导出它的第二运动矢量(及第一运动矢量,如果是帧内编码块)的处理,这些块的第二运动矢量为不可用,这些块中的帧内编码块的第一运动矢量也是不可用。

[98]

请参阅图4,当该当前块的空间相邻像素块包括当前块的至少一个空间相邻预测块时,本申请实施例中运动矢量预测的方法的另一个实施例包括:

[99]

401、获取当前块的运动矢量对应的参考帧。

[100]

402、根据参考帧的参考帧类型,确定当前块的运动矢量的运动矢量类型。

[101]

403、当该当前块的至少一个空间相邻预测块为帧间预测块时,获取该至少一个空间相邻预测块的第一运动矢量的运动矢量类型。

[102]

本实施例中的步骤401至403与前述图3所示实施例中的步骤301至303类似,具体此处不再赘述。

[103]

404、当该当前块的左方预设位置的空间相邻预测块的第一运动矢量与该当前块的运动矢量的运动矢量类型不相同,且该当前块的上方预设位置的空间相邻块的第一运动矢量与该当前块的运动矢量的运动矢量类型不相同时,其中,当至少一个当前块的左方预设位置的空间相邻预测块的第二运动矢量可用时,将该至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或该第二运动矢量的缩放值作为候选运动矢量预测值,或者,当至少一个当前块的上方预设位置的空间相邻预测块的第二运动矢量可用时,将该至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或该第二运动矢量的缩放值作为候选运动矢量预测值。

[104]

设备判断当前块的左方空间相邻预测块中的第一运动矢量中是否存在至少一个与当前块的运动矢量的运动矢量类型相同的第一运动矢量;若存在,则设备从左方空间相邻预测块中选择至少一个第一运动矢量或第一运动矢量的缩放值作为候选MVP,并将其加入MVP列表;若不存在,即当该当前块的全部左方空间相邻预测块的第一运动矢量与当前块的运动矢量的运动矢量类型不相同时,判断当前块的全部上方空间相邻块的第一运动矢量与当前块的运动矢量的运动矢量类型是否相同。若相同,则判断当前块的左方空间相邻预测块和上方空间相邻预测块中的第二运动矢量是否可用;当至少一个当前块的左方空间相邻预测块和上方空间相邻预测块中的第二运动矢量可用时,将至少一个左方空间相邻预测块和 上方空间相邻预测块中的第二运动矢量或该至少一个左方空间相邻预测块和上方空间相邻预测块中的第二运动矢量的缩放值作为候选运动矢量预测值。

[105]

举例说明,设备判断当前块的左方空间相邻预测块中的第一运动矢量中是否存在至少一个与当前块的运动矢量的运动矢量类型相同的第一运动矢量的过程包括2轮筛选。第一轮筛选:设备按照预设顺序1,依次访问左方空间相邻预测块的第一运动矢量,判断第一运动矢量是否满足条件1“第一运动矢量可用且第一运动矢量的参考帧与当前块的运动矢量的参考帧图像顺序号(picture order count,POC)相同”,首先将满足条件1的第一运动矢量确定为候选MVP。第二轮筛选:设备按照预设顺序1,依次访问左方空间相邻预测块的第一运动矢量,判断第一运动矢量是否满足条件2“第一运动矢量可用且第一运动矢量的参考帧与当前块运动矢量的参考帧类型相同”,对满足条件2的第一运动矢量而言,将此第一运动矢量或第一运动矢量的缩放值作为候选MVP。当两个参考帧的类型都为短期参考帧,且不为同一帧时,空间相邻预测块的第一运动矢量需要进行缩放后作为候选MVP,运动矢量的缩放基于两组POC差值的比值得到,例如HEVC中的运动矢量缩放处理。

[106]

设备判断当前块的上方空间相邻预测块中的第一运动矢量中是否存在至少一个与当前块的运动矢量的运动矢量类型相同的第一运动矢量的过程包括2轮筛选。第一轮筛选:设备按照预设顺序3,依次访问上方空间相邻预测块的第一运动矢量,判断第一运动矢量是否满足条件1“第一运动矢量可用且第一运动矢量的参考帧与当前块的运动矢量的参考帧图像顺序号相同”,首先将满足条件1的第一运动矢量确定为候选MVP。第二轮筛选:设备按照预设顺序3,依次访问上方空间相邻预测块的第一运动矢量,判断第一运动矢量是否满足条件2“第一运动矢量可用且第一运动矢量的参考帧与当前块运动矢量的参考帧类型相同”,对满足条件2的第一运动矢量而言,将此第一运动矢量或第一运动矢量的缩放值作为候选MVP。当两个参考帧的类型都为短期参考帧,且不为同一帧时,相邻块的第一运动矢量需要进行缩放后作为候选MVP,运动矢量的缩放基于两组POC差值的比值得到,例如HEVC中的运动矢量缩放处理。

[107]

设备判断当前块的当前块的左方空间相邻预测块和上方空间相邻预测块中的第二运动矢量是否可用;若可用,则将至少一个左方空间相邻预测块和上方空间相邻预测块中的第二运动矢量或该至少一个左方空间相邻预测块和上方空间相邻预测块中的第二运动矢量的缩放值作为候选运动矢量预测值。

[108]

需要说明的是,在判断当前块的左方空间相邻预测块和上方空间相邻预测块中的第二运动矢量是否为可用之前,还需要判断MVP列表是否为空(即当前块的空间相邻块的第一运动矢量中没有与当前块的运动矢量的运动矢量类型相同的运动矢量);当MVP列表不为空时,MVP列表至少存在一个候选者。当MVP列表为空时,设备按照预设顺序5,依次访问左方空间相邻预测块和上方空间相邻预测块中的第二运动矢量,将左方空间相邻预测块和上方空间相邻预测块中可用的K个第二运动矢量或其缩放值作为MVP。K为小于或等于该MVP列表长度N(即预设值)的正整数,例如K=1或K=2。

[109]

可以理解的是,左方空间相邻预测块和上方空间相邻预测块包括位于当前块的左方和上方的块。优选的,左方空间相邻预测块和上方空间相邻预测块包括左侧块、上侧块、右 上块B0、左上块B2,访问顺序5可以按照左侧块A1、上侧块B1、左下块A0、右上块B0、左上块B2的先后顺序,或者左下块A0、左侧块A1、右上块B0、上侧块B1、左上块B2的先后顺序。另一优选的,左方空间相邻预测块和上方空间相邻预测块包括左侧块、上侧块、左上块,访问顺序5可以按照左侧块A1、上侧块B1、左上块B2的先后顺序。可选的,如果MVP列表中有相同的候选MVP,则从MVP列表中去掉重复的候选MVP,并更新候选MVP的数目。

[110]

405、当候选运动矢量预测值的数量小于预设值,至少一个当前块的时域对应位置预测块的第一运动矢量可用,且至少一个该当前块的时域对应位置预测块的第一运动矢量的运动矢量类型与该当前块的运动矢量的运动矢量类型相同时,将至少一个该时域对应位置预测块的第一运动矢量或至少一个该时域对应位置预测块的第一运动矢量的缩放值作为候选运动矢量预测值。

[111]

可选的,当候选运动矢量预测值的数量小于预设值,设备判断当前块的时域对应位置预测块的第一运动矢量可用且该当前块的时域对应位置预测块的第一运动矢量的运动矢量类型与当前块的运动矢量的运动矢量类型相同时,设备将至少一个该时域对应位置预测块的第一运动矢量或至少一个该时域对应位置预测块的第一运动矢量的缩放值作为候选运动矢量预测值。

[112]

需要说明的是,当从空间相邻预测块选出的候选MVP数目小于N时(即MVP列表还未填满,MVP列表的长度为N),从时域对应位置预测块的第一运动矢量中挑选MVP加入MVP列表。例如,N的取值可以是N=2或N=3。

[113]

举例说明,设备依次访问时域对应位置预测块中的右下块C0和中心块C1的第一运动矢量,判断从时域对应位置预测块中获取到的第一运动矢量是否满足条件2“第一运动矢量可用且第一运动矢量的参考帧与当前块运动矢量的参考帧类型相同”,对满足条件2的第一运动矢量而言,将此第一运动矢量或第一运动矢量的缩放值作为候选MVP。

[114]

406、当候选运动矢量预测值的数量小于预设值时,将至少一个零运动矢量作为候选运动矢量预测值,以使得候选运动矢量预测值的数量达到预设值。

[115]

若候选运动矢量预测值的数量仍然小于预设值,则设备将至少一个零运动矢量为运动矢量预测值,以使得当前块的候选运动矢量预测值的数量达到预设值。

[116]

本申请实施例中,当前块的运动矢量的运动矢量类型与相邻块的第一运动矢量的运动矢量类型不同时,确定当前块的候选运动矢量预测值,即为当前块的运动矢量预测值列表中补充与当前块的运动矢量的运动矢量类型相同类型的第二运动矢量,从而丰富运动矢量预测值列表,提高运动矢量的预测效率。

[117]

请参阅图5,当该当前块的空间相邻像素块包括所述当前块的至少一个预设范围内的像素块时,本申请实施例中运动矢量预测的方法的另一个实施例包括:

[118]

501、获取当前块的运动矢量对应的参考帧。

[119]

502、根据参考帧的参考帧类型,确定当前块的运动矢量的运动矢量类型。

[120]

503、当该当前块的至少一个空间相邻预测块为帧间预测块时,获取该至少一个空间相邻预测块的第一运动矢量的运动矢量类型。

[121]

本实施例中的步骤501至503与前述图4所示实施例中的步骤401至403类似,具体 此处不再赘述。

[122]

504、当该当前块的左方预设位置的空间相邻预测块的第一运动矢量与当前块的运动矢量的运动矢量类型不相同,且当前块的上方预设位置的空间相邻预测块的第一运动矢量与当前块的运动矢量的运动矢量类型不相同时,在当前块的空间相邻像素块的第一参考帧中确定和该当前块的空间相邻像素块的像素差异最小的第一参考块,将第一参考块和该当前块的空间相邻像素块间的运动矢量作为第二运动矢量,第一参考帧的参考帧类型和当前块的运动矢量对应的参考帧的参考帧类型相同,将第二运动矢量或者第二运动矢量的缩放值作为当前块的候选运动矢量预测值。

[123]

在一种可行的实施方式中,当该当前块的全部左方空间相邻预测块的第一运动矢量与当前块的运动矢量的运动矢量类型不相同,且当前块的全部上方空间相邻预测块的第一运动矢量与当前块的运动矢量的运动矢量类型不相同时,在像素块的第一参考帧中确定和像素块的像素差异最小的第一参考块,将第一参考块和像素块间的运动矢量作为第二运动矢量,第一参考帧的参考帧类型和当前块的运动矢量对应的参考帧的参考帧类型相同,将第二运动矢量或者第二运动矢量的缩放值作为当前块的候选运动矢量预测值。

[124]

需要说明的是,在根据当前块的像素块生成第二运动矢量之前,还需要判断MVP列表是否为空(即当前块的空间相邻预测块的第一运动矢量中没有与当前块的运动矢量的运动矢量类型相同的运动矢量);当MVP列表不为空时,MVP列表至少存在一个候选MVP。当MVP列表为空时,设备将当前块的像素块作为模版,在当前块的运动矢量指向的参考帧上使用模版匹配方式找到最优的匹配位置,最优匹配位置与当前块的模版区域之间的位移矢量作为第二运动矢量,将第二运动矢量作为候选MVP。

[125]

举例说明,确定第二运动矢量的过程可细化为两个步骤,步骤一:比较“候选运动矢量集”中的MV,确定运动搜索的起始点。候选运动矢量集中包括以下两种MV中至少一个:零矢量(0,0)和全局运动矢量。以当前块的预设范围内的像素块为模板,候选运动矢量集中的各个MV作为运动矢量在当前块MV的参考帧上进行运动补偿,得到当前帧上的模板区域与参考帧上对应模板区域之间的差异图像(即第一差异图像)。设备将第一差异图像能量最小的MV指向的位置作为下一步运动搜索中的搜索起始点MV_start。该第一差异图像能量可以用差异图像中各像素的平方和、各像素的绝对值之和、差异图像经过哈达玛变换后的系数的绝对值之和三种方式中的任意一种来计算。当前块的相邻重建像素可以是当前块的上侧重建像素,也可以是当前块的左侧重建像素,当前块的左侧及上侧重建像素组合的L型区域像素等,具体此处不做限定。

[126]

其中,全局运动矢量可以为一个或多个,在码流中标识(例如在当前帧的slice header中标识),表示由当前帧指向一个长期参考帧的MV。优选的,一个长期参考帧可具有至少一个全局运动矢量,短期参考帧不具有全局运动矢量。如果当前块MV为短期MV,则候选运动矢量集中只包含零矢量;如果当前块MV为长期MV,则它的候选运动矢量集中包含零矢量,还可以包含至少一个全局运动矢量。全局运动矢量可以由编码器通过分析当前帧中各区域相对于长期参考帧的运动矢量来导出,比如选出各区域运动矢量发生频次最高的1个或2个运动矢量作为全局运动矢量。解码设备通过解析码流(例如slice header)获取 当前帧的长期参考帧的全局运动矢量。可选的,长期参考帧的全局运动矢量个数信息可以码流中传输,当它指示全局运动矢量个数为0时,候选运动矢量集中不包含全局运动矢量,只包含零矢量。

[127]

步骤二:根据起始点,执行运动搜索,确定第二运动矢量。以当前块的预设范围内的像素块为模板,在当前块MV的参考帧上、以MV_start为起始点搜索窗内搜索最优MV,此最优MV使得当前帧上的模板区域与MV指向的搜索位置对应的模板区域之间的差异图像(即第二差异图像)能量最小。将此最优MV确定为第二运动矢量。

[128]

其中,搜索精度可以为1/4像素精度或1/2像素精度,搜索方法可以为全搜索、钻石形快速搜索(diamond search)或六角形快速搜索(hexagon search)。搜索窗大小可以固定为8x8或16x16,也可以根据MV_start的类型自适应设置,例如MV_start为(0,0)时,搜索窗大小为16x16;否则,搜索窗大小为8x8。第二差异图像能量可以用差异图像中各像素的平方和、各像素的绝对值之和、差异图像经过哈达玛变换后的系数的绝对值之和三种方式中的任意一种来计算,第二差异图像能量不一定与第一差异图像能量的计算方法相同。例如,第一差异图像能量和第二差异图像能量都使用差异图像各像素的绝对值之和;或者第一残差能量使用差异图像各像素的绝对值之和,第二残差能量使用差异图像各像素的平方和,具体此处不做限定。

[129]

可以理解的是,如果此时MVP列表中有相同的候选MVP,则从MVP列表中去掉重复的候选MVP,并更新候选MVP的数目。

[130]

505、当候选运动矢量预测值的数量小于预设值,至少一个当前块的时域对应位置预测块的第一运动矢量可用,且至少一个该当前块的时域对应位置预测块的第一运动矢量的运动矢量类型与该当前块的运动矢量的运动矢量类型相同时,将至少一个该时域对应位置预测块的第一运动矢量或至少一个该时域对应位置预测块的第一运动矢量的缩放值作为候选运动矢量预测值。

[131]

可选的,当候选运动矢量预测值的数量小于预设值,设备判断当前块的时域对应位置预测块的第一运动矢量可用且该当前块的时域对应位置预测块的第一运动矢量的运动矢量类型与当前块的运动矢量的运动矢量类型相同时,设备将至少一个该时域对应位置预测块的第一运动矢量或至少一个该时域对应位置预测块的第一运动矢量的缩放值作为候选运动矢量预测值。

[132]

需要说明的是,当从空间相邻预测块选出的候选MVP数目小于N时(即MVP列表还未填满,MVP列表的长度为N),从时域对应位置预测块的第一运动矢量中挑选MVP加入MVP列表。例如,N的取值可以是N=2或N=3。

[133]

举例说明,设备依次访问时域对应位置预测块中的右下块C0和中心块C1的第一运动矢量,判断从时域对应位置预测块中获取到的第一运动矢量是否满足条件2“第一运动矢量可用且第一运动矢量的参考帧与当前块运动矢量的参考帧类型相同”,对满足条件2的第一运动矢量而言,将此第一运动矢量或第一运动矢量的缩放值作为候选MVP。

[134]

506、当候选运动矢量预测值的数量小于预设值时,将至少一个零运动矢量作为候选运动矢量预测值,以使得候选运动矢量预测值的数量达到预设值。

[135]

若候选运动矢量预测值的数量仍然小于预设值,则设备将至少一个零运动矢量为运动矢量预测值,以使得当前块的候选运动矢量预测值的数量达到预设值。本申请实施例中,当前块的运动矢量的运动矢量类型与相邻块的第一运动矢量的运动矢量类型不同时,根据当前块的预设范围内的像素块导出第二运动矢量,并确定该第二运动矢量为当前块的候选运动矢量预测值,该第二运动矢量与当前块的运动矢量的类型相同,从而丰富运动矢量预测值列表,提高运动矢量的预测效率。

[136]

应理解,上述各运动矢量预测的方法可用于当前块的编码方法,也可以用于当前块的解码方法。

[137]

上面对本申请实施例中运动矢量预测的方法进行了描述,下面对本申请实施例中运动矢量预测的设备进行描述,请参阅图6,本申请实施例中运动矢量预测的设备的一个实施例包括:

[138]

第一获取单元601,用于获取当前块的运动矢量对应的参考帧;

[139]

确定单元602,用于根据所述参考帧的参考帧类型,确定所述当前块的运动矢量的运动矢量类型,其中,所述运动矢量类型包括:短期运动矢量和长期运动矢量,其中,所述短期运动矢量在短期参考帧中获得,所述长期运动矢量在长期参考帧中获得;

[140]

第二获取单元603,当所述当前块的至少一个空间相邻预测块为帧间预测块时,用于获取所述至少一个空间相邻预测块的第一运动矢量的运动矢量类型,所述第一运动矢量用于所述空间相邻预测块的帧间预测;

[141]

第一处理单元604,当获取的所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型均不相同时,用于根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[142]

可选的,设备可进一步包括:

[143]

第二处理单元605,当获取的至少一个所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型相同时,用于将所述至少一个所述第一运动矢量作为所述当前块的候选运动矢量预测值。

[144]

可选的,设备可进一步包括:

[145]

第三处理单元606,当全部所述当前块的空间相邻预测块为帧内预测块时,用于在至少一个所述空间相邻预测块的虚拟参考帧中确定和所述空间相邻预测块的像素差异最小的虚拟参考块,将所述虚拟参考块和所述空间相邻预测块间的运动矢量作为所述当前块的运动矢量预测值,所述虚拟参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,所述虚拟参考帧为已重建帧。

[146]

可选的,第一处理单元604可进一步包括:

[147]

第一处理模块6041,用于在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所 述当前块的候选运动矢量预测值。

[148]

可选的,第一处理模块6041可进一步包括:

[149]

第一处理子模块60411,当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,用于在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[150]

本申请实施例中,当前块的运动矢量的运动矢量类型与相邻块的第一运动矢量的运动矢量类型不同时,将与当前块运动矢量具有相同运动矢量类型的第二运动矢量作为当前块的候选运动矢量预测值,从而丰富运动矢量预测值列表,提高运动矢量的预测效率。

[151]

请参阅图7,本申请实施例中运动矢量预测的设备的另一个实施例包括:图6对应的实施例中的第一获取单元601、确定单元602、第二获取单元603和第一处理单元604。

[152]

可选的,第一处理单元604可进一步包括:

[153]

第二处理模块6042,用于将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[154]

可选的,第二处理模块6042可进一步包括:

[155]

第二处理子模块60421,当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述左方预设位置的空间相邻预测块的第二运动矢量可用时,用于将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或者所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值;

[156]

第三处理子模块60422,当所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述上方预设位置空间相邻预测块的第二运动矢量可用时,用于将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[157]

请参阅图8,本申请实施例中运动矢量预测的设备的另一个实施例包括:图6对应的实施例中的第一获取单元601、确定单元602、第二获取单元603、第一处理单元604。

[158]

可选的,第一处理单元604可进一步包括:

[159]

第二处理模块6042,用于将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[160]

可选的,第二处理模块6042可进一步包括:

[161]

第四处理子模块60423,当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空 间相邻块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,其中,当至少一个所述当前块的左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,或者,当至少一个所述当前块的上方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

[162]

应理解,上述运动矢量预测的设备可以用于编码当前块的编码器,也可以用于解码当前块的解码器。

[163]

上面图6至图8从模块化功能实体的角度分别对本申请实施例中运动矢量预测的设备进行详细描述,下面从硬件处理的角度对本申请实施例中运动矢量预测的设备进行详细描述。

[164]

图9是本申请实施例提供的运动矢量预测的设备的一种结构示意图,参考图9。在采用集成的单元的情况下,图9示出了上述实施例中所涉及的设备的一种可能的结构示意图。设备900包括:处理单元902和通信单元903。处理单元902用于对设备的动作进行控制管理,例如,处理单元902用于支持设备执行图3中的步骤301至步骤307,和/或用于本文所描述的技术的其它过程。通信单元903用于支持设备与其他设备的通信。设备还可以包括存储单元901,用于存储设备的程序代码和数据。

[165]

其中,处理单元902可以是处理器或控制器,例如可以是中央处理器(central processing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元903可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如收发接口。存储单元901可以是存储器。

[166]

当处理单元902为处理器,通信单元903为通信接口,存储单元901为存储器时,本申请实施例所涉及的设备可以为图10所示的设备。

[167]

参阅图10所示,该设备1010包括:处理器1012、通信接口1013、存储器1011。可选的,设备1010还可以包括总线1014。其中,通信接口1013、处理器1012以及存储器1011可以通过总线1014相互连接;总线1014可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线1014可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

[168]

在一种可行的实施方式中,图11和图12示出了本申请实施例的编解码装置50,该编解码装置50可以是无线通信系统的移动终端或者用户设备。应理解,本申请实施例可以在可能需要对视频图像进行编码和/或解码的任何电子设备或者装置内实施。

[169]

编解码装置50可以包括用于并入和保护设备的外壳30,显示器32(具体可以为液晶显示器),小键盘34。编解码装置50可以包括麦克风36或者任何适当的音频输入,该音频输入可以是数字或者模拟信号输入。编解码装置50还可以包括如下音频输出设备,该音频输出设备在本申请的实施例中可以是以下各项中的任何一项:耳机38、扬声器或者模拟音频或者数字音频输出连接。编解码装置50也可以包括电池40,在本申请的其它实施例中,设备可以由任何适当的移动能量设备,比如太阳能电池、燃料电池或者时钟机构生成器供电。装置还可以包括用于与其它设备的近程视线通信的红外线端口42。在其它实施例中,编解码装置50还可以包括任何适当的近程通信解决方案,比如蓝牙无线连接或者USB有线连接。

[170]

编解码装置50可以包括用于控制编解码装置50的控制器56或者处理器。控制器56可以连接到存储器58,该存储器在本申请的实施例中可以存储形式为图像的数据和音频的数据,和/或也可以存储用于在控制器56上实施的指令。控制器56还可以连接到适合于实现音频和/或视频数据的编码和解码或者由控制器56实现的辅助编码和解码的编码解码器54。

[171]

编解码装置50还可以包括用于提供用户信息并且适合于提供用于在网络认证和授权用户的认证信息的读卡器48和智能卡46,例如集成电路卡(universal integrated circuit card,UICC)和UICC读取器。

[172]

编解码装置50还可以包括无线电接口电路52,该无线电接口电路连接到控制器并且适合于生成例如用于与蜂窝通信网络、无线通信系统或者无线局域网通信的无线通信信号。编解码装置50还可以包括天线44,该天线连接到无线电接口电路52用于向其它(多个)装置发送在无线电接口电路52生成的射频信号并且用于从其它(多个)装置接收射频信号。

[173]

在本申请的一些实施例中,编解码装置50包括能够记录或者检测单帧的相机,编码解码器54或者控制器接收到这些单帧并对它们进行处理。在本申请的一些实施例中,编解码装置50可以在传输和/或存储之前从另一设备接收待处理的视频图像数据。在本申请的一些实施例中,编解码装置50可以通过无线或者有线连接接收图像用于编码/解码。

[174]

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

[175]

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程设备。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk, SSD))等。

[176]

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

[177]

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

[178]

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

[179]

另外,在本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

[180]

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

[181]

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。



[1]

Disclosed in the embodiments of the present application are a method and a device for motion vector prediction, being used for determining a motion vector predictor of the current block and improving the prediction efficiency of motion vectors. The method in the embodiments of the present application comprises: acquiring a reference frame corresponding to a motion vector of the current block; according to the reference frame type of the reference frame, determining the motion vector type of the motion vector of the current block; if at least one spatial adjacent prediction block of the current block is an inter-frame prediction block, acquiring the motion vector type of a first motion vector of the at least one spatial adjacent prediction block; if the acquired motion vector type of the first motion vector and the type of the motion vector of the current block are different, determining, according to decoding information concerning a spatial adjacent pixel block of the current block, a second motion vector of the adjacent pixel block and using the second motion vector or a scaling value of the second motion vector as a candidate motion vector predictor of the current block.

[2]



一种运动矢量预测的方法,其特征在于,包括:

获取当前块的运动矢量对应的参考帧;

根据所述参考帧的参考帧类型,确定所述当前块的运动矢量的运动矢量类型,其中,所述运动矢量类型包括:短期运动矢量和长期运动矢量,其中,所述短期运动矢量在短期参考帧中获得,所述长期运动矢量在长期参考帧中获得;

当所述当前块的至少一个空间相邻预测块为帧间预测块时,获取所述至少一个空间相邻预测块的第一运动矢量的运动矢量类型,所述第一运动矢量用于所述空间相邻预测块的帧间预测;

当获取的所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型均不相同时,根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求1所述的方法,其特征在于,所述方法还包括:

当获取的至少一个所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型相同时,将所述至少一个所述第一运动矢量作为所述当前块的候选运动矢量预测值。

根据权利要求1或2所述的方法,其特征在于,所述方法还包括:

当全部所述当前块的空间相邻预测块为帧内预测块时,在至少一个所述空间相邻预测块的虚拟参考帧中确定和所述空间相邻预测块的像素差异最小的虚拟参考块,将所述虚拟参考块和所述空间相邻预测块间的运动矢量作为所述当前块的运动矢量预测值,所述虚拟参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,所述虚拟参考帧为已重建帧。

根据权利要求1所述的方法,其特征在于,所述当前块的空间相邻像素块包括所述当前块空间相邻的至少一个预设范围内的像素块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块空间相邻的至少一个预设范围内的像素块的像素重建值,对应的,所述根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,包括:

在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求4所述的方法,其特征在于,所述在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所 述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,包括:

当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求1所述的方法,其特征在于,所述当前块的空间相邻像素块包括所述当前块的至少一个空间相邻预测块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块的至少一个空间相邻预测块的第二运动矢量,所述第二运动矢量的运动矢量类型和所述第一运动矢量的运动矢量类型不同,对应的,所述根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,包括:

将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求6所述的方法,其特征在于,所述将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,包括:

当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或者所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值;

当所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述上方预设位置空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求6所述的方法,其特征在于,所述将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,包括:

当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,其中,当至少一个所述当前块的左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的 空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,或者,当至少一个所述当前块的上方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求1至8任一项所述的方法,其特征在于,所述方法可用于所述当前块的编码方法或者所述当前块的解码方法。

一种运动矢量预测的设备,其特征在于,包括:

第一获取单元,用于获取当前块的运动矢量对应的参考帧;

确定单元,用于根据所述参考帧的参考帧类型,确定所述当前块的运动矢量的运动矢量类型,其中,所述运动矢量类型包括:短期运动矢量和长期运动矢量,其中,所述短期运动矢量在短期参考帧中获得,所述长期运动矢量在长期参考帧中获得;

第二获取单元,当所述当前块的至少一个空间相邻预测块为帧间预测块时,用于获取所述至少一个空间相邻预测块的第一运动矢量的运动矢量类型,所述第一运动矢量用于所述空间相邻预测块的帧间预测;

第一处理单元,当获取的所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型均不相同时,用于根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求10所述的设备,其特征在于,所述设备还包括:

第二处理单元,当获取的至少一个所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型相同时,用于将所述至少一个所述第一运动矢量作为所述当前块的候选运动矢量预测值。

根据权利要求10或11所述的设备,其特征在于,所述设备还包括:

第三处理单元,当全部所述当前块的空间相邻预测块为帧内预测块时,用于在至少一个所述空间相邻预测块的虚拟参考帧中确定和所述空间相邻预测块的像素差异最小的虚拟参考块,将所述虚拟参考块和所述空间相邻预测块间的运动矢量作为所述当前块的运动矢量预测值,所述虚拟参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,所述虚拟参考帧为已重建帧。

根据权利要求10所述的设备,其特征在于,所述当前块的空间相邻像素块包括所述当前块空间相邻的至少一个预设范围内的像素块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块空间相邻的至少一个预设范围内的像素块的像素重建值,对应的,所述第一处理单元包括:

第一处理模块,用于在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求13所述的设备,其特征在于,所述第一处理模块包括:

第一处理子模块,当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,用于在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求10所述的设备,其特征在于,所述当前块的空间相邻像素块包括所述当前块的至少一个空间相邻预测块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块的至少一个空间相邻预测块的第二运动矢量,所述第二运动矢量的运动矢量类型和所述第一运动矢量的运动矢量类型不同,对应的,第一处理单元包括:

第二处理模块,用于将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求15所述的设备,其特征在于,所述第二处理模块包括:

第二处理子模块,当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述左方预设位置的空间相邻预测块的第二运动矢量可用时,用于将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或者所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值;

第三处理子模块,当所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述上方预设位置空间相邻预测块的第二运动矢量可用时,用于将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求15所述的设备,其特征在于,所述第二处理模块包括:

第四处理子模块,当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,其中,当至少一个所述当前块的左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,或者,当至少一个所述当前块的上方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求10至17任一项所述的设备,其特征在于,所述设备可用于编码所述当前块的编码器或者解码所述当前块的解码器。

一种运动矢量预测的设备,其特征在于,所述设备包括:处理器和耦合于所述处 理器的存储器;

所述处理器用于:

获取当前块的运动矢量对应的参考帧;

根据所述参考帧的参考帧类型,确定所述当前块的运动矢量的运动矢量类型,其中,所述运动矢量类型包括:短期运动矢量和长期运动矢量,其中,所述短期运动矢量在短期参考帧中获得,所述长期运动矢量在长期参考帧中获得;

当所述当前块的至少一个空间相邻预测块为帧间预测块时,获取所述至少一个空间相邻预测块的第一运动矢量的运动矢量类型,所述第一运动矢量用于所述空间相邻预测块的帧间预测;

当获取的所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型均不相同时,根据所述当前块的空间相邻像素块的解码信息,确定所述相邻像素块的第二运动矢量,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求19所述的设备,其特征在于,所述处理器还用于:

当获取的至少一个所述第一运动矢量的运动矢量类型和所述当前块的运动矢量的运动矢量类型相同时,将所述至少一个所述第一运动矢量作为所述当前块的候选运动矢量预测值。

根据权利要求19或20所述的设备,其特征在于,所述处理器还用于:

当全部所述当前块的空间相邻预测块为帧内预测块时,在至少一个所述空间相邻预测块的虚拟参考帧中确定和所述空间相邻预测块的像素差异最小的虚拟参考块,将所述虚拟参考块和所述空间相邻预测块间的运动矢量作为所述当前块的运动矢量预测值,所述虚拟参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,所述虚拟参考帧为已重建帧。

根据权利要求19所述的设备,其特征在于,所述当前块的空间相邻像素块包括所述当前块空间相邻的至少一个预设范围内的像素块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块空间相邻的至少一个预设范围内的像素块的像素重建值,对应的,所述处理器用于:

在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求22所述的设备,其特征在于,所述处理器用于:

当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,在所述空间相邻像素块的第一参考帧中确定和所述空间相邻像素块的像素差异最小的第一参考块,将所述第一参考块和所 述空间相邻像素块间的运动矢量作为所述第二运动矢量,所述第一参考帧的参考帧类型和所述当前块的运动矢量对应的参考帧的参考帧类型相同,将所述第二运动矢量或者所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求19所述的设备,其特征在于,所述当前块的空间相邻像素块包括所述当前块的至少一个空间相邻预测块,对应的,所述当前块的空间相邻像素块的解码信息包括所述当前块的至少一个空间相邻预测块的第二运动矢量,所述第二运动矢量的运动矢量类型和所述第一运动矢量的运动矢量类型不同,对应的,所述处理器用于:

将所述至少一个空间相邻预测块的第二运动矢量或者所述至少一个空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求24所述的设备,其特征在于,所述处理器用于:

当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或者所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值;

当所述当前块的上方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且至少一个所述上方预设位置空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求24所述的设备,其特征在于,所述处理器用于:

当所述当前块的左方预设位置的空间相邻预测块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同,且所述当前块的上方预设位置的空间相邻块的第一运动矢量与所述当前块的运动矢量的运动矢量类型不相同时,其中,当至少一个所述当前块的左方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述左方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值,或者,当至少一个所述当前块的上方预设位置的空间相邻预测块的第二运动矢量可用时,将所述至少一个所述上方预设位置的空间相邻预测块的第二运动矢量或所述第二运动矢量的缩放值作为所述当前块的候选运动矢量预测值。

根据权利要求19至26任一项所述的设备,其特征在于,所述设备可用于编码所述当前块的编码器或者解码所述当前块的解码器。