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

编码方法和编码装置、解码方法和解码装置以及存储介质

文献发布时间:2024-04-18 19:58:30


编码方法和编码装置、解码方法和解码装置以及存储介质

(本申请是申请日为2019年10月18日、申请号为2019800679757、发明名称为“视频编码和解码”的申请的分案申请。)

技术领域

本发明涉及视频编码和解码。

背景技术

近来,联合视频专家组(JVET)(由MPEG和ITU-T第16研究组VCEG组成的合作团队)开始研究一种称为多功能视频编码(VVC)的新视频编码标准。VVC的目标是在现有HEVC标准上提供压缩性能的显著改进(即,通常是以前的两倍)并在2020年完成。主要目标应用和服务包括但不限于360度和高动态范围(HDR)视频。总之,JVET使用独立测试实验室进行的正式主观测试评价了来自32个组织的反馈。一些建议表明,当与使用HEVC相比时,压缩效率通常提高40%或更多。在超高清(UHD)视频测试材料上显示了特定的效果。因此,针对最终标准,我们可以预期压缩效率的提高将远远超过作为目标的50%。

JVET探索模型(JEM)使用所有HEVC工具。HEVC中不存在的另一工具是在应用运动补偿时使用“仿射运动模式”。HEVC中的运动补偿仅限于平移,但实际上存在许多种运动,例如放大/缩小、旋转、透视运动和其它不规则运动。当使用仿射运动模式时,将更复杂的变换应用于块以尝试更准确地预测这些形式的运动。因此,将期望能够在实现良好编码效率但复杂性较低的同时是否可以使用仿射运动模式。

HEVC中不存在的另一工具使用替代性时间运动矢量预测(ATMVP)。替代性时间运动矢量预测(ATMVP)是特定运动补偿。代替仅考虑来自时间参考帧的当前块的一个运动信息,而是考虑各并置块的各运动信息。因此,该时间运动矢量预测利用各子块的相关运动信息对当前块进行分割。在当前的VTM(VVC测试模型)参考软件中,作为插入合并候选列表中的合并候选来用信号通知ATMVP。在SPS级别处启用ATMVP时,合并候选的最大数量增加一。因此,考虑6个候选而不是禁用此模式时的5个。

这些以及稍后描述的其它工具带来了与编码效率和用于用信号通知从候选列表(例如,从与合并模式编码一起使用的合并候选列表)中选择哪个候选的索引(例如,合并索引)的编码的复杂性有关的问题。

发明内容

因此,期望针对上述问题中的至少一个问题的解决方案。

根据本发明的第一方面,提供一种对运动矢量预测子索引进行编码的方法,所述方法包括:

生成包括ATMVP候选的运动矢量预测子候选的列表;

选择所述列表中的运动矢量预测子候选之一;以及

使用CABAC编码生成针对所选择的运动矢量预测子候选的运动矢量预测子索引(合并索引),所述运动矢量预测子索引的一个或多个位被旁路CABAC编码。

在一个实施例中,运动矢量预测子索引的除了第一位之外的所有位被旁路CABAC编码。

根据本发明的第二方面,提供一种对运动矢量预测子索引进行解码的方法,所述方法包括:

生成包括ATMVP候选的运动矢量预测子候选的列表;

使用CABAC解码来解码所述运动矢量预测子索引,所述运动矢量预测子索引的一个或多个位被旁路CABAC解码;以及

使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一。

在一个实施例中,运动矢量预测子索引的除了第一位之外的所有位被旁路CABAC解码。

根据本发明的第三方面,提供一种用于对运动矢量预测子索引进行编码的装置,所述装置包括:

用于生成包括ATMVP候选的运动矢量预测子候选的列表的部件;

用于选择所述列表中的运动矢量预测子候选之一的部件;以及

用于使用CABAC编码生成针对所选择的运动矢量预测子候选的运动矢量预测子索引(合并索引)的部件,所述运动矢量预测子索引的一个或多个位被旁路CABAC编码。

根据本发明的第四方面,提供一种用于对运动矢量预测子索引进行解码的装置,所述装置包括:

用于生成包括ATMVP候选的运动矢量预测子候选的列表的部件;

用于使用CABAC解码来解码所述运动矢量预测子索引的部件,所述运动矢量预测子索引的一个或多个位被旁路CABAC解码;以及

用于使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一的部件。

根据本发明的第五方面,提供一种对运动矢量预测子索引进行编码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

选择所述列表中的运动矢量预测子候选之一;以及

使用CABAC编码来生成针对所选择的定运动矢量预测子候选的运动矢量预测子索引,所述运动矢量预测子索引的两个或更多个位共享相同上下文。

在一个实施例中,运动矢量预测子索引的所有位共享相同上下文。

根据本发明的第六方面,提供一种对运动矢量预测子索引进行解码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

使用CABAC解码来解码所述运动矢量预测子索引,所述运动矢量预测子索引的两个或更多个位共享相同上下文;以及

使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一。

在一个实施例中,运动矢量预测子索引的所有位共享相同上下文。

根据本发明的第七方面,提供一种用于对运动矢量预测子索引进行编码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于选择所述列表中的运动矢量预测子候选之一的部件;以及

用于使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引的部件,所述运动矢量预测子索引的两个或更多个位共享相同上下文。

根据本发明的第八方面,提供一种用于对运动矢量预测子索引进行解码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于使用CABAC解码来解码所述运动矢量预测子索引的部件,所述运动矢量预测子索引的两个或更多个位共享相同上下文;以及

用于使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一的部件。

根据本发明的第九方面,提供一种对运动矢量预测子索引进行编码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

选择所述列表中的运动矢量预测子候选之一;以及

使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块的至少一个相邻块的运动矢量预测子索引。

在一个实施例中,运动矢量预测子索引的至少一个位的上下文变量取决于至少两个相邻块的相应运动矢量预测子索引。

在另一实施例中,运动矢量预测子索引的至少一个位的上下文变量取决于在当前块的左侧的左侧相邻块的运动矢量预测子索引和在当前块上方的上方相邻块的运动矢量预测子索引。

在另一实施例中,左侧相邻块是A2并且上方相邻块是B3。

在另一实施例中,左侧相邻块是A1并且上方相邻块是B1。

在另一实施例中,上下文变量具有3个不同的可能值。

另一实施例包括:将至少一个相邻块的运动矢量预测子索引与当前块的运动矢量预测子索引的索引值进行比较,并且根据比较结果来设置所述上下文变量。

另一实施例包括:将至少一个相邻块的运动矢量预测子索引与表示当前块的运动矢量预测子索引中的位或一个所述位的位位置的参数进行比较;并且根据比较结果来设置所述上下文变量。

又一实施例包括:进行第一比较,将第一相邻块的运动矢量预测子索引与表示当前块的运动矢量预测子索引中的位或一个所述位的位位置的参数进行比较;进行第二比较,将第二相邻块的运动矢量预测子索引与所述参数进行比较;并且根据第一比较和第二比较的结果来设置所述上下文变量。

根据本发明的第十方面,提供一种对运动矢量预测子索引进行解码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

使用CABAC解码来解码所述运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块的至少一个相邻块的运动矢量预测子索引;以及

使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一。

在一个实施例中,运动矢量预测子索引的至少一个位的上下文变量取决于至少两个相邻块的相应运动矢量预测子索引。

在另一实施例中,运动矢量预测子索引的至少一个位的上下文变量取决于在当前块的左侧的左侧相邻块的运动矢量预测子索引和在当前块的上方的上方相邻块的运动矢量预测子索引。

在另一实施例中,左侧相邻块是A2并且上方相邻块是B3。

在另一实施例中,左侧相邻块是A1并且上方相邻块是B1。

在另一实施例中,上下文变量具有3个不同的可能值。

另一实施例包括:将至少一个相邻块的运动矢量预测子索引与当前块的运动矢量预测子索引的索引值进行比较,并且根据比较结果来设置所述上下文变量。

另一实施例包括:将至少一个相邻块的运动矢量预测子索引与表示当前块的运动矢量预测子索引中的位或一个所述位的位位置的参数进行比较;并且根据比较结果来设置所述上下文变量。

又一实施例包括:进行第一比较,将第一相邻块的运动矢量预测子索引与表示当前块的运动矢量预测子索引中的位或一个所述位的位位置的参数进行比较;进行第二比较,将第二相邻块的运动矢量预测子索引与所述参数进行比较;并且根据第一比较和第二比较的结果来设置所述上下文变量。

根据本发明的第十一方面,提供一种用于对运动矢量预测子索引进行编码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于选择所述列表中的运动矢量预测子候选之一的部件;以及

用于使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块的至少一个相邻块的运动矢量预测子索引。

根据本发明的第十二方面,提供一种用于对运动矢量预测子索引进行解码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于使用CABAC解码来解码所述运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块的至少一个相邻块的运动矢量预测子索引;以及

用于使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一的部件。

根据本发明的第十三方面,提供一种对运动矢量预测子索引进行编码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

选择所述列表中的运动矢量预测子候选之一;以及

使用CABAC编码来生成所选择的运动矢量预测子候选的运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块的跳过标志。

根据本发明的第十四方面,提供一种对运动矢量预测子索引进行编码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

选择所述列表中的运动矢量预测子候选之一;以及

使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于在解码所述运动矢量预测子索引之前可用的所述当前块的另一参数或句法元素。

根据本发明的第十五方面,提供一种对运动矢量预测子索引进行编码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

选择所述列表中的运动矢量预测子候选之一;以及

使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于作为所述当前块中的运动复杂性的指标的所述当前块的另一参数或句法元素。

根据本发明的第十六方面,提供一种对运动矢量预测子索引进行解码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

使用CABAC解码来解码所述运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块的跳过标志;以及

使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一。

根据本发明的第十七方面,提供一种对运动矢量预测子索引进行解码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

使用CABAC解码来解码所述运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于在解码所述运动矢量预测子索引之前可用的所述当前块的另一参数或句法元素;以及

使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一。

根据本发明的第十八方面,提供一种对运动矢量预测子索引进行解码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

使用CABAC解码来解码所述运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于作为当前块中的运动复杂性的指标的所述当前块的另一参数或句法元素;以及

使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一。

根据本发明的第十九方面,提供一种用于对运动矢量预测子索引进行编码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于选择所述列表中的运动矢量预测子候选之一的部件;以及

用于使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块的跳过标志。

根据本发明的第二十方面,提供一种用于对运动矢量预测子索引进行编码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于选择所述列表中的运动矢量预测子候选之一的部件;以及

用于使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于在对所述运动矢量预测子索引进行解码之前可用的所述当前块的另一参数或句法元素。

根据本发明的第二十一方面,提供一种用于对运动矢量预测子索引进行编码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于选择所述列表中的运动矢量预测子候选之一的部件;以及

用于使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于作为当前块中的运动复杂性的指标的所述当前块的另一个参数或句法元素。

根据本发明的第二十二方面,提供一种用于对运动矢量预测子索引进行解码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于使用CABAC解码来解码所述运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块的跳过标志;以及

用于使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一的部件。

根据本发明的第二十三方面,提供一种用于对运动矢量预测子索引进行解码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于使用CABAC解码来解码所述运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于在解码所述运动矢量预测子索引之前可用的所述当前块的另一参数或句法元素;以及

用于使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一的部件。

根据本发明的第二十四方面,提供一种用于对运动矢量预测子索引进行解码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于使用CABAC解码来解码所述运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于作为当前块中的运动复杂性的指标的所述当前块的另一参数或句法元素;以及

用于使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一的部件。

根据本发明的第二十五方面,提供一种对运动矢量预测子索引进行编码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

选择所述列表中的运动矢量预测子候选之一;以及

使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述列表中的仿射运动矢量预测子候选(如果存在)。

在一个实施例中,上下文变量取决于第一仿射运动矢量预测子候选在所述列表中的位置。

根据本发明的第二十六方面,提供一种对运动矢量预测子索引进行解码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

使用CABAC解码来解码所述运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述列表中的仿射运动矢量预测子候选(如果存在);以及

使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一。

在一个实施例中,上下文变量取决于第一仿射运动矢量预测子候选在所述列表中的位置。

根据本发明的第二十七方面,提供一种用于对运动矢量预测子索引进行编码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于选择所述列表中的运动矢量预测子候选之一的部件;以及

用于使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述列表中的仿射运动矢量预测子候选(如果存在)。

根据本发明的第二十八方面,提供一种用于对运动矢量预测子索引进行解码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于使用CABAC解码来解码所述运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述列表中的仿射运动矢量预测子候选(如果存在);以及

用于使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一的部件。

根据本发明的第二十九方面,提供一种对运动矢量预测子索引进行编码的方法,所述方法包括:

生成包括仿射运动矢量预测子候选的运动矢量预测子候选的列表;

选择所述列表中的运动矢量预测子候选之一;以及

使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块和/或所述当前块的至少一个相邻块的仿射标志。

根据本发明的第三十方面,提供一种对运动矢量预测子索引进行解码的方法,所述方法包括:

生成包括仿射运动矢量预测子候选的运动矢量预测子候选的列表;

使用CABAC解码来解码所述运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块和/或所述当前块的至少一个相邻块的仿射标志;以及

使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一。

根据本发明的第三十一方面,提供一种用于对运动矢量预测子索引进行编码的装置,所述装置包括:

用于生成包括仿射运动矢量预测子候选的运动矢量预测子候选的列表的部件;

用于选择所述列表中的运动矢量预测子候选之一的部件;以及

用于使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块和/或所述当前块的至少一个相邻块的仿射标志。

根据本发明的第三十二方面,提供一种用于对运动矢量预测子索引进行解码的装置,所述装置包括:

用于生成包括仿射运动矢量预测子候选的运动矢量预测子候选的列表的部件;

用于使用CABAC解码来解码所述运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量取决于所述当前块和/或所述当前块的至少一个相邻块的仿射标志;以及

用于使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一的部件。

根据本发明的第三十三方面,提供一种对运动矢量预测子索引进行编码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

选择所述列表中的运动矢量预测子候选之一;以及

使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量是从所述当前块的跳过标志和仿射标志其中至少之一的上下文变量导出的。

根据本发明的第三十四方面,提供一种对运动矢量预测子索引进行解码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

使用CABAC解码来解码所述运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量是从所述当前块的跳过标志和仿射标志其中至少之一的上下文变量导出的;以及

使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一。

根据本发明的第三十五方面,提供一种用于对运动矢量预测子索引进行编码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于选择所述列表中的运动矢量预测子候选之一的部件;以及

用于使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量是从所述当前块的跳过标志和仿射标志其中至少之一的上下文变量导出的。

根据本发明的第三十六方面,提供一种用于对运动矢量预测子索引进行解码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于使用CABAC解码来解码所述运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量是从所述当前块的跳过标志和仿射标志其中至少之一的上下文变量导出的;以及

用于使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一的部件。

根据本发明的第三十七方面,提供一种对运动矢量预测子索引进行编码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

选择所述列表中的运动矢量预测子候选之一;以及

使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量仅具有两个不同的可能值。

根据本发明的第三十八方面,提供一种对运动矢量预测子索引进行解码的方法,所述方法包括:

生成运动矢量预测子候选的列表;

使用CABAC解码来解码所述运动矢量预测子索引,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量仅具有两个不同的可能值;以及

使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一。

根据本发明的第三十九方面,提供一种用于对运动矢量预测子索引进行编码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于选择所述列表中的运动矢量预测子候选之一的部件;以及

用于使用CABAC编码来生成针对所选择的运动矢量预测子候选的运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量仅具有两个不同的可能值。

根据本发明的第四十方面,提供一种用于对运动矢量预测子索引进行解码的装置,所述装置包括:

用于生成运动矢量预测子候选的列表的部件;

用于使用CABAC解码来解码所述运动矢量预测子索引的部件,其中,当前块的运动矢量预测子索引的至少一个位的上下文变量仅具有两个不同的可能值;以及

用于使用所解码的运动矢量预测子索引来识别所述列表中的运动矢量预测子候选之一的部件。

