视频编解码中的低频不可分变换信令通知的制作方法

文档序号:31852047发布日期:2022-10-19 01:27阅读:35来源:国知局
视频编解码中的低频不可分变换信令通知的制作方法
视频编解码中的低频不可分变换信令通知
1.相关申请的交叉引用
2.根据巴黎公约适用的专利法和/或规则,提出本技术是为了及时要求2020年3月3日提交的美国临时专利申请no.62/984,658的优先权和权益。出于法律规定的所有目的,上述申请的全部公开内容通过引用并入作为本技术的公开内容的部分。
技术领域
3.本专利文档涉及图像和视频编解码和解码。


背景技术:

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


技术实现要素:

5.本文档公开了可由视频编码器和解码器使用的技术,以使用对编解码表示的解码有用的控制信息来处理视频的编解码表示。
6.在一个示例方面,公开了一种视频处理方法。该方法包括,执行视频的视频块和视频的比特流之间的转换,其中,比特流符合格式规则,其中,格式规则规定,第一语法元素被包括在视频区域级别的比特流中,第一语法元素指示缩放处理是应用于视频块的变换系数还是应用于视频块的非变换系数,并且其中,视频区域小于视频的视频图片。
7.在另一个示例方面,公开了一种视频处理方法。该方法包括,执行视频的视频区域的视频单元和视频的比特流之间的转换,其中,比特流符合格式规则,其中,格式规则规定,比特流中的视频区域的第一级别的第一控制信息指示第二控制信息是否被包括在比特流中的视频单元的第二级别中,并且其中,第一控制信息和/或第二控制信息包括关于缩放列表是用于转换的变换系数还是用于转换的非变换系数的信息。
8.在另一个示例方面,公开了一种视频处理方法。该方法包括,执行视频的视频块和视频的比特流之间的转换,其中,视频块使用低频不可分变换进行转换,其中,比特流符合格式规则,格式规则规定,在比特流的语法级别包括语法元素,其中,语法元素指示是否为视频块启用从参考缩放列表推导的缩放矩阵的使用,并且其中,语法级别是序列级别、图片级别或条带级别。
9.在另一个示例方面,公开了一种视频处理方法。该方法包括,对于视频的视频单元和视频的比特流之间的转换,确定使用视频单元的边界外的填充样点对沿着视频单元的边界的视频单元的样点执行去方块滤波;并且根据确定来执行转换。
10.在另一个示例方面,公开了一种视频处理方法。该方法包括,执行包括一个或多个视频图片的视频和视频的编解码表示之间的转换,其中,每个视频图片包括一个或多个片,其中,编解码表示符合格式规则;其中,格式规则规定,在编解码表示中信令通知的第一信息和从编解码表示中推导的第二信息,其中,至少第一信息或第二信息与一个或多个片的
行索引或列索引相关。
11.在另一个示例方面,公开了一种视频处理方法。该方法包括,执行视频的视频区域的视频单元和视频的编解码表示之间的转换,其中,编解码表示符合格式规则;其中,格式规则规定,视频区域处的第一控制信息控制是否在视频单元级别包括第二控制信息;其中,第一控制信息和/或第二控制信息包括关于用于转换的亮度映射与色度缩放(luma mapping and chroma scaling,lmcs)或色度残差缩放(chroma residue scaling,crs)或重塑处理(reshaping process,rp)的信息。
12.在又一示例中,公开了另一种视频处理方法。该方法包括,执行包括一个或多个视频区域的视频和该视频的编解码表示之间的转换,该一个或多个视频区域包括一个或多个视频单元;其中,编解码表示符合格式规则;其中,格式规则规定,编解码表示包括可用于转换至少一些视频单元的缩放列表的两级别信令通知,其中,视频区域级别的两级别信令通知中的高级别信令通知控制视频单元级别的两级别信令通知中的低级别信令通知是否以及在何处被包括在编解码表示中;其中,缩放列表包括关于用于至少一些视频单元的转换的缩放的信息。
13.在又一示例中,公开了另一种视频处理方法。该方法包括,确定用于视频的视频单元和视频的编解码表示之间的转换的低频不可分变换的缩放列表;并且基于确定来执行转换,其中,编解码表示中的语法结构指示是否为视频单元启用缩放列表。
14.在又一示例方面,公开了一种视频编码器装置。视频编码器包括被配置为实施上述方法的处理器。
15.在又一示例方面,公开了一种视频解码器装置。视频解码器包括被配置为实施上述方法的处理器。
16.在又一示例方面,公开了一种其上存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现了本文描述的方法之一。
17.本文档中描述了这些和其他特征。
附图说明
18.图1示出了图片的光栅扫描条带分割的示例,其中,图片被划分为12个片和3个光栅扫描条带。
19.图2示出了图片的矩形条带分割的示例,其中,图片被划分为24个片(6个片列和4个片行)和9个矩形条带。
20.图3示出了被分割为片和矩形条带的图片的示例,其中,图片被划分为4个片(2个片列和2个片行)和4个矩形条带。
21.图4示出了被分割为15个片、24个条带和24个子图片的图片。
22.图5为示例视频处理系统的框图。
23.图6为视频处理装置的框图。
24.图7为视频处理的示例方法的流程图。
25.图8是图示根据本公开的一些实施例的视频编解码系统的框图。
26.图9是图示根据本公开的一些实施例的编码器的框图。
27.图10是图示根据本公开的一些实施例的解码器的框图。
28.图11示出了去方块滤波的填充处理的示例。
29.图12至图15是视频处理的示例方法的流程图。
具体实施方式
30.本文档中使用章节标题是为了便于理解并且不将各章节中公开的技术和实施例的适用性仅限制于该章节。此外,在一些描述中使用h.266术语仅仅是为了易于理解,而不是为了限制所公开技术的范围。因此,本文描述的技术也适用于其他视频编解码器协议和设计。在本文档中,相对于vvc规范的当前草案,编辑更改显示为指示取消文本的斜体文本和指示添加文本的粗体斜体文本。
31.1.概要
32.本文档涉及视频编解码技术。具体来说,其为关于对子图片、lmcs、amvr和缩放列表的支持。关于子图片的方面包括推导一个子图片中包含的片行和列的数量,以及当每个子图片仅包含一个条带时推导条带中包含的ctu的光栅扫描ctu地址列表。lmcs方面是关于在不同级别上启用lmcs的信令通知。amvr的方面是关于sps_affine_amvr_enabled_flag的语义。缩放列表的方面是关于启用在不同级别上使用显式缩放列表。这些想法可以单独或以各种组合应用于支持单层和/或多层视频编解码的任何视频编解码标准或非标准视频编解码器,例如正在开发的多功能视频编解码(versatilevideocoding,vvc)。
33.2.缩写
34.alf(adaptiveloopfilter)自适应环路滤波器
35.amvr(adaptivemotionvectordifferenceresolution)自适应运动矢量差精度
36.aps(adaptationparameterset)自适应参数集
37.au(accessunit)接入单元
38.aud(accessunitdelimiter)接入单元分隔符
39.avc(advancedvideocoding)高级视频编解码
40.clvs(codedlayervideosequence)编解码层视频序列
41.cpb(codedpicturebuffer)编解码图片缓冲器
42.cra(cleanrandomaccess)清理随机接入
43.ctu(codingtreeunit)编解码树单元
44.cvs(codedvideosequence)编解码视频序列
45.dpb(decodedpicturebuffer)解码图片缓冲器
46.dps(decodingparameterset)解码参数集
47.eob(endofbitstream)比特流结尾
48.eos(endofsequence)序列结尾
49.gdr(gradualdecodingrefresh)逐渐解码刷新
50.hevc(highefficiencyvideocoding)高效视频编解码
51.hrd(hypotheticalreferencedecoder)假设参考解码器
52.idr(instantaneousdecodingrefresh)即时解码刷新
53.jem(jointexplorationmodel)联合探索模型
54.lfnst(lowfrequencynon-separabletransform)低频不可分变换
55.lmcs(lumamappingwithchromascaling)亮度映射与色度缩放
56.mcts(motion-constrainedtilesets)运动约束片集
57.nal(networkabstractionlayer)网络抽象层
58.ols(outputlayerset)输出层集
59.ph(pictureheader)图片标头
60.pps(pictureparameterset)图片参数集
61.ptl(profile,tierandlevel)档次、层和级别
62.pu(pictureunit)图片单元
63.rbsp(rawbytesequencepayload)原始字节序列有效载荷
64.sei(supplementalenhancementinformation)辅助增强信息
65.sps(sequenceparameterset)序列参数集
66.svc(scalablevideocoding)可缩放视频编解码
67.vcl(videocodinglayer)视频编解码层
68.vps(videoparameterset)视频参数集
69.vtm(vvctestmodel)vvc测试模型
70.vui(videousabilityinformation)视频可用性信息
71.vvc(versatilevideocoding)多功能视频编解码
72.3.初步讨论
73.视频编解码标准主要是通过众所周知的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标准。从h.262开始,视频编解码标准基于混合视频编解码结构,其中,利用时域预测加变换编解码。为了探索hevc之外的未来视频编解码技术,由vceg和mpeg于2015年联合成立联合视频探索团队(jointvideoexplorationteam,jvet)。从那时起,jvet采用了许多新方法并将其纳入名为联合探索模型(jem)的参考软件。jvet会议每季度同时举行一次,新编解码标准的目标是与hevc相比降低50%比特率。新的视频编解码标准在2018年4月的jvet会议上被正式命名为多功能视频编码(vvc),并且第一版vvc测试模型(vtm)也在当时发布。随着vvc标准化的不断努力,新的编解码技术在每次jvet会议上都被采用到vvc标准中。vvc的工作草案和测试模型vtm在每次会议后都会更新。vvc项目现在的目标是在2020年7月的会议上技术完成(fdis)。3.1.hevc中的图片分割方案
74.hevc包括四种不同的图片分割方案,即常规条带、非独立条带、片和波前并行处理(wavefrontparallelprocessing,wpp),这可应用于最大传输单元(maximumtransferunit,mtu)尺寸匹配、并行处理和减小端到端延迟。
75.常规条带与h.264/avc中的类似。每个常规条带都被封装在其自己的nal单元中,并且禁用了跨条带边界的图片内预测(帧内样点预测、运动信息预测、编解码模式预测)和熵编解码依赖性。因此,可以独立于同一图片内的其他常规条带重建常规条带(尽管由于环路滤波操作可能仍然存在相互依赖性)。
76.常规条带是唯一可用于并行化的工具,该工具在h.264/avc中也以几乎相同的形
v2.zip。包含此修订内,hevc指定了三个与mct相关的sei消息,即时域mcts sei消息、mcts提取信息集sei消息和mcts提取信息嵌套sei消息。
83.时域mcts sei消息指示比特流中存在mcts并信令通知mcts。对于每个mcts,运动矢量被限制为指向mcts内的全样点位置和仅需要mcts内的全样点位置进行插值的分数样点位置,并且不允许使用对于来自mcts之外的块推导的时域运动矢量预测的运动矢量候选。这样,每个mcts可以在不存在未包括在mcts中的片的情况下进行独立解码。
84.mcts提取信息集sei消息提供补充信息,该补充信息可用于mcts子比特流提取(指定为sei消息的语义的部分)以生成符合mcts组的比特流。该信息由多个提取信息集组成,每个提取信息集定义多个mcts组并包含要在mcts子比特流提取过程期间使用的替换vps、sps和pps的rbsp字节。在根据mcts子比特流提取过程提取子比特流时,参数集(vps、sps和pps)需要重写或替换,条带头需要稍微更新,因为一个或全部与条带地址相关的语法元素(包括first_slice_segment_in_pic_flag和slice_segment_address)通常需要具有不同的值。
85.3.2.vvc中图片的分割
86.在vvc中,图片被分为一个或多个片行和一个或多个片列。片是覆盖图片的矩形区域的ctu序列。片中的ctu在该片内以光栅扫描顺序进行扫描。
87.条带由图片的片内的整数个完整片或整数个连续完整ctu行组成。
88.支持两种条带模式,即光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式中,条带包含图片的片光栅扫描中的完整条带序列。在矩形条带模式中,条带包含共同形成图片的矩形区域的多个完整片或共同形成图片的矩形区域的一个片的多个连续完整ctu行。矩形条带内的片在对应于该条带的矩形区域内以片光栅扫描顺序进行扫描。
89.子图片包含共同覆盖图片的矩形区域的一个或多个条带。
90.图1示出了图片的光栅扫描条带分割的示例,其中,图片被分割为12个片和3个光栅扫描条带。
91.图2示出了图片的矩形条带分割的示例,其中,图片被分割为24个片(6个片列和4个片行)和9个矩形片。
92.图3示出了被分割为片和矩形条带的图片的示例,其中,图片被分割为4个片(2个片列和2个片行)和4个矩形条带。
93.图4示出了图片的子图片分割的示例,其中,图片被分割为18个片,左侧的12个片(每个覆盖一个有4x4个ctu的条带)以及右侧的6个片(每个覆盖2个有2x2个ctu的垂直堆叠的条带),总共产生24个条带和24个不同维度的子图片(每个条带是子图片)。
94.3.3.vvc中的sps/pps/图片头/条带头的信令通知(如jvet-q2001-vc)
95.7.3.2.3序列参数集rbsp语法
96.97.98.99.100.101.102.103.[0104][0105]
7.3.2.4图片参数集rbsp语法
[0106]
[0107]
[0108]
[0109]
[0110][0111]
7.3.2.7图片头结构语法
[0112]
[0113]
[0114]
[0115]
[0116]
[0117][0118]
7.3.7.1一般条带头语法
[0119]
[0120]
[0121]
[0122]
[0123][0124]
3.4.jvet-q2001-vc中片、条带和子图片的规范
[0125]
3个定义
[0126]
图片级别条带索引:条带到图片中的条带列表的索引,当rect_slice_flag等于1时按照它们在pps中被信令通知的顺序。
[0127]
子图片级别条带索引:条带到子图片中的条带列表的索引,当rect_slice_flag等于1时按照它们在pps中被信令通知的顺序。
[0128]
6.5.1ctb光栅扫描、片扫描和子图片扫描处理
[0129]
变量numtilecolumns指定片列的数量,以及范围从0到numtilecolumn-1(包括端值)的i的列表colwidth[i]以ctb为单位指定第i个片列的宽度,推导如下:
[0130][0131]
变量numtilerows指定片行数,以及范围从0到numtilerows-1(包括端值)的j的列表rowheight[j]以单位为ctb指定第j个片行的高度,推导如下:
[0132][0133]
变量numtilesinpic被设置为等于numtilecolumns*numtilerows。
[0134]
范围从0到numtilecolumns(包括端值)的i的列表tilecolbd[i]以ctb为单位指定第i个片列边界的位置,推导如下:
[0135]
for(tilecolbd[0]=0,i=0;i《numtilecolumns;i++)tilecolbd[i+1]=tilecolbd[i]+colwidth[i]
ꢀꢀꢀꢀꢀꢀꢀ
(25)
[0136]
注1

