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

在视频编解码中使用视频参数集的制作方法

2022-11-14 03:03:25 来源:中国专利 TAG:

在视频编解码中使用视频参数集
1.相关申请的交叉引用
2.根据巴黎公约适用的专利法和/或规则,提出本技术是为了及时要求2020年3月17日提交的美国临时专利申请no.62/990,749的优先权和权益。出于根据法律的所有目的,上述申请的全部公开内容通过引用并入作为本技术的公开内容的部分。
技术领域
3.本专利文档涉及图像和视频编码和解码。


背景技术:

4.数字视频占互联网和其他数字通信网络上最大的带宽使用。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。


技术实现要素:

5.本文档公开了可由视频编码器和解码器使用的技术,用于使用对编解码表示的解码有用的控制信息来处理视频的编解码表示。
6.在一个示例方面,公开了一种视频处理方法。该方法包括执行具有包括一个或多个视频图片的一个或多个视频层的视频和视频的编解码表示之间的转换;其中编解码表示包括视频参数集,该视频参数集指示用于表示视频的像素的色度格式指示符的最大值和/或比特深度的最大值。
7.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定所有视频层的视频图片的最大图片宽度和/或最大图片高度控制指示解码器缓冲区中的图片是否在从解码器缓冲区中移除之前被输出的变量的值。
8.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定用于表示视频的像素的色度格式指示符的最大值和/或比特深度的最大值控制指示解码器缓冲区中的图片是否在从解码器缓冲区中移除之前被输出的变量的值。
9.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定指示解码器缓冲区中的图片是否在从解码器缓冲区中移除之前被输出的变量的值与单独的色彩平面是否用于编码视频无关。
10.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定指示解码器缓冲区中的图片是否在从解码器缓冲区中移除之前被输出的变量的值在访问单元(au)级别被包括在编解码表示中。
11.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行具有一个或多
个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定访问单元中的视频图片的图片输出标志基于访问单元中的另一视频图片的pic_output_flag变量来确定。
12.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定对于不属于输出层的视频图片,图片输出标志的值。
13.在另一个示例方面,公开了另一种视频处理方法。该方法包括根据格式规则来执行视频和视频的比特流之间的转换,其中比特流包括一个或多个输出层集(ols),每个ols包括一个或多个编解码层视频序列,并且其中格式规则指定视频参数集针对一个或多个ols中的每一个指示用于表示视频的像素的色度格式指示符的最大允许值和/或比特深度的最大允许值。
14.在另一个示例方面,公开了另一种视频处理方法。该方法包括根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换,并且其中格式规则指定所有视频层的视频图片的最大图片宽度和/或最大图片高度控制指示比特流中按照解码顺序在当前图片之前的解码图片缓冲区中的图片是否在图片从解码图片缓冲区中移除之前被输出的变量的值。
15.在另一个示例方面,公开了另一种视频处理方法。该方法包括根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换,并且其中格式规则指定用于表示视频的像素的色度格式指示符的最大允许值和/或比特深度的最大允许值控制指示比特流中按照解码顺序在当前图片之前的解码图片缓冲区中的图片是否在图片从解码图片缓冲区中移除之前被输出的变量的值。
16.在另一个示例方面,公开了另一种视频处理方法。该方法包括根据规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换,并且其中该规则指定指示比特流中按照解码顺序在当前图片之前的解码图片缓冲区中的图片是否在图片从解码图片缓冲区中移除之前被输出的变量的值与单独的色彩平面是否用于编码视频无关。
17.在另一个示例方面,公开了另一种视频处理方法。该方法包括根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换,并且其中格式规则指定指示是否在对某个类型的访问单元进行解码时从解码图片缓冲区中移除先前解码并存储在解码图片缓冲区中的图片的标志的值被包括在比特流中。
18.在另一个示例方面,公开了另一种视频处理方法。该方法包括根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换,并且其中格式规则指定指示是否在对特定类型的访问单元进行解码时从解码图片缓冲区中移除先前解码并存储在解码图片缓冲区中的图片的第一标志的值不在图片标头中指示。
19.在另一个示例方面,公开了另一种视频处理方法。该方法包括根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换,并且其中格式规则指定指示是否从解码图片缓冲区中移除先前解码并存储在解码图片缓冲区中的图片的与访问单元相关联的标志的值依赖于访问单元的每个图片的标志的值。
20.在另一个示例方面,公开了另一种视频处理方法。该方法包括根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换,并且其中格式规则指定指示
是否输出访问单元中的图片的变量的值基于指示是否输出访问单元中的另一图片的标志来确定。
21.在另一个示例方面,公开了另一种视频处理方法。该方法包括根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换,并且其中格式规则指定在访问单元中的图片不属于输出层的情况下,指示是否输出图片的变量的值被设置为等于某个值。
22.在另一个示例方面,公开了另一种视频处理方法。该方法包括根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换,并且其中格式规则指定在视频仅包括一个输出层的情况下,不包括输出层的访问单元通过将指示是否输出访问单元中的图片的变量设置为具有最高层id(标识)值的图片的第一值和所有其他图片的第二值进行编解码。
23.在又一示例方面,公开了一种视频编码器装置。视频编码器包括被配置为实现上述方法的处理器。
24.在又一示例方面,公开了一种视频解码器装置。视频解码器包括被配置为实现上述方法的处理器。
25.在又一示例方面,公开了一种其上存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现了这里描述的方法之一。
26.这些和其他特征在整个本文档中进行了描述。
附图说明
27.图1是示例视频处理系统的框图。
28.图2是视频处理装置的框图。
29.图3是视频处理的示例方法的流程图。
30.图4是图示根据本公开的一些实施例的视频编解码系统的框图。
31.图5是图示根据本公开的一些实施例的编码器的框图。
32.图6是图示根据本公开的一些实施例的解码器的框图。
33.图7a至7d示出了基于所公开技术的一些实施方式的视频处理的示例方法的流程图。
34.图8a至8c示出了基于所公开技术的一些实施方式的视频处理的示例方法的流程图。
35.图9a至9c示出了基于所公开技术的一些实施方式的视频处理的示例方法的流程图。
具体实施方式
36.本文档中使用章节标题是为了易于理解并且不将各章节中公开的技术和实施例的适用性仅限制于该章节。此外,在一些描述中使用h.266术语仅仅是为了易于理解,而不是为了限制所公开技术的范围。因此,本文描述的技术也适用于其他视频编解码器协议和设计。
37.1.初步讨论
38.本专利文档涉及视频编解码技术。具体地,它是关于dpb存储器分配的解码图片缓冲区(dpb)参数的信令通知,以及在可缩放视频编解码中指定解码图片的输出,其中视频比特流可以包含多于一层。这些思想可以单独或以各种组合应用于支持多层视频编解码的任何视频编解码标准或非标准视频编解码器,例如正在开发的多功能视频编解码(vvc)。
39.2.缩写
40.aps
ꢀꢀꢀ
自适应参数集
41.au
ꢀꢀꢀꢀ
访问单元
42.aud
ꢀꢀꢀ
访问单元分隔符
43.avc
ꢀꢀꢀ
高级视频编解码
44.clvs
ꢀꢀ
编解码层视频序列
45.cpb
ꢀꢀꢀ
编解码图片缓冲区
46.cra
ꢀꢀꢀ
完全随机访问
47.ctu
ꢀꢀꢀ
编解码树单元
48.cvs
ꢀꢀꢀ
编解码视频序列
49.dci
ꢀꢀꢀ
解码能力信息
50.dpb
ꢀꢀꢀ
解码图片缓冲区
51.eob
ꢀꢀꢀ
比特流结尾
52.eos
ꢀꢀꢀ
序列结尾
53.gdr
ꢀꢀꢀ
逐渐解码刷新
54.hevc
ꢀꢀ
高效视频编解码
55.hrd
ꢀꢀꢀ
假设参考解码器
56.idr
ꢀꢀꢀ
即时解码刷新
57.jem
ꢀꢀꢀ
联合探索模型
58.mcts
ꢀꢀ
运动约束片集
59.nal
ꢀꢀꢀ
网络抽象层
60.ols
ꢀꢀꢀ
输出层集
61.ph
ꢀꢀꢀꢀ
图片标头
62.pps
ꢀꢀꢀ
图片参数集
63.ptl
ꢀꢀꢀ
档次、层和级别
64.pu
ꢀꢀꢀꢀ
图片单元
65.rap
ꢀꢀꢀ
随机访问点
66.rbsp
ꢀꢀ
原始字节序列有效载荷
67.sei
ꢀꢀꢀ
辅助增强信息
68.sps
ꢀꢀꢀ
序列参数集
69.svc
ꢀꢀꢀ
可缩放视频编解码
70.vcl
ꢀꢀꢀ
视频编解码层
71.vps
ꢀꢀꢀ
视频参数集
72.vtm
ꢀꢀꢀ
vvc测试模型
73.vui
ꢀꢀꢀ
视频可用性信息
74.vvc
ꢀꢀꢀ
多功能视频编解码
75.3.视频编解码介绍
76.视频编解码标准主要是通过开发公知的itu-t和iso/iec标准而演变的。itu-t开发了h.261和h.263,iso/iec开发了mpeg-1和mpeg-4visual,并且两个组织联合开发了h.262/mpeg-2视频、h.264/mpeg-4高级视频编解码(advanced video coding,avc)和h.265/hevc标准。自h.262以来,视频编解码标准基于混合视频编解码结构,其中采用了时域预测加变换编解码。为探索hevc之外的未来视频编解码技术,vceg和mpeg于2015年联合成立了联合视频探索团队(joint video exploration team,jvet)。从那时起,jvet已经采用了许多新的方法,并将其放入了名为联合探索模型(joint exploration model,jem)的参考软件中。jvet会议每季度同时举行一次,新编解码标准的目标是与hevc相比降低50%的比特率。新视频编解码标准在2018年4月的jvet会议上被正式命名为多功能视频编解码(vvc),第一版vvc测试模型(vtm)也在当时发布。由于对vvc标准化的持续努力,新的编解码技术在每次jvet会议上都被采用到vvc标准中。vvc的工作草案和测试模型vtm在每次会议后都会更新。vvc项目现在的目标是在2020年7月的会议上技术上完成(fdis)。
77.3.1.总体以及vvc中的可缩放视频编解码(svc)
78.可缩放视频编解码(svc,有时也称为视频编解码中的可缩放性)是指使用基本层(bl)(有时被称为参考层(rl))和一个或多个可缩放增强层(el)的视频编解码。在svc中,基本层可以携带具有基本质量水平的视频数据。一个或多个增强层可以携带附加的视频数据,以支持例如更高的空域、时域和/或信噪比(snr)水平。可以相对于先前编码的层来定义增强层。例如,底部层可以充当bl,而顶部层可以充当el。中间层可以充当el或rl,或者充当两者。例如,中间层(例如,既不是最低层也不是最高层的层)可以是中间层下方的层(诸如基本层或任何居间增强层)的el,并且同时充当中间层上方的一个或多个增强层的rl。类似地,在hevc标准的多视图或3d扩展中,可以有多个视图,并且一个视图的信息可以用于编解码(例如,编码或解码)另一个视图的信息(例如,运动估计、运动矢量预测和/或其他冗余)。
79.在svc中,由编码器或解码器使用的参数基于可以利用它们的编解码级别(例如,视频级别、序列级别、图片级别、条带级别等)被分组为参数集。例如,比特流中不同层的一个或多个编解码视频序列可以利用的参数可以被包括在视频参数集(vps)中,并且编解码视频序列中的一个或多个图片可以利用的参数可以被包括在序列参数集(sps)中。类似地,图片中的一个或多个条带利用的参数可以被包括在图片参数集(pps)中,并且特定于单个条带的其他参数可以被包括在条带标头中。类似地,可以在各种编解码级别提供特定层在给定时间使用哪个(哪些)参数集的指示。
80.由于vvc中对参考图片重采样(rpr)的支持,可以设计对包含多个层(例如,vvc中具有sd和hd分辨率的两个层)的比特流的支持,而不需要任何附加的信号处理级别编解码工具,因为空域可缩放性支持所需的上采样可以仅使用rpr上采样滤波器。然而,对于可缩放性支持,需要高级别语法改变(与不支持可缩放性相比)。在vvc版本1中指定了可缩放性支持。与任何更早的视频编解码标准(包括avc和hevc的扩展)中的可缩放性支持不同,vvc可缩放性的设计已经尽可能对单层解码器设计友好。多层比特流的解码能力以好像比特流中只有单个层的方式被指定。例如,诸如dpb尺寸的解码能力以独立于要被解码的比特流中的层的数量的方式被指定。基本上,为单层比特流设计的解码器不需要太多改变以能够解
码多层比特流。与avc和hevc的多层扩展的设计相比,hls方面在牺牲一些灵活性的情况下得到显著简化。例如,要求irap au包含存在于cvs中的每个层的图片。
81.3.2.hevc和vvc中的随机访问及其支持
82.随机访问是指从按照解码顺序不是比特流的第一个图片的图片开始访问和解码比特流。为了支持广播/多播和多方视频会议中的调谐和通道切换、本地回放和流式传输中的搜索、以及流式传输中的流自适应,比特流需要包括间隔近的随机访问点,其通常是帧内编解码图片,但也可以是帧间编解码图片(例如,在逐渐解码刷新的情况下)。
83.hevc通过nal单元类型在nal单元标头中包括帧内随机访问点(irap)图片的信令。支持三种类型的irap图片,即即时解码器刷新(idr)、完全随机访问(cra)和断开链接访问(bla)图片。idr图片将帧间图片预测结构约束为不参考当前图片组(gop)之前的任何图片,该当前图片组(gop)传统上被称为封闭gop随机访问点。通过允许特定图片参考当前gop之前的图片,cra图片限制更少,其中在随机访问的情况下,所有图片都被丢弃。cra图片传统上被称为开放gop随机访问点。bla图片通常源于cra图片处两个比特流或其一部分的拼接,例如在流切换期间。为了更好地使得系统能够使用irap图片,总共定义了六个不同的nal单元以信令通知irap图片的属性,这可以用于更好地匹配在iso基本媒体文件格式(isobmff)中定义的流访问点类型,该流访问点类型用于基于http的动态自适应流(dash)中的随机访问支持。
84.vvc支持三种类型的irap图片、两种类型的idr图片(一种类型具有或者另一种类型不具有相关联的radl图片)以及一种类型的cra图片。这些与hevc中基本相同。hevc中的bla图片类型不包括在vvc中,主要由于两个原因:i)bla图片的基本功能可以通过cra图片加上序列nal单元结尾来实现,其存在指示后续图片在单层比特流中开始新的cvs。ii)在开发vvc期间,期望指定比hevc更少的nal单元类型,如通过针对nal单元标头中的nal单元类型字段使用5比特而不是6比特所指示的。
85.vvc和hevc之间在随机访问支持中的另一个关键差异是vvc中以更规范的方式支持gdr。在gdr中,对比特流的解码可以从帧间编解码图片开始,尽管在开始时不是整个图片区域都可以被正确解码,但是在多个图片之后,整个图片区域将是正确的。使用恢复点sei消息来信令通知gdr随机访问点和恢复点,avc和hevc也支持gdr。在vvc中,新的nal单元类型被指定用于gdr图片的指示,并且恢复点在图片标头语法结构中被信令通知。允许cvs和比特流以gdr图片开始。这意味着允许整个比特流仅包含帧间编解码图片,而没有单个帧内编解码图片。以这种方式指定gdr支持的主要益处是提供gdr的一致性行为。gdr使得编码器能够通过在多个图片中分布帧内编解码的条带或块来平滑比特流的比特率,与对整个图片进行帧内编解码相反,从而允许显著的端到端延迟降低,随着如无线显示、在线游戏、基于无人机的应用的超低延迟应用变得更流行,这在当今被认为比以前更重要。
86.vvc中的另一个gdr相关特性是虚拟边界信令。gdr图片与其恢复点之间的图片处的刷新区域(即,正确解码的区域)和未刷新区域之间的边界可以被信令通知作为虚拟边界,并且当被信令通知时,将不会应用跨边界的环路滤波,因此将不会出现边界处或边界附近的一些样点的解码失配。当应用确定在gdr过程期间显示正确解码的区域时,这可以是有用的。
87.irap图片和gdr图片可以被统称为随机访问点(rap)图片。
88.3.3.参数集
89.avc、hevc和vvc指定了参数集。参数集的类型包括sps、pps、aps和vps。在avc、hevc和vvc中的全部中都支持sps和pps。vps从hevc开始引入,并且被包括在hevc和vvc中。aps没有被包括在avc或hevc中,但是被包括在最新的vvc草案文本中。
90.sps被设计为携带序列级别标头信息,并且pps被设计为携带不频繁改变的图片级别标头信息。利用sps和pps,不频繁改变的信息不需要针对每个序列或图片重复,因此可以避免该信息的冗余信令。此外,sps和pps的使用实现了重要标头信息的带外传输,因此不仅避免了对冗余传输的需要,还提高了容错性。
91.引入vps用于携带对多层比特流中的所有层共同的序列级别标头信息。
92.引入aps用于携带这样的图片级别或条带级别信息,该信息需要相当多的比特来编解码,可以由多个图片共享,并且在序列中可以有相当多的不同变化。
93.3.4.vvc中的相关定义
94.最新的vvc文本中(jvet-q2001-ve/v15中)的相关定义如下。
95.(特定图片的)相关联的irap图片:按照解码顺序的先前irap图片(当存在时)具有与特定图片相同的nuh_layer_id值。
96.编解码视频序列(cvs):按照解码顺序由cvss au组成的au的序列,其后是不作为cvss au的零个或更多个au,包括直到但不包括作为cvss au的任何后续au的所有后续au。
97.编解码视频序列起始(cvss)au:对于cvs中的每个层都有pu并且每个pu中的编解码图片是clvss图片的au。
98.逐渐解码刷新(gdr)au:每个当前pu中的编解码图片是gdr图片的au。
99.逐渐解码刷新(gdr)pu:编解码图片是gdr图片的pu。
100.逐渐解码刷新(gdr)图片:每个vcl nal单元具有等于gdr_nut的nal_unit_type的图片。
101.帧内随机访问点(irap)au:对于cvs中的每个层都有pu并且每个pu中的编解码图片是irap图片的au。
102.帧内随机访问点(irap)图片:所有vcl nal单元都具有在idr_w_radl到cra_nut的范围(包括idr_w_radl和cra_nut)内的相同的nal_unit_type值的编解码图片。
103.前置图片:在与相关联的irap图片相同的层中并且按照输出顺序在相关联的irap图片之前的图片。
104.拖尾图片:按照输出顺序在相关联的irap图片之后并且不是stsa图片的非irap图片。
105.注

