候选运动信息列表的构建方法、帧间预测方法及装置与流程

文档序号:23098167发布日期:2020-11-27 13:01阅读:126来源:国知局
候选运动信息列表的构建方法、帧间预测方法及装置与流程

本申请要求于2018年8月28日提交中国专利局、申请号为201810990444.2、发明名称为“帧间预测方法、装置以及视频编码器和视频解码器”,以及于2018年08月29日提交中国专利局、申请号为201810997139.6、发明名称为“候选运动信息列表的构建方法、帧间预测方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

本申请实施例涉及视频图像编解码技术领域,尤其涉及一种候选运动信息列表的构建方法、帧间预测方法及装置。



背景技术:

非平动运动模型预测模式是指编解码端根据当前图像块的控制点的运动信息,采用相同的运动模型推导出当前图像块中每一个子块的运动信息,并根据所有子块的运动信息进行运动补偿,得到预测图像块。一般的,将采用该方式进行预测的图像块称为仿射编码块。

通常,编解码端可以采用仿射先进运动矢量预测模式(affineamvpmode)或者仿射融合模式(affinemergemode),获得仿射编码块的控制点的运动信息。具体的,编解码构建候选运动信息列表,并根据该列表中的候选运动信息确定控制点的运动信息。在构建候选运动信息列表的过程中,编解码端每次向候选运动信息列表中加入新的候选运动信息组合之前,都会先检查该候选运动信息列表中是否已经存在相同的运动信息组合;如果存在,则不会将新的候选运动信息组合加入列表中。

这一过程称为候选运动信息列表的修剪。候选运动信息列表的修剪能够防止该候选运动信息列表中出现相同的运动信息,避免冗余的率失真代价计算。但是,这一过程的计算复杂度也较高,时延较大。



技术实现要素:

本申请实施例提供一种候选运动信息列表的构建方法、帧间预测方法及装置,能够解决计算复杂度较高、时延较大的问题。

为达到上述目的,本申请实施例采用如下技术方案:

第一方面,提供一种候选运动信息列表的构建方法,候选运动信息列表的构建装置(后续简称为构建装置)根据第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程,直到候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者直到遍历完所有相邻图像块;在候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者遍历完所有相邻图像块之后,构建装置根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中,直到候选运动信息列表中候选运动信息组合的数量等于预设长度值或者直到遍历完所有可选运动信息组合,这里,预设长度值大于第一预设数值,可选运动信息组合包括当前图像块的至少两个控制点的可选运动信息,控制点的可选运动信息为与当前图像块相邻、且采用帧间编码的图像块的运动信息;若在遍历完所有可选运动信息组合后,候选运动信息列表中候选运动信息的数量小于预设长度值,则填充第一预设候选运动信息组合,直至候选运动信息列表中候选运动信息的数量等于预设长度值。具体的,上述第一处理过程为:对于第i(i∈[1,n])个相邻图像块而言,在第i个相邻图像块为仿射编码块的情况下,构建装置判断第i个相邻图像块与已经存储于候选运动信息列表中的候选运动信息组合是否来自于同一编码单元;若候选运动信息列表中不存在来自于第i个相邻图像块归属的编码单元的候选运动信息组合,构建装置则根据第i个相邻图像块的x个控制点的运动信息,确定出当前图像块的x个控制点的候选运动信息,并将包括当前图像块的x个控制点的候选运动信息的候选运动信息组合存储于候选运动信息列表中,n为当前图像块的相邻图像块的数量,x和n均为大于或等于2的整数。

可以看出,对于第一处理过程,在第i个相邻图像块为仿射编码块的情况下,构建装置只需判断第i个相邻图像块与已经存储于候选运动信息列表中的候选运动信息组合是否来自于同一编码单元,即可根据判断结果确定是否要在候选运动信息列表中加入新的候选运动信息组合,而无需先计算得到新的候选运动信息组合,再判断候选运动信息列表中是否存在相同的运动信息,有效的降低了计算的复杂度,减小了时延。

可选的,在本申请的一种可能的实现方式中,上述满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同;或者,上述满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同、且至少两个控制点的可选运动矢量不相同。

构建装置仅仅对可选运动信息组合中的所有控制点的参考帧索引以及所有控制点的可选运动矢量进行判断,并根据判断结果确定是否将可选运动信息组合存储于候选运动信息列表中,无需进行运动矢量的缩放,降低了计算的复杂度。

可选的,在本申请的另一种可能的实现方式中,上述“构建装置判断所述第i个相邻图像块与已经存储于所述候选运动信息列表中的候选运动信息组合是否来自于同一编码单元”的方法为:构建装置判断第i个相邻图像块所归属的编码单元的左上顶点的信息是否与目标编码单元的左上顶点的信息相同,这里的目标编码单元为:计算已经存储于候选运动信息列表中的候选运动信息组合时,采用的相邻图像块所归属的编码单元。

在图像块预测过程中,编码单元的大小是固定的。构建装置可直接根据编码单元的左上顶点的信息确定第i个相邻图像块与已经存储于候选运动信息列表中的候选运动信息组合是否来自于同一编码单元,该判断过程简单、高效。

可选的,在本申请的另一种可能的实现方式中,上述可选运动信息组合至少包括第一控制点的可选运动信息和第二控制点的可选运动信息,第一控制点和第二控制点为当前图像块的相邻控制点。

第二方面,提供一种候选运动信息列表的构建方法,构建装置根据第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程,直到候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者直到遍历完所有相邻图像块;此外,构建装置还根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于第二候选运动信息列表中,直到第二候选运动信息列表中候选运动信息组合的数量等于第二预设数值或者直到遍历完所有可选运动信息组合,该可选运动信息组合包括当前图像块的至少两个控制点的可选运动信息,控制点的可选运动信息为与当前图像块相邻、且采用帧间编码的图像块的运动信息;若在遍历完所有可选运动信息组合后,第二候选运动信息列表中候选运动信息的数量小于第二预设数值,构建装置则填充第二预设候选运动信息组合,直至第二候选运动信息列表中候选运动信息的数量等于第二预设数值;后续,构建装置根据预设规则,将第一候选运动信息列表和第二候选运动信息列表合并,以获取第三候选运动信息列表,该第三候选运动信息列表中候选运动信息的数量等于预设长度值;第一预设数值和第二预设数值的和大于或等于预设长度值。

具体的,上述第一处理过程为:对于第i(i∈[1,n])个相邻图像块而言,在第i个相邻图像块为仿射编码块的情况下,构建装置判断第i个相邻图像块与已经存储于候选运动信息列表中的候选运动信息组合是否来自于同一编码单元;若候选运动信息列表中不存在来自于第i个相邻图像块归属的编码单元的候选运动信息组合,构建装置则根据第i个相邻图像块的x个控制点的运动信息,确定出当前图像块的x个控制点的候选运动信息,并将包括当前图像块的x个控制点的候选运动信息的候选运动信息组合存储于候选运动信息列表中,n为当前图像块的相邻图像块的数量,x和n均为大于或等于2的整数。

上述满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同,或者,上述满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同、且至少两个控制点的可选运动矢量不相同。

本申请中的第一处理过程和对可选运动信息组合的处理过程均根据判断结果确定是否在候选运动信息列表中加入新的候选运动信息组合,无需先计算得到新的候选运动信息组合,再判断候选运动信息列表中是否存在相同的运动信息,有效的降低了计算的复杂度,减少了时延。

可选的,在本申请的另一种可能的实现方式中,上述可选运动信息组合至少包括第一控制点的可选运动信息和第二控制点的可选运动信息,第一控制点和上述第二控制点为当前图像块的相邻控制点。

可选的,在本申请的另一种可能的实现方式中,上述“构建装置根据预设规则,将第一候选运动信息列表和第二候选运动信息列表合并,以获取第三候选运动信息列表”的方法为:构建装置将第一候选运动信息列表的所有候选运动信息组合置于第二候选运动信息列表的所有候选运动信息组合之前,以生成目标候选运动信息列表;若该目标候选运动信息列表中候选运动信息的数量小于预设长度值,则填充第二预设候选运动信息组合,直至目标候选运动信息列表中候选运动信息的数量等于预设长度值,并将填充后的目标候选运动信息列表作为第三候选运动信息列表;若该目标候选运动信息列表中候选运动信息的数量等于预设长度值,则将该目标候选运动信息列表作为第三候选运动信息列表;若该目标候选运动信息列表中候选运动信息的数量大于预设长度值,则删除目标候选运动信息列表中的至少一个候选运动信息,使得删除后的目标候选运动信息列表中候选运动信息的数量等于预设长度值,并将删除后的目标候选运动信息列表作为第三候选运动信息列表。

第三方面,提供一种候选运动信息列表的构建方法,构建装置根据第一预设顺序,遍历当前图像块的每个相邻图像块,以生成包括至少一个候选运动信息组合的候选运动信息列表,该候选运动信息组合包括当前图像块的x个控制点的候选运动信息,x为大于或等于2的整数;在遍历完当前图像块的所有相邻图像块后,构建装置根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中,直到候选运动信息列表中候选运动信息组合的数量等于预设长度值或者直到遍历完所有可选运动信息组合;若在遍历完所有可选运动信息组合后,候选运动信息列表中候选运动信息的数量小于预设长度值,构建装置则填充第三预设候选运动信息组合,直至候选运动信息列表中候选运动信息的数量等于预设长度值。这里,可选运动信息组合包括当前图像块的至少两个控制点的可选运动信息,控制点的可选运动信息为与当前图像块相邻、且采用帧间编码的图像块的运动信息,满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同,或者,满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同、且至少两个控制点的可选运动矢量不相同。

可以看出,对于可选运动信息组合的处理,构建装置仅仅对可选运动信息组合中的所有控制点的参考帧索引以及所有控制点的可选运动矢量进行判断,并根据判断结果确定是否将可选运动信息组合存储于候选运动信息列表中,无需进行运动矢量的缩放,也无需先计算得到新的候选运动信息组合,再判断候选运动信息列表中是否存在相同的运动信息,有效的降低了计算的复杂度,减小了时延。

可选的,在本申请的另一种可能的实现方式中,上述可选运动信息组合至少包括第一控制点的可选运动信息和第二控制点的可选运动信息,第一控制点和第二控制点为当前图像块的相邻控制点。

第四方面,提供一种帧间预测方法,帧间预测装置获取并解析码流,以获取第一索引值和运动信息差值,这里的第一索引值为当前图像块的控制点的运动信息预测值在候选运动信息列表中的索引值,候选运动信息列表为上述构建装置采用如上述第一方面、第二方面、第三方面及其任意一种可能的实现方式中任意之一所述的构建方法生成的;然后,帧间预测装置根据第一索引值,从候选运动信息列表中获取控制点的运动信息预测值,并根据控制点的运动信息预测值和运动信息差值,确定控制点的运动信息,这样,帧间预测装置可根据控制点的运动信息,确定当前图像块的预测像素。

帧间预测装置基于上述第一方面、第二方面、第三方面及其任意一种可能的实现方式中任意之一所述的构建方法生成的候选运动信息列表进行帧间预测,由于本申请中的构建装置生成候选运动信息列表的过程中,有效的降低了计算的复杂度,减少了时延,因此,帧间预测装置进行帧间预测的速率较快。

第五方面,提供一种帧间预测方法,帧间预测装置获取并解析码流,以获取第二索引值,该第二索引值为当前图像块的控制点的运动信息在候选运动信息列表中的索引值,该候选运动信息列表为上述构建装置采用如上述第一方面、第二方面、第三方面及其任意一种可能的实现方式中任意之一所述的构建方法生成的;然后,帧间预测装置根据第二索引值,从候选运动信息列表中获取控制点的运动信息,并根据控制点的运动信息,确定当前图像块的预测像素。