本发明的又一方面涉及程序,这些程序在由计算机或处理器执行时使该计算机或处理器执行前述方面的任何方法。程序可以单独提供,或者可以在载体介质上、由载体介质或在载体介质中承载。载体介质可以是非暂时性的,例如,存储介质,具体为计算机可读存储介质。载体介质也可以是暂时性的,例如信号或其它传输介质。信号可以经由任何合适的网络(包括互联网)来传送。

本发明的又一方面涉及包括根据前述装置方面中的任一个的照相机。在一个实施例中,照相机还包括变焦部件。

根据本发明的第四十一方面,提供一种对运动信息预测子索引进行编码的方法,所述方法包括:生成运动信息预测子候选的列表;当使用仿射合并模式时,选择列表中的运动信息预测子候选之一作为仿射合并模式预测子;当使用非仿射合并模式时,选择列表中的运动信息预测子候选之一作为非仿射合并模式预测子;以及使用CABAC编码来生成针对所选择的运动信息预测子候选的运动信息预测子索引,所述运动信息预测子索引的一个或多个位被旁路CABAC编码。

适当地,CABAC编码包括:在使用仿射合并模式的情况下和在使用非仿射合并模式的情况下针对当前块的运动信息预测子索引的至少一个位使用相同上下文变量。可选系,CABAC编码包括:针对当前块的运动信息预测子索引的至少一个位,在使用仿射合并模式的情况下使用第一上下文变量或者在使用非仿射合并模式的情况下使用第二上下文变量;并且所述方法还包括:在使用仿射合并模式的情况下,将用于指示使用仿射合并模式的数据包括在位流中。

适当地,该方法还包括:将用于确定所生成的运动信息预测子候选列表中能够包括的运动信息预测子候选的最大数量的数据包括在位流中。适当地,运动信息预测子索引的除了第一位之外的所有位被旁路CABAC编码。适当地,第一位被CABAC编码。适当地,在使用仿射合并模式的情况下和在使用非仿射合并模式的情况下,使用相同的句法元素来编码针对所选择的运动信息预测子候选的运动信息预测子索引。

根据本发明的第四十二方面,提供一种对运动信息预测子索引进行解码的方法,所述方法包括:生成运动信息预测子候选的列表;使用CABAC解码来对所述运动信息预测子索引进行解码,所述运动信息预测子索引的一个或多个位被旁路CABAC解码;在使用仿射合并模式的情况下,使用所解码的运动信息预测子索引将所述列表中的运动信息预测子候选之一识别为仿射合并模式预测子;以及在使用非仿射合并模式的情况下,使用所解码的运动信息预测子索引将所述列表中的运动信息预测子候选之一识别为非仿射合并模式预测子。

适当地,CABAC解码包括:在使用仿射合并模式的情况下和在使用非仿射合并模式的情况下,针对当前块的运动信息预测子索引的至少一个位使用相同的上下文变量。可选地,所述方法还包括:从位流获得用于指示使用仿射合并模式的数据,并且CABAC解码包括针对当前块的运动信息预测子索引的至少一个位:在所获得的数据指示使用仿射合并模式的情况下,使用第一上下文变量;以及在所获得的数据指示使用非仿射合并模式的情况下,使用第二上下文变量。

适当地,该方法还包括从位流获得用于指示使用仿射合并模式的数据,其中,在所获得的数据指示使用仿射合并模式的情况下,所生成的运动信息预测子候选的列表包括包括仿射合并模式预测子候选;以及在获得的数据指示使用非仿射合并模式的情况下,所生成的运动信息预测子候选的列表包括非仿射合并模式预测子候选。

适当地,该方法还包括从位流获得用于确定所生成的运动信息预测子候选的列表中能够包括的运动信息预测子候选的最大数量的数据。适当地,运动信息预测子索引的除了第一位之外的所有位被旁路CABAC解码。适当地,第一位被CABAC解码。适当地,解码运动信息预测子索引包括:在使用仿射合并模式的情况下和在使用非仿射合并模式的情况下,从位流解析相同句法元素。适当地,运动信息预测子候选包括用于获得运动矢量的信息。适当地,所生成的运动信息预测子候选的列表包括ATMVP候选。适当地,在使用仿射合并模式的情况下和在使用非仿射合并模式的情况下,所生成的运动信息预测子候选的列表具有能够包括在其中的相同最大数量的运动信息预测子候选。

根据本发明的第四十三方面,提供一种用于对运动信息预测子索引进行编码的装置,所述装置包括:用于生成运动信息预测子候选的列表的部件;用于在使用仿射合并模式的情况下、选择所述列表中的运动信息预测子候选之一作为仿射合并模式预测子的部件;用于在使用非仿射合并模式的情况下、选择所述列表中的运动信息预测子候选之一作为非仿射合并模式预测子的部件;以及用于使用CABAC编码生成针对所选择的运动信息预测子候选的运动信息预测子索引的部件,所述运动信息预测子索引的一个或多个位被旁路CABAC编码。适当地,该装置包括用于进行根据第四十一方面的对运动信息预测子索引进行编码的方法的部件。

根据本发明的第四十四方面,提供一种用于对运动信息预测子索引进行解码的装置,所述装置包括:用于生成运动信息预测子候选的列表的部件;用于使用CABAC解码来对所述运动信息预测子索引进行解码的部件,所述运动信息预测子索引的一个或多个位被旁路CABAC解码;用于在使用仿射合并模式的情况下、使用所解码的运动信息预测子索引将所述列表中的运动信息预测子候选之一识别为仿射合并模式预测子的部件;以及用于在使用非仿射合并模式的情况下、使用所解码的运动信息预测子索引将所述列表中的运动信息预测子候选之一识别为非仿射合并模式预测子的部件。适当地,所述装置包括用于执行根据第四十二方面的对运动信息预测子索引进行解码的方法的部件。

根据本发明的第四十五方面,提供一种对仿射合并模式的运动信息预测子索引进行编码的方法,所述方法包括:生成运动信息预测子候选的列表;选择所述列表中的运动信息预测子候选之一作为仿射合并模式预测子;以及使用CABAC编码生成针对所选择的运动信息预测子候选的运动信息预测子索引,所述运动信息预测子索引的一个或多个位被旁路CABAC编码。

适当地,在使用非仿射合并模式的情况下,该方法还包括选择列表中的运动信息预测子候选之一作为非仿射合并模式预测子。适当地,CABAC编码包括:针对当前块的运动信息预测子索引的至少一个位,在使用仿射合并模式的情况下使用第一上下文变量或在使用非仿射合并模式的情况下使用第二上下文变量;并且所述方法还包括:在使用仿射合并模式的情况下,将用于指示使用仿射合并模式的数据包括在位流中。可选地,CABAC编码包括:在使用仿射合并模式的情况下和在使用非仿射合并模式的情况下,针对当前块的运动信息预测子索引的至少一个位使用相同上下文变量。

适当地,该方法还包括:将用于确定所生成的运动信息预测子候选的列表中能够包括的运动信息预测子候选的最大数量的数据包括在位流中。

适当地,运动信息预测子索引的除了第一位之外的所有位被旁路CABAC编码。适当地,第一位被CABAC编码。适当地,在使用仿射合并模式的情况下和在使用非仿射合并模式的情况下,使用相同的句法元素对针对所选择的运动信息预测子候选的运动信息预测子索引进行编码。

根据本发明的第四十六方面,提供一种对仿射合并模式的运动信息预测子索引进行解码的解码方法,所述方法包括:生成运动信息预测子候选的列表;使用CABAC解码对运动信息预测子索引进行解码,运动信息预测子索引的一个或多个位被旁路CABAC解码;以及在使用仿射合并模式的情况下,使用所解码的运动信息预测子索引来将列表中的运动信息预测子候选之一识别为仿射合并模式预测子。

适当地,在使用非仿射合并模式的情况下,该方法还包括:使用所解码的运动信息预测子索引来将列表中的运动信息预测子候选之一识别为非仿射合并模式预测子。适当地,该方法还包括:从位流中获得用于指示使用仿射合并模式的数据,并且CABAC解码包括针对当前块的运动信息预测子索引的至少一个位:在所获得的数据指示使用仿射合并模式的情况下,使用第一上下文变量;以及在所获得的数据指示使用非仿射合并模式的情况下,使用第二上下文变量。可选地,CABAC解码包括:在使用仿射合并模式的情况下和在使用非仿射合并模式的情况下,针对当前块的运动信息预测子索引的至少一个位使用相同的上下文变量。

适当地,该方法还包括:从位流获得用于指示使用仿射合并模式的数据,其中,在所获得的数据指示使用仿射合并模式的情况下,所生成的运动信息预测子候选的列表包括仿射合并模式预测子候选,以及在所获得的数据指示使用非仿射合并模式的情况下,所生成的运动信息预测子候选的列表包括非仿射合并模式预测子候选。

适当地,对运动信息预测子索引进行解码包括:在使用仿射合并模式的情况下和在使用非仿射合并模式的情况下,从位流解析相同的句法元素。适当地,该方法还包括:从位流获得用于确定所生成的运动信息预测子候选的列表中能够包括的运动信息预测子候选的最大数量的数据。适当地,运动信息预测子索引的除了第一位之外的所有位被旁路CABAC解码。适当地,第一位被CABAC解码。适当地,运动信息预测子候选包括用于获得运动矢量的信息。适当地,所生成的运动信息预测子候选的列表包括ATMVP候选。适当地,在使用仿射合并模式的情况下和在使用非仿射合并模式的情况下,所生成的运动信息预测子候选的列表具有能够包括在其中的运动信息预测子候选的相同最大数量。

根据本发明的第四十七方面,提供一种用于对仿射合并模式的运动信息预测子索引进行编码的装置,所述装置包括:用于生成运动信息预测子候选的列表的部件;用于选择所述列表中的运动信息预测子候选之一作为仿射合并模式预测子的部件;以及用于使用CABAC编码来生成针对所选择的运动信息预测子候选的运动信息预测子索引的部件,所述运动信息预测子索引的一个或多个位被旁路CABAC编码。适当地,该装置包括用于执行根据第四十五方面的对运动信息预测子索引进行编码的方法的部件。

根据本发明的第四十八方面,提供一种用于对仿射合并模式的运动信息预测子索引进行解码的装置,所述装置包括:用于生成运动信息预测子候选的列表的部件;用于使用CABAC解码来解码运动信息预测子索引的部件,所述运动信息预测子索引的一个或多个位被旁路CABAC解码;以及用于在使用仿射合并模式的情况下、使用所解码的运动信息预测子索引将列表中的运动信息预测子候选之一识别为仿射合并模式预测子的部件。适当地,该装置包括用于执行根据第四十六方面的对运动信息预测子索引进行解码的方法的部件。

在一个实施例中,照相机适于指示所述变焦部件何时可操作并且根据变焦部件可操作的所述指示来用信号通知仿射模式。

在另一实施例中,照相机还包括平摇部件。

在另一实施例中,照相机适于指示所述平摇部件何时可操作并且根据平摇部件可操作的所述指示来用信号通知仿射模式。

根据本发明的又一方面,提供一种包括体现上述照相机方面中的任一个的照相机的移动装置。

在一个实施例中,移动装置还包括适于感测移动装置的定向变化的至少一个位置传感器。

在一个实施例中,移动装置适于根据所述感测移动装置的定向变化来用信号通知仿射模式。

本发明的其它特征由其它独立和从属权利要求表征。

本发明的一个方面中的任何特征可以以任何适当的组合应用于本发明的其它方面。特别地,方法方面可以应用于设备方面,反之亦然。

此外,以硬件实现的特征可以以软件实现,反之亦然。这里对软件和硬件特征的任何引用都应相应地进行解释。

如这里所述的任何设备特征也可以被提供为方法特征,反之亦然。如这里所使用的,装置加功能特征就其相应结构方面可以被替代地表达,诸如适当编程的处理器和相关联的存储器等。

还应当理解,可以独立地实现、提供和/或使用在本发明的任何方面中描述和定义的各种特征的特定组合。

附图说明

现在将通过示例的方式参考附图,其中:

图1是用于说明HEVC中使用的编码结构的图;

图2是示意性例示可以实现本发明的一个或多个实施例的数据通信系统的框图;

图3是例示可以实现本发明的一个或多个实施例的处理装置的组件的框图;

图4是例示根据本发明实施例的编码方法的步骤的流程图;

图5是例示根据本发明实施例的解码方法的步骤的流程图;

图6a和6b例示可用于生成运动矢量预测子的空间和时间块;

图7示出AMVP预测子集合导出处理的简化步骤;

图8是合并模式的运动矢量导出处理的示意图;

图9例示当前块的分割和时间运动矢量预测;

图10(a)例示用于HEVC的合并索引的编码,或者未在SPS级别启用ATMVP时的编码;

图10(b)例示在SPS级别启用ATMVP时的合并索引的编码;

图11(a)例示简单的仿射运动场;

图11(b)例示更复杂的仿射运动场;

图12是与编码模式有关的一些句法元素的部分解码处理的流程图;

图13是例示合并候选导出的流程图;

图14是例示本发明的第一实施例的流程图;

图15是本发明的第十二实施例中与编码模式有关的一些句法元素的部分解码处理的流程图;

图16是例示本发明的第十二实施例中生成合并候选列表的流程图;

图17是用于说明适合于在本发明的实施例中使用的CABAC编码器的框图;

图18是用于实现本发明的一个或多个实施例的通信系统的示意性框图;

图19是计算装置的示意性框图;

图20是例示网络照相机机系统的图;

图21是例示智能电话的图;

图22是根据第十六实施例的与编码模式有关的一些句法元素的部分解码处理的流程图;

图23是例示用于合并模式和仿射合并模式这两者的单个索引信号通知方案的流程图;以及

图24是例示用于仿射合并模式的仿射合并候选导出处理的流程图。

具体实施方式

以下描述的本发明的实施例涉及改善使用CABAC对索引的编码和解码。应当理解,根据本发明的替代实施例,用于改善功能上类似于CABAC的其它基于上下文的算术编码方案的实现也是可能的。在描述实施例之前,将描述视频编码和解码技术以及相关的编码器和解码器。

图1涉及在高效率视频编码(HEVC)视频标准中使用的编码结构。视频序列1由一系列数字图像i组成。各个这样的数字图像由一个或多个矩阵表示。矩阵系数表示像素。

序列的图像2可以被分割成片(slice)3。在一些情况下,一片可以构成图像整体。这些片被分割成非重叠编码树单元(CTU)。编码树单元(CTU)是高效率视频编码(HEVC)视频标准的基本处理单元,并且概念性地在结构上与若干先前视频标准中使用的宏块单元相对应。CTU有时也被称为最大编码单元(LCU)。CTU具有亮度和色度分量部分,各个分量部分被称为编码树块(CTB)。这些不同的颜色分量未在图1中示出。

对于HEVC,CTU通常大小为64像素×64像素,但对于VVC,该大小可以为128像素×128像素。可以使用四叉树分解进而将各CTU迭代地分割成较小的可变大小编码单元(CU)5。

编码单元是基本编码元素,并且由被称为预测单元(PU)和变换单元(TU)的两种子单元构成。PU或TU的最大大小等于CU大小。预测单元与CU的用于像素值的预测的分区相对应。将CU分区成PU的各种不同分区是可能的,如6所示,包括分成4个正方形PU的分区、以及分成2个矩形PU的两个不同分区。变换单元是使用DCT进行空间变换的基本单元。CU可以基于四叉树表示7分区成TU。

各片嵌入一个网络抽象层(NAL)单元中。另外,视频序列的编码参数存储在称为参数集的专用NAL单元中。在HEVC和H.264/AVC中,采用两种参数集NAL单元:第一,序列参数集(SPS)NAL单元,其收集在整个视频序列期间不变的所有参数。通常,它处理编码配置文件、视频帧的大小和其它参数。第二,图片参数集(PPS)NAL单元,其包括可以从序列的一个图像(或帧)改变为其它图像(或帧)的参数。HEVC还包括视频参数集(VPS)NAL单元,其包含描述位流的总体结构的参数。VPS是HEVC中定义的新类型的参数集,并且应用于位流的所有层。层可以包含多个时间子层,并且所有版本1的位流限定于单个层。HEVC具有用于可缩放性和多视图的某些分层扩展,并且这些扩展将允许具有向后兼容的版本1的基础层的多个层。