与irap图片相关联的拖尾图片按照解码顺序也在irap图片之后。不允许按照输出顺序在相关联的irap图片之后并且按照解码顺序在相关联的irap图片之前的图片。
106.3.5.vvc中的vps语法和语义
107.vvc支持可缩放性,也称为可缩放视频编解码,其中可在一个编解码视频比特流中编码多个层。
108.在最新的vvc文本中(在jvet-q2001-ve/v15中),可缩放性信息在vps中被信令通知,其语法和语义如下。
109.7.3.2.2视频参数集语法
[0110][0111]
[0112]
[0113][0114]
7.4.3.2视频参数集rbsp语义
[0115]
vps rbsp在被参考之前应可用于解码过程,包括在具有等于0的temporalid的至少一个au中,或通过外部方式提供。
[0116]
cvs中具有特定vps_video_parameter_set_id值的所有vps nal单元应具有相同的内容。
[0117]
vps_video_parameter_set_id为vps提供标识符以供其他语法元素参考。vps_video_parameter_set_id的值应大于0。
[0118]
vps_max_layers_minus1加1指定参考vps的每个cvs中的最大允许层数。
[0119]
vps_max_sublayers_minus1加1指定参考vps的每个cvs的层中可能存在的时域子层的最大数量。vps_max_sublayers_minus1的值应在0到6的范围(包括端值)内。
[0120]
vps_all_layers_same_num_sublayers_flag等于1指定时域子层的数量对于参考vps的每个cvs中的所有层都是相同的。vps_all_layers_same_num_sub layers_flag等于0指定参考vps的每个cvs中的层可能具有相同数量的时域子层,也可能不具有相同数量的时域子层。当不存在时,vps_all_layers_same_num_sublayers_flag的值被推断为等于1。
[0121]
vps_all_independent_layers_flag等于1指定在不使用层间预测的情况下独立编解码cvs中的所有层。vps_all_independent_layers_flag等于0指定cvs中的一个或多个层可以使用层间预测。当不存在时,vps_all_independent_layers_flag的值被推断为等于1。
[0122]
vps_layer_id[i]指定第i层的nuh_layer_id值。对于m和n的任意两个非负整数值,当m小于n时,vps_layer_id[m]的值应小于vps_layer_id[n]。
[0123]
vps_independent_layer_flag[i]等于1指定索引i的层不使用层间预测。vps_independent_layer_flag[i]等于0指定索引i的层可以使用层间预测,并且vps中存在j在0到i

1的范围(包括端值)内的语法元素vps_direct_ref_layer_flag[i][j]。当不存在时,vps_independent_layer_flag[i]的值推断为等于1。
[0124]
vps_direct_ref_layer_flag[i][j]等于0指定索引j的层不是索引i的层的直接参考层。vps_direct_ref_layer_flag[i][j]等于1指定索引j的层是索引i的层的直接参考层。当i和j在0到vps_max_layers_minus1的范围(包括端值)内的vps_direct_ref_layer_flag[i][j]不存在时,其被推断为等于0。当vps_independent_layer_flag[i]等于0时,在0
到i-1的范围(包括端值)内至少应有一个j值,使得vps_direct_ref_layer_flag[i][j]的值等于1。
[0125]
变量numdirectreflayers[i]、directreflayeridx[i][d]、numreflayers[i]、reflayeridx[i][r]和layerusedasreflayerflag[j]被推导如下:
[0126][0127][0128]
变量generallayeridx[i]指定了nuh_layer_id等于vps_layer_id[i]的层的层索引,推导如下:
[0129]
for(i=0;i《=vps_max_layers_minus1;i )
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(38)
[0130]
generallayeridx[vps_layer_id[i]]=i
[0131]
对于i和j的任何两个不同的值(都在0到vps_max_layers_minus1的范围(包括端值)内),当dependencyflag[i][j]等于1时,比特流一致性的要求是,适用于第i层的chroma_format_idc和bit_depth_minus8的值应分别等于适用于第j层的chroma_format_idc和bit_depth_minus8的值。
[0132]
max_tid_ref_present_flag[i]等于1指定语法元素max_tid_il_ref_pics_plus1
[i]存在。max_tid_ref_present_flag[i]等于0指定语法元素max_tid_il_ref_pics_plus1[i]不存在。
[0133]
max_tid_il_ref_pics_plus1[i]等于0指定第i层的非irap图片不使用层间预测。max_tid_il_ref_pics_plus1[i]大于0指定,对于解码第i层的图片,没有temporalid大于max_tid_il_ref_pics_plus1[i]-1的图片用作ilrp。当不存在时,max_tid_il_ref_pics_plus1[i]的值被推断为等于7。
[0134]
each_layer_is_an_ols_flag等于1指定每个ols仅包含一个层,并且参考vps的cvs中的每个层本身是一个ols,其中单个包含的层是唯一的输出层。each_layer_is_an_ols_flag等于0指定ols可能包含多个层。如果vps_max_layers_minus1等于0,则推断each_layer_is_an_ols_flag的值等于1。否则,当vps_all_independent_layers_flag等于0时,推断each_layer_is_an_ols_flag的值等于0。
[0135]
ols_mode_idc等于0指定由vps指定的ols总数等于vps_max_layers_minus1 1,第i个ols包括层索引从0到i(包括端值)的层,并且对于每个ols,仅输出ols中的最高层。
[0136]
ols_mode_idc等于1指定由vps指定的ols总数等于vps_max_layers_minus1 1,第i个ols包括层索引从0到i(包括端值)的层,并且对于每个ols,输出ols中的所有层。
[0137]
ols_mode_idc等于2指定由vps指定的ols的总数被明确地信令通知,并且对于每个ols,输出层被明确地信令通知,并且其他层是作为ols的输出层的直接或间接参考层的层。
[0138]
ols_mode_idc的值应在0到2的范围(包括端值)内。ols_mode_idc的值3由itu-t|iso/iec保留供将来使用。
[0139]
当vps_all_independent_layers_flag等于1,并且each_layer_is_an_ols_flag等于0时,ols_mode_idc的值推断为等于2。
[0140]
num_output_layer_sets_minus1加1指定当ols_mode_idc等于2时由vps指定的ols总数。
[0141]
变量totalnumolss指定了由vps指定的ols的总数,推导如下:
[0142][0143]
ols_output_layer_flag[i][j]等于1指定当ols_mode_idc等于2时,nuh_layer_id等于vps_layer_id[j]的层是第i个ols的输出层。ols_output_layer_flag[i][j]等于0指定当ols_mode_idc等于2时,nuh_layer_id等于vps_layer_id[j]的层不是第i个ols的输出层。
[0144]
变量numoutputlayersinols[i]指定第i个ols中输出层的数量,变量numsublayersinlayerinols[i][j]指定第i个ols中第j个层的子层数量,变量outputlayeridinols[i][j]指定第i个ols中第j个输出层的nuh_layer_id值,并且变量
layerusedasoutputlayerflag[k]指定是否将第k层用作至少一个ols中的输出层,推导如下:
[0145]
[0146]
[0147][0148]
对于0到vps_max_layers_minus1的范围(包括端值)内的每个i值,layerusedasreflayerflag[i]和layerusedasoutputlayerflag[i]的值不应都等于0。换句话说,不应存在既不是至少一个ols的输出层也不是任何其他层的直接参考层的层。
[0149]
对于每个ols,应有作为输出层的至少一层。换言之,对于0至totalnumolss

1的范围(包括端值)内的任何i值,numoutputlayersinols[i]的值应大于或等于1。
[0150]
变量numlayersinols[i]指定第i个ols中的层数,并且变量layeridinols[i][j]指定第i个ols中的第j层的nuh_layer_id值,推导如下:
[0151]
[0152][0153]
注1

第0个ols仅包含最低层(即,nuh_layer_id等于vps_layer_id[0]的层),并且对于第0个ols,仅输出包含的层。
[0154]
变量olslayeridx[i][j]指定nuh_layer_id等于layeridinols[i][j]的层的ols层索引,推导如下:
[0155]
for(i=0;i《totalnumolss;i )
[0156]
for j=0;j《numlayersinols[i];j )
ꢀꢀ
(42)
[0157]
olslayeridx[i][layeridinols[i][j]]=j
[0158]
每个ols中的最低层应为独立层。换句话说,对于0至totalnumolss

