首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 仿射模式的运动信息的利用

仿射模式的运动信息的利用

阅读:461发布:2020-05-08

专利汇可以提供仿射模式的运动信息的利用专利检索,专利查询,专利分析的服务。并且本公开描述了用于利用仿射模式的运动信息的设备、系统和方法。在一个代表性方面,一种用于视频处理的方法包括,在当前 块 和当前块的比特流表示之间的转换期间,获取当前块的运动信息,其中当前块的运动信息基于当前块的相邻块的至少一个仿射模型参数;以及基于运动信息,进行当前块和当前块的比特流表示之间的转换。,下面是仿射模式的运动信息的利用专利的具体信息内容。

1.一种视频处理方法,包括:
在当前和所述当前块的比特流表示之间的转换期间,获取所述当前块的运动信息,其中所述当前块的运动信息基于所述当前块的相邻块的至少一个仿射模型参数;以及基于所述运动信息,进行所述当前块和所述当前块的比特流表示之间的所述转换。
2.如权利要求1所述的方法,其中所述转换从所述比特流表示生成所述当前块。
3.如权利要求1所述的方法,其中所述转换从所述当前块生成所述比特流表示。
4.如权利要求1至3中的任一项所述的方法,其中基于所述当前块的一个或多个相邻块存储的至少一个仿射模型参数,计算所述当前块的一组仿射模型参数。
5.如权利要求1至3中的任一项所述的方法,其中所述当前块的一个或多个相邻块存储的至少一个仿射模型参数被用于得出所述当前块的控制点运动向量,并且其中基于所述控制点运动向量计算所述当前块的一组仿射模型参数。
6.如权利要求1至3中的任一项所述的方法,其中所述当前块的一个或多个相邻块存储的至少一个仿射模型参数被用于得出在所述当前块的子块的运动补偿中使用的运动向量,并且其中所述当前块是仿射编码的块。
7.如权利要求1至3中的任一项所述的方法,其中所述当前块的一个或多个相邻块存储的至少一个仿射模型参数被用于得出所述当前块的一个或多个控制点运动向量CPMV的预测,用于在CPMV需要被转换时预测所述当前块的CPMV。
8.如权利要求1至3中的任一项所述的方法,其中如果所述当前块利用从所述相邻块合并的仿射模式,所述当前块的相邻块存储的至少一个仿射模型参数由所述当前块继承。
9.如权利要求1至3中的任一项所述的方法,其中从编码器解码器信令通知所述当前块的一组仿射模型参数。
10.如权利要求1至3中的任一项所述的方法,其中,在图片的转换之后,所述图片的仿射模型参数被存储以用于预测将被转换的另一图片中的块的仿射模型参数。
11.如权利要求1至3中的任一项所述的方法,其中所述至少一个仿射模型参数与第一参考列表和第二参考列表相关联,并且其中所述第一参考列表和所述第二参考列表的参数被独立地存储,或者所述第一参考列表和所述第二参考列表的参数与从一个到另一个的预测一起存储。
12.如权利要求1至3中的任一项所述的方法,其中所述当前块包括亮度分量和色度分量,并且其中存储用于所述亮度分量的仿射模型参数也被存储用于所述当前块的所述色度分量。
13.如权利要求12所述的方法,其中在对所述色度分量的转换期间,从存储的所述亮度分量的所述仿射模型参数继承或得出所述色度分量的仿射模型参数。
14.如权利要求1至3中的任一项所述的方法,其中是否为所述当前块的不同的颜色分量存储单独的仿射模型参数取决于颜色格式。
15.如权利要求1至3中的任一项所述的方法,其中所述当前块的一组仿射模型参数是从一个或多个图片中的一个或多个并置块预测或继承的。
16.如权利要求15所述的方法,还包括:
在进行所述转换之前,对所述一组仿射模型参数的所述一个或多个参数进行缩放。
17.如权利要求16所述的方法,还包括:
在所述缩放之前,检查所述当前块的相邻块,以便选择所述一组仿射模型参数。
18.如权利要求15所述的方法,其中所述一组仿射模型参数与多个时域相邻块的一个时域相邻块相关联。
19.如权利要求18所述的方法,其中所述一个时域相邻块基于相邻运动信息识别。
20.如权利要求18所述的方法,其中所述一个时域相邻块来自并置图片。
21.如权利要求20所述的方法,其中基于并置图片进行所述当前块的时域运动向量预测TMVP或可选时域运动向量预测ATMVP。
22.如权利要求20所述的方法,其中所述并置图片在视频参数集VPS、序列参数集SPS、图片参数集PPS、条带报头或图块组报头中信令通知。
23.如权利要求15所述的方法,其中一个或多个图片中的相关联的一个或多个并置块的仿射模型参数被用于预测所述当前块的一组仿射模型参数,或用于预测所述当前块的CPMV。
24.如权利要求1至3中的任一项所述的方法,其中进一步基于存储在所述相邻M×N单元块中的仿射模型参数和运动信息进行所述转换。
25.如权利要求24所述的方法,其中进行所述转换包括:
为运动补偿得出所述当前块的子块的CPMV或运动向量。
26.如权利要求25所述的方法,其中所述单元块的中心位置的所述坐标(xm,ym)计算为xm=x0+M/2,ym=y0+N/2,其中(x0,y0)表示所述单元块的左上位置的所述坐标。
27.如权利要求25所述的方法,其中所述单元块的中心位置的所述坐标(xm,ym)计算为xm=x0+M/2-1,ym=y0+N/2-1,其中(x0,y0)表示所述单元块的左上位置的所述坐标。
28.如权利要求25所述的方法,其中所述单元块的中心位置的所述坐标(xm,ym)计算为xm=x0+M/2-1,ym=y0+N/2,其中(x0,y0)表示所述单元块的左上位置的所述坐标。
29.如权利要求25所述的方法,其中所述单元块的中心位置的所述坐标(xm,ym)计算为xm=x0+M/2,ym=y0+N/2-1,其中(x0,y0)表示所述单元块的左上位置的所述坐标。
30.如权利要求25所述的方法,其中所述得出CPMV包括,确定标记为(x,y)的作为控制点的所述当前块的左上或右上角或左下角或右下角。
31.如权利要求25所述的方法,其中得出所述当前块的子块的运动向量包括:根据下式计算子块(x,y)的中心位置的坐标为
x=x00+M/2,y=y00+N/2,
其中(x00,y00)表示所述子块的左上位置的坐标,并且所述子块的尺寸为M×N。
32.如权利要求25所述的方法,其中得出所述当前块的子块的运动向量包括:根据下式计算子块(x,y)的中心位置的坐标
x=x00+M/2-1,y=y00+N/2-1,
其中(x00,y00)表示所述子块的左上位置的坐标,并且所述子块的尺寸为M×N。
33.如权利要求25所述的方法,其中得出所述当前块的子块的运动向量包括:根据下式计算子块(x,y)的中心位置的坐标
x=x00+M/2-1,y=y00+N/2,
其中(x00,y00)表示所述子块的左上位置的坐标,并且所述子块的尺寸为M×N。
34.如权利要求25所述的方法,其中得出所述当前块的子块的运动向量包括:根据下式计算子块(x,y)的中心位置的坐标
x=x00+M/2,y=y00+N/2-1,
其中(x00,y00)表示所述子块的左上位置的坐标,并且所述子块的尺寸为M×N。
35.如权利要求25-34中任一项所述的方法,其中对于位置(x,y)的坐标,所述单元块的所述仿射模型参数包括对应于4-参数仿射模型的4个变量(a,b,e,f),其中e=mvh0,f=mvv0,并且所述运动向量(mvh(x,y),mvv(x,y))由下式得出:
其中(mvh0,mvv0)表示存储在所述单元块中的所述运动向量。
36.如权利要求25-34中任一项所述的方法,其中对于位置(x,y)的坐标,所述单元块的所述仿射模型参数包括对应于6-参数仿射模型的6个变量(a,b,c,d,e,f),其中e=mvh0,f=v h v
mv0,并且所述运动向量(mv(x,y),mv(x,y))由下式得出:
其中(mvh0,mvv0)表示存储在所述单元块中的所述运动向量。
37.如权利要求25-34中任一项所述的方法,其中对于位置(x,y)的坐标,所述单元块的所述仿射模型参数分别包括对应于6-参数或4-参数仿射模型的6个或4个变量,并且所述运动向量(mvh(x,y),mvv(x,y))由下式得出:
其中(mvh0,mvv0)表示存储在所述单元块中的所述运动向量。
38.如权利要求25-37中任一项所述的方法,其中所述当前块的CPMV从存储在相邻块中的所述仿射模型参数和运动向量得出,并且所述CPMV用作用于信令通知所述当前块的CPMV的运动向量预测MVP。
39.如权利要求25-37中任一项所述的方法,其中所述当前块的CPMV是从存储在相邻块中的所述仿射模型参数和运动向量得出的,并且所述CPMV被用于得出用于运动补偿的所述当前块的每个子块的运动向量。
40.如权利要求25-37中任一项所述的方法,其中如果所述当前块在仿射merge模式下被转换,用于运动补偿的所述当前块的每个子块的运动向量是从存储在所述当前块的相邻块中的所述仿射模型参数和运动向量得出的。
41.如权利要求1至3中的任一项所述的方法,还包括:
在进行所述转换之前,修剪与多个相邻块相关联的仿射模型参数的多个组。
42.如权利要求41所述的方法,还包括:
在所述修剪之前,比较与所述多个相邻块相关联的仿射模型参数的所述多个组,并且决定来自相邻块的参数{a,b,c,d,e,f}是否与来自另一相邻块的已经在候选列表中的参数{a’,b’,c’,d’,e’,f’}冗余,其中所述候选列表是仿射merge或仿射AMVP候选列表。
43.如权利要求42所述的方法,还包括:
在所述决定之后,当且仅当a=a’,不将具有参数{a,b,c,d,e,f}的所述仿射模型放入所述候选列表中。
44.如权利要求42所述的方法,还包括:
在所述决定之后,当且仅当b=b’,不将具有参数{a,b,c,d,e,f}的所述仿射模型放入所述候选列表中。
45.如权利要求42所述的方法,还包括:
在所述决定之后,当且仅当c=c’,不将具有参数{a,b,c,d,e,f}的所述仿射模型放入所述候选列表中。
46.如权利要求42所述的方法,还包括:
在所述决定之后,当且仅当d=d’,不将具有参数{a,b,c,d,e,f}的所述仿射模型放入所述候选列表中。
47.如权利要求42所述的方法,还包括:
在所述决定之后,当且仅当a=a’且b=b’,不将具有参数{a,b,c,d,e,f}的所述仿射模型放入所述候选列表中。
48.如权利要求42所述的方法,还包括:
在所述决定之后,当且仅当c=c’且d=d’,不将具有参数{a,b,c,d,e,f}的所述仿射模型放入所述候选列表中。
49.如权利要求42所述的方法,还包括:
在所述决定之后,当且仅当a=a’且b=b’且c=c’,不将具有参数{a,b,c,d,e,f}的所述仿射模型放入所述候选列表中。
50.如权利要求42所述的方法,还包括:
在所述决定之后,当且仅当a=a’且b=b’且c=c’且d=d’,不将具有参数{a,b,c,d,e,f}的所述仿射模型放入所述候选列表中。
51.如权利要求1-50中任一项所述的方法,其中进行所述转换进一步基于所述当前块在CTU中或具有MxN尺寸的区域中的位置。
52.如权利要求51所述的方法,其中仅在所述当前块在所述CTU中的底部边界上,或在具有MxN尺寸的区域中的底部边界上时,才应用所述方法。
53.如权利要求51所述的方法,其中仅在所述当前块在所述CTU中的顶部边界上,或在具有MxN尺寸的区域中的顶部边界上时,才应用所述方法。
54.如权利要求51所述的方法,其中仅在所述当前块在所述CTU中的左侧边界上,或在具有MxN尺寸的区域中的左侧边界上时,才应用所述方法。
55.如权利要求51所述的方法,其中仅在所述当前块在所述CTU中的右侧边界处,或在具有MxN尺寸的区域中的右侧边界处时,才应用所述方法。
56.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使所述处理器实现如权利要求1至55中的任一项所述的方法。
57.一种计算机程序产品,存储在非暂时性计算机可读介质上,所述计算机程序产品包括程序代码,以用于执行如权利要求1至55中的任一项所述的方法。
58.一种视频解码装置,包括处理器,其被配置为实现如权利要求1至55中的一项或多项所述的方法。
59.一种视频编码装置,包括处理器,其被配置为实现如权利要求1至55中的一项或多项所述的方法。

