具有不同的编解码块大小的层间预测的制作方法

文档序号:33507297发布日期:2023-03-18 03:38阅读:332来源:国知局
具有不同的编解码块大小的层间预测的制作方法
具有不同的编解码块大小的层间预测
1.相关申请的交叉引用
2.根据巴黎公约适用的专利法和/或规则,本技术要求于2020年6月20日提交的国际专利申请no.pct/cn2020/097293的优先权和权益。出于法律指定的所有目的,上述申请的全部公开内容通过引用并入作为本技术的公开内容的一部分。
技术领域
3.该专利文档涉及图像和视频编解码和解码。


背景技术:

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


技术实现要素:

5.本文档公开了可以由视频编码器和解码器使用的技术,用于使用对经编解码表示的解码有用的控制信息来处理视频的经编解码表示。
6.在一个示例方面,一种处理视频数据的方法包括根据规则在视频的当前图片的视频单元与视频的比特流之间执行转换。该规则指定,对于可用作其运动信息用于转换的参考图片的给定图片,给定图片具有与当前图片相同的编解码树单元大小或相同的编解码树块大小。
7.在另一示例方面,公开了一种视频处理方法。该方法包括在包括一个或多个视频图片的视频之间执行转换,其中,经编解码表示符合格式规则;其中,格式规则指定,序列参数集中的两个或更多个语法字段控制视频中的参考图片分辨率(rpr)变化。
8.在另一示例方面,公开了另一种视频处理方法。该方法包括在包括一个或多个视频图片的视频之间执行转换,其中,经编解码表示符合格式规则;其中,该格式规则指定,序列参数集中的单个语法字段控制视频中的参考图片分辨率(rpr)变化;并且其中,格式规则指定,不管该单个语法字段的值如何,允许对层间参考图片进行重采样以用于转换。
9.在另一示例方面,公开了另一种视频处理方法。该方法包括在包括一个或多个层的视频之间执行转换,该一个或多个层包括一个或多个图片,该一个或多个图片包括一个或多个子图片,其中,经编解码表示符合格式规则;其中,该格式规则指定了对跨层对齐的第一约束或对子图片和层间图片可缩放性的组合的第二约束。
10.在另一示例方面,公开了另一种视频处理方法。该方法包括在包括一个或多个层的视频之间执行转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,其中,该转换符合格式规则,该格式规则指定,层间参考图片或长期参考图片不被允许作为用于该转换的当前图片的同位图片。
11.在另一示例方面,公开了另一种视频处理方法。该方法包括在包括多个图片的视频与该视频的经编解码表示之间执行转换,其中,该转换符合规则,该规则指定scaling_
win_left_offset、scaling_win_right_offset、scaling_win_top_offset和scaling_win_bottom_offset中的每个的值对于相同的经编解码层视频序列或具有相同的pic_width_in_luma_samples和pic_height_in_luma_samples值的经编解码视频序列内的任何两个图片是相同的。
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示出了典型的基于子图片的视口依赖360
°
视频编解码方案的示例。
29.图12示出了基于子图片和空间可缩放性的视口依赖的360
°
视频编解码方案。
30.图13是根据本技术的一个或多个实施例的视频处理方法的流程图表示。
具体实施方式
31.在本文档中使用章节标题是为了易于理解,而不是将每个章节中公开的技术和实
施例的适用性仅限制于该章节。此外,在一些描述中使用h.266术语仅仅是为了易于理解,而不是为了限制所公开技术的范围。因此,本文所描述的技术也适用于其他视频编解码器协议和设计。在本文档中,相对于vvc规范的当前草案,在文本的编辑更改通过以下方式示出:删除线指示取消的文本,突出显示指示添加的文本(包括粗体斜体)表示。
32.1.概述
33.本文档涉及视频编解码技术。具体地,本文档关于1)视频编解码中的参考图片重采样(rpr)、子图片和可缩放性中的两个或更多个的组合,2)在具有相同的空间分辨率的当前图片与参考图片之间使用rpr,以及3)长期参考图片和同位图片的组合。这些思想可以单独或以各种组合应用于支持多层视频编解码的任何视频编解码标准或非标准视频编解码器,例如正在开发的多功能视频编解码(vvc)。
34.2.缩略语
35.aps
ꢀꢀꢀꢀꢀꢀꢀꢀ
自适应参数集
36.au
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
接入单元
37.aud
ꢀꢀꢀꢀꢀꢀꢀꢀ
接入单元定界符
38.avc
ꢀꢀꢀꢀꢀꢀꢀꢀ
高级视频编解码
39.clvs
ꢀꢀꢀꢀꢀꢀꢀ
经编解码层视频序列
40.ccalf
ꢀꢀꢀꢀꢀꢀ
交叉分量自适应环路滤波器
41.cpb
ꢀꢀꢀꢀꢀꢀꢀꢀ
经编解码图片缓冲器
42.cra
ꢀꢀꢀꢀꢀꢀꢀꢀ
空闲随机接入
43.ctu
ꢀꢀꢀꢀꢀꢀꢀꢀ
编解码树单元
44.cvs
ꢀꢀꢀꢀꢀꢀꢀꢀ
经编解码视频序列
45.dci
ꢀꢀꢀꢀꢀꢀꢀꢀ
解码能力信息
46.dpb
ꢀꢀꢀꢀꢀꢀꢀꢀ
经解码图片缓冲器
47.eob
ꢀꢀꢀꢀꢀꢀꢀꢀ
比特流的结尾
48.eos
ꢀꢀꢀꢀꢀꢀꢀꢀ
序列的结尾
49.gdr
ꢀꢀꢀꢀꢀꢀꢀꢀ
逐步解码刷新
50.hevc
ꢀꢀꢀꢀꢀꢀꢀ
高效视频编解码
51.hrd
ꢀꢀꢀꢀꢀꢀꢀꢀ
假设参考解码器
52.idr
ꢀꢀꢀꢀꢀꢀꢀꢀ
瞬时解码刷新
53.ilp
ꢀꢀꢀꢀꢀꢀꢀꢀ
层间预测
54.ilrp
ꢀꢀꢀꢀꢀꢀꢀ
层间参考图片
55.irap
ꢀꢀꢀꢀꢀꢀꢀ
帧内随机接入图片
56.jem
ꢀꢀꢀꢀꢀꢀꢀꢀ
联合探索模型
57.ltrp
ꢀꢀꢀꢀꢀꢀꢀ
长期参考图片
58.mcts
ꢀꢀꢀꢀꢀꢀꢀ
运动约束片集
59.nal
ꢀꢀꢀꢀꢀꢀꢀꢀ
网络抽象层
60.ols
ꢀꢀꢀꢀꢀꢀꢀꢀ
输出层集
61.ph
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
图片标头
62.pps
ꢀꢀꢀꢀꢀꢀꢀꢀ
图片参数集
63.ptl
ꢀꢀꢀꢀꢀꢀꢀꢀ
简档、层次和级别
64.pu
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
图片单元
65.rap
ꢀꢀꢀꢀꢀꢀꢀꢀ
随机接入点
66.rbsp
ꢀꢀꢀꢀꢀꢀꢀ
原始字节序列有效载荷
67.sei
ꢀꢀꢀꢀꢀꢀꢀꢀ
补充增强信息
68.sps
ꢀꢀꢀꢀꢀꢀꢀꢀ
序列参数集
69.strp
ꢀꢀꢀꢀꢀꢀꢀ
短期参考图片
70.svc
ꢀꢀꢀꢀꢀꢀꢀꢀ
可缩放视频编解码
71.vcl
ꢀꢀꢀꢀꢀꢀꢀꢀ
视频编解码层
72.vps
ꢀꢀꢀꢀꢀꢀꢀꢀ
视频参数集
73.vtm
ꢀꢀꢀꢀꢀꢀꢀꢀ
vvc测试模型
74.vui
ꢀꢀꢀꢀꢀꢀꢀꢀ
视频可用性信息
75.vvc
ꢀꢀꢀꢀꢀꢀꢀꢀ
多功能视频编解码
76.3.初步讨论
77.视频编解码标准主要随着众所周知的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年联合成立了联合视频探索小组(jvet)。此后,jvet采用了许多新方法,并且将其输入到名为联合探测模型(jem)的参考软件中。jvet会议同时每季度举行一次,并且与hevc相比,新编解码标准的目标是降低50%的比特率。新的视频编解码标准在2018年4月的jvet会议上被正式命名为多功能视频编解码(vvc),vvc测试模型(vtm)的第一版本也在当时发布。由于对vvc标准化的持续努力,新的编解码技术在每次jvet会议上都被采纳到vvc标准中。然后,vvc工作草案和测试模型vtm在每次会议后都会更新。vvc项目现在的目标是在2020年7月的会议上在技术上完成(fdis)。
78.3.1.hevc中的图片分割方案
79.hevc包括四种不同的图片分割方案,即规则条带、依赖条带、片和波前并行处理(wpp),其可以用于最大传输单元(mtu)大小匹配、并行处理和减少的端到端延迟。
80.常规条带与h.264/avc中的相似。每个常规条带被封装在其自己的nal单元中,并且跨条带边界的图片内预测(样本内预测、运动信息预测、编解码模式预测)和熵编解码依赖性被禁用。因此,常规条带可以独立于同一图片内的其他常规条带来重构(尽管由于环路滤波操作可能仍然存在相互依赖性)。
81.常规条带是唯一可以用于并行化的工具,在h.264/avc中也以几乎相同的形式可用。基于规则条带的并行化不需要太多的处理器间或核间通信(除了在解码预测编解码图片时用于运动补偿的处理器间或核间数据共享,由于图片内预测,所以这通常比处理器间或核间数据共享大得多)。然而,出于同样的原因,由于条带标头的比特成本以及由于缺乏跨条带边界的预测,使用常规条带会导致大量编解码开销。此外,由于常规条带的图片内独立性以及每个常规条带被封装在其自己的nal单元中,所以常规条带(与下面提到的其他工具相比)还用作比特流分割的关键机制,以匹配mtu大小要求。在许多情况下,并行化的目标
和mtu大小匹配的目标对图片中的条带布局提出了矛盾的要求。对这种情况的认识导致了下面提到的并行化工具的开发。
82.依赖条带具有短的条带标头,并且允许在树块边界分割比特流,而不破坏任何图片内预测。基本上,依赖条带提供将常规条带变成多个nal单元的分段,以通过允许常规条带的一部分在整个常规条带的编码完成之前被发送出去来提供减少的端到端延迟。
83.在wpp中,图片被分割成单行编解码树块(ctb)。熵解码和预测被允许使用来自其他分割中的ctb的数据。通过ctb行的并行解码,并行处理是可能的,其中,ctb行的解码的开始被延迟了两个ctb,从而确保在对象ctb(subject ctb)被解码之前,与对象ctb上方和右侧的ctb相关的数据是可用的。使用这种交错的开始(当以图形表示时,它看起来像一个波前),并行化可以使用与图片包含的ctb行一样多的处理器/核。因为图片内相邻树块行之间的图片内预测是允许的,所以实现图片内预测所需的处理器间/核间通信可能是大量的。与未应用时相比,wpp分割不会产生附加的nal单元,因此wpp不是mtu大小匹配的工具。但是,如果需要mtu大小匹配,则常规条带可以与wpp一起使用,但会有一定的编解码开销。
84.片定义了将图片分割为片列和片行的水平和垂直边界。片列从图片的顶部延伸到图片的底部。同样,片行从图片的左边延伸到图片的右边。图片中的片数量可以简单地通过片列的数量乘以片行的数量来推导。
85.在以图片的片光栅扫描的顺序解码下一个片的左上ctb之前,ctb的扫描顺序被改变为在片内是局部的(以片的ctb光栅扫描的顺序)。与常规条带类似,片打破了图片内预测依赖性以及熵解码依赖性。然而,它们不需要被包括在单个nal单位中(在这方面与wpp相同的);因此,片不能用于mtu大小匹配。每个片可以由一个处理器/核来处理,并且解码相邻片的处理单元之间的图片内预测所需的处理器间/核间通信限于在一个条带跨越一个以上片的情况下传送共享的条带标头,以及与重构样本和元数据的共享相关的环路滤波。当条带中包括一个以上片或wpp段时,条带中除第一个片或wpp段之外的每个片或wpp段的入口点字节偏移在条带标头中信令通知。
86.为简单起见,在hevc指定了对四种不同的图片分割方案应用的限制。给定的经编解码视频序列不能同时包括hevc标准中指定的大部分简档的片和波前。对于每个条带和片,必须满足以下一个或两个条件:1)条带中的所有经编解码的树块属于同一片;2)片中的所有经编解码的树块属于同一条带。最后,波前段正好包含一个ctb行,并且当使用wpp时,如果条带在ctb行内开始,则它必须在同一个ctb行结束。
87.在最近的hevc修正案中,hevc指定了三种与mcts相关的sei消息,即时间mcts sei消息、mcts提取信息集sei消息和mcts提取信息嵌套sei消息。
88.时间mcts sei消息指示比特流中mcts的存在,并且信令通知mcts。对于每个mcts,运动向量被限制为指向mcts内的全样本位置和仅需要mcts内的全样本位置进行插值的分数样本位置,并且不允许使用从mcts外的块推导的用于时间运动向量预测的运动向量候选。这样,每个mcts可以被独立解码,而不存在不包括在mcts中的片。
89.mcts提取信息集sei消息提供了可以在mcts子比特流提取中使用的补充信息(被指定为sei消息的语义的一部分),以生成符合mcts集的比特流。该信息由多个提取信息集组成,每个提取信息集定义多个mcts集,并且包含将在mcts子比特流提取过程中使用的替换vps、sps和pps的rbsp字节。当根据mcts子比特流提取过程提取子比特流时,参数集(vps、
sps和pps)需要被重写或替换,条带标头需要稍微更新,因为一个或所有条带地址相关的语法元素(包括first_slice_segment_in_pic_flag和slice_segment_address)通常需要具有不同的值。
90.3.2.vvc中的图片分割
91.在vvc,图片被划分成一个或多个片行和一个或多个片列。片是覆盖图片的矩形区域的一系列ctu。片中的ctu在该片中以光栅扫描顺序被扫描。
92.条带由整数个完整的片或图片的片中整数个连续的完整ctu行组成。
93.支持两种条带模式,即光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式中,条带包含图片的片光栅扫描中的完整片序列。在矩形条带模式中,条带包含共同形成图片的矩形区域的多个完整的片,共同形成图片的矩形区域的一个片的多个连续的完整的ctu行。矩形条带内的片在对应于该条带的矩形区域内以片光栅扫描顺序被扫描。
94.子图片包含共同覆盖图片的矩形区域的一个或多个条带。
95.图1示出了图片的光栅扫描条带分割的示例,其中,图片被分成12个片和3个光栅扫描条带。
96.图2示出了图片的矩形条带分割的示例,其中,图片被划分成24个片(6个片列和4个片行)和9个矩形条带。
97.图3示出了被分割成片和矩形条带的图片的示例,其中,图片被划分成4个片(2个片列和2个片行)和4个矩形条带。
98.图4示出了图片的子图片分割的示例,其中,图片被分割成18个片,左手边的12个片每个覆盖一个4
×
4ctu的条带,右手边的6个片每个覆盖2个2
×
2ctu的垂直堆叠条带,总共产生24个条带和24个不同的尺寸的子图片(每个条带是一个子图片)。
99.3.3.序列内图片分辨率改变
100.在avc和hevc中,图片的空间分辨率不能改变,除非使用新sps的新序列以irap图片开始。vvc允许在不编码irap图片的位置改变序列内的图片分辨率,该irap图片总是被帧内编解码。该特征有时称为参考图片重采样(rpr),因为当参考图片具有与正被解码的当前图片不同的分辨率时,该特征需要对用于帧间预测的参考图片进行重采样。
101.缩放比率被限制为大于或等于1/2(从参考图片到当前图片的2倍下采样),并且小于或等于8(8倍上采样)。指定了具有不同的频率截止的三组重采样滤波器来处理参考图片与当前图片之间的各种缩放比率。三组重采样滤波器分别应用于范围从1/2到1/1.75、从1/1.75到1/1.25和从1/1.25到8的缩放比率。每组重采样滤波器对于亮度具有16个相位,对于色度具有32个相位,这与运动补偿插值滤波器的情况相同。实际上,正常的mc插值过程是其中缩放比率范围从1/1.25到8的重采样过程的特殊情况。水平和垂直缩放比率是基于图片宽度和高度以及为参考图片和当前图片指定的左、右、上和下缩放偏移而推导的。
102.支持该特征的vvc设计与hevc不同的其他方面包括:i)图片分辨率和对应的一致性窗口在pps中而不是在sps中被信令通知,而在sps中最大图片分辨率被信令通知。ii)对于单层比特流,每个图片存储(dpb中用于存储一个经解码图片的槽)占用存储具有最大图片分辨率的经解码图片所需的缓冲器大小。
103.3.4.通用情况和vvc中的可缩放视频编解码(svc)
104.可缩放视频编解码(svc,有时也称为视频编解码中的可缩放性)指的是其中使用
基本层(bl)(有时称为参考层(rl))和一个或多个可缩放增强层(el)的视频编解码。在svc中,基本层可以携带具有基本质量水平的视频数据。一个或多个增强层可以携带附加的视频数据,以支持例如更高的空间、时间和/或信噪比(snr)水平。增强层可以相对于先前编码的层来定义。例如,底层可以用作bl,而顶层可以用作el。中间层可以充当el或rl或两者。例如,中间层(例如,既不是最低层也不是最高层的层)可以是中间层之下的层的el(诸如基本层或任何介于中间的增强层),同时充当中间层之上的一个或多个增强层的rl。类似地,在hevc标准的多视图或3d扩展中,可以有多个视图,并且一个视图的信息可以用于编解码(例如,编码或解码)另一视图的信息(例如,运动估计、运动向量预测和/或其他冗余)。
105.在svc中,编码器或解码器使用的参数基于它们可能被使用的编解码级别(例如,视频级别、序列级别、图片级别、条带级别等)分组为参数集。例如,比特流中不同的层的一个或多个经编解码视频序列可以使用的参数可以包括在视频参数集(vps)中,并且经编解码视频序列中的一个或多个图片可以使用的参数可以包括在序列参数集(sps)中。类似地,图片中的一个或多个条带使用的参数可以包括在图片参数集(pps)中,并且特定于单个条带的其他参数可以包括在条带标头中。类似地,特定层在给定时间使用哪个(哪些)参数集的指示可以在各种编解码级别提供。
106.由于vvc支持参考图片重采样(rpr),所以无需任何附加的信号处理级编解码工具,就可以设计包含多层(例如,vvc中具有sd和hd分辨率的两层)的比特流支持,因为空间可缩放性支持所需的上采样可以只使用rpr上采样滤波器。然而,为了支持可缩放性,需要高级别的语法变化(与不支持可缩放性相比)。vvc版本1中指定了可缩放性支持。与任何早期视频编解码标准(包括avc和hevc的扩展)中的可缩放性支持不同,vvc可缩放性的设计尽可能对单层解码器设计友好。多层比特流的解码能力是以好像比特流中只有单层的方式来指定的。例如,以独立于要解码的比特流中的层数的方式指定解码能力,诸如dpb大小。基本上,为单层比特流设计的解码器不需要太多改变就能够解码多层比特流。与avc和hevc的多层扩展设计相比,hls在牺牲一些灵活性的情况下得到显著简化。例如,irap au需要包含cvs中存在的每个层的图片。
107.3.5.基于子图片的视口依赖360
°
视频流
108.在360
°
视频(也称为全向视频)的流式传输中,在任何特定时刻,只有整个全向视频球体的子集(例如,当前视口)被呈现给用户,而用户可以在任何时候转动他/她的头来改变观看方向,从而改变当前视口。虽然期望在客户端处至少有一些未被当前视口覆盖的区域的较低质量表示可用,并准备好渲染给用户,以防用户突然将他/她的观看方向改变到球体上的任何地方,但是全向视频的高质量表示只需要用于当前正在渲染给用户的当前视口。以适当的粒度将整个全向视频的高质量表示拆分成子图片能够实现这种优化。使用vvc,这两种表示可以被编码为彼此独立的两层。
109.图11示出了典型的基于子图片的视口依赖360o视频传送方案,其中,全视频的较高分辨率表示由子图片组成,而全视频的较低分辨率表示不使用子图片,并且可以用比较高分辨率表示少的随机接入点进行编解码。客户端接收较低分辨率的完整视频,并且对于较高分辨率的视频,它只接收和解码覆盖当前视口的子图片。
110.3.6.参数集
111.avc、hevc和vvc指定了参数集。参数集的类型包括sps、pps、aps和vps。avc、hevc和
vvc都支持sps和pps。vps从hevc开始引入,并且包括在hevc和vvc两者中。aps没有包括在avc或hevc中,但是包括在最新的vvc草案文本中。
112.sps被设计成携带序列级标头信息,并且pps被设计成携带不经常改变的图片级标头信息。利用sps和pps,不经常改变的信息不需要为每个序列或图片重复,因此可以避免该信息的冗余信令。此外,sps和pps的使用实现了重要标头信息的带外传输,从而不仅避免了对冗余传输的需要,还提高了抗误码能力。
113.引入vps是为了携带对多层比特流中的所有层通用的序列级标头信息。
114.引入aps是为了携带这样的图片级或条带级信息,这些信息需要相当多的比特来编解码,可以由多个图片共享,并且在一个序列中可以有相当多的不同的变化。
115.以下是一些实施例中sps/pps/aps的语义:
116.为sps提供标识符,供其他语法元素参考。
117.无论nuh_layer_id值如何,sps nal单位共享sps_seq_parameter_set_id的同一值空间。
118.设spslayerid是特定sps nal单元的nuh_layer_id的值,并且vcllayerid是特定vcl nal单元的nuh_layer_id的值。特定的vcl nal单元不应参考特定的sps nal单元,除非spslayerid小于或等于vcllayerid,并且被解码的ols包含nuh_layer_id等于spslayerid的层和nuh_layer_id等于vcllayerid的层。
119.标识其他语法元素参考的pps。pps_pic_parameter_set_id的值应在0到63的范围内(含0和63)。
120.无论nuh_layer_id值如何,pps nal单位共享pps_pic_parameter_set_id的同一值空间。
121.设ppslayerid是特定pps nal单元的nuh_layer_id的值,并且vcllayerid是特定vcl nal单元的nuh_layer_id的值。特定的vcl nal单元不应参考特定的pps nal单元,除非ppslayerid小于或等于vcllayerid,并且被解码的ols包含nuh_layer_id等于ppslayerid的层和nuh_layer_id等于vcllayerid的层。
122.为aps提供标识符,供其他语法元素参考。
123.当aps_params_type等于alf_aps或scaling_aps时,adaptation_parameter_set_id的值应在0到7的范围内(含0和7)。
124.当aps_params_type等于lmcs_aps时,adaptation_parameter_set_id的值应在0到3的范围内(含0和3)。
125.设apslayerid是特定aps nal单元的nuh_layer_id的值,并且vcllayerid是特定vcl nal单元的nuh_layer_id的值。特定的vcl nal单元不应参考特定的aps nal单元,除非apslayerid小于或等于vcllayerid,并且被解码的ols包含nuh_layer_id等于apslayerid的层和nuh_layer_id等于vcllayerid的层。
126.3.7.子比特流提取过程
127.该过程的输入是比特流inbitstream、目标ols索引targetolsidx和目标最高temporalid值tidtarget。
128.该过程的输出是子比特流outbitstream。
129.对输入比特流的比特流一致性的要求是,满足以下所有条件的任何输出子比特流都应是一致性的比特流:
130.–
输出子比特流是本条款中指定的过程的输出,其中比特流、targetolsidx等于vps指定的ols列表的索引,tidtarget等于0到6范围内(含0和6)的任何值为输入。
131.–
输出子比特流包含至少一个vcl nal单元,其中nuh_layer_id等于layeridinols[targetolsidx]中的每个nuh_layer_id值。
[0132]