图2和图18例示可以实现本发明的一个或多个实施例的数据通信系统。数据通信系统包括传输装置191(例如服务器201),其可操作以经由数据通信网络200将数据流(例如位流101)的数据包传输至接收装置195(例如客户端终端202)。数据通信网络200可以是广域网(WAN)或局域网(LAN)。这种网络可以是例如无线网络(Wifi/802.11a或b或g)、以太网网络、互联网网络或由若干不同网络组成的混合网络。在本发明的特定实施例中,数据通信系统可以是数字电视广播系统,其中服务器201将相同的数据内容发送到多个客户端。

由服务器201提供的数据流204(或位流101)可以由表示视频(例如图像序列151)和音频数据的多媒体数据组成。在本发明的一些实施例中,音频和视频数据流可以分别由服务器201使用麦克风和照相机来捕获。在一些实施例中,数据流可以存储在服务器201上或由服务器201从其它数据提供商接收,或在服务器201处生成。服务器201设置有用于对视频和音频流进行编码的编码器150,特别是用以提供用于传输的压缩位流101,该压缩位流101是作为编码器的输入所呈现的数据的更紧凑表示。

为了获得更好的传输数据的质量与传输数据的量的比率,可以例如根据HEVC格式或H.264/AVC格式或VVC格式来压缩视频数据。

客户端202接收所传输的位流101,并且其解码器100解码重建的位流,以在显示装置上再现视频图像(例如视频信号109)和利用扬声器再现音频数据。

尽管在图2和图18的示例中考虑了流式传输场景,但将认识到,在本发明的一些实施例中,可以使用例如介质存储装置(诸如光盘等)来进行编码器与解码器之间的数据通信。

在本发明的一个或多个实施例中,视频图像与表示要应用到图像的重建像素的补偿偏移的数据一同传输,以在最终图像中提供经滤波的像素。

图3示意性地例示被配置为实现本发明的至少一个实施例的处理装置300。处理装置300可以是诸如微计算机、工作站或轻型便携式装置等的装置。装置300包括通信总线313,其连接到:

-表示为CPU的中央处理单元311,诸如微处理器等;

-表示为ROM的只读存储器307,其用于存储实现本发明的计算机程序;

-用于存储本发明实施例的方法的可执行代码的表示为RAM的随机存取存储器312,以及适于记录变量和参数的寄存器,该变量和参数是根据本发明实施例实现对数字图像序列进行编码的方法和/或对位流进行解码的方法所需的;以及

-连接至通信网络303的通信接口302,通过该通信接口传输或接收要处理的数字数据。

可选地,设备300还可以包括以下组件:

-诸如硬盘等的数据存储部件304,其用于存储实现本发明的一个或多个实施例的方法的计算机程序以及在实现本发明的一个或多个实施例期间所使用或产生的数据;

-用于盘306的盘驱动器305,该盘驱动器适于从盘306读取数据或将数据写入所述盘;以及

-屏幕309,其用于借助于键盘310或任何其它指示装置来显示数据和/或用作与用户交互的图形界面。

设备300可以连接到诸如数字照相机320或麦克风308等的各种外围设备,其各自连接到输入/输出卡(未示出)以向设备300提供多媒体数据。

通信总线313提供设备300中所包括的或连接到设备300的各种元素之间的通信和互操作性。总线的表示不是限制性的,并且特别地,中央处理单元可操作地将指令直接或者借助于设备300的其它元素通信到设备300的任何元素。

盘306可以由诸如可重写或不可重写的致密盘(CD-ROM)、ZIP盘或存储卡等的任何信息介质代替,并且一般而言,由微计算机或微处理器可以进行读取的信息存储部件代替,该盘306集成到或不集成到设备中、可能可移动并且适于存储其执行使得能够实现根据本发明的对数字图像序列进行编码的方法和/或对位流进行解码的方法的一个或多个程序。

可执行代码可以存储在只读存储器307中、硬盘304上或可移动数字介质(诸如,例如如前述的盘306等)上。根据一变型,程序的可执行代码可以经由接口302借助于通信网络303来接收,以在执行之前存储在设备300的存储部件之一(诸如硬盘304等)中。

中央处理单元311适于控制和指导执行根据本发明的一个或多个程序的指令或软件代码的部分、存储在上述存储部件之一中的指令的执行。在通电时,存储在非易失性存储器中(例如,在硬盘304上或在只读存储器307中)的一个或多个程序被传递到随机存取存储器312中(其然后包含一个或多个程序的可执行代码)以及用于存储实现本发明所必需的变量和参数的寄存器。

在该实施例中,设备是使用软件来实现本发明的可编程设备。然而,可替代地,本发明可以以硬件(例如,以专用集成电路或ASIC的形式)来实现。

图4例示根据本发明的至少一个实施例的编码器的框图。编码器由所连接的模块表示,各模块适于例如以由装置300的CPU 311执行的编程指令的形式来实现根据本发明的一个或多个实施例的、用于实现对图像序列中的图像进行编码的至少一个实施例的方法的至少一个相应步骤。

编码器400接收数字图像i0至in的原始序列401作为输入。各数字图像由样本(有时也称为像素)(在下文中,它们被称为像素)集表示。

编码器400在实现编码处理之后输出位流410。位流410包括多个编码单元或片,各片包括用于对片编码所用的编码参数的编码值进行传输的片头部、以及包括编码视频数据的片主体。

模块402将输入数字图像i0至in 401分割成像素块。块与图像部分相对应并且可以具有可变大小(例如,4×4、8×8、16×16、32×32、64×64、128×128像素、并且还可以考虑若干矩形块大小)。针对各输入块选择编码模式。提供了两个编码模式族:基于空间预测编码(帧内预测)的编码模式和基于时间预测的编码模式(帧间编码、合并、跳过)。测试了可能的编码模式。

模块403实现帧内预测处理,其中,通过根据要编码的给定块的相邻像素计算出的预测子来预测所述要编码的块。如果选择了帧内编码,则对所选择的帧内预测子以及给定块与其预测子之间的差的指示进行编码以提供残差。

时间预测由运动估计模块404和运动补偿模块405实现。首先,选择来自参考图像集416的参考图像,并且由运动估计模块404选择参考图像的一部分(也被称为参考区域或图像部分),该部分是与要编码的给定块最接近(在像素值的相似性方面最接近)的区域。然后运动补偿模块405使用所选择的区域来预测要编码的块。由运动补偿模块405计算所选择的参考区域与给定块(也称为残差块)之间的差。所选择的参考区域使用运动矢量指示。

由此,在这两种情况下(空间和时间预测),通过从原始块减去预测子来计算残差。

在由模块403实现的帧内预测中,对预测方向进行编码。在由模块404、405、416、418、417实现的帧间预测中,针对时间预测对至少一个运动矢量或用于标识这种运动矢量的数据进行编码。

如果选择帧间预测,则对与运动矢量和残差块有关的信息进行编码。为了进一步降低位率,假设运动是同质的,通过相对于运动矢量预测子的差对运动矢量进行编码。由运动矢量预测和编码模块417从运动矢量场418获得来自运动信息预测子候选的集合的运动矢量预测子。

编码器400还包括选择模块406,该选择模块用于通过应用编码成本标准(诸如,率-失真标准等)来选择编码模式。为了进一步减少冗余,由变换模块407将变换(诸如DCT等)应用于残差块,然后,所获得的变换数据由量化模块408量化并且由熵编码模块409进行熵编码。最终,正被编码的当前块的编码后的残差块被插入位流410中。

编码器400还进行编码图像的解码,以产生用于后续图像的运动估计的参考图像(例如参考图像/图片416中的参考图像)。这使得接收位流的编码器和解码器能够具有相同的参考帧(使用重建的图像或图像部分)。逆量化(“去量化”)模块411进行量化数据的逆量化(“去量化”),之后是变换模块412的逆变换。帧内预测模块413使用预测信息来确定对于给定块使用哪个预测子,并且运动补偿模块414实际上将由模块412获得的残差添加到从参考图像集416获得的参考区域。

然后,由模块415应用后滤波以对所重建的像素帧(图像或图像部分)进行滤波。在本发明的实施例中,使用SAO环路滤波器,其中补偿偏移被添加到所重建图像的所重建像素的像素值。应理解,后滤波并不总是必须进行。此外,除了SAO环路滤波之外或代替SAO环路滤波,还可以进行任何其它类型的后滤波。

图5示出根据本发明实施例的解码器60的框图,解码器60可以用于从编码器接收数据。解码器由所连接的模块表示,各模块适于例如以要由装置300的CPU 311执行的编程指令的形式实现由解码器60实现的方法的相应步骤。

解码器60接收包括编码单元的位流61(例如与块或编码单元相对应的数据),各编码单元由包含与经编码的参数有关的信息的头部和包含经编码的视频数据的主体组成。如关于图4所说明的,针对给定块,在预定数量的位上,对经编码的视频数据进行熵编码,并且对运动矢量预测子的索引进行编码。所接收的经编码的视频数据由模块62进行熵解码。然后残差数据由模块63去量化,之后由模块64应用逆变换以获得像素值。

用于指示编码模式的模式数据也被熵解码,并且基于该模式,对图像数据的编码块(单元/集/组)进行帧内类型解码或帧间类型解码。

在帧内模式的情况下,帧内逆预测模块65基于在位流中指定的帧内预测模式来确定帧内预测子。

如果模式是帧间,则从位流提取运动预测信息以找到(识别)由编码器使用的参考区域。运动预测信息包括参考帧索引和运动矢量残差。运动矢量预测子由运动矢量解码模块70添加到运动矢量残差以获得运动矢量。

运动矢量解码模块70对通过运动预测编码的各当前块应用运动矢量解码。一旦已获得针对当前块的运动矢量预测子的索引,可以对与当前块相关联的运动矢量的实际值进行解码,并且该实际值用以通过模块66应用运动补偿。从参考图像68提取由经解码的运动矢量指示的参考图像部分以应用运动补偿66。利用经解码的运动矢量更新运动矢量场数据71,以用于后续解码运动矢量的预测。

最终,获得经解码的块。适当地,后滤波由后滤波模块67应用。解码器60最终提供或获得经解码的视频信号69。

CABAC

HEVC使用若干类型的熵编码,如基于上下文的自适应二进制算术编码(CABAC)、哥伦布-莱斯码(Golomb-rice Code)或称为固定长度编码的简单二进制表示。大多数时候,进行二进制编码处理以表示不同句法元素。该二进制编码处理也非常特定并且取决于不同句法元素。算术编码根据句法元素的当前概率表示句法元素。CABAC是算术编码的扩展,其根据由上下文变量定义的“上下文”来分离句法元素的概率。这对应于条件概率。上下文变量可以从已解码的顶部左侧块(如图6b中的A2,如下文更详细描述的)和上方左侧块(图6b中的B3)的当前句法的值导出。

已经采用CABAC作为H.264/AVC和H.265/HEVC标准的规范部分。在H.264/AVC中,它是熵编码的两个替代方法之一。在H.264/AVC中指定的另一方法是基于可变长度编码的上下文自适应切换集合的使用的低复杂性熵编码技术,所谓的上下文自适应可变长度编码(CAVLC)。与CABAC相比,CAVLC以较低压缩效率为代价提供减少的实现成本。对于标准或高清晰度分辨率的TV信号,CABAC通常在相同的客观视频质量下相对于CAVLC提供10%-20%的位率节省。在HEVC中,CABAC是所使用的熵编码方法之一。许多位也经旁路CABAC编码。此外,一些句法元素用作为其它类型的熵编码的一元码或哥伦布码来编码。

图17示出CABAC编码器的主要块。

非二进制值的输入句法元素由二值化器1701二值化。CABAC的编码策略是基于以下发现:基于混合块的视频编码器中的句法元素值(如运动矢量差或变换系数级别值的分量)的非常高效的编码可以通过采用二值化方案作为用于上下文建模和二进制算术编码的后续阶段的一种预处理单元来实现。一般来说,二值化方案定义句法元素值到二进制决策序列(所谓的二进制位(bin))的唯一映射,二进制决策序列也可以在二进制编码树方面进行解释。CABAC中的二值化方案的设计基于几个基本原型,这些原型的结构使得能够进行简单的在线计算,并且这些原型适于一些合适的模型概率分布。

可以根据开关1702的设置以两种基本方式之一来处理各个bin。当开关处于“常规”设置时,bin被供应至上下文建模器1703和常规编码引擎1704。当开关处于“旁路”设置时,上下文建模器被旁路并且bin被供应至旁路编码引擎1705。另一开关1706具有类似于开关1702的“常规”和“旁路”设置,使得由编码引擎1704和1705中的可应用的编码引擎编码的bin可以形成位流作为CABAC编码器的输出。

应理解,另一开关1706可以与存储装置一起使用以对由编码引擎1705编码的一些bin(例如,用于对块或编码单元进行编码的bin)进行分组以在位流中提供旁路编码数据块,并且对由编码引擎1704编码的一些bin(例如,用于对块或编码单元进行编码的bin)进行分组以在位流中提供另一“常规”(或算术地)编码数据块。旁路编码和常规编码数据的这种单独分组可以得到解码处理期间的改进的吞吐量。

通过将各个句法元素值分解成bin序列,CABAC中的各个bin值的进一步处理取决于相关联的编码模式决策,该编码模式决策可以被选择作为常规模式或旁路模式。针对与符号信息有关的bin或较低有效的bin(这些bin被假设为均匀分布并且因此针对这些bin使整个常规二进制算术编码处理被简单地旁路),选择后者。在常规编码模式中,通过使用常规二进制算术编码引擎来编码各个bin值,其中相关联的概率模型是在无需任何上下文建模的情况下通过固定选择来确定的,或者取决于相关上下文模型而自适应地选择的。作为重要的设计决策,后一情况通常仅应用于最频繁观察到的bin,而其它bin(通常较不频繁观察到的bin)将使用联合(通常为零阶概率模型)来处理。以这种方式,CABAC使得能够在子符号级别上进行选择性上下文建模,且因此提供用于以显著降低的总体建模或学习成本来利用符号间冗余的高效工具。对于上下文模型的特定选择,在CABAC中采用四个基本设计类型,其中仅将它们中的两个应用于变换系数级别的编码。这四个原型的设计是基于与要建模的源数据的典型特性有关的先验知识,并且反映了如下目的:找到避免不必要的建模成本开销与在很大程度上利用统计依赖性的冲突目标之间的良好折衷。

在CABAC中的处理的最低级别上,各个bin值在常规或旁路编码模式中进入二进制算术编码器。对于后者,使用复杂性显著降低的编码引擎的快速分支,而对于前一编码模式,给定bin值的编码取决于与bin值一起传递到M编码器的相关联自适应概率模型的实际状态(在CABAC中被选择用于基于表的自适应二进制算术编码引擎的项)。

帧间编码

HEVC使用3种不同的帧间模式:帧间模式(高级运动矢量预测(AMVP))、“经典”合并模式(即,“非仿射合并模式”或也称为“常规”合并模式)和“经典”合并跳过模式(即,“非仿射合并跳过模式”或也称为“常规”合并跳过模式)。这些模式之间的主要差异是位流中用信号通知的数据。对于运动矢量编码,当前HEVC标准包括用于运动矢量预测的基于竞争性的方案,该方案不存在于该标准的较早版本中。这意味着若干候选正在编码器侧以率失真标准竞争以找到分别用于帧间或合并模式(即,“经典/常规”合并模式或“经典/常规”合并跳过模式)的最佳运动矢量预测子或最佳运动信息。然后将与运动信息的最佳预测子或最佳候选相对应的索引插入位流中。解码器可以根据经解码的索引导出同一组预测子或候选,并且使用最佳预测子或候选。在HEVC的画面内容扩展中,称为帧内块复制(IBC)的新编码工具作为这三种帧间模式中的任一种而用信号通知,通过检查参考帧是否是当前帧来做出IBC与等效帧间模式之间的差别。这可以例如通过检查列表L0的参考索引来实现,并且如果为该列表中的最后帧,则推断为帧内块复制。其它做法是将当前帧和参考帧的图片顺序计数进行比较:如果相等,则为帧内块复制。