帧间预测装置基于上述第一方面、第二方面、第三方面及其任意一种可能的实现方式中任意之一所述的构建方法生成的候选运动信息列表进行帧间预测,由于本申请中的构建装置生成候选运动信息列表的过程中,有效的降低了计算的复杂度,减少了时延,因此,帧间预测装置进行帧间预测的速率较快。

第六方面,提供一种候选运动信息列表的构建装置,该候选运动信息列表的构建装置包括第一处理单元、第二处理单元、填充单元和存储单元。

具体的,上述第一处理单元用于根据第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程,直到候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者直到遍历完所有相邻图像块,候选运动信息列表存储于上述存储单元;其中,第一处理过程为:对于第i个相邻图像块而言,在第i个相邻图像块为仿射编码块的情况下,判断第i个相邻图像块与已经存储于候选运动信息列表中的候选运动信息组合是否来自于同一编码单元;若候选运动信息列表中不存在来自于第i个相邻图像块归属的编码单元的候选运动信息组合,则根据第i个相邻图像块的x个控制点的运动信息,确定出当前图像块的x个控制点的候选运动信息,并将包括当前图像块的x个控制点的候选运动信息的候选运动信息组合存储于候选运动信息列表中,i∈[1,n],n为当前图像块的相邻图像块的数量,x和n均为大于或等于2的整数。上述第二处理单元,用于在上述存储单元中的候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者遍历完所有相邻图像块之后,根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中,直到候选运动信息列表中候选运动信息组合的数量等于预设长度值或者直到遍历完所有可选运动信息组合,预设长度值大于第一预设数值,可选运动信息组合包括当前图像块的至少两个控制点的可选运动信息,控制点的可选运动信息为与当前图像块相邻、且采用帧间编码的图像块的运动信息。上述填充单元,用于若在上述第二处理单元遍历完所有可选运动信息组合后,候选运动信息列表中候选运动信息的数量小于预设长度值,则填充第一预设候选运动信息组合,直至候选运动信息列表中候选运动信息的数量等于预设长度值。

可选的,在本申请的一种可能的实现方式中,上述满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同;或者,上述满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同、且至少两个控制点的可选运动矢量不相同。

可选的,在本申请的另一种可能的实现方式中,上述第一处理单元,具体用于判断第i个相邻图像块所归属的编码单元的左上顶点的信息是否与目标编码单元的左上顶点的信息相同,该目标编码单元为:计算已经存储于所述候选运动信息列表中的候选运动信息组合时,采用的相邻图像块所归属的编码单元。

可选的,在本申请的另一种可能的实现方式中,上述可选运动信息组合至少包括第一控制点的可选运动信息和第二控制点的可选运动信息,第一控制点和第二控制点为当前图像块的相邻控制点。

本申请中第六方面及其任意一种可能的实现方式的具体描述,可以参考第一方面及其任意一种可能的实现方式中任意之一的详细描述;并且,第六方面及其任意一种可能的实现方式中任意之一的有益效果,可以参考第一方面及其任意一种可能的实现方式中任意之一的有益效果分析,此处不再赘述。

第七方面,提供一种候选运动信息列表的构建装置,该候选运动信息列表的构建装置包括第一处理单元、第二处理单元、合并单元和存储单元。

具体的,上述第一处理单元,用于根据第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程,直到第一候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者直到遍历完所有相邻图像块,第一候选运动信息列表存储于上述存储单元;其中,第一处理过程为:对于第i个相邻图像块而言,在第i个相邻图像块为仿射编码块的情况下,判断第i个相邻图像块与已经存储于第一候选运动信息列表中的候选运动信息组合是否来自于同一编码单元;若第一候选运动信息列表中不存在来自于第i个相邻图像块归属的编码单元的候选运动信息组合,则根据第i个相邻图像块的x个控制点的运动信息,确定出当前图像块的x个控制点的候选运动信息,并将包括当前图像块的x个控制点的候选运动信息的运动信息组合存储于第一候选运动信息列表中,i∈[1,n],n为当前图像块的相邻图像块的数量,x和n均为大于或等于2的整数。上述第二处理单元,用于根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于第二候选运动信息列表中,直到第二候选运动信息列表中候选运动信息组合的数量等于第二预设数值或者直到遍历完所有可选运动信息组合,可选运动信息组合包括当前图像块的至少两个控制点的可选运动信息,控制点的可选运动信息为与当前图像块相邻、且采用帧间编码的图像块的运动信息,第二候选运动信息列表存储于存储单元,满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同,或者,满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同、且至少两个控制点的可选运动矢量不相同。上述合并单元,用于根据预设规则,将上述存储单元中的第一候选运动信息列表和第二候选运动信息列表合并,以获取第三候选运动信息列表,第三候选运动信息列表中候选运动信息的数量等于预设长度值,第一预设数值和第二预设数值的和大于或等于预设长度值。

可选的,在本申请的一种可能的实现方式中,可选运动信息组合至少包括第一控制点的可选运动信息和第二控制点的可选运动信息,第一控制点和上述第二控制点为当前图像块的相邻控制点。

可选的,在本申请的另一种可能的实现方式中,上述合并单元具体用于:将第一候选运动信息列表的所有候选运动信息组合置于第二候选运动信息列表的所有候选运动信息组合之前,以生成目标候选运动信息列表;若目标候选运动信息列表中候选运动信息的数量小于预设长度值,则填充第二预设候选运动信息组合,直至目标候选运动信息列表中候选运动信息的数量等于预设长度值,将填充后的目标候选运动信息列表作为第三候选运动信息列表;若目标候选运动信息列表中候选运动信息的数量等于预设长度值,将目标候选运动信息列表作为第三候选运动信息列表;若目标候选运动信息列表中候选运动信息的数量大于预设长度值,则删除目标候选运动信息列表中的至少一个候选运动信息,使得删除后的目标候选运动信息列表中候选运动信息的数量等于预设长度值,将删除后的目标候选运动信息列表作为第三候选运动信息列表。

可选的,在本申请的另一种可能的实现方式中,上述第一处理单元,具体用于判断第i个相邻图像块所归属的编码单元的左上顶点的信息是否与目标编码单元的左上顶点的信息相同,目标编码单元为:计算已经存储于候选运动信息列表中的候选运动信息组合时,采用的相邻图像块所归属的编码单元。

本申请中第七方面及其任意一种可能的实现方式的具体描述,可以参考第二方面及其任意一种可能的实现方式中任意之一的详细描述;并且,第七方面及其任意一种可能的实现方式中任意之一的有益效果,可以参考第二方面及其任意一种可能的实现方式中任意之一的有益效果分析,此处不再赘述。

第八方面,提供一种候选运动信息列表的构建装置,该候选运动信息列表的构建装置包括第一处理单元、第二处理单元、填充单元和存储单元。

具体的,上述第一处理单元,用于根据第一预设顺序,遍历当前图像块的每个相邻图像块,以生成包括至少一个候选运动信息组合的候选运动信息列表,候选运动信息组合包括当前图像块的x个控制点的候选运动信息,候选运动信息列表存储于上述存储单元,x为大于或等于2的整数。上述第二处理单元,用于在上述第一处理单元遍历完当前图像块的所有相邻图像块后,根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中,直到候选运动信息列表中候选运动信息组合的数量等于预设长度值或者直到遍历完所有可选运动信息组合,可选运动信息组合包括当前图像块的至少两个控制点的可选运动信息,控制点的可选运动信息为与当前图像块相邻、且采用帧间编码的图像块的运动信息,满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同,或者,满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同、且至少两个控制点的可选运动矢量不相同。上述填充单元,用于若在上述第二处理单元遍历完所有可选运动信息组合后,候选运动信息列表中候选运动信息的数量小于预设长度值,则填充第三预设候选运动信息组合,直至候选运动信息列表中候选运动信息的数量等于预设长度值。

可选的,在本申请的一种可能的实现方式中,可选运动信息组合至少包括第一控制点的可选运动信息和第二控制点的可选运动信息,第一控制点和第二控制点为当前图像块的相邻控制点。

本申请中第八方面及其任意一种可能的实现方式的具体描述,可以参考第三方面及其任意一种可能的实现方式中任意之一的详细描述;并且,第八方面及其任意一种可能的实现方式中任意之一的有益效果,可以参考第三方面及其任意一种可能的实现方式中任意之一的有益效果分析,此处不再赘述。

第九方面,提供一种帧间预测装置,该帧间预测装置包括获取单元和确定单元。

具体的,上述获取单元,用于获取并解析码流,以获取第一索引值和运动信息差值,第一索引值为当前图像块的控制点的运动信息预测值在候选运动信息列表中的索引值,候选运动信息列表为上述第六方面、第七方面、第八方面及其任意一种可能的实现方式中任意之一所述的构建装置采用上述第一方面、第二方面、第三方面及其任意一种可能的实现方式中任意之一所述的构建方法生成的。上述获取单元,还用于根据第一索引值,从候选运动信息列表中获取控制点的运动信息预测值。上述确定单元,用于根据上述获取单元获取到的控制点的运动信息预测值和运动信息差值,确定控制点的运动信息。上述确定单元,还用于根据控制点的运动信息,确定当前图像块的预测像素。

本申请中第九方面的具体描述,可以参考第四方面的详细描述;并且,第九方面的有益效果,可以参考第四方面的有益效果分析,此处不再赘述。

第十方面,提供一种帧间预测装置,该帧间预测装置包括获取单元和确定单元。

上述获取单元,用于获取并解析码流,以获取第二索引值,第二索引值为当前图像块的控制点的运动信息在候选运动信息列表中的索引值,候选运动信息列表为上述第六方面、第七方面、第八方面及其任意一种可能的实现方式中任意之一所述的构建装置采用上述第一方面、第二方面、第三方面及其任意一种可能的实现方式中任意之一所述的构建方法生成的。上述获取单元,还用于根据第二索引值,从候选运动信息列表中获取控制点的运动信息。上述确定单元,用于根据上述获取单元获取到的控制点的运动信息,确定当前图像块的预测像素。

本申请中第十方面的具体描述,可以参考第五方面的详细描述;并且,第十方面的有益效果,可以参考第五方面的有益效果分析,此处不再赘述。

第十一方面,提供一种终端,该终端包括:一个或多个处理器、存储器、通信接口。该存储器、通信接口与一个或多个处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括指令,当一个或多个处理器执行指令时,终端执行如上述第一方面、第二方面、第三方面及其任意一种可能的实现方式中任意之一所述的候选运动信息列表的构建方法或执行如上述第四方面、第五方面及其任意一种可能的实现方式中任意之一所述的帧间预测方法。

第十二方面,提供一种视频解码器,包括非易失性存储介质以及中央处理器,所述非易失性存储介质存储有可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行如上述第一方面、第二方面、第三方面及其任意一种可能的实现方式中任意之一所述的候选运动信息列表的构建方法或执行如上述第四方面、第五方面及其任意一种可能的实现方式中任意之一所述的帧间预测方法。

第十三方面,提供一种解码器,所述解码器包括上述第六方面、第七方面、第八方面及其任意一种可能的实现方式中任意之一中的候选运动信息列表的构建装置、上述第九方面、第十方面及其任意一种可能的实现方式中任意之一中的帧间预测装置以及重建模块,其中,所述重建模块用于根据所述帧间预测装置得到的预测像素确定当前图像块的重建像素值,其中,所述重建模块用于根据所述帧间预测装置得到的预测像素确定当前图像块的重建像素值。