输出子比特流包含至少一个vcl nal单元,其中temporalid等于tidtarget。
[0133]
说明

一致性比特流包含其中temporalid等于0的一个或多个经编解码条带nal单元,但不一定包含其中nuh_layer_id等于0的经编解码条带nal单元。
[0134]
输出子比特流outbitstream如下推导:
[0135]

比特流outbitstream被设置为与比特流inbitstream相同。
[0136]

从outbitstream中删除其中temporalid大于tidtarget的所有nal单元。
[0137]

从outbitstream中删除其中nal_unit_type不等于vps_nut、dci_nut和eob_nut中任何一个且nuh_layer_id不包括在列表layeridinols[targetolsidx]中的所有nal单元。
[0138]

从outbitstream中删除以下所有条件为真的所有nal单元:
[0139]

nal_unit_type不等于idr_w_radl、idr_n_lp或cra_nut。
[0140]

对于0至numlayersinols[targetolsidx]-1范围内(含0和numlayersinols[targetolsidx]-1)的j的值,nuh_layer_id等于layeridinols[targetolsidx][j]。
[0141]

temporalid大于或等于numsublayersinlayerinols[targetolsidx][j]。
[0142]

从outbitstream中删除包含可缩放嵌套sei消息的所有sei nal单元,该消息的nesting_ols_flag等于1,并且在0到nesting_num_olss_minus1的范围内(含0和nesting_num_olss_minus1)没有i的值,因此nestingolsidx[i]等于targetolsidx。
[0143]

当layeridinols[targetolsidx]不包括比特流中所有nal单位的nuh_layer_id的所有值时,以下情况适用:
[0144]

从outbitstream中删除包含其中payloadtype等于0(缓冲期)或130(解码单元信息)的不可缩放嵌套的sei消息的所有sei nal单元。
[0145]

当general_same_pic_timing_in_all_ols_flag等于0时,从outbitstream中删除包含其中payloadtype等于1(图片定时)的不可缩放嵌套的sei消息的所有sei nal单元。
[0146]

当outbitstream包含sei nal单元(这些单元包含其中nesting_ols_flag等于1的可缩放嵌套sei消息,并且适用于outbitstream(nestingolsidx[i]等于targetolsidx))时,于以下情况适用:
[0147]

如果same_pic_timing_within_ols_flag等于0,则从可缩放嵌套sei消息中提取其中payloadtype等于0(缓冲期)、1(图片定时)或130(解码单元信息)的适当的不可缩放嵌套的sei消息,并且将这些sei消息包括在outbitstream中。
[0148]

