首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 仿射运动信息导出

仿射运动信息导出

阅读:1035发布:2020-05-22

专利汇可以提供仿射运动信息导出专利检索,专利查询,专利分析的服务。并且本 发明 提供用于在 解码器 处导出一或多个仿射运动参数集的技术和系统。例如,所述解码器可从经编码视频位流获得视频数据。所述视频数据包含至少当前图片和参考图片。所述解码器可确定用于所述当前图片的当前 块 的仿射运动参数集。所述仿射运动参数集可用于对所述当前块执行 运动补偿 预测 。所述仿射运动参数集可使用所述当前块的当前仿射模板和所述参考图片的参考仿射模板确定。在一些状况下, 编码器 可使用所述当前块的当前仿射模板和所述参考图片的参考仿射模板来确定用于当前块的仿射运动参数集,且可生成经编码视频位流,所述经编码视频位流包含指示基于模板匹配的仿射运动导出模式将由解码器用于所述当前块的语法项。所述经编码视频位流可不包含用于确定所述仿射运动参数集的任何仿射运动参数。,下面是仿射运动信息导出专利的具体信息内容。

1.一种在解码器处导出一或多个仿射运动参数集的方法,其包括:
通过所述解码器获得来自经编码视频位流的数据,所述视频数据包含至少当前图片和参考图片;及
通过所述解码器确定用于所述当前图片的当前的仿射运动参数集,所述仿射运动参数集用于对所述当前块执行运动补偿预测,其中所述仿射运动参数集是使用所述当前块的当前仿射模板和所述参考图片的参考仿射模板确定。
2.根据权利要求1所述的方法,其进一步包括:
使用针对所述当前块确定的所述仿射运动参数集确定用于所述当前块的多个子块的运动矢量
3.根据权利要求1所述的方法,其进一步包括:
使用针对所述当前块确定的所述仿射运动参数集确定用于所述当前块的多个像素的运动矢量。
4.根据权利要求1所述的方法,其中确定用于所述当前块的所述仿射运动参数集包含:
通过所述解码器获得初始仿射运动参数集;
通过所述解码器使用所述初始仿射运动参数集导出用于所述当前块的所述当前仿射模板中的一或多个像素的一或多个仿射运动矢量,所述当前块的所述当前仿射模板包含与所述当前块相邻的经重构像素;
通过所述解码器使用针对所述当前仿射模板中的所述一或多个像素导出的所述一或多个仿射运动矢量来确定所述参考图片的所述参考仿射模板中的一或多个像素;
通过所述解码器最小化至少所述当前仿射模板中的所述一或多个像素和使用所述一或多个仿射运动矢量确定的所述参考仿射模板中的所述一或多个像素之间的误差;及通过所述解码器基于至少所述当前仿射模板中的所述一或多个像素和所述参考仿射模板中的所述一或多个像素之间的所述最小化误差来确定用于所述当前仿射模板的所述一或多个控制点的所述仿射运动参数集。
5.根据权利要求4所述的方法,其中确定用于所述当前仿射模板的所述一或多个控制点的所述仿射运动参数集包含:
使用至少所述当前仿射模板中的所述一或多个像素和使用所述一或多个仿射运动矢量确定的所述参考仿射模板中的所述一或多个像素来确定用于所述当前仿射模板的所述一或多个控制点的多个仿射运动参数集;
根据所述多个仿射运动参数集确定每一仿射运动参数集的质量度量;及针对所述当前仿射模板的所述一或多个控制点从所述多个仿射运动参数集选择所述多个仿射运动参数集当中具有最低度量的所述仿射运动参数集。
6.根据权利要求5所述的方法,其中所述质量度量包含绝对差和SAD。
7.根据权利要求4所述的方法,其中基于针对所述当前块确定的平移运动矢量来确定所述初始仿射运动参数集。
8.根据权利要求7所述的方法,其中使用速率上变频FRUC模板匹配来确定所述平移运动矢量。
9.根据权利要求4所述的方法,其中基于来自所述当前块的相邻块的仿射运动矢量来确定所述初始仿射运动参数集。
10.根据权利要求1所述的方法,其中未从所述经编码视频位流解码任何仿射运动参数来确定所述仿射运动参数集。
11.根据权利要求1所述的方法,其中所述当前块的所述当前仿射模板包含所述当前块的一或多个空间相邻样本。
12.根据权利要求11所述的方法,其中所述空间相邻样本包含来自顶部相邻块或左侧相邻块中的一或多者的样本。
13.根据权利要求1所述的方法,其中所述当前仿射模板包含L形块,所述L形块包含来自所述当前块的顶部相邻块的样本和来自所述当前块的左侧相邻块的样本。
14.一种用于导出一或多个仿射运动参数集的解码器,其包括:
存储器,其经配置以存储经编码视频位流的视频数据;及
处理器,其经配置以:
获得所述经编码视频位流的所述视频数据,所述所获得视频数据包含至少当前图片和参考图片;及
确定用于所述当前图片的当前块的仿射运动参数集,所述仿射运动参数集用于对所述当前块执行运动补偿预测,其中所述仿射运动参数集是使用所述当前块的当前仿射模板和所述参考图片的参考仿射模板确定。
15.根据权利要求14所述的解码器,其中所述处理器经进一步配置以:
使用针对所述当前块确定的所述仿射运动参数集来确定用于所述当前块的多个子块的运动矢量。
16.根据权利要求14所述的解码器,其中所述处理器经进一步配置以:
使用针对所述当前块确定的所述仿射运动参数集合来确定用于所述当前块的多个像素的运动矢量。
17.根据权利要求14所述的解码器,其中确定用于所述当前块的所述仿射运动参数集包含:
获得初始仿射运动参数集;
使用所述初始仿射运动参数集导出用于所述当前块的当前仿射模板中的一或多个像素的一或多个仿射运动矢量,所述当前块的所述当前仿射模板包含与所述当前块相邻的经重构像素;
使用针对所述当前仿射模板中的所述一或多个像素导出的所述一或多个仿射运动矢量来确定所述参考图片的所述参考仿射模板中的一或多个像素;
最小化至少所述当前仿射模板中的所述一或多个像素和使用所述一或多个仿射运动矢量确定的所述参考仿射模板中的所述一或多个像素之间的误差;及
基于至少所述当前仿射模板中的所述一或多个像素和所述参考仿射模板中的所述一或多个像素之间的所述最小化误差来确定用于所述当前仿射模板的一或多个控制点的所述仿射运动参数集。
18.根据权利要求17所述的解码器,其中确定用于所述当前仿射模板的所述一或多个控制点的所述仿射运动参数集包含:
使用至少所述当前仿射模板中的所述一或多个像素和使用所述一或多个仿射运动矢量确定的所述参考仿射模板中的所述一或多个像素来确定用于所述当前仿射模板的所述一或多个控制点的多个仿射运动参数集;
根据所述多个仿射运动参数集确定每一仿射运动参数集的质量度量;及针对所述当前仿射模板的所述一或多个控制点从所述多个仿射运动参数集选择所述多个仿射运动参数集当中具有最低度量的所述仿射运动参数集。
19.根据权利要求18所述的解码器,其中所述质量度量包含绝对差和SAD。
20.根据权利要求17所述的解码器,其中基于针对所述当前块确定的平移运动矢量来确定所述初始仿射运动参数集。
21.根据权利要求20所述的解码器,其中使用帧速率上变频FRUC模板匹配来确定所述平移运动矢量。
22.根据权利要求17所述的解码器,其中基于来自所述当前块的相邻块的仿射运动矢量来确定所述初始仿射运动参数集。
23.根据权利要求14所述的解码器,其中未从所述经编码视频位流解码任何仿射运动参数来确定所述仿射运动参数集。
24.根据权利要求14所述的解码器,其中所述当前块的所述当前仿射模板包含所述当前块的一或多个空间相邻样本。
25.根据权利要求24所述的解码器,其中所述空间相邻样本包含来自顶部相邻块或左侧相邻块中的一或多者的样本。
26.根据权利要求14所述的解码器,其中所述当前仿射模板包含L形块,所述L形块包含来自所述当前块的顶部相邻块的样本和来自所述当前块的左侧相邻块的样本。
27.根据权利要求14所述的解码器,其中所述解码器为具有用于显示经解码视频数据的显示器的移动装置的一部分。
28.根据权利要求14所述的解码器,其中所述解码器为具有对于捕获图片的相机的移动装置的一部分。
29.一种对视频数据进行编码的方法,其包括:
获得视频数据,所诉视频数据包含至少当前图片和参考图片;
确定用于所述当前图片的当前块的仿射运动参数集,所述仿射运动参数集用于对所述当前块执行运动补偿预测,其中所述仿射运动参数集是使用所述当前块的当前仿射模板和所述参考图片的参考仿射模板确定;及
生成经编码视频位流,所述经编码视频位流包含指示基于模板匹配的仿射运动导出模式将由解码器用于所述当前块的语法项,其中所述经编码视频位流不包含用于确定所述仿射运动参数集的任何仿射运动参数。
30.根据权利要求29所述的方法,其进一步包括:
使用针对所述当前块确定的所述仿射运动参数集确定用于所述当前块的多个子块的运动矢量。
31.根据权利要求29所述的方法,其进一步包括:
使用针对所述当前块确定的所述仿射运动参数集确定用于所述当前块的多个像素的运动矢量。
32.根据权利要求29所述的方法,其中确定用于所述当前块的所述仿射运动参数集包含:
获得初始仿射运动参数集;
使用所述初始仿射运动参数集导出用于所述当前块的当前仿射模板中的一或多个像素的一或多个仿射运动矢量,所述当前块的所述当前仿射模板包含与所述当前块相邻的经重构像素;
使用针对所述当前仿射模板中的所述一或多个像素导出的所述一或多个仿射运动矢量来确定所述参考图片的所述参考仿射模板中的一或多个像素;
最小化至少所述当前仿射模板中的所述一或多个像素和使用所述一或多个仿射运动矢量确定的所述参考仿射模板中的所述一或多个像素之间的误差;及
基于至少所述当前仿射模板中的所述一或多个像素和所述参考仿射模板中的所述一或多个像素之间的所述最小化误差来确定用于所述当前仿射模板的一或多个控制点的所述仿射运动参数集。
33.根据权利要求32所述的方法,其中确定用于所述当前仿射模板的所述一或多个控制点的所述仿射运动参数集包含:
使用至少所述当前仿射模板中的所述一或多个像素和使用所述一或多个仿射运动矢量确定的所述参考仿射模板中的所述一或多个像素来确定用于所述当前仿射模板的所述一或多个控制点的多个仿射运动参数集;
根据所述多个仿射运动参数集确定每一仿射运动参数集的质量度量;及针对所述当前仿射模板的所述一或多个控制点从所述多个仿射运动参数集选择所述多个仿射运动参数集当中具有最低度量的所述仿射运动参数集。
34.根据权利要求33所述的方法,其中所述质量度量包含绝对差和SAD。
35.根据权利要求32所述的方法,其中基于针对所述当前块确定的平移运动矢量来确定所述初始仿射运动参数集。
36.根据权利要求35所述的方法,其中使用帧速率上变频FRUC模板匹配来确定所述平移运动矢量。
37.根据权根据权利要求32的方法,其中基于来自所述当前块的相邻块的仿射运动矢量来确定所述初始仿射运动参数集。
38.根据权利要求29所述的方法,其中所述当前块的所述当前仿射模板包含所述当前块的一或多个空间相邻样本。
39.根据权利要求38所述的方法,其中所述空间相邻样本包含来自顶部相邻块或左侧相邻块中的一或多者的样本。
40.根据权利要求29所述的方法,其中所述当前仿射模板包含L形块,所述L形块包含来自所述当前块的顶部相邻块的样本和来自所述当前块的左侧相邻块的样本。
41.根据权利要求29所述的方法,其进一步包括存储所述经编码视频位流。
42.根据权利要求29所述的方法,其进一步包括发射所述经编码视频位流。
43.一种用于对视频数据进行编码的编码器,其包括:
存储器,其经配置以存储视频数据;及
处理器,其经配置以:
获得所述视频数据,所述视频数据包含至少当前图片和参考图片;
确定用于所述当前图片的当前块的仿射运动参数集,所述仿射运动参数集用于对所述当前块执行运动补偿预测,其中所述仿射运动参数集是使用所述当前块的当前仿射模板和所述参考图片的参考仿射模板确定;及
生成经编码视频位流,所述经编码视频位流包含指示基于模板匹配的仿射运动导出模式将由解码器用于所述当前块的语法项,其中所述经编码视频位流不包含用于确定所述仿射运动参数集的任何仿射运动参数。
44.根据权利要求43所述的编码器,其中所述处理器经进一步配置以:
使用针对所述当前块确定的所述仿射运动参数集来确定用于所述当前块的多个子块的运动矢量。
45.根据权利要求43所述的编码器,其中所述处理器经进一步配置以:
使用针对所述当前块确定的所述仿射运动参数集合来确定用于所述当前块的多个像素的运动矢量。
46.根据权利要求43所述的编码器,其中确定用于所述当前块的所述仿射运动参数集包含:
获得初始仿射运动参数集;
使用所述初始仿射运动参数集导出用于所述当前块的当前仿射模板中的一或多个像素的一或多个仿射运动矢量,所述当前块的所述当前仿射模板包含与所述当前块相邻的经重构像素;
使用针对所述当前仿射模板中的所述一或多个像素导出的所述一或多个仿射运动矢量来确定所述参考图片的所述参考仿射模板中的一或多个像素;
最小化至少所述当前仿射模板中的所述一或多个像素和使用所述一或多个仿射运动矢量确定的所述参考仿射模板中的所述一或多个像素之间的误差;及
基于至少所述当前仿射模板中的所述一或多个像素和所述参考仿射模板中的所述一或多个像素之间的所述最小化误差来确定用于所述当前仿射模板的一或多个控制点的所述仿射运动参数集。
47.根据权利要求46所述的编码器,其中确定用于所述当前仿射模板的所述一或多个控制点的所述仿射运动参数集包含:
使用至少所述当前仿射模板中的所述一或多个像素和使用所述一或多个仿射运动矢量确定的所述参考仿射模板中的所述一或多个像素来确定用于所述当前仿射模板的所述一或多个控制点的多个仿射运动参数集;
根据所述多个仿射运动参数集确定每一仿射运动参数集的质量度量;及针对所述当前仿射模板的所述一或多个控制点从所述多个仿射运动参数集选择所述多个仿射运动参数集当中具有最低度量的所述仿射运动参数集。
48.根据权利要求47所述的编码器,其中所述质量度量包含绝对差和SAD。
49.根据权利要求46所述的编码器,其中基于针对所述当前块确定的平移运动矢量来确定所述初始仿射运动参数集。
50.根据权利要求49所述的编码器,其中使用帧速率上变频FRUC模板匹配来确定所述平移运动矢量。
51.根据权利要求46所述的编码器,其中基于来自所述当前块的相邻块的仿射运动矢量来确定所述初始仿射运动参数集。
52.根据权利要求43所述的编码器,其中所述当前块的所述当前仿射模板包含所述当前块的一或多个空间相邻样本。
53.根据权利要求52所述的编码器,其中所述空间相邻样本包含来自顶部相邻块或左侧相邻块中的一或多者的样本。
54.根据权利要求43所述的编码器,其中所述当前仿射模板包含L形块,所述L形块包含来自所述当前块的顶部相邻块的样本和来自所述当前块的左侧相邻块的样本。
55.根据权利要求43所述的编码器,其中所述处理器经配置以将所述经编码视频位流存储在所述存储器中。
56.根据权利要求43所述的编码器,其进一步包括经配置以发射所述经编码视频位流的发射器。
57.根据权利要求43所述的编码器,其中所述编码器为具有用于显示经解码视频数据的显示器的移动装置的一部分。
58.根据权利要求43所述的编码器,其中所述编码器为具有用于捕获图片的相机的移动装置的一部分。

说明书全文

仿射运动信息导出

技术领域

[0001] 本申请案涉及视频译码和压缩。例如,描述用于仿射运动导出的系统和方法。

背景技术