1的范围(包括端值)内的每个i,vps_independent_layer_flag[generallayeridx[layeridinols[i][0]]]的值应等于1。
[0159]
每层应包含在vps指定的至少一个ols中。换句话说,对于nuh_layer_idnuhlayerid的特定值等于k在0到vps_max_layers_minus1的范围(包括端值)内的vps_layer_id[k]之一的每个层,应该至少有一对i和j的值,其中i在0到totalnumolss-1的范围(包括端值)内,并且j在numlayersinols[i]-1的范围(包括端值)内,使得layeridinols[i][j]的值等于nuhlayerid。
[0160]
vps_num_ptls_minus1加1指定vps中profile_tier_level()语法结构的数量。vps_num_ptls_minus1的值应小于totalnumolss。
[0161]
pt_present_flag[i]等于1指定在vps中的第i个profile_tier_level()语法结构中存在的档次、层和一般约束信息。pt_present_flag[i]等于0指定在vps中的第i个profile_tier_level()语法结构中不存在档次、层和一般约束信息。pt_present_flag[0]的值推断为等于1。当pt_present_flag[i]等于0时,vps中第i个profile_tier_level()语法结构的档次、层和一般约束信息被推断为与vps中第(i-1)个profile_tier_level()语法结构的档次、层和一般约束信息相同。
[0162]
ptl_max_temporal_id[i]指定最高子层表示的temporalid,其级别信息存在于vps中的第i个profile_tier_level()语法结构中。ptl_max_temporal_id[i]的值应在0到vps_max_sublayers_minus1的范围(包括端值)内。当vps_max_sublayers_minus1等于0时,ptl_max_temporal_id[i]的值被推断为等于0。当vps_max_sublayers_minus1大于0且vps_
all_layers_same_num_sublayers_flag等于1时,ptl_max_temporal_id[i]的值被推断为等于vps_max_sublayers_minus1。
[0163]
vps_ptl_alignment_zero_bit应等于0。
[0164]
ols_ptl_idx[i]指定应用于第i个ols的profile_tier_level()语法结构的索引(到vps中的profile_tier_level()语法结构列表的索引)。当存在时,ols_ptl_idx[i]的值应在0到vps_num_ptls_minus1的范围(包括端值)内。当vps_num_ptls_minus1等于0时,ols_ptl_idx[i]的值被推断为等于0。
[0165]
当numlayersinols[i]等于1时,应用于第i个ols的profile_tier_level()语法结构也存在于第i个ols中的层参考的sps中。比特流一致性的要求是,当numlayersinols[i]等于1时,在vps和sps中为第i个ols信令通知的的profile_tier_level()语法结构应该相同。
[0166]
vps_num_dpb_params指定vps中dpb_parameters()语法结构的数量。vps_num_dpb_params的值应在0到16的范围(包括端值)内。当不存在时,vps_num_dpb_params的值被推断为等于0。
[0167]
vps_sublayer_dpb_params_present_flag用于控制vps中dpb_parameters()语法结构中的max_dec_pic_buffering_minus1[]、max_num_reorder_pics[]、max_latency_increase_plus1[]语法元素的存在。当不存在时,vps_sub_dpb_params_info_present_flag被推断为等于0。
[0168]
dpb_max_temporal_id[i]指定dpb参数可能存在于vps中的第i个dpb_parameters()语法结构中的最高子层表示的temporalid。dpb_max_temporal_id[i]的值应在0到vps_max_sublayers_minus1的范围(包括端值)内。当vps_max_sublayers_minus1等于0时,dpb_max_temporal_id[i]的值被推断为等于0。当vps_max_sublayers_minus1大于0且vps_all_layers_same_num_sublayers_flag等于1时,dpb_max_temporal_id[i]的值被推断为等于vps_max_sublayers_minus1。
[0169]
ols_dpb_pic_width[i]指定第i个ols的每个图片存储缓冲区的以亮度样点为单位的宽度。
[0170]
ols_dpb_pic_height[i]指定第i个ols的每个图片存储缓冲区的以亮度样点为单位的高度。
[0171]
ols_dpb_params_idx[i]指定当numlayersinols[i]大于1时,应用于第i个ols的dpb_parameters()语法结构的索引(到vps中的dpb_parameters()语法结构列表的索引)。当存在时,ols_dpb_params_idx[i]的值应在0到vps_num_dpb_params-1的范围(包括端值)内。当ols_dpb_params_idx[i]不存在时,ols_dpb_params_idx[i]的值被推断为等于0。
[0172]
当numlayersinols[i]等于1时,应用于第i个ols的dpb_parameters()语法结构存在于由第i个ols中的层参考的sps中。
[0173]
vps_general_hrd_params_present_flag等于1指定vps包含general_hrd_parameters()语法结构和其他hrd参数。vps_general_hrd_params_present_flag等于0指定vps不包含general_hrd_parameters()语法结构或其他hrd参数。当不存在时,vps_general_hrd_params_present_flag的值被推断为等于0。
[0174]
当numlayersinols[i]等于1时,应用于第i个ols的general_hrd_parameters()语
法结构和ols_hrd_parameters()语法结构存在于第i个ols中的层参考的sps中。
[0175]
vps_sublayer_cpb_params_present_flag等于1指定vps中的第i个ols_hrd_parameters()语法结构包含子层表示的hrd参数,其中temporalid在0到hrd_max_tid[i]的范围(包括端值)内。vps_sublayer_cpb_params_present_flag等于0指定vps中的第i个ols_hrd_parameters()语法结构包含子层表示的hrd参数,其中temporalid仅等于hrd_max_tid[i]。当vps_max_sublayers_minus1等于0时,vps_sublayer_cpb_params_present_flag的值被推断为等于0。
[0176]
当vps_sublayer_cpb_params_present_flag等于0时,temporalid在0到hrd_max_tid[i]