说明书全文

仿射模式的运动信息的利用

[0001] 相关文件的交叉引用
[0002] 根据适用的专利法和/或依据巴黎公约的规则,本申请要求于2018年10 月22日提交的国际专利申请第PCT/CN2018/111176号的优先权和权益。国际专利申请第PCT/CN2018/111176号的所有公开内容通过引用并入作为本申请的公开内容的一部分。

技术领域

[0003] 本专利文件大体上涉及图像和视频编码技术。

背景技术

[0004] 尽管视频压缩有所进步,但数字视频仍占因特网和其它数字通信网络上最大的带宽使用。随着能够接收和显示视频的所连接的用户设备的数量增加,预计数字视频使用的带宽需求将继续增长。发明内容
[0005] 描述了与数字视频编码有关的设备、系统和方法,并且具体地,描述了其中仿射模式的运动信息在视频编码和解码期间被利用的视频和图像编码和解码。所描述的方法可以应用于现有视频编码标准(例如,高效视频编码 (HEVC))和未来视频编码标准或视频编解码器
[0006] 在一个代表性方面,提供了一种视频处理方法,包括,在当前和当前块的比特流表示之间的转换中的当前仿射计算步骤期间,选择一组仿射模型参数的一个或多个参数;存储当前块的所述一个或多个参数;以及基于一个或多个参数,进行当前块和当前块的比特流表示之间的转换。
[0007] 在另一个代表性方面,提供了一种用于视频编码的方法,包括,在当前块和当前块的比特流表示之间的转换期间,获取当前块的运动信息,其中当前块的运动信息基于当前块的相邻块的至少一个仿射模型参数;以及基于运动信息,进行当前块和当前块的比特流表示之间的转换。
[0008] 在又一个代表性方面,上述方法以处理器可执行代码的形式实施并存储在计算机可读程序介质中。
[0009] 在又一个代表性方面,公开了一种被配置或可操作以执行上述方法的设备。该设备可以包括被编程为实现该方法的处理器。
[0010] 在又一个代表性方面,视频解码器装置可以实现如本文中所描述的方法。
[0011] 在附图说明书权利要求中更详细地描述了所公开技术的上述方面和特征以及其它方面和特征。

附图说明

[0012] 图1示出了基于子块的预测的示例。
[0013] 图2A和2B分别示出了简化的4-参数仿射模型和简化的6-参数仿射模型的示例。
[0014] 图3示出了每个子块的仿射运动向量场(MVF)的示例。
[0015] 图4A和4B示出了AF_MERGE仿射运动模式的示例候选。
[0016] 图5示出了仿射merge模式的候选位置的示例。
[0017] 图6示出了具有CU的子块和相邻块的一个编码单元(CU)的示例。
[0018] 图7A和7B分别示出了merge/跳过/AMVP/TMVP仿射继承和运动补偿的运动向量场的示例。
[0019] 图8A和8B分别示出了仿射继承和merge/跳过/AMVP/TMVP运动补偿的运动向量场的示例。
[0020] 图9A和9B分别示出了具有8-像素粒度的CPMV存储和具有4-像素粒度的MV存储的运动向量上下文存储的示例。
[0021] 图10示出了用仿射模式编码的CU的受限的子块运动向量的示例。
[0022] 图11示出了在16×16区域中的16个4×4块的示例。
[0023] 图12示出了根据公开的技术的视频编码的方法的示例的流程图
[0024] 图13是用于实现本文件中描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图
[0025] 图14示出了根据公开的技术的视频处理方法的示例的流程图。
[0026] 图15示出了根据公开的技术的视频处理方法的另一示例的流程图。

具体实施方式