否则(same_pic_timing_within_ols_flag等于1),从可缩放嵌套sei消息中提取其中payloadtype等于0(缓冲期)或130(解码单元信息)的适当的不可缩放嵌套的sei消息,并且将这些sei消息包括在outbitstream中。
[0149]
4.所公开的技术方案解决的技术问题
[0150]
最新vvc文本中的现有设计存在以下问题:
[0151]
1)当前的vvc设计支持360
°
视频的典型编解码方案,如图11所示。然而,尽管当前的vvc设计支持可缩放性,但如图12所示的改进的360
°
视频编解码方案不受支持。与图11所示的方法相比,唯一的区别是图12所示的方法应用了层间预测(ilp)。
[0152]
vvc草案中的以下两个地方不允许子像素和空间可缩放性的组合使用:
[0153]
a.vvc中的空间可缩放性设计依赖于rpr特征。然而,rpr和子图片的组合当前不被以下语义约束所允许:
[0154][0155]
因此,改进的编解码方案是不允许的,因为对于由较高层参考的sps,上述约束不允许将subpic_info_present_flag设置为1(以使用每个图片的多个子图片)并且同时将res_change_in_clvs_allowed_flag设置为1(以启用rpr,这是ilp空间可缩放性所需要的)。
[0156]
b.当前的vvc草案对子图片和可缩放性的组合有以下约束:
[0157][0158]
除了子图片与snr可缩放性的受限组合之外,上述约束基本上不允许子图片与ilp可缩放性的任何其他组合,其中,每个依赖关系树内的层必须具有相同的空间分辨率以及相同的子图片布局。
[0159]
2)当subpic_treated_as_pic_flag[i]等于1时,第i子图片的子图片边界将被视为运动补偿中的图片边界。在vvc草案文本中,这种处理是通过在与运动补偿相关的解码过程中应用某些裁剪操作(clipping operation)来实现的。然而,对于图12中所示的改进的编解码方案,由于较低层完全可用于解码器,而不仅仅是对应于第i子图片的区域,因此在这种情况下不需要应用这种裁剪,以避免不必要的编解码效率损失。
[0160]
3)在不考虑对图12中所示的改进的编解码方案的支持的情况下,以上对子图片和ilp可缩放性的组合的现有约束(该描述包括在问题1b的描述中)具有以下问题:
[0161]
a.当包含第第i子图片的层不是ols的输出层时,该约束也应适用。应以不考虑层是否为ols的输出层的方式指定整个约束。
[0162]
b.应包括对subpic_treated_as_pic_flag[i]的值要跨层对齐的要求,否则不可能跨层提取具有相同的索引的子图片序列。
[0163]
c.应排除对loop_filter_across_subpic_enabled_flag[i]的值要跨层对齐的要求,因为不管该标志的值如何,只要subpic_treated_as_pic_flag[i]等于1,子图片序列就可以被提取。loop_filter_across_subpic_enabled_flag[i]的值的设置应留给编码器来决定单个可提取子图片序列的质量与多组可提取子图片序列的质量之间的权衡,正如为什么这两个标志彼此独立地被信令通知一样。
[0164]
d.整个约束应仅在sps_num_subpics_minus1大于0时应用,以避免约束无意中覆盖每个子图片中一个子图片的所有情况。
[0165]
e.需要清楚地指定应用约束的时间范围,例如au集。
[0166]
f.应包括对要跨层对齐的缩放窗口参数scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset和scaling_win_bottom_offset中的每个的值的要求,以确保当每个图片有多个子图片时,不需要itrp的rpr。
[0167]
4)当前,当前图片的同位图片(collocated picture)可以是与当前图片在同一层中的长期参考图片(ltrp),并且也可以是层间参考图片(ilrp),例如与当前图片在不同层中的参考图片。然而,在任何一种情况下,都不会应用基于poc的运动向量缩放,因此由于允许这种情况,编解码性能预计会非常低。因此,最好不允许当前图片的同位图片是ltrp或ilrp。
[0168]
5)当前,允许clvs中具有相同空间分辨率的图片具有不同的缩放窗口。然而,这应是不允许的,否则,rpr的sps标志和rpr的通用约束标志将不能用来完全禁用rpr工具。
[0169]
6)当前,当进行子比特流提取时,不包括在当前/目标ols中的层的参数集(sps/pps/vps)也可以包括在提取的比特流中。然而,只要在vps中定义了包含layera和layerb两者的ols,即使layera和layerb不包含在被解码的当前ols中,layera中的条带也参考layerb中的参数集并不是设计意图。
[0170]
7)允许的aps数量取决于aps类型。然而,aps id的信令被固定为u(5),而不管允许的aps,这可能浪费不必要的比特。
[0171]
8)当前,缩放窗口偏移被信令通知为正值,因此仅支持正的垂直和水平偏移。然而,允许信令通知负的缩放窗口偏移是可能的,使得即使当参考图片不包括缩放窗口时,也可以推导负的垂直和水平偏移。并且允许缩放因子大于1也将有益于360
°
视频编解码中的子图片使用情况,例如,具有完整360
°
视频内容但具有较低分辨率的基本层,以及随后具有以较高分辨率编解码的特定视口的增强(类似于放大基本层中的图片)。但是,应修改当前规范中的几个地方以支持该功能。
[0172]
9)当前,当启用变换跳过残差编解码(tsrc)时,也可以使用符号数据隐藏(sdh)和依赖量化(dq),这违反了无损编解码的概念。tsrc是对变换块的所有扫描位置的量化索引进行编解码的模式。sdh是一种省略非零索引符号编解码的技术。dq是一种其中样本的量化
取决于先前样本的状态的模式。
[0173]
10)当同位图片的ctu大小与当前图片的大小相同时,由于只需要取出同位图片的同位ctu或同位ctu右边的ctu中的块的运动信息,所以可以顺序地进行内存加载。然而,由于层间预测,其中,同位图片可以是层间参考图片(即,在不同的层中),当同位图片的ctu大小不同于当前图片的ctu大小时(当使用层间预测时,这可能发生),这将导致内存负载方面的硬件实施问题。
[0174]
5.技术方案和实施例的列表
[0175]
为了解决上述问题和其他问题,公开了如下总结的方法。这些项目应被认为是解释通用概念的示例,而不应以狭隘的方式解释。此外,这些项目可以单独使用或以任何方式组合使用。
[0176]
1)为了解决问题1a,不是只有一个sps标志(例如,如当前vvc草案中的res_change_in_clvs_allowed_flag)用于控制rpr,而是可以为此目的指定和/或信令通知多个(诸如两个)sps标志。
[0177]
a.例如,第一标志(例如,ref_pic_resampling_enabled_flag)指定是否需要使用rpr来解码一个或多个图片,而第二标志(例如,res_change_in_clvs_allowed_flag)指定是否允许图片分辨率在clvs内改变。
[0178]
b.替代地,此外,仅当第一标志指定可能需要使用rpr来解码一个或多个图片时,才信令通知第二标志。此外,当没有信令通知时,第二标志的值被推断为指定图片分辨率不允许在clvs内改变的值。
[0179]
i.替代地,这两个标志彼此独立地发出信号。
[0180]
c.替代地,此外,添加一个以上的通用约束标志,使得第一标志和第二标志中的每个都有一个通用约束标志。
[0181]
d.此外,不允许res_change_in_clvs_allowed_flag等于1的每个图片的多个子图片的组合,但是允许ref_pic_resampling_enabled_flag等于1的每个图片的多个子图片的组合。
[0182]
e.此外,基于res_change_in_clvs_allowed_flag的值的scaling_window_explicit_signalling_flag的值的约束被改变为基于ref_pic_resampling_enabled_flag的值,如下:当等于0时,scaling_window_explicit_signalling_flag的值应等于0。
[0183]
f.替代地,可以在vps中而不是在sps中信令通知多个(诸如两个)标志中的一个或全部。
[0184]
i.在一个示例中,vps中的多个(诸如两个)标志中的一个或全部应用于由vps指定的所有层。
[0185]
ii.在另一示例中,vps中的多个(诸如两个)标志中的一个或全部可以各自具有在vps中信令通知的多个实例,并且每个实例应用于一个依赖关系树(dependency tree)中的所有层。
[0186]
g.在一个示例中,使用l比特u(1)将多个标志中的每个编解码为无符号整数。
[0187]
h.替代地,例如在sps/vps中,一个语法元素可以用非二进制值来信令通知,以指定解码过程中rpr的使用以及clvs内图片分辨率变化的允许。
[0188]
i.在一个示例中,当语法元素的值等于0时,指定不需要使用rpr来解码一个或多个图片。
[0189]
ii.在一个示例中,当语法元素的值等于1时,指定可能需要使用rpr来对一个或多个图片进行解码,同时不允许图片分辨率在clvs内改变。
[0190]
iii.在一个示例中,当语法元素的值等于2时,指定可能需要使用rpr来解码一个或多个图片,同时允许图片分辨率在clvs内改变。
[0191]
iv.替代地,此外,如何信令通知语法元素可以取决于是否允许层间预测。
[0192]
v.在一个示例中,语法元素用ue(v)编解码,其指示首先是左比特的无符号整数0阶exp-golomb-coded语法元素。
[0193]
vi.在另一示例中,使用n比特u(n)将语法元素编解码为无符号整数,例如,n等于2。
[0194]
2)替代地,或除了用于解决问题1a的项目1之外,仍然只有一个标志,例如res_change_in_clvs_allowed_flag,但是语义可以被改变,使得不管标志的值如何,层间参考图片的重采样都是允许的。
[0195]
a.在一个示例中,语义可以改变如下:res_change_in_clvs_allowed_flag等于1指定图片空间分辨率可以在参考sps的clvs内改变,率可以在参考sps的clvs内改变,率可以在参考sps的clvs内改变,res_change_in_clvs_allowed_flag等于0指定图片空间分辨率在参考sps的任何clvs内不改变,的任何clvs内不改变,
[0196]
b.通过这种改变,即使当res_change_in_clvs_allowed_flag等于0时,子图片/图片的解码仍然可以使用层间参考图片(ilrp)的rpr。
[0197]
3)为了解决问题1b,更新对子图片和ilp可缩放性的组合的约束,使得该约束仅对当前层和依赖于当前层的所有较高层施加跨层对齐限制,而不对不依赖于当前层的较高层或较低层施加跨层对齐限制。
[0198]
a.替代地,更新约束以仅对当前层和高于当前层的所有层施加跨层对齐限制。
[0199]
b.替代地,更新约束以仅对当前层和包含当前层的每个ols中的所有较高层施加跨层对齐限制。
[0200]
c.替代地,更新约束以仅对当前层和作为当前层的参考层的所有较低层施加跨层对齐限制。
[0201]
d.替代地,更新约束以仅对当前层和低于当前层的所有层施加跨层对齐限制。
[0202]
e.替代地,更新约束以仅对当前层和包含当前层的每个ols中的所有较低层施加跨层对齐限制。
[0203]
f.替代地,更新约束以仅对低于最高层的所有层施加跨层对齐限制。
[0204]
g.替代地,更新约束以仅对高于最低层的所有层施加跨层对齐限制。
[0205]
4)为了解决问题2,在涉及用于在运动补偿/运动预测中将子图片边界作为图片边界处理的帧间预测相关过程中的裁剪操作的一个或多个解码过程中(例如,条款8.5.2.11时间亮度运动向量预测的推导过程、条款8.5.3.2.2亮度样本双线性插值过程、条款
8.5.5.3基于子块的时间merge候选的推导过程、条款8.5.5.4基于子块的时间merge基本运动数据的推导过程、条款8.5.5.6构建的仿射控制点运动向量merge候选的推导过程、条款8.5.6.3.2亮度样本插值滤波过程、条款8.5.6.3.3亮度整数样本获取过程和条款8.5.6.3.4色度样本插值过程),应用以下改变:
[0206]
a.在一个示例中,改变过程,使得如果subpic_treated_as_pic_flag[currsubpicidx]等于1并且参考图片refpiclx的sps_num_subpics_minus1大于0,则应用裁剪操作,否则不应用。
[0207]
i.替代地,当图片的同位图片不允许是ilrp时,如以上所描述,仅改变其中参考图片refpiclx不是同位图片的过程,而不改变其中参考图片refpiclx是同位图片的过程。
[0208]
b.在一个示例中,改变过程,使得如果subpic_treated_as_pic_flag[currsubpicidx]等于1并且当前条带的nal_unit_type的值不等于idr_w_radl、idr_n_lp或cra_nut,则应用裁剪操作,否则不应用。同时,ilp仅被允许用于irap图片的编解码。
[0209]
c.在一个示例中,不改变这些解码过程,例如,如果subpic_treated_as_pic_flag[currsubpicidx]等于1,则应用裁剪操作,否则不应用,与当前vvc文本中相同。
[0210]
5)为了解决问题3a,更新对子图和ilp可缩放性的组合的约束,使得该约束对每个依赖关系树中的所有层施加跨层对齐限制。依赖关系树包含特定层、将该特定层作为参考层的所有层以及该特定层的所有参考层,而与这些层中的任何一个层是否是ols的输出层无关。
[0211]
6)为了解决问题3b,更新对子图片和ilp可缩放性的组合的约束,使得该约束对subpic_treated_as_pic_flag[i]的值施加跨层对齐限制。
[0212]
7)为了解决问题3c,更新对子图片和ilp可缩放性的组合的约束,使得该约束不对loop_filter_across_subpic_enabled_flag[i]的值施加跨层对齐限制。
[0213]
8)为了解决问题3d,更新对子图片和ilp可缩放性的组合的约束,使得当sps_num_subpics_minus1等于0时不应用约束。
[0214]
a.替代地,更新约束,使得当subpic_info_present_flag等于0时,不应用约束。
[0215]
9)为了解决问题3e,更新对子图片和ilp可缩放性的组合的约束,使得该约束对某些目标au集中的图片施加跨层对齐限制。
[0216]
a.在一个示例中,对于参考sps的当前层的每个clvs,设目标au集targetauset是从包含按照解码顺序的clvs的第一图片的au开始到包含按照解码顺序的clvs的最后图片的au的所有au(含第一图片和最后图片)。
[0217]
10)为了解决问题3f,更新对子图片和ilp可缩放性的组合的约束,使得该约束对缩放窗口参数scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset和scaling_win_bottom_offset中的每个的值施加跨层对齐限制。
[0218]
11)为了解决问题4,约束当前图片的同位图片不应是长期参考图片(ltrp)。
[0219]
a.替代地,约束当前图片的同位图片不应是层间参考图片(ilrp)。
[0220]
b.替代地,约束当前图片的同位图片不应是ltrp或ilrp。
[0221]
c.替代地,相反,如果当前图片的同位图片是ltrp或ilrp,则不应用缩放来获得指向同位图片的运动向量。
[0222]
12)为了解决问题5,约束scaling_win_left_offset、scaling_win_right_
offset、scaling_win_top_offset和scaling_win_bottom_offset中的每个的值对于分别具有相同的pic_width_in_luma_samples和pic_height_in_luma_samples值的同一clvs内的任何两个图片应是相同的。
[0223]
a.替代地,将上面的“在同一clvs内”替换为“在同一cvs内”。
[0224]
b.替代地,约束指定如下:
[0225]
设ppsa和ppsb是参考同一sps的任何两个pps。比特流一致性的要求是,当ppsa和ppsb分别具有相同的pic_width_in_luma_samples和pic_height_in_luma_samples值时,ppsa和ppsb应分别具有相同的scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset和scaling_win_bottom_offset值。
[0226]
c.替代地,约束指定如下:
[0227]
对于同一cvs内的任何两个图片,scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset和scaling_win_bottom_offset的值应相同,并满足以下所有条件:
[0228]
i.这两个图片分别具有相同的pic_width_in_luma_samples和pic_height_in_luma_samples值。
[0229]
ii.这两个图片属于同一层或两层,其中一层是另一层的参考层。
[0230]
13)提出了当图片分辨率/缩放窗口对于同一接入单元中的当前图片和其他图片不同时,仅当当前图片是irap图片时才允许ilp。
[0231]
14)在本文档中,图片分辨率可以指图片的宽度和/或高度,可以指图片的缩放窗口和/或一致性窗口的宽度和/或高度和/或左上角位置。
[0232]
15)在本文档中,不使用rpr可能意味着当前图片的任何参考图片的分辨率与当前图片的分辨率相同。
[0233]
16)关于解决问题6的比特流提取,提出了如下一个或多个方案:
[0234]
a.在一个示例中,为了推导输出子比特流,删除具有不包括在列表layeridinols[targetolsidx]中的nuh_layer_id的参数集(例如,sps/pps/apsnal单位)。
[0235]
b.例如,输出子比特流outbitstream的推导可以取决于以下中的一个或多个:
[0236]
i.从outbitstream中删除nal_unit_type等于sps_nut并且nuh_layer_id不包括在列表layeridinols[targetolsidx]中的所有nal单元。
[0237]
ii.从outbitstream中删除nal_unit_type等于pps_nut并且nuh_layer_id不包括列表在layeridinols[targetolsidx]中的所有nal单元。
[0238]
iii.从outbitstream中删除nal_unit_type等于aps_nut并且nuh_layer_id不包括在列表layeridinols[targetolsidx]中的所有nal单元。
[0239]
iv.从outbitstream中删除nal_unit_type等于sps_nut、pps_nut和aps_nut中任何一个并且以下任何一个条件为真的所有nal单元:
[0240]
1.对于0到numlayersinols[targetolsidx]-1的范围内(含0和numlayersinols[targetolsidx]-1)的至少一个j的值,nuh_layer_id大于layeridinols[targetolsidx][j]。
[0241]
2.nuh_layer_id不包括在列表layeridinols[targetolsidx]中。
[0242]
v.当nal_unit_type等于sps_nut、pps_nut和aps_nut中的任何一个的第一nal单
元在提取期间被删除时,参考第一nal单元的第二nal单元也应被删除。
[0243]
c.例如,输出子比特流outbitstream的推导可以取决于以下中的一个或多个:
[0244]
i.从outbitstream中删除nal_unit_type等于vps_nut、dci_nut和eob_nut中任何一个且nuh_layer_id不包括在列表layeridinols[targetolsidx]中的所有nal单元。
[0245]
17)信令通知aps id(例如,)所需的比特取决于aps类型。
[0246]
a.信令通知aps id(例如,)所需的比特从u(3)修改为u(v)。
[0247]
i.在一个示例中,对于自适应环路滤波器(alf)aps,aps id可以用u(a)来编解码。
[0248]
ii.在一个示例中,对于具有色度缩放(lmcs)的亮度映射,apsid可以用u(b)来编解码。
[0249]
iii.在一个示例中,对于缩放列表aps,aps id可以用u(c)来编解码。
[0250]
iv.在一个示例中,a/b/c取决于对应类型的aps的最大允许数量。
[0251]
1.在一个示例中,a》b并且a》c。
[0252]
2.在一个示例中,a》=b并且a》c。
[0253]
3.在一个示例中,c》b。
[0254]
4.在一个示例中,b=2。
[0255]
5.在一个示例中,c=3。
[0256]
6.在一个示例中,a=3或大于3(例如,4、5、6、7、8、9)。
[0257]
18)aps id(例如,)和aps类型(例如,vvc文本中的)的编解码顺序被交换,使得aps类型出现在比特流中的aps id之前。
[0258]
19)aps中允许的滤波器总数可以根据经编解码信息来限制,诸如图片/条带类型、编解码结构(双树或单树)、层信息。
[0259]
a.aps中允许的滤波器总数可以包括具有pu的所有aps nal单元中alf aps中的亮度/色度alf和cc-alf的总数。
[0260]
b.aps中允许的滤波器的总数可以包括用于亮度分量(或亮度alf滤波器)的自适应环路滤波器类别的总数、用于色度分量(色度alf滤波器)的替代滤波器的总数和/或具有pu的所有aps nal单元中的交叉分量滤波器的总数。
[0261]
20)关于解决第八个问题的大于1的缩放因子,提出了如下一个或多个方案:
[0262]
a.在一个示例中,应用于图片大小以用于缩放比率计算的缩放窗口偏移可以是负值。
[0263]
i.例如,缩放窗口偏移的语法元素(例如,i.例如,缩放窗口偏移的语法元素(例如,i.例如,缩放窗口偏移的语法元素(例如,)可以用有符号二进制化来编解码,诸如ae(v)、f(n)、i(n)、se(v)等。
[0264]
b.在一个示例中,如何基于图片大小(例如,图片宽度/高度)来约束缩放窗口偏移
的值可以取决于缩放窗口偏移的值是否为负。
[0265]
i.例如,可以根据缩放窗口偏移是否为负来不同地指定偏移与图片宽度/高度之间的约束。
[0266]
1.例如,可以根据左右偏移是否都为负,和/或左右偏移中的一个是否为负/正,和/或左右偏移是否都为正来指定一个或多个约束。
[0267]
2.例如,可以根据顶部和底部偏移是否都为负,和/或顶部和底部偏移中的一个是否为负/正,和/或顶部和底部偏移是否都为正来指定一个或多个约束。
[0268]
ii.例如,只有当缩放窗口偏移的值为正值或0时,缩放窗口偏移的值才根据图片尺寸受到限制。
[0269]
1.例如,当scaling_win_left_offset和scaling_win_right_offset不为负(或为正)时,subwidthc*(scaling_win_left_offset+scaling_win_right_offset)的值应小于pic_width_in_luma_samples。
[0270]
2.例如,当scaling_win_top_offset和scaling_win_bottom_offset不为负(或为正)时,subheightc*(scaling_win_top_offset+scaling_win_bottom_offset)的值应小于pic_height_in_luma_samples。
[0271]
iii.例如,绝对偏移可以用于指定约束。
[0272]
1.例如,subwidthc*(abs(scaling_win_left_offset)+abs(scaling_win_right_offset))的值应小于x1*pic_width_in_luma_samples,其中,x1是正整数,诸如x1》=1。
[0273]
2.例如,subheightc*(abs(scaling_win_top_offset)+abs(scaling_win_bottom_offset))的值应小于x2*pic_height_in_luma_samples,其中,在x2是正整数,诸如x2》=1。
[0274]
iv.替代地,当任何缩放窗口偏移值为负时,不将偏移值约束在图片宽度/高度上(例如,将负偏移视为0值偏移)。
[0275]
1.例如,subwidthc*(max(0,scaling_win_left_offset)+max(0,scaling_win_right_offset))的值应小于pic_width_in_luma_samples。
[0276]
2.例如,subheightc*(max(0,scaling_win_top_offset)+max(0,scaling_win_bottom_offset))的值应小于pic_height_in_luma_samples。
[0277]
c.在一个示例中,如何在参考图片输出宽度/高度、当前图片输出宽度/高度、参考图片宽度/高度、当前图片宽度/高度、最大图片宽度/高度(例如,refpicoutputwidthl、refpicoutputheightl、picoutputwidthl、picoutputheightl、refpicwidthinlumasamples、refpicheightinlumasamples、pic_width/height_in_luma_samples、pic_width/height_max_in_luma_samples)之间进行比特流一致性/约束可以取决于缩放窗口偏移的值是否为负。
[0278]
d.在一个示例中,如何推导输出图片的宽度/高度(例如,picoutputwidthl、picoutputheightl)可以取决于缩放窗口偏移的值是否为负。
[0279]
i.例如,当参考图片的缩放偏移的值为负时,可以将其视为0值偏移,以用于计算参考图片的输出图片的宽度/高度。
[0280]
ii.例如,变量picoutputwidthl可以如下推导:picoutputwidthl=pic_width_in_luma_samples-subwidthc*(max(0,scaling_win_right_offset)+max(0,scaling_win_
left_offset))。
[0281]
iii.例如,变量picoutputheightl可以如下推导:picoutputheightl=pic_height_in_luma_samples-subwidthc*(max(0,scaling_win_bottom_offset)+max(0,scaling_win_top_offset))。
[0282]
e.在一个示例中,如何执行分数样本插值可以取决于缩放窗口偏移的值是否为负。
[0283]
i.例如,当参考图片的缩放窗口偏移的值为负时,可以将其视为0值偏移,以用于运动补偿。
[0284]
1.例如,变量frefleftoffset可以被设置为等于((subwidthc*max(0,scaling_win_left_offset))《《10),其中,scaling_win_left_offset是参考图片的scaling_win_left_offset。
[0285]
2.例如,变量freftopoffset可以被设置为等于((subwidthc*max(0,scaling_win_top_offset))《《10),其中,scaling_win_top_offset是参考图片的scaling_win_top_offset。
[0286]
ii.例如,当当前图片的缩放窗口偏移的值为负时,可以将其视为0值偏移,以用于分数样本插值。
[0287]
1.例如,设(refxsb
l
,refysb
l
)是以1/16样本单位给出的运动向量(refmvlx[0],refmvlx[1])指向的亮度位置。变量refxsb
l
和refysb
l
可以如下推导:
[0288]
a.refxsb
l
=(((xsb-(subwidthc*max(0,scaling_win_left_offset)))《《4)+refmvlx[0])*scalingratio[0]
[0289]
b.refysb
l
=(((ysb-(subwidthc*max(0,scaling_win_top_offset)))《《4)+refmvlx[1])*scalingratio[1]
[0290]
2.例如,设(refxsbc,refysbc)是以1/32样本单位给出的运动向量(refmvlx[0],refmvlx[1])所指向的色度位置。变量refxsbc和refysbc如下推导:
[0291]
a.refxsbc=(((xsb-(subwidthc*max(0,scaling_win_left_offset)))/subwidthc《《5)+refmvlx[0])*scalingratio[0]+addx
[0292]
b.refysbc=(((ysb-(subwidthc*max(0,scaling_win_top_offset)))/subheightc《《5)+refmvlx[1])*scalingratio[1]+addy
[0293]
21)关于解决第九个问题的tsrc/dq/shd的信令,提出了如下一个或多个方案:
[0294]
a.在一个示例中,在视频单元级别(诸如在序列/图片组/图片/条带级别)中,符号数据隐藏(sdh)和依赖量化(dq)启用/禁用标志的信令可以取决于是否启用了变换跳过残差编解码(tsrc)。
[0295]
i.例如,tsrc是否被启用(例如,sps/pps/ph/slice_ts_residual_coding_disabled_flag)可以在同一级别的sdh/dq的启用/禁用标志(例如,命名为sps/pps/ph/slice_dep_quant_enabled_flag,sps/pps/ph/slice_sign_data_hiding_enabled_flag)之前被信令通知。
[0296]
ii.例如,sps/pps/ph/sh级别中sdh/dq启用/禁用标志的信令(例如,命名为sps/pps/ph/slice_dep_quant_enabled_flag,sps/pps/ph/slice_sign_data_hiding_enabled_flag)可以以tsrc是否在相同的级别或更高级别被禁用为条件(例如,sps/pps/
ph/slice_ts_residual_coding_disabled_flag是否等于1)。
[0297]
iii.例如,sh中的语法信令(在jvet-q2001-ve之上)可以如下改变:
[0298][0299][0300]
iv.附加地,当不存在时,推断sps/pps/ph/slice_dep_quant_enabled_flag等于某个值(诸如0)。
[0301]
v.附加地,当不存在时,推断sps/pps/ph/slice_sign_data_hiding_enabled_flag等于某个值(诸如0)。
[0302]
b.在一个示例中,tsrc是否被启用可以在视频单元级别(诸如在序列/图片组/图片/条带级别)信令通知。
[0303]
i.例如,可以在sps/pps/ph/sh中信令通知名为的标志。
[0304]
ii.替代地,tsrc是否被禁用可以在视频单元级别(诸如在序列/图片组/图片/条带级别)信令通知。
[0305]
iii.例如,可以在sps/pps/ph/sh中信令通知名为的标志。
[0306]
c.在一个示例中,基于在相同的级别或更高级别是否启用了变换跳过和dq以及sdh,有条件地信令通知tsrc是否被启用。
[0307]
i.例如,基于(sps_transform_skip_enabled_flag=1&&!slice_dep_quant_enabled_flag&&!slice_sign_data_hiding_enabled_flag),被有条件地信令通知。
[0308]
ii.例如,基于(sps_transform_skip_enabled_flag=1&&!ph_dep_quant_enabled_flag&&!ph_sign_data_hiding_enabled_flag),被有条件地信令通知。
[0309]
iii.例如,基于(sps_transform_skip_enabled_flag=1&&!pps_dep_quant_enabled_flag&&!pps_sign_data_hiding_enabled_flag),
被有条件地信令通知。
[0310]
iv.在上面的示例中,sps_transform_skip_enabled_flag可以由spstsrc启用标志/sps tsrc禁用标志替换。
[0311]
v.在上面的示例中,sps_transform_skip_enabled_flag可以由ppsts启用标志/pps tsrc启用标志/pps tsrc禁用标志替换。
[0312]
d.在一个示例中,在块中应用sdh还是dq可以取决于是否使用ts和/或tsrs。
[0313]
e.在一个示例中,当在块中使用ts和/或tsrs时,不应用sdh和/或dq。ii。在一个示例中,当在块中使用ts和/或tsrs时,指示是否使用了sdh和/或dq的se不被信令通知,并且被推断为不被使用。
[0314]
f.在一个示例中,如果在块中使用ts和/或tsrs,则约束sdh和/或dq不能被使用。
[0315]
22)可能要求缩放窗口偏移(诸如scaling_win_right_offset、scaling_win_left_offset、scaling_win_top_offset、scaling_win_bottom_offset)应大于(或不小于)整数x,其中,x为负。
[0316]
a.在一个示例中,x可以取决于图片尺寸。
[0317]
23)变量picoutputwidthl和picoutputheightl如下推导:
[0318]
picoutputwidthl=pic_width_in_luma_samples-subwidthc*(scaling_win_right_offset+scaling_win_left_offset)
[0319]
picoutputheightl=pic_height_in_luma_samples-subwidthc*(scaling_win_bottom_offset+scaling_win_top_offset)。
[0320]
然后可以应用以下一个或多个限制:
[0321]
a.((ax1*picoutputwidthl+bx1)》》cx1)《=((dx1*x1+ex1)》》fx1),其中,x1为非负整数。
[0322]
b.((ax0*picoutputwidthl+bx0)》》cx0)》=((dx0*x1+ex0)》》fx0),其中,x0为非负整数。
[0323]
c.((ay1*picoutputheightl+by1)》》cy1)《=(dy1*y1+ey1)》》fy1,其中,y1为非负整数。
[0324]
d.((ay0*picoutputheightl+by0)》》cy0)《=(dy0*y0+ey0)》》fy0,其中,y0为非负整数。
[0325]
e.((axy1*picoutputwidthl*picoutputheightl+bxy1)》》cxy1)《=(dxy1*xy1+exy1)》》fxy1,其中,xy1为非负整数。
[0326]
f.((axy0*picoutputwidthl*picoutputheightl+bxy0)》》cxy0)《=(dxy0*y0+exy0)》》fxy0,其中,xy0为非负整数。
[0327]
g.在上述限制中,ax1、bx1
……
ex1、fx1、ax0、bx0
……
ex0、fx0、ay1、by1
……
ey1、fy1、ay0、by0
……
ey0、fy0、axy1、bxy1
……
exy1、fxy1、axy0、bxy0
……
exy0、fxy0都为整数。在一个示例中,ax1=ax0=ay1=ay0=axy1=axy0=1,bx1=bx0=by1=by0=bxy1=bxy0=0,cx1=cx0=cy1=cy0=cxy1=cxy0=0,dx1=dx0=dy1=dy0=dxy1=dxy0=1,ex1=ex0=ey1=ey0=exy1=exy0=0,fx1=fx0=fy1=fy0=fxy1=fxy0=0。
[0328]
h.在上述限制中,x1和/或x0可以取决于pic_width_in_luma_samples。
[0329]
i.在一个示例中,x1等于pic_width_in_luma_samples
[0330]
ii.在一个示例中,picoutputwidthl《=pic_width_in_luma_samples*k,其中,k为正整数,诸如2、3、4、5、6、7、8。
[0331]
i.在上述限制中,y1和/或y0可以取决于pic_height_in_luma_samples。
[0332]
i.在一个示例中,y1等于pic_height_in_luma_samples。
[0333]
ii.在一个示例中,picoutputheightl《=pic_height_in_luma_samples*k,其中,k为正整数,诸如2、3、4、5、6、7、8。
[0334]
24)在一个示例中,five_minus_max_num_subblock_merge_cand的最大允许值可以等于x,其中,x小于5。例如,x=4。
[0335]
a.例如,five_minus_max_num_subblock_merge_cand指定5减去sps中支持的基于子块的merge运动向量预测候选的最大数量。five_minus_max_num_subblock_merge_cand的值应在0到4的范围内(含0和4)。当不存在时,five_minus_max_num_subblock_merge_cand的值被推断为等于5。
[0336]
25)如何定义five_minus_max_num_subblock_merge_cand的有效范围可以取决于five_minus_max_num_subblock_merge是否存在。
[0337]
a.例如,只有当five_minus_max_num_subblock_merge存在时,才定义five_minus_max_num_subblock_merge的有效范围。
[0338]
b.例如,five_minus_max_num_subblock_merge的不同的有效范围取决于five_minus_max_num_subblock_merge是否存在来定义。
[0339]
c.例如,指定5减去sps中支持的基于子块的merge运动向量预测候选的最大数量。当five_minus_max_num_subblock_merge_cand存在时,five_minus_max_num_subblock_merge_cand的值应在0到5

