一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

带有协调运动场存储和运动补偿的几何分割模式的制作方法

2022-04-14 01:04:53 来源:中国专利 TAG:

带有协调运动场存储和运动补偿的几何分割模式
1.本技术要求于2020年8月20日递交的美国专利申请第16/998,639号的优先权,该专利申请要求于2019年8月23日递交的美国临时专利申请第62/891,138号的优先权,通过引用将每个申请的完整内容并入本文。
技术领域
2.本公开涉及视频编码和视频解码。


背景技术:

3.数字视频功能能够集成到广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(pda)、便携式或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流式传输设备等。数字视频设备实施视频编解码技术,诸如那些在由mpeg-2、mpeg-4、itu-t h.263、itu-t h.264/mpeg-4第10部分、高级视频编解码(avc)、itu-t h.265/高效视频编解码(hevc)所定义的标准以及此类标准的扩展中所描述的技术。通过实施此类视频编解码技术,视频设备可以更高效地传输、接收、编码、解码和/或存储数字视频信息。
4.视频编解码技术包括空域(图片内)预测和/或时域(图片间)预测来减少或消除视频序列中固有的冗余。对于基于块的视频编解码,可以将视频条带(例如,视频图片或视频图片的一部分)分割为视频块,其也可以称为编解码树单元(ctu)、编解码单元(cu)和/或编解码节点。对于图片的帧内编解码(i)条带中的视频块,可以使用相对于同一图片中相邻块中的参考样点的空域预测进行编码。对于图片的帧间编解码(p或b)条带中的视频块,可以使用相对于同一图片中邻近块中的参考样点的空域预测或者相对于其他参考图片中的参考样点的时域预测。图片可以称为帧,并且参考图片可以称为参考帧。


技术实现要素:

5.一般而言,本公开描述了用于视频编解码的技术。更具体地,本公开的技术可以通过潜在地简化几何分割模式(gpm)的实现来降低预测的复杂性。几何分割模式可指被配置为支持将视频数据块分成一个或多个形状(诸如三角形、梯形或矩形)的分割模式。例如,视频编解码器(例如,视频编码器或视频解码器)可以将视频数据块分成第一分割和第二分割,其中第一分割包括三角形形状,而第二分割包括梯形形状。相反,当在三角形分割模式下操作时,视频编解码器可以沿着对角线或反对角线划分来对视频数据块进行划分,所述对角线或反对角线划分将块均匀地划分为第一三角形分割和第二三角形分割。
6.不同于依赖于11.25度的32个角度来选择分割线的角度,本文描述的技术配置视频编解码器以应用几何分割模式,该几何分割模式从与当前块的样点的n:m比率相对应的角度中选择分割线的角度,其中n和m是整数。附加地,分割线可以不在块的角上。对应于n:m比率的角度可以允许视频编解码器应用几何分割模式,该几何分割模式支持计算效率高的
各种块比率(例如,1:1、1:2、1:4、0:1、2:1和1:0)的角度。例如,视频编解码器可以应用几何分割模式,该几何分割模式支持可以由视频编解码器使用比特移位而不是乘法函数来实现的角度,与被配置为使用11.25度的32个角度应用几何分割模式的视频编解码器相比,该几何分割模式可以潜在地提高视频编解码器的计算效率,而对编解码精度影响很小或没有影响。
7.在一个示例中,一种对视频数据进行解码的方法,包括:确定对于视频数据的当前块启用几何分割模式;以及确定将当前块划分为第一分割和第二分割的分割线,其中,确定该分割线包括从多个角度中选择该分割线的角度,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数,并且其中,该分割线不在当前块的角上。该方法还包括:使用分割线的角度来确定当前块的几何模式权重,并且使用第一分割的运动信息来生成第一预测块。该方法还包括:使用第二分割的运动信息来生成第二预测块,以及将几何分割模式权重应用于第一预测块的样点和第二预测块的样点,以确定当前块的最终预测块。该方法还包括:对当前块的残差块进行解码,以及将最终预测块和残差块组合以对当前块进行解码。
8.在另一示例中,一种对视频数据进行编码的方法,包括:确定对于视频数据的当前块启用几何分割模式;以及确定将当前块划分为第一分割和第二分割的分割线,其中,确定该分割线包括从多个角度中选择该分割线的角度,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数,并且其中,该分割线不在当前块的角上。该方法还包括:使用分割线的角度来确定当前块的几何模式权重,并且使用第一分割的运动信息来生成第一预测块。该方法还包括:使用第二分割的运动信息来生成第二预测块,以及将几何分割模式权重应用于第一预测块的样点和第二预测块的样点,以确定当前块的最终预测块。该方法还包括:基于视频数据的当前块与最终预测块之间的差值来生成视频数据的当前块的残差块,以及对该残差块进行编码。
9.在一个示例中,一种用于对视频数据进行解码的设备包括被配置为存储视频数据的存储器,以及在电路中实现的一个或多个处理器,其被配置为:确定对视频数据的当前块启用几何分割模式;以及确定将当前块划分为第一分割和第二分割的分割线,其中,为了确定该分割线,该一个或多个处理器被配置为:从多个角度中选择分割线的角度,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数,并且其中该分割线不在当前块的角上。该一个或多个处理器还被配置为:使用分割线的角度来确定当前块的几何模式权重,以及使用第一分割的运动信息来生成第一预测块。该一个或多个处理器还被配置为:使用第二分割的运动信息来生成第二预测块,以及将几何分割模式权重应用于第一预测块的样点和第二预测块的样点,以确定当前块的最终预测块。一个或多个处理器还被配置为:对当前块的残差块进行解码,以及将最终预测块和残差块组合以对当前块进行解码。
10.在另一示例中,一种用于对视频数据进行编码的设备包括在电路中实现的一个或多个处理器,其被配置为:确定对视频数据的当前块启用几何分割模式;以及确定将当前块划分为第一分割和第二分割的分割线,其中,为了确定该分割线,该一个或多个处理器被配置为:从多个角度中选择分割线的角度,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数,并且其中该分割线不在当前块的角上。该一个或多个处理器还被配置为:使用分割线的角度来确定当前块的几何模式权重,以及使用第一分割的运动信
息来生成第一预测块。该一个或多个处理器还被配置为:使用第二分割的运动信息来生成第二预测块,以及将几何分割模式权重应用于第一预测块的样点和第二预测块的样点,以确定当前块的最终预测块。该一个或多个处理器还被配置为:基于视频数据的当前块与最终预测块之间的差值来生成视频数据的当前块的残差块,并对该残差块进行编码。
11.在一个示例中,一种对视频数据进行解码的设备,包括:用于确定对于视频数据的当前块启用几何分割模式的部件;以及用于确定将当前块划分为第一分割和第二分割的分割线的部件,其中,用于确定该分割线的部件包括用于从多个角度中选择该分割线的角度的部件,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数,并且其中,该分割线不在当前块的角上。该设备还包括:用于使用分割线的角度来确定当前块的几何模式权重的部件,以及用于使用第一分割的运动信息来生成第一预测块的部件。该设备还包括:用于使用第二分割的运动信息来生成第二预测块的部件,以及用于将几何分割模式权重应用于第一预测块的样点和第二预测块的样点,以确定当前块的最终预测块的部件。该设备还包括:用于对当前块的残差块进行解码的部件,以及用于将最终预测块和残差块组合以对当前块进行解码的部件。
12.在另一示例中,一种对视频数据进行编码的设备,包括:用于确定对于视频数据的当前块启用几何分割模式的部件;以及用于确定将当前块划分为第一分割和第二分割的分割线的部件,其中,用于确定该分割线的部件包括用于从多个角度中选择该分割线的角度的部件,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数,并且其中,该分割线不在当前块的角上。该设备还包括:用于使用分割线的角度来确定当前块的几何模式权重的部件,以及用于使用第一分割的运动信息来生成第一预测块的部件。该设备还包括:用于使用第二分割的运动信息来生成第二预测块的部件,以及用于将几何分割模式权重应用于第一预测块的样点和第二预测块的样点,以确定当前块的最终预测块的部件。该设备还包括:用于基于视频数据的当前块与最终预测块之间的差值来生成视频数据的当前块的残差块的部件,以及用于对该残差块进行编码的部件。
13.在附图和以下描述中阐述一个或多个示例的细节。根据说明书、附图和权利要求书,其他特征、目的和优势将显而易见。
附图说明
14.图1是示出可以执行本公开的技术的示例视频编码和解码系统的框图。
15.图2a和2b是示出示例四叉树二叉树(qtbt)结构和相对应的编解码树单元(ctu)的概念示意图。
16.图3是示出可以执行本公开的技术的示例视频编码器的框图。
17.图4是示出可以执行本公开的技术的示例视频解码器的框图。
18.图5是示出基于三角分割的帧间预测示例的概念图。
19.图6是示出用于构造单向预测候选列表的示例空间和时间相邻块的概念图。
20.图7是示出三角分割模式的单向预测mv选择示例的概念图。
21.图8是示出混合过程中使用的示例权重的概念图。
22.图9是示出示例三角分割模式(tpm)的概念图。
23.图10是示出示例几何分割模式分割信令的示意图。
24.图11是示出示例几何分割模式(gpm)与tpm协调的概念图。
25.图12是示出用于对当前块进行编码的第一示例方法的流程图。
26.图13是示出用于对当前视频数据块进行解码的示例方法的流程图。
27.图14是示出第二示例gpm与tpm协调的概念图。
28.图15是示出根据本公开的技术的用于使用多个角度对当前块进行编码的示例方法的流程图,该多个角度中的每个角度对应于当前块的样点的n:m比率。
29.图16是示出根据本公开的技术的用于使用多个角度对视频数据的当前块进行解码的示例方法的流程图,该多个角度中的每个角度对应于当前块的样点的n:m比率。
30.图17是示出了根据本公开的技术的具有1:2比率的块的示例角度的概念图。
31.图18是示出了根据本公开的技术的具有1:4比率的块的示例角度的概念图。
32.图19是示出了根据本公开的技术的具有1:1比率的块的示例角度的概念图。
33.图20是示出了根据本公开的技术的具有2:1比率的块的示例角度的概念图。
34.图21是示出了根据本公开的技术的具有0:1比率的块的示例角度的概念图。
35.图22是示出了根据本公开的技术的具有1:0比率的块的示例角度的概念图。
具体实施方式
36.一般而言,本公开描述了用于视频编解码的技术。更具体地,本公开的技术涉及用于运动估计的分割,诸如三角分割模式、几何分割模式(gpm)或另一分割模式。例如,视频编解码器(例如,视频编码器或视频解码器)可以应用几何分割模式来执行运动估计,以跟踪视频数据内的视频对象的运动。相反,视频数据的分割经常涉及视频编码器沿着垂直或水平方向划分编解码树单元(ctu)的过程(例如,参见图2b),并且信令通知包括每个视频数据块的残差块的信息。
37.对于使用三角分割模式(tpm)进行运动估计的分割,视频编解码器(例如,视频编码器或视频解码器)可以应用三角分割模式将视频数据的矩形块分割成第一三角分割和第二三角分割。例如,视频编解码器可以应用从该矩形块的第一角(例如,左上角或左下角)到该矩形块的第二角(例如,右下角或右上角)的分割线。视频编解码器可以使用第一三角分割的运动信息来生成第一预测块的样点,并且使用第二三角分割的运动信息来生成第二预测块的样点。在该示例中,视频编解码器可以沿着划分第一三角分割和第二三角分割的分割线对来自第一预测块和第二预测块的样点进行混合(例如,加权平均),以生成视频数据块的最终预测块。在该示例中,视频编码器不信令通知第一三角分割的第一残差信息和第二三角分割的第二残差信息。取而代之的是,视频编码器可以信令通知整个视频数据块的单个残差块。以此方式,可以将布置在具有相似运动的视频数据的一部分中的样点分组在一起,这可以潜在地提高编解码精度,而对计算复杂性影响很小或没有影响。
38.一般地,当在三角分割模式下操作时,视频编解码器(例如,视频编码器或视频解码器)可以沿着对角线或反对角线划分来划分视频数据块,该对角线或反对角线划分将块均匀地划分为第一分割和第二分割,其中第一分割包括与第二分割相同数量的样点。虽然三角分割模式可以沿着45度角对正方形块进行分割,但是视频编解码器可以对非正方形矩形块应用不同的三角分割模式角度。例如,视频编解码器可以应用三角分割模式以确定在第一三角分割模式角度处的第一分割线以均匀地划分包括宽度:高度比率1:2的第一块,应
用三角分割模式以确定在第二三角分割模式角度处的第二分割线以均匀地划分包括宽度:高度比率1:4的第二块,以此类推。也就是,三角分割模式角度的集合可以包括对角线角度以适应每个可能的块比率(例如1:1、1:2、1:4和2:1)。在一些示例中,当前块的样点的n:m比率的n或m的值可以是2^x,其中x是0或正整数。
39.此外,三角分割模式角度(在本文也称为“tpm角度”)的集合可以包括反对角线角度,以适应每个可能的块比率(例如1:1、1:2、1:4、2:1)。该三角分割模式角度集合可以包括对应的每个对角线角度和每个反对角线角度的 180度角度。例如,对于1:1、1:2、1:4、2:1的块比率,三角集合分割模式角度可以包括4个对角线角度、4个具有180度偏移的对角线角度、4个反对角线角度和4个具有180度偏移的反对角线角度,总共16个角度。
40.视频编解码器可以应用几何分割模式以将视频数据块划分成一个或多个三角形形状和一个或多个非三角形形状(例如梯形形状或矩形形状)。例如,视频编解码器(例如,视频编码器或视频解码器)可以使用包括梯形形状的第一分割的运动信息来生成第一预测块,并且使用包括梯形形状的第二分割的运动信息来生成第二预测块。在该示例中,视频编解码器可以将几何分割模式权重应用于该第一预测块的样点和该第二预测块的样点,以确定当前块的最终预测块。在一些示例中,视频编解码器(例如,视频编码器或视频解码器)可以应用几何分割模式将视频数据块划分成第一分割和第二分割,其中第一分割包括比第二分割更多的样点。以此方式,视频编解码器可以允许视频编解码器包括在单个分割内具有相似运动的附加样点,与依赖于相等大小的分割和/或矩形和三角分割的系统视频编解码器相比,这可以潜在地提高编解码精度,而对计算复杂性的影响很小或没有影响。
41.为了执行几何分割模式,一些视频编解码器可以被配置为使用11.25度的32个角度来选择分割线的角度。例如,视频编码器可以信令通知指示从0-31的集合中选择的一个角度索引的值。例如,角度索引0可以表示0度,角度索引1可以表示11.25度,角度索引2可以表示22.5度,以此类推。此外,视频编码器可以信令通知该值以指示相对于块的中心的行位移。类似地,视频解码器可以接收指示从0-31的集合中选择的一个角度索引的值和行位移以确定该块的分割线。以此方式,视频编解码器可以应用几何分割模式来不均匀地划分视频数据块和/或允许将视频数据块划分成非矩形和非三角形状,与依赖于相等大小的分割和/或矩形和三角分割的系统视频编解码器相比,这可以潜在地提高编解码精度,而对计算复杂性影响很小或没有影响。
42.然而,将视频编解码器(例如,视频编码器或视频解码器)配置为使用11.25度的32个角度来选择分割线的角度可能存在一个或多个问题。例如,11.25度的32个角度可能导致视频编解码器使用乘法函数将样点位置多次乘以该角度的余弦,这可能在计算量上很大,导致编解码中的延迟。本文描述的技术可以表示使用11.25度的32个角度来选择分割线的角度而存在的问题的一个或多个解决方案。例如,适用于三角分割的角度的集合可以改为应用于几何分割模式,使得几何分割模式可以包括不同角度的集合。
43.例如,用于几何模式分割的角度集合可以包括对应于n:m比率的三角集合分割模式角度,其中n和m是整数,例如,用于几何模式分割的角度集合可以包括对应于1:1、1:2、1:4和2:1的三角集合分割模式角度。更具体地,用于几何模式分割的角度集合可以包括4个对角线角度、4个具有180度偏移的对角线角度、4个反对角线角度和4个具有180度偏移的反对角线角度的集合。此外,视频编解码器可以确定用于几何模式分割的角度集合,还可以包括
支持将块划分成矩形形状的角度。例如,用于几何模式分割的角度集合还可以包括一个或多个水平角度和/或一个或多个垂直角度。此外,与tpm相反,gpm允许从当前块的角上对分割线进行移位。例如,当应用带有三角集合分割模式角度的gpm时,视频编解码器(例如,视频编码器或视频解码器)可以确定将当前块划分为第一分割和第二分割的分割线不在当前块的角上。例如,视频编解码器可以确定分割线被布置成使得第一分割或第二分割中的一个或多个分割包括非三角形状(例如梯形)。
44.图1是示出可执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术通常针对对视频数据进行编解码(编码和/或解码)。一般地,视频数据包括用于处理视频的任何数据。从而,视频数据可以包括原始的未编码的视频、编码的视频、解码的(例如重建的)视频以及视频元数据(诸如,信令通知的数据)。
45.如图1所示,在此示例中,系统100包括提供将由目标设备116进行解码和显示的编码的视频数据的源设备102。具体地,源设备102经由计算机可读介质110将视频数据提供给目标设备116。源设备102和目标设备116可以包括多种设备中的任何一种,包括台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、手持电话(如智能手机)、电视、照相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备等。在一些情况下,源设备102和目标设备116可以被配备用于无线通信,并且因此可以称为无线通信设备。
46.在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目标设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目标设备116的视频解码器300可以被配置为应用根据本公开的用于带有协调运动场存储和运动补偿的几何分割模式的技术。因而,源设备102表示视频编码设备的示例,而目标设备116表示视频解码设备的示例。在其他示例中,源设备和目标设备可以包括其他组件或布置。例如,源设备102可以从诸如外部照相机的外部视频源接收视频数据。同样,目标设备116可以与外部显示设备接口,而不包括集成的显示设备。
47.如图1所示的系统100仅是一个示例。一般地,任何数字视频编码和/或解码设备可以执行用于带有协调运动场存储和运动补偿的几何分割模式的技术。源设备102和目标设备116仅仅是此类编解码设备的示例,其中,源设备102生成用于传输到目标设备116的编解码视频数据。本公开将“编解码”设备表示为执行数据编解码(编码和/或解码)的设备。从而,视频编码器200和视频解码器300表示编解码设备的示例,具体地,分别是视频编码器和视频解码器。在一些示例中,设备102、设备116可以以基本上对称的方式操作,使得设备102、设备116中的每一个均包括视频编码和解码组件。于是,系统100可以支持视频设备102、116之间的单向或双向视频传输,例如用于视频流式传输、视频回放、视频广播或者视频电话。
48.一般地,视频源104表示视频数据源(即原始的未编码的视频数据),并将视频数据的连续的图片(也称为“帧”)序列提供给视频编码器200,其对图片的数据进行编码。源设备102的视频源104可以包括视频捕获设备,诸如照相机、包括先前捕获的原始视频的视频档案和/或从视频内容提供商接收视频的视频馈送接口。作为进一步的替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者实况视频、存档视频和计算机生成视频的组合。在每种情况下,视频编码器200对捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从接收顺序(有时称为“显示顺序”)重新排列为用于编解
码的编解码顺序。视频编码器200可以生成包括编码的视频数据的比特流。然后,源设备102可以经由输出接口108将编码的视频数据输出到计算机可读介质110上,以供例如目标设备116的输入接口122进行接收和/或检索。
49.源设备102的存储器106和目标设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如来自视频源104的原始视频和来自视频解码器300的原始的解码的视频数据。附加地或可替代地,存储器106、120可以分别存储可由例如视频编码器200和视频解码器300执行的软件指令。尽管在此示例中存储器106和存储器120与视频编码器200和视频解码器300分开示出,但是应当理解的是,视频编码器200和视频解码器300还可以包括实现功能上相似或等效目的的内部存储器。进一步来说,存储器106、120可以存储例如从视频编码器200输出并输入到视频解码器300的编码的视频数据。在一些示例中,存储器106、120的一些部分可以分配为一个或多个视频缓冲区,例如用来存储原始的解码和/或编码视频数据。
50.计算机可读介质110可以表示能够将编码的视频数据从源设备102传输到目标设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示通信介质以使源设备102能够例如经由射频网络或基于计算机的网络将编码的视频数据实时地直接传输到目标设备116。根据诸如无线通信协议的通信标准,输出接口108可以对包括编码的视频数据的传输信号进行调制,并且输入接口122可以对接收到的传输信号进行解调。通信介质可以包括任何无线或有线通信介质,诸如射频(rf)频谱或者一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如因特网的全球网络。通信介质可以包括路由器、交换机、基站或有助于从源设备102到目标设备116的通信的任何其他装备。
51.在一些示例中,计算机可读介质110可以包括存储设备112。源设备102可以将编码数据从输出接口108输出到存储设备112。类似地,目标设备116可以经由输入接口122访问来自存储设备112的编码的数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器,或者用于存储编码的视频数据的任何其他合适的数字存储介质。
52.在一些示例中,计算机可读介质110可以包括文件服务器114或可存储由源设备102生成的编码视频数据的另一中间存储设备。源设备102可以向文件服务器114或可存储由源设备102生成的编码的视频的另一中间存储设备输出编码的视频数据。目标设备116可以经由流式传输或下载来访问来自文件服务器114的存储的视频数据。文件服务器114可以是能够存储编码的视频数据并将编码的视频数据发送到目标设备116的任何类型的服务器设备。文件服务器114可以表示(例如用于网站的)web服务器、文件传输协议(ftp)服务器、内容递送网络设备或网络附加存储(nas)设备。目标设备116可以通过包括因特网连接的任何标准数据连接来访问来自文件服务器114的编码的视频数据。这可以包括无线信道(例如wi-fi连接)、有线连接(例如数字订户线路(dsl)、电缆调制解调器等)或者适合访问存储在文件服务器114上的编码的视频数据的二者的组合。文件服务器114和输入接口122可以配置为根据流式传输协议、下载传输协议或其组合来操作。
53.输出接口108和输入接口122可以表示无线发射器/接收器、调制解调器、有线联网组件(例如以太网卡)、根据各种ieee 802.11标准中的任何一种进行操作的无线通信组件,
或者其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以配置为根据诸如4g、4g-lte(长期演进)、lte高级、5g或类似标准的蜂窝通信标准来传输诸如编码的视频数据的数据。在输出接口108包括无线发射器的某些示例中,输出接口108和输入接口122可以配置为根据其他无线标准,诸如ieee802.11规范、ieee 802.15规范(例如zigbee
tm
)、蓝牙
tm
标准等来传输诸如编码的视频数据的数据。在一些示例中,源设备102和/或目标设备116可以包括各自的片上系统(soc)设备。例如,源设备102可以包括soc设备来执行归于视频编码器200和/或输出接口108的功能,并且目标设备116可以包括soc设备来执行归于视频解码器300和/或输入接口122的功能。
54.本公开的技术可以应用于支持各种多媒体应用中的任何一种的视频编解码,多媒体应用诸如空中电视广播、有线电视传输、卫星电视传输、诸如基于http的动态自适应流式传输(dash)的互联网流式视频传输、编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码或者其他应用。
55.目标设备116的输入接口122从计算机可读介质110(例如通信介质、存储设备112、文件服务器114等)接收编码视频比特流。编码的视频比特流可以包括由视频编码器200定义的、也由视频解码器300使用的信令信息,诸如语法元素,该语法元素具有描述视频块或其他编解码单元(例如条带、图片、图片组、序列等)的特性和/或处理的值。显示设备118向用户显示解码视频数据的解码图片。显示设备118可以表示各种显示设备中的任何一种,诸如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类显示设备。
56.尽管未在图1中示出,但在一些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成在一起,并且可以包括适当的mux-demux单元或其他硬件和/或软件,来处理公共数据流中包括音频和视频的多路复用流。如果适用,mux-demux单元可以符合itu h.223多路复用器协议或诸如用户数据报协议(udp)的其他协议。
57.视频编码器200和视频解码器300可以各自实现为各种合适的编码器和/或解码器电路中的任何一种,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当该技术部分地在软件中实施时,设备可以将用于软件的指令存储在合适的非暂时计算机可读介质中,并使用一个或多个处理器在硬件中执行该指令来执行本公开的技术。视频编码器200和视频解码器300中的每一个可以被包括在一个或多个编码器或解码器中,这两者任一个都可以集成为各自设备中组合编码器/解码器(codec)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或诸如蜂窝电话的无线通信设备。
58.视频编码器200和视频解码器300可以根据视频编解码标准(诸如itu-th.265,也称为高效视频编解码(hevc))或其扩展(诸如多视图和/或可缩放的视频编解码扩展)来操作。作为替代,视频编码器200和视频解码器300可以根据其他专有或工业标准,诸如itu-t h.266(也被称为多功能视频编解码(vvc))。在以下中描述了vvc标准的草案:bross等人的“多功能视频编码(草案6)”,itu-t sg 16wp3和iso/iec jtc 1/sc 29/wg 11联合视频专家组(jvet),第15次会议:哥德堡,瑞典,2019年7月3日至12日,jvet-o2001-ve(以下称为“vvc草案6”)。在以下中描述了vvc标准的更近期草案:bross等人的“多功能视频编码(草案10)”,itu-t sg 16wp3和iso/iec jtc 1/sc 29/wg 11联合视频专家组(jvet),第19次会议:电话会议,2020年6月22日至7月1日,jvet-s2001-vg(以下称为“vvc草案10”)。但是,本
公开的技术不限于任何特定的编解码标准。
59.一般地,视频编码器200和视频解码器300可以执行图片的基于块的编解码。术语“块”一般是指包括待处理的(例如待编码、待解码或以其他方式在编码和/或解码过程中使用的)数据的结构。例如,块可以包括亮度和/或色度数据的的二维样点矩阵。一般地,视频编码器200和视频解码器300可以对以yuv(例如y、cb、cr)格式表示的视频数据进行编解码。也就是说,视频编码器200和视频解码器300可以对亮度和色度分量进行编解码,其中色度分量可以包括红色和蓝色色调分量两者,而不是对图片的样点的红色、绿色和蓝色(rgb)数据进行编解码。在一些示例中,视频编码器200在编码之前将接收到的rgb格式的数据转换成yuv表示,并且视频解码器300将yuv表示转换成rgb格式。可替代地,预处理和后处理单元(未示出)可以执行这些转换。
60.本公开通常涉及图片的编解码(例如编码和解码),以包括对图片数据进行编码或解码的过程。类似地,本公开可以涉及对图片的块进行编解码以包括对块的数据进行编码或解码的过程,例如预测和/或残差编解码。编码的视频比特流一般包括用于表示编解码决策(例如编解码模式)以及图片到块的分割的语法元素的一系列值。从而,对图片或块进行编解码的引用一般应理解为对形成图片或块的语法元素的值进行编解码。
61.hevc定义各种的块,包括编解码单元(cu)、预测单元(pu)和变换单元(tu)。根据hevc,视频编解码器(诸如视频编码器200)根据四叉树结构将编解码树单元(ctu)分割为cu。也就是说,视频编解码器将ctu和cu分割为四个相等的非重叠正方形,并且四叉树的每一个节点具有零个或四个子代节点。没有子代节点的节点可以称为“叶节点”,并且这种叶节点的cu可以包括一个或多个pu和/或一个或多个tu。视频编解码器可以进一步分割pu和tu。例如,在hevc中,残差四叉树(rqt)表示tu的分割。在hevc中,pu表示帧间预测数据,tu表示残差数据。帧内预测的cu包括帧内预测信息,诸如帧内模式指示。
62.作为另一示例,视频编码器200和视频解码器300可以配置为根据vvc进行操作。根据vvc,视频编解码器(诸如视频编码器200)将图片分割为多个编解码树单元(ctu)。视频编码器200可以根据诸如四叉树-二叉树(qtbt)结构或多类型树(mtt)结构的树结构来对ctu进行分割。qtbt结构消除了多个分割类型的概念,诸如hevc的cu、pu和tu之间的分离。qtbt结构包括两个级别:根据四叉树分割而分割的第一级,以及根据二叉树分割而分割的第二级。qtbt结构的根节点对应于ctu。二叉树的叶节点对应于编解码单元(cu)。
63.在mtt分割结构中,可以使用四叉树(qt)分割、二叉树(bt)分割以及一种或多种类型的三叉树(tt)(也称为三元树(tt))分割来对块进行分割。三叉树或三元树分割是将块分为三个子块的分割方式。在一些示例中,三叉树或三元树分割将块划分为三个子块,而不通过中心来划分原始块。mtt中的分割类型(例如,qt、bt和tt)可以是对称的或不对称的。
64.在一些示例中,视频编码器200和视频解码器300可以使用单个qtbt或mtt结构来表示亮度和色度分量中的每一个,而在其他示例中,视频编码器200和视频解码器300可以使用两个或更多个qtbt或mtt结构,诸如用于亮度分量的一个qtbt/mtt结构和用于两个色度分量的另一个qtbt/mtt结构(或者用于相应色度分量的两个qtbt/mtt结构)。
65.视频编码器200和视频解码器300可以被配置为使用依照hevc的四叉树分割、qtbt分割、mtt分割或其他分割结构。出于说明的目的,关于qtbt分割呈现了了本公开的技术的描述。然而,应该理解的是,本公开的技术还可以应用于配置使用四叉树分割或其他类型的
分割的视频编解码器。
66.可以在图片中以各种方式将块(例如,ctu或cu)分组。作为一个示例,砖块(brick)可以指图片中特定片(tile)中的ctu行的矩形区域。片可以是图片中的特定片列和特定片行中的ctu的矩形区域。片列指的是具有等于图片高度的高度和由语法元素(例如,诸如在图片参数集中)指定的宽度的ctu的矩形区域。片行指的是具有由语法元素(例如,诸如在图片参数集中)指定的高度和等于图片宽度的宽度的ctu的矩形区域。
67.在一些示例中,可以将片分割为多个砖块,每个砖块可以包括该片中的一个或多个ctu行。没有被分割为多个砖块的片也可以称为砖块。但是,作为片的真子集的砖块不能称为片。
68.图片中的砖块也可以在条带中排列。条带可以是图片的整数数量的砖块,其可以被排他地包含在单个网络抽象层(nal)单元中。在一些示例中,条带包括多个完整片或仅包括一个片的连续序列的完整砖块。
69.本公开可以互换地使用“n
×
n”和“n乘n”来指块(诸如cu或其他视频块)在垂直和水平维度方面的样点维度,例如16
×
16个样点或16乘16个样点。一般地,16
×
16的cu在垂直方向上将有16个样点(y=16),在水平方向上将有16个样点(x=16)。同样地,n
×
n的cu一般地在垂直方向上具有n个样点,在水平方向上具有n个样点,其中n表示非负整数值。cu中的样点可以按行和列来排列。此外,cu在水平方向上不必具有与垂直方向上相同数量的样点。举例来说,cu可以包含n
×
m个样点,其中m不一定等于n。
70.视频编码器200对表示预测和/或残差信息以及其他信息的cu的视频数据进行编码。预测信息指示将如何预测cu以便形成用于cu的预测块。残差信息一般表示编码前cu的样点与预测块之间的逐样点差异。
71.为了预测cu,视频编码器200一般地可以通过帧间预测或帧内预测来形成cu的预测块。帧间预测一般是指从先前编解码的图片的数据中预测cu,而帧内预测一般是指从同一图片的先前编解码的数据中预测cu。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来生成预测块。视频编码器200通常可以执行运动搜索以识别例如在cu和参考块之间的差异的方面与cu紧密地匹配的参考块。视频编码器200可以使用绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)或其他此类差值计算来计算差值度量以确定参考块是否与当前cu紧密地匹配。在某些示例中,视频编码器200可以使用单向预测或双向预测来预测当前cu。
72.vvc的一些示例还提供仿射运动补偿模式,其可以视为帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或更多个运动矢量,诸如放大或缩小、旋转、透视运动或其他不规则运动类型。
73.为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成预测块。vvc的一些示例提供了六十七种帧内预测模式,包括各种方向模式以及平面模式和dc模式。一般地,视频编码器200选择帧内预测模式,其描述当前块(例如cu的块)的相邻样点,从该相邻样点预测当前块的预测样点。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对ctu和cu进行编解码,则此类样点通常可以在与当前块相同的图片中在当前块的上方、上左侧或左侧。
74.视频编码器200可以应用几何分割模式来生成当前视频数据块的第一分割和视频
数据块的第二分割。一般地,视频编码器200可以选择包括角度和位移(例如,从当前块的中心的水平位移、从当前块的中心的垂直位移或从当前块的中心的位移)的分割线。视频编码器200可以信令通知该分割线的指示(例如,索引)。
75.视频编码器200可以使用第一分割的第一运动信息生成第一预测块,并且使用第二分割的第二运动信息生成第二预测块。视频编码器200可以使用分割线的角度来确定应用于第一预测块和第二预测块的几何模式权重。例如,视频编码器200可以应用权重映射,该权重映射与图8的示例中关于分割线所示的权重一致地将权重应用于当前块的值。视频编码器200可以使用几何分割模式权重来确定最终预测块。例如,视频编码器200可以对第一预测块和第二预测块的每个共位样点应用相应的几何分割模式权重,以确定最终预测块的样点的值。
76.视频编码器200对表示当前块的预测模式的数据进行编码。举例来说,对于帧间预测模式,视频编码器200可以对数据进行编码,该数据表示使用了各种可用帧间预测模式中的哪一种以及对应模式的运动信息。对于单向或双向帧间预测,例如视频编码器200可以使用高级运动矢量预测(amvp)或merge模式来对运动矢量进行编码。视频编码器200可以使用类似模式来对仿射运动补偿模式的运动矢量进行编码。
77.在预测(诸如块的帧内预测或帧间预测)之后,视频编码器200可以计算块的残差数据。残差数据(诸如残差块)表示块与该块的预测块之间的逐样点差异,预测块是使用对应预测模式形成。视频编码器200可以将一个或多个变换应用于残差块以在变换域而非样点域中产生变换数据。举例来说,视频编码器200可以将离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可以在一次变换之后应用二次变换,诸如模式依赖的不可分二次变换(mdnsst)、信号依赖的变换、karhunen-loeve变换(klt)等。视频编码器200在应用一个或多个变换之后产生变换系数。
78.如上所述,在进行任何变换以产生变换系数之后,视频编码器200可以对变换系数执行量化。量化通常是指对变换系数进行量化来可能地减少用于表示变换系数的数据量,从而提供进一步的压缩的过程。通过执行量化过程,视频编码器200可以减小与系数中的一些或所有变换系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值向下舍入到m比特值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以执行要量化的值的按比特右移。
79.量化之后,视频编码器200可以扫描变换系数,从而从包括量化变换系数的二维矩阵中产生一维矢量。可以将扫描设计为将较高能量(因此频率较低)的系数放在矢量的前面,并将较低能量(因此频率较高)的变换系数放在矢量的后面。在一些示例中,视频编码器200可以利用预定义的扫描顺序来对量化变换系数进行扫描以产生序列化的矢量,然后对矢量的量化变换系数进行熵编码。在其他示例中,视频编码器200可以执行自适应扫描。在对量化变换系数进行扫描以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术编解码(cabac)来对一维矢量进行熵编码。视频编码器200还可以对语法元素的值进行熵编码,语法元素描述与视频解码器300在解码视频数据中使用的编码的视频数据相关联的元数据。
80.为了执行cabac,视频编码器200可以将上下文模型内的上下文分配给待传输的符号。例如,上下文可以涉及符号的相邻值是否是零值。概率确定可以基于分配给符号的上下
文。
81.视频编码器200可以进一步地生成例如在图片标头、块标头、条带标头中到视频解码器300的语法数据,诸如基于块的语法数据、基于图片的语法数据以及基于序列的语法数据,或者生成其他语法数据,诸如序列参数集(sps)、图片参数集(pps)或视频参数集(vps)。视频解码器300可以类似地对此类语法数据进行解码以确定如何解码对应的视频数据。
82.以此方式,视频编码器200可以生成包括编码的视频数据的比特流,例如描述将图片分割成块(例如cu)以及块的预测和/或残差信息的语法元素。最终,视频解码器300可以接收比特流并且解码编码的视频数据。
83.一般地,视频解码器300执行由视频编码器200执行的相反过程以对比特流的编码的视频数据进行解码。例如,视频解码器300可以使用cabac,以与视频编码器200的cabac编码过程基本相似(尽管与之相反)的方式,对比特流的语法元素的值进行解码。语法元素可以定义分割信息,该分割信息用于将图片分割为ctu和根据比如诸如qtbt结构的对应分割结构对每一个ctu进行分割以定义ctu的cu。语法元素可以进一步定义视频数据的块(例如cu)的预测和残差信息。
84.视频解码器300可以接收分割线的指示(例如,索引)。视频解码器300可以应用几何分割模式,以使用分割线来生成当前视频数据块的第一分割和视频数据块的第二分割。一般地,视频解码器300可以确定包括角度和位移(例如,从当前块的中心的水平位移、从当前块的中心的垂直位移或从当前块的中心的位移)的分割线。
85.视频解码器300可以使用第一分割的第一运动信息生成第一预测块,并且使用第二分割的第二运动信息生成第二预测块。视频解码器300可以使用分割线的角度来确定应用于当前块的第一预测块和第二预测块的几何模式权重。例如,视频解码器300可以应用权重映射,该权重映射将权重应用于与图8的示例中关于分割线所示的权重一致的当前块的值。视频解码器300可以使用几何分割模式权重来确定最终预测块。例如,视频解码器300可以对第一预测块和第二预测块的每个共位样点应用相应的几何分割模式权重,以确定最终预测块的样点的值。
86.例如,可以由量化变换系数表示残差信息。视频解码器300可以对块的量化变换系数进行逆量化和逆变换以重现该块的残差块。视频解码器300使用信令通知的预测模式(帧内或帧间预测)和相关的预测信息(例如用于帧间预测的运动信息)来形成块的预测块。然后,视频解码器300可以(在逐样点的基础上)组合预测块和残差块以再现原始块。视频解码器300可以执行附加处理(诸如执行去方块过程)来减少沿块边界的视觉伪影。
87.根据本公开的技术,视频解码器300可以被配置为确定对于视频数据的当前块启用几何分割模式,以及确定将当前块划分为第一分割和第二分割的分割线,其中,为了确定分割线,视频解码器300被配置为从多个角度中选择该分割线的角度,该多个角度中的每个角度对应于n:m比率,其中n和m是整数,并且其中,该分割线不在当前块的角上。视频解码器300还被配置为使用分割线的角度来确定当前块的几何模式权重,并且使用第一分割的运动信息来生成第一预测块。视频解码器300还被配置为使用第二分割的运动信息来生成第二预测块,并将几何分割模式权重应用于第一预测块的样点和第二预测块的样点,以确定当前块的最终预测块。视频解码器300还被配置为对当前块的残差块进行解码,并将最终预测块和残差块组合以对当前块进行解码。
88.在一些示例中,视频解码器300可以被配置为确定对于视频数据的当前块启用几何分割模式,以及确定将当前块划分为第一分割和第二分割的分割线,其中,为了确定分割线,视频解码器300被配置为从多个角度中选择该分割线的角度,该多个角度中的每个角度对应于n:m比率,其中n和m是整数,并且其中,该分割线不在当前块的角上。视频解码器300还被配置为使用分割线的角度来确定当前块的几何模式权重,并且使用第一分割的运动信息来生成第一预测块。视频解码器300还被配置为使用第二分割的运动信息来生成第二预测块,并将几何分割模式权重应用于第一预测块的样点和第二预测块的样点,以确定当前块的最终预测块。视频解码器300还被配置为基于视频数据的当前块与预测块之间的差值来生成视频数据的当前块的残差块,并对该残差块进行编码。
89.一般地,本公开可以涉及“信令通知”某些信息,诸如语法元素。术语“信令通知”通常可以指对于语法元素和/或用于对编码的视频数据进行解码的其他数据的值的通信。也就是说,视频编码器200可以信令通知比特流中的语法元素的值。一般地,信令通知是指在比特流中生成值。如上所述,源设备102可以基本上实时地(或非实时地,诸如可能在将语法元素存储到存储设备112以供稍后由目标设备116检索时发生)将比特流传送到目标设备116。
90.图2a和2b是示出示例四叉树二叉树(qtbt)结构130和对应编解码树单元(ctu)132的概念图。实线代表四叉树划分,虚线指示二叉树划分。在二叉树的每一个划分(即非叶)节点中,信令通知一个标志以指示使用了哪种划分类型(即水平或垂直),其中在此示例中,0指示水平划分,1指示垂直划分。对于四叉树划分,由于四叉树节点将块水平地和垂直地分割为具有相等尺寸的4个子块,因此无需指示划分类型。相应地,视频编码器200可以编码qtbt结构130的区域树级(即第一级)(即实线)的语法元素(例如划分信息)和qtbt结构130的预测树级(即第二级)(即虚线)的语法元素(例如划分信息),并且视频解码器300可以对以上进行解码。对于qtbt结构130的终端叶节点代表的cu,视频编码器200可以编码视频数据(比如预测和变换数据),并且视频解码器300可以对以上进行解码。
91.一般地,图2b的ctu 132可以与参数相关联,这些参数定义与第一和第二级的qtbt结构130的节点相对应的块的尺寸。这些参数可以包括ctu尺寸(代表样点中ctu 132的尺寸)、最小四叉树尺寸(minqtsize,代表最小允许的四叉树叶节点尺寸)、最大二叉树尺寸(maxbtsize,代表最大允许的二叉树根节点尺寸)、最大二叉树深度(maxbtdepth,代表最大允许的二叉树深度)和最小二叉树尺寸(minbtsize,代表最小允许的二叉树叶节点尺寸)。
92.与ctu相对应的qtbt结构的根节点在qtbt结构的第一级可以具有四个子代节点,每个子代节点可以根据四叉树分割来进行分割。即,第一级的节点是叶节点(没有子代节点)或具有四个子代节点。qtbt结构130的示例代表这样的节点,其包括具有实线分支的子代节点和父节点。如果第一级的节点不大于最大允许的二叉树根节点尺寸(maxbtsize),则能够通过各自的二叉树进一步对节点进行分割。能够迭代一个节点的二叉树划分,直到划分生成的节点达到最小允许的二叉树叶节点尺寸(minbtsize)或最大允许的二叉树深度(maxbtdepth)。qtbt结构130的示例将这样的节点代表为具有虚线分支。二叉树叶节点表示为编码单元(cu),其用于预测(例如图片内或图片间预测)和变换,而无需任何进一步分割。如上所述,cu也可以表示为“视频块”或“块”。
93.在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的高度的二叉树节点表明不允许对该二叉树节点进行进一步的水平划分。如上所述,二叉树的叶节点称为cu并且根据预测和变换对其进行进一步处理而无需进一步分割。
94.图3是示出可以执行本公开的技术的示例视频编码器200的框图。提供图3是为了解释的目的并且不应认为是对本公开中广泛示例和描述的技术的约束。出于说明的目的,本公开在比如开发中的hevc视频编解码标准和h.266视频编解码标准的视频编解码标准的上下文中描述了视频编码器200。然而,本公开的技术不限于这些视频编解码标准并且通常可应用于视频编码和解码。
95.在图3的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重建单元214、滤波器单元216、解码图片缓冲器(dpb)218以及熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重建单元214、滤波器单元216、dpb 218和熵编码单元220中的任何一个或全部可以在一个或多个处理器中或在处理电路中实现。此外,视频编码器200可包括附加的或替代的处理器或处理电路,以执行这些和其他功能。
96.视频数据存储器230可以存储将由视频编码器200的组件进行编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。dpb 218可以用作参考图片存储器,参考图片存储器存储参考视频数据,供视频编码器200用于预测后续视频数据时使用。视频数据存储器230和dpb 218可以由多种存储设备中的任何一种形成,比如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻ram(mram)、阻变ram(rram)或其他类型的存储设备。视频数据存储器230和dpb 218可以由相同的存储设备或单独的存储设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其他组件一起置于片上,如图所示,或者相对于那些组件置于片外。
97.在本公开中,对视频数据存储器230的引用不应解释为限于视频编码器200内部的存储器(除非特别说明如此)或者视频编码器200外部的存储器(除非特别说明如此)。当然,对视频数据存储器230的引用应理解为存储视频编码器200接收用于编码的视频数据(例如待编码的当前块的视频数据)的参考存储器。图1的存储器106还可以对来自视频编码器200各种单元的输出提供临时存储。
98.示出的图3的各个单元用来帮助理解由视频编码器200执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能并预设在能够执行的操作上的电路。可编程电路是指可以被编程以执行各种任务并且在可以执行的操
作中提供灵活功能的电路。例如,可编程电路可以执行软件或固件,软件或固件使可编程电路以由软件或固件的指令所定义的方式操作。固定功能电路可以执行软件指令(例如来接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,一个或多个单元可以是集成电路。
99.视频编码器200可以包括由可编程电路形成的算术逻辑单元(alu)、基本功能单元(efu)、数字电路、模拟电路和/或可编程内核。在使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收和执行的软件的目标代码,或视频编码器200内另一存储器(未示出)可以存储这样的指令。
100.视频数据存储器230配置为存储接收的视频数据。视频编码器200可以从视频数据存储器230中检索视频数据的图片,并将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是待编码的原始视频数据。
101.模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括附加功能单元,用于根据其他预测模式来执行视频预测。作为示例,模式选择单元202可以包括调色板单元、帧内块复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(lm)单元等。
102.一般地,模式选择单元202协调多个编码遍来测试编码参数的组合以及得出这种组合的率失真值。编码参数可以包括ctu到cu的分割、cu的预测模式、cu的残差数据的变换类型、cu的残差数据的量化参数等。模式选择单元202可以最终选择编码参数的组合,该组合具有比其他测试的组合更佳的率失真值。
103.视频编码器200可以将从视频数据存储器230中检索的图片分割为一系列ctu,并将一个或多个ctu封装在条带内。模式选择单元202可以根据树结构(诸如上述hevc的qtbt结构或四叉树结构)来对图片的ctu进行分割。如上所述,视频编码器200可以根据树结构通过对ctu进行分割来形成一个或多个cu。这样的cu通常也可以称为“视频块”或“块”。
104.一般地,模式选择单元202还控制其组件(例如运动估计单元222、运动补偿单元224和帧内预测单元226)以生成当前块(例如当前cu或hevc中pu和tu的重叠部分)的预测块。为了对当前块进行帧间预测,运动估计单元222可以执行运动搜索来识别在一个或多个参考图片(例如存储在dpb218中的一个或多个先前编解码的图片)中的一个或多个紧密匹配的参考块。具体地,运动估计单元222可以根据例如绝对差之和(sad)、差值平方和(ssd)、平均绝对差(mad)、均方差(msd)等来计算表示潜在参考块与当前块有多相似的值。运动估计单元222通常可以使用当前块与考虑中的参考块之间的逐样点差异来执行这些计算。运动估计单元222可以识别具有这些计算生成的最低值的参考块,这指示与当前块最紧密匹配的参考块。
105.运动估计单元222可以形成一个或多个运动矢量(mv),运动矢量定义参考图片中参考块相对于当前图片中当前块的位置。然后,运动估计单元222可以将运动矢量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动矢量,而对于双向帧间预测,运动估计单元222可以提供两个运动矢量。然后,运动补偿单元224可以使用运动矢量来生成预测块。在一些示例中,运动补偿单元224可以使用在本文描述的用于带有协调运动场存储和运动补偿的几何分割模式的技术来形成预测块。例如,运动补偿单元
224可以使用运动矢量来检索参考块的数据。作为另一示例,如果运动矢量具有分数样点精度,则运动补偿单元224可以根据一个或多个插值滤波器来对预测块进行插值。此外,对于双向帧间预测,运动补偿单元224可以检索由各自运动矢量标识的两个参考块的数据并且(例如通过逐样点平均或加权平均)组合所检索的数据。
106.作为另一示例,对于帧内预测或帧内预测编解码,帧内预测单元226可以根据与当前块相邻的样点来生成预测块。例如,对于方向模式,帧内预测单元226通常可以数学地组合相邻样点值,并且在当前块上沿定义的方向填充这些计算值来产生预测块。作为另一示例,对于dc模式,帧内预测单元226可以计算当前块的相邻样点的平均值,并且生成预测块以包括用于预测块的每一个样点的所得到的平均值。
107.模式选择单元202可以应用几何分割模式来生成当前视频数据块的第一分割和视频数据块的第二分割。一般地,模式选择单元202可以选择包括角度和位移(例如,从当前块的中心的水平位移、从当前块的中心的垂直位移或从当前块的中心的位移)的分割线。模式选择单元202可以使熵编码单元220信令通知分割线的指示(例如,索引)。
108.模式选择单元202可以使用第一分割的第一运动信息生成第一分割,并且使用第二分割的第二运动信息生成第二分割。模式选择单元202可以使用分割线的角度来确定当前块的几何模式权重。例如,模式选择单元202可以应用权重映射,该权重映射将权重应用于与图8的示例中关于分割线所示的权重一致的当前块的值。模式选择单元202可以使用几何分割模式权重来确定最终预测块。例如,模式选择单元202可以对第一预测块和第二预测块的每个共位样点应用相应的几何分割模式权重,以确定当前块的最终预测块的样点的最终值。
109.模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始的未编码的版本,并从模式选择单元202接收最终预测块。残差生成单元204计算当前块和最终预测块之间的逐样点差异。得到的逐样点差异定义当前块的残差块。在一些示例中,残差生成单元204还可以使用残差差分脉冲编解码调制(rdpcm)来确定残差块中样点值之间的差异以生成残差块。在某些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
110.在模式选择单元202将cu分割为pu的示例中,每个pu可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种尺寸的pu。如上所述,cu的尺寸可以指cu的亮度编解码块的尺寸,而pu的尺寸可以指pu的亮度预测单元的尺寸。假设特定cu的尺寸为2n
×
2n,则视频编码器200可以支持2n
×
2n或n
×
n的pu尺寸用于帧内预测,以及2n
×
2n、2n
×
n、n
×
2n、n
×
n或类似的对称pu尺寸用于帧间预测。视频编码器200和视频解码器300还可以支持2n
×
nu、2n
×
nd、nl
×
2n和nr
×
2n的pu尺寸的非对称分割用于帧间预测。
111.在模式选择单元不将cu进一步分割为pu的示例中,每一个cu可以与亮度编解码块和对应的色度编解码块相关联。如上所述,cu的尺寸可以指cu的亮度编解码块的尺寸。视频编码器200和视频解码器300可以支持2n
×
2n、2n
×
n或n
×
2n的cu尺寸。
112.对于其他视频编解码技术,诸如作为一些示例的帧内块复制模式编解码、仿射模式编解码和线性模型(lm)模式编解码,模式选择单元202经由与编解码技术相关联的各自单元来生成正在被编码的当前块的预测块。在一些示例中,诸如调色板模式编解码,模式选
择单元202可以不生成预测块,而是生成语法元素,语法元素指示基于所选调色板重建块的方式。在这样的模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220,以对其进行编码。
113.如上所述,残差生成单元204接收当前块和对应预测块的视频数据。然后,残差生成单元204生成当前块的残差块。为了生成残差块,残差生成单元204计算预测块和当前块之间的逐样点差异。
114.变换处理单元206将一个或多个变换应用于残差块以生成变换系数的块(在本文中称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(dct)、方向变换、karhunen-loeve变换(klt)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多次变换,例如,初次变换和诸如旋转变换的二次变换。在一些示例中,变换处理单元206不将变换应用于残差块。
115.量化单元208可以对变换系数块中的变换系数进行量化以产生量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(qp)值来对变换系数块的变换系数进行量化。视频编码器200(例如经由模式选择单元202)可以通过调整与cu相关联的qp值来调整应用于与当前块相关联的变换系数块的量化程度。量化可能会引入信息损失,从而,量化的变换系数可能比变换处理单元206产生的原始变换系数具有更低的精度。
116.逆量化单元210和逆变换处理单元212可以分别对量化的变换系数块应用逆量化和逆变换,以从变换系数块重建残差块。重建单元214可以基于重建的残差块和由模式选择单元202生成的预测块来产生对应于当前块的重建块(尽管潜在地具有一些程度的失真)。例如,重建单元214可以将重建的残差块的样点添加到来自模式选择单元202生成的预测块的对应样点以产生重建块。
117.滤波器单元216可以对重建块执行一个或多个滤波器操作。例如,滤波器单元216可以执行去方块操作来减少沿着cu的边缘的块效应伪影。在一些示例中,可以跳过滤波器单元216的操作。
118.视频编码器200将重建块存储在dpb 218中。例如,在不需要滤波器单元216的操作的示例中,重建单元214可以将重建块存储到dpb 218。在需要滤波器单元216的操作的示例中,滤波器单元216可以将滤波后的重建块存储到dpb 218。运动估计单元222和运动补偿单元224可以从dpb 218中检索参考图片,该参考图片是由重建(并且潜在地滤波的)块形成的,来对随后编码的图片的块进行帧间预测。另外,帧内预测单元226可以使用当前图片的dpb 218中的重建块来对当前图片中的其他块进行帧内预测。
119.一般地,熵编码单元220可以对从视频编码器200的其他功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的量化变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对视频数据的另一示例的语法元素执行一个或多个熵编码操作来生成熵编码的数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度编解码(cavlc)操作、cabac操作、可变到可变(v2v)长度编解码操作、基于语法的上下文自适应二进制算术编解码(sbac)操作、概率区间分割熵(pipe)编解码操作、指数-golomb编解码操作或另一类型的熵编码操作。在一
些示例中,熵编码单元220可以以旁路模式操作,在旁路模式中语法元素不被熵编码。
120.视频编码器200可以输出比特流,其包括对条带或图片的块进行重建所需的熵编码的语法元素。具体地,熵编码单元220可以输出该比特流。
121.上述操作是针对块来描述的。这样的描述应该理解为是用于亮度编解码块和/或色度编解码块的操作。如上所述,在一些示例中,亮度编解码块和色度编解码块是cu的亮度和色度分量。在一些示例中,亮度编解码块和色度编解码块是pu的亮度和色度分量。
122.在一些示例中,不必针对色度编解码块重复关于亮度编解码块执行的操作。作为一个示例,不需要重复用于识别亮度编解码块的运动矢量(mv)和参考图片的操作来识别用于色度块的mv和参考图片。相反,可以缩放亮度编解码块的mv来确定色度块的mv,并且参考图片可以是相同的。作为另一示例,针对亮度编码块和色度编码块,帧内预测过程可以是相同的。
123.视频编码器200表示被配置为对视频数据进行编码的设备的示例,该设备包括被配置为存储视频数据的存储器,以及在电路中实现的一个或多个处理单元,其被配置为:确定对视频数据的当前块启用几何分割模式;以及确定将当前块划分为第一分割和第二分割的分割线,其中,为了确定该分割线,视频编码器200被配置为:从多个角度中选择分割线的角度,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数,并且其中该分割线不在当前块的角上。视频编码器200还被配置为使用分割线的角度来确定当前块的几何模式权重,并且使用第一分割的运动信息来生成第一预测块。视频编码器200还被配置为使用第二分割的运动信息来生成第二预测块,并将几何分割模式权重应用于第一预测块的样点和第二预测块的样点,以确定当前块的最终预测块。视频编码器200还被配置为基于视频数据的当前块与最终预测块之间的差值来生成视频数据的当前块的残差块,并对该残差块进行编码。
124.图4是示出可执行本公开的技术的示例视频解码器300的框图。提供图4是出于解释的目的,而非限制本公开中广泛示例和描述的技术。为了说明的目的,本公开描述了根据vcc和hevc的技术描述的视频解码器300。然而,本公开的技术可以由配置为其他视频编解码标准的视频编解码设备来执行。
125.在图4的示例中,视频解码器300包括编解码图片缓冲器(cpb)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310、滤波器单元312和解码图片缓冲器(dpb)314。cpb存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310、滤波器单元312和dpb 314中的任何一个或全部可以在一个或多个处理器或处理电路中实现。此外,视频解码器300可以包括附加的或替代的处理器或处理电路,以执行这些和其他功能。
126.预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括附加单元以按照其他预测模式来执行预测。作为示例,预测处理单元304可以包括调色板单元、帧内块复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(lm)单元等。在其他示例中,视频解码器300可以包括更多、更少或不同的功能组件。
127.cpb存储器320可以存储将由视频解码器300的组件进行解码的视频数据,诸如编码的视频比特流。例如,可以从计算机可读介质110(图1)获得存储在cpb存储器320中的视频数据。cpb存储器320可以包括存储来自编码视频比特流的编码视频数据(例如语法元素)
的cpb。而且,cpb存储器320可以存储除了编解码图片的语法元素之外的视频数据,诸如表示来自视频解码器300的各种单元的输出的临时数据。一般地,dpb 314存储解码的图片,当对编码的视频比特流的后续数据或图片进行解码时,视频解码器300可以输出该解码的图片和/或将其用作参考视频数据。cpb存储器320和dpb314可以由多种存储设备中的任何一种形成,诸如dram,包括sdram、mram、rram或者其他类型的存储设备。cpb存储器320和dpb 314可以由相同的存储设备或独立的存储设备提供。在各种示例中,cpb存储器320可以与视频解码器300的其他组件置于片上,或者相对于那些组件置于片外。
128.附加地或替代地,在一些示例中,视频解码器300可以从存储器120(图1)中检索编解码的视频数据。即存储器120可以如上述讨论与cpb存储器320一起存储数据。同样,当视频解码器300的某些或全部功能在将由视频解码器300的处理电路执行的软件中实现时,存储器120可以存储将由视频解码器300执行的指令。
129.示出图4所示的各种单元以帮助理解由视频解码器300执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。类似于图3,固定功能电路是指提供特定功能并且在可以执行的操作上预设的电路。可编程电路是指可以被编程以执行各种任务并且在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行软件或固件,软件或固件使可编程电路以由软件或固件的指令所定义的方式操作。固定功能电路可以执行软件指令(例如来接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,一个或多个单元可以是集成电路。
130.视频解码器300可包括alu、efu、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300接收并执行的软件的指令(例如目标代码)。
131.熵解码单元302可从cpb接收编码视频数据,并且对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310和滤波器单元312可以基于从比特流中提取的语法元素来生成解码视频数据。
132.一般地,视频解码器300在逐块的基础上重建图片。视频解码器300可单独地对每一个块执行重建操作(其中当前正在进行重建(即解码)的块可称为“当前块”)。
133.熵解码单元302可以对定义量化的变换系数块的量化的变换系数的语法元素以及诸如量化参数(qp)和/或(一个或多个)变换模式指示的变换信息进行熵解码。逆量化单元306可以使用与量化的变换系数块相关联的qp来确定量化程度,并且同样地,确定逆量化程度以供逆量化单元306应用。逆量化单元306可以(例如执行按比特左移操作来)对量化的变换系数进行逆量化。逆量化单元306从而可以形成包括变换系数的变换系数块。
134.在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一个或多个逆变换应用于变换系数块来生成与当前块相关联的残差块。例如,逆变换处理单元308可以将逆dct、逆整数变换、逆karhunen-loeve变换(klt)、逆旋转变换、逆方向变换或另一逆变换应用于系数块。
135.进一步来说,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示dpb 314中的参考图片,以
从该参考图片中检索参考块,以及指示识别参考图片中参考块相对于当前图片中的当前块的位置的运动矢量。运动补偿单元316通常可以以与针对运动补偿单元224(图3)所描述的方式基本上相似的方式来执行帧间预测过程。在一些示例中,运动补偿单元316可以使用在本文描述的用于带有协调运动场存储和运动补偿的几何分割模式的技术来形成预测块。
136.作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。再次,帧内预测单元318通常可以以与针对帧内预测单元226(图3)所描述的方式基本上相似的方式来执行帧内预测过程。帧内预测单元318可以从dpb 314中检索当前块的相邻样点的数据。
137.预测处理单元304可以接收分割线的指示(例如,索引)。预测处理单元304可以应用几何分割模式,以使用分割线来生成当前视频数据块的第一分割和视频数据块的第二分割。一般地,预测处理单元304可以确定包括角度和位移(例如,从当前块的中心的水平位移、从当前块的中心的垂直位移或从当前块的中心的位移)的分割线。
138.预测处理单元304可以使用第一分割的第一运动信息来生成第一预测块,该第一分割是使用该第一分割的第一运动信息确定的,并且使用第二分割的第二运动信息来生成第二预测块,该第二分割是使用该第二分割的第二运动信息确定的。预测处理单元304可以使用分割线的角度来确定当前块的几何模式权重。例如,预测处理单元304可以应用权重映射,该权重映射将权重应用于与图8的示例中关于分割线所示的权重一致的当前块的值。预测处理单元304可以使用几何分割模式权重来确定最终预测块。例如,预测处理单元304可以对第一预测块和第二预测块的每个共位样点应用相应的几何分割模式权重,以确定当前块的最终预测块的样点的值。
139.重建单元310可以使用预测块和残差块来重建当前块。例如,重建单元310可以将残差块的样点添加到预测块的对应样点来重建当前块。
140.滤波器单元312可以对重建块执行一个或多个滤波器操作。例如,滤波器单元312可以执行去方块操作来减少沿着重建块的边缘的块效应伪影。不一定在所有示例中都执行滤波器单元312的操作。
141.视频解码器300可以将重建块存储在dpb 314中。例如,在不执行滤波器单元312的操作的示例中,重建单元310可以将重建块存储到dpb 314。在执行滤波器单元312的操作的示例中,滤波器单元312可以将滤波后的重建块存储到dpb 314。如上所述,dpb 314可以向预测处理单元304提供参考信息,诸如用于帧内预测的当前图片的样点以及用于随后的运动补偿的先前解码的图片。此外,视频解码器300可以从dpb输出解码的图片,用于随后呈现在诸如图1的显示设备118的显示设备上。
142.以此方式,视频解码器300表示视频解码设备的示例,该设备包括被配置为存储视频数据的存储器,以及在电路中实现的一个或多个处理单元,其被配置为:确定对视频数据的当前块启用几何分割模式;以及确定将当前块划分为第一分割和第二分割的分割线,其中,为了确定该分割线,视频解码器300被配置为:从多个角度中选择分割线的角度,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数,并且其中该分割线不在当前块的角上。视频解码器300还被配置为使用分割线的角度来确定当前块的几何模式权重,并且使用第一分割的运动信息来生成第一预测块。视频解码器300还被配置为使用第二分割的运动信息来生成第二预测块,并将几何分割模式权重应用于第一预测块的样点和
第二预测块的样点,以确定当前块的最终预测块。视频解码器300还被配置为对当前块的残差块进行解码,并将最终预测块和残差块组合以对当前块进行解码。
143.在本节中描述了视频编码标准,特别是以往标准中与gpm存储相关的技术。视频编解码标准可以包括,例如但不限于itu-t h.261、iso/iec mpeg-1视觉、itu-t h.262或iso/iec mpeg-2视觉、itu-t h.263、iso/iec mpeg-4视觉和itu-t h.264(也称为iso/iec mpeg-4avc),包括其可伸缩视频编解码(svc)和多视图视频编解码(mvc)扩展。在2010年3月,itu-t提议h.264,“通用视听服务的高级视频编解码”中描述了最新的mvc联合草案。
144.另外,还有一种新开发的视频编解码标准,即,例如但不限于,由itu-t视频编码专家组(vceg)和iso/iec运动图像专家组(mpeg)的视频编码联合协作小组(jct-vc)开发的高效视频编解码(hevc)。hevc草案可查阅http://phenix.int-evry.fr/jct/doc_end_user/documents/12_geneva/wg11/jctvc-l1003-v34.zip。通用视频编解码和测试模型6(vtm6)的规范文本可参考jvet-o2001。
145.图5是示出基于三角分割的帧间预测示例的概念图。如chen等人的“通用视频编解码和测试模型5(vtm5)的算法描述”,itu-t sg 16wp3和iso/iec jtc 1/sc 29/wg 11联合视频专家组(jvet),第14次会议:日内瓦,瑞士,2019年3月19日至27日,jvet-o2001-v2(以下称为“jvet-n1002”)中所介绍的,视频编解码器(例如,视频编码器200和视频解码器300)可以仅将三角分割模式应用于以跳过或merge模式进行编解码的cu,而不是以与运动矢量差分(mmvd)或组合帧间和帧内预测(ciip)模式合并的cu。对于满足这些条件的cu(例如,以跳过或merge模式,但不是以mmvd或ciip模式进行编解码的cu),视频编码器200可以信令通知一个标志以指示是否应用三角分割模式。
146.当使用三角分割模式时,视频编码器200和视频解码器300可以被配置为使用块500的对角线划分或块502的反对角线划分将cu均匀地划分为两个三角形状的分割。如图所示,所得到的分割线被布置在块500的角上。视频编码器200和视频解码器300可以被配置为使用每个三角自身的运动来对cu中的每个三角分割进行帧间预测;针对每个分割只允许单向预测,也就是每个分割有一个运动矢量和一个参考索引。视频编码器200和视频解码器300可以被配置为应用单向预测运动约束以确保对于每个cu只需要两次运动补偿预测,这与cu的双向预测相同。
147.视频编码器200和视频解码器300可以被配置为从使用单向预测候选列表构造(参见图6)构造的单向预测候选列表中导出用于每个分割的单向预测运动。在图6的示例中、cu级标志指示当前cu采用三角分割模式进行编解码。如果使用三角分割模式,则视频编码器200可以被配置为信令通知指示三角分割方向(例如,对角线或反对角线)的标志和两个merge索引(例如,每个三角分割一个)。在对每个三角分割进行预测之后,视频编码器200和视频解码器300可以被配置为使用具有自适应权重的混合处理来调整沿对角线或反对角线边缘的样点值。这是用于整个cu和变换的预测信号,并且视频编码器200和视频解码器300可以被配置为像在其他预测模式中一样将量化过程应用于整个cu。最后,视频编码器200和视频解码器300可以被配置为使用沿着三角分割边缘的混合以4x4单元存储使用三角分割模式预测的cu的运动场(参见图8)。
148.图6是示出用于构造单向预测候选列表的示例空间和时间相邻块的概念图。单向预测候选列表可以包括五个单向预测运动矢量候选或由其组成。视频编码器200和视频解
码器300可以被配置为从包括五个空间相邻块(在图6中标记为1至5)和两个时间共位块(在图6中标记为6至7)的七个相邻块中导出单向预测候选列表。视频编码器200和视频解码器300可以被配置为收集七个相邻块的运动矢量,并按照以下顺序将七个相邻块的运动矢量放入单向预测候选列表中:第一,单向预测的相邻块的运动矢量;然后,针对双向预测的相邻块,l0运动矢量(即,双向预测mv的l0运动矢量部分)、l1运动矢量(即,双向预测mv的l1运动矢量部分)和双向预测mvs的l0和l1运动矢量的平均运动矢量。如果候选数量小于五个,则视频编码器200和视频解码器300可以被配置为将零运动矢量添加到列表的末尾。
149.图7是示出三角分割模式的单向预测mv选择示例的概念图。下面介绍三角分割模式(tpm)候选列表的构造。给定merge候选索引,视频编码器200和视频解码器300可以被配置为从merge候选列表导出单向预测运动矢量。对于merge列表中的候选,视频编码器200和视频解码器300可以被配置为使用候选的lx mv(其中x等于merge候选索引值的奇偶性)作为用于三角分割模式的单向预测运动矢量。这些运动矢量在图7中用“x”标记。在对应的lx运动矢量不存在的情况下,视频编码器200和视频解码器300可以被配置为使用扩展merge预测候选列表中的相同候选的l(1-x)运动矢量作为用于三角分割模式的单向预测运动矢量。例如,假设merge列表由5组双向预测运动组成,视频编码器200和视频解码器300可以被配置为组成从第一个到最后一个,第0个/第1个/第2个/第3个/第4个merge候选的l0/l1/l0/l1/l0 mv的tpm候选列表。然后,视频编码器200和视频解码器300可以被配置为使用来自tpm模式的两个不同merge索引的信号,每个三角分割一个,以指示tpm候选列表中的候选的使用。
150.图8是示出混合过程中使用的示例权重的概念图。图8的示例混合过程在本文可称为2.2.3部分沿三角分割边缘混合,或简单地称为2.2.3部分。
151.视频编解码器(例如,视频编码器200和/或视频解码器300)可以被配置为用图8中示出的一个权重集合来执行图8的示例像素混合。视频编解码器可以被配置为通过例如基于两个三角分割的运动信息对共位的运动补偿像素进行加权平均来生成混合区域中的像素。如本文所使用的,共位像素可指使用第一分割(例如,第一三角形分割)确定的第一预测块的第一像素,该第一分割位于与使用第二分割(例如,第二三角形分割)确定的第二预测块的第二像素相同的像素位置。
152.也就是,例如,视频编解码器(例如,视频编码器200或视频解码器300)可以使用一个权重集合来应用像素混合,以生成视频数据块的色度分量的最终预测块。在该示例中,为了应用像素混合,视频编解码器可以使用该权重集合来确定使用第一三角形分割的运动信息确定的第一分割块的共位运动补偿像素(示为“p
1”)和使用第二三角形分割的运动信息确定的第二分割块的共位运动补偿像素(示为“p
2”)的加权平均值。
153.例如,视频编解码器(例如,视频编码器200或视频解码器300)可以被配置为通过执行运动搜索以例如依据第一三角形分割与参考块之间的差值来识别与第一三角形分割密切匹配的参考块,来确定第一三角形分割的运动信息。在一些示例中,视频编解码器可以使用绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)或其他此类差值计算来计算差值度量以确定参考块是否与第一三角形分割紧密地匹配。在某些示例中,视频编解码器可以使用单向预测或双向预测来预测第一预测块。第一预测块的像素在本文可以被称为“p
1”,并且在本文也可以被称为第一预测块的样点。
154.类似地,视频编解码器(例如,视频编码器200或视频解码器300)可以被配置为通过执行运动搜索以例如依据第一三角形分割与参考块之间的差值来识别与第二三角形分割密切匹配的参考块,来确定第二三角形分割的运动信息。在一些示例中,视频编解码器可以使用绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)或其他此类差值计算来计算差值度量以确定参考块是否与第二三角形分割紧密地匹配。在某些示例中,视频编解码器可以使用单向预测或双向预测来预测第二预测块。第二预测块的像素在本文可以被称为“p
2”,并且在本文也可以被称为第二预测块的样点。
155.如图8所示,视频编解码器(例如,视频编码器200或视频解码器300)可以通过根据等式1(equation 1)计算每个像素的相应值p,来确定亮度分量的预测块537(在本文也称为“最终预测块537”)和/或亮度分量的预测块538(“最终预测块538”)的用“2”标记的像素的像素值p。
[0156][0157]
其中,p1是第一预测块的第一像素的第一参考像素值,在此示例中其与用“2”标记的相应像素共位,并且其中,p2是第二预测块的第二像素的第二参考像素值,在此示例中其与用“2”标记的相应像素共位。
[0158]
在图8的示例中,视频编解码器(例如,视频编码器200或视频解码器300)可以通过根据等式2(equation 2)计算每个像素的相应值p,来确定亮度分量的预测块537和/或亮度分量的预测块538的用“4”标记的像素的像素值p。
[0159][0160]
其中,p1是第一预测块的第一像素的第一参考像素值,在此示例中其与用“4”标记的相应像素共位,并且其中,p2是第二预测块的第二像素的第二参考像素值,在此示例中其与用“4”标记的相应像素共位。
[0161]
在图8的示例中,视频编解码器(例如,视频编码器200或视频解码器300)可以通过根据等式3(equation 3)计算每个像素的相应值p,来确定亮度分量的预测块537和/或亮度分量的预测块538的用“7”标记的像素的像素值p。
[0162][0163]
其中,p1是第一预测块的第一像素的第一参考像素值,在此示例中其与用“7”标记的相应像素共位,并且其中,p2是第二预测块的第二像素的第二参考像素值,在此示例中其与用“7”标记的相应像素共位。
[0164]
值“1”和“6”表示对应于等式1-等式3的等式。也就是,视频编解码器(例如,视频编码器200或视频解码器300)可以通过根据等式4(equation4)计算每个像素的相应值p,来确定亮度分量的预测块537和/或亮度分量的预测块538的用“1”标记的像素的像素值p。
[0165][0166]
其中,p1是第一预测块的第一像素的第一参考像素值,并且其中,p2是第二预测块的第二像素的第二参考像素值。
[0167]
视频编解码器(例如,视频编码器200或视频解码器300)可以通过根据等式5
(equation 5)计算每个像素的相应值p,来确定亮度分量的预测块537和/或亮度分量的预测块538的用“6”标记的像素的像素值p。
[0168][0169]
其中,p1是第一预测块的第一像素的第一参考像素值,并且其中,p2是第二预测块的第二像素的第二参考像素值。
[0170]
虽然图8中所示的示例示出了用于亮度的权重{7/8,6/8,4/8,2/8,1/8}和用于色度的权重{7/8,4/8,1/8}的示例集合,但是其他示例可以使用不同的权重。例如,可以有两个权重集合,并且在每个集合中可以分开定义色度权重和亮度权重:
[0171]
·
第一集合:用于亮度的为{7/8,6/8,4/8,2/8,1/8},用于色度的为{7/8,4/8,1/8}。
[0172]
·
第二集合:用于亮度的为{7/8,6/8,5/8,4/8,3/8,2/8,1/8},用于色度的为{6/8,4/8,2/8}。
[0173]
下文中描述的示例运动场处理在本文可称为2.2.4部分运动场存储,或简单地称为2.2.4部分。视频编码器200和视频解码器300可以被配置为以4x4单元存储以三角分割模式进行编解码的cu的运动矢量。取决于每个4x4单元的位置,视频编码器200和视频解码器300可以被配置为存储单向预测或双向预测运动矢量。在该示例中,mv1和mv2可以分别表示分割1和分割2的单向预测运动矢量。当cu可以被从左上角到右下角(即45
°
划分)分割时,分割1和分割2可以是分别位于右上角和左下角的三角块;而当cu被从右上角到左下角(即135
°
划分)分割时,mv1和mv2变成是分别位于左上角和右下角的三角块。如果4x4单元位于图9的示例中示出的非加权区域中,则视频编码器200和视频解码器300可以被配置为存储该4x4单元的mv1或mv2。否则,如果4x4单元位于加权区域中,则视频编码器200和视频解码器300可以被配置为存储双向预测运动矢量。视频编码器200和视频解码器300可以被配置为根据以下过程从mv1和mv2导出双向预测运动矢量:
[0174]
1.如果mv1和mv2来自不同的参考图片列表(一个来自l0,另一个来自l1),则视频编码器200和视频解码器300可以被配置为将mv1和mv2组合起来以形成双向预测运动矢量。
[0175]
2.否则,如果mv1和mv2来自同一列表,则视频编码器200和视频解码器300可以被配置为仅存储mv2。
[0176]
图9是示出示例三角分割模式(tpm)的概念图。如图所示,当应用三角分割模式时,视频编解码器(例如,视频编码器200或视频解码器300)可以应用对角线分割线509或反对角线分割线511。如图所示,对角线分割线590和反对角线分割线511被布置在当前块的角上。附加地,当应用几何分割模式时,视频编解码器可以在0到360度之间的量化角度处应用分割线,其具有11.25度的分离度和相对于块的中心的分离线位移。
[0177]
图9示出了tpm的示例,如在以下中描述了vvc草案和gpm:esenlik等人的“非ce4:帧间块的几何分割”,itu-t sg 16wp3和iso/iec jtc 1/sc29/wg 11联合视频专家组(jvet),第15次会议:哥德堡,瑞典,2019年7月3日至12日,jvet-o0489-v4(以下称为“jvet-6o0489”)。
[0178]
在jvet-o0489中引入了几何分割,作为对tpm引入的非矩形分割的建议扩展。如在jvet-o0489中所介绍的,视频编码器或视频解码器可以仅将几何分割模式(geo)应用于以
跳过或merge模式进行编解码的cu,而不是以mmvd或ciip模式进行编解码的cu。对于满足那些条件的cu,视频编码器(例如,视频编码器200)可以信令通知一个指示是否应用gpm的标志。图9示出了vvc草案6中的tpm和针对非矩形帧间块提出的附加形状。
[0179]
gpm分割的总数可以是140种可能性。用于gpm的附加信令信令通知角度α,以及相对于该块中心的分离线位移α。α表示0到360度之间的量化角度,具有11.25度的分离,并且ρ表示具有5个不同值的距离。视频编码器200和视频解码器300可以被配置为将值α和ρ对存储在大小为140x(3 5)/8=140字节的表中。也就是,视频编码器200可以信令通知指示角度索引的值。视频解码器300可以接收指示角度索引的值,并使用指示该角度索引的值来确定分割线的角度。类似地,视频编码器200可以确定从当前块的中心的距离偏移。视频编码器200可以信令通知指示该偏移索引的值。
[0180]
图10是示出示例gpm分割信令的示意图。在图10中,视频编码器200可以信令通知分割线515的角度值和相对块的中心的分离线位移ρ的值。
[0181]
类似于tpm,视频编码器200和视频解码器300可以被配置为允许对不小于8x8的单向预测块进行用于帧间预测的gpm分割,以便在解码器侧具有与双向预测块相同的存储器带宽。用于gpm分割的运动矢量预测可以与tpm对准。以及在tpm中,视频编码器200和视频解码器300可以被配置为在内部边界上应用两个预测之间的混合。
[0182]
根据jvet-o0489中提出的过程,视频编码器可以将gpm模式作为附加merge模式来进行信令通知。
[0183][0184]
表1jvet-o0489引入的语法元素
[0185]
geo_merge_idx0和geo_merge_idx1被使用与tpm merge索引相同的cabac上下文和二值化进行编解码。geo_partition_idx指示分割模式(140种可能),并且使用截断二进制二值化和旁路编解码进行编解码。
[0186]
当未选择gpm模式时,视频编码器200和视频解码器300可以被配置为选择tpm。gpm模式的分割不包括可以通过二进制划分的tpm获得的分割。在某种程度上,所提出的信令方案类似于帧内模式信令,其中tpm分割对应于最可能的分割,并且gpm模式对应于剩余的分割。
[0187]
geo_partition_idx被用作存储α和ρ对的查找表的索引。如上所述,存储这个表需要140个字节。用于亮度块的示例混合操作在本文可称为2.3.2部分用于亮度块的混合操
作,或简单地称为2.3.2部分。如在tpm的情况下,视频编码器200和视频解码器300可以被配置为通过根据样点权重对第一单向预测和第二单向预测进行加权平均来获得编解码块的最终预测。
[0188]
sampleweight
l
[x][y]=geofilter[distscaled]如果distfromline《=0
[0189]
sampleweight
l
[x][y]=8-geofilter[distscaled]如果distfromline》0
[0190]
其中样点权重作为查找表实现,如在以下表2中:
[0191][0192]
表2混合滤波器权重
[0193]
计算样点权重的运算次数为近似每个样点1个加法运算,其计算复杂度与tpm相似。更详细地,对于每个样点,视频编码器200和视频解码器300可以被配置为根据以下两个等式计算distscaled:
[0194]
distfromline=((x《《1) 1)*dis[displacementx] ((y《《1) 1))*dis[displacementy]-rho
[0195]
distscaled=min((abs(distfromline) 8)》》4,14)
[0196]
其中视频编码器200和视频解码器300可以被配置为每编解码块计算一次变量rho、displacementx和displacementy,dis[]是具有存储余弦值的32个条目(8位分辨率)的查找表,视频编码器200和视频解码器300可以被配置为通过在样点行中以2*dis[displacementx]的值和从一个样点行到下一个样点行以2*dis[displacementx]的值递增每个样点的distfromline来计算distfromline。因此,使用每个样点略多于1次的加法来获得distfromline值。附加地,可以使用最小值、绝对值和减档操作,这不会引入任何相当大的复杂性。
[0197]
视频编码器200和视频解码器300可以被配置为使用整数算术来实现gpm的所有操作。gpm的计算复杂度可能与tpm非常相似。关于混合操作的更多细节可以在例如jvet-o0489中找到。
[0198]
视频编码器200和视频解码器300可以被配置为对针对亮度样点计算出的样点权重进行子采样,并且使用针对亮度样点计算出的样点权重来在不进行任何计算的情况下进行色度混合。视频编码器200和视频解码器300可以被配置为关于亮度块的左上角样点将坐标(x,y)处的色度样点权重设置为等于坐标(2x,2y)处的亮度样点权重。
[0199]
视频编码器200和视频解码器300可以被配置为使用用于tpm的相同的merge列表导出过程来导出gpm块的每个分割的运动矢量。例如,视频编码器200和视频解码器300可以被配置成仅通过单向预测来对每个分割进行预测。
[0200]
视频编码器200和视频解码器300可以被配置为对在4x4运动存储单元的四个角处的亮度样点权重(其可以通过沿着图8所示的三角分割边缘混合来计算)进行求和。然后,视频编码器200和视频解码器300可以被配置为将该和值与2个阈值进行比较,以确定是否存储了两个单向预测运动信息或双向预测运动信息之一。视频编码器200和视频解码器300可以被配置为使用与tpm相同的过程来导出双向预测运动信息。
[0201]
当前的gpm设计描述了对tpm的扩展。然而,在哥德堡举行的jvet第15次会议期间,一些分歧可能会得到协调。将在下面讨论tpm和gpm运动场存储的协调。tpm算法只利用cu中4
×
4单元的位置来确定需要存储的运动矢量,而gpm方法则将用于运动补偿的权重用于存储。此外,如果将现有的gpm运动场存储算法应用到tpm中,则tpm存储结果会发生变化。对于tpm和gpm过程两者来说,有一个统一的存储过程是有好处的。
[0202]
下面讨论tpm和gpm权重推到的协调。针对亮度块的混合操作描述的权重推导的gpm算法不同于用于tpm权重推导的gpm算法。对于这两种方法,有一个统一的权重推导过程是有好处的。
[0203]
本发明公开了用于统一tpm和geo的运动场存储和运动权推导的几个过程。
[0204]
下面讨论gpm运动场存储的一个变化。
[0205]
在某些例子中,gpm的运动场存储可以通过以下方式进行修改。
[0206]
视频编码器200和视频解码器300可以被配置为使用从每个4x4单元的中心到分割线的距离,使得可以将相同的等式用于tpm运动场存储,而不改变为tpm存储的mv。在一些示例中,视频编码器200和视频解码器300可以被配置为使用以下等式导出运动存储缓冲器:
[0207]
sx_i=(x《《1) 4;
[0208]
sy_i=(y《《1) 4;
[0209]
d=(sx_i*dis[displacementx] sy_i*dis[displacementy]-rho);
[0210]
distancescaled=(abs(d) shiftdistanceoffset)》》shiftdistance;
[0211]
tempmotionbuffer[x》》2]=(distancescaled《=16)?2:d《=0?0:1;
[0212]
其中,sx_i表示第i个4x4块的中心与沿x方向的分割线之间的距离,sy_i表示第i个4x4块的中心与沿y方向的分割线之间的距离,d是中间变量,displacement、displacement y和rho表示分割线,每编解码块计算一次,distancescaled表示第i个4x4块的中心与分割线之间的缩放距离,并且tempmotionbuffer表示“geo的运动场存储”,对于双向预测(例如,使用列表0和列表1)其可以是2,对于单向预测(例如,仅使用列表0或列表1)其可以是1,并且对于单向预测(例如,仅使用列表1或列表0),其可以是0。
[0213]
在一些示例中,视频编码器200和视频解码器300可以被配置为使用以下等式导出运动存储缓冲器:
[0214]
sx_i=(x《《2) 2;
[0215]
sy_i=(y《《2) 2;
[0216]
d=(sx_i*dis[displacementx] sy_i*dis[displacementy]-rho);
[0217]
distancescaled=(abs(d) shiftdistanceoffset)》》shiftdistance;
[0218]
tempmotionbuffer[x》》2]=(distancescaled《=16)?2:d《=0?0:1;
[0219]
在一些示例中,视频编码器200和视频解码器300可以被配置为使用以下等式导出运动存储缓冲器:
[0220]
sx_i=(x*4) 2.5;
[0221]
y_i=(y*4) 2.5;
[0222]
d=(sx_i*dis[displacementx] sy_i*dis[displacementy]-rho);
[0223]
distancescaled=(abs(d) shiftdistanceoffset)》》shiftdistance;
[0224]
tempmotionbuffer[x》》2]=(distancescaled《=16)?2:d《=0?0:1;
[0225]
视频编码器200和视频解码器300可以被配置为应用缩放以实现整数运算。
[0226]
其中x(相应地y)范围从0到块的宽度(相应地高度),步长为4。其中,视频编码器200和视频解码器300可以被配置为使用亮度块的混合操作(参见表2)导出displacementx、displacementy、dis和rho,并且tempmotionbuffer等于0指示mv0的存储,等于1指示mv1的存储,而等于2指示使用运动场存储的bimv的存储。例如,视频编码器200和视频解码器300可以被配置为根据在2.3.2部分中描述的过程导出displacementx、displacementy、dis和rho。在某些示例中,tempmotionbuffer等于2指示使用2.2.4部分中描述的过程存储bimv。
[0227]
下面讨论gpm运动权重推导的变化。在一些示例中,视频编码器200和视频解码器300可以被配置为改变用于gpm中的混合部分的权重,使得用于gpm中的混合部分的权重使用用于沿三角分割边缘混合的tpm权重处理(参见图9)。例如,视频编码器200和视频解码器300可以被配置为改变用于gpm中的混合部分的权重,使得用于gpm中的混合部分的权重使用在2.2.3部分中描述的tpm权重处理。例如,视频编码器200和视频解码器300可以被配置为识别划分边缘,生成包括布置在子块内的划分边缘以对应于tpm位置的子块,以及使用tpm权重处理导出gpm运动权重。
[0228]
视频编码器200和视频解码器300可以被配置为改变gpm使用的角度,使得gpm使用的角度与tpm角度匹配。例如,视频编码器200和视频解码器300可以被配置为使用gpm以具有与tpm等效的角度(例如,大于32个角度)。换句话说,视频编码器200和视频解码器300可以被配置为使用gpm从多个角度中选择分割线的角度,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数。例如,视频编码器200和视频解码器300可以应用与1:2比率、1:4比率、1:1比率、2:1比率、0:1比率或1:0比率相对应的角度,而不是使用间隔11.25度的32个角度。
[0229]
视频编码器200和视频解码器300可以被配置为以偏移来移动加权区域的开始和结束位置,以复制gpm多个偏移。换句话说,视频编解码器(例如,视频编码器200或视频解码器300)可以确定将当前块划分为第一分割和第二分割的分割线,其中,为了确定该分割线,视频编解码器被配置为选择不在当前块的角上的分割线的角度。在一些示例中,视频编解码器可基于分割线的角度确定加权区域,并基于从当前块中心的距离偏移将该加权区域移位到生成的移位加权区域。
[0230]
视频编码器200和视频解码器300可以被配置为使用来自不同块大小的tpm角度连同geo一起,以允许更多的gpm角度。图11中给出了示例。图11是示出示例gpm与tpm协调的概念图。
[0231]
图12是示出用于对当前块进行编码的示例方法的流程图。当前块可以包括当前cu。尽管是关于视频编码器200(图1和图3)描述的,但应当理解的是,其他设备可以被配置为执行类似于图12的方法。
[0232]
在此示例中,视频编码器200对当前块进行预测(350)。例如,视频编码器200可以形成用于当前块的预测块。在一些示例中,视频编码器200可以使用本文描述的用于几何分割模式的技术来形成预测块。然后,视频编码器200可以计算当前块的残差块(352)。为了计算残差块,视频编码器200可以计算原始的未编码的块与当前块的预测块之间的差。然后,视频编码器200可以对残差块的系数进行变换和量化(354)。接下来,视频编码器200可以扫描残差块的经量化的变换系数(356)。在扫描期间或在扫描之后,视频编码器200可以对变
换系数进行熵编码(358)。例如,视频编码器200可以使用cavlc或cabac对变换系数进行编码。然后,视频编码器200可以输出块的经熵编解码数据(360)。
[0233]
图13是示出用于对当前视频数据块进行解码的示例方法的流程图。当前块可以包括当前cu。尽管是关于视频解码器300(图1和图4)描述的,但是应当理解,其他设备可以被配置为执行类似于图13的方法。
[0234]
视频解码器300可以接收当前块的经熵编码的数据,诸如经熵编码的预测信息和与当前块相对应的残差块的系数的经熵编码的数据(370)。视频解码器300可以对经熵编码的数据进行解码以确定当前块的预测信息并再现残差块的系数(372)。视频解码器300可以对当前块进行预测(374),例如,使用用于当前块的预测信息所指示的帧内或帧间预测模式,以计算用于当前块的预测块。在一些示例中,视频解码器300可以使用本文描述的用于几何分割模式的技术来形成预测块。然后,视频解码器300可以对再现的系数进行逆扫描(376),以创建经量化的变换系数的块。然后,视频解码器300可以对变换系数进行逆量化和逆变换以产生残差块(378)。视频解码器300可以通过将预测块和残差块组合来最终解码当前块(380)。
[0235]
图14是示出示例gpm与tpm协调的概念图。如图所示,分割线381的gpm角度具有不是2的倍数的宽高比。也就是,分割线381具有4比7的宽高比。在其他示例中,不是2的倍数的宽高比可以不同于4比77,例如,3到7,2到7,3到8,等等。
[0236]
图15是示出根据本公开的技术的用于使用多个角度对当前块进行编码的示例方法的流程图,该多个角度中的每个角度对应于当前块的样点的n:m比率。视频编码器200(例如,模式选择单元202)可以确定对于视频数据的当前块启用几何分割模式(502)。视频编码器200(例如,模式选择单元202)可以确定将当前块划分为第一分割和第二分割的分割线,其中,确定该分割线包括从多个角度中选择该分割线的角度,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数,并且其中,该分割线不在当前块的角上(504)。视频编码器200(例如,模式选择单元202)可以使用分割线的角度来确定当前块的几何模式权重(506)。视频编码器200(例如,模式选择单元202)可以使用第一分割的运动信息来生成第一分割块(508)。视频编码器200(例如,模式选择单元202)可以使用第二分割的运动信息来生成第二分割块(510)。视频编码器200(例如,模式选择单元202)可以将几何分割模式权重应用于该第一预测块的样点和该第二预测块的样点,以确定当前块的最终预测块(512)。视频编码器200(例如,残差生成单元204)可以基于视频数据的当前块与最终预测块之间的差值来生成视频数据的当前块的残差块(514)。视频编码器200(例如,熵编码单元220)可以对残差块进行编码以生成经编码残差块(516),并输出该经编码残差块(518)。
[0237]
图16是示出根据本公开的技术的用于使用多个角度对视频数据的当前块进行解码的示例方法的流程图,该多个角度中的每个角度对应于当前块的样点的n:m比率。视频解码器300(例如,预测处理单元304)可以确定对于视频数据的当前块启用几何分割模式(552)。视频解码器300(例如,预测处理单元304)可以确定将当前块划分为第一分割和第二分割的分割线,其中,该分割线的确定包括从多个角度中选择该分割线的角度,该多个角度中的每个角度对应于当前块的样点的n:m比率,其中n和m是整数,并且其中,该分割线不在当前块的角上(554)。视频解码器300(例如,预测处理单元304)可以使用分割线的角度来确定当前块的几何模式权重(556)。视频解码器300(例如,预测处理单元304)可以使用第一分
割的运动信息来生成第一预测块(558)。视频解码器300(例如,预测处理单元304)可以使用第二分割的运动信息来生成第二预测块(560)。视频解码器300(例如,预测处理单元304)可以将几何分割模式权重应用于该第一预测块的样点和该第二预测块的样点,以确定当前块的最终预测块(562)。视频解码器300(例如,具有逆量化单元306和逆变换处理单元308的熵解码单元302)可以对当前块的残差块进行解码(564)。视频解码器300(例如,重建单元310)可以将最终预测块和残差块组合起来以对当前块进行解码(566)。视频解码器300(例如,dpb 314)可以输出当前块(568)。
[0238]
图17是示出了根据本公开的技术的具有1:2比率的块的示例角度的概念图。图17的块的一个或多个示例角度可以包括在用于几何分割模式的角度集合中。如图所示,图17包括包含153.43
°
角度的分割线602、包含26.57
°
角度的分割线604、包含333.43
°
角度的分割线606、包含208.57
°
角度的分割线608。
[0239]
图18是示出了根据本公开的技术的具有1:4比率的块的示例角度的概念图。图18的块的一个或多个示例角度可以包括在用于几何分割模式的角度集合中。如图所示,图18包括包含165.96
°
角度的分割线612、包含14.04
°
角度的分割线614、包含345.96
°
角度的分割线616、包含194.04
°
角度的分割线618。
[0240]
图19是示出了根据本公开的技术的具有1:1比率的块的示例角度的概念图。图19的块的一个或多个示例角度可以包括在用于几何分割模式的角度集合中。如图所示,图19包括包含135
°
角度的分割线622、包含45
°
角度的分割线624、包含315
°
角度的分割线626、包含225
°
角度的分割线628。
[0241]
图20是示出了根据本公开的技术的具有2:1比率的块的示例角度的概念图。图20的块的一个或多个示例角度可以包括在用于几何分割模式的角度集合中。如图所示,图20包括包含116.57
°
角度的分割线632、包含63.43
°
角度的分割线634、包含296.57
°
角度的分割线636、包含243.43
°
角度的分割线638。
[0242]
图21是示出了根据本公开的技术的具有0:1比率的块的示例角度的概念图。图21的块的一个或多个示例角度可以包括在用于几何分割模式的角度集合中。如图所示,图21包括包含90
°
角度的分割线642和包含270
°
角度的分割线644。
[0243]
图22是示出了根据本公开的技术的具有1:0比率的块的示例角度的概念图。图22的块的一个或多个示例角度可以包括在用于几何分割模式的角度集合中。如图所示,图22包括包含0
°
角度的分割线652和包含180
°
角度的分割线654。
[0244]
图17-图22中所示的角度可以包括以下特征:所提出的角度的切线是2的幂数,其中widx(x,y)所需的大部分乘法可以通过使用按位移位来替换。
[0245][0246]
使用那些具有2的幂数作为切线的角度,视频编解码器(例如,视频编码器200或视频解码器300)可以通过在将