数组tilecolbd[]的尺寸比ctbtotilecolbd[]的推导中的片列的实际数量大1。
[0137]
范围从0到numtilerows(包括端值)的j的列表tilerowbd[j]以ctb为单位指定第j个片行边界的位置,推导如下:
[0138]
for(tilerowbd[0]=0,j=0;j《numtilerows;j++)tilerowbd[j+1]=tilerowbd[j]+rowheight[j]
ꢀꢀꢀꢀꢀ
(26)
[0139]
注2

上述推导中的数组tilerowbd[]的尺寸比ctbtotilerowbd[]的推导中的片行的实际数量大1。
[0140]
范围从0到picwidthinctbsy(包括端值)的ctbaddrx的列表ctbtotilecolbd[ctbaddrx]以ctb为单位指定从水平ctb地址到左侧片列边界的转换,推导如下:
[0141][0142]
注3

在上述推导中的数组ctbtotilecolbd[]的尺寸比slice_data()信令通知的推导中ctb中的图片宽度的实际数量大1。
[0143]
范围从0到picheightinctbsy(包括端值)的ctbaddry的列表ctbtotilerowbd[ctbaddry]以ctb为单位指定从垂直ctb地址到的上方片列边界的转换,推导如下:
[0144][0145][0146]
注4

在上述推导中的数组ctbtotilerowbd[]的尺寸比slice_data()信令通知中ctb中的图片高度的实际数量大1。
[0147]
对于矩形条带,范围从0到num_slices_in_pic_minus1(包括端值)的i的列表numctusinslice[i]指定第i个条带中ctu的数量,范围从0到num_slices_in_pic_minus1(包括端值)的i的列表slicetoplefttileidx[i]指定条带的左上片的索引,并且范围从0到num_slices_in_pic_minus1(包括端值)的i和范围从0到numctusinslice[i]

1(包括端值)的j的矩阵指定第i个条带内的第j个ctb的图片光栅扫描地址,推导如下:
[0148]
[0149][0150]
其中,函数addctbstoslice(sliceidx,startx,stopx,starty,stopy)被指定如下:[ed.(yk):考虑以与规范中定义的其他函数一致的方式定义这个函数。]
[0151][0152]
[0153]
比特流一致性的要求是,范围从0到num_slices_in_pic_minus1(包括端值)的i的numctusinslice[i]的值应大于0。此外,比特流一致性的要求是,范围从0到num_slices_in_pic_minus1(包括端值)的i以及范围从0到numctusinslice[i]-1(包括端值)的j的矩阵ctbaddrinslice[i][j]应包括0到picsizeinctbsy-1范围内的所有ctb地址一次且仅一次。
[0154]
范围从0到picsizeinctbsy-1(包括端值)的ctbaddrrs的列表ctbtosubpicidx[ctbaddrrs]指定了从图片光栅扫描中的ctb地址到子图片索引的转换,推导如下:[ed.(yk):考虑将ctbtosubpicidx[]定义为局部变量,因为它仅在本子条款中使用。]
[0155][0156]
列表numslicesinsubpic[i]指定第i个子图片中的矩形条带的数量,推导如下:
[0157]
[0158][0159]
7.3.4.3图片参数集rbsp语义
[0160]

[0161]
subpic_id_mapping_in_pps_flag等于1指定在pps中信令通知子图片id映射。subpic_id_mapping_in_pps_flag等于0指定pps中不信令通知子图片id映射。如果sub pic_id_mapping_explicitly_signaled_flag为0或subpic_id_mapping_in_sps_flag等于1,则subpic_id_mapping_in_pps_flag的值应等于0。否则(sub pic_id_mapping_explicitly_signaled_flag等于1,并且subpic_id_mapping_in_sps_flag等于0),subpic_id_mapping_in_pps_flag的值应等于1。
[0162]
pps_num_subpics_minus1应等于sps_num_subpics_minus1。
[0163]
pps_subpic_id_len_minus1应等于sps_subpic_id_len_minus1。
[0164]
pps_subpic_id[i]指定第i个子图片的子图片id。pps_subpic_id[i]语法元素的长度为pps_subpic_id_len_minus1+1位。
[0165]
对于0到sps_num_subpics_minus1范围内的每个i值,变量subpicidval[i]的推导如下:
[0166][0167][0168]
比特流一致性的要求是应用以下两个约束:
[0169]
‑‑
对于0到sps_num_subpics_minus1(包括端值)范围内的i和j的任何两个不同
值,subpicidval[i]不应等于subpicidval[j]。
[0170]
‑‑
当当前图片不是clvs的第一个图片时,对于0到sps_num_subpics_minus1(包括端值)范围内的每个i值,如果subpicidval[i]的值不等于同一层中按照解码顺序的前一个图片的subpicidval[i]的值,则具有子图片索引i的当前图片中的子图片的所有编解码条带nal单元的nal_unit_type应等于idr_w_radl到cra_nut(包括端值)范围内的特定值。
[0171]
no_pic_partition_flag等于1指定不将图片分割应用于参考pps的每个图片。no_pic_partition_flag等于0指定参考pps的每个图片可以被分割成一个以上的片或条带。
[0172]
比特流一致性的要求是,对于clvs内的编解码图片所参考的所有pps,no_pic_partition_flag的值应相同。
[0173]
比特流一致性的要求是,当sps_num_subpics_minus1+1的值大于1时,no_pic_partition_flag的值不应等于1。
[0174]
pps_log2_ctu_size_minus5加5指定每个ctu的亮度编解码树块尺寸。pps_log2_ctu_size_minus5应等于sps_log2_ctu_size_minus5。
[0175]
num_exp_tile_columns_minus1加1指定显式提供的片列宽的数量。num_exp_tile_columns_minus1的值应在0到picwidthinctbsy

1(包括端值)的范围内。当no_pic_partition_flag等于1时,num_exp_tile_columns_minus1的值被推断为等于0。
[0176]
num_exp_tile_rows_minus1加1指定显式提供的片行高的数量。num_exp_tile_rows_minus1的值应在0到picheightinctbsy

1(包括端值)的范围内。当no_pic_partition_flag等于1时,num_tile_rows_minus1的值被推断为等于0。
[0177]
tile_column_width_minus1[i]加1以ctb为单位指定第i个片列的宽度,i的范围为0到num_exp_tile_columns_minus1-1(包括端值)。
[0178]
tile_column_width_minus1[num_exp_tile_columns_minus1]用于推导索引大于或等于num_exp_tile_columns_minus1的片列的宽度,如条款6.5.1中所规定。tile_column_width_minus1[i]的值应在0到picwidthinctbsy

1(包括端值)的范围内。当不存在时,tile_column_width_minus1[0]的值推断为等于picwidthinctbsy-1。
[0179]
tile_row_height_minus1[i]加1以ctb为单位指定第i个片行的高度,i的范围为0到num_exp_tile_rows_minus1

1(包括端值)。
[0180]
tile_row_height_minus1[num_exp_tile_rows_minus1]用于推导索引大于或等于num_exp_tile_rows_minus1的片行的高度,如条款6.5.1中所规定。tile_row_height_minus1[i]的值应在0到picheightinctbsy

1(包括端值)的范围内。当不存在时,tile_row_height_minus1[0]的值推断为等于picheightinctbsy-1。
[0181]
rect_slice_flag等于0指定每个条带内的片处于光栅扫描顺序,并且条带信息在pps中没有被信令通知。rect_slice_flag等于1指定每个条带内的片覆盖图片的矩形区域,并且条带信息在pps中被信令通知。当不存在时,rect_slice_flag被推断为等于1。当subpic_info_present_flag等于1时,rect_slice_flag的值应等于1。
[0182]
single_slice_per_subpic_flag等于1指定每个子图片由一个且仅一个矩形条带组成。single_slice_per_subpic_flag等于0指定每个子图片可以由一个或多个矩形条带组成。当single_slice_per_subpic_flag等于1时,num_slices_in_pic_minus1被推断为等于sps_num_subpics_minus1。当不存在时,single_slice_per_subpic_flag的值被推断为
等于0。[ed.(gjs):考虑重新命名该标志或以另一种方式澄清,以避免解释该标志仅在每个图片中有一个以上子图片时才相关。]
[0183]
num_slices_in_pic_minus1加1指定参考pps的每个图片中矩形条带的数量。num_slices_in_pic_minus1的值应在0到maxslicesperpicture

1(包括端值)的范围内,其中,maxslicesperpicture在附录a中指定。当no_pic_partition_flag等于1时,num_slices_in_pic_minus1的值被推断为等于0。
[0184]
tile_idx_delta_present_flag等于0指定tile_idx_delta值不存在于pps中,并且根据条款6.5.1中定义的过程,参考pps的图片中的所有矩形条带以光栅顺序指定。[ed.(rs):添加对公式的参考。]
[0185]
tile_idx_delta_present_flag等于1指定tile_idx_delta值可以存在于pps中,并且参考pps的图片中的所有矩形条带以tile_idx_delta的值所指示的顺序来指定。当不存在时,tile_idx_delta_present_flag的值被推断为等于0。
[0186]
slice_width_in_tiles_minus1[i]加1以片列为单位指定第i个矩形条带的宽度。slice_width_in_tiles_minus1[i]的值应在0到numtilecolumns

1(包括端值)的范围内。
[0187]
当slice_width_in_tiles_minus1[i]不存在时,以下适用:
[0188]
‑‑
如果numtilecolumns等于1,则slice_width_in_tiles_minus1[i]的值被推断为等于0。
[0189]
‑‑
否则,如条款6.5.1中所规定的,推断slice_width_in_tiles_minus1[i]的值。[ed.(yk):添加对公式的参考。]
[0190]
slice_height_in_tiles_minus1[i]加1以片行为单位指定第i个矩形条带的高度。slice_height_in_tiles_minus1[i]的值应在0到numtilerows

1(包括端值)的范围内。
[0191]
当slice_height_in_tiles_minus1[i]不存在时,以下适用:
[0192]
‑‑
如果numtilerows等于1,或者tile_idx_delta_present_flag等于0,并且tileidx%numtilecolumns大于0,则slice_height_in_tiles_minus1[i]的值被推断为等于0。
[0193]
‑‑
否则(numtilerows不等于1,且tile_idx_delta_present_flag等于1或tileidx%numtilecolumns等于0),当tile_idx_delta_present_flag等于1或tileidx%numtilecolumns等于0时,slice_height_in_tiles_minus1[i]的值被推断为等于slice_height_in_tiles_minus1[i-1]。
[0194]
num_exp_slices_in_tile[i]指定在包含多个矩形条带的当前片中显式提供的条带高度的数量。num_exp_slices_in_tile[i]的值应在0至rowheight[tiley]

1(包括端值)的范围内,其中,tiley是包含第i个条带的条带行索引。当不存在时,num_exp_slices_in_tile[i]的值被推断为等于0。当num_exp_slices_in_tile[i]等于0时,变量numslicesintile[i]的值被推导为等于1。
[0195]
exp_slice_height_in_ctus_minus1[j]加1以ctu行为单位指定当前片中的第j个矩形条带的高度。exp_slice_height_in_ctus_minus1[j]的值应在0至rowheight[tiley]

1(包括端值)的范围内,其中,tiley是当前片的片行索引。
[0196]
当num_exp_slices_in_tile[i]大于0时,范围为0至numslicesintile[i]

1的k的变量numslicesintile[i]和sliceheightinctusminus1[i+k]被推导如下:
[0197][0198]
tile_idx_delta[i]指定第i个矩形条带中的第一个片的片索引和第(i+1)个矩形条带中的第一个片的片索引之间的差。tile_idx_delta[i]的值应在-numtilesinpic+1至numtilesinpic

1(包括端值)的范围内。当不存在时,tile_idx_delta[i]的值被推断为等于0。当存在时,tile_idx_delta[i]的值不应等于0。
[0199]

[0200]
7.4.2.4.5vcl nal单元的顺序及其与编解码图片的关联
[0201]
编解码图片内的vcl nal单元的顺序被约束如下:
[0202]
‑‑
对于编解码图片的任意两个编解码条带nal单元a和b,设subpicidxa和subpicidxb为它们的子图片级别索引值,并且sliceaddra和sliceddrb为它们的slice_address值。
[0203]
‑‑
当以下任一条件为真时,编解码条带nal单元a应在编解码条带nal单元b之前:
[0204]

subpicidxa小于subpicidxb。
[0205]
‑‑
subpicidxa等于subpicidxb,并且sliceaddra小于sliceaddrb。
[0206]
7.4.8.1一般条带头语义
[0207]
指定包含cu_qp_delta_abs的编解码单元的亮度量化参数与其预测之间的差的变量cuqpdeltaval被设置为等于0。在确定包含cu_chroma_qp_offset_flag的编解码单元的qp

cb
、qp

cr
和qp

