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

用于高位深度视频译码的莱斯(RICE)参数推导的低复杂度历史使用的制作方法

2023-09-08 11:04:17 来源:中国专利 TAG:

用于高位深度视频译码的莱斯(rice)参数推导的低复杂度历史使用
技术领域
1.本技术涉及视频译码(例如,视频编码和/或视频解码)。例如,本技术的方面涉及用于改进高位深度译码中的常规残差译码(rrc)的参数推导(例如,rice参数推导)的系统和技术。所述系统和技术适用于通用视频译码(vvc)标准的新扩展以及其它标准及其扩展。


背景技术:

2.许多设备和系统允许处理和输出视频数据以供消费。数字视频数据包括大量数据以满足消费者和视频提供商的需求。例如,视频数据的消费者期望具有最高质量、高保真度、分辨率、帧速率等的视频。因此,满足这些需求所需的大量视频数据对处理和存储视频数据的通信网络和设备造成负担。
3.可使用各种视频译码技术来压缩视频数据。根据一个或多个视频译码标准执行视频译码。例如,视频译码标准包括通用视频译码(vvc)、高效视频译码(hevc)、高级视频译码(avc)、mpeg-2第2部分译码(mpeg代表运动图像专家组)等,以及诸如由开放媒体联盟开发的aomedia video 1(av1)的专有视频编解码器/格式。视频译码通常利用预测方法(例如,帧间预测、帧内预测等),所述预测方法利用视频图像或序列中存在的冗余。视频译码技术的目标是将视频数据压缩成使用较低位速率的形式,同时避免或最小化视频质量的降级。随着不断发展的视频服务变得可用,需要具有更好译码效率的编码技术。


技术实现要素:

4.在一些示例中,描述了用于至少部分地基于历史参数信息(例如,历史rice参数信息)进行参数推导(例如,rice参数推导)的系统和技术。根据至少一个说明性示例,提供了一种对视频数据进行解码的方法。所述方法包括:获得变换块,所述变换块包括多个样本;至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数;至少部分地基于对所述局部邻域的所述分析,确定所述当前样本的相邻变换系数的数量小于阈值量;获得从一个或多个先前解码的变换块确定的历史参数值;至少部分地基于所述历史参数值,确定所述当前样本的参数;以及基于所确定的所述当前样本的参数来解码当前样本。
5.在另一示例中,提供了一种用于对视频数据进行解码的装置,包括存储器和耦接到所述存储器的一个或多个处理器(例如,在电路中实现)。所述一个或多个处理器被配置为并且能够:获得变换块,所述变换块包括多个样本;至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数;至少部分地基于所述局部邻域的分析,确定所述当前样本的相邻变换系数的数量小于阈值量;获得从一个或多个先前解码的变换块确定的历史参数值;至少部分地基于所述历史参数值,确定所述当前样本的参数;以及基于所确定的所述当前样本的参数来解码当前样本。
6.在另一示例中,提供了一种非暂时性计算机可读介质,其上存储有指令,当由一个
或多个处理器执行时,所述指令使所述一个或多个处理器:获得变换块,所述变换块包括多个样本;至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数;至少部分地基于所述局部邻域的分析,确定所述当前样本的相邻变换系数的数量小于阈值量;获得从一个或多个先前解码的变换块确定的历史参数值;至少部分地基于所述历史参数值,确定所述当前样本的参数;以及基于所确定的所述当前样本的参数来解码当前样本。
7.在另一示例中,提供了一种装置,包括:用于获得变换块的模块,所述变换块包括多个样本;用于至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数的模块;用于至少部分地基于所述局部邻域的分析,确定所述当前样本的相邻变换系数的数量小于阈值量的模块;用于获得从一个或多个先前解码的变换块确定的历史参数值的模块;用于至少部分地基于所述历史参数值,确定所述当前样本的参数的模块;以及用于基于所确定的当前样本的参数来解码当前样本的模块。
8.在另一示例中,提供了一种对视频数据进行编码的方法,包括:获得变换块,所述变换块包括多个样本;至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数;至少部分地基于所述局部邻域的分析,确定所述当前样本的相邻变换系数的数量小于阈值量;获得从一个或多个先前经编码的变换块确定的历史参数值;至少部分地基于所述历史参数值,确定所述当前样本的参数;以及基于所确定的所述当前样本的参数生成位流。
9.在另一示例中,提供了一种用于对视频数据进行编码的装置,包括存储器和耦接到所述存储器的一个或多个处理器(例如,在电路中实现)。所述一个或多个处理器被配置为并且能够:获得变换块,所述变换块包括多个样本;至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数;至少部分地基于所述局部邻域的分析,确定所述当前样本的相邻变换系数的数量小于阈值量;获得从一个或多个先前经编码的变换块确定的历史参数值;至少部分地基于所述历史参数值,确定所述当前样本的参数;以及基于所确定的所述当前样本的参数生成位流。
10.在另一示例中,提供了一种非暂时性计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器进行以下操作:获得变换块,所述变换块包括多个样本;至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数;至少部分地基于所述局部邻域的分析,确定所述当前样本的相邻变换系数的数量小于阈值量;获得从一个或多个先前解码的变换块确定的历史参数值;至少部分地基于所述历史参数值,确定所述当前样本的参数;以及基于所确定的所述当前样本的参数生成位流。
11.在另一示例中,提供了一种装置,包括:用于获得变换块的模块,所述变换块包括多个样本;用于至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数的模块;用于至少部分地基于所述局部邻域的分析,确定所述当前样本的相邻变换系数的数量小于阈值量的模块;用于获得从一个或多个先前经编码的变换块确定的历史参数值的模块;用于至少部分地基于所述历史参数值,确定所述当前样本的参数的模块;以及用于基于所确定的当前样本的参数生成位流的模块。
12.在一些方面,所述多个样本的一个或多个参数包括一个或多个rice参数,所述历
史参数值是历史rice参数值,并且为当前样本确定的参数是当前样本的rice参数。在一些方面,现有历史参数值是现有历史rice参数值。
13.在一些方面,以上描述的方法、装置和计算机可读介质还包括:至少部分地基于相邻变换系数的数量为零的确定,基于历史参数值的第一整数倍来确定当前样本的参数。
14.在一些方面,确定当前样本的参数包括提供历史参数值的第一整数倍作为到在输入与参数之间进行映射的查找表的输入。
15.在一些方面,所述第一整数倍和所述阈值量是相同的值。
16.在一些方面,以上描述的方法、装置和计算机可读介质还包括:至少部分地基于相邻变换系数的数量大于零的确定,基于历史参数值的第二整数倍和相邻变换系数的总和来确定当前样本的参数。
17.在一些方面,确定所述当前样本的参数包括提供与所述相邻变换系数的所述总和相加的所述历史参数值的所述第二整数倍作为到在输入与参数之间进行映射的查找表的输入。
18.在一些方面,第二整数倍小于第一整数倍。
19.在一些方面,至少部分地基于识别当前样本的一个或多个不可用相邻变换系数来确定相邻变换系数的数量小于阈值量。
20.在一些方面,以上描述的方法、装置和计算机可读介质还包括:获得所述当前样本在所述变换块内的位置;将所述当前样本的所述位置与所述变换块的宽度和所述变换块的高度中的一者或多者进行比较;以及至少部分地基于所述比较,识别所述一个或多个不可用相邻变换系数。
21.在一些方面,所述一个或多个不可用相邻变换系数与所述变换块外部的位置相关联。
22.在一些方面,确定相邻变换系数的数量小于阈值量包括:确定当前样本的位置的水平分量在变换块的宽度的第一距离内;以及确定当前样本的位置的垂直分量在变换块的高度的第二距离内。
23.在一些方面,所述多个样本与变换块样本类型相关联,所述变换块样本类型包括亮度样本或色度样本。
24.在一些方面,变换块样本类型与关联于从其确定历史参数值的一个或多个先前解码的变换块的样本类型相同。
25.在一些方面,至少部分地基于从所述一个或多个先前解码的变换块中的每一个获得的第一非零经解码变换系数来确定所述历史参数值。
26.在一些方面,以上描述的方法、装置和计算机可读介质还包括:确定从所述一个或多个先前解码的变换块中的每一个获得的每个第一非零经解码变换系数的二进制码长。
27.在一些方面,将所述历史参数值确定为针对一个或多个先前解码的变换块中的每一个的第一非零经解码变换系数确定的二进制码长的指数加权移动平均值。
28.在一些方面,基于所确定的所述当前样本的参数来解码所述当前样本包括:基于所确定的参数来解码指示所述当前样本的语法元素。
29.在一些方面,基于所确定的参数来解码所述当前样本包括:使用所确定的参数来解码golomb-rice码。
30.在另一示例中,提供了一种对视频数据进行解码的方法,包括:获得变换块;至少部分地基于对所述变换块的分析来确定一个或多个非零经解码变换系数;基于所述一个或多个非零经解码变换系数的至少一部分来确定所述变换块的历史更新值;至少部分地通过将所述变换块的所述历史更新值与现有历史参数值组合来更新所述现有历史参数值,所述现有历史参数值至少部分地基于从一系列先前分析的变换块确定的一系列非零经解码变换系数;以及基于现有历史参数值或经更新的现有历史参数值来解码变换块的至少一个样本。
31.在另一示例中,提供一种用于对视频数据进行解码的装置,包括存储器和耦接到所述存储器的一个或多个处理器(例如,在电路中实现)。所述一个或多个处理器被配置为并且能够:获得变换块;至少部分地基于对所述变换块的分析来确定一个或多个非零经解码变换系数;基于所述一个或多个非零经解码变换系数的至少一部分来确定所述变换块的历史更新值;至少部分地通过将所述变换块的所述历史更新值与现有历史参数值组合来更新所述现有历史参数值,所述现有历史参数值至少部分地基于从一系列先前分析的变换块确定的一系列非零经解码变换系数;以及基于现有历史参数值或经更新的现有历史参数值来解码变换块的至少一个样本。
32.在另一示例中,提供了一种非暂时性计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器进行以下操作:获得变换块;至少部分地基于对所述变换块的分析来确定一个或多个非零经解码变换系数;基于所述一个或多个非零经解码变换系数的至少一部分来确定所述变换块的历史更新值;至少部分地通过将所述变换块的所述历史更新值与现有历史参数值组合来更新所述现有历史参数值,所述现有历史参数值至少部分地基于从一系列先前分析的变换块确定的一系列非零经解码变换系数;以及基于现有历史参数值或经更新的现有历史参数值来解码变换块的至少一个样本。
33.在另一示例中,提供了一种装置,包括:用于获得变换块的模块;用于至少部分地基于对所述变换块的分析来确定一个或多个非零经解码变换系数的模块;用于基于所述一个或多个非零经解码变换系数的至少一部分来确定所述变换块的历史更新值的模块;用于至少部分地通过将所述变换块的所述历史更新值与现有历史参数值组合来更新所述现有历史参数值的模块,所述现有历史参数值至少部分地基于从一系列先前分析的变换块确定的一系列非零经解码变换系数;以及用于基于现有历史参数值或经更新的现有历史参数值来解码变换块的至少一个样本的模块。
34.在另一示例中,提供了一种对视频数据进行编码的方法,包括:获得变换块;至少部分地基于对所述变换块的分析来确定一个或多个非零经译码变换系数;基于所述一个或多个非零经译码变换系数的至少一部分确定所述变换块的历史更新值;至少部分地通过将所述变换块的历史更新值与现有历史参数值组合来更新所述现有历史参数值,所述现有历史参数值至少部分地基于从一系列先前分析的变换块确定的一系列非零经译码变换系数;以及基于现有历史参数值或经更新的现有历史参数值生成位流。
35.在另一示例中,提供一种用于对视频数据进行编码的装置,包括存储器和耦接到所述存储器的一个或多个处理器(例如,在电路中实现)。所述一个或多个处理器被配置为并且能够:获得变换块;至少部分地基于对所述变换块的分析来确定一个或多个非零经译
码变换系数;基于所述一个或多个非零经译码变换系数的至少一部分确定所述变换块的历史更新值;至少部分地通过将所述变换块的历史更新值与现有历史参数值组合来更新所述现有历史参数值,所述现有历史参数值至少部分地基于从一系列先前分析的变换块确定的一系列非零经译码变换系数;以及基于现有历史参数值或经更新的现有历史参数值生成位流。
36.在另一示例中,提供了一种非暂时性计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器:获得变换块;至少部分地基于对所述变换块的分析来确定一个或多个非零经解码变换系数;基于所述一个或多个非零经解码变换系数的至少一部分确定所述变换块的历史更新值;至少部分地通过将所述变换块的历史更新值与现有历史参数值组合来更新所述现有历史参数值,所述现有历史参数值至少部分地基于从一系列先前分析的变换块确定的一系列非零经解码变换系数;以及基于现有历史参数值或经更新的现有历史参数值生成位流。
37.在另一示例中,提供一种装置,包括:用于获得变换块的模块;用于至少部分地基于对所述变换块的分析来确定一个或多个非零经译码变换系数的模块;用于基于所述一个或多个非零经译码变换系数的至少一部分确定所述变换块的历史更新值的模块;用于至少部分地通过将所述变换块的历史更新值与现有历史参数值组合来更新所述现有历史参数值的模块,所述现有历史参数值至少部分地基于从一系列先前分析的变换块确定的一系列非零经译码变换系数;以及用于基于现有历史参数值或经更新的现有历史参数值生成位流的模块。
38.在一些方面,将所述变换块的历史更新值与所述现有历史参数值组合包括:对所述变换块的历史更新值与所述现有历史参数值求平均。
39.在一些方面,将所述变换块的历史更新值与所述现有历史参数值组合包括:确定所述变换块的历史更新值与所述现有历史参数值之间的指数加权移动平均值。
40.在一些方面,以上描述的方法、装置和计算机可读介质还包括:将第一权重指派给所述变换块的历史更新值且将第二权重指派给所述现有历史参数值,其中,确定所述指数加权移动平均值至少部分地基于所述第一权重和所述第二权重。
41.在一些方面,基于在变换块的分析中确定的第一非零经解码变换系数来确定所述变换块的历史更新值。
42.在一些方面,基于所述变换块在反方向上的运行扫描顺序来确定第一非零经解码变换系数。
43.在一些方面,至少部分地通过确定第一非零经解码变换系数的二进制码长来确定所述变换块的历史更新值。
44.在一些方面,所述变换块和先前分析的变换块与第一切片相关联;并且基于针对与同一切片相关联的连续分析的变换块确定的连续历史更新值,迭代地更新现有历史参数值。
45.在一些方面,以上描述的方法、装置和计算机可读介质还包括:将所述现有历史参数值初始化为预定值,其中,在分析所述第一切片的第一变换块并确定所述第一变换块的历史更新值之前执行所述初始化。
46.在一些方面,基于所述变换块的所述非零经解码变换系数中的所有非零经解码变
换系数来确定所述变换块的所述历史更新值。
47.在一些方面,至少部分地通过对所述变换块的所述非零经解码变换系数中的所有非零经解码变换系数求平均来确定所述历史更新值。
48.在一些方面,解码所述变换块的至少一个样本包括:基于所述现有历史参数值或所述经更新的现有历史参数值来解码指示所述至少一个样本的语法元素。
49.在一些方面,解码所述变换块的至少一个样本包括:使用所述现有历史参数值或所述经更新的现有历史参数值来解码golomb-rice码。
50.在一些方面,装置可以是移动设备(例如,移动电话或所谓的“智能电话”或其它移动设备)、个人计算机、膝上型计算机、扩展现实(xr)设备(例如,虚拟现实(vr)设备、增强现实(ar)设备或混合现实(mr)设备)、物联网(iot)设备、车辆或车辆的计算组件或系统、智能可穿戴设备、服务器计算机、相机(例如,数码相机、网际协议(ip)相机等)、多相机系统、机器人设备或系统、航空设备或系统或其它设备,或其一部分。在一些方面,装置包括用于捕获一个或多个图像的相机或多个相机。在一些方面,装置包括用于显示一个或多个图像、通知和/或其它可显示数据的显示器。在一些方面,上述装置可以包括一个或多个传感器。
51.本发明内容不旨在标识所要求保护的主题的关键或必要特征,也不旨在孤立地用于确定所要求保护的主题的范围。通过参考本专利的整个说明书的适当部分、任何或所有附图以及每个权利要求,应该理解本主题。
52.通过参考以下说明书、权利要求书和附图,前述内容以及其它特征和实施例将变得更加显而易见。
附图说明
53.下面参考以下附图详细描述本技术的说明性实施例:
54.图1是示出根据一些示例的编码设备和解码设备的示例的框图;
55.图2是示出根据一些示例的指示当前系数的相邻系数的rice推导模板的示例的图;
56.图3是示出根据一些示例的与示例rice推导模板重叠的不同变换单元(tu)的示例的图;
57.图4是示出根据一些示例的至少部分地基于rice推导模板与样本的空间位置之间的相互作用而应用于变换单元的样本的不同分类的示例的图;
58.图5是示出根据一些示例的用于确定历史rice参数值的历史计数器的历史更新的示例的图;
59.图6是示出根据一些示例的用于推导rice参数的过程的示例的流程图;
60.图7是示出根据一些示例的用于推导rice参数的过程的另一示例的流程图;
61.图8是示出根据一些示例的示例视频编码设备的框图;以及
62.图9是示出根据一些示例的示例视频解码设备的框图。
具体实施方式
63.下面提供了本公开内容的某些方面和实施例。这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以组合应用,这对于本领域技术人员来说是显而易见的。在
h.263、iso/iec mpeg-4visual、高级视频译码(avc)或itu-t h.264(包括其可缩放视频译码(svc)和多视图视频译码(mvc)扩展)、高效视频译码(hevc)或itu-t h.265(包括其范围和屏幕内容译码)、3d视频译码(3d-hevc)、多视图(mv-hevc)和可缩放(shvc)扩展、通用视频译码(vvc)或itu-th.266和其扩展、vp9、开放媒体联盟(aomedia)视频1(av1)、基本视频译码(evc)等。
72.如上所述,视频编码器可熵编码经量化变换系数和/或语法元素以生成位流。视频解码器可使用逆熵译码过程来对位流进行熵解码。在一些示例中,使用rice参数的rice译码可以用于执行熵译码(例如,熵编码和/或熵解码)。在当前vvc标准中,可基于用于确定(例如,计算、运算等)相邻变换系数的总和的模板(也被称作rice参数推导模板)和将不同可能总和值映射到特定rice参数值的查找表,来导出用于常规残差译码(rrc)的rice参数。在该方法中,将从rice参数推导模板确定的总和用作rice参数值查找表的索引。在一个说明性示例中,可在样本网格(例如,8
×
8样本网格)上应用rice参数推导模板。在一些情况下,网格可表示从视频数据的较大帧或切片获得的变换块(tb)或变换单元(tu)。为了确定当前变换系数的rice参数,视频编码器或解码器可利用模板来识别一个或多个相邻变换系数。rice参数推导模板可用于识别给定当前系数的多个相邻系数(例如,五个相邻系数)。视频编码器或解码器可接着确定基于模板识别的相邻变换系数的绝对值的总和。
73.在一些示例中,用于rice参数推导的基于模板的方法(例如,根据vvc第9.3.3.2节的基于模板的rice参数推导(例如,未修改的eq.1517)和下面描述的各种修改示例(例如,eq.1517的修改))可以利用以下事实:从块的末尾开始并朝向其dc前进,在反向穿行中进行解码。基于针对每个块(例如,tu或tb)执行的反向穿行解码,此类rice参数推导技术可利用先前在当前tu中解码的一个或多个变换系数。
74.在一些情况下(例如,在高位深度译码的情况下),对于具有使用golomb-rice方法译码的变换系数的高百分比的小尺寸tu或tb(例如,具有4x4的尺寸),不能对某些变换系数(例如,在tu解码的最开始时出现的变换系数)进行准确的rice推导。例如,对于在tu解码开始时出现的那些系数(例如,基于使用某一预定数量(例如,五个)的相邻变换系数的基于模板的rice参数推导),可用于执行基于模板的rice参数推导的非零相邻变换系数的数量可能不足。
75.如本文更详细描述的,本文描述了用于改进参数推导(例如,rice参数推导)的系统、装置、方法和计算机可读介质(统称为“系统和技术”)。此类系统和技术可用于高位深度译码中的常规残差译码(rrc)和/或用于其它视频译码。根据一些方面,所述系统和技术可以包括在存在一个或多个不可用相邻变换系数的情况下执行rice参数推导。例如,可以确定视频编码器和/或视频解码器,对于当前tu的当前样本(例如,在解码器的情况下,当前经解码tu的当前经解码样本),由rice推导模板指定的一个或多个相邻变换系数不可用。不可用的相邻变换系数可以是不位于与当前经解码系数相同的tu内的变换系数。例如,当rice推导模板跨越当前经解码tu的一个或多个边界或边缘时,可以确定存在不可用的相邻变换系数。
76.并非忽略不可用的相邻变换系数,或者设置它们等于零,本文描述的系统和技术可以提供历史rice参数值,当执行基于模板和查找表的rice推导时,该历史rice参数值用于代替不可用的相邻变换系数。在一些示例中,可通过维持累加从先前经解码的tu获得的
一个或多个第一经解码非零变换系数的一个或多个历史计数器来确定(例如,计算、运算等)历史rice参数值。例如,先前经解码的tu和当前经解码的tu可与视频数据的相同帧、块、切片或其它分区以及在当前经解码的tu所属的较大单元的持续时间内维持的历史计数器相关联。历史计数器可维持来自较早tu的第一非零经解码变换系数的运行和,每当查询或使用历史rice参数值以执行根据本文中所描述的系统和技术的rice推导时,可从所述运行和确定算术平均值。在一些示例中,一个或多个历史计数器可以实现历史rice参数值的加权平均值或指数加权移动平均值,如下面将更深入描述的。
77.将相关于附图描述关于系统和技术的进一步细节。
78.图1是示出包括编码设备104和解码设备112的系统100的示例的框图。编码设备104可以是源设备的部分,且解码设备112可以是接收设备的部分。源设备和/或接收设备可以包括电子设备,例如移动或固定电话手持机(例如,智能电话、蜂窝式电话等)、台式计算机、膝上型或笔记本计算机、平板计算机、机顶盒、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流媒体设备、网际协议(ip)相机、或任何其它合适的电子设备。在一些示例中,源设备和接收设备可以包括用于无线通信的一个或多个无线收发机。本文所描述的译码技术适用于各种多媒体应用中的视频译码,包括流媒体视频传输(例如,经由互联网)、电视广播或传输、用于存储在数据存储介质上的数字视频的编码、存储在数据存储介质上的数字视频的解码,或其它应用。如本文所使用的,术语译码可以指编码和/或解码。在一些示例中,系统100可以支持单向或双向视频传输以支持诸如视频会议、视频流、视频回放、视频广播、游戏和/或视频电话之类的应用。
79.编码设备104(或编码器)可用于使用视频译码标准、格式、编解码器或协议来编码视频数据以生成经编码视频位流。视频译码标准和格式/编解码器的示例包括itu-th.261、iso/iec mpeg-1visual、itu-th.262或iso/iec mpeg-2visual、itu-th.263、iso/iec mpeg-4visual、itu-th.264(也称为iso/iec mpeg-4avc),包括其可缩放视频译码(svc)和多视图视频译码(mvc)扩展,高效视频译码(hevc)或itu-th.265以及通用视频译码(vvc)或itu-t h.266。hevc的各种扩展处理多层视频译码存在,包括范围和屏幕内容译码扩展、3d视频译码(3d-hevc)和多视图扩展(mv-hevc)以及可缩放扩展(shvc)。hevc及其扩展已由itu-t视频译码专家组(vceg)和iso/iec运动图像专家组(mpeg)的视频译码联合协作组(jct-vc)以及3d视频译码扩展开发联合协作组(jct-3v)开发。vp9、由开放媒体联盟(aomedia)开发的aomedia视频1(av1)和基本视频译码(evc)是可以应用本文描述的技术的其它视频译码标准。
80.本文中所描述的系统和技术可应用于现有视频编解码器(例如,vvc、hevc、avc或其它合适的现有视频编解码器)中的任一个,和/或可以是用于正开发的任何视频译码标准和/或未来视频译码标准的高效译码工具。例如,可以使用诸如vvc、hevc、avc和/或其扩展的视频编解码器来执行本文描述的示例。然而,本文中所描述的技术和系统还可适用于其它译码标准、编解码器或格式,例如mpeg、jpeg(或用于静止图像的其它译码标准)、vp9、av1、其扩展,或已经可用或尚不可用或开发的其它合适译码标准。例如,在一些示例中,编码设备104和/或解码设备112可根据专有视频编解码器/格式操作,例如av1、avi的扩展和/或av1的后续版本(例如,av2),或其它专有格式或行业标准。因此,虽然可参考特定视频译码标准描述本文中所描述的技术和系统,但所属领域的普通技术人员将理解的是,该描述
不应被解释为仅适用于该特定标准。
81.参考图1,视频源102可将视频数据提供到编码设备104。视频源102可以是源设备的部分,或者可以是除源设备之外的设备的一部分。视频源102可以包括视频捕获设备(例如,视频摄像机、相机电话、视频电话等)、包含所存储的视频的视频档案、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形系统、这样的源的组合、或任何其它合适的视频源。
82.来自视频源102的视频数据可包括一个或多个输入图片或帧。图片或帧是静止图像,在一些情况下,是视频的一部分。在一些示例中,来自视频源102的数据可以是不是视频的一部分的静止图像。在hevc、vvc和其它视频译码规范中,视频序列可以包括一系列图片。图片可以包括三个样本阵列,表示为sl、scb和scr。sl是亮度样本的二维阵列,scb是cb色度样本的二维阵列,且scr是cr色度样本的二维阵列。色度样本在本文中也可被称作“色度”样本。像素可指图片阵列中的给定位置的所有三个分量(亮度和色度样本)。在其它情况下,图片可以是单色的且可仅包括亮度样本阵列,在此情况下,术语像素和样本可互换使用。关于本文中出于说明性目的而参考各个样本所描述的示例技术,相同技术可应用于像素(例如,图片阵列中的给定位置的所有三个样本分量)。关于本文中出于说明性目的而参考像素(例如,图片阵列中的给定位置的所有三个样本分量)所描述的示例技术,相同技术可应用于各个样本。
83.编码设备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)协议、文件格式等等。
84.hevc标准中存在两类nal单元,包括视频译码层(vcl)nal单元和非vcl nal单元。vcl nal单元包括经译码图片数据的一个切片或切片片段(下面描述),并且非vcl nal单元包括与一个或多个经译码图片相关的控制信息。在一些情况下,nal单元可以被称为分组。hevc au包括包含经译码图片数据的vcl nal单元和与经译码图片数据相对应的非vcl nal单元(如果有的话)。
85.nal单元可包含形成视频数据的经译码表示(例如,经译码视频位流、位流的cvs等)(例如,视频中的图片的经译码表示)的位序列。编码器引擎106通过将每个图片划分成多个切片而生成图片的经译码表示。切片独立于其它切片,使得在不依赖于来自同一图片内的其它切片的数据的情况下译码切片中的信息。切片包括一个或多个切片片段,所述切片片段包括独立切片片段,以及如果存在的话,包括取决于先前切片片段的一个或多个从
属切片片段。然后,将这些切片划分为亮度样本和色度样本的译码树块(ctb)。亮度样本的ctb和色度样本的一个或多个ctb连同用于样本的语法被称作译码树单元(ctu)。ctu也可被称作“树块”或“最大译码单元”(lcu)。ctu是hevc编码的基本处理单元。ctu可以被分成不同大小的多个译码单元(cu)。cu包含亮度和色度样本阵列,其被称作译码块(cb)。
86.亮度和色度cb可以进一步被分成预测块(pb)。pb是亮度分量或色度分量的样本块,其使用相同的运动参数进行帧间预测或块内复制预测(当可用或使得能够使用时)。亮度pb和一个或多个色度pb与相关联的语法一起形成预测单元(pu)。对于帧间预测,针对每个pu在位流中发信号通知运动参数集合(例如,一个或多个运动向量、参考索引等),且所述运动参数集合用于亮度pb和一个或多个色度pb的帧间预测。运动参数也可以被称为运动信息。cb也可以被划分为一个或多个变换块(tb)。tb表示色彩分量的样本的正方形块,对其应用残差变换(例如,在一些情况下,相同二维变换)以用于译码预测残差信号。变换单元(tu)表示亮度和色度样本的tb以及对应的语法元素。
87.cu的大小对应于译码模式的大小且在形状上可为正方形。例如,cu的大小可为8
×
8样本、16
×
16样本、32
×
32样本、64
×
64样本,或高达对应ctu的大小的任何其它适当大小。短语“n
×
n”在本文中用于按照垂直和水平尺寸指代视频块的像素尺寸(例如,8像素
×
8像素)。块中的像素可以按行和列排列。在一些示例中,块在水平方向上可以不具有与在垂直方向上相同的像素数。与cu相关联的语法数据可描述例如cu到一个或多个pu的划分。划分模式可在cu是经帧内预测模式编码还是经帧间预测模式编码之间不同。pu可被划分为非正方形形状。与cu相关联的语法数据还可描述例如根据ctu将cu划分成一个或多个tu。tu的形状可以是正方形或非正方形。
88.根据hevc标准,可以使用变换单元(tu)来执行变换。tu可以随不同的cu而变化。可基于给定cu内的pu的大小来确定tu的大小。tu可以与pu大小相同或比pu小。在一些示例中,对应于cu的残差样本可使用称为残差四叉树(rqt)的四叉树结构细分成较小的单元。rqt的叶节点可对应于tu。与tu相关联的像素差值可经变换以产生变换系数。然后,变换系数可由编码器引擎106量化。
89.一旦将视频数据的图片划分成cu,编码器引擎106就使用预测模式来预测每个pu。然后从原始视频数据中减去预测单元或预测块以得到残差(下面描述)。对于每个cu,可使用语法数据在位流内发信号通知预测模式。预测模式可包括帧内预测(或图片内预测)或帧间预测(或图片间预测)。帧内预测利用图片内的空间相邻样本之间的相关性。例如,使用帧内预测,例如使用dc预测以找到pu的平均值、使用平面预测以使平面适配pu、使用方向预测以从相邻数据外推、或使用任何其它合适类型的预测,从同一图片中的相邻图像数据预测每个pu。帧间预测使用图片之间的时间相关性,以便导出针对图像样本块的经运动补偿预测。例如,使用帧间预测,使用运动补偿预测根据一个或多个参考图片(在输出顺序中在当前图片之前或之后)中的图像数据来预测每个pu。可例如在cu层级做出是使用图片间还是图片内预测来译码图片区域的决策。
90.编码器引擎106和解码器引擎116(下文更详细地描述)可被配置为根据vvc操作。根据vvc,视频译码器(例如,编码器引擎106和/或解码器引擎116)将图片划分成多个译码树单元(ctu)(其中亮度样本的ctb和色度样本的一个或多个ctb连同样本的语法被称作ctu)。视频译码器可根据树结构划分ctu,例如,四叉树-二叉树(qtbt)结构或多类型树
(mtt)结构。qtbt结构去除多个划分类型的概念,例如,hevc的cu、pu和tu之间的分离。qtbt结构包括两个层级,包括根据四叉树划分而划分的第一层级和根据二叉树划分而划分的第二层级。qtbt结构的根节点对应于ctu。二叉树的叶节点对应于译码单元(cu)。
91.在mtt划分结构中,可使用四叉树划分、二叉树划分和一种或多种类型的三叉树划分来划分块。三叉树划分是将块划分成三个子块的划分。在一些示例中,三叉树划分在不通过中心分割原始块的情况下将块分成三个子块。mtt中的划分类型(例如,四叉树、二叉树和三叉树)可以是对称的或不对称的。
92.当根据av1编解码器操作时,编码设备104和解码设备112可被配置为对块中的视频数据进行译码。在av1中,可以处理的最大译码块被称为超级块。在av1中,超级块可以是128
×
128亮度样本或64
×
64亮度样本。然而,在后继视频译码格式(例如,av2)中,超级块可由不同(例如,更大)亮度样本大小定义。在一些示例中,超级块是块四叉树的顶级。编码设备104可进一步将超级块划分成较小译码块。编码设备104可使用正方形或非正方形划分将超级块和其它译码块划分成较小块。非正方形块可以包括n/2
×
n、n
×
n/2、n/4
×
n和n
×
n/4个块。编码设备104和解码设备112可对译码块中的每一个执行单独预测和变换过程。
93.av1还定义视频数据的图块。图块是可以独立于其它图块进行译码的超级块的矩形阵列。即,编码设备104和解码设备112可分别编码和解码图块内的译码块而不使用来自其它图块的视频数据。然而,编码设备104和解码设备112可跨图块边界执行滤波。图块的大小可以是均匀的或不均匀的。基于图块的译码可以实现用于编码器和解码器实施方式的并行处理和/或多线程。
94.在一些示例中,编码设备104和解码设备112可使用单个qtbt或mtt结构来表示亮度和色度分量中的每一个,而在其它示例中,视频译码器可使用两个或更多个qtbt或mtt结构,例如用于亮度分量的一个qtbt或mtt结构和用于两个色度分量的另一个qtbt或mtt结构(或用于相应色度分量的两个qtbt和/或mtt结构)。
95.编码设备104和解码设备112可被配置为使用每hevc的四叉树划分、qtbt划分、mtt划分或其它划分结构。
96.在一些示例中,为图片的一个或多个切片指派切片类型。切片类型包括i切片、p切片和b切片。i切片(帧内,可独立解码)是仅通过帧内预测译码的图片的切片,且因此可独立解码,因为i切片仅需要帧内的数据来预测切片的任何预测单元或预测块。p切片(单向预测帧)是可用帧内预测和用单向帧间预测译码的图片的切片。p切片内的每个预测单元或预测块或者利用帧内预测或者利用帧间预测进行译码。当帧间预测应用时,仅通过一个参考图片来预测预测单元或预测块,因此参考样本仅来自一帧的一个参考区域。b切片(双向预测帧)是可用帧内预测和用帧间预测(例如,双向预测或单向预测)译码的图片的切片。b切片的预测单元或预测块可从两个参考图片双向预测,其中每个图片贡献一个参考区域,且对两个参考区域的样本集进行加权(例如,以相等权重或以不同权重)以产生经双向预测块的预测信号。如上文所解释,独立译码一个图片的切片。在一些情况下,图片可仅被译码为一个切片。
97.如上所述,图片内预测利用图片内的空间相邻样本之间的相关性。存在多个帧内预测模式(也称为“帧内模式”)。在一些示例中,亮度块的帧内预测包括35个模式,包括平面模式、dc模式和33个角度模式(例如,对角线帧内预测模式和邻近于对角线帧内预测模式的
角度模式)。帧内预测的35个模式如下表1所示进行索引。在其它示例中,可定义包括可能尚未由33个角度模式表示的预测角度的更多帧内模式。在其它示例中,与角度模式相关联的预测角度可不同于hevc中所使用的预测角度。
98.表3.内预测模式和相关名称的规范
99.帧内预测模式相关名称0intra_planar1intra_dc2..34intra_angular2..intra_angular34
100.图片间预测使用图片之间的时间相关性以便导出图像样本块的经运动补偿预测。使用平移运动模型,由运动向量(δx,δy)(δx指定参考块相对于当前块的位置的水平位移以及δy指定参考块相对于当前块的位置的垂直位移)指示先前经解码的图片(参考图片)中块的位置。在一些情况下,运动向量(δx,δy)可以是整数样本精度(也称为整数精度),在这种情况下,运动向量指向参考帧的整数像素网格(或整数像素采样网格),在一些情况下,运动向量(δx,δy)可以是分数样本精度(也称为分数像素精度或非整数精度),以更精确地捕获基础对象的移动,而不限制于参考帧的整数像素网格。运动向量的精度可以由运动向量的量化水平表示,例如,量化水平可以是整数精度(例如,1像素)或分数像素精度(例如,1/4像素、1/2像素或其它亚像素值)。将插值应用于参考图片,以在对应的运动向量具有分数样本精度时导出预测信号。例如,可对整数位置处可用的样本进行过滤(例如,使用一个或多个插值滤波器)以估计分数位置处的值。先前经解码的参考图片由参考索引(refidx)指示到参考图片列表。运动向量和参考索引可以被称为运动参数。可以执行两种图片间预测,包括单向预测和双向预测。
101.对于使用双向预测的帧间预测(也称为双向帧间预测),使用两个运动参数集合(δx0,y0,refidx0和δx1,y1,refidx1)来生成两个经运动补偿预测(来自相同的参考图片或者可能来自不同的参考图片)。例如,对于双向预测,每个预测块使用两个经运动补偿的预测信号,且生成b预测单元。将两个经运动补偿预测组合以得到最终的经运动补偿预测。例如,可以通过平均来组合两个经运动补偿预测。在另一示例中,可以使用加权预测,在这种情况下,可以将不同的权重应用于每个经运动补偿预测。可以在双向预测中使用的参考图片被存储在两个单独的列表中,表示为列表0和列表1。可以使用运动估计过程在编码器处导出运动参数。
102.对于使用单向预测的帧间预测(也称为单向帧间预测),使用一个运动参数集合(δx0,y0,refidx0)来从参考图片生成经运动补偿预测。例如,对于单向预测,每个预测块使用至多一个经运动补偿预测信号,并生成p个预测单元。
103.pu可包括与预测过程相关的数据(例如,运动参数或其它合适的数据)。例如,当使用帧内预测编码pu时,pu可包括描述pu的帧内预测模式的数据。作为另一示例,当使用帧间预测编码pu时,pu可包括定义pu的运动向量的数据。定义pu的运动向量的数据可描述(例如)运动向量的水平分量(δx)、运动向量的垂直分量(δy)、运动向量的分辨率(例如,整数精度、四分之一像素精度或八分之一像素精度)、运动向量所指向的参考图片、参考索引、运动向量的参考图片列表(例如,列表0、列表1或列表c)或其任何组合。
104.av1包括用于编码和对视频数据进行解码的译码块的两种通用技术。这两种通用
技术是内预测(例如,帧内预测或空间预测)和间预测(例如,帧间预测或时间预测)。在av1的情境下,当使用帧内预测模式预测视频数据的当前帧的块时,编码设备104和解码设备112不使用来自视频数据的其它帧的视频数据。对于大多数帧内预测模式,视频编码设备104基于当前块中的样本值与从同一帧中的参考样本生成的预测值之间的差来编码当前帧的块。视频编码设备104基于帧内预测模式确定从参考样本生成的预测值。
105.在使用帧内和/或帧间预测执行预测之后,编码设备104可执行变换和量化。例如,在预测之后,编码器引擎106可计算对应于pu的残差值。残差值可包括正被译码的当前像素块(pu)与用于预测当前块的预测块(例如,当前块的经预测版本)之间的像素差值。例如,在生成预测块(例如,发出帧间预测或帧内预测)之后,编码器引擎106可通过从当前块减去由预测单元产生的预测块来生成残差块。残差块包括像素差值的集合,所述集合量化当前块的像素值与预测块的像素值之间的差。在一些示例中,残差块可以二维块格式(例如,像素值的二维矩阵或阵列)表示。在这种示例中,残差块是像素值的二维表示。
106.使用块变换来变换在执行预测之后可能剩余的任何残差数据,所述块变换可基于离散余弦变换、离散正弦变换、整数变换、小波变换、其它合适的变换函数或其任何组合。在一些情况下,可将一个或多个块变换(例如,大小32x32、16x16、8x8、4x4或其它合适大小)应用于每个cu中的残差数据。在一些实施例中,tu可用于由编码器引擎106实施的变换和量化过程。具有一个或多个pu的给定cu也可包括一个或多个tu。如下文进一步详细描述,可使用块变换将残差值变换为变换系数,且可使用tu进行量化和扫描以产生串行化变换系数以用于熵译码。
107.在使用cu的pu的帧内预测或帧间预测译码之后的一些实施例中,编码器引擎106可计算cu的tu的残差数据。pu可包括空间域(或像素域)中的像素数据。tu可包括在应用块变换之后变换域中的系数。如先前所述,残差数据可对应于未编码图片的像素与对应于pu的预测值之间的像素差值。编码器引擎106可形成包括cu的残差数据的tu,且可变换tu以产生cu的变换系数。
108.编码器引擎106可执行对变换系数的量化。量化通过量化变换系数以减少用于表示系数的数据量来提供进一步的压缩。例如,量化可减小与系数中的一些或全部系数相关联的位深度。在一个示例中,具有n位值的系数可在量化期间下舍入到m位值,其中n大于m。
109.一旦执行量化,经译码视频位流就包括经量化变换系数、预测信息(例如,预测模式、运动向量、块向量等)、划分信息和任何其它合适数据,例如,其它语法数据。经译码视频位流的不同元素可由编码器引擎106熵编码。在一些示例中,编码器引擎106可利用预定义扫描顺序来扫描经量化变换系数,以产生可被熵编码的串行化向量。在一些示例中,编码器引擎106可执行自适应扫描。在扫描经量化变换系数以形成向量(例如,一维向量)之后,编码器引擎106可熵编码向量。例如,编码器引擎106可使用上下文自适应可变长度译码、上下文自适应二进制算术译码、基于语法的上下文自适应二进制算术译码、概率区间划分熵译码或另一合适的熵编码技术。
110.编码设备104的输出110可通过通信链路120将构成经编码视频位流数据的nal单元发送到接收设备的解码设备112。解码设备112的输入114可以接收nal单元。通信链路120可以包括由无线网络、有线网络或有线和无线网络的组合提供的信道。无线网络可以包括任何无线接口或无线接口的组合,并且可以包括任何合适的无线网络(例如,互联网或其它
广域网、基于分组的网络、wifi
tm
、射频(rf)、uwb、wifi-direct、蜂窝、长期演进(lte)、wimax
tm
等)。有线网络可以包括任何有线接口(例如,光纤、以太网、电力线以太网、同轴电缆以太网、数字信号线(dsl)等)。有线和/或无线网络可以使用各种设备来实现,例如基站、路由器、接入点、桥接器、网关、交换机等。可根据通信标准(例如,无线通信协议)调制经编码视频位流数据,且将其传输到接收设备。
111.在一些示例中,编码设备104可将经编码视频位流数据存储在存储装置108中。输出110可从编码器引擎106或从存储装置108检索经编码视频位流数据。存储装置108可以包括各种分布式或本地访问的数据存储介质中的任何一种。例如,存储装置108可以包括硬盘驱动器、存储盘、闪存、易失性或非易失性存储器、或用于存储经编码视频数据的任何其它合适的数字存储介质。存储装置108还可以包括用于存储用于帧间预测的参考图片的经解码图片缓冲器(dpb)。在另一示例中,存储装置108可对应于可存储由源设备生成的经编码视频的文件服务器或另一中间存储装置。在这种情况下,包括解码设备112的接收设备可经由流传输或下载从存储装置存取所存储的视频数据。文件服务器可以是能够存储经编码视频数据且将经编码视频数据传送到接收设备的任何类型的服务器。示例文件服务器包括网络服务器(例如,用于网站)、ftp服务器、网络附接存储(nas)设备或本地磁盘驱动器。接收设备可通过任何标准数据连接(包括互联网连接)存取经编码视频数据,且可以包括适合于存取存储在文件服务器上的经编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)或两者的组合。来自存储装置108的经编码视频数据的传输可以是流传输、下载传输或其组合。
112.解码设备112的输入114接收经编码视频位流数据,且可将视频位流数据提供到解码器引擎116,或提供到存储装置118以供解码器引擎116稍后使用。例如,存储装置118可以包括用于存储用于帧间预测的参考图片的dpb。包括解码设备112的接收设备可经由存储装置108接收待解码的经编码视频数据。可根据通信标准(例如,无线通信协议)调制经编码视频数据,且将其传送到接收设备。用于传送经编码视频数据的通信介质可以包括任何无线或有线通信介质,例如,射频(rf)频谱或一个或多个物理传输线路。通信介质可形成基于分组的网络(例如,局域网、广域网或例如互联网的全球网络)的部分。通信介质可以包括路由器、交换机、基站或可用于促进从源设备到接收设备的通信的任何其它设备。
113.解码器引擎116可通过熵解码(例如,使用熵解码器)并提取构成经编码视频数据的一个或多个经译码视频序列的元素来解码经编码视频位流数据。解码器引擎116可对经编码视频位流数据重新缩放且执行逆变换。将残差数据传递到解码器引擎116的预测级。解码器引擎116预测像素块(例如,pu)。在一些示例中,将预测添加到逆变换的输出(残差数据)。
114.解码设备112可将经解码视频输出到视频目的地设备122,其可包括用于将经解码视频数据显示给内容的消费者的显示器或其它输出设备。在一些方面,视频目的地设备122可以是包括解码设备112的接收设备的部分。在一些方面,视频目的地设备122可以是除接收设备外的单独设备的部分。
115.在一些示例中,视频编码设备104和/或视频解码设备112可分别与音频编码设备和音频解码设备集成。视频编码设备104和/或视频解码设备112还可包括实施上文所描述的译码技术所必需的其它硬件或软件,例如一个或多个微处理器、数字信号处理器(dsp)、
专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件、固件或其任何组合。视频编码设备104和视频解码设备112可集成为相应设备中的组合编码器/解码器(编解码器)的部分。下文参考图8描述编码设备104的特定细节的示例。下文参考图9描述解码设备112的特定细节的示例。
116.图1所示的示例系统是可以本文中使用的一个说明性示例。用于使用本文所描述的技术来对视频数据进行处理的技术可由任何数字视频编码和/或解码设备执行。尽管一般来说本公开内容的技术由视频编码设备或视频解码设备执行,但所述技术还可由通常称为“编解码器”的组合视频编码器-解码器执行。此外,本公开内容的技术还可由视频预处理器执行。源设备和接收设备仅为其中源设备生成经译码视频数据以供传送到接收设备的这种译码设备的示例。在一些示例中,源设备和接收设备可以基本上对称的方式操作,使得设备中的每一个包括视频编码和解码组件。因此,示例系统可支持视频设备之间的单向或双向视频传输,例如,用于视频流、视频回放、视频广播或视频电话。
117.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扩展来译码一个或多个增强层。
118.通常,层包括vcl nal单元集合和对应的非vcl nal单元集合。nal单元被分配了特定的层id值。在层可以依赖于较低层的意义上,层可以是分层的。层集合指代位流内表示的自包含的层的集合,意味着对于解码,层集合内的层可在解码过程中依赖于层集合中的其它层,但不依赖于任何其它层。因此,层集合中的层可形成可表示视频内容的独立位流。可通过子位流提取过程的操作从另一位流获得层集合中的一组层。层集合可对应于当解码器想要根据某些参数操作时将要不解码的一组层。
119.如前所述,hevc位流包括一组nal单元,包括vcl nal单元和非vcl nal单元。vcl nal单元包括形成经译码视频位流的经译码图片数据。例如,形成经译码视频位流的位序列存在于vcl nal单元中。非vcl nal单元可包含具有与经编码视频位流有关的高级信息以及其它信息的参数集。例如,参数集可包括视频参数集(vps)、序列参数集(sps)及图片参数集(pps)。参数集的目标的示例包括比特率效率、误差弹性及提供系统层接口。每个切片参考单个活动pps、sps和vps,以存取解码设备112可用于解码切片的信息。可针对每个参数集译码包括vps id、sps id和pps id的标识符(id)。sps包括sps id和vps id。pps包括pps id和sps id。每个切片报头包括pps id。使用id,可以为给定切片标识活动参数集。
120.pps包括应用于给定图片中的所有切片的信息。在一些示例中,图片中的所有切片
都指代相同的pps。不同图片中的切片也可指代同一pps。sps包括应用于同一经译码视频序列(cvs)或位流中的所有图片的信息。如先前所描述的,经译码视频序列是一系列存取单元(au),其以基础层中的随机存取点图片(例如,瞬时解码参考(idr)图片或断链存取(bla)图片,或其它适当的随机存取点图片)开始且具有某些性质(上文所描述)直到且不包括在基础层中具有随机存取点图片且具有某些性质(或位流的末尾)的下一au。sps中的信息可不在经译码视频序列内的图片之间改变。经译码视频序列中的图片可使用相同sps。vps包括应用于经译码视频序列或位流内的所有层的信息。vps包括具有应用于整个经译码视频序列的语法元素的语法结构。在一些实施例中,vps、sps或pps可与经编码位流一起在带内传送。在一些实施例中,vps、sps或pps可在与包含经译码视频数据的nal单元分开的传输中在带外传送。
121.本公开内容通常可以提及“发信号通知”某些信息,例如语法元素。术语“发信号通知”通常可以指代语法元素和/或用于解码经编码的视频数据的其它数据的值的通信。例如,视频编码设备104可以在位流中发信号通知语法元素的值。通常,发信号通知是指在位流中生成值。如上所述,视频源102可以基本上实时地或非实时地(诸如在将语法元素存储到存储装置108以供稍后由视频目的地设备122提取时可能发生)将位流传输到视频目的地设备122。
122.视频位流还可包括补充增强信息(sei)消息。例如,sei nal单元可以是视频位流的部分。在一些情况下,sei消息可包含解码过程不需要的信息。例如,sei消息中的信息对于解码器解码位流的视频图片来说可能不是必需的,但解码器可使用该信息来改进图片的显示或处理(例如,经解码输出)。sei消息中的信息可以是嵌入的元数据。在一个说明性示例中,sei消息中的信息可由解码器侧实体使用以改进内容的可视性。在一些情况下,某些应用标准可以要求在位流中存在这样的sei消息,使得可以将质量的改进带给符合应用标准的所有设备(例如,除了许多其它示例之外,用于帧兼容平面-立体3dtv视频格式的帧打包sei消息的运送,其中针对视频的每一帧运送sei消息,恢复点sei消息的处理,dvb中的平移-扫描矩形sei消息的使用)。
123.如上所述,编码设备104可熵编码经量化变换系数和/或语法元素以生成位流。解码设备112可接收并熵解码位流。在一些示例中,编码设备104和/或解码设备112可利用使用rice参数的rice译码来执行熵译码(例如,熵编码和/或熵解码)。根据当前vvc标准,可以基于用于计算相邻变换系数的总和的模板和将不同的可能总和值映射到特定rice参数值的查找表来导出用于常规残差译码(rrc)的rice参数。在该方法中,从模板计算的总和用作rice参数值的查找表的索引。在图2中示出了示例模板,如下所述。在下面的表1中提供了rice参数值的查找表的示例。
124.图2是示出用于rice参数推导的模板的示例的图。在图2的示例中,模板被示出为应用于8
×
8样本网格上,但是也可以利用更多或更少数量的样本(以及更大或更小的网格)。在一些情况下,8
×
8网格可表示从视频数据的较大帧或切片获得的变换块或变换单元(tu)。如所示的,为了确定当前变换系数的rice参数(例如,用实心黑色填充加阴影),视频译码器可首先利用模板来识别一个或多个相邻变换系数(例如,用对角线填充稍加阴影)。如图2所示,rice参数推导模板识别给定当前系数的五个相邻系数,尽管也可以利用更多或更少数量的相邻系数和/或相邻系数的不同模式和布置。
125.视频译码器可随后确定基于模板识别的相邻变换系数的绝对值的总和(例如,locsumabs)。在一些示例中,可以将所得的相邻变换系数的总和作为索引直接提供到表1的查找表中,以便由此获得当前系数的rice参数值。在一个示例中,locsumabs可在作为索引提供到表1中之前经归一化(例如,经由减法和限幅操作),如下:
126.locsumabs=clip3(0,31,locsumabs-baselevel*5)。
127.如前所述,可以使用locsumabs的值作为查找表的索引来导出rice参数。在下表1中提供了在locsumabs值和rice参数值(例如,criceparam)之间进行映射的查找表的示例:
128.locsumabs0123456789101112131415criceparam0000000111111122locsumabs16171819202122232425262728293031criceparam2222222222223333
129.表1.以locsumabs值为索引的示例rice参数查找表
130.如表1所示,在一些示例中,rice参数的值范围可以限制在0到3之间,包括0和3。因为原始locsumabs值被归一化(例如,经由上文提供的示例归一化操作)为在0与31之间,所以表1可用于导出可由归一化操作输出的locsumabs的所有可能值的rice参数值。
131.vvc规范第9.3.3.2节给出的rice参数推导过程再现如下以供参考:
132.9.3.3.2 abs_remainder[ ]和dec_abs_level[ ]的rice参数推导过程
[0133]
该过程的输入为基础层级baselevel、色彩分量索引cidx、指定相对于当前图片的左上样本的当前变换块的左上样本的亮度位置(x0,y0)、当前系数扫描位置(xc,yc)、变换块宽度的二进制对数log2tbwidth及变换块高度的二进制对数log2tbheight。
[0134]
该过程的输出是rice参数criceparam。
[0135]
给定具有分量索引cidx和左上亮度位置(x0,y0)的变换块的阵列abslevel[x][y],如由以下伪代码过程指定的导出的变量locsumabs:
[0136][0137]
给定变量locsumabs,如表128中所指定的导出rice参数criceparam。
[0138]
当baselevel等于0时,如下导出变量zeropos[n]:
[0139]
zeropos[n]=(qstate《2?1:2)《《criceparam
[0140]
表128-基于locsumabs的criceparam规范
[0141]
locsumabs0123456789101112131415criceparam0000000111111122locsumabs16171819202122232425262728293031criceparam2222222222223333
[0142]
在一些情况下,基于高位深度视频数据在vvc 9.3.3.2的未经修改的rice参数推导过程下可能另外经历性能和/或效率限制的观察,可修改vvc 9.3.3.2的rice参数推导(例如)以用于vvc的高位深度扩展。因此,经修改的rice参数推导可用于解决视频的各种输入位深度中的这些限制中的一个或多个,且因此可改进译码设计的压缩效率。例如,在一些示例中,经修改rice参数推导可以包括缩放或归一化locsumabs,以处理变换系数的增加的位深度和/或增加的动态范围。与先前所述的类似,可以在使用locsumabs导出rice参数之前进行缩放和归一化。在一些示例中,可以使用vvc规范的经修改的eq.1517。
[0143]
下面提供用于rice参数推导的经修改的eq.1517的第一个示例,注释以指示相对于vvc 9.3.3.2的修改。所应用的缩放因子的量可取决于输入位深度、预定义操作位深度(例如,10)、变换系数的局部活动和/或在位流中发信号通知的块大小或语法元素。然后,可以将locsumabs限幅到某个范围,例如,使用vvc中的将locsumabs限幅到0和31之间的现有限幅机制。经归一化和限幅的locsumabs随后可以用于使用预定义的查找表(例如,vvc中的当前查找表,表128(其与上面的表1相同))来导出rice参数值。然后可以通过添加偏移来修改来自查找表的rice参数值,以扩展rice参数范围的动态范围。以下是使用上述示例技术的vvc规范的第9.3.3.2节的示例修改(其中添加以带下划线的文本(“添加”)示出):
[0144]
9.3.3.2 abs_remainder[ ]和dec_abs_level[ ]的rice参数推导过程
[0145]
该过程的输入为基础层级baselevel、色彩分量索引cidx、指定相对于当前图片的左上样本的当前变换块的左上样本的亮度位置(x0,y0)、当前系数扫描位置(xc,yc)、变换块宽度的二进制对数log2tbwidth及变换块高度的二进制对数log2tbheight。
[0146]
该过程的输出是rice参数criceparam。
[0147]
给定具有分量索引cidx和左上亮度位置(x0,y0)的变换块的阵列abslevel[x][y],如由以下伪代码过程指定的导出变量locsumabs:
[0148]
[0149][0150]
给定变量locsumabs,如表128中所指定的导出rice参数criceparam。
[0151]
于是将criceparam细化为:
[0152][0153]
在一些示例中,附加变量a、b和c可以定义如下:变量a可以是整数值,例如a=4或2的某个其它幂;变量b可以指定操作位深度,例如b=10;并且变量c可以被设置为等于上面在经修改的eq.1517中引入的计算值shift,或者从计算的shift值导出。
[0154]
下面提供了用于rice参数推导的经修改的eq.1517的第二个示例,再次注释以指示相对于vvc 9.3.3.2进行的修改。在这个经修改的eq.1517的第二示例中,仅当locsumabs大于或等于阈值t时,可以缩放和/或归一化locsumabs。在这样的示例中,由vvc 9.3.3.2给出的rice参数推导过程可以相应地被修改如下(其中添加以下划线文本(“添加”)示出):
[0155]
9.3.3.2 abs_remainder[ ]和dec_abs_level[]的rice参数推导过程
[0156]
该过程的输入为基础层级baselevel、色彩分量索引cidx、指定相对于当前图片的左上样本的当前变换块的左上样本的亮度位置(x0,y0)、当前系数扫描位置(xc,yc)、变换块宽度的二进制对数log2tbwidth及变换块高度的二进制对数log2tbheight。
[0157]
该过程的输出是rice参数criceparam。
[0158]
给定具有分量索引cidx和左上亮度位置(x0,y0)的变换块的阵列abslevel[x][y],如由以下伪代码过程指定的导出变量locsumabs:
[0159][0160]
给定变量locsumabs,如表128中所指定的导出rice参数criceparam。
[0161]
于是将criceparam细化为:
[0162]
[0163]
在一些示例中,阈值t是预定义阈值。在一个说明性示例中,阈值t可以被设置为等于32。在一些示例中,可通过位流发信号通知变量a、b和c中的一个或多个的值。另外或可替换地,变量a、b和c中的一个或多个的值可取决于以下中的一个或多个而设定或从以下中的一个或多个导出:位深度、局部统计(例如,当前块内的变换系数值的最小值/最大值或平均值)、经解码变换或块大小和/或位流中发信号通知的语法元素。在一些情况下,紧接在上面的eq.1517的第二修改中使用的变量a、b和c中的一个或多个的值可以与先前讨论的eq.1517的第一修改中使用的变量a、b和c中的一个或多个的相应值相同或相似。
[0164]
在一些示例中,在vvc 9.3.3.2(例如,未经修改的eq.1517)和上述各种修改示例(例如,eq.1517的第一和第二修改)下用于rice参数推导的基于模板的方法可以利用以下事实:在从块的末尾开始并朝向其dc前进的反向穿行中进行解码。基于针对每个块或tu执行的反向穿行解码,这些先前描述的rice参数推导方法可利用在当前tu中较早解码的一个或多个变换系数。
[0165]
在vvc开发中做出了某些统计假设,表明非零变换系数(例如,上下文编码的)可用于使用golomb-rice方法提供精确的rice参数推导。在vvc开发期间的进一步统计假设表明,在解码器开始变换系数解码之前,该非零变换系数将可用于解码器。这种假设似乎适用于vvc开发中使用的通用测试条件(ctc)译码。
[0166]
然而,在一些情况下(例如,在高位深度译码的情况下),观察到对于具有使用golomb-rice方法译码的变换系数的高百分比的小尺寸tu(例如,具有4
×
4的尺寸),不能对tu解码刚开始时出现的变换系数进行精确的rice推导。具体地,对于在tu解码开始时出现的那些系数,可用于执行基于模板的rice参数推导的非零相邻变换系数的数量可能不足(回想基于模板的rice参数推导使用某个预定数量的相邻变换系数,例如五个)。
[0167]
如上所述,本文描述了用于改进视频译码中的参数推导(例如,rice参数推导)的系统和技术。所述系统和技术可由编码设备104、解码设备112、由编码设备104和解码设备112两者和/或由其它设备执行。在一些情况下,当可用的相邻变换系数的数量不足时,编码设备104和/或解码设备112可使用一个或多个历史rice参数值进行rice参数推导。例如,相邻变换系数的数量可小于充分利用基于模板的查找表方法(例如,在vvc和/或其它视频译码标准中使用的方法)来推导rice参数所需的预定义量。本文中所描述的系统和技术可提供在执行基于模板和查找表的rice推导时,用于代替不可用相邻变换系数的历史rice参数值,而不是忽略不可用相邻变换系数或将其设置为等于零。在一些示例中,本文中所描述的系统和技术可用于高位深度译码的场景中,其中可更常常经受到基于查找表的现有rice参数推导技术的缺点。
[0168]
图3是示出不同示例情境的图,其中模板支持区域(例如,由与当前系数302相关联的至少五个相邻变换系数312、314、315、316和318组成)跨越经译码变换块或tu外部且因此导致低准确度rice参数推导。如图3所示,8
×
8样本网格300被示出为覆盖有三个不同变换块320、330和340(例如,tu)的边界。所有三个变换块320、330和340都包含当前系数302,其表示当前正在执行变换块(例如,tu)解码和/或rice参数推导的样本或系数。然而,当前系数302在变换块320、330和340内的位置使得由rice推导模板定义的五个相邻变换系数中的一个或多个位于变换块(例如,tu)外部(例如,超出其边界)。
[0169]
如先前所论述,可在变换块(或tu)内的组成样本上的反向穿行中执行解码,例如
以变换块的右下样本开始。例如,变换块320的右下样本是当前系数302;因此,当前系数302是针对变换块320解码的第一样本。在变换块330和340的情况下,虽然当前系数302不是右下样本,但是当前系数302保持在要在反向穿行中解码的前几个样本之中。一般来说,可以观察到,对于位于变换块的底部边缘和/或右边缘附近的样本,rice推导模板的几何形状可能不完全包含在变换块(例如,tu)的边界或边沿内。因此,在一些情况下,要在反向穿行中解码的第一样本不能够完全利用上文所描述的rice参数推导的基于模板的方法。
[0170]
在一些示例中,出于确定(例如,计算、运算等)绝对值总和locsumabs的目的,可以将位于模板支持区域外部或当前变换块(例如,当前tu)外部的相邻变换系数视为具有零值。例如,相邻变换系数312、314、315和318全都位于变换块340(例如,tu)外部,其中仅相邻变换系数316位于变换块340内部。在该示例中,仅基于变换系数316继续进行rice参数推导可导致较低准确度的rice参数推导。对于一些变换块(例如,变换块320),当由模板定义的所有相邻变换系数都位于变换块外部时,可能无法使用vvc和其它视频译码标准中指定的模板和查找表方法来推导rice参数。
[0171]
因此,本文所述的系统和技术可用于至少部分地通过确定(例如,计算、运算等)和维护最佳rice参数的一个或多个历史值来提高rice参数推导的准确性。在一些情况下,可以从较早解码或编码的变换系数(例如,在反向穿行中的某个较早时间解码或编码的当前变换块外部的变换系数)确定最佳rice参数的历史值。在一些示例中,最佳rice参数的一个或多个历史值可用作从一个或多个先前经编码的变换块确定的历史参数值,其中历史参数值用于确定当前样本的参数(例如,rice参数)。在一些示例中,历史参数值可以包括历史rice参数值和历史变换系数值中的一个或多个,其中历史变换系数值是从一个或多个先前经编码的变换块确定的。在一些情况下,历史参数值可以是历史变换系数值。在一些示例中,历史参数值可以是偏移值,其可以从外部导出。当历史参数值为偏移值时,可至少部分地基于从先前经编码的变换块确定的一个或多个变换系数值来确定偏移值,和/或偏移值可以是预定偏移值。
[0172]
在一些示例中,当由rice推导模板给出的一个或多个相邻变换系数位于当前变换块外部时,一个或多个历史rice参数值可用于确定(例如,计算、运算等)绝对值总和locsumabs。例如,不是将不可用的相邻变换系数视为具有零值,而是可以为不可用的相邻变换系数指派历史rice参数值。在图3的上下文和变换块340的示例中,不可用的相邻变换系数是312、314、315和318。这样,在变换块340的示例中,可以为所有四个不可用的相邻变换系数312、314、315和318指派历史rice参数值。在一些情况下,可以将相同的历史rice参数值指派给所有不可用的相邻变换系数,但是也可以基于不可用的相邻变换系数中的每一个所特有的信息和特性来修改或调整历史rice参数值。
[0173]
在一些示例中,可使用历史rice参数值与可用相邻变换系数的(多个)值的组合来计算绝对值总和locsumabs。这可以被称为部分不可用的情况,其中由rice推导模板给出的一些但不是全部相邻变换系数位于当前变换块(例如,tu)外部。在变换块340的上下文中,绝对值总和locsumabs因此可以被计算为以下项之和:可用变换系数316的绝对值和针对四个不可用变换系数312、314、315、318获得或以其它方式确定的四个历史rice参数值。如上所述,四个历史rice参数值可以是相同的,或者可以具体地针对不可用变换系数中的给定变换系数来确定。
[0174]
绝对值总和locsumabs可以另外地或可替换地仅使用历史rice参数值来计算。这可以被称为完全不可用的情况,其中由rice推导模板给出的所有相邻变换系数都位于当前变换块外部。例如,参考变换块320,可以看出,所有五个相邻变换系数312、314、315、316、318相对于变换块320的当前系数302都不可用。因此,在这种完全不可用的情况下,绝对值总和locsumabs因此可以被计算为针对五个不可用变换系数获得或以其它方式确定的五个历史rice参数值的总和。如前所述,五个历史rice参数值可以是相同的,或者可以具体地针对不可用变换系数中的给定变换系数来确定。
[0175]
在一些示例中,本文中所公开的系统和技术(例如,由编码设备104和/或解码设备112实施)可基于用于系数的基于模板的rice推导方法的预期(或估计)准确度对变换块(例如,tu)内的经解码系数的空间位置进行分类。图4中示出了基于基于模板的rice推导的预期准确度的分类的一个说明性示例。在一些情况下,图4中所示的8
×
8样本网格可与上文关于图3所论述的8
×
8样本网格相同或类似。类似地,五个相邻变换系数相对于当前系数的相对位置在图4中可以与在图3中相同,例如,两个图都使用相同的示例rice推导模板。
[0176]
基于模板的rice推导的预期准确度的分类可以至少部分地基于rice推导模板以一致的方式(例如,每次执行rice参数推导时使用相同的模板)识别相邻系数相对于当前系数位置的位置的观察。因此,给定当前系数在变换块(例如,tu)内的位置和rice推导模板的几何形状,可以预先确定将落在tu边界外部的相邻变换系数的数量。然后可以使用该数量的不可用相邻变换系数来预测或估计将由基于模板的方法产生的rice参数推导的准确度。在一些示例中,不可用相邻变换系数的数量和/或rice推导的预期准确度可以另外确定如何使用历史rice参数值(例如,当前公开的系统和技术是应用于部分不可用的情况还是完全不可用的情况)。
[0177]
在图4的示例中,示出了8
×
8样本网格400。样本网格400可以是变换单元(tu)或经译码块,并且被分为四个非重叠区域410、420、430和440。如图所示,可以根据rice参数推导的预期准确度为每个区域指派不同的分类(例如,c1、c2、c3、c4)。换言之,rice参数推导的预期准确度对于每个区域内的所有样本可以是相同的,但对于位于不同区域中的样本不一定是相同的。
[0178]
具有位于第一区域410内的空间位置的样本(和相关联的变换系数)被表示为类别c1。具有c1分类的样本可以是预期使用基于模板的方法具有准确的rice参数推导(例如,大于准确度阈值)的那些样本。根据此示例,c1系数的rice参数推导可(例如,由视频编码设备104和/或视频解码设备112)如下确定:
[0179]
riceparam=template_based_method()
[0180]
其中可以提供template_based_method()作为vvc条款9.3.3.2(上文再现)中定义的基于模板的rice参数推导。在一些示例中,template_based_method()可以使用对vvc 9.3.3.2的可能修改中的一个或多个来实现,也如上所述。
[0181]
具有位于第四区域440内的空间位置的样本(和相关联的变换系数)被表示为类别c4。具有c4分类的样本可以是预期使用本文先前描述的一种或多种基于模板的方法不具有准确的rice参数推导(例如,小于准确度阈值或零准确度)的那些样本。在一个说明性示例中,视频编码设备104和/或视频解码设备112可替代地使用基于历史的推导方法来获得准确rice参数推导(例如,通过使用从先前解码的系数的历史推导的最佳rice参数的一个或
多个历史估计)。根据此示例,视频编码设备104和/或视频解码设备112可如下确定c4系数的rice参数推导:
[0182]
riceparam=history_based_method()
[0183]
具有位于第二区域420内的空间位置的样本(和相关联的变换系数)被表示为类别c2。具有位于第三区域内的空间位置的样本和变换系数被表示为类别c3。具有c2或c3分类的样本可以是预期使用本文先前描述的一种或多种基于模板的方法或其修改具有降低的rice参数推导准确度(例如,小于准确度阈值)的那些样本。在一个说明性示例中,可通过组合基于模板的方法(例如,template_based_method())与基于历史的推导方法(例如,history_based_method())来改进针对c2和c3系数的rice参数推导的准确度。根据此示例,视频编码设备104和/或视频解码设备112可如下导出c2和/或c3系数的rice参数:
[0184]
riceparam=function(template_based_method(),history_based_method())
[0185]
在一些示例中,分类可以基于扫描顺序在相反方向上的进行,例如:将n个第一解码系数指派给c4并且将剩余系数分类为c1(回想一下,反向扫描顺序从右下样本开始,右下样本在此将位于c4中)。
[0186]
在一些情况下,视频编码设备104和/或视频解码设备112可使用上文所描述的所定义类别的一个或多个子集。例如,在一些情况下,只有c4类解码系数可以使用历史rice信息,因为基于模板的方法否则没有足够数量的相邻系数值来导出位于c4区域440内的当前系数的rice参数。c1类别不使用历史rice信息来对位于c1区域410内的当前系数执行rice参数推导-这是因为对于具有c1的每个可能位置,由rice模板定义的相邻系数都将仍然包含在整个tu 400内。因此,在一些示例中,可扩展对c1类别的支持以并入c2区域420、c3区域430和/或整个tu 400中的一个或多个,其中每个情况下都不使用历史信息进行rice推导。
[0187]
利用本文中所描述的技术,视频编码设备104和/或视频解码设备112可将不同技术应用于本地和历史信息的聚合,以导出rice参数,例如ricepar。在一些示例中,视频编码设备104和/或视频解码设备112可基于从相邻变换系数获得的rice信息(例如,ricepartemplate,根据基于模板的方法)和历史rice参数信息(例如,riceparhistory,根据基于历史的方法)确定(例如,计算、运算等)加权平均值。例如,视频编码设备104和/或视频解码设备112可使用以下等式基于从相邻变换系数获得的rice信息和历史rice参数信息来确定加权平均值:
[0188]
ricepar=(w2*ricepartemplate w1*riceparhistory)/(w1 w2)
[0189]
在一些情况下,加权平均值的权重w1和w2中的一个或多个可以取决于当前经解码tu内的相应系数的空间位置。在一些示例中,加权平均值可以是指数加权移动平均值。
[0190]
图5是示出基于先前经解码的tu来确定历史rice参数信息和/或历史rice参数值的示例的图。在网格500中示出了一系列tu。右下tu 510是当前解码的tu(例如,其中历史rice参数信息可以用于导出当前解码的tu的各个样本的rice参数)。剩余的tu 551-557是先前经解码的tu,从中可以计算历史rice参数信息。先前经解码的tu 551-557用解码每个tu的时间步长来标记,例如,tu 551在一个步长之前被解码,tu 552在两个步长之前被解码,tu 553在三个步长之前被解码,等等。
[0191]
对于先前经解码tu 551-557中的每个给定tu,将针对给定tu解码的第一非零变换系数累加到历史计数器520。在一些示例中,累加到历史计数器520的值可以是第一非零变
换系数本身的量值、第一非零变换系数的解码rice参数的量值和/或上述系数或rice参数的二进制码长(例如,以比特为单位)。如图所示,历史计数器520可以将权重w应用于每个累加值r,例如,以便实现加权和。根据加权和,可以计算历史rice参数值的加权平均值和/或指数加权移动平均值。在一些情况下,可以将权重w设置为等于1,在这种情况下,历史计数器520实现求总和,并且可以计算历史rice参数值的算术平均值。
[0192]
在一些示例中,视频编码设备104和/或视频解码设备112可基于用于获得值r的先前经解码的tu 551-557中的特定一个中的第一非零变换系数的空间位置来确定权重w。所述空间位置可对应于上文关于图4所论述的分类c1-c4中的一个。权重w可以是0和1之间的值和/或可以是诸如1、2、3等的整数值。
[0193]
从每个先前经解码的tu 551-557的第一非零变换系数中提取的值r被用作对历史计数器520的更新,并且可以被称为历史更新或历史更新值。因此,由历史计数器520维护的累加历史更新计数器表示在整个系列的先前经解码的tu 551-557上的累加历史总和(如果w不等于1,则为加权总和)。在一些示例中,历史计数器520可在ctu和/或切片的开始处初始化为零或另一起始值,所述ctu和/或切片中的每一个可包含多个tu。
[0194]
基于历史计数器520处的累加历史值,可以在当前tu 510处使用最佳历史rice参数值来执行本文所述的基于历史的rice推导。例如,如前所述,算术平均值或指数加权移动平均值可以从历史计数器520获得(或基于从历史计数器520获得的一个或多个值计算)并用作历史rice参数值。在图5中,连接器箭头从历史计数器520的输出延伸到当前tu 510的底边缘和右边缘,因为来自历史计数器520的历史rice参数值可以用于导出位于当前tu 510的这两个区域中的任一个中的样本的rice参数。这是因为,在一些示例中,给定tu(例如,当前tu 510)的底边缘和右边缘包含最可能具有如由rice推导模板定义的一个或多个不可用相邻变换系数的各个样本位置(例如,参见图4的分类c2、c3和c4,其位于tu 400的底边缘和右边缘上)。
[0195]
下文提供可由视频编码设备104和/或视频解码设备112用于聚合局部相邻系数信息(例如,基于rice推导模板在当前tu内获得的)和历史rice参数信息(例如,经由历史计数器520从先前经解码的tu 551-557获得的)的技术的示例。如前所述,如果相邻变换系数的局部信息不可用或仅部分可用,则可以在基于模板的rice推导中使用历史rice参数值。下面示出了可以如何扩展基于模板的rice推导方法以还提供基于历史的rice推导的伪代码示例。对现有的基于模板的方法的添加以加下划线的文本(“添加”)示出。术语histcoef定义了估计的历史变换系数,例如,在过去累加或表示为历史rice参数值,例如histcoef=1《《histriceparam。项m和n是估计的权重值,例如,整数值,其在一些示例中可以分别等于2和3。
[0196][0197]
本文描述的系统和技术可以应用不同的技术来执行历史更新。在一些示例中,视频编码设备104和/或视频解码设备112可将用于rice推导的历史参数实施为计数器(例如,历史计数器520)。在一些情况下,视频编码设备104和/或视频解码设备112可利用用于(例如,先前经解码的tu 551到557的)经解码变换系数和/或其对应rice参数的移动平均值存储。在一些示例中,不是使用经解码变换系数或rice参数的实际值,视频编码设备104和/或视频解码设备112可确定(例如,计算、运算等)表达经解码变换系数或对应的rice参数所需的二进制码字的长度,诸如基于以下:
[0198]
codelength=floorlog2((uint32_t)decodedcoef);
[0199]
在一个示例中,对于由索引riceclass标识的每个类别,视频编码设备104和/或视频解码设备112可计算单独历史且将其存储在计数器statcoeff[riceclass]中,使得将取决于当前tu的不可用相邻变换系数的位置来利用不同历史rice参数值。在一些情况下,在tu解码期间,可以通过二进制码长估计(例如,诸如上面的codelength)来表达为包括在历史更新中而定义的每个经解码的变换系数。二进制码长估计可以在历史更新中用作对最佳历史rice参数值的指示。
[0200]
对于每个先前解码的tu 551-557,包括在该tu的历史更新中的变换系数的数量可以由num_history_update给出。在一些示例中,将num_history_update设置为等于1,且仅利用来自每个先前经解码的tu的第一非零变换系数。然而,也可以将num_history_update设置为诸如2或3的值,在这种情况下,将针对每个先前经解码的tu分别使用前两个或前三个非零变换系数。
[0201]
可以使用多个经解码变换系数(例如,等于num_history_update)来更新在一个或多个历史计数器处维护的历史观察值。在一些示例中,历史观察值可以由诸如历史计数器520的历史计数器存储和维护。可以在历史更新过程中使用单独的计数器,其中一个计数器(例如,collectstatcoeff)维护codelength的累加和,并且另一个计数器(例如,countercollectstatcoeff)维护已经提供给历史更新过程的系数或不同条目的数量的累加和:
[0202]
collectstatcoeff[riceclass] =codelength.
[0203]
countercollectstatcoeff[riceclass] ;
[0204]
在如上所述解析为当前类别和/或当前tu的历史更新定义的num_history_update数量的样本之后,可以通过线性模型(例如,加权移动平均或指数加权移动平均)来如下更新全局历史计数器statcoeff:
[0205]
int numcollected=num_history_update-countercollectstatcoeff[i];
[0206]
int averagericeintu=(int)(collectstatcoeff[i] (numcollected》》1))/numcollected);
[0207]
statcoeff[i][compid]=(w3*statcoeff[i][compid] w4*averagericeintu)/(w3 w4);
[0208]
在一些示例中,可将上述线性模型的参数选择为2的幂的导数,以实现低复杂度乘法和/或除法运算的更高效执行。
[0209]
在一些示例中,可以将num_history_update设置为等于1,意味着仅从每个先前经解码的tu解析第一非零变换系数且将其用于更新历史计数器,以确定最佳历史rice参数。在这种情况下,将numcollected的上述表达式简化为numcollected=0(或者,可以维持上述原始表达式,以便考虑到没有为给定的先前经解码的tu收集变换系数的情况,尽管有将num_history_update指定为等于1的事实)。
[0210]
继续以上示例,在将num_history_update设置为等于1且将numcollected设置为等于0的情况下,那么第二表达式可简化为averagericeintu=collectstatcoeff。即,当针对每tu仅收集单个变换系数(例如,收集第一非零变换系数)时,那么值averagericeintu与该tu的所收集值collectstatcoeff相同。
[0211]
在一些示例中,权重w3和w4都可以被设置为等于1,例如,使得它们从上面的statcoeff[i][compid]的第三表达式中退出-在将两个权重值都设置为1的情况下,则statcoeff的更新值被计算为刚接收到的历史更新值与刚好在接收到最新历史更新值之前的先前statcoeff值的平均值。在一些示例中,可以将num_history_update、w3和w4各自设置为等于1。
[0212]
在一些示例中,可通过经解码图片的某一区域(例如,完整图片、切片、图块、ctu组或在ctu组的开始处具有规范性重置的单个ctu)维持历史计数器。在被解码的每个新区域开始处,历史计数器可以被重置为零或以其它方式初始化为某个预定的起始值。
[0213]
在历史计数器在每个新区域的开始处用默认值初始化的示例中,在一些情况下,默认值可以被制表并作为辅助信息提供给解码器,通过或利用经编码位流(例如,在切片级别)发信号通知,通过特殊的更新信令机制提供,和/或在解码器侧从位深度、量化参数或其它语法元素导出。
[0214]
在一些示例中,可使如本文中所描述的rice参数推导的历史更新过程的一个或多个方面(例如,更新速度、移动平均值的参数或权重等)可以取决于块大小、块尺寸比率、译码模式(例如,帧内预测或帧间预测)、切片类型和/或与解码相关联的发信号通知的语法元素中的一个或多个。
[0215]
图6是示出用于处理图像和/或视频数据的过程600的示例的流程图。在框602处,过程600可以包括获得变换块,该变换块包括多个样本。在一些示例中,变换块可以是经译码或经解码变换块。在一些示例中,变换块可以是变换单元(tu)。在一些情况下,变换块可以与图3中所示的变换块320、330和340中的一个或多个相同或相似。
[0216]
在框604处,过程600包括至少部分地通过分析多个样本中的当前样本的局部邻域来确定多个样本的一个或多个参数(例如,rice参数)。在一些情况下,框604可以包括扫描变换块,其可以包括分析多个样本中的当前样本的局部邻域。在一些示例中,当前样本的局部邻域可位于与当前样本相同的变换块内部。例如,局部邻域可以由图3中针对当前样本302示出的三个变换块320、300和340的边界给出。
[0217]
在一些情况下,可以通过将局部邻域与模板支持区域进行比较来执行对局部邻域的分析。可以获得模板支持区域作为参数推导模板,例如rice参数推导模板(例如,用于执行基于模板和查找表的rice参数推导)。在一些方面,可在高位深度译码的情况中确定一个或多个参数(例如,rice参数),在高位深度译码中可更常常经受到基于查找表的现有rice参数推导技术的缺点。
[0218]
在框606处,过程600包括确定当前样本的相邻变换系数的数量小于阈值量。该确定可以至少部分地基于局部邻域的分析(例如,如上面关于框604所描述的)。在一些示例中,阈值量可与包括在参数推导模板(例如,rice参数推导模板)中的相邻变换系数的数量相同。
[0219]
在一个说明性示例中,阈值量可等于5,其为包括在图2中所示的用于rice参数推导的示例模板中的相邻变换系数的数量。在一些示例中,阈值量可以大于或小于5,并且rice参数推导模板可以包括比图2中所示的更多或更少数量的相邻系数。
[0220]
在一些情况下,关于当前样本的相邻变换系数的数量小于阈值量的确定可用于确定模板支持区域跨越变换块的边界外部。例如,如果可用于当前样本的相邻变换系数的数
量小于包括在参数推导模板(例如,rice参数推导模板)中的变换系数的阈值数量,那么可确定模板支持区域至少部分跨越变换块的边界外部(例如,变换块340在图3中示为在其边界内仅具有一个可用相邻变换系数316)。在一些情况下,如果可用于当前样本的相邻变换系数的数量为零,那么可确定模板支持区域完全跨越变换块的边界外部(例如,变换块320在图3中示为在其边界内具有零个可用相邻变换系数)。
[0221]
在框608,过程600包括获得从一个或多个先前经解码的变换块确定的历史参数值(例如,历史rice参数值)。在一些示例中,可响应于在框606中确定变换块内部的可用相邻变换系数的数量小于包括在rice推导模板中的变换系数的阈值数量而获得历史参数值。在一些情况下,可以在框608处动态地确定历史参数值(例如,历史rice参数值)。在一些示例中,可从历史计数器(例如,如图5中所示的历史计数器520)获得或检索历史参数值(例如,历史rice参数值),所述历史计数器通过累加针对先前经解码的变换块或tu确定的值来维持加权和。
[0222]
在一些示例中,可以通过使用历史计数器将权重w应用于每个累加值r以便实现加权和,来从一个或多个先前经解码的变换块确定历史参数值(例如,历史rice参数值)。在一些情况下,加权和可以用于计算加权平均值和/或指数加权移动平均值,然后可以将其用作在框608处获得的历史参数值(例如,历史rice参数值)。在一些情况下,可以至少部分地基于给定的先前经解码的变换块中的第一非零变换系数的空间位置来确定权重w。在一些方面,用于确定权重w的空间位置可以对应于如图4所示的分类c1-c4中的一个。在一些方面,权重w可以是0和1之间的值和/或可以是整数值。在一些示例中,可以通过更新历史计数器直到到达ctu或切片的末尾来计算历史参数值(例如,历史rice参数值),此时可以将历史计数器(和历史rice参数值)初始化为零或某个其它起始值,并重复历史更新过程。
[0223]
在框610处,过程600包括确定当前样本的参数(例如,rice参数)。过程600可以至少部分地基于在框608处获得的历史参数值(例如,历史rice参数值)来确定参数(例如,rice参数),如上所述。在一些示例中,当利用基于模板的参数推导方法(例如,基于模板的rice参数推导方法)时,可以使用历史参数值(例如,历史rice参数值)来替换每个不可用相邻变换系数。当基于模板的相邻变换系数仅部分不可用时,可基于可用相邻变换系数与n乘以历史参数值(例如,历史rice参数值)的总和来确定rice参数,其中n等于不可用相邻变换系数的数量(例如,其可在框604处确定)。
[0224]
在框612处,过程600包括基于所确定的当前样本的参数来解码当前样本。例如,如本文中所描述,过程600可执行熵解码(例如,使用下文关于图9所描述的熵解码单元80)以基于参数解码当前样本。在一个示例中,解码设备112可至少部分地通过基于所确定参数解码指示当前样本的语法元素来解码当前样本。在另一示例中,解码设备112可至少部分地通过使用所确定参数解码golomb-rice码来解码当前样本。
[0225]
图7是示出用于处理图像和/或视频数据的过程700的示例的流程图。在框702处,过程700可以包括获得变换块。在一些示例中,变换块可以是经译码或经解码的变换块。在一些示例中,变换块可以是变换单元(tu)。在一些情况下,变换块可以与图3中所示的变换块320、330和340中的一个或多个相同或相似。
[0226]
在框704处,过程700可以包括至少部分地基于对变换块的分析来确定一个或多个非零经解码变换系数。在一些情况下,可以通过扫描变换块来执行对变换块的分析。例如,
可以以反向扫描顺序执行扫描变换块(例如,其中反向扫描顺序以变换块或tu的右下样本开始)。可以继续扫描,直到定位至少第一非零解码变换系数。在要确定多于一个非零经解码变换系数的情况下,可以继续扫描,直到确定了预定数量的非零经解码变换系数。在一些示例中,当在扫描过程期间遇到非零经解码变换系数时,可以将非零值存储在缓冲器或计数器中。
[0227]
在框706处,过程700可以包括基于一个或多个非零经解码变换系数的至少一部分来确定变换块的历史更新值。在一个说明性示例中,可以从在框704处分析(例如,扫描)变换块时获得的第一非零变换系数确定历史更新值。在一些情况下,给定变换块的历史更新值可以等于在扫描给定变换块时获得的第一非零经解码变换系数的值。在一些示例中,基于变换块的所有非零经解码变换系数确定变换块的历史更新值。在一些情况下,至少部分地通过对变换块的所有非零经解码变换系数求平均来确定历史更新值。
[0228]
在一些示例中,历史更新值可以存储在历史计数器中,该历史计数器通过累加为先前经解码的变换块确定的历史更新值来维持加权和(例如,如图5所示的历史计数器520)。
[0229]
在框708处,过程700可以包括至少部分地通过将变换块的历史更新值与现有历史参数值组合来更新现有历史参数值(例如,现有历史rice参数值)。在一些方面,将变换块的历史更新值与现有历史参数值组合可以包括对变换块的历史更新值与现有历史参数值求平均。在一些情况下,现有历史参数值是现有历史rice参数值。
[0230]
在一些方面,将变换块的历史更新值与现有历史参数值组合可以包括:确定变换块的历史更新值与现有历史参数值之间的指数加权移动平均值。在一些情况下,过程700可以包括将第一权重指派给变换块的历史更新值,并将第二权重指派给现有历史参数值。在这种情形中,确定指数加权移动平均值至少部分地基于第一权重和第二权重。
[0231]
在一些方面,基于在变换块的分析中确定的第一非零经解码变换系数来确定变换块的历史更新值。在一些情况下,基于变换块在反方向上的运行扫描顺序来确定第一非零经解码变换系数。在一些情况下,至少部分地通过确定第一非零经解码变换系数的二进制码长来确定变换块的历史更新值。
[0232]
在一些方面,变换块和先前分析的变换块与第一切片相关联。在一些情况下,基于针对与同一切片相关联的连续分析的变换块确定的连续历史更新值来迭代地更新现有历史参数值。在一些示例中,过程700包括将现有历史参数值初始化为预定值。在分析第一切片的第一变换块并确定第一变换块的历史更新值之前执行初始化。
[0233]
例如,现有历史参数值(例如,现有历史rice参数值)可以至少部分地基于从一系列先前分析(例如,先前扫描)的变换块确定的一系列非零经解码变换系数。在一些示例中,可以通过使用历史计数器将权重w应用于每个累加值r以便实现或确定加权和,来从一个或多个先前经解码的变换块确定现有历史参数值(例如,现有历史rice参数值)。
[0234]
在一些情况下,加权和可用于计算加权平均值和/或指数加权移动平均值。在一个说明性示例中,可针对每个累加值将权重w设置为等于1。在一些情况下,可以至少部分地基于给定的先前经解码的变换块中的第一非零变换系数的空间位置来确定权重w。在一些方面,用于确定权重w的空间位置可以对应于如图4所示的分类c1-c4中的一个。在一些方面,权重w可以是0和1之间的值和/或可以是整数值。在一些示例中,可以通过更新历史计数器
直到到达ctu或切片的末尾来计算历史rice参数值,此时可以将历史计数器(和历史rice参数值)初始化为零或某个其它起始值,并重复历史更新过程。
[0235]
在框710处,过程700包括基于现有历史参数值或经更新的现有历史参数值来解码变换块的至少一个样本。例如,如本文中所描述的,过程700可执行熵解码(例如,使用下文关于图9所描述的熵解码单元80)以基于现有历史参数值或经更新的现有历史参数值来解码当前样本。在一个示例中,解码设备112可至少部分地通过基于现有历史参数值或经更新的现有历史参数值解码指示至少一个样本的语法元素来解码当前样本。在另一示例中,解码设备112可至少部分地通过使用现有历史参数值或经更新的现有历史参数值解码golomb-rice码来解码当前样本。
[0236]
在一些方面,对视频数据进行编码的过程可以包括获得包括多个样本的变换块。过程可以包括至少部分地通过分析多个样本中的当前样本的局部邻域来确定多个样本的一个或多个参数。过程还可以包括至少部分地基于局部邻域的分析,确定当前样本的相邻变换系数的数量小于阈值量。在一些情况下,过程可至少部分地基于识别当前样本的一个或多个不可用相邻变换系数而确定相邻变换系数的数量小于阈值量。在这种情况下,一个或多个不可用相邻变换系数可与变换块外部的位置相关联。在一些示例中,过程可以包括获得变换块内的当前样本的位置,将当前样本的位置与变换块的宽度、变换块的高度或变换块的宽度和高度进行比较,且至少部分地基于比较来识别一个或多个不可用相邻变换系数。在一些情况下,为了确定相邻变换系数的数量小于阈值量,过程可以包括确定当前样本的位置的水平分量在变换块的宽度的第一距离内,且确定当前样本的位置的垂直分量在变换块的高度的第二距离内。
[0237]
对视频数据进行编码的过程还可以包括获得从一个或多个先前经编码的变换块确定的历史参数值。对视频数据进行编码的过程还可以包括至少部分地基于历史参数值,确定当前样本的参数。在一些示例中,多个样本的一个或多个参数包括一个或多个rice参数,历史参数值是历史rice参数值,并且为当前样本确定的参数是当前样本的rice参数。
[0238]
在一些示例中,对视频数据进行编码的过程可以包括至少部分地基于关于相邻变换系数的数量为零的确定,基于历史参数值的第一整数倍来确定当前样本的参数。在一些方面,过程可至少部分地通过提供历史参数值的第一整数倍作为到在输入与参数之间进行映射的查找表的输入来确定当前样本的参数。在一些情况下,第一整数倍和阈值量是相同的值。在一些方面,过程可以包括至少部分地基于关于相邻变换系数的数量大于零的确定,基于历史参数值的第二整数倍和相邻变换系数的总和来确定当前样本的参数。在这些方面,第二整数倍小于第一整数倍。此外,在这种方面,过程可至少部分地通过提供与相邻变换系数的总和相加的历史参数值的第二整数倍作为到在输入与参数之间进行映射的查找表输入来确定当前样本的参数。
[0239]
在一些示例中,多个样本与变换块样本类型相关联。例如,变换块样本类型可以包括亮度样本或色度样本。在一些情况下,变换块样本类型与同从其确定历史参数值的一个或多个先前经解码的变换块相关联的样本类型相同。
[0240]
在一些方面,至少部分地基于从一个或多个先前经译码的变换块中的每一个获得的第一非零经解码变换系数来确定历史参数值。在一些示例中,过程可以包括确定从一个或多个先前经译码的的变换块中的每一个获得的每个第一非零经解码变换系数的二进制
码长。在一些情况下,将历史参数值确定为针对一个或多个先前经译码的变换块中的每一个的第一非零经译码变换系数确定的二进制码长的指数加权移动平均值。
[0241]
过程还可以包括基于所确定的当前样本的参数生成位流。例如,编码设备104(例如,使用熵编码单元56)可基于所确定的参数(例如,rice参数)生成位流。
[0242]
在一些示例中,提供了对视频数据进行编码的过程。过程可以包括获得变换块。过程可以还包括至少部分地基于对变换块的分析来确定一个或多个非零经译码变换系数。过程可以包括基于一个或多个非零经译码变换系数的至少一部分确定变换块的历史更新值。
[0243]
对视频数据进行编码的过程可以包括基于在对变换块的分析中确定的第一非零经译码变换系数来确定变换块的历史更新值。在一些示例中,过程可以包括基于变换块在反方向上的运行扫描顺序来确定第一非零经译码变换系数。在一些情况下,过程可以包括至少部分地通过确定第一非零经译码变换系数的二进制码长来确定变换块的历史更新值。在一些情况下,过程可以包括基于变换块的非零经译码变换系数中的所有非零经译码变换系数来确定变换块的历史更新值。在一些示例中,过程可以包括至少部分地通过对变换块的非零经译码变换系数中的所有非零经译码变换系数求平均来确定历史更新值。
[0244]
对视频数据进行编码的过程还可以包括至少部分地通过将变换块的历史更新值与现有历史参数值组合(例如,求平均或以其它方式组合)来更新现有历史参数值。在一些方面,现有历史参数值是现有历史rice参数值。现有历史参数值至少部分地基于从一系列先前经分析的变换块确定的一系列非零经译码变换系数。在一些方面,为了更新现有历史参数值,过程可以包括确定变换块的历史更新值与现有历史参数值之间的指数加权移动平均值。例如,在一些情况下,过程可以包括将第一权重指派给变换块的历史更新值,并将第二权重指派给现有历史参数值,并且至少部分地基于第一权重和第二权重来确定指数加权移动平均值。
[0245]
在一些方面,变换块和先前经分析的变换块与第一切片相关联。过程还可以包括基于针对与同一切片相关联的连续经分析的变换块确定的连续历史更新值来迭代地更新现有历史参数值。在一些情况下,过程可以包括将现有历史参数值初始化为预定值。在一些示例中,过程可在分析第一切片的第一变换块且确定第一变换块的历史更新值之前执行初始化。
[0246]
对视频数据进行编码的过程还可以包括基于现有历史参数值或经更新的现有历史参数值生成位流。例如,编码设备104(例如,使用熵编码单元56)可基于所确定的参数(例如,rice参数)生成位流。
[0247]
在一些实施方式中,本文中所描述的过程(或方法)可由计算设备或装置(例如图1中所展示的系统100)执行。例如,该过程可由图1和图8中所示的编码设备104、由另一视频源侧设备或视频传送设备、由图1和图9中所示的解码设备112和/或由另一客户端侧设备(例如,播放器设备、显示器或任何其它客户端侧设备)执行。在一些情况下,计算设备或装置可以包括处理器、微处理器、微计算机或被配置为执行本文中所描述的过程的步骤的设备的其它组件。在一些示例中,计算设备或装置可以包括被配置为捕获包括视频帧的视频数据(例如,视频序列)的相机。在一些示例中,捕获视频数据的相机或其它捕获设备与计算设备分离,在此情况下,计算设备接收或获得所捕获视频数据。计算设备还可以包括被配置为传送视频数据的网络接口。网络接口可以被配置为传送基于网际协议(ip)的数据或其它
类型的数据。在一些示例中,计算设备或装置可以包括用于显示输出视频内容(例如,视频位流的图片的样本)的显示器。
[0248]
可以关于逻辑流程图来描述这些过程,其操作表示可以在硬件、计算机指令或其组合中实现的一系列操作。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述指令当由一个或多个处理器执行时,执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的所描述的操作可以以任何顺序和/或并行地组合以实现过程。
[0249]
另外,该过程可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以实现为在一个或多个处理器上、通过硬件或其组合共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。
[0250]
本文讨论的译码技术可以在示例视频编码和解码系统(例如,系统100)中实现。在一些示例中,系统包括源设备,所述源设备提供稍后待由目的地设备解码的经编码视频数据。特定来说,源设备经由计算机可读介质将视频数据提供到目的地设备。源设备和目的地设备可以包括广泛范围的设备中的任一个,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如所谓的“智能”电话)、所谓的“智能”平板、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流传输设备等。在一些情况下,源设备和目的地设备可被配备以用于无线通信。
[0251]
目的地设备可经由计算机可读介质接收待解码的经编码视频数据。计算机可读介质可以包括能够将经编码视频数据从源设备移动到目的地设备的任何类型的介质或设备。在一个示例中,计算机可读介质可以包括通信介质以使得源设备能够实时地将经编码视频数据直接传送到目的地设备。可根据通信标准(例如,无线通信协议)调制经编码视频数据,且将其传送到目的地设备。通信介质可以包括任何无线或有线通信介质,例如射频(rf)频谱或一个或多个物理传送线。通信介质可形成基于分组的网络(例如,局域网、广域网或诸如互联网的全球网络)的部分。通信介质可以包括路由器、交换机、基站或可用于促进从源设备到目的地设备的通信的任何其它设备。
[0252]
在一些示例中,经编码数据可从输出接口输出到存储设备。类似地,可通过输入接口从存储设备存取经编码数据。存储设备可以包括多种分布式或本地存取的数据存储介质中的任一个,例如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备可对应于文件服务器或可存储由源设备产生的经编码视频的另一中间存储设备。目的地设备可经由流传输或下载从存储设备存取所存储视频数据。文件服务器可以是能够存储经编码视频数据且将经编码视频数据传送到目的地设备的任何类型的服务器。示例文件服务器包括网络服务器(例如,用于网站)、ftp服务器、网络附接存储(nas)设备或本地磁盘驱动器。目的地设备可通过任何标准数据连接(包括互联网连接)存取经编码视频数据。这可以包括适合于存取存储在文件服务器上的经编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)或两者的组合。经编码视频数据从存储设备的传输可以是
流传输、下载传输或其组合。
[0253]
本公开内容的技术不必限于无线应用或设置。该技术可应用于视频译码以支持多种多媒体应用中的任一个,例如空中电视广播、有线电视传输、卫星电视传输、互联网流传输视频传输(例如http动态自适应流传输(dash))、编码到数据存储介质上的数字视频、存储在数据存储介质上的数字视频的解码,或其它应用。在一些示例中,系统可被配置为支持单向或双向视频传输以支持例如视频流传输、视频回放、视频广播和/或视频电话的应用。
[0254]
在一个示例中,源设备包括视频源、视频编码器和输出接口。目的地设备可以包括输入接口、视频解码器和显示设备。源设备的视频编码器可被配置为应用本文中所公开的技术。在其它示例中,源设备和目的地设备可以包括其它组件或布置。例如,源设备可从外部视频源(例如,外部相机)接收视频数据。同样地,目的地设备可与外部显示设备连接,而不是包括集成显示设备。
[0255]
以上示例系统仅仅是一个示例。用于并行对视频数据进行处理的技术可由任何数字视频编码和/或解码设备执行。尽管本公开内容的技术通常由视频编码设备执行,但所述技术还可由视频编码器/解码器(通常被称作“编解码器”)执行。此外,本公开内容的技术还可由视频预处理器执行。源设备和目的地设备仅为源设备生成经译码视频数据以供传送到目的地设备的此类译码设备的示例。在一些示例中,源设备和目的地设备可以基本上对称的方式操作,使得设备中的每一个包括视频编码和解码组件。因此,示例系统可支持视频设备之间的单向或双向视频传送,例如用于视频流传输、视频回放、视频广播或视频电话。
[0256]
视频源可以包括视频捕获设备,例如,摄像机、含有先前捕获的视频的视频存档和/或用以从视频内容提供者接收视频的视频馈入接口。作为另一替代方案,视频源可生成基于计算机图形的数据作为源视频,或实况视频、存档视频和计算机生成的视频的组合。在一些情况下,如果视频源是摄像机,那么源设备和目的地设备可形成所谓的相机电话或视频电话。然而,如上文所提及的,本公开内容中所描述的技术大体上可适用于视频译码,且可应用于无线和/或有线应用。在每种情况下,可由视频编码器编码所捕获、预捕获或计算机生成的视频。经编码视频信息可接着由输出接口输出到计算机可读介质上。
[0257]
如所述的,计算机可读介质可以包括暂时性介质,例如,无线广播或有线网络传输,或存储介质(即,非暂时性存储介质),例如,硬盘、闪存驱动器、压缩光盘、数字视频光盘、蓝光光盘或其它计算机可读介质。在一些示例中,网络服务器(未示出)可从源设备接收经编码视频数据且(例如)经由网络传输将经编码视频数据提供到目的地设备。类似地,媒体生产设施(例如,光盘冲压设施)的计算设备可从源设备接收经编码视频数据且生产含有经编码视频数据的光盘。因此,在各种示例中,计算机可读介质可理解为包括各种形式的一个或多个计算机可读介质。
[0258]
目的地设备的输入接口从计算机可读介质接收信息。计算机可读介质的信息可以包括由视频编码器定义的语法信息,所述语法信息也由视频解码器使用,所述语法信息包括描述块和其它经译码单元(例如,图片组(gop))的特性和/或处理的语法元素。显示设备向用户显示经解码视频数据,且可以包括多种显示设备中的任一个,例如阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类型的显示设备。已经描述了本技术的各种实施例。
[0259]
编码设备104和解码设备112的具体细节分别示于图8和图9中。图8是示出可实施
本公开内容中所描述的技术中的一个或多个的示例编码设备104的框图。编码设备104可例如生成本文中所描述的语法结构(例如,vps、sps、pps或其它语法元素的语法结构)。编码设备104可执行视频切片内的视频块的帧内预测和帧间预测译码。如先前所描述的,帧内译码至少部分地依赖于空间预测以减少或去除给定视频帧或图片内的空间冗余。帧间译码至少部分地依赖于时间预测以减少或去除视频序列的邻近或周围帧内的时间冗余。帧内模式(i模式)可指若干基于空间的压缩模式中的任一个。例如单向预测(p模式)或双向预测(b模式)的帧间模式可指若干基于时间的压缩模式中的任一个。
[0260]
编码设备104包括划分单元35、预测处理单元41、滤波器单元63、图片存储器64、求和器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包括运动估计单元42、运动补偿单元44和帧内预测处理单元46。对于视频块重构,编码设备104还包括逆量化单元58、逆变换处理单元60和求和器62。滤波器单元63旨在表示一个或多个环路滤波器,例如,解块滤波器、自适应环路滤波器(alf)和样本自适应偏移(sao)滤波器。尽管滤波器单元63在图8中示为环路内滤波器,但在其它配置中,滤波器单元63可实施为环路后滤波器。后处理设备57可对由编码设备104生成的经编码视频数据执行附加处理。在一些情况下,本公开内容的技术可由编码设备104实施。然而,在其它情况下,本公开内容的技术中的一个或多个可由后处理设备57实施。
[0261]
如图8中所示,编码设备104接收视频数据,且划分单元35将数据划分成视频块。划分还可以包括划分成切片、切片片段、图块或其它较大单元,以及(例如)根据lcus和cu的四叉树结构的视频块划分。编码设备104大体上示出编码待编码的视频切片内的视频块的组件。切片可分成多个视频块(且可能分成被称作图块的视频块集合)。预测处理单元41可基于误差结果(例如,译码速率和失真等级等)为当前视频块选择多个可能译码模式中的一个,例如多个帧内预测译码模式中的一个或多个帧间预测译码模式中的一个。预测处理单元41可将所得经帧内或帧间译码块提供到求和器50以生成残差块数据,且提供到求和器62以重构经编码块以用作参考图片。
[0262]
预测处理单元41内的帧内预测处理单元46可执行当前视频块相对于与待译码的当前块相同的帧或切片中的一个或多个相邻块的帧内预测译码以提供空间压缩。预测处理单元41内的运动估计单元42和运动补偿单元44执行当前视频块相对于一个或多个参考图片中的一个或多个预测性块的帧间预测译码以提供时间压缩。
[0263]
运动估计单元42可被配置为根据视频序列的预定模式来确定视频切片的帧间预测模式。预定模式可将序列中的视频切片指定为p切片、b切片或gpb切片。运动估计单元42和运动补偿单元44可高度集成,但出于概念目的而单独示出。由运动估计单元42执行的运动估计是生成运动向量的过程,所述运动向量估计视频块的运动。例如,运动向量可指示当前视频帧或图片内的视频块的预测单元(pu)相对于参考图片内的预测性块的位移。
[0264]
预测性块是被发现在像素差方面与待译码视频块的pu紧密匹配的块,所述像素差可由绝对差总和(sad)、平方差总和(ssd)或其它差度量确定。在一些示例中,编码设备104可计算存储在图片存储器64中的参考图片的亚整数像素位置的值。例如,编码设备104可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索且输出具有分数像素精度的运动向量。
[0265]
运动估计单元42通过将pu的位置与参考图片的预测性块的位置进行比较来计算经帧间译码切片中的视频块的pu的运动向量。参考图片可选自第一参考图片列表(列表0)或第二参考图片列表(列表1),列表中的每一个标识存储在图片存储器64中的一个或多个参考图片。运动估计单元42将所计算的运动向量发送到熵编码单元56和运动补偿单元44。
[0266]
由运动补偿单元44执行的运动补偿可涉及基于由运动估计(可能执行对亚像素精度的内插)确定的运动向量提取或生成预测性块。在接收到当前视频块的pu的运动向量后,运动补偿单元44可在参考图片列表中定位运动向量所指向的预测性块。编码设备104通过从正经译码的当前视频块的像素值减去预测性块的像素值而形成残差视频块,从而形成像素差值。像素差值形成块的残差数据,且可以包括亮度差分量和色度差分量两者。求和器50表示执行该减法运算的一个或多个组件。运动补偿单元44还可生成与视频块和视频切片相关联的语法元素以供解码设备112在解码视频切片的视频块时使用。
[0267]
作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,帧内预测处理单元46可对当前块进行帧内预测,如上文所描述的。特别地,帧内预测处理单元46可确定用于编码当前块的帧内预测模式。在一些示例中,帧内预测处理单元46可以(例如)在单独的编码遍次期间使用各种帧内预测模式来编码当前块,且帧内预测处理单元46可从所测试模式中选择适当帧内预测模式来使用。例如,帧内预测处理单元46可使用各种经测试帧内预测模式的速率-失真分析来计算速率-失真值,且可在经测试模式当中选择具有最佳速率-失真特性的帧内预测模式。速率-失真分析大体上确定经编码块与原始未经编码块(其经编码以产生经编码块)之间的失真(或误差)的量,以及用于产生经编码块的位速率(即,位的数量)。帧内预测处理单元46可从各种经编码块的失真和速率计算比率,以确定哪个帧内预测模式对于该块展现出最佳速率-失真值。
[0268]
在任何情况下,在选择块的帧内预测模式之后,帧内预测处理单元46可将指示块的选定帧内预测模式的信息提供到熵编码单元56。熵编码单元56可编码指示选定帧内预测模式的信息。编码设备104可在所传送位流配置数据中包括用于各种块的编码上下文的定义以及最可能帧内预测模式、帧内预测模式索引表和经修改帧内预测模式索引表的指示,以用于上下文中的每一个。位流配置数据可以包括多个帧内预测模式索引表和多个经修改帧内预测模式索引表(也被称作码字映射表)。
[0269]
在预测处理单元41经由帧间预测或帧内预测生成当前视频块的预测性块之后,编码设备104通过从当前视频块减去预测性块而形成残差视频块。残差块中的残差视频数据可以包括在一个或多个tu中且应用于变换处理单元52。变换处理单元52使用例如离散余弦变换(dct)或概念上类似的变换的变换将残差视频数据变换成残差变换系数。变换处理单元52可将残差视频数据从像素域转换到变换域,例如频域。
[0270]
变换处理单元52可将所得变换系数发送到量化单元54。量化单元54量化变换系数以进一步减小位速率。量化过程可减小与系数中的一些或全部相关联的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54可接着执行包括经量化变换系数的矩阵的扫描。可替换地,熵编码单元56可执行扫描。
[0271]
在量化之后,熵编码单元56对经量化变换系数进行熵编码。例如,熵编码单元56可执行上下文自适应可变长度译码(cavlc)、上下文自适应二进制算术译码(cabac)、基于语法的上下文自适应二进制算术译码(sbac)、概率区间划分熵(pipe)译码或另一熵编码技
术。在由熵编码单元56进行熵编码之后,可将经编码位流传送到解码设备112,或存档以供稍后传送或由解码设备112检索。熵编码单元56还可对正被译码的当前视频切片的运动向量和其它语法元素进行熵编码。
[0272]
逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换来重构像素域中的残差块,以供稍后用作参考图片的参考块。运动补偿单元44可通过将残差块添加到参考图片列表内的参考图片中的一个的预测性块来计算参考块。运动补偿单元44还可将一个或多个内插滤波器应用于经重构残差块,以计算亚整数像素值以用于运动估计。求和器62将经重构残差块添加到由运动补偿单元44产生的运动补偿预测块,以产生参考块以供存储在图片存储器64中。参考块可由运动估计单元42和运动补偿单元44用作参考块,以对后续视频帧或图片中的块进行帧间预测。
[0273]
以此方式,图8的编码设备104表示被配置为执行本文中所描述的技术的视频编码器的示例。例如,编码设备104可执行本文中所描述的技术中的任一个,包括本文中所描述的过程。在一些情况下,本公开内容的技术中的一些还可由后处理设备57实施。
[0274]
图9是示出示例解码设备112的框图。解码设备112包括熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、求和器90、滤波器单元91和图片存储器92。预测处理单元81包括运动补偿单元82和帧内预测处理单元84。在一些示例中,解码设备112可执行与关于来自图8的编码设备104所描述的编码历程大体上互逆的解码历程。
[0275]
在解码过程期间,解码设备112接收表示由编码设备104发送的经编码视频切片的视频块和相关联语法元素的经编码视频位流。在一些实施例中,解码设备112可从编码设备104接收经编码视频位流。在一些实施例中,解码设备112可从网络实体79(例如,服务器、媒体感知网络元件(mane)、视频编辑器/拼接器或被配置为实施上文所描述的技术中的一个或多个的其它此类设备)接收经编码视频位流。网络实体79可以包括或可不包括编码设备104。本公开内容中所描述的技术中的一些可在网络实体79将经编码视频位流传送到解码设备112之前由网络实体79实施。在一些视频解码系统中,网络实体79和解码设备112可以是单独设备的部分,而在其它情况下,关于网络实体79所描述的功能性可由包括解码设备112的相同设备执行。
[0276]
解码设备112的熵解码单元80对位流进行熵解码以生成经量化系数、运动向量和其它语法元素。熵解码单元80将运动向量和其它语法元素转发到预测处理单元81。解码设备112可接收视频切片层级和/或视频块层级处的语法元素。熵解码单元80可处理和解析例如vps、sps和pps的一个或多个参数集中的固定长度语法元素和可变长度语法元素两者。
[0277]
当将视频切片译码为经帧内译码(i)切片时,预测处理单元81的帧内预测处理单元84可基于发信号通知的帧内预测模式和来自当前帧或图片的先前经解码的块的数据而生成当前视频切片的视频块的预测数据。当将视频帧译码为经帧间译码(即,b、p或gpb)切片时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动向量和其它语法元素产生当前视频切片的视频块的预测性块。预测性块可从参考图片列表内的参考图片中的一个产生。解码设备112可基于存储在图片存储器92中的参考图片使用默认构建技术来构建参考帧列表,列表0和列表1。
[0278]
运动补偿单元82通过解析运动向量和其它语法元素来确定当前视频切片的视频块的预测信息,且使用预测信息来产生正被解码的当前视频块的预测性块。例如,运动补偿
单元82可使用参数集中的一个或多个语法元素来确定用于译码视频切片的视频块的预测模式(例如,帧内或帧间预测)、帧间预测片类型(例如,b切片、p切片或gpb切片)、切片的一个或多个参考图片列表的构建信息、切片的每个经帧间编码视频块的运动向量、切片的每个经帧间译码视频块的帧间预测状态,和用以解码当前视频切片中的视频块的其它信息。
[0279]
运动补偿单元82还可基于内插滤波器执行内插。运动补偿单元82可使用如由编码设备104在视频块的编码期间使用的内插滤波器来计算参考块的亚整数像素的内插值。在此情况下,运动补偿单元82可从所接收语法元素确定由编码设备104使用的内插滤波器,且可使用内插滤波器来产生预测性块。
[0280]
逆量化单元86逆量化或解量化位流中提供且由熵解码单元80解码的经量化变换系数。逆量化过程可以包括使用由编码设备104针对视频切片中的每个视频块计算的量化参数,来确定应该应用的量化程度和同样地逆量化程度。逆变换处理单元88将逆变换(例如,逆dct或其它合适的逆变换)、逆整数变换或概念上类似的逆变换过程应用于变换系数,以便在像素域中产生残差块。
[0281]
在运动补偿单元82基于运动向量和其它语法元素生成当前视频块的预测性块之后,解码设备112通过将来自逆变换处理单元88的残差块与由运动补偿单元82生成的对应预测性块求和,而形成经解码视频块。求和器90表示执行该求和运算的一个或多个组件。如果需要,还可使用环路滤波器(在译码环路内或在译码环路之后)来使像素转变平滑,或以其它方式提高视频质量。滤波器单元91旨在表示一个或多个环路滤波器,例如解块滤波器、自适应环路滤波器(alf)和样本自适应偏移(sao)滤波器。尽管滤波器单元91在图9中被示为环路内滤波器,但在其它配置中,滤波器单元91可实施为环路后滤波器。接着将给定帧或图片中的经解码视频块存储在图片存储器92中,图片存储器存储用于后续运动补偿的参考图片。图片存储器92还存储经解码视频以供稍后呈现在显示设备(例如,图1中所示的视频目的地设备122)上。
[0282]
以此方式,图9的解码设备112表示被配置为执行本文中所描述的技术的视频解码器的示例。例如,解码设备112可执行本文中所描述的技术中的任一个,包括本文中所描述的过程。
[0283]
如本文中所使用的,术语“计算机可读介质”包括(但不限于)便携式或非便携式存储设备、光学存储设备和能够存储、含有或携载指令和/或数据的各种其它介质。计算机可读介质可以包括其中可存储数据且不包括载波和/或无线地或经由有线连接传播的暂时性电子信号的非暂时性介质。非暂时性介质的示例可以包括(但不限于)磁盘或磁带、光学存储介质(例如光盘(cd)或数字通用光盘(dvd))、闪存、存储器或存储器设备。计算机可读介质可具有存储在其上的代码和/或机器可执行指令,所述代码和/或机器可执行指令可表示程序、函数、子程序、程序、例程、子例程、模块、软件包、类别或指令、数据结构或程序语句的任何组合。代码段可通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦接到另一代码段或硬件电路。信息、自变量、参数、数据等可经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的手段传递、转发或传送。
[0284]
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含位流等的电缆或无线信号。然而,当被提及时,非暂时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身的介质。
[0285]
在以上描述中提供了具体细节,以提供对本文提供的实施例和示例的透彻理解。然而,本领域普通技术人员将理解的是,可以在没有这些具体细节的情况下实践实施例。为了解释的清楚,在一些情况下,本技术可以被呈现为包括单独的功能块,所述单独的功能块包括包括在以软件或硬件和软件的组合体现的方法中的设备、设备组件、步骤或例程的功能块。可以使用除了附图中所示和/或本文所述的那些之外的附加部件。例如,电路、系统、网络、过程和其它组件可以被示为框图形式的组件,以免在不必要的细节上使实施例难以理解。在其它情况下,可以在没有不必要的细节的情况下示出公知的电路、过程、算法、结构和技术,以避免使实施例难以理解。
[0286]
各个实施例可以在上面被描述为被示出为流程图、流图、数据流图、结构图或框图的过程或方法。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新安排操作的顺序。当完成其操作时,过程终止,但可具有图中未包括的额外步骤。过程可以对应于方法、函数、过程、子例程、子程序等。当进程对应于函数时,其终止可对应于函数返回到调用函数或主函数。
[0287]
根据上述示例的过程和方法可以使用存储在计算机可读介质中或以其它方式可从计算机可读介质获得的计算机可执行指令来实现。这样的指令可以包括例如引起或以其它方式配置通用计算机、专用计算机或处理设备以执行特定功能或功能组的指令和数据。可以通过网络访问所使用的计算机资源的部分。计算机可执行指令可以是例如二进制、中间格式指令,诸如汇编语言、固件、源代码等。可用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括:磁盘或光盘、闪存、提供有非易失性存储器的usb设备、联网存储设备等。
[0288]
实现根据本公开内容的过程和方法的设备可以包括:硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采取各种形状因子中的任何一种。当以软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读介质中。处理器可以执行必要的任务。形状因子的典型示例包括:膝上型计算机、智能电话、移动电话、平板设备或其它小形状因子个人计算机、个人数字助理、机架安装设备、独立设备等。本文描述的功能也可以在外围设备或插入式卡中实现。作为进一步的示例,这样的功能也可以在电路板上在不同芯片或在单个设备中执行的不同过程之间实现。
[0289]
指令、用于传送这样的指令的介质、用于执行它们的计算资源以及用于支持这样的计算资源的其它结构是用于提供在本公开内容中描述的功能的示例模块。
[0290]
在以上描述中,参考本技术的具体实施例描述了本技术的各方面,但是本领域技术人员将认识到的是,本技术不限于此。因此,虽然本文已经详细描述了本技术的说明性实施例,但是应当理解,本发明的概念可以以其它方式不同地实施和采用,并且所附权利要求旨在被解释为包括这样的变型,除了由现有技术限制的之外。上述申请的各种特征和方面可以单独或联合使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,实施例可以用在超出本文描述的环境和应用的任何数量的环境和应用中。因此,说明书和附图应被认为是说明性的而非限制性的。为了说明的目的,以特定顺序描述了方法。应当理解,在替代实施例中,可以以与所描述的顺序不同的顺序来执行这些方法。
[0291]
本领域普通技术人员将理解的是,在不脱离本说明书的范围的情况下,本文所使
用的小于(“《”)和大于(“》”)符号或术语可分别由小于或等于(“≤”)和大于或等于(“≥”)符号代替。
[0292]
在组件被描述为“被配置为”执行某些操作的情况下,这样的配置可以例如通过设计电子电路或其它硬件来执行操作、通过编程可编程电子电路(例如,微处理器或其它合适的电子电路)来执行操作、或其任何组合来实现。
[0293]
短语“耦接到”是指直接或间接物理连接到另一组件的任何组件,和/或直接或间接与另一组件通信(例如,通过有线或无线连接和/或其它合适的通信接口连接到另一组件)的任何组件。
[0294]
叙述集合“中的至少一个”和/或集合中的“一个或多个”的权利要求语言或其它语言指示集合中的一个成员或集合中的多个成员(以任何组合)满足权利要求。例如,叙述“a和b中的至少一个”的权利要求语言表示a、b或a和b。在另一个示例中,叙述“a、b和c中的至少一个”的权利要求语言表示a、b、c、或a和b、或a和c、或b和c、或a和b和c。语言集合“中的至少一个”和/或集合中的“一个或多个”不将集合限制为集合中列出的项目。例如,叙述“a和b中的至少一个”的权利要求语言可以表示a、b或a和b,并且可以另外包括未在a和b的集合中列出的项目。
[0295]
结合本文所公开的实施例而描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件与软件的这种可互换性,上文已大体上在其功能性方面描述了各种说明性组件、块、模块、电路和步骤。将这种功能性实施为硬件还是软件取决于特定应用和施加于整个系统的设计约束。所属领域的技术人员可针对每个特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为导致脱离本技术的范围。
[0296]
本文描述的技术也可以在电子硬件、计算机软件、固件或其任何组合中实现。这些技术可以在多种设备中的任何一种中实现,例如通用计算机、无线通信设备手持设备、或具有多种用途的集成电路设备,包括在无线通信设备手持设备和其它设备中的应用。描述为模块或组件的任何特征可一起实施于集成逻辑设备中或单独地实施为分立但可互操作的逻辑设备。如果以软件实施,那么所述技术可至少部分地由包括程序代码的计算机可读数据存储介质来实现,所述程序代码包括在执行时执行上文所描述的方法中的一个或多个的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括存储器或数据存储介质,诸如随机存取存储器(ram),诸如同步动态随机存取存储器(sdram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、闪存、磁或光数据存储介质等。另外或替代地,所述技术可至少部分地由计算机可读通信介质来实现,所述计算机可读通信介质以指令或数据结构的形式携载或传送程序代码且可由计算机存取、读取和/或执行,例如传播的信号或波。
[0297]
程序代码可由处理器执行,所述处理器可包括一个或多个处理器,例如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其它等效集成或分立逻辑电路。这种处理器可被配置为执行本公开内容中所描述的技术中的任一个。通用处理器可以是微处理器;但是在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以实现为计算设备的组合,例如dsp和微
处理器的组合、多个微处理器、一个或多个微处理器与dsp内核的结合、或者任何其它这种配置。因此,如本文中所使用的术语“处理器”可指代前述结构中的任一个、前述结构的任何组合或适合于实施本文中所描述的技术的任何其它结构或设备。另外,在一些方面,本文中描述的功能可提供在被配置用于编码和解码的专用软件模块或硬件模块内,或并入于组合式视频编码器-解码器(编解码器)中。
[0298]
本公开内容的说明性示例包括:
[0299]
方面1:一种对视频数据进行解码的方法,所述方法包括:获得变换块,所述变换块包括多个样本;至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数;至少部分地基于对所述局部邻域的所述分析,确定所述当前样本的相邻变换系数的数量小于阈值量;获得从一个或多个先前经解码的变换块确定的历史参数值;至少部分地基于所述历史参数值,确定所述当前样本的参数;以及基于所确定的所述当前样本的参数来对所述当前样本进行解码。
[0300]
方面2:根据方面1所述的方法,还包括:至少部分地基于关于相邻变换系数的所述数量为零的确定,基于所述历史参数值的第一整数倍来确定所述当前样本的所述参数。
[0301]
方面3:根据方面2所述的方法,其中,确定所述当前样本的所述参数包括提供所述历史参数值的所述第一整数倍作为到在输入与参数之间进行映射的查找表的输入。
[0302]
方面4:根据方面2或3中任一项所述的方法,其中,所述第一整数倍和所述阈值量是相同的值。
[0303]
方面5:根据方面2至4中任一项所述的方法,还包括:至少部分地基于关于相邻变换系数的所述数量大于零的确定,基于所述历史参数值的第二整数倍和所述相邻变换系数的总和来确定所述当前样本的所述参数。
[0304]
方面6:根据方面5所述的方法,其中,确定所述当前样本的所述参数包括:提供与所述相邻变换系数的总和相加的所述历史参数值的所述第二整数倍作为到在输入与参数之间进行映射的查找表的输入。
[0305]
方面7:根据方面6所述的方法,其中,所述第二整数倍小于所述第一整数倍。
[0306]
方面8:根据方面1至7中任一项所述的方法,其中,至少部分地基于识别所述当前样本的一个或多个不可用相邻变换系数来确定相邻变换系数的所述数量小于所述阈值量。
[0307]
方面9:根据方面8所述的方法,还包括:获得所述当前样本在所述变换块内的位置;将所述当前样本的所述位置与所述变换块的宽度和所述变换块的高度中的一者或多者进行比较;以及至少部分地基于所述比较,识别所述一个或多个不可用相邻变换系数。
[0308]
方面10:根据方面9所述的方法,其中,所述一个或多个不可用相邻变换系数与所述变换块外部的位置相关联。
[0309]
方面11:根据方面9或10中任一项所述的方法,其中,确定相邻变换系数的所述数量小于所述阈值量包括:确定所述当前样本的所述位置的水平分量在所述变换块的所述宽度的第一距离内;以及确定所述当前样本的所述位置的垂直分量在所述变换块的所述高度的第二距离内。
[0310]
方面12:根据方面1至11中任一项所述的方法,其中,所述多个样本与变换块样本类型相关联,所述变换块样本类型包括亮度样本或色度样本。
[0311]
方面13:根据方面12所述的方法,其中,所述变换块样本类型与关联于从其确定所
述历史参数值的所述一个或多个先前经解码的变换块的样本类型相同。
[0312]
方面14:根据方面1至13中任一项所述的方法,其中,至少部分地基于从所述一个或多个先前经解码的变换块中的每个先前经解码的变换块获得的第一非零经解码变换系数来确定所述历史参数值。
[0313]
方面15:根据方面14所述的方法,还包括确定从所述一个或多个先前经解码的变换块中的每个先前经解码的变换块获得的每个第一非零经解码变换系数的二进制码长。
[0314]
方面16:根据方面15所述的方法,其中,将所述历史参数值确定为针对所述一个或多个先前经解码的变换块中的每个先前经解码的变换块的所述第一非零经解码变换系数确定的所述二进制码长的指数加权移动平均值。
[0315]
方面17:根据方面1至16中任一项所述的方法,其中,所述多个样本的所述一个或多个参数包括一个或多个rice参数,所述历史参数值是历史rice参数值,并且为所述当前样本确定的所述参数是所述当前样本的rice参数。
[0316]
方面18:根据方面1至17中任一项所述的方法,其中,基于所确定的所述当前样本的参数对所述当前样本进行解码包括:基于所确定的参数来对指示所述当前样本的语法元素进行解码。
[0317]
方面19:根据方面1至18中任一项所述的方法,其中,基于所确定的参数来对所述当前样本进行解码包括:使用所确定的参数来对golomb-rice码进行解码。
[0318]
方面20:一种对视频数据进行解码的方法,所述方法包括:获得变换块;至少部分地基于对所述变换块的分析来确定一个或多个非零经解码变换系数;基于所述一个或多个非零经解码变换系数的至少一部分来确定所述变换块的历史更新值;至少部分地通过将所述变换块的所述历史更新值与现有历史参数值进行组合来更新所述现有历史参数值,所述现有历史参数值至少部分地基于从一系列先前经分析的变换块确定的一系列非零经解码变换系数;以及基于所述现有历史参数值或经更新的现有历史参数值来对所述变换块的至少一个样本进行解码。
[0319]
方面21:根据方面20所述的方法,其中,将所述变换块的所述历史更新值与所述现有历史参数值进行组合包括:对所述变换块的所述历史更新值与所述现有历史参数值求平均。
[0320]
方面22:根据方面20或21中任一项所述的方法,其中,将所述变换块的所述历史更新值与所述现有历史参数值进行组合包括:确定所述变换块的所述历史更新值与所述现有历史参数值之间的指数加权移动平均值。
[0321]
方面23:根据方面22所述的方法,还包括:将第一权重指派给所述变换块的所述历史更新值且将第二权重指派给所述现有历史参数值,其中,确定所述指数加权移动平均值至少部分地基于所述第一权重和所述第二权重。
[0322]
方面24:根据方面20至23中任一项所述的方法,其中,基于在对所述变换块的分析中确定的第一非零经解码变换系数来确定所述变换块的所述历史更新值。
[0323]
方面25:根据方面24所述的方法,其中,基于所述变换块在反方向上的运行扫描顺序来确定所述第一非零经解码变换系数。
[0324]
方面26:根据方面24或25中任一项所述的方法,其中,至少部分地通过确定所述第一非零经解码变换系数的二进制码长来确定所述变换块的所述历史更新值。
[0325]
方面27:根据方面20至26中任一项所述的方法,其中:所述变换块和所述先前经分析的变换块与第一切片相关联;并且基于针对与同一切片相关联的连续经分析的变换块确定的连续历史更新值,迭代地更新所述现有历史参数值。
[0326]
方面28:根据方面27所述的方法,还包括将所述现有历史参数值初始化为预定值,其中,在分析所述第一切片的第一变换块并确定所述第一变换块的历史更新值之前执行所述初始化。
[0327]
方面29:根据方面20至28中任一项所述的方法,其中,基于所述变换块的所述非零经解码变换系数中的所有非零经解码变换系数来确定所述变换块的所述历史更新值。
[0328]
方面30:根据方面29所述的方法,其中,至少部分地通过对所述变换块的所述非零经解码变换系数中的所有非零经解码变换系数求平均来确定所述历史更新值。
[0329]
方面31:根据方面20至30中任一项所述的方法,其中,所述现有历史参数值是现有历史rice参数值。
[0330]
方面32:根据方面20至31中任一项所述的方法,其中,对所述变换块的所述至少一个样本进行解码包括:基于所述现有历史参数值或所述经更新的现有历史参数值来对指示所述至少一个样本的语法元素进行解码。
[0331]
方面33:根据方面20至32中任一项所述的方法,对所述变换块的所述至少一个样本进行解码包括:使用所述现有历史参数值或所述经更新的现有历史参数值来对golomb-rice码进行解码。
[0332]
方面34:一种用于对视频数据进行解码的装置,包括:至少一个存储器;以及耦接到所述至少一个存储器的至少一个处理器,所述至少一个处理器被配置为进行以下操作获得变换块,所述变换块包括多个样本;至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数;至少部分地基于对所述局部邻域的所述分析,确定所述当前样本的相邻变换系数的数量小于阈值量;获得从一个或多个先前经解码的变换块确定的历史参数值;至少部分地基于所述历史参数值,确定所述当前样本的参数;以及基于所述所确定的所述当前样本的参数来对所述当前样本进行解码。
[0333]
方面35:根据方面34所述的装置,其中,所述至少一个处理器被配置为进行以下操作至少部分地基于关于相邻变换系数的数量为零的确定,基于所述历史参数值的第一整数倍来确定所述当前样本的所述参数。
[0334]
方面36:根据方面35所述的装置,其中,为了确定所述当前样本的所述参数,所述至少一个处理器被配置为进行以下操作提供所述历史参数值的第一整数倍作为到在输入与参数之间进行映射的查找表的输入。
[0335]
方面37:根据方面35或36中任一项所述的装置,其中,所述第一整数倍和所述阈值量是相同的值。
[0336]
方面38:根据方面35至37中任一项所述的装置,其中,所述至少一个处理器被配置为进行以下操作至少部分地基于关于相邻变换系数的所述数量大于零的确定,基于所述历史参数值的第二整数倍和所述相邻变换系数的总和来确定所述当前样本的所述参数。
[0337]
方面39:根据方面38所述的装置,其中,为了确定所述当前样本的所述参数,所述至少一个处理器被配置为进行以下操作提供与所述相邻变换系数的总和相加的所述历史参数值的所述第二整数倍作为到在输入与参数之间进行映射的查找表的输入。
[0338]
方面40:根据方面39所述的装置,其中,所述第二整数倍小于所述第一整数倍。
[0339]
方面41:根据方面34至40中任一项所述的装置,其中,所述至少一个处理器被配置为进行以下操作至少部分地基于识别所述当前样本的一个或多个不可用相邻变换系数来确定相邻变换系数的所述数量小于所述阈值量。
[0340]
方面42:根据方面41所述的装置,其中,所述至少一个处理器被配置为进行以下操作获得所述当前样本在所述变换块内的位置;将所述当前样本的所述位置与所述变换块的宽度和所述变换块的高度中的一者或多者进行比较;以及至少部分地基于所述比较,识别所述一个或多个不可用相邻变换系数。
[0341]
方面43:根据方面42所述的装置,其中,所述一个或多个不可用相邻变换系数与所述变换块外部的位置相关联。
[0342]
方面44:根据方面42或43中任一项所述的装置,其中,为了确定相邻变换系数的所述数量小于所述阈值量,所述至少一个处理器被配置为进行以下操作确定所述当前样本的所述位置的水平分量在所述变换块的所述宽度的第一距离内;以及确定所述当前样本的所述位置的垂直分量在所述变换块的所述高度的第二距离内。
[0343]
方面45:根据方面34至44中任一项所述的装置,其中,所述多个样本与变换块样本类型相关联,所述变换块样本类型包括亮度样本或色度样本。
[0344]
方面46:根据方面45所述的装置,其中,所述变换块样本类型与关联于从其确定所述历史参数值的所述一个或多个先前经解码的变换块的样本类型相同。
[0345]
方面47:根据方面34至46中任一项所述的装置,其中,所述至少一个处理器被配置为进行以下操作至少部分地基于从所述一个或多个先前经解码的变换块中的每个先前经解码的变换块获得的第一非零经解码变换系数来确定所述历史参数值。
[0346]
方面48:根据方面47所述的装置,其中,所述至少一个处理器被配置为进行以下操作确定从所述一个或多个先前经解码的变换块中的每个先前经解码的变换块获得的每个第一非零经解码变换系数的二进制码长。
[0347]
方面49:根据方面48所述的装置,其中,所述至少一个处理器被配置为进行以下操作将所述历史参数值确定为针对所述一个或多个先前经解码的变换块中的每个先前经解码的变换块的所述第一非零经解码变换系数确定的所述二进制码长的指数加权移动平均值。
[0348]
方面50:根据方面34至49中任一项所述的装置,其中,所述多个样本的所述一个或多个参数包括一个或多个rice参数,所述历史参数值是历史rice参数值,并且为所述当前样本确定的所述参数是所述当前样本的rice参数。
[0349]
方面50:根据方面34至50中任一项所述的装置,其中,基于所确定的所述当前样本的参数对所述当前样本进行解码包括:基于所确定的参数来对指示所述当前样本的语法元素进行解码。
[0350]
方面50:根据方面34至51中任一项所述的装置,其中,基于所确定的参数来对所述当前样本进行解码包括:使用所确定的参数来对golomb-rice码进行解码。
[0351]
方面51:一种用于对视频数据进行解码的装置,包括:至少一个存储器;以及耦接到所述至少一个存储器的至少一个处理器,所述至少一个处理器被配置为进行以下操作获得变换块;至少部分地基于对所述变换块的分析来确定一个或多个非零经解码变换系数;
基于所述一个或多个非零经解码变换系数的至少一部分来确定所述变换块的历史更新值;以及至少部分地通过将所述变换块的所述历史更新值与现有历史参数值进行组合来更新所述现有历史参数值,所述现有历史参数值至少部分地基于从一系列先前经分析的变换块确定的一系列非零经解码变换系数。
[0352]
方面52:根据方面51所述的装置,其中,为了将所述变换块的所述历史更新值与所述现有历史参数值进行组合,所述至少一个处理器被配置为进行以下操作对所述变换块的所述历史更新值与所述现有历史参数值求平均。
[0353]
方面53:根据方面51或52中任一项所述的装置,其中,为了将所述变换块的所述历史更新值与所述现有历史参数值进行组合,所述至少一个处理器被配置为进行以下操作确定所述变换块的所述历史更新值与所述现有历史参数值之间的指数加权移动平均值。
[0354]
方面54:根据方面53所述的装置,其中,所述至少一个处理器被配置为进行以下操作将第一权重指派给所述变换块的所述历史更新值且将第二权重指派给所述现有历史参数值,以及至少部分地基于所述第一权重和所述第二权重来确定所述指数加权移动平均值。
[0355]
方面55:根据方面51至54中任一项所述的装置,其中,所述至少一个处理器被配置为进行以下操作基于在对所述变换块的分析中确定的第一非零经解码变换系数来确定所述变换块的所述历史更新值。
[0356]
方面56:根据方面55所述的装置,其中,所述至少一个处理器被配置为进行以下操作基于所述变换块在反方向上的运行扫描顺序来确定所述第一非零经解码变换系数。
[0357]
方面57:根据方面55或56中任一项所述的装置,其中,所述至少一个处理器被配置为进行以下操作至少部分地通过确定所述第一非零经解码变换系数的二进制码长来确定所述变换块的所述历史更新值。
[0358]
方面58:根据方面51至57中任一项所述的装置,其中:所述变换块和所述先前经分析的变换块与第一切片相关联;并且所述至少一个处理器被配置为进行以下操作基于针对与同一切片相关联的连续经分析的变换块确定的连续历史更新值,迭代地更新所述现有历史参数值。
[0359]
方面59:根据方面58所述的装置,其中,所述至少一个处理器被配置为进行以下操作将所述现有历史参数值初始化为预定值,其中,在分析所述第一切片的第一变换块并确定所述第一变换块的历史更新值之前执行所述初始化。
[0360]
方面60:根据方面51至59中任一项所述的装置,其中,所述至少一个处理器被配置为进行以下操作基于所述变换块的所述非零经解码变换系数中的所有非零经解码变换系数来确定所述变换块的所述历史更新值。
[0361]
方面61:根据方面60所述的装置,其中,所述至少一个处理器被配置为进行以下操作至少部分地通过对所述变换块的所述非零经解码变换系数中的所有非零经解码变换系数求平均来确定所述历史更新值。
[0362]
方面62:根据方面51至61中任一项所述的装置,其中,所述现有历史参数值是现有历史rice参数值。
[0363]
方面63:根据方面51至62中任一项所述的装置,其中,对所述变换块的所述至少一个样本进行解码包括:基于所述现有历史参数值或所述经更新的现有历史参数值来对指示
所述至少一个样本的语法元素进行解码。
[0364]
方面64:根据方面51至63中任一项所述的装置,其中,对所述变换块的所述至少一个样本进行解码包括:使用所述现有历史参数值或所述经更新的现有历史参数值来对golomb-rice码进行解码。
[0365]
方面65:一种非暂时性计算机可读存储介质,其上存储有指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行方面1至64的任何操作。
[0366]
方面66:一种装置,包括用于执行方面1至64的操作中任一项的模块。
[0367]
方面67:一种对视频数据进行处理的方法,所述方法包括:获得与视频数据块相关联的多个系数;基于用于推导所述多个系数中的系数的rice参数的基于模板的推导技术的估计准确度来确定所述系数的空间位置的分类;基于所述分类确定所述系数的所述rice参数;以及基于所确定的所述当前样本的参数生成位流。
[0368]
方面68:根据方面67所述的方法,还包括:基于所述估计准确度大于准确度阈值,使用所述基于模板的推导技术来确定所述rice参数。
[0369]
方面69:根据方面67所述的方法,还包括:基于所述估计准确度小于准确度阈值,使用基于历史的推导技术来确定所述rice参数。
[0370]
方面70:根据方面67所述的方法,还包括:使用基于所述估计准确度小于准确度阈值的函数来确定所述rice参数,所述函数基于所述基于模板的推导技术和基于历史的推导技术。
[0371]
方面71:根据方面70所述的方法,其中,所述函数包括加权平均。
[0372]
方面72:根据方面70所述的方法,其中,所述函数被集成在所述基于模板的推导技术中。
[0373]
方面73:根据方面67至72中任一项所述的方法,其中,基于扫描顺序在反方向上的运行来确定所述分类。
[0374]
方面74:根据方面67至73中任一项所述的方法,还包括生成包括所述多个系数的经编码视频位流。
[0375]
方面75:根据方面67至73中任一项所述的方法,还包括从经编码视频位流获得所述多个系数。
[0376]
方面76:一种装置,包括被配置为存储视频数据的存储器和被配置为进行以下操作的处理器:获得与视频数据块相关联的多个系数;基于用于推导所述多个系数中的系数的rice参数的基于模板的推导技术的估计准确度来确定所述系数的空间位置的分类;基于所述分类确定所述系数的所述rice参数;以及基于所确定的所述当前样本的参数生成位流。
[0377]
方面77:根据方面76所述的装置,还包括:基于所述估计准确度大于准确度阈值,使用所述基于模板的推导技术来确定所述rice参数。
[0378]
方面78:根据方面76所述的装置,还包括:基于所述估计准确度小于准确度阈值,使用基于历史的推导技术来确定所述rice参数。
[0379]
方面79:根据方面76所述的装置,还包括:使用基于所述估计准确度小于准确度阈值的函数来确定所述rice参数,所述函数基于所述基于模板的推导技术和基于历史的推导技术。
[0380]
方面80:根据方面79所述的装置,其中,所述函数包括加权平均。
[0381]
方面81:根据方面79所述的装置,其中,所述函数被集成在所述基于模板的推导技术中。
[0382]
方面82:根据方面76至81中任一项所述的装置,其中,基于扫描顺序在反方向上的运行来确定所述分类。
[0383]
方面83:根据方面76至82中任一项所述的装置,还包括生成包括所述多个系数的经编码视频位流。
[0384]
方面84:根据方面76至82中任一项所述的装置,还包括从经编码视频位流获得所述多个系数。
[0385]
方面85:根据方面68所述的装置,其中,所述装置包括编码器。
[0386]
方面86:根据方面68所述的装置,其中,所述装置包括解码器。
[0387]
方面87:根据方面68至78中任一项所述的装置,其中,所述装置是移动设备。
[0388]
方面88:根据方面68至79中任一项所述的装置,其中,所述装置是扩展现实设备。
[0389]
方面89:根据方面68至80中任一项所述的装置,还包括被配置为显示所述视频数据的显示器。
[0390]
方面90:根据方面68至81中任一项所述的装置,还包括被配置为捕获一个或多个图片的相机。
[0391]
方面91:一种计算机可读介质,其上存储有指令,所述指令在由处理器执行时执行根据方面67至90中任一项所述的方法。
[0392]
方面92:一种装置,包括用于执行方面67至90中任一项的操作的模块。
[0393]
方面93:一种对视频数据进行编码的方法,所述方法包括:获得变换块,所述变换块包括多个样本;至少部分地通过分析所述多个样本中的当前样本的局部邻域来确定所述多个样本的一个或多个参数;至少部分地基于对所述局部邻域的所述分析,确定所述当前样本的相邻变换系数的数量小于阈值量;获得从一个或多个先前经编码的变换块确定的历史参数值;至少部分地基于所述历史参数值,确定所述当前样本的参数;以及基于现有历史参数值或经更新的现有历史参数值生成位流。
[0394]
方面94:根据方面93所述的方法,还包括:至少部分地基于关于相邻变换系数的数量为零的确定,基于所述历史参数值的第一整数倍来确定所述当前样本的所述参数。
[0395]
方面95:根据方面94所述的方法,其中:确定所述当前样本的所述参数包括:提供所述历史参数值的所述第一整数倍作为到在输入与参数之间进行映射的查找表的输入;并且所述第一整数倍和所述阈值量是相同的值。
[0396]
方面96:根据方面94所述的方法,还包括:至少部分地基于关于相邻变换系数的数量大于零的确定,基于所述历史参数值的第二整数倍和所述相邻变换系数的总和来确定所述当前样本的所述参数,其中,所述第二整数倍小于所述第一整数倍。
[0397]
方面97:根据方面96所述的方法,其中,确定所述当前样本的所述参数包括:提供与所述相邻变换系数的总和相加的所述历史参数值的所述第二整数倍作为到在输入与参数之间进行映射的查找表的输入。
[0398]
方面98:根据方面93至97中任一项所述的方法,其中:至少部分地基于识别所述当前样本的一个或多个不可用相邻变换系数来确定相邻变换系数的所述数量小于所述阈值
量;以及所述一个或多个不可用相邻变换系数与所述变换块外部的位置相关联。
[0399]
方面99:根据方面98所述的方法,还包括:获得所述当前样本在所述变换块内的位置;将所述当前样本的所述位置与所述变换块的宽度和所述变换块的高度中的一者或多者进行比较;以及至少部分地基于所述比较,识别所述一个或多个不可用相邻变换系数。
[0400]
方面100:根据方面99所述的方法,其中,确定相邻变换系数的所述数量小于所述阈值量包括:确定所述当前样本的所述位置的水平分量在所述变换块的所述宽度的第一距离内;以及确定所述当前样本的所述位置的垂直分量在所述变换块的所述高度的第二距离内。
[0401]
方面101:根据方面93至100中任一项所述的方法,其中:所述多个样本与变换块样本类型相关联,所述变换块样本类型包括亮度样本或色度样本;以及所述变换块样本类型与关联于从其确定所述历史参数值的所述一个或多个先前经解码的变换块的样本类型相同。
[0402]
方面102:根据方面93至101中任一项所述的方法,其中,至少部分地基于从所述一个或多个先前经解码的变换块中的每个先前经解码的变换块获得的第一非零经解码变换系数来确定所述历史参数值。
[0403]
方面103:根据方面102所述的方法,还包括:确定从所述一个或多个先前经译码的变换块中的每个先前经译码的变换块获得的每个第一非零经解码变换系数的二进制码长;其中,将所述历史参数值确定为针对一个或多个先前经译码的变换块中的每个先前经译码的变换块的所述第一非零经译码变换系数确定的所述二进制码长的指数加权移动平均值。
[0404]
方面104:根据方面93至103中任一项所述的方法,其中,所述多个样本的一个或多个参数包括一个或多个rice参数,所述历史参数值是历史rice参数值,并且为所述当前样本确定的所述参数是所述当前样本的rice参数。
[0405]
方面105:一种用于对视频数据进行编码的装置,包括至少一个存储器;以及耦接至所述至少一个存储器的至少一个处理器,所述至少一个处理器被配置为进行以下操作获得变换块;至少部分地基于对所述变换块的分析来确定一个或多个非零经译码变换系数;基于所述一个或多个非零经译码变换系数的至少一部分确定所述变换块的历史更新值;至少部分地通过将所述变换块的所述历史更新值与现有历史参数值求平均来更新所述现有历史参数值,所述现有历史参数值至少部分地基于从一系列先前经分析的变换块确定的一系列非零经译码变换系数;以及基于现有历史参数值或经更新的现有历史参数值生成位流。
[0406]
方面106:根据方面105所述的装置,其中,为了更新所述现有历史参数值,所述至少一个处理器被配置为进行以下操作确定所述变换块的所述历史更新值与所述现有历史参数值之间的指数加权移动平均值。
[0407]
方面107:根据方面106所述的装置,其中,所述至少一个处理器被配置为进行以下操作将第一权重指派给所述变换块的所述历史更新值且将第二权重指派给所述现有历史参数值,其中,至少部分地基于所述第一权重和所述第二权重来确定所述指数加权移动平均值。
[0408]
方面108:根据方面105至107中任一项所述的装置,其中,所述至少一个处理器被配置为进行以下操作基于在对所述变换块的分析中确定的第一非零经译码变换系数来确
定所述变换块的所述历史更新值。
[0409]
方面109:根据方面108所述的装置,其中,所述至少一个处理器被配置为进行以下操作基于所述变换块在反方向上的运行扫描顺序来确定所述第一非零经译码变换系数。
[0410]
方面110:根据方面108所述的装置,其中,所述至少一个处理器被配置为进行以下操作至少部分地通过确定所述第一非零经译码变换系数的二进制码长来确定所述变换块的所述历史更新值。
[0411]
方面111:根据方面105至110中任一项所述的装置,其中:所述变换块和所述先前经分析的变换块与第一切片相关联;并且所述至少一个处理器被配置为进行以下操作基于针对与同一切片相关联的连续经分析的变换块确定的连续历史更新值,迭代地更新所述现有历史参数值。
[0412]
方面112:根据方面111所述的装置,其中,所述至少一个处理器被配置为进行以下操作将所述现有历史参数值初始化为预定值,其中,在分析所述第一切片的第一变换块并确定所述第一变换块的历史更新值之前执行所述初始化。
[0413]
方面113:根据方面105至112中任一项所述的装置,其中,所述至少一个处理器被配置为进行以下操作基于所述变换块的非零经译码变换系数中的所有非零经译码变换系数来确定所述变换块的所述历史更新值。
[0414]
方面114:根据方面113所述的装置,其中,所述至少一个处理器被配置为进行以下操作至少部分地通过对所述变换块的非零经译码变换系数中的所有非零经译码变换系数求平均来确定所述历史更新值。
[0415]
方面115:根据方面105至114中任一项所述的装置,其中,所述现有历史参数值是现有历史rice参数值。
[0416]
方面116:一种非暂时性计算机可读存储介质,其上存储有指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行方面93至115的操作中的任一项。
[0417]
方面117:一种装置,包括用于执行方面93至115的操作中任一项的模块。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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