sps_sbtmvp_enabled_flag的范围内(含0和5

sps_sbtmvp_enabled_flag)。当不存在时,five_minus_max_num_subblock_merge_cand的值被推断为等于5。
[0340]
d.例如,指定5减去sps中支持的基于子块的merge运动向量预测候选的最大数量。当不存在时,five_minus_max_num_subblock_merge_cand的值被推断为等于5。否则(ive_minus_max_num_subblock_merge_cand存在),five_minus_max_num_subblock_merge_cand的值应在0到5的范围内(含0和5)。例如,指定5减去sps中支持的基于子块的merge运动向量预测候选的最大数量。当five_minus_max_num_subblock_merge_cand存在时,five_minus_max_num_subblock_merge_cand的值应在0到5

sps_affine_enabled_flag的范围内(含0和5

sps_affine_enabled_flag)。当不存在时,five_minus_max_num_subblock_merge_cand的值被推断为等于5。
[0341]
e.例如,指定5减去sps中支持的基于子块的merge运动向量预测候选的最大数量。当不存在时,five_minus_max_num_subblock_merge_cand的值被推断为等于5。否则(five_minus_max_num_subblock_merge_cand存在),five_minus_max_num_subblock_merge_cand的值应在0到5的范围内(含0和5)。
[0342]
f.例如,指定5减去sps中支持的基于子块的merge运动向量预测候选的最大数量。当five_minus_max_num_subblock_
merge_cand存在时,five_minus_max_num_subblock_merge_cand的值应在0到4的范围内(含0和4)。当不存在时,five_minus_max_num_subblock_merge_cand的值被推断为等于5。
[0343]
g.例如,指定5减去sps中支持的基于子块的merge运动向量预测候选的最大数量。当不存在时,five_minus_max_num_subblock_merge_cand的值被推断为等于5。否则(five_minus_max_num_subblock_merge_cand存在),five_minus_max_num_subblock_merge_cand的值应在0到4的范围内(含0和4)。
[0344]
26)关于解决第十个问题的同位图片的ctu大小,提出了如下一个或多个方案:
[0345]
a.在一个示例中,当同位参考图片的ctu/ctb大小大于(或小于或不等于)当前图片的ctu/ctb大小时,要求任何使用来自不同图片(例如,tmvp和/或sbtmvp)的运动信息的编解码工具对于小于当前图片的当前条带/片/片组/子图片/图片/视频单元是不允许/禁止的。
[0346]
b.在一个示例中,当层间参考图片的ctu/ctb大小大于(或小于或不等于)当前图片的ctu/ctb大小时,要求对当前条带/片/条带组/子图片/图片/视频单元禁止/禁用使用来自不同图片(例如,tmvp和/或sbtmvp)的运动信息的任何编解码工具。
[0347]
c.在上述示例中,当使用来自不同图片的运动信息的任何编解码工具被禁止/禁用时,tmvp/sbtmvp的使用指示需要等于0。
[0348]
i.在一个示例中,应等于0。
[0349]
d.在一个示例中,是否信令通知或如何信令通知启用使用来自不同的图片(例如,tmvp和/或sbtmvp)的运动信息的编解码工具可以取决于当前视频单元(例如,条带/图片)的参考图片列表中的参考图片的ctu大小。
[0350]
i.在一个示例中,如果所有参考图片具有与当前视频单元不同的ctu大小(例如,更小或更大),则一致性比特流将满足时间运动向量预测的使用被禁用。
[0351]
ii.在一个示例中,如果所有参考图片具有与当前视频单元不同的ctu大小(例如,更小或更大),则不信令通知时间运动向量预测(例如,)的使用的指示。
[0352]
1.替代地,此外,推断其被禁用。
[0353]
2.替代地,此外,不再信令通知同位参考图片的指示(例如,2.替代地,此外,不再信令通知同位参考图片的指示(例如,)。
[0354]
e.在一个示例中,ctu/ctb大小大于(或小于或不等于)当前图片的ctu/ctb大小的任何参考图片不被允许作为当前条带/片/条带组/子图片/图片/视频单元的同位图片。
[0355]
f.在一个示例中,ctu/ctb大小大于(或小于或不等于)当前图片的ctu/ctb大小的任何图片不被允许标记为当前条带/片/条带组/子图片/图片/视频单元的同位图片。
[0356]
g.在一个示例中,对于要用于当前图片/条带/片/砖块/子图片/比图片小的视频单元的同位图片,要求同位图片的ctu/ctb大小应等于当前图片/条带/片/砖块/子图片/比图片小的视频单元的ctu/ctb的大小。
[0357]
i.在一个示例中,参考图片由和/或
标识。
[0358]
ii.在一个示例中,参考图片由和/或标识。
[0359]
h.在一个示例中,上述同位图片指示用于时间运动向量预测的同位图片。
[0360]
i.在一个示例中,上述ctu/ctb大小可以由指定ctu大小的sps语法元素(例如,)标识。
[0361]
j.上述要求可以表示为比特流约束/一致性。
[0362]
6.实施例
[0363]
以下是上文第5节中总结的本发明的一些方面的一些示例实施例,其可应用于vvc规范。增加或添加的大部分相关部分用黑体斜体下划线标出,一些删除的部分用[[]]标出。
[0364]
6.1.第一实施例
[0365]
该实施例用于项目1、1.a、1.b、1.c、1.d、3、4.a.i、5、6、7、8、9、9.a、10、11和12b。
[0366]
7.3.2.3序列参数集语法
[0367][0368][0369]
7.4.3.3序列参数集rbsp语义
[0370]
...
[0371][0372]
等于1指定图片空间分辨率可以在参考sps的clvs内改变。res_change_in_clvs_allowed_flag等于0指定图片空间分辨率在参考sps
的任何clvs内不改变。的任何clvs内不改变。
[0373]
...
[0374]
等于1的[i]指定clvs中每个经编解码图片的第i子图片被视为排除环路滤波操作的解码过程中的图片。等于0的subpic_treated_as_pic_flag[i]指定clvs中每个经编解码图片的第i子图片不被视为排除环路滤波操作的解码过程中的图片。当不存在时,subpic_treated_as_pic_flag[i]的值被推断为等于sps_independent_subpics_flag。
[0375]
当subpic_treated_as_pic_flag[i]等于1时,等于1时,等于1时,以下所有条件都为真,这是比特流一致性的要求:
[0376]

所有图片应具有相同的pic_width_in_luma_samples值和相同的pic_height_in_luma_samples。
[0377][0378]

参考的所有sps应具有相同的sps_num_subpics_minus1值,并且对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,应分别具有subpic_ctu_top_left_x[j]、subpic_ctu_top_left_y[j]、subpic_width_minus1[j]、subpic_height_minus1[j]和[[loop_filter_across_subpic_enabled_flag[j],]]的相同的值。
[0379]

对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,个j的值,所有图片应具有subpicidval[j]的相同的值。
[0380]
...
[0381]
7.4.3.4图片参数集rbsp语义
[0382]
...
[0383]
等于1指定缩放窗口偏移参数存在于pps中。scaling_window_explicit_signalling_flag等于0指定缩放窗口偏移参数不存在于pps中。当[[res_change_in_clvs_allowed_flag]]等于0时,scaling_window_explicit_signalling_flag的值应等于0。
[0384]
和指定应用于图片大小的偏移,以用于缩放比率计算。当不存在时,scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset和scaling_win_bottom_offset的值被推断为分别等于pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset和pps_conf_win_bottom_offset。
[0385]
subwidthc*(scaling_win_left_offset+scaling_win_right_offset)的值应小于pic_width_in_luma_samples,并且subheightc*(scaling_win_top_offset+scaling_win_bottom_offset)的值应小于pic_height_in_luma_samples。
[0386][0387]
变量picoutputwidthl和picoutputheightl如下推导:
[0388]
picoutputwidthl=pic_width_in_luma_samples-subwidthc*(scaling_win_right_offset+scaling_win_left_offset)(78)
[0389]
picoutputheightl=pic_height_in_luma_samples-subwidthc*(scaling_win_bottom_offset+scaling_win_top_offset)(79)
[0390]
设refpicoutputwidthl和refpicoutputheightl分别是参考该pps的当前图片的参考图片的picoutputwidthl和picoutputheightl。满足以下所有条件是比特流一致性的要求:
[0391]

picoutputwidthl*2应大于或等于refpicwidthinlumasamples。
[0392]

picoutputheightl*2应大于或等于refpicheightinlumasamples。
[0393]

picoutputwidthl应小于或等于refpicwidthinlumasamples*8。
[0394]

picoutputheightl应小于或等于refpicheightinlumasamples*8。
[0395]

picoutputwidthl*pic_width_max_in_luma_samples应大于或等于refpicoutputwidthl*(pic_width_in_luma_samples-max(8,mincbsizey))。

picoutputheightl*pic_height_max_in_luma_samples应大于或等于refpicoutputheightl*(pic_height_in_luma_samples-max(8,mincbsizey))。
[0396]
...
[0397]
7.3.3.2通用约束信息语法
[0398]
[0399][0400]
7.4.4.2通用约束信息语义
[0401]
...
[0402][0403]
等于1指定res_change_in_clvs_allowed_flag应等于0。no_res_change_in_clvs_constraint_flag等于0不施加这样的约束。
[0404]
...
[0405]
7.4.8.1通用条带标头语义
[0406]
...
[0407]
等于1的指定用于时间运动向量预测的同位图片是从参考图片列表0推导的。等于0的slice_collocated_from_l0_flag指定用于时间运动向量预测的同位图片是从参考图片列表1中推导的。
[0408]
当slice_type等于b或p,ph_temporal_mvp_enabled_flag等于1,并且slice_collocated_from_l0_flag不存在时,以下情况适用:
[0409]

如果rpl_info_in_ph_flag等于1,则推断slice_collocated_from_l0_flag等于ph_collocated_from_l0_flag。
[0410]

否则(rpl_info_in_ph_flag等于0,并且slice_type等于p),slice_collocated_from_l0_flag的值被推断为等于1。
[0411]
指定用于时间运动向量预测的同位图片的参考索引。
[0412]
当slice_type等于p当slice_type等于b并且slice_collocated_from_l0_flag等于1时,slice_collocated_ref_idx参考参考图片列表0中的条目,并且slice_collocated_ref_idx的值应在0到numrefidxactive[0]-1的范围内(含0和numrefidxactive[0]-1)。
[0413]
当slice_type等于b并且slice_collocated_from_l0_flag等于0时,slice_collocated_ref_idx参考参考图片列表1中的条目,并且slice_collocated_ref_idx的值应在0到numrefidxactive[1]-1的范围内(含0和numrefidxactive[1]-1)。
[0414]
当slice_collocated_ref_idx不存在时,以下情况适用:
[0415]

如果rpl_info_in_ph_flag等于1,则推断slice_collocated_ref_idx的值等于ph_collocated_ref_idx。
[0416]

否则(rpl_info_in_ph_flag等于0),slice_collocated_ref_idx的值被推断为等于0。
[0417]
比特流一致性的一个要求是,由slice_collocated_ref_idx参考的图片对于经编解码图片的所有条带应相同,
[0418]
比特流一致性的一个要求是,由slice_collocated_ref_idx参考的参考图片的pic_width_in_luma_samples和pic_height_in_luma_samples的值应分别等于当前图片的pic_width_in_luma_samples和pic_height_in_luma_samples的值,并且rprconstraintsactive[slice_collocated_from_l0_flag?0:1][slice_collocated_ref_idx]应等于0。
[0419]
...
[0420]
8.5.3.2.2亮度样本双线性插值过程
[0421]
...
[0422]
对于i=0..1,以全样本单位(xinti,yinti)指示的亮度位置推导如下:
[0423]

如果subpic_treated_as_pic_flag[currsubpicidx]等于1,如果subpic_treated_as_pic_flag[currsubpicidx]等于1,则以下情况适用:
[0424]
xinti=clip3(subpicleftboundarypos,subpicrightboundarypos,xint
l
+i)(640)
[0425]
yinti=clip3(subpictopboundarypos,subpicbotboundarypos,yint
l
+i)(641)
[0426]

否则(subpic_treated_as_pic_flag[currsubpicidx]等于0否则(subpic_treated_as_pic_flag[currsubpicidx]等于0以下情况适用:
[0427]
xinti=clip3(0,picw-1,refwraparoundenabledflag?cliph((ppsrefwraparoundoffset)*mincbsizey,picw,(xint
l
+i)):xint
l
+i)(642)
[0428]
yinti=clip3(0,pich-1,yint
l
+i)(643)
[0429]
...
[0430]
8.5.6.3.2亮度样本插值滤波过程
[0431]
...
[0432]

如果subpic_treated_as_pic_flag[currsubpicidx]等于1,如果subpic_treated_as_pic_flag[currsubpicidx]等于1,则以下情况适用:
[0433]
xinti=clip3(subpicleftboundarypos,subpicrightboundarypos,xinti)(959)
[0434]
yinti=clip3(subpictopboundarypos,subpicbotboundarypos,yinti)(960)
[0435]

否则(subpic_treated_as_pic_flag[currsubpicidx]等于0否则(subpic_treated_as_pic_flag[currsubpicidx]等于0以下情况适用:
[0436]
xinti=clip3(0,picw-1,refwraparoundenabledflag?cliph((ppsrefwraparoundoffset)*mincbsizey,picw,xinti):xinti)(961)
[0437]
yinti=clip3(0,pich-1,yinti)(962)
[0438]
...
[0439]
8.5.6.3.3亮度整数样本获取过程
[0440]
...
[0441]
以全样本单位(xint,yint)指示的亮度位置推导如下:
[0442]

如果subpic_treated_as_pic_flag[currsubpicidx]等于1,
则以下情况适用:
[0443]
xint=clip3(subpicleftboundarypos,subpicrightboundarypos,xint
l
)(968)
[0444]
yint=clip3(subpictopboundarypos,subpicbotboundarypos,yint
l
)(969)
[0445]

否则否则以下情况适用:
[0446]
xint=clip3(0,picw-1,refwraparoundenabledflag?cliph((ppsrefwraparoundoffset)*mincbsizey,picw,xint
l
):xint
l
)(970)
[0447]
yint=clip3(0,pich-1,yint
l
)(971)
[0448]
...
[0449]
8.5.6.3.4色度样本插值过程
[0450]
...
[0451]

如果subpic_treated_as_pic_flag[currsubpicidx]等于1,如果subpic_treated_as_pic_flag[currsubpicidx]等于1,则以下情况适用:
[0452]
xinti=clip3(subpicleftboundarypos/subwidthc,subpicrightboundarypos/subwidthc,xinti)(977)
[0453]
yinti=clip3(subpictopboundarypos/subheightc,subpicbotboundarypos/subheightc,yinti)(978)
[0454]

否则(subpic_treated_as_pic_flag[currsubpicidx]等于0否则(subpic_treated_as_pic_flag[currsubpicidx]等于0以下情况适用:
[0455]
xinti=clip3(0,picw
c-1,refwraparoundenabledflag?cliph(xoffset,picwc,xinti):xintc+i-1)(979)
[0456]
yinti=clip3(0,pich
c-1,yinti)(980)
[0457]
...
[0458]
替代地,可以用“以及如果参考图片refpiclx是与当前图片具有相同的空间分辨率的ilrp”替换突出显示的部分“以及参考图片refpiclx的sps_num_subpics_minus1大于0”。
[0459]
替代地,可以用“或者如果参考图片refpiclx是具有与当前图片不同的空间分辨率的ilrp”来替换突出显示部分“参考图片refpiclx的sps_num_subpics_minus1等于0”。
[0460]
替代地,对同位图片的要求,例如,可以用“比特流一致性的一个要求是,由slice_collocated_ref_idx参考的图片对于经编解码图片的所有条带应相同,”替换“比特流一致性的一个要求是,由slice_collocated_ref_idx参考的图片对于经编解码图片的所有条带应相同,collocated_ref_idx参考的图片对于经编解码图片的所有条带应相同,”。
[0461]
替代地,对同位图片的要求,例如,可以用“比特流一致性的一个要求是,由slice_collocated_ref_idx参考的图片对于经编解码图片的所有条带应相同,”替换“比特流一致性的一个要求是,由slice_collocated_ref_idx参考的图片对于经编解码图片的所有条带应相同,”。
[0462]
6.2.第二实施例
[0463]
在一些替代实施例中,第一实施例中有以下约束:
[0464]
当subpic_treated_as_pic_flag[i]等于1时,等于1时,等于1时,对于对于以下所有条件都为真,这是比特流一致性的要求:
[0465]

所有图片应具有相同的pic_width_in_luma_samples值和相同的pic_height_in_luma_samples值。
[0466][0467]

参考的所有sps应具有相同的sps_num_subpics_minus1值,并且对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,应分别具有subpic_ctu_top_left_x[j]、subpic_ctu_top_left_y[j]、subpic_width_minus1[j]、subpic_height_minus1[j]和[[loop_filter_across_subpic_enabled_flag[j],]]的相同的值。
[0468]

对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,个j的值,所有图片应具有subpicidval[j]的相同的值。
[0469]
替换为以下内容中的一个:
[0470]
1)当subpic_treated_as_pic_flag[i]等于1时,[i]等于1时,[i]等于1时,对于对于以下所有条件都为真,这是比特流一致性的要求:
[0471]

所有图片应具有相同的pic_width_in_luma_samples值和相同的pic_height_in_luma_samples值。
[0472][0473]

参考的所有sps应具有相同的sps_num_subpics_minus1值,并且对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,应分别具有subpic_ctu_top_left_x[j]、subpic_ctu_top_left_y[j]、subpic_width_minus1[j]subpic_height_minus1[j][[和loop_filter_across_subpic_enabled_flag[j],]]的相同的值。
[0474]

对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,个j的值,所有图片应具有subpicidval[j]的相同的值。
[0475]
2)当subpic_treated_as_pic_flag[i]等于1时,[i]等于1时,[i]等于1时,对于对于以下所有条件都为真,这是比特流一致性的要求:
[0476]

所有图片应具有相同的pic_width_in_luma_samples值和相同的pic_height_in_luma_samples值。
[0477][0478]

参考的所有sps应具有相同的sps_num_subpics_minus1值,并且对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,应分别具有subpic_ctu_top_left_x[j]、subpic_ctu_top_left_y[j]、subpic_width_minus1[j]、subpic_height_minus1[j]和loop_filter_across_subpic_enabled_flag[j]的相同的值。
[0479]

对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,个j的值,所有图片应具有subpicidval[j]的相同的值。
[0480]
3)当subpic_treated_as_pic_flag[i]等于1时,
对于对于以下所有条件都为真,这是比特流一致性的要求:
[0481]

所有图片应具有相同的pic_width_in_luma_samples值和相同的pic_height_in_luma_samples值。
[0482][0483]

参考的所有sps应具有相同的sps_num_subpics_minus1值,并且对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,应分别具有subpic_ctu_top_left_x[j]、subpic_ctu_top_left_y[j]、subpic_width_minus1[j]、subpic_height_minus1[j]和[[loop_filter_across_subpic_enabled_flag[j],]]的相同的值。
[0484]

对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,个j的值,所有图片应具有subpicidval[j]的相同的值。
[0485]
4)当subpic_treated_as_pic_flag[i]等于1时,[i]等于1时,[i]等于1时,对于对于以下所有条件都为真,这是比特流一致性的要求:
[0486]

所有图片应具有相同的pic_width_in_luma_samples值和相同的pic_height_in_luma_samples值。
[0487][0488]

参考的所有sps应具有相同的sps_num_subpics_minus1值,并且对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,应分别具有subpic_ctu_top_left_x[j]、subpic_ctu_top_left_y[j]、subpic_width_minus1[j]、subpic_height_minus1[j]、
和loop_filter_across_subpic_enabled_flag[j]的相同的值。
[0489]

对于0到sps_num_subpics_minus1范围内(含0和sps_num_subpics_minus1)的每个j的值,个j的值,所有图片应具有subpicidval[j]的相同的值。
[0490]
6.3.第三实施例
[0491]
该示例提出了关于alf和cc-alf滤波器的最大数量的限制的以下方面:
[0492]
1)用对滤波器数量的约束替换对alf aps数量的约束,更具体地,提出添加以下约束:
[0493]
亮度分量的自适应环路滤波器类别总数、色度分量的替代滤波器总数以及pu的所有aps nal单元中的交叉分量滤波器总数应分别小于或等于200、64和64。
[0494]
2)在第1)项的基础上,进一步将aps语法中aps id的编解码从u(5)改变为u(v),长度分别为9、2和3,分别用于alf、lmcs和缩放列表aps。
[0495]
3)在第1)项的基础上,进一步将ph和sh中alf aps索引和alf aps的数量的编解码从u(v)改变为ue(v)。
[0496]
7.3.2.5自适应参数集rbsp语法
[0497][0498]
7.3.2.7图片标头结构语法
[0499][0500]
7.3.7.1通用条带标头语法
[0501]
[0502][0503]
7.4.3.5自适应参数集语义
[0504]
每个aps rbsp在被参考之前应可用于解码过程,包括在至少一个au中,其temporalid小于或等于参考它或通过外部部件提供的经编解码条带nal单元的temporalid。
[0505]
在pu内具有特定值的adaptation_parameter_set_id和特定值的aps_params_type的所有aps nal单元,不管它们是前缀还是后缀aps nal单元,都应具有相同的内容。
[0506]
为aps提供标识符,供其他语法元素参考。语法元素adaptation_parameter_set_id的长度,以比特为单位,为aps_params_type=alf_aps?9:(aps_params_type==lmcs_aps?2:3)。
[0507]
当aps_params_type等于alf_aps[[or scaling_aps]]时,adaptation_parameter_set_id的值应在0到[[7]]的范围内(含0和[[7]])。
[0508]
[[当aps_params_type等于lmcs_aps时,adaptation_parameter_set_id的值应在0到3的范围内(含0和3)。]]
[0509]
设apslayerid是特定aps nal单元的nuh_layer_id的值,并且vcllayerid是特定vcl nal单元的nuh_layer_id的值。除非apslayerid小于或等于vcllayerid,并且nuh_layer_id等于apslayerid的层包括在包括nuh_layer_id等于vcllayerid的层的至少一个ols中,否则特定的vcl nal单元不应参考特定的aps nal单元。
[0510]
指定了aps中携带的aps参数的类型,如表6中所指定的。
[0511]