动态’计算gpm权重值的实现中使用按位移位操作来替换每个
样点的一次乘法。由于三角函数可以实现整数精度运算,减少一次乘法有助于减小舍入误差。
[0247]
在一些实现中,可以优选地存储具有每个cu大小和每个分割的权重的掩码,以减少geo所需的操作数量,因为权重值随相移逐行重复。这种行为可以通过使用等式10来表述,如下所示:
[0248][0249]
widx(x,y)可以被解释为推断分配给紧靠前一行的整数样点的权重值之一,并且因此一行权重值是掩码存储所需的唯一东西。
[0250]
在某些情况下,tan(α)的值可能不是整数,cot(α)用作替换,并且因此权重值随相移逐列重复,如等式12所示。可以看出,widx(x,y)可以被解释为推断分配给紧靠左列的整数样点的权重值之一,并且因此一列权重值是掩码存储所需的唯一东西。
[0251][0252]
在gao等人的“几何合并模式(geo)”,itu-t sg 16wp3和iso/iec jtc 1/sc 29/wg 11联合视频专家组(jvet),第16次会议:日内瓦,瑞士,2019年10月1日至11日,jvet-p0068-v2(以下称为“jvet-p0068”),大多数角度有针对tan(α)的非整数值,这意味着(x-tan(α),y-1)和(x-1,y-cot(α))不落在像素的中心,并且该属性不能被使用。
[0253]
根据本公开的技术,视频编解码器(例如,视频编码器200或视频解码器300)可以被配置为将tpm的推导过程与gpm对准,并且因此tpm模式可以共享与gpm推导其权重值相同的功能。这样,tpm模式可以变得与特定的gpm模式相同,具有对角线(或反对角线)划分和等于零的边缘索引。
[0254]
下面提供本公开的技术的示例的非限制性说明性列表。
[0255]
示例1.一种对视频数据进行编解码的方法,该方法包括:确定对于当前块启用几何分割模式;确定将当前块划分为第一分割和第二分割的分割线;对于当前块的每个4x4块,基于从当前块的每个相应4x4单元的中心到分割线的距离导出运动矢量,其中,导出该运动矢量包括:根据当前块的相应4x4单元到分割线的距离为相应4x4单元选择具有第一预测运动矢量的单向预测、具有第二预测运动矢量的单向预测或具有第一预测运动矢量和第二预测运动矢量的双向预测,并且不使用用于运动补偿的权重;以及使用该运动矢量确定当前块的预测块。
[0256]
示例2.根据示例1的方法,其中,导出运动矢量包括使用以下等式:
[0257]
sx_i=(x《《1) 4;
[0258]
sy_i=(y《《1) 4;
[0259]
d=(sx_i*dis[displacementx] sy_i*dis[displacementy]-rho);
[0260]
distancescaled=(abs(d) shiftdistanceoffset)》》shiftdistance;
[0261]
tempmotionbuffer[x》》2]=(distancescaled《=16)?2:d《=0?0:1;
[0262]
其中,sx_i表示当前块的第i个4x4块的中心与沿x方向的分割线之间的距离,sy_i表示第i个4x4块的中心与沿y方向的分割线之间的距离,d是中间变量,displacement、displacement y和rho表示分割线,distancescaled表示第i个4x4块的中心与分割线之间的缩放距离,并且tempmotionbuffer表示是否使用具有第一预测运动矢量的单向预测、具有第二预测运动矢量的单向预测,或具有第一预测运动矢量和第二预测运动矢量的双向预测来导出运动矢量。
[0263]
示例3.根据示例1的方法,其中,导出运动矢量包括使用以下等式:
[0264]
sx_i=(x《《1) 2;
[0265]
sy_i=(y《《1) 2;
[0266]
d=(sx_i*dis[displacementx] sy_i*dis[displacementy]-rho);
[0267]
distancescaled=(abs(d) shiftdistanceoffset)》》shiftdistance;
[0268]
tempmotionbuffer[x》》2]=(distancescaled《=16)?2:d《=0?0:1;
[0269]
其中,sx_i表示当前块的第i个4x4块的中心与沿x方向的分割线之间的距离,sy_i表示第i个4x4块的中心与沿y方向的分割线之间的距离,d是中间变量,displacement、displacement y和rho表示分割线,distancescaled表示第i个4x4块的中心与分割线之间的缩放距离,并且tempmotionbuffer表示是否使用具有第一预测运动矢量的单向预测、具有第二预测运动矢量的单向预测,或具有第一预测运动矢量和第二预测运动矢量的双向预测来导出运动矢量。
[0270]
示例4.根据示例1的方法,其中,导出运动矢量包括使用以下等式:
[0271]
sx_i=(x《《1) 2.5;
[0272]
sy_i=(y《《1) 2.5;
[0273]
d=(sx_i*dis[displacementx] sy_i*dis[displacementy]-rho);
[0274]
distancescaled=(abs(d) shiftdistanceoffset)》》shiftdistance;
[0275]
tempmotionbuffer[x》》2]=(distancescaled《=16)?2:d《=0?0:1;
[0276]
其中,sx_i表示当前块的第i个4x4块的中心与沿x方向的分割线之间的距离,sy_i表示第i个4x4块的中心与沿y方向的分割线之间的距离,d是中间变量,displacement、displacement y和rho表示分割线,distancescaled表示第i个4x4块的中心与分割线之间的缩放距离,并且tempmotionbuffer表示是否使用具有第一预测运动矢量的单向预测、具有第二预测运动矢量的单向预测,或具有第一预测运动矢量和第二预测运动矢量的双向预测来导出运动矢量。
[0277]
示例5.根据示例2-示例4的任一项的方法,其中,导出运动矢量包括:当tempmotionbuffer等于0时,用使用第一预测运动矢量的单向预测导出运动矢量;当tempmotionbuffer等于1时,用使用第二预测运动矢量的单向预测导出运动矢量;以及当tempmotionbuffer等于2时,用使用第一预测运动矢量和第二预测运动矢量的双向预测导出运动矢量。
[0278]
示例6.一种对视频数据进行编解码的方法,该方法包括:确定对于当前块启用几何分割模式;确定将当前块划分为第一分割和第二分割的分割线;确定当前块的子块,使得该子块包括由分割线形成的三角分割边缘;对于三角分割模式,通过沿三角分割边缘混合来导出三角分割模式权重;使用三角分割模式权重来确定当前块的几何模式权重;以及使用几何分割模式权重来确定预测块。
[0279]
示例7.根据示例6的方法,其中,该分割线被布置成用于几何分割模式的多个角度中的一个角度,并且其中,用于几何分割模式的多个角度包括用于三角分割模式的多个角度中的每个角度。
[0280]
示例8.根据示例1-示例7的任一项的方法,其中,编解码包括解码。
[0281]
示例9.根据示例1-示例7的任一项的方法,其中,编解码包括编码。
[0282]
示例10.一种用于对视频数据进行编解码的设备,该设备包括用于执行示例1-示例9的任一项的方法的一个或多个部件。
[0283]
示例11.根据示例10的设备,其中一个或多个部件包括在电路中实现的一个或多个处理器。
[0284]
示例12.根据示例10和示例11的任一项的设备,还包括用于存储视频数据的存储器。
[0285]
示例13.根据示例10-示例12的任一项的设备,还包括被配置为显示经解码视频数据的显示器。
[0286]
示例14.根据示例10-示例13的任一项的设备,其中,该设备包括以下一个或多个:摄像机、计算机、移动设备、广播接收器设备或机顶盒。
[0287]
示例15.根据示例10-示例14的任一项的设备,其中,该设备包括视频解码器。
[0288]
示例16.根据示例10-示例15的任一项的设备,其中,该设备包括视频编码器。
[0289]
示例17.一种在其上存储有指令的计算机可读存储介质,该指令在执行时使一个或多个处理器执行示例1-示例10的任一项的方法。
[0290]
应该认识到,根据示例,本文中描述的任何技术的某些动作或事件可以以不同的序列执行,可以被一起添加、合并或省去(例如,不是所有描述的动作或事件是技术实践所必须的)。此外,在某些示例中,动作或事件可以,例如通过多线程处理、中断处理或多个处理器并发地执行而不是顺序地执行。
[0291]
在一个或多个示例中,可以在硬件、软件、固件或其任意组合中来实现所描述的功能。如果以=在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者通信介质,包括例如根据通信协议来促进将计算机程序从一个地方转移到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0292]
作为示例而非限制,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁性存储设备、闪存或可以用于以指令或数据结构形式
存储所需程序代码并且可以由计算机访问的任何其他介质。而且,任何连接都适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或无线技术(诸如红外、无线电和微波)从网站、服务器或其他远程源发送指令,则介质的定义包括同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外、无线电和微波)。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性介质,而是针对非暂时性有形存储介质。如本文使用的,磁盘和光盘包括压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中,磁盘通常以磁性方式重现数据,而光盘用激光光学地重现数据。上述的组合也应包括在计算机可读介质的范围内。
[0293]
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其他等效集成的或分立逻辑电路。因此,如本技术中所使用的术语“处理器”和“处理电路”可以是指任何前述结构或适合于实现本技术中描述的技术的任何其他结构。另外,在一些方面,本技术中描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或合并在组合编解码器中。同样,该技术可以在一个或多个电路或逻辑元件中完全实现。
[0294]
本公开的技术可以在包括无线手机、集成电路(ic)或一组ic(例如,芯片集)的多种设备或装置中实现。在本公开中描述各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元来实现。相反,如上所述,各种单元可以组合在编解码器硬件单元中,或者由互操作硬件单元的集合来提供,包括与合适的软件和/或固件结合的如上所述的一个或多个处理器。
[0295]
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献