预测子和候选的导出的设计在实现最佳编码效率而不对复杂性带来不成比例的影响方面是重要的。在HEVC中,使用两个运动矢量导出:一个用于帧间模式(高级运动矢量预测(AMVP))且一个用于合并模式(经典合并模式和经典合并跳过模式的合并导出处理)。下面描述这些处理。

图6a和6b例示可以用于在HEVC编码和解码系统的高级运动矢量预测(AMVP)和合并模式中生成运动矢量预测子的空间和时间块,并且图7示出AMVP预测子集合导出的处理的简化步骤。

如图6a中所表示的,在包括顶部角块(块B2)和左侧角块(块A0)的顶部块(由字母“B”指示)和左侧块(由字母“A”指示)的运动矢量中选择两个空间预测子(即,AMVP模式的两个空间运动矢量),并且在并置块(collocated block)的底部右侧块(H)和中央块(Center)的运动矢量中选择一个时间预测子。

下面的表1概述了当引用如图6a和6b中所示的相对于当前块的块时所使用的命名法。这种命名法被用作速记,但是应当理解,可以使用其它标记系统,特别是在标准的未来版本中。

表1

应注意,“当前块”可以是大小可变的,例如4×4、16×16、32×32、64×64、128×128或其间的任何大小。块的尺寸优选地是2的因子(即,2^n×2^m,其中,n和m是正整数),因为这得到在使用二进制编码时对位的更高效的使用。当前块不需要是正方形的,但是这通常是针对编码复杂性的优选实施例。

转到图7,第一步骤目的在于在底部左侧块A0和A1中(在图6a中例示空间位置)选择第一空间预测子(Cand 1,706)。为此,以给定顺序一个接一个地选择这些块(700、702),并且对于各个所选择的块,以给定顺序评价以下条件(704),将满足条件的第一个块设置为预测子:

-来自相同参考列表和相同参考图像的运动矢量;

-来自其它参考列表和相同参考图像的运动矢量;

-来自相同参考列表和不同参考图像的经缩放的运动矢量;或者

-来自其它参考列表和不同参考图像的经缩放的运动矢量。

如果没有找到值,则认为左侧预测子是不可用的。在这种情况下,指示相关块进行了帧内编码或者这些块不存在。

以下步骤目的在于在上方右侧块B0、上方块B1和上方左侧块B2(在图6a中例示空间位置)中选择第二空间预测子(Cand 2,716)。为此,以给定顺序一个接一个地选择这些块(708、710、712),并且对于各个所选择的块,以给定顺序评价上述条件(714),将满足上述条件的第一个块设置为预测子。

同样,如果没有找到值,则认为顶部预测子是不可用的。在这种情况下,指示相关块进行了帧内编码或者这些块不存在。

在下一步骤(718)中,如果两个预测子均是可用的,则将这两个预测子彼此进行比较,以在两个预测子相等(即,相同运动矢量值、相同参考列表、相同参考索引和相同方向类型)的情况下去除这两个预测子中的一个。如果仅一个空间预测子是可用的,则算法在下一步骤中寻找时间预测子。

时间运动预测子(Cand 3,726)如下导出:在可用性检查模块722中首先考虑先前/参考帧中并置块的底部右侧(H,720)位置。如果不存在或者如果运动矢量预测子是不可用的,则选择并置块的中央(Centre,724)以进行检查。这些时间位置(中央和H)在图6a中描绘。在任何情况下,对这些候选应用缩放723以匹配当前帧与参考列表中的第一帧之间的时间距离。

然后将运动预测子值添加到预测子的集合。接着,将预测子的数量(Nb_Cand)与预测子的最大数量(Max_Cand)进行比较(728)。如上文所提及,在HEVC标准的当前版本中,AMVP的导出处理需要生成的运动矢量预测子的预测子的最大数量(Max_Cand)为二。

如果达到该最大数量,则构建AMVP预测子的最终列表或集(732)。否则,将零预测子添加到列表(730)。零预测子是等于(0,0)的运动矢量。

如图7中所例示的,从空间运动预测子候选(700至712)的子集和从时间运动预测子候选(720、724)的子集构建AMVP预测子的最终列表或集(732)。

如上所提及,经典合并模式或经典合并跳过模式的运动预测子候选表示所有需要的运动信息:方向、列表、参考帧索引和运动矢量。若干候选的带有索引的列表通过合并导出处理来生成。在当前HEVC设计中,用于这两个合并模式(即,经典合并模式和经典合并跳过模式)的候选的最大数量等于五(4个空间候选和1个时间候选)。

图8是合并模式(经典合并模式和经典合并跳过模式)的运动矢量导出处理的示意图。在导出处理的第一步骤中,考虑五个块位置(800至808)。这些位置是在图6a中用附图标记A1、B1、B0、A0和B2描绘的空间位置。在接下来的步骤中,检查空间运动矢量的可用性,并且针对考虑选择/获得至多五个运动矢量(810)。在预测子存在并且在块未被帧内编码的情况下,预测子被视为是可用的。因此,按照以下条件选择与五个块相对应的运动矢量作为候选:

如果“左侧”A1运动矢量(800)是可用的(810),即,如果其存在并且如果该块未进行帧内编码,则选择“左侧”块的运动矢量并且将其用作候选列表(814)中的第一候选;

如果“上方”B1运动矢量(802)是可用的(810),则将候选“上方”块运动矢量与“左侧”A1运动矢量(如果存在的话)进行比较(812)。如果B1运动矢量等于A1运动矢量,则不将B1添加到空间候选的列表(814)。相反,如果B1运动矢量不等于A1运动矢量,则将B1添加到空间候选的列表(814);

如果“上方右侧”B0运动矢量(804)是可用的(810),则将“上方右侧”的运动矢量与B1运动矢量进行比较(812)。如果B0运动矢量等于B1运动矢量,则不将B0运动矢量添加到空间候选的列表(814)。相反,如果B0运动矢量不等于B1运动矢量,则将B0运动矢量添加到空间候选的列表(814);

如果“下方左侧”A0运动矢量(806)是可用的(810),则将“下方左侧”的运动矢量与A1运动矢量进行比较(812)。如果A0运动矢量等于A1运动矢量,则不将A0运动矢量添加到空间候选的列表(814)。相反,如果A0运动矢量不等于A1运动矢量,则将A0运动矢量添加到空间候选的列表(814);以及

如果空间候选的列表不包含四个候选,则检查(810)“上方左侧”B2运动矢量(808)的可用性。如果可用,则将其与A1运动矢量以及B1运动矢量进行比较。如果B2运动矢量等于A1运动矢量或B1运动矢量,则不将B2运动矢量添加到空间候选的列表(814)。相反,如果B2运动矢量不等于A1运动矢量或B1运动矢量,则将B2运动矢量添加到空间候选的列表(814)。

在该阶段结束处,空间候选的列表包括多达四个候选。

对于时间候选,可以使用两个位置:并置块的底部右侧位置(816,在图6a中表示为H)和并置块的中央(818)。这些位置在图6a中描绘。

关于与图7相关地描述的AMVP运动矢量导出处理的时间运动预测子,第一步骤目的在于检查H位置处的块的可用性(820)。接着,如果该块是不可用的,则检查中央位置处的块的可用性(820)。如果这些位置的至少一个运动矢量是可用的,则根据需要,对于列表L0和L1这两者,时间运动矢量可以相对于具有索引0的参考帧进行缩放(822),以创建被添加到合并运动矢量预测子候选的列表的时间候选(824)。该时间候选被置于列表中的空间候选之后。列表L0和L1是包含零个、一个或多个参考帧的2个参考帧列表。

如果候选的数量(Nb_Cand)严格小于候选的最大数量(Max_Cand,该值在位流片头部中用信号通知且在当前HEVC设计中等于五)(826),并且如果当前帧为B类型,则生成组合候选(828)。基于合并运动矢量预测子候选的列表的可用候选来生成组合候选。其主要在于将列表L0的一个候选的运动信息与列表L1的一个候选的运动信息进行组合(配对)。

如果候选的数量(Nb_Cand)保持严格小于候选的最大数量(Max_Cand)(830),则生成(832)零运动候选,直到合并运动矢量预测子候选列表的候选的数量达到候选的最大数量。

在该处理结束处,构建合并运动矢量预测子候选的列表或集合(即,合并模式(经典合并模式和经典合并跳过模式)的候选的列表或集合)(834)。如图8中所例示的,合并运动矢量预测子候选的列表或集是从空间候选(800至808)的子集和从时间候选(816、818)的子集构建的(834)。

替代性时间运动矢量预测(ATMVP)

替代性时间运动矢量预测(ATMVP)是特殊类型的运动补偿。代替仅考虑来自时间参考帧的用于当前块的一个运动信息,考虑各个并置块的各个运动信息。因此,如图9中所描绘的,该时间运动矢量预测利用各个子块的相关运动信息给出当前块的分割。

在当前VTM参考软件中,将ATMVP作为插入到合并候选列表(即,合并模式(经典合并模式和经典合并跳过模式)的候选的列表和集合)中的合并候选来用信号通知。当在SPS级别处启用ATMVP时,合并候选的最大数量增加一。因此,考虑6个候选而不是在该ATMVP模式被禁用的情况下的5个候选。

另外,当在SPS级别处启用该预测时,通过CABAC对合并索引(即,用于标识来自合并候选的列表的候选的标识符或索引)的所有bin进行上下文编码。当在HEVC中或者当未在JEM中的SPS级别处启用ATMVP时,仅第一bin被上下文编码,并且剩余bin被上下文旁路编码(即,旁路CABAC编码)。图10(a)例示用于HEVC或未在JEM中的SPS级别处启用ATMVP时的合并索引的编码。这与一元最大码相对应。另外,第一位被CABAC编码,并且其它位被旁路CABAC编码。

图10(b)例示当在SPS级别处启用ATMVP时合并索引的编码。另外,所有位进行了CABAC编码(从第1至第5位)。应注意,用于编码索引的各个位具有其自己的上下文——换言之,它们的概率是分开的。

仿射模式

在HEVC中,仅平移运动模型被应用于运动补偿预测(MCP)。而在现实世界中,存在许多种类的运动,例如放大/缩小、旋转、透视运动和其它不规则运动。

在JEM中,应用简化的仿射变换运动补偿预测,并且下面基于在2017年7月13-21日在托里诺的JVET会议呈现的文档JVET-G1001的摘录来描述仿射模式的一般原理。该文档整体在其描述JEM中所使用的其它算法的范围内通过引用并入本文。

如图11(a)所示,块的仿射运动场通过两个控制点运动矢量描述。

块的运动矢量场(MVF)由以下等式描述:

其中(v

为了进一步简化运动补偿预测,应用了基于子块的仿射变换预测。如在等式2中那样导出子块大小M×N,其中MvPre是运动矢量分数精度(JEM中为1/16),(v

在通过等式2导出之后,如果必要,M和N可被向下调整,以使其分别为w和h的除数。h是当前块Cur(当前块)的高度。

为了导出各M×N子块的运动矢量,根据等式1计算如图6a中所示的各个子块的中央样本的运动矢量,并且将其四舍五入到1/16分数精度。然后应用运动补偿内插滤波器以生成具有导出的运动矢量的各个子块的预测。

仿射模式是如帧间模式(AMVP、“经典”合并、“经典”合并跳过)那样的运动补偿模式。其原理是根据2个或3个相邻运动信息针对每个像素生成一个运动信息。在JEM中,如图11(a)/(b)中所描绘的,仿射模式导出用于各个4×4块(各个正方形是4×4块,并且图11(a)/(b)中的整个块是16×16块,其被分割成16个这种4×4大小的正方形的块——各个4×4正方形块具有与其相关联的运动矢量)的一个运动信息。应当理解,在本发明的实施例中,仿射模式可以导出用于不同大小或形状的块的一个运动信息,只要可以导出该一个运动信息即可。通过利用标志而启用仿射模式,该模式对于AMVP模式和合并模式(即,经典合并模式(也称为“非仿射合并模式”)和经典合并跳过模式(也称为“非仿射合并跳过模式”))可用。该标志进行了CABAC编码。在实施例中,上下文取决于左侧块(图6b的位置A2)和上方左侧块(图6b的位置B3)的仿射标志的总和。

因此,对于仿射标志,在JEM中可以由以下公式给出三个上下文变量(0、1或2):

Ctx=IsAffine(A2)+IsAffine(B3)

其中IsAffine(块)是在该块不是仿射块的情况下返回0而在该块是仿射的情况下返回1的函数。

仿射合并候选导出

在JEM中,仿射合并模式(或仿射合并跳过模式)从位置A1、B1、B0、A0、B2处的块中是仿射的第一相邻块(即,使用仿射模式编码的第一相邻块)导出针对当前块的运动信息。这些位置在图6a和6b中描绘。然而,如何导出仿射参数没有完全被定义,并且本发明目的在于:例如通过定义仿射合并模式的仿射参数以使得能够实现针对仿射合并候选的更宽选择(即,利用标识符(诸如索引等),不仅是仿射的第一相邻块,而且至少一个其它候选都可用于该选择)而至少改进这个方面。

例如,根据本发明的一些实施例,具有其自己的仿射合并候选(用于导出/获得仿射模式的运动信息的候选)的列表和仿射合并索引(用于标识来自仿射合并候选的列表中的一个仿射合并候选)的仿射合并模式被用于对块进行编码或解码。

用信号通知仿射合并

图12是与用于用信号通知仿射合并模式的使用的编码模式相关的一些句法元素的部分解码处理的流程图。在该图中,可以解码跳过标志(1201)、预测模式(1211)、合并标志(1203)、合并索引(1208)和仿射标志(1206)。

对于帧间片中的所有CU,解码跳过标志(1201)。如果CU不是跳过(1202),则解码pred模式(预测模式)(1211)。该句法元素指示当前CU是在帧间模式还是帧内模式中编码(要在帧间模式还是帧内模式中解码)。请注意,如果CU是跳过(1202),则其当前模式是帧间模式。如果CU不是跳过(1202:否),则CU是在AMVP或合并模式中编码。如果CU是帧间模式(1212),则解码合并标志(1203)。如果CU是合并(1204)或如果CU是跳过(1202:是),则验证/检查(1205)仿射标志(1206)是否需要解码,即,在(1205)判断当前CU是否已在仿射模式中编码。如果当前CU是2N×2N CU,则解码该标志,这意味着在当前VVC中CU的高度和宽度应相等。此外,必须利用仿射模式(仿射合并模式或启用仿射模式的AMVP模式)对至少一个相邻CU A1或B1或B0或A0或B2进行编码。最终,当前CU不应是4×4CU,但是在VTM参考软件中默认禁用CU 4×4。如果该条件(1205)为假,则确定的是当前CU是以如HEVC中指定的经典合并模式(或经典合并跳过模式)进行编码,并且对合并索引进行解码(1208)。如果仿射标志(1206)被设置为等于1(1207),则CU是合并仿射CU(即,在仿射合并模式中编码的CU)或合并跳过仿射CU(即,在仿射合并跳过模式中编码的CU),并且合并索引(1208)不需要被解码(因为使用了仿射合并模式,即,将使用仿射模式利用是仿射的第一相邻块对CU进行解码)。否则,当前CU是经典(基本)合并或合并跳过CU(即,在经典合并或合并跳过模式中编码的CU),并且对合并索引候选进行解码(1208)。

在本说明书中,“用信号通知”可以指将表示启用或禁用模式或其它信息的一个或多个句法元素插入(提供/包括)到位流中或从位流中提取/获得。

合并候选导出

图13是例示合并候选(即,经典合并模式或经典合并跳过模式的候选)导出的流程图。该导出是在图8中表示合并模式的运动矢量导出处理(即,HEVC的合并候选列表导出)的基础上构建。与HEVC相比的主要改变是ATMVP候选(1319、1321、1323)的添加、候选的完全冗余检查(1325)和候选的新顺序。将ATMVP预测设置为特定候选,因为其表示当前CU的若干运动信息。将第一子块(顶部左侧)的值与时间候选进行比较,并且如果它们相等,则不将时间候选添加在合并的列表中(1320)。ATMVP候选不与其它空间候选进行比较。相反,将时间候选与已经在列表中的各个空间候选进行比较(1325)并且如果其为冗余候选则不添加在合并候选列表中。

当将空间候选添加到列表中时,将其与列表中的其它空间候选进行比较(1312),这不是HEVC的最终版本中的情况。

在当前VTM版本中,合并候选的列表设置为以下顺序,因为它已被确定为在编码测试条件下提供最佳结果:

·A1

·B1

·B0

·A0

·ATMVP

·B2

·时间

·组合

·零_MV

重要的是注意,空间候选B2设置在ATMVP候选之后。

另外,当在片级别启用ATMVP时,候选列表中的最大数量为HEVC的6而不是5。

现在将参考图12至16以及图22至24描述本发明的示例性实施例。应注意,除非另有明确说明,否则实施例可以组合;例如,实施例的某些组合可能在增加复杂性的情况下改进编码效率,但这在某些使用情况下可能是可接受的。

第一实施例

如上所述,在当前VTM参考软件中,ATMVP作为插入到合并候选的列表中的合并候选来用信号通知。可以针对整个序列(在SPS级别处)启用或禁用ATMVP。当禁用ATMVP时,合并候选的最大数量为5。当启用ATMVP时,合并候选的最大数量从5增加1,变为6。

在编码器中,使用图13的方法生成合并候选的列表。例如基于率失真准则从合并候选列表中选择一个合并候选。在位流中使用称为合并索引的句法元素将所选择的合并候选用信号通知到解码器。

在当前VTM参考软件中,取决于ATMVP是被启用还是被禁用,对合并索引进行编码的方式是不同的。

图10(a)例示当未在SPS级别处启用ATMVP时合并索引的编码。5个合并候选Cand0、Cand l、Cand 2、Cand 3和Cand 4分别被编码为0、10、110、1110和1111。这与一元最大编码相对应。另外,使用单个上下文通过CABAC对第一位进行编码,并且对其它位进行旁路编码。

图10(b)例示当启用ATMVP时合并索引的编码。6个合并候选Cand 0、Cand l、Cand2、Cand 3、Cand 4和Cand 5分别被编码为0、10、110、1110、11110和11111。在这种情况下,通过CABAC对合并索引的所有位(从第1至第5位)进行上下文编码。各个位具有其自己的上下文,并且存在用于不同位的单独概率模型。

在本发明的第一实施例中,如图14中所示,当ATMVP作为合并候选被包括在合并候选列表中时(例如,当在SPS级别处启用ATMVP时),修改合并索引的编码,使得使用单个上下文通过CABAC仅编码合并索引的第一位。当未在SPS级别处启用ATMVP时,以与在当前VTM参考软件中相同的方式设置上下文。其它位(从第2至第5位)被旁路编码。当ATMVP未作为合并候选被包括在合并候选列表中时(例如,当在SPS级别处禁用ATMVP时),存在5个合并候选。使用单个上下文通过CABAC仅编码合并索引的第一位。当未在SPS级别处启用ATMVP时,以与在当前VTM参考软件中相同的方式设置上下文。其它位(第2至第4位)被旁路解码。

解码器生成与编码器相同的合并候选列表。这可以通过使用图13的方法来完成。当ATMVP未作为合并候选被包括在合并候选列表中时(例如,当在SPS级别处禁用ATMVP时),存在5个合并候选。使用单个上下文通过CABAC仅对合并索引的第一位进行解码。其它位(从第2至第4位)被旁路解码。与当前参考软件相比,当ATMVP作为合并候选被包括在合并候选列表中时(例如,当在SPS级别处启用ATMVP时),在合并候选的解码中使用单个上下文通过CABAC仅解码合并索引的第一位。其它位(从第2至第5位)被旁路解码。经解码的合并索引用于识别由编码器从合并候选列表中选择的合并候选。

与VTM2.0参考软件相比,本实施例的优点是在不影响编码效率的情况下降低合并索引解码和解码器设计(以及编码器设计)的复杂性。实际上,利用该实施例,对于合并索引仅需要1个CABAC状态,来代替对于当前VTM合并索引编码/解码需要5个。此外,降低了最差情况的复杂性,因为其它位被CABAC旁路编码,这与利用CABAC编码所有位相比减少了操作的数量。

第二实施例

在第二实施例中,合并索引的所有位被CABAC编码,但它们全部共享相同上下文。可以如在第一实施例中那样存在单个上下文,在这种情况下该单个上下文在位之间共享。因此,当ATMVP作为合并候选被包括在合并候选列表中时(例如,当在SPS级别处启用ATMVP时),与VTM2.0参考软件中的5相比,仅使用一个上下文。与VTM2.0参考软件相比,该实施例的优点是在不影响编码效率的情况下降低合并索引解码和解码器设计(以及编码器设计)的复杂性。

可选地,如下面结合第三至第十五实施例所描述的,上下文变量可以在位之间共享,使得两个或更多个上下文可用,但是当前上下文由位共享。

当禁用ATMVP时,相同的上下文仍然用于所有位。

即使ATMVP不是可用模式或被禁用,也可以应用该实施例和所有后续实施例。

在第二实施例的变型中,合并索引的任何两个或更多个位被CABAC编码且共享相同上下文。合并索引的其它位被旁路编码。例如,合并索引的前N个位可以被CABAC编码,其中N为两个或更多个。

第三实施例

在第一实施例中,使用单个上下文对合并索引的第一位进行CABAC编码。

在第三实施例中,合并索引的位的上下文变量取决于相邻块的合并索引的值。这允许用于目标位的多于一个上下文,其中各个上下文与上下文变量的不同值相对应。

相邻块可以是已经解码的任何块,使得其合并索引在当前块被解码时对于解码器是可用的。例如,相邻块可以是图6b中示出的块A0、A1、A2、B0、B1、B2和B3中的任何一个。

在第一变型中,仅使用该上下文变量对第一位进行CABAC编码。

在第二变型中,合并索引的前N个位(其中N为两个或更多个)被CABAC编码,并且在这N个位之间共享上下文变量。

在第三变型中,合并索引的任何N个位(其中N为两个或两个以上)被CABAC编码,并且在这N个位之间共享上下文变量。

在第四变型中,合并索引的前N个位(其中N为两个或两个以上)被CABAC编码,并且针对这N个位使用N个上下文变量。假设上下文变量具有K个值,则使用K×N个CABAC状态。例如,在本实施例中,对于一个相邻块,上下文变量可以方便地具有2个值,例如,0和1。换言之,使用2N个CABAC状态。

在第五变型中,合并索引的任何N个位(其中N为两个或两个以上)被自适应PM编码,并且针对这N个位使用N个上下文变量。

相同的变型适用于在下文中描述的第四至第十六实施例。

第四实施例

在第四实施例中,用于合并索引的位的上下文变量取决于两个或更多个相邻块的合并索引的相应值。例如,第一相邻块可以是左侧块A0、A1或A2,并且第二相邻块可以是上方块B0、B1、B2或B3。组合两个或更多个合并索引值的方式不受特别限制。以下给出示例。

上下文变量可以方便地具有3个不同的值,例如0、1和2,在这种情况下,存在两个相邻块。如果结合第三实施例描述的第四变型被应用于具有3个不同值的该实施例,则K是3而不是2。换言之,使用3N个CABAC状态。

第五实施例

在第五实施例中,用于合并索引的位的上下文变量取决于相邻块A2和B3的合并索引的相应值。

第六实施例

在第六实施例中,用于合并索引的位的上下文变量取决于相邻块A1和B1的合并索引的相应值。该变型的优点是与合并候选导出对准。结果,在一些解码器和编码器实现中,可以实现存储器访问的减小。

第七实施例

在第七实施例中,根据以下公式获得用于当前块的合并索引中具有位位置idx_num的位的上下文变量:

ctxIdx=(Merge_index_left==idx_num)+(Merge_index_up==idx_num)

其中,Merge_index_left是左侧块的合并索引,Merge_index_up是上方块的合并索引,并且符号==是相等符号。

例如当存在6个合并候选时,0<=idx_num<=5。

左侧块可以是块A1,并且上方块可以是块B1(如在第六实施例中)。可替代地,左侧块可以是块A2,并且上方块可以是块B3(如在第五实施例中)。

如果左侧块的合并索引等于idx_num,则公式(Merge_index_left==idx_num)等于1。下表给出该公式(Merge_index_left==idx_num)的结果:

当然,公式(Merge_index_up==idx_num)的表是相同的。

下表给出各个合并索引值的一元最大码和各个位的相对位位置。该表与图10(b)相对应。

如果左侧块不是合并块或仿射合并块(即,使用仿射合并模式编码),则认为左侧块不可用。对于上方块应用相同的条件。

例如,当仅第一位被CABAC编码时,将上下文变量ctxIdx设置为:

如果没有左侧和上/上方块具有合并索引,或者如果左侧块合并索引不是第一索引(即,不是0)并且如果上方块合并索引不是第一索引(即,不是0),则等于0;

如果左侧块和上方块中的一个块具有等于第一索引的合并索引而另一个块不具有,则等于1;以及

如果对于左侧块和上方块各自,合并索引等于第一索引,则等于2。

更一般地,对于被CABAC编码的在位置idx_num处的目标位,将上下文变量ctxIdx设置为:

如果没有左侧块和上/上方块具有合并索引,或者如果左侧块合并索引不是第i索引(其中i=idx_num)并且如果上方块合并索引不是第i索引,则等于0;

如果左侧块和上方块中的一个块具有等于第i索引的合并索引而另一个块不具有,则等于1;以及

如果对于左侧块和上方块各自,合并索引等于第i索引,则等于2。这里,第i索引表示当i=0时的第一索引、当i=1时的第二索引,等等。

第八实施例

在第八实施例中,根据以下公式获得用于当前块的合并索引中具有位位置idx_num的位的上下文变量:

Ctx=(Merge_index_left>idx_num)+(Merge_index_up>idx_num),其中,Merge_index_left是左侧块的合并索引,Merge_index_up是上方块的合并索引,并且符号>意味着“大于”。

例如当存在6个合并候选时,0<=idx_num<=5。

左侧块可以是块A1,并且上方块可以是块B1(如在第五实施例中)。可替代地,左侧块可以是块A2,并且上方块可以是块B3(如在第六实施例中)。

如果左侧块的合并索引大于idx_num,则公式(Merge_index_left>idx_num)等于1。如果左侧块不是合并块或仿射合并块(即,使用仿射合并模式编码),则认为左侧块不可用。对于上方块适用相同的条件。

下表给出该公式(Merge_index_left>idx_num)的结果:

例如,当仅第一位被CABAC编码时,将上下文变量ctxIdx设置为:

如果没有左侧和上/上方块具有合并索引,或者如果左侧块合并索引小于或等于第一索引(即,不是0)并且如果上方块合并索引小于或等于第一索引(即,不是0),则等于0;

如果左侧块和上方块中的一个块具有大于第一索引的合并索引而另一个块不具有,则等于1;以及

如果对于左侧块和上方块各自,合并索引大于第一索引,则等于2。

更一般地,对于被CABAC编码的在位置idx_num处的目标位,将上下文变量ctxIdx设置为:

如果没有左侧和上/上方块具有合并索引,或者如果左侧块合并索引小于第i索引(其中i=idx_num)并且如果上方块合并索引小于或等于第i索引,则等于0;

如果左侧块和上方块中的一个块具有大于第i索引的合并索引而另一个块不具有,则等于1;以及

如果对于左侧块和上方块各自,合并索引大于第i索引,则等于2。

与第七实施例相比,第八实施例提供了进一步的编码效率增加。

第九实施例

在第四至第八实施例中,用于当前块的合并索引的位的上下文变量取决于两个或更多个相邻块的合并索引的相应值。

在第九实施例中,用于当前块的合并索引的位的上下文变量取决于两个或更多个相邻块的相应合并标志。例如,第一相邻块可以是左侧块A0、A1或A2,并且第二相邻块可以是上方块B0、B1、B2或B3。

当使用合并模式对块进行编码时,合并标志被设置为1,并且当使用诸如跳过模式或仿射合并模式等的其它模式时,合并标志被设置为0。注意,在VMT2.0中,仿射合并是与基本或“经典”合并模式不同的模式。可以使用专用仿射标志来用信号通知仿射合并模式。可替代地,合并候选的列表可以包括仿射合并候选,在这种情况下,仿射合并模式可以使用合并索引来选择和用信号通知。

然后将上下文变量设置为:

如果左侧相邻块和上方相邻块都没有将其合并标志设置为1,则为0;

如果左侧相邻块和上方相邻块中的一个块的合并标志被设置为1而另一个块不是,则为1;以及

如果左侧相邻块和上方相邻块各自都将其合并标志设置为1,则为2。

与VTM2.0相比,这种简单的措施实现了编码效率的改进。与第七和第八实施例相比,另一优点是较低的复杂性,这是因为仅需要检查相邻块的合并标志而不是合并索引。

在变型中,用于当前块的合并索引的位的上下文变量取决于单个相邻块的合并标志。

第十实施例

在第三至第九实施例中,用于当前块的合并索引的位的上下文变量取决于一个或者多个相邻块的合并索引值或合并标志。

在第十实施例中,用于当前块的合并索引的位的上下文变量取决于当前块(当前编码单元或者CU)的跳过标志的值。在当前块使用合并跳过模式时,跳过标志等于1,否则等于0。

跳过标志是针对当前块已被解码或解析的其它变量或句法元素的第一示例。该其它变量或句法元素优选为当前块中的运动信息的复杂性的指标。由于合并索引值的出现取决于运动信息的复杂性,因此诸如跳过标志等的变量或句法元素通常与合并索引值相关。

更具体地,通常针对静态场景或涉及恒定运动的场景而选择合并跳过模式。结果,合并索引值针对合并跳过模式通常比用于编码包含块残差的帧间预测的经典合并模式低。这通常对于更复杂的运动而发生。然而,这些模式之间的选择通常也与量化和/或RD准则相关。

与VTM2.0相比,该简单措施提供了编码效率的增加。实施起来也非常简单,因为其不涉及相邻块或检查合并索引值。

在第一变型中,用于当前块的合并索引的位的上下文变量被简单地设置为等于当前块的跳过标志。该位可以仅是第一位。其它位如第一实施例中那样被旁路编码。

在第二变型中,合并索引的所有位被CABAC编码,并且其各自具有取决于合并标志的其自己的上下文变量。当在合并索引中存在5个CABAC编码位(与6个合并候选相对应)时,这需要10个概率状态。

在第三变型中,为了限制状态的数量,仅对合并索引的N个位进行CABAC编码,其中N为两个或更多个,例如前N个位。这需要2N个状态。例如,当前2个位被CABAC编码时,需要4个状态。

通常,代替跳过标志,可以使用已经针对当前块被解码或解析的并且是当前块中的运动信息的复杂性的指标的任何其它变量或句法元素。

第十一实施例

第十一实施例涉及如先前参考图11(a)、11(b)和12描述的仿射合并信号通知。

在第十一实施例中,用于当前块(当前CU)的合并索引的CABAC编码位的上下文变量取决于合并候选列表中的仿射合并候选(如果有的话)。该位可以仅是合并索引的第一位,或者是前N个位,其中N为两个或更多个,或者是任何N个位。其它位被旁路编码。

仿射预测被设计用于补偿复杂运动。因此,对于复杂运动,与较不复杂的运动相比,合并索引通常具有更高的值。如果第一仿射合并候选位于列表中的较下方,或者如果根本不存在仿射合并候选,则当前CU的合并索引可能具有小值。

因此,有效地,上下文变量取决于列表中的至少一个仿射合并候选的存在和/或位置。

例如,上下文变量可以被设置为:

如果A1是仿射,则等于1

如果B1是仿射,则等于2

如果B0是仿射,则等于3

如果A0是仿射,则等于4

如果B2是仿射,则等于5

如果没有相邻块是仿射,则等于0。

当对当前块的合并索引进行解码或解析时,已经检查了这些位置处的合并候选的仿射标志。结果,不需要进一步的存储器访问来导出用于当前块的合并索引的上下文。

与VTM2.0相比,本实施例提供了编码效率的增加。不需要附加的存储器访问,因为步骤1205已经涉及检查相邻CU仿射模式。

在第一变型中,为了限制状态的数量,可以将上下文变量设置为:

如果没有相邻块是仿射,或者如果A1或B1是仿射,则等于0

如果B0、A0或B2是仿射,则等于1

在第二变型中,为了限制状态的数量,可以将上下文变量设置为:

如果没有相邻块是仿射,则等于0

如果A1或B1是仿射,则等于1

如果B0、A0或B2是仿射,则等于2

在第三变型中,可以将上下文变量设置为:

如果A1是仿射,则等于1

如果B1是仿射,则等于2

如果B0是仿射,则等于3

如果A0或B2是仿射,则等于4

如果没有相邻块是仿射,则等于0。

请注意,当对合并索引进行解码或解析时,已经检查了这些位置,因为仿射标志解码取决于这些位置。结果,不需要附加的存储器访问来导出在仿射标志之后编码的合并索引上下文。

第十二实施例

在第十二实施例中,用信号通知仿射模式包括插入仿射模式作为候选运动预测子。

在第十二实施例的一个示例中,仿射合并(和仿射合并跳过)作为合并候选(即,作为与经典合并模式或经典合并跳过模式一起使用的合并候选之一)来用信号通知。在这种情况下,图12的模块1205、1206和1207被去除。另外,为了不影响合并模式的编码效率,递增合并候选的最大可能数量。例如,在当前VTM版本中,该值被设置为等于6,因此如果将该实施例应用于VTM的当前版本,则该值将是7。

优点是合并模式的句法元素的设计简化,这是因为需要解码较少的句法元素。在一些情况下,可以观察到编码效率改进/改变。

现在将描述实现该示例的两种可能方式:

无论其它合并MV的值如何,仿射合并候选的合并索引总是在列表内具有相同的位置。候选运动预测子的位置指示其被选择的可能性,并且因此,如果其被放置在列表的较高处(较低的索引值),则更可能选择该运动矢量预测子。

在第一示例中,仿射合并候选的合并索引总是在合并候选列表内具有相同位置。这意味着它具有固定的“合并idx”值。例如,该值可以被设置为等于5,因为仿射合并模式应表示并非为最可能内容的复杂运动。该实施例的附加优点在于,当解析当前块(仅解码/读取句法元素而不解码数据本身)时,当前块可以被设置为仿射块。结果,该值可以用于确定用于AMVP的仿射标志的CABAC上下文。因此,应针对该仿射标志改进条件概率且编码效率应更好。

在第二示例中,仿射合并候选与其它合并候选一起导出。在该示例中,将新的仿射合并候选添加到(针对经典合并模式或经典合并跳过模式的)合并候选列表中。图16例示该示例。与图13相比,仿射合并候选是来自A1、B1、B0、A0和B2的第一仿射相邻块(1917)。如果与图12的1205相同的条件有效(1927),则生成利用仿射参数产生的运动矢量场,以获得仿射合并候选(1929)。根据ATMVP、时间和仿射合并候选的使用,初始合并候选的列表可以具有4、5、6或7个候选。

所有这些候选之间的顺序是重要的,这是因为应首先处理更可能的候选以确保其更可能晋级为运动矢量候选-优选排序如下:

A1

B1

B0

A0

仿射合并

ATMVP

B2

时间

组合

零_MV

重要的是注意,仿射合并候选定位在ATMVP候选之前但在四个主要相邻块之后。与将仿射合并候选设置在ATMVP和时间预测子候选之后相比,将仿射合并候选设置在ATMVP候选之前的优点是增加了编码效率。该编码效率的增加取决于GOP(图片组)结构和GOP中的各图片的量化参数(QP)设置。但是对于最常用的GOP和QP设置,该顺序给出了编码效率的增加。

该解决方案的另一优点是用于句法和导出处理这两者的经典合并和经典合并跳过模式(即,具有诸如ATMVP或仿射合并候选等的附加候选的合并模式)的简洁设计。此外,仿射合并候选的合并索引可以根据合并候选列表中的先前候选的可用性或值(冗余检查)而改变。因此,可以获得高效的信号通知。

在另一示例中,仿射合并候选的合并索引可以根据一个或若干条件而变化。

例如,列表内与仿射合并候选相关联的合并索引或位置根据标准而改变。原理是,当仿射合并候选具有被选择的高概率时,针对与仿射合并候选相对应的合并索引设置低值(并且当存在要被选择的低概率时,设置更高的值)。

在第十二实施例中,仿射合并候选具有合并索引值。为了改进合并索引的编码效率,使用于合并索引的位的上下文变量取决于用于相邻块和/或用于当前块的仿射标志是高效的。

例如,上下文变量可以使用以下公式来确定:

ctxIdx=IsAffine(A1)+IsAffine(B1)+IsAffine(B0)+IsAffine(A0)+IsAffine(B2)

所得到的上下文值可以具有值0、1、2、3、4或5。

仿射标志增加了编码效率。

在第一变型中,为了涉及较少的相邻块,ctxIdx=IsAffine(A1)+IsAffine(B1)。所得到的上下文值可以具有值0、1或2。

在第二变型中,也涉及较少的相邻块,ctxIdx=IsAffine(A2)+IsAffine(B3)。再次,所得到的上下文值可以具有值0、1或2。

在第三变型中,不涉及相邻块,ctxIdx=IsAffine(当前块)。所得到的上下文值可以具有值0或1。

图15是与利用第三变型的编码模式有关的一些句法元素的部分解码处理的流程图。在该图中,可以解码跳过标志(1601)、预测模式(1611)、合并标志(1603)、合并索引(1608)和仿射标志(1606)。该流程图与前面描述的图12的流程图类似,因此省略详细描述。差别在于:合并索引解码处理考虑了仿射标志,使得当获得合并索引的上下文变量时,可以使用在合并索引之前解码的仿射标志,在VTM2.0中不是这种情况。在VTM2.0中,当前块的仿射标志不能用于获得合并索引的上下文变量,这是因为其总是具有相同的值“0”。

第十三实施例

在第十实施例中,当前块的合并索引的位的上下文变量取决于针对当前块(当前编码单元或CU)的跳过标志的值。

在第十三实施例中,代替直接使用跳过标志值来导出合并索引的目标位的上下文变量,而是从用于对当前CU的跳过标志进行编码的上下文变量来导出目标位的上下文值。这是可能的,因为跳过标志本身被CABAC编码且因此具有上下文变量。

优选地,当前CU的合并索引的目标位的上下文变量被设置为等于用于对当前CU的跳过标志进行编码的上下文变量(当前CU的合并索引的目标位的上下文变量是从用于对当前CU的跳过标志进行编码的上下文变量复制的)。

目标位可以仅是第一位。其它位可以如第一实施例中那样被旁路编码。

用于当前CU的跳过标志的上下文变量是以VTM2.0中规定的方式导出的。与VTM2.0参考软件相比,该实施例的优点是在不影响编码效率的情况下降低了合并索引解码和解码器设计(以及编码器设计)的复杂性。实际上,利用该实施例,至少地,仅需要1个CABAC状态来对合并索引进行编码,而不是针对当前VTM合并索引编码(编码/解码)需要5个CABAC状态。此外,这降低了最差情况的复杂性,因为其它位被CABAC旁路编码,这与利用CABAC编码所有位相比减少了操作的数量。

第十四实施例

在第十三实施例中,从当前CU的跳过标志的上下文变量导出目标位的上下文值。

在第十四实施例中,从当前CU的仿射标志的上下文变量导出目标位的上下文值。

这是可能的,因为仿射标志本身被CABAC编码并且因此具有上下文变量。

优选地,当前CU的合并索引的目标位的上下文变量被设置为等于当前CU的仿射标志的上下文变量(当前CU的合并索引的目标位的上下文变量是从当前CU的仿射标志的上下文变量复制的)。

目标位可以仅是第一位。其它位如第一实施例中那样被旁路编码。

当前CU的仿射标志的上下文变量是以VTM2.0中规定的方式导出的。

与VTM2.0参考软件相比,该实施例的优点是在不影响编码效率的情况下降低了合并索引解码和解码器设计(以及编码器设计)的复杂性。实际上,利用本实施例,至少地,针对合并索引仅需要1个CABAC状态,而不是针对当前VTM合并索引编码(编码/解码)需要5个CABAC状态。此外,这降低了最差情况的复杂性,因为其它位被CABAC旁路编码,这与利用CABAC编码所有位相比减少了操作的数量。

第十五实施例

在若干前述实施例中,上下文变量具有多于2个值,例如三个值0、1和2。然而,为了降低复杂性并且减少要处理的状态的数量,可以将许可的上下文变量值的数量限制在2,例如0和1。这可以通过例如将具有值2的任何初始上下文变量改变为1来实现。实际上,这种简化对编码效率没有或仅有限的影响。

实施例与其它实施例的组合

可以组合前述实施例中的任意两个或更多个。

前面的描述集中于合并索引的编码和解码。例如,第一实施例涉及:生成包括ATMVP候选(针对经典合并模式或经典合并跳过模式,即,非仿射合并模式或非仿射合并跳过模式)的合并候选列表;选择列表中的合并候选之一;以及使用CABAC编码生成用于所选择的合并候选的合并索引,合并索引的一个或多个位被旁路CABAC编码。原则上,本发明可以应用于除了合并模式(例如,仿射合并模式)之外的涉及以下内容的模式:生成运动信息预测子候选的列表(例如,仿射合并候选或运动矢量预测子(MVP)候选的列表);选择列表中的运动信息预测子候选(例如MVP候选)之一;并且生成针对列表中的所选择的运动信息预测子候选(例如,用于预测当前块的运动矢量的所选择的仿射合并候选或所选择的MVP候选)的标识符或索引。由此,本发明不限于合并模式(即,经典合并模式和经典合并跳过模式),并且要编码或解码的索引不限于合并索引。例如,在VVC的开发中,可想象,前述实施例的技术可应用于(或扩展到)除了合并模式之外的模式,诸如HEVC的AMVP模式或其在VVC中的等效模式或仿射合并模式等。应相应地解释所附权利要求书。

如所讨论的,在前述实施例中,从在空间相邻块(例如,在位置A1、B1、B0、A0、B2处)或时间上关联的块(例如,具有并置块或其空间相邻块(诸如“H”等)的“中央”块)之中被仿射编码的第一相邻块中,获得用于仿射合并模式(仿射合并或仿射合并跳过模式)的一个或多个运动信息候选(例如,运动矢量)以及/或者一个或多个仿射参数。这些位置在图6a和6b中描绘。为了实现在当前块(或当前正被编码/解码的样本/像素值的组,例如当前CU)与相邻块(与当前块在空间上相邻或在时间上相关联)之间获得(例如,导出或共享或“合并”)一个或多个运动信息以及/或者仿射参数,一个或多个仿射合并候选被添加到合并候选(即,经典合并模式候选)的列表,使得当所选择的合并候选(然后使用合并索引用来用信号通知,例如,使用句法元素,诸如HEVC中的“merge_idx”或其功能上等效的句法元素)是仿射合并候选时,对于仿射合并候选,使用仿射合并模式来编码/解码当前CU/块。

如上所述,用于获得(例如,导出或共享)针对仿射合并模式的一个或多个运动信息以及/或者仿射参数的这样的一个或多个仿射合并候选也可以使用(可以与用于经典合并模式的合并候选列表相同或不同的)单独的仿射合并候选列表(或集合)来用信号通知。

根据本发明的实施例,当上述实施例的技术被应用于仿射合并模式时,可以使用与如关于图8示出和描述的用于经典合并模式的运动矢量导出处理、或者如关于图13示出和描述的合并候选导出处理相同的技术,来生成仿射合并候选列表。与具有单独技术相比,共享相同技术来生成/编制(用于仿射合并模式或仿射合并跳过模式的)仿射合并候选的列表和(用于经典合并模式或经典合并跳过模式的)合并候选的列表的优点是降低了编码/解码处理中的复杂性。

根据另一实施例,下面关于图24示出的单独技术可以用于生成/编制仿射合并候选的列表。

图24是例示用于仿射合并模式(仿射合并模式和仿射合并跳过模式)的仿射合并候选导出处理的流程图。在导出处理的第一步骤中,考虑五个块位置(2401至2405)以获得/导出空间仿射合并候选2413。这些位置是在图6a(和图6b)中以附图标记A1、B1、B0、A0和B2描绘的空间位置。在下一步骤中,检查空间运动矢量的可用性,并且判断与各个位置A1、B1、B0、A0和B2相关联的帧间模式编码块各自是否利用仿射模式(例如,使用仿射合并、仿射合并跳过或仿射AMVP模式中的任一个)来编码(2410)。选择/获得/导出最多五个运动矢量(即,空间仿射合并候选)。预测子在其存在(例如,存在用于获得/导出与该位置相关联的运动矢量的信息)且块未被帧内编码且块是仿射(即,使用仿射模式编码)的情况下被视为可用的。

然后,针对各可用块位置(2410)导出/获得(2411)仿射运动信息。基于块位置的仿射模型(以及例如关于图11(a)和11(b)所讨论的仿射模型参数)对当前块进行这种导出。然后,应用修剪处理(2412)以去除给出与先前添加到列表中的另一候选相同的仿射运动补偿(或具有相同的仿射模型参数)的候选。

在该阶段的结束处,空间仿射合并候选的列表包括多达五个候选。

如果候选的数量(Nb_Cand)严格小于(2426)候选的最大数量(这里,Max_Cand是在位流片头中用信号通知的值,且对于仿射合并模式等于五,但可以取决于实现而不同/可变)。

然后,生成构建的仿射合并候选(即,附加仿射合并候选,其被生成以提供某一多样性以及接近目标数量,起与例如HEVC中的组合的双向预测合并候选类似的作用)(2428)。这些构建的仿射合并候选是基于与当前块的相邻空间和时间位置相关联的运动矢量。首先,定义控制点(2418、2419、2420、2421)以生成用于生成仿射模型的运动信息。这些控制点中的两个与例如图11(a)和11(b)的v

如果存在位置B2(2405)处的块位置并且如果该块以帧间模式编码(2414),则控制点顶部左侧(2418)的运动信息从位置B2处的块位置的运动信息来获得(例如,使控制点顶部左侧(2418)的运动信息等于位置B2处的块位置的运动信息)。否则,如果存在(如图6b中所描述的)位置B3(2406)处的块位置并且如果该块以帧间模式编码(2414),则控制点顶部左侧(2418)的运动信息从位置B3处的块位置的运动信息来获得(例如,使控制点顶部左侧(2418)的运动信息等于位置B3处的块位置的运动信息),并且在不是这种情况时,如果存在(如图6b中所描绘的)位置A2(2407)处的块位置并且如果该块以帧间模式编码(2414),则控制点顶部左侧(2418)的运动信息从位置A2处的块位置的运动信息获得(例如,使控制点顶部左侧(2418)的运动信息等于位置A2处的块位置的运动信息)。当没有块可用于该控制点时,该控制点被认为是不可用的(不可用)。

如果存在位置B1(2402)处的块位置并且如果该块以帧间模式编码(2415),则控制点顶部右侧(2419)的运动信息从位置B1处的块位置的运动信息来获得(例如,使控制点顶部右侧(2419)的运动信息等于位置B1处的块位置的运动信息)。否则,如果存在位置B0(2403)处的块位置并且如果该块以帧间模式编码(2415),则控制点顶部右侧(2419)的运动信息从位置B0处的块位置的运动信息来获得(例如,使控制点顶部右侧(2419)的运动信息等于位置B0处的块位置的运动信息)。当没有块可用于该控制点时,该控制点被认为是不可用的(不可用)。

如果存在位置A1(2401)处的块位置并且如果该块以帧间模式编码(2416),则控制点底部左侧(2420)的运动信息从位置A1处的块位置的运动信息来获得(例如,使控制点底部左侧(2420)的运动信息等于位置A1处的块位置的运动信息)。否则,如果存在位置A0(2404)处的块位置并且如果该块以帧间模式编码(2416),则控制点底部左侧(2420)的运动信息从位置A0处的块位置的运动信息来获得(例如,使控制点底部左侧(2420)的运动信息等于位置A0处的块位置的运动信息)。当没有块可用于该控制点时,该控制点被认为是不可用的(不可用)。

如果存在(如图6a中所描绘的)位置H(2408)处的并置块位置并且如果该块以帧间模式编码(2417),则控制点底部右侧(2421)的运动信息从例如位置H处的并置块的时间候选的运动信息来获得(例如,使控制点底部右侧(2421)的运动信息等于例如位置H处的并置块的时间候选的运动信息)。当没有块可用于该控制点时,该控制点被认为是不可用的(不可用)。

基于这些控制点,可以生成多达10个构建的仿射合并候选(2428)。利用4、3或2个控制点基于仿射模式来生成这些候选。例如,可以使用4个控制点生成第一构建的仿射合并候选。然后,接下来构建的4个仿射合并候选是可以使用3个控制点的4个不同集合(即,包含4个可用控制点中的3个的集合的4个不同的可能组合)生成的4个可能方式。然后,其它构建的仿射合并候选是使用2个控制点的不同集合((即,包含4个控制点中的2个的集合的不同可能组合)生成的候选。

如果在添加这些附加的(构建的)仿射合并候选之后,候选的数量(Nb_Cand)保持严格小于(2430)候选的最大数量(Max_Cand),则添加/生成诸如零运动矢量候选(或甚至在适用的情况下组合的双预测合并候选)等的其它附加虚拟运动信息候选(2432),直到仿射合并候选列表中的候选的数量达到目标数量(例如,候选的最大数量)。

在该处理结束时,生成/构建仿射合并模式候选的列表或集合(即,仿射合并模式(仿射合并模式和仿射合并跳过模式)的候选的列表或集合)(2434)。如图24中所例示的,仿射合并(运动矢量预测子)候选的列表或集合是从空间候选(2401至2407)和时间候选(2408)的子集而构建/生成的(2434)。应理解,根据本发明的实施例,还可以使用具有用于检查可用性、修剪处理或潜在候选的数量/类型(例如,以类似于图13或图16中的合并候选列表导出处理的方式还可以添加ATMVP候选)的不同顺序的其它仿射合并候选导出处理来生成仿射合并候选的列表/集合。

以下实施例示出可以如何使用仿射合并候选的列表(或集合)来用信号通知(例如,编码或解码)所选择的仿射合并候选(可以使用用于合并模式的合并索引或特别与仿射合并模式一起使用的单独的仿射合并索引来用信号通知)。

在以下实施例中:合并模式(即,除了稍后定义的仿射合并模式之外的合并模式,换言之,经典非仿射合并模式或经典非仿射合并跳过模式)是一种针对当前块获得(或针对当前块导出或与当前块共享)空间相邻或时间关联的块的运动信息的合并模式;合并模式预测子候选(即,合并候选)是与当前块可以获得/导出合并模式中的运动信息的一个或多个空间相邻或时间关联的块有关的信息;合并模式预测子是所选择的合并模式预测子候选,其中在预测当前块的运动信息时以及在合并模式(例如,编码或解码)处理中用信号通知从合并模式预测子候选的列表(或集合)中识别合并模式预测子的索引(例如,合并索引)的用信号通知期间,使用所选择的合并模式预测子候选的信息;仿射合并模式是如下的一种合并模式,其中在该合并模式中,针对当前块来获得(针对当前块导出或与当前块共享)空间相邻或时间关联的块的运动信息以使得当前块的仿射模式处理(或仿射运动模型处理)的运动信息和/或仿射参数可以利用该获得/导出/共享的运动信息;仿射合并模式预测子候选(即,仿射合并候选)是与当前块可以获得/导出仿射合并模式中的运动信息的一个或多个空间相邻或时间关联的块有关的信息;仿射合并模式预测子是所选择的仿射合并模式预测子候选,其中在预测当前块的运动信息时以及在仿射合并模式(例如,编码或解码)处理中用信号通知从仿射合并模式预测子候选的列表(或集合)中识别仿射合并模式预测子的索引(例如,仿射合并索引)的信号通知期间,在仿射运动模型中可以使用所选择的仿射合并模式预测子候选的信息。应理解,在下面的实施例中,仿射合并模式是具有其自己的用于从候选的列表/集合(也称为“仿射合并列表”或“子块合并列表”)中识别一个仿射合并模式预测子候选的仿射合并索引(作为变量的标识符)(与具有与其相关联的单个索引值相反)的合并模式,其中仿射合并索引被用信号通知以识别该特定仿射合并模式预测子候选。

应理解,在以下实施例中,“合并模式”是指HEVC/JEM/VTM中的经典合并模式或经典合并跳过模式中的任一个、或者任何功能等效模式,假设在所述模式中使用了如上所述的运动信息的这种获得(例如,导出或共享)和合并索引的用信号通知。“仿射合并模式”还指仿射合并模式或仿射合并跳过模式(如果存在并且使用这种获得/导出)中的任一个、或者任何其它功能等效模式(假设在所述模式中使用相同特征)。

第十六实施例

在第十六实施例中,使用CABAC编码来用信号通知用于从仿射合并候选列表中识别仿射合并模式预测子(候选)的运动信息预测子索引,其中运动信息预测索引的一个或多个位被旁路CABAC编码。

根据本实施例的第一变型,在编码器处,通过以下方式来对仿射合并模式的运动信息预测子索引进行编码:生成运动信息预测子候选的列表;选择列表中的运动信息预测子候选之一作为仿射合并模式预测子;以及使用CABAC编码生成所选择的运动信息预测子候选的运动信息预测子索引,运动信息预测子索引的一个或多个位被旁路CABAC编码。然后将指示该所选择的运动信息预测子候选的索引的数据包括在位流中。然后解码器从包括该数据的位流中通过以下方式对仿射合并模式的运动信息预测子索引进行解码:生成运动信息预测子候选的列表;使用CABAC解码来解码运动信息预测子索引,该运动信息预测子索引的一个或多个位被旁路CABAC解码;当使用仿射合并模式时,使用所解码的运动信息预测子索引将列表中的运动信息预测子候选之一识别为仿射合并模式预测子。

根据第一变型的另一变型,当使用合并模式时,列表中的运动信息预测子候选之一也可被选择作为合并模式预测子,使得当使用合并模式时,解码器可以使用所解码的运动信息预测子索引(例如合并索引)将列表中的运动信息预测子候选之一识别为合并模式预测子。在该另一变型中,仿射合并索引用于用信号通知仿射合并模式预测子(候选),并且用信号通知仿射合并索引是使用与根据第一至第十五实施例中的任一个的用信号通知合并索引或者在当前VTM或HEVC中使用的用信号通知合并索引相类似的用信号通知索引来实现。

在该变型中,当使用合并模式时,可以使用根据第一至第十五实施例中的任一个的用信号通知合并索引或者在当前VTM或HEVC中使用的用信号通知合并索引来实现用信号通知合并索引。在该变型中,用信号通知仿射合并索引和用信号通知合并索引可以使用不同的用信号通知索引方案。该变型的优点在于,通过使用仿射合并模式和合并模式这两者的高效索引编码/用信号通知,实现了更好的编码效率。此外,在该变型中,单独的句法元素可以用于合并索引(诸如HEVC或其功能等效物中的“Merge_idx[][]”等)和仿射合并索引(诸如“A_Merge_idx[][]”等)。这使得合并索引和仿射合并索引能够被独立地用信号通知(编码/解码)。

根据又一变型,当使用合并模式并且列表中的运动信息预测子候选之一也可被选择作为合并模式预测子时,CABAC编码对于这两种模式(即,当使用仿射合并模式时以及当使用合并模式时)针对当前块的运动信息预测子索引(例如合并索引或仿射合并索引)的至少一个位使用相同的上下文变量,使得仿射合并索引和合并索引的至少一个位共享相同的上下文变量。然后解码器在使用合并模式时使用所解码的运动信息预测子索引将列表中的运动信息预测子候选之一识别为合并模式预测子,其中,CABAC解码对于这两种模式(即,当使用仿射合并模式时以及当使用合并模式时)针对当前块的运动信息预测子索引的至少一个位使用相同的上下文变量。

根据该实施例的第二变型,在编码器处,通过以下方式对运动信息预测子索引进行编码:生成运动信息预测子候选的列表;当使用仿射合并模式时,选择列表中的运动信息预测子候选之一作为仿射合并模式预测子;当使用合并模式时,选择列表中的运动信息预测子候选之一作为合并模式预测子;并且使用CABAC编码生成所选择的运动信息预测子候选的运动信息预测子索引,该运动信息预测子索引的一个或多个位被旁路CABAC编码。然后将指示该所选择的运动信息预测子候选的索引的数据包括在位流中。然后解码器从位流中通过以下方式解码运动信息预测子索引:生成运动信息预测子候选的列表;使用CABAC解码来解码该运动信息预测子索引,该运动信息预测子索引的一个或多个位被旁路CABAC解码;当使用仿射合并模式时,使用所解码的运动信息预测子索引将列表中的运动信息预测子候选之一识别为仿射合并模式预测子;并且当使用合并模式时,使用所解码的运动信息预测子索引将列表中的运动信息预测子候选之一识别为合并模式预测子。

根据第二变型的另一变型,用信号通知仿射合并索引和用信号通知合并索引使用了根据第一至第十五实施例中的任一个的相同的用信号通知索引方案或在当前VTM或HEVC中使用的用信号通知合并索引。该另一变型的优点是实现期间的简单设计,这也可以使复杂性更低。在该变型中,当使用仿射合并模式时,编码器的CABAC编码包括:针对当前块的运动信息预测子索引(仿射合并索引)的至少一个位,使用上下文变量,该上下文变量可与用于使用合并模式时的运动信息预测子索引(合并索引)的至少一个位的另一上下文变量分开;并且将用于指示使用仿射合并模式的数据包括在位流中,使得可以针对CABAC解码处理区分(清楚地标识)针对仿射合并模式和合并模式的上下文变量。然后解码器从位流获得用于指示在位流中使用仿射合并模式的数据;并且当使用仿射合并模式时,CABAC解码使用该数据来在针对仿射合并索引和合并索引的上下文变量之间进行区分。此外,在解码器处,用于指示使用仿射合并模式的数据也可以用于在所获得的数据指示使用仿射合并模式的情况下生成仿射合并模式预测子候选的列表(或集合),或者在所获得的数据指示使用合并模式的情况下生成合并模式预测子候选的列表(或集合)。

该变型使得合并索引和仿射合并索引能够使用相同的用信号通知索引方案来进行通知,而合并索引和仿射合并索引仍然(例如,通过使用单独的上下文变量)彼此独立地被编码/解码。

使用相同的用信号通知索引方案的一种方式是针对仿射合并索引和合并索引这两者使用相同的句法元素,即,针对当使用仿射合并模式时和当使用合并模式时的这两种情况使用相同的句法元素来编码所选择的运动信息预测子候选的运动信息预测子索引。然后在解码器处,通过从位流解析相同的句法元素来解码运动信息预测子索引,而不管当前块是使用仿射合并模式还是使用合并模式来编码(以及正被解码)。

图22示出根据第十六实施例的该变型的与编码模式(即,相同的用信号通知索引方案)有关的一些句法元素的部分解码处理。该图示出利用相同的用信号通知索引方案来用信号通知仿射合并模式(2257:是)的仿射合并索引(2255-“合并idx仿射”)以及合并模式(2257:否)的合并索引(2258-“合并idx”)。应理解,在一些变型中,仿射合并候选列表可以包括ATMVP候选,如在当前VTM的合并候选列表中那样。仿射合并索引的编码类似于图10(a)和图10(b)中所描绘的用于合并模式的合并索引的编码。在一些变型中,即使仿射合并候选导出不定义ATMVP合并候选,当针对具有最多5个其它候选(即,总共6个候选)的合并模式启用ATMVP时,如图10(b)中所述编码仿射合并索引,使得仿射合并候选列表中的候选的最大数量与合并候选列表中的候选的最大数量匹配。因此,仿射合并索引的各位具有其自己的上下文。用于用信号通知合并索引的位的所有上下文变量独立于用于用信号通知仿射合并索引的位的上下文变量。

根据另一变型,由用信号通知合并索引和仿射合并索引所共享的该相同的用信号通知索引方案仅对第一bin使用CABAC编码,如在第一实施例中那样。即,运动信息预测子索引的除了第一位之外的所有位被旁路CABAC编码。在第十六实施例的该另一变型中,当ATMVP作为候选被包括在合并候选列表或仿射合并候选列表其中之一中时(例如,当在SPS级别处启用ATMVP时),修改各索引(即,合并索引或仿射合并索引)的编码,使得如图14中所示,使用单个上下文变量通过CABAC仅编码索引的第一位。当未在SPS级别处启用ATMVP时,以与在当前VTM参考软件中相同的方式来设置该单个上下文。其它位(如果在列表中仅存在5个候选的情况下,从第2至第5位或第4位)被旁路编码。当ATMVP未作为候选被包括在合并候选列表中时(例如,当在SPS级别处禁用ATMVP时),存在5个合并候选和5个仿射合并候选可供使用。使用第一单个上下文变量通过CABAC仅编码合并模式的合并索引的第一位。并且使用第二单个上下文变量通过CABAC仅编码仿射合并模式的仿射合并索引的第一位。当针对合并索引和仿射合并索引这两者未在SPS级别处启用ATMVP时,以与在当前VTM参考软件中相同的方式设置这些第一和第二上下文变量。其它位(第2至第4位)被旁路解码。

解码器生成与编码器相同的合并候选列表以及相同的仿射合并候选列表。这通过使用图22的方法来完成。尽管针对合并模式和仿射合并模式这两者使用相同的用信号通知索引方案,但使用仿射标志(2256)确定当前正解码的数据是针对合并索引还是针对仿射合并索引,以使得针对CABAC解码处理,第一和第二上下文变量可彼此分开(或可区分)。即,在索引解码处理期间使用仿射标志(2256)(即,在步骤2257处使用)来确定是对“合并idx2258”还是对“合并idx仿射2255”进行解码。当ATMVP未作为候选被包括在合并候选列表时(例如,当在SPS级别处禁用ATMVP时),针对(用于合并模式和仿射合并模式的)两个候选列表存在5个合并候选。使用第一单个上下文变量通过CABAC仅解码合并索引的第一位。并且使用第二单个上下文变量通过CABAC仅解码仿射合并索引的第一位。所有其它位(从第2至第4位)被旁路解码。与当前参考软件相比,当ATMVP作为候选被包括在合并候选列表中时(例如,当在SPS级别处启用ATMVP时),在对合并索引进行解码时使用第一单个上下文变量以及在对仿射合并索引进行解码时使用第二单个上下文变量,通过CABAC仅对合并索引的第一位进行解码。其它位(从第2至第5位或第4位)被旁路解码。然后使用所解码的索引来识别编码器从相应候选(即,合并候选或仿射合并候选)的列表中所选择的候选。

该变型的优点是,针对合并索引和仿射合并索引这两者使用相同的用信号通知索引方案使得降低用于实现这两种不同模式的索引解码和解码器设计(以及编码器设计)的复杂性,而不显著影响编码效率。实际上,对于该变量,用信号通知索引仅需要2个CABAC状态(针对第一和第二单个上下文变量各自的一个),而不是在合并索引的所有位和仿射合并索引的所有位被CABAC编码/解码的情况下所需要的9个或10个。此外,降低了最差情况的复杂性,这是因为所有其它位(除了第一位之外)被CABAC旁路编码,这与利用CABAC编码所有位相比,减少了在CABAC编码/解码处理期间所需的操作的数量。

根据又一变型,CABAC编码或解码对于使用仿射合并模式的情况和使用合并模式的情况针对当前块的运动信息预测子索引的至少一个位使用相同的上下文变量。在该另一变型中,用于合并索引的第一位和仿射合并索引的第一位的上下文变量独立于正在编码或解码哪个索引,即该第一和第二单个上下文变量(来自先前的变型)是不可区分的/可分离的并且是同一个单个上下文变量。因此与先前的变型相反,合并索引和仿射合并索引在CABAC处理期间共享一个上下文变量。如图23所示,用信号通知索引方案对于合并索引和仿射合并索引这两者都是相同的,即,针对这两种模式仅对一种类型的索引“合并idx(2308)”进行编码或解码。就CABAC解码器而言,针对合并索引和仿射合并索引这两者使用相同的句法元素,并且当考虑上下文变量时不需要区分它们。因此,不需要如图22的步骤(2257)中那样使用仿射标志(2306)来确定当前块是否是在仿射合并模式下被编码(要被解码),并且在图23的步骤2306之后不存在分支,这是因为仅一个索引(“合并idx”)需要解码。使用仿射标志来利用仿射合并模式进行运动信息预测(即,在CABAC解码器已经解码索引(“合并idx”)之后的预测处理期间)。此外,仅该索引(即,合并索引和仿射合并索引)的第一位是使用一个单个上下文通过CABAC编码的,并且其它位被旁路编码,如针对第一实施例所描述的。因此在该另一变型中,合并索引和仿射合并索引的第一位的一个上下文变量由用信号通知合并索引和仿射合并索引这两者共享。如果对于合并索引和仿射合并索引,候选列表的大小是不同的,则用于针对各情况用信号通知相关索引的最大位数也可能是不同的,即,它们彼此独立。因此,如果需要,可以根据仿射标志(2306)的值相应地调适被旁路编码的位数,例如以使得能够从位流中解析相关索引的数据。

该变型的优点是在对编码效率没有显著影响的情况下降低了合并索引和仿射合并索引解码处理和解码器设计(以及编码器设计)的复杂性。实际上,对于该另一变型,在用信号通知合并索引和仿射合并索引这两者时,仅需要1个CABAC状态,而不是先前的变型的或9个或10个的CABAC状态。此外,降低了最差情况的复杂性,这是因为所有其它位(除了第一位之外)被CABAC旁路编码,这与利用CABAC编码所有位相比,减少了在CABAC编码/解码处理期间所需的操作的数量。

在该实施例的前述变型中,用信号通知仿射合并索引和合并索引可以如在第一至第十五实施例中的任一个中描述的那样共享一个或多个上下文。该情形的优点是由于编码或解码这些索引所需的上下文的数量的减少而使得复杂性降低。

在本实施例的前述变型中,运动信息预测子候选包括用于获得(或导出)以下各项中的一个或多个的信息:方向、列表的标识、参考帧索引和运动矢量。优选地,运动信息预测子候选包括用于获得运动矢量预测子候选的信息。在优选变型中,运动信息预测子索引(例如,仿射合并索引)用于用信号通知仿射合并模式预测子候选,并且用信号通知仿射合并索引是使用与根据第一至第十五实施例中任一个的用信号通知合并索引或者在当前VTM或HEVC中使用的用信号通知合并索引(其中仿射合并模式的运动信息预测子候选作为合并候选)类似的用信号通知索引来实现的。

在本实施例的前述变型中,如在第一实施例中或如在其它前述第二至第十五实施例中的一些的变型中,所生成的运动信息预测子候选列表包括ATMVP候选。可选地,所生成的运动信息预测子候选列表不包括ATMVP候选。

在该实施例的前述变型中,合并索引和仿射合并索引的候选列表中可包括的候选的最大数量是固定的。合并索引和仿射合并索引的候选列表中可包括的候选的最大数量可以是相同的。然后,通过编码器将用于确定(或者指示)所生成的运动信息预测子候选列表中可包括的运动信息预测子候选的最大数量(或者目标数量)的数据包括在位流中,并且解码器从位流中获得用于确定所生成的运动信息预测子候选列表中可包括的运动信息预测子候选的最大数量(或目标数量)的数据。这使得能够从位流中解析用于解码合并索引或仿射合并索引的数据。该用于确定(或指示)最大数量(或目标数量)的数据可以是解码时的最大数量(或目标数量)本身,或者可以使解码器能够结合其它参数/句法元素(例如,在HEVC中使用的“five_minus_max_num_merge_cand”或“MaxNumMergeCand-1”或其功能等效参数)来确定该最大/目标数量。

可选地,如果合并索引和仿射合并索引的候选列表中的候选的最大数量(或目标数量)可以变化或可以不同(例如,因为可能针对一个列表而未针对其它列表启用或禁用ATMVP候选或任何其它可选候选的使用,或者因为列表使用不同候选列表生成/导出处理),则使用仿射合并模式的情况下的和使用合并模式的情况下的所生成的运动信息预测子候选列表中可包括的运动信息预测子候选的最大数量(或目标数量)可单独地确定,并且编码器将用于确定最大数量/目标数量的数据包括在位流中。然后解码器从位流中获得用于确定最大/目标数量的数据,并使用所获得的数据来解析或解码运动信息预测子索引。然后,可以使用仿射标志以在例如对合并索引和仿射合并索引进行解析或解码之间切换。

本发明的实施例的实现

前述实施例中的一个或多个由进行一个或多个前述实施例的方法步骤的图3中的处理装置300的处理器311、或者图4中的编码器400、图5中的解码器60、图17中的CABAC编码器或其相应CABAC解码器的相应功能模块/单元来实现。

图19是用于实现本发明的一个或多个实施例的计算装置1300的示意性框图。计算装置1300可以是诸如微计算机、工作站或轻型便携式装置等的装置。计算装置1300包括连接到以下各项的通信总线:-中央处理单元(CPU)2001,诸如微处理器等;-用于存储本发明的实施例的方法的可执行代码的随机存取存储器(RAM)2002以及适于记录实现根据本发明的实施例的用于对图像的至少一部分进行编码或解码的方法所需的变量和参数的寄存器,其存储容量例如可以通过连接到扩展端口的可选RAM进行扩展;-用于存储用于实现本发明的实施例的计算机程序的只读存储器(ROM)2003;-网络接口(NET)2004,其通常连接至通信网络,要处理的数字数据通过该通信网络被传输或接收,网络接口(NET)2004可以是单个网络接口,或者由一组不同的网络接口(例如,有线和无线接口,或不同种类的有线或无线接口)组成,在运行在CPU 2001中的软件应用的控制下,数据包被写入网络接口用于传输或者从网络接口读取以进行接收;-用户接口(UI)2005,其可以用于从用户接收输入或向用户显示信息;-硬盘(HD)2006,其可以被设置为大容量存储装置;-输入/输出模块(IO)2007,其可以用于从/向外部装置(诸如视频源或显示器等)接收/发送数据。可执行代码可以存储在ROM 2003中、HD 2006上或诸如盘等的可移动数字介质上。根据变型,程序的可执行代码可以经由NET 2004借助于通信网络来接收,以在被执行之前存储在通信装置1300的存储部件(诸如HD 2006等)之一中。CPU 2001适于控制和指导根据本发明的实施例的一个或多个程序的软件代码的指令或部分的执行,该指令被存储在前述存储部件之一中。例如,在通电之后,CPU 2001能够执行来自从程序ROM 2003或HD 2006加载了指令之后的主RAM存储器2002的、与软件应用有关的那些指令。这种软件应用在由CPU 2001执行时使得进行根据本发明的方法的步骤。

还应理解,根据本发明的其它实施例,在诸如计算机、移动电话(蜂窝电话)、平板或能够向用户提供/显示内容的任何其它类型的装置(例如,显示设备)等的用户终端中提供根据上述实施例的解码器。根据又一实施例,在图像捕获设备中提供根据上述实施例的编码器,该图像捕获设备还包括用于捕获和提供内容以供编码器进行编码的照相机、摄像机或网络照相机(例如,闭路电视或视频监视照相机)。以下参见图20和21提供两个这样的示例。

图20是例示包括网络照相机2102和客户端设备2104的网络照相机系统2100的图。

网络照相机2102包括摄像单元2106、编码单元2108、通信单元2110和控制单元2112。

网络照相机2102和客户端设备2104经由网络200相互连接以能够彼此通信。

摄像单元2106包括镜头和图像传感器(例如,电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)),并捕获对象的图像并基于该图像生成图像数据。该图像可以是静止图像或视频图像。摄像单元还可以包括分别适于(光学地或数字地)变焦或平摇的变焦部件和/或平摇部件。

编码单元2108通过使用在第一实施例至第十六实施例中说明的所述编码方法来对图像数据进行编码。编码单元2108使用在第一实施例至第十六实施例中说明的编码方法中的至少之一。对于其它实例,编码单元2108可以使用在第一实施例至第十六实施例中说明的编码方法的组合。

网络照相机2102的通信单元2110将由编码单元2108编码的经编码的图像数据传输至客户端设备2104。

此外,通信单元2110接收来自客户端设备2104的命令。命令包括用于设置用于编码单元2108的编码的参数的命令。

控制单元2112根据通信单元2110接收到的命令来控制网络照相机2102中的其它单元。

客户端设备2104包括通信单元2114、解码单元2116和控制单元2118。

客户端设备2104的通信单元2114向网络照相机2102传输命令。

此外,客户端设备2104的通信单元2114从网络照相机2102接收经编码的图像数据。

解码单元2116通过使用在第一实施例至第十六实施例中的任一个中说明的所述解码方法来对经编码的图像数据进行解码。对于其它实例,解码单元2116可以使用在第一实施例至第十六实施例中说明的解码方法的组合。

客户端设备2104的控制单元2118根据由通信单元2114接收的用户操作或命令来控制客户端设备2104中的其它单元。

客户端设备2104的控制单元2118控制显示设备2120以显示由解码单元2116解码的图像。

客户端设备2104的控制单元2118还控制显示设备2120以显示用于指定网络照相机2102的参数(包括用于编码单元2108的编码的参数)的值的GUI(图形用户界面)。

客户端设备2104的控制单元2118还根据对显示设备2120所显示的GUI的用户操作输入来控制客户端设备2104中的其它单元。

客户端设备2104的控制单元2118根据对显示设备2120所显示的GUI的用户操作输入来控制客户端设备2104的通信单元2114,以将用于指定网络照相机2102的参数的值的命令传输至网络照相机2102。

网络照相机系统2100可以确定照相机2102是否在记录视频期间利用变焦或平摇,并且当对视频流进行编码时可使用这样的信息,因为在拍摄期间变焦或平摇可以受益于仿射模式的使用,该仿射模式非常适合于对诸如变焦、旋转和/或拉伸(这可能是平摇的副作用,特别是在镜头是“鱼眼”镜头的情况下)等的复杂运动进行编码。

图21是例示智能电话2200的图。

智能电话2200包括通信单元2202、解码/编码单元2204、控制单元2206和显示单元2208。

通信单元2202经由网络接收经编码的图像数据。

解码单元2204对通信单元2202接收到的经编码的图像数据进行解码。

解码单元2204通过使用在第一实施例至第十六实施例中说明的所述解码方法来对经编码的图像数据进行解码。解码单元2204可以使用在第一实施例至第十六实施例中说明的解码方法中的至少之一。对于其它实例,解码/编码单元2204可以使用在第一实施例至第十六实施例中说明的解码方法的组合。

控制单元2206根据通信单元2202接收到的用户操作或命令控制智能电话2200中的其它单元。

例如,控制单元2206控制显示设备2208以显示由解码单元2204解码的图像。

智能电话还可以包括用于记录图像或视频的图像记录装置2210(例如,数字照相机和相关联的电路)。这样的所记录图像或视频可以在控制单元2206的指令下由解码/编码单元2204进行编码。

智能电话还可以包括适于感测移动装置的定向的传感器2212。这样的传感器可以包括加速度计、陀螺仪、罗盘、全球定位(GPS)单元或类似的位置传感器。这样的传感器2212可以确定智能电话是否改变定向,并且在编码视频流时可以使用这样的信息,因为拍摄期间的定向的改变可以受益于仿射模式的使用,该仿射模式非常适合于对诸如旋转等的复杂运动进行编码。

替代和修改

应理解,本发明的目的是确保以最有效率的方式利用仿射模式,并且上面讨论的某些示例涉及根据所感知到的仿射模式有用的可能性来用信号通知使用仿射模式。当已知正对复杂运动(此时仿射变换可能特别有效)进行编码时,本发明的进一步示例可以应用于编码器。这样的情况的示例包括:

a)照相机放大/缩小

b)便携式照相机(例如,移动电话)在拍摄期间改变定向(即,旋转移动)。