[0512][0513]
具有aps_params_type的特定值的所有aps nal单元,不管nuh_layer_id值如何,都共享adaptation_parameter_set_id的相同的值空间。具有不同的aps_params_type值的aps nal单元使用adaptation_parameter_set_id的单独的值空间。
[0514]
7.4.3.7图片标头结构语义
[0515]
指定与ph相关联的条带参考的alf aps的数量。
[0516]
[i]指定与ph相关联的条带的亮度分量参考的第i个alf aps的adaptation_parameter_set_id。aps的adaptation_parameter_set_id。
[0517]
指定与ph相关联的条带的色度分量参考的alf aps的adaptation_parameter_set_id。adaptation_parameter_set_id。
[0518]
指定与ph相关联的条带的cb颜色分量参考的alf aps的adaptation_parameter_set_id。adaptation_parameter_set_id。
[0519]
指定与ph相关联的条带的cr颜色分量参考的alf aps的adaptation_parameter_set_id。
[0520]
7.4.8.1通用条带标头语义
[0521]
指定条带参考的alf aps的数量。当slice_alf_enabled_flag等于1并且slice_num_alf_aps_ids_luma不存在时,slice_num_alf_aps_ids_luma的值被推断为等于ph_num_alf_aps_ids_luma的值。
[0522]
[i]指定条带的亮度分量参考的第i个alf aps的adaptation_parameter_set_id。具有等于alf_aps的aps_params_type和等于slice_alf_aps_id_luma[i]的adaptation_parameter_set_id的aps nal单元的temporalid应小于或等于经编解码条带nal单元的temporalid。当slice_alf_enabled_flag等于1并且slice_alf_aps_id_luma[i]不存在时,slice_alf_aps_id_luma[i]的值被推断为等于ph_alf_aps_id_luma[i]的值。
[0523]
指定条带的色度分量参考的alf aps的adaptation_parameter_set_id。具有等于alf_aps的aps_params_type和等于slice_alf_aps_id_chroma的adaptation_parameter_set_id的aps nal单元的temporalid应小于或等于经编解码条带nal单元的temporalid。当slice_alf_enabled_flag等于1并且slice_alf_aps_id_chroma不存在时,slice_alf_aps_id_chroma的值被推断为等于ph_alf_aps_id_chroma的值。
[0524]
指定条带的cb颜色分量参考的adaptation_parameter_set_id。
[0525]
具有等于alf_aps的aps_params_type和等于slice_cc_alf_cb_aps_id的adaptation_parameter_set_id的aps nal单元的temporalid应小于或等于经编解码条带nal单元的temporalid。当slice_cc_alf_cb_enabled_flag等于1并且slice_cc_alf_cb_aps_id不存在时,slice_cc_alf_cb_aps_id的值被推断为等于ph_cc_alf_cb_aps_id的值。aps_id不存在时,slice_cc_alf_cb_aps_id的值被推断为等于ph_cc_alf_cb_aps_id的值。
[0526]
aps_params_type等于alf_aps并且adaptation_parameter_set_id等于slice_cc_alf_cb_aps_id的aps nal单元的alf_cc_cb_filter_signal_flag的值应等于1。
[0527]
指定条带的cr颜色分量参考的adaptation_parameter_set_id。具有等于alf_aps的aps_params_type和等于slice_cc_alf_cr_aps_id的adaptation_parameter_set_id的aps nal单元的temporalid应小于或等于经编解码条带nal单元的temporalid。当slice_cc_alf_cr_enabled_flag等于1并且slice_cc_alf_cr_aps_id不存在时,slice_cc_alf_cr_aps_id的值被推断为等于ph_cc_alf_cr_aps_id的值。
[0528]
aps_params_type等于alf_aps并且adaptation_parameter_set_id等于slice_
cc_alf_cr_aps_id的aps nal单元的alf_cc_cr_filter_signal_flag的值应等于1。
[0529]
在上述示例中,可以使用以下内容来替换:
[0530]
为aps提供标识符,供其他语法元素参考。语法元素adaptation_parameter_set_id的长度,以比特为单位,为aps_params_type=alf_aps?m:(aps_params_type==lmcs_aps?2:3)其中,m等于不小于3的值(例如,4、5、6、7、8、9)。
[0531]
值“200、64、64”可以由其他非零整数值替换。
[0532]
值“327”可以由其他非零整数值替换。
[0533]
6.4.第四实施例
[0534]
在该实施例中,提供了关于如何约束同位参考图片的一些示例。
[0535]
等于1的指定用于时间运动向量预测的同位图片是从参考图片列表0推导的。等于0的sh_collocated_from_l0_flag指定用于时间运动向量预测的同位图片是从参考图片列表1中推导的。
[0536]
当sh_slice_type等于b或p,ph_temporal_mvp_enabled_flag等于1,并且sh_collocated_from_l0_flag不存在时,以下情况适用:
[0537]