cbcr
量化参数的相应值时,指定要使用的值的变量cuqpoffset
cb
、cuqpoffset
cr
和cuqpoffset
cbcr
都被设置为等于0。
[0208]
picture_header_in_slice_header_flag等于1指定ph语法结构存在于条带头中。picture_header_in_slice_header_flag等于0指定ph语法结构不存在于条带头中。
[0209]
比特流一致性的要求是,在clvs中的所有编解码条带中,picture_header_in_slice_header_flag的值应该相同。
[0210]
当编解码条带的picture_header_in_slice_header_flag等于1时,比特流一致性的要求是clvs中不应出现nal_unit_type等于ph_nut的vclnal单元。
[0211]
当picture_header_in_slice_header_flag等于0时,当前图片中的所有编解码条带都应当具有等于0的picture_header_in_slice_header_flag,并且当前pu应当具有ph nal单位。
[0212]
slice_subpic_id指定包含条带的子图片的子图片id。如果slice_subpic_id存在,则变量currsubpicidx的值被推导,使得subpicidval[currsubpicidx]等于slice_subpic_id。否则(slice_subpic_id不存在),currsubpicidx被推导为等于0。slice_subpic_id的长度为sps_subpic_id_len_minus1+1位。
[0213]
slice_address指定条带的条带地址。当不存在时,slice_address的值被推断为等于0。当rect_slice_flag等于1且numslicesinsubpic[currsubpicidx]等于1时,slice_address的值被推断为等于0。
[0214]
如果rect_slice_flag等于0,则以下适用:
[0215]-条带地址是光栅扫描片索引。
[0216]-slice_address的长度为ceil(log2(numtilesinpic))位。
[0217]-slice_address的值应在0到numtilesinpic

1(包括端值)的范围内。
[0218]
否则(rect_slice_flag等于1),以下适用:
[0219]-条带地址是条带的子图片级别条带索引。
[0220]-slice_address的长度为ceil(log2(numslicesinsubpic[currsubpicidx]))位。
[0221]-slice_address的值应在0到numslicesinsubpic[currsubpicidx]

1(包括端值)的范围内。
[0222]
比特流一致性的要求是应用以下约束:
[0223]-如果rect_slice_flag等于0或subpic_info_present_flag等于0,则slice_address的值不应等于同一编解码图片的任何其它编解码条带nal单元的slice_address的值。
[0224]-否则,一对slice_subpic_id和slice_address值不应等于同一编解码图片的任何其它编解码条带nal单元的一对slice_subpic_id和slice_address值。
[0225]-图片的条带的形状应使得每个ctu在解码时,其整个左侧边界和整个上方边界由图片边界组成或由先前解码的(多个)ctu的边界组成。
[0226]
sh_extra_bit[i]可以等于1或0。符合此版本的该规范的解码器应忽略sh_extra_bit[i]的值。它的值不影响解码器与此版本规范中指定的档次的一致性。
[0227]
num_tiles_in_slice_minus1加1(如果存在)指定条带中的片的数量。num_tiles_in_slice_minus1的值应在0到numtilesinpic

1(包括端值)的范围内。
[0228]
变量numctusincurrslice指定当前条带中ctu的数量,并且范围从0到numctusincurrslice

1(包括端值)的i的列表ctbaddrincurrslice[i]指定条带内第i个ctb的图片光栅扫描地址,推导如下:
[0229][0230][0231]
变量subpicleftboundarypos、subpictopboundarypos、subpicrightboundarypos和subpicbotboundarypos的推导如下:
[0232][0233]