c)“鱼眼”镜头照相机平摇(例如,图像的一部分的拉伸/失真)

如此,可以在记录处理期间提出复杂运动的指示,使得可以给予仿射模式用于片、帧序列或者实际上视频流整体的更高可能性。

在进一步的示例中,根据用于记录视频的装置的特征或功能,可以给予仿射模式被使用的更高可能性。例如,移动装置可能比(例如)固定的安全照相机(security camera)更可能改变定向,因此仿射模式可能更适合于对来自前者的视频进行编码。特征或功能的示例包括:变焦部件的存在/使用、位置传感器的存在/使用、平摇部件的存在/使用、装置是否是便携式的、或者装置上的用户选择。

虽然已经参考实施例描述了本发明,但是应当理解,本发明不限于所公开的实施例。本领域技术人员将理解,在不脱离所附权利要求限定的本发明的范围的情况下,可以进行各种改变和修改。本说明书(包括任何所附权利要求、摘要和附图)中公开的所有特征、和/或所公开的任何方法或处理的所有步骤,可以以任何组合进行组合,除了这样的特征和/或步骤中的至少一些相互排斥的组合之外。除非另外明确说明,否则本说明书(包括任何所附权利要求、摘要和附图)中所公开的各个特征可以由用于相同、等同或相似目的的替代特征代替。因此,除非另有明确说明,否则所公开的各个特征仅为通用系列等效或类似特征的一个示例。