如果sh_slice_type等于b,则推断sh_collocated_from_l0_flag等于ph_collocated_from_l0_flag。
[0538]

否则(sh_slice_type等于p),sh_collocated_from_l0_flag的值被推断为等于1。
[0539]
指定用于时间运动向量预测的同位图片的参考索引。
[0540]
当sh_slice_type等于p或当sh_slice_type等于b并且sh_collocated_from_l0_flag等于1时,sh_collocated_ref_idx参考参考图片列表0中的条目,sh_collocated_ref_idx的值应在0到numrefidxactive[0]-1的范围内(含0和numrefidxactive[0]-1)。
[0541]
当sh_slice_type等于b并且sh_collocated_from_l0_flag等于0时,sh_collocated_ref_idx参考参考图片列表1中的条目,并且sh_collocated_ref_idx的值应在0到numrefidxactive[1]-1的范围内(含0和numrefidxactive[1]-1)。
[0542]
当sh_collocated_ref_idx不存在时,以下情况适用:
[0543]

如果pps_rpl_info_in_ph_flag等于1,则推断sh_collocated_ref_idx的值等于ph_collocated_ref_idx。
[0544]

否则(pps_rpl_info_in_ph_flag等于0),sh_collocated_ref_idx的值被推断为等于0。
[0545]
比特流一致性的一个要求是,由sh_collocated_ref_idx参考的图片对于经编解码图片的所有条带应是相同的,并且rprconstraintsactive[sh_collocated_from_l0_flag?0:1][sh_collocated_ref_idx]应等于0,flag?0:1][sh_collocated_ref_idx]应等于0,
[0546]
说明