第十四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在上述第十一方面所述的终端上运行时,使得终端执行如上述第一方面、第二方面、第三方面及其任意一种可能的实现方式中任意之一所述的候选运动信息列表的构建方法或执行如上述第四方面、第五方面及其任意一种可能的实现方式中任意之一所述的帧间预测方法。

第十五方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在上述第十一方面所述的终端上运行时,使得终端执行如上述第一方面、第二方面、第三方面及其任意一种可能的实现方式中任意之一所述的候选运动信息列表的构建方法或执行如上述第四方面、第五方面及其任意一种可能的实现方式中任意之一所述的帧间预测方法。

在本申请中,上述候选运动信息列表的构建装置、帧间预测装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。

本申请中第十一方面到第十五方面及其各种实现方式的具体描述,可以参考第一方面、第二方面、第三方面、第四方面、第五方面及其各种实现方式中任意之一的详细描述;并且,第十一方面到第十五方面及其各种实现方式的有益效果,可以参考第一方面第二方面、第三方面、第四方面、第五方面及其各种实现方式中任意之一的有益效果分析,此处不再赘述。

本申请的这些方面或其他方面在以下的描述中会更加简明易懂。

附图说明

图1为本申请实施例中继承的控制点运动矢量预测方法的原理图;

图2为本申请实施例中构造的控制点运动矢量预测方法的原理图;

图3为本申请实施例中视频编解码系统的结构示意图;

图4为本申请实施例中视频编码器的结构示意图;

图5为本申请实施例中视频解码器的结构示意图;

图6为本申请实施例提供的候选运动信息列表的构建方法流程示意图一;

图7为本申请实施例提供的候选运动信息列表的构建方法流程示意图二;

图8为本申请实施例提供的候选运动信息列表的构建方法流程示意图三;

图9为本申请实施例提供的候选运动信息列表的构建装置的结构示意图一;

图10为本申请实施例提供的候选运动信息列表的构建装置的结构示意图二;

图11为本申请实施例提供的帧间预测装置的结构示意图一;

图12为本申请实施例提供的帧间预测装置的结构示意图二。

具体实施方式

在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

为了便于理解本申请实施例,首先在此介绍本申请实施例涉及到的相关要素。

图像编码(imageencoding):将图像序列压缩成码流的处理过程。

图像解码(imagedecoding):将码流按照特定的语法规则和处理方法恢复成重建图像的处理过程。

目前,视频图像的编码过程为:编码端首先将一帧原始图像划分成互不重叠的多个部分,每一部分即可作为一个图像块;然后,编码端针对每个图像块执行预测(prediction)、变换(transform)和量化(quantization)等操作,以得到该图像块对应的码流;其中,预测是为了得到图像块的预测块,从而可以仅对该图像块与其预测块之间的差值(或称为残差或残差块)进行编码和传输,进而节省传输开销;最后,编码端将该图像块对应的码流发送给解码端。

相应的,解码端在接收到该码流之后,执行视频解码过程。具体的,解码端对接收到的码流进行预测、反量化和反变换等操作,得到经重建的图像块(或称为重建图像块),该过程称为图像重建过程(或图像重构过程);然后,解码端对上述原始图像中的每个图像块的重建块进行组装,得到该原始图像的经重建的图像,并播放经重建的图像。

现有的视频图像编解码技术包括帧内预测与帧间预测。其中,帧间预测是指以编码图像块/解码图像块为单位,利用当前帧与其参考帧之间的相关性完成的预测。当前帧可以存在一个或多个参考帧。具体的,根据当前图像块的参考帧中的像素,生成当前图像块的预测图像块。

一般的,对于当前图像块而言,可以仅根据一个参考图像块生成当前图像块的预测图像块,也可以根据至少两个参考图像块生成当前图像块的预测图像块。上述根据一个参考图像块生成当前图像块的预测图像块称为单向预测,上述根据至少两个参考图像块生成当前图像块的预测图像块称为双向帧间预测。双向帧间预测中的至少两个参考图像块可来自于同一个参考帧或者不同的参考帧。也就是说,本申请涉及到的“方向”为一个广义的定义。本申请中的一个方向与一个参考图像块对应。

运动补偿(motioncompensation,mc)为利用参考图像块对当前图像块进行预测的过程。

在大多数的编码框架中,视频序列包括一系列图像(picture),图像被划分为至少一个条带(slice),每个条带又被划分为图像块(block)。视频编码/解码以图像块为单位,可从图像的左上角位置开始从左到右、从上到下、一行一行进行编码/解码处理。这里,图像块可以为高效视频编码(highefficiencyvideocoding,hevc)标准中的编码单元(codingunit,cu)所包括的块。示例性的,图像块为cu中的亮度块,也可以为cu中的色度块,本申请实施例对此不作具体限定。

本申请中,正在进行编码/解码处理的图像块称为当前图像块(currentblock),当前图像块所在的图像称为当前帧。

在当前帧中,与当前图像块相邻的(例如位于当前块的左侧、上侧或右侧)的图像块可能已经完成了编码/解码处理,得到了重建图像,它们称为重建图像块;重建图像块的编码模式、重建像素等信息是可以获得的(available)。

在当前帧进行编码/解码之前已经完成编码/解码处理的帧称为重建帧。

运动矢量(motionvector,mv)是帧间预测过程中的一个重要参数,其表示已编码的图像块相对于当前图像块的空间位移。一般的,可以使用运动估计(motionestimation,me)的方法,诸如运动搜索来获取运动矢量。初期的帧间预测技术,编码端在码流中传输当前图像块的运动矢量,以使得解码端再现当前图像块的预测像素,进而得到重建块。为了进一步的改善编码效率,后来又提出使用参考运动矢量差分地编码运动矢量,即仅仅编码运动矢量差(motionvectordifference,mvd)。

为了使得解码端与编码端使用相同的参考图像块,编码端需要在码流中向解码端发送各个图像块的运动信息。若编码端直接对每个图像块的运动矢量进行编码,则会消耗大量的传输资源。由于空间域相邻的图像块的运动矢量具有很强的相关性,因此,当前图像块的运动矢量可以根据邻近已编码图像块的运动矢量进行预测,预测所得到的运动矢量称为mvp,当前图像块的运动矢量和mvp之间的差值称为mvd。

视频编解码标准h.264在运动估计过程中采用了多参考帧预测来提高预测精度,即建立储存多个重建帧的缓存,并在缓存内的所有的重建帧中寻找最优的参考图像块进行运动补偿,以便更好地去除时间域的冗余度。视频编解码标准h.264的帧间预测使用两个缓存,即参考帧列表0(referencelist0)和参考帧列表1(referencelist1)。每一个列表中最优的参考块所在的参考帧用索引值标明,即ref_idx_l0和ref_idx_l1。每一参考帧列表中,参考图像块的运动信息包括参考帧的索引值(ref_idx_l0或ref_idx_l1)、mvp在候选运动信息列表中的索引值和mvd。解码端根据参考帧的索引值、mvp在候选运动信息列表中的索引值和mvd,即可以在选定的参考帧中找到正确的参考图像块。

目前,在hevc标准中常使用帧间预测模式为高级运动矢量预测(advancedmotionvectorprediction,amvp)模式和合并(merge)模式。

对于amvp模式,编码端通过当前图像块空域或者时域相邻的已编码的图像块的运动矢量构建候选运动信息列表,并根据率失真代价从该候选运动信息列表中确定最优的运动矢量作为当前图像块的mvp。此外,编码端在以mvp为中心的邻域内进行运动搜索获得当前图像块的运动矢量。编码端将mvp在候选运动信息列表中的索引值、参考帧的索引值以及mvd传递到解码端。

对于合并模式,编码端通过当前图像块空域或者时域相邻的已编码图像块的运动矢量,构建候选运动信息列表,并根据率失真代价从该候选运动信息列表中确定最优的运动矢量作为当前图像块的mv。编码端将最优的运动矢量在候选运动信息列表中位置的索引值传递到解码端。

现有的视频编码标准使用基于平动运动模型的运动补偿技术,并且假设图像块中的所所有像素点的运动一致。但是,在现实世界中存在很多非平动运动的物体,如旋转的物体、在不同方向旋转的过山车、投放的烟花、电影中的一些特技动作,若采用当前编码标准中的基于平动运动模型的运动补偿技术,编码效率会受到很大的影响。因此,业界对非平动运动模型进行了研究。

非平动运动模型预测模式是指编解码端使用相同的运动模型推导出当前图像块中每一个子块的运动信息,并根据所有子块的运动信息进行运动补偿,得到预测图像块,从而提高预测效率。其中,编解码端常用的运动模型为4参数仿射运动模型或6参数仿射运动模型。

示例性的,4参数仿射运动模型可以通过两个像素点的运动矢量及其相对于当前图像块左上顶点像素的坐标来表示。这里,将用于表示运动模型参数的像素点称为控制点。若当前图像块的左上顶点(0,0)和右上顶点(w,0)像素点为控制点,当前图像块的左上顶点和右上顶点的运动矢量分别为(xv0,vy0)和(vx1,vy1),则根据下述公式(1)得到当前图像块中每一个子块的运动信息。下述公式(1)中的(x,y)为子块相对于当前图像块的左上顶点像素的坐标,(vx,vy)为子块的运动矢量,w为当前图像块的宽。

示例性的,6参数仿射运动模型可以通过三个像素点的运动矢量及其相对于当前图像块左上顶点像素的坐标来表示。若当前图像块的左上顶点(0,0)、右上顶点(w,0)和左下顶点(0,h)像素点为控制点,当前图像块的左上顶点、右上顶点和左下顶点的运动矢量分别为(vx0,vy0)、(vx1,vy1)、(vx2,vy2),则根据下述公式(2)得到当前图像块中每一个子块的运动信息。下述公式(2)中的(x,y)为子块相对于当前图像块的左上顶点像素的坐标,(vx,vy)为子块的运动矢量,w和h分别为当前图像块的宽和高。

为了便于描述,本申请实施例将采用非平动运动模型预测模式进行预测的图像块称为仿射编码块。当然,此类图像块也可以采用其他名称表示,本申请实施例对此不作具体限定。

从上述对非平动运动模型预测模式的描述可以看出,在预测过程中需要获取到仿射编码块的控制点的运动信息。

通常的,编解码端可以使用仿射先进运动矢量预测模式(affineamvpmode)或者仿射融合模式(affinemergemode),获得控制点的运动信息。

其中,编解码端使用仿射amvp模式,获得当前图像块的控制点的运动信息的过程为:

步骤1、编解码端构建控制点的候选运动信息列表。

编解码端利用继承的控制点运动矢量预测方法(请参考下文描述)和/或构造的控制点运动矢量预测方法(请参考下文描述),构建候选运动信息列表。

候选运动信息列表包括多个候选运动信息组合,每个候选运动信息可以包括2个(4参数仿射模型)或者3个(6参数仿射模型)控制点的运动矢量。

可选的,编解码端根据预设规则将候选运动信息列表进行裁剪和排序,并可将其截断或填充至特定的个数(对应后续预设的长度值)。

步骤2、编解码端确定最优的候选运动信息组合,并将该最优的候选运动信息作为控制点的运动信息预测值。

对于编码端而言,编码端利用候选运动信息列表中的每个候选运动信息组合,采用上述公式(1)/(2)获得当前图像块中每个子块的运动矢量,进而得到每个子块的运动矢量所指向的参考帧中位置的像素值,作为其预测值,进行仿射变换运动补偿。编码端计算当前图像块中每个像素点的原始值和预测值之间差值的平均值,并选择最小的平均值所对应的候选运动信息组合作为最优的候选运动信息组合。编码端向解码端发送该最优的候选运动信息组合在候选运动信息列表中的索引号。

