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

胶片颗粒过程的制作方法

2022-08-28 05:58:17 来源:中国专利 TAG:


1.本公开总体上涉及通信,并且更具体地,涉及支持无线通信的通信方法以及相关设备和节点。


背景技术:

2.高效率视频编码(“hevc”)是由国际电信联盟-电信(“itu-t”)和运动图片专家组(“mpeg”)标准化的基于块的视频编解码,使用时间预测和空间预测二者。可以使用来自当前图片内的帧内(“i”)预测来实现空间预测。根据先前解码的参考图片,在块级别上使用单向(“p”)或双向(“b”)帧间预测来实现时间预测。在编码器中,可以将原始像素数据与预测像素数据之间的差(被称为残差)变换到频域、量化,然后在与诸如预测模式和运动矢量之类的必要预测参数一起发送之前熵编码,这些必要预测参数也可以被熵编码。解码器执行熵解码、逆量化和逆变换以获得残差,然后将残差添加到帧内预测或帧间预测以重构图片。
3.mpeg和itu-t正在联合视频探索团队(“jvet”)内开发hevc的后继。这个正在开发的视频编解码的名称是多功能视频编码(“vvc”)。
4.视频序列可以包括一系列图像,其中每个图像包括一个或多个分量。每个分量可以被描述为样本值的二维矩形阵列。视频序列中的图像可以包括三个分量:一个亮度分量y以及两个色度分量cb和cr,亮度分量y中的样本值是亮度值,色度分量中的样本值是色度值。在每个维度上,色度分量的尺寸可以是亮度分量的1/2。例如,hd图像的亮度分量的大小可以是1920x1080,而色度分量可以各自具有960x540的尺寸。分量有时被称为颜色分量。
5.块是一个二维样本阵列。在视频编码中,每个分量可以被分割为块,并且编码视频比特流包括一系列编码块。在视频编码中,图像可以被分割为覆盖图像的特定区域的单元。每个单元包括来自构成该特定区域的所有分量的所有块,并且每个块完全属于一个单元。h.264中的宏块和hevc中的编码单元(“cu”)是单元的示例。
6.块可以备选地被定义为应用了编码中使用的变换的二维阵列。这些块可以被称为“变换块”。备选地,块可以被定义为应用了单个预测模式的二维阵列。这些块可以被称为“预测块”。在本公开中,措辞“块”可以不与这些定义之一绑定,而是本文的描述可以适用于任一定义。
7.残差块可以包括表示原始源块的样本值与预测块的样本值之间的样本值差异的样本。可以使用空间变换来处理残差块。在编码器中,可以根据量化参数(“qp”)对变换系数进行量化,量化参数可以控制量化系数的精度。量化系数可以被称为残差系数。高qp值可以导致系数的精度较低,并因此导致残差块的保真度较低。解码器可以接收残差系数,应用逆量化和逆变换以导出残差块。


技术实现要素:

8.根据一些实施例,提供了一种由解码器执行的方法。该方法包括从编码数据表示中的参数集中获得胶片颗粒模型语法元素。该方法还可以包括通过对胶片颗粒模型语法元
素进行解码来确定胶片颗粒模型值。该方法还可以包括从编码数据表示中解码当前图片。该方法还可以包括通过将所生成的胶片颗粒应用于当前图片来生成输出图片。该方法还可以包括输出该输出图片。
9.根据其他实施例,提供了一种由编码器执行的方法。该方法包括从编码数据表示中的参数集中获得胶片颗粒模型语法元素。该方法还可以包括通过对胶片颗粒模型语法元素进行解码来确定胶片颗粒模型值。该方法还可以包括从编码数据表示中解码当前图片。该方法还可以包括通过将所生成的胶片颗粒应用于当前图片来生成输出图片。该方法还可以包括输出该输出图片。
10.根据一些实施例,提供了一种解码器。该解码器包括处理电路以及与处理电路耦接的存储器。存储器包括指令,该指令在由处理电路执行时使解码器从编码数据表示中的参数集中获得胶片颗粒模型语法元素。该指令还能够执行以通过对胶片颗粒模型语法元素进行解码来确定胶片颗粒模型值。该指令还能够执行以从编码数据表示中解码当前图片。该指令还能够执行以通过将所生成的胶片颗粒应用于当前图片来生成输出图片。该指令还能够执行以输出该输出图片。
11.根据其他实施例,提供了一种编码器。编码器包括处理电路以及与处理电路耦接的存储器。存储器包括指令,该指令当在处理电路执行时使编码器从编码数据表示中的参数集中获得胶片颗粒模型语法元素。该指令还能够执行以通过对胶片颗粒模型语法元素进行解码来确定胶片颗粒模型值。该指令还能够执行以从编码数据表示中解码当前图片。该指令还能够执行以通过将所生成的胶片颗粒应用于当前图片来生成输出图片。该指令还能够执行以输出该输出图片。
12.根据其他实施例,提供了一种计算机程序。该计算机程序包括要由解码器执行以从编码数据表示中的参数集中获得胶片颗粒模型语法元素的程序代码。还可以执行该程序代码以通过对胶片颗粒模型语法元素进行解码来确定胶片颗粒模型值。还可以执行该程序代码以从编码数据表示中解码当前图片。还可以执行该程序代码以通过将所生成的胶片颗粒应用于当前图片来生成输出图片。还可以执行该程序代码以输出该输出图片。
13.根据其他实施例,提供了一种计算机程序。该计算机程序包括要由编码器执行以从编码数据表示中的参数集中获得胶片颗粒模型语法元素的程序代码。还可以执行该程序代码以通过对胶片颗粒模型语法元素进行解码来确定胶片颗粒模型值。还可以执行该程序代码以从编码数据表示中解码当前图片。还可以执行该程序代码以通过将所生成的胶片颗粒应用于当前图片来生成输出图片。还可以执行该程序代码以输出该输出图片。
14.根据其他实施例,提供了一种计算机程序产品。该计算机程序产品可以包括非暂时性存储介质,该非暂时性存储介质包括要由解码器的处理电路执行的程序代码。程序代码的执行使解码器从编码数据表示中的参数集中获得胶片颗粒模型语法元素。还可以执行该程序代码以通过对胶片颗粒模型语法元素进行解码来确定胶片颗粒模型值。还可以执行该程序代码以从编码数据表示中解码当前图片。还可以执行该程序代码以通过将所生成的胶片颗粒应用于当前图片来生成输出图片。还可以该执行程序代码以输出该输出图片。
15.根据其他实施例,提供了一种计算机程序产品。该计算机程序产品可以包括非暂时性存储介质,该非暂时性存储介质包括要由编码器的处理电路执行的程序代码。程序代码的执行使编码器从编码数据表示中的参数集中获得胶片颗粒模型语法元素。还可以执行
该程序代码以通过对胶片颗粒模型语法元素进行解码来确定胶片颗粒模型值。还可以执行该程序代码以从编码数据表示中解码当前图片。还可以执行该程序代码以通过将所生成的胶片颗粒应用于当前图片来生成输出图片。还可以执行该程序代码以输出该输出图片。
16.根据其他实施例,提供了一种非暂时性计算机可读介质。该非暂时性计算机可读介质可以具有存储在其中的指令,该指令能够由处理电路执行以使解码器从编码数据表示中的参数集中获得胶片颗粒模型语法元素。该指令还能够执行以通过对胶片颗粒模型语法元素进行解码来确定胶片颗粒模型值。该指令还能够执行以从编码数据表示中解码当前图片。该指令还能够执行以通过将所生成的胶片颗粒应用于当前图片来生成输出图片。该指令还能够执行以输出该输出图片。
17.根据其他实施例,提供了一种非暂时性计算机可读介质。该非暂时性计算机可读介质可以具有存储在其中的指令,该指令能够由处理电路执行以使编码器从编码数据表示中的参数集中获得胶片颗粒模型语法元素。该指令还能够执行以通过对胶片颗粒模型语法元素进行解码来确定胶片颗粒模型值。该指令还能够执行以从编码数据表示中解码当前图片。该指令还能够执行以通过将所生成的胶片颗粒应用于当前图片来生成输出图片。该指令还能够执行以输出该输出图片。
18.本文描述的各种实施例使得能够针对不使用任何图片进行参考的图片,参考先前的胶片颗粒模型,并支持在不同层(包括时间子层和空间可伸缩层二者)的图片之间共享胶片颗粒模型参数值。还能够针对多个图片的序列存储单个胶片颗粒参数集合。一些实施例提供了潜在的益处,包括在使用胶片颗粒模型的情况下针对低比特率比特流节省了大量比特。
附图说明
19.附图示出了发明构思的某些非限制性实施例,该附图被包括以提供对本公开的进一步理解,且被并入并构成本技术的一部分。在附图中:
20.图1是示出了hevc nal单元头语法的示例的表;
21.图2是示出了vvc nal单元头语法的示例的表;
22.图3是示出了vvc中的nal单元类型的示例的表;
23.图4是示出了层访问单元与编码层视频序列之间的关系的示例的框图;
24.图5是示出了图块划分的示例的示意图;
25.图6是示出了矩形片的示例的示意图;
26.图7是示出了输出过程的示例的框图;
27.图8是示出了vvc中的胶片颗粒特性sei消息语法的示例的表;
28.图9是示出了av1中的胶片颗粒参数语法的示例的表;
29.图10是示出了根据本发明构思的一些实施例的胶片颗粒模型的示例的框图;
30.图11是示出了根据本发明构思的一些实施例的胶片颗粒启用标志的示例的表;
31.图12是示出了根据本发明构思的一些实施例的没有胶片颗粒约束标志的示例的表;
32.图13是示出了根据本发明构思的一些实施例的sps中的胶片颗粒模型的示例的表;
33.图14是示出了根据本发明构思的一些实施例的aps中的胶片颗粒模型的示例的表;
34.图15是示出了根据本发明构思的一些实施例的短种子语法的示例的表;
35.图16是示出了根据本发明构思的一些实施例的长种子语法的示例的表;
36.图17是示出了根据本发明构思的一些实施例的胶片颗粒语法元素的示例的框图;
37.图18是示出了根据本发明构思的一些实施例的多层比特流的示例的框图;
38.图19是示出了根据本发明构思的一些实施例的参数集中的种子长度的示例的表;
39.图20是示出了根据本发明构思的一些实施例的可变长度种子语法的示例的表;
40.图21是示出了根据本发明构思的一些实施例的终端设备(“ue”)的框图;
41.图22是示出了根据本发明构思的一些实施例的解码器的框图;
42.图23是示出了根据本发明构思的一些实施例的编码器的框图;以及
43.图24至图26是示出了根据本发明构思的一些实施例的解码器或编码器的操作的示例的流程图。
具体实施方式
44.在下文中,将参考附图更全面地描述本发明构思,在附图中示出了本发明构思的实施例的示例。然而,本发明构思可以用多种不同形式来体现,并且不应当被解释为限于本文中所阐述的实施例。相反,提供这些实施例使得本公开将全面和完整,并且将本发明构思的范围充分传达给本领域技术人员。还应注意,这些实施例并不互相排斥。来自一个实施例的组成部分可以被默认假设为存在于/用于另一实施例中。
45.以下描述呈现了所公开主题的各种实施例。这些实施例被呈现为教导示例,并且不被解释为限制所公开主题的范围。例如,在不脱离所述主题的范围的情况下,可以修改、省略或扩展所述实施例的某些细节。
46.hevc和vvc都定义了网络抽象层(“nal”)。所有数据(例如,hevc和vvc中的视频编码层(“vcl”)或非vcl数据二者)都可以封装在nal单元中。vcl nal单元可以包括表示图片样本值的数据。非vcl nal单元可以包括附加的关联数据,例如,参数集和补充增强信息(“sei”)消息。hevc中的nal单元可以以指定nal单元的nal单元类型的头开始,该头标识了nal单元中携带的数据的类型、层id和nal单元所属的时间id。nal单元类型可以在nal单元头中的nal_unit_type码字中发送。该类型指示并定义了nal单元应如何被解析和解码。nal单元的其余字节可以是由nal单元类型指示的类型的有效载荷。比特流可以包括一系列级联的nal单元。
47.hevc的nal单元头的语法如图1所示。
48.vvc草案的当前版本为jvet-p2001-ve。该当前草案的nal单元头的语法如图2所示。
49.当前vvc草案的nal单元类型如图3所示。
50.解码顺序是其中应对nal单元进行解码的顺序,该顺序与nal单元在比特流内的顺序相同。解码顺序可以与输出顺序不同,输出顺序是其中要由解码器输出(例如,用于显示)经解码图片的顺序。
51.在hevc中以及在vvc草案中,所有图片可以与指定图片所属的时间层的
temporalid值相关联。temporalid值可以从nal单元头中的nuh_temporal_id_plus1语法元素中解码。编码器可以设置temporalid值,使得当较高时间层被丢弃时,属于较低层的图片能够被完美地解码。例如,假设编码器已使用时间层0、1和2输出比特流。然后移除所有第2层nal单元或移除所有第1层和第2层nal单元将导致可以在不发生问题的情况下解码的比特流。这通过编码器必须遵守的hevc规范中的限制来确保。例如,不允许时间层的图片参考更高时间层的图片。
52.nal单元头中的nuh_layer_id语法元素的值指定nal单元所属的层id。
53.vvc中的层访问单元可以被定义为nal单元集合,对于该集合,vcl nal单元都具有特定的nuh_layer_id值,这些vcl nal单元根据指定的分类规则彼此相关联,在解码顺序上是连续的,并且恰好包含一个编码图片。
54.当前版本的vvc中的编码层视频序列(“clvs”)可以被定义为层访问单元的序列,该序列包括按照解码顺序的clvs层访问单元,之后是零个或多个不是clvs层访问单元的层访问单元,包括以下所有后续层访问单元:直到但不包括是clvs层访问单元的任何后续层访问单元。
55.层访问单元与编码层视频序列之间的关系如图4所示。在当前版本的vvc中,层可以被独立地或彼此依赖地编码。当层被独立编码时,具有nuh_layer_id 0的层可能无法根据具有nuh_layer_id 1的另一层来预测视频数据。在当前版本的vvc中,可以使用层之间的依赖编码,该依赖编码能够支持具有snr、空间和视图可伸缩性的可伸缩编码。
56.当前vvc草案包括图片头,该图片头是nal_unit_type等于ph_nut的nal单元。图片头与片头类似,但是图片头中的语法元素的值用于对一个图片的所有片进行解码。vvc中的每个图片包括图片头nal单元,之后是图片的所有编码片,其中每个编码片在一个编码片nal单元中传送。
57.对于hevc中的单层编码,访问单元(“au”)可以是单个图片的编码表示。au可以包括若干视频编码层(“vcl”)nal单元以及非vcl nal单元。
58.hevc中的帧内随机访问点(“irap”)图片是在其解码过程中不参考除自身以外的任何图片进行预测的图片。在hevc中,比特流中按照解码顺序的第一个图片必须是irap图片,然而,irap图片也可以稍后出现在比特流中。hevc指定了三种类型的irap图片:断链访问(“bla”)图片、瞬时解码器刷新(“idr”)图片、以及纯净随机访问(“cra”)图片。
59.hevc中的编码视频序列(“cvs”)是一系列访问单元,该一系列访问单元从irap访问单元开始,直到但不包括按照解码顺序的下一个irap访问单元。
60.idr图片可以开始新的cvs。idr图片可以具有关联的随机访问可解码前导(“radl”)图片。idr图片可以不具有关联的rasl图片。
61.bla图片也可以开始新的cvs,并且可以对解码过程产生与idr图片相同的效果。然而,hevc中的bla图片可以包括指定参考图片的非空集合的语法元素。bla图片可以具有关联的rasl图片,这些rasl图片不被解码器输出并且可能是不可解码的,因为它们可能包含对可能不存在于比特流中的图片的参考。bla图片也可以具有关联的radl图片,这些radl图片被解码。
62.cra图片可以具有关联的radl或rasl图片。与bla图片一样,cra图片可以包括指定参考图片的非空集合的语法元素。对于cra图片,可以设置标志来指定关联的rasl图片不被
解码器输出,因为它们可能是不可解码的,原因在于它们可能包括对不存在于比特流中的图片的参考。cra可以开始或可以不开始cvs。
63.在vvc中,还存在gra图片,其在没有帧内图片的情况下可以开始或可以不开始cvs。vvc中的编码层视频序列开始(“clvss”)图片是irap图片或gra图片。vvc中的clvss图片可以开始vvc编码层视频序列(“clvs”),clvs可以与hevc中的cvs类似。
64.vvc中不存在bla图片类型。
65.hevc指定了三种类型的参数集:图片参数集(“pps”)、序列参数集(“sps”)和视频参数集(“vps”)。pps可以包括对整个图片公共的数据,sps可以包括对编码视频序列(“cvs”)公共的数据,并且vps可以包括对多个cvs公共的数据。
66.vvc也可以使用这些参数集类型。在vvc中,还存在自适应参数集(“aps”)和解码参数集(“dps”)。aps可以包括可用于多个片的信息,并且同一图片的两个片可以使用不同的aps。dps可以包括指定在整个比特流中解码器将在配置文件和级别方面遇到的“最坏情况”的信息。
67.hevc中片的概念将图片分为独立编码的片,其中对图片中一个片的解码独立于同一图片的其他片。不同的编码类型可用于同一图片的片(例如,片可以是i片、p片或b片)。片的一个目的是在数据丢失的情况下启用重新同步。在hevc中,片可以是ctu集合。
68.在当前版本的vvc中,图片可以被划分为光栅扫描片或矩形片。光栅扫描片可以包括按照光栅扫描顺序的多个完整图块。矩形片可以包括一起占据图片中的矩形区域的一组图块或一个图块内的连续数量的ctu行。每个片具有包括语法元素的片头。在对片进行解码时,可以使用来自这些语法元素的解码片头值。每个片可以携带在一个vcl nal单元中。
69.在先前版本的vvc草案规范中,片被称为图块组。
70.vvc视频编码标准草案包括被称为图块的工具,其将图片分为矩形的空间上独立的区域。vvc编码标准草案中的图块与hevc中使用的图块类似。使用图块,在vvc中,图片可以被划分为多行ctu和多列ctu,其中图块是行和列的交集。图5示出了使用4个图块行和5个图块列得到图片的总共20个图块的图块划分的示例。
71.通过指定行的厚度和列的宽度,在图片参数集(“pps”)中用信号通知图块结构。各个行和列可以具有不同的大小,但是划分始终跨越整个图片,分别为从左到右和从上到下。
72.同一图片的图块之间通常不存在解码依赖性。这包括帧内预测、熵编码的上下文选择以及运动矢量预测。一个例外是环路滤波依赖性在图块之间通常是允许的。
73.在vvc中的矩形片模式中,图块可以被进一步分割为多个片,其中每个片包括一个图块内的连续数量的ctu行。图6示出了vvc中的图块划分和使用图块划分的矩形片划分的示例。
74.hevc中的图片由其图片顺序计数(“poc”)值(也被称为完整poc值)标识。每个片可以包括码字pic_order_cnt_lsb,对于图片中的所有片,该码字可以是相同的。pic_order_cnt_lsb也被称为完整poc的最低有效位(“lsb”),因为它是固定长度的码字,并且仅用信号通知完整poc的最低有效位。编码器和解码器都可以跟踪poc并将poc值分配给被编码/解码的每个图片。pic_order_cnt_lsb可以通过4-16比特来用信号通知。在hevc中使用了变量maxpicordercntlsb,其被设置为最大pic_order_cnt_lsb值加1。这意味着:如果使用8比特来用信号通知pic_order_cnt_lsb,则最大值为255,并且maxpicordercntlsb被设置为2^8
=256。在hevc中,图片的图片顺序计数值被称为picordercntval。通常,当前图片的picordercntval被简称为picordercntval。预计在最终版本的vvc中poc以类似的方式工作。
75.图7示出了解码系统中的输出过程。视频解码器720的输入(比特流710)在解码过程中由解码引擎722解码为一个或多个经解码图片730。经解码图片最终经过输出过程726并作为输出图片750输出。
76.输出过程726的输入是经解码图片730,输出过程726的输出是输出图片750。用作输出过程726的输入的经解码图片730可以存储在解码图片缓冲区724中并且可以用于其他未来图片的解码过程。在该示例中,先前的经解码图片740a至740c可能已被解码引擎722使用以生成经解码图片730。输出图片750可以与经解码图片730不同。在这种情况下,输出图片750可以作为单独的图片存储在存储器中。
77.输出过程726可以输出作为经解码图片730的已经以多种不同的方式修改的修改版本的输出图片750,修改方式例如以下之一或者以下两种或更多种的组合:
78.1.应用胶片颗粒;
79.2.应用颜色变换和/或颜色分量值缩放;
80.3.应用投影映射或逆投影映射,例如,将经解码图片从立方体映射投影转换为球面表示或转换为等矩形表示;
81.4.通过诸如重新定位、缩放和旋转之类的区域级操作集合对图片执行区域级打包或区域级解包;
82.5.裁剪经解码图片;
83.6.将经解码图片转换为不同的颜色格式,例如,从rec 709转换为pq;
84.7.将经解码图片转换为不同的色度格式,例如,从yuv 4:2:0转换为yuv 4:4:4;
85.8.将图片从解码分辨率缩放或重新采样到输出分辨率;
86.9.转换为不同的样本纵横比;
87.10.将两个经解码的场转换为交错图片;
88.11.应用/移除帧打包;
89.12.提取一个或多个子图片(与裁剪经解码图片类似,但是可以例如包括合并来自图片中的不同位置的子图片);
90.13.应用诸如去块滤波、抗带状滤波、抗混叠滤波、锐化滤波和模糊滤波之类的后滤波;以及
91.14.应用诸如定时文本、徽标和运动图形之类的叠加。
92.视频中的噪声可以源自不同的源。该噪声可以由编码器在过程的最早阶段抑制。当图片在显示之前在解码器处被重构时,可以以一种或另一种方式将经建模或未经建模的噪声添加到经解码帧。已经引入了不同的目标,即通过添加噪声来表明主观质量增加,由于图片分辨率的增加,噪声现在已变得更加明显。添加噪声的一个原因是引入艺术效果。例如,在拍摄纪录片、人像、黑白场景的同时,捕捉现实,或者获得电影的“真实影院效果”。添加噪声的另一个原因是隐藏编码伪影,例如,由于编码器中繁重的编码过程而出现的模糊、块状和带状效应。
93.根据在vvc标准的草案中使用并在jvet-p2007-v3.docx中指定的补充增强信息的
描述,在vvc中支持胶片颗粒过程。该过程与h.264/avc和hevc视频编码标准中指定的胶片颗粒过程基本相同。该过程包括携带用于解码器中的胶片颗粒合成的参数化模型的sei消息。
94.胶片颗粒特性sei消息包括取消标志film_grain_characteristics_cancel_flag,如果它被设置为等于0,则启用胶片颗粒过程。此外,当该标志被设置为0时,胶片颗粒参数语法元素跟随在该标志之后。film_grain_characteristics_persistence_flag指定用于当前层的胶片颗粒特性sei消息的持续性。图8示出了该语法的示例。
95.在[spmte]中引入的胶片颗粒技术规范中,指定了一种导出用于胶片颗粒特性sei过程的种子值的种子导出方法。种子使用在解码器处已经可用的信息进行初始化,并从查找表中的256个可能种子的预定集合中进行选择。对于伪随机数生成器,并且为了选择8x8的样本块,种子被初始化为:
[0096]
种子=seed_lut[mod[pic_offset color_offset[c],256)],
[0097]
其中对于y、cb和cr通道,color_offset[c]分别等于0、85和170,并且pic_offset被定义为:
[0098]
pic_offset=poc(curr_pic) (poc_offset《《5)
[0099]
其中poc(curr_pic)等于当前帧的图片顺序计数值,并且其中poc_offset被设置为等于idr帧上的idr_pic_id的值,否则它被设置为等于0。
[0100]
此外,用于创建64x64的样本块的伪随机数生成器的初始化如下:
[0101]
种子=seed_lut[h v*13]
[0102]
其中h和v分别表示水平方向和垂直方向的值。h和v都在[0,12]的范围内,并且确定胶片颗粒数据库的哪个图案用作胶片颗粒样本的源。
[0103]
最后,在任一种情况下,seed_lut[.]的输出,即上述可变种子的变量,都被用作伪随机数生成器的种子。film_grain_mode_id语法元素、separate_colour_description_present_flag语法元素、以及图8中的more_film_grain_parameters()结构中的语法元素是胶片颗粒模型语法元素的示例。film_grain_characteristics_cancel_flag和film_grain_characteristics_persistence_flag语法元素可以不被视为胶片颗粒语法元素,因为它们控制是否启用胶片颗粒过程而不是控制所生成的胶片颗粒的值。
[0104]
av1视频编解码器格式支持胶片颗粒生成。在输出图片时,应用胶片颗粒。sequence_header_obu()包含film_grain_params_present标志,它是用于胶片颗粒信令和过程的启用标志。
[0105]
在图9中所示的被称为film_grain_params()的语法表中,在frame_header_obu()的最后用信号通知胶片颗粒参数。
[0106]
在film_grain_params()中,首先存在标志apply_grain,其控制是否应将胶片颗粒应用于当前图片。然后存在16比特的grain_seed语法元素,其用作生成颗粒的伪随机数生成器的种子。update_grain标志指定是否应使用来自参考图片的胶片颗粒参数值,或者是否应从帧头中解码要使用的胶片颗粒参数值。要使用的参考图片由film_grain_params_ref_idx语法元素值标识。在图9中,帧头胶片颗粒参数由more_film_grain_parameters()行表示以简化表。
[0107]
grain_seed的值对伪随机数生成器的用于白噪声颗粒的亮度分量的种子进行了
初始化。对于色度分量cb和cr,该值经由xor操作如下地修改:
[0108]
cb_seed=grain_seed^0xb524
[0109]
cr_seed=grain_seed^0x49d8。
[0110]
图21是示出了根据本发明构思的实施例的被配置为接收数据的编码表示(例如,比特流或视频序列)的终端设备(“ue”)2100(也被称为移动终端、移动通信终端、无线通信设备、无线终端、移动设备、无线通信终端、用户设备ue、用户设备节点/终端/设备等)的元件的框图。如图所示,ue 2100可以包括天线2107和收发器电路2101,收发器电路2101包括发射机和接收机,它们被配置为提供与无线电接入网络的基站(例如,也被称为ran节点)的上行链路和下行链路无线电通信。ue 2100还可以包括耦接到收发器电路的处理电路1803(也被称为处理器)、以及耦接到处理电路的存储器电路2105(也被称为存储器)。存储器电路2105可以包括计算机可读程序代码,该计算机可读程序代码在由处理电路2103执行时使处理电路执行根据本文公开的实施例的操作。根据其他实施例,处理电路2103可以被定义为包括存储器,使得不需要单独的存储器电路。ue 2100还可以包括与处理电路2103耦接的接口(例如,用户接口),和/或ue 2100可以并入车辆中。
[0111]
如本文所讨论的,ue 2100的操作可以由处理电路2103和/或收发器电路2101执行。例如,处理电路2103可以控制收发器电路2101,以通过收发器电路2101在无线电接口上向无线电接入网节点(也被称为基站)发送通信和/或通过收发器电路2101在无线电接口上从ran节点接收通信。此外,模块可以存储在存储器电路2105中,并且这些模块可以提供指令,使得当模块的指令由处理电路2103执行时,处理电路2103执行相应的操作(例如,下面关于与无线设备有关的示例实施例讨论的操作)。在一些实施例中,ue 2100可以包括显示器,用于显示从接收到的比特流中解码的图像。例如,ue 2100可以包括电视。
[0112]
图22是示出了根据本发明构思的实施例的被配置为对比特流进行解码的解码器2200的元件的框图。解码器2200可以包括网络接口电路2207(也被称为网络接口),网络接口电路2207被配置为与其他设备通信。解码器2200还可以包括耦接到存储器电路2205(也被称为存储器)的处理电路2203(也被称为处理器),存储器电路2205耦接到处理电路。存储器电路2205可以包括计算机可读程序代码,该计算机可读程序代码在由处理电路2203执行时使处理电路执行根据本文公开的实施例的操作。根据其他实施例,处理电路2203可以被定义为包括存储器,使得不需要单独的存储器电路。
[0113]
如本文所讨论的,解码器2200的操作可以由处理电路2203和网络接口2207执行。例如,处理电路2203可以控制网络接口2207从一个或多个比特流修改实体(例如,转码器)接收数据的编码表示和/或向一个或多个比特流修改实体(例如,转码器)发送数据的编码表示。此外,模块可以存储在存储器2205中,并且这些模块可以提供指令,使得当模块的指令由处理电路2203执行时,处理电路2203执行相应的操作(例如,下面关于与解码器有关的示例实施例讨论的操作)。
[0114]
图23是示出了根据本发明构思的实施例的被配置为对比特流进行编码的编码器2300的元件的框图。如图所示,编码器2300可以包括网络接口电路2307(也被称为网络接口),网络接口电路2307被配置为与一个或多个其他设备传送比特流。编码器2300还可以包括耦接到网络接口电路的处理电路2303(也被称为处理器)、以及耦接到处理电路的存储器电路2305(也被称为存储器)。存储器电路2305可以包括计算机可读程序代码,该计算机可
读程序代码当由处理电路2303执行时使处理电路执行根据本文公开的实施例的操作。根据其他实施例,处理电路2303可以被定义为包括存储器,使得不需要单独的存储器电路。
[0115]
将预期的输出视频质量基于诸如胶片颗粒sei消息之类的sei消息可能是有问题的,因为不需要解码器来实现这些胶片颗粒sei消息。这意味着考虑使用胶片颗粒sei消息来提高视频质量的编码器有向消费者提供无噪声的解码视频序列而导致不良体验的风险。
[0116]
由于多种原因,将av1的film_grain_params_ref_idx方法用于vvc编解码器可能是低效的。例如,如果图片不使用任何图片进行预测,则没有胶片颗粒参数可以参考。附加地或备选地,胶片颗粒参数值不能在层之间共享,除非在该层中存在用作当前图片的参考图片的参考图片。附加地或备选地,单个胶片颗粒参数值集合可用于图片的序列,但是在av1中,需要针对每个参考图片存储一个参数集合而不是仅一个单个参数集合。
[0117]
像在av1的胶片颗粒方法中那样使用16比特来用信号通知种子是低效的。对于60fps的比特流,成本接近1kbps,这是100kbps比特流的1%开销。
[0118]
本文描述的各种实施例描述了从编码数据表示中的参数集(例如,自适应参数集)中解码出胶片颗粒模型语法元素。种子语法元素也可以例如从图片头或片头中解码。种子语法元素的长度可以根据另一参数集中的长度语法元素进行配置并解码。在一些实施例中,可以基于以下参数值或以下参数值的子集来生成种子:经解码的种子语法元素、图片的层id、片的片地址、子图片的子图片id、以及图片的标识符值(例如,图片顺序计数的最低有效位)。
[0119]
一些实施例使得对于不使用任何图片进行参考的图片也能够参考先前胶片颗粒模型。附加或备选实施例支持在不同层(时间子层和例如空间可伸缩层二者)的图片之间共享胶片颗粒模型参数值。还可以针对多个图片的序列存储单个胶片颗粒参数集合。附加或备选实施例针对其中使用胶片颗粒模型的低比特率比特流提供显著的比特节省。
[0120]
在以下描述的一些实施例中,已经描述了各种过程。本领域技术人员应当理解,两个或更多个实施例或实施例的一部分可以组合以形成仍被本公开描述的发明所涵盖的新解决方案。以下实施例可以应用于单个静止图片或应用于图片的视频序列。这些实施例中的编码数据表示可以与比特流相同。
[0121]
在一些实施例中,描述了在编码图片或编码视频序列中用信号通知胶片颗粒语法元素的过程。在该实施例中,可以假设胶片颗粒模型包括:胶片颗粒启用标志;胶片颗粒模型语法元素;一个或多个种子语法元素;种子值生成过程;一个或多个所生成的种子值;以及胶片颗粒过程。
[0122]
该模型可以如图10所示地操作。可以在编码图片或视频数据表示(例如,比特流)中用信号通知胶片颗粒启用标志1010。该标志的一个值可以指定胶片颗粒生成被启用,而另一个值可以指定胶片颗粒生成被禁用。胶片颗粒启用标志可以由数据表示中的1比特的标志组成。
[0123]
可以在编码图片或视频数据表示(例如,比特流1050)中用信号通知一个或多个种子语法元素1030。在解码过程1070中,种子语法元素1030可以被解码为一个或多个经解码的种子值1072。种子值生成过程1080可以使用经解码的种子值1072作为输入来生成一个或多个所生成的种子值1082。种子值生成过程1080可以附加地或备选地使用其他经解码值1052作为输入,其中其他经解码值1052是从编码数据表示(例如,比特流1050)中的其他语
法元素中解码的。
[0124]
在编码数据表示1050中,还存在胶片颗粒模型语法元素1020,在解码过程1060中它们被解码为经解码的胶片颗粒模型值1062。胶片颗粒过程1040使用所生成的种子值1082和经解码的胶片颗粒模型值1062作为输入来生成所生成的胶片颗粒1090。所生成的胶片颗粒1090优选地被应用于从编码数据表示1050中解码的图片。可以应用所生成的胶片颗粒1090,使得经解码图片的具有胶片颗粒的一个版本被解码器输出,而经解码图片的不具有胶片颗粒的另一版本由解码器存储以用于未来图片的帧间预测。
[0125]
胶片颗粒过程1040可以包括伪随机数生成器1042,其使用所生成的种子值1082作为输入。伪随机数生成器1042可以通过所生成的种子值1082初始化并且以如下方式操作:使得如果用于初始化的种子值是相同的,则来自伪随机数生成器1042的所生成值的序列是相同的。这意味着所生成的胶片颗粒1090可以完全通过编码数据表示中的语法元素控制。在一些示例中,伪随机数生成器1042可以包括线性反馈移位寄存器(“lfsr”),该线性反馈移位寄存器是它的比特是其先前状态的线性函数的移位寄存器。lfsr的初始值可以被设置为等于所生成的种子值1082。
[0126]
如果胶片颗粒启用标志1010指定胶片颗粒生成被禁用,则不将所生成的胶片颗粒1090应用于任何图片并且不执行胶片颗粒过程1040。此外,诸如胶片颗粒模型语法元素1020和种子语法元素1030之类的其他语法元素的存在可以以胶片颗粒启用标志1010为条件,使得如果标志1010指定胶片颗粒生成被禁用,则这些语法元素不存在于编码数据表示中。
[0127]
在附加或备选实施例中,提出从诸如dps、vps、sps、pps或aps之类的参数集中解码胶片颗粒启用标志1010和胶片颗粒模型语法元素1020。提出从图片头或片头中解码种子语法元素1030。
[0128]
本实施例中的胶片颗粒启用标志1010可以从如上所述的参数集中解码。图11示出了其中从当前vvc草案规范之上的序列参数集(sps)中解码胶片颗粒启用标志1010的示例。
[0129]
等于1的parameter_set_film_grain_enable_flag指定胶片颗粒生成被启用。等于0的parameter_set_film_grain_enable_flag指定胶片颗粒生成被禁用。
[0130]
在另一示例中,将无胶片颗粒约束标志添加到如图12所示的general_constraint_info()语法表。在当前的vvc草案中,general_constraint_info()可以存在于dps、vps和sps中的任何参数集中。例如,语法表可以存在于所有三个参数集中或仅存在于dps中,等等。
[0131]
等于1的no_film_grain_constraint_flag指定parameter_set_film_grain_enabled_flag应等于0。等于0的no_film_grain_constraint_flag不施加这种约束。
[0132]
在另一示例中,无胶片颗粒约束标志存在于视频可用性信息(vui)中,在当前版本的vvc中视频可用性信息(vui)在sps中有条件地用信号通知。
[0133]
在一些实施例中,从序列参数集(sps)中解码胶片颗粒模型语法元素。在一个实施例中,如图13所示,如果胶片颗粒启用标志指定胶片颗粒生成被启用,则对语法元素进行解码。这里的film_grain_model_syntax_elements()行表示胶片颗粒模型语法元素。注意,胶片颗粒模型的细节不在本发明的范围内。还要注意,本发明可以应用于许多不同的胶片颗粒模型,例如,如前所述的胶片颗粒特性sei胶片颗粒模型或av1胶片颗粒模型。sps_seq_
parameter_set_id是指定sps的id值的码字。
[0134]
在附加或备选实施例中,从自适应参数集(aps)中解码胶片颗粒模型语法元素。在图14所示的语法表中,adaptation_parameter_set_id是指定aps的id值的码字。aps_params_type指定在aps中以及在图14所示的示例中携带什么数据。值3用于胶片颗粒模型语法元素。应用了胶片颗粒过程的图片可以标识要由胶片颗粒参数集标识符语法元素使用的胶片颗粒模型值,该胶片颗粒参数集标识符语法元素存在于图片的图片头中或图片的片的片头中。然后,要使用的胶片颗粒模型值是从具有与胶片颗粒参数集标识符语法元素的值相等的id值的aps中解码的胶片颗粒模型值。
[0135]
在附加或备选实施例中,如果胶片颗粒启用标志指定胶片颗粒生成被启用,则对语法元素进行解码。
[0136]
在一些实施例中,从图片头或片头中解码种子语法元素。图15中示出了其中种子语法由一个单个的8比特语法元素组成的示例语法。
[0137]
可以补充传送种子值的实际语法的其他信令元素可以包括:
[0138]
1.通过胶片颗粒启用标志来选通种子语法元素的存在
[0139]
2.需要解码器对图片头或片头中的1比特标志进行解码,该1比特标志选通种子语法元素的存在
[0140]
3.1和2的组合,其中1比特标志还由胶片颗粒启用标志选通
[0141]
4.设计语法使得当解码器对种子语法元素进行解码时,它还对参数集id进行解码,该参数集id指定具有与经解码的参数集id值匹配的id值的参数集的模型将用于胶片颗粒过程。
[0142]
在图16所示的表中示出了所有元素1至4的组合。film_grain_parameter_set_id指定要使用的参数集,并因此指定在胶片颗粒过程中要使用的经解码的胶片颗粒模型值。参数集在这里可以是自适应参数集。在其中胶片颗粒模型语法元素携带在pps、sps、vps或dps中的版本中,可以不存在如图16所示的film_grain_parameter_set_id语法元素。相反,可以使用所参考的参数集,其由存在于图片头或片头中的pps id语法元素标识,并且不被图16所示的语法元素表中所示的任何标志选通,因为许多其他解码过程需要标识所参考的参数集。
[0143]
注意,使用单个8比特语法元素携带种子值是示例,并且其他长度或许多其他类型的语法元素(例如,可变长度语法元素)也是可能的。
[0144]
在图17中示出了图10中的编码数据表示1050的一些实施例。在这些实施例中,存在一个携带胶片颗粒启用标志语法元素的参数集类型a和一个包含胶片颗粒模型语法元素的参数集类型b。参数集类型a可以是sps,但如前所述,胶片颗粒启用标志的其他放置也是可能的。参数集类型b可以是aps,但这里其他放置也是可能的。在该实施例的一个变型中,参数集类型a和b是相同的,例如sps或pps,这意味着胶片颗粒启用标志和胶片颗粒模型语法元素是从相同的参数集中解码的。图片头或片包含从其解码出一个或多个所参考的参数集id值的一个或多个语法元素,该语法元素指定当前图片或片参考哪个参数集或哪些参数集,并因此指定胶片颗粒生成是否被启用,并且如果被启用,则指定哪些胶片颗粒模型值用于胶片颗粒过程。
[0145]
在一些实施例中,尽管未在图17中示出,但种子语法元素存在于片中并且存在用
于包含该片的编码图片的图片头。在该示例中,至少一个所参考的参数集id语法元素可以存在于图片头中并且用于导出哪些胶片颗粒模型值用于胶片颗粒过程。在存在两个或更多个携带胶片颗粒语法元素的参数集类型的情况下,在片和图片头中都可以存在所参考的参数集id语法元素。这里描述的片语法元素可以存在于片的片头中并从片的片头中解码。
[0146]
一些实施例解决了以下问题。
[0147]
首先,在av1中,如果图片是全帧内编码的并且不具有类型inter_frame,则在胶片颗粒生成被用于图片的情况下,胶片颗粒模型语法元素的完整集合必须被包括在图片头中。与av1设计相比,所提出的设计将胶片颗粒模型语法元素放在参数集中,这意味着任何图片都可以使用所参考的参数集id语法元素来参考模型,而比特成本大大降低。此外,如果多个图片集合共享相同的胶片颗粒特性,则可以在单独的aps或pps中有效地用信号通知一个以上的模型,并且每个图片使用aps id或pps id参考每个模型。
[0148]
其次,在av1中,film_grain_params_ref_idx语法元素参考了参考图片。使用该设计,可能存在属于较高层但不能参考用于先前图片的模型的图片,该先前图片属于不同的较低层。通过将模型放置在所提出的参数集中,提供了非常灵活的模型参考支持。考虑图18,其中访问单元是包含个张图片和相关参数集的比特流的一部分。第一访问单元由一个参数集id值等于7的参数集组成,该参数集id值是在语法元素中用信号通知的。参数集的层id等于0,并且该值也在参数集中的语法元素中用信号通知。图中所有三个图片都使用了参数集,因为它们都包含值为7的语法元素,其指定图片使用id值等于7的参数集。然后每个图片属于不同的层。尽管参数集属于不同的层,但所有图片都可以使用该参数集,因为参数集的层id等于或小于图片的层id。对于时间子层id以及诸如空间可伸缩层之类的层id都是这种情况。
[0149]
第三,通过使用所提出的方法,需要将最少数量的胶片颗粒模型存储在解码器中。例如,如果我们假设使用一个模型,并且当前图片使用的参考图片数量等于n,则av1方法需要存储n个模型,而在所提出的方法中,在一个参数集中仅需要存储一个模型。
[0150]
在一些实施例中,解码器可以执行以下操作的全部或子集以从编码数据表示中解码和输出图片。首先,解码器可以从参数集中解码胶片颗粒启用标志。其次,解码器可以从参数集中解码胶片颗粒模型语法元素并导出经解码的胶片颗粒模型值。第三,解码器可将来自当前图片的图片头的一个或多个种子语法元素解码为一个或多个经解码的种子值。第四,解码器可以基于经解码的种子值来导出所生成的种子值。第五,解码器可以从编码数据表示中解码当前图片。第六,解码器可以使用经解码的种子值或所生成的种子值来初始化伪随机数生成器,该伪随机数生成器在由解码器执行的将胶片颗粒应用于经解码的当前图片的胶片颗粒生成过程中使用。第七,解码器可以输出当前图片。
[0151]
在附加或备选实施例中,解码器可以执行以下操作的全部或子集以用于从编码数据表示中解码和输出图片。首先,解码器可以从参数集中解码胶片颗粒启用标志。其次,解码器可以从参数集中解码胶片颗粒模型语法元素并导出经解码的胶片颗粒模型值。第三,解码器可以将来自当前图片的第一片的第一片头的一个或多个种子语法元素解码为一个或多个第一经解码种子值。第四,解码器可以基于第一经解码种子值来导出第一所生成种子值。第五,解码器可以从编码数据表示中解码第一当前片。第六,解码器可以使用第一经解码种子值或第一所生成种子值来初始化伪随机数生成器,该伪随机数生成器在由解码器
60fps比特流的1%比特成本。如果改为使用4比特的种子长度,则实现0.75%的比特率降低,这是显著的比特率降低。
[0160]
在一些实施例中,种子值生成过程由解码器执行。如前所述,种子值生成过程将经解码的种子值和其他经解码值作为输入并输出所生成的种子值。
[0161]
在一些实施例中,所生成的种子值g可以被导出为:
[0162]
g=(o《《n) d
[0163]
其中o是从其他经解码值中导出的值,n是用于种子语法元素的比特数,d是经解码的种子语法元素的值。例如,如果从其他经解码值中导出的值等于10,用于种子语法元素的比特数等于4且种子语法元素的比特值等于9(其二进制格式为1001),则所生成的种子值g的值等于(10《《4) 9=169。
[0164]
在附加或备选实施例中,o的值基于层id,使得如果图片a和图片b的层id不同,则当图片a和图片b使用相同的经解码的种子值时,图片a和图片b的所生成的种子不同。
[0165]
在附加或备选实施例中,o的值基于时间子层id,使得如果图片a和图片b的时间子层id不同,则当图片a和图片b使用相同的经解码的种子值时,图片a和图片b的所生成的种子不同。
[0166]
在附加或备选实施例中,o的值基于片地址,使得如果图片a和图片b的片地址值不同,则当图片a和图片b使用相同的经解码的种子值时,图片a和图片b的所生成的种子不同。
[0167]
在附加或备选实施例中,o的值基于片类型,使得如果图片a和图片b的片类型值不同,则当图片a和图片b使用相同的经解码的种子值时,图片a和图片b的所生成的种子不同。
[0168]
在附加或备选实施例中,o的值基于子图片id,使得如果图片a和图片b的子图片id不同,则当图片a和图片b使用相同的经解码的种子值时,图片a和图片b的所生成的种子不同。
[0169]
在附加或备选实施例中,o的值基于例如存在于片头或图片头中的(增量编码的)量化参数值,使得如果图片a和图片b的量化参数值不同,则当图片a和图片b使用相同的经解码的种子值时,图片a和图片b的所生成的种子不同。
[0170]
在附加或备选实施例中,用于种子语法元素的比特数等于0,这意味着在图片的图片头或片的片头中不存在用信号通知的种子。在这种情况下,对于上面讨论的所有图片a和b,经解码的种子值被认为是相同的。
[0171]
在一些实施例中,用于种子语法元素的比特数是可变的。在种子语法元素被指定为使用0比特的情况下,所生成的种子值仅能从其他经解码值中导出。
[0172]
在一些实施例中,解码器可以执行以下操作的全部或子集以用于从编码数据表示中解码图片。首先,解码器可以从编码数据表示中解码长度语法元素。其次,解码器可以从经解码的长度语法元素中导出长度值l。第三,解码器可以将来自当前图片的图片头或来自当前图片的片头的种子语法元素解码为经解码的种子值,其中种子语法元素由l个比特组成。第四,解码器可以将所生成的种子值导出为等于(o《《l) d,其中o是从编码数据表示中的第一经解码语法元素集合中导出的值,并且d是经解码的种子值。第五,解码器可以从编码数据表示中解码当前图片。第六,解码器可以使用所生成的种子值来初始化伪随机数生成器,该伪随机数生成器在由解码器执行的将胶片颗粒应用于经解码的当前图片的胶片颗粒生成过程中使用。第七,解码器可以输出当前图片。
[0173]
在一些实施例中,第一经解码语法元素集合可以包括以下语法元素的子集:种子语法元素;图片的层id;图片的时间子层id、片类型值、量化参数值、片的片地址;子图片的子图片id;以及图片的标识符值,例如,当前图片的图片顺序计数的最低有效位。
[0174]
在一些实施例中,提供了一种用于从编码数据表示中解码和输出图片的方法。该方法可以包括从编码数据表示中的参数集中获得胶片颗粒模型语法元素;通过对胶片颗粒模型语法元素进行解码来导出经解码的胶片颗粒模型值;从编码数据表示中获得种子语法元素;通过对种子语法元素进行解码来导出所生成的种子值;从编码数据表示中解码当前图片;从伪随机数生成器生成胶片颗粒值,其中,伪随机数生成器通过所生成的种子值初始化;将所生成的胶片颗粒值应用于当前图片;以及输出当前图片。
[0175]
在附加或备选实施例中,从编码数据表示中解码当前图片包括从编码数据表示中解码第一图片。将所生成的胶片颗粒值应用于当前图片包括将所生成的胶片颗粒值应用于第一图片以获得包含胶片颗粒的第二图片。输出当前图片包括输出第二图片。将第一图片存储在解码图片缓冲区中。从编码数据表示中解码第三图片,其中,所存储的第一图片用于在第三图片的解码过程中进行帧间预测。
[0176]
在附加或备选实施例中,种子语法元素是从编码数据表示中的图片头或片头中获得的。
[0177]
在附加或备选实施例中,胶片颗粒模型语法元素是从序列参数集中获得的。
[0178]
在附加或备选实施例中,从自适应参数集中获得胶片颗粒模型语法元素,其中,自适应参数集包括一个adaptation_parameter_set_id语法元素和一个具有等于胶片颗粒类型值的值的参数集类型语法元素,并且图片头或片头包括film_grain_parameter_set_id语法元素,该film_grain_parameter_set_id语法元素的值等于adaptation_parameter_set_id语法元素的值。
[0179]
在一些实施例中,提供了一种用于从编码数据表示中解码和输出图片的方法。该方法可以包括从编码数据表示中获得胶片颗粒模型语法元素;通过对胶片颗粒模型语法元素进行解码来导出经解码的胶片颗粒模型值;从编码数据表示中获得胶片颗粒种子长度语法元素;通过对胶片颗粒种子长度语法元素进行解码来导出胶片颗粒种子长度值l1;从编码数据表示中获得种子语法元素,其中,种子语法元素恰好包括l1比特;通过对种子语法元素进行解码来导出所生成的种子值;从编码数据表示中解码当前图片;从伪随机数生成器生成胶片颗粒值,其中,伪随机数生成器通过所生成的种子值初始化;将所生成的胶片颗粒值应用于当前图片;以及输出当前图片。
[0180]
在附加或备选实施例中,从编码数据表示中解码当前图片包括从编码数据表示中解码第一图片。将所生成的胶片颗粒值应用于当前图片包括将所生成的胶片颗粒值应用于第一图片以获得包含胶片颗粒的第二图片。输出当前图片包括输出第二图片。可以将第一图片存储在解码图片缓冲区中。可以从编码数据表示中解码第三图片,其中,所存储的第一图片用于在第三图片的解码过程中进行帧间预测。
[0181]
在附加或备选实施例中,通过对种子语法元素进行解码来导出所生成的种子值包括:将所生成的种子值导出为等于(o《《l1) d,其中,o是从编码数据表示中的第一经解码语法元素集合中导出的值,并且d是经解码的种子语法元素的值。
[0182]
在附加或备选实施例中,第一经解码语法元素集合包括以下语法元素的子集:经
解码的种子语法元素;图片的图层id;片的片地址;子图片的子图片id;以及图片的标识符值,例如,图片顺序计数的最低有效位。
[0183]
现在将参考根据本发明构思的一些实施例的图24至图26的流程图来讨论(使用图21的结构实现的)解码器2200的操作。例如,模块可以存储在图22的存储器2205中,并且这些模块可以提供指令,使得当模块的指令由相应的解码器处理电路2203执行时,处理电路2203执行流程图的相应操作。尽管下面关于解码器2200描述了图24至图26,但是图24至图26中的操作可以由任何合适的比特流修改实体(例如,编码器2300)执行。
[0184]
在图24中,在框2410,处理电路2203对胶片颗粒启用标志进行解码。
[0185]
在框2420,处理电路2203基于胶片颗粒启用标志来确定胶片颗粒输出过程被启用。
[0186]
在框2430,处理电路2203从编码数据表示中获得胶片颗粒模型语法元素。在一些实施例中,从编码数据表示中的参数集中获得胶片颗粒模型语法元素是响应于确定胶片颗粒输出过程被启用而进行的。
[0187]
在框2440,处理电路2203通过对胶片颗粒模型语法元素进行解码来确定胶片颗粒模型值。
[0188]
在框2450,处理电路2203从编码数据表示中解码当前图片。
[0189]
在框2460,处理电路2203通过将所生成的胶片颗粒应用于当前图片来生成输出图片。
[0190]
图25至图26描绘了生成所生成的胶片颗粒的示例。
[0191]
在图25中,在框2562,处理电路2203从编码数据表示中获得种子语法元素。在一些实施例中,从编码数据表示中获得种子语法元素包括从编码数据表示中的图片头或片头中获得种子语法元素。在附加或备选实施例中,从编码数据表示中的参数集中获得胶片颗粒模型语法元素可以包括从自适应参数集aps中获得胶片颗粒模型语法元素。aps可以包括aps集标识符语法元素和参数集类型语法元素,该参数集类型语法元素包括与胶片颗粒类型值相等的值。图片头或片头可以包括胶片颗粒参数集标识符语法元素,该胶片颗粒参数集标识符语法元素包括与aps集标识符语法元素的值相等的值。
[0192]
在框2564,处理电路2203通过对种子语法元素进行解码来确定种子值。
[0193]
在框2566,处理电路2203基于种子值来生成所生成的胶片颗粒。在一些实施例中,从数字生成器(例如,线性反馈移位寄存器)中生成所生成的胶片颗粒。
[0194]
在图26中,在框2662,处理电路2203从编码数据表示中获得胶片颗粒种子长度语法元素。在框2664,处理电路2203通过对胶片颗粒种子长度语法进行解码来确定胶片颗粒种子长度值l1。在一些实施例中,通过对种子语法元素进行解码来确定种子值包括确定种子值为(o《《l1) d。o可以是从编码数据表示中的第一经解码语法元素集合中导出的值,并且d可以是种子语法元素的值。在附加或备选实施例中,第一经解码语法元素集合包括以下至少一项:种子语法元素;当前图片的层id;当前图片的时间子层id;片类型值;量化参数值;当前图片的片的片地址;当前图片的子图片的子图片id;以及当前图片的标识符值,例如,当前图片的图片顺序计数的最低有效位。
[0195]
返回到图24,在框2470,处理电路2203将当前图片存储在解码图片缓冲区中。
[0196]
在框2480,处理电路2203输出该输出图片。
[0197]
在框2490,处理电路2203使用当前图片进行帧间预测以从编码数据表示中解码后续图片。在一些实施例中,后续图片是在生成输出图片之后被解码的。
[0198]
关于解码器、编码器和相关方法的一些实施例,来自图24的流程图的各种操作可以是可选的。例如,关于示例实施例1的方法(如下所述),图24的框2410、2420、2470和2490的操作可以是可选的。例如,关于示例实施例11的方法(如下所述),图24的框2410、2420、2470和2490的操作可以是可选的。
[0199]
下面讨论示例实施例。
[0200]
实施例1、一种由解码器执行的方法,该方法包括:
[0201]
从编码数据表示中的参数集中获得(2430)胶片颗粒模型语法元素;
[0202]
通过对胶片颗粒模型语法元素进行解码来确定(2440)胶片颗粒模型值;
[0203]
从编码数据表示中解码(2450)当前图片;
[0204]
通过将所生成的胶片颗粒应用于所述当前图片来生成(2460)输出图片;以及
[0205]
输出(2480)该输出图片。
[0206]
实施例2、根据实施例1的方法,还包括:
[0207]
将当前图片存储(2470)在解码图片缓冲区dpb中;以及
[0208]
使用当前图片进行帧间预测以从编码数据表示中解码(2490)后续图片,该后续图片是在生成输出图片之后解码的。
[0209]
实施例3、根据实施例1至2中任一项的方法,还包括:
[0210]
从编码数据表示中获得(2562)种子语法元素;
[0211]
通过对种子语法元素进行解码来确定(2564)种子值;以及
[0212]
基于种子值来从数字生成器生成(2566)所生成的胶片颗粒。
[0213]
实施例4、根据实施例3的方法,其中,数字生成器包括线性反馈移位寄存器。
[0214]
实施例5、根据实施例3至4中任一项的方法,其中,从编码数据表示中获得种子语法元素包括从编码数据表示中的图片头或片头中获得该种子语法元素。
[0215]
实施例6、根据实施例5所述的方法,其中,从编码数据表示中的参数集中获得胶片颗粒模型语法元素包括从自适应参数集aps中获得该胶片颗粒模型语法元素,aps包括:
[0216]
aps集标识符语法元素;以及
[0217]
参数集类型语法元素,该参数集类型语法元素包括与胶片颗粒类型值相等的值,以及
[0218]
其中,图片头或片头包括胶片颗粒参数集标识符语法元素,该胶片颗粒参数集标识符语法元素包括与aps集标识符语法元素的值相等的值。
[0219]
实施例7、根据实施例3至6中任一项的方法,还包括:
[0220]
从编码数据表示中获得(2662)胶片颗粒种子长度语法元素;以及
[0221]
通过对胶片颗粒种子长度语法进行解码来确定(2664)胶片颗粒种子长度值l1,
[0222]
其中,种子语法元素包括l1个比特。
[0223]
实施例8、根据实施例7的方法,其中,通过对种子语法元素进行解码来确定种子值包括确定种子值为(o《《l1) d,
[0224]
其中o是从编码数据表示中的第一经解码语法元素集合中导出的值,以及
[0225]
其中d是种子语法元素的值。
[0226]
实施例9、根据实施例8的方法,其中,第一经解码语法元素集合包括以下至少一项:
[0227]
种子语法元素;
[0228]
当前图片的层id;
[0229]
当前图片的时间子层id;
[0230]
片类型值;
[0231]
量化参数值;
[0232]
当前图片的片的片地址;
[0233]
当前图片的子图片的子图片id;以及
[0234]
当前图片的标识符值,如当前图片的图片顺序计数的最低有效位。
[0235]
实施例10、根据实施例1至9的方法,还包括:
[0236]
从参数集中解码(2410)胶片颗粒启用标志;以及
[0237]
基于胶片颗粒启用标志来确定(2420)胶片颗粒输出过程被启用,
[0238]
其中,从编码数据表示中的参数集中获得胶片颗粒模型语法元素是响应于确定胶片颗粒输出过程被启用而进行的。
[0239]
实施例11、一种由编码器执行的方法,该方法包括:
[0240]
从编码数据表示中的参数集中获得(2430)胶片颗粒模型语法元素;
[0241]
通过对胶片颗粒模型语法元素进行解码来确定(2440)胶片颗粒模型值;
[0242]
从编码数据表示中解码(2450)当前图片;
[0243]
通过将所生成的胶片颗粒应用于当前图片来生成(2460)输出图片;以及
[0244]
输出(2480)该输出图片。
[0245]
实施例12、根据实施例11的方法,还包括:
[0246]
从编码数据表示中获得(2562)种子语法元素;
[0247]
通过对种子语法元素进行解码来确定(2564)种子值;以及
[0248]
基于种子值从数字生成器生成(2566)所生成的胶片颗粒。
[0249]
实施例13、根据实施例12的方法,其中,数字生成器包括线性反馈移位寄存器。
[0250]
实施例14、根据实施例12至13中任一项的方法,其中,从编码数据表示中获得种子语法元素包括从编码数据表示中的图片头或片头中获得种子语法元素。
[0251]
实施例15、根据实施例12至14中任一项的方法,还包括:
[0252]
从编码数据表示中获得(2662)胶片颗粒种子长度语法元素;以及
[0253]
通过对胶片颗粒种子长度语法进行解码来确定(2664)胶片颗粒种子长度值l1,
[0254]
其中,种子语法元素包括l1个比特。
[0255]
实施例16、根据实施例15的方法,其中,通过对种子语法元素进行解码来确定种子值包括确定种子值为(o《《l1) d,
[0256]
其中o是从编码数据表示中的第一经解码语法元素集合中导出的值,以及
[0257]
其中d是种子语法元素的值。
[0258]
实施例17、提供了一种解码器(2200),该解码器包括:
[0259]
处理电路(2203);
[0260]
存储器(2205),与该处理电路耦接,其中该存储器包括指令,该指令在由处理电路
执行时使该解码器执行包括以下项的操作:
[0261]
从编码数据表示中的参数集中获得(2430)胶片颗粒模型语法元素;
[0262]
通过对胶片颗粒模型语法元素进行解码来确定(2440)胶片
[0263]
颗粒模型值;
[0264]
从编码数据表示中解码(2450)当前图片;
[0265]
通过将所生成的胶片颗粒应用于当前图片来生成(2460)输出图片;以及
[0266]
输出(2480)该输出图片。
[0267]
实施例18、根据实施例17的解码器,该操作还包括根据实施例2至10的任何操作。
[0268]
实施例19、提供了一种编码器(2300),该编码器包括:
[0269]
处理电路(2303);
[0270]
存储器(2305),与该处理电路耦接,其中该存储器包括指令,该指令在由处理电路执行时使该编码器执行包括以下项的操作:
[0271]
从编码数据表示中的参数集中获得(2430)胶片颗粒模型语法元素;
[0272]
通过对胶片颗粒模型语法元素进行解码来确定(2440)胶片颗粒模型值;
[0273]
从编码数据表示中解码(2450)当前图片;
[0274]
通过将所生成的胶片颗粒应用于当前图片来生成(2460)输出图片;以及
[0275]
输出(2480)该输出图片。
[0276]
实施例20、根据实施例19的编码器,该操作还包括根据实施例11至16的任何操作。
[0277]
实施例21、一种计算机程序,包括要由解码器(2200)执行以执行操作的程序代码,操作包括:
[0278]
从编码数据表示中的参数集中获得(2430)胶片颗粒模型语法元素;
[0279]
通过对胶片颗粒模型语法元素进行解码来确定(2440)胶片颗粒模型值;
[0280]
从编码数据表示中解码(2450)当前图片;
[0281]
通过将所生成的胶片颗粒应用于当前图片来生成(2460)输出图片;以及
[0282]
输出(2480)该输出图片。
[0283]
实施例22、根据实施例21的计算机程序,该操作还包括根据实施例2至10的任何操作。
[0284]
实施例23、一种计算机程序,包括要由编码器(2300)执行以执行操作的程序代码,操作包括:
[0285]
从编码数据表示中的参数集中获得(2430)胶片颗粒模型语法元素;
[0286]
通过对胶片颗粒模型语法元素进行解码来确定(2440)胶片颗粒模型值;
[0287]
从编码数据表示中解码(2450)当前图片;
[0288]
通过将所生成的胶片颗粒应用于当前图片来生成(2460)输出图片;以及
[0289]
输出(2480)该输出图片。
[0290]
实施例24、根据实施例23的计算机程序,该操作还包括根据实施例11至16的任何操作。
[0291]
实施例25、一种计算机程序产品,包括非暂时性存储介质(2205),该非暂时性存储介质(2205)包括要由解码器(2200)的处理电路(2203)执行的程序代码,由此该程序代码的执行使该解码器执行包括以下项的操作:
[0292]
从编码数据表示中的参数集中获得(2430)胶片颗粒模型语法元素;
[0293]
通过对胶片颗粒模型语法元素进行解码来确定(2440)胶片颗粒模型值;
[0294]
从编码数据表示中解码(2450)当前图片;
[0295]
通过将所生成的胶片颗粒应用于当前图片来生成(2460)输出图片;以及
[0296]
输出(2480)该输出图片。
[0297]
实施例26、根据实施例25的计算机程序产品,该操作还包括根据实施例2至10的任何操作。
[0298]
实施例27、一种计算机程序产品,包括非暂时性存储介质(2305),该非暂时性存储介质(2305)包括要由编码器(2300)的处理电路(2303)执行的程序代码,由此该程序代码的执行使该编码器执行包括以下项的操作:
[0299]
从编码数据表示中的参数集中获得(2430)胶片颗粒模型语法元素;
[0300]
通过对胶片颗粒模型语法元素进行解码来确定(2440)胶片颗粒模型值;
[0301]
从编码数据表示中解码(2450)当前图片;
[0302]
通过将所生成的胶片颗粒应用于当前图片来生成(2460)输出图片;以及
[0303]
输出(2480)该输出图片。
[0304]
实施例28、根据实施例27的计算机程序产品,该操作还包括根据实施例11至16的任何操作。
[0305]
实施例29、一种非暂时性计算机可读介质,具有存储其中的指令,该指令可由处理电路(2203)执行以使解码器(2200)执行操作,该操作包括:
[0306]
从编码数据表示中的参数集中获得(2430)胶片颗粒模型语法元素;
[0307]
通过对胶片颗粒模型语法元素进行解码来确定(2440)胶片颗粒模型值;
[0308]
从编码数据表示中解码(2450)当前图片;
[0309]
通过将所生成的胶片颗粒应用于当前图片来生成(2460)输出图片;以及
[0310]
输出(2480)该输出图片。
[0311]
实施例30、根据实施例29的非暂时性计算机可读介质,该操作还包括根据实施例2至10的任何操作。
[0312]
实施例31、一种非暂时性计算机可读介质,具有存储其中的指令,该指令可由处理电路(2303)执行以使编码器(2300)执行操作,该操作包括:
[0313]
从编码数据表示中的参数集中获得(2430)胶片颗粒模型语法元素;
[0314]
通过对胶片颗粒模型语法元素进行解码来确定(2440)胶片颗粒模型值;
[0315]
从编码数据表示中解码(2450)当前图片;
[0316]
通过将所生成的胶片颗粒应用于当前图片来生成(2460)输出图片;以及
[0317]
输出(2480)该输出图片。
[0318]
实施例32、根据实施例31的非暂时性计算机可读介质,该操作还包括根据实施例11至16的任何操作。
[0319]
下面讨论进一步的定义和实施例。
[0320]
在对发明构思的各种实施例的以上描述中,要理解的是,本文使用的术语仅用于描述具体的实施例的目的,而不意图限制发明构思。除非另外定义,否则本文使用的所有术语(包括技术和科学术语)具有发明构思所属领域的普通技术人员通常所理解的相同意义。
还应当理解,诸如在通用词典中定义的那些术语之类的术语应被解释为具有与它们在本说明书的上下文和相关技术中的意义相一致的意义,而不被解释为理想或过于表面的意义,除非本文如此明确地定义。
[0321]
当元件被称为相对于另一元件进行“连接”、“耦接”、“响应”或其变型时,它可以直接连接、耦接到或者响应于其他元件,或者可以存在中间元件。相反,当元件被称作相对于另一元件进行“直接连接”、“直接耦接”、“直接响应”或其变型时,不存在中间元件。贯穿全文,类似附图标记表示类似的元件。此外,本文使用的“耦接”、“连接”、“响应”或其变型可以包括无线耦接、连接或响应。如本文使用的,单数形式“一”,“一个”和“所述”意在还包括复数形式,除非上下文明确地给出相反的指示。为了简洁和/或清楚,可能没对公知的功能或结构进行详细描述。术语“和/或”(缩写为“/”)包括一个或多个相关所列项目的任何和所有组合。
[0322]
将理解的是,虽然本文中可以使用术语第一、第二、第三等来描述各个元件/操作,但这些元件/操作不应被这些术语限制。这些术语仅用于将一个元件/操作与另一个元件/操作相区分。因此,在一些实施例中的第一元件/操作可以在其他实施例中被称作第二元件/操作,而不会脱离本发明构思的教导。贯穿说明书,相同的附图标记或相同的参考符号表示相同或类似的元件。
[0323]
如本文使用的术语“包括(comprise、comprising、comprises、include、including、includes)”、“具有(have、has、having)”或其变形是开放式的,并且包括一个或多个所陈述的特征、整数、元件、步骤、组件、或功能,但不排除存在或添加一个或多个其他特征、整数、元件、步骤、组件、功能或其组合。此外,如本文的使用,常用缩写“e.g.(例如)”从于拉丁短语“exempli gratia”,其可以用于介绍或指定之前提到的项目的一般示例,而不意图作为该项目的限制。常用缩写“即(i.e.)”从拉丁短语“idest”,可以用于指定更一般引述的具体项目。
[0324]
本文参考计算机实现的方法、装置(系统和/或设备)和/或计算机程序产品的框图和/或流程图示出描述了示例实施例。应理解,可以通过由一个或多个计算机电路执行的计算机程序指令来实现框图和/或流程图示出的框以及框图和/或流程图示出中的框的组合。可以将这些计算机程序指令提供给通用计算机电路、专用计算机电路和/或其他可编程数据处理电路的处理器电路来产生机器,使得经由计算机和/或其他可编程数据处理装置的处理器执行的指令转换和控制晶体管、存储器位置中存储的值、以及这种电路内的其他硬件组件,以实现框图和/或流程图框中指定的功能/动作,并由此创建用于实现框图和/或流程图框中指定的功能/动作的装置(功能体)和/或结构。
[0325]
这些计算机程序指令也可以存储在有形计算机可读介质中,该有形计算机可读介质能够指导计算机或其他可编程数据处理装置按照具体的方式作用,使得在计算机可读介质中存储的指令产生制品,该制品包括实现在框图和/或流程图的框中指定的功能/动作的指令。因此,发明构思的实施例可以在硬件和/或在诸如数字信号处理器之类的处理器上运行的软件(包括固件、贮存软件、微代码等)上实现,所述吹起可以统被称为“电路”、“模块”或其变型。
[0326]
还应注意,在一些备选实现中,在框中标记的功能/动作可以不以流程图中标记的顺序发生。例如,依赖于所涉及的功能/动作,连续示出的两个框实际上可以实质上同时执
行,或者框有时候可以按照相反的顺序执行。此外,可以将流程图和/或框图的给定框的功能分成多个框和/或流程图和/或框图的两个或更多个框的功能可以至少部分地被集成。最后,在不脱离发明构思的范围的情况下,可以在所示出的框之间添加/插入其他框,和/或可以省略框/操作。此外,尽管一些框包括用于指示通信的主要方向的关于通信路径的箭头,但应当理解,通信可以以与所表示的箭头相反的方向发生。
[0327]
在基本上不脱离本发明构思原理的前提下,可以对实施例做出许多改变和修改。所有这些改变和修改旨在在本文中被包括在发明构思的范围内。因此,上述主题应理解为示例性的而非限制性的,并且实施例的示例旨在覆盖落入本发明构思的精神和范围之内的所有这些修改、改进和其他实施例。因此,在法律允许的最大范围内,本发明构思的范围应由包括实施例的示例及其等同物的本公开的最宽允许解释来确定,并且不应受限于或限制于之前的具体实施方式。
再多了解一些

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

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

相关文献