还应理解,上述比较、确定、评估、选择、执行、进行或考虑的任何结果(例如,在编码或滤波处理期间作出的选择)可以在位流中的数据(例如,指示结果的标志或数据)中指示或可从位流中的数据确定/推断,使得所指示或确定/推断的结果可以用于处理而不是实际上例如在解码处理期间进行比较、确定、评估、选择、执行、进行或考虑。

在权利要求中,词语“包括”不排除其它元素或步骤,并且不定冠词“a”或“an”不排除多个。仅仅在相互不同的从属权利要求中记载不同特征的事实并不指示这些特征的组合不能被有利地使用。

权利要求中出现的附图标记仅作为说明,并且不应对权利要求的范围产生限定作用。

在前述实施例中,可以以硬件、软件、固件或其任何组合来实现所描述的功能。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质而发送,并且可以由基于硬件的处理单元执行。

计算机可读介质可以包括计算机可读存储介质,其与诸如数据存储介质等的有形介质或者包括例如根据通信协议来促进将计算机程序从一个地方转移到另一个地方的任何介质的通信介质相对应。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或者(2)诸如信号或载波等的通信介质。数据存储介质可以是可由一个或多个计算机或者一个或多个处理器访问以检索用于实现本发明中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。

作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储装置、闪速存储器或可以用于以指令或数据结构的形式存储期望程序代码并可以由计算机访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线(DSL)或无线技术(诸如红外、无线电和微波等)从网站、服务器或其它远程源发送指令,则同轴线缆、光纤线缆、双绞线、DSL或无线技术(诸如红外、无线电和微波等)包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它瞬态介质,而是针对非瞬态的有形存储介质。这里使用的盘(disk)和碟(disc)包括致密盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中盘通常以磁性方式复制数据,而碟则通过激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。

指令可以由诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门/逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路等的一个或多个处理器执行。因此,如这里使用的术语“处理器”可以指任何前述结构或适合于实现这里所述技术的任何其它结构。另外,在一些方面,这里描述的功能可以在被配置为编码和解码的专用硬件和/或软件模块内提供,或结合在组合编解码器中。此外,该技术可以在一个或多个电路或逻辑元件中完全实现。

相关技术
  • 一种编码方法、解码方法及装置、计算机可读存储介质
  • 一种视频编码方法、解码方法、装置及电子设备
  • 一种编码方法及装置、计算机存储介质
  • 机器人编码方法及装置、机器人、存储介质、处理器
  • 一种数据编码方法、装置以及存储介质
  • 图像编码装置、图像解码装置、图像编码方法、图像解码方法、图像编码程序、图像解码程序、以及记录了图像编码程序的计算机可读记录介质、记录了图像解码程序的计算机可读记录介质
  • 图像编码方法、图像解码方法、存储器管理方法、图像编码装置、图像解码装置、存储器管理装置及图像编码解码装置
技术分类

06120116503113