对于解码端而言,解码端解析索引号,根据索引号从候选运动信息列表中确定控制点的运动信息预测值(controlpointmotionvectorspredictor,cpmvp)。

步骤3、编解码端确定控制点的运动矢量。

对于编码端而言,以控制点的运动信息预测值中的运动矢量(简称为控制点的运动矢量预测值)作为搜索起始点在一定搜索范围内进行运动搜索,获得控制点的运动矢量(controlpointmotionvectors,cpmv),并将控制点的运动矢量与控制点的运动矢量预测值之间的差值(controlpointmotionvectorsdifferences,cpmvd)传输至解码端。

对于解码端而言,解析控制点的运动矢量差值,与控制点的运动矢量预测值相加,得到控制点的运动矢量。

编解码端使用仿射融合模式,获得当前图像块的控制点的运动矢量的过程为:

步骤i、编解码端构建控制点的候选运动信息列表。

编解码端利用继承的控制点运动矢量预测方法和/或构造的控制点运动矢量预测方法,构建控制点的候选运动信息列表。

可选的,编解码端根据预设规则将控制点的候选运动信息列表进行剪枝和排序,并可将其截断或填充至特定的个数(对应后续预设的长度值)。

步骤ii、编解码端确定控制点的运动信息。

对于编码端而言,编码端利用候选运动信息列表中的每个候选运动信息组合,采用上述公式(1)/(2)获得当前图像块中每个子块的运动信息,进而得到每个子块的运动信息所指向的参考帧中位置的像素值,作为其预测值,进行仿射运动补偿。编码端计算当前图像块中每个像素点的原始值和预测值之间差值的平均值,并选择最小的平均值所对应的候选运动信息组合作为当前图像块的控制点的运动信息。编码端向解码端发送该控制点的运动信息在候选运动信息列表中的索引值。

对于解码端而言,解码端解析码流,以获取控制点的运动信息在候选运动信息列表中的索引值,并根据该索引值,从候选运动信息列表中确定控制点的运动信息。

从上述描述可知,编解码端可以利用继承的控制点运动矢量预测方法(inheritedcontrolpointmotionvectors)和/或构造的控制点运动矢量预测方法(constructedcontrolpointmotionvectors),构建候选运动信息列表。现在对继承的控制点运动矢量预测方法和构造的控制点运动矢量预测方法分别进行描述。

继承的控制点运动矢量预测方法,是指编解码端利用当前图像块空域相邻的已编码的仿射编码块的运动模型,推导得到当前图像块的控制点的运动矢量。

示例性的,如图1所示,若当前图像块的空域相邻图形块有图像块b2、图像块b1、图像块b0、图像块a1以及图像块b0,编解码端按照预设顺序,如图像块a1、图像块b1、图像块b0、图像块a0、图像块b2的顺序,遍历(checkinginsequence)当前图像块的空域相邻图像块,以从该空域相邻图像块中确定出仿射编码块,并获得该仿射编码块的控制点的运动矢量,进而根据该仿射编码块所采用的运动模型,推导出当前图像块的控制点的运动矢量或者当前图像块的控制点的运动矢量预测值。

为了便于理解,现结合图1,以图像块a1为仿射编码块为例说明继承的控制点的运动矢量预测方法。如图1所示,若当前图像块的左上顶点(x0,y0)和右上顶点(x1,y1)像素点为控制点,当前图像块的左上顶点和右上顶点的运动矢量分别为(vx0,vy0)、(vx1,vy1)。

若图像块a1为4参数仿射编码块,图像块a1的左上顶点(x4,y4)和右上顶点(x5,y5)像素点为控制点,图像块a1的左上顶点和右上顶点的运动矢量分别为(vx4,vy4)、(vx5,vy5)。编解码端根据下述公式(3)计算当前图像块的左上顶点的运动矢量,根据下述公式(4)计算当前图像块的右上顶点的运动矢量,即根据4参数仿射运动模型计算当前图像块的控制点的运动矢量。

若当前图像块的左上顶点(x0,y0)、右上顶点(x1,y1)和左下顶点(x2,y2)像素点为控制点,当前图像块的左上顶点、右上顶点和左下顶点的运动矢量分别为(vx0,vy0)、(vx1,vy1)、(vx2,vy2)。

若图像块a1为6参数仿射编码块,图像块a1的左上顶点(x4,y4)、右上顶点(x5,y5)和左下顶点(x6,y6)像素点为控制点,图像块a1的左上顶点、右上顶点和左下顶点的运动矢量分别为(vx4,vy4)、(vx5,vy5)、(vx6,vy6)。编解码端根据下述公式(5)计算当前图像块的左上顶点的运动矢量,根据下述公式(6)计算当前图像块的右上顶点的运动矢量,根据下述公式(7)计算当前图像块的左下顶点的运动矢量,即根据6参数仿射运动模型计算当前图像块的控制点的运动矢量。

当然,编码端也可以采用除上述4参数仿射运动模型和6参数仿射运动模型之外的其他运动模型计算当前图像块的控制点的运动矢量。

构造的控制点的运动矢量预测方法,是指编解码端将当前图像块的控制点空域/时域相邻已编码的图像块的运动矢量进行组合,作为当前图像块的控制点的候选运动矢量,而无需考虑空域/时域相邻已编码的图像块是否为仿射编码块。

构造的控制点的运动矢量预测方法存在以下两种实现方式。

第一种实现方式为:编解码端将当前图像块空域/时域相邻的已编码图像块的运动矢量,作为当前图像块的控制点的候选运动矢量,后续,编解码端从控制点的候选运动矢量中选出最优的候选运动矢量作为控制点的运动矢量。

示例性的,如图2所示,当前图像块的左上顶点和右上顶点为当前图像块的控制点,若当前图像块的左上顶点的相邻已编码图像块为图像块a2、图像块b2和图像块b3,当前图像块的右上顶点的相邻已编码图像块为图像块b0和图像块b1,则编解码端将图像块a2的运动矢量va2、图像块b2的运动矢量vb2和图像块b3的运动矢量vb3作为当前图像块的左上顶点的候选运动矢量,将图像块b0的运动矢量vb0和图像块b1的运动矢量vb1作为当前图像块的右上顶点的候选运动矢量,然后,编解码端将当前图像块的左上顶点的候选运动矢量和右上顶点的候选运动矢量进行两两组合,生成两个控制点的候选运动矢量二元组队列:{(va2,vb1),(va2,vb0),(vb2,vb1),(vb2,vb0),(vb3,vb1),(vb3,vb0)}。后续,编解码端可从该候选运动矢量二元组队列中选取出最优的候选运动矢量作为当前图像块的控制点的运动矢量。

第二种实现方式为:编解码端首先计算出当前图像块中各个控制点的可选运动矢量,然后,编解码端将各个控制点的运动矢量利用非平动运动模型进行组合,生成候选运动信息列表,最后,编解码端从该候选运动信息列表中选取出最优的候选运动信息作为当前图像块的控制点运动信息。

示例性的,如图2所示,本申请实施例采用cpk(k=1,2,3,4)表示当前图像块的第k个控制点,cp1、cp2、cp3和cp4的坐标分别为(0,0),(w,0),(0,h)和(w,h),w和h分别为当前图像块的宽度和高度。图像块a2、图像块b2、图像块b3、图像块b0和图像块b1均为当前图像块的空域相邻的图像块,可用于预测cp1、cp2或cp3。图像块t为当前图像块的时域相邻的图像块,可用于预测cp4。

步骤a、对于当前图像块的每个控制点,编解码端按照以下顺序获得各自的可选运动矢量。

对于cp1,编解码端依次查询图像块b2、图像块a2、图像块b3。若图像块b2为采用帧间编码得到的图像块,则编解码端将图像块b2的运动矢量作为cp1的可选运动矢量vcp1。否则,编解码端依次检测图像块a2、图像块b3。若图像块b2、图像块a2以及图像块b3均为非采用帧间编码得到的图像块,则编解码端无法确定cp1的可选运动矢量。

对于cp2,编解码端依次查询图像块b0、图像块b1,并根据查询结果确定cp2的可选运动矢量vcp2。

对于cp3,编解码端依次查询图像块a0、图像块a1,并根据查询结果确定cp3的可选运动矢量vcp3。

对于cp4,编解码端将图像块t的运动矢量作为cp4的可选运动矢量vcp4。

步骤b、编解码端将上述控制点的可选运动矢量进行组合,生成控制点候选运动信息列表。

具体的,编解码端将任意两个控制点的可选运动矢量进行组合,用于构建4参数仿射运动模型。两个控制点的可选运动矢量的组合方式可以为(vcp1,vcp4),(vcp2,vcp3),(vcp1,vcp2),(vcp2,vcp4),(vcp1,vcp3),(vcp3,vcp4)。示例性的,本申请实施例采用vcp1和vcp2构建的4参数仿射运动模型,记做affine(vcp1,vcp2)。

编解码端将任意三个控制点的可选运动矢量进行组合,用于构建6参数仿射运动模型。三个控制点的可选运动矢量的组合方式可以为(vcp1,vcp2,vcp4),(vcp1,vcp2,vcp3),(vcp2,vcp3,vcp4),(vcp1,vcp3,vcp4)。示例性的,本申请实施例采用vcp1、vcp2和vcp3构建的6参数仿射运动模型,记做affine(vcp1,vcp2,vcp3)。

编解码端将上述四个控制点的可选运动矢量进行组合,用于构建8参数仿射运动模型。示例性的,本申请实施例采用vcp1、vcp2、vcp3和vcp4构建的8参数双线性模型,记做bilinear(vcp1,vcp2,vcp3,vcp4)。

实际应用中,编解码端根据上述顺序进行遍历。若某一组合中的某一可选运动矢量无法获得,则编解码端无法确定出该组合;否则,编解码端确定该组合中所有控制点的参考帧索引,并将该模型中的可选运动矢量采用下述公式(8)进行缩放。进一步地,若缩放后的所有可选运动矢量一致,则该编解码端获取到的该组合不合法;否则,编解码端将该组合加入候选运动信息列表中。

也就是说,首先,编解码端初步计算每个控制点的可选运动矢量,并将得到的可选运动矢量按照上述顺序进行组合。若某一组合中的可选运动矢量的参考帧索引不一致,则编解码端对该组合中的可选运动矢量进行缩放。若缩放后的可选运动矢量一致,则编解码端将这一组合加入候选运动信息列表中。

公式(8)中的curpoc表示当前帧的序号,despoc表示的当前图像块的参考帧的序号,srcpoc表示控制点的参考帧的序号,mvs表示缩放后得到的mv。

需要说明的是,上述不同控制点的可选运动矢量的组合可进行相互转换。

示例性的,编解码端可根据下述公式(9)将(vcp1,vcp2)转换为(vcp1,vcp2,vcp3)。

其中,vcp1具体为(vx0,vy0),vcp2具体为(vx1,vy1),vcp3具体为(vx2,vy2)。

编解码端可根据下述公式(10)将(vcp1,vcp3)转换为(vcp1,vcp2,vcp3)或(vcp1,vcp2)。

编解码端可根据下述公式(11)将(vcp2,vcp3)转换为(vcp1,vcp2,vcp3)或(vcp1,vcp2)。

编解码端可根据下述公式(12)和公式(13)将(vcp1,vcp4)转换为(vcp1,vcp2,vcp3)或(vcp1,vcp2)。

其中,vcp4具体为(vx3,vy3)。

