层级视频中的解码图片缓冲区参数的信令通知的制作方法

文档序号:31054087发布日期:2022-08-06 10:35阅读:33来源:国知局
层级视频中的解码图片缓冲区参数的信令通知的制作方法
层级视频中的解码图片缓冲区参数的信令通知
1.相关申请的交叉参考
2.根据适用专利法和/或依据巴黎公约的规则,本技术及时要求于2019年12月26日提交的第62/953,854号美国临时申请以及于2019年12月30日提交的第62/955,185号美国临时申请的优先权和权益。出于法律上的所有目的,上述申请的全部公开内容通过参考并入本技术公开的一部分。
技术领域
3.本专利文档涉及图像编码和解码以及视频编码和解码。


背景技术:

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


技术实现要素:

5.本文档公开了可以由视频编码器和视频解码器用于执行视频编码或解码的技术。
6.在一个示例方面中,公开了一种视频处理方法。该方法包括执行包括一个或多个可缩放视频层的视频与该视频的比特流之间的转换。视频包括一个或多个视频图片,视频图片包括一个或多个条带。比特流符合格式规则。格式规则规定,在对应的网络抽象层单元类型在预定范围内,并且对应的视频层标志指示对应于条带的视频层不使用层间预测的情况下,设置指示条带的条带类型的字段的值以指示帧内条带的类型。
7.在另一个示例方面中,公开了一种视频处理方法。该方法包括执行包括多个视频层的视频与该视频的比特流之间的转换,其中,该比特流包括多个输出层集合(ols),每个输出层集合包括多个可缩放视频层中的一个或多个,并且该比特流符合格式规则,其中,该格式规则规定,对于具有单个层的ols,指示ols的档次、层、级别的档次-层-级别(profile-tier-level,ptl)语法结构被包括在比特流的视频参数集合中,并且ols的ptl语法结构还被包括在比特流中编解码的序列参数集合中。
8.在另一个示例方面中,公开了一种视频处理方法。该方法包括执行包括多个视频层的视频与该视频的比特流之间的转换,其中,该比特流包括多个输出层集合(ols),每个输出层集合包括多个视频层中的一个或多个,并且该比特流符合格式规则,其中,格式规则规定在比特流的视频参数集合中出现的多个档次-层-级别(ptl)语法结构与视频参数集合中的字节对齐语法字段之间的关系;其中,每个ptl语法结构指示多个ols中的一个或多个的档次、层和级别。
9.在另一个示例方面中,公开了一种视频处理方法。该方法包括执行包括多个可缩放视频层的视频与该视频的比特流之间的转换,其中,该比特流包括多个输出层集合(ols),每个输出层集合包括多个可缩放视频层中的一个或多个,并且该比特流符合格式规则,其中,该格式规则规定:在编码期间,在对描述多个ols中的一个或多个的档次、层和级
别的语法结构的索引的值为零的情况下,从比特流的视频参数集合中排除指示该索引的语法元素,或者在解码期间,在比特流中不存在语法元素的情况下,将该值推断为零。
10.在另一个示例方面中,公开了一种视频处理方法。该方法包括执行包括多个视频层的视频与视频的比特流之间的转换,其中,比特流包括多个输出层集合(ols),每个输出层集合包括多个视频层中的一个或多个,并且比特流符合格式规则,其中,格式规则规定,对于层i,其中i是整数,比特流包括指示第一变量的第一语法元素集合,该第一变量指示层i是否被包括在多个ols中的至少一个中。
11.在另一个示例方面中,公开了一种视频处理方法。该方法包括执行视频与视频的比特流之间的转换,其中,比特流包括一个或多个输出层集合,每个输出层集合包括一个或多个视频层;其中,比特流符合格式规则,其中,格式规则规定,在每个输出层集合包括单个视频层的情况下,比特流的视频参数集合中包括的解码图片缓冲区参数语法结构的数量等于零;或者在每个输出层集合包括单个层不为真的情况下,该数量等于一加语法元素的值。
12.在另一个示例方面中,公开了一种视频处理方法。所述方法包括执行视频和视频的比特流之间的转换,其中,比特流包括编解码视频序列(cvs),该编解码视频序列包括一个或多个视频层的一个或多个编解码视频图片;并且其中,比特流符合格式规则,该格式规则规定指示由cvs的一个或多个编解码图片参考的转换参数的一个或多个序列参数集合(sps)具有相同参考视频参数集合(vps)标识符,该vps标识符指示参考vps。
13.在另一个示例方面中,公开了一种视频处理方法。该方法包括执行视频与视频的比特流之间的转换,其中,该比特流包括一个或多个输出层集合(ols),每个输出层集合包括一个或多个视频层,其中,该比特流符合格式规则;其中,格式规则规定第一语法元素是否或如何被被包括在比特流的视频参数集合(vps)中,该第一语法元素指示描述假设参考解码器(hypothetical reference decoder,hrd)的参数的第一语法结构是否用于转换。
14.在另一个示例方面中,公开了一种视频处理方法。该方法包括执行视频与视频的比特流之间的转换,其中,该比特流包括一个或多个输出层集合(ols),每个输出层集合包括一个或多个视频层,其中,该比特流符合格式规则;其中,该格式规则规定在比特流的视频参数集合(vps)中是否包括或如何包括描述通用假设参考解码器(hrd)参数的第一语法结构和描述ols特定的hrd参数的多个第二语法结构。
15.在又一个示例方面中,公开了一种视频编码器装置。视频编码器包括配置为实现上述方法的处理器。
16.在另一个示例方面中,公开了一种视频解码器装置。视频解码器包括配置为实现上述方法的处理器。
17.在又一个示例方面中,公开了一种其上存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现了本文描述的方法之一。
18.在又一个示例方面中,公开了一种将根据上述方法之一生成的比特流写入计算机可读介质的方法。
19.在另一个示例方面中,公开了一种存储根据上述方法生成的视频的比特流的计算机可读介质。
20.这些特征和其它特征在本文档中进行了描述。
附图说明
21.图1是示出根据本公开的一些实施例的视频编解码系统的框图。
22.图2是用于视频处理的示例硬件平台的框图。
23.图3是视频处理的示例方法的流程图。
24.图4是示出示例视频编解码系统的框图。
25.图5是示出根据本公开的一些实施例的编码器的框图。
26.图6是示出根据本公开的一些实施例的解码器的框图。
27.图7a-图7i是各种视频处理方法示例的流程图。
具体实施方式
28.在本文件中使用章节标题是为了便于理解,并且不限制每个章节中公开的技术和实施例仅应用于该章节。此外,在一些说明书中使用h.266术语只是为了便于理解,而不是为了限制所公开技术的范围。这样,本文所描述的技术也应用于其它视频编解码器协议和设计。
29.1.总结
30.本文档与视频编解码技术有关。具体地,它是关于可缩放视频编解码的各种改进,其中,视频比特流可以包含多于一个层。这些思想可以单独或以各种组合应用于支持多层视频编解码的任何视频编解码标准或非标准视频编解码器,例如,正在开发的通用视频编解码(vvc)。
31.2.缩写
32.aps
ꢀꢀ
自适应参数集
33.au
ꢀꢀꢀ
访问单元
34.aud
ꢀꢀ
访问单元分隔符
35.avc
ꢀꢀ
高级视频编解码
36.clvs 编解码层视频序列
37.cpb
ꢀꢀ
编解码图片缓冲区
38.cra
ꢀꢀ
清洁随机访问
39.ctu
ꢀꢀ
编解码树单元
40.cvs
ꢀꢀ
编解码视频序列
41.dpb
ꢀꢀ
解码图片缓冲区
42.dps
ꢀꢀ
解码参数集
43.eob
ꢀꢀ
比特流结尾
44.eos
ꢀꢀ
序列结尾
45.gdr
ꢀꢀ
逐步解码刷新
46.hevc 高效视频编解码
47.hrd
ꢀꢀ
假设参考解码器
48.idr
ꢀꢀ
即时解码刷新
49.jem
ꢀꢀ
联合探索模型
50.mcts 运动约束的片组
51.nal
ꢀꢀ
网络抽象层
52.ols
ꢀꢀ
输出层集合
53.ph
ꢀꢀꢀ
图片标头
54.pps
ꢀꢀ
图片参数集合
55.ptl
ꢀꢀ
档次、层和级别
56.pu
ꢀꢀꢀ
图片单元
57.rbsp 原始字节序列有效载荷
58.sei
ꢀꢀ
补充增强信息
59.sps
ꢀꢀ
序列参数集合
60.svc
ꢀꢀ
可缩放视频编解码
61.vcl
ꢀꢀ
视频编解码层
62.vps
ꢀꢀ
视频参数集合
63.vtm
ꢀꢀ
vvc测试模型
64.vui
ꢀꢀ
视频可用性信息
65.vvc
ꢀꢀ
多功能视频编解码
66.3.初步讨论
67.视频编解码标准主要是通过著名的itu-t和iso/iec标准的发展而发展起来的。itu-t制作了h.261和h.263,iso/iec制作了mpeg-1和mpeg-4visual,并且这两个组织联合制作了h.262/mpeg-2视频标准和h.264/mpeg-4高级视频编解码(avc)标准以及h.265/hevc[1]标准。自h.262以来,视频编解码标准基于混合视频编解码结构,其中,使用了时域预测加变换编解码。为了探索hevc之外的未来视频编解码技术,vceg和mpeg于2015年联合成立了联合视频探索小组(jvet)。此后,许多新方法被jvet采用,并被应用到名为联合探索模型(jem)[2]的参考软件中。jvet会议每季度同时举行一次,并且新的编解码标准的目标是比hevc降低50%的比特率。在2018年4月的jvet会议上,新的视频编解码标准被正式命名为通用视频编解码(vvc),并且当时发布了vvc测试模型(vtm)的第一个版本。随着致力于vvc标准化的不断努力,每次jvet会议都会为vcc标准采用新的编解码技术。然后在每次会议后更新vvc工作草案和测试模型vtm。vvc项目目前的目标是在2020年7月的会议上实现技术完成(fdis)。
[0068]
3.1.通用可伸缩视频编解码(svc)
[0069]
可伸缩视频编解码(scalable video coding,svc)是指这样的视频编解码:其中,使用基本层(base layer,bl)(有时称为参考层(reference layer,rl))和一个或多个可伸缩增强层(enhancement layer,el)。在svc中,基本层可以携带具有基本质量级别的视频数据。一个或多个增强层可以携带附加的视频数据,以支持例如更高的空域级别、时域级别和/或信噪比(snr)级别。可以相对于先前编码的层来定义增强层。例如,底层可以充当bl,而顶层可以充当el。中间层可以充当el或rl,也可以同时充当两者。例如,中间层(例如,既不是最低层也不是最高层的层)可以是中间层下面的层的el(例如,基本层或任何中间增强层),并且同时充当中间层上面的一个或多个增强层的rl。类似地,在hevc标准的多视图或3d扩展中,可以存在多个视图,并且可以利用一个视图的信息来编解码(例如,编码或解码)另一个视图的信息(例如,运动估计、运动向量预测和/或其它冗余)。
[0070]
在svc中,由编码器或解码器使用的参数基于可以使用它们的编解码级别(例如,视频级别、序列级别、图片级别、条带级别等)被分组成参数集合。例如,可以由比特流中的不同层的一个或多个编解码视频序列使用的参数可以被包括在视频参数集合(vps)中,并且由编解码视频序列中的一个或多个图片使用的参数可以被包括在序列参数集合(sps)中。类似地,由图片中的一个或多个条带使用的参数可以被包括在图片参数集合(pps)中,并且特定于单个条带的其它参数可以被包括在条带标头中。类似地,可以在各种编解码级别提供特定的层在给定的时间使用哪个参数集合的指示。
[0071]
3.2.参数集合
[0072]
avc、hevc和vvc指定参数集合。参数集合的类型包括sps、pps、aps、vps和dps。所有avc、hevc和vvc都支持sps和pps。vps是自hevc以来引入的,并且被包括在hevc和vvc中。aps和dps未被包括在avc或hevc中,但被包括在最新的vvc草案文本中。
[0073]
sps被设计用于携带序列级标头信息,并且pps被设计用于携带不经常变化的图片级标头信息。使用sps和pps,不需要为每个序列或图片重复不经常变化的信息,因此可以避免这些信息的冗余信令。此外,sps和pps的使用能够实现重要标头信息的带外传输,因此不仅避免了冗余传输的需要,而且还提高了错误恢复能力。
[0074]
引入vps是为了携带多层比特流中所有层通用的序列级标头信息。
[0075]
引入aps是为了携带这样的图片级别信息或条带级别信息,这些信息需要相当多的位来编解码,可以由多个图片共享,并且在一个序列中可以有相当多的不同变体。
[0076]
引入dps是为了携带比特流级别的信息,这些信息指示解码整个比特流所需的最高能力。
[0077]
3.3.vvc中的vps语法和语义
[0078]
vvc支持可伸缩性,也被称为可伸缩视频编解码,其中,可以在一个编解码视频比特流中对多个层进行编码。
[0079]
在最新的vvc文本中,在vps中信令通知可伸缩性信息,语法和语义如下。
[0080]
7.3.2.2视频参数集合语法
[0081]
[0082]
[0083][0084]
7.4.3.2视频参数集合rbsp语义
[0085]
vps rbsp在被参考之前应当可用于解码过程,包括在至少一个au中,其中temporalid等于0或通过外部方式提供。
[0086]
cvs中具有vps_video_parameter_set_id的特定的值的所有vps nal单元应当具有相同的内容。
[0087]
vps_video_parameter_set_id为vps提供标识符,以供其它语法元素参考。vps_video_parameter_set_id的值应当大于0。
[0088]
vps_max_layers_minus1加1规定参考vps的每个cvs中的最大允许层数。
[0089]
vps_max_sublayers_minus1加1规定参考vps的每个cvs中可能存在的时域子层的最大数量。vps_max_sublayers_minus1的值应当在0到6的范围(包括0和6)内。
[0090]
vps_all_layers_same_num_sublayers_flag等于1规定对于参考vps的每个cvs中的所有层,时域子层的数量相同。vps_all_layers_same_num_sublayers_flag等于0规定参考vps的每个cvs中的层可能具有相同数量的时域子层,也可能不具有相同数量的时域子层。当不存在时,vps_all_layers_same_num_sublayers_flag的值被推断为等于1。
[0091]
vps_all_independent_layers_flag等于1规定cvs中的所有层都被独立编解码,而不使用层间预测。vps_all_independent_layers_flag等于0规定cvs中的一个或多个层可以使用层间预测。当不存在时,vps_all_independent_layers_flag的值被推断为等于1。当vps_all_independent_layers_flag等于1时,vps_independent_layer_flag[i]的值被推断为等于1。当vps_all_independent_layers_flag等于0时,vps_independent_layer_flag[0]的值被推断为等于1。
[0092]
vps_layer_id[i]规定第i层的nuh_layer_id值。对于m和n的任何两个非负整数值,当m小于n时,vps_layer_id[m]的值应当小于vps_layer_id[n]。
[0093]
vps_independent_layer_flag[i]等于1规定具有索引i的层不使用层间预测。vps_independent_layer_flag[i]等于0规定具有索引i的层可以使用层间预测,并且在vps中存在语法元素vps_direct_ref_layer_flag[i][j](在0到i-1的范围(包括0和i-1)内的j)。当不存在时,vps_independent_layer_flag[i]的值被推断为等于1。
[0094]
vps_direct_ref_layer_flag[i][j]等于0规定具有索引j的层不是具有索引i的层的直接参考层。vps_direct_ref_layer_flag[i][j]等于1规定具有索引j的层是具有索引i的层的直接参考层。当vps_direct_ref_layer_flag[i][j]不存在时(对于0到vps_max_layers_minus1的范围(包括0和vps_max_layers_minus1)内的i和j),它被推断为等于0。当vps_independent_layer_flag[i]等于0时,在0到i-1的范围(包括0和i-1)内应当存在至少一个j的值,使得vps_direct_ref_layer_flag[i][j]的值等于1。
[0095]
按照如下方式推导变量numdirectreflayers[i]、directreflayeridx[i][d]、numreflayers[i]、reflayeridx[i][r]和layerusedasreflayerflag[j]:
[0096][0097][0098]
按照如下方式推导变量generallayeridx[i],其规定nuh_layer_id等于vps_layer_id[i]的层的层索引:
[0099][0100]
each_layer_is_an_ols_flag等于1规定每个输出层集合仅包含一个层,并且比特流中的每个层本身是输出层集合,其中单个包含层是唯一的输出层。each_layer_is_an_ols_flag等于0规定输出层集合可能包含多个层。如果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。
[0101]
ols_mode_idc等于0规定由vps规定的ols的总数等于vps_max_layers_minus1+1,第i个ols包括层索引从0到i(包括0和i)的层,并且对于每个ols,仅输出ols中的最高层。
[0102]
ols_mode_idc等于1规定由vps规定的ols的总数等于vps_max_layers_minus1+1,第i个ols包括层索引从0到i(包括0和i)的层,并且对于每个ols,输出ols中的所有层。
[0103]
ols_mode_idc等于2规定由vps规定的ols的总数被显式地信令通知,并且对于每个ols,输出层被显式地信令通知,而其它层是ols的输出层的直接或间接参考层。
[0104]
ols_mode_idc的值应当在0到2(包括0和2)的范围内。ols_mode_idc的值3被保留以供itu-t|iso/iec未来使用。
[0105]
当vps_all_independent_layers_flag等于1且each_layer_is_an_ols_flag等于0时,ols_mode_idc的值被推断为等于2。
[0106]
num_output_layer_sets_minus1加1规定当ols_mode_idc等于2时vps规定的ols的总数。
[0107]
按照如下方式导出变量totalnumolss,其规定vps规定的ols的总数:
[0108][0109]
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的输出层。
[0110]
按照如下方式导出规定第i个ols中的输出层数量的变量numoutputlayersinols[i],以及规定第i个ols中的第j个输出层的nuh_layer_id值的变量outputlayeridinols[i][j]:
[0111][0112][0113]
对于每个ols,应当存在的至少一个层作为输出层。换句话说,对于0到totalnumolss-1的范围(包括0和totalnumolss-1)内的任何i值,numoutputlayersinols[i]的值应当大于或等于1。
[0114]
按照如下方式导出规定第i个ols中的层数的变量numlayersinols[i]、以及规定第i个ols中的第j个层的nuh_layer_id值的变量layeridinols[i][j]:
[0115][0116][0117]
注1-第0个ols仅包含最低层(即,nuh_layer_id等于vps_layer_id[0]的层),并且对于第0个ols,仅输出包含的层。
[0118]
按照如下方式导出规定nuh_layer_id等于layeridinols[i][j]的层的ols层索引的变量olslayeridx[i][j]:
[0119][0120]
每个ols中的最低层应当为独立层。换句话说,对于0到totalnumolss-1范围(包括0和totalnumolss-1)内的每个i,vps_independent_layer_flag[generallayeridx[layeridinols[i][0]]的值应当等于1。
[0121]
每个层应当被包括在由vps规定的至少一个ols中。换句话说,对于具有nuh_layer_id的特定的值nuhlayerid(等于vps_layer_id[k]中的一个,对于0到vps_max_layers_minus1范围(包括0和vps_max_layers_minus1)内的k)的每个层,应当存在至少一对i和j的值,其中i在0到totalnumolss-1的范围(包括0和totalnumolss-1)内,并且j在numlayersinols[i]-1(包括)的范围内,使得layeridinols[i][j]的值等于nuhlayerid。
[0122]
vps_num_ptls规定vps中的profile_tier_level()语法结构的数量。
[0123]
pt_present_flag[i]等于1规定vps中的第i个profile_tier_level()语法结构中
存在档次、层和一般约束信息。pt_present_flag[i]等于0规定vps中的第i个profile_tier_level()语法结构中不存在档次、层和一般约束信息。pt_present_flag[0]的值被推断为等于0。当pt_present_flag[i]等于0时,vps中的第i个profile_tier_level()语法结构的档次、层和一般约束信息被推断为与vps中的第(i-1)个profile_tier_level()语法结构的档次、层和一般约束信息相同。
[0124]
ptl_max_temporal_id[i]规定vps中的第i个profile_tier_level()语法结构中存在级别信息的最高子层表示的temporalid。ptl_max_temporal_id[i]的值应当在0到vps_max_sublayers_minus1的范围(包括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。
[0125]
vps_ptl_byte_alignment_zero_bit应当等于0。
[0126]
ols_ptl_idx[i]规定应用于第i个ols的profile_tier_level()语法结构在vps中的profile_tier_level()语法结构列表的索引。当存在时,ols_ptl_idx[i]的值应当在0到vps_num_ptls-1的范围(包括0和vps_num_ptls-1)内。
[0127]
当numlayersinols[i]等于1时,应用于第i个ols的profile_tier_level()语法结构存在于第i个ols中的层所参考的sps中。
[0128]
vps_num_dpb_params规定vps中的dpb_parameters()语法结构的数量。vps_num_dpb_params的值应当在0到16的范围(包括0和16)内。当不存在时,vps_num_dpb_params的值被推断为等于0。
[0129]
same_dpb_size_output_or_nonoutput_flag等于1规定vps中不存在layer_nonoutput_dpb_params_idx[i]语法元素。same_dpb_size_output_or_nonoutput_flag等于0规定vps中可能存在或可能不存在layer_nonoutput_dpb_params_idx[i]语法元素。
[0130]
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。
[0131]
dpb_size_only_flag[i]等于1规定vps中的第i个dpb_参数()语法结构中不存在max_num_reorder_pics[]和max_latency_increase_plus1[]语法元素。dpb_size_only_flag[i]等于1规定vps中的第i个dpb_parameters()语法结构中可能存在max_num_reorder_pics[]和max_latency_increase_plus1[]语法元素。
[0132]
dpb_max_temporal_id[i]规定dpb参数可能存在于vps中的第i个dpb_parameters()语法结构中的最高子层表示的temporalid。dpb_max_temporal_id[i]的值应当在0到vps_max_sublayers_minus1的范围(包括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。
[0133]
layer_output_dpb_params_idx[i]规定vps中的dpb_parameters()语法结构列表的索引,该语法结构应用于当作为ols中的输出层时的第i层。当存在时,layer_output_
dpb_params_idx[i]的值应当在0到vps_num_dpb_params-1的范围(包括0和vps_num_dpb_params-1)内。
[0134]
如果vps_independent_layer_flag[i]等于1,则当第i层是输出层时,应用于第i层的dpb_parameters()语法结构是该层参考的sps中存在的dpb_parameter()语法结构。
[0135]
否则(vps_independent_layer_flag[i]等于0),以下内容适用:
[0136]-当vps_num_dpb_params等于1时,layer_output_dpb_params_idx[i]的值被推断为等于0。
[0137]-比特流一致性的一个要求是,layer_output_dpb_params_idx[i]的值应当使得dpb_size_only_flag[layer_output_dpb_params_idx[i]]等于0。
[0138]
layer_nonoutput_dpb_params_idx[i]规定vps中的dpb_parameters()语法结构列表的索引,该语法结构应用于当作为ols中的非输出层的第i层。当存在时,layer_nonoutput_dpb_params_idx[i]的值应当在0到vps_num_dpb_params-1的范围(包括0和vps_num_dpb_params-1)内。
[0139]
如果same_dpb_size_output_or_nonoutput_flag等于1,则以下内容适用:
[0140]-如果vps_independent_layer_flag[i]等于1,则当第i层为非输出层时,应用于该层的dpb_parameters()语法结构是该层所参考的sps中存在的dpb_parameters()语法结构。
[0141]-否则(vps_independent_layer_flag[i]等于0),layer_nonoutput_dpb_params_idx[i]的值被推断为等于layer_output_dpb_params_idx[i]。
[0142]
否则(same_dpb_size_output_or_nonoutput_flag等于0),当vps_num_dpb_params等于1时,layer_output_dpb_params_idx[i]的值被推断为等于0。
[0143]
vps_general_hrd_params_present_flag等于1规定语法结构general_hrd_parameters()和其它hrd参数存在于vps rbsp语法结构中。vps_general_hrd_params_present_flag等于0规定vps rbsp语法结构中不存在语法结构general_hrd_parameters()和其它hrd参数。
[0144]
vps_sublayer_cpb_params_present_flag等于1规定vps中的第i个ols_hrd_parameters()语法结构包含子层表示的hrd参数,其中temporalid在0到hrd_max_tid[i]的范围(包括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。
[0145]
当vps_sublayer_cpb_params_present_flag等于0时,子层表示的hrd参数(其中temporalid在0到hrd_max_tid[i]-1的范围(包括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)语法结构。
[0146]
num_ols_hrd_params_minus1加1规定在general_hrd_parameters()语法结构中存在的ols_hrd_parameters()语法结构的数量。num_ols_hrd_params_minus1的值应当在
0到63的范围(包括0和63)内。当totalnumolss大于1时,num_ols_hrd_params_minus1的值被推断为等于0。
[0147]
hrd_max_tid[i]规定最高子层表示的temporalid,对于该表示,hrd参数被包含在第i个ols_hrd_parameters()语法结构中。hrd_max_tid[i]的值应当在0到vps_max_sublayers_minus1的范围(包括0和vps_max_sublayers_minus1)内。当vps_max_sublayers_minus1等于0时,hrd_max_tid[i]的值被推断为等于0。
[0148]
ols_hrd_idx[i]规定应用于第i个ols的ols_hrd_parameters()语法结构的索引。ols_hrd_idx[[i]的值应当在0到num_ols_hrd_params_minus1的范围(包括0和num_ols_hrd_params_minus1)内。当不存在时,ols_hrd_idx[[i]的值被推断为等于0。
[0149]
vps_extension_flag等于0规定vps rbsp语法结构中不存在vps_extension_data_flag语法元素。vps_extension_flag等于1规定vps rbsp语法结构中存在vps_extension_data_flag语法元素。
[0150]
vps_extension_data_flag可以有任何值。其存在和值不影响解码器与此规范的此版本中规定的档次的一致性。符合此规范的此版本的解码器应当忽略所有vps_extension_data_flag语法元素。
[0151]
3.4.vvc中的sps语法和语义
[0152]
在jvet-p2001-v14中最新的vvc草案文本中,与本文发明最相关的sps语法和语义如下所示。
[0153]
7.3.2.3序列参数集rbsp语法
[0154][0155]
7.4.3.3序列参数集rbsp语义
[0156]
sps rbsp在被参考、被包括在至少一个au中(其中temporalid等于0)或通过外部方式被提供之前,应当可用于解码过程。
[0157]
cvs中具有sps_seq_parameter_set_id的特定的值的所有sps nal单元应当具有相同的内容。
[0158]
sps_decoding_parameter_set_id大于0时,规定sps参考的dps的dps_decoding_parameter_set_id的值。当sps_decoding_parameter_set_id等于0时,sps不参考dps,并且在对参考sps的每个clvs进行解码时不参考dps。sps_decoding_parameter_set_id的值在由比特流中的编解码图片参考的所有sps中应当相同。
[0159]
sps_video_parameter_set_id大于0时,规定由sps参考的vps的vps_video_parameter_set_id的值。
[0160]
当sps_video_parameter_set_id等于0时,以下内容适用:
[0161]-sps不参考vps。
[0162]-当解码每个参考sps的clvs时,不参考vps。
[0163]-vps_max_layers_minus1的值被推断为等于0。
[0164]-cvs应当仅包含一个层(即,cvs中的所有vcl nal单元应当具有相同的nuh_layer_id值)。
[0165]-generallayeridx[nuh_layer_id]的值被推断为等于0。
[0166]-vps_independent_layer_flag[generallayeridx[nuh_layer_id]]的值被推断为等于1。
[0167]
当vps_independent_layer_flag[generallayeridx[nuh_layer_id]]等于1时,具有特定nuh_layer_id值nuhlayerid的clvs所参考的sps应当具有等于nuhlayerid的nuh_layer_id。
[0168]
sps_max_sublayers_minus1加1规定每个参考sps的clvs中可能存在的时域子层的最大数量。sps_max_sublayers_minus1的值应当在0到vps_max_sublayers_minus1的范围(包括0和vps_max_sublayers_minus1)内。
[0169]
sps_reserved_zero_4bits在符合此规范的此版本的比特流中应当等于0。sps_reserved_zero_4bits的其它值被保留以供itu-t|iso/iec未来使用。
[0170]
sps_ptl_dpb_hrd_params_present_flag等于1规定sps中存在profile_tier_level()语法结构和dpb_parameters()语法结构,并且sps中也可能存在general_hrd_parameters()语法结构和ols_hrd_parameters()语法结构。sps_ptl_dpb_hrd_params_present_flag等于0规定sps中不存在这些语法结构。sps_ptl_dpb_hrd_params_present_flag的值应当等于vps_independent_layer_flag[nuh_layer_id]。
[0171]
如果vps_independent_layer_flag[generallayeridx[nuh_layer_id]]等于1,则变量maxdecpicbuffminus1将被设置为sps中dpb_parameters()语法结构中的max_dec_pic_buffering_minus1[sps_max_sublayers_minus1]。否则,maxdecpicbuffminus1被设置为等于vps中的第layer_nonoutput_dpb_params_idx[generallayeridx[nuh_layer_id]]个dpb_parameters()语法结构中的max_dec_pic_buffering_minus1[sps_max_sublayers_minus1]。
[0172]
3.5.vvc中的条带标头语法和语义
[0173]
在jvet-p2001-v14中最新的vvc草案文本中,与本发明最相关的条带标头语法和语义如下所示。
[0174]
7.3.7.1通用条带标头语法
[0175]
[0176]
7.4.8.1通用条带标头语义
[0177]
slice_type根据表格9规定条带的编解码类型
[0178]
表格9-与slice_type相关联的名称
[0179]
slice_typeslice_type的名称0b(b条带)1p(p条带)2i(i条带)
[0180]
当nal_unit_type是在idr_w_radl到cra_nut范围(包括idr_w_radl和cra_nut)内的nal_unit_type的值,并且当前图片是访问单元中的第一张图片,则slice_type应当等于2。
[0181]
4.所描述的技术解决方案解决的技术问题
[0182]
vvc中现有的可扩展设计存在以下问题:
[0183]
1)最新的vvc草案文本包括对slice_type的以下约束:
[0184]
当nal_unit_type是idr_w_radl到cra_nut范围(包括idr_w_radl和cra_nut)内的nal_unit_type值,并且当前图片是au中的第一张图片时,slice_type应当等于2。
[0185]
对于一个条带,slice_type的值等于2意味着该条带是在不使用来自参考图片的帧间预测的情况下进行帧内编解码的。
[0186]
然而,在au中,不仅位于au中且作为irap图片的第一张图片需要仅包含帧内编解码条带,而且所有独立层中的所有irap图片也需要仅包含帧内编解码条带。因此,上述约束确实需要被更新。
[0187]
2)当语法元素ols_ptl_idx[i]不存在时,仍然需要使用该值。然而,当ols_ptl_idx[i]不存在时,缺乏对其值的推断。
[0188]
3)当第i层未在任何ols中用作输出层时,语法元素layer_output_dpb_params_idx[i]的信令通知是不必要的。
[0189]
4)语法元素vps_num_dpb_params的值可以等于0。然而,当vps_all_independent_layers_flag等于0时,vps中需要至少有一个dpb_parameters()语法结构。
[0190]
5)在最新的vvc草案文本中,ols的ptl信息仅包含一个层,该层是不参考任何其它层的独立编解码层,仅在sps中被信令通知。然而,出于会话协商的目的,期望为vps中的比特流中的所有ols信令通知ptl信息。
[0191]
6)当vps中信令通知的ptl语法结构的数量为零时,不必要地信令通知vps_ptl_byte_alignment_zero_bit语法元素。
[0192]
7)在sps_video_parameter_set_id的语义中,有以下约束:
[0193]
当sps_video_parameter_set_id等于0时,cvs应当仅包含一个层(即,cvs中的所有vcl nal单元应当具有相同的nuh_layer_id值)。
[0194]
然而,此约束不允许在多层比特流中包括不参考vps的独立层。由于sps_video_parameter_set_id等于0意味着sps(和层)不参考vps。
[0195]
8)当each_layer_is_an_ols_flag等于1时,vps_general_hrd_params_present_flag的值可以等于1。然而,当each_layer_is_an_ols_flag等于1时,仅在sps中信令通知hrd参数,因此vps_general_hrd_params_present_flag的值不应当等于1。在一些情况下,
在vps中信令通知零个old_hrd_parameters()语法结构时,信令通知general_hrd_parameter()语法结构可能没有意义。
[0196]
9)在vps和sps二者中信令通知仅包含一个层的ols的hrd参数。然而,对于仅包含一个层的ols,在vps中重复hrd参数是没有用的。
[0197]
5.示例实施例和技术
[0198]
为了解决上述问题和其它问题,公开了如下总结的方法。这些发明应当被视为解释一般概念的示例,并且不应当被狭隘地解释。此外,这些发明可以被单独应用或以任何方式组合应用。
[0199]
1)为了解决第一个问题,规定了以下约束:
[0200]
当nal_unit_type在idr_w_radl到cra_nut的范围(包括idr_w_radl和cra_nut)内,并且vps_independent_layer_flag[generallayeridx[nuh_layer_id]]等于1时,slice_type应当等于2。
[0201]
2)为了解决第二个问题,对于i的可能值的每个值,当语法元素不存在时,ols_ptl_idx[i]的值被推断为等于0。
[0202]
3)为了解决第三个问题,规定变量layerusedasoutputlayerflag[i]以指示在任何ols中是否将该第i层用作输出层,并且当该变量等于0时,避免了变量layer_output_dpb_params_idx[i]的信令通知。
[0203]
a.此外,可以另外规定以下约束:对于0到vps_max_layers_minus1的范围(包括0和vps_max_layers_minus1)内的i的每个值,layerusedasreflayerflag[i]和layerusedasoutputlayerflag[i]的值不应当都等于0。换句话说,不应当存在既不是任何其它层的直接参考层,也不是至少一个ols的输出层的层。
[0204]
4)为了解决第四个问题,将vps_num_dpb_params更改为vps_num_dpb_params_minus1,并将vpsnumdpbparams规定如下:
[0205]
如果(!vps_all_independent_layers_flag)
[0206]
vpsnumdpbparams=vps_num_dpb_params_minus1+1
[0207]
否则
[0208]
vpsnumdpbparams=0
[0209]
并且用vpsnumdpbparams替换语法条件和语义中使用的vps_num_dpb_params。
[0210]
a.此外,另外规定了以下约束:当不存在时,same_dpb_size_output_or_nonoutput_flag的值被推断为等于1。
[0211]
5)为了解决第五个问题,出于会话协商的目的,允许在vps中重复仅包含一个层的ols的ptl信息。这可以通过将vps_num_ptls更改为vps_num_ptls_minus1来实现。
[0212]
a.可替代地,保留vps_num_ptls(不使其为vps_num_ptls_minus1),但从ols_ptl_idx[i]的语法条件中移除“numlayersinols[i]》1&&”。
[0213]
a.可替代地,保留vps_num_ptls(不使其为vps_num_ptls_minus1),但将vps_num_ptls条件设置为“如果(!each_layer_is_an_ols_flag)”或“如果(vps_max_layers_minus1》0&&!vps_all_independent_layers_flag)”。
[0214]
b.可替代地,还允许对仅包含vps中的一个层的ols重复dpb参数信息(仅dpb尺寸或所有dpb参数)。
[0215]
6)为了解决第六个问题,只要在vps中信令通知的ptl语法结构的数量为零,vps_ptl_byte_alignment_zero_bit语法元素就不会被信令通知。这可以通过将vps_ptl_byte_alignment_zero_bit条件设置为“如果(vps_num_ptls》0)”,或者通过将vps_num_ptls更改为vps_num_ptls_minus1来实现,这有效地不允许vps中信令通知的ptl语法结构的数量等于零。
[0216]
7)为了解决第七个问题,移除以下约束:
[0217]
当sps_video_parameter_set_id等于0时,cvs应当仅包含一个层(即,cvs中的所有vcl nal单元应当具有相同的nuh_layer_id值)。
[0218]
并添加以下约束:
[0219]
sps_video_parameter_set_id的值在由cvs中的编解码图片参考的所有sps中应当相同,并且sps_video_parameter_set_id大于0。
[0220]
a.可替代地,保留以下约束:
[0221]
当sps_video_parameter_set_id等于0时,cvs应当仅包含一个层(即,cvs中的所有vcl nal单元应当具有相同的nuh_layer_id值)。
[0222]
并规定以下约束:
[0223]
sps_video_parameter_set_id的值在由cvs中的编解码图片参考的所有sps中应当相同。
[0224]
8)为了解决第八个问题,当vps_general_hrd_params_present_flag等于1时,语法元素vps_general_hrd_params_present_flag不被信令通知,并且当不存在时,vps_general_hrd_params_present_flag的值被推断为等于0。
[0225]
a.可替代地,当each_layer_is_an_ols_flag等于1时,vps_general_hrd_params_present_flag的值被限制为等于0。
[0226]
b.此外,由于不需要语法元素num_ols_hrd_params_minus1的语法条件,即“如果(totalnumolss》1)”,因此其将被移除。这是因为,当totalnumolss等于1时,each_layer_is_an_ols_flag的值将等于1,并且然后vps_general_hrd_params_present_flag的值将等于0,那么vps中不会信令通知hrd参数。
[0227]
在一些情况下,当vps中不存在ols_hrd_parameters()语法结构,在vps中不信令通知general_hrd_parameters()语法结构。
[0228]
9)为了解决第九个问题,仅在sps中而不在vps中信令通知仅包含一个层的ols的hrd参数。
[0229]
6.实施例
[0230]
以下是上文第5节中总结的方面的一些示例实施例,其可以应用于vvc规范。更改的文本基于jvet-p2001-v14中最新的vvc文本。大多数已添加或修改的相关部分以下划线黑体进行突出显示,一些已删除的部分以斜体黑体突出显示。还有其它一些改变是编辑性质的,并且因此没有被突出显示。
[0231]
6.1.第一实施例
[0232]
6.1.1.vps语法和语义
[0233]
7.3.2.2视频参数集语法
[0234]
[0235]
[0236][0237]
7.4.3.2视频参数集rbsp语义
[0238]
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的输出层。
[0239]
按照如下方式导出规定第i个ols中的输出层数量的变量numoutputlayersinols[i],以及规定第i个ols中的第j个输出层的nuh_layer_id值的变量outputlayeridinols[i][j]:
[0240]
[0241][0242][0243]
对于每个ols,应当存在作为输出层的至少一个层。换句话说,对于0到totalnumolss-1范围(包括0和totalnumolss-1)内的任何i值,numoutputlayersinols[i]的值应当大于或等于1。
[0244]
按照如下方式导出规定第i个ols中的层的数量的变量numlayersinols[i],以及规定第i个ols中的第j个层的nuh_layer_id值的变量layeridinols[i][j]:
[0245]
[0246][0247]
注-第0个ols仅包含最低层(即,nuh_layer_id等于vps_layer_id[0]的层),并且对于第0个ols仅输出包含的层。
[0248]
按照如下方式导出规定nuh_layer_id等于layeridinols[i][j]的层的ols层索引的变量olslayeidx[i][j]:
[0249][0250]
每个ols中的最低层应当为独立层。换句话说,对于0到totalnumolss-1范围(包括0和totalnumolss-1)内的每个i,vps_independent_layer_flag[generallayeridx[layeridinols[i][0]]的值应当等于1。
[0251]
每个层应当被包括在由vps规定的至少一个ols中。换句话说,对于nuh_layer_id的特定的值nuhlayerid等于vps_layer_id[k](对于在0到vps_max_layers_minus1的范围(包括0和vps_max_layers_minus1)内)之一的每个层,应当存在至少一对i和j的值,其中i在0到totalnumolss-1的范围(包括0和totalnumolss-1)内,并且j在numlayersinols[i]-1的范围(包括numlayersinols[i]-1)内,使得layeridinols[i][j]的值等于nuhlayerid。
[0252]
规定vps中的profile_tier_level()语法结构的数量。
[0253]
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()语法结构的档次、层和一般约束信息相同。
[0254]
ptl_max_temporal_id[i]规定最高子层表示的temporalid,对于该表示vps中的
第i个profile_tier_level()语法结构中存在级别信息。ptl_max_temporal_id[i]的值应当在0到vps_max_sublayers_minus1的范围(包括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。
[0255]
vps_ptl_byte_alignment_zero_bit应当等于0。
[0256]
ols_ptl_idx[i]规定应用于第i个ols的profile_tier_level()语法结构在vps中的profile_tier_level()语法结构列表的索引。当存在时,ols_ptl_idx[i]的值应当在0到的范围(包括0和vps_num_ptls_minus1)内。
[0257]
当numlayersinols[i]等于1时,应用于第i个ols的profile_tier_level()语法结构存在于由第i个ols中的层参考的sps中。
[0258]
加1规定vps中的dpb_parameters()语法结构的数量。当存在时,的值应当在0到15的范围(包括0和15)内。
[0259][0260]
same_dpb_size_output_or_nonoutput_flag等于1规定vps中不存在layer_nonoutput_dpb_params_idx[i]语法元素。same_dpb_size_output_or_nonoutput_flag等于0规定vps中可能存在或可能不存在layer_nonoutput_dpb_params_idx[i]语法元素。于0规定vps中可能存在或可能不存在layer_nonoutput_dpb_params_idx[i]语法元素。
[0261]
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。
[0262]
dpb_size_only_flag[i]等于1规定vps中的第i个dpb_parameters()语法结构中不存在max_num_reorder_pics[]和max_latency_increase_plus1[]语法元素。dpb_size_only_flag[i]等于0规定vps中的第i个dpb_parameters()语法结构中可能存在max_num_reorder_pics[]和max_latency_increase_plus1[]语法元素。
[0263]
dpb_max_temporal_id[i]规定最高子层表示的temporalid,对于该表示dpb参数可能存在于vps中的第i个dpb_parameters()语法结构中。dpb_max_temporal_id[i]的值应当在0到vps_max_sublayers_minus1的范围(包括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。
[0264]
layer_output_dpb_params_idx[i]规定应用于ols中作为输出层的第i层的dpb_parameters()语法结构在vps中的dpb_parameters()语法结构列表的索引。当存在时,layer_output_dpb_params_idx[i]的值应当在0到的范围(包括0和vpsnumdpbparams-1)内。
[0265]
如果vps_independent_layer_flag[i]等于1,则当第i层是输出层时,应用于第i层的dpb_parameters()语法结构是该层参考的sps中存在的dpb_parameters()语法结构。
[0266]
否则(vps_independent_layer_flag[i]等于0),以下内容适用:
[0267]-当等于1时,layer_output_dpb_params_idx[i]的值被推断为等于0。
[0268]-比特流一致性的一个要求是,layer_output_dpb_params_idx[i]的值应当使得dpb_size_only_flag[layer_output_dpb_params_idx[i]]等于0。
[0269]
layer_nonoutput_dpb_params_idx[i]规定应用于ols中作为非输出层的第i层的dpb_parameters()语法结构在vps中的dpb_parameters()语法结构列表的索引。当存在时,layer_nonoutput_dpb_params_idx[i]的值应当在0到vpsnumdpbparams-1的范围(包括0和vpsnumdpbparams-1)内。
[0270]
如果same_dpb_size_output_or_nonoutput_flag等于1,则以下内容适用:
[0271]-如果vps_independent_layer_flag[i]等于1,则当第i层为非输出层时,应用于该层的dpb_parameters()语法结构是该层所参考的sps中存在的dpb_parameters()语法结构。
[0272]-否则(vps_independent_layer_flag[i]等于0),layer_nonoutput_dpb_params_idx[i]的值被推断为等于layer_output_dpb_params_idx[i]。
[0273]
否则(same_dpb_size_output_or_nonoutput_flag等于0),当vpsnumdpbparams等于1时,layer_output_dpb_params_idx[i]的值被推断为等于0。
[0274]
vps_general_hrd_params_present_flag等于1规定语法结构general_hrd_parameters()和其它hrd参数存在于vps rbsp语法结构中。vps_general_hrd_params_present_flag等于0规定vps rbsp语法结构中不存在语法结构general_hrd_parameters()和其它hrd参数。数。
[0275]
vps_sublayer_cpb_params_present_flag等于1规定vps中的第i个ols_hrd_parameters()语法结构包含子层表示的hrd参数,其中temporalid在0到hrd_max_tid[i]的范围(包括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。
[0276]
当vps_sublayer_cpb_params_present_flag等于0时,temporalid在0到hrd_max_tid[i]-1范围(包括0和hrd_max_tid[i]-1)内子层表示的hrd参数被推断为与temporalid等于hrd_max_tid[i]的子层表示的hrd参数相同。这些包括这样的hrd参数:从fixed_pic_rate_general_flag[i]语法元素开始,直到立即在ols_hrd_parameters语法结构中的“if(general_vcl_hrd_params_present_flag)”条件下的sublayer_hrd_parameters(i)语法结构。
[0277]
num_ols_hrd_params_minus1加1规定num_ols_hrd_params_minus1加1规定在general_hrd_parameters()语法结构中存在的ols_hrd_parameters()语法结构的数量。num_ols_hrd_params_minus1的值应当在0到63的范围(包括0和63)内。
[0278]
hrd_max_tid[i]规定最高子层表示的temporalid,对于该表示hrd参数被包含在第i个ols_hrd_parameters()语法结构中。hrd_max_tid[i]的值应当在0到vps_max_sublayers_minus1的范围(包括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。
[0279]
ols_hrd_idx[i]规定应用于第i个ols的ols_hrd_parameters()语法结构的hrd_parameters()语法结构的的索引。当存在时,ols_hrd_idx[[i]的值应当在0到num_ols_hrd_params_minus1的范围(包括0和num_ols_hrd_params_minus1)内。当时,ols_hrd_idx[[i]的值被推断为等于0。
[0280]
vps_extension_flag等于0规定vps rbsp语法结构中不存在vps_extension_data_flag语法元素。vps_extension_flag等于1规定vps rbsp语法结构中存在vps_extension_data_flag语法元素。
[0281]
vps_extension_data_flag可以有任何值。其存在和值不影响解码器与此规范的此版本中规定的档次的一致性。符合此规范的此版本的解码器应当忽略所有vps_extension_data_flag语法元素。
[0282]
6.1.2.sps语义
[0283]
7.4.3.3序列参数集rbsp语义
[0284]
sps rbsp在被参考、被包括在至少一个au(其中temporalid等于0)中或通过外部方式提供之前,应当可用于解码过程。
[0285]
cvs中具有sps_seq_parameter_set_id的特定值的所有sps nal单元应当具有相同的内容。
[0286]
sps_decoding_parameter_set_id大于0时,规定sps参考的dps的dps_decoding_parameter_set_id的值。当sps_decoding_parameter_set_id等于0时,sps不参考dps,并且在对参考sps的每个clvs进行解码时没有dps被参考。sps_decoding_parameter_set_id的值在比特流中编解码图片参考的所有sps中应当相同。
[0287]
sps_video_parameter_set_id大于0时,规定sps参考的vps的vps_video_parameter_set_id的值。parameter_set_id的值。
[0288]
当sps_video_parameter_set_id等于0时,以下内容适用:
[0289]-sps不参考vps。
[0290]-当对参考sps的每个clvs进行解码时,不参考vps。
[0291]-vps_max_layers_minus1的值被推断为等于0。
[0292]
‑‑
[0293]-generallayeridx[nuh_layer_id]的值被推断为等于0。
[0294]-vps_independent_layer_flag[generallayeridx[nuh_layer_id]]的值被推断为等于1。
[0295]
当vps_independent_layer_flag[generallayeridx[nuh_layer_id]]等于1时,由具有特定的nuh_layer_id值nuhlayerid的clvs参考的sps应当具有等于nuhlayerid的nuh_layer_id。
[0296]
6.1.3.条带标头语义
[0297]
7.4.8.1通用条带标头语义
[0298]
...
[0299]
slice_type根据表格9规定条带的编解码类型。
[0300]
表格9-与slice_type相关联的名称
[0301]
slice_typeslice_type的名称0b(b条带)1p(p条带)2i(i条带)
[0302]
当nal_unit_type在idr_w_radl到cra_nut的范围(包括idr_w_radl和cra_nut)内,内,slice_type应当等于2。
[0303]
图1是示出示例视频处理系统1900的框图,其中,可以实现本文公开的各种技术。各种实现可以包括系统1900的部分或全部组件。系统1900可以包括用于接收视频内容的输入1902。视频内容可以以原始或未压缩格式(例如,8位或10位多分量像素值)接收,或者可以以压缩或编码格式接收。输入1902可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(例如,以太网、无源光学网络(pon)等),以及无线接口(例如,wi-fi或蜂窝接口)。
[0304]
系统1900可以包括编解码组件1904,其可以实现本文档中描述的各种编码或编码方法。编解码组件1904可以将视频的平均比特率从输入1902降低到编解码组件1904的输出,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1904的输出可以被存储,或者经由由组件1906表示的连接的通信来传输。在输入1902处接收的视频的存储的或传送的比特流(或编解码的)表示可以由组件1908用于生成发送到显示接口1910的像素值或可显示视频。根据比特流生成用户可观看视频的过程有时被称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但将理解的是,在编码器处使用编解码工具或操作,并且反转编码结果的对应的解码工具或操作将由解码器执行。
[0305]
外围总线接口或显示接口的示例可能包括通用串行总线(usb)或高清多媒体接口
(hdmi)或displayport等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以体现在各种电子设备中,例如移动电话、膝上型计算机、智能手机或能够执行数字数据处理和/或视频显示的其它设备。
[0306]
图2是视频处理装置3600的框图。装置3600可以用于实现本文所描述的一种或多种方法。装置3600可以体现在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置3600可以包括一个或多个处理器3602、一个或多个存储器3604和视频处理硬件3606。(多个)处理器3602可以被配置为实现本文档中描述的一个或多个方法。一个或多个存储器3604可以用于存储用于实现本文所描述的方法和技术的数据和代码。视频处理硬件3606可以用于在硬件电路中实现本文档中描述的一些技术。在一些实施例中,硬件3606可以部分或全部位于(多个)处理器3602(例如,图形处理器)内。
[0307]
图4是示出可以利用本公开技术的示例视频编解码系统100的框图。
[0308]
如图4所示,视频编解码系统100可以包括源设备110和目的地设备120。源设备110生成可以被称为视频编码设备的编码视频数据。目的地设备120可以对源设备110生成的编码视频数据进行解码,源设备110可以被称为视频解码设备。
[0309]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0310]
视频源112可以包括诸如视频捕获设备之类的源、从视频内容提供商接收视频数据的接口和/或用于生成视频数据的计算机图形系统,或这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关联数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其它语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发射器。编码的视频数据可以通过网络130a经由i/o接口116直接发送到目的地设备120。编码的视频数据还可以存储在存储介质/服务器130b上,以供目的地设备120访问。
[0311]
目的地设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0312]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或存储介质/服务器130b获取编码的视频数据。视频解码器124可以对编码的视频数据进行解码。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目的地设备120集合,或者可以位于目的地设备120的外部,目的地设备120被配置为与外部显示设备接合。
[0313]
视频编码器114和视频解码器124可以根据视频压缩标准(例如高效视频编解码(hevc)标准、通用视频编解码(vvm)标准和其它当前和/或进一步的标准)操作。
[0314]
图5是示出视频编码器200的示例的框图,视频编码器200可以是图4所示的系统100中的视频编码器114。
[0315]
视频编码器200可以被配置为执行本公开的任何或所有技术。在图5的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0316]
视频编码器200的功能组件可以包括分割单元201、可以包括模式选择单元203的预测单元202、运动估计单元204、运动补偿单元205和帧内预测单元206、残差生成单元207、变换单元208、量化单元209、反量化单元210、反变换单元211,重建单元212、缓冲区213和熵编码单元214。
[0317]
在其它示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以在ibc模式下执行预测,其中至少一个参考图片是当前视频块所在的图片。
[0318]
此外,一些组件(例如运动估计单元204和运动补偿单元205)可以是高度集合的,但是出于解释的目的,在图5的示例中分别表示。
[0319]
分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
[0320]
模式选择单元203可以例如基于错误结果选择编解码模式中的一种(帧内或帧间),并将得到的帧内或帧间编解码块提供给残差生成单元207以生成残差块数据,以及提供给重建单元212以重建编码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内预测和帧间预测(ciip)模式的组合,其中预测基于帧间预测信号和帧内预测信号。模式选择单元203还可以在帧间预测的情况下为块选择运动向量的分辨率(例如,子像素精度或整数像素精度)。
[0321]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲区213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲区213的、与当前视频块相关联的图片以外的图片的运动信息和解码样本来确定当前视频块的预测视频块。
[0322]
例如,运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,这取决于当前视频块是在i条带、p条带还是b条带中。
[0323]
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。然后,运动估计单元204可以生成参考索引,该索引指示包含参考视频块的列表0或列表1中的参考图片,以及指示当前视频块和参考视频块之间的空域位移的运动向量。运动估计单元204可以输出参考索引、预测方向指示符和运动向量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0324]
在其它示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,还可以在列表1中的参考图片中搜索当前视频块的另一个参考视频块。然后,运动估计单元204可以生成指示包含参考视频块的列表0和列表1中的参考图片的参考索引,以及指示参考视频块和当前视频块之间的空域位移的运动向量。运动估计单元204可以输出当前视频块的参考索引和运动向量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0325]
在一些示例中,运动估计单元204可以输出用于解码器的解码处理的完整运动信息集合。
[0326]
在一些示例中,运动估计单元204可能不输出当前视频的完整运动信息集合。相反,运动估计单元204可以参考另一个视频块的运动信息来
[0327]
通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与邻近视频块的运动信息足够相似。
[0328]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中,指示
向视频解码器300指示当前视频块具有与另一个视频块相同的运动信息的值。
[0329]
在另一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一个视频块和运动向量差(mvd)。运动向量差指示当前视频块的运动向量与所指示视频块的运动向量之间的差。视频解码器300可以使用所指示视频块的运动向量和运动向量差来确定当前视频块的运动向量。
[0330]
如上所讨论的,视频编码器200可以预测地信令通知运动向量。可以由视频编码器200实现的预测信令技术的两个示例包括高级运动向量预测(amvp)和merge模式信令。
[0331]
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其它视频块的解码样点生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[0332]
残差生成单元207可以通过从当前视频块减去(例如,用减号表示)当前视频块的预测视频块来生成当前视频块的残差数据。当前视频块的残余数据可以包括对应于当前视频块中的样点的不同样点分量的残余视频块。
[0333]
在其它示例中,对于当前视频块,可能没有当前视频块的残差数据,例如在跳过模式下,残差生成单元207可能不执行减法操作。
[0334]
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块,来为当前视频块生成一个或多个变换系数视频块。
[0335]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(qp)值,来对与当前视频块相关联的变换系数视频块进行量化。
[0336]
反量化单元210和反变换单元211可以分别对变换系数视频块应用反量化和反变换,以根据变换系数视频块重建残差视频块。重建单元212可以将重建的残差视频块添加到来自预测单元202生成的一个或多个预测视频块的对应样点中,以产生与当前块相关联的重建视频块,以存储在缓冲区213中。
[0337]
在重建单元212重建视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪像。
[0338]
熵编码单元214可以从视频编码器200的其它功能组件接收数据。当熵编码单元214接收到数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码数据,并输出包括熵编码数据的比特流。
[0339]
图6是示出视频解码器300的示例的框图,视频解码器300可以是图4所示的系统100中的视频解码器114。
[0340]
视频解码器300可以被配置为执行本公开的任何或所有技术。在图5的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0341]
在图6的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、反量化单元304、反变换单元305、重建单元306和缓冲区307。在一些示例中,视频解码器300可以执行通常与关于视频编码器200描述的编码遍次(图5)相反的解码遍次。
[0342]
熵解码单元301可以取回编码比特流。编码比特流可以包括熵编码的视频数据(例如,视频数据的编码块)。熵解码单元301可以对熵编码的视频数据进行解码,并且运动补偿
单元302可以根据熵解码的视频数据确定运动信息,该运动信息包括运动向量、运动向量精度、参考图片列表索引以及其它运动信息。例如,运动补偿单元302可以通过执行amvp和merge模式来确定这种信息。
[0343]
运动补偿单元302可以产生运动补偿块,可能基于插值滤波器执行插值。语法元素中可以包括用于以子像素精度使用的插值滤波器的标识符。
[0344]
运动补偿单元302可以使用视频编码器20在视频块编码期间使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元302可以根据接收到的语法信息确定视频编码器200使用的插值滤波器,并使用插值滤波器来产生预测块。
[0345]
运动补偿单元302可以使用一些语法信息来确定用于对编码视频序列的帧和/或条带进行编码的块的尺寸,描述如何对编码视频序列的图片的每个宏块进行分割的分区信息,指示如何对每个分区进行编码的模式,用于每个帧间编码块的一个或多个参考帧(和参考帧列表),以及用于对编码视频序列进行解码的其它信息。
[0346]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来根据空域上邻近的块形成预测块。反量化单元303对比特流中提供并由熵解码单元301解码的量化视频块系数进行反量化(即,去量化)。反变换单元303应用反变换。
[0347]
重建单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块相加,以形成解码块。如果需要,还可以应用去方块滤波器来对解码块进行滤波,以便移除块性伪像。解码视频块然后被存储在缓冲区307中,缓冲区307为后续运动补偿/帧内预测提供参考块,并且还产生解码视频以在显示设备上呈现。
[0348]
下面提供一些实施例优选的解决方案的列表。
[0349]
以下解决方案示出了上一节中讨论的技术的示例实施例(例如,第1项)。
[0350]
1.一种视频处理方法(例如,图3中的方法600),包括:在包含一个或多个可缩放视频层的视频和视频的编解码表示之间执行转换,其中编解码表示符合格式规则,其中,格式规则指定,当对应的网络抽象层单元类型在预定范围内,并且对应的视频层标志指示对应于片段的视频层不使用层间预测时,指示片段的片段类型的字段的值被设置为指示帧内片段的类型。
[0351]
2.解决方案1的方法,其中,条带的条带类型被设置为2。
[0352]
3.解决方案1的方法,其中,预定范围是从idr_w_radl到cra_nut,两者都包含在内。
[0353]
4.一种视频处理的方法,包括:执行包括一个或多个可扩展视频层的视频和视频的编解码表示之间的转换,其中,编解码表示符合格式规则,其中,格式规则规定,在对描述一个或多个可扩展视频层的档次和层、级别的语法结构的索引从编解码表示中排除的情况下,对该索引的指示被推断为等于0。
[0354]
5.解决方案4的方法,其中,指示包括ols_ptl_idx[i]语法元素,其中i是整数。
[0355]
6.一种视频处理的方法,包括:执行包括一个或多个可扩展视频层的视频和视频的编解码表示之间的转换,其中,编解码表示包含多个输出层集合(ols),其中,每个ols是编解码表示中的层的集合,其中层的集合规定为要被输出,其中,编解码表示符合格式规则,其中,格式规则规定,在ols包括单个层的情况下,编解码表示的视频参数集合被允许具有关于ols的档次、层和级别的重复信息。
[0356]
7.解决方案6的方法,其中,格式规则规定信令通知数字字段,该数字字段指示关于多个ols的档次、层和级别的信息集合的总数,其中总数为至少一个。
[0357]
8.解决方案1-7中的任一项的方法,其中,执行转换包括对视频进行编码以生成编解码表示。
[0358]
9.解决方案1-7中的任一项的方法,其中,执行转换包括对编解码表示进行解析和解码以生成视频。
[0359]
10.一种视频解码装置,包括处理器,其被配置为实现解决方案1至9中的一个或多个中记载的方法。
[0360]
11.一种视频编码装置,包括处理器,其被配置为实现解决方案1至9中的一个或多个中记载的方法。
[0361]
12.一种计算机程序产品,其上存储有计算机代码,该代码当由处理器执行时,使得处理器实现解决方案1至9中的任一个中记载的方法。
[0362]
13.本文档中描述的方法、装置或系统。
[0363]
关于图7a至图7i,可以在一些实施例中优选地实现以下列出的解决方案。
[0364]
例如,可以根据上一节中的第1项实现以下解决方案。
[0365]
1.一种视频处理的方法(例如,图7a中描述的方法710),包括执行(712)包括一个或多个可扩展视频层的视频与视频的比特流之间的转换,其中,视频包括一个或多个包括一个或多个条带的视频图片;其中,比特流符合格式规则,其中,格式规则规定,在对应的网络抽象层单元类型在预定范围内并且对应的视频层标志指示对应于条带的视频层不使用层间预测的情况下,指示条带的条带类型的字段的值被设置为指示帧内条带的类型。
[0366]
2.解决方案1的方法,其中,条带的条带类型被设置为2。
[0367]
3.解决方案1的方法,其中,预先确定的范围是从idr_w_radl到cra_nut,两者都包含在内,其中,idr_w_radl指示具有瞬时解码刷新类型的条带,并且其中,cra_nut指示具有清洁随机访问类型的条带。
[0368]
4.解决方案1-3中的任一个的方法,其中,对应的视频层标志对应于vps_independent_layer_flag[generallayeridx[nuh_layer_id]],其中,nuh_layer_id对应于视频层的标识符,generallayeridx[]是视频层的索引,并且vps_independent_layer_flag对应于视频层标志。
[0369]
5.解决方案1-4中的任一个的方法,其中,执行转换包括将视频编码到比特流中。
[0370]
6.解决方案1-4中的任一个的方法,其中,执行转换包括根据比特流解析和解码视频。
[0371]
7.一种用于存储视频比特流的方法,包括:根据包括一个或多个可扩展视频层的视频生成比特流;以及将比特流存储在非暂时性计算机可读存储介质中;其中,视频包括一个或多个视频图片,视频图片包括一个或多个条带;其中,比特流符合格式规则,其中,格式规则规定,在对应的网络抽象层单元类型在预定范围内并且对应的视频层标志指示对应于条带的视频层不使用层间预测的情况下,指示条带的条带类型的字段的值被设置为指示i条带的类型。
[0372]
例如,可以根据上一节中的第5项实现以下解决方案。
[0373]
1.一种视频处理方法(例如,图7b所示的方法720),包括:执行(722)包括多个视频
层的视频和视频的比特流之间的转换,其中,比特流包括多个输出层集合(ols),每个输出层集合(ols)包括多个可扩展视频层中的一个或多个,并且比特流符合格式规则,其中,格式规则规定,对于具有单个层的ols,指示ols的档次、层和级别的档次-层-级别(ptl)语法结构被包括在比特流的视频参数集合中,并且ols的ptl语法结构也被包括在比特流中编解码的序列参数集合中。
[0374]
2.解决方案1的方法,其中,格式规则规定语法元素被包括在指示视频参数集合中编解码的多个ptl语法结构的视频参数集合中。
[0375]
3.解决方案2的方法,其中,在视频参数集合中编解码的ptl语法结构的数量等于语法元素的值加一。
[0376]
4.解决方案2的方法,其中,在视频参数集合中编解码的ptl语法结构的数量等于语法元素的值。
[0377]
5.解决方案4的方法,其中,格式规则规定当确定多个ols中的一个或多个包含多于一个视频层时,在编码期间在视频参数集合中编解码语法元素,或在解码期间从视频参数集合中解析语法元素。
[0378]
6.解决方案4的方法,其中,格式规则规定当确定视频层的数量大于0且一个或多个视频层使用层间预测时,在编码期间在视频参数集合中编解码语法元素,或在解码期间从视频参数集合中解析语法元素。
[0379]
7.解决方案1至6中的任一个的方法,其中,格式规则进一步规定,对于具有单个层的ols,ols的解码图片缓冲区尺寸参数被包括在比特流的视频参数集合中,并且ols的解码图片缓冲区尺寸参数还被包括在比特流中编解码的序列参数集合中。
[0380]
8.解决方案1至6中的任一个的方法,其中,格式规则进一步规定,对于具有单个层的ols,ols的解码图片缓冲区的参数信息被包括在比特流的视频参数集合中,并且ols的解码图片缓冲区的参数信息也被包括在比特流中编解码的序列参数集合中。
[0381]
例如,可以根据上一节中的第6项实现以下解决方案。
[0382]
9.一种视频处理方法(例如,图7c所示的方法730),包括:执行(732)包括多个视频层的视频和视频的比特流之间的转换,其中,比特流包括多个输出层集合(ols),每个输出层集合(ols)包括多个视频层中的一个或多个,并且比特流符合格式规则,其中,格式规则规定在比特流的视频参数集合中出现的多个档次-层-级别(ptl)语法结构与视频参数集合中的字节对齐语法字段之间的关系;其中,每个ptl语法结构指示多个ols中的一个或多个的档次、层和级别。
[0383]
10.解决方案9的方法,其中,格式规则规定,视频参数集合中包括至少一个ptl语法结构,并且由于包括至少一个ptl语法结构,字节对齐语法字段的一个或多个实例被包括在视频参数集合中。
[0384]
11.解决方案10的方法,其中,字节对齐语法字段为一位。
[0385]
12.解决方案11的方法,其中,字节对齐语法字段的一个或多个实例的每个的值具有值0。
[0386]
例如,可以根据上一节中的第2项实现以下解决方案。
[0387]
13.一种视频处理方法(例如,图7d所示的方法740),包括:执行(742)包括多个可扩展视频层的视频和视频的比特流之间的转换,其中,比特流包括多个输出层集合(ols),
每个输出层集合(ols)包括多个可扩展视频层中的一个或多个,并且比特流符合格式规则,其中,格式规则规定:在编码期间,在索引的值为零的情况下,从比特流的视频参数集合中排除指示对描述多个ols中的一个或多个的档次、层和级别的语法结构的索引的语法元素,或者在解码期间,在比特流中不存在语法元素的情况下,该值被推断为零。
[0388]
14.解决方案13的方法,其中,索引是指向语法结构的,该语法结构指示至少一个ols的档次、层和级别。
[0389]
15.一种用于存储视频的比特流的方法,包括:从包括多个视频层的视频生成比特流,并且将该比特流存储在非暂时性计算机可读存储介质中;其中,比特流包括多个输出层集合(ols),每个输出层集合包括多个视频层中的一个或多个,并且比特流符合格式规则,其中,格式规则规定,对于具有单个层的ols,指示ols的档次、层和级别的档次-层-级别(ptl)语法结构被包括在比特流的视频参数集合中,并且ols的ptl语法结构也被包括在比特流中编解码的序列参数集合中。
[0390]
16.解决方案1-14中的任一个的方法,其中,执行转换包括将视频编码为比特流;并且该方法进一步包括将比特流存储在非暂时性计算机可读存储介质中。
[0391]
例如,可以根据上一节中的第3项实现以下解决方案。
[0392]
1.一种视频处理方法(例如,图7e所示的方法750),包括:执行(752)包括多个视频层的视频和视频的比特流之间的转换,其中,比特流包括多个输出层集合(ols),每个输出层集合(ols)包括多个视频层中的一个或多个,并且比特流符合格式规则,其中,格式规则规定,对于层i,其中i是整数,比特流包括指示第一变量的第一语法元素的集合,该第一变量指示层i是否被包括在多个ols中的至少一个中。
[0393]
2.解决方案1的方法,其中,格式规则规定,在层i的第一变量等于零的情况下,意味着层i不被包括在多个ols中的任一个中,比特流排除指示层i的解码图片缓冲区参数的第二语法元素集合。
[0394]
3.解决方案1-2中的任一个的方法,其中,格式规则进一步规定比特流包括指示第二变量的第三语法元素集合,该第二变量指示层i是否用作多个视频层中至少一个的参考层,并且其中,格式规则不允许第一变量和第二变量具有零值。
[0395]
4.解决方案3的方法,其中,格式规则不允许第一变量和第二变量的值都等于0,这指示没有一个层既不是任何其它层的直接参考层,也不是至少一个ols的输出层。
[0396]
5.解决方案1-4中的任一个的方法,其中,第一变量是一位标志,表示为layerusedasoutputlayerflag。
[0397]
6.解决方案5的方法,其中,第一变量是基于对多个视频层中的每一层反复检查第三变量的值来确定的,该值指示多个ols中包括的多个层之间的关系。
[0398]
7.解决方案6的方法,其中,指示包括在多个ols中的多个层之间的关系的第三变量被允许具有值0、1或2。
[0399]
8.解决方案1-7中的任一个的方法,其中,执行转换包括将视频编码成比特流;并且该方法进一步包括将比特流存储在非暂时性计算机可读存储介质中。
[0400]
9.一种用于存储视频比特流的方法,包括:根据包括多个视频层的视频生成比特流,并且将该比特流存储在非暂时性计算机可读存储介质中;其中,比特流包括多个输出层集合(ols),每个输出层集合包括多个视频层中的一个或多个,并且比特流符合格式规则,
其中,格式规则规定,对于层i(其中i是整数),比特流包括指示第一变量的第一语法元素的集合,该第一变量指示层i是否被包括在多个ols中的至少一个中。
[0401]
例如,可以根据上一节中的第4项实现以下解决方案。
[0402]
1.一种视频处理方法(例如,图7f所示的方法760),包括:执行(762)视频和视频的比特流之间的转换,其中,比特流包括一个或多个输出层集合,每个输出层集合包括一个或多个视频层;其中,比特流符合格式规则,其中,格式规则规定,在每个输出层集合包括单个视频层的情况下,比特流的视频参数集合中包括的解码图片缓冲区参数语法结构的数量等于:零;或者在每个输出层集合包括单个层不为真的情况下,比特流的视频参数集合中包括的解码图片缓冲区参数语法结构的数量等于:一加上语法元素的值。
[0403]
2.解决方案1的方法,其中,语法元素对应于vps_num_dpb_params_minus1语法元素。
[0404]
3.解决方案1-2中的任一个的方法,其中,格式规则规定,在视频参数集合中不存在另一个语法元素(该语法元素指示相同尺寸是否用于指示视频层的解码图片缓冲区语法结构,这些视频层被包括且不被包括在一个或多个输出层集合中)的情况下,另一个语法元素的值被推断为等于1。
[0405]
4.解决方案1-3中的任一个的方法,其中,执行转换包括将视频编码为比特流;并且该方法进一步包括将比特流存储在非暂时性计算机可读存储介质中。
[0406]
5.一种用于存储视频的比特流的方法,包括:根据视频生成比特流;以及将比特流存储在非暂时性计算机可读存储介质中;其中,比特流包括一个或多个输出层集合,每个输出层集合包括一个或多个视频层;其中,比特流符合格式规则,其中,格式规则规定,在每个输出层集合包括单个视频层的情况下,比特流的视频参数集合中包括的解码图片缓冲区参数语法结构的数量等于:零;或者在每个输出层集合包括单个层不为真的情况下,比特流的视频参数集合中包括的解码图片缓冲区参数语法结构的数量等于:一加语法元素的值。
[0407]
例如,可以根据上一节中的第7项实现以下解决方案。
[0408]
1.一种视频处理方法(例如,图7g所示的方法770),包括:执行(772)视频和视频的比特流之间的转换,其中,比特流包括编解码视频序列(cvs),该编解码视频序列包括一个或多个视频层的一个或多个编解码视频图片;并且其中,比特流符合格式规则,该格式规则规定指示由cvs的一个或多个编解码图片参考的转换参数的一个或多个序列参数集合(sps)具有指示参考vps的相同参考视频参数集合(vps)标识符。
[0409]
2.解决方案1的方法,其中,格式规则进一步规定同一参考vps标识符具有大于0的值。
[0410]
3.解决方案1-2中的任一个的方法,其中,格式规则进一步规定,响应于且仅当cvs包括单个视频层时,才使用sps标识符的值零。
[0411]
4.解决方案1-3中的任一个的方法,其中,执行转换包括将视频编码为比特流;并且该方法进一步包括将比特流存储在非暂时性计算机可读存储介质中。
[0412]
5.一种用于存储视频的比特流的方法,包括:根据视频生成比特流,并将该比特流存储在非暂时性计算机可读存储介质中;其中,视频包括一个或多个视频图片,视频图片包括一个或多个条带;其中,比特流包括编解码视频序列(cvs),该编解码视频序列包括一个或多个视频层的一个或多个编解码视频图片;并且其中,比特流符合格式规则,该格式规则
规定指示由cvs的一个或多个编解码图片参考的转换参数的一个或多个序列参数集合(sps)具有指示参考vps的相同参考视频参数集合(vps)标识符。
[0413]
例如,可以根据上一节中的第8项实现以下解决方案。
[0414]
1.一种视频处理方法(例如,图7h所示的方法780),包括:执行(782)视频和视频的比特流之间的转换,其中,比特流包括一个或多个输出层集合(ols),每个输出层集合(ols)包括一个或多个视频层,其中,比特流符合格式规则;其中,格式规则规定第一语法元素是否或如何被包括在比特流的视频参数集合(vps)中,该第一语法元素指示描述假想参考解码器(hrd)的参数的第一语法结构是否用于转换。
[0415]
2.解决方案1的方法,其中,第一语法结构包括通用hrd参数的集合。
[0416]
3.解决方案1-2的方法,其中,格式规则规定,由于一个或多个ols的ols中包括一个或多个视频层中的每个,当vps中不存在第一语法元素时,第一语法元素从vps中忽略且被推断为具有零值,并且其中,一个或多个ols中的每个都包括单个视频层。
[0417]
4.解决方案1-2的方法,其中,格式规则规定,由于一个或多个ols的ols中包括一个或多个视频层的每个,当第一语法元素出现在vps中时,第一语法元素在vps中具有零值,并且其中,一个或多个ols中的每个包括单个视频层。
[0418]
5.解决方案1-4中的任一个的方法,其中,格式规则进一步规定vps中是否包括或如何包括第二语法元素,该第二语法元素指示描述ols特定的hrd参数的多个语法结构。
[0419]
6.解决方案5的方法,其中,格式规则进一步规定,当第一语法元素具有值1时,第二语法元素被包括在vps中,无论一个或多个ols中的ols的总数是否大于1。
[0420]
例如,可以根据上一节中的第9、10项实现以下解决方案。
[0421]
7.一种视频处理方法(例如,图7i所示的方法790),包括:执行(792)视频和视频的比特流之间的转换,其中,比特流包括一个或多个输出层集合(ols),每个输出层集合(ols)包括一个或多个视频层,其中,比特流符合格式规则;其中,格式规则规定在比特流的视频参数集合(vps)中是否包括或如何包括描述通用假想参考解码器(hrd)参数的第一语法结构和描述ols特定的hrd参数的多个第二语法结构。
[0422]
8.解决方案7的方法,其中,格式规则规定在没有第二语法结构被包括在vps中的情况下,从vps中省略第一语法结构。
[0423]
9.解决方案7的方法,其中,对于仅包括一个视频层的ols,格式规则排除第一语法结构和第二语法结构包括在vps中,并且其中,格式规则允许将第一语法结构和第二语法结构包括在仅包括一个视频层的ols中。
[0424]
10.一种用于存储视频的比特流的方法,包括:根据视频生成比特流;将比特流存储在非暂时性计算机可读存储介质中;其中,比特流包括一个或多个输出层集合(ols),每个输出层集合(ols)包括一个或多个视频层,其中,比特流符合格式规则;其中,格式规则规定第一语法元素是否或如何被包括在比特流的视频参数集合(vps)中,该第一语法元素指示描述假想参考解码器(hrd)的参数的第一语法结构是否用于转换。
[0425]
上面列出的解决方案可以进一步包括:
[0426]
在一些实施例中,在上面列出的解决方案中,执行转换包括将视频编码为比特流。
[0427]
在一些实施例中,在上面列出的解决方案中,执行转换包括根据比特流解析和解码视频。
[0428]
在一些实施例中,在上面列出的解决方案中,执行转换包括将视频编码为比特流;并且该方法进一步包括将比特流存储在非暂时性计算机可读存储介质中。
[0429]
在一些实施例中,视频解码装置包括处理器,该处理器被配置为实现上面列出的一个或多个解决方案中记载的方法。
[0430]
在一些实施例中,视频编码装置包括处理器,该处理器被配置为实现上面列出的一个或多个解决方案中记载的方法。
[0431]
在一些实施例中,非暂时性计算机可读存储介质可以存储使得处理器实现上面列出的一个或多个解决方案中记载的方法的指令。
[0432]
在一些实施例中,一种非暂时性计算机可读存储介质,存储视频的比特流,该比特流由上面列出的一种或多种解决方案中记载的方法生成。
[0433]
在一些实施例中,上面描述的编码方法可以由装置实现,并且该装置可以进一步将通过实现该方法生成的比特流写入计算机可读介质。
[0434]
本文件中描述的所公开的解决方案和其它解决方案、示例、实施例、模块和功能操作可以在以下各项中实现:数字电子电路,或计算机软件、固件或硬件,包括本文档中公开的结构及其结构等同物,或上述各项的一个或多个的组合。所公开的实施例和其它实施例可以被实现为一个或多个计算机程序产品,即,编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制其操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合物,或者一个或多个它们的组合。术语“数据处理装置”包含用于处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或其中一个或多个的组合的代码。传播信号是人为生成的信号,例如,机器生成的电气、光学或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置。
[0435]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且其也可以以任何形式部署,包括作为独立程序或模块、组件、子例程或其它适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件相对应。程序可以被存储在保存其它程序或数据的文件部分(例如,标记语言文档中存储的一个或多个脚本)、专用于相关程序的单个文件或多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署以在一台计算机上执行,或在位于一个站点或分布在多个站点并通过通信网络互连的多台计算机上执行。
[0436]
本文档中描述的过程和逻辑流可以由一个或多个可编程处理器执行,这些计算机程序执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流还可以由专用逻辑电路执行,并且装置还可以实现为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。
[0437]
例如,适合执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或被操作地耦合以从一个或多个用于
存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或向其传输数据。然而,计算机不需要这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪速存储器设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom光盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0438]
尽管本专利文档包含许多细节,但这些细节不应当被解释为对任何主题或要求保护的内容的范围的限制,而应当被解释为对特定的技术的特定的实施例所特有的特征的描述。本专利文档中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或在任何合适的子组合中实现。此外,尽管上述特征可以被描述为以特定组合起作用,甚至最初被声称为这样,但在一些情况下,可以从所要求保护的组合中删除一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。
[0439]
类似地,尽管在附图中以特定的顺序描述这些操作,但这不应当被理解为要求按照所示的特定的顺序或序列顺序执行这样的操作,或要求所有示出的操作被执行,以获得理想的结果。此外,本专利文档中描述的实施例中的各种系统组件的分离不应当理解为在所有实施例中都要求这种分离。
[0440]
仅描述了一些实现和示例,并且其它实现、增强和变体可以基于本专利文档中描述和说明的内容进行。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1