1的范围(包括端值)内的子层表示的hrd参数被推断为与temporalid等于hrd_max_tid[i]的子层表示的hrd参数相同。这些包括从fixed_pic_rate_general_flag[i]语法元素开始直到在ols_hrd_parameters语法结构中的条件“if(general_vcl_hrd_params_present_flag)”下紧接的sublayer_hrd_parameters(i)语法结构的hrd参数。
[0177]
num_ols_hrd_params_minus1加1指定当vps_general_hrd_params_present_fla等于1时,vps中存在的ols_hrd_parameters()语法结构的数量。num_ols_hrd_params_minus1的值应在0到totalnumolss-1的范围(包括端值)内。
[0178]
hrd_max_tid[i]指定hrd参数包含在第i个ols_hrd_parameters()语法结构中的最高子层表示的temporalid。hrd_max_tid[i]的值应在0到vps_max_sublayers_minus1的范围(包括端值)内。当vps_max_sublayers_minus1等于0时,hrd_max_tid[i]的值被推断为等于0。当vps_max_sublayers_minus1大于0且vps_all_layers_same_num_sublayers_flag等于1时,hrd_max_tid[i]的值被推断等于vps_max_sublayers_minus1。
[0179]
ols_hrd_idx[i]指定当numlayersinols[i]大于1时,应用于第i个ols的ols_hrd_parameters()语法结构的索引(到vps中的ols_hrd_parameters()语法结构列表的索引)。ols_hrd_idx[[i]的值应在0到num_ols_hrd_params_minus1的范围(包括端值)内。
[0180]
当numlayersinols[i]等于1时,应用于第i个ols的ols_hrd_parameters()语法结构存在于第i个ols中的层参考的sps中。
[0181]
如果num_ols_hrd_param_minus1 1的值等于totalnumolss,则ols_hrd_idx[i]的值被推断为等于i。否则,当numlayersinols[i]大于1且num_ols_hrd_params_minus1等于0时,ols_hrd_idx[[i]的值被推断为等于0。
[0182]
vps_extension_flag等于0指定vps rbsp语法结构中不存在vps_extension_data_flag语法元素。vps_extension_flag等于1指定在vps rbsp语法结构中存在vps_extension_data_flag语法元素。
[0183]
vps_extension_data_flag可以具有任何值。它的存在和值不影响解码器与该版本该规范中指定的配置文件的一致性。符合该版本该规范的解码器应忽略所有vps_extension_data_flag语法元素。
[0184]
3.6.vvc中的sps语法和语义
[0185]
在最新的vvc文本中(在jvet-q2001-ve/v15中),与本文的发明最相关的sps语法和语义如下。
[0186]
7.3.2.3序列参数集rbsp语法
[0187][0188]
7.4.3.3序列参数集rbsp语义
[0189]
...
[0190]
gdr_enabled_flag等于1指定gdr图片可能存在于参考sps的clvs中。gdr_enabled_flag等于0指定gdr图片不存在于参考sps的clvs中。
[0191]
chroma_format_idc指定与条款6.2中指定的亮度采样相关的色度采样。
[0192]
...
[0193]
bit_depth_minus8指定亮度和色度数组的样点的比特深度bitdepth以及亮度和色度量化参数范围偏移qpbdoffset的值,如下所示:
[0194]
bitdepth=8 bit_depth_minus8
ꢀꢀ
(45)
[0195]
qpbdoffset=6*bit_depth_minus8
ꢀꢀ
(46)
[0196]
bit_depth_minus8应在0到8的范围(包括端值)内。
[0197]
...
[0198]
3.7.vvc中的图片标头结构语法和语义
[0199]
在最新的vvc文本(在jvet-q2001-ve/v15中)中,与本文的发明最相关的图片标头结构语法和语义如下。
[0200]
7.3.2.7图片标头结构语法
[0201][0202][0203]
7.4.3.7图片标头结构语义
[0204]
ph语法结构包含与ph语法结构相关的编解码图片的所有条带共有的信息。
[0205]
gdr_or_irap_pic_flag等于1指定当前图片是gdr或irap图片。dr_or_irap_pic_
flag等于0指定当前图片可能是也可能不是gdr或irap图片。
[0206]
gdr_pic_flag等于1指定与ph相关联的图片是gdr图片。gdr_pic_flag等于0指定与ph相关联的图片不是gdr图片。当不存在时,gdr_pic_flag的值被推断为等于0。当gdr_enabled_flag等于0时,gdr_pic_flag的值应等于0。
[0207]
注1

当gdr_or_irap_pic_flag等于1且gdr_pic_flag等于0时,与ph相关的图片为irap图片。
[0208]
...
[0209]
ph_pic_order_cnt_lsb指定当前图片的图片顺序计数模maxpicordercntlsb。ph_pic_order_cnt_lsb语法元素的长度为log2_max_pic_order_cnt_lsb_minus4 4比特。ph_pic_order_cnt_lsb的值应在0到maxpicordercntlsb-1的范围(包括端值)内。
[0210]
no_output_of_prior_pics_flag影响在解码clvss图片之后dpb中先前解码的图片的输出,该clvss图片不是附录c中指定的比特流中的第一个图片。
[0211]
recovery_poc_cnt指定按照输出顺序的解码图片的恢复点。如果当前图片是与ph相关联的gdr图片,并且在clvs中存在按照解码顺序跟随当前gdr图片的图片pica,其picordercntval等于当前gdr图片的picordercntval加上recovery_poc_cnt的值,则图片pica被称为恢复点图片。否则,picordercntval大于当前图片的picordercntval加上recovery_poc_cnt的值的按照输出顺序的第一个图片被称为恢复点图片。恢复点图片按照解码顺序不应在当前gdr图片之前。recovery_poc_cnt的值应在0到maxpicordercntlsb-1的范围(包括端值)内。
[0212]
当当前图片是gdr图片时,变量rppicordercntval被推导如下:
[0213]
rppicordercntval = picordercntval recovery_poc_cnt (81)
[0214]
注2
‑‑
当gdr_enabled_flag等于1且当前图片的picordercntval大于或等于相关gdr图片的rppicordercntval时,按照输出顺序的当前和后续解码图片与通过从前一个irap图片开始解码过程产生的对应图片完全匹配,当存在时,则按照解码顺序位于相关gdr图片之前。
[0215]
...
[0216]
3.8.设置pictureoutputflag
[0217]
在最新的vvc文本中(在jvet-q2001-ve/v15中),设置变量pictureoutputflag的值的规范如下(作为用于编解码图片的条款8.1.2解码过程的部分)。
[0218]
8.1.2编解码图片的解码过程
[0219]
本条款中指定的解码过程适用于bitstreamtodecode中的每个编解码图片(称为当前图片,并且由变量currpic表示)。
[0220]
根据chroma_format_idc的值,当前图片的样点数组的数量如下:
[0221]
‑‑
如果chroma_format_idc等于0,则当前图片由1个样点数组s
l
组成。
[0222]
‑‑
否则(chroma_format_idc不等于0),当前图片由3个样点数组s
l
、s
cb
、s
cr
组成。
[0223]
当前图片的解码过程将来自条款7的语法元素和大写变量作为输入。当解释每个nal单元中以及在条款8的剩余部分中的每个语法元素的语义时,术语“比特流”(或其部分,例如比特流的cvs)指的是bitstreamtodecode(或其部分)。
[0224]
根据separate_colour_plane_flag的值,解码过程的结构如下:
[0225]
‑‑
如果separate_colour_plane_flag等于0,解码过程调用一次,其中当前图片作为输出。
[0226]
‑‑
否则(separate_colour_plane_flag等于1),解码过程被调用三次。解码过程的输入是具有相同的colour_plane_id值的编解码图片的所有nal单元。具有特定colour_plane_id值的nal单元的解码过程被指定为好像只有具有该特定colour_plane_id值的单色色彩格式的cvs将存在于比特流中。三个解码过程中的每一个的输出被分配给当前图片的3个样点数组之一,其中colour_plane_id等于0、1和2的nal单元被分别分配给s
l
、s
cb
和s
cr

[0227]


当separate_colour_plane_flag等于1且chroma_format_idc等于3时,变量chromaarraytype被推导为等于0。在解码过程中,该变量的值被评估,导致与单色图片相同的操作(当chroma_format_idc等于0时)。
[0228]
对于当前图片currpic,解码过程操作如下:
[0229]
1.条款8.2中指定了nal单元的解码。
[0230]
2.条款8.3中的过程使用条带标头层及以上中的语法元素指定了以下解码过程:
[0231]
‑‑
与图片顺序计数相关的变量和函数如条款8.3.1中指定的推导。这只需要为图片的第一个条带调用。
[0232]
‑‑
在非idr图片的每个条带的解码过程开始时,调用条款8.3.2中指定的参考图片列表构造的解码过程,以推导参考图片列表0(refpiclist[0])和参考图片列表1(refpiclist[1])。
[0233]
‑‑
调用条款8.3.3中参考图片标记的解码过程,其中参考图片可以标记为“未用于参考”或“用于长期参考”。这只需要为图片的第一个条带调用。
[0234]
‑‑
当当前图片是nooutputbeforerecoveryflag等于1的cra图片或nooutputbeforerecoveryflag等于1的gdr图片时,调用子条款8.3.4中指定的用于生成不可用参考图片的解码过程,该过程只需要为图片的第一个条带调用。
[0235]
‑‑
pictureoutputflag被设置如下:
[0236]
‑‑
如果下列条件之一为真,则pictureoutputflag被设置为等于0:
[0237]
‑‑
当前图片是rasl图片,并且相关联的irap图片的nooutputbeforerecoveryflag等于1。
[0238]
‑‑
gdr_enabled_flag等于1,并且当前图片是nooutputbeforerecoveryflag等于1的gdr图片。
[0239]
‑‑
gdr_enabled_flag等于1,当前图片与nooutputbeforerecoveryflag等于1的gdr图片关联,并且当前图片的picordercntval小于关联gdr图片的rppicordercntval。
[0240]
‑‑
sps_video_parameter_set_id大于0,ols_mode_idc等于0,并且当前au包含满足以下所有条件的图片pica:
[0241]
‑‑
pica的pictureoutputflag等于1。
[0242]
‑‑
pica的nuh_layer_id nuhlid大于当前图片的nuh_layer_id。
[0243]
‑‑
pica属于ols的输出层(即,outputlayeridinols[targetolsidx][0]等于nuhlid)。
[0244]
‑‑
sps_video_parameter_set_id大于0,ols_mode_idc等于2,并且ols_output_
layer_flag[targetolsidx][generallayeridx[nuh_layer_id]]等于0。
[0245]
‑‑
否则,pictureoutputflag被设置为等于pic_output_flag。
[0246]
3.条款8.4、8.5、8.6、8.7和8.8中的处理指定了使用所有语法结构层中的语法元素的解码过程。比特流一致性的要求是,图片的编解码条带将包含图片的每个ctu的条带数据,使得将图片划分为条带以及将条带划分为ctu各自形成了图片的分割。
[0247]
4.在当前图片的所有条带都被解码后,当前解码图片被标记为“用于短期参考”,并且refpiclist[0]或refpiclist[1]中的每个ilrp条目被标记为“用于短期参考”。
[0248]
3.9.为hrd操作设置dpb参数
[0249]
在最新的vvc文本中(在jvet-q2001-ve/v15中),用于hrd操作的dpb参数的设置的规范如下(作为条款c.1的部分)。
[0250]
c.1通用
[0251]
...
[0252]
对于每个比特流一致性测试,cpb尺寸(比特数)是cpbsize[htid][scidx],如在条款7.4.6.3中指定的,其中scidx和hrd参数在该条款中指定,并且dpb参数max_dec_pic_buffering_minus1[htid]、max_num_reorder_pics[htid]和maxlatencypictures[htid]在应用于目标ols的dpb_parameters()语法结构中找到或从其推导,如下:
[0253]
‑‑
如果目标ols仅包含一层,则dpb_parameters()语法结构在sps中找到,被称为目标ols中的层。
[0254]
‑‑
否则(目标ols包含多于一层),dpb_parameters()由vps中找到的ols_dpb_params_idx[targetolsidx]标识。
[0255]
...
[0256]
3.10.nooutputofpriorpicsflag的设置
[0257]
在最新的vvc文本中(在jvet-q2001-ve/v15中),变量nooutputofpriorpicsflag的值的设置的规范如下(作为从dpb中移除图片的规范的部分)。
[0258]
c.3.2在解码当前图片之前从dpb中移除图片
[0259]
在解码当前图片之前(但是在解析当前图片的第一个条带的条带标头之后)从dpb中移除图片在au n(包含当前图片)的第一个du的cpb移除时间瞬间发生,并进行如下:
[0260]
‑‑
调用条款8.3.2中指定的参考图片列表构造的解码过程,并调用条款8.3.3中指定的参考图片标记的解码过程。
[0261]
‑‑
当当前au是作为非au 0的cvss au时,应用以下有序步骤:
[0262]
1.变量nooutputofpriorpicsflag是为被测解码器推导的,如下所示:
[0263]
‑‑
如果为当前au中的任何图片推导的pic_width_max_in_luma_samples、pic_height_max_in_luma_samples、chroma_format_idc、separate_colour_plane_flag、bit_depth_minus8或max_dec_pic_buffering_minus1[htid]的值分别与为相同clvs中的前一个图片推导的pic_width_max_in_luma_samples、pic_height_max_in_luma_samples、chroma_format_idc、separate_colour_plane_flag、bit_depth_minus8或max_dec_pic_buffering_minus1[htid]的值不同,则nooutputofpriorpicsflag可以(但不应该)由被测解码器设置为1,无论no_output_of_prior_pics_flag的值如何。
[0264]

‑‑
尽管在这些条件下,最好将nooutputofpriorpicsflag被设置为等于no_
output_of_prior_pics_flag,但在这种情况下,允许被测解码器将nooutputofpriorpicsflag被设置为1。
[0265]
‑‑
否则,nooutputofpriorpicsflag被设置为等于no_output_of_prior_pics_flag。
[0266]
2.为被测解码器推导的nooutputofpriorpicsflag的值被应用于hrd,使得当nooutputofpriorpicsflag的值等于1时,dpb中的所有图片存储缓冲区被清空,而不输出它们包含的图片,并且dpb充满度被设置为等于0。
[0267]
‑‑
当对于dpb中的任何图片k,以下两个条件为真时,dpb中的所有此类图片k都将从dpb中移除:
[0268]
‑‑
图片k被标记为“未用于参考”。
[0269]
‑‑
图片k的pictureoutputflag等于0,或者其dpb输出时间小于或等于当前图片n的第一个du(表示为du m)的cpb移除时间;即dpboutputtime[k]小于或等于ducpbremovaltime[m]。
[0270]
‑‑
对于从dpb中移除的每个图片,dpb充满度递减1。
[0271]
c.5.2.2从dpb输出和移除图片
[0272]
在当前图片的解码之前(但在解析当前图片的第一个切片的切片标头之后)从dpb中输出和移除图片在从cpb中移除包含当前图片的au的第一个du时瞬间发生并进行如下:
[0273]
‑‑
调用条款8.3.2中指定的参考图片列表构造的解码过程和条款8.3.3中指定的参考图片标记的解码过程。
[0274]
‑‑
如果当前图片是不作为图片0的clvss图片,则应用以下有序步骤:
[0275]
1.变量nooutputofpriorpicsflag是为被测解码器推导的,如下所示:
[0276]
‑‑
如果为当前au的任何图片推导的pic_width_max_in_luma_samples、pic_height_max_in_luma_samples、chroma_format_idc、separate_colour_plane_flag、bit_depth_minus8或max_dec_pic_buffering_minus1[htid]的值分别与为相同clvs中的前一个图片推导的pic_width_max_in_luma_samples、pic_height_max_in_luma_samples、chroma_format_idc、separate_colour_plane_flag、bit_depth_minus8或max_dec_pic_buffering_minus1[htid]的值不同,则nooutputofpriorpicsflag可以(但不应该)由被测解码器设置为1,无论no_output_of_prior_pics_flag的值如何。
[0277]

‑‑
尽管在这些条件下,最好将nooutputofpriorpicsflag被设置为等于no_output_of_prior_pics_flag,但在这种情况下,允许被测解码器将nooutputofpriorpicsflag被设置为1。
[0278]
‑‑
否则,nooutputofpriorpicsflag被设置为等于no_output_of_prior_pics_flag。
[0279]
2.为被测解码器推导的nooutputofpriorpicsflag的值应用于hrd,如下所示:
[0280]
‑‑
如果nooutputofpriorpicsflag等于1,则清空dpb中的所有图片存储缓冲区,而不输出它们包含的图片,并且dpb充满度被设置等于为0。
[0281]
‑‑
否则(nooutputofpriorpicsflag等于0),通过重复调用条款c.5.2.4中指定的“碰撞”过程来清空(没有输出)包含标记为“不需要输出”和“未用于参考”的图片的所有图片存储缓冲区以及清空dpb中的所有非空图片存储缓冲区,并且dpb充满度设置为等于0。
[0282]
‑‑
否则(当前图片不是clvss图片或者clvss图片是图片0),包含被标记为“不需要输出”和“不用于参考”的图片的所有图片存储缓冲区被清空(没有输出)。对于被清空的每个图片存储缓冲区,dpb充满度递减1。当下列一个或多个条件为真时,重复调用条款c.5.2.4中指定的“碰撞”过程,同时对于被清空的每个附加图片存储缓冲区,将dpb充满度进一步递减1,直到下列条件都不为真:
[0283]
‑‑
dpb中标记为“需要输出”的图片数量大于max_num_reorder_pics[htid]。
[0284]
‑‑
max_latency_increase_plus 1[htid]不等于0,并且dpb中至少有一个图片被标记为“需要输出”,其相关变量piclatencycount大于或等于maxlatencypictures[htid]。
[0285]
‑‑
dpb中的图片数量大于或等于max_dec_pic_buffering_minus1[htid] 1。
[0286]
4.公开的技术解决方案解决的技术问题
[0287]
最新vvc文本(jvet-q2001-ve/v15中)中的现有可缩放性设计存在以下问题:
[0288]
1)目前,所有层的所有图片的图片宽度和高度的最大值在vps中信令通知,以使解码器能够正确地为dpb分配存储器。与图片宽度和高度一样,当前分别由sps语法元素chroma_format_idc和bit_depth_minus8指定的色度格式和比特深度也影响dpb中图片存储缓冲区的尺寸。然而,所有层的所有图片的chroma_format_idc和bit_depth_minus8的最大值没有被发信令通知。
[0289]
2)目前,变量nooutputofpriorpicsflag的值的设置涉及pic_width_max_in_luma_samples或pic_height_max_in_luma_samples的值的改变。然而,应该改为使用所有层的所有图片的图片宽度和高度的最大值。
[0290]
3)目前nooutputofpriorpicsflag的设置涉及chroma_format_idc或者bit_depth_minus8的值的变化。然而,应该改为使用所有层的所有图片的色度格式和比特深度的最大值。
[0291]
4)目前nooutputofpriorpicsflag的设置涉及separate_colour_plane_flag的值的改变。然而,separate_colour_plane_flag仅在chroma_format_idc等于3时存在和使用,这指定了4:4:4色度格式,而对于4:4:4色度格式,separate_colour_plane_flag的值等于0或1不影响存储解码图片所需的缓冲区尺寸。因此,nooutputofpriorpicsflag的设置不应该涉及separate_colour_plane_flag的值的变化。
[0292]
5)目前,在irap和gdr图片的ph中信令通知no_output_of_prior_pics_flag,并且以no_output_of_prior_pics_flag是特定于层或特定于pu的方式来指定该标志的语义和用于设置nooutputofpriorpicsflag的过程两者。然而,由于dpb操作是特定于ols或特定于au的,所以no_output_of_prior_pics_flag的语义以及在nooutputofpriorpicsflag的设置中该标志的使用两者都应该以特定于au的方式来指定。
[0293]
6)用于设置当前图片的变量pictureoutputflag的值的当前文本涉及在与当前图片相同的au中和在比当前图片更高层中使用图片的pictureoutputflag。但是,对于nuh_layer_id大于当前图片的pica图片,在推导当前图片的pictureoutputflag时,pica的pictureoutputflag还没有推导。
[0294]
7)用于设置变量pictureoutputflag的值的当前文本存在如下所述的问题。在ols的比特流中有两层,并且只有较高层是输出层,并且在特定的au aua中,较高层的图片的pic_output_flag等于0。在解码器侧,aua的较高层图片不存在(由于例如丢失或层向下切
换),而aua的较低层图片存在,并且其pic_output_flag等于1。则aua的较低层图片的pictureoutputflag的值将被设置为等于1。然而,当ols仅具有一个输出层并且输出层的图片的pic_output_flag等于0时,应该解释为编码器(或内容提供商)不希望为包含该图片的au输出图片。
[0295]
8)用于设置变量pictureoutputflag的值的当前文本存在如下所述的问题。在ols的比特流中有三层或更多层,并且只有顶层是输出层。在解码器侧,当前au的顶层图片不存在(由于例如丢失或层向下切换),而当前au的较低层的两个或更多个图片存在,并且这些图片的pic_output_flag等于1,则对于该au,将输出多于一个图片。然而,这是有问题的,因为对于ols只有一个输出层,因此编解码器或内容提供商期望只输出一个图片。
[0296]
9)用于设置变量pictureoutputflag的值的当前文本存在如下所述的问题。ols模式2(当ols_mode_idc等于2时)也可以像模式0一样仅指定一个输出层,但是当输出层图片(也是最高层图片)不存在时输出au的较低层图片的行为仅针对模式0指定。
[0297]
10)对于仅包含一个输出层的ols,当输出层的图片(也是最高层的图片)对于解码器不可用时(由于例如丢失或层下切换),解码器将不能知道该图片的pic_output_flag等于1还是0。如果它等于1,则输出较低层图片是有意义的,但是如果它等于0,则从用户体验的角度来看,输出较低层图片可能更差,因为编码器(内容提供商)出于某种原因将该值设置为等于0,例如,对于该特定ols,该au不应该有图片输出。
[0298]
5.实施例和技术的列表
[0299]
为解决上述问题及其他问题,公开了如下概述的方法。所列出的项目应该被认为是解释一般概念的示例,而不应该以狭义的方式来解释。此外,这些项目可以单独应用或以任何方式组合。
[0300]
解决问题1至5的解决方案
[0301]
1)为了解决问题1,可以在vps中信令通知所有层的所有图片的chroma_format_idc和bit_depth_minus8的最大值中的一个或两个。
[0302]
2)为了解决问题2,变量nooutputofpriorpicsflag的值的设置可以被指定为至少基于可以在vps中信令通知的所有层的所有图片的最大图片宽度和高度中的一个或两个。
[0303]
3)为了解决问题3,变量nooutputofpriorpicsflag的值的设置可以被指定为至少基于可以在vps中信令通知的所有层的所有图片的chroma_format_idc和bit_depth_minus8的最大值中的一个或两个。
[0304]
4)为了解决问题4,变量nooutputofpriorpicsflag的值的设置可以被指定为独立于separate_colour_plane_flag的值。
[0305]
5)为了解决问题5,no_output_of_prior_pics_flag的语义和该标志在nooutputofpriorpicsflag的设置中的使用两者都可以以特定于au的方式来指定。
[0306]
a.在一个示例中,可以要求当存在时,对于au中的所有图片,no_output_of_prior_pics_flag的值应该是相同的,并且au的no_output_of_prior_pics_flag的值被认为是au的图片的no_output_of_prior_pics_flag的值。
[0307]
b.可替代地,在一个示例中,当irap_or_gdr_au_flag等于1时,no_output_of_prior_pics_flag可以从ph语法中移除,并且可以被信令通知aud语法。
[0308]
i.对于单层比特流,由于aud是可选的,所以当aud对于irap或gdr au不存在时,
no_output_of_prior_pics_flag的值可以被推断为等于1(这意味着,如果编码器想要在单层比特流中为irap或gdr au的no_output_of_prior_pics_flag信令通知值0,则它必须在比特流中为该au信令通知aud)。
[0309]
c.可替代地,在一个示例中,当且仅当au的每个图片的no_output_of_prior_pics_flag等于0时,au的no_output_of_prior_pics_flag的值可以被认为等于0,否则au的no_output_of_prior_pics_flag的值可以被认为等于1。
[0310]
i.这种方法的缺点是nooutputofpriorpicsflag的设置和cvss au的图片的输出需要等待au中的所有图片到达。
[0311]
解决问题6到10的解决方案
[0312]
6)为了解决问题6,当前图片的pictureoutputflag的设置可以被指定为至少基于与当前图片在相同au中并且在比当前图片更高的层中的图片的pic_output_flag(而不是pictureoutputflag)。
[0313]
7)为了解决问题7至9,每当当前图片不属于输出层时,当前图片的pictureoutputflag的值被设置为等于0。
[0314]
a.可替代地,为了解决问题7和8,当只有一个输出层,并且对于au不存在输出层(当只有一个输出层时必须是顶层)时,则对于解码器可用的au的所有图片当中具有nuh_layer_id的最高值并且pic_output_flag等于1的图片,pictureoutputflag被设置为等于1,并且对于解码器可用的au的所有其他图片,pictureoutputflag被设置为等于0。
[0315]
8)为了解决问题10,au的输出层图片的pic_output_flag的值可以在au中的aud或sei消息中被信令通知,或者在au中的一个或多个其他图片的ph中被信令通知。
[0316]
6.实施例
[0317]
以下是上文章节5中总结的本发明的一些方面的一些示例实施例,其可应用于vvc规范。更改的文本基于jvet-q2001-ve/v15中的最新vvc文本。已增加或修改的大部分相关部分用粗斜体突出显示,并且一些删除的部分用双括号标出(例如,[[a]]表示删除字符“a”)。还有一些其他的变化本质上是编辑性的,因此没有突出显示。
[0318]
6.1.第一实施例
[0319]
本实施例用于项目1、2、3、4、5和5a。
[0320]
7.3.2.2视频参数集语法
[0321][0322]
...
[0323]
7.4.3.2视频参数集rbsp语义
[0324]
...
[0325]
ols_dpb_pic_width[i]指定第i个ols的每个图片存储缓冲区的以亮度样点为单位的宽度。
[0326]
ols_dpb_pic_height[i]指定第i个ols的每个图片存储缓冲区的以亮度样点为单位的高度。
[0327][0328]
ols_dpb_params_idx[i]指定当numlayersinols[i]大于1时,应用于第i个ols的dpb_parameters()语法结构的索引(到vps中的dpb_parameters()语法结构列表的索引)。当存在时,ols_dpb_params_idx[i]的值应在0到vps_num_dpb_params-1的范围(包括端值)内。当ols_dpb_params_idx[i]不存在时,ols_dpb_params_idx[i]的值被推断为等于0。
[0329]
当numlayersinols[i]等于1时,应用于第i个ols的dpb_parameters()语法结构存在于由第i个ols中的层参考的sps中。
[0330]
...
[0331]
7.4.3.3序列参数集rbsp语义
[0332]
...
[0333]
gdr_enabled_flag等于1指定gdr图片可能存在于参考sps的clvs中。gdr_enabled_flag等于0指定gdr图片不存在于参考sps的clvs中。
[0334]
chroma_format_idc指定与条款6.2中指定的亮度采样相关的色度采样。
[0335][0336]
...
[0337]
bit_depth_minus8指定亮度和色度数组的样点的比特深度bitdepth以及亮度和色度量化参数范围偏移qpbdoffset的值,如下所示:
[0338]
bitdepth=8 bit_depth_minus8
ꢀꢀ
(45)
[0339]
qpbdoffset=6*bit_depth_minus8
ꢀꢀ
(46)
[0340]
bit_depth_minus8应该在0到8的范围(包括端值)内。
[0341][0342]
...
[0343]
7.4.3.7图片标头结构语义
[0344]
...
[0345]
no_output_of_prior_pics_flag影响在解码附录c中指定的比特流中的之后dpb中先前解码的图片的输出。
[0346][0346][0347]
...
[0348]
c.1通用
[0349]
...
[0350]
对于每个比特流一致性测试,cpb尺寸(比特数)是cpbsize[htid][scidx],如在条款7.4.6.3中指定的,其中scidx和hrd参数在该条款中指定,并且dpb参数max_dec_pic_buffering_minus1[htid]、max_num_reorder_pics[htid]和maxlatencypictures[htid]在应用于目标ols的dpb_parameters()语法结构中找到或从其推导,如下:
[0351]
‑‑
如果则dpb_parameters()语法结构在sps中找到,被称为目标ols中的层,
[0352]
‑‑
否则(目标ols包含多于一层),dpb_parameters()由vps中找到的ols_dpb_params_idx[targetolsidx]标识,params_idx[targetolsidx]标识,
[0353]
...
[0354]
c.3.2在解码当前图片之前从dpb中移除图片
[0355]
在解码当前图片之前(但是在解析当前图片的第一个条带的条带标头之后)从dpb中移除图片在au n(包含当前图片)的第一个du的cpb移除时间瞬间发生,并进行如下:
[0356]
‑‑
调用条款8.3.2中指定的参考图片列表构造的解码过程,并调用条款8.3.3中指定的参考图片标记的解码过程。
[0357]
‑‑
当当前au是作为非au 0的cvss au时,应用以下有序步骤:
[0358]
1.变量nooutputofpriorpicsflag是为被测解码器推导的,如下所示:
[0359]
‑‑
如果推导的推导的或max_dec_pic_buffering_minus1[htid]的值分别与为前一个au推导的前一个au推导的或max_dec_pic_buffering_minus1[htid]的值不同,则nooutputofpriorpicsflag可以(但不应该)由被测解码器设置为1,无论no_output_of_prior_pics_flag的值如何。
[0360]