[0234]
3.5.亮度映射与色度缩放(lmcs)
[0235]
lmcs包括两个方面:亮度映射(重塑过程,用rp表示)和依赖于亮度的色度残差缩放(crs)。对于亮度信号,lmcs模式基于两个域进行操作,其中包括作为原始域的第一域和作为根据重塑模型将亮度样点映射到特定值的重塑域的第二域。此外,对于色度信令,可以应用残差缩放,其中,缩放因子是从亮度样点中推导的。
[0236]
sps、图片头(ph)和条带头(slice header,sh)中的相关语法元素和语义描述如下:
[0237]
语法表
[0238]
7.3.2.3序列参数集rbsp语法
[0239][0240]
7.3.2.7图片头结构语法
[0241]
[0242][0243]
7.3.7条带头语法
[0244]
7.3.7.1一般条带头语法
[0245][0246]
语义
[0247]
sps_lmcs_enabled_flag等于1指定在clvs中使用亮度映射与色度缩放。sps_lmcs_enabled_flag等于0指定clvs中不使用亮度映射与色度缩放。
[0248]
ph_lmcs_enabled_flag等于1指定为与ph相关的所有条带启用亮度映射与色度缩放,ph_lmcs_enabled_flag等于0指定可以为与ph相关的一个、多个或所有条带禁用亮度映射与色度缩放。当不存在时,ph_lmcs_enabled_flag的值被推断为等于0。
[0249]
ph_lmcs_aps_id指定与ph相关联的条带所参考的lmcs aps的adaptation_parameter_set_id。aps_params_type等于lmcs_aps且adaptation_parameter_set_id等于
ph_lmcs_aps_id的aps nal单元的temporalid应小于或等于与ph相关的图片的temporalid。
[0250]
ph_chroma_residual_scale_flag等于1指定为与ph关联的所有条带启用色度残差缩放。ph_chroma_residual_scale_flag等于0指定可以为与ph关联的一个、多个或所有条带禁用色度残差缩放。当ph_chroma_residual_scale_flag不存在时,其被推断为等于0。
[0251]
slice_lmcs_enabled_flag等于1指定为当前条带启用亮度映射与色度缩放。slice_lmcs_enabled_flag等于0指定为当前条带不启用亮度映射与色度缩放。当slice_lmcs_enabled_flag不存在时,其被推断为等于0。
[0252]
3.6.仿射编解码块的自适应运动矢量差精度(amvr)
[0253]
仿射amvr是一种编解码工具,其允许仿射帧间编解码块以不同精度发送mv差,例如以1/4亮度样点(默认,amvr_flag设置为0)、1/16亮度样点、1亮度样点为精度。
[0254]
sps中的相关语法元素和语义描述如下:
[0255]
语法表
[0256]
7.3.2.3序列参数集rbsp语法
[0257]
[0258][0259]
语义
[0260]
sps_affine_amvr_enabled_flag等于1指定在仿射帧间模式的运动矢量编解码中使用自适应运动矢量差精度。sps_affine_amvr_enabled_flag等于0指定在仿射帧间模式的运动矢量编解码中不使用自适应运动矢量差精度。当不存在时,sps_affine_amvr_enabled_flag的值被推断为等于0。
[0261]
3.7子图片级别信息sei消息
[0262]
d.7.1子图片级别信息sei消息语法
[0263]
[0264][0265]
d.7.2子图片级别信息sei消息语义
[0266]
子图片级别信息sei消息包含有关在根据附件a测试提取的包含子图片序列的比特流的一致性时比特流中的子图片序列符合的级别的信息。
[0267]
当子图片级别信息sei消息存在于clvs的任何图片时,子图片级别信息sei消息将存在于clvs的第一个图片。子图片级别信息sei消息以解码顺序从当前图片持续到当前层,直到clvs结束。适用于同一clvs的所有子图片级别信息sei消息应具有相同的内容。子图片序列由clvs内具有相同子图片索引值的所有子图片组成。
[0268]
比特流一致性的要求是,当clvs的子图片级别信息sei消息存在时,对于0到sps_num_subpics_minus1的(包括端值)的范围内的每个i值,subpic_treated_as_pic_flag[i]的值应等于1。
[0269]
num_ref_levels_minus1加1指定为每个sps_num_subpics_minus1+1子图片信令通知的参考级别的数量。
[0270]
sli_cbr_constraint_flag等于0指定为了通过使用在提取的子比特流中使用任何cpb规范的hrd来根据条款c.7对由提取比特流的任何子图片所产生的子比特流进行解码,假设的流调度器(hypothetical stream scheduler,hss)以间歇比特率模式运行。sli_cbr_constraint_flag等于1指定hss以恒定比特率(constant bit rate,cbr)模式运行。
[0271]
explicit_fraction_present_flag等于1指定存在语法元素ref_level_fraction_minus1[i]。explicit_fraction_present_flag等于0指定语法元素ref_level_fraction_minus1[i]不存在。
[0272]
sli_num_subpics_minus1加1指定clvs的图片中子图片的数量。当存在时,sli_num_subpics_minus1的值应等于clvs中的图片所参考的sps中的sps_num_subpics_minus1的值。
[0273]
sli_alignment_zero_bit应等于0。
[0274]
ref_level_idc[i]指示附录a中指定的每个子图符合的级别。除了附录a中指定的值之外,比特流不得包含ref_level_idc的值。ref_level_idc[i]的其他值保留供itu-t|iso/iec将来使用。比特流一致性的要求是,对于大于i的任何k值,ref_level_idc[i]的值应小于或等于ref_level_idc[k]。
[0275]
ref_level_fraction_minus1[i][j]加1指定与第j个子图片符合的ref_level_idc[i]相关的级别限制的分数,如条款a.4.1中所规定的。
[0276]
变量subpicsizey[j]被设置为等于(subpic_width_minus1[j]+1)*ctbsizey*(subpic_height_minus1[j]+1)*ctbsizey。
[0277]
当不存在时,ref_level_fraction_minus1[i][j]的值推断为等于ceil(256*subpicsizey[j]
÷
picsizeinsamplesy*maxlumaps(general_level_idc)
÷
maxlumaps(ref_level_idc[i])-1。[ed.(hd):这里的picsizeinsamplesy不应该是条款a.4.2中指定的picsizemaxinsamplesy吗?]
[0278]
变量reflevelfraction[i][j]被设置为等于ref_level_fraction_minus1[i][j]+1。
[0279]
变量subpicnumtilecols[j]和subpicnumtilerows[j]的推导如下:
[0280][0281][0282]
变量subpiccpbsizevcl[i][j]和subpiccpbsizenal[i][j]的推导如下:
[0283]
subpiccpbsizevcl[i][j]=floor(cpbvclfactor*maxcpb*reflevelfraction[i][j]
÷
256)
ꢀꢀꢀꢀꢀ
(d.6)
[0284]
subpiccpbsizenal[i][j]=floor(cpbnalfactor*maxcpb*reflevelfraction[i][j]
÷
256)
ꢀꢀꢀꢀꢀꢀ
(d.7)
[0285]
其中,根据条款a.4.2的规定,maxcpb从ref_level_idc[i]中推导。
[0286]
变量subpicbitratevcl[i][j]和subpicbitratenal[i][j]的推导如下:
[0287]
subpicbitratevcl[i][j]=floor(cpbvclfactor*maxbr*reflevelfraction[i][j]
÷
256)
ꢀꢀꢀꢀꢀꢀ
(d.8)
[0288]
subpicbitratenal[i][j]=floor(cpbnalfactor*maxbr*reflevelfraction[i][j]
÷
256)
ꢀꢀꢀꢀꢀꢀ
(d.9)
[0289]
其中,根据条款a.4.2的规定,maxbr由ref_level_idc[i]推导。
[0290]
注1

当提取子图片时,产生的比特流具有大于或等于subpiccpbsizevcl[i][j]和
subpiccpbsizenal[i][j]的cpbsize(在sps中指示或推断),以及大于或等于subpicbitratevcl[i][j]和subpicbitratenal[i][j]的比特率(在sps中指示或推断)。
[0291]
比特流一致性的要求是,由提取范围从0到sps_num_subpics_minus1(包括端值)的j的第j个子图片产生的比特流,并符合具有general_tier_flag等于0和级别等于范围从0到num_ref_level_minus1(包括端值)的i的ref_level_idc[i]的档次,应遵守附录c中指定的每个比特流一致性测试的以下约束:
[0292]-ceil(256*subpicsizey[j]
÷
reflevelfraction[i][j])应小于或等于maxlumaps,其中,maxlumaps在表a.1中为级别ref_level_idc[i]指定。
[0293]-ceil(256*(subpic_width_minus1[j]+1)*ctbsizey
÷
reflevelfraction[i][j])的值应小于或等于sqrt(maxlumaps*8)。
[0294]-ceil(256*(subpic_height_minus1[j]+1)*ctbsizey
÷
reflevelfraction[i][j])的值应小于或等于sqrt(maxlumaps*8)。
[0295]-subpicnumtilecols[j]的值应小于或等于maxtilecols,并且subpicnumtilerows[j]的值应小于或等于maxtilerows,其中,在表a.1中为级别ref_level_idc[i]指定maxtilecols和maxtilerows。
[0296]-subpicnumtilecols[j]*subpicnumtilerows[j]的值应小于或等于maxtilecols*maxtilerows*reflevelfraction[i][j],其中,在表a.1中为级别ref_level_idc[i]指定maxtilecols和maxtilerows。
[0297]-对于au 0的subpicsizeinsamplesy的值,对应于第j个子图片的au 0的numbytesinnalunit变量之和应小于或等于formatcapabilityfactor*(max(subpicsizey[j],fr*maxlumasr*reflevelfraction[i][j]
÷
256)+maxlumasr*(aucpbremovaltime[0]-aunominalremovaltime[0])*reflevelfraction[i][j])
÷
(256*mincr),其中,maxlumasr和formatcapabilityfactor分别为表a.2和表a.3中指定的值,适用于级别ref_level_idc[i]的au 0,并且mincr的推导如a.4.2所示[ed.(rs):fr是a.4.2中定义的档次特定变量。]
[0298]-对应于第j个子图片的au n(其中,n大于0)的numbytesinnalunit变量之和应小于或等于formatcapabilityfactor*maxlumasr*(aucpbremovaltime[n]-aucpbremovaltime[n-1])*reflevelfraction[i][j]
÷
(256*mincr),其中,maxlumasr和formatcapabilityfactor分别为表a.2和表a.3中指定的值,适用于级别ref_level_idc[i]的au n,并且mincr的推导如a.4.2所示。
[0299]
对于包含一个或多个子图片并由子图片索引subpicsetindices列表和子图片组numsubpicsinset中的多个子图片组成的任何子图片组,推导子图片组的级别信息。
[0300]
相对于参考级别ref_level_idc[i]的总级别分数的变量subpicsetacclevelfraction[i],以及子图片组的变量subpicsetcpbsizevcl[i]、subpicsetcpbsizenal[i]、subpicsetbitratevcl[i]和subpicsetbitratenal[i]推导如下:
[0301]
[0302][0303]
子图片组序列级别指示符subpicsetlevelidc的值推导如下:
[0304][0305]
其中,表a.1中为ref_level_idc[i]指定了maxtilecols和maxtilerows。
[0306]
符合general_tier_flag等于0且级别等于subpicsetlevelidc的档次的子图片组比特流应遵守附录c中指定的每个比特流一致性测试的以下约束:
[0307]-对于vcl hrd参数,subpicsetcpbsizevcl[i]应小于或等于cpbvclfactor*maxcpb,其中,cpbvclfactor在表a.3中指定,并且maxcpb在表a.1中以cpbvclfactor位为单位指定。
[0308]-对于nal hrd参数,subpicsetcpbsizenal[i]应小于或等于cpbnalfactor*maxcpb,其中,cpbnalfactor在表a.3中指定,并且maxcpb在表a.1中以cpbnalfactor位为单位指定。
[0309]-对于vcl hrd参数,subpicsetbitratevcl[i]应小于或等于cpbvclfactor*maxbr,其中,cpbvclfactor在表a.3中指定,并且maxbr在表a.1中以cpbvclfactor位为单位指定。
[0310]-对于nal hrd参数,subpicsetbitratenal[i]应小于或等于cpbnalfactor*maxcr,其中,cpbnalfactor在表a.3中指定,并且maxbr在表a.1中以cpbnalfactor位为单位指定。
[0311]
注2

当提取子图片组时,产生的比特流具有大于或等于subpicsetcpbsizevcl[i][j]和subpicsetcpbsizenal[i][j]的cpbsize(在sps中指示或推断),以及大于或等于subpicsetbitratevcl[i][j]和subpicsetbitratenal[i][j]的比特率(在sps中指示或推断)。
[0312]
3.8.缩放列表
[0313]
当前vvc草案文本中与缩放列表最相关的文本如下:
[0314]
序列参数集rbsp语法和语义
[0315][0316]
....
[0317]
sps_scaling_list_enabled_flag等于1指定缩放列表用于变换系数的缩放处理。sps_scaling_list_enabled_flag等于0指定缩放列表不用于变换系数的缩放处理。
[0318]
...
[0319]
图片头结构语法和语义
[0320][0321][0322]
...
[0323]
ph_scaling_list_present_flag等于1指定用于与ph相关联的条带的缩放列表数据是基于包含在参考缩放列表aps中的缩放列表数据推导的。ph_scaling_list_present_flag等于0指定用于与ph相关联的条带的缩放列表数据被设置为等于16。当不存在时,ph_scaling_list_present_flag的值被推断为等于0。当不存在时,ph_scaling_list_present_flag的值被推断为等于0。
[0324]
ph_scaling_list_aps_id指定缩放列表aps的adaptation_parameter_set_id。具有aps_params_type等于scaling_aps且adaptation_parameter_set_id等于ph_scaling_
list_aps_id的aps nal单元的temporalid应小于或等于与ph相关的图片的temporalid。
[0325]
...
[0326]
一般条带头语法和语义
[0327][0328]
...
[0329]
slice_scaling_list_present_flag等于1指定用于当前条带的缩放列表数据是基于包含在参考缩放列表aps中的缩放列表数据推导的,其中,aps_params_type等于scaling_aps且adaptation_parameter_set_id等于ph_scaling_list_aps_id。slice_scaling_list_present_flag等于0指定用于当前图片的缩放列表数据是条款7.4.3.21中规定的推导的默认缩放列表数据。当不存在时,slice_scaling_list_present_flag的值被推断为等于0。
[0330]
...
[0331]
变换系数的缩放处理
[0332]
...
[0333]
对于x=0..ntbw-1,y=0..ntbh-1的缩放变换系数d[x][y]的推导,以下适用:
[0334]
‑‑
中间缩放因子m[x][y]被推导如下:
[0335]
‑‑
如果以下一个或多个条件为真,m[x][y]设置为等于16:
[0336]
‑‑
sps_scaling_list_enabled_flag等于0。
[0337]
‑‑
ph_scaling_list_present_flag等于0。
[0338]
‑‑
transform_skip_flag[xtby][ytby][cidx]等于1。
[0339]
‑‑
scaling_matrix_for_lfnst_disabled_flag等于1,并且applylfnstflag等于1。
[0340]
‑‑
...
[0341]
...
[0342]
7.3.2.5自适应参数集rbsp语法
[0343][0344][0345]
7.3.2.21缩放列表数据语法
[0346]
[0347][0348]
scaling_matrix_for_lfnst_disabled_flag等于1指定缩放矩阵不应用于用lfnst编解码的块。scaling_matrix_for_lfnst_disabled_flag等于0指定缩放矩阵可以应用于用lfnst编解码的块。
[0349]
4.由公开的技术方案解决的技术问题
[0350]
vvc中的子图片和lmcs的现有设计存在以下问题:
[0351]
1)列表subpicnumtilerows[](指定包括在子图片中的片行的数量)的推导是公式d.5是不正确的,因为公式中ctbtotilerowbd[idx]中的索引值idx可能大于最大允许值。此外,subpicnumtilerows[]和subpicnumtilecols[](指定子图片中包括的片列的数量)两者的偏差使用了基于ctu的运算,这是不必要的复杂化。
[0352]
2)当single_slice_per_subpic_flag等于1时,公式29中的数组ctbaddrinslice的推导是不正确的,因为每个条带的数组中的光栅扫描ctb地址的值需要按照ctu的解码顺序,而不是按照ctu的光栅扫描顺序。
[0353]
3)lmcs信令通知是低效的。当ph_lmcs_enabled_flag等于1时,大多数情况下,将为图片的所有条带启用lmcs。然而,在当前的vvc设计中,对于当为图片的所有条带启用lmcs的情况,不仅ph_lmcs_enabled_flag等于1,还需要为每个条带信令通知具有值1的slice_lmcs_enabled_flag。
[0354]
a.当ph_lmcs_enabled_flag为真时,ph_lmcs_enabled_flag的语义与信令通知条带级别lmcs标志的动机相冲突。在当前的vvc中,当ph_lmcs_enabled_flag为真时,意味着所有的条带都应该启用lmcs。因此,不需要在条带头中进一步信令通知lmcs启用标志。
[0355]
b.此外,当图片头告知lmcs被启用时,通常,对于所有条带,lmcs都被启用。条带头中lcms的控制主要是为了处理极端情况。因此,如果ph lmcs标志为真并且sh lmcs标志总是被信令通知,这可能导致对于普通用户情况信令通知不必要的比特。
[0356]
4)sps仿射amvr标志的语义不正确,因为对于每个仿射帧间编解码的cu,仿射amvr可以被启用或禁用。
[0357]
5)条带头中的缩放列表标志,即slice_scaling_list_present_flag,不用于控制变换系数的缩放处理,并且实际上是无用的。
[0358]
6)即使当slice_scaling_list_present_flag用于控制变换系数的缩放处理时,缩放列表信令也是低效的。当ph_scaling_list_present_flag等于1时,在大多数情况下,显式缩放列表将用于图片的所有条带。然而,在当前的vvc设计中,对于当为图片的所有条带启用显式缩放列表时的情况,不仅ph_scaling_list_present_flag需要等于1,还需要为每个条带信令通知具有值1的条带标志slice_scaling_list_present_flag。
[0359]
7)对于lfnst编解码块,残差分布可能与仅应用主变换时不同。显式信令通知的缩放列表更有可能不应用于那些lfnst编解码块。然而,是否允许应用显式信令通知的缩放列表在aps中被信令通知,这可能浪费不必要的比特。
[0360]
5.技术和实施例的示例
[0361]
为解决上述问题和未提及的一些其他问题,公开了如下总结的方法。这些项目应该被认为是解释一般概念的示例,而不应该以狭隘的方式被解释。此外,这些项目可以单独应用或以任何方式组合应用。
[0362]
与解决第一和第二问题的子图片相关
[0363]
1.公开了一种或多种以下方法:
[0364]
a.推导图片的每个ctu列的片列索引。
[0365]
b.子图片中包含的片列的数量的推导是基于子图片中包含的最左侧和/或最右侧ctu的片列索引。
[0366]
c.推导图片的每个ctu行的片行索引。
[0367]
d.子图片中包含的片行的数量的推导是基于子图片中包含的上方和/或下方ctu的片行索引。
[0368]
e.定义术语图片级别条带索引如下:条带到图片中的条带列表的索引(当rect_slice_flag等于1时定义该索引),当single_slice_per_subpic_flag等于0时按照条带在pps中被信令通知的顺序,或者当single_slice_per_subpic_flag等于1时按照对应于条带的子图片的增加的子图片索引的顺序。
[0369]
f.在一个示例中,当子图片包含从片分割的条带时,子图片的高度不能根据片来计算。
[0370]
g.在一个示例中,可以根据ctu而不是片来计算子图片的高度。
[0371]
h.推导子图片的高度是否小于一个片行。
[0372]
i.在一个示例中,当子图片仅包括来自一个片行的ctu并且当子图片中的上方ctu不是片行的上方ctu或者子图片中的下方ctu不是片行的下方ctu时,子图片的高度是否小于一个片行被推导为真。
[0373]
ii.当指示每个子图片仅包含一个条带并且子图片的高度小于一个片行时,对于图片的具有图片级别条带索引i的每个条带,将在其中0到条带中的ctu的数量减1(含端值)的范围内的j的ctbaddrinslice[i][j]的值推导为子图片的ctu光栅扫描中第j个ctu的图片光栅扫描ctu地址。
[0374]
iii.在一个示例中,当子图片中的上方ctu和子图片中的下方ctu之间的距离小于根据ctu的片的高度时,子图片的高度是否小于一个片行被推导为真。
[0375]
iv.当指示每个子图片仅包含一个条带并且子图片的高度大于或等于一个片行时,对于图片的具有图片级别条带索引i的每个条带,将在其中0到条带中的ctu的数量减1
(含端值)的范围内的j的ctbaddrinslice[i][j]被推导为第j个ctu的图片光栅扫描ctu地址,ctu的顺序如下:
[0376]
1)子图片中不同片中的ctu被排序,使得具有较小片索引值的第一个片中的第一ctu在具有较大片索引值的第二片中的第二ctu之前。
[0377]
2)子图片中一个片内的ctu在片的ctu光栅扫描中排序。
[0378]
与解决第三个问题(包括子问题)的lmcs相关
[0379]
2.引入了lmcs的两级别控制(其包括两个方面:亮度映射(重塑过程,由rp表示)和依赖于亮度的色度残差缩放(crs)),其中使用了较高级别(例如,图片级别)和较低级别(例如,条带级别)控制,并且较低级别控制信息是否存在取决于高级别控制信息。此外,以下也适用:
[0380]
a.在第一个示例中,应用了下面的一个或多个子项目符号:
[0381]
i.第一指示符(例如,ph_lmcs_enabled_type)可以在较高级别(例如,在图片头(ph)中)被信令通知,以指定如何在非二进制值的较低级别启用lmcs。
[0382]
1)在一个示例中,当第一指示符等于x(例如,x=2)时,其指定为与ph相关联的所有条带启用lmcs;当第一指示符等于y(y!=x)(例如,y=1),其指定为与ph相关联的一个或多个但不是所有条带启用lmcs;当第一指示符等于z(z!=x和z!=y)(例如,z=0),其指定为与ph相关联的所有条带禁用lmcs
[0383]
a)或者,此外,当第一指示符不存在时,指示符的值被推断为等于默认值,例如z。
[0384]
2)在一个示例中,当第一指示符等于x(例如,x=2)时,其指定为与ph相关联的所有条带禁用lmcs;当第一指示符等于y(y!=x)(例如,y=1),其指定为于与ph相关联的一个或多个但不是所有条带禁用lmcs;当第一指示符等于z(z!=x和z!=y)(例如,z=0),其指定为与ph相关联的所有条带启用lmcs
[0385]
a)或者,此外,当第一指示符不存在时,指示符的值被推断为等于默认值,例如x。
[0386]
3)或者,此外,第一指示符可以根据序列级别中的lmcs启用标志(例如,sps_lmcs_enabled_flag)的值被有条件地信令通知。
[0387]
4)或者,此外,第一指示符可以用u(v)、或u(2)或ue(v)编解码。
[0388]
5)或者,此外,第一指示符可以用截断的一元码来编解码。
[0389]
6)或者,此外,由条带和/或cs启用标志(例如,ph_chroma_residual_scale_flag)使用的lmcs aps信息(例如,ph_lmcs_aps_id)可以在第一指示符的值的条件检查下被信令通知。
[0390]
ii.可以在较低级别(例如,在条带头中)信令通知为较低级别启用/禁用lmcs的第二指示符(例如,slice_lmcs_enabled_flag),并且可以通过检查第一指示符的值来有条件地信令通知该第二指示符。
[0391]
1)在一个示例中,可以在“第一指示符等于y”的条件检查下信令通知第二指示符。
[0392]
a)或者,在“第一指示符的值》》1”或“第一指示符的值/2”或“第一指示符的值&0x01”的条件检查下,可以信令通知第二指示符。
[0393]
b)或者,此外,当第一指示符等于x时,可以推断其被启用;或者当第一指示符等于z时可以推断其被禁用。
[0394]
b.在第二个示例中,应用了下面的一个或多个子项目符号:
[0395]
i.可以在较高级别(例如,在图片头(ph)中)信令通知一个以上的指示符,以指定如何在较低级别启用lmcs。
[0396]
1)在一个示例中,可以在ph中信令通知两个指示符(例如,两个1位标志)。
[0397]
a)在一个示例中,第一指示符指定是否存在与启用lmcs的ph相关联的至少一个条带。并且第二指示符指定是否与ph相关联的所有条带都启用lmcs。
[0398]
i.或者,此外,可以根据第一指示符的值有条件地信令通知第二指示符,例如,当第一指示符指定存在启用lmcs的至少一个条带时。
[0399]
i.或者,此外,当第二指示符不存在时,推断所有条带都启用lmcs。
[0400]
ii.或者,此外,可以根据第二指示符的值在sh中有条件地信令通知第三指示符,例如当第二指示符指定并非所有条带都启用lmcs时。
[0401]
i.或者,此外,当第三指示符不存在时,其可以根据第一和/或第二指示符的值来推断(例如,推断为等于第一指示符的值)。
[0402]
b)或者,第一指示符指定是否存在与禁用lmcs的ph相关联的至少一个条带。并且第二指示符指定是否所有与ph相关联的条带都禁用lmcs。
[0403]
i.或者,此外,可以根据第一指示符的值有条件地信令通知第二指示符,例如,当第一指示符指定存在禁用lmcs的至少一个条带时。
[0404]
i.或者,此外,当第二指示符不存在时,推断与ph相关的所有条带禁用lmcs。
[0405]
ii.或者,此外,根据第二指示符的值,可以在sh中有条件地信令通知第三指示符,例如,当第二指示符指定并非所有条带都禁用lmcs时。
[0406]
i.或者,此外,当第三指示符不存在时,其可以根据第一和/或第二指示符的值来被推断(例如,被推断为等于第一指示符的值)。
[0407]
2)或者,此外,第一指示符可以根据序列级别中的lmcs启用标志(例如,sps_lmcs_enabled_flag)的值被有条件地信令通知。
[0408]
ii.可以在较低级别(例如,在条带头中)信令通知为较低级别启用/禁用lmcs的第三指示符(例如,slice_lmcs_enabled_flag),并且可以通过检查第一指示符和/或第二指示符的值来有条件地信令通知该第三指示符。
[0409]
1)在一个示例中,在“并非所有条带都启用lmcs”或“并非所有条带都禁用lmcs”的条件检查下,可以信令通知第三指示符。
[0410]
c.在又一示例中,第一/第二示例中提到的第一和/或第二和/或第三指示符可以用于控制rp或crs而不是lmcs的使用。
[0411]
3.sps/ph/sh中三个lmcs标志的语义更新如下:
[0412]
sps_lmcs_enabled_flag等于1指定在clvs中使用使用sps_lmcs_enabled_flag等于0指定clvs中不使用亮度映射与色度缩放。
[0413]
ph_lmcs_enabled_flag等于1指定为与ph相关的所有条带启用亮度映射与色度缩放。ph_lmcs_enabled_flag等于0指定可以为与ph相关的一个、多个或所有条带禁用亮度映射与色度缩放。当不存在时,则ph_lmcs_enabled_flag的值被推断为等于0。
[0414]
slice_lmcs_enabled_flag等于1指定为当前条带启用亮度映射与色度缩放。slice_lmcs_enabled_flag等于0指定为当前条带不启用亮度映射与色度缩放。当slice_lmcs_enabled_flag不存在时,其被推断为等于0。
[0415]
a.改变ph和/或sh lmcs信令,使得当lmcs用于图片的所有条带时,在sh中不存在lmcs信令。
[0416]
i.或者,此外,如何推断lmcs取决于ph lmcs信令。
[0417]
1)在一个示例中,当lmcs用于图片的所有条带时,推断其被启用;并且当lmcs没有被用于图片的所有条带时,推断其被禁用。
[0418]
与仿射amvr相关
[0419]
4.sps中仿射amvr标志的语义更新如下:
[0420]
sps_affine_amvr_enabled_flag等于1指定在仿射帧间模式的运动矢量编解码中可以使用自适应运动矢量差精度。sps_affine_amvr_enabled_flag等于0指定在仿射帧间模式的运动矢量编解码中不使用自适应运动矢量差精度。当不存在时,sps_affine_amvr_enabled_flag的值被推断为等于0。
[0421]
与解决第五个和第六个问题的缩放列表相关
[0422]
5.对于块,变换系数和/或非变换系数的缩放处理是根据与小于图片的视频区域(例如,条带)相关联的语法元素来控制的。
[0423]
a.在一个示例中,使用条带头中的缩放列表标志,例如slice_scaling_list_present_flag,例如,如在实施例3中,而不是使用sps标志sps_scaling_list_enabled_flag和ph标志ph_scaling_list_present_flag来控制变换系数的缩放处理。
[0424]
6.引入了显式缩放列表的两级别控制,其中使用较高级别控制(例如,图片级别)和较低级别控制(例如,条带级别),并且较低级别控制信息是否存在取决于较高级别控制信息。显式缩放列表可用于变换系数和/或非变换系数的缩放处理。此外,以下也适用:
[0425]
a.在第一个示例中,应用了下面的一个或多个子项目符号:
[0426]
i.可以在较高级别(例如,在图片头(ph)中)信令通知第一非二进制值指示符(例如,ph_explicit_scaling_list_enabled_type)以指定如何在较低级别启用显式缩放列表。
[0427]
1)在一个示例中,当第一指示符等于x(例如,x=2)时,其指定为与ph相关联的所有条带启用显式缩放列表;当第一指示符等于y(y!=x)(例如,y=1),其指定为与ph相关联的一个或多个但不是所有条带启用显式缩放列表;当第一指示符等于z(z!=x和z!=y)(例如,z=0),其指定为与ph相关联的所有条带禁用显式缩放列表。
[0428]
a)或者,此外,当第一指示符不存在时,指示符的值被推断为等于默认值,例如z。
[0429]
b)或者,当第一指示符等于y(y!=x)(例如,y=1),其指定,当解码条带时,为图片启用在变换和/或非变换系数的缩放处理中显式缩放列表的使用。
[0430]
c)或者,当第一指示符等于y(y!=x)(例如,y=1)时,其指定,当解码条带时,可以为图片启用在变换和/或非变换系数的缩放处理中显式缩放列表的使用。
[0431]
2)在一个示例中,当第一指示符等于x(例如,x=2)时,其指定为与ph相关联的所有条带禁用显式缩放列表;当第一指示符等于y(y!=x)(例如,y=1),其指定为与ph相关联的一个或多个但不是所有条带禁用显式缩放列表;当第一指示符等于z(z!=x和z!=y)(例
如,z=0),其指定为与ph相关联的所有条带启用显式缩放列表。
[0432]
a)或者,此外,当第一指示符不存在时,指示符的值被推断为等于默认值,例如x。
[0433]
b)或者,当第一指示符等于y(y!=x)(例如,y=1),其指定,当解码条带时,可以为图片禁用在变换和/或非变换系数的缩放处理中显式缩放列表的使用。
[0434]
c)或者,当第一指示符等于y(y!=x)(例如,y=1)时,其指定,当解码条带时,为图片禁用在变换和/或非变换系数的缩放处理中显式缩放列表的使用。
[0435]
3)或者,此外,可以根据序列级别中的显式缩放列表启用标志(例如,sps_explicit_scaling_list_enabled_flag)的值有条件地信令通知第一指示符。
[0436]
4)或者,此外,可以用u(v)、或u(2)或ue(v)来编解码第一指示符。
[0437]
5)或者,此外,可以用截断的一元码来编解码第一指示符。
[0438]
6)或者,此外,条带使用的缩放列表aps信息(例如,ph_explicit_scaling_list_aps_id)可以在第一指示符的值的条件检查下被信令通知。
[0439]
ii.启用/禁用较低级别的显式缩放列表的第二指示符(例如,slice_scaling_list_present_flag)可以在较低级别(例如,在片头中)被信令通知,并且可以通过检查第一指示符的值来有条件地信令通知。
[0440]
1)在一个示例中,可以在“第一指示符等于y”的条件检查下信令通知第二指示符。
[0441]
a)或者,可以在“第一指示符的值》 》1”或“第一指示符的值/2”或“第一指示符的值&0x01”的条件检查下信令通知第二指示符。
[0442]
b)或者,此外,当第一指示符等于x时,第二指示符可以不存在并且被推断为被启用;或者当第一指示符等于z时,第二指示符可以被推断为被禁用。
[0443]
b.在第二个示例中,应用了下面的一个或多个子项目符号:
[0444]
iii.可以在较高级别(例如,在图片头(ph)中)信令通知多个指示符,以指定如何在较低级别启用显式缩放列表。
[0445]
1)在一个示例中,可以在ph中信令通知两个指示符(例如,两个1位标志)
[0446]
a)在一个示例中,第一指示符指定是否存在启用显式缩放列表的与ph相关联的至少一个条带。并且第二指示符指定与ph相关联的所有条带是否都启用显式缩放列表。
[0447]
i.或者,此外,可以根据第一指示符的值有条件地信令通知第二指示符,例如,当第一指示符指定存在启用显式缩放列表的至少一个条带时。
[0448]
i.或者,此外,当第二指示符不存在时,推断所有条带都启用显式缩放列表。
[0449]
ii.或者,如果一致性比特流中的第一指示符为假,则要求第二指示符必须为假。
[0450]
ii.或者,此外,根据第一指示符的值和第二指示符的值中的至少一个,可以在sh中有条件地信令通知第三指示符,例如,当第一指示符指定至少一个条带启用显式缩放列表并且第二指示符指定并非所有条带都启用显式缩放列表时。
[0451]
i.或者,此外,当第三指示符不存在时,其可以根据第一和/或第二指示符的值来被推断(例如,被推断为等于第一指示符的值)。
[0452]
b)或者,第一指示符指定是否存在禁用显式缩放列表的与ph相关联的至少一个条带。并且第二指示符指定是否与ph相关联的所有条带都禁用显式缩放列表。
[0453]
i.或者,此外,可以根据第一指示符的值有条件地信令通知第二指示符,例如,当第一指示符指定存在禁用显式缩放列表的至少一个条带时。
[0454]
i.或者,此外,当第二指示符不存在时,推断与ph相关联的所有条带禁用显式缩放列表。
[0455]
ii.或者,此外,根据第一指示符的值和第二指示符的值中的至少一个,可以在sh中有条件地信令通知第三指示符,例如,当第一指示符指定至少一个条带启用显式缩放列表并且第二指示符指定并非所有条带都禁用显式缩放列表时。
[0456]
i.或者,此外,当第三指示符不存在时,其可以根据第一和/或第二指示符的值来被推断(例如,被推断为等于第一指示符的值)。
[0457]
2)或者,此外,可以根据序列级别中的显式缩放列表启用标志(例如,sps_explicit_scaling_list_enabled_flag)的值有条件地信令通知第一指示符。
[0458]
iv.可以在较低级别(例如,在条带头中)信令通知启用/禁用较低级别的显式缩放列表的第三指示符(例如,slice_explicit_scaling_list_enabled_flag),并且可以通过检查第一指示符和/或第二指示符的值来有条件地信令通知该第三指示符。
[0459]
1)在一个示例中,在“并非所有条带都启用显式缩放列表”或“并非所有条带都禁用显式缩放列表”的条件检查下,可以信令通知第三指示符。
[0460]
c.在第三示例中,可以在较高级别(例如,在图片头(ph)中)信令通知两个1位标志,以指定如何在较低级别(例如,在条带头(sh)中)启用显式缩放列表。
[0461]
i.第一ph标志(例如命名为ph_all_slices_use_explicit_scaling_list_flag)等于1指定图片的所有条带使用显式缩放列表。第一ph标志等于0指定图片的每个条带可以使用或不使用显式缩放列表。
[0462]
ii.第二ph标志(例如,命名为ph_no_slice_uses_explicit_scaling_list_flag)等于1指定没有图片的条带使用显式缩放列表。第二ph标志等于0指定图片的每个条带可以使用或不使用显式缩放列表。
[0463]
iii.仅当第一ph标志等于0时,才信令通知第二ph标志。
[0464]
iv.当第一个ph标志等于1时或当(第一个ph标志等于0,并且第二个ph标志等于0)时,在ph中信令通知缩放列表aps id。
[0465]
v.当第一ph标志等于0并且第二标志等于0时,在sh中信令通知sh标志(例如,命名为slice_use_explicit_scaling_list_flag)。
[0466]
vi.当第一ph标志等于1时,sh标志的值被推断为等于0。
[0467]
vii.当第一ph标志等于0且第二ph标志等于0时,sh标志的值被推断为等于0。
[0468]
viii.如果sh标志的值等于1,则使用显式缩放列表对条带进行解码。
[0469]
否则,使用显式缩放列表对条带进行解码。
[0470]
d.在第四示例中,可以信令通知ph或sh中是否存在一个或多个或每个缩放列表相关方面(例如,启用/禁用、aps id)的一个或多个指示符。
[0471]
i.或者,使用一个指示符,此外,该指示符是1位标志。
[0472]
1)在一个实例中,当指示符指定相关方面存在于ph中,所有条带推断出存在于ph中的值,并且那些相关方面的信令通知在sh中被跳过时。
[0473]
2)在一个示例中,当指示符指定相关方面存在于sh中,并且那些相关方面的信令通知在ph中被跳过时。
[0474]
ii.在一个示例中,在ph中信令通知一个或多个指示符。
[0475]
iii.在另一个示例中,在pps中信令通知一个或多个指示符。
[0476]
iv.在另一个示例中,在sps中信令通知一个或多个指示符。
[0477]
7.是否启用lfnst编解码块的显式缩放列表可以在序列/图片/条带级别中被指示,而不是在aps中被指示。
[0478]
a.在一个示例中,语法元素(例如,标志)可以在sps/pps/ph/sh中被信令通知。
[0479]
i.或者,此外,语法元素可以在是否启用lfnst的条件检查下被信令通知(例如,sps_lfnst_enabled_flag等于1)。
[0480]
ii.或者,此外,对于视频块,是应用显式缩放列表还是应用默认缩放列表可以取决于语法元素的值以及是否为该视频块启用lfnst。
[0481]
8.提出了可以基于填充样点对沿着视频单元的边界的视频单元的样点执行去方块滤波过程。图11示出了一个示例,其中,样点p0、p1和p2是沿着视频单元的边界的视频单元的样点,并且样点q0、q1和q2是将在滤波过程中使用的填充样点。
[0482]
a.在一个示例中,视频单元可以是图片。
[0483]
b.在一个实例中,视频单元可以是子图片。
[0484]
c.在一个实例中,视频单元可以是条带。
[0485]
d.在一个实例中,视频单元可以是片。
[0486]
e.在一个示例中,视频单元可以是逐步解码刷新(gdr)中的刷新区域,并且边界可以是图片中的刷新区域和未刷新区域之间的边界,此外,这种边界可以被信令通知为虚拟边界。
[0487]
f.在一个示例中,可以以复制的方式执行填充。例如,q0、q1和q2的值都可以被设置为等于p0的值。
[0488]
在一个示例中,可以以对称的方式执行填充。例如,q0、q1和q2的值可以分别被设置为等于p0、p1和p2的值。
[0489]
6.实施例
[0490]
在实施例中,某些文本是粗体和斜体的,以突出对当前版本规范的更改。斜体文本将从对应实施例的当前vvc规范的描述中删除。
[0491]
6.1.实施例1:子图片的支持
[0492]
该实施例针对项目1及其子项目。
[0493]
3个定义
[0494][0495]
图片级别条带索引:条带到图片中的条带列表的索引,当rect_slice_flag等于1时按照它们在pps中被信令通知的顺序。
[0496]
6.5.1ctb光栅扫描、片扫描和子图片扫描处理
[0497]