编解码端可根据下述公式(14)和公式(15)将(vcp2,vcp4)转换为(vcp1,vcp2,vcp3)或(vcp1,vcp2)。

编解码端可根据下述公式(16)和公式(17)将(vcp3,vcp4)转换为(vcp1,vcp2,vcp3)或(vcp1,vcp2)。

编解码端可根据下述公式(18)将(vcp1,vcp2,vcp4)转换为(vcp1,vcp2,vcp3)。

编解码端可根据下述公式(19)将(vcp2,vcp3,vcp4)转换为(vcp1,vcp2,vcp3)。

编解码端可根据下述公式(20)将(vcp1,vcp3,cvp4)转换为(vcp1,vcp2,vcp3)。

现有技术中,编解码端构建控制点的候选运动信息列表的方法一般为:s1、编解码端采用继承的控制点运动矢量预测方法,计算出当前图像块中多个控制点的候选运动信息,并将其加入候选运动信息列表中;s2、编解码端采用构造的控制点运动矢量预测方法,计算出当前图像块中多个控制点的候选运动信息,并将其加入候选运动信息列表中;s3、若此时候选运动信息列表中候选运动信息组合的数量小于预设长度值,则在该候选运动信息列表中填充预设的候选运动信息组合,直到该候选运动信息列表中候选运动信息组合的数量达到所述预设长度值。

其中,在上述s1和s2中,编解码端每次向候选运动信息列表中加入新的候选运动信息组合之前,都会先检查该候选运动信息列表中是否已经存在相同的运动信息组合;如果存在,则不会将所述新的候选运动信息加入列表中。这一过程称为候选运动信息列表的修剪。候选运动信息列表的修剪能够防止该候选运动信息列表中出现相同的运动信息,避免冗余的率失真代价计算。但是,这一过程的计算复杂度也较高,时延较大。

此外,编解码端采用继承的控制点运动矢量预测方法计算控制点的候选运动信息的复杂度高;采用构造的控制点运动矢量预测方法计算控制点的候选运动信息时,若某一可选运动信息组合中的参考帧索引不一致时,编解码端还需要对可选运动矢量进行缩放,而缩放的计算复杂度高,也会加大延时。

针对上述问题,本申请提供一种候选运动信息列表的构建方法,及对应的构建装置,该方法或构建装置根据第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程,直到候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者直到遍历完所有相邻图像块;在候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者遍历完所有相邻图像块之后,构建装置根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中,直到候选运动信息列表中候选运动信息组合的数量等于预设长度值或者直到遍历完所有可选运动信息组合,这里,预设长度值大于第一预设数值,可选运动信息组合包括当前图像块的至少两个控制点的可选运动信息,控制点的可选运动信息为与当前图像块相邻、且采用帧间编码的图像块的运动信息;若在遍历完所有可选运动信息组合后,候选运动信息列表中候选运动信息的数量小于预设长度值,则填充第一预设候选运动信息组合,直至候选运动信息列表中候选运动信息的数量等于预设长度值。

可选的,构建装置还可以根据第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程,直到候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者直到遍历完所有相邻图像块;此外,构建装置还根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于第二候选运动信息列表中,直到第二候选运动信息列表中候选运动信息组合的数量等于第二预设数值或者直到遍历完所有可选运动信息组合;后续,构建装置根据预设规则,将第一候选运动信息列表和第二候选运动信息列表合并,以获取第三候选运动信息列表,该第三候选运动信息列表中候选运动信息的数量等于预设长度值。其中,第一预设数值和第二预设数值的和大于或等于预设长度值。

可选的,构建装置还可以根据第一预设顺序,遍历当前图像块的每个相邻图像块,以生成包括至少一个候选运动信息组合的候选运动信息列表,该候选运动信息组合包括当前图像块的x个控制点的候选运动信息,x为大于或等于2的整数。在遍历完当前图像块的所有相邻图像块后,构建装置根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中,直到候选运动信息列表中候选运动信息组合的数量等于预设长度值或者直到遍历完所有可选运动信息组合。若在遍历完所有可选运动信息组合后,候选运动信息列表中候选运动信息的数量小于预设长度值,构建装置则填充第三预设候选运动信息组合,直至候选运动信息列表中候选运动信息的数量等于预设长度值。

具体的,上述第一处理过程为:对于第i(i∈[1,n])个相邻图像块而言,在第i个相邻图像块为仿射编码块的情况下,构建装置判断第i个相邻图像块与已经存储于候选运动信息列表中的候选运动信息组合是否来自于同一编码单元;若候选运动信息列表中不存在来自于第i个相邻图像块归属的编码单元的候选运动信息组合,构建装置则根据第i个相邻图像块的x个控制点的运动信息,确定出当前图像块的x个控制点的候选运动信息,并将包括当前图像块的x个控制点的候选运动信息的候选运动信息组合存储于候选运动信息列表中,n为当前图像块的相邻图像块的数量,x和n均为大于或等于2的整数。

上述可选运动信息组合包括当前图像块的至少两个控制点的可选运动信息,控制点的可选运动信息为与当前图像块相邻、且采用帧间编码的图像块的运动信息。上述满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同,或者,上述满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同、且至少两个控制点的可选运动矢量不相同。

可以看出,第一处理过程和对可选运动信息的处理过程均根据判断结果确定是否在候选运动信息列表中加入新的候选运动信息组合,无需先计算得到新的候选运动信息组合,再判断候选运动信息列表中是否存在相同的运动信息,有效的降低了计算的复杂度,减少了时延。

此外,本申请还提供一种帧间预测方法,帧间预测装置解析码流,以获取当前图像块的控制点的运动信息预测值在构建装置采用上述构建方法生成的候选运动信息列表中的索引值(即第一索引值)和运动信息差值,这样,帧间预测装置根据第一索引值能够从候选运动信息列表中获取控制点的运动信息预测值,并根据控制点的运动信息预测值和运动信息差值,确定出控制点的运动信息,进而根据控制点的运动信息,确定当前图像块的预测像素。

可选的,帧间预测装置还可以解析码流,以获取当前图像块的控制点的运动信息在构建装置采用上述构建方法生成的候选运动信息列表中的索引值(即第二索引值),这样,帧间预测装置根据该第二索引值,从候选运动信息列表中获取控制点的运动信息,进而根据该控制点的运动信息,确定当前图像块的预测像素。

由于本申请提供的构建方法有效的降低了计算复杂度,减小了时延,因此,基于该构建方法生成的候选运动信息列表进行的帧间预测,也有效的降低了计算复杂度,减少了时延。

本申请提供的候选运动信息列表的构建方法可以由构建装置、视频编解码装置、视频编解码器以及其它具有视频编解码功能的设备来执行。本申请提供的帧间预测方法可以由帧间预测装置、视频编解码装置、视频编解码器以及其它具有视频编解码功能的设备来执行。其中,构建装置和帧间预测装置可以置于同一设备中,也可以独立设置,本申请实施例对此不作具体限定。

本申请提供的候选运动信息列表的构建方法、帧间预测方法适用于视频编解码系统。视频编解码系统的视频编码器100和视频解码器200用于根据本申请提出的候选运动信息列表的构建方法实例实现候选运动信息列表的生成,以及对当前图像块的预测。

图3示出了视频编解码系统的结构。如图3所示,视频编解码系统包含源装置10和目的装置20。源装置10产生经过编码后的视频数据,源装置10也可以被称为视频编码装置或视频编码设备,目的装置20可以对源装置10产生的经过编码后的视频数据进行解码,目的装置20也可以被称为视频解码装置或视频解码设备。源装置10和/或目的装置20可包含至少一个处理器以及耦合到所述至少一个处理器的存储器。所述存储器可包含但不限于只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、带电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,本申请对此不作具体限定。

源装置10和目的装置20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。

目的装置20可经由链路30从源装置10接收经编码视频数据。链路30可包括能够将经编码视频数据从源装置10移动到目的装置20的一个或多个媒体和/或装置。在一个实例中,链路30可包括使得源装置10能够实时地将编码后的视频数据直接发射到目的装置20的一个或多个通信媒体。在此实例中,源装置10可根据通信标准(例如:无线通信协议)来调制编码后的视频数据,并且可以将调制后的视频数据发射到目的装置20。上述一个或多个通信媒体可包含无线和/或有线通信媒体,例如:射频(radiofrequency,rf)频谱、一个或多个物理传输线。上述一个或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络(例如,局域网、广域网或全球网络(例如,因特网))的部分。上述一个或多个通信媒体可以包含路由器、交换器、基站,或者实现从源装置10到目的装置20的通信的其它设备。

在另一实例中,可将编码后的视频数据从输出接口140输出到存储装置40。类似地,可通过输入接口240从存储装置40存取编码后的视频数据。存储装置40可包含多种本地存取式数据存储媒体,例如蓝光光盘、高密度数字视频光盘(digitalvideodisc,dvd)、只读光盘(compactdiscread-onlymemory,cd-rom)、快闪存储器,或用于存储经编码视频数据的其它合适数字存储媒体。

在另一实例中,存储装置40可对应于文件服务器或存储由源装置10产生的编码后的视频数据的另一中间存储装置。在此实例中,目的装置20可经由流式传输或下载从存储装置40获取其存储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的视频数据发射到目的装置20的服务器。例如,文件服务器可以包含全球广域网(worldwideweb,web)服务器(例如,用于网站)、文件传送协议(filetransferprotocol,ftp)服务器、网络附加存储(networkattachedstorage,nas)装置以及本地磁盘驱动器。

目的装置20可通过任何标准数据连接(例如,因特网连接)存取编码后的视频数据。数据连接的实例类型包含适合于存取存储于文件服务器上的编码后的视频数据的无线信道、有线连接(例如,缆线调制解调器等),或两者的组合。编码后的视频数据从文件服务器的发射可为流式传输、下载传输或两者的组合。

本申请的候选运动信息列表的构建方法、帧间预测方法不限于无线应用场景,示例性的,本申请的候选运动信息列表的构建方法、帧间预测方法可以应用于支持以下应用等多种多媒体应用的视频编解码:空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射(例如,经由因特网)、存储于数据存储媒体上的视频数据的编码、存储于数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频编解码系统可经配置以支持单向或双向视频发射,以支持例如视频流式传输、视频播放、视频广播及/或视频电话等应用。

需要说明的是,图3示出的视频编解码系统仅仅是视频编解码系统的示例,并不是对本申请中视频编解码系统的限定。本申请提供的候选运动信息列表的构建方法还可适用于编码装置与解码装置之间无数据通信的场景。在其它实例中,待编码视频数据或编码后的视频数据可以从本地存储器检索,也可以在网络上流式传输等。视频编码装置可对待编码视频数据进行编码并且将编码后的视频数据存储到存储器,视频解码装置也可从存储器中获取编码后的视频数据并且对该编码后的视频数据进行解码。

在图3中,源装置10包含视频源101、视频编码器102和输出接口103。在一些实例中,输出接口103可包含调节器/解调器(调制解调器)和/或发射器。视频源101可包括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频输入接口,和/或用于产生视频数据的计算机图形系统,或视频数据的此些来源的组合。

视频编码器102可对来自视频源101的视频数据进行编码。在一些实例中,源装置10经由输出接口103将编码后的视频数据直接发射到目的装置20。在其它实例中,编码后的视频数据还可存储到存储装置40上,供目的装置20稍后存取来用于解码和/或播放。

在图3的实例中,目的装置20包含显示装置201、视频解码器202以及输入接口203。在一些实例中,输入接口203包含接收器和/或调制解调器。输入接口203可经由链路30和/或从存储装置40接收编码后的视频数据。显示装置201可与目的装置20集成或可在目的装置20外部。一般来说,显示装置201显示解码后的视频数据。显示装置201可包括多种显示装置,例如,液晶显示器、等离子显示器、有机发光二极管显示器或其它类型的显示装置。