‑‑
尽管在这些条件下,最好将nooutputofpriorpicsflag被设置为等于no_output_of_prior_pics_flag,但在这种情况下,允许被测解码器将nooutputofpriorpicsflag被设置为1。
[0361]
‑‑
否则,nooutputofpriorpicsflag被设置为等于no_output_of_prior_pics_flag。
[0362]
2.为被测解码器推导的nooutputofpriorpicsflag的值被应用于hrd,使得当nooutputofpriorpicsflag的值等于1时,dpb中的所有图片存储缓冲区被清空,而不输出它们包含的图片,并且dpb充满度被设置为等于0。
[0363]
‑‑
当对于dpb中的任何图片k,以下两个条件为真时,dpb中的所有此类图片k都将从dpb中移除:
[0364]
‑‑
图片k被标记为“未用于参考”。
[0365]
‑‑
图片k的pictureoutputflag等于0,或者其dpb输出时间小于或等于当前图片n的第一个du(表示为du m)的cpb移除时间;即dpboutputtime[k]小于或等于ducpbremovaltime[m]。
[0366]
‑‑
对于从dpb中移除的每个图片,dpb充满度递减1。
[0367]
c.5.2.2从dpb输出和移除图片
[0368]
在当前图片的解码之前(但在解析当前图片的第一个切片的切片标头之后)从dpb中输出和移除图片在从cpb中移除包含当前图片的au的第一个du时瞬间发生并进行如下:
[0369]
‑‑
调用条款8.3.2中指定的参考图片列表构造的解码过程和条款8.3.3中指定的参考图片标记的解码过程。
[0370]
‑‑
如果当前是不作为au 0的clvss则应用以下有序步骤:
[0371]
1.变量nooutputofpriorpicsflag是为被测解码器推导的,如下所示:
[0372]
‑‑
如果推导的推导的或max_dec_pic_buffering_minus1[htid]的值分别与为前一个前一个或max_dec_pic_buffering_minus1[htid]的值不同,则nooutputofpriorpicsflag可以(但不应该)由被测解码器设置为1,无论no_output_of_prior_pics的值如何。
[0373]

‑‑
尽管在这些条件下,最好将nooutputofpriorpicsflag被设置为等于no_output_of_prior_pics_flag,但在这种情况下,允许被测解码器将nooutputofpriorpicsflag被设置为1。
[0374]
‑‑
否则,nooutputofpriorpicsflag被设置为等于no_output_of_prior_pics_flag。
[0375]
2.为被测解码器推导的nooutputofpriorpicsflag的值应用于hrd,如下所示:
[0376]
‑‑
如果nooutputofpriorpicsflag等于1,则清空dpb中的所有图片存储缓冲区,而不输出它们包含的图片,并且dpb充满度被设置等于为0。
[0377]
‑‑
否则(nooutputofpriorpicsflag等于0),通过重复调用条款c.5.2.4中指定的“碰撞”过程来清空(没有输出)包含标记为“不需要输出”和“未用于参考”的图片的所有图片存储缓冲区以及清空dpb中的所有非空图片存储缓冲区,并且dpb充满度设置为等于0。
[0378]
‑‑
否则(当前图片不是clvss图片或者clvss图片是图片0),包含被标记为“不需要输出”和“不用于参考”的图片的所有图片存储缓冲区被清空(没有输出)。对于被清空的每个图片存储缓冲区,dpb充满度递减1。当下列一个或多个条件为真时,重复调用条款c.5.2.4中指定的“碰撞”过程,同时对于被清空的每个附加图片存储缓冲区,将dpb充满度进一步递减1,直到下列条件都不为真:
[0379]
‑‑
dpb中标记为“需要输出”的图片数量大于max_num_reorder_pics[htid]。
[0380]
‑‑
max_latency_increase_plus 1[htid]不等于0,并且dpb中至少有一个图片被标记为“需要输出”,其相关变量piclatencycount大于或等于maxlatencypictures[htid]。
[0381]
‑‑
dpb中的图片数量大于或等于max_dec_pic_buffering_minus1[htid] 1。
[0382]
6.2.第二实施例
[0383]
该实施例用于项目1、2、3、4、5和5c,其中文本相对于第一实施例的文本变化。
[0384]
7.4.3.7图片标头结构语义
[0385]
...
[0386]
no_output_of_prior_pics_flag影响在解码不是附录c中指定的比特流中的第一个au的cvss au中的图片之后dpb中先前解码的图片的输出。
[0387]
[[比特流一致性的要求是,当存在时,no_output_of_prior_pics_flag的值对于au的所有图片应该是相同的。
[0388]
当在au的图片的ph中存在no_output_of_prior_pics_flag时,au的no_output_of_prior_pics_flag的值是au的图片的no_output_of_prior_pics_flag的值。]]
[0389]
...
[0390]
c.3.2在解码当前图片之前从dpb中移除图片
[0391]
在解码当前图片之前(但是在解析当前图片的第一个条带的条带标头之后)从dpb中移除图片在au n(包含当前图片)的第一个du的cpb移除时间瞬间发生,并进行如下:
[0392]
‑‑
调用条款8.3.2中指定的参考图片列表构造的解码过程,并调用条款8.3.3中指定的参考图片标记的解码过程。
[0393]
‑‑
当当前au是作为非au 0的cvss au时,应用以下有序步骤:
[0394]
1.变量nooutputofpriorpicsflag是为被测解码器推导的,如下所示:
[0395]
‑‑
如果为当前au推导的picwidthmaxinsamplesy、picheightmaxinsamplesy、maxchromaformat、maxbitdepthminus8或max_dec_pic_buffering_minus1[htid]的值分别与为按照解码顺序的前一个au推导的picwidthmaxinsamplesy、picheightmaxinsamplesy、maxchromaformat、maxbitdepthminus8或max_dec_pic_buffering_minus1[htid]的值不同,则nooutputofpriorpicsflag可以(但不应该)由被测解码器设置为1,无论[[当前au的]]no_output_of_prior_pics_flag的值
[0396]