[0498]
范围从0到picwidthinctbsy(包括端值)的ctbaddrx的ctbtotilecolbd
[ctbaddrx]指定从水平ctb地址到以ctb为单位的左侧片列边界的转换,推导如下:
[0499][0500]
注3

在上述推导中的ctbtotilecolbd[]的尺寸比ctb中的实际图片宽度大1。
[0501]
范围从0到picheightinctbsy(包括端值)的ctbaddry的ctbtotilerowbd[ctbaddry]指定从垂直ctb地址到以ctb为单位的上方片列边界的转换,推导如下:
[0502][0503][0504]
注4

上述推导中的ctbtotilerowbd[]和ctbtotilerowidx[]的尺寸比ctb中的实际图片高度大1。
[0505]
[0506][0507][0508][0509][0510][0511][0512]
当rect_slice_flag等于1时,范围从0到num_slices_in_pic_minus1(包括端值)的i的列表numctusinslice[i]指定第i个条带中ctu的数量,范围从0到num_slices_in_pic_minus1(包括端值)的i的列表slicetoplefttileidx[i]指定包含条带中第一个ctu的片的片索引,以及范围从0到num_slices_in_pic_minus1(包括端值)的i和范围从0到j到numctusinslice[i]

1(包括端值)的j的矩阵ctbaddrinslice[i][j]指定第i个条带内的第j个ctb的图片光栅扫描地址,并且变量numslicesintile[i]指定包含第i个条带的片中的片的数量,推导如下:
[0513]
[0514]
[0515][0516]
....
[0517]
d.7.2子图片级别信息sei消息语义
[0518]