可选的,视频编码器102和视频解码器202可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。

视频编码器102和视频解码器202可以包括至少一个微处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)、离散逻辑、硬件或其任何组合。若本申请提供的候选运动信息列表的构建方法采用软件实现,则可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用至少一个处理器在硬件中执行所述指令从而实施本申请。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为至少一个处理器。视频编码器102可以包含在编码器中,视频解码器202可包含在解码器中,所述编码器或解码器可以为相应装置中组合编码器/解码器(编码解码器)中的一部分。

本申请中的视频编码器102和视频解码器202可以根据视频压缩标准(例如hevc)操作,也可根据其它业界标准操作,本申请对此不作具体限定。

参考下述图6,视频编码器102和视频解码器202均用于:根据第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程,直到候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者直到遍历完所有相邻图像块(s601);在s601之后,根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中,直到候选运动信息列表中候选运动信息组合的数量等于预设长度值或者直到遍历完所有可选运动信息组合(s602);若在遍历完所有可选运动信息组合后,候选运动信息列表中候选运动信息的数量小于预设长度值,则填充第一预设候选运动信息组合,直至候选运动信息列表中候选运动信息的数量等于预设长度值(s603)。

参考下述图7,视频编码器102和视频解码器202还用于:根据第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程,直到候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者直到遍历完所有相邻图像块(s701);根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于第二候选运动信息列表中,直到第二候选运动信息列表中候选运动信息组合的数量等于第二预设数值或者直到遍历完所有可选运动信息组合(s702);根据预设规则,将第一候选运动信息列表和第二候选运动信息列表合并,获取第三候选运动信息列表(s703)。

参考下述图8,视频编码器102和视频解码器202还用于:根据第一预设顺序,遍历当前图像块的每个相邻图像块,以生成包括至少一个候选运动信息组合的候选运动信息列表(s800);在遍历完当前图像块的所有相邻图像块后,根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中,直到候选运动信息列表中候选运动信息组合的数量等于预设长度值或者直到遍历完所有可选运动信息组合(s801);若在遍历完所有可选运动信息组合后,候选运动信息列表中候选运动信息的数量小于预设长度值,则填充第三预设候选运动信息组合,直至候选运动信息列表中候选运动信息的数量等于预设长度值(s802)。

此外,视频编码器102还用于:从候选运动信息列表中选取最优的候选运动信息组合作为当前图像块的运动信息预测值;确定当前图像块的运动信息,并计算运动信息预测值与运动信息之间的差异值;向对端发送差异值以及最优的候选运动信息组合在候选运动信息列表中的索引值。

视频解码器202还用于:获取并解析该码流,以获取第一索引值和运动信息差值,即确定当前图像块的控制点的运动信息预测值在候选运动信息列表中的索引值和运动信息差值;获取控制点的运动信息预测值,并根据控制点的运动信息预测值和运动信息差值,确定控制点的运动信息,这样,视频解码器202即可根据控制点的运动信息,确定当前图像块的预测像素。

可选的,视频解码器202还用于:获取并解析该码流,以获取第二索引值,即确定当前图像块的控制点的运动信息在候选运动信息列表中的索引值;获取控制点的运动信息,这样,视频解码器202即可根据控制点的运动信息,确定当前图像块的预测像素。

图4是本申请实施例中视频编码器102的结构示意图。如图4所示,视频编码器102用于将视频输出到后处理实体41。后处理实体41表示可处理来自视频编码器102的经编码视频数据的视频实体的实例,例如媒体感知网络元件(mane)或拼接/编辑装置。在一些情况下,后处理实体41可为网络实体的实例。在一些视频编码系统中,后处理实体41和视频编码器102可为单独装置的若干部分,而在其它情况下,相对于后处理实体41所描述的功能性可由包括视频编码器100的相同装置执行。在某一实例中,后处理实体41是图3的存储装置40的实例。

如图4所示,视频编码器102包括变换器301、量化器302、熵编码器303、滤波器306、存储器307、预测处理单元308、求和器312。预测处理单元308包括帧内预测器309和帧间预测器310。为了图像块重构,视频编码器102还包含反量化器304、反变换器305以及求和器311。滤波器306既定表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器和样本自适应偏移滤波器。

存储器307可存储由视频编码器102的组件编码的视频数据。可从视频源101获得存储在存储器307中的视频数据。存储器307可为参考图像存储器,其存储用于由视频编码器102在帧内、帧间译码模式中对视频数据进行编码的参考视频数据。存储器307可以为同步dram(synchronousdram,sdram)的动态随机存取存储器(dynamicram,dram)、磁阻式ram(magneticram,mram)、电阻式ram(resistiveram,rram),或其它类型的存储器装置。

视频编码器102接收视频数据,并将所述视频数据存储在视频数据存储器中。分割单元将所述视频数据分割成若干图像块,而且这些图像块可以被进一步分割为更小的块,例如基于四叉树结构或者二叉树结构的图像块分割。此分割还可包含分割成条带(slice)、片(tile)或其它较大单元。视频编码器102通常说明编码待编码的视频条带内的图像块的组件。所述条带可分成多个图像块(并且可能分成被称作片的图像块集合)。

预测处理单元308内的帧内预测器309可相对于与当前图像块在相同帧或条带中的一或多个相邻图像块执行当前图像块的帧内预测性编码,以去除空间冗余。预测处理单元308内的帧间预测器310可相对于一或多个参考图像中的一或多个预测图像块执行当前图像块的帧间预测性编码以去除时间冗余。

预测处理单元308可将所得经帧内、帧间译码的图像块提供给求和器310以产生残差块,且提供给求和器309以重建用作参考图像的编码块。

在预测处理单元308经由帧间预测、帧内预测产生当前图像块的预测图像块之后,视频编码器102通过从待编码的当前图像块减去所述预测图像块来形成残差图像块。求和器312表示执行此减法运算的一或多个组件。所述残差块中的残差视频数据可包含在一或多个变换单元(transformunit,tu)中,并应用于变换器301。变换器301使用例如离散余弦变换(discretecosinetransform,dct)或概念上类似的变换等变换将残差视频数据变换成残差变换系数。变换器301可将残差视频数据从像素值域转换到变换域,例如频域。

变换器301可将所得变换系数发送到量化器302。量化器302量化所述变换系数以进一步减小位速率。在一些实例中,量化器302可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码器303可执行扫描。

在量化之后,熵编码器303对经量化变换系数进行熵编码。举例来说,熵编码器303可执行上下文自适应可变长度编码(contextadaptivevariablelengthcoding,cavlc)、上下文自适应二进制算术编码(contextbasedadaptivebinaryarithmeticcoding,cabac)或另一熵编码方法或技术。在由熵编码器303熵编码之后,可将编码后的码流发送到视频解码器202,或经存档以供稍后发送或由视频解码器202检索。熵编码器303还可对待编码的当前图像块的语法元素进行熵编码。

反量化器304和反变化器305分别应用逆量化和逆变换以在像素域中重构所述残差块,例如以供稍后用作参考图像的参考块。求和器311将经重构的残差块添加到由帧间预测器310或帧内预测器309产生的预测图像块,以产生经重构图像块。其中,对一个图像块的参考图像块进行处理(例如插值等处理)可以得到该图像块的预测图像块。

应当理解的是,视频编码器102的其它的结构变化可用于编码视频流。例如,对于某些图像块或者图像帧,视频编码器102可以直接地量化残差信号而不需要经变换器301处理,相应地也不需要经反变换器305处理;或者,对于某些图像块或者图像帧,视频编码器102没有产生残差数据,相应地不需要经变换器301、量化器302、反量化器304和反变换器305处理;或者,视频编码器102可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器306处理;或者,视频编码器102中量化器302和反量化器304可以合并在一起。

图5是本申请实施例中视频解码器202的结构示意图。如图5所示,视频解码器202包括熵解码器401、反量化器402、反变换器403、滤波器404、存储器405、预测处理单元406以及求和器409。预测处理单元406包括帧内预测器407和帧间预测器408。在一些实例中,视频解码器202可执行大体上与相对于来自图4的视频编码器102描述的编码过程互逆的解码过程。

在解码过程中,视频解码器202从视频编码器102接收码流。视频解码器202可从网络实体42接收视频数据,可选的,还可以将所述视频数据存储在视频数据存储器(图中未示意)中。视频数据存储器可存储待由视频解码器202的组件解码的视频数据,例如编码后的码流。存储在视频数据存储器中的视频数据,例如可从存储装置40、从相机等本地视频源、经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。尽管在图5中没有示意出视频数据存储器,但视频数据存储器和存储器405可以是同一个的存储器,也可以是单独设置的存储器。视频数据存储器和存储器405可由多种存储器装置中的任一者形成,例如:包含同步dram(sdram)的动态随机存取存储器(dram)、磁阻式ram(mram)、电阻式ram(rram),或其它类型的存储器装置。在各种实例中,视频数据存储器可与视频解码器202的其它组件一起集成在芯片上,或相对于那些组件设置在芯片外。

网络实体42可例如为服务器、mane、视频编辑器/剪接器,或用于实施上文所描述的技术中的一或多者的其它此装置。网络实体42可包括或可不包括视频编码器,例如视频编码器102。在网络实体42将码流发送到视频解码器202之前,网络实体42可实施本申请中描述的技术中的部分。在一些视频解码系统中,网络实体42和视频解码器202可为单独装置的部分,而在其它情况下,相对于网络实体42描述的功能性可由包括视频解码器202的相同装置执行。在一些情况下,网络实体42可为图3的存储装置40的实例。

视频解码器202的熵解码器401对码流进行熵解码以产生经量化的系数和一些语法元素。熵解码器401将语法元素转发到滤波器404。视频解码器202可接收在视频条带层级和/或图像块层级处的语法元素。

反量化器402将在码流中提供且由熵解码器401解码的经量化变换系数逆量化,即去量化。逆量化过程可包括:使用由视频编码器102针对视频条带中的每个图像块计算的量化参数来确定应施加的量化程度以及同样地确定应施加的逆量化程度。反变换器403将逆变换应用于变换系数,例如逆dct、逆整数变换或概念上类似的逆变换过程,以便产生像素域中的残差块。

在预测处理单元406产生用于当前图像块或当前图像块的子块的预测图像块之后,视频解码器202通过将来自反变换器403的残差块与由预测处理单元406产生的对应预测图像块求和以得到重建的块,即经解码图像块。求和器409(亦称为重建器409)表示执行此求和操作的组件。在需要时,还可使用滤波器(在解码环路中或在解码环路之后)使像素转变平滑或者以其它方式改进视频质量。滤波器404可以为一或多个环路滤波器,例如去块效应滤波器、自适应环路滤波器(alf)以及样本自适应偏移(sao)滤波器等。

应当理解的是,视频解码器202的其它结构变化可用于码流的解码。例如,对于某些图像块或者图像帧,视频解码器202的熵解码器401没有解码出经量化的系数,相应地不需要经反量化器402和反变换器403处理。例如,视频解码器202中反量化器402和反变换器403可以合并在一起。

以下,结合上述图3示出的视频编解码系统、图4示出的视频编码器102以及图5示出的视频解码器202对本申请提供的候选运动信息列表的构建方法、帧间预测方法进行详细描述。

图6为本申请实施例中候选运动信息列表的构建方法的流程示意图。图6所示的方法由构建装置执行。该构建装置可以是图3中的视频解码器202或视频编码器102。