‑‑
[[尽管]]在这些条件下,最好将nooutputofpriorpicsflag被设置为等于0[[等于当前au的no_output_of_prior_pics_flag]],但在这种情况下,允许被测解码器将nooutputofpriorpicsflag被设置为1。
[0397]
‑‑
否则,[[nooutputofpriorpicsflag被设置为等于当前au的no_output_of_prior_pics_flag]]prior_pics_flag]]
[0398]
2.为被测解码器推导的nooutputofpriorpicsflag的值被应用于hrd,使得当nooutputofpriorpicsflag的值等于1时,dpb中的所有图片存储缓冲区被清空,而不输出它们包含的图片,并且dpb充满度被设置为等于0。
[0399]
‑‑
当对于dpb中的任何图片k,以下两个条件为真时,dpb中的所有此类图片k都将从dpb中移除:
[0400]
‑‑
图片k被标记为“未用于参考”。
[0401]
‑‑
图片k的pictureoutputflag等于0,或者其dpb输出时间小于或等于当前图片n的第一个du(表示为du m)的cpb移除时间;即dpboutputtime[k]小于或等于ducpbremovaltime[m]。
[0402]
‑‑
对于从dpb中移除的每个图片,dpb充满度递减1。
[0403]
c.5.2.2从dpb输出和移除图片
[0404]
在当前图片的解码之前(但在解析当前图片的第一个切片的切片标头之后)从dpb中输出和移除图片在从cpb中移除包含当前图片的au的第一个du时瞬间发生并进行如下:
[0405]
‑‑
调用条款8.3.2中指定的参考图片列表构造的解码过程和条款8.3.3中指定的参考图片标记的解码过程。
[0406]
‑‑
如果当前au是不作为au 0的clvss au,则应用以下有序步骤:
[0407]
1.变量nooutputofpriorpicsflag是为被测解码器推导的,如下所示:
[0408]
‑‑
如果为当前au推导的picwidthmaxinsamplesy、picheightmaxinsamplesy、maxchromaformat、maxbitdepthminus8或max_dec_pic_buffering_minus1[htid]的值分别与为按照解码顺序的前一个au推导的picwidthmaxinsamplesy、picheightmaxinsamplesy、maxchromaformat、maxbitdepthminus8或max_dec_pic_buffering_minus1[htid]的值不同,则nooutputofpriorpicsflag可以(但不应该)由被测解码器设置为1,无论[[当前au的]]no_output_of_prior_pics_flag的值
[0409]