[0519]
ref_level_fraction_minus1[i][j]加1指定与第j个子图片符合的ref_level_idc[i]相关的级别限制的分数,如条款a.4.1所规定的。
[0520]
变量subpicsizey[j]被设置为等于(subpic_width_minus1[j]+1)*ctbsizey*(subpic_height_minus1[j]+1)*ctbsizey。
[0521]
当不存在时,ref_level_fraction_minus1[i][j]的值推断为等于ceil(256*subpicsizey[j]
÷
picsizeinsamplesy*maxlumaps(general_level_idc)
÷
maxlumaps(ref_level_idc[i])-1。
[0522]
变量reflevelfraction[i][j]被设置为等于ref_level_fraction_minus1[i][j]+1。
[0523]
变量subpicnumtilecols[j]和subpicnumtilerows[j]的推导如下:
[0524][0525]
...
[0526]-的值应小于或等于maxtilecols,并且的值应小于或等于maxtilerows,其中,在表a.1中为级别ref_level_idc[i]指定maxtilecols和maxtilerows。
[0527]-的值应小于或等于maxtilecols*maxtilerows*reflevelfraction[i][j],其中,在表a.1中为级别ref_level_idc[i]指定maxtilecols和maxtilerows。
[0528]
...
[0529]
相对于参考级别ref_level_idc[i]的总级别分数的变量subpicsetacclevelfraction[i],以及子图片组的变量subpicsetcpbsizevcl[i]、subpicsetcpbsizenal[i]、subpicsetbitratevcl[i]和subpicsetbitratenal[i]的推导如下:
[0530][0531]
...
[0532]
6.2.实施例2:lmcs的支持
[0533]
在该实施例中,修改了图片头中的lmcs相关语法元素的语法和语义,使得当lmcs用于图片的所有条带时,在sh中不存在lmcs信令通知。
[0534]
7.3.2.7图片头结构语法
[0535]
[0536][0537]
7.3.7.1一般条带头语法
[0538][0539]
ph_lmcs_enabled_等于指定为与ph相关联的所有条带启用亮度映射与色度缩放。。。ph_lmcs_enabled_等于0指定可以为与ph相关的一个、多个或所有条带禁用亮度映射与色度缩放。当不存在时,ph_lmcs_enabled_的值被推断为等于0。
[0540]
slice_lmcs_enabled_flag等于1指定为当前条带启用亮度映射与色度缩放。slice_lmcs_enabled_flag等于0指定为当前条带不启用亮度映射与色度缩放。当slice_
lmcs_enabled_flag不存在时,其被推断为等于0或者,当slice_lmcs_enabled_flag不存在时,其被推断为等于0
[0541]
在上面的示例中,m和n的值可以分别设置为1和2。或者,m和n的值可以分别设置为2和1。
[0542]
6.3.实施例3:支持缩放列表的方法#1
[0543]
在该实施例中,修改了与缩放列表相关的文本,使得使用条带头中的缩放列表标志,而不是使用缩放列表的sps标志和缩放列表的ph标志来控制变换系数的缩放处理。
[0544]
序列参数集rbsp语法和语义
[0545][0546]
....
[0547][0548][0549]
...
[0550]
图片头结构语法和语义
[0551][0552]
...
[0553][0554][0554][0555]
ph__scaling_list_aps_id指定缩放列表aps的adaptation_parameter_set_id。具有aps_params_type等于scaling_aps且adaptation_parameter_set_id等于ph__scaling_list_aps_id的aps nal单元的temporalid应小于或等于与ph相关的图片的temporalid。
[0556]
...
[0557]
一般条带头语法和语义
[0558][0559]
...
[0560][0561][0562]
...
[0563]
变换系数的缩放处理
[0564]
...
[0565]
对于x=0..ntbw-1,y=0..ntbh

1的缩放变换系数d[x][y]的推导,以下适用:
[0566]
‑‑
中间缩放因子m[x][y]被推导如下:
[0567]
‑‑
如果以下一个或多个条件为真,m[x][y]设置为等于16:
[0568]
‑‑
sps_scaling_list_enabled_flag等于0。
[0569]
‑‑
ph_scaling_list_present_flag等于0。
[0570][0571]
‑‑
transform_skip_flag[xtby][ytby][cidx]等于1。
[0572]
‑‑
scaling_matrix_for_lfnst_disabled_flag等于1,并且applylfnstflag等于1。
[0573]
‑‑
...
[0574]
...
[0575]
6.4.实施例4:支持缩放列表的方法#2
[0576]
在该实施例中,修改了与缩放列表相关的文本,使得以下适用:
[0577]
1)使用条带头中的缩放列表标志,而不是使用用于缩放列表的sps标志和用于缩放列表的ph标志来控制变换系数的缩放处理。
[0578]
2)当显式缩放列表用于图片的所有条带时,在sh中不存在缩放列表信令通知。
[0579]
在下文中,m和n的值可以分别设置为1和2。
[0580]
或者,m和n的值可以分别设置为2和1。
[0581]
或者,以下适用:
[0582]
1)语法元素ph_explicit_scaling_list_enabled_type被重命名为ph_explicit_scaling_list_mode。
[0583]
2)等于m、n和0的ph_explicit_scaling_list_enabled_type的值分别被分别被替换为等于a、b和c(例如,0、1和2)的ph_explicit_scaling_list_mode。
[0584]
3)ph_explicit_scaling_list_aps_id的语法条件“if(ph_explicit_scaling_list_enabled_type》0”被替换为“if(ph_explicit_scaling_list_mode!=c)”。
[0585]
序列参数集rbsp语法和语义
[0586][0587]
....
[0588][0589][0590]
...
[0591]
图片头结构语法和语义
[0592][0593][0594]
...
[0595][0596][0597]
ph__scaling_list_aps_id指定缩放列表aps的adaptation_parameter_set_id。具有aps_params_type等于scaling_aps且adaptation_parameter_set_id等于ph_
_scaling_list_aps_id的aps nal单元的temporalid应小于或等于与ph相关的图片的temporalid。
[0598]
...
[0599]
一般条带头语法和语义
[0600][0601][0602]
...
[0603][0604][0605]
...
[0606]
变换系数的缩放处理
[0607]
...
[0608]
对于x=0..ntbw-1,y=0..ntbh

1的缩放变换系数d[x][y]的推导,以下适用:
[0609]
‑‑
中间缩放因子m[x][y]被推导如下:
[0610]
‑‑
如果以下一个或多个条件为真,m[x][y]设置为等于16:
[0611]
‑‑
sps_scaling_list_enabled_flag等于0。
[0612]
‑‑
ph_scaling_list_present_flag等于0。
[0613][0614]
‑‑
transform_skip_flag[xtby][ytby][cidx]等于1。
[0615]
‑‑
scaling_matrix_for_lfnst_disabled_flag等于1,并且applylfnstflag等于1。
[0616]-...
[0617]
...
[0618]
图5是可实现本文中所公开的各种技术的示例视频处理系统1900的框图。各种实现方式可以包括系统1900中的一些或全部组件。系统1900可以包括用于接收视频内容的输入1902。视频内容可以以原始或未压缩的格式(例如8或10比特多分量像素值)接收,或者可以以压缩或编码的格式接收。输入1902可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(passive optical network,pon)等)和无线接口(诸如wi-fi或蜂窝接口)。
[0619]
系统1900可以包括可以实现本文档中描述的各种编解码或编码方法的编解码组件1904。编解码组件1904可以减少从输入1902到编解码组件1904的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时称为视频压缩或视频转码技术。编解码组件1904的输出可以被存储或经由所连接的通信来发送,如组件1906所表示的。在输入1902处接收的视频的存储或通信的比特流(或编解码)表示可以由组件1908使用,以生成被发送到显示接口1910的像素值或可显示视频。从比特流表示中生成用户可见的视频的过程有时称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但是应当理解,在编码器处使用编解码工具或操作,并且将由解码器进行反演编解码的结果的对应解码工具或操作。
[0620]
外围总线接口或显示接口的示例可以包括通用串行总线(universal serial bus,usb)或高清晰度多媒体接口(high definition multimedia interface,hdmi)或displayport等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以实施在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或其它能够进行数字数据处理和/或视频显示的装设备。
[0621]
图6是视频处理装置3600的框图。装置3600可以用于实施本文中所述的方法中的一个或多个。装置3600可以实施在智能电话、平板电脑、计算机、物联网(iot)接收器等中。装置3600可以包括一个或多个处理器3602、一个或多个存储器3604和视频处理硬件3606。(多个)处理器3602可以配置为实现本文档中所述的一个或多个方法。(多个)存储器3604可以用于存储数据和代码,该代码用于实现本文所描述的方法和技术。视频处理硬件3606可以用于在硬件电路中实现本文档中所描述的一些技术。
[0622]
图8是图示可利用本公开的技术的示例视频编解码系统100的框图。
[0623]
如图8所示,视频编解码系统100可以包括源设备110和目标设备120。源设备110生成编码的视频数据,其可以被称为视频编码设备。目标设备120可以解码由源设备110生成的编码的视频数据,该目标设备120可以被称为视频解码设备。
[0624]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0625]
视频源112可以包括诸如视频捕获设备的源、从视频内容提供者接收视频数据的接口、和/或生成视频数据的计算机图形系统,或这些源的组合。视频数据可以包括一个或
多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关联的数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法元素。i/o接口116包括调制器/解调器(调制解调器)和/或发送器。可以将编码的视频数据经由i/o接口116通过网络130a直接发送到目标设备120。还可以将编码的视频数据存储到存储介质/服务器130b上,用于由目标设备120存取。
[0626]
目标设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0627]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或存储介质/服务器130b获取编码的视频数据。视频解码器124可以对编码的视频数据进行解码。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目标设备120集成,或可以在配置为与外置显示设备相接的目标设备120外部。
[0628]
视频编码器114和视频解码器124可以根据视频压缩标准(诸如,高效视频编解码(hevc)标准、多功能视频编解码(vvc)标准和其他当前和/或其他标准)进行操作。
[0629]
图9是图示视频编码器200的示例的框图,该视频编码器200可以是图8中图示的系统100中的视频编码器114。
[0630]
视频编码器200可以被配置为执行本公开的任何或全部技术。在图9的示例中,视频编码器200包括多个功能组件。本公开所描述的技术可以在视频编码器200的各种组件之间共享。在一些示例中,处理器可以配置为进行本公开中描述的任何或全部技术。
[0631]
视频编码器200的功能组件可以包括分割单元201、预测单元202(其可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206)、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重建单元212、缓冲器213和熵编码单元214。
[0632]
在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(intra block copy,ibc)单元。ibc单元可以以ibc模式进行预测,其中,至少一个参考图片是当前视频块所位于的图片。
[0633]
此外,诸如运动估计单元204和运动补偿单元205的一些组件可以被高度集成,但是出于解释的目的在图9的示例中分开表示。
[0634]
分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
[0635]
模式选择单元203可以例如基于错误结果选择帧内或帧间的编解码模式中的一个,并且将得到的帧内或帧间编解码块提供到残差生成单元207来生成残差块数据而且提供到重建单元212来重建编码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测的组合(combination of intra and inter predication,ciip)模式,其中,预测是基于帧间预测信号和帧内预测信号。模式选择单元203还可以为帧间预测情况下的块选择运动矢量的精度(例如子像素或整个像素精度)。
[0636]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较,生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的图片(而不是与当前视频块相关联的图片)的运动信息和解码样点来为当前视频块确定预测的视频块。
[0637]
运动估计单元204和运动补偿单元205可以为当前视频块进行不同操作,例如执行不同操作取决于当前视频块是在i条带、p条带还是b条带中。
[0638]
在一些示例中,运动估计单元204可以进行当前视频块的单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。运动估计单元204然后可以生成指示列表0或列表1的参考图片中含有参考视频块的参考索引以及指示在当前视频块与参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符、和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0639]
在其他示例中,运动估计单元204可以进行当前视频块的双向预测,运动估计单元204可以在列表0的参考图片中搜索当前视频块的参考视频块并且还可以在列表1的参考图片中搜索当前视频块的另一个参考视频块。运动估计单元204然后可以生成指示列表0或列表1的参考图片中含有参考视频块的参考索引以及指示在参考视频块与当前视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引和当前视频块的运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0640]
在一些示例中,运动估计单元204可以输出运动信息的全部集合,用于解码器的解码处理。
[0641]
在一些示例中,运动估计单元204可以不输出当前视频的运动信息的全部集合。而是,运动估计单元204可以参考另一个视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与临近视频块的运动信息足够相似。
[0642]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示:向视频解码器300指示当前视频块具有与另一个视频块相同的运动信息的值。
[0643]
在另一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中标识另一个视频块和运动矢量差(motion vector difference,mvd)。运动矢量差指示当前视频块的运动矢量与指示视频块的运动矢量之间的差。视频解码器300可以使用指示视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[0644]
如上所讨论的,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码器200实现的预测性的信令通知技术的两个示例包括高级运动矢量预测(advanced motion vector predication,amvp)和merge模式信令通知。
[0645]
帧内预测单元206可以对当前视频块进行帧内预测。当帧内预测单元206对当前视频块进行帧内预测时,帧内预测单元206可以基于相同图片中其他视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[0646]
残差生成单元207可以通过从当前视频块中减去(例如,由减号表示)当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中样点的不同样点分量的残差视频块。
[0647]
在其他示例中,例如在跳过模式下,对于当前视频块可能不存在当前视频块的残差数据,并且残差生成单元207可以不进行减去操作。
[0648]
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差
视频块来生成当前视频块的一个或多个变换系数视频块。
[0649]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(quantization parameter,qp)值来量化与当前视频块相关联的变换系数视频块。
[0650]
逆量化单元210和逆变换单元211可以将逆量化和逆变换分别应用于变换系数视频块,来从变换系数视频块重建残差视频块。重建单元212可以将重建的残差视频块添加到来自由预测单元202生成的一个或多个预测视频块的对应样点,以产生与当前块相关联的重建视频块用于存储在缓冲器213中。
[0651]
在重建单元212重建视频块之后,可以进行环路滤波操作以降低视频块中视频块化伪影。
[0652]
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以进行一个或多个熵编码操作以生成熵编码数据并且输出包括熵编码数据的比特流。
[0653]
本公开的技术的一些实施例包括决定或确定启用视频处理工具或模式。在示例中,当启用视频处理工具或模式时,编码器将使用或实现在视频块的处理过程中的工具或模式,但是不必基于工具或模式的使用来修改得到的比特流。换言之,当基于决定或确定启用视频处理工具或模式时,从视频块到视频的比特流(或比特流表示)的转换将使用视频处理工具或模式。在另一个示例中,当启用视频处理工具或模式时,解码器将利用已经基于视频处理工具或模式修改比特流的知识来处理比特流。换言之,使用基于决定或确定启用的视频处理工具或模式,将执行从视频的比特流到视频块的转换。
[0654]
图10是图示视频解码器300的示例的框图,该视频解码器300可以是图8中图示的系统100中的视频解码器114。
[0655]
视频解码器300可以被配置为进行本公开的任何或全部技术。在图10的示例中,视频解码器300包括多个功能组件。本公开所描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以配置为进行本公开中描述的任何或全部技术。
[0656]
在图10的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305以及重建单元306和缓冲器307。在一些示例中,视频解码器300可以进行与关于视频编码器200(图9)所描述的编码过程总体反演的解码过程。
[0657]
熵解码单元301可以检索编码的比特流。编码的比特流可以包括熵编解码视频数据(例如,视频数据的编码块)。熵解码单元301可以对熵编解码视频进行解码,并且根据熵解码视频数据,运动补偿单元302可以确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。运动补偿单元302例如可以通过进行amvp和merge模式确定此类信息。
[0658]
运动补偿单元302可以产生运动补偿块,可能地基于插值滤波器进行插值。要以子像素精度使用的插值滤波器的标识符可以包括在语法元素中。
[0659]
运动补偿单元302可以使用由视频编码器200在编码视频块的期间所使用的插值滤波器,来计算出参考块的子整数个像素的插值的值。运动补偿单元302可以根据接收的语法信息确定由视频编码器200所使用的插值滤波器并且使用插值滤波器来产生预测块。
[0660]
运动补偿单元302可以使用一些语法信息来确定:用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸,描述编码视频序列的图片的每个宏块如何被分割的分割信息,指示如何编码每个分割的模式,每个帧间编码块的一个或多个参考帧(和参考帧列表),以及对编码视频序列进行解码的其他信息。
[0661]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域相邻块形成预测块。逆量化单元303逆量化(即去量化)在比特流中提供的且由熵解码单元301解码的量化的视频块系数。逆变换单元303应用逆变换。
[0662]
重建单元306可以用由运动补偿单元202或帧内预测单元303生成的对应预测块求和残差块,以形成解码块。如所期望的,去块化滤波器还可以应用于滤波解码块以便移除块化伪影。解码视频块然后存储在缓冲器307中,该缓冲器307提供用于随后的运动补偿/帧内预测的参考块,并且还产生用于在显示设备上呈现的解码视频。
[0663]
接下来提供了一些实施例优选的解决方案的列表。
[0664]
以下解决方案示出了上一章节中讨论的技术的示例实施例(例如,项目1)。
[0665]
1.一种视频处理方法(例如,图7中描绘的方法900),包括:执行(902)包括一个或多个视频图片的视频和视频的编解码表示之间的转换,其中,每个视频图片包括一个或多个片,其中,编解码表示符合格式规则;其中,格式规则规定,在编解码表示中信令通知的第一信息和从编解码表示中推导的第二信息,其中,至少第一信息或第二信息与一个或多个片的行索引或列索引相关。
[0666]
2.根据解决方案1的方法,其中,格式规则规定,推导每个视频图片的每个编解码树单元列的片列索引。
[0667]
3.根据解决方案1的方法,其中,格式规则规定,推导每个视频图片的每个编解码树单元行的片行索引。
[0668]
以下解决方案示出了上一章节中讨论的技术的示例实施例(例如,项目2)。在这些解决方案中,视频区域可以是视频图片,并且视频单元可以是视频块或编解码树单元或视频条带。
[0669]
4.一种视频处理方法,包括:执行视频的视频区域的视频单元和视频的编解码表示之间的转换,其中,编解码表示符合格式规则;其中,格式规则规定,视频区域处的第一控制信息控制是否在视频单元级别包括第二控制信息;其中,第一控制信息和/或第二控制信息包括关于用于转换的亮度映射与色度缩放(lmcs)或色度残差缩放(crs)或重塑处理(rp)的信息。
[0670]
5.根据解决方案4的方法,其中,第一控制信息包括指示第二控制信息是否被包括在编解码表示中的指示符。
[0671]
6.根据解决方案4-5的方法,其中,第一控制信息的特定值指示对视频区域中的所有视频单元禁用lmcs。
[0672]
7.根据解决方案4-6中任一项的方法,其中,第二控制信息控制视频单元处的lmcs的启用。
[0673]
8.根据解决方案4的方法,其中,第一控制信息包括多个指示符。
[0674]
以下解决方案示出了上一章节中讨论的技术的示例实施例(例如,项目5-8)。
[0675]
9.一种视频处理方法,包括:执行包括一个或多个视频区域的视频和该视频的编
解码表示之间的转换,该一个或多个视频区域包括一个或多个视频单元;其中,编解码表示符合格式规则;其中,格式规则规定,编解码表示包括可用于至少一些视频单元的转换的缩放列表的两级别信令通知,其中,视频区域级别的两级别信令通知中的高级别信令通知控制视频单元级别的两级别信令通知中的低级别信令通知是否以及在哪里被包括在编解码表示中;其中,缩放列表包括关于用于至少一些视频单元的转换的缩放的信息。
[0676]
10.根据解决方案9的方法,其中,高级别信令通知中的二进制值字段控制低级别信令通知的发生。
[0677]
11.根据解决方案9-10中任一项的方法,其中,低级别信令通知中的二进制值字段控制包括在低级别信令通知中的缩放列表的禁用。
[0678]
12.根据解决方案9-11中任一项的方法,其中,一个或多个视频区域对应于视频图片。
[0679]
13.根据解决方案9-12中任一项的方法,其中,一个或多个视频单元包括视频条带或视频编解码单元。
[0680]
以下解决方案示出了上一章节中讨论的技术的示例实施例(例如,项目5-8)。
[0681]
14.一种视频处理的方法,包括:确定用于视频的视频单元和视频的编解码表示之间的转换的低频不可分变换的缩放列表;以及基于确定来执行转换,其中,编解码表示中的语法结构指示是否为视频单元启用缩放列表。
[0682]
15.根据解决方案14的方法,其中,语法结构被包括在序列头或图片头或条带头中。
[0683]
16.根据解决方案14-15中任一项的方法,其中,视频单元包括视频块。
[0684]
17.根据解决方案1至16中任一项的方法,其中,转换包括将视频编码成编解码表示。
[0685]
18.根据解决方案1至16中任一项的方法,其中,转换包括解码编解码表示以生成视频的像素值。
[0686]
19.一种视频解码装置,包括被配置为实施解决方案1至18中的一个或多个中的方法的处理器。
[0687]
20.一种视频编解码装置,包括被配置为实施解决方案1至18中的一个或多个中的方法的处理器。
[0688]
21.一种其上存储有计算机代码的计算机程序产品,该代码在由处理器执行时使处理器实施解决方案1至18中任一项的方法。
[0689]
22.本文档中描述的方法、装置或系统。
[0690]
在本文描述的解决方案中,编码器可以通过根据格式规则产生编解码表示来符合格式规则。在本文描述的解决方案中,解码器可以使用格式规则来解析编解码表示中的语法元素,其中,根据格式规则了解语法元素的存在和不存在,以产生解码的视频。
[0691]
图12是视频处理的示例方法1200的流程图。操作1202包括执行视频的视频块和视频的比特流之间的转换,其中,比特流符合格式规则,其中,格式规则规定,第一语法元素被包括在视频区域级别的比特流中,第一语法元素指示缩放处理是应用于视频块的变换系数还是应用于视频块的非变换系数,并且其中,视频区域小于视频的视频图片。
[0692]
在方法1200的一些实施例中,格式规则规定,第一语法元素在条带的条带头中,并
且格式规则规定,缩放处理不受第二语法元素控制,第二语法元素指示是否在比特流中的序列参数集中启用缩放列表。在方法1200的一些实施例中,第二语法元素指定是否启用缩放列表,缩放列表在条带转换期间被包括在变换系数的缩放处理中的缩放列表自适应参数集中。在方法1200的一些实施例中,格式规则规定,第一语法元素在条带的条带头中,并且格式规则规定,缩放处理不受第三语法元素控制,第三语法元素指示缩放列表是否存在于比特流中的图片头中。在方法1200的一些实施例中,第一语法元素指定是否启用缩放列表,缩放列表在条带转换期间被包括变换系数的缩放处理中的缩放列表自适应参数集中。
[0693]
图13是视频处理的示例方法1300的流程图。操作1302包括执行视频的视频区域的视频单元和视频的比特流之间的转换,其中,比特流符合格式规则,其中,格式规则规定,比特流中的视频区域的第一级别的第一控制信息指示第二控制信息是否被包括在比特流中的视频单元的第二级别中,并且其中,第一控制信息和/或第二控制信息包括关于缩放列表是用于转换的变换系数还是用于转换的非变换系数的信息。
[0694]
在方法1300的一些实施例中,第一控制信息选择性地包括第一指示符,第一指示符指示是否为视频区域的第一级别的一个或多个条带启用缩放列表以指定是否在视频单元的第二级别启用缩放列表,并且第一指示符是非二进制值。在方法1300的一些实施例中,视频区域的第一级别包括图片头。在方法1300的一些实施例中,视频区域的第一级别包括图片头,第一控制信息包括第一指示符,当第一指示符等于第一值时,为图片头的所有条带启用缩放列表,当第一指示符等于第二值时,为少于图片头的所有条带启用缩放列表,当第一指示符等于第三值时,为图片头的所有条带禁用缩放列表,并且第一值、第二值和第三值彼此不同。在方法1300的一些实施例中,当第一控制信息不包括第一指示符时,第一指示符的值被推断为默认值。
[0695]
在方法1300的一些实施例中,视频区域的第一级别包括图片头,第一控制信息包括第一指示符,当第一指示符等于第一值时,为图片头的所有条带启用缩放列表,当第一指示符等于第二值时,当解码包括视频图片的视频区域的条带时,启用缩放列表,当第一指示符等于第三值时,为图片头的所有条带禁用缩放列表,并且第一值、第二值和第三值彼此不同。在方法1300的一些实施例中,视频区域的第一级别包括图片头,第一控制信息包括第一指示符,当第一指示符等于第一值时,为图片头的所有条带启用缩放列表,当第一指示符等于第二值时,当解码包括视频图片的视频区域的条带时,选择性地启用缩放列表,当第一指示符等于第三值时,为图片头的所有条带禁用缩放列表,以及第一值、第二值和第三值彼此不同。
[0696]
在方法1300的一些实施例中,视频区域的第一级别包括图片头,第一控制信息包括第一指示符,当第一指示符等于第一值时,为图片头的所有条带禁用缩放列表,当第一指示符等于第二值时,为少于图片头的所有条带禁用缩放列表,当第一指示符等于第三值时,为图片头的所有条带启用缩放列表,并且第一值、第二值和第三值彼此不同。在方法1300的一些实施例中,视频区域的第一级别包括图片头,第一控制信息包括第一指示符,当第一指示符等于第一值时,为图片头的所有条带启用缩放列表,当第一指示符等于第二值时,当解码包括视频图片的视频区域的条带时,选择性地禁用缩放列表,当第一指示符等于第三值时,为图片头的所有条带禁用缩放列表,并且第一值、第二值和第三值彼此不同。在方法1300的一些实施例中,视频区域的第一级别包括图片头,第一控制信息包括第一指示符,当
第一指示符等于第一值时,为图片头的所有条带启用缩放列表,当第一指示符等于第二值时,当解码包括视频图片的视频区域的条带时,禁用缩放列表,当第一指示符等于第三值时,为图片头的所有条带禁用缩放列表,以及第一值、第二值和第三值彼此不同。
[0697]
在方法1300的一些实施例中,第一指示符是否被选择性地包括在第一控制信息中是基于比特流中指示缩放列表是否在序列级别被启用的语法元素的值。在方法1300的一些实施例中,用u(v)或u(2)或ue(v)编解码第一指示符。在方法1300的一些实施例中,用截断的一元码编解码第一指示符。在方法1300的一些实施例中,基于指示是否为视频区域的第一级别的一个或多个条带启用缩放列表的第一指示符的值,将一个或多个条带使用的缩放列表的自适应参数集(aps)信息包括在比特流中。在方法1300的一些实施例中,第二控制信息选择性地包括第二指示符,第二指示符指示为视频单元的第二级别的一个或多个条带是启用还是禁用缩放列表,基于包括在第一控制信息中的第一指示符的值,第二指示符被包括在比特流中,并且第一指示符指示为视频单元的第二级别的一个或多个条带是启用还是禁用缩放列表。在方法1300的一些实施例中,第二控制信息包括条带头。在方法1300的一些实施例中,响应于第一指示符等于第一值,第二指示符被包括在第二控制信息中。在方法1300的一些实施例中,响应于执行以下条件检查,第二指示符被包括在第二控制信息中:第一指示符》 》1,或第一指示符/2,或第一指示符&0x01,其中,》》描述了右移位操作,并且其中,&描述了按位逻辑与运算。
[0698]
在方法1300的一些实施例中,响应于第二控制信息中不存在第二指示符:响应于第一指示符等于第一值,推断第二指示符的值被启用,或者响应于第一指示符等于第三值,推断第二指示符的值被禁用,并且第一值、第一指示符的第二值和第三值彼此不同。在方法1300的一些实施例中,第一控制信息包括多个指示符,多个指示符指示是否为视频区域的第一级别的一个或多个条带启用缩放列表,以指定缩放列表是否在视频单元的第二级别被启用,并且多个指示符具有非二进制值。在方法1300的一些实施例中,多个指示符包括包含在图片头中的至少两个指示符。在方法1300的一些实施例中,至少两个指示符包括第一指示符,第一指示符指定是否为与图片头相关联的至少一个条带启用缩放列表,并且至少两个指示符选择性地包括第二指示符,第二指示符指定是否为与图片头相关联的所有条带启用缩放列表。在方法1300的一些实施例中,基于第一指示符的值,在多个指示符中选择性地信令通知第二指示符。
[0699]
在方法1300的一些实施例中,第一指示符的值指定为至少一个条带启用缩放列表。在方法1300的一些实施例中,响应于第二指示符不存在于比特流中,推断为与图片头相关联的所有条带启用缩放列表。在方法1300的一些实施例中,响应于第一指示符在一致性比特流中为假,第二指示符为假。在方法1300的一些实施例中,至少两个指示符包括第三指示符,基于第一指示符的第一值或第二指示符的第二值在条带头中选择性地信令通知第三指示符。在方法1300的一些实施例中,第一指示符的第一值指定为至少一个条带启用缩放列表,并且第二指示符的第二值指定为所有条带禁用缩放列表。在方法1300的一些实施例中,响应于比特流中不存在第三指示符,基于第一指示符的第一值和/或第二指示符的第二值来推断第三指示符的值。在方法1300的一些实施例中,至少两个指示符包括第一指示符,第一指示符指定是否为与图片头相关联的至少一个条带禁用缩放列表,并且至少两个指示符选择性地包括第二指示符,第二指示符指定是否为与图片头相关联的所有条带禁用缩放
列表。
[0700]
在方法1300的一些实施例中,基于第一指示符的第一值,在多个指示符中信令通知第二指示符。在方法1300的一些实施例中,第一指示符的第一值指定为至少一个条带禁用缩放列表。在方法1300的一些实施例中,响应于第二指示符不存在于比特流中,推断为与图片头相关联的所有条带禁用缩放列表。在方法1300的一些实施例中,至少两个指示符基于第二指示符的第二值选择性地包括条带头中的第三指示符。在方法1300的一些实施例中,第一指示符的第一值指定为至少一个条带启用缩放列表,并且其中,第二指示符的第二值指定为所有条带启用缩放列表。在方法1300的一些实施例中,响应于第三指示符不存在于比特流中,基于第一指示符的第一值和/或第二指示符的第二值来推断第三指示符的值。在方法1300的一些实施例中,多个指示符基于指示缩放列表是否在序列级别被启用的语法元素的值选择性地包括第一指示符。
[0701]
在方法1300的一些实施例中,多个指示符选择性地包括第三指示符,第三指示符指示缩放列表在视频单元的第二级别是被启用还是被禁用,并且,基于第一指示符的第一值和/或第二指示符的第二值,选择性地信令通知第三指示符。在方法1300的一些实施例中,基于指示没有为所有条带启用缩放列表或没有为所有条带禁用缩放列表的第二指示符,选择性地信令通知第三指示符。在方法1300的一些实施例中,在视频区域的第一级别的第一控制信息中选择性地信令通知两个1位语法元素,以指定在视频单元的第二级别是否启用缩放列表,视频区域包括视频图片,并且视频单元包括一个或多个条带。在方法1300的一些实施例中,第一控制信息包括视频图片的图片头,并且其中,第二控制信息包括来自一个或多个条带的条带的条带头。
[0702]
在方法1300的一些实施例中,两个1位语法元素包括第一图片头语法元素,响应于第一图片头语法元素等于1,视频图片的所有条带使用缩放列表,并且响应于第一图片头语法元素等于0,视频图片的每个条带选择性地使用缩放列表。在方法1300的一些实施例中,两个1位语法元素包括第二图片头语法元素,响应于第二图片头语法元素等于1,视频图片的条带均不使用缩放列表,并且响应于第二图片头语法元素等于0,视频图片的每个条带选择性地使用缩放列表。在方法1300的一些实施例中,当第一图片头语法元素等于0时,在比特流中信令通知第二图片头语法元素。在方法1300的一些实施例中,在图片头中信令通知缩放列表的自适应参数集(aps)标识符,响应于:第一图片头语法元素等于1,或者第一图片头语法元素等于0,并且第二图片头语法元素等于0。在方法1300的一些实施例中,在条带头中信令通知条带头语法元素,响应于:第一图片头语法元素等于0,并且第二图片头语法元素等于0。
[0703]
在方法1300的一些实施例中,响应于第一图片头语法元素等于1,将条带头中的条带头语法元素的值推断为0。在方法1300的一些实施例中,响应于第一图片头语法元素等于0并且第二图片头语法元素等于0,将条带头中的条带头语法元素的值推断为0。在方法1300的一些实施例中,响应于条带头中的条带头语法元素的值等于1,缩放列表用于解码条带。在方法1300的一些实施例中,比特流选择性地包括一个或多个指示符,一个或多个指示符指示与缩放列表相关的信息是在图片头中还是在条带头中被指示。在方法1300的一些实施例中,一个或多个指示符包括一位指示符。
[0704]
在方法1300的一些实施例中,响应于一位指示符指示第一控制信息中的图片头包
括与缩放列表相关的信息,视频单元的所有条带从图片头推断值,并且从条带头中排除与缩放列表相关的信息的信令通知。在方法1300的一些实施例中,响应于一位指示符指示与缩放列表相关的信息在条带头中被指示,从图片头中排除与缩放列表相关的信息。在方法1300的一些实施例中,在图片头中信令通知一个或多个指示符。在方法1300的一些实施例中,在图片参数集(pps)中信令通知一个或多个指示符。在方法1300的一些实施例中,在序列参数集(sps)中信令通知一个或多个指示符。
[0705]
图14为视频处理的示例方法1400的流程图。操作1402包括执行视频的视频块和视频的比特流之间的转换,其中,视频块使用低频不可分变换进行转换,其中,比特流符合格式规则,格式规则规定,在比特流的语法级别包括语法元素,其中,语法元素指示是否为视频块启用从参考缩放列表推导的缩放矩阵的使用,并且其中,语法级别是序列级别、图片级别或条带级别。
[0706]
在方法1400的一些实施例中,语法元素被包括在序列参数集(sps)、图片参数集(pps)、图片头或条带头中。在方法1400的一些实施例中,基于是否为视频块启用低频不可分变换,将语法元素包括在sps、pps、图片头或条带头中。在方法1400的一些实施例中,基于sps_lfnst_enabled_flag的值是否等于1,语法元素被包括在sps中。在方法1400的一些实施例中,该方法还包括确定是否基于语法元素将从显式缩放列表或默认缩放列表推导的缩放矩阵应用于视频块以及是否为视频块启用低频不可分变换。
[0707]
图15是视频处理的示例方法1500的流程图。操作1502包括:对于视频的视频单元和视频的比特流之间的转换,确定使用视频单元的边界外的填充样点对沿着视频单元的边界的视频单元的样点执行去方块滤波。操作1504包括根据确定来执行转换。
[0708]
在方法1500的一些实施例中,视频单元包括视频图片。在方法1500的一些实施例中,视频单元包括视频图片的子图片。在方法1500的一些实施例中,视频单元包括条带。在方法1500的一些实施例中,视频单元包括片。在方法1500的一些实施例中,视频单元是从逐渐解码刷新(gdr)获得的刷新区域,并且其中,边界位于视频图片的刷新区域和未刷新区域之间。在方法1500的一些实施例中,边界在比特流中被指示为虚拟边界。在方法1500的一些实施例中,以重复的方式执行填充处理,使得填充样点中的两个或更多个的值等于沿着视频单元的边界的样点中的样点的值。在方法1500的一些实施例中,以对称方式执行填充处理,使得来自填充样点的至少第一填充样点和第二填充样点的值分别等于来自沿着视频单元的边界的样点的第一样点和第二样点的值。
[0709]
在一些实施例中,执行转换包括将视频编码成比特流。在一些实施例中,执行转换包括从视频生成比特流,并且该方法还包括将比特流存储在非暂时性计算机可读记录介质中。在一些实施例中,执行转换包括从比特流中解码视频。在一些实施例中,一种视频解码装置包括处理器,该处理器被配置成实施本专利文档中描述的一个或多个操作。在一些实施例中,一种视频编解码装置包括处理器,该处理器被配置成实施本专利文档中描述的一个或多个操作。在一些实施例中,一种其上存储有计算机指令的计算机程序产品,该指令在由处理器执行时使得处理器实施本专利文档中描述的一个或多个操作。在一些实施例中,一种非暂时性计算机可读存储介质,其存储根据本专利文档中描述的一个或多个操作生成的比特流。在一些实施例中,一种存储指令的非暂时性计算机可读存储介质,该指令使处理器执行本专利文档中描述的一个或多个操作。在一些实施例中,一种生成比特流的方法,包
括:根据本专利文档中描述的一个或多个操作生成视频的比特流,并将比特流存储在计算机可读程序介质上。在一些实施例中,一种方法、一种装置、一种根据本文档中描述的所公开的方法或系统生成的比特流。
[0710]
在本文档中,术语“视频处理”可指视频编码、视频解码、视频压缩或视频解压缩。例如,在从视频的像素表示到对应的比特流表示的转换期间,可以应用视频压缩算法,反之亦然。如语法所定义,当前视频块的比特流表示可(例如)对应于共位或散布在比特流内不同位置的比特。例如,可以根据变换和编解码的误差残差值并且还使用头中的比特和比特流中的其他字段,对宏块进行编码。此外,在转换期间,解码器可以基于该确定,在知道一些字段可能存在或不存在的情况下解析比特流,如以上解决方案中所述。类似地,编码器可确定包括或不包括某些语法字段,并通过从编解码表示中包括或排除语法字段来相应地生成编解码表示。
[0711]
本文档中所述的公开和其他方案、示例、实施例、模块和功能操作可以被实现在数字电子电路中或者在计算机软件、固件或硬件中,含有本文档中所公开的结构以及其结构的等同物,或者它们中的一个或多个的组合。所公开的和其他实施例可以被实现为计算机可读介质上所编码的一个或多个计算机程序产品,例如一个或多个计算机程序指令模块,用于由数据处理装置执行或者控制数据处理装置的操作。该计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读可传播信号的复合物,或其一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电、光或电磁信号,其被生成来编码信息以传输到合适的接收器装置。
[0712]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式来部署计算机程序,包括独立程序或适合在计算环境中使用的模块、组件、子例程或其它单元。计算机程序不必须对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的部分中(例如,在标记语言文档中存储的一个或多个脚本)、在专用于所讨论的程序的单个文件中、或在多个协同文件中(例如存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以部署为在一个计算机上或者在多个计算机上执行,该多个计算机位于一个站点处或者分布跨多个站点并由通信网络互连。
[0713]
可以由执行一个或多个计算机程序的一个或多个可编程处理器来进行在本文档中所描述的过程和逻辑流,以通过在输入数据上操作并且生成输出来进行功能。也可以由专用逻辑电路(例如,现场可编程门阵列(fpga)或专用集成电路(asic))进行过程和逻辑流,并且装置可以实现为专用逻辑电路(例如fpga或asic)。
[0714]
适合于计算机程序的执行的处理器包括例如通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或者该两者接收指令和数据。计算机的基本元件是用于进行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个海量存储设备(例如磁、磁光盘或光盘),或者可操作地耦合以从海量存储设备(例如磁、磁
光盘或光盘)接收数据或者将数据传输到海量存储设备(例如磁、磁光盘或光盘),或者以上两者。但是,计算机不必具有此类设备。适用于存储计算机程序指令和数据的计算机可读介质含有所有形式的非易失性存储器、介质和存储器设备,含有例如半导体存储器设备(例如eprom、eeprom和闪速存储器设备);磁盘(例如内部硬盘或可移动磁盘);磁光盘;和cd rom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充,或者合并在专用逻辑电路中。
[0715]
虽然本专利文档含有许多细节,但这些细节不应被解释为对任何主题或可要求保护的范围的限制,而是作为指定于特定技术的特定实施例的特征的描述。在本专利文档中,在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中所描述的各种特征还可以分别在多个实施例中来实现或者以各种合适的子组合来实现。此外,尽管特征可以如上文描述为以某些组合起作用并且甚至最初同样地要求,但是在某些情况下来自所要求保护的组合的一个或多个特征可以从组合中去除,并且所要求保护的组合可以针对子组合或子组合的变化。
[0716]
类似地,尽管在附图中以特定顺序描绘了操作,但这不应当理解为要求按所示的特定次序或顺序次序进行此类操作或者进行所有示出的操作,以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分开不应被理解为在所有实施例中都要求这种分开。
[0717]
仅描述了几个实现方式和示例,并且可以基于本专利文档中描述和示出的内容来作出其它实现方式、增强和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1