如图6所示,本申请实施例中候选运动信息列表的构建方法可以包括下述步骤:

s601、构建装置根据第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程,直到候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者直到遍历完所有相邻图像块。

其中,第一处理过程为:对于第i个相邻图像块而言,在第i个相邻图像块为仿射编码块的情况下,构建装置判断第i个相邻图像块与已经存储于候选运动信息列表中的候选运动信息组合是否来自于同一编码单元;若候选运动信息列表中不存在来自于第i个相邻图像块归属的编码单元的候选运动信息组合,构建装置根据第i个相邻图像块的x个控制点的运动信息,确定出当前图像块的x个控制点的候选运动信息,并将包括当前图像块的x个控制点的候选运动信息的候选运动信息组合存储于候选运动信息列表中,i∈[1,n],n为当前图像块的相邻图像块的数量,x和n均为大于或等于2的整数。

可选的,上述“构建装置判断第i个相邻图像块与已经存储于所述候选运动信息列表中的候选运动信息组合是否来自于同一编码单元”的方法为:构建装置判断第i个相邻图像块所归属的编码单元的左上顶点的信息是否与目标编码单元的左上顶点的信息相同,目标编码单元为:计算已经存储于候选运动信息列表中的候选运动信息组合时,采用的相邻图像块所归属的编码单元。这里,左上顶点的信息可以为左上顶点的位置信息。

示例性的,若当前图像块的相邻图像块有图像块a0和图像块b1,图像块b1所归属的编码单元为cu2,cu2的左上顶点的坐标为(x0,y0),图像块a0所归属的编码单元为cu1,cu1的左上顶点的坐标为(x1,y1)。若此时候选运动信息列表为空,则构建装置根据图像块b1的控制点的运动信息确定当前图像块的控制点的候选运动信息,并将该候选运动信息存储于候选运动信息列表中。若此时候选运动信息列表不为空,已经存储有根据图像块a0的控制点的运动信息确定出的候选运动信息,则构建装置判断是否满足x1≠x0||y1≠y0。若构建装置确定x1≠x0||y1≠y0,则构建装置根据图像块b1的控制点的运动信息确定当前图像块的控制点的候选运动信息,并将该候选运动信息存储于候选运动信息列表中。否则,构建装置将遍历下一相邻图像块。

可选的,构建装置可以生成用于存储目标编码单元的左上顶点的坐标的坐标列表,这样,构建装置直接判断坐标列表中是否存在第i个相邻图像块所归属的编码单元的左上顶点的信息即可。构建装置还可以将目标编码单元的左上顶点的坐标存储于候选运动信息列表中,本申请实施例对此不作具体限定。

需要说明的是,构建装置还可以采用其他方法判断第i个相邻图像块与已经存储于所述候选运动信息列表中的候选运动信息组合是否来自于同一编码单元,本申请实施例对此不作具体限定。例如,构建装置可以为每个编码单元分配一个计数值,或者分配一个唯一的id,这样,构建装置通过比较计数值或者根据id进行判断。

可以看出,第一处理过程与上述继承的控制点运动矢量预测方法类似。不同的是,在第一处理过程中,构建装置通过判断所述第i个相邻图像块与已经存储于所述候选运动信息列表中的候选运动信息组合是否来自于同一编码单元,以确定是否需要根据第i个相邻图像块的x个控制点的运动信息,确定当前图像块的x个控制点的候选运动信息,进而将包括当前图像块的x个控制点的候选运动信息的候选运动信息组合存储于候选运动信息列表中。在每次向候选运动信息列表中加入新的候选运动信息时,构建装置不再需要判断候选运动信息列表中是否存在所述新的候选运动信息,有效的降低了计算的复杂度,减少了时延。

本申请实施例中的第一预设数值可以为最大继承列表长度maxnuminheritmrgcand,该第一预设数值为小于预设长度值的整数,如1,2,3等,预设长度值为候选运动信息的最大长度值。构建装置按照第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程。若候选运动信息列表中候选运动信息组合的数量达到第一预设数值,构建装置中止候选运动信息列表的生成,否则继续遍历下一个相邻图像块。

本申请实施例中的构建装置采用第一处理过程遍历相邻图像块的次数受到第一预设数值的限制,也就是说,减少了继承的控制点运动矢量预测方法的执行次数。由于继承的控制点运动矢量预测方法的计算复杂度较高,因此,在减少了继承的控制点运动矢量预测方法的执行次数后,有效的降低了计算的复杂度。

s602、在执行s601之后,构建装置根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中,直到候选运动信息列表中候选运动信息组合的数量等于预设长度值或者直到遍历完所有可选运动信息组合。

其中,预设长度值大于第一预设数值,可选运动信息组合包括当前图像块的至少两个控制点的可选运动信息,控制点的可选运动信息为与当前图像块相邻、且采用帧间编码的图像块的运动信息。

具体的,在候选运动信息列表中候选运动信息组合的数量等于第一预设数值后,构建装置确定当前图像块中每个控制点的可选运动信息,并根据得到的控制点的可选运动信息进行组合,得到至少两个可选运动信息组合。

进一步地,构建装置执行下述三种可选的实现方式中的任意一种可选的实现方式。

在第一种可选的实现方式中,构建装置生成至少两个可选运动信息组合,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中的方法可以参考上述步骤a和步骤b的描述。

在第二种可选的实现方式中,在生成至少两个可选运动信息组合后,构建装置依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中的方法可以为:对于每个可选运动信息组合,构建装置判断该可选运动信息组合中的所有控制点的参考帧索引是否相同;在该可选运动信息组合中的所有控制点的参考帧索引相同的情况下,构建装置将该可选运动信息组合存储于候选运动信息列表中。相比于上述步骤a和步骤b,构建装置未进行组合内控制点的运动矢量的判断以及运动矢量的缩放,解决了运动矢量的缩放所导致的计算复杂度较高的问题。也就是说,这种场景中,满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同。

在第三种可选的实现方式中,在生成至少两个可选运动信息组合后,构建装置依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中的方法可以为:对于每个可选运动信息组合,构建装置判断该可选运动信息组合中的所有控制点的参考帧索引是否相同;在该可选运动信息组合中的所有控制点的参考帧索引相同的情况下,构建装置判断该可选运动信息组合中的所有控制点的可选运动矢量是否相同;若该可选运动信息组合中的所有控制点的可选运动矢量不相同,构建装置将该可选运动信息组合存储于候选运动信息列表中。相比于上述步骤a和步骤b,构建装置未进行运动矢量的缩放,解决了运动矢量的缩放所导致的计算复杂度较高的问题。也就是说,这种场景中,满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同、且至少两个控制点的可选运动矢量不相同。

可选的,构建装置生成的可选运动信息组合还可以至少包括第一控制点的可选运动信息和第二控制点的可选运动信息,其中,第一控制点和第二控制点为当前图像块的相邻控制点。也就是说,本申请实施例中的可选运动信息组合不可以仅包括当前图像块的对角控制点的可选运动信息。

示例性的,结合上述步骤b,本申请中的构建装置可以将任意两个控制点的可选运动矢量进行组合,用于构建4参数仿射运动模型。两个控制点的可选运动矢量的组合方式可以为(vcp1,vcp2),(vcp2,vcp4),(vcp1,vcp3),(vcp3,vcp4)。示例性的,本申请实施例采用vcp1和vcp2构建的4参数仿射运动模型,记做affine(vcp1,vcp2)。

构建装置将任意三个控制点的可选运动矢量进行组合,用于构建6参数仿射运动模型。三个控制点的可选运动矢量的组合方式可以为(vcp1,vcp2,vcp4),(vcp1,vcp2,vcp3),(vcp2,vcp3,vcp4),(vcp1,vcp3,vcp4)。示例性的,本申请实施例采用vcp1、vcp2和vcp3构建的6参数仿射运动模型,记做affine(vcp1,vcp2,vcp3)。

构建装置将上述四个控制点的可选运动矢量进行组合,用于构建8参数仿射运动模型。示例性的,本申请实施例采用vcp1、vcp2、vcp3和vcp4构建的8参数双线性模型,记做bilinear(vcp1,vcp2,vcp3,vcp4)。

构建装置按照下述顺序依次对每个可选运动信息组合中的参考帧索引和可选运动矢量进行判断:affine(vcp1,vcp2,vcp3)→affine(vcp1,vcp2,vcp4)→affine(vcp1,vcp3,vcp4)→affine(vcp2,vcp3,vcp4)→affine(vcp1,vcp2)→affine(vcp1,vcp3)→affine(vcp2,vcp4)→affine(vcp3,vcp4)。

s603、若在遍历完所有可选运动信息组合后,候选运动信息列表中候选运动信息的数量小于预设长度值,构建装置填充第一预设候选运动信息组合,直至候选运动信息列表中候选运动信息的数量等于预设长度值。

本申请实施例通过设置第一预设数值,有效的限制了执行第一处理过程的次数,降低了计算的复杂度,减少了时延。进一步地,可选运动信息组合可以至少包括两个相邻控制点的运动信息,构建装置也不再执行运动矢量的缩放,进一步降低了计算的复杂度,减少了时延。

图7为本申请实施例中候选运动信息列表的构建方法的另一流程示意图。图7所示的方法由构建装置执行。该构建装置可以是图3中的视频解码器202或视频编码器102。

如图7所示,本申请实施例中候选运动信息列表的构建方法可以包括下述步骤:

s701、构建装置根据第一预设顺序,依次对当前图像块的每个相邻图像块执行第一处理过程,直到第一候选运动信息列表中候选运动信息组合的数量等于第一预设数值或者直到遍历完所有相邻图像块。

s701可以参考上述s601的描述,此处不再进行详细赘述。

s702、构建装置根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于第二候选运动信息列表中,直到第二候选运动信息列表中候选运动信息组合的数量等于第二预设数值或者直到遍历完所有可选运动信息组合。

可选运动信息组合包括当前图像块的至少两个控制点的可选运动信息,控制点的可选运动信息为与当前图像块相邻、且采用帧间编码的图像块的运动信息。

满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同。或者,满足预设条件的可选运动信息组合中的所有控制点的参考帧索引相同、且至少两个控制点的可选运动矢量不相同。

s702可以参考上述s602中第二种可选的实现方式或第三种可选的实现方式的描述,此处不再进行详细赘述。

s703、构建装置根据预设规则,将第一候选运动信息列表和第二候选运动信息列表合并,以获取第三候选运动信息列表。

可选的,构建装置可以将第一候选运动信息列表中的(部分)候选运动信息置于第二候选运动信息列表中的(部分)候选运动信息之前,也可以置于第二候选运动信息列表中的(部分)候选运动信息之后,本申请实施例对此不作具体限定。

可选的,构建装置在合并第一候选运动信息列表和第二候选运动信息列表时,可以直接合并,也可以判断两个列表中是否存在相同的候选运动信息组合,若存在相同的候选运动信息组合,构建装置将重复的候选运动信息组合删除。

这里以构建装置将第一候选运动信息列表中的全部候选运动信息置于第二候选运动信息列表中的全部候选运动信息之前为例进行说明。

具体的,构建装置将第一候选运动信息列表中的全部候选运动信息置于第二候选运动信息列表中的全部候选运动信息之前,生成目标候选运动信息列表。然后,构建装置判断目标候选运动信息列表中的候选运动信息的数量是否小于预设长度值。若目标候选运动信息列表中候选运动信息的数量小于预设长度值,构建装置填充第二预设候选运动信息组合,直至目标候选运动信息列表中候选运动信息的数量等于预设长度值,这样,构建装置将填充后的目标候选运动信息列表作为第三候选运动信息列表。若目标候选运动信息列表中候选运动信息的数量等于预设长度值,构建装置将目标候选运动信息列表作为第三候选运动信息列表。若目标候选运动信息列表中候选运动信息的数量大于预设长度值,构建装置删除目标候选运动信息列表中的至少一个候选运动信息,使得删除后的目标候选运动信息列表中候选运动信息的数量等于预设长度值,并将删除后的目标候选运动信息列表作为第三候选运动信息列表。