‑‑‑‑
[[尽管]]在这些条件下,最好将nooutputofpriorpicsflag被设置为等于[[等于当前au的no_output_of_prior_pics_flag]],但在这种情况下,允许被测解码器将nooutputofpriorpicsflag被设置为1。
[0410]
‑‑
否则,否则,则将nooutputofpriorpicsflag被[[等于当前au的no_output_of_prior_pics_flag]]。
[0411]
‑‑
[0412]
2.为被测解码器推导的nooutputofpriorpicsflag的值应用于hrd,如下所示:
[0413]
‑‑
如果nooutputofpriorpicsflag等于1,则清空dpb中的所有图片存储缓冲区,而不输出它们包含的图片,并且dpb充满度被设置等于为0。
[0414]
‑‑
否则(nooutputofpriorpicsflag等于0),通过重复调用条款c.5.2.4中指定的“碰撞”过程来清空(没有输出)包含标记为“不需要输出”和“未用于参考”的图片的所有图片存储缓冲区以及清空dpb中的所有非空图片存储缓冲区,并且dpb充满度设置为等于0。
[0415]
‑‑
否则(当前图片不是clvss图片或者clvss图片是图片0),包含被标记为“不需要输出”和“不用于参考”的图片的所有图片存储缓冲区被清空(没有输出)。对于被清空的每个图片存储缓冲区,dpb充满度递减1。当下列一个或多个条件为真时,重复调用条款c.5.2.4中指定的“碰撞”过程,同时对于被清空的每个附加图片存储缓冲区,将dpb充满度进一步递减1,直到下列条件都不为真:
[0416]
‑‑
dpb中标记为“需要输出”的图片数量大于max_num_reorder_pics[htid]。
[0417]
‑‑
max_latency_increase_plus 1[htid]不等于0,并且dpb中至少有一个图片被标记为“需要输出”,其相关变量piclatencycount大于或等于maxlatencypictures[htid]。
[0418]
‑‑
dpb中的图片数量大于或等于max_dec_pic_buffering_minus1[htid] 1。
[0419]
6.3.第三实施例
[0420]
本实施例用于项目6、项目7(更改的文本不包括条款8.1.2中添加的注释)和项目7a(条款8.1.2中添加的注释)。
[0421]
7.4.3.7图片标头结构语义
[0422]
...
[0423]
recovery_poc_cnt指定按照输出顺序的解码图片的恢复点。
[0424][0425]
recoverypointpocval = picordercntval recovery_poc_cnt (81)
[0426]
如果当前图片是[[与ph相关联的]]gdr图片,并且在clvs中存在按照解码顺序跟随当前gdr图片的图片pica,其picordercntval等于recoverypointpocval[[当前gdr图片的picordercntval加上recovery_poc_cnt的值]],则图片pica被称为恢复点图片。否则,picordercntval大于recoverypointpocval[[当前图片的picordercntval加上recovery_poc_cnt的值]]的按照输出顺序的第一个图片被称为恢复点图片。恢复点图片按照解码顺序不应在当前gdr图片之前。序不应在当前gdr图片之前。recovery_poc_cnt的值应在0到maxpicordercntlsb-1的范围(包括端值)内。
[0427]
[[当当前图片是gdr图片时,变量rppicordercntval被推导如下:
[0428]
rppicordercntval=picordercntval recovery_poc_cnt(81)]]
[0429]
注2
‑‑
当gdr_enabled_flag等于1且当前图片的picordercntval大于或等于相关gdr图片的[[rppicordercntval]]时,按照输出顺序的当前和后续解码图片与通过从前一个irap图片开始解码过程产生的对应图片完全匹配,当存在时,则按照解码顺序位于相关gdr图片之前。
[0430]
...
[0431]
8.1.2编解码图片的解码过程
[0432]
...
[0433][0434]
‑‑
[[pictureoutputflag被设置如下:
[0435]
‑‑
如果下列条件之一为真,则pictureoutputflag被设置为等于0:
[0436]
‑‑
当前图片是rasl图片,并且相关联的irap图片的nooutputbeforerecoveryflag等于1。
[0437]
‑‑
gdr_enabled_flag等于1,并且当前图片是nooutputbeforerecoveryflag等于1的gdr图片。
[0438]
‑‑
gdr_enabled_flag等于1,当前图片与nooutputbeforerecoveryflag等于1的gdr图片关联,并且当前图片的picordercntval小于关联gdr图片的rppicordercntval。
[0439]
‑‑
sps_video_parameter_set_id大于0,ols_mode_idc等于0,并且当前au包含满足以下所有条件的图片pica:
[0440]
‑‑
pica的pictureoutputflag等于1。
[0441]
‑‑
pica的nuh_layer_id nuhlid大于当前图片的nuh_layer_id。
[0442]
‑‑
pica属于ols的输出层(即,outputlayeridinols[targetolsidx][0]等于nuhlid)。
[0443]
‑‑
sps_video_parameter_set_id大于0,ols_mode_idc等于2,并且ols_output_layer_flag[targetolsidx][generallayeridx[nuh_layer_id]]等于0。
[0444]
‑‑
否则,pictureoutputflag被设置为等于pic_output_flag。]]
[0445]
...
[0446]
6.4.第四实施例
[0447]
该实施例用于项目6和项目7a。
[0448]
8.1.2编解码图片的解码过程
[0449]
...
[0450]
‑‑
pictureoutputflag被设置如下:
[0451]
‑‑
如果下列条件之一为真,则pictureoutputflag被设置为等于0:
[0452]
‑‑
当前图片是rasl图片,并且相关联的irap图片的nooutputbeforerecoveryflag等于1。
[0453]
‑‑
gdr_enabled_flag等于1,并且当前图片是nooutputbeforerecoveryflag等于1的gdr图片。
[0454]
‑‑
gdr_enabled_flag等于1,当前图片与nooutputbeforerecoveryflag等于1的gdr图片关联,并且当前图片的picordercntval小于关联gdr图片的rppicordercntval。
[0455][0456]
‑‑
[[sps_video_parameter_set_id大于0,ols_mode_idc等于0,并且当前au包含满足以下所有条件的图片pica:
[0457]
‑‑
pica的pictureoutputflag等于1。
[0458]
‑‑
pica的nuh_layer_id nuhlid大于当前图片的nuh_layer_id。
[0459]
‑‑
pica属于ols的输出层(即,outputlayeridinols[targetolsidx][0]等于nuhlid)。]]
[0460]
‑‑
sps_video_parameter_set_id大于0,ols_mode_idc等于2,并且ols_output_layer_flag[targetolsidx][generallayeridx[nuh_layer_id]]等于0。
[0461]
‑‑
否则,pictureoutputflag被设置为等于pic_output_flag。
[0462]
...
[0463]
6.5.第五实施例
[0464]
该实施例仅用于项目6。
[0465]
8.1.2编解码图片的解码过程
[0466]
...
[0467]
‑‑
pictureoutputflag被设置如下:
[0468]
‑‑
如果下列条件之一为真,则pictureoutputflag被设置为等于0:
[0469]
‑‑
当前图片是rasl图片,并且相关联的irap图片的nooutputbeforerecoveryflag等于1。
[0470]
‑‑
gdr_enabled_flag等于1,并且当前图片是nooutputbeforerecoveryflag等于1的gdr图片。
[0471]
‑‑
gdr_enabled_flag等于1,当前图片与nooutputbeforerecoveryflag等于1的gdr图片关联,并且当前图片的picordercntval小于关联gdr图片的rppicordercntval。
[0472]
‑‑
sps_video_parameter_set_id大于0,ols_mode_idc等于0,并且当前au包含满足以下所有条件的图片pica:
[0473]
‑‑
pica的[[pictureoutputflag]]等于1。
[0474]
‑‑
pica的nuh_layer_id nuhlid大于当前图片的nuh_layer_id。
[0475]
‑‑
pica属于ols的输出层(即,outputlayeridinols[targetolsidx][0]等于nuhlid)。
[0476]
‑‑
sps_video_parameter_set_id大于0,ols_mode_idc等于2,并且ols_output_layer_flag[targetolsidx][generallayeridx[nuh_layer_id]]等于0。
[0477]
‑‑
否则,pictureoutputflag被设置为等于pic_output_flag。
[0478]
图1是示出可以在其中实施本文公开的各种技术的示例视频处理系统1900的框图。各种实施方式可以包括系统1900的一些或所有组件。系统1900可以包括用于接收视频内容的输入1902。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式而接收,或者可以是压缩或编码格式。输入1902可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(pon)等的有线接口和诸如wi-fi或蜂窝接口的无线接口。
[0479]
系统1900可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件1904。编解码组件1904可以将来自输入1902的视频的平均比特率减小到编解码组件1904的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件1904的输出可以被存储,或者经由如组件1906所表示的通信连接来发送。在输入1902处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件1908用于生成像素值或传送到显示接口1910的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编解码结果的对应的解码工具或操作将由解码器执行。
[0480]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)、或高清晰度多媒体接口(hdmi)、或显示端口(displayport)等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。
[0481]
图2是视频处理装置3600的框图。装置3600可以用于实施本文描述的一种或多种方法。装置3600可以体现在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置3600可以包括一个或多个处理器3602、一个或多个存储器3604和视频处理硬件3606。(多个)处理器3602可以被配置为实施本文档中描述的一种或多种方法。存储器(多个存储器)3604可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件3606可以用于在硬件电路系统中实施本文档中描述的一些技术。
[0482]
图4是示出可以利用本公开的技术的示例视频编解码系统100的框图。
[0483]
如图4所示,视频编解码系统100可以包括源设备110和目标设备120。源设备110生成编码视频数据,其中该源设备110可以被称为视频编码设备。目标设备120可以解码由源设备110生成的编码视频数据,其中该目标设备120可以被称为视频解码设备。
[0484]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0485]
视频源112可以包括源,诸如视频捕捉设备、从视频内容提供器接收视频数据的接口、和/或用于生成视频数据的计算机图形系统、或这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码,以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关数
据。编解码图片是图片的编解码表示。相关数据可以包括序列参数集、图片参数集和其他语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发射器。编码视频数据可以通过网络130a经由i/o接口116直接发送到目标设备120。编码视频数据也可以存储在存储介质/服务器130b上,以供目标设备120访问。
[0486]
目标设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0487]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或存储介质/服务器130b获取编码视频数据。视频解码器124可以对编码视频数据进行解码。显示设备122可以向用户显示解码视频数据。显示设备122可以与目标设备120集成,或者可以在被配置为与外部显示设备接口的目标设备120的外部。
[0488]
视频编码器114和视频解码器124可以根据视频压缩标准进行操作,例如高效视频编解码(hevc)标准、多功能视频编解码(vvc)标准和其他当前和/或另外的标准。
[0489]
图5是示出视频编码器200的示例的框图,该视频编码器200可以是图4所示的系统100中的视频编码器114。
[0490]
视频编码器200可以被配置为执行本公开的任何或所有技术。在图5的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0491]
视频编码器200的功能组件可以包括分割单元201、预测单元202(其可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206)、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲区213和熵编码单元214。
[0492]
在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以执行ibc模式下的预测,其中至少一个参考图片是当前视频块所在的图片。
[0493]
此外,诸如运动估计单元204和运动补偿单元205的一些组件可以高度集成,但是出于解释的目的,在图5的示例中被单独表示。
[0494]
分割单元201可以将图片分割为一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
[0495]
模式选择单元203可以基于误差结果选择编解码模式(例如,帧内或帧间)之一,并且将作为结果的帧内编解码块或帧间编解码块提供给残差生成单元207以生成残差块数据,以及提供给重构单元212以重构编码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测模式的组合(ciip),其中预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以选择块的运动矢量的分辨率(例如,子像素或整数像素精度)。
[0496]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲区213的一个或多个参考帧与当前视频块进行比较,来生成当前视频块的运动信息。运动补偿单元205可以基于运动信息和来自缓冲区213的除了与当前视频块相关联的图片之外的图片的解码样点,来确定当前视频块的预测视频块。
[0497]
运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,例如,依赖于当前视频块是在i条带、p条带还是b条带中。
[0498]
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以为当前视频块的参考视频块搜索列表0或列表1的参考图片。运动估计单元204然后可以生成指示列表0或列表1中的参考图片的参考索引,该参考索引包含参考视频块和指示当前视频块和参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0499]
在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中搜索当前视频块的另一个参考视频块。运动估计单元204然后可以生成参考索引,该参考索引指示包含参考视频块的列表0和列表1中的参考图片以及指示参考视频块和当前视频块之间的空域位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0500]
在一些示例中,运动估计单元204可以输出完整的运动信息集,以用于解码器的解码处理。
[0501]
在一些示例中,运动估计单元204可以不输出当前视频的完整的运动信息集。而是运动估计单元204可以参考另一个视频块的运动信息信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与邻近视频块的运动信息足够相似。
[0502]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示值,该值向视频解码器300指示当前视频块具有与另一个视频块相同的运动信息。
[0503]
在另一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中标识另一视频块和运动矢量差(mvd)。运动矢量差指示当前视频块的运动矢量和所指示的视频块的运动矢量之间的差。视频解码器300可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[0504]
如上所讨论的,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码器200实施的预测信令通知技术的两个示例包括高级运动矢量预测(amvp)和merge模式信令通知。
[0505]
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于相同图片中的其他视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[0506]
残差生成单元207可以通过从当前视频块中减去(例如,由减号指示)当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括与当前视频块中样点的不同样点分量相对应的残差视频块。
[0507]
在其他示例中,例如在跳过模式下,对于当前视频块可能没有残差数据,并且残差生成单元207可能不执行减去操作。
[0508]
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来为当前视频块生成一个或多个变换系数视频块。
[0509]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元
209可以基于与当前视频块相关联的一个或多个量化参数(qp)值来量化与当前视频块相关联的变换系数视频块。
[0510]
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元212可以将重构后的残差视频块添加到来自预测单元202生成的一个或多个预测视频块的对应样点,以产生与当前块相关联的重构视频块,用于存储在缓冲区213中。
[0511]
在重构单元212重构视频块之后,可以执行环路滤波操作,以减少视频块中的视频块效应。
[0512]
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收到数据时,熵编码单元214可以执行一个或多个熵编码操作,以生成熵编码数据,并输出包括该熵编码数据的比特流。
[0513]
图6是示出视频解码器300的示例的框图,该视频解码器300可以是图4所示的系统100中的视频解码器114。
[0514]
视频解码器300可以被配置为执行本公开的任何或所有技术。在图6的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0515]
在图6的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、重构单元306和缓冲区307。在一些示例中,视频解码器300可以执行通常与针对视频编码器200(图5)描述的编码过程相反的解码过程。
[0516]
熵解码单元301可以检索编码比特流。编码比特流可以包括熵编解码的视频数据(例如,视频数据的编码块)。熵解码单元301可以对熵编解码的视频数据进行解码,并且从熵解码的视频数据中,运动补偿单元302可以确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。运动补偿单元302可以例如通过执行amvp和merge模式来确定这样的信息。
[0517]
运动补偿单元302可以产生运动补偿块,可以基于插值滤波器执行插值。要以子像素精度使用的插值滤波器的标识符可以包括在语法元素中。
[0518]
运动补偿单元302可以使用如视频编码器200在视频块的编码期间所使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元302可以根据所接收的语法信息确定视频编码器200使用的插值滤波器,并使用该插值滤波器来产生预测块。
[0519]
运动补偿单元302可以使用一些语法信息来确定用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸、描述编码视频序列的图片的每个宏块如何被分割的分割信息、指示每个分割如何被编码的模式、每个帧间编码块的一个或多个参考帧(和参考帧列表)、以及用于对编码视频序列进行解码的其他信息。
[0520]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域上相邻的块形成预测块。逆量化单元303对在比特流中提供并由熵解码单元301解码的量化后的视频块系数进行逆量化,即,反量化。逆变换单元303应用逆变换。
[0521]
重构单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块相加,以形成解码块。如果需要,还可以应用去方块滤波器对解码块进行滤波,以便移除块效应。解码的视频块然后被存储在缓冲区307中,为随后的运动补偿/帧内预测提供
参考块,并且还产生解码视频以在显示设备上呈现。
[0522]
接下来提供了一些实施例优选的示例列表。
[0523]
第一组条款示出了上一章节中讨论的技术的示例实施例。以下条款示出了在上一章节(例如,项目1)中讨论的技术的示例实施例。
[0524]
1.一种视频处理方法(例如,图3中示出的方法3000),包括:执行具有包括一个或多个视频图片的一个或多个视频层的视频和视频的编解码表示之间的转换(3002);其中编解码表示包括视频参数集,该视频参数集指示用于表示视频的像素的色度格式指示符的最大值和/或比特深度的最大值。
[0525]
以下条款示出了上一章节中讨论的技术的示例实施例(例如,项目2)。
[0526]
2.一种视频处理方法,包括:执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定所有视频层的视频图片的最大图片宽度和/或最大图片高度控制指示解码器缓冲区中的图片是否在从解码器缓冲区中移除之前被输出的变量的值。
[0527]
3.根据条款2所述的方法,其中,该变量在视频参数集中被信令通知。
[0528]
以下条款示出了上一章节中讨论的技术的示例实施例(例如,项目3)。
[0529]
4.一种视频处理方法,包括:执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定用于表示视频的像素的色度格式指示符的最大值和/或比特深度的最大值控制指示解码器缓冲区中的图片是否在从解码器缓冲区中移除之前被输出的变量的值。
[0530]
5.根据条款4所述的方法,其中,该变量在视频参数集中被信令通知。
[0531]
以下条款示出了上一章节中讨论的技术的示例实施例(例如,项目4)。
[0532]
6.一种视频处理方法,包括:执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定指示解码器缓冲区中的图片是否在从解码器缓冲区中移除之前被输出的变量的值与单独的色彩平面是否用于编码视频无关。
[0533]
以下条款示出了上一章节中讨论的技术的示例实施例(例如,项目5)。
[0534]
7.一种视频处理方法,包括:执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定指示解码器缓冲区中的图片是否在从解码器缓冲区中移除之前被输出的变量的值在访问单元(au)级别被包括在编解码表示中。
[0535]
8.根据条款7所述的方法,其中,格式规则指定该值对于编解码表示中的所有au是相同的。
[0536]
9.根据条款7-8中任一项所述的方法,其中,该变量在图片标头中被指示。
[0537]
10.根据条款7-8中任一项所述的方法,其中,该变量在访问单元分隔符中被指示。
[0538]
以下条款示出了上一章节中讨论的技术的示例实施例(例如,项目6)。
[0539]
11.一种视频处理方法,包括:执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定访问单元中的视频图片的图片输出标志基于访问单元中的另一视频图片的pic_output_flag变量来确定。
[0540]
以下条款示出了上一章节中讨论的技术的示例实施例(例如,项目7)。
[0541]
12.一种视频处理方法,包括:执行具有一个或多个视频层的视频和视频的编解码表示之间的转换,其中编解码表示符合格式规则,该格式规则指定对于不属于输出层的视频图片,图片输出标志的值。
[0542]
13.根据条款12所述的方法,其中,格式规则指定视频图片的图片输出标志的值被设置为零。
[0543]
14.根据条款12所述的方法,其中,该视频仅包括一个输出层,并且其中不包括输出层的访问单元通过针对具有最高层id值的图片将图片输出标志值设置为逻辑1并且针对所有其他图片将图片输出标志值设置为逻辑0进行编解码。
[0544]
以下条款示出了上一章节中讨论的技术的示例实施例(例如,项目8)。
[0545]
15.根据条款1-14中任一项所述的方法,其中,图片输出标志被包括在访问单元分隔符中。
[0546]
16.根据条款1-14中任一项所述的方法,其中,图片输出标志被包括在辅助增强信息字段中。
[0547]
17.根据条款1-14中任一项所述的方法,其中,图片输出标志被包括在一个或多个图片的图片标头中。
[0548]
18.根据条款1至17中任一项所述的方法,其中,该转换包括将视频编码为编解码表示。
[0549]
19.根据条款1至17中任一项所述的方法,其中,该转换包括对编解码表示进行解码以生成视频的像素值。
[0550]
20.一种视频解码装置,包括被配置为实施根据条款1至19中的一项或多项所述的方法的处理器。
[0551]
21.一种视频编码装置,包括被配置为实施根据条款1至19中的一项或多项所述的方法的处理器。
[0552]
22.一种存储有计算机代码的计算机程序产品,该代码在由处理器执行时使得处理器实施根据条款1至19中任一项所述的方法。
[0553]
23.一种本文档中描述的方法、装置或系统。
[0554]
第二组条款示出了上一章节中讨论的技术的示例实施例(例如,项目1-4)。
[0555]
1.一种视频处理的方法(例如,如图7a所示的方法710),包括:根据格式规则来执行视频和视频的比特流之间的转换712,其中比特流包括一个或多个输出层集(ols),每个ols包括一个或多个编解码层视频序列,并且其中格式规则指定视频参数集针对一个或多个ols中的每一个指示用于表示视频的像素的色度格式指示符的最大允许值和/或比特深度的最大允许值。
[0556]
2.根据条款1所述的方法,其中,ols的色度格式指示符的最大允许值适用于由ols中的一个或多个编解码层视频序列参考的所有序列参数集。
[0557]
3.根据条款1或2所述的方法,其中,ols的比特深度的最大允许值适用于由ols中的一个或多个编解码层视频序列参考的所有序列参数集。
[0558]
4.根据条款1至3中任一项所述的方法,其中,为了对包含多于一个编解码层视频序列并且具有ols索引i的ols执行转换,规则指定根据包括指示第i个ols的每个图片存储缓冲区的宽度的ols_dpb_pic_width[i]、指示第i个ols的每个图片存储缓冲区的高度的
ols_dpb_pic_height[i]、指示第i个ols的色度格式指示符的最大允许值的语法元素、以及指示第i个ols的比特深度的最大允许值的语法元素的语法元素中的至少一个的值为解码图片缓冲区分配存储器。
[0559]
5.根据条款1至4中任一项所述的方法,其中,视频参数集被包括在比特流中。
[0560]
6.根据条款1至4中任一项所述的方法,其中,视频参数集与比特流分开指示。
[0561]
7.一种视频处理的方法(例如,如图7b所示的方法720),包括:根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换722,并且其中格式规则指定所有视频层的视频图片的最大图片宽度和/或最大图片高度控制指示比特流中按照解码顺序在当前图片之前的解码图片缓冲区中的图片是否在图片从解码图片缓冲区中移除之前被输出的变量的值。
[0562]
8.根据条款7所述的方法,其中,该变量至少基于视频参数集中包括的一个或多个语法元素来推导。
[0563]
9.根据条款7所述的方法,其中,在为当前访问单元推导的每个图片的最大宽度、每个图片的最大高度、色度格式指示符的最大允许值或比特深度的最大允许值的值不同于为按照解码顺序的前一个访问单元推导的每个图片的最大宽度、每个图片的最大高度、色度格式指示符的最大允许值或比特深度的最大允许值的值的情况下,该变量的值被设置为1。
[0564]
10.根据条款9所述的方法,其中,该变量的值等于1指示按照解码顺序在当前图片之前的解码图片缓冲区中的图片在图片从解码图片缓冲区中移除之前不被输出。
[0565]
11.根据条款7至10中任一项所述的方法,其中,该变量的值还基于用于表示视频的像素的色度格式指示符的最大允许值和/或比特深度的最大允许值。
[0566]
12.根据条款7至11中任一项所述的方法,其中,视频参数集被包括在比特流中。
[0567]
13.根据条款7至11中任一项所述的方法,其中,视频参数集与比特流分开指示。
[0568]
14.一种视频处理的方法(例如,如图7c所示的730),包括:根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换732,并且其中格式规则指定用于表示视频的像素的色度格式指示符的最大允许值和/或比特深度的最大允许值控制指示比特流中按照解码顺序在当前图片之前的解码图片缓冲区中的图片是否在图片从解码图片缓冲区中移除之前被输出的变量的值。
[0569]
15.根据条款14所述的方法,其中,该变量至少基于视频参数集中信令通知的一个或多个语法元素来推导。
[0570]
16.根据条款14所述的方法,其中,在为当前访问单元推导的每个图片的最大宽度、每个图片的最大高度、色度格式指示符的最大允许值或比特深度的最大允许值的值不同于为按照解码顺序的前一个访问单元推导的每个图片的最大宽度、每个图片的最大高度、色度格式指示符的最大允许值或比特深度的最大允许值的值的情况下,该变量的值被设置为1。
[0571]
17.根据条款16所述的方法,其中,该变量的值等于1指示按照解码顺序在当前图片之前的解码图片缓冲区中的图片在图片从解码图片缓冲区中移除之前不被输出。
[0572]
18.根据条款14至17中任一项所述的方法,其中,变量的值还基于所有视频层的视频图片的最大图片宽度和/或最大图片高度。
[0573]
19.根据条款14至18中任一项所述的方法,其中,视频参数集被包括在比特流中。
[0574]
20.根据条款14至18中任一项所述的方法,其中,视频参数集与比特流分开指示。
[0575]
21.一种视频处理的方法(例如,如图7d所示的方法740),包括:根据规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换742,并且其中该规则指定指示比特流中按照解码顺序在当前图片之前的解码图片缓冲区中的图片是否在图片从解码图片缓冲区中移除之前被输出的变量的值与单独的色彩平面是否用于编码视频无关。
[0576]
22.根据条款21所述的方法,其中,在单独的色彩平面不用于编码视频的情况下,规则指定对视频图片仅执行一次解码,或者在单独的色彩平面用于编码视频的情况下,规则指定图片解码被调用三次。
[0577]
23.根据条款1至22中任一项所述的方法,其中,该转换包括将视频编码为比特流。
[0578]
24.根据条款1至22中任一项所述的方法,其中,该转换包括从比特流解码视频。
[0579]
25.根据条款1至22所述的方法,其中,该转换包括从视频生成比特流,并且该方法还包括:将比特流存储在非暂时性计算机可读记录介质中。
[0580]
26.一种视频处理装置,包括被配置为实施根据条款1至25中任一项或多项所述的方法的处理器。
[0581]
27.一种存储视频的比特流的方法,包括根据条款1至25中任一项所述的方法,并且还包括将比特流存储到非暂时性计算机可读记录介质。
[0582]
28.一种存储程序代码的计算机可读介质,该程序代码在被执行时使得处理器实施根据条款1至25中任一项或多项所述的方法。
[0583]
29.一种计算机可读介质,存储根据上述方法中的任一项而生成的比特流。
[0584]
30.一种用于存储比特流表示的视频处理装置,其中该视频处理装置被配置为实施根据条款1至25中任一项或多项所述的方法。
[0585]
第三组条款示出了上一章节中讨论的技术的示例实施例(例如,项目5)。
[0586]
1.一种视频处理的方法(例如,如图8a所示的方法810),包括:根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换812,并且其中格式规则指定指示是否在对某个类型的访问单元进行解码时从解码图片缓冲区中移除先前解码并存储在解码图片缓冲区中的图片的标志的值被包括在比特流中。
[0587]
2.根据条款1所述的方法,其中,格式规则指定该值对于访问单元中的所有图片是相同的。
[0588]
3.根据条款1或2所述的方法,其中,格式规则指定指示比特流中按照解码顺序在当前图片之前的解码图片缓冲区中的图片是否在图片从解码图片缓冲区中移除之前被输出的变量的值基于标志的值。
[0589]
4.根据条款1至3中任一项所述的方法,其中,该标志在图片标头中被指示。
[0590]
5.根据条款1至3中任一项所述的方法,其中,该标志在条带标头中被指示。
[0591]
6.一种视频处理的方法(例如,如图8b所示的方法820),包括:根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换822,并且其中格式规则指定指示是否在对特定类型的访问单元进行解码时从解码图片缓冲区中移除先前解码并存储在解码图片缓冲区中的图片的第一标志的值不在图片标头中指示。
[0592]
7.根据条款6所述的方法,其中,第一标志在访问单元分隔符中被指示。
[0593]
8.根据条款6所述的方法,其中,指示irap(帧内随机访问点图片)或gdr(逐渐解码刷新)访问单元的第二标志具有某个值。
[0594]
9.根据条款6所述的方法,其中,在对于irap(帧内随机访问点图片)或gdr(逐渐解码刷新)访问单元不存在访问单元分隔符的情况下,第一标志的值被推断为等于1。
[0595]
10.一种视频处理的方法(例如,如图8c所示的方法830),包括:根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换832,并且其中格式规则指定指示是否从解码图片缓冲区中移除先前解码并存储在解码图片缓冲区中的图片的与访问单元相关联的标志的值依赖于访问单元的每个图片的标志的值。
[0596]
11.根据条款10所述的方法,其中,格式规则指定,在访问单元的每个图片的标志等于0的情况下,访问单元的标志的值被认为等于0,否则,访问单元的标志的值被认为等于1。
[0597]
12.根据条款1至11中任一项所述的方法,其中,该转换包括将视频编码为比特流。
[0598]
13.根据条款1至11中任一项所述的方法,其中,该转换包括从比特流解码视频。
[0599]
14.根据条款1至11中任一项所述的方法,其中,该转换包括从视频生成比特流,并且该方法还包括:将比特流存储在非暂时性计算机可读记录介质中。
[0600]
15.一种视频处理装置,包括被配置为实施根据条款1至14中任一项或多项所述的方法的处理器。
[0601]
16.一种存储视频的比特流的方法,包括根据条款1至14中任一项所述的方法,并且还包括将比特流存储到非暂时性计算机可读记录介质。
[0602]
17.一种存储程序代码的计算机可读介质,该程序代码在被执行时使得处理器实施根据条款1至14中任一项或多项所述的方法。
[0603]
18.一种计算机可读介质,存储根据上述方法中的任一项而生成的比特流。
[0604]
19.一种用于存储比特流表示的视频处理装置,其中该视频处理装置被配置为实施根据条款1至14中任一项或多项所述的方法。
[0605]
第四组条款示出了上一章节中讨论的技术的示例实施例(例如,项目6-8)。
[0606]
1.一种视频处理的方法(例如,如图9a所示的方法910),包括:根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换912,并且其中格式规则指定指示是否输出访问单元中的图片的变量的值基于指示是否输出访问单元中的另一图片的标志来确定。
[0607]
2.根据条款1所述的方法,其中,另一图片在比该图片更高的层中。
[0608]
3.根据条款1或2所述的方法,其中,该标志控制解码图片输出和移除过程。
[0609]
4.根据条款1或2所述的方法,其中,该标志是序列参数集(sps)、视频参数集(vps)、图片参数集(pps)、图片标头、条带标头或片组标头中包括的语法元素。
[0610]
5.根据条款1至4中任一项所述的方法,其中,该变量的值还基于以下中的至少一个:i)指定视频参数集(vps)的标识符的值的标志,ii)当前视频层是否是输出层,ii)当前图片是否是随机访问跳过前置图片、逐渐解码刷新图片、逐渐解码刷新图片的恢复图片,或者iii)按照解码顺序在当前图片之前的解码图片缓冲区中的图片是否在图片被恢复之前被输出。
[0611]
6.根据条款5所述的方法,其中,在i)指定vps的标识符的值的标志大于0并且当前
层不是输出层,或者ii)以下条件之一为真的情况下,该变量的值被设置为等于0:
[0612]
当前图片是随机访问跳过前置图片,并且按照解码顺序在当前图片之前的解码图片缓冲区中的相关联的帧内随机访问点图片在帧内随机访问点图片被恢复之前不被输出;或者
[0613]
当前图片是逐渐解码刷新图片,其中按照解码顺序在当前图片之前的解码图片缓冲区中的图片在图片被恢复之前不被输出,或者当前图片是逐渐解码刷新图片的恢复图片,其中按照解码顺序在当前图片之前的解码图片缓冲区中的图片在图片被恢复之前不被输出。
[0614]
7.根据条款6所述的方法,其中,在不满足i)和ii)两者的情况下,该变量的值被设置为等于标志的值。
[0615]
8.根据条款6所述的方法,其中,该变量的值等于0指示不输出访问单元中的图片。
[0616]
9.根据条款1所述的方法,其中,该变量为pictureoutputflag,并且该标志为pic_output_flag。
[0617]
10.根据条款1至9中任一项所述的方法,其中,该标志被包括在访问单元分隔符中。
[0618]
11.根据条款1至9中任一项所述的方法,其中,该标志被包括在辅助增强信息字段中。
[0619]
12.根据条款1至9中任一项所述的方法,其中,该标志被包括在一个或多个图片的图片标头中。
[0620]
13.一种视频处理的方法(例如,如图9b所示的方法920),包括:根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换922,并且其中格式规则指定在访问单元中的图片不属于输出层的情况下,指示是否输出图片的变量的值被设置为等于某个值。
[0621]
14.根据条款13所述的方法,其中,该某个值为0。
[0622]
15.一种视频处理的方法(例如,如图9c所示的方法930),包括:根据格式规则来执行具有一个或多个视频层的视频和视频的比特流之间的转换932,并且其中格式规则指定在视频仅包括一个输出层的情况下,不包括输出层的访问单元通过将指示是否输出访问单元中的图片的变量设置为具有最高层id(标识)值的图片的第一值和所有其他图片的第二值进行编解码。
[0623]
16.根据条款15所述的方法,其中,第一值为1,并且第二值为0。
[0624]
17.根据条款1至16中任一项所述的方法,其中,该转换包括将视频编码为比特流。
[0625]
18.根据条款1至16中任一项所述的方法,其中,该转换包括从比特流解码视频。
[0626]
19.根据条款1至16所述的方法,其中,该转换包括从视频生成比特流,并且该方法还包括:将比特流存储在非暂时性计算机可读记录介质中。
[0627]
20.一种视频处理装置,包括被配置为实施根据条款1至19中任一项或多项所述的方法的处理器。
[0628]
21.一种存储视频的比特流的方法,包括根据条款1至19中任一项所述的方法,并且还包括将比特流存储到非暂时性计算机可读记录介质。
[0629]
22.一种存储程序代码的计算机可读介质,该程序代码在被执行时使得处理器实
施根据条款1至19中任一项或多项所述的方法。
[0630]
23.一种计算机可读介质,存储根据上述方法中的任一项而生成的比特流。
[0631]
24.一种用于存储比特流表示的视频处理装置,其中该视频处理装置被配置为实施根据条款1至19中任一项或多项所述的方法。
[0632]
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,在从视频的像素表示到对应的比特流表示的转换期间,可以应用视频压缩算法,反之亦然。如语法所定义的,当前视频块的比特流表示可以例如对应于共置或者散布在比特流内的不同地方的比特。例如,可以按照变换和编解码的误差残差值并且还使用比特流中的标头和其他字段中的比特对宏块进行编码。此外,在转换期间,解码器可以基于该确定,在知道一些字段可能存在或不存在的情况下解析比特流,如以上解决方案所描述的。类似地,编码器可以确定包括或不包括特定语法字段,并通过包括语法字段或从编解码表示中排除语法字段来相应地生成编解码表示。
[0633]
本文档中描述的所公开的以及其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路中、或者在计算机软件、固件或硬件(包括本文档中公开的结构及其结构等同物)中、或者在它们中的一个或多个的组合中被实施。所公开的以及其他实施例可以被实施为一个或多个计算机程序产品,即在计算机可读介质上编码的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。传播信号是被生成以对信息进行编码以用于发送到合适的接收器装置的人工生成的信号,例如机器生成的电信号、光学信号或电磁信号。
[0634]
计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上执行。
[0635]
本文档书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0636]
适合于执行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据
的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据、或者从其接收数据并向其传递数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可换式盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0637]
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可能要求保护的范围的限制,而是作为指定于特定技术的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以单独在多个实施例中或以任何合适的子组合实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
[0638]
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为需要以所示的特定顺序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。
[0639]
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来进行其他实施方式、增强和变化。
再多了解一些

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

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

相关文献