[0027] 由于对更高分辨率视频的需求的增加,视频编码方法和技术在现代技术中普遍存在。视频编解码器通常包括压缩或解压缩数字视频的电子电路软件,并且被不断改进以提供更高的编码效率。视频编解码器将未压缩视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂度、对数据丢失和错误的敏感性、编辑的简易性,随机访问和端到端延迟(时延)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编码(HEVC)标准(也称为H。265或MPEG- H第2部分)、待最终确定的通用视频编码标准、或其它当前和/或未来的视频编码标准。
[0028] 基于子块的预测首先通过高效视频编码(HEVC)标准被引入到视频编码标准中。通过基于子块的预测,诸如编码单元(CU)或预测单元(PU)的块被分为若干非重叠的子块。不同的子块可以被分配不同的运动信息,诸如参考索引或运动向量(MV),并且运动补偿(MC)对每个子块单独地进行。图 1示出了基于子块的预测的示例。
[0029] 所公开的技术的实施例可以应用于现有视频编码标准(例如,HEVC, H.265)和未来的标准以改进运行时间性能。在本文件中使用节标题以改进描述的可读性,并且不以任何方式将讨论或实施例(和/或实现方式)限制于仅相应的节。
[0030] 1.联合探索模型(JEM)的示例
[0031] 在一些实施例中,使用称为联合探索模型(JEM)的参考软件来探索未来的视频编码技术。在JEM中,在数个编码工具中采用基于子块的预测,诸如仿射预测、可选时域运动向量预测(ATMVP)、空域-时域运动向量预测 (STMVP)、双向光流(BIO)、速率上转换(FRUC)。仿射预测也已被用于VVC中。
[0032] 1.1仿射预测的示例
[0033] 在HEVC中,仅将平移运动模型应用于运动补偿预测(MCP)。而在实际世界中,存在许多种类的运动,例如缩小/放大、选择、透视运动以及其它不规则的运动。在VVC中,应用简化的仿射变换运动补偿预测。如图2A和 2B中所示,块的仿射运动场分别由两个(在使用变量a、b、e和f的4-参数仿射模型中)或三个(在使用变量a、b、c、d、e和f的6-参数仿射模型中) 控制点运动向量描述。
[0034] 块的运动向量场(MVF)分别由以下具有4-参数仿射模型和6-参数仿射模型的等式描述:
[0035]
[0036]
[0037] 此处,(mvh0,mvh0)是左上控制点(CP)的运动向量,并且(mvh1, mvh1)是右上角控制点的运动向量并且(mvh2,mvh2)是左下角控制点的运动向量,(x,y)表示代表点在当前块中相对于左上样本的坐标。CP运动向量可以被信令通知(类似于在仿射AMVP模式中)或即时得到(类似于在仿射 merge模式中)。w和h是当前块的宽度和高度。在实践中,除法是通过向右移并进行舍入运算来实现。在VTM中,代表点被定义为子块的中心位置,例如,当子块的左上角相对于当前块内左上样本的坐标为(xs,ys)时,代表点的坐标将定义为(xs+2,ys+2)。
[0038] 在无除法设计中,等式(1)和(2)被实现为:
[0039]
[0040] 对于等式(1)中所示的4-参数仿射模型:
[0041]
[0042] 对于等式(2)中所示的6-参数仿射模型:
[0043]
[0044] 并且从而,可以如下导出运动向量:
[0045]
[0046]
[0047] 这里,S表示计算精度。例如,在VVC中,S=7。在VVC中,MC所用具有左上样本在(xs,ys)处的子块的MV用等式(6)计算,其中x=xs +2和y=ys+2。
[0048] 为了导出每个4×4个子块的运动向量,如图3所示,每个子块的中心样本的运动向量根据等式(1)或(2)计算,并四舍五入为1/16分数精度。然后应用运动补偿插值滤波器以生成具有导出的运动向量的每个子块的预测。
[0049] 仿射模型可以从诸如图4A所示的左、上、右上、左下和左上相邻块的空域相邻的仿射编码块中继承。例如,如果图4A中的相邻的左下块A以仿射模式编码,如图4B中的A0所标N记,则取回包含块A的相邻CU/PU的左上角、右上角和左底角的控制点(CP)运动向量mv0 、mv1N和mv2N。并且基于mv0N、mv1N和mv2N计算当前CU/PU上的左上角/右上/左下的运动向量 mv0C、mv1C和mv2C(其仅用于6-参数仿射模型)。
[0050] 在一些实施例中,如果当前块是仿射编码的,则子块(例如VTM中的 4×4块)LT存储mv0,RT存储mv1。如果当前块用6-参数仿射模型编码,则 LB存储mv2;否则(使用4-参数仿射模型),LB存储mv2’。其它子块存储用于MC的MV。
[0051] 在一些实施例中,当一个CU用仿射merge模式编码时,例如,在 AF_Merge模式中,它从有效相邻的重新构建的块中得到用仿射模式编码的第一个块。并且候选块的选择顺序是如图4A所示的从左、上方、右上方、左下方到左上方。
[0052] 所导出的当前块的CP MV mv0C、mv1C和mv2C可以用作仿射merge模式中的CP MV。或者它们可以用作VVC中仿射帧间模式的MVP。应当理解的是,对于merge模式,如果使用仿射模式编码当前块,则在导出当前块的CP MV之后,可以将当前块进一步划分为多个子块,并且每个块将基于导出的当前块的CP MV来导出其运动信息。
[0053] 2.仿射预测的示例实施例
[0054] 不同于其中仅一个仿射空域相邻块可以被用来导出块的仿射运动的 VTM,它提出对AF_Merge模式构造仿射候选的单独的列表。
[0055] (1)将继承的仿射候选插入到候选列表中
[0056] 在示例中,继承的仿射候选是以仿射模式编码的有效相邻的重新构建的块中导出的候选。
[0057] 如图5所示,该候选块的扫描顺序为A1,B1,B0,A0和B2。当选择块 (例如,A1)时,采用两步法:
[0058] (a)首先,使用覆盖块的CU的三个角运动向量导出当前块的二个/三个控制点;和[0059] (b)基于当前块的控制点导出当前块内的每个子块的子块运动。
[0060] (2)插入构建的仿射候选
[0061] 在一些实施例中,如果仿射merge候选列表中的候选的数量小于 MaxNumAffineCand,则将构建的仿射候选插入到候选列表中。
[0062] 构建的仿射候选意味着候选通过将每个控制点的相邻运动信息组合而构建。
[0063] 控制点的运动信息首先图5所示的指定的空域近邻和时域近邻中导出。 CPk(k=1,2,3,4)代表第k个控制点。A0,A1,A2,B0,B1,B2和B3是预测CPk(k=1,2,3)的空域位置;T是预测CP4的时域位置。
[0064] CP1、CP2、CP3和CP4的坐标分别为(0,0)、(W,0)、(H,0)和(W, H),其中,W和H分别是当前块的宽度和高度。
[0065] 每个控制点的运动信息是根据以下优先级顺序获得的:
[0066] о对于CP1,检查优先级为B2→B3→A2。如果B2可用,则使用B2。否则,如果B2不可用,则使用B3。如果B2和B3都不可用,则使用A2。如果三个候选都不可用,则无法获得CP1的运动信息。
[0067] о对于CP2,检查优先级为B1→B0;
[0068] о对于CP3,检查优先级为A1→A0;
[0069] о对于CP4,使用T。
[0070] 其次,控制点的组合被用于构造运动模型。
[0071] 需要三个控制点的运动向量来计算6-参数仿射模型中的变换参数。三个控制点可以从以下四个组合之一中选择({CP1,CP2,CP4},{CP1,CP2, CP3},{CP2,CP3,CP4},{CP1,CP3,CP4})。例如,使用CP1、CP2和CP3 控制点来构建6-参数仿射运动模型,标记为仿射(CP1,CP2,CP3)。
[0072] 需要两个控制点的运动向量来计算4-参数仿射模型中的变换参数。两个控制点可以从以下六个组合之一中选择({CP1,CP4},{CP2,CP3},{CP1, CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4})。例如,使用CP1和CP2 控制点构建4-参数仿射运动模型,标记为仿射(CP1,CP2)。
[0073] 将构建的仿射尺度的组合按以下顺序插入到候选列表中:
[0074] {CP1,CP2,CP3},{CP1,CP2,CP4},{CP1,CP3,CP4},{CP2,CP3,CP4},{CP1,CP2},{CP1,CP3},{CP2,CP3},{CP1,CP4},{CP2,CP4}, {CP3,CP4}
[0075] (3)插入零运动向量
[0076] 如果仿射merge候选列表中的候选数量小于MaxNumAffineCand,则将零运动向量插入到该候选列表中,直到该列表满为止。
[0077] 3.高级时域运动向量预测(ATMVP)的示例
[0078] 在一些现有的实现方式中(例如,第十次JVET会议),高级时域运动向量预测(ATMVP)被包含在基准集(BMS)-1.0参考软件中,其基于来自时域相邻图片的并置块(collocated blocks)的运动信息导出一个编码单元(CU) 的子块的多个运动。尽管它提高了时域运动向量预测的效率,但是对于现有的ATMVP设计,仍存在以下复杂性问题:
[0079] о如果使用多个参考图片,则不同的ATMVP CU的并置图片可能会不同。这意味着需要取回多个参考图片的运动场。
[0080] о每个ATMVP CU的运动信息始终基于4x4单元导出,导致一个 ATMVP CU中每个4x4子块的运动推导和运动补偿的多个调用。
[0081] 对ATMVP的一些进一步简化可被采用。
[0082] 3.1具有一个固定的并置图片的简化的并置块推导的示例
[0083] 在该示例性方法中,提出了一种简化设计,其使用与HEVC中相同的并置图片,并在条带报头处用信令通知,作为ATMVP推导的并置图片。在块级,如果相邻块的参考图片不同于该并置图片,使用HEVC时域MV缩放方法来缩放该块的MV,并将缩放后的MV用于ATMVP。
[0084] 将用于取回并置图片Rcol中的运动场的运动向量标记为MVcol。为了最大程度地减小由于MV缩放所造成的影响,按以下方式选择用于导出MVcol的空域候选列表中的MV:如果候选MV的参考图片为并置图片,则选择该MV 且用作MVcol而不进行任何缩放。否则,选择具有参考图片最接近并置图片的MV来导出具有缩放的MVcol。
[0085] 3.2自适应ATMVP子块尺寸的示例
[0086] 在该示例性方法中,提议支持用于ATMVP运动推导的子块尺寸的条带级适配。具体地,在序列级用信令通知用于ATMVP运动推导的一个默认子块尺寸。另外,在条带级用信令通知一个标志,以指示默认子块尺寸是否用于当前条带。如果该标志为假,则在条带的条带报头中进一步信令通知相应的ATMVP子块尺寸。
[0087] 4.空域-时域运动向量预测(STMVP)的示例
[0088] 在STMVP方法中,按照光栅扫描顺序递归地导出子CU的运动向量。图6示出了具有四个子块和相邻块的一个CU的示例。考虑包括四个4×4子 CU A、B、C和D的8×8CU。当前帧中的相邻4×4块标记为a、b、c和d。
[0089] 子CU A的运动推导通过识别其两个空域近邻(neighbor)开始。第一近邻是子CU A上方的N×N块(块c)。如果该块c不可用或者是帧内编码,则校验(从左到右,从块c开始)子CU A上方的其它N×N块。第二近邻是子 CU A左方的块(块b)。如果块b不可用或者是帧内编码,则校验子CU A左方的其它块(从上到下,从块b开始)。对每个列表从相邻块获得的运动信息被缩放到给定列表的第一参考帧。接下来,通过遵循与HEVC中指定的TMVP 推导相同的过程来导出子块A的时域运动向量预测(TMVP)。在块D处的共位块的运动信息被相应地取回和缩放。最后,在提取和缩放运动信息之后,对每个参考列表分开平均所有可用运动向量(多达3个)。平均运动向量被指定为当前子CU的运动向量。
[0090] 5.仿射merge候选列表的示例实施例
[0091] 5.1仿射merge候选列表的实施例
[0092] 在仿射merge模式中,仅第一个可用的仿射近邻可用于导出仿射merge 模式的运动信息。用于仿射merge模式的候选列表通过搜索有效的仿射近邻并组合每个控制点的近邻运动信息而构建。
[0093] 通过以下步骤构建仿射merge候选列表:
[0094] (1)插入继承的仿射候选
[0095] 继承的仿射候选意味着该候选是从其有效近邻仿射编码的块的仿射运动模型的导出的。在共同的基础上,如图5所示,候选位置的扫描顺序为:A1, B1,B0,A0和B2。
[0096] 在导出候选之后,执行完整修剪过程以检查是否已将相同的候选插入到列表中。如果存在相同的候选,则丢弃导出的候选。
[0097] (2)插入构建的仿射候选
[0098] 如果仿射merge候选列表中的候选的数量小于MaxNumAffineCand(在该示例中设置为5),则将构建的仿射候选插入到候选列表中。构建的仿射候选意味着候选通过将每个控制点的相邻运动信息组合而构建。
[0099] 控制点的运动信息首先图5所示的指定的空域近邻和时域近邻中导出。 CPk(k=1,2,3,4)代表第k个控制点。A0,A1,A2,B0,B1,B2和B3是预测CPk(k=1,2,3)的空域位置;T是预测CP4的时域位置。
[0100] CP1、CP2、CP3和CP4的坐标分别为(0,0)、(W,0)、(H,0)和(W, H),其中,W和H分别是当前块的宽度和高度。
[0101] 每个控制点的运动信息是根据以下优先级顺序获得的:
[0102] о对于CP1,检查优先级为B2→B3→A2。如果B2可用,则使用B2。否则,如果B2不可用,则使用B3。如果B2和B3都不可用,则使用A2。如果三个候选都不可用,则无法获得CP1的运动信息。
[0103] о对于CP2,检查优先级为B1→B0;
[0104] о对于CP3,检查优先级为A1→A0;
[0105] о对于CP4,使用T。
[0106] 其次,控制点的组合被用于构造运动模型。
[0107] 需要三个控制点的运动信息来构造6-参数仿射候选。三个控制点可以从以下四个组合之一中选择({CP1,CP2,CP4},{CP1,CP2,CP3},{CP2, CP3,CP4},{CP1,CP3,CP4})。组合{CP1,CP2,CP3},{CP2,CP3,CP4}, {CP1,CP3,CP4}将转换为由左上、右上和左下控制点表示的6-参数运动模型。
[0108] 需要两个控制点的运动信息来构造一个4-参数仿射候选。两个控制点可以从以下六个组合之一中选择({CP1,CP4},{CP2,CP3},{CP1,CP2}, {CP2,CP4},{CP1,CP3},{CP3,CP4})。组合{CP1,CP4},{CP2,CP3}, {CP2,CP4},{CP1,CP3},{CP3,CP4}将转换为由左上和右上控制点表示的4参数运动模型。
[0109] 将构建的仿射尺度的组合按以下顺序插入到候选列表中:
[0110] {CP1,CP2,CP3},{CP1,CP2,CP4},{CP1,CP3,CP4},{CP2, CP3,CP4},{CP1,CP2},{CP1,CP3},{CP2,CP3},{CP1,CP4},{CP2,CP4},{CP3,CP4}
[0111] 对于组合的参考列表X(X为0或1),选择控制点中使用率最高的参考索引作为列表X的参考索引,并缩放指向差参考图片的运动向量。
[0112] 在导出候选之后,进行完整的修剪过程以检查是否已将相同的候选插入到列表中。如果存在相同的候选,则丢弃导出的候选。
[0113] (3)填充零运动向量
[0114] 如果仿射merge候选列表中的候选的数量小于5,则将具有零参考索引的零运动向量插入到变量列表中,直到列表已满。
[0115] 5.2仿射merge模式的实施例
[0116] 仿射merge模式简化的建议如下:
[0117] (1)通过比较覆盖相邻位置的编码单元,而不是比较仿射候选,简化对继承的仿射候选的修剪过程。将多达2个的继承的仿射候选插入到仿射merge 列表中。完全移除构建的仿射候选的修剪过程。
[0118] (2)移除构建的仿射候选中的MV缩放操作。如果控制点的参考索引不同,则丢弃构建的运动模型。
[0119] (3)构建的仿射候选的数量从10减少到6。
[0120] (4)还建议将具有诸如ATMVP的子块预测的其它merge候选也放到仿射merge候选列表中。在这种情况下,仿射merge候选列表可以用其它名称重命名,诸如子块merge候选列表。
[0121] 6.成对的平均候选的示例
[0122] 通过平均当前merge候选列表中的候选的预定义的对来生成成对的平均候选,并且将预定义的对定义为{(0,1),(0,2),(1,2),(0,3),(1,3), (2,3)},其中数字标记merge候选列表的merge索引。平均运动向量对每个参考列表分别计算。如果两个运动向量在一个列表中均可用,即使当这两个运动向量指向不同的参考图片,也将这两个运动向量平均;如果只有一个运动向量可用,则直接使用该一个;如果没有运动向量可用,则将此列表保持为无效。成对的平均候选替换HEVC标准中的组合候选。
[0123] 7.控制点运动向量(CPMV)偏移的示例
[0124] 基于第一仿射merge候选的CPMV偏移生成新的仿射merge候选。如果第一仿射merge候选启用了4-参数仿射模型,则通过偏移第一仿射merge候选的2个CPMV来导出每个新的仿射merge候选的2个CPMV;否则(启用6-参数仿射模型),则通过偏移第一仿射merge候选的3个CPMV来导出每个新的仿射merge候选的3个CPMV。在单向预测中,将CPMV偏移应用于第一候选的CPMV。在相同方向上的列表0(List 0)和列表1(List 1)的双向预测中,将CPMV偏移如下应用于第一候选:
[0125] MVnew(L0),i=MVold(L0)+MVoffset(i)
[0126] MVnew(L1),i=MVold(L1)+MVoffset(i)
[0127] 在相反方向上的列表0(List 0)和列表1(List 1)的双向预测中,将CPMV 偏移如下应用于第一候选:
[0128] MVnew(L0),i=MVold(L0)+MVoffset(i)
[0129] MVnew(L1),i=MVold(L1)-MVoffset(i)
[0130] 在本实施例中,使用具有不同偏移幅度的各种偏移方向来生成新的仿射 merge候选。测试了两种实现方式:
[0131] (1)产生16个新的仿射merge候选,具有8个不同的偏移方向,2个不同的偏移幅度,如下所示:
[0132] 偏移集={(4,0),(0,4),(-4,0),(0,-4),(-4,-4),(4,-4),(4,4),(-4,4),(8,0),(0,8),(-8,0),(0,-8),(-8,-8),(8,-8), (8,8),(-8,8)}。
[0133] 该设计的仿射merge列表增加到20个。潜在的仿射merge候选总数为 31个。
[0134] (2)生成具有4个不同偏移方向、偏移幅度为1的4个新仿射merge 候选,如以下偏移集所示:
[0135] 偏移集={(4,0),(0,4),(-4,0),(0,-4)}。
[0136] 仿射merge列表保持为5。移除四个时域构建的仿射merge候选,以使潜在仿射merge候选的数量保持不变,即,共15个。假设CPMV1、CPMV2、 CPMV3和CPMV4的坐标为(0,0)、(W,0)、(H,0)和(W,H)。请注意,CPMV4从如图5所示的时域MV导出。移除的候选是以下四个与时域相关的构建的仿射merge候选:{CP2,CP3,CP4},{CP1,CP4},{CP2,CP4}, {CP3,CP4}。
[0137] 8.线-缓冲器问题的示例
[0138] 在仿射模式的当前设计中,将仿射控制点向量(CPMV)和子块运动向量的混合的运动向量场用于仿射运动数据继承(即用于仿射merge和仿射AMVP列表推导),用于merge/跳过和AMVP列表推导(即作为空域相邻候选),以及用于存储时域运动向量(TMVP),以在将来的图片中使用。单独的子块运动向量场(即时计算的)用于以仿射模式编码的PU的运动补偿。
[0139] 图7A和7B示出了示例,其中CTU分割为两个PU,并且它们两者都以仿射模式编码。如图7A所示,在当前设计中,CPMV存储子块运动向量场的左上、右上和左下(如果PU使用6-参数仿射运动模型)子块位置(覆盖那些位置的计算的子块向量)。这将创建用于merge/跳过/AMVP/TMVP和仿射继承的CPMV和子块运动向量的混合集。对于运动补偿,将再次生成单独的子块运动向量场(如图7B所示),因为只有子块向量(而不是控制点向量)用于仿射模式的运动补偿中。
[0140] 对于实际的解码器实现方式,需要预先生成子块运动向量场(如图8B所示),并将其推入运动补偿引擎以建立参考块的预取回以用于运动补偿。在运动补偿消耗子块运动向量场之前,其不能被例如CPMV覆盖。
[0141] 为了最小化存储器缓冲器尺寸,一种可能的解决方案是分别存储CPMV 和子块向量,其中CPMV存储在一个缓冲器中,而MC的子块向量存储在另一个缓冲器中,使得用于MC的子块向量场不会在被MC消耗之前被覆盖。对于merge/跳过和AMVP列表推导以及TMVP的存储,解码器将需要在这两个运动向量缓冲器之间来回切换以从相邻的PU中取回CPMV或子块向量,作为TMVP存储的空域MV候选或候选向量。而且,由于不相邻的CPMV (其不再被当前PU的merge/跳过/AMVP列表推导需要)在将它们与CTU中的其它子块运动向量压缩在一起并写出为时域运动向量以用于将来的图片之前,不能被处理,因此CPMV需要更多的存储。
[0142] 如上所述,在实际实现方式中,CPMV无论如何都需要单独存储,以最小化存储器缓冲器的尺寸,因此不必要在merge/跳过和AMVP列表推导过程中以及在TMVP的存储中混合CPMV和子块向量,因为这样做不会减少存储器的占地。将子块向量用作merge/跳过和AMVP列表推导以及TMVP的空域候选,而将CPMV留作仅用于仿射运动数据继承,将更加直接和一致。
[0143] 图8A和8B示出了提出的清理方法(例如,清理方法1)的示例,其中 CPMV(例如,图8A)被单独存储,并且仅用于仿射继承。子块向量场(例如,图8B)不仅用于运动补偿,还用于merge/跳过/AMVP列表推导和TMVP 的存储。
[0144] 对于128x128CTU尺寸,用于在CTU内存储所有CPMV和基于4x4的子块运动向量的缓冲器分别约为6,144字节和8,192字节(为了便于说明,仅计数运动向量,而未计数诸如PU尺寸和参考索引的其它参数)。
[0145] 因为CPMV仅用于仿射运动数据继承,并且可以处理不相邻的CPMV,所以在实际实现方式中,不需要为整个CTU存储CPMV。为了最小化存储要求,解码器只能存储向量上下文的顶行和左列,而不是如图9A和9B所示的存储完整的CTU或完整的图片等量的向量上下文。这些附图说明了在解码 CU#10之后向量上下文的状态。图9A中所示的CPMV上下文示出为8-像素粒度,而图9B中所示的标准子块MV上下文具有4-像素粒度。当对每个 CU进行解码,相应的左方和上方上下文被更新,将蓝线和绿线进一步向下和向右移位,穿过CTU并最终穿过图片。
[0146] 在这种存储器优化的实现方式中,将为每个8-像素段(segment)存储 CPMV。将有16个这样的段用于顶行,16个这样的段用于左列,并且16个段用于存储左上的上下文。此CPMV存储每段将大约需要24个字节(3个 CPMV–每个8个字节),因此1,152字节(24个字节*
48个段)用于CTU中上方/左方CPMV上下文。如果允许将仿射继承扩展到当前CTU之外,则在图9A(上方线缓冲器)的上方之上将需要每8-像素段的额外的这样的存储。
[0147] 子块MV将为每个4-像素段存储。将有32个这样的段用于顶行,32个这样的段用于左列,并且32个段用于存储左上的上下文。此MV存储将大约需要每个段8字节(1个双向MV–每个8字节),因此768字节(8字节*96 段)用于CTU中上方/左方子块MV上下文。
[0148] 这种存储器优化的实现方式有效地将用于128×128CTU的CPMV的存储占地从6,144字节减少到1,152字节。对于基于64×64块的解码器管线,所提出的清理避免了需要缓冲64×64块的CPMV,节省了大约1,536字节(例如,6144/4字节)的存储器。此外,此实现方式还支持以小块为基础(例如,64×64而不是128×128)的运动向量的重构,这进一步减少了子块运动向量的存储的存储器占地,从例如8,192字节减少到2,816字节(例如,8192/4+
768)。
[0149] 9.仿射运动补偿的带宽问题的示例
[0150] 在一些实施例中,由于当前块被分为亮度分量的4×4子块和两个色度分量的2×2子块以进行运动补偿,总带宽要求比非子块帧间预测要高得多。
[0151] 10.子块尺寸的示例实施例
[0152] 在一些实施例中,4x4块用作单向仿射编码的CU的子块尺寸,而8x4 /4x8块用作双向仿射编码的CU的子块尺寸。
[0153] 11.仿射模式的示例实施例
[0154] 对于仿射模式,仿射CU的子块运动向量受限于预定的运动向量场内。假定第1个(左上)子块的运动向量为(v0x,v0y),并且第二个子块为(vix, viy),vix和viy的值具有以下约束:
[0155] vix∈[v0x-H,v0x+H]
[0156] viy∈[v0y-V,v0y+V]
[0157] 如果任何子块的运动向量超过了预定的运动向量场,则运动向量被剪裁。图10中示出了受限的子块运动向量的概念的图示。
[0158] 在一些实施例中,并且假定每个CU而不是每个子块检索存储器,则选择值H和V,使得最坏的情况下的仿射CU的存储器带宽将不超过8×8的双向预测块的正常帧间MC的存储器带宽。注意,H和V的值适用于CU尺寸和单向预测或双向预测。
[0159] 12.仿射模式的示例实施例
[0160] 在一些实施例中,并且为了减低仿射预测中的存储器带宽要求,将块内的每个8x8块视为基本单位。8x8块内的所有四个4x4子块的MV受限为使得四个4x4子块MV的整数部分之间的最大差值不超过1个像素。使得带宽为8+7+1)*(8+7+1)/(8*8)=4样本/像素。
[0161] 例如,在用仿射模型计算当前块内的所有子块的MV之后,首先用相应的控制点MV替换包含控制点的子块的MV。这意味着,左上、右上和左下子块的MV分别用左上、右上和左下控制点MV替换。然后,对于当前块中的每个8×8块,四个4×4子块的MV都被剪裁以确保四个MV的整数部分之间的最大差不超过1个像素。这里,应注意的是,包含控制点的子块(左上、右上和左下子块)使用相应的控制点MV以参与MV剪裁过程。在剪裁过程期间,右上控制点的MV保持不变。
[0162] 应用于每个8×8块的剪裁过程描述如下:
[0163] (1)MV分量的最小值和最大值,MVminx,MVminy,MVmaxx, MVmaxy,首先为每个8x8块如下确定:
[0164] (a)得到四个4x4子块MV中最小的MV分量
[0165] MVminx=min(MVx0,MVx1,MVx2,MVx3)
[0166] MVminy=min(MVy0,MVy1,MVy2,MVy3)
[0167] (b)使用MVminx和MVminy的整数部分作为最小的MV分量,例如,
[0168] MVminx=MVminx>>MV_precision<
[0169] MVminy=MVminy>>MV_precision<
[0170] (c)最大的MV分量如下计算:
[0171] MVmaxx=MVminx+(2<
[0172] MVmaxy=MVminy+(2<
[0173] (d)如果右上控制点在当前8x8块中
[0174] 如果(MV1x>MVmaxx)
[0175] MVminx=(MV1x>>MV_precision<
[0176] MVmaxx=MVminx+(2<
[0177] 如果(MV1y>MVmaxy)
[0178] MVminy=(MV1y>>MV_precision<
[0179] MVmaxy=MVminy+(2<
[0180] (2)该8×8块内的每个4x4块的MV分量被如下剪裁:
[0181] MVxi=max(MVminx,min(MVmaxx,MVxi))
[0182] MVyi=max(MVminy,min(MVmaxy,MVyi))
[0183] 此处,(MVxi,MVyi)为一个8×8块内第i个子块的MV,其中i为0, 1,2,3;(MV1x,MV1y)为右上控制点的MV;MV_precision等于4,对应于1/16运动向量分数精度。由于MVminx和MVmaxx的整数部分(MVminy 和MVmaxy)之间的差为1像素,所以四个4×4子块MV的整数部分之间的最大差不超过1像素。
[0184] 13.仿射模式的示例实施例
[0185] 在一些实施例中,对于最坏情况下的带宽减少可能存在对于仿射模式的限制。为确保最坏情况下仿射块的带宽不差于INTER_4x8/INTER_8x4块或甚至是INTER_9x9块,仿射控制点之间的运动向量差用于决定仿射块的子块尺寸是4x4还是8x8。
[0186] 13.1最坏情况下带宽的通用仿射限制
[0187] 通过限制仿射控制点之间的运动向量差(也称为控制点差)来控制仿射模式的存储器体积减少。通常,如果控制点差满足以下限制,则仿射运动使用4×4子块(即4x4仿射模式)。否则,仿射运动使用8×8子块(8×8仿射模式)。对6-参数和4-参数模型的限制如下。
[0188] 为了导出不同的块尺寸(wxh)的限制,将控制点的运动向量差归一化为:
[0189] Norm(v1x-v0x)=(v1x-v0x)*128/w
[0190] Norm(v1y-v0y)=(v1y-v0y)*128/w
[0191] Norm(v2x-v0x)=(v2x-v0x)*128/h
[0192] Norm(v2x-v0x)=(v2x-v0x)*128/h      等式(8)
[0193] 在4-参数仿射模型中,(v2x-v0x)和(v2y-v0y)设置如下:
[0194] (v2x-v0x)=-(v1y-v0y)
[0195] (v2y-v0y)=-(v1x-v0x)         等式(9)
[0196] 因此,(v2x-v0x)和(v2y-v0y)的范数为:
[0197] Norm(v2x-v0x)=-Norm(v1y-v0y)
[0198] Norm(v2y-v0y)=Norm(v1x-v0x)      等式(10)
[0199] 13.2限制以确保INTER_4x8或INTER_8x4的最坏情况带宽
[0200] |Norm(v1x-v0x)+Norm(v2x-v0x)+128|+
[0201] |Norm(v1y-v0y)+Norm(u2y-v0y)+128|+
[0202] |Norm(v1x-v0x)-Norm(v2x-v0x)|+
[0203] |Norm(v1y-v0y)-Norm(v2y-v0y)|
[0204] <128*3.25         等式(11)
[0205] 在此,上述等式的左侧表示子仿射块的收缩或跨度平,而(3.25)表示 3.25像素位移。
[0206] 13.3限制以确保INTER_9x9的最坏情况带宽
[0207] (4*Norm(v1x-v0x)>-4*pel&&+4*Norm(v1x-v0x)
[0208] <pel)&&
[0209] (4*Norm(v1y-v0y)>-pel&&4*Norm(v1y-v0y)<pel)&&
[0210] (4*Norm(v2x-v0x)>-pel&&4*Norm(v2x-v0x)<pel)&&
[0211] (4*Norm(v2y-v0y)>-4*pel&&4*Norm(v2y-v0y)<pel)&&
[0212] ((4*Norm(v1x-v0x)+4*Norm(v2x-v0x)>-4*pel)&&
[0213] (4*Norm(v1x-v0x)+4*Norm(v2x-v0x)<pel))&&
[0214] ((4*Norm(v1y-v0y)+4*Norm(v2y-v0y)>-4*pel)&&
[0215] (4*Norm(v1y-v0y)+4*Norm(v2y-v0y)<pel))
[0216] 等式(12)
[0217] 在此,pel=128*16(128和16分别指示归一化因子和运动向量精度)。
[0218] 14.组合仿射merge候选的现有方法的缺点
[0219] 在一些现有的实现方式中,CPMV被单独存储,因此,需要额外的存储器。
[0220] 除了单独存储的CPMV之外,还必须知道相邻CU的宽度、高度和左上位置以从相邻的仿射编码的CU继承merge模型。这些侧面信息将增加线缓冲器尺寸。
[0221] 试图限制仿射带宽的其它现有实现方式在解码器上增加了额外的计算负担。
[0222] 15.用于仿射运动数据的表示的示例性方法
[0223] 所公开技术的实施例存储仿射模型参数而不是存储控制点运动向量 (CPMV)在用于各种实现方式所描述的下列示例中阐明,其解决了仿射预测的带宽和线-缓冲器问题,并且可以提高视频编码效率,并同时增强现有的以及未来的视频编码标准。在以下示例中,其不应认为是限制性的,仿射编码的上方或左方相邻CU的左上角/右上角/左下角/右下角的坐标分别为((LTNx, LTNy)/(RTNx,RTNy)/(LBNx,LBNy)/(RBNx,RBNy);当前CU的左上角/右上角/左下角/右下角的坐标分别为(LTCx,LTCy)/(RTCx,RTCy) /(LBCx,LBCy)/(RBCx,RBCy);仿射编码的上方或左方相邻CU的宽度和高度分别为w′和h′;仿射编码的当前CU的宽度和高度分别为w和h。
[0224] 此外,MV是二维标记为(MVx,MVy)的2维向量。MV1+MV2=MV3 意味着MV1x+MV2x=MV3x和MV1y+MV2y=MV3y。k×MV1=MV2意味着k×MV1x=MV2x和k×MV1y=MV2y。平均(MV1,MV2)= ((MV1x+MV2x)>>1,(MV1y+MV2y)>>1)或平均(MV1,MV2)= ((MV1x+MV2x+1)>>1,(MV1y+MV2y+1)>>1)。
[0225] 在以下示例中,SatShift(x,n)被定义为
[0226]
[0227] 在一个示例中,offset0和offset1被设置为(1<<(n-1))。
[0228] 在以下示例中,Clip3(min,max,x)被定义为
[0229]
[0230] 尽管以下示例在“仿射merge候选列表”的上下文中进行了描述,但它们同样适用于其它merge候选列表,例如“子块merge候选列表”以及当诸如 ATMVP候选的其它类型的子块merge候选也被放入merge候选列表中时。
[0231] 将被存储的仿射运动信息的示例
[0232] 示例1.如果块用仿射模式编码,可以存储等式(2)中定义的参数a、 b、c、d、e和f以用于该块。
[0233] (a)替代地,如果块用仿射模式编码,则可以存储等式(2)中定义的 a、b、c和d以用于该块。在该情况中,不再存储e和f。
[0234] (b)替代地,如果块用4-参数仿射模式编码,则可以存储等式(1) 中定义的a和b以用于该块。
[0235] (c)替代地,如果块用4-参数仿射模式编码,则可以存储等式(1) 中定义的a、b、e和f以用于该块。
[0236] (d)如果块用4-参数仿射模式编码,则等式(2)中定义的参数a、b、 c、d、e和f总是被存储以用于仿射编码的块,但是限制c=-b,d=a。
[0237] (e)如果块用4-参数仿射模式编码,则等式(2)中定义的参数a、b、 c和d总是被存储以用于仿射编码的块,但是限制c=-b,d=a。
[0238] (f)哪些参数将被存储可以取决于仿射模式、帧间或merge模式、块尺寸、图片类型等。
[0239] 示例2.在一个示例中,要存储的参数可以如下计算:
[0240] (a)
[0241] (b)
[0242] (c)
[0243] (d)
[0244] (e)c=-b用于4-参数仿射预测
[0245] (f)d=a用于4-参数仿射预测
[0246] (g)
[0247] (h)
[0248] (i)(e,f)=(mvx,mvy),其中(mvx,mvy)可以是任何MV。
[0249] 示例3.建议计算仿射模型参数而不进行除法运算。假设标注为w和h 的当前块的宽度和高度等于2WB和2HB。P是定义计算精度的整数,例如,P 设置为7。
[0250] (a)
[0251] (b)
[0252] (c)
[0253] (d)
[0254] 示例4.仿射模型参数可以在被存储前被进一步裁剪。
[0255] (a)在一个示例中,假设参数x(例如x=a或b或c或d)以K比特存储,则x=Clip3(-2K-1,2K-1-1,x)。
[0256] (b)例如,a=Clip(-128,127,a),然后将a存储为8比特带符号整数。
[0257] 示例5.可以为每个M×N区域存储仿射模型参数。M×N区域内的所有子块(例如,subM×subN子块)共享相同的存储参数。
[0258] (a)例如,M=N=4或M=N=8,或M=N=16或M=N=32,subM=subN=4。
[0259] (b)可以选择区域内的子块之一,并且可以存储其对应的仿射模型参数以用于整个M×N区域。替代地,将要存储的仿射模型参数可以从多个子块的仿射模型参数生成。
[0260] (c)在编码/解码一个片/图片之后,可以进一步调整区域尺寸,其中可以利用M'xN'区域以具有相同的仿射模型参数,并且不可能同时出现M'=M 和N'=N。
[0261] (d)在一个示例中,存储在区域中的参数被设置为在区域的右下角处的子M x子N块的参数,例如,图11中的B33。
[0262] (e)在一个示例中,存储在区域中的参数被设置为在区域的左下角处的子M x子N块的参数,例如,图11中的B03。
[0263] (f)在一个示例中,存储在区域中的参数被设置为在区域的左上角处的子M x子N块的参数,例如,图11中的B00。
[0264] (g)在一个示例中,存储在区域中的参数被设置为在区域的右上角处的子M x子N块的参数,例如,图11中的B30。
[0265] (h)在一个示例中,存储在区域中的参数被设置为在区域的中间处的子M x子N块的参数,例如,图11中的B11或B21或B12或B22。
[0266] (i)在一个示例中,存储在区域中的参数被设置为在区域的中间和底线处的子M x子N块的参数,例如,图11中的B13或B23。
[0267] (j)在一个示例中,存储在区域中的参数被设置为在区域的中间和左方线处的子M x子N块的参数,例如,图11中的B01或B02。
[0268] (k)在一个示例中,存储在区域中的参数被设置为在区域的中间和右侧线处的子M x子N块的参数,例如,图11中的B31或B32。
[0269] (l)在一个示例中,存储在区域中的参数被设置为在区域的中间和顶线处的子M x子N块的参数,例如,图11中的B10或B20。
[0270] 存储的仿射模型参数的使用示例
[0271] 示例6.相邻块中存储的仿射模型参数可以被用于导出当前块的仿射预测。
[0272] (a)在一个示例中,存储在相邻块中的参数可以被用于当前块的运动向量预测或运动向量编码。
[0273] (b)在一个示例中,存储在相邻块中的参数可以被用于导出当前仿射编码的块的控制点MV(CPMV)。
[0274] (c)在一个示例中,存储在相邻块中的参数可以被用于导出用于当前仿射编码的块的子块的运动补偿中的MV。
[0275] (d)在一个示例中,存储在相邻块中的参数可以被用于导出当前仿射编码的块的CPMV的预测。CPMV的该预测可以被用于当需要编码CPMV时预测当前块的CPMV。
[0276] 示例7.如果当前块利用从相邻块合并的仿射merge模式,则相邻块中存储的仿射模型参数可以由当前块继承。替代地,当前块的仿射模型可以从存储在一个或多个相邻块中的仿射模型参数中导出。
[0277] 示例8.可以从编码器向解码器信令通知当前块的仿射模型参数。
[0278] (a)存储在相邻块中的参数可以用于预测当前块的参数。
[0279] 示例9.可以在对图片进行编码/解码之后存储仿射模型参数。可以使用存储的参数来预测要在将被编码/解码的另一图片中编码的块的仿射参数。
[0280] 示例10.两个参考列表(List0和List1)的参数均被存储。
[0281] (a)在一个示例中,两个参考列表的参数被独立存储。
[0282] (b)替代地,两个参考列表的参数可以与从一个到另一个的预测一起存储。
[0283] 示例11.提出对于亮度分量的仿射模型参数也可被存储以用于色度分量。当对色度分量进行编码时,相关联的仿射模型参数可从与亮度分量有关的那些中继承或导出。
[0284] (a)替代地,可以存储亮度分量的仿射模型参数,并且两个色度分量的仿射模型参数可以被一起存储或仅为一个色度分量存储或单独存储。
[0285] (b)在一个示例中,是否为不同的颜色分量存储单独的仿射模型参数可以取决于颜色格式。
[0286] 可以利用仿射模型参数的时域预测的示例
[0287] 示例12.在一个示例中,一个或多个图片中存储的一个或多个块(例如,并置块)的仿射模型参数可被视为具有仿射merge模式的当前编码块的仿射参数。
[0288] (a)在一个示例中,在被用作以仿射merge模式的当前编码块的仿射参数之前,一个或多个图片中的一个或多个块(例如,并置块)的存储的参数可以被缩放(如果需要)。
[0289] (b)在一个示例中,可以检查多个时域相邻块以便于选择一组仿射模型参数。例如,CU的右下相邻4x4/8x8块的并置块,以及CU的中心4x4 /8x8块的并置块。
[0290] (c)在一个示例中,时域相邻块可以由相邻运动信息识别。
[0291] (d)在一个示例中,时域相邻块来自于所谓的并置图片。在一个示例中,该并置图片可以与TMVP/ATMVP中所使用的相同。
[0292] (e)在一个示例中,并置图片可以在VPS/SPS/PPS/条带报头/片组报头中信令通知。
[0293] (f)在一个示例中,与继承或直接从时间块中导出不同,不同的图片中的一个或多个块的相关联的仿射模型参数可以被用于预测当前块的仿射模型参数的编码,或预测当前块的CPMV编码。
[0294] 示例13.一个或多个其它图片中的一个或多个块(例如,并置块)的存储的参数可以被用作以仿射帧间模式的当前编码块的仿射参数的预测。
[0295] (a)在一个示例中,在被用作以仿射帧间模式的当前编码块的仿射参数的预测之前,另一图片中并置块的存储的参数可以被缩放(如果需要)。
[0296] (b)在一个示例中,可以检查多个时域相邻块。例如,CU的右下相邻4x4/8x8块的并置块,以及CU的中心4x4/8x8块的并置块。
[0297] (c)在一个示例中,时域相邻块可以由相邻运动信息识别。
[0298] (d)在一个示例中,并置图片可以与TMVP/ATMVP中所使用的相同。
[0299] (e)在一个示例中,并置图片可以在VPS/SPS/PPS/条带报头/片组报头中信令通知。
[0300] 示例14.存储在相邻M×N单元块(例如VTM中的4×4块)中的运动信息和该单元块中存储的仿射参数可以一起使用以导出在运动补偿中使用的 CPMV或子块的MV。
[0301] (a)假设单元块的左上位置的坐标为(x0,y0),则单元块的中心位置的坐标(xm,ym)可以计算为:
[0302] (i)xm=x0+M/2,ym=y0+N/2;
[0303] (ii)xm=x0+M/2-1,ym=y0+N/2-1;
[0304] (iii)xm=x0+M/2-1,ym=y0+N/2;
[0305] (iv)xm=x0+M/2,ym=y0+N/2-1;
[0306] (b)假设存储在单元块中的MV为(mvh0,mvv0),导出MV(mvh(x, y),mvv(x,y))的位置(x,y)的坐标。假设当前块左上角的坐标为(x0’, y0’),当前块的宽度和高度为w和h,则[0307] (i)为了导出CPMV,(x,y)可以是(x0’,y0’)或(x0’+w,y0’) 或(x0’,y0’+h)或(x0’+w,y0’+h)。
[0308] (ii)为了导出当前块的子块的MV,(x,y)可以是子块的中心。假设(x00,y00)是子块的左上位置,子块尺寸为M×N,则
[0309] (1)xm=x00+M/2,ym=y00+N/2;
[0310] (2)xm=x00+M/2-1,ym=y00+N/2-1;
[0311] (3)xm=x00+M/2-1,ym=y00+N/2;
[0312] (4)xm=x00+M/2,ym=y00+N/2-1;
[0313] (iii)在一个示例中,
[0314]
[0315] 如果相邻块以4-参数仿射模式编码。
[0316] (iv)在一个示例中,
[0317]
[0318] 如果相邻块以6-参数仿射模式编码。
[0319] (v)在一个示例中,
[0320]
[0321] 无论相邻块以4-参数仿射模式还是6-参数仿射模式编码。
[0322] (c)在一个示例中,当前块的CPMV从相邻块中存储的运动向量和参数导出,并且这些CPMV充当MVP以用于当前块的信令通知的CPMV。
[0323] (d)在一个示例中,当前块的CPMV从相邻块中存储的运动向量和参数导出,并且这些CPMV被用于导出用于运动补偿的每个子块的MV。
[0324] (e)在一个示例中,如果当前块用仿射merge编码,则用于运动补偿的每个子块的MV从相邻块中存储的运动向量和参数导出。
[0325] 示例15.在被用于仿射模型参数的继承/导出/预测之前,可以对来自多个相邻块(空域和/或时域相邻块)的仿射模型参数应用修剪(pruning)。
[0326] (a)可以比较不同的相邻块的仿射模型参数来决定来自一个相邻块的参数是否与来自已经在仿射merge或仿射AMVP候选列表中的另一个相邻块的参数不同或类似,以及来自相邻块的参数是否应放入候选列表中。假设{a, b,c,d,e,f}是来自相邻块的参数,并且{a’,b’,c’,d’,e’,f’}是来自相邻块的参数。当且仅当满足以下条件时,当具有参数{a’,b’,c’,d’,e’,f’} 的仿射模型已经在候选列表中时,具有参数{a,b,c,d,e,f}的仿射模型被认为是冗余的,并且不会被放入候选列表中:
[0327] (b)在一个示例中,a==a’。
[0328] (c)在一个示例中,b==b’。
[0329] (d)在一个示例中,c==c’。
[0330] (e)在一个示例中,d==d’。
[0331] (f)在一个示例中,a==a’且b==b’。
[0332] (g)在一个示例中,c==c’且d==d’。
[0333] (h)在一个示例中,a==a’且b==b’且c==c’。
[0334] (i)在一个示例中,a==a’且b==b’且c==c’且d==d’。
[0335] 示例16.是否以及如何应用所提出的方法可以取决于当前块和相邻块的位置。
[0336] (a)在一个示例中,仅当当前块处于CTU中的底部,或处于M×N区域(例如M=N=64)中的底部时,才应用一个或多个所提出的方法。
[0337] (b)在一个示例中,仅当当前块处于CTU中的顶部,或处于M×N区域(例如M=N=64)中的顶部时,才应用一个或多个所提出的方法。
[0338] (c)在一个示例中,仅当当前块处于CTU中的左侧,或处于M×N区域(例如M=N=64)中的左侧时,才应用一个或多个所提出的方法。
[0339] (d)在一个示例中,仅当当前块处于CTU中的右侧,或处于M×N区域(例如M=N=64)中的右侧时,才应用一个或多个所提出的方法。
[0340] 上面描述的示例可以结合到下面描述的方法的上下文中,例如,方法 1200,其可以实现在视频解码器/编码器处。
[0341] 图12示出了视频编码的示例性方法的流程图。方法1200包括,在步骤 1210处,在当前视频块和当前视频块的比特流表示之间的转换中的当前仿射计算步骤期间,选择第一组仿射模型参数的一个或多个参数,其中第一组仿射模型参数基于一个或多个先前的仿射计算步骤。
[0342] 在一些实施例中,并且在示例1的上下文中,第一组仿射模型参数包括对应于等式(1)中定义的6-参数仿射模型的6个变量(a,b,c,d,e,f)。在示例中,一个或多个参数包括(a,b,c,d,e,f)。在另一示例中,一个或多个参数包括(a,b,c,d)。
[0343] 在一些实施例中,并且在示例1的上下文中,第一组仿射模型参数包括对应于等式(2)中定义的4-参数仿射模型的4个变量(a,b,e,f)。在一个示例中,一个或多个参数包括(a,b,e,f)。在另一示例中,一个或多个参数包括(a,b)。
[0344] 在一些实施例中,并且在示例11的上下文中,当前视频块包括亮度分量和色度分量,并且第一组仿射模型参数与亮度分量和色度分量两者相关联。
[0345] 在一些实施例中,并且在示例12的上下文中,第一组仿射模型参数与一个或多个并置块相关联。在其它实施例中,第一组仿射模型参数与多个时域相邻块中的一个时域相邻块相关联。例如,一个时域相邻块基于相邻运动信息来标识。例如,一个时域相邻块来自并置图片。例如,当前视频块的TMVP 或ATMVP基于并置图片。例如,并置图片在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、条带报头或图块组报头中信令通知。
[0346] 在一些实施例中,并且在示例14的上下文中,第一组仿射模型参数与相邻的M×N单元块相关联,并且进行转换进一步基于对应于相邻的M×N单元块的运动信息。此外,方法1200还包括导出用于运动补偿的当前视频块的子块的CPMV或运动向量的步骤。
[0347] 方法1200包括,在步骤1220处,基于一个或多个参数并通过克制使用一个或多个先前的仿射计算步骤的控制点运动向量(CPMV),进行当前视频块和比特流表示之间的转换。在一些实施例中,该转换从比特流表示(例如,可以在视频解码器中实现)生成当前块。在其它实施例中,该转换从当前块 (例如,可以在视频编码器中实现)生成比特流表示。
[0348] 在一些实施例中,并且在示例6的上下文中,第一组仿射模型参数与当前视频块的相邻块相关联。在示例中,进行该转换包括当前视频块的运动向量预测或运动向量编码。在另一示例中,进行该转换包括导出当前视频块的一个或多个CPMV。在又一示例中,进行该转换包括导出用于当前视频块的子块的运动补偿的一个或多个运动向量。在另一示例中,进行该转换包括导出当前视频块的一个或多个CPMV的预测。
[0349] 在一些实施例中,并且在示例10的上下文中,第一组仿射模型参数与第一参考列表相关联,并且进行该转换进一步基于,与第二参考列表相关联的第二组仿射模型参数的一个或多个参数。
[0350] 在一些实施例中,并且在示例13的上下文中,方法1200还包括以下步骤:在进行该转换之前,缩放第一组仿射模型参数的一个或多个参数。
[0351] 在一些实施例中,并且在示例4的上下文中,方法1200还包括以下步骤:在进行该转换之前,剪裁第一组仿射模型参数的一个或多个参数。
[0352] 在一些实施例中,并且在示例15的上下文中,方法1200还包括以下步骤:在进行该转换之前,修剪与多个时域相邻块相关联的多组仿射模型参数。
[0353] 在一些实施例中,并且在示例16的上下文中,进行转换进一步基于当前视频块的位置。
[0354] 16.所公开的技术的示例实现方式
[0355] 图13是视频处理装置1300的框图。装置1300可以用于实现本文描述的一种或多种方法。装置1300可以实施在智能手机、平板计算机、计算机、物联网(IoT)接收器等中。装置1300可以包括一个或多个处理器1302、一个或多个存储器1304和视频处理硬件1306。(一个或多个)处理器1302可以被配置为实现本文件中描述的一种或多种方法(包括但不限于方法1200)。 (一个或多个)存储器1304可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件1306可以用于在硬件电路中实现本文件中描述的一些技术。
[0356] 图14示出了根据公开的技术的视频处理方法的示例的流程图。方法1400 包括,在步骤1410处,在当前块和当前块的比特流表示之间的转换中的当前仿射计算步骤期间,选择一组仿射模型参数的一个或多个参数;在步骤1420 处,存储当前块的所述一个或多个参数;以及在步骤1430处,基于一个或多个参数,进行当前块和当前块的比特流表示之间的转换。
[0357] 图15示出了根据公开的技术的视频处理方法的另一示例的流程图。方法 1500包括,在步骤1510处,在当前块和当前块的比特流表示之间的转换期间,获取当前块的运动信息,其中当前块的运动信息基于当前块的相邻块的至少一个仿射模型参数;以及在步骤1520处,基于运动信息,进行当前块和当前块的比特流表示之间的转换。
[0358] 在本文件中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在视频的像素表示转换到相应的比特流表示或相反过程期间应用。
[0359] 从前述内容可以理解,本文已经出于说明的目的描述了本公开技术的具体实施例,但是在不脱离本发明的范围的情况下可以进行各种修改。因此,除了所附权利要求之外,本发明所公开的技术不受限制。
[0360] 本专利文件描述的主题和功能操作的实现方式可以以各种系统实现,以数字电子电路实现,或者以计算机软件、固件硬件实现,包括本说明书中公开的结构及其结构等同物,或者以它们中的一个或多个的组合实现。本说明书所描述的主题的实现方式可以实现为一个或多个计算机程序产品,即,在有形和非暂时性计算机可读介质上编码的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质组合、或者它们中的一个或多个的组合。术语“数据处理单元”或“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。
[0361] 计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式来部署计算机程序,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其它单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文件中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并由通信网络互连的多个计算机上执行。
[0362] 本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程阵列)或ASIC(专用集成电路)。
[0363] 举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,以从该一个或多个大容量存储设备接收数据,或将数据传递到该一个或多个大容量存储设备,或者既接收又传递数据。然而,计算机不需要具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说,包括半导体存储器设备,例如EPROM、EEPROM和闪存设备。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0364] 旨在将说明书与附图一起仅视为示例性的,其中示例性意味着示例。此外,除非上下文另有明确指示,否则“或”的使用旨在包括“和/或”。
[0365] 虽然本专利文件包含许多细节,但这些细节不应被解释为对任何发明或可要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本专利文件中,在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分开地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从所要求保护的组合中去除来自该组合的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变型。
[0366] 类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或按顺序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都要求这样的分离。
[0367] 仅描述了几个实现方式和示例,并且可以基于本专利文件中描述和示出的内容来做出其它实现方式、增强和变型。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