[0002] 许多装置和系统允许处理和输出视频数据以供消费。数字视频数据包含大量数据以满足消费者和视频供应商的需求。举例来说,视频数据的消费者希望视频具有最佳的质量以及高保真度、分辨率率等等。因此,需要满足这些需求的大量视频数据给处理和存储视频数据的通信网络和装置造成了负担。
[0003] 各种视频译码技术可用以压缩视频数据。根据一或多个视频译码标准执行视频译码。举例来说,视频译码标准包含高效视频译码(HEVC)、高级视频译码(AVC)、移动图片专家组(MPEG)译码,等等。视频译码通常使用预测方法(例如,帧间预测、帧内预测,等等),这些预测方法利用存在于视频图像或序列中的冗余。视频译码技术的重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的降级。随着视频服务的不断演进,需要具有较好译码效率的编码技术。发明内容
[0004] 本文中描述用于执行解码器边仿射运动导出的技术和系统。基于仿射运动的预测允许估计复杂动作,例如旋转、缩放、平移,或其任何组合,以及其它运动。在一些状况下,使用本文中所描述的技术,可通过用于视频图片的一或多个的视频解码装置(还被称作解码器)来确定仿射运动参数,而无需将仿射运动信息发送到解码装置。举例来说,针对此仿射运动导出模式,未用信号发送任何仿射运动参数(或仿射运动参数与仿射运动参数的预测值之间的差)。
[0005] 对当前块的解码器侧仿射运动导出可基于模板的使用。例如,可使用包含当前块的空间相邻样本的当前仿射模板连同参考图片的参考仿射模板来确定当前块的仿射运动参数。例如,当前仿射模板的控制点的仿射运动参数可通过最小化仿射预测(与参考仿射模板中的像素相关联)与当前块的当前仿射模板的经重构像素之间的错误(或失真)来导出。仿射运动参数定义用于当前仿射模板的控制点的仿射运动矢量。控制点的仿射运动矢量可然后用以确定用于当前块的像素或子块的运动矢量。
[0006] 根据至少一个实例,提供一种在解码器处导出一或多个仿射运动参数集的方法。所述方法包括通过解码器从经编码视频位流获得视频数据。所述视频数据包含至少当前图片和参考图片。方法进一步包括通过解码器确定用于当前图片的当前块的仿射运动参数集。仿射运动参数集用于对当前块执行运动补偿预测。使用当前块的当前仿射模板和参考图片的参考仿射模板确定仿射运动参数集。
[0007] 在另一实例中,提供一种用于导出一或多个仿射运动参数集的解码器,所述解码器包含经配置以存储经编码视频位流的视频数据的存储器以及处理器。所述处理器经配置以且可获得经编码视频位流的视频数据。所述视频数据包含至少当前图片和参考图片。处理器经进一步配置以且可确定用于当前图片的当前块的仿射运动参数集。仿射运动参数集用于对当前块执行运动补偿预测。仿射运动参数集是使用当前块的当前仿射模板和参考图片的参考仿射模板确定。
[0008] 在于解码器处导出一或多个仿射运动参数集的另一实例中,提供一种非暂时性计算机可读媒体,在其上储存有指令,所述指令在由一或多个处理器执行时致使一或多个处理器:通过解码器从经编码视频位流获得视频数据,所述视频数据包含至少当前图片和参考图片;及通过解码器确定用于当前图片的当前块的仿射运动参数集,仿射运动参数集用于对当前块执行运动补偿预测,其中仿射运动参数集是使用当前块的当前仿射模板和参考图片的参考仿射模板确定。
[0009] 在另一实例中,提供一种导出一或多个仿射运动参数集的解码器。解码器包含用于从经编码视频位流获得视频数据的装置。所述视频数据包含至少当前图片和参考图片。解码器进一步包含用于确定用于当前图片的当前块的仿射运动参数集的装置。仿射运动参数集用于对当前块执行运动补偿预测。仿射运动参数集是使用当前块的当前仿射模板和参考图片的参考仿射模板确定。
[0010] 在一些方面中,上文描述用于在解码器处导出一或多个仿射运动参数集的方法、解码器及计算机可读媒体可进一步包括:使用针对当前块确定的仿射运动参数集来确定用于当前块的多个子块的运动矢量。
[0011] 在一些方面中,上文描述用于在解码器处导出一或多个仿射运动参数集的方法、解码器及计算机可读媒体可进一步包括:使用针对当前块确定的仿射运动参数集来确定用于当前块的多个像素的运动矢量。
[0012] 在一些方面中,确定用于当前块的仿射运动参数集包含:通过解码器获得初始仿射运动参数集;通过解码器使用初始仿射运动参数集导出用于当前块的当前仿射模板中的一或多个像素的一或多个仿射运动矢量,当前块的当前仿射模板包含邻近当前块的经重构像素;通过解码器使用导出用于当前仿射模板中的一或多个像素的一或多个仿射运动矢量确定参考图片的参考仿射模板中的一或多个像素;通过解码器最小化至少当前仿射模板中的一或多个像素与使用一或多个仿射运动矢量确定的参考仿射模板中的一或多个像素之间的误差;及通过解码器基于至少当前仿射模板中的一或多个像素与参考仿射模板中的一或多个像素之间的最小化误差来确定用于当前仿射模板的一或多个控制点的仿射运动参数集。
[0013] 在一些方面中,确定用于当前仿射模板的一或多个控制点的仿射运动参数集包含:使用至少当前仿射模板中的一或多个像素及使用一或多个仿射运动矢量确定的参考仿射模板中的一或多个像素确定用于当前仿射模板的一或多个控制点的多个仿射运动参数集;从多个仿射运动参数集确定每一仿射运动参数集的质量度量;及针对当前仿射模板的一或多个控制点从多个仿射运动参数集选择具有多个仿射运动参数集中的最低度量的仿射运动参数集。在一些实例中,质量度量包含绝对差和(SAD)。
[0014] 在一些方面中,基于针对当前块确定的平移运动矢量来确定初始仿射运动参数集。在一些状况下,使用帧速率上变频(FRUC)模板匹配来确定平移运动矢量。
[0015] 在一些方面中,基于来自当前块的相邻块的仿射运动矢量来确定初始仿射运动参数集。
[0016] 在一些方面中,未从经编码视频位流解码任何仿射运动参数来确定仿射运动参数集。
[0017] 在一些方面中,当前块的当前仿射模板包含当前块的一或多个空间相邻样本。在一些状况下,空间相邻样本包含来自顶部相邻块或左侧相邻块中的一或多者的样本。
[0018] 在一些方面中,当前仿射模板包含L形块。L形块包含来自当前块的顶部相邻块的样本及来自当前块的左侧相邻块的样本。
[0019] 在一些状况下,解码器为具有用于显示经解码视频数据的显示器的移动装置的一部分。在一些状况下,解码器为具有用于捕获图片的相机的移动装置的一部分。
[0020] 根据至少一个其它实例,提供一种编码视频数据的方法。所述方法包括获得视频数据。所述视频数据包含至少当前图片和参考图片。方法进一步包括确定用于当前图片的当前块的仿射运动参数集。仿射运动参数集用于对当前块执行运动补偿预测。仿射运动参数集是使用当前块的当前仿射模板和参考图片的参考仿射模板确定。所述方法进一步包括生成经编码视频位流。经编码视频位流包含指示基于模板匹配的仿射运动导出模式将由解码器用于当前块的语法项。经编码视频位流不包含用于确定仿射运动参数集的任何仿射运动参数。
[0021] 在另一实例中,提供一种用于编码视频数据的编码器,所述编码器包含经配置以存储视频数据的存储器及处理器。所述处理器经配置以且可获得视频数据。所述视频数据包含至少当前图片和参考图片。处理器经进一步配置以且可确定用于当前图片的当前块的仿射运动参数集。仿射运动参数集用于对当前块执行运动补偿预测。仿射运动参数集是使用当前块的当前仿射模板和参考图片的参考仿射模板确定。处理器经进一步配置以且可生成经编码视频位流,所述经编码视频位流包含指示基于模板匹配的仿射运动导出模式将由解码器用于当前块的语法项,其中经编码视频位流不包含用于确定仿射运动参数集的任何仿射运动参数。
[0022] 在编码视频数据的另一实例中,提供一种非暂时性计算机可读媒体,在其上储存有指令,所述指令在由一或多个处理器执行时致使一或多个处理器:得到视频数据,所述视频数据包含至少当前图片和参考图片;确定用于当前图片的当前块的仿射运动参数集,仿射运动参数集用于对当前块执行运动补偿预测,其中仿射运动参数集合是使用当前块的当前仿射模板和参考图片的参考仿射模板确定;及生成经编码视频位流,所述经编码视频位流包含指示基于模板匹配的仿射运动模式由解码器用于当前块的语法项,其中所述经编码视频位流不包含用于确定仿射运动参数集的任何仿射运动参数。
[0023] 在另一实例中,提供一种用于编码视频数据的编码器。编码器包含用于获得视频数据的装置。所述视频数据包含至少当前图片和参考图片。编码器进一步包含用于确定用于当前图片的当前块的仿射运动参数集的装置。仿射运动参数集用于对当前块执行运动补偿预测。仿射运动参数集是使用当前块的当前仿射模板和参考图片的参考仿射模板确定。编码器进一步包含用于生成经编码视频位流的装置。经编码视频位流包含指示基于模板匹配的仿射运动导出模式将由解码器用于当前块的语法项。经编码视频位流不包含用于确定仿射运动参数集的任何仿射运动参数。
[0024] 在一些方面中,上文描述用于编码视频数据的方法、编码器及计算机可读媒体可进一步包括:使用针对当前块确定的仿射运动参数集来确定用于当前块的多个子块的运动矢量。
[0025] 在一些方面中,上文描述用于编码视频数据的方法、编码器及计算机可读媒体可进一步包括:使用针对当前块确定的仿射运动参数集来确定用于当前块的多个像素的运动矢量。
[0026] 在一些方面中,确定用于当前块的仿射运动参数集包含:获得初始仿射运动参数集;使用初始仿射运动参数集导出用于当前块的当前仿射模板中的一或多个像素的一或多个仿射运动矢量,当前块的当前仿射模板包含邻近当前块的经重构像素;使用导出用于当前仿射模板中的一或多个像素的一或多个仿射运动矢量确定参考图片的参考仿射模板中的一或多个像素;最小化至少当前仿射模板中的一或多个像素与使用一或多个仿射运动矢量确定的参考仿射模板中的一或多个像素之间的误差;及基于至少当前仿射模板中的一或多个像素与参考仿射模板中的一或多个像素之间的最小化误差来确定用于当前仿射模板的一或多个控制点的仿射运动参数集。
[0027] 在一些方面中,确定用于当前仿射模板的一或多个控制点的仿射运动参数集包含:使用至少当前仿射模板中的一或多个像素及使用一或多个仿射运动矢量确定的参考仿射模板中的一或多个像素确定用于当前仿射模板的一或多个控制点的多个仿射运动参数集;从多个仿射运动参数集确定每一仿射运动参数集的质量度量;及针对当前仿射模板的一或多个控制点从多个仿射运动参数集选择具有多个仿射运动参数集中的最低度量的仿射运动参数集。在一些实例中,质量度量包含绝对差和(SAD)。
[0028] 在一些方面中,基于针对当前块确定的平移运动矢量来确定初始仿射运动参数集。在一些状况下,使用帧速率上变频(FRUC)模板匹配来确定平移运动矢量。
[0029] 在一些方面中,基于来自当前块的相邻块的仿射运动矢量来确定初始仿射运动参数集。
[0030] 在一些方面中,当前块的当前仿射模板包含当前块的一或多个空间相邻样本。在一些实例中,空间相邻样本包含来自顶部相邻块或左侧相邻块中的一或多者的样本。
[0031] 在一些方面中,当前仿射模板包含L形块。L形块包含来自当前块的顶部相邻块的样本及来自当前块的左侧相邻块的样本。
[0032] 在一些方面中,上文描述用于编码视频数据的方法、编码器及计算机可读媒体可进一步包括:存储经编码视频位流。在一些状况下,编码器或包含编码器的设备的处理器经配置以将经编码视频位流存储在编码器的存储器或包含编码器的设备的存储器中。
[0033] 在一些方面中,上文描述用于编码视频数据的方法、编码器及计算机可读媒体可进一步包括:发射经编码视频位流。在一些状况下,编码器包含发射器,所述发射器经配置以发射经编码视频位流。在一些状况下,编码器为具有发射器的装置的一部分,所述发射器经配置以发射编码器。
[0034] 在一些方面中,编码器为具有显示器的移动装置的一部分,所述显示器用于显示经解码视频数据。在一些方面中,编码器为具有用于捕获图片的相机的移动装置的一部分。
[0035] 本发明内容并非意图标识所主张的标的物的关键特征或基本特征,也并非意图单独用于确定所主张的标的物的范围。应参考此专利的整个说明书的适当部分、任何或所有图式以及每一权利要求来理解标的物。
[0036] 在参考以下说明书、权利要求书以及附图之后,前述内容连同其它特征和实施例将变得更显而易见。

附图说明

[0037] 下文参考以下图式图详细描述各种实施方案的实例:
[0038] 图1是根据一些实例说明编码装置和解码装置的实例的框图
[0039] 图2是根据一些实例说明HEVC中译码单元(CU)结构的实例的图;
[0040] 图3是根据一些实例说明用于帧间预测模式的分割模式的实例的图;
[0041] 图4A是根据一些实例说明用于导出用于合并帧间预测模式的空间相邻运动矢量(MV)候选者的方法的实例的图;
[0042] 图4B是根据一些实例说明用于导出用于高级运动矢量预测(AMVP)帧间预测模式的空间相邻MV候选者的方法的实例的图;
[0043] 图5A是根据一些实例说明使用四叉树-二叉树(QTBT)结构的块分割的实例的图;
[0044] 图5B是根据一些实例说明对应于图5A中展示的块分割的树结构的图;
[0045] 图6是根据一些实例说明可供在QTBT中使用的一组译码单元(CU)分裂模式的实例的图;
[0046] 图7是根据一些实例说明用于当前块的简化仿射运动模型的实例的图;
[0047] 图8是根据一些实例说明块的子块的运动矢量场的实例的图;
[0048] 图9是根据一些实例说明仿射帧间(AF_INTER)模式中的运动矢量预测的实例的图;
[0049] 图10A和图10B是根据一些实例说明仿射合并(AF_MERGE)模式中的运动矢量预测的实例的图;
[0050] 图11A是根据一些实例说明当前块的实例和当前块的当前仿射模板的图;
[0051] 图11B是根据一些实例说明具有当前仿射模板的当前块和具有参考仿射模板的参考图片的参考块的图;
[0052] 图11C是根据一些实例说明块的子块的运动矢量场的实例的图;
[0053] 图12是根据一些实例说明用于FRUC的基于模板匹配的运动估计的实例的图;
[0054] 图13是根据一些实例说明用于帧速率上变频(FRUC)的基于双边匹配的运动估计的实例的图;
[0055] 图14是根据一些实例说明用于在解码器处导出一或多个仿射运动参数集的过程的实例的流程图
[0056] 图15是根据一些实例说明用于编码视频数据的过程的实例的流程图;
[0057] 图16是根据一些实例说明实例编码装置的框图;及
[0058] 图17是根据一些实例说明实例视频解码装置的框图。

具体实施方式