当然,除了上述示例,构建装置还可根据预设长度值,从第一候选运动信息列表中选取a个候选运动信息组合,并从第二候选运动信息列表中选取b个候选运动信息组合,以生成包括a个候选运动信息组合以及b个候选运动信息组合的第三候选运动信息组合。这里,a与b的和等于预设长度值。本申请实施例对第三候选运动信息列表的生成方法不作具体限定。

需要说明的是,构建装置可以先执行s701,后执行s702,也可以先执行s702,后执行s701,还可以同时执行s701和s702,本申请实施例对此不作具体限定。

构建装置分别构建第一候选运动信息列表和第二候选运动信息列表,然后合并该第一候选运动信息列表和该第二候选运动信息列表。在构建第一候选运动信息列表和第二候选运动信息列表的过程中,构建装置均限定了列表的长度,有效的降低了计算的复杂度,减少了时延。

图8为本申请实施例中候选运动信息列表的构建方法的另一流程示意图。图8所示的方法由构建装置执行。该构建装置可以是图3中的视频解码器202或视频编码器102。

如图8所示,本申请实施例中候选运动信息列表的构建方法可以包括下述步骤:

s800、构建装置根据第一预设顺序,遍历当前图像块的每个相邻图像块,以生成包括至少一个候选运动信息组合的候选运动信息列表。

需要说明的是,在遍历当前图像块的相邻位置的过程中,还需要判断遍历到的相邻位置所在的图像块是否为仿射编码块,如果是仿射编码块的话,那么就可以获取该仿射编码块,并且根据该仿射编码块的控制点的运动信息来推导当前图像块的候选的控制点运动信息。否则,如果某个相邻位置所在的图像块为平动块的话,就无法根据平动块来推导当前图像块的候选的控制点运动信息了。因此,在步骤s800中,如果某个相邻位置所在的图像块为平动块,那么要继续遍历当前图像块的相邻位置,直到遍历到的相邻位置所在的图像块为仿射编码块。

该候选运动信息组合包括当前图像块的x个控制点的候选运动信息,x为大于或等于2的整数。

s800的过程可以参考上述继承的控制点运动矢量预测方法的描述或者参考上述图1的描述,此处不再进行详细赘述。

s801、在遍历完当前图像块的所有相邻图像块后,构建装置根据第二预设顺序,依次遍历至少两个可选运动信息组合,并将满足预设条件的可选运动信息组合存储于候选运动信息列表中,直到候选运动信息列表中候选运动信息组合的数量等于预设长度值或者直到遍历完所有可选运动信息组合。

s801可以参考上述s602中第二种可选的实现方式或第三种可选的实现方式的描述,此处不再进行详细赘述。

s802、若在遍历完所有可选运动信息组合后,候选运动信息列表中候选运动信息的数量小于预设长度值,构建装置填充第三预设候选运动信息组合,直至候选运动信息列表中候选运动信息的数量等于预设长度值。

s802可以参考上述s603的描述,此处不再进行详细赘述。

对于可选运动信息组合的处理,构建装置仅仅对可选运动信息组合中的所有控制点的参考帧索引以及所有控制点的可选运动矢量进行判断,并根据判断结果确定是否将可选运动信息组合存储于候选运动信息列表中,无需进行运动矢量的缩放,也无需先计算得到新的候选运动信息组合,再判断候选运动信息列表中是否存在相同的运动信息,有效的降低了计算的复杂度,减小了时延。

此外,本申请实施例还提供一种帧间预测方法。具体的,帧间预测装置获取并解析码流,以获取第一索引值和运动信息差值,其中,第一索引值为当前图像块的控制点的运动信息预测值在候选运动信息列表中的索引值,候选运动信息列表为上述构建装置采用如上述图6~图8中任意一个附图所示的构建方法生成的;帧间预测装置根据第一索引值,从候选运动信息列表中获取控制点的运动信息预测值;帧间预测装置根据控制点的运动信息预测值和运动信息差值,确定控制点的运动信息;帧间预测装置根据控制点的运动信息,确定当前图像块的预测像素。

容易理解的是,该帧间预测方法实质上为基于本申请实施例提供的构建方法生成候选运动信息列表,解码端根据该候选运动信息列表采用仿射amvp预设模式进行的帧间预测。

本申请实施例还提供一种帧间预测方法。具体的,帧间预测装置获取并解析码流,以获取第二索引值,第二索引值为当前图像块的控制点的运动信息在候选运动信息列表中的索引值,候选运动信息列表为上述构建装置采用如上述图6~图8中任意一个附图所示的构建方法生成的;帧间预测装置根据第二索引值,从候选运动信息列表中获取控制点的运动信息;帧间预测装置根据控制点的运动信息,确定当前图像块的预测像素。

容易理解的是,该帧间预测方法实质上为基于本申请实施例提供的构建方法生成候选运动信息列表,解码端根据该候选运动信息列表采用仿射融合模式进行的帧间预测。

本申请实施例提供一种候选运动信息列表的构建装置,该构建装置可以为视频解码器,也可以为视频编码器,还可以为解码器。具体的,候选运动信息列表的构建装置用于执行以上候选运动信息列表的构建方法中的构建装置所执行的步骤。本申请实施例提供的构建装置可以包括相应步骤所对应的模块。

本申请实施例可以根据上述方法示例对候选运动信息列表的构建装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图9示出上述实施例中所涉及的候选运动信息列表的构建装置的一种可能的结构示意图。如图9所示,候选运动信息列表的构建装置9包括第一处理单元90、第二处理单元91、填充单元92、合并单元93和存储单元94。

第一处理单元90用于支持该候选运动信息列表的构建装置执行上述实施例中的s601、s701、s801等,和/或用于本文所描述的技术的其它过程。

第二处理单元91用于支持该候选运动信息列表的构建装置执行上述实施例中的s602、s702、s802等,和/或用于本文所描述的技术的其它过程。

填充单元92用于支持该候选运动信息列表的构建装置执行上述实施例中的s603、s802等,和/或用于本文所描述的技术的其它过程。

合并单元93用于支持该候选运动信息列表的构建装置执行上述实施例中的s703等,和/或用于本文所描述的技术的其它过程。

存储单元94可以用于存储该候选运动信息列表的构建装置的程序代码和数据,也可以用于存储候选运动信息列表。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在采用集成的单元的情况下,本申请实施例提供的候选运动信息列表的构建装置的结构示意图如图10所示。在图10中,候选运动信息列表的构建装置10包括:处理模块100和通信模块101。处理模块100用于对候选运动信息列表的构建装置的动作进行控制管理,例如,执行上述第一处理单元90、第二处理单元91、填充单元92和合并单元93执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信模块101用于支持候选运动信息列表的构建装置与其他设备之间的交互。如图10所示,候选运动信息列表的构建装置还可以包括存储模块102,存储模块102用于存储候选运动信息列表的构建装置的程序代码和数据,例如存储上述存储单元94所保存的内容。

其中,处理模块100可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块101可以是收发器、rf电路或通信接口等。存储模块102可以是存储器。

其中,上述方法实施例涉及的各场景的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

上述候选运动信息列表的构建装置9和候选运动信息列表的构建装置10均可执行上述图6~图8所示的候选运动信息列表的构建方法,候选运动信息列表的构建装置9和候选运动信息列表的构建装置10具体可以是视频解码装置或者其他具有视频编解码功能的设备。候选运动信息列表的构建装置9和候选运动信息列表的构建装置10可以用于在解码过程中进行图像预测。

本申请实施例提供一种帧间预测装置,该帧间预测装置可以为视频解码器,也可以为视频编码器,还可以为解码器。具体的,帧间预测装置用于执行以上帧间预测方法中的帧间预测装置所执行的步骤。本申请实施例提供的帧间预测装置可以包括相应步骤所对应的模块。

本申请实施例可以根据上述方法示例对帧间预测装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图11示出上述实施例中所涉及的帧间预测装置的一种可能的结构示意图。如图11所示,帧间预测装置11包括获取单元110、确定单元111和存储单元112。

获取单元110用于支持该帧间预测装置执行上述“获取并解析码流,以获取第一索引值和运动信息差值”、“根据第一索引值,从候选运动信息列表中获取控制点的运动信息预测值”、“获取并解析码流,以获取第二索引值”、“根据第二索引值,从候选运动信息列表中获取控制点的运动信息”等,和/或用于本文所描述的技术的其它过程。

确定单元111用于支持该帧间预测装置执行上述“根据获取到的控制点的运动信息预测值和运动信息差值,确定控制点的运动信息”、“根据控制点的运动信息,确定当前图像块的预测像素”、“根据控制点的运动信息,确定当前图像块的预测像素”等,和/或用于本文所描述的技术的其它过程。

存储单元112可以用于存储该帧间预测装置的程序代码和数据。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在采用集成的单元的情况下,本申请实施例提供的帧间预测装置的结构示意图如图12所示。在图12中,帧间预测装置12包括:处理模块120和通信模块121。处理模块120用于对帧间预测装置的动作进行控制管理,例如,执行上述获取单元110和确定单元111执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信模块121用于支持帧间预测装置与其他设备之间的交互。如图12所示,帧间预测装置还可以包括存储模块122,存储模块122用于存储帧间预测装置的程序代码和数据,例如存储上述存储单元112所保存的内容。

其中,处理模块120可以是处理器或控制器,例如可以是cpu,通用处理器,dsp,asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块121可以是收发器、rf电路或通信接口等。存储模块122可以是存储器。

其中,上述方法实施例涉及的各场景的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

上述帧间预测装置11和帧间预测装置12均可执行上述帧间预测方法,帧间预测装置11和帧间预测装置12具体可以是视频解码装置或者其他具有视频编解码功能的设备。帧间预测装置11和帧间预测装置12可以用于在解码过程中进行图像预测。

本申请还提供一种终端,该终端包括:一个或多个处理器、存储器、通信接口。该存储器、通信接口与一个或多个处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括指令,当一个或多个处理器执行指令时,终端执行本申请实施例的候选运动信息列表的构建方法或帧间预测方法。

这里的终端可以是视频显示设备,智能手机,便携式电脑以及其它可以处理视频或者播放视频的设备。

本申请还提供一种视频解码器,包括非易失性存储介质,以及中央处理器,所述非易失性存储介质存储有可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述可执行程序以实现本申请实施例的候选运动信息列表的构建方法或帧间预测方法。

本申请还提供一种解码器,所述解码器包括本申请实施例中的候选运动信息列表的构建装置(候选运动信息列表的构建装置9或候选运动信息列表的构建装置10)、帧间预测装置(帧间预测装置11或帧间预测装置12)以及重建模块,其中,所述重建模块用于根据所述帧间预测装置得到的预测图像素确定当前图像块的重建像素值。

本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括一个或多个程序代码,该一个或多个程序包括指令,当终端中的处理器在执行该程序代码时,该终端执行如图6~图8中任一附图所示的候选运动信息列表的构建方法或执行上述帧间预测方法。

在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;终端的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得终端实施执行如图6~图8中任一附图所示的候选运动信息列表的构建方法或执行上述帧间预测方法。

在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。

所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘,硬盘、磁带)、光介质(例如,dvd)或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

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

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

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

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

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

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