上述约束要求同位图片具有与当前图片相同的空间分辨率、相同的缩放窗口偏移
[0547]
图5是示出示例视频处理系统1900的框图,其中可以实施本文所公开的各种技术。各种实施方式可以包括系统1900的一些或所有组件。系统1900可以包括用于接收视频内容的输入端1902。视频内容可以以原始或未压缩格式(例如,8或10比特多分量像素值)接收,或可以以经压缩或经编码格式接收。输入端1902可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(pon)等的有线接口,以及诸如wi-fi或蜂窝接口的无线接口。
[0548]
系统1900可以包括编解码组件1904,其可以实施本文档中所描述的各种编解码或编码方法。编解码组件1904可以降低从输入端1902到编解码组件1904的输出的视频的平均比特率,以产生视频的经编解码表示。因此,编解码技术有时称为视频压缩或视频代码转换技术。如组件1906所表示的,编解码组件1904的输出可以被存储,或经由所连接的通信来发送。组件1908可以使用在输入端1902处接收的视频的存储或传送的比特流(或经编解码)表示来生成发送到显示接口1910的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时称为视频解压缩。此外,虽然某些视频处理操作称为“编解码”操作或工具,但是应理解,编解码工具或操作在编码器处使用,并且与编解码结果相反的对应解码工具或操作将由解码器执行。
[0549]
外围总线接口或显示器接口的示例可以包括通用串行总线(usb)或高清多媒体接口(hdmi)或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中所描述的技术可以在各种电子设备中实施,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
[0550]
图6是视频处理装置3600的框图。装置3600可以用于实施本文所描述的一种或多种方法。装置3600可以体现在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置3600可以包括一个或多个处理器3602、一个或多个存储器3604和视频处理硬件3606。处理器3602可以被配置为实施本文档中所描述的一种或多种方法。存储器3604可以用于存储用于实施本文所描述的方法和技术的数据和代码。视频处理硬件3606可以用于在硬件电路中实施本文档中所描述的一些技术。
[0551]
图8是实施可以利用本发明的技术的示例视频编解码系统100的框图。
[0552]
如图8所示,视频编解码系统100可以包括源设备110和目的地设备120。源设备110生成经编码的视频数据,源设备110可以称为视频编码设备。目的地设备120可以解码由源设备110生成的经编码的视频数据,目的地设备120可以称为视频解码设备。
[0553]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0554]
视频源112可以包括诸如视频捕获设备、从视频内容提供商接收视频数据的接口和/或用于生成视频数据的计算机图形系统的源,或这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码,以生成比特流。比特流可以包括形成视频数据的经编解码表示的比特序列。比特流可以包括经编解码图片和相关联的数据。经编解码图片是图片的经编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发送器。经编码的视频数据可以经由i/o接口116通过网络130a直接发送到目的地设备120。经编码
的视频数据还可存储在存储媒体/服务器130b中供目的地设备120存取。
[0555]
目的地设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0556]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或存储介质/服务器130b获取经编码的视频数据。视频解码器124可以解码经编码的视频数据。显示设备122可以向用户显示经解码的视频数据。显示设备122可以与目的地设备120集成,可以在目的地设备120的外部,目的地设备120被配置为与外部显示设备接口。
[0557]
视频编码器114和视频解码器124可以根据视频压缩标准操作,诸如高效视频编解码(hevc)标准、多功能视频编解码(vvm)标准和其他当前和/或进一步的标准。
[0558]
图9是示出视频编码器200的示例的框图,该视频编码器200可以是图8中所示系统100中的视频编码器114。
[0559]
视频编码器200可以被配置为执行本发明的任何或所有技术。在图9的示例中,视频编码器200包括多个功能组件。本发明中所描述的技术可以在视频编码器200的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中所描述的任何或所有技术。
[0560]
视频编码器200的功能组件可包括分割单元201、预测单元202、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲器213和熵编码单元214,预测单元202可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206。
[0561]
在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以以ibc模式执行预测,其中,至少一个参考图片是当前视频块所在的图片。
[0562]
此外,诸如运动估计单元204和运动补偿单元205的一些组件可以被高度集成,但是为了解释的目的,在图9的示例中被分开表示。
[0563]
分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块大小。
[0564]
模式选择单元203可以基于误差结果选择编解码模式(例如,帧内或帧间)中的一种,并且将所得帧内或帧间经编解码块提供给残差生成单元207以生成残差块数据,并且提供给重构单元212以重构经编码块以用作参考图片。在一些示例中,模式选择单元203可以选择组合帧内和帧间预测(ciip)模式,其中,预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以为块选择运动向量的分辨率(例如,子像素或整数像素精度)。
[0565]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的除了与当前视频块相关联的图片之外的图片的运动信息和经解码的样本来确定当前视频块的预测视频块。
[0566]
例如,根据当前视频块是在i条带、p条带还是b条带中,运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作。
[0567]
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。然后,运动估计单元204可以生成参考索引和运动向量,参考索引指示列表0或列表1中的包含参考视频块
的参考图片,运动向量指示当前视频块与参考视频块之间的空间位移。运动估计单元204可以输出参考索引、预测方向指示符和运动向量,作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0568]
在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一参考视频块。然后,运动估计单元204可以生成参考索引和运动向量,参考索引指示列表0和列表1中的包含参考视频块的参考图片,运动向量指示参考视频块与当前视频块之间的空间位移。运动估计单元204可以输出当前视频块的参考索引和运动向量,作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0569]
在一些示例中,运动估计单元204可以输出用于解码器的解码处理的完整运动信息集。
[0570]
在一些示例中,运动估计单元204可以不输出当前视频的完整运动信息集。相反,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与相邻视频块的运动信息足够相似。
[0571]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示某个值,该值向视频解码器300指示当前视频块具有与另一视频块相同的运动信息。
[0572]
在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中标识另一视频块和运动向量差(mvd)。运动向量差指示当前视频块的运动向量与所指示的视频块的运动向量之间的差。视频解码器300可以使用所指示的视频块的运动向量和运动向量差来确定当前视频块的运动向量。
[0573]
如以上所讨论的,视频编码器200可以预测性地信令通知运动向量。可以由视频编码器200实施的预测信令技术的两个示例包括高级运动向量预测(amvp)和merge模式信令。
[0574]
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其他视频块的经解码的样本来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测的视频块和各种语法元素。
[0575]
残差生成单元207可以通过从当前视频块减去(例如,由负号指示)当前视频块的预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中样本的不同的样本分量的残差视频块。
[0576]
在其他示例中,例如在跳过模式中,当前视频块可以没有当前视频块的残差数据,并且残差生成单元207可以不执行减法操作。
[0577]
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来生成当前视频块的一个或多个变换系数视频块。
[0578]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(qp)值来量化与当前视频块相关联的变换系数视频块。
[0579]
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元212可以将重构残差视频块添加到来自
由预测单元202生成的一个或多个预测视频块的对应样本,以生成与当前块相关联的重构视频块,用于存储在缓冲器213中。
[0580]
在重构单元212重构视频块之后,可以执行环路滤波操作以减少视频块中的视频块效应伪像。
[0581]
熵编码单元214可以接收来自视频编码器200的其他功能组件的数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作,以生成经熵编码的数据并且输出包括经熵编码的数据的比特流。
[0582]
图10是示出视频解码器300的示例的框图,该视频解码器300可以是图8中所示的系统100中的视频解码器114。
[0583]
视频解码器300可以被配置为执行本发明的任何或所有技术。在图10的示例中,视频解码器300包括多个功能组件。本公开中所描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中所描述的任何或所有技术。
[0584]
在图10的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行通常与针对视频编码器200(图9)所描述的编码编次互逆的解码编次。
[0585]
熵解码单元301可以检索经编码的比特流。经编码的比特流可以包括经熵编解码的视频数据(例如,经编码的视频数据块)。熵解码单元301可以解码经熵编解码的视频数据,并且通过经熵解码的视频数据,运动补偿单元302可以确定运动信息,包括运动向量、运动向量精度、参考图片列表索引和其他运动信息。例如,运动补偿单元302可以通过执行amvp和merge模式来确定这样的信息。
[0586]
运动补偿单元302可以产生运动补偿块,可能基于插值滤波器执行插值。语法元素中可以包括要以子像素精度使用的插值滤波器的标识符。
[0587]
运动补偿单元302可以使用如视频编码器200在视频块的编码期间使用的插值滤波器来计算参考块的子整数像素的插值值。运动补偿单元302可以根据所接收的语法信息来确定视频编码器200所使用的插值滤波器,并且使用该插值滤波器来产生预测块。
[0588]
运动补偿单元302可以使用一些语法信息来确定用于编码经编码的视频序列的帧和/或条带的块的大小、描述经编码的视频序列的图片的每个宏块如何被分割的分割信息、指示每个分割如何被编码的模式、每个经帧间编码的块的一个或多个参考帧(和参考帧列表)以及用于解码经编码的视频序列的其他信息。
[0589]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空间相邻的块形成预测块。逆量化单元303逆量化(例如,去量化)比特流中提供的并且由熵解码单元301解码的量化视频块系数。逆变换单元303应用逆变换。
[0590]
重构单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块相加,以形成经解码的块。如果需要,还可以应用去块滤波器来对经解码的块进行滤波,以去除块效应伪像。然后,经解码的视频块被存储在缓冲器307中,缓冲器307为后续的运动补偿/帧内预测提供参考块,并且还产生经解码的视频以在显示设备上呈现。
[0591]
接下来提供一些实施例优选的方案列表。
[0592]
以下方案示出了上一节中讨论的技术的示例实施例(例如,第1项)。
[0593]
1.一种视频处理方法(例如,图7中所示的方法700),包括:执行(702)包括一个或多个视频图片的视频之间的转换,其中,经编解码表示符合格式规则;其中,格式规则指定,序列参数集中的两个或更多个语法字段控制视频中的参考图片分辨率(rpr)变化。
[0594]
2.根据方案1的方法,其中,两个或更多个语法字段中的第一语法字段指示rpr是否用于一个或多个图片,并且两个或更多个语法字段中的第二语法字段指示图片分辨率是否被允许在序列级别在经编解码表示中改变。
[0595]
以下方案示出了上一节中讨论的技术的示例实施例(例如,第2项)。
[0596]
3.一种视频处理方法,包括:在包括一个或多个视频图片的视频之间执行转换,其中,经编解码表示符合格式规则;其中,该格式规则指定,序列参数集中的单个语法字段控制视频中的参考图片分辨率(rpr)变化;并且其中,格式规则指定,不管单个语法字段的值如何,允许对层间参考图片进行重采样以用于转换。
[0597]
以下方案示出了上一节中讨论的技术的示例实施例(例如,第3、5、6、7、9、10项)。
[0598]
4.一种视频处理方法,包括:在包括一个或多个层的视频之间执行转换,该一个或多个层包括一个或多个图片,该一个或多个图片包括一个或多个子图片,其中,经编解码表示符合格式规则;其中,该格式规则指定了对跨层对齐的第一约束或对子图片和层间图片可缩放性的组合的第二约束。
[0599]
5.根据方案4的方法,其中,第一约束在当前层和依赖于当前层的所有较高层上定义跨层对齐限制,而不对当前层的较低层和不依赖于当前层的所有较高层施加对齐限制。
[0600]
6.根据方案4的方法,其中,第二约束对特定层的每个依赖关系树中的所有层施加跨层对齐限制。
[0601]
7.根据方案4的方法,其中,第二约束根据跨层对齐限制来约束subpic_treated_as_pic_flag[i]的值。
[0602]
8.根据方案4的方法,其中,第二约束根据跨层对齐限制来约束loop_filter_across_subpic_enabled_flag[i]的值。
[0603]
9.根据方案4至8中任一项的方法,其中,第一约束和/或第二约束是针对接入单元的目标集合指定的。
[0604]
10.根据方案4的方法,其中,第二约束根据跨层对齐限制来约束缩放窗口参数scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset和scaling_win_bottom_offset中的每个的值。
[0605]
以下方案示出了上一节中讨论的技术的示例实施例(例如,第11项)。
[0606]
11.一种视频处理方法,包括:在包括一个或多个层的视频之间执行转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,其中,该转换符合格式规则,该格式规则指定,层间参考图片或长期参考图片不被允许作为用于该转换的当前图片的同位图片。
[0607]
以下方案示出了上一节中讨论的技术的示例实施例(例如,第12项)。
[0608]
12.一种视频处理方法,包括:在包括多个图片的视频与该视频的经编解码表示之间执行转换,其中,该转换符合规则,该规则指定scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset和scaling_win_bottom_offset中的每个的值对于相同的经编解码层视频序列或具有相同的pic_width_in_luma_samples和pic_height_
in_luma_samples值的经编解码视频序列内的任何两个图片是相同的。
[0609]
以下方案示出了上一节中讨论的技术的示例实施例(例如,第13项)。
[0610]
13.一种视频处理方法,包括:在包括多个图片的视频与该视频的经编解码表示之间执行转换,其中,该转换符合规则,该规则指定,在图片分辨率或缩放窗口对于当前图片和同一接入单元中的其他图片不同的情况下,仅当当前图片是帧内随机接入点图片时才允许层间预测。
[0611]
以下方案示出了上一节中讨论的技术的示例实施例(例如,第20项)。
[0612]
14.一种视频处理方法,包括:对于视频的当前图片的视频块与视频的经编解码表示之间的转换,基于视频块的第一大小与同位视频图片或层间图片中的视频块的第二大小的比较,确定规则是否被应用,并且基于该确定来执行转换。
[0613]
15.根据方案14的方法,其中,该规则指定当第一大小大于第二大小时,来自不同的图片的运动信息的使用被禁止用于当前图片中的转换。
[0614]
16.根据方案14的方法,其中,该规则指定当第一大小大于第二大小时,来自不同的图片的运动信息的使用被禁止用于当前图片中的转换。
[0615]
在上述方案中,视频块可以对应于编解码树单元或编解码树块。
[0616]
17.根据方案1至16中任一项的方法,其中,转换包括将视频编码成经编解码表示。
[0617]
18.根据方案1至16中任一项的方法,其中,转换包括解码经编解码表示以生成视频的像素值。
[0618]
19.一种视频解码装置,包括被配置为实施方案1至18中的一个或多个中所叙述的方法的处理器。
[0619]
20.一种视频编码装置,包括被配置为实施方案1至18中的一个或多个中所叙述的方法的处理器。
[0620]
21.一种其中存储有计算机代码的计算机程序产品,当由处理器执行时,该代码使处理器实施根据方案1至18中任一项所叙述的方法。
[0621]
22.本文档中描述的一种方法、装置或系统。
[0622]
图13是根据本技术的用于视频处理的方法1300的流程图表示。方法1300包括,在操作1310处,根据规则在视频的当前图片的视频单元与视频的比特流之间执行转换。该规则指定,对于可用作其运动信息用于转换的参考图片的给定图片,给定图片具有与当前图片相同的编解码树单元大小或相同的编解码树块大小。
[0623]
在一些实施例中,该规则指定,响应于给定图片具有不同的编解码树单元大小或不同的编解码树块大小,使用运动信息的编解码工具被禁用。在一些实施例中,视频单元包括条带。在一些实施例中,运动信息用于时间运动向量预测。在一些实施例中,运动信息用于基于子块的时间运动向量预测。
[0624]
在一些实施例中,给定图片是同位图片。在一些实施例中,同位图片由同位图片列表和索引来标识,索引指定用于时间运动向量预测的同位图片的参考索引。在一些实施例中,同位图片列表由第一语法标志确定,第一语法标志指定用于时间运动向量预测的同位图片是从参考图片列表0还是参考图片列表1推导的。在一些实施例中,第一语法标志被表示为sh_collocated_from_l0_flag,并且参考索引被表示为sh_collocated_ref_idx。在一些实施例中,同位图片的编解码树单元大小由序列参数集中的变量表示,变量指定每个编
解码树单元的大小。在一些实施例中,变量被表示为sps_log2_ctu_size_minus5。
[0625]
在一些实施例中,给定图片是层间图片。在一些实施例中,图片标头中的第二语法标志指定运动信息的使用被禁用。在一些实施例中,第二语法标志被表示为ph_temporal_mvp_enabled_flag。
[0626]
在一些实施例中,使用运动信息的编解码工具是否及如何用于转换是基于视频单元的一个或多个参考图片列表中的参考图片的编解码树单元大小。在一些实施例中,响应于具有与当前图片不同的编解码树单元大小或不同的编解码树块大小的所有参考图片,编解码工具被禁用。
[0627]
在一些实施例中,转换包括将视频编码成比特流。在一些实施例中,转换包括从比特流中解码视频。
[0628]
在本文所描述的方案中,编码器可以通过根据格式规则产生经编解码表示来符合格式规则。在本文所描述的方案中,解码器可以使用格式规则来解析经编解码表示中的语法元素,根据格式规则了解语法元素的存在和不存在,以产生经解码的视频。
[0629]
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,在从视频的像素表示到对应的比特流表示的转换期间,可以应用视频压缩算法,反之亦然。例如,如语法所定义,当前视频块的比特流表示可以对应于同位的或散布在比特流内不同位置的比特。例如,可以根据经变换和经编解码的误差残差值,并且还使用比特流中的标头和其他字段中的比特,对宏块进行编码。此外,在转换期间,解码器可以基于该确定,在知道一些字段可以存在或不存在的情况下解析比特流,如以上方案中所描述。类似地,编码器可以确定包括或不包括某些语法字段,并且通过从经编解码表示中包括或排除语法字段来相应地生成经编解码表示。
[0630]
本文档中所描述的所公开的和其他方案、示例、实施例、模块和功能操作可以在数字电子电路中实施,在计算机软件、固件或硬件中实施,包括本文档中所公开的结构及其结构等同物,在它们中的一个或多个的组合中实施。所公开的实施例和其他实施例可以被实施为一个或多个计算机程序产品,例如编码在计算机可读介质中的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储设备、实现机器可读传播信号的物质组合,它们中的一个或多个的组合。术语“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如机器生成的电、光或电磁信号,其被生成来编码信息以发送到合适的接收器装置。
[0631]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译或解释语言)编写,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,存储在多个协作文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一台计算机或位于一个地点或分布在多个地点并通过通信网络互连的多台计算机上执行。
[0632]
本文中所描述的过程和逻辑流程可以由一个或多个可编程处理器来执行,这些处理器执行一个或多个计算机程序,以通过对输入数据进行操作并且生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实施为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。
[0633]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,以从该大容量存储设备接收数据或向其传送数据,两者兼有。然而,计算机不需要有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。
[0634]
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何主题或所要求保护的内容的范围的限制,而是对特定技术的特定实施例所特有的特征的描述。在本专利文档中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中所描述的各种特征也可以在多个实施例中单独实施在任何合适的子组合中实施。此外,尽管特征可以在上面被描述为在某些组合中起作用,并且甚至最初被这样要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
[0635]
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示的特定顺序或次序执行这样的操作,或要求执行所有示出的操作来获得期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。
[0636]
仅描述了一些实施方式和示例,并且可以基于本专利文档中所描述和示出的内容进行其他实施方式、增强和变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1