[0059] 下文提供某些方面和实施方案。如对于所属领域的技术人员来说将显而易见的是,这些方面和实施方案中的一些可以独立地应用并且其中一些可以组合应用。在以下描述中,出于解释的目的,阐述特定细节以便提供对各种实施方案的透彻理解。然而,将显而易见的是,可在没有这些特定细节的情况下实践各种实施方案。图和描述并不意欲是限制性的。
[0060] 以下描述仅提供实例实施方案,且并不意图限制本发明的范围、适用性或配置。实际上,实例实施方案的以下描述将为所属领域的技术人员提供用于实施实例的启发性描述。应理解,在不脱离如所附权利要求书中所给出的本发明的精神和范围的情况下,可以在元件的功能和布置上作出各种改变。
[0061] 在以下描述中给出特定细节以提供对不同实施方案的透彻理解。然而,所属领域的一般技术人员将理解,可在没有这些具体细节的情况下实践所述实施方案。举例来说,电路、系统、网络、过程和其它组件可以框图形式展示为组件以免以不必要的细节混淆实例。在其它情况下,可以在没有不必要的细节的情况下展示众所周知的电路、过程、算法、结构以及技术,以免混淆实例。
[0062] 此外,应注意,个别实施方案可描述为经描绘为流程图、作业图、数据流图、结构图或框图的过程。尽管流程图可将操作描述为连续过程,但许多操作可并行或同时执行。另外,可重新布置操作的次序。过程在过程的操作完成时终止,但是可具有不包含在图中的额外步骤。过程可对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,过程的终止可对应于函数返回到调用函数或主函数。
[0063] 术语“计算机可读媒体”包含但不限于便携式或非便携式存储装置、光学存储装置以及能够存储、包含或载运指令和/或数据的各种其它媒体。计算机可读媒体可包含非暂时性媒体,在非暂时性媒体中可存储数据,且非暂时性媒体并不包含无线地或在有线连接上传播的载波和/或暂时性电子信号。非暂时性媒体的实例可包含但不限于,磁盘或磁带、光学存储媒体,例如光盘(CD)或数字通用光盘(DVD)、快闪存储器、存储器或存储器装置。计算机可读媒体可具有存储在其上的可表示程序、函数、子程序、程序、例程、子例程、模块、软件包、类别的代码和/或机器可执行指令,或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而联接到另一代码段或硬件电路。信息、自变量、参数、数据等可经由包含存储器共享、消息传递、令牌传递、网络发射等等的任何合适的装置传递、转发或发射。
[0064] 此外,各种实例可通过硬件、软件、固件中间件微码、硬件描述语言或其任何组合来实施。当以软件、固件、中间件或微码实施时,用以执行必要任务的程序代码或代码段(例如,计算机程序产品)可存储在计算机可读或机器可读媒体中。处理器可以执行必要任务。
[0065] 随着越来越多的装置和系统为消费者提供消费数字视频数据的能,对于高效视频译码技术的需要变得越来越重要。需要视频译码以减少处理存在于数字视频数据中的大量数据所必需的存储和发射需求。各种视频译码技术可用以在维持高视频质量的同时将视频数据压缩成使用较低比特率的形式。
[0066] 图1是说明包含编码装置104和解码装置112的视频译码系统100的实例的框图。编码装置104可以是源装置的一部分,且解码装置112可以是接收装置的一部分。源装置和/或接收装置可包含电子装置,例如,移动或固定电话手持机(例如,智能电话、蜂窝式电话,等等)、台式计算机、膝上型计算机或笔记本计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置、因特网协议(IP)相机,或任何其它合适的电子装置。在一些实例中,源装置和接收装置可以包含一或多个无线收发器以用于无线通信。本文中所描述的译码技术适用于各种多媒体应用中的视频译码,包含流式视频发射(例如,在因特网上)、电视广播或发射、数字视频的编码以用于存储在数据存储媒体上、存储在数据存储媒体上的数字视频的解码或其它应用。在一些实例中,系统100可以支持单向或双向视频传输,以支持例如视频会议、视频流式传输、视频重放、视频广播、游戏和/或视频电话的应用。
[0067] 编码装置104(或编码器)可用以使用视频译码标准或协议对视频数据进行编码以生成经编码视频位流。视频译码标准的实例包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual、ITU-T H.264(也被称为ISO/IEC MPEG-4AVC),包含其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展,以及高效视频译码(HEVC)或ITU-T H.265。HEVC的各种扩展都涉及处理多层视频译码,包含范围和屏幕内容译码扩展、3D视频译码(3D-HEVC)和多视图扩展(MV-HEVC)以及可缩放扩展(SHVC)。HEVC及其扩展已经通过视频译码联合合作小组(JCT-VC)以及ITU-T视频译码专家组(VCEG)和ISO/IEC运动图片专家组(MPEG)的3D视频译码扩展开发的联合合作小组(JCT-3V)开发。MPEG和ITU-T VCEG也已形成联合探索视频组(JVET)以探索用于下一代的视频译码标准的新译码工具。参考软件被称作JEM(联合探索模型)。
[0068] 本文中所描述的许多实例使用JEM模型、HEVC标准和/或其扩展提供实例。然而,本文中所描述的技术和系统也可以适用于其它译码标准,例如,AVC、MPEG、其扩展,或当前存在的其它合适的译码标准或未来译码标准。相应地,虽然本文中描述的技术和系统可以参考特定视频译码标准描述,但是所属领域的一般技术人员将理解描述不应解释为仅适用于特定标准。
[0069] 参考图1,视频源102可将视频数据提供到编码装置104。视频源102可为源装置的一部分,或可为除源装置以外的装置的一部分。视频源102可包含视频捕获装置(例如,摄像机、相机电话、视频电话,等等)、含有所存储的视频的视频存档、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形系统、此类来源的组合,或任何其它合适的视频源。
[0070] 来自视频源102的视频数据可以包含一或多个输入图片或帧。视频的图片或帧是场景的静态图像。编码装置104的编码器引擎106(或编码器)对视频数据进行编码以生成经编码视频位流。在一些实例中,经编码视频位流(或“视频位流”或“位流”)是一系列一或多个经译码视频序列。经译码视频序列(CVS)包含一系列存取单元(AU),从具有基础层中的随机存取点图片且具有某些性质的AU开始,直到具有基础层中的随机存取点图片且具有某些性质的下一AU且不包含所述下一AU。举例来说,开始CVS的随机存取点图片的某些性质可以包含等于1的RASL旗标(例如,NoRaslOutputFlag)。否则,随机存取点图片(具有等于0的RASL旗标)不开始CVS。存取单元(AU)包含一或多个经译码图片以及对应于共享同一输出时间的经译码图片的控制信息。图片的经译码切片在位流层级中囊封到被称作网络抽象层(NAL)单元的数据单元中。举例来说,HEVC视频位流可以包含一或多个包含NAL单元的CVS。NAL单元中的每一者具有NAL单元标头。在一个实例中,标头对于H.264/AVC是一个字节(多层扩展除外)且对于HEVC是两个字节。NAL单元标头中的语法元素采用指定位并且因此对所有种类的系统和输送层可见,例如,输送流、实时输送(RTP)协议、文件格式等等。
[0071] 在HEVC标准中存在两类NAL单元,包含视频译码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包含经译码图片数据的一个切片或切片片段(下文描述),且非VCL NAL单元包含与一或多个经译码图片有关的控制信息。在一些情况下,NAL单元可被称作数据包。HEVC AU包含含有经译码图片数据的VCL NAL单元以及对应于经译码图片数据的非VCL NAL单元(如果存在)。
[0072] NAL单元可含有形成视频数据的经译码表示的一连串位(例如,经编码视频位流、位流的CVS,等等),例如,视频中的图片的经译码表示。编码器引擎106通过将每个图片分割成多个切片来生成图片的经译码表示。切片不依赖于其它切片,以使得所述切片中的信息得到译码而无需依赖于来自相同图片内的其它切片的数据。切片包含一或多个切片段,包含独立的切片段,并且如果存在的话,包含取决于先前切片段的一或多个依赖性切片段。切片随后被分割成亮度样本和色度样本的译码树块(CTB)。亮度样本的CTB和色度样本的一或多个CTB连同用于样本的语法一起被称作译码树单元(CTU)。CTU是用于HEVC编码的基本处理单元。CTU可以被分裂成不同大小的多个译码单元(CU)。CU含有被称作译码块(CB)的亮度和色度样本阵列。
[0073] 明度和色度CB可进一步分裂成预测块(PB)。PB是对于帧间预测或块内复制预测(当可用或经启用以供使用时)使用相同运动参数的明度分量或色度分量的样本块。明度PB和一或多个色度PB连同相关联的语法形成预测单元(PU)。对于帧间预测,运动参数集(例如,一或多个运动矢量、参考索引,等等)在位流中用信号发送以用于每一PU并且用于亮度PB和一或多个色度PB的帧间预测。运动参数也可以被称作运动信息。CB也可以被分割成一或多个变换块(TB)。TB表示颜色分量的样本的正方形块,在TB上面相同二维变换应用于对预测残余信号进行译码。变换单元(TU)表示亮度和色度样本的TB以及对应的语法元素。
[0074] CU的大小对应于译码模式的大小,并且可以是正方形形状的。举例来说,CU的大小可以是8×8个样本、16×16个样本、32×32个样本、64×64个样本,或高达对应的CTU的大小的任何其它适当大小。短语“N×N”在本文中用于指就垂直和平尺寸来说的视频块的像素尺寸(例如,8像素×8像素)。块中的像素可按行及列布置。在一些实例中,块可在水平方向上不具有与在垂直方向上相同数目的像素。举例来说,与CU相关联的语法数据可描述CU划分成一或多个PU。分割模式可在CU经帧内预测模式编码或是经帧间预测模式编码之间有所不同。PU可被分割成非正方形形状。举例来说,与CU相关联的语法数据还可描述例如CU根据CTU分割成一或多个TU。TU可为正方形或非正方形形状。
[0075] 根据HEVC标准,使用变换单元(TU)执行变换。TU可以针对不同CU发生改变。TU可以基于给定CU内的PU的大小而设定大小。TU可与PU大小相同或小于PU。在一些实例中,对应于CU的残余样本可使用被称为“残余四叉树”(RQT)的四叉树结构细分成较小单元。RQT的叶节点可对应于TU。可对与TU相关联的像素差值进行变换以产生变换系数。变换系数可随后通过编码器引擎106进行量化。
[0076] 一旦视频数据的图片被分割成CU,那么编码器引擎106使用预测模式预测每一PU。随后从原始视频数据减去预测单元或预测块以得到残余(下文描述)。对于每一CU,可在位流内部使用语法数据用信号发送预测模式。预测模式可包含帧内预测(或图片内预测)或帧间预测(或图片间预测)。帧内预测使用图片内的空间相邻样本之间的相关性。举例来说,使用帧内预测,每一PU是从相同图片中的相邻图像数据中预测的,方式是使用例如DC预测以寻找PU的平均值、使用平面预测以将平面表面适配到PU、使用方向预测以从相邻数据中进行推断,或者使用任何其它合适类型的预测。帧间预测使用图片之间的时间相关以便导出用于图像样本的块的运动补偿预测。举例来说,使用帧间预测,每一PU是使用来自一或多个参考图片中的图像数据的运动补偿预测进行预测的(按输出次序在当前图片之前或之后)。
举例来说,可以在CU层级作出是使用图片间还是图片内预测对图片区域进行译码的决策。
[0077] 在一些实例中,图片的一或多个切片被指派切片类型。切片类型包含I切片、P切片和B切片。I切片(帧内,可独立解码)是图片的仅通过帧内预测经译码且因此可独立地解码的切片,因为I切片仅需要帧内的数据来预测切片的任何预测单元或预测块。P切片(单向预测帧)是图片的可以通过帧内预测和单向帧间预测译码的切片。在P切片内的每一预测单元或预测块是通过帧内预测或帧间预测来译码的。当帧间预测适用时,预测单元或预测块仅是通过一个参考图片来预测,且因此参考样本仅来自一个帧的一个参考区。B切片(双向预测帧)是可通过帧内预测以及通过帧间预测(例如,双向预测或单向预测)来译码的图片的切片。B切片的预测单元或预测块可以是来自两个参考图片的双向预测,其中每一图片贡献一个参考区并且两个参考区的样本集经加权(例如,具有相等权重或具有不同权重)以产生双向预测块的预测信号。如上文所解释,一个图片的切片经独立地译码。在一些状况下,图片可经译码为仅一个切片。
[0078] PU可包含关于预测过程的数据(例如,运动参数或其它合适的数据)。举例来说,当使用帧内预测对PU进行编码时,PU可包含描述用于PU的帧内预测模式的数据。作为另一实例,当PU使用帧间预测编码时,PU可以包含界定PU的运动矢量的数据。举例来说,界定PU的运动矢量的数据可描述运动矢量的水平分量(Δx)、运动矢量的垂直分量(Δy)、运动矢量的分辨率(例如,整数精度、四分之一像素精度或八分之一像素精度)、运动矢量指向的参考图片、参考索引、运动矢量的参考图片列表(例如,列表0、列表1或列表C),或其任何组合。
[0079] 编码装置104接着可执行变换和量化。举例来说,在预测之后,编码器引擎106可计算对应于PU的残余值。残余值可包括正译码像素的当前块(PU)和用于预测当前块的预测块(例如,当前块的经预测型式)之间的像素差值。举例来说,在生成预测块(例如,发出帧间预测或帧内预测)之后,编码器引擎106可通过从当前块减去由预测单元产生的预测块而产生残余块。残余块包含对当前块的像素值与预测块的像素值之间的差进行量化的像素差值的集合。在一些实例中,残余块可以用二维块格式(例如,像素值的二维矩阵或阵列)表示。在此类实例中,残余块是像素值的二维表示。
[0080] 在执行预测之后可能剩余的任何残余数据是使用块变换进行变换,所述块变换可基于离散余弦变换、离散正弦变换、整数变换、小波变换、其它合适的变换函数,或其任何组合。在一些状况下,一或多个块变换(例如,大小32×32、16×16、8×8、4×4,等等)可以应用于每一CU中的残余数据。在一些实例中,TU可以用于由编码器引擎106实施的变换和量化过程。具有一或多个PU的给定CU还可包含一或多个TU。如下文中进一步描述,可使用块变换将残余值变换成变换系数,且接着可使用TU对其进行量化和扫描以产生用于熵译码的串行化变换系数。
[0081] 在一些实例中,在使用CU的PU进行帧内预测或帧间预测译码之后,编码器引擎106可以计算CU的TU的残余数据。PU可以包括空间域(或像素域)中的像素数据。TU可包括在块变换的应用之后的变换域中的系数。如前文所述,残余数据可以对应于在未经编码图片的像素与对应于PU的预测值之间的像素差值。编码器引擎106可形成包含CU的残余数据的TU,并且接着可变换TU以产生CU的变换系数。
[0082] 编码器引擎106可以执行变换系数的量化。量化通过对变换系数进行量化以减少用以表示系数的数据的量来提供进一步压缩。举例来说,量化可以减小与系数中的一些或全部相关联的位深度。在一个实例中,可在量化期间将n位值的系数向下舍入到m位值,其中n大于m。
[0083] 一旦执行量化,那么经译码视频位流包含经量化变换系数、预测信息(例如,预测模式、运动矢量、块矢量,等等)、分割信息,以及任何其它合适的数据,例如,其它语法数据。经译码视频位流的不同元素可以随后由编码器引擎106进行熵编码。在一些实例中,编码器引擎106可以利用预定义扫描次序扫描经量化变换系数以产生可经熵编码的串行化矢量。
在一些实例中,编码器引擎106可以执行自适应扫描。在扫描经量化变换系数以形成矢量(例如,一维矢量)之后,编码器引擎106可以对矢量进行熵编码。举例来说,编码器引擎106可以使用上下文适应性可变长度译码、上下文自适应二进制算术译码、基于语法上下文自适应二进制算术译码的、概率区间分割熵译码或另一合适的熵编码技术。
[0084] 如先前描述,HEVC位流包含NAL单元的群组,包含VCL NAL单元和非VCL NAL单元。VCL NAL单元包含形成经译码视频位流的经译码图片数据。举例来说,形成经译码视频位流的一连串位在VCL NAL单元中重新发送。除其它信息之外,非VCL NAL单元可以包含具有涉及经编码视频位流的高层级信息的参数集。举例来说,参数集可包含视频参数集(VPS)、序列参数集(SPS)和图片参数集(PPS)。参数集的目标的实例包含比特率效率、错误弹性以及提供系统层接口。每一切片参考单一活动的PPS、SPS和VPS以存取解码装置112为解码切片可使用的信息。标识符(ID)可以经译码用于每一参数集,包含VPS ID、SPS ID和PPS ID。SPS包含SPS ID和VPS ID。PPS包含PPS ID和SPS ID。每一切片标头包含PPS ID。使用ID,可标识针对给定切片的活动的参数集。
[0085] PPS包含应用于给定图片中的全部切片的信息。因为这一点,图片中的全部切片参考同一PPS。不同图片中的切片也可以参考相同PPS。SPS包含适用于相同经译码视频序列(CVS)或位流中的所有图片的信息。如先前描述,经译码视频序列是一系列存取单元(AU),其开始于基础层中的随机存取点图片(例如,瞬时解码参考(IDR)图片或断链存取(BLA)图片,或其它适当的随机存取点图片)且具有特定性质(上文所描述的),直到具有基础层中的随机存取点图片且具有特定性质(或位流的末尾)的下一AU且不包含所述下一AU。SPS中的信息并不会在经译码视频序列内在图片之间发生改变。经译码视频序列中的图片可以使用同一SPS。VPS包含应用于经译码视频序列或位流中的所有层的信息。VPS包含具有应用于整个经译码视频序列的语法元素的语法结构。在一些实例中,VPS、SPS或PPS可以与经编码位流一起带内发射。在一些实例中,VPS、SPS或PPS可以与含有经译码视频数据的NAL单元相比在单独的发射中带外发射。
[0086] 视频位流还可包含补充增强信息(SEI)消息。举例来说,SEI NAL单元可以是视频位流的一部分。在一些实例中,SEI消息可超出视频位流的范围。在一些情况下,SEI消息可以含有解码过程所不需要的信息。举例来说,SEI消息中的信息可能并不是解码器对位流的视频图片进行解码所必需的,但是解码器可以使用所述信息来改进图片的显示或处理(例如,经解码输出)。SEI消息中的信息可以是嵌入元数据。在一个说明性实例中,SEI消息中的信息可由解码器侧实体使用以改进内容的可检视性。在一些例子中,某些应用标准可授权位流中的此类SEI消息的存在,因此质量的改进可以被引入到符合应用标准的全部装置(例如,用于帧兼容平面立体3DTV视频格式的帧填充SEI消息的运载,其中运载SEI消息用于视频的每个帧,处理恢复点SEI消息,使用全屏幕扫描来扫描DVB中的矩形SEI消息,以及许多其它实例)。
[0087] 编码装置104的输出110可以经由通信链路120将组成经编码视频数据的NAL单元发送到接收装置的解码装置112。解码装置112的输入端114可以接收NAL单元。通信链路120可以包含由无线网络、有线网络或有线和无线网络的组合提供的信道。无线网络可以包含任何无线接口或无线接口的组合并且可以包含任何合适的无线网络(例如,因特网或其它广域网、基于数据包的网络、WiFiTM、射频(RF)、UWB、WiFi-Direct、蜂窝式、长期演进(LTE)、WiMaxTM,等等)。有线网络可以包含任何有线接口(例如,纤维、以太网、电力线以太网、同轴电缆上的以太网、数字信号线(DSL),等等)。有线和/或无线网络可以使用各种设备(例如基站、路由器、接入点、桥接器、网关、交换机,等等)实施。经编码视频数据可根据通信标准(例如,无线通信协议)加以调制,且发射到接收装置。
[0088] 在一些实例中,编码装置104可以在存储装置108中存储经编码的视频数据。输出110可检索来自编码器引擎106或来自存储装置108的经编码视频位流数据。存储装置108可包含多种分布式或本地存取的数据存储媒体中的任一者。举例来说,存储装置108可以包含硬盘驱动器、存储盘、快闪存储器、易失性或非易失性存储器或用于存储经编码的视频数据的任何其它合适的数字存储媒体。
[0089] 解码装置112的输入114接收经编码视频位流数据,且可将视频位流数据提供到解码器引擎116或存储装置118以用于由解码器引擎116稍后使用。解码器引擎116可对经编码视频位流数据进行解码,方式是对组成经编码视频数据的一或多个经译码视频序列的元素进行熵解码(例如,使用熵解码器)和提取。解码器引擎116可随后重新按比例缩放并且对经编码视频位流数据执行逆变换。随后将残余数据传递到解码器引擎116的预测级。解码器引擎116接着预测像素块(例如,PU)。在一些实例中,将预测添加到逆变换的输出(残余数据)。
[0090] 解码装置112可将经解码视频输出到视频目的地装置122,所述视频目的地装置可以包含显示器或其它输出装置以用于将经解码视频数据显示给内容的消费者。在一些方面中,视频目的地装置122可以是包含解码装置112的接收装置的一部分。在一些方面中,视频目的地装置122可以是除接收装置外的单独装置的一部分。
[0091] 在一些实例中,视频编码装置104和/或视频解码装置112可以分别与音频编码装置和音频解码装置集成。视频编码装置104和/或视频解码装置112也可包含实施上文所描述的译码技术所必需的其它硬件或软件,例如,一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码装置104和视频解码装置112可以集成为相应的装置中的组合编码器/解码器(编码解码器)的一部分。下文参考图16描述编码装置104的具体细节的实例。下文参考图17描述解码装置112的具体细节的实例。
[0092] 对HEVC标准的扩展包含称为MV-HEVC的多视图视频译码扩展以及称为SHVC的可缩放视频译码扩展。MV-HEVC和SHVC扩展共享分层译码的概念,分层译码具有包含在经编码视频位流中的不同层。经译码视频序列中的每一层通过唯一层标识符(ID)寻址。层ID可以存在于NAL单元的标头中以标识NAL单元与之相关联的层。在MV-HEVC中,不同层通常表示视频位流中的同一场景的不同视图。在SHVC中,提供表示不同空间分辨率(或图象分辨率)或不同重建保真度的视频位流的不同可缩放层。可缩放层可以包含基础层(具有层ID=0)和一或多个增强层(具有层ID=1、2、…n)。基础层可以符合HEVC的第一版本的简档,并且表示在位流中的最低可用层。与基础层相比,增强层具有增加的空间分辨率、时间分辨率或帧速率和/或重构保真度(或质量)。增强层是阶层式组织的并且可(或可不)依赖于较低层。在一些实例中,不同层可以使用单个标准编码解码器译码(例如,全部层使用HEVC、SHVC或其它译码标准进行编码)。在一些实例中,可使用多标准编解码器对不同层进行译码。举例来说,基础层可以使用AVC进行译码,而一或多个增强层可以使用HEVC标准的SHVC和/或MV-HEVC扩展进行译码。
[0093] 如上文所描述,对于每个块,运动信息集(在本文中也被称作运动参数)可以是可用的。运动信息集合可含有用于前向和后向预测方向的运动信息。此处,前向和后向预测方向是双向预测模式的两个预测方向,并且术语“前向”和“后向”不一定具有几何含义。替代地,前向和后向可对应于当前图片、切片或块的参考图片列表0(RefPicList0)和参考图片列表1(RefPicList1)。在一些实例中,当仅一个参考图片列表可供用于图片、切片或块时,仅RefPicList0是可用的并且切片的每一块的运动信息总是前向的。在一些实例中,RefPicList0包含在时间上先于当前图片的参考图片,并且RefPicList1包含在时间上在当前图片之后的参考图片。在一些情况下,运动矢量连同相关联的参考索引可以用于解码过程。此类具有相关联的参考索引的运动矢量被表示为运动信息的单向预测集合。
[0094] 对于每一预测方向,运动信息可以含有参考索引和运动矢量。在一些状况下,为简单起见,运动矢量可具有相关联信息,从所述相关联信息中可以假设运动矢量具有相关联的参考索引的方式。参考索引可用于标识当前参考图片列表(RefPicList0或RefPicList1)中的参考图片。运动矢量可具有水平和垂直分量,所述分量提供从当前图片中的坐标位置到通过参考索引所标识的参考图片中的坐标的偏移。举例来说,参考索引可以指示应该用于当前图片中的块的特定参考图片,并且运动矢量可以指示在参考图片中的最佳匹配块(与当前块最佳匹配的块)在参考图片中的位置。
[0095] 图片次序计数(POC)可以用于视频译码标准中以标识图片的显示次序。虽然存在一个经译码视频序列内的两个图片可具有相同POC值的状况,但是在一个经译码视频序列内具有相同POC值的两个图片通常不出现。当位流中存在多个经译码视频序列时,具有相同POC值的图片可能就解码次序而言彼此更接近。图片的POC值可用于参考图片列表构造,如在HEVC中的参考图片集的导出,和/或运动矢量按比例缩放,及其它。
[0096] 在H.264/AVC中,每一帧间宏块(MB)可以被分割成四种不同的方式,包含:一个16×16宏块分区;两个16×8宏块分区;两个8×16宏块分区;以及四个8×8宏块分区,及其它分区。一个宏块中的不同宏块分区可具有用于每一预测方向的不同参考索引值(例如,用于RefPicList0和RefPicList1的不同参考索引值)。
[0097] 在一些状况下,当宏块并不被分割成四个8×8宏块分区时,宏块可具有用于每一预测方向上的每一宏块分区的仅一个运动矢量。在一些状况下,当宏块被分割成四个8×8宏块分区时,每一8×8宏块分区可以进一步被分割成子块,其中的每一个子块可具有在每一预测方向上的不同运动矢量。8×8宏块分区可以不同方式被划分成子块,包含:一个8×8子块;两个8×4子块;两个4×8子块;以及四个4×4子块,及其它子块。每一子块可具有在每一预测方向上的不同运动矢量。因此,运动矢量可以存在于等于或高于子块的层级中。
[0098] 在HEVC中,切片中的最大译码单元被称作译码树块(CTB)。CTB含有四叉树,所述四叉树的节点为译码单元。CTB的大小可以在HEVC主规范中在16×16像素到64×64像素的范围中。在一些状况下,可以支持8×8像素CTB大小。CTB可以四叉树方式递归地分裂成译码单元(CU),如图2中所展示。CU可与CTB大小相同,且可如8×8像素一样小。在一些状况下,每一译码单元是以帧内预测模式或帧间预测模式来译码的。当CU是使用帧间预测模式进行帧间译码时,所述CU可进一步被分割成两个或四个预测单元(PU),或当进一步分区并不适用时可被视为一个PU。当在一个CU中存在两个PU时,所述两个PU可以是一半大小的矩形,或大小为CU的1/4或3/4的两个矩形。
[0099] 图3是说明用于以帧间预测模式译码的CU的8种分割模式的图。如所展示,所述分割模式包含PART_2Nx2N、PART_2NxN、PART_Nx2N、PART_NxN、PART_2NxnU、PART_2NxnD、PART_nLx2N和PART_nRx2N。CU根据不同分割模式可被分割成PU。因此,可使用所述分割模式中的一或多者来预测CU。
[0100] 当CU经帧间译码时,可以针对每一PU存在一个运动信息集。另外,每一PU可以用一个帧间预测模式译码以导出所述运动信息集。在一些状况下,当CU是使用帧内预测模式进行经帧内译码时,PU形状可为2N×2N和N×N。在每一PU内,对单个帧内预测模式进行译码(虽然色度预测模式是在CU层级处用信号发送)。在一些状况下,在当前CU大小等于在SPS中的定义最小CU大小时,允许N×N帧内PU形状。
[0101] 对于在HEVC中的运动预测,可存在用于CU或PU的两种帧间预测模式,包含合并模式和高级运动矢量预测(AMVP)模式。跳过模式被认为是合并模式的特殊情况。在AMVP或合并模式中,可为多个运动矢量(MV)预测值维持运动矢量(MV)候选者列表。可通过从MV候选者列表取得一个候选者来生成当前PU的运动矢量以及合并模式中的参考索引。
[0102] 在一些实例中,MV候选者列表可以含有针对合并模式的多达五个MV候选者和针对AMVP模式的两个MV候选者。在其它实例中,不同数量的候选者可以包含在MV候选者列表中以用于合并模式和/或AMVP模式。合并候选者可含有运动信息集(例如,对应于一或两个参考图片列表(列表0和列表1)的运动矢量)和参考索引。如果合并候选者通过合并索引标识,那么参考图片可用于当前块的预测。参考图片也可以用于确定相关联的运动矢量。AVMP候选者含有仅一个运动矢量;因此,在AVMP模式中,对于来自列表0或列表1的每一潜在的预测方向,参考索引可能需要连同MVP索引一起明确地用信号发送到MV候选者列表。在AMVP模式中,可进一步优化经预测运动矢量。
[0103] 如可从上文看出,合并候选者对应于整个运动信息集,而AMVP候选者仅含有用于特定预测方向的一个运动矢量和参考索引。可类似地从相同空间和/或时间相邻块导出用于合并和AMVP模式两者的候选者。
[0104] 图4A和图4B是说明空间相邻MV候选者的实例导出的图。用于特定PU(PU0 402)的空间MV候选者可以从相邻块导出,包含相对于相邻PU1 404定位在PU0 402的右侧。
[0105] 图4A中的图说明导出用于合并模式的空间MV候选者。在合并模式中,可例如按以下次序导出高达五个空间MV候选者(且在一些状况下高达四个):左侧候选者410(块0)、上方候选者412(块1)、右上方候选者414(块2)、左下方候选者416(块3)和左上方候选者418(块4)。在图4A中说明空间MV候选者相对于PU0 402的位置。确切地说,左侧候选者410位于邻近于PU0 402的左下处且在其左侧;上方候选者412位于邻近于PU0 402的右上角处且在其上方;右上方候选者414位于邻近于相邻PU1 404的左上角处且在其上方;左下方候选者416位于左侧候选者410下方;以及左上方候选者418位于PU0 402的左上角上方且在其左侧。
[0106] 图4B中的图说明导出用于AVMP模式的空间MV候选者。在AVMP模式中,相邻块被划分成例如两个群组。可被称作左侧群组的第一群组可包含位于PU0 402的下方和左侧的第一块420(块0)以及位于PU0 402的左下角的左侧且邻近于其的第二块422(块1)。可被称作上方群组的第二群组可包含位于相邻PU1 404的左上角的上方且邻近于其的第三块424(块2)、位于PU0 402的右上角上方且邻近于其的第四块426(块3),以及位于PU0 402的左上角上方且在其左侧的第五块428(块4)。对于每一群组,参考与由用信号发送的参考索引指示的参考图片的相邻块中的潜在候选者MV可在块当中具有最高优先权以被选择形成所述群组的最终候选者。在一些状况下,有可能的是全部相邻块并不含有指向相同参考图片的运动矢量。因此,如果无法找到此类候选者,那么可按比例缩放第一可用候选者以形成最终候选者,以使得可补偿时间距离差异。
[0107] 在一些状况下,合并和AMVP模式可包含其它方面,例如,运动矢量按比例缩放、人工运动矢量候选者生成和用于候选者插入的精简过程。
[0108] 已提议四叉树-二叉树(QTBT)用于超出HEVC的将来视频译码标准。模拟展示所提议的QTBT结构可以比所用的HEVC中的四叉树结构更高效。在所提议的QTBT结构中,CTB首先使用四叉树结构分割,其中一个节点的四叉树分裂可以重复直到所述节点达到最小允许四叉树叶节点大小(MinQTSize)。如果四叉树叶节点大小并不大于最大允许二叉树根节点大小(MaxBTSize),那么其可以由二叉树进一步分割。一个节点的二叉树分裂可以重复直到所述节点达到最小允许二叉树叶节点大小(MinBTSize)或最大允许二叉树深度(MaxBTDepth)。二叉树叶节点即是将用于预测(例如,帧内预测或帧间预测)和变换而无需任何进一步分割的CU。在一些状况下,在二叉树分裂中有两种分裂类型:对称水平分裂和对称垂直分裂。
[0109] 在QTBT分割结构的一个说明性实例中,CTU大小可被设置为128×128(例如,亮度样本和两个对应的64×64色度样本),MinQTSize可被设置为16×16,MaxBTSize可被设置为64×64,MinBTSize(用于宽度和高度两者)可被设置为4,并且MaxBTDepth可被设置为4。四叉树分割首先应用于CTU以生成四叉树叶节点。在一些实例中,四叉树叶节点可具有从16×
16(在此状况下,MinQTSize)到128×128(在此状况下,CTU大小)的大小。如果叶四叉树节点是128×128,由于所述大小超过MaxBTSize(在此状况下,64×64),因此可能不通过二叉树进一步分裂所述叶四叉树节点。否则,叶四叉树节点将通过二叉树进一步分割。在此实例中,四叉树叶节点也是二叉树的根节点且具有二叉树深度0。当二叉树深度达到MaxBTDepth(在此实例中,4)时,这意味着没有进一步分裂。当二叉树节点具有等于MinBTSize(在此实例中,4)的宽度时,这意味着没有进一步水平分裂。类似地,当二叉树节点具有等于MinBTSize(在此实例中,4)的高度时,这意味着没有进一步垂直分裂。二叉所述树的叶节点即是CU,且可通过预测和变换进一步处理而没有任何进一分割。
[0110] 图5A说明通过使用QTBT进行块分割的实例,且图5B说明对应的树结构。图5A中所展示的实线指示四叉树分裂,且虚线指示二叉树分裂。在二叉树的每一分裂节点(被称作非叶节点)中,可用信号发送旗标以指示使用哪一分裂类型(例如,水平或垂直分裂)。在一个说明性实例中,旗标的0值可指示水平分裂且1值可指示垂直分裂。在一些状况下,对于四叉树分裂,不需要指示分裂类型,这是因为块可总是水平地且垂直地将块分裂成具有相等大小的4个子块。
[0111] 在一些实例中,可使用多类型树结构。例如,可用例如二叉树、对称中心侧三叉树和四叉树的多个树类型进一步分裂树节点。模拟已多类型树结构可比QTBT结构高效得多。
[0112] 在一些状况下,不对称译码单元可用于QTBT结构的顶部上。举例来说,可将四个新二叉树分裂模式引入到QTBT框架,允许新分裂配置。图6是说明除已可用于QTBT中的分裂模式外还可使用的不对称分裂模式的图。根据额外不对称分裂模式,具有大小S译码单元经划分成具有大小S/4及3.S/4的两个子CU,在水平上或在垂直方向上。在JVET-D0064中,新额外的CU宽度或高度可仅为12或24。
[0113] 在HEVC及更早视频译码标准中,仅将平移运动模型施加用于运动补偿预测(MCP)。举例来说,可针对图片的每一块(例如,每一CU或每一PU)确定平移运动矢量。然而,在现实世界中,除平移运动外存在较多的动作,包含缩放(例如,放大和/或缩小)、旋转、透视动作,及其它不规律动作。在ITU-T VCEG和MPEG的光纤连接组件联合探索模型(JEM)中,可应用简化仿射运动补偿预测相机以改进译码效率。如图7所展示,当前块702的仿射运动场是通过两个控制点710和712的两个运动矢量 及 进行描述。使用控制点710的运动矢量 和控制点712的运动矢量 当前块702的运动矢量场(MVF)可通过以下方程式描述:
[0114]
[0115] 其中Vx和Vy是用于当前块702内的每一像素的运动矢量,x和y是当前块702内的每一像素的位置(例如,块中的左上像素可具有座标或索引(x,y)=(0,0)),(v0x,v0y)是左上角控制点710的运动矢量,w是当前块702的宽度,且(v1x,v1y)是右上角控制点712的运动矢量。v0x和v1x值为相应运动矢量的水平值,且v0y和v1y值为相应运动矢量的垂直值。额外的控制点(例如,四个控制点、六个控制点、八个控制点或一些其它数目的控制点)可通过例如在当前块702的下部角、当前块702的中心或当前块702中的其它位置处添加额外的控制点矢量来定义。
[0116] 上述方程式(1)说明4参数运动模型,其中四个仿射参数a、b、c及d经定义为:c=v0x;且d=v0y。使用方程式(1),给出左上角控制点710的
运动矢量(v0x,v0y)和右上角控制点712的运动矢量(v1x,v1y),可使用每一像素位置的座标(x,y)计算当前块的每一像素的运动矢量。举例来说,对于当前块702的左上像素位置,(x,y)的值可等于(0,0),在此状况下左上像素运动矢量变成Vx=v0x和Vy=v0y。
[0117] 为了进一步简化MCP,可应用基于块的仿射变换预测。举例来说,如图8中所展示,当前块802可划分成子区块。图8中所展示的实力包含4×4分区,其中总计十六个子块。可使用任何合适的分区和对应数目个子块。然后可使用方程式(1)针对每一子块导出运动矢量。举例来说,为导出每一4×4子块的运动矢量,根据方程式(1)计算每一子块(如图8中所展示)的中心样本的运动矢量。举例来说,所得运动矢量可舍入到1/16分数准确性或其它合适的准确性(例如1/4、1/8,等等)。然后可使用子块的所导出运动矢量来应用运动补偿以生成每一子块的预测。举例来说,解码装置可接收描述控制点810的运动矢量 和控制点812的运动矢量 的四个仿射参数(a、b、c、d),且可根据描述每一子块的中心样本的位置的像素座标索引来计算每子块运动矢量。在MCP之后,每一子块的较高准确性运动矢量可以是圆形的,如上文所述,且可保存为与平移运动矢量相同的准确性。
[0118] 在JEM中,存在两种仿射运动模式:仿射帧间(AF_INTER)模式和仿射合并(AF_MERGE)模式。图9是说明AF_INTER模式中的运动矢量预测的实例的图。在一些实例中,当CU具有大于8个像素的宽度和高度时,可应用AF_INTER模式。仿射旗标可相对于块(例如,在CU层级处)放置(或用信号发送)在位流中,以指示是否将AF_INTER模式应用到块。如在图9的实例中所说明,在AF_INTER模式中,可使用相邻块构造运动矢量对的候选者列表。举例来说,对于定位在当前块902的左上角中的子块910,可从在子块910的上方及左侧的相邻块A 920、在子块910上方的相邻块B 922及在子块910的左侧的相邻块C 924选择运动矢量v0。作为另一实例,对于定位在当前块902的右上角中的子块912,可分别从上方和右上方方向上的相邻块D 926和相邻块E 928选择运动矢量v1。可使用相邻块构造运动矢量对的候选者列表。举例来说,给出运动矢量vA、vB、vC、vD及vE分别对应于块A 920、B 922、C 924、D 926及E 
928,运动矢量对的候选者列表可表达为{(v0,v1)|v0={vA,vB,vC},v1={vD,vE}}。
[0119] 如上文所述和如图9中所展示,在AF_INTER模式中,可从块A 920、B 922或C 924的运动矢量选择运动矢量v0。根据参考列表及对于相邻块的参考的POC、对于当前CU(例如,当前块902)的参考的POC和当前CU的POC当中的关系,可按比例调整来自相邻块(块A、B或C)的运动矢量。在这些实例中,POC中的一些可从参考列表中确定。从相邻块D或E的v1的选择类似于v0的选择。
[0120] 在一些状况下,如果候选者列表的数目小于二,那么可通过复制AMVP候选者中的每沿着用运动矢量对填充所述候选者列表。当所述候选者列表大于两个时,在一些实例中,可首先根据邻近运动矢量的一致性存储所述候选者列表中的候选者(例如,一致性可基于运动矢量对候选者中的两个运动矢量之间的类似性)。在此类实例中,保留前两个候选者并且可以丢弃其余的候选者。
[0121] 在一些实例中,可使用速率-失真(RD)成本检查来确定选择哪一运动矢量对候选者作为当前CU(例如,当前块902)的控制点运动矢量预测(CPMVP)。在一些状况下,可在位流中用信号发送(或另外指定)指示CPMVP在所述候选者列表中的位置的索引。一旦确定当前仿射CU的CPMVP(基于运动矢量对候选者),那么可应用仿射运动估计,且可确定控制点运动矢量(CPMV)。在一些状况下,在所述位流中用信号发送CPMV与CPMVP的差异。CPMV和CPMVP两者包含两个平移运动矢量集,在此状况下,仿射运动信息的信号传送成本比平移运动的信号传送成本高。
[0122] 图10A和图10B说明AF_MERGE模式中的运动矢量预测的实例。当使用AF_MERGE模式对当前块1002(例如,CU)进行译码时,可以从有效的相邻经重构块获得运动矢量。举例来说,来自用仿射模式进行译码的有效相邻经重构块的第一块可选择为候选块。如图10A中所展示,可从一组相邻块A1020、B 1022、C 1024、D 1026和E1028当中选择相邻块。相邻块可被视为呈特定选择次序以用于被选择为候选块。选择次序的一个实例为左相邻者(块A 1020),后续接着上方相邻者(块B1022),然后右上方相邻者(块C1024),然后左下方相邻者(块D1026),且然后左上方相邻者(块E1028)。
[0123] 如上文所述,所选择相邻块可为已以仿射模式译码的第一块(例如,以选择次序)。举例来说,块A 1020可能已以仿射模式进行译码。如图10B中所说明,块A1020可包含在相邻CU 1004中。对于相邻CU 1004,可能已导出相邻CU 1004的左上角的运动矢量(v2 1030)、右上角的运动矢量(v3 1032)和左下角的运动矢量(v4 1034)。在此实例中,根据v2 1030、v3 
1032和v4 1034计算当前块1002的左上角的控制点运动矢量v0 1040。然后可确定当前块
1002的右上角的控制点运动矢量v1 1042。
[0124] 一旦已导出当前块1002的控制点运动矢量(CPMV)v0 1040和v1 1042,那么可应用方程式(1)以确定当前块1002的运动矢量场。为了标识当前块1002是否以AF_MERGE模式译码,当存在至少一个相邻块以仿射模式译码时,可在位流中包含仿射旗标。
[0125] 在许多状况下,仿射运动估计的过程包含通过最小化原始块和经仿射运动预测块之间的失真来确定编码器处的块的仿射运动。因为仿射运动具有比平移运动多的平移运动,因此仿射运动估计运动估计可能比平移运动更复杂。在一些状况下,可执行基于信号的泰勒展式的快速仿射运动估计方法以确定仿射运动参数(例如,在4参数模型中的仿射运动参数a、b、c、d)。
[0126] 快速仿射运动估计可包含基于梯度的仿射运动搜索。举例来说,给出时间t(其中t0为参考图片的时间)处像素值It,对于像素值It的一级泰勒展式可确定为:
[0127]
[0128] 其中 和 分别为x和y方向上的像素梯度G0x,G0y,而 和 指示对于像素值It的运动矢量组件Vx和Vy。当前块中的像素It的运动矢量指向参考图片中的像素Ito。
[0129] 方程式(2)可如下重写为方程式(3):
[0130] It=Ito+Gx0·Vx+Gy0·Vy   方程式(3)
[0131] 然后可通过最小化预测(Ito+Gx0·Vx+Gy0·Vy)和原始信号之间的失真来求解对于像素值It的仿射运动Vx和Vy。取4参数仿射模型作为实例,
[0132] Vx=a·x-b·y+c   方程式(4)
[0133] Vy=b·x+a·y+d,   方程式(5)
[0134] 其中x和y指示像素或子块的位置。将方程式(4)和(5)代入方程式(3)中,且然后使用方程式(3)最小化原始信号和预测之间的失真,可确定仿射参数a、b、c、d的解:
[0135]
[0136] 可使用任何数目个参数。举例来说,可以与上文描述用于4参数仿射运动模型的相同方式求解6参数仿射运动或其它仿射运动。
[0137] 一旦确定仿射运动参数,其定义用于控制点的仿射运动矢量,那么可使用所述仿射运动参数(例如,使用方程式(4)和(5),其还在方程式(1)中表示)来确定每像素或每子块运动矢量。可对当前块(例如,CU)的每一像素执行方程式(3)。举例来说,如果当前块为16像素×16像素,那么然后可使用方程式(6)中的最小平方解来通过最小化超过256个像素的总值导出当前块的仿射运动参数(a、b、c、d)。
[0138] 当使用上文所描述的仿射运动模型化技术时产生各种问题。一个问题包含使用仿射运动模型的较高信号传送成本。举例来说,较高信号传送成本至少部分归因于需要在位流中用信号发送仿射运动参数以便解码器导出图片中的块的像素或子块的运动矢量。此外,基于双边匹配的仿射运动导出的函数可能太复杂而无法求解,从而导致处理资源的使用大量。
[0139] 本文中描述对于执行解码器侧仿射运动导出的方法和系统,其解决上文提到至少问题。可单独地应用本文中所描述的技术中的任一者,或可应用技术中的任何合适组合。使用本文中所描述的技术,解码装置(还被称作视频解码器或解码器)可确定视频图片的一或多个区块的仿射运动参数。所述技术可在不需要将仿射运动信息发送到解码装置的情况下执行。举例来说,对于待由解码装置执行的此仿射运动导出模式,不需要在位流中用信号发送仿射运动参数(或仿射运动参数和仿射运动参数的预测值之间的差)。在一些状况下,平移运动可被视为具体仿射运动。
[0140] 可使用模板来对当前块执行解码器侧仿射运动导出。使用模板的仿射运动导出可被称为基于模板匹配的仿射运动导出。可使用基于模板匹配的仿射运动导出来导出解码器侧处的仿射运动信息(例如,仿射运动矢量)。举例来说,当前仿射模板可包含当前块的空间经重构样本(例如,像素),且参考图片的参考仿射模板可包含对应于当前仿射模板中的样本的参考图片中的样本(例如,像素)。可使用当前仿射模板和参考仿射模板来确定当前块的仿射运动参数。仿射运动参数定义用于当前仿射模板的控制点的仿射运动矢量。举例来说,可通过最小化仿射预测(与参考仿射模板中的样本相关联)和当前块的当前仿射模板的经重构样本之间的错误(或失真)导出当前仿射模板的控制点仿射运动参数(例如,a、b、c、d,定义运动矢量的参数)。所导出仿射运动参数定义用于控制点的仿射运动矢量。控制点的仿射运动矢量可然后用以确定用于当前块的像素或子块的运动矢量。
[0141] 在一些实例中,当前块(待导出用于其的仿射运动)的当前仿射模板为来自一或多个相邻块的样本的块或区,其中当前仿射模板的边界与当前块共享一或多个边界。在一些实例中,当前仿射模板可为待导出用于其的仿射运动的块的顶部边界或左侧边界。在一些状况下,当前仿射模板呈L形状。举例来说,当前仿射模板可共享当前块的顶部边界和左侧边界。在其它状况下,仿射模板可为任何其它合适的形状。在一些实例中,仿射模板可包含当前块的一或多个参考图片(例如,用于HEVC中时间MV预测的并置图片)中的经重构像素。在此类实例中,可根据当前图片的POC距离、当前块的目标参考图片和仿射模板定位的参考图片按比例调整所导出仿射运动矢量。
[0142] 图11A是说明当前块1102和当前块1102的当前仿射模板1104的实例的图。当前块1102可为译码单元(CU)、预测单元(PU)或图片的任何其它合适的块。当前仿射模板1104中的像素包含来自相邻当前块1102的块的先前经重构像素。在图11A的实例中当前仿射模板
1104呈L形状图案,其可用于确定可能位于当前仿射模板1104的左上角和右上角处的控制点。
[0143] 图11B是说明具有当前仿射模板1104的当前块1102和具有参考仿射模板1112的参考图片的参考块1110的图。虽然参考仿射模板1112在图11B中展示为与当前仿射模板1104相同形状,但参考仿射模板1112可为与当前仿射模板1104不相同的形状,此取决于给出某一仿射运动参数集,参考像素用于当前仿射模板1104的像素的位置。控制点1106和1108经定义用于当前块1102。控制点1106位于当前仿射模板1104的左上角,且控制点1108位于当前仿射模板1104的右上角处。如上文所述,用于当前块1102的控制点1106和1108的仿射运动矢量 和 可通过最小化仿射预测(对应于参考仿射模板1112的像素)和当前块1102的当前仿射模板1104的经重构像素之间的失真导出。举例来说,使用当前仿射模板1104的像素和参考仿射模板1112中的并置像素,可使用以上方程式(2)到(6)来迭代地求解仿射运动参数(例如a、b、c、d)直到针对当前块1102的控制点1106和1108确定最佳的仿射运动参数集。
[0144] 确定仿射运动参数的第一迭代需要初始运动矢量(还被称作初始运动矢量种子或种子)。解码装置标识参考仿射模板1112需要初始运动矢量。举例来说,初始运动矢量指向参考仿射模板1112,且因此可用于标识哪一参考图片,及在所述参考图片(对应于参考仿射模板1112)中的位置,以搜索以导出用于当前块1102的仿射运动参数所需要的信息。在由初始运动矢量所参考的像素周围执行在参考图片的参考块1110中搜索仿射运动参数。
[0145] 可使用任何合适的技术确定初始运动矢量。举例来说,最佳平移运动矢量可是针对当前块1102确定,且可用作为用于导出用于当前块1102的仿射运动的初始运动矢量。应注意,平移运动矢量是针对整个块(例如,当前块1102)确定,而仿射运动矢量是针对所有像素或针对块的某些子块确定。在一些状况下,可执行帧速率上变频(FRUC)模板匹配来确定用于整个当前块1102的平移运动矢量。举例来说,可使用模板匹配来通过查找当前图片中的模板(当前块的顶部和/或左侧相邻块)和参考图片中的块(例如,与模板相同的大小)之间的最佳匹配来导出当前块1102的平移运动信息。用于FRUC模板匹配的模板可为与当前仿射模板1104相同的模板或可为与所述当前仿射模板不同的模板。在一个说明性实例中,当前仿射模板1104为L形状(如图11A到图11C中所展示),而FRUC模板匹配模板可具有与图12(其在下文更详细地论述)中所展示的模板1216相似的形状。
[0146] FRUC模式可被认为是具体类型的合并模式,其中块的运动信息不用信号发送,而是在解码器侧处导出。两个类型的FRUC模式包含双边匹配和模板匹配。在一些状况下,当合并旗标对于块(例如,CU等等)为真实时可用信号发送FRUC旗标用于所述块。当FRUC旗标为假时,可用信号发送合并索引并且可使用常规合并模式。当FRUC旗标为真时,可用信号发送额外FRUC模式旗标以指示将使用哪一FRUC模式(例如,双边匹配或模板匹配)来导出关于块的平移运动信息。
[0147] 在平移运动导出过程期间,可使用双边匹配或模板匹配对于整个块(例如,CU,等等)导出初始平移运动矢量。可检查块的合并运动矢量(MV)候选者列表,且可选择来自导致最低匹配成本的合并MV候选者列表的候选运动矢量作为初始平移运动矢量,且可使用参考图片中的像素作为用于本地搜索的开始点。举例来说,可在开始点周围执行基于双边匹配或模板匹配的局部搜索,且引起最小匹配成本的运动矢量可被视为整个CU的运动矢量。随后,以导出的CU运动矢量作为开始点,在子块层级处对运动信息进行进一步优化。
[0148] 如上文所述,可执行FRUC模板匹配模式以确定用于当前块1102的平移运动矢量。图12说明模板匹配的实例。在模板匹配中,可使用模板1216来从参考帧0 1204导出运动信息。举例来说,模板1216可包含当前帧1202中的当前块1212的顶部和/或左侧相邻块。在此实例中,可在参考帧0 1204中找到最佳匹配1216的块集,其中块集为与模板1216相同大小和/或配置。然后可使用块集的位置和参考帧0 1204中的当前块1212的相对位置来确定运动矢量1220。可从穿过例如当前块1212的中心的正交轴线1230确定当前块1212的相对方位。
[0149] 可对双向预测或单向预测块执行FRUC模板匹配。举例来说,可对每一参考图片列表独立地执行模板匹配。模板1216包含当前图片中先前经重构像素。使用模板1216中的相邻像素确定当前块1212的运动。在解码器侧处,确定用于模板1216的最佳平移运动,且用作当前块1212的平移运动矢量。搜索过程可包含搜索当前块1212的模板和参考图片中的模板之间的最低SAD。
[0150] 另一FRUC模式包含双边匹配。图13说明双边匹配的实例。在双边匹配中,可导出用于当前帧1302中的当前块1312的运动信息,其中当前帧1302经生成用于帧速率上变频。具体地,可在第一参考帧(参考帧0 1304)中的第一块1314与第二参考帧(参考帧1 1306)中的第二块1316之间采用持续运动轨迹1310。可针对当前块1312确定与参考帧0 1304有关的运动矢量MV0 1320。举例来说,参考帧0 1304中的当前块的位置,如由以当前块1312为中心的正交轴线1330确定,可用于确定MV0 1320。类似地,可使用当前块在参考帧1 1306中的位置确定与参考帧1 1306有关的运动矢量MV1 1322,如通过正交轴线1330给出。因为运动轨迹1310经假设为持续的,所以MV0 1320和MV1 1322可与当前帧1302和两个参考系1304和1306之间的时间距离(分别为TD0 1332和TD1 1334)成比例。举例来说MV0 1320可基于TD0 1332按比例调整,且MV1可基于TD1 1334按比例调整。
[0151] 在一些状况下,TD0 1332和TD1 1334可以是相同的。在这些状况下,由双边匹配产生的结果可以与由基于镜像的双向运动矢量导出产生的结果相同。在一些状况下,可使用双边匹配来确定用于基于模板匹配的仿射运动导出的第一迭代的初始运动矢量(平移运动矢量)。
[0152] 在编码器处,是否使用用于CU的FRUC合并模式可以基于速率失真成本选择,如例如针对正常合并候选者所进行。也就是说,可针对给定CU的两个匹配的模式(例如,双边匹配和模板匹配)中的每一者确定速率失真最佳化(RDO)成本。具有最低成本的匹配模式可以进一步与其它CU模式进行比较。当FRUC匹配模式具有最低成本时,FRUC旗标可以被设置成向解码装置指示FRUC合并模式应该用于CU。另外,还可在位流中(例如在PPS、SPS、VPS中,在SEI消息中,等等)指示待使用的匹配模式。举例来说,可在所述位流中指示将使用FRUC模板匹配来确定用于基于模板匹配的仿射运动导出的第一迭代的初始仿射运动矢量。然后可基于所述位流中的指示(例如,PPS、SPS、VPS、SEI消息,等等中的变量、旗标或其它语法项)确定解码装置。
[0153] 在一些实例中,基于光学流动的运动优化可遵循FRUC模板匹配以获得具有更高精确度的平移运动矢量。在一些实例中,最佳平移运动矢量可直接用作用于仿射运动导出的初始运动矢量种子。
[0154] 在一些实例中,如果存在具有仿射运动矢量的任何相邻块,可使用相邻块的仿射运动矢量作为用于仿射运动导出的初始运动矢量种子。举例来说,上文所描述仿射合并(AF_MERGE)模式可用于确定用于基于模板匹配的仿射运动导出的初始运动矢量。在一些状况下,可针对模板匹配平移运动矢量(通过FRUC模板匹配导出)和针对(相邻块的)仿射运动矢量确定距离(例如,SAD,等等),且可使用具有最小距离的运动矢量。在一些状况下,相邻块的仿射运动矢量可直接用作初始运动矢量种子。
[0155] 在一些状况下,当旋转恒定和/或尺度恒定运算数可用(例如,来自上游计算机视觉子系统,来自相同视频处理管线中的上游预处理子块,等等)时,可使用关键点的对应性来导出仿射参数。在一个说明性实例中,在4参数或6参数仿射模型中,可发现两个(例如对于4参数)、三个(例如对于6参数)、或更多对应关键点作为局部邻域或搜索区域中的尺度不变特征变换(SIFT)特征点,且可在取所述参数集作为初始点时以较少迭代次数导出相关联仿射参数。可使用两个关键点的对应性导出尺度参数。
[0156] 在一些实施方案中,可基于经先前译码信息(例如,块大小和帧类型)确定仿射模型(例如,4参数仿射模型或6参数仿射模型)。
[0157] 运动矢量(例如,使用模板匹配确定的平移运动矢量或来自相邻块的仿射运动矢量)可然后用作用于仿射运动搜索的初始运动矢量。返回到图11B,初始运动矢量种子指向参考图片内的某一像素,从而定义参考模板1112将位于参考块1110中的位置以供解码装置使用。解码装置可然后使用当前模板1104和参考模板1112来对当前块1102执行仿射运动导出。一旦确定初始运动矢量种子,那么可使用基于泰勒展式的方法(例如上文关于(2)到(6)所描述的基于泰勒展式的方法)来基于当前仿射模板1104和其仿射预测(由参考仿射模板1112表示)来求解仿射运动。在一些状况下,可迭代地导出仿射运动,如下文进一步描述。可预定义或用信号发送最大迭代次数。替代地或另外,迭代次数可取决于上下文,例如当前仿射模板1104(或当前块)的大小,预测方向(双向预测或单向预测),或任何其它合适的因素。
在一些状况下,除用于常规帧间内插过程的滤波器外内插滤波器,例如双线性内插滤波器可用于求解仿射运动。
[0158] 如上文所述,一旦确定初始运动矢量,那么可使用上文所描述方程式(2)到(6)来求解仿射运动参数的第一迭代(使用初始运动矢量种子的初始迭代)。如先前所描述,仿射运动参数可包含参数a、b、c、d,定义为: c=v0x;及d=v0y。在通过初始仿射运动参数集(运动模型的初始a、b、c、d值集)执行第一迭代之后,可通过方程式(6)确定新仿射运动参数集。举例来说,可使用初始运动矢量种子的已知值Vxinit和Vyinit和与初始运动矢量种子有关的像素或子块(在当前块1102中)的已知(x,y)位置来使用方程式(4)到(6)来确定初始仿射运动参数a、b、c、d集。当在第一迭代中导出仿射运动参数时,可使用初始仿射运动模型导出当前仿射模板1104内的每一像素(或在一些状况下,不到全部像素)的每像素运动。举例来说,可将初始仿射运动模型的初始a、b、c、d值插入到(4)和(5)中,或到等效方程式(1)中,以确定当前仿射模板1104的每一像素(在位置(x,y))处的运动矢量(由Vx和Vy定义)。然后可通过针对当前模板1104内的每一像素确定的运动矢量定位参考模板像素。举例来说,解码装置可使用所确定仿射运动参数将每一像素 的参考像素 定位在当前模板1104内,其中i为像素索引。参考块1110中的那些对应参考像素 形成参考模板
1112。解码装置然后将具有当前模板1104内的像素 和参考模板1112内的像素 且可针对参考模板1112内的每一像素计算水平 和垂直梯度 如上文所述,i为用于当前仿射模板1104和参考仿射模板1112内的像素的索引。然后可使用方程式(6)求解用于当前块
1102的仿射运动参数(a、b、c、d)。举例来说,解码装置可使用方程式(6)和已知值导出新仿射运动参数,所述已知值包含针对像素 和 的像素值和(x,y)位置、垂直梯度 和水平梯度 (其中垂直和水平梯度表示在参考像素 周围的梯度)。
[0159] 每一迭代包含执行方程式(4)到(6)。举例来说,可使用方程式(4)和(5)来将新参考像素 定位在仿射模板1112中。当前模板1104内的每一像素 可在所述迭代时使用仿射运动模型确定其参考像素 当前模板1104内的像素 的所有参考像素 形成参考模板1112,在此状况下参考仿射模板1112可为与当前仿射模板1104不相同的形状(例如,L形状)。然后可使用当前仿射模板1104的像素 和新模板1112的像素 来通过执行方程式(6)来导出新仿射运动参数。
[0160] 在一个说明性实例中,对于每一迭代,当前仿射模板1104中的每一像素 的每像素运动矢量(Vx,Vy)指向参考仿射模板1112中的相关联的参考像素 (使用方程式(4)和(5)和来自先前迭代的仿射运动参数来确定)。举例来说,当前仿射模板1104中的像素 和参考仿射模板1112中的相关联参考像素 在本文中被称作一对并置像素。对于每一迭代,使用方程式(4)和(5)连同来自先前迭代的经更新仿射参数使所述并置像素对和对应运动矢量相关。然后可使用经更新并置像素对(在使用方程式(4)和(5)发现新参考像素 之后)来再次求解方程式(6)。举例来说,使用一对并置像素(来自当前仿射模板1104的像素和来自使用具有在先前迭代中导出的参数的仿射运动模型定位的参考模板1112的对应像素),可导出另一仿射运动参数集(另一a、b、c、d参数集)。可执行此迭代程序某一次数直到达到最大限度(例如,最大五个迭代),或直到当前仿射模板1104中的所有像素已经被处理。方程式(6)的每一迭代产生可用作当前块1102的仿射运动模型的具有不同仿射运动参数集(用于当前块1102的不同a、b、c、d值)的不同仿射运动模型。
[0161] 可选择来自所执行迭代(例如,五个迭代或其它数目)的最佳仿射运动参数集作为当前块1102的仿射运动模型。例如,最佳仿射运动参数集可基于质量度量。质量度量的一个说明性实例为绝对差和(SAD)。SAD为图像块之间类似性的量度,且可通过取原始块中的每一像素(例如,当前仿射模板1104中的像素)和用于比较的块中的对应像素(例如,参考模板1112中的像素)之间的绝对差来计算。差可经求和以形成块类似性的度量。在此实例中,可选择产生最小SAD度量的仿射运动参数集作为当前块1102的仿射运动模型。可使用任何其它合适的质量度量,包含(但不限于)绝对变换差和(SATD)、均方误差(MSE)、平均绝对误差(MAE)、绝对差平均值(MAD)、峰值信噪比(PSNR),等。
[0162] SAD度量可定义为:
[0163]
[0164] 其中Cij和Rij为分别在当前块(例如当前仿射模板1104)和参考块(参考模板模板1112)中进行比较的像素(其中i、j为像素座标位置),且N为N×N块的大小。
[0165] 如图11B中所展示,控制点1106为当前仿射模板1104的左上方点,且控制点1108为当前仿射模板1104的右上方点。在一些状况下,左上方点和右上方点可定位在像素未定位在其处的当前仿射模板1104中的点处(例如,在模板1104的远左上角中和远右上角中)。在其它状况下,左上方和右上点可定位在当前仿射模板1104的像素位置(例如,模板1104的左上方像素和右上方像素)处。通过解码装置(例如,基于SAD度量)确定为最佳的仿射运动模型的运动参数集定义用于控制点1106和1108的运动矢量v0和v1。然后可使用两个控制点1106和1108的运动矢量v0和v1来导出当前块1102内的每一像素或每一子块的运动。
[0166] 图11C为说明基于两个控制点1106和1108的运动矢量v0和v1而确定的每子块运动。如所展示,当前块1102经分解成4×4子块集,其中总共十六个子块(例如,子块1122)。使用当前仿射模板1104的控制点1106和1108的运动矢量v0和v1来确定当前块1102中的每一子块的运动。在一个说明性实例中,给出控制点1106和1108的运动矢量v0和v1、当前块1102的宽度(w)和表示子块的(x,y)位置,可使用方程式(1)来确定子块的运动矢量(由表示Vx,Vy)。在另一实例中,给出所选择仿射运动模型的已知a、b、c、d值和表示子块的(x,y)位置,可使用方程式(4)和(5)来确定子块的运动矢量Vx,Vy。在一些状况下,可使用子块的中心中的(x,y)位置、子块的拐角中的(x,y)位置或子块中的某一其它位置处的(x,y)位置来在方程式(1)中或方程式(4)和(5)中表示子块。
[0167] 当确定用于当前块1102的像素或子块的(x,y)位置座标时可考虑来自当前仿射模板1104的当前块1102的偏移量(在图11A中经展示为1120)。举例来说,如果当前块1102为16像素×16像素,且当前模板1104在每一方向上具有像素(例如,在模板的顶部部分中的四个像素行和在左侧部分中的四个像素列),当前块1102的左上方子块中的左上像素可位于位置(4,4)处。在此实例中,当确定当前块1102的第一子块(在左上角中)的运动矢量时,可将(4,4)的值在方程式(1)中或在方程式(4)和(5)中用作(x,y)位置。
[0168] 如图11C中所展示,在基于仿射模板针对当前块1102导出仿射运动(由控制点运动矢量v0和v1表示)之后,可根据每一子块的位置将仿射运动映射到当前块1102的每一子块的平移运动。举例来说,在导出用于每一子块的运动矢量之后,运动矢量可被认为是平移运动矢量。在一个说明性实例中,对于4参数仿射模型的映射为Vx=a·x+b·y+c和Vy=b·x-a·y+d,其中x和y指示子块的位置(在子块的中心中或拐角处)。平移运动可被认为是对于子块内所有像素相同。
[0169] 在一些实例中,可定义当前块中子块的大小和/或子块的数目。举例来说,当前块1102中的子块的大小可经预定义为4像素×4像素,或另一合适的大小。在一些实例中,当前块中的子块的大小和/或子块的书面可用信号发送或另外包含在位流中(例如,在PPS、SPS、VPS中,在SEI消息中,等等)。在一些实例中,可基于当前块的大小适应性地改变子块的大小。在一些实例中,子块的大小可与如FRUC模式中所定义的大小相同。
[0170] 在一些实施方案中,为减少复杂度,仅使用当前模板1104中的部分像素集来导出当前块的仿射运动。当前仿射模板的大小(例如,顶部边界的行的数目和左侧边界的列的数目)可在位流中用信号发送(例如,在一或多个参数集中,例如PPS、SPS或VPS)或可经预定义。任何预定义像素数目可包含于当前仿射模板(和参考仿射模板)中。在一个说明性实例中,可使用4仿射模板,在此状况下对于L形状模板(例如当前仿射模板1104),仿射模板可包含模板的上部部分中的四个像素行和模板的左侧部分中的四个像素列。
[0171] 在一些实例中,可通过最小化仿射预测和当前块的当前仿射模板的经重构像素之间的权重误差(或失真)来导出仿射运动矢量。举例来说,在导出期间,仿射预测的离群值和仿射模板的经重构像素可经移除或乘以不同权重。此离群值移除可改进运动矢量导出的稳定性。在一个说明性实例中,解码装置可通过最小化仿射预测和当前块的当前仿射模板的经重构像素之间的失真导出仿射运动矢量。基于导出运动矢量,解码装置可计算每一像素的失真值。根据失真值,解码器可指派不同权重到像素和可然后再次通过最小化仿射预测和当前块的仿射模板的经重构像素之间的权重失真来导出运动矢量。
[0172] 在一些实例中,可将滤波过程(例如,低通滤波器或其它合适的滤波器)应用于当前仿射模板和/或其仿射预测(包含参考仿射模板)以改进导出的稳定性。
[0173] 在一些实例中,对于双向预测或多假设预测,可单独地或联合地对于每一假设导出仿射运动。在一些状况下,当单独地导出仿射运动时,可针对每一假设使用独立模板。举例来说,在两个假设的状况下,可使用两个独立模板T0和T1。基于两个模板T0和T1,可导出MV0和MV1。在一些状况下,当联合地导出仿射运动时,可基于已导出MV来更新模板。举例来说,在两个假设的状况下,当导出第二MV时,模板T1可经更新为T1',使得T1'=(2*T1-Pred(MV0)),其中Pred(MV0)表示在运动MV0情况下预测。还可在联合导出中允许迭代仿射运动导出。
[0174] 基于模板匹配的仿射运动导出模式可用信号发送(例如,在PPS、SPS、VPS中,在SEI消息中,等等)作为具有旗标或其它语法项的独立帧间预测模式。语法项可包含变量、旗标、语法元素、语法结构或包含在PPS、SPS、VPS、SEI消息等等中的语法其它合适的部分。在一些状况下,基于模板匹配的仿射运动模式可用信号发送为FRUC的特殊模式。在一些实例中,仅当前块的仿射模板可用时,可用信号发送和/或使用基于模板匹配的仿射运动导出模式。举例来说,在一些状况下,仅当顶部和左侧经重构块两者可用时,L形状模板(或其它合适形状模板)才可被认为是可用的。在一些状况下,当用信号发送为特殊FRUC模式时,当所有FRUC模式可用于选择时可使用下文表1中说明的二进制化:
[0175]二进制化  
0 FRUC关闭
11 FRUC双边匹配
101 FRUC模板仿射(基于模板匹配的仿射运动导出)
100 FRUC模板匹配
[0176] 表1
[0177] 在一个说明性实例中,上表1的第三二进制数(与基于模板匹配的仿射运动导出有关)的上下文可在上面或左侧相邻者中无一者处于仿射模式(AF_MERGE模式、AF_INTER模式、FRUC_TEMPLATE_AFFINE模式)中的条件下定义为0,在上方或左侧相邻者中任一者处于仿射模式中的条件下定义为1,且在上方和左侧相邻者两者处于仿射模式中的条件下定义为2。仿射模式此处包含(但不限于)常规仿射帧间模式、仿射合并模式和模板仿射(基于模板匹配的仿射导出)。
[0178] 在一些实例中,使用上文所描述的技术导出的仿射运动(v0和v1)可用作常规仿射帧间模式(例如AF_INTER模式或AF_MERGE模式)的运动矢量预测值(MVP)。举例来说,对于常规仿射模式,可以如上文所描述相同方式在解码器侧导出仿射运动的知识一个预测值。在一些状况下,当用信号发送块以使用4参数仿射模型时,4参数仿射模型用于导出仿射运动预测值。举例来说,在仿射帧间(AF_INTER)模式中,可将运动矢量差(MVD)用信号发送到解码装置(例如,在PPS、SPS、VPS、SEI消息,等等中)。MVD可包含预测值(例如,用作图9中的子块910的预测值的块A、B或C的运动矢量)和控制点运动矢量(例如,子块910的运动矢量)之间的差。然后可通过解码装置将MVD加入到运动矢量预测符(MVP)以确定控制点运动矢量v0和v1。可使用仿射模板来生成MVP。举例来说,解码装置可使用当前仿射模板和参考仿射模板来生成a、b、c、d,如上文所描述(例如,使用最佳的仿射运动参数集)。a、b、c、d运动参数定义控制点v0和v1的运动矢量。这些所导出运动矢量可用作子块910和912的MVP。举例来说,运动矢量v0可用作子块910的MVP,且运动矢量v1可用作子块912的MVP。然后可将MVP加入到对应MVD。
[0179] 在一些实例中,可直接对经重构像素的块执行解码器侧处的仿射运动信息导出。在一个实例中,在图片经重构之后(例如,在环内滤波器之后),将图片划分出块且然后将基于模板匹配的仿射运动导出(如上文所描述)应用于每一块以导出仿射运动。然后可将所导出运动信息用于运动矢量预测。
[0180] 在一些实例中,为减少复杂度,一些译码工具可能在使用模板仿射模式时受约束。此类约束可预定义或在位流中用信号发送。在一个说明性实例中,在将模板匹配仿射运动导出用于块时,可不将BIO应用于块。在另一说明性实例中,当基于模板匹配的仿射运动导出用于块时可不将光照补偿(IC)应用于块。
[0181] 图14是说明用于使用本文中所描述的技术在解码器处导出一或多个仿射运动参数集的过程1400的实例的流程图。在块1402处,过程1400包含通过解码器从经编码视频位流获得视频数据。所述视频数据包含至少当前图片和参考图片。当前图片包含当前被解码的图片。在一些实例中,可使用参考图片列表或索引(例如,参考图片列表0(RefPicList0))标识参考图片。在一些状况下,可针对当前图片存取多个参考图片,在此状况下,可使用一个以上参考图片执行过程1400。举例来说,参考图片列表0(RefPicList0)和参考图片列表1(RefPicList1)可指示两个参考图片与所述当前图片相关联。
[0182] 在块1404处,过程1400包含通过解码器确定用于当前图片的当前块的仿射运动参数集。仿射运动参数集用于对当前块执行运动补偿预测。仿射运动参数集是使用当前块的当前仿射模板和参考图片的参考仿射模板确定。使用基于模板方法,可通过解码器使用解码器侧过程而不使用在位流中用信号发送的任何仿射运动来确定仿射参数集。举例来说,未从经编码视频位流解码任何仿射运动参数来确定仿射运动参数集。在一些状况下,仿射运动参数不包含在位流中。
[0183] 在一些状况下,过程1400可通过由解码器获得初始反射运动参数集确定仿射运动参数集。可使用任何合适的技术确定初始仿射运动参数集。在一个说明性实例中,可基于针对当前块确定的平移运动矢量来确定初始仿射运动参数集。在一些状况下,可使用任何合适的技术(例如,帧速率上变频(FRUC)模板匹配模式或其它合适的技术)确定平移运动矢量。在另一说明性实例中,可基于来自当前块的相邻块的仿射运动矢量来确定初始仿射运动参数集。举例来说,相邻块的仿射运动矢量可用作用于当前块的仿射运动导出的初始运动矢量种子。在一个说明性实例中,上文所描述的仿射合并(AF_MERGE)模式可用于确定可用作初始运动矢量的仿射运动矢量。
[0184] 过程1400可通过由解码器使用初始仿射运动参数集进一步导出用于当前块的当前仿射模板中的一或多个像素的一或多个仿射运动矢量来确定仿射运动参数集。当前块的当前仿射模板包含与当前块相邻的经重构像素。当前仿射模板的实例在图11A、图11B和图11C中展示。过程1400可然后通过解码器使用针对当前仿射模板中的一或多个像素导出的一或多个仿射运动矢量来确定参考图片的参考仿射模板中的一或多个像素。过程1400可进一步通过解码器最小化至少当前仿射模板中的一或多个像素和使用一或多个仿射运动矢量确定的参考仿射模板中的一或多个像素之间的误差。过程1400可然后通过解码器基于至少当前仿射模板中的一或多个像素和参考仿射模板中的一或多个像素之间的最小化误差来确定用于当前仿射模板的一或多个控制点的仿射运动参数集。举例来说,可使用方程式(3)到(6)执行用于确定仿射运动参数集的此过程。
[0185] 在一些实例中,过程1400可通过使用至少当前仿射模板中的一或多个像素和使用一或多个仿射运动矢量确定的参考仿射模板中的一或多个像素来确定用于当前仿射模板的一或多个控制点的多个仿射运动参数集来确定用于当前仿射模板的一或多个控制点的仿射运动参数集。举例来说,如上文所描述可迭代地执行方程式(4)到(6)以确定多个仿射运动参数集。过程1400可根据多个仿射运动参数集确定每一仿射运动参数集的质量度量。在一些实例中,质量度量包含绝对差和(SAD)。过程1400可然后针对当前仿射模板的一或多个控制点从多个仿射运动参数集选择所述多个仿射运动参数集当中具有最低度量的仿射运动参数集。如图11A、图11B和图11C中所展示,可对于当前块定义两个控制点。
[0186] 过程1400可基于针对当前仿射模板的一或多个控制点确定的运动参数集来确定用于当前块的一或多个样本的运动矢量。举例来说,过程1400可使用针对当前块确定的仿射运动参数集确定用于当前块的多个子块的运动矢量。当前块的子块的实例在图11C中展示。在一些实例中,过程1400可使用针对当前块确定的仿射运动参数集来确定用于当前块的多个像素的运动矢量,而非确定用于子块的运动矢量。
[0187] 在一些实例中,当前块的当前仿射模板包含当前块的一或多个空间相邻样本。在一些状况下,空间相邻样本包含来自顶部相邻块或左侧相邻块中的一或多者的样本。举例来说,图11A中所展示的实例包含当前仿射模板1104,所述当前仿射模板包含来自顶部相邻块(相邻于当前块的顶部的块)的样本和来自左侧相邻块(相邻于当前块的左侧的块)的样本。在一些实例中,当前仿射模板包含L形块。L形块可包含来自当前块的顶部相邻块的样本和来自当前块的左侧相邻块的样本(如图11A中所展示)。在其它实例中,当前仿射模板可包含来自右侧相邻块和/或右侧相邻块的样本。
[0188] 图15是说明用于使用本文中所描述的技术编码视频数据的过程1500的实例的流程图。在块1502处,过程1500包含获得视频数据。所述视频数据包含至少当前图片和参考图片。当前图片包含当前经编码的(或在编码器的相反环中经解码)的图片。在一些实例中,可使用参考图片列表或索引(例如,参考图片列表0(RefPicList0))标识参考图片。在一些状况下,可使用多个参考图片来对当前图片进行译码,在此状况下可使用多于一个参考图片执行过程1500。举例来说,参考图片列表0(RefPicList0)和参考图片列表1(RefPicList1)可指示两个参考图片与所述当前图片相关联。
[0189] 在块1504处,过程1500包含确定用于当前图片的当前块的仿射运动参数集。仿射运动参数集用于对当前块执行运动补偿预测。仿射运动参数集是使用当前块的当前仿射模板和参考图片的参考仿射模板确定。
[0190] 在块1506处,过程1500包含生成经编码视频位流。经编码视频位流包含指示基于模板匹配的仿射运动导出模式将由解码器用于当前块的语法项。语法项可包含语法元素、语法结构、变量、旗标等等,或可包含在PPS、SPS、VPS、SEI消息,或经编码视频位流的其它部分中。经编码视频位流不包含用于确定仿射运动参数集的任何仿射运动参数。例如,使用基于模板方法,可通过解码器使用解码器侧过程而不使用在经编码视频位流中用信号发送的任何仿射运动来确定仿射参数集。举例来说,未从经编码视频位流解码任何仿射运动参数来确定仿射运动参数集。
[0191] 在一些状况下,过程1500可通过获得初始反射运动参数集确定仿射运动参数集。可使用任何合适的技术确定初始仿射运动参数集。在一个说明性实例中,可基于针对当前块确定的平移运动矢量来确定初始仿射运动参数集。在一些状况下,可使用任何合适的技术(例如,帧速率上变频(FRUC)模板匹配模式或其它合适的技术)确定平移运动矢量。在另一说明性实例中,可基于来自当前块的相邻块的仿射运动矢量来确定初始仿射运动参数集。举例来说,相邻块的仿射运动矢量可用作用于当前块的仿射运动导出的初始运动矢量种子。在一个说明性实例中,上文所描述的仿射合并(AF_MERGE)模式可用于确定可用作初始运动矢量的仿射运动矢量。
[0192] 过程1500可通过使用初始仿射运动参数集进一步导出用于当前块的当前仿射模板中的一或多个像素的一或多个仿射运动矢量来确定仿射运动参数集。当前块的当前仿射模板包含与当前块相邻的经重构像素。当前仿射模板的实例在图11A、图11B和图11C中展示。过程1500可然后使用针对当前仿射模板中的一或多个像素导出的一或多个仿射运动矢量来确定参考图片的参考仿射模板中的一或多个像素。过程1500可进一步最小化至少当前仿射模板中的一或多个像素和使用一或多个仿射运动矢量确定的参考仿射模板中的一或多个像素之间的误差。过程1500可然后基于至少当前仿射模板中的一或多个像素和参考仿射模板中的一或多个像素之间的最小化误差来确定用于当前仿射模板的一或多个控制点的仿射运动参数集。举例来说,可使用方程式(3)到(6)执行用于确定仿射运动参数集的此过程。
[0193] 在一些实例中,过程1500可通过使用至少当前仿射模板中的一或多个像素和使用一或多个仿射运动矢量确定的参考仿射模板中的一或多个像素来确定用于当前仿射模板的一或多个控制点的多个仿射运动参数集来确定用于当前仿射模板的一或多个控制点的仿射运动参数集。举例来说,如上文所描述可迭代地执行方程式(4)到(6)以确定多个仿射运动参数集。过程1500可根据多个仿射运动参数集确定每一仿射运动参数集的质量度量。在一些实例中,质量度量包含绝对差和(SAD)。过程1500可然后针对当前仿射模板的一或多个控制点从多个仿射运动参数集选择所述多个仿射运动参数集当中具有最低度量的仿射运动参数集。如图11A、图11B和图11C中所展示,可对于当前块定义两个控制点。
[0194] 过程1500可基于针对当前仿射模板的一或多个控制点确定的运动参数集来确定用于当前块的一或多个样本的运动矢量。举例来说,过程1500可使用针对当前块确定的仿射运动参数集确定用于当前块的多个子块的运动矢量。当前块的子块的实例在图11C中展示。在一些实例中,过程1500可使用对于当前块确定的仿射运动参数集来确定用于当前块的多个像素的运动矢量,而非确定用于子块的运动矢量。
[0195] 在一些实例中,当前块的当前仿射模板包含当前块的一或多个空间相邻样本。在一些状况下,空间相邻样本包含来自顶部相邻块或左侧相邻块中的一或多者的样本。举例来说,图11A中所展示的实例包含当前仿射模板1104,所述当前仿射模板包含来自顶部相邻块(相邻于当前块的顶部的块)的样本和来自左侧相邻块(相邻于当前块的左侧的块)的样本。在一些实例中,当前仿射模板包含L形块。L形块可包含来自当前块的顶部相邻块的样本和来自当前块的左侧相邻块的样本(如图11A中所展示)。在其它实例中,当前仿射模板可包含来自右侧相邻块和/或右侧相邻块的样本。
[0196] 在一些实例中,过程1500可存储经编码视频位流。在一些状况下,执行过程1500的编码器的处理器或包括编码器的设备(例如,移动装置或其它合适的装置)可将经编码视频位流存储在编码器的存储器中或在包括编码器的设备的存储器中。在一些实例中,过程1500可发射经编码视频位流。
[0197] 在一些实例中,过程1400和1500可由计算装置或例如编码装置104、解码装置112或任何其它计算装置的设备执行。举例来说,过程1400可由解码装置112执行,且过程1500可由编码装置104执行。在一些状况下,计算装置或设备可包含处理器、微处理器、微计算机,或经配置实施过程1400和1500的步骤的装置的其它分量。在一些实例中,计算装置或设备可包含经配置以捕获包含视频帧的视频数据(例如,视频序列)的相机。举例来说,计算装置可包含相机装置,其可或可不包含视频编解码器。作为另一实例,计算装置可包含具有相机的移动装置(例如,例如数码相机、IP相机等相机装置、包含相机的移动电话或平板计算机,或具有相机的其它类型的装置)。在一些状况下,计算装置可包含用于显示图像的显示器。在一些实例中,相机或捕获视频数据的其它捕获装置与计算装置分开,在此状况下计算装置接收所捕获的视频数据。计算装置可进一步包含经配置以传递视频数据的网络接口、收发器和/或发射器。所述网络接口、收发器和/或发射器可经配置以传递基于因特网协议(IP)的数据或其它网络数据。
[0198] 过程1400和1500被说明为逻辑流程图,其操作表示可以在硬件、计算机指令或其组合中实施的一系列操作。在计算机指令的上下文中,操作表示存储在一或多个计算机可读存储媒体上的计算机可执行指令,这些计算机可执行指令在由一或多个处理器执行时执行所叙述的操作。一般来说,计算机可执行指令包含执行特定功能或实施特定数据类型的例程、程序、对象、组件、数据结构,等等。描述操作的次序并不意图解释为限制,且任何数目的所描述操作可以任何次序组合和/或并行以实施所述过程。
[0199] 另外,过程1400和1500可在配置有可执行指令的一或多个计算机系统的控制下执行且可以实施为在一或多个处理器上通过硬件或其组合共同地执行的代码(例如,可执行指令、一或多个计算机程序或一或多个应用程序)。如上所述,代码可存储在计算机可读或机器可读存储媒体上,例如,呈包括可通过一或多个处理器执行的多个指令的计算机程序的形式。计算机可读或机器可读存储媒体可为非暂时性的。
[0200] 本文中所论述的译码技术可以在实例视频编码和解码系统(例如,系统100)中实施。在一些实例中,系统包含源装置,其提供在稍后时间将由目的地装置解码的经编码视频数据。特定来说,源装置经由计算机可读媒体将视频数据提供到目的地装置。源装置和目的地装置可包括广泛范围的装置中的任一者,包含台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、所谓的“智能”板、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置,等等。在一些状况下,源装置和目的地装置可经装备以用于无线通信。
[0201] 目的地装置可经由计算机可读媒体接收待解码的经编码视频数据。计算机可读媒体可包括能够将经编码视频数据从源装置移动到目的地装置的任何类型的媒体或装置。在一个实例中,计算机可读媒体可包括使源装置能够实时将经编码视频数据直接发射到目的地装置的通信媒体。经编码视频数据可根据通信标准(例如,无线通信协议)加以调制,且发射到目的地装置。通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理发射线路。通信媒体可形成基于数据包的网络(例如,局域网、广域网或全球网络,例如因特网)的部分。通信媒体可包含路由器、交换机、基站或可用于促进从源装置到目的地装置的通信的任何其它设备。
[0202] 在一些实例中,经编码数据可从输出接口输出到存储装置。类似地,经编码数据可由输入接口从存储装置存取。存储装置可包含多种分布式或本地存取式数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一实例中,存储装置可对应于文件服务器或可存储由源装置生成的经编码视频的另一中间存储装置。目的地装置可经由流式传输或下载从存储装置存取所存储视频数据。文件服务器可以是能够存储经编码视频数据并且将经编码视频数据发射到目的地装置的任何类型的服务器。实例文件服务器包含万维网服务器(例如,用于网站)、FTP服务器、网络附接存储(NAS)装置或本地磁盘驱动器。目的地装置可通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。此可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器,等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置的发射可为流式传输发射、下载发射或其组合。
[0203] 本发明的技术未必限于无线应用或设置。所述技术可应用于支持多种多媒体应用中的任一者的视频译码,例如空中电视广播、有线电视发射、卫星电视发射、因特网流式传输视频发射(例如,HTTP动态自适应流式传输(DASH))、被编码到数据存储媒体上的数字视频,存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统可经配置以支持单向或双向视频传输,以支持例如视频流式传输、视频播放、视频广播和/或视频电话的应用。
[0204] 在一个实例中,源装置包含视频源、视频编码器和输出接口。目的地装置可包含输入接口、视频解码器和显示装置。源装置的视频编码器可经配置以应用本文中所揭示的技术。在其它实例中,源装置和目的地装置可包含其它组件或布置。举例来说,源装置可从外部视频源(例如,外部摄像机)接收视频数据。同样,目的地装置可与外部显示装置介接,而非包含集成显示装置。
[0205] 上述实例系统仅为一个实例。用于并行处理视频数据的技术可由任何数字视频编码及/或解码装置来执行。尽管本发明的技术通常由视频编码装置执行,但是所述技术也可通过视频编码器/解码器(通常被称作“CODEC”)执行。此外,本发明的技术还可由视频预处理器执行。源装置和目的地装置仅为源装置在其中生成经译码视频数据以供发射到目的地装置的此类译码装置的实例。在一些实例中,源装置和目的地装置可以实质上对称方式操作以使得所述装置中的每一者包含视频编码和解码组件。因此,实例系统可支持视频装置之间的单向或双向视频发射,例如,用于视频流式传输、视频播放、视频广播或视频电话。
[0206] 视频源可包含视频捕获装置,例如摄像机、含有先前所捕获视频的视频存档和/或用于从视频内容提供者接收视频的视频馈入接口。作为另一替代方案,视频源可生成基于计算机图形的数据作为源视频,或实况视频、存档视频与计算机生成的视频的组合。在一些状况下,如果视频源为摄像机,那么源装置和目的地装置可形成所谓的相机电话或视频电话。然而,如上文所提及,本发明中所描述的技术一般可适用于视频译码,且可应用于无线和/或有线应用。在每一状况下,可由视频编码器对所捕获、预先捕获或计算机生成的视频进行编码。经编码视频信息可随后由输出接口输出到计算机可读媒体上。
[0207] 如所提到,计算机可读媒体可包含瞬时媒体,例如无线广播或有线网络发射,或存储媒体(即,非暂时性存储媒体),例如硬盘、快闪驱动器、压缩光盘、数字视频光盘、蓝光光盘或其它计算机可读媒体。在一些实例中,网络服务器(未展示)可从源装置接收经编码视频数据并且将经编码视频数据提供到目的地装置,例如,经由网络发射。类似地,媒体生产设施(例如,光盘冲压设施)的计算装置可从源装置接收经编码视频数据并产生含有经编码视频数据的光盘。因此,在各种实例中,计算机可读媒体可理解为包含各种形式的一或多个计算机可读媒体。
[0208] 目的地装置的输入接口从计算机可读媒体接收信息。计算机可读媒体的信息可包含由视频编码器定义的语法信息,其也由视频解码器使用,且包含描述块和其它经译码单元(例如图片群组(GOP))的特性和/或处理的语法元素。显示装置向用户显示经解码视频数据,且可包括多种显示装置中的任一者,例如,阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。已经描述本申请案的各种实施例。
[0209] 在图16和图17中分别展示编码装置104和解码装置112的特定细节。图16是说明可实施本发明中描述的技术中的一或多者的实例编码装置104的框图。举例来说,编码装置104可生成本文中所描述的语法结构(例如,VPS、SPS、PPS的语法结构,或其它语法元素)。编码装置104可以在视频切片内执行视频块的帧内预测和帧间预测译码。如先前描述,帧内译码至少部分依赖于空间预测来减少或移除给定视频帧或图片内的空间冗余。帧间译码至少部分依赖于时间预测来减少或移除视频序列的邻近或周围帧内的时间冗余。帧内模式(I模式)可指代若干基于空间压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)的帧间模式可指代若干基于时间的压缩模式中的任一者。
[0210] 编码装置104包含分割单元35、预测处理单元41、滤波器单元63、图片存储器64、求和器50、变换处理单元52、量化单元54以及熵编码单元56。预测处理单元41包含运动估计单元42、运动补偿单元44及帧内预测处理单元46。对于视频块重构,编码装置104还包含逆量化单元58、逆变换处理单元60和求和器62。滤波器单元63意欲表示一或多个环路滤波器,例如,解块滤波器、自适应环路滤波器(ALF)及样本自适应偏移(SAO)滤波器。尽管在图16中将滤波器单元63展示为环路内滤波器,但在其它配置中,可将滤波器单元63实施为环路后滤波器。后处理装置57可对由编码装置104生成的经编码视频数据执行额外处理。本发明的技术在一些情况下可由编码装置104实施。然而在其它情况下,本发明的技术中的一或多者可由后处理装置57实施。
[0211] 如图16中所展示,编码装置104接收视频数据,且分割单元35将所述数据分割成视频块。所述分割还可包含分割成切片、切片片段、图块或其它较大单元,以及例如根据LCU及CU的四叉树结构的视频块分割。编码装置104总体上说明对待编码的视频切片内的视频块进行编码的组件。可将切片划分成多个视频块(且可能划分成被称作图块的视频块的集合)。预测处理单元41可以选择多个可能的译码模式中的一者,例如,多个帧内预测译码模式中的一者或多个帧间预测译码模式中的一者,以用于基于误差结果的当前视频块(例如,译码速率和失真的层级,等等)。预测处理单元41可将所得经帧内或帧间译码块提供到求和器50以生成残余块数据,并提供到求和器62以重构经编码的块以用作参考图片。
[0212] 预测处理单元41内的帧内预测处理单元46可相对于与待译码的当前块在相同帧或切片中的一或多个相邻块执行当前视频块的帧内预测译码,以提供空间压缩。预测处理单元41内的运动估计单元42及运动补偿单元44相对于一或多个参考图片中的一或多个预测块执行当前视频块的帧间预测译码以提供时间压缩。
[0213] 运动估计单元42可经配置以根据用于视频序列的预定模式来确定用于视频切片的帧间预测模式。预定模式可将序列中的视频切片指定为P切片、B切片或GPB切片。运动估计单元42与运动补偿单元44可高度集成,但出于概念目的而单独加以说明。由运动估计单元42执行的运动估计是生成运动矢量的过程,所述过程估计视频块的运动。运动矢量例如可指示当前视频帧或图片内的视频块的预测单元(PU)相对于参考图片内的预测性块的位移。
[0214] 预测块是被发现在像素差方面与待译码的视频块的PU密切匹配的块,像素差可通过绝对差和(SAD)、平方差和(SSD)或其它差度量来确定。在一些实例中,编码装置104可以计算存储于图片存储器64中的参考图片的子整数像素位置的值。举例来说,编码装置104可以内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可相对于全像素位置及分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
[0215] 运动估计单元42通过比较帧间译码片段中的视频块的PU的位置与参考图片的预测性块的位置来计算PU的运动矢量。参考图片可以选自第一参考图片列表(列表0)或第二参考图片列表(列表1),其中的每一者标识存储在参考图片存储器64中的一或多个参考图片。运动估计单元42将计算出的运动矢量发送到熵编码单元56及运动补偿单元44。
[0216] 通过运动补偿单元44执行的运动补偿可以涉及基于通过运动估计(可能执行对子像素精确度的内插)确定的运动矢量获取或生成预测性块。在接收到当前视频块的PU的运动矢量后,运动补偿单元44即刻可以在参考图片列表中定位所述运动矢量指向的预测性块。编码装置104通过从正被译码的当前视频块的像素值减去预测性块的像素值从而形成像素差值来形成残余视频块。像素差值形成用于所述块的残余数据,且可包含明度及色度差分量两者。求和器50表示执行此减法运算的一或多个组件。运动补偿单元44还可生成与视频块和视频切片相关联的语法元素以供解码装置112在对视频切片的视频块进行解码时使用。
[0217] 作为如上文所描述由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,帧内预测处理单元46可以对当前块进行帧内预测。特定来说,帧内预测处理单元46可确定用以对当前块进行编码的帧内预测模式。在一些实例中,帧内预测处理单元46可使用各种帧内预测模式对当前块进行编码,例如,在单独的编码遍次期间,并且帧内预测处理单元46可从经测试模式中选择适当的帧内预测模式来使用。举例来说,帧内预测处理单元46可使用速率-失真分析计算各种经测试帧内预测模式的速率-失真值,并在所述经测试模式当中选择具有最佳速率-失真特性的帧内预测模式。速率失真分析通常确定经编码块与经编码以产生所述经编码块的原始未经编码块之间的失真(或误差)的量,以及用于产生经编码块的比特率(即,位数目)。帧内预测处理单元46可以从用于各种经编码块的失真及速率计算比率,以确定哪种帧内预测模式对于所述块来说展现最佳速率失真值。
[0218] 在任何状况下,在选择用于块的帧内预测模式后,帧内预测处理单元46可将指示用于块的所选帧内预测模式的信息提供到熵编码单元56。熵编码单元56可对指示所选帧内预测模式的信息进行编码。编码装置104可以在所发射的位流中包含用于各种块的编码上下文的配置数据定义以及最可能帧内预测模式的指示、帧内预测模式索引表和经修改帧内预测模式索引表以供每种上下文使用。位流配置数据可包含多个帧内预测模式索引表和多个经修改帧内预测模式索引表(也被称作码字映射表)。
[0219] 在预测处理单元41经由帧间预测或帧内预测生成当前视频块的预测性块之后,编码装置104通过从当前视频块减去预测性块来形成残余视频块。残余块中的残余视频数据可包含于一或多个TU中,并可应用到变换处理单元52。变换处理单元52使用变换(例如,离散余弦变换(DCT)或在概念上类似的转换)来将残余视频数据变换成残余变换系数。变换处理单元52可将残余视频数据从像素值域转换到变换域,例如频域。
[0220] 变换处理单元52可将所得变换系数发送到量化单元54。量化单元54可量化所述变换系数以进一步减小位率。量化过程可减小与系数中的一些或全部相关联的位深度。可以通过调节量化参数来修改量化程度。在一些实例中,量化单元54可接着对包含经量化变换系数的矩阵执行扫描。替代地,熵编码单元56可执行扫描。
[0221] 在量化之后,熵编码单元56对经量化变换系数进行熵编码。举例来说,熵编码单元56可以执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵译码技术。在由熵编码单元56进行熵编码之后,经编码位流可发射到解码装置112,或经存档以供稍后发射或由解码装置112检索。熵编码单元56还可对正进行译码的当前视频切片的运动矢量和其它语法元素进行熵编码。
[0222] 逆量化单元58和逆变换处理单元60分别地应用逆量化和逆变换来重构像素域中的残余块,以供稍后用作参考图片的参考块。运动补偿单元44可通过将残余块添加到在参考图片列表内的参考图片中的一者的预测性块来计算参考块。运动补偿单元44还可将一或多个内插滤波器应用于经重建的残差块以计算子整数像素值用于运动估计。求和器62将经重构的残余块添加到由运动补偿单元44产生的经运动补偿的预测块,以产生参考块以用于存储于图片存储器64中。参考块可由运动估计单元42及运动补偿单元44用作参考块以对后续视频帧或图片中的块进行帧间预测。
[0223] 编码装置104可执行本文中所描述的技术中的任一者。已相对于编码装置104总体上描述了本发明的技术,但是如上文所提及,本发明的技术中的一些也可以通过后处理装置57实施。
[0224] 图16的编码装置104表示经配置以执行本文中所描述的基于模板匹配的仿射运动导出的视频解码器的实例。举例来说,编码装置104可确定运动参数,使用所述仿射运动参数来确定用于一或多个图片的一或多个块的仿射运动,及生成具有指示将基于模板匹配的仿射运动导出模式用于一或多个块的语法项(例如,语法元素、语法结构、变量、旗标,等等)的经编码视频位流。编码装置104可执行本文中所描述的技术中的任一者,包含上文关于图15所描述的过程。
[0225] 图17是说明实例解码装置112的框图。解码装置112包含熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、求和器90、滤波器单元91和图片存储器92。预测处理单元81包含运动补偿单元82和帧内预测处理单元84。在一些实例中,解码装置112可执行与相对于来自图16的编码装置104所描述的编码遍次大体上互逆的解码遍次。
[0226] 在解码过程期间,解码装置112接收表示经编码视频切片的视频块和由编码装置104发送的相关联语法元素的经编码视频位流。在一些实施例中,解码装置112可以从编码装置104接收经编码视频位流。在一些实施例中,解码装置112可以从网络实体79接收经编码视频位流,所述网络实体例如服务器、媒体感知网络元件(MANE)、视频编辑器/剪接器或经配置以实施上文所述的技术中的一或多个的其它此类装置。网络实体79可包含或可不包含编码装置104。本发明中描述的技术中的一些可以在网络实体79将经编码视频位流发射到解码装置112之前通过网络实体79实施。在一些视频解码系统中,网络实体79及解码装置
112可为单独装置的部分,而在其它情况下,关于网络实体79所描述的功能性可由包括解码装置112的相同装置执行。
[0227] 解码装置112的熵解码单元80对位流进行熵解码以生成经量化的系数、运动矢量和其它语法元素。熵解码单元80将运动矢量及其它语法元素转发到预测处理单元81。解码装置112可在视频切片层级和/或视频块层级接收语法元素。熵解码单元80可以处理和解析在例如VPS、SPS和PPS中的一或多个参数集中的固定长度语法元素和可变长度语法元素这两者。
[0228] 当视频切片经译码为经帧内译码(I)切片时,预测处理单元81的帧内预测处理单元84可基于用信号发送的帧内预测模式及来自当前帧或图片的先前经解码块的数据生成用于当前视频切片的视频块的预测数据。当将视帧帧译码为经帧间译码(即,B、P或GPB)切片时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其它语法元素而产生当前视频切片的视频块的预测性块。可从参考图片列表内的参考图片中的一者产生预测块。解码装置112可基于存储在图片存储器92中的参考图片使用默认建构技术建构参考帧列表,即列表0和列表1。
[0229] 运动补偿单元82通过剖析运动矢量和其它语法元素确定用于当前视频切片的视频块的预测信息,并且使用所述预测信息产生用于经解码当前视频块的预测性块。举例来说,运动补偿单元82可使用参数集中的一或多个语法元素来确定用于对视频切片的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、用于切片的一或多个参考图片列表的构建信息、切片的每个经帧间编码视频块的运动矢量、切片的每一经帧间译码视频块的帧间预测状态和用于对当前视频切片中的视频块进行解码的其它信息。
[0230] 运动补偿单元82还可基于内插滤波器而执行内插。运动补偿单元82可使用如由编码装置104在视频块的编码期间所使用的内插滤波器来计算参考块的子整数像素的内插值。在此状况下,运动补偿单元82可从所接收的语法元素确定编码装置104所使用的内插滤波器,且可使用所述内插滤波器来产生预测性块。
[0231] 逆量化单元86对在位流中提供且通过熵解码单元80解码的经量化变换系数进行逆量化,或解量化。逆量化过程可以包含将通过编码装置104计算出的量化参数用于视频切片中的每一视频块以确定量化的程度,并且同样确定应该应用的逆量化的程度。逆变换处理单元88将逆变换(例如,逆DCT或其它合适的逆变换)、逆整数变换或概念上相似的逆变换过程应用到所述变换系数以便产生像素域中的残余块。
[0232] 在运动补偿单元82基于运动矢量和其它语法元素生成用于当前视频块的预测性块之后,解码装置112通过将来自逆变换处理单元88的残余块与由运动补偿单元82生成的对应预测性块求和来形成经解码视频块。求和器90表示执行此求和操作的一或多个组件。必要时,还可使用环路滤波器(在译码环路中或在译码环路之后)来使像素过渡平滑或者以其它方式改进视频质量。滤波器单元91意欲表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管在图17中将滤波器单元91展示为环内滤波器,但在其它配置中,可将滤波器单元91实施为环路后滤波器。随后将给定帧或图片中的经解码视频块存储于图片存储器92中,所述图片存储器存储用于随后运动补偿的参考图片。图片存储器92还存储经解码视频以供稍后在显示装置(例如,图1中所示的视频目的地装置122)上呈现。
[0233] 图17的解码装置112表示经配置以执行本文中所描述的基于模板匹配的仿射运动导出的视频解码器的实例。举例来说,解码装置112可确定仿射运动参数且使用仿射运动参数确定用于一或多个图片的一或多个块的仿射运动。解码装置112可执行本文中所描述的技术中的任一者,包含上文相对于图14描述的过程。
[0234] 在前述描述中,参考本申请案的特定实施例对其各方面进行描述,但所属领域的技术人员将认识到,本申请案的标的物并不限于此。因此,虽然已经在本文中详细地描述了应用的说明性实施例,但是应理解本发明概念可以其它方式不同地实施和采用,并且除了现有技术所限制的之外,所附权利要求书意图解释为包含此类变化。上文所描述的标的物的各种特征和方面可以单独或联合地使用。另外,实施例可以在本文中所描述的那些之外的任何数目的环境和应用中使用而不脱离本说明书的广泛的精神和范围。应将本说明书和图式相应地视为说明性的而非限制性的。出于说明的目的,方法是以特定次序描述的。应了解,在替代实施例中,方法可以与所描述的次序不同的次序执行。
[0235] 在组件被描述为“经配置以”执行某些操作的情况下,可例如通过设计电子电路或其它硬件以执行所述操作、通过编程可编程电子电路(例如,微处理器或其它适合电子电路)以执行所述操作或其任何组合来实现此类配置。
[0236] 结合本文中所揭示的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件、固件或其组合。为清晰地说明硬件与软件的此可互换性,上文已大体就各种说明性组件、块、模块、电路和步骤的功能性加以描述。此类功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。本领域的技术人员可针对每一具体应用以不同方式来实施所描述的功能性,但此类实施决策不应被解释为会引起脱离本发明的范围。
[0237] 本文中描述的技术也可以在电子硬件、计算机软件、固件或其任何组合中实施。此类技术可实施于多种装置中的任一者中,例如通用计算机、无线通信装置手持机或集成电路装置,其具有包含在无线通信装置手持机和其它装置中的应用的多种用途。描述为模块或组件的任何特征可一起实施于集成逻辑装置中或单独地实施为离散但可互操作的逻辑装置。如果在软件中实施,那么所述技术可至少部分地由包括程序代码的计算机可读数据存储媒体来实现,所述程序代码包括在被执行时执行上文所描述的方法中的一或多个的指令。计算机可读数据存储媒体可形成计算机程序产品的一部分,所述计算机程序产品可包含封装材料。计算机可读媒体可包括存储器或数据存储媒体,例如,随机存取存储器(RAM)(例如,同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数据存储媒体,等等。另外或替代地,所述技术可至少部分地由计算机可读通信媒体来实现,所述计算机可读通信媒体以指令或数据结构的形式载运或传达程序代码且可由计算机存取、读取和/或执行(例如,传播的信号或波)。
[0238] 程序代码可由处理器执行,所述处理器可包含一或多个处理器,例如,一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。此处理器可经配置以执行本公开中所描述的技术中的任一者。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规的处理器、控制器微控制器或状态机。处理器也可实施为计算装置的组合,例如DSP和微处理器的组合、多个微处理器、与DSP核心结合的一或多个微处理器,或任何其它此类配置。因此,如本文中所使用的术语“处理器”可指前述结构中的任一者、上述结构的任何组合,或适合于实施本文中所描述的技术的任何其它结构或设备。另外,在一些方面中,可将本文中所描述的功能性提供于经配置用于编码及解码的专用软件模块或硬件模块内或并入组合的视频编码器-解码器(CODEC)中。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