子比特流提取处理中的填充符有效载荷
文献发布时间:2023-06-19 18:35:48
相关申请的交叉引用
根据按照巴黎公约适用的专利法和/或规则,本申请及时要求于2020年5月22日提交的国际专利申请第PCT/CN2020/091696号的优先权和权益。出于法律规定的所有目的,前述申请的全部公开通过引用并入作为本申请公开的一部分。
技术领域
本专利文件涉及图像和视频编码和解码。
背景技术
数字视频占据因特网和其它数字通信网络上使用的最大带宽。随着能够接收和显示视频的连接用户设备的数目的增加,预期数字视频使用的带宽需求将继续增长。
发明内容
本文档公开了可以由视频编码器和解码器使用的技术,以用于使用对编解码表示的解码有用的控制信息来处理视频的编解码表示。
在一个示例方面,公开了一种视频处理方法。该方法包括:在包括一个或多个视频图片的视频与该视频的比特流之间进行转换,该一个或多个视频图片包括一个或多个子图片,其中该转换符合规则,该规则指定在子图片子比特流提取处理期间从一个或多个语法元素确定适用于子图片的缩放窗口的一个或多个参数。
在另一示例方面,公开了另一种视频处理方法。该方法包括:根据规则在包括一个或多个层的视频与该视频的比特流之间进行转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,其中该规则定义了在子比特流提取处理期间要从比特流中提取网络抽象层(NAL)单元以输出子比特流,并且其中该规则还指定到该子比特流提取处理的一个或多个输入和/或使用该比特流的不同层的子图片的哪个组合,使得该子比特流提取处理的输出符合预定义格式。
在另一示例方面,公开了另一种视频处理方法。该方法包括:根据规则在视频与该视频的比特流之间进行转换,其中该比特流包括第一层和第二层,该第一层包括具有多个子图片的图片,该第二层包括各自具有单个子图片的图片,并且其中该规则指定第一层和第二层的子图片的组合,该组合在提取时导致符合预定义格式的输出比特流。
在另一示例方面,公开了另一种视频处理方法。该方法包括:在视频与该视频的比特流之间进行转换,并且其中规则指定输出层集合是否或如何由可缩放嵌套补充增强信息(SEI)消息中的子图片标识符的列表来指示的具有包括多个子图片的一个或多个层输出层集合和/或具有单个子图片的一个或多个层。
在另一示例方面,公开了另一种视频处理方法。该方法包括:根据规则在包括视频层中的一个或多个视频图片的视频与该视频的比特流之间进行转换,以及其中该规则指定:在子比特流提取的处理中,无论用于替换在该子比特流提取期间被移除的参数集的外部部件的可用性如何,都进行(i)视频编解码层(VCL)网络抽象层(NAL)单元、(ii)与该VCLNAL单元相关联的填充数据NAL单元、以及(iii)与VCLNAL单元相关联的填充有效载荷补充增强信息(SEI)消息的移除。
在另一示例方面,公开了另一种视频处理方法。该方法包括:根据规则在包括一个或多个层的视频与该视频的比特流之间进行转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,以及其中该规则指定在根据与子图片布局不同的子图片布局来划分参考图片的情况下,不允许将该参考图片用作使用该子图片布局划分为子图片的当前图片的共位图片。
在另一示例方面,公开了另一种视频处理方法。该方法包括:根据规则在包括一个或多个层的视频与该视频的比特流之间进行转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,并且其中该规则指定在编解码工具依赖于不同于当前图片的参考图片的子图片布局的子图片布局的情况下,在使用该子图片布局划分为子图片的当前图片的转换期间禁用该编解码工具。
在另一示例方面,公开了另一种视频处理方法。该方法包括:根据规则在包括视频层中的一个或多个视频图片的视频与该视频的比特流之间进行转换,其中该规则指定包含带有特定有效载荷类型的SEI消息的补充增强信息(SEI)网络抽象层(NAL)单元不包含带有不同于该特定有效载荷类型的有效载荷类型的另一SEI消息。
在又一示例方面,公开了一种视频编码器装置。该视频编码器包括被配置为实施上述方法的处理器。
在又一示例方面,公开了一种视频解码器装置。该视频解码器包括被配置为实施上述方法的处理器。
在又一示例方面,公开了一种其上存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现了本文描述的方法之一。
贯穿本文档描述了这些和其它特征。
附图说明
图1示出了图片的光栅扫描条带分割的示例,其中该图片被划分为12个图块和3个光栅扫描条带。
图2示出了图片的矩形条带分割的示例,其中该图片被划分为24个图块(6个图块列和4个图块行)和9个矩形条带。
图3示出了被分割为图块和矩形条带的图片的示例,其中该图片被划分为4个图块(2个图块列和2个图块行)和4个矩形条带。
图4示出了被分割为15个图块、24个条带和24个子图片的图片。
图5示出了典型的基于子图片的视口相关的360o视频编解码方案。
图6示出了基于子图片和空间可缩放性的改进的视口相关的360°视频编解码方案。
图7是示例视频处理系统的框图。
图8是视频处理装置的框图。
图9是用于视频处理的示例方法的流程图。
图10是图示根据本公开的一些实施例的视频编解码系统的框图。
图11是图示根据本公开的一些实施例的编码器的框图。
图12是图示根据本公开的一些实施例的解码器的框图。
图13示出了基于所公开的技术的一些实施方式的用于视频处理的示例方法的流程图。
图14A至图14C示出了基于所公开的技术的一些实施方式的用于视频处理的示例方法的流程图。
图15A至图15C示出了基于所公开的技术的一些实施方式的用于视频处理的示例方法的流程图。
图16示出了基于所公开的技术的一些实施方式的用于视频处理的示例方法的流程图。
具体实施方式
在本文档中使用章节标题是为了便于理解,而不是将每一章节中所公开的技术和实施例的适用性仅限于该章节。此外,在一些描述中使用H.266术语仅是为了便于理解,而不是为了限制所公开的技术的范围。因此,本文描述的技术也适用于其他视频编解码器协议和设计。
1.介绍
本文档涉及视频编解码技术。具体地,它关于子图片子比特流提取处理、可缩放嵌套SEI消息和子图片级别信息SEI消息。这些思想可以单独地或以各种组合应用于支持多层视频编解码的任何视频编解码标准或非标准视频编解码器,例如,正在开发的通用视频编解码(VVC)。
2.缩写
APS 适应参数集
AU 访问单元
AUD 访问单元定界符
AVC 高级视频编解码
CLVS 编解码层视频序列
CPB 编解码图片缓存器
CRA 干净随机访问
CTU 编解码树单元
CVSC 编解码视频序列
DCI 解码能力信息
DPB 解码图片缓存器
EOB 比特流结束
EOS 序列结束
GDR 逐步解码刷新
HEVC 高效率视频编解码
HRD 假设参考解码器
IDR 瞬时解码刷新
ILP 层间预测
ILRP 层间参考图片
JEM 联合勘探模型
LTRP 长期参考图片
MCTS 运动约束图块集合
NAL 网络抽象层
OLS 输出层集合
PH 图片头
PPS 图片参数集
PTLP 档次(Profile)、等级(Tier)和级别(Level)
PU 图片单元
RAP 随机访问点
RBSP 原始字节序列有效载荷
SEI 补充增强信息
SPS 序列参数集
STRP 短期参考图片
SVC 可缩放视频编解码
VCL 视频编解码层
VPS 视频参数集
VTM VVC测试模型
VUI 视频可用性信息
VVC 通用视频编解码
3.初始讨论
视频编解码标准主要通过公知的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以外的未来视频编解码技术,联合视频探索团队(JVET)于2015年由VCEG和MPEG联合创立。从那时起,JVET已经采用了许多新的方法,并且将其引入到称为联合探测模型(JEM)的参考软件中。JVET会议同时每季度举行一次,并且与HEVC相比,新的编解码标准以50%比特率减少为目标。新的视频编解码标准在2018年4月JVET会议上被正式命名为通用视频编解码(VersatileVideoCoding,VVC),并且此时发布了第一版的VVC测试模型(VTM)。由于对VVC标准化有持续的努力,在每次JVET会议中,VVC标准都采用新的编解码技术。VVC工作草案和测试模型VTM然后在每次会议之后被更新。VVC项目目前目标是在2020年7月的会议上技术性完成(FDIS)。
3.1.HEVC中的图片分割(partitioning)方案
HEVC包括四种不同的图片分割方案,即规则条带、相关条带、图块、以及波前并行处理(WPP),其可应用于最大传输单元(MTU)大小匹配、并行处理和减少的端到端延迟。
规则条带与H.264/AVC中的类似。每个规则条带被封装在其自己的NAL单元中,并且跨条带边界的图片内预测(帧内样点预测、运动信息预测、编解码模式预测)和熵编解码相关性被禁用。因此,可以独立于同一图片内的其它规则条带来重构规则条带(尽管可能由于环路滤波操作而仍具有互相关性)。
规则条带是可用于并行化的唯一工具,其在H.264/AVC中也以实际上相同的形式可用。基于规则条带的并行化不需要很多处理器间或核心间通信(除了当解码预测编解码的图片时用于运动补偿的处理器间或核心间数据共享,由于图片内预测,这通常比处理器间或核心间数据共享重得多)。然而,出于相同原因,由于条带头的比特成本并且由于在条带边界上缺乏预测,所以使用规则条带可能招致大量编解码开销。此外,由于规则条带的图片内独立性以及每个规则条带被封装在其自己的NAL单元中,规则条带(与下面提到的其他工具相反)还用作用于比特流分割的关键机制以匹配MTU大小要求。在许多情况下,并行化的目标和MTU大小匹配的目标与对图片中的条带布局的要求相矛盾。这种情况的实现导致下面提到的并行化工具的发展。
相关条带具有短的条带头,并且允许在树块边界处对比特流进行分割而不破坏任何图片内预测。基本上,相关条带将规则条带分段成多个NAL单元,以通过允许在完成对整个规则条带的编码之前发送出规则条带的一部分来提供减少的端到端延迟。
在WPP中,图片被分割为编解码树块(CTB)的单个行。允许熵解码和预测使用来自其它分割中的CTB的数据。通过CTB行的并行解码,并行处理是可能的,其中CTB行的解码的开始被延迟两个CTB,以便确保在主体CTB被解码之前,与该主体CTB的上方和右侧的CTB相关的数据是可用的。使用这种交错的开始(当用图形表示时看起来像波前),对于至多与CTB行的图片一样多的处理器/核心而言,并行化是可能的。因为允许图片内的相邻树块行之间的图片内预测,所以启用图片内预测所需的处理器间/核心间通信可能是重要的。与不应用WPP分割时相比,WPP分割不会导致产生附加的NAL单元,因此WPP不是用于MTU大小匹配的工具。然而,如果需要MTU大小匹配,则可以与WPP一起使用具有一定编解码开销的规则条带。
图块定义将图片分割为图块列和行的水平和竖直边界。图块列从图片的顶部延伸到图片的底部。同样,图块行从图片的左边延伸到图片的右边。图片中的图块的数目可以简单地导出为图块列的数目乘以图块行的数目。
在以图片的图块光栅扫描的顺序解码下一个图块的左上角CTB之前,CTB的扫描顺序被改变为图块内的局部(以图块的CTB光栅扫描的顺序)。类似于规则条带,图块破坏了图片内预测相关性以及熵解码相关性。然而,它们不需要被包括在单独的NAL单元中(在这方面与WPP相同);因此,图块不能用于MTU大小匹配。每个图块可以由一个处理器/核心处理,并且解码邻近图块的处理单元之间的图片内预测所需的处理器间/核心间通信限于在条带跨越一个以上图块的情况下传送共享条带头,并且环路滤波涉及经重构样点和元数据的共享。当在条带中包括多于一个图块或WPP段时,在条带头中用信号通知用于除了条带中的第一个图块或WPP段之外的每个图块或WPP段的入口点字节偏移。
为了简单起见,在HEVC中已经指定了对四种不同图片分割方案的应用的限制。给定的编解码视频序列不能包括用于HEVC中指定的大多数配置文件的图块和波前。对于每个条带和图块,必须满足以下条件中的一者或两者:1)条带中的所有经编解码树块属于相同的图块;2)图块中的所有经编解码树块属于同一条带。最后,波前分段恰好包含一个CTB行,并且当使用WPP时,如果条带在CTB行内开始,则它必须在相同的CTB行中结束。
在JCT-VC输出文档JCTVC-AC1005,J.Boyce,A.Ramasubramonian,R.Skupin,G.J.Sullivan,A.Tourapis,Y.-K.Wang(编辑者),"HEVC Additional SupplementalEnhancement Information(Draft4)(HEVC附加补充增强信息(第4稿))2017年10月24日"中指定了对HEVC的最近修改,在此处可获得:http://phenix.int-evry.fr/jct/doc_end_user/documents/29_Macau/wg11/JCTVC-AC1005-v2.zip。在包括该修改的情况下,HEVC指定三种MCTS相关SEI消息,即时域MCTS SEI消息、MCTS提取信息集合SEI消息、以及MCTS提取信息嵌套SEI消息。
时域MCTS SEI消息指示比特流中MCTS的存在并且用信号通知MCTS。对于每个MCTS,运动矢量被限制为指向MCTS内部的全样点位置和仅需要MCTS内部的全样点位置以用于内插的分数采样位置,并且不允许使用从MCTS外部的块导出的时间运动矢量预测的运动矢量候选。这样,可以独立地解码每个MCTS,而不存在未被包括在MCTS中的图块。
MCTS提取信息集合SEI消息提供补充信息,其可以被用于MCTS子比特流提取(指定为SEI消息的语义的一部分)以生成用于MCTS集合的一致比特流(conformingbitstream)。该信息由多个提取信息集合组成,每个提取信息集合定义多个MCTS集合,并且包含在MCTS子比特流提取处理中使用的替换VPS、SPS和PPS的RBSP字节。当根据MCTS子比特流提取处理提取子比特流时,需要重写或替换参数集(VPS、SPS和PPS),需要稍微更新条带头,因为与条带地址相关的语法元素(包括first_slice_segment_in_pic_flag和slice_segment_address)中的一者或全部通常将需要具有不同的值。
3.2.VVC中的图片分割
在VVC中,图片被划分为一个或多个图块行以及一个或多个图块列。图块是覆盖图片的矩形区域的CTU的序列。图块中的CTU在该图块内以光栅扫描顺序被扫描。
条带由图片的图块内的整数个完整图块或者整数个连续的完整CTU行组成。
支持两种条带模式,即光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式中,条带包含图片的图块光栅扫描中的完整图块的序列。在矩形条带模式中,条带包含共同地形成图片的矩形区域的多个完整图块或者共同地形成图片的矩形区域的一个图块的多个连续完整CTU行。矩形条带内的图块在对应于该条带的矩形区域内以图块光栅扫描顺序被扫描。
子图片包含共同地覆盖图片的矩形区域的一个或多个条带。
图1示出了图片的光栅扫描条带分割的示例,其中该图片被划分为12个图块和3个光栅扫描条带。
图2示出了图片的矩形条带分割的示例,其中该图片被划分为24个图块(6个图块列和4个图块行)和9个矩形条带。
图3示出了被分割为图块和矩形条带的图片的示例,其中该图片被划分为4个图块(2个图块列和2个图块行)和4个矩形条带。
图4示出了图片的子图片分割的示例,其中图片被分割为18个图块,左侧的每个图块覆盖4乘4个CTU的一个条带的12个图块,以及右侧的每个图块覆盖2乘2个CTU的2个竖直堆叠的条带的6个图块,总共得到24个条带和24个不同尺寸的子图片(每个条带是子图片)。
3.3.序列内图片分辨率改变
在AVC和HEVC中,除非使用新SPS的新序列以IRAP图片开始,否则图片的空间分辨率不能改变。VVC允许序列内位置处的图片分辨率改变,而不对总是被帧内编解码(intra-coded)的IRAP图片进行编码。该特征有时被称为参考图片重采样(RPR),因为当该参考图片具有与正在被解码的当前图片不同的分辨率时,该特征需要用于帧间预测的参考图片的重采样。
缩放比率被限制为大于或等于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的缩放比率的重采样处理的特殊情况。基于图片宽度和高度以及为参考图片和当前图片指定的左侧、右侧、顶部和底部的缩放偏移来导出水平和竖直缩放比率。
不同于HEVC的用于支持该特征的VVC设计的其他方面包括:i)在PPS中而不是在SPS中用信号通知图片分辨率和对应的符合性窗口,而在SPS中用信号通知最大图片分辨率。ii)对于单层比特流,每个图片存储器(DPB中用于存储一个解码图片的时隙)占用存储具有最大图片分辨率的解码图片所需的缓存器大小。
3.4.通常的可缩放视频编解码(SVC)和在VVC中的SVC
可缩放视频编解码(SVC,有时也仅称为视频编解码中的可缩放性)是指其中使用基础层(BL)(有时称为参考层(RL))以及一个或多个可缩放增强层(EL)的视频编解码。在SVC中,基础层可以承载具有基础质量水平的视频数据。一个或多个增强层可以携带附加视频数据以支持(例如)较高空间、时间和/或信噪比(SNR)水平。可以相对于先前的经编码层定义增强层。例如,底层可以用作BL,而顶层可以用作EL。中间层可以用作EL或RL或两者。例如,中间层(例如,既不是最低层也不是最高层的层)可以是中间层下方的层(例如,基础层或任何介入的增强层)的EL,并且同时用作中间层上方的一个或多个增强层的RL。类似地,在HEVC标准的多视图或3D扩展中,可以存在多个视图,并且一个视图的信息可以用于编解码(例如,编码或解码)另一视图的信息(例如,运动估计、运动向量预测和/或其它冗余)。
在SVC中,由编码器或解码器使用的参数基于它们可以被利用的编解码级别(例如,视频级别、序列级别、图片级别、条带级别等)被分组为参数集。例如,可以由比特流中不同层的一个或多个编解码视频序列使用的参数可以被包括在视频参数集(VPS)中,而由编解码视频序列中的一个或多个图片使用的参数可以被包括在序列参数集(SPS)中。类似地,由图片中的一个或多个条带利用的参数可以被包括在图片参数集(PPS)中,并且特定于单个条带的其它参数可以被包括在条带头中。类似地,特定层在给定时间使用的(多个)参数集的指示可以以各种编解码级别被提供。
由于VVC中的参考图片重采样(RPR)的支持,可以设计VVC中的包含多个层(例如,具有SD和HD分辨率的两个层)的比特流的支持,而不需要任何附加的信号处理级别编解码工具,因为空间可缩放性支持所需的上采样可以仅使用RPR上采样滤波器。然而,可缩放性支持需要高级别语法改变(与不支持可缩放性相比)。在VVC版本1中规定了可缩放性支持。与包括AVC和HEVC的扩展的任何早期视频编解码标准中的可缩放性支持不同,VVC可缩放性的设计已经尽可能地对单层解码器设计友好。针对多层比特流的解码能力以如同比特流中仅有单个层的方式被指定。例如,以独立于要被解码的比特流中的层数目的方式指定解码能力,诸如DPB大小。基本上,为单层比特流设计的解码器不需要太多改变就能解码多层比特流。与AVC和HEVC的多层扩展的设计相比,HLS方面已经在牺牲一些灵活性的情况下被显著简化。例如,需要IRAPAU来包含用于CVS中存在的每个层的图片。
3.5.基于子图片的视口相关的360°视频流传输
在360o视频(又称为全向视频)的流传输中,在任何特定时刻仅将整个全向视频球体的子集合(即,当前视口)呈现给用户,而用户可以在任何时间转动他/她的头部以改变观看方向并且因此改变当前视口。虽然希望具有在客户端处可用的未被当前视口覆盖并且准备好仅在用户突然将他/她的观看方向改变到球体上的任何地方的情况下呈现给用户的区域的至少一些较低质量的表示,但是对于现在正呈现给使用的当前视口需要全向视频的高质量表示。以适当的粒度将整个全向视频的高质量表示划分成子图片能够实现这种优化。使用VVC,该两个表示可以被编码为彼此独立的两个层。
图5中示出了典型的基于子图片的视口相关的360°视频传送方案,其中全视频的较高分辨率表示由子图片组成,而全视频的较低分辨率表示不使用子图片并且可以用比较高分辨率表示更不频繁的随机访问点来编解码。客户端接收较低分辨率的全视频,而对于较高分辨率的视频,它只接收和解码覆盖当前视口的子图片。
最新的VVC草案规范还支持如图6所示的改进的360°视频编解码方案。与图5中所示的方法相比,唯一的差别是对于图6中所示的方法应用层间预测(ILP)。
3.6.参数集
AVC、HEVC和VVC指定参数集。参数集的类型包括SPS、PPS、APS和VPS。在AVC、HEVC和VVC中都支持SPS和PPS。VPS从HEVC开始被引入并且被包括在HEVC和VVC两者中。APS不被包括在AVC或HEVC中,而是被包括在最新的VVC草案文本中。
SPS被设计为携带序列级别头信息,并且PPS被设计为携带不频繁改变的图片级别头信息。利用SPS和PPS,不频繁改变的信息不需要针对每个序列或图片重复,因此可以避免该信息的冗余信令。此外,SPS和PPS的使用实现了重要头信息的带外传输,因此不仅避免了对于冗余传输的需要,而且改善了差错弹性。
引入VPS以用于携带对于多层比特流中的所有层共同的序列级别头信息。
引入APS以用于携带需要相当多的比特来编解码、可以由多个图片共享、并且在序列中可以存在相当多的不同变化的这种图片级别或条带级别信息。
3.7.子图片子比特流提取处理
最新VVC文本的条款C.7规定了子图片子比特流提取处理,如下:
C.7子图片子比特流提取处理
该处理的输入是比特流inBitstream、目标OLS索引targetOlsIdx、目标最高TemporalId值tIdTarget、以及用于每个层的目标子图片索引值的阵列subpicIdxTarget[]。
该处理的输出是子比特流outBitstream。
对于输入比特流的比特流一致性要求满足所有以下条件的任何输出子比特流应当是一致比特流:
-输出子比特流是本条款中指定的处理的输出,其中对于比特流,targetOlsIdx等于由VPS指定的OLS列表的索引、并且subpicIdxTarget[]等于OLS中存在的子图片索引作为输入。
-输出子比特流包含至少一个VCL NAL单元,其nuh_layer_id等于LayerIdInOls[targetOlsIdx]中的nuh_layer_id值中的每个值。
-输出子比特流包含至少一个具有等于tIdTarget的TemporalId的VCL NAL单元。
注-一致比特流包含一个或多个TemporalId等于0的经编解码条带NAL单元,但是不必包含nuh_layer_id等于0的经编解码条带NAL单元。
-输出子比特流包含至少一个VCL NAL单元,对于在0到NumLayersInOls[targetOlsIdx]-1的范围内(包括端值)的每个i,其nuh_layer_id等于LayerIdInOls[targetOlsIdx][i]并且其中sh_subpic_id等于SubpicIdVal[subpicIdxTarget[i]]中的值。
输出子比特流outBitstream如下导出:
-利用inBitstream、targetOlsIdx和tIdTarget作为输入调用附录C.6中指定的子比特流提取处理,并且将该处理的输出分配给outBitstream。
-如果本规范中未指定的一些外部部件可以用于为子比特流outBitstream提供替换参数集,则用替换参数集替换所有参数集。
-否则,当子图片级别信息SEI消息存在于inBitstream中时,应用以下:
-变量subpicIdx被设置为等于subpicIdxTarget[[NumLayersInOls[targetOlsIdx]-1]]的值。
-将所有参考的VPS NAL单元中的profile_tier_level()语法结构的列表中的第vps_ols_ptl_idx[targetOlsIdx]个条目中的general_level_idc的值重写为等于等式D.11中针对由子图片索引等于subpicIdx的子图片组成的子图片集合导出的SubpicSetLevelIdc。
-当存在VCL HRD参数或NAL HRD参数时,在所有参考的VPS NAL单元中的第vps_ols_hrd_idx[MultiLayerOlsIdx[targetOlsIdx]]个ols_hrd_parameters()语法结构中以及在由第i层参考的所有SPSNAL单元中的ols_hrd_parameters()语法结构中重写第j个CPB的cpb_size_value_minus1[tIdTarget][j]和bit_rate_value_minus1[tIdTarget][j]的相应值,使得它们对应于分别由等式D.6和D.7导出的SubpicCpbSizeVcl[SubpicSetLevelIdx][subpicIdx]和SubpicCpbSizeNal[SubpicSetLevelIdx][subpicIdx],分别由等式D.8和D.9导出的SubpicBitrateVcl[SubpicSetLevelIdx][subpicIdx]和SubpicBitrateNal[SubpicSetLevelIdx][subpicIdx],其中SubpicSetLevelIdx对于具有等于subpicIdx的子图片索引的子图片由等式D.11导出,j在0到hrd_cpb_cnt_minus1的范围内(包括端值),并且i在0到NumLayersInOls[targetOlsIdx]-1的范围内(包括端值)。
对于i在0到NumLayersInOls[targetOlsIdx]-1范围内的第i层,以下适用。
-将sps_ptl_dpb_hrd_params_present_flag等于1的所有参考SPS NAL单元中的profile_tier_level()语法结构中的general_level_idc的值重写为等于针对由子图片索引等于subpicIdx的子图片组成的子图片集合由等式D.11导出的SubpicSetLevelIdc。
-变量subpicWidthInLumaSamples和subpicHeightInLumaSamples如下导出:
subpicWidthInLumaSamples=min((sps_subpic_ctu_top_left_x[subpicIdx]+
sps_subpic_width_minus1[subpicIdx]+1)*CtbSizeY,
pps_pic_width_in_luma_samples)-
sps_subpic_ctu_top_left_x[subpicIdx]*CtbSizeY (C.24)
subpicHeightInLumaSamples=min((sps_subpic_ctu_top_left_y[subpicIdx]
sps_subpic_height_minus1[subpicIdx]+1)*CtbSizeY,
pps_pic_height_in_luma_samples)-
sps_subpic_ctu_top_left_y[subpicIdx]*CtbSizeY (C.25)
-重写所有参考的SPS NAL单元中的sps_pic_width_max_in_luma_samples和sps_pic_height_max_in_luma_samples的值以及所有参考的PPS NAL单元中的pps_pic_width_in_luma_samples和pps_pic_height_in_luma_samples的值,以分别等于subpicWidthInLumaSamples和subpicHeightInLumaSamples。
-将所有参考的SPS NAL单元中的sps_num_subpics_minus1和所有参考的PPSNAL单元中的pps_num_subpics_minus1的值重写为0。
-当存在时,将所有参考的SPS NAL单元中的语法元素sps_subpic_ctu_top_left_x[subpicIdx]和sps_subpic_ctu_top_left_y[subpicIdx]重写为0。
-移除所有参考的SPS NAL单元中以及不等于subpicIdx的每个j的语法元素sps_subpic_ctu_top_left_x[j]、sps_subpic_ctu_top_left_y[j]、sps_subpic_width_minus1[j]、sps_subpic_height_minus1[j]、sps_subpic_treated_as_pic_flag[j]、sps_loop_filter_across_subpic_enabled_flag[j]和sps_subpic_id[j]。
-重写所有参考的PPS中的语法元素以用于用信号通知图块和条带,以移除与子图片索引等于subpicIdx的子图片不相关联的所有图块行、图块列和条带。
-变量subpicConfWinLeftOffset、subpicConfWinRightOffset、subpicConfWinTopOffset和subpicConfWinBottomOffset如下导出:
subpicConfWinLeftOffset=sps_subpic_ctu_top_left_x[subpicIdx]==0?
sps_conf_win_left_offset:0 (C.26)
subpicConfWinRightOffset=(sps_subpic_ctu_top_left_x[subpicIdx]+
sps_subpic_width_minus1[subpicIdx]+1)*CtbSizeY>=sps_pic_width_max_in_luma_samp les?sps_conf_win_right_offset:0 (C.27)
subpicConfWinTopOffset=sps_subpic_ctu_top_left_y[subpicIdx]==0?
sps_conf_win_top_offset:0 (C.28)
subpicConfWinBottomOffset=(sps_subpic_ctu_top_left_y[subpicIdx]+
sps_subpic_height_minus1[subpicIdx]+1)*CtbSizeY>=sps_pic_height_max_in_luma_sam ples?sps_conf_win_bottom_offset:0 (C.29)
-将所有参考的SPS NAL单元中的sps_conf_win_left_offset、sps_conf_win_right_offset、sps_conf_win_top_offset和sps_conf_win_bottom_offset的值以及所有参考的PPS NAL单元中的pps_conf_win_left_offset、pps_conf_win_right_offset,pps_conf_win_top_offset和pps_conf_win_bottom_offset的值分别重写为等于subpicConfWinLeftOffset、subpicConfWinRightOffset、subpicConfWinTopOffset和subpicConfWinBottomOffset。
-从outBitstream移除具有等于第i层的nuh_layer_id的nuh_layer_id并且具有不等于SubpicIdVal[subpicIdx]的sh_subpic_id的所有VCLNAL单元。
-当sli_cbr_constraint_flag等于1时,移除具有nal_unit_type等于FD_NUT以及与subpicIdTarget[]中的子图片的VCL NAL单元不相关联的填充符有效载荷SEI消息的所有NAL单元,以及将等于所有所参考的VPS NAL单元和SPS NAL单元中的第vps_ols_hrd_idx[MultiLayerOlsIdx[targetOlsIdx]]个ols_hrd_parameters()语法结构中的第j个CPB的cbr_flag[tIdTarget][j]设定为等于1、并且j在0到hrd_cpb_cnt_minus1的范围内。否则,(sli_cbr_constraint_flag等于0),清除具有nal_unit_type等于FD_NUT和填充符有效载荷SEI消息的所有NAL单元,以及将cbr_flag[tIdTarget][j]设定为等于0。
-当outBitstream包含含有可适用于outBitstream的sn_ols_flag等于1且sn_subpic_flag等于1的可缩放嵌套SEI消息的SEINAL单元时,从可缩放嵌套SEI消息中提取具有payloadType等于1(PT)、130(DUI)或132(解码图片散列)的适当的非可缩放嵌套SEI消息,并且将所提取的SEI消息放入outBitstream中。
4.技术方案解决的技术问题
最新VVC文本(JVET-R2001-vA/v10中)中的子图片子比特流提取处理的现有设计存在以下问题:
1)当从图片序列中提取矩形区域(其中该区域覆盖一个或多个子图片)时,为了保持缩放窗口与在原始比特流的编码期间使用的缩放窗口相同,PPS中的缩放窗口偏移参数将需要被重写,因为所提取的图片的图片宽度和/或高度已经改变。这在如图6所示的改进的360°视频编解码方案的场景中是特别需要的。然而,最新VVC文本中的子图片子比特流提取处理不必重写缩放窗口偏移参数。
2)在最新VVC文本中的子图片子比特流提取处理中,要求满足以下所有条件的任何输出子比特流都是一致比特流(conformingbitstream):
-输出子比特流是本条款中指定的处理的输出,其中对于比特流,targetOlsIdx等于由VPS指定的OLS列表的索引、并且subpicIdxTarget[]等于OLS中存在的子图片索引作为输入。
-输出子比特流包含至少一个VCL NAL单元,其nuh_layer_id等于LayerIdInOls[targetOlsIdx]中的nuh_layer_id值中的每个值。
-输出子比特流包含至少一个TemporalId等于tIdTarget的VCLNAL单元。
注-一致比特流包含一个或多个TemporalId等于0的编解码条带NAL单元,但是不必包含nuh_layer_id等于0的编解码条带NAL单元。
-输出子比特流包含至少一个VCL NAL单元,对于在0到NumLayersInOls[targetOlsIdx]-1的范围内(包括端值)的每个i,其nuh_layer_id等于LayerIdInOls[targetOlsIdx][i]并且其sh_subpic_id等于SubpicIdVal[subpicIdxTarget[i]]中的值。
然而,上述约束存在以下问题:
a.在第一项中,输入tIdTarget是缺失的。
b.与第一项相关联的另一问题如下。只有来自不同层的图片的子图片的某些组合而不是所有组合可以形成一致比特流。
3)仅当没有用于替换参数集的外部部件时,才进行VCLNAL单元以及其相关联的填充符数据NAL单元和相关联的填充符有效载荷SEI消息等的移除。然而,当存在用于替换参数集的外部部件时也需要这种移除。
4)填充符有效载荷SEI消息的当前移除可能涉及SEINAL单元的重写。
5)子图片级别信息(SLI)SEI消息被指定为层特定的。然而,SLI SEI消息被用在子图片子比特流提取处理中,就好像该信息应用于所有层的子图片一样。
6)可缩放嵌套SEI消息可以用于嵌套用于某些OLS的某些提取的子图片序列的SEI消息。然而,由于使用了措辞“在该CLVS中(in the CLVS)”或“在CLVS中(in a CLVS)”,因此sn_num_subpics_minus1和sn_subpic_id_len_minus1的语义被指定为层特定的。
7)需要改变一些方面来支持比特流的提取,如图6的下部,其中在发送到解码器的提取的比特流中,原始比特流中包含多个子图片的图片现在包含较少的子图片,而只包含一个子图片的图片保持不变。
5.解决方案和实施例的示例
为了解决上述问题和其它问题,公开了如下概述的方法。这些项目应当被认为是解释一般概念的示例,而不应当以狭义的方式来解释。此外,这些项目可以单独应用或以任何方式组合应用。在以下描述中,从相关规范中添加或修改的部分以粗体和斜体突出显示,并且一些删除的部分用双括号标记(例如,[[a]]表示字符“a”的删除)。可能存在一些其它的实质上是编辑性的并且因此未被突出显示的变化。
1)为了解决问题1,缩放窗口偏移参数(诸如在PPS中)的计算和重写被指定为子图片子比特流提取处理的一部分。
a.在一个示例中,如下计算和重写缩放窗口偏移参数:
-变量subpicScalWinLeftOffset、subpicScalWinRightOffset、subpicScalWinTopOffset和subpicScalWinBotOffset如下导出:
subpicScalWinLeftOffset=pps_scaling_win_left_offset-
sps_subpic_ctu_top_left_x[spIdx]*CtbSizeY/SubWidthC
rightSubpicBd=(sps_subpic_ctu_top_left_x[spIdx]+
sps_subpic_width_minus1[spIdx]+1)*CtbSizeY (C.30)
subpicScalWinRightOffset=
(rightSubpicBd>=sps_pic_width_max_in_luma_samples)? (C.31)
pps_scaling_win_right_offset:pps_scaling_win_right_offset-
(sps_pic_width_max_in_luma_samples-rightSubpicBd)/
SubWidthC
subpicScalWinTopOffset=pps_scaling_win_top_offset- (C.32)
sps_subpic_ctu_top_left_y[spIdx]*CtbSizeY/SubHeightC
botSubpicBd=(sps_subpic_ctu_top_left_y[spIdx]+
sps_subpic_height_minus1[spIdx]+1)*CtbSizeY
subpicScalWinBotOffset=
(botSubpicBd>=sps_pic_height_max_in_luma_samples)? (C.33)
pps_scaling_win_bottom_offset:pps_scaling_win_bottom_offset-
(sps_pic_height_max_in_luma_samples-botSubpicBd)/
SubHeightC
其中上述等式中的sps_subpic_ctu_top_left_x[spIdx]、sps_subpic_width_minus1[spIdx]、sps_subpic_height_minus1[spIdx]、sps_pic_width_max_in_luma_samples和sps_pic_height_in_luma_samples在它们被重写之前来自原始SPS,并且上述中的pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset和pps_scaling_win_bottom_offset在它们被重写之前来自原始PPS。
-将所有参考的PPS NAL单元中的pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset和pps_scaling_win_bottom_offset的值重写为分别等于subpicScalWinLeftOffset、subpicScalWinRightOffset、subpicScalWinTopOffset和subpicScalWinBotOffset。
b.在一个示例中,上述等式中的sps_pic_width_max_in_luma_samples和sps_pic_height_max_in_luma_samples分别被pps_pic_width_in_luma_samples和pps_pic_width_in_luma_samples替换,并且pps_pic_width_in_luma_samples是在它们被重写之前在原始PPS中的值。
c.此外,在一个示例中,当改变时重写SPS中的参考样点使能标志(例如,sps_ref_pic_resampling_enabled_flag),并且当改变时重写SPS中的CLVS中分辨率改变允许标志(例如,sps_res_change_in_clvs_allowed_flag)。
2)为了解决问题2a和2b,提出以下方法。
a.为了解决问题2a,添加缺失的输入tIdTarget,例如,通过将以下内容:
-输出子比特流是本条款中指定的处理的输出,其中对于比特流,targetOlsIdx等于由VPS指定的OLS列表的索引、并且subpicIdxTarget[]等于OLS中存在的子图片索引作为输入。
改变为以下内容:
-输出子比特流是本条款中指定的处理的输出,其中对于比特流,targetOlsIdx等于由VPS指定的OLS列表的索引、
b.为了解决问题2b,清楚地指定当提取时不同层的子图片的哪个组合需要是一致比特流,例如如下:
输入比特流的比特流一致性要求满足所有以下条件的任何输出子比特流应当是一致比特流:
-输出子比特流是本条款中指定的处理的输出,其中对于比特流,targetOlsIdx等于由VPS指定的OLS列表的索引、tIdTarget等于0到vps_max_sublayers_minus1范围内(包括端值)的任何值、并且满足以下条件的
-输出子比特流包含至少一个VCLNAL单元,其nuh_layer_id等于列表LayerIdInOls[targetOlsIdx]中的nuh_layer_id值中的每个值。
-输出子比特流包含至少一个具有等于tIdTarget的TemporalId的VCL NAL单元。
注-一致比特流包含一个或多个TemporalId等于0的经编解码条带NAL单元,但是不必包含nuh_layer_id等于0的经编解码条带NAL单元。
-输出子比特流包含至少一个VCL NAL单元,对于在0到NumLayersInOls[targetOlsIdx]-1的范围内(包括端值)的每个i,其nuh_layer_id等于LayerIdInOls[targetOlsIdx][i]并且其sh_subpic_id等于SubpicIdVal[subpicIdxTarget[i]]。
3)为了解决问题3,不管是否存在用于替换参数集的外部部件,都执行VCLNAL单元以及其相关联的填充符数据NAL单元和相关联的填充符有效载荷SEI消息等的移除。
4)为了解决问题4,添加约束以要求包含填充符有效载荷SEI消息的SEI NAL单元不包含其它类型的SEI消息,并且将填充符有效载荷SEI消息的移除指定为包含填充符有效载荷SEI消息的SEI NAL单元的移除。
5)为了解决问题5,指定以使得基于SLI SEI消息导出的或在SLI SEI消息中发现的SubpicSetLevelIdc、SubpicCpbSizeVcl[SubpicSetLevelIdx][subpicIdx]、SubpicCpbSizeNal[SubpicSetLevelIdx][subpicIdx]、SubpicBitrateVcl[SubpicSetLevelIdx][subpicIdx]、SubpicBitrateNal[SubpicSetLevelIdx][subpicIdx]和sli_cbr_constraint_flag中的一个或多个的值分别对于提取处理的目标OLS中的所有层是相同的。
a.在一个示例中,约束的是,为了与多层OLS一起使用,SLI SEI消息应当被包含在可缩放嵌套SEI消息中并且应当在可缩放嵌套SEI消息中被指示以应用于至少包括该多层OLS的特定OLS(即,当sn_ols_flag等于1时)。
i.此外,值203(SLI SEI消息的payloadType值)从列表VclAssociatedSeiList中被移除,以使SLI消息能够被包含在可缩放嵌套SEI消息中,其中sn_ols_flag等于1。
b.在一个示例中,约束的是,为了与多层OLS一起使用,SLI SEI消息应当被包含在可缩放嵌套SEI消息中并且应当在可缩放嵌套SEI消息中被指示以应用于由该多层OLS的所有层组成的特定层的列表(即,sn_ols_flag等于1)。
c.在一个示例中,将SLI SEI消息指定为OLS特定的,例如,通过将OLS索引添加到SLI SEI消息语法以指示SEI消息中携带的信息所应用的OLS。
i.可选地,将OLS索引列表添加到SLI SEI消息语法中,以指示SEI消息中携带的信息所应用的OLS列表。
d.在一个示例中,要求用于OLS的所有层的所有SLI SEI消息中的SubpicSetLevelIdc、SubpicCpbSizeVcl[SubpicSetLevelIdx][subpicIdx]、SubpicCpbSizeNal[SubpicSetLevelIdx][subpicIdx]、SubpicBitrateVcl[SubpicSetLevelIdx][subpicIdx]、SubpicBitrateNal[SubpicSetLevelIdx][subpicIdx]以及sli_cbr_constraint_flag中的一个或多个的值应当分别是相同的。
6)为了解决问题6,语义从以下内容:
sn_num_subpics_minus1加1指定可缩放嵌套SEI消息所应用的子图片的数目。sn_num_subpics_minus1的值应当小于或等于由CLVS中图片参考的SPS中的sps_num_subpics_minus1的值。
sn_subpic_id_len_minus1加1指定用于表示语法元素sn_subpic_id[i]的比特数目。sn_subpic_id_len_minus1的值应当在0到15的范围内(包括端值)。
比特流一致性的要求是,对于CLVS中存在的所有可缩放嵌套SEI消息,sn_subpic_id_len_minus1的值应当相同。
改变为以下内容:
sn_num_subpics_minus1加1指定可缩放嵌套SEI消息所应用的
sn_subpic_id_len_minus1加1指定用于表示语法元素sn_subpic_id[i]的比特数目。sn_subpic_id_len_minus1的值应当在0到15的范围内(包括端值)。
比特流一致性的要求是,对于[[CLVS中存在的]]
7)为了解决问题7,提出以下方法:
a.在一个示例中,清楚地指定了不同层的子图片的哪个组合当被提取时被要求是一致比特流,例如如下,其中存在至少两个层,其中一个层的图片包括多个子图片并且另一层的图片仅包括一个子图片:
对于输入比特流的比特流一致性要求满足所有以下条件的任何输出子比特流应当是一致比特流:
-输出子比特流是本条款中指定的处理的输出,其中对于比特流,targetOlsIdx等于由VPS指定的OLS列表的索引、
-输出子比特流包含至少一个VCL NAL单元,其nuh_layer_id等于LayerIdInOls[targetOlsIdx]中的nuh_layer_id值中的每个值。
-输出子比特流包含至少一个具有等于tIdTarget的TemporalId的VCL NAL单元。
注2-一致比特流包含一个或多个TemporalId等于0的经编解码条带NAL单元,但是不必包含nuh_layer_id等于0的经编解码条带NAL单元。
-输出子比特流包含至少一个VCL NAL单元,对于在0到NumLayersInOls[targetOlsIdx]-1的范围内(包括端值)的每个i,其nuh_layer_id等于LayerIdInOls[targetOlsIdx][i]并且其sh_subpic_id等于SubpicIdVal[subpicIdxTarget[i]]中的值。
b.可缩放嵌套SEI消息的语义被指定,使得当sn_ols_flag和sn_subpic_flag都等于1时,sn_subpic_id[]值的列表指定可应用的OLS中的图片中的子图片的子图片ID,该图片各自包含多个子图片。这样,允许可缩放嵌套SEI消息所应用的OLS具有其中每个图片仅包含一个子图片的层,对于该子图片,在可缩放嵌套SEI消息中不指示子图片ID。
8)如果第一图片被划分为与当前图片的子图片布局不同的子图片布局中的子图片,则要求第一参考图片不被设置为当前图片的共位图片。
a.在一个示例中,第一参考图片和当前图片在不同的层中。
9)如果编解码工具X依赖于第一参考图片,并且第一参考图片被划分为与当前图片的子图片布局不同的子图片布局中的子图片,则要求对于当前图片禁用该编解码工具X。
a.在一个示例中,第一参考图片和当前图片在不同的层中。
b.在一个示例中,编解码工具X是双向光流(BDOF)。
c.在一个示例中,编解码工具X是解码器侧运动矢量细化(DMVR)。
d.在一个示例中,编解码工具X是具有光流的预测细化(PROF)。
6.实施例
以下是可以应用于VVC规范的以上第5节中概述的用于本发明的一些方面的一些示例实施例。修改后的文本基于JVET-R2001-vA/v10中的最新VVC文本。已添加或修改的大多数相关部分以粗斜体突出显示,一些已删除部分用双括号标记(例如,[[a]]表示删除字符“a”)。可能存在一些其它的实质上是编辑性的并且因此未被突出显示的变化。
6.1.第一实施例
该实施例针对项目1、1.a、2a、2b、3、4、5、5a、5.a.i和6。
C.7子图片子比特流提取处理
该处理的输入是比特流inBitstream、目标OLS索引targetOlsIdx、目标最高TemporalId值tIdTarget、以及对于
该处理的输出是子比特流outBitstream。
对于输入比特流的比特流一致性要求满足所有以下条件的任何输出子比特流应当是一致比特流:
-输出子比特流是本条款中指定的处理的输出,其中对于比特流,targetOlsIdx等于由VPS指定的OLS列表的索引、
为了与多层OLS一起使用,SLI SEI消息应当被包含在可缩放嵌套SEI消息中,并且应当被指示在可缩放嵌套SEI消息中以应用于特定OLS或应用于特定OLS中的所有层。
-输出子比特流包含至少一个VCLNAL单元,其nuh_layer_id等于列表LayerIdInOls[targetOlsIdx]中的nuh_layer_id值中的每个值。
-输出子比特流包含至少一个具有等于tIdTarget的TemporalId的VCL NAL单元。
注-一致比特流包含一个或多个TemporalId等于0的经编解码条带NAL单元,但是不必包含nuh_layer_id等于0的经编解码条带NAL单元。
-输出子比特流包含至少一个VCL NAL单元,对于在0到NumLayersInOls[targetOlsIdx]-1的范围内(包括端值)的每个i,其nuh_layer_id等于LayerIdInOls[targetOlsIdx][i]并且其sh_subpic_id等于SubpicIdVal[subpicIdxTarget[i]][[中的值]]。
输出子比特流outBitstream导出如下:
-利用inBitstream、targetOlsIdx和tIdTarget作为输入调用附录C.6中指定的子比特流提取处理,并且将该处理的输出分配给outBitstream。
-如果本规范中未指定的一些外部部件可以用于为子比特流outBitstream提供替换参数集,则用替换参数集替换所有参数集。
-否则,当子图片级别信息SEI消息存在于inBitstream中时,应用以下:
-[[变量subpicIdx被设置为等于subpicIdxTarget[[NumLayersInOls[targetOlsIdx]-1]]的值。]]
-将所有参考的VPS NAL单元中的profile_tier_level()语法结构的列表中的第vps_ols_ptl_idx[targetOlsIdx]个条目中的general_level_idc的值重写为等于等式D.11中针对由子图片索引等于subpicIdx的子图片组成的子图片集合导出的SubpicSetLevelIdc。
-当存在VCLHRD参数或NAL HRD参数时,在所有参考的VPS NAL单元中的第vps_ols_hrd_idx[MultiLayerOlsIdx[targetOlsIdx]]个ols_hrd_parameters()语法结构中以及在由第i层参考的所有SPS NAL单元中的ols_hrd_parameters()语法结构中重写第j个CPB的cpb_size_value_minus1[tIdTarget][j]和bit_rate_value_minus1[tIdTarget][j]的相应值,使得它们对应于分别由等式D.6和D.7导出的SubpicCpbSizeVcl[SubpicSetLevelIdx][subpicIdx]和SubpicCpbSizeNal[SubpicSetLevelIdx][subpicIdx],分别由等式D.8和D.9导出的SubpicBitrateVcl[SubpicSetLevelIdx][subpicIdx]和SubpicBitrateNal[SubpicSetLevelIdx][subpicIdx],其中SubpicSetLevelIdx对于具有等于subpicIdx的子图片索引的子图片由等式D.11导出,j在0到hrd_cpb_cnt_minus1的范围内(包括端值),并且i在0到NumLayersInOls[targetOlsIdx]-1的范围内(包括端值)。
-对于i在0到NumLayersInOls[targetOlsIdx]-1范围内的[[第i层]]每个值,以下适用。
-将sps_ptl_dpb_hrd_params_present_flag等于1的所有参考SPS NAL单元中的profile_tier_level()语法结构中的general_level_idc的值重写为等于针对由子图片索引等于subpicIdx的子图片组成的子图片集合由等式D.11导出的SubpicSetLevelIdc。
-变量subpicWidthInLumaSamples和subpicHeightInLumaSamples如下导出:
subpicWidthInLumaSamples=min((sps_subpic_ctu_top_left_x[spIdx]+(C.24)
sps_subpic_width_minus1[spIdx]+1)*CtbSizeY,pps_pic_width_in_luma_samples)-
sps_subpic_ctu_top_left_x[spIdx]*CtbSizeY
subpicHeightInLumaSamples=min((sps_subpic_ctu_top_left_y[spIdx]+(C.25)
sps_subpic_height_minus1[spIdx]+1)*CtbSizeY,pps_pic_height_in_luma_samples)-
sps_subpic_ctu_top_left_y[spIdx]*CtbSizeY
-重写所有参考的SPS NAL单元中的sps_pic_width_max_in_luma_samples和sps_pic_height_max_in_luma_samples的值以及所有参考的PPS NAL单元中的pps_pic_width_in_luma_samples和pps_pic_height_in_luma_samples的值,以分别等于subpicWidthInLumaSamples和subpicHeightInLumaSamples。
-将所有参考的SPS NAL单元中的sps_num_subpics_minus1和所有参考的PPSNAL单元中的pps_num_subpics_minus1的值重写为0。
-当存在时,将所有参考的SPS NAL单元中的语法元素sps_subpic_ctu_top_left_x[spIdx]和sps_subpic_ctu_top_left_y[spIdx]重写为0。
-移除所有参考的SPS NAL单元中以及不等于subpicIdx的每个j的语法元素sps_subpic_ctu_top_left_x[j]、sps_subpic_ctu_top_left_y[j]、sps_subpic_width_minus1[j]、sps_subpic_height_minus1[j]、sps_subpic_treated_as_pic_flag[j]、sps_loop_filter_across_subpic_enabled_flag[j]和sps_subpic_id[j]。
-重写所有参考的PPS中的语法元素以用于用信号通知图块和条带,以移除与子图片索引等于subpicIdx的子图片不相关联的所有图块行、图块列和条带。
-变量subpicConfWinLeftOffset、subpicConfWinRightOffset、subpicConfWinTopOffset和subpicConfWinBottomOffset如下导出:
subpicConfWinLeftOffset=sps_subpic_ctu_top_left_x[spIdx]==0?
sps_conf_win_left_offset:0 (C.26)
subpicConfWinRightOffset=(sps_subpic_ctu_top_left_x[spIdx]+
sps_subpic_width_minus1[spIdx]+1)*CtbSizeY>=
sps_pic_width_max_in_luma_samples?sps_conf_win_right_offset:0 (C.27)
subpicConfWinTopOffset=sps_subpic_ctu_top_left_y[spIdx]==0?
sps_conf_win_top_offset:0 (C.28)
-将所有参考的SPS NAL单元中的sps_conf_win_left_offset、sps_conf_win_right_offset、sps_conf_win_top_offset和sps_conf_win_bottom_offset的值以及所有参考的PPS NAL单元中的pps_conf_win_left_offset、pps_conf_win_right_offset,pps_conf_win_top_offset和pps_conf_win_bottom_offset的值分别重写为等于subpicConfWinLeftOffset、subpicConfWinRightOffset、subpicConfWinTopOffset和subpicConfWinBottomOffset。
-[[从outBitstream移除具有等于第i层的nuh_layer_id的nuh_layer_id并且具有不等于SubpicIdVal[subpicIdx]的sh_subpic_id的所有VCL NAL单元。]]
-[[当]]如果sli_cbr_constraint_flag等于1[[时]],[[移除具有nal_unit_type等于FD_NUT以及与subpicIdTarget[]中的子图片的VCLNAL单元不相关联的填充符有效载荷SEI消息的所有NAL单元,以及]]将等于所有所参考的VPS NAL单元和SPS NAL单元中的第vps_ols_hrd_idx[MultiLayerOlsIdx[targetOlsIdx]]个ols_hrd_parameters()语法结构中的第j个CPB的cbr_flag[tIdTarget][j]设定为等于1、并且j在0到hrd_cpb_cnt_minus1的范围内。否则,(sli_cbr_constraint_flag等于0),[[清除具有nal_unit_type等于FD_NUT和填充符有效载荷SEI消息的所有NAL单元,以及]]将cbr_flag[tIdTarget][j]设定为等于0。
-当outBitstream包含含有可适用于outBitstream的sn_ols_flag等于1且sn_subpic_flag等于1的可缩放嵌套SEI消息的SEI NAL单元时,从可缩放嵌套SEI消息中提取具有payloadType等于1(PT)、130(DUI)或132(解码图片散列)的适当的非可缩放嵌套SEI消息,并且将所提取的SEI消息放入outBitstream中。
D2.2通用SEI有效载荷语义
...
列表VclAssociatedSeiList被设置为由payloadType值3、19、45、129、132、137、144、145、147至150(包括端值)、153至156(包括端值)、168、[[203、]]和204组成。
列表PicUnitRepConSeiList被设置为包括payloadType值0、1、19、45、129、132、133、137、147到150(包括端值)、153到156(包括端值)、168、203和204。
注4-VclAssociatedSeiList由SEI消息的payloadType值组成,该SEI消息当非可缩放嵌套并且被包含在SEI NAL单元中时,基于相关联VCL NAL单元的NAL单元头来推断对SEI NAL单元的NAL单元头的约束。PicUnitRepConSeiList由SEI消息的payloadType值组成,该SEI消息受到每个PU的4次重复的限制。
比特流一致性的要求是以下限制应用于在SEI NAL单元中包含SEI消息:
-当SEI NAL单元包含非可缩放嵌套BP SEI消息、非可缩放嵌套PT SEI消息或非可缩放嵌套DUI SEI消息时,SEI NAL单元不应当包含具有不等于0(BP)、1(PT)或130(DUI)的payloadType的任何其它SEI消息。
-当SEI NAL单元包含可缩放嵌套BP SEI消息、可缩放嵌套PT SEI消息或可缩放嵌套DUI SEI消息时,SEI NAL单元不应当包含具有不等于0(BP)、1(PT)、130(DUI)或133(可缩放嵌套)的payloadType的任何其它SEI消息。
...
D.6.2可缩放嵌套SEI消息语义
...
sn_num_subpics_minus1加1指定可缩放嵌套SEI消息所应用的OLS(当sn_ols_flag等于1时)中的图片中的每个图片或者层(当sn_ols_flag等于0时)中的子图片的数目。sn_num_subpics_minus1的值应当小于或等于由[[CLVS中的]]OLS中的图片(当sn_ols_flag等于1时)或者层(当sn_ols_flag等于0时)参考的SPS中的每个SPS中的sps_num_subpics_minus1的值。
sn_subpic_id_len_minus1加1指定用于表示语法元素sn_subpic_id[i]的比特数。sn_subpic_id_len_minus1的值应当在0到15(包括端值)的范围内。
比特流一致性的要求是,对于[[CLVS中存在的]]应用于CLVS内的图片的所有可缩放嵌套SEI消息,sn_subpic_id_len_minus1的值应当相同。
...
图7是示出其中可以实施本文所公开的各种技术的示例视频处理系统1900的框图。各种实施方式可以包括系统1900的一些或全部组件。系统1900可以包括用于接收视频内容的输入1902。视频内容可以以原始或未压缩格式(例如,8或10比特多分量像素值)被接收,或者可以以经压缩或经编码格式被接收。输入1902可以表示网络接口、外围总线接口或储存接口。网络接口的示例包括有线接口,诸如以太网、无源光网络(PON)等,以及无线接口,诸如Wi-Fi或蜂窝接口。
系统1900可以包括编解码组件1904,其可以实现本文档中描述的各种编解码或编码方法。编解码组件1904可以降低用以产生视频的编解码表示的从输入1902到编解码组件1904的输出的视频的平均比特率。因此,编解码技术有时被称为视频压缩或视频转码(transcoding)技术。编解码组件1904的输出可以被存储或经由如组件1906所表示的连接的通信来传输。在输入1902处接收到的视频的经存储或经通信的比特流(或经编解码的)表示可以由组件1908使用,以用于生成像素值或被发送到显示接口1910的可显示视频。从比特流表示生成用户可见视频的处理有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但将理解,在编码器处使用编解码工具或操作,并且解码器将进行反转该编解码的结果的相应的解码工具或操作。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示端口等。储存接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能手机或者能够执行数字数据处理和/或视频显示的其他设备。
图8是视频处理装置3600的框图。装置3600可以用于实现本文描述的一个或多个方法。装置3600可以体现在智能电话、平板电脑、计算机、物联网(IoT)接收器等中。装置3600可以包括一个或多个处理器3602、一个或多个存储器3604以及视频处理硬件3606。(多个)处理器3602可以被配置为实现在本文档中描述的一个或多个方法。存储器(多个存储器)3604可以被用于存储用于实施本文所描述的方法和技术的数据和代码。视频处理硬件3606可以用于在硬件电路中实现本文档中描述的一些技术。
图10是图示可以利用本公开的技术的示例视频编解码系统100的框图。
如图10所示,视频编解码系统100可以包括源设备110和目的地设备120。可以被称为视频编码设备的源设备110生成经编码视频数据。可以被称为视频解码设备的目的地设备120可以解码由源设备110生成的经编码视频数据。
源设备110可以包括视频源112、视频编码器114和输入/输出(I/O)接口116。
视频源112可以包括诸如视频捕获设备的源、从视频内容提供者接收视频数据的接口、和/或用于生成视频数据的计算机图形系统、或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特的序列。比特流可以包括编解码图片和相关联数据。编解码图片是图片的编解码表示。相关联数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口116可以包括调制器/解调器(调制解调器)和/或发送器。经编码视频数据可以经由I/O接口116通过网络130a被直接发送到目的地设备120。经编码视频数据还可被存储到储存介质/服务器130b上以用于由目的地设备120访问。
目的地设备120可以包括I/O接口126、视频解码器124和显示设备122。
I/O接口126可以包括接收器和/或调制解调器。I/O接口126可以从源设备110或储存介质/服务器130b获取经编码视频数据。视频解码器124可以解码经编码视频数据。显示设备122可以向用户显示解码视频数据。显示设备122可以与目的地设备120集成,或者可以在被配置为与外部显示设备接口的目的地设备120的外部。
视频编码器114和视频解码器124可以根据视频压缩标准(诸如高效率视频编解码(HEVC)标准、通用视频编解码(VVM)标准以及其它当前和/或其它标准)来操作。
图11是图示视频编码器200的示例的框图,视频编码器200可以为图10中所图示的系统100中的视频编码器114。
视频编码器200可以被配置为进行本公开的任何或所有技术。在图11的示例中,视频编码器200包括多个功能组件。本公开中所描述的技术可以在视频编码器200的各种组件当中共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
视频编码器200的功能组件可以包括分割单元201、预测单元202(其可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206)、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓存器213以及熵编码单元214。
在其它示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(IBC)单元。IBC单元可以在IBC模式下进行预测,其中至少一个参考图片是当前视频块所在的图片。
此外,一些组件(诸如运动估计单元204和运动补偿单元205)可以被高度集成,但出于解释的目的而在图11的示例中单独表示。
分割单元201可以将图片分割为一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块大小。
模式选择单元203可以(例如,基于错误结果)选择帧内或帧间编解码模式中的一者,以及将所得帧内或帧间经编解码块提供到残差生成单元207以生成残差块数据、并且提供到重构单元212以重构经编码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测(CIIP)模式的组合,其中预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还选择针对块的运动向量的分辨率(例如,子像素或整数像素精度)。
为了对当前视频块进行帧间预测,运动估计单元204可以通过将来自缓存器213的一个或多个参考帧与当前视频块进行比较来生成用于当前视频块的运动信息。运动补偿单元205可以基于运动信息和来自缓存器213的不同于与当前视频块相关联的图片的图片的解码样点来确定用于当前视频块的经预测视频块。
运动估计单元204和运动补偿单元205可以对当前视频块进行不同的操作,例如,取决于当前视频块是处于I条带、P条带还是B条带中。
在一些示例中,运动估计单元204可以对当前视频块进行单向预测,并且运动估计单元204可以针对当前视频块的参考视频块搜索列表0或列表1的参考图片。运动估计单元204接着可以生成指示包含参考视频块的列表0或列表1中的参考图片的参考索引以及指示当前视频块与参考视频块之间的空间移位的运动向量。运动估计单元204可以输出参考索引、预测方向指示符和运动向量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的经预测视频块。
在其它示例中,运动估计单元204可以对当前视频块进行双向预测,运动估计单元204可以针对当前视频块的参考视频块搜索列表0中的参考图片,并且还可以针对当前视频块的另一参考视频块搜索列表1中的参考图片。运动估计单元204接着可以生成指示列表0和列表1中包含参考视频块的参考图片的参考索引以及指示参考视频块与当前视频块之间的空间移位的运动向量。运动估计单元204可以输出当前视频块的参考索引和运动向量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的经预测视频块。
在一些示例中,运动估计单元204可以输出运动信息的完整集合以用于解码器的解码处理。
在一些示例中,运动估计单元204可以不输出当前视频的运动信息的完整集合。相反,运动估计单元204可以参考另一视频块的运动信息用信号通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与相邻视频块的运动信息充分相似。
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示向视频解码器300指示当前视频块具有与另一视频块相同的运动信息的值。
在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一视频块和运动向量差(MVD)。运动向量差指示当前视频块的运动向量与所指示的视频块的运动向量之间的差。视频解码器300可以使用所指示的视频块的运动向量和运动向量差以确定当前视频块的运动向量。
如上所讨论,视频编码器200可以预测地用信号通知运动向量。可以由视频编码器200实施的预测性信令的技术的两个示例包括高级运动向量预测(AMVP)和合并模式信令。
帧内预测单元206可以对当前视频块进行帧内预测。当帧内预测单元206对当前视频块进行帧内预测时,帧内预测单元206可以基于同一图片中的其它视频块的解码样点来生成用于当前视频块的预测数据。用于当前视频块的预测数据可以包括经预测视频块和各种语法元素。
残差生成单元207可以通过从当前视频块减去(例如,由减号指示)当前视频块的(多个)经预测视频块来生成用于当前视频块的残差数据。当前视频块的残差数据可以包括与当前视频块中的样点的不同样点分量相对应的残差视频块。
在其它示例中,例如在跳过模式中,用于当前视频块的当前视频块可以不存在残差数据,并且残差生成单元207可以不进行减法操作。
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来生成用于当前视频块的一个或多个变换系数视频块。
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(QP)值来量化与当前视频块相关联的变换系数视频块。
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元212可以将经重构残差视频块添加到来自由预测单元202生成的一个或多个经预测视频块的对应样点,以产生与当前块相关联的经重构视频块以用于存储在缓存器213中。
在重构单元212重构视频块之后,可以进行环路滤波操作以减少视频块中的视频块伪影。
熵编码单元214可以从视频编码器200的其它功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以进行一个或多个熵编码操作以生成经熵编码数据并且输出包括经熵编码数据的比特流。
图12是图示视频解码器300的示例的框图,视频解码器300可以为图10中所图示的系统100中的视频解码器114。
视频解码器300可以被配置为进行本公开的任何或所有技术。在图12的示例中,视频解码器300包括多个功能组件。本公开中所描述的技术可以在视频解码器300的各种组件当中共享。在一些示例中,处理器可以被配置为进行本公开中描述的任何或所有技术。
在图12的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、以及重构单元306和缓存器307。在一些示例中,视频解码器300可以进行大体上与关于视频编码器200(图11)描述的编码回合相反的解码回合。
熵解码单元301可以取回经编码比特流。经编码比特流可以包括经熵编解码视频数据(例如,经编码视频数据块)。熵解码单元301可以对经熵编解码的视频数据进行解码,并且运动补偿单元302可以从经熵解码视频数据确定运动信息,包括运动向量、运动向量精度、参考图片列表索引和其它运动信息。例如,运动补偿单元302可以通过进行AMVP和合并模式来确定这种信息。
运动补偿单元302可以产生经运动补偿块,可能基于内插滤波器来进行内插。可以在语法元素中包括要以子像素精度使用的内插滤波器的标识符。
运动补偿单元302可以使用如由视频编码器200在对视频块进行编码期间所使用的内插滤波器来计算用于参考块的子整数像素的经内插值。运动补偿单元302可以根据所接收的语法信息确定视频编码器200所使用的内插滤波器,并且使用该内插滤波器以产生预测性块。
运动补偿单元302可以使用语法信息中的一些语法信息来确定:用于对经编码视频序列的(多个)帧和/或(多个)条带进行编码的块的大小、描述如何对经编码视频序列的图片的每个宏块进行分割的分割信息、指示如何对每个分割进行编码的模式、用于每个帧间经编码块的一个或多个参考帧(和参考帧列表)、以及用于对经编码视频序列进行解码的其它信息。
帧内预测单元303可以使用例如在比特流中接收到的帧内预测模式以从空间上相邻的块形成预测块。逆量化单元303对在比特流中提供并且由熵解码单元301解码的经量化视频块系数进行逆量化(即解量化)。逆变换单元303应用逆变换。
重构单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块求和,以形成解码块。如果需要,还可以应用去块滤波器来对解码块进行滤波,以移除块性伪影。解码视频块然后被存储在缓存器307中,缓存器307提供用于后续运动补偿/帧内预测的参考块,并且还产生用于在显示设备上呈现的解码视频。
解决方案的列表描述了所公开技术的一些实施例。
接下来提供第一组解决方案。以下解决方案示出了在先前部分(例如,项目1)中讨论的技术的示例实施例。
1.一种视频处理方法(例如,图9中描绘的方法900),包括:在包括一个或多个视频图片的视频与视频的编解码表示之间进行(902)转换,该一个或多个视频图片包括一个或多个子图片,其中该编解码表示符合格式规则;其中该格式规则指定适用于子图片的缩放窗口的一个或多个参数基于被包括在该编解码表示中的一个或多个语法字段而被确定。
2.如解决方案1的方法,其中该一个或多个参数包括适用于该子图片的该缩放窗口的左偏移、右偏移、顶偏移或底偏移。
以下解决方案示出了在先前部分(例如,项目3)中讨论的技术的示例实施例。
3.一种视频处理方法,包括:在包括视频编解码层中的一个或多个视频图片的视频与视频的编解码表示之间进行转换,其中该转换符合规则,该规则指定无论参数集是否可在外部被替换,都进行网络抽象层单元以及滤波器数据和填充符补充增强信息数据的移除。
以下解决方案示出了在先前部分(例如,项目4)中讨论的技术的示例实施例。
4.一种视频处理方法,包括:在包括视频编解码层中的一个或多个视频图片的视频与视频的编解码表示之间进行转换,其中该转换符合格式规则,该格式规则指定从包括填充符SEI消息有效载荷的网络抽象层中排除其它补充增强信息(SEI)。
5.如解决方案1的方法,其中该转换符合规则,该规则指定将填充符有效载荷SEI消息移除作为SEI NAL单元。
以下解决方案示出了在先前部分(例如,项目7)中讨论的技术的示例实施例。
6.一种视频处理方法,包括:在包括一个或多个层的视频与视频的编解码表示之间进行转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,其中该转换根据指定不同层的子图片的哪个组合被要求符合格式规则,其中存在至少两个层,使得一个层的图片各自由多个子图片组成而另一层的图片各自仅由一个子图片组成。
以下解决方案示出了在先前部分(例如,项目8)中讨论的技术的示例实施例。
7.一种视频处理方法,包括:在包括一个或多个层的视频与视频的编解码表示之间进行转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,其中该转换符合规则,该规则指定:对于使用子图片布局被划分为子图片的第一图片,在第二图片根据与该第一图片不同的子图片布局被划分的情况下,该第二图片不能被用作共位的参考图片。
8.如解决方案7的方法,其中该第一图片和该第二图片在不同层中。
以下解决方案示出了在先前部分(例如,项目9)中讨论的技术的示例实施例。
9.一种视频处理方法,包括:在包括一个或多个层的视频与视频的编解码表示之间进行转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,其中该转换符合规则,该规则指定:对于使用子图片布局被划分为子图片的第一图片,在编解码工具依赖于与用于作为该第一图片的参考图片的第二图片不同的子图片布局的情况下,在编码期间该编码工具的使用、或者在解码期间对应的解码工具的使用被禁止。
10.如解决方案9的方法,其中该第一图片和该第二图片在不同层中。
11.如解决方案1至10中任一项的方法,其中该转换包括将该视频编码为该编解码表示。
12.如解决方案1至10中任一项的方法,其中该转换包括解码该编解码表示以生成该视频的像素值。
13.一种视频解码装置,包括被配置为实施解决方案1至12中的一项或多项中记载的方法的处理器。
14.一种视频编码装置,包括被配置为实施解决方案1至12中的一项或多项中记载的方法的处理器。
15.一种其上存储有计算机代码的计算机程序产品,该代码在由处理器执行时使该处理器实施解决方案1至12中的任一项中记载的方法。
16.一种在本文档中描述的方法、装置或系统。
第二组解决方案示出了在前面部分(例如,项目1)中讨论的技术的示例实施例。
1.一种视频处理方法(例如,如图13所示的方法1300),包括:在包括一个或多个视频图片的视频与该视频的比特流之间进行1302转换,该一个或多个视频图片包括一个或多个子图片,其中所述转换符合规则,所述规则指定在子图片子比特流提取处理期间从一个或多个语法元素确定适用于子图片的缩放窗口的一个或多个参数。
2.根据解决方案1所述的方法,其中所述一个或多个语法元素包括在原始图片参数集和/或原始序列参数集中。
3.根据解决方案1或2所述的方法,其中所述原始图片参数集和/或所述原始序列参数集随着计算和重写所述一个或多个参数而改变。
4.根据解决方案1至3中任一项所述的方法,其中所述一个或多个参数包括适用于所述子图片的所述缩放窗口的左偏移、右偏移、顶偏移或底偏移中的至少一项。
5.根据解决方案1至4中任一项所述的方法,其中如下导出所述缩放窗口的左偏移(subpicScalWinLeftOffset):
subpicScalWinLeftOffset=pps_scaling_win_left_offset-sps_subpic_ctu_top_left_x[spIdx]*CtbSizeY/SubWidthC,并且
其中pps_scaling_win_left_offset指示被应用于图片大小的用于缩放比率计算的左偏移,sps_subpic_ctu_top_left_x[spIdx]指示位于所述子图片的左上角的编解码树单元的x坐标,CtbSizeY是亮度编解码树块或编解码树单元的宽度或高度,并且SubWidthC指示视频块的宽度并且根据包括所述视频块的图片的色度格式而从表中获得。
6.根据解决方案1至4中任一项所述的方法,其中如下导出所述缩放窗口的右偏移subpicScalWinRightOffset:
subpicScalWinRightOffset=(rightSubpicBd>=sps_pic_width_max_in_luma_samples)?pps_scaling_win_right_offset:pps_scaling_win_right_offset-
(sps_pic_width_max_in_luma_samples-rightSubpicBd)/SubWidthC,并且
其中,sps_pic_width_max_in_luma_samples指定以亮度样点为单位的参考序列参数集的每个经解码图片的最大宽度,pps_scaling_win_right_offset指示应用于图片大小的用于缩放比率计算的右偏移,SubWidthC指示视频块的宽度并且根据包括所述视频块的图片的色度格式而从表中获得,以及
rightSubpicBd=(sps_subpic_ctu_top_left_x[spIdx]+sps_subpic_width_minus1[spIdx]+1)*CtbSizeY,并且
其中sps_subpic_ctu_top_left_x[spIdx]指示位于所述子图片左上角的编解码树单元的x坐标,sps_subpic_width_minus1[spIdx]指示所述子图片的宽度,并且CtbSizeY是亮度编解码树块或编解码树单元的宽度或高度。
7.根据解决方案1至4中任一项所述的方法,其中如下导出所述缩放窗口的所述顶偏移subpicScalWinTopOffset:
subpicScalWinTopOffset=pps_scaling_win_top_offset-
sps_subpic_ctu_top_left_y[spIdx]*CtbSizeY/SubHeightC,
其中pps_scaling_win_top_offset指示应用于图片大小的用于缩放比率计算的顶偏移,sps_subpic_ctu_top_left_y[spIdx]指示位于所述子图片的左上角的编解码树单元的y坐标,CtbSizeY是亮度编解码树块或编解码树单元的宽度或高度,并且SubHightC指示视频块的高度并且根据包括所述视频块的图片的色度格式而从表中获得。
8.根据解决方案1至4中任一项所述的方法,其中如下导出所述缩放窗口的所述底偏移ubpicScalWinBotOffset:
subpicScalWinBotOffset=(botSubpicBd>=sps_pic_height_max_in_luma_samples)?pps_scaling_win_bottom_offset:pps_scaling_win_bottom_offset-(sps_pic_height_max_in_luma_samples-botSubpicBd)/SubHeightC,并且
其中sps_pic_height_max_in_luma_samples指示以亮度样点为单位的参考序列参数集的每个经解码图片的最大高度,pps_scaling_win_bottom_offset指示应用于图片大小的用于缩放比率计算的底偏移,SubHeightC指示视频块的高度并且根据包括所述视频块的图片的色度格式而从表中获得,以及
其中botSubpicBd=(sps_subpic_ctu_top_left_y[spIdx]+
sps_subpic_height_minus1[spIdx]+1)*CtbSizeY,并且
其中sps_subpic_ctu_top_left_y[spIdx]指示位于所述子图片的左上角的编解码树单元的y坐标,并且CtbSizeY是亮度编解码树块或编解码树单元的宽度或高度。
9.根据解决方案5至8中任一项所述的方法,其中sps_subpic_ctu_top_left_x[spIdx]、sps_subpic_width_minus1[spIdx]、sps_subpic_ctu_top_left_y[spIdx]、sps_subpic_height_minus1[spIdx]、sps_pic_width_max_in_luma_samples和sps_pic_height_max_in_luma_samples来自所述原始序列参数集,并且pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset和pps_scaling_win_bottom_offset来自所述原始图片参数集。
10.根据解决方案1至3中任一项所述的方法,其中所述规则指定将所有参考的图片参数集(PPS)网络抽象层(NAL)单元中的pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset和pps_scaling_win_bottom_offset的值分别重写为等于subpicScalWinLeftOffset、subpicScalWinRightOffset、subpicScalWinTopOffset和subpicScalWinBotOffset,并且
其中pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset和pps_scaling_win_bottom_offset分别指示应用于图片大小的用于缩放比率计算的左偏移、右偏移、顶偏移、底偏移,并且
其中subpicScalWinLeftOffset、subpicScalWinRightOffset、subpicScalWinTopOffset和subpicScalWinBotOffset分别指示适用于所述子图片的所述缩放窗口的左偏移、右偏移、顶偏移和底偏移。
11.根据解决方案1至4中任一项所述的方法,其中如下导出所述缩放窗口的底偏移subpicScalWinBotOffset:
subpicScalWinBotOffset=(botSubpicBd>=pps_pic_height_in_luma_samples)?pps_scaling_win_bottom_offset:pps_scaling_win_bottom_offset-(pps_pic_height_in_luma_samples-botSubpicBd)/SubHeightC,并且
其中pps_pic_height_max_in_luma_samples指示以亮度样点为单位的参考图片参数集的每个经解码图片的最大高度,pps_scaling_win_bottom_offset指示应用于图片大小的用于缩放比率计算的底偏移,SubHeightC指示视频块的高度并且根据包括所述视频块的图片的色度格式而从表中获得,以及
其中botSubpicBd=(sps_subpic_ctu_top_left_y[spIdx]+
sps_subpic_height_minus1[spIdx]+1)*CtbSizeY,
其中sps_subpic_ctu_top_left_y[spIdx]指示位于所述子图片的左上角的编解码树单元的y坐标,并且CtbSizeY是亮度编解码树块或编解码树单元的宽度或高度。
12.根据解决方案11所述的方法,其中pps_pic_height_in_luma_samples来自所述原始图片参数集。
13.根据解决方案1所述的方法,其中所述规则还指定重写序列参数集中指示参考图片重采样的适用性的参考样点使能标志。
14.根据解决方案1所述的方法,其中所述规则还指定重写序列参数集中的分辨率改变允许标志,所述分辨率改变允许标志指示参考所述序列参数集的编解码层视频序列(CLVS)内的可能的图片空间分辨率改变。
15.根据解决方案1至14中任一项所述的方法,其中所述转换包括将所述视频编码为所述比特流。
16.根据解决方案1至14中任一项所述的方法,其中所述转换包括从所述比特流解码出所述视频。
17.根据解决方案1至14中任一项所述的方法,其中所述转换包括从所述视频生成所述比特流,并且所述方法还包括:将所述比特流存储在非暂时性计算机可读记录介质中。
18.一种视频处理装置,包括被配置为实施根据解决方案1至17中任一项或多项所述的方法的处理器。
19.一种存储视频的比特流的方法,包括根据解决方案1至17中任一项所述的方法,并且还包括将所述比特流存储到非暂时性计算机可读记录介质。
20.一种存储程序代码的计算机可读介质,所述程序代码在被执行时使处理器实施根据解决方案1至17中任一项或多项所述的方法。
21.一种计算机可读介质,所述计算机可读介质存储根据上述方法中的任一项所生成的比特流。
22.一种用于存储比特流表示的视频处理装置,其中所述视频处理装置被配置为实施根据解决方案1至17中任一项或多项所述的方法。
第三组解决方案示出了在前面部分(例如,项目2和7)中讨论的技术的示例实施例。
1.一种视频处理方法(例如,如图14A所示的方法1400),包括:根据规则在包括一个或多个层的视频与该视频的比特流之间进行1402转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,其中该规则定义在子比特流提取处理期间要从比特流中提取以输出子比特流的网络抽象层(NAL)单元,以及其中该规则还指定到该子比特流提取处理的一个或多个输入和/或使用该比特流的不同层的子图片的哪个组合,使得该子比特流提取处理的输出符合预定义格式。
2.如解决方案1所述的方法,其中该规则指定到该子比特流提取处理的该一个或多个输入包括目标输出层集合(OLS)索引(targetOlsIdx),该目标OLS索引标识要被解码的目标OLS的OLS索引、并且等于对由视频参数集指定的OLS的列表的索引。
3.如解决方案1所述的方法,其中该规则指定到该子比特流提取处理的该一个或多个输入包括目标最高时域标识符值(tIdTarget)。
4.如解决方案3所述的方法,其中该目标最高时域标识符值在0到允许在由视频参数集指定的层中存在的时域子层的最大数目的范围内。
5.如解决方案4所述的方法,其中该时域子层的该最大数目由包括在视频参数集中的语法元素指示。
6.如解决方案5所述的方法,其中该语法元素是vps_max_sublayers_minus1。
7.如解决方案1所述的方法,其中该规则指定到该子比特流提取处理的该一个或多个输入包括等于目标OLS中存在的子图片索引的目标子图片索引值(subpicIdxtarget)。
8.如解决方案1所述的方法,其中该规则指定到该子比特流提取处理的该一个或多个输入包括对于i从0到NumLayersInOls[targetOLsIdx]-1的目标子图片索引值的列表subpicIdxTarget[i],其中NumLayerInOls[i]指定第i个OLS中的层的数目,并且targetOLsIdx指示目标输出层集合(OLS)索引。
9.如解决方案8所述的方法,其中该规则指定第targetOLsIdx个OLS中的所有层具有相同的空间分辨率、相同的子图片布局,以及所有子图片具有指定编解码层视频序列中的每个编解码图片的对应子图片在不包括环路滤波操作的解码处理中被视为图片的语法元素。
10.如解决方案8所述的方法,其中对于i的所有值而言的subpicIdxTarget[i]的值是相同的并且等于0到sps_num_subpics_minus1的范围内的特定值,其中sps_num_subpics_minus1加1指定编解码层视频序列中的每个图片中的子图片的数目。
11.如解决方案8所述的方法,其中该规则指定该输出子比特流包含至少一个VCL(视频编解码层)NAL(网络抽象层)单元,其nuh_layer_id等于LayerIdInOls[targetOlsIdx]的列表中的nuh_layer_id值中的每个值,其中nuh_layer_id是NAL单元头标识符,以及LayerIdInOls[targetOlsIdx]指定具有该targetOLsIdx的OLS中的nuh_layer_id值。
12.如解决方案8所述的方法,其中该规则指定该输出子比特流包含具有等于tIdTarget的TemporalId的至少一个VCL(视频编解码层)NAL(网络提取层)单元,其中TemporalId指示目标最高时域标识符,以及tIdTarget是被提供作为到该子比特流提取处理的一个或多个输入的TemporalId的值。
13.如解决方案8所述的方法,其中该比特流在不需要包含具有等于0的nuh_layer_id的经编解码条带NAL(网络抽象层)单元的情况下包含具有等于0的TemporalId的一个或多个经编解码条带NAL(网络抽象层)单元,其中nuh_layer_id指定NAL单元头标识符。
14.如解决方案8所述的方法,其中该规则指定该输出子比特流包含至少一个VCL(视频编解码层)NAL(网络抽象层)单元,其中对于0到NumLayersInOls[targetOlsIdx]-1范围内的每个i,NAL(网络抽象层)单元头标识符nuh_layer_id等于层标识符ayerIdInOls[targetOlsIdx][i]并且子图片标识符sh_subpic_id等于SubpicIdVal[subpicIdxTarget[i]],其中NumLayerInOls[i]指定第i个OLS中的层的数目并且i是整数。
15.一种视频处理方法(例如,如图14B所示的方法1410),包括:根据规则在视频与该视频的比特流之间进行1412转换,其中该比特流包括第一层和第二层,该第一层包括具有多个子图片的图片,并且该第二层包括各自具有单个子图片的图片,并且其中该规则指定该第一层和该第二层的子图片的组合,该组合在提取时导致符合预定义格式的输出比特流。
16.如解决方案15所述的方法,其中该规则被应用于子比特流提取以提供作为一致比特流的输出子比特流,并且其中到该子比特流提取处理的输入包括:i)该比特流,ii)标识要被解码的目标OLS的OLS索引的目标输出层集合(OLS)索引(targetOlsIdx),以及ii)目标最高时域标识符(TemporalId)值(tIdTarget)。
17.如解决方案16所述的方法,其中规则指定该目标输出层集合(OLS)索引(targetOlsIdx)等于对由视频参数集指定的OLS列表的索引。
18.如解决方案16所述的方法,其中该规则指定该目标最高时域标识符(TemporalId)值(tIdTarget)等于0到允许在由视频参数集指定的层中存在的时域子层的最大数目的范围内的任何值。
19.如解决方案18所述的方法,其中该时域子层的该最大数目由被包括在视频参数集中的语法元素来指示。
20.如解决方案19所述的方法,其中gai语法元素是vps_max_sublayer_minus1。
21.如解决方案17所述的方法,其中该规则指定:对于从0到NumLayersInOls[targetOLsIdx]-1的i,该OLS列表的值subpicIdxTarget[i]等于0到层中的每个图片中的子图片的数目的范围内的值,其中NumLayerInOls[i]指定第i个OLS中的层的数目,以及该子图片的数目由被包括在由与NAL(网络抽象层)单元头标识符(nuh_layer_id)相关联的该层所参考的序列参数集中的语法元素来指示,该nuh_layer_id等于指定具有该targetOLsIdx的第i个OLS中的该nuh_layer_id值的LayerIdInOls[targetOLsIdx][i],并且i是整数。
22.如解决方案21所述的方法,其中另一语法元素sps_subpic_treated_as_pic_flag[subpicIdxTarget[i]]等于1,该另一语法元素指定在不包括环路滤波操作的解码处理中将该层中的每个编解码图片的第i个子图片作为图片来处理。
23.如解决方案21所述的方法,其中该规则指定:在指示该层中的每个图片中的子图片的数目的该语法元素等于0的情况下,subpicIdxTarget[i]的值总是等于0。
24.如解决方案21所述的方法,其中该规则指定:对于m和n的任意两个不同整数值,对于nuh_layer_id分别等于LayerIdInOls[targetOLsIdx][m]和LayerIdInOls[targetOLsIdx][n]、并且subpicIdxTarget[m]等于subpicIdxTarget[n]的两个层而言,该语法元素大于0。
25.如解决方案16所述的方法,其中该规则指定该输出子比特流包含至少一个VCL(视频编解码层)NAL(网络抽象层)单元,其nuh_layer_id等于该列表LayerIdInOls[targetOlsIdx]中的nuh_layer_id值中的每个nuh_layer_id值,其中nuh_layer_id是NAL单元头标识符,并且LayerIdInOls[targetOlsIdx]指定具有该targetOLsIdx的OLS中的nuh_layer_id值。
26.如解决方案16所述的方法,其中该输出子比特流包含具有等于tIdTarget的TemporalId的至少一个VCL(视频编解码层)NAL(网络抽象层)单元。
27.如解决方案16所述的方法,其中该一致比特流包含具有等于0的TemporalId的一个或多个经编解码条带NAL(网络抽象层)单元,而不需要包含具有等于0的nuh_layer_id的经编解码条带NAL(网络抽象层)单元,其中nuh_layer_id指定NAL单元头标识符。
28.如解决方案16所述的方法,其中该输出子比特流包含至少一个VCL(视频编解码层)NAL(网络抽象层)单元,该VCLNAL单元具有等于层标识符LayerIdInOls[targetOlsIdx][i]的NAL(网络抽象层)单元头标识符nuh_layer_id、并且对于在0到NumLayersInOls[targetOlsIdx]-1的范围内的每个i具有等于SubpicIdVal[subpicIdxTarget[i]]的子图片标识符sh_subpic_id,其中该NumLayerInOls[i]指定第i个OLS中的层的数目并且i是整数。
29.一种视频处理方法(例如,如图14C所示的方法1420),包括:在视频与该视频的比特流之间进行1422转换,以及其中规则指定:具有包括多个子图片的一个或多个层和/或具有单个子图片的一个或多个层的输出层集合是否或如何由可缩放嵌套补充增强信息(SEI)消息中的子图片标识符的列表来指示。
30.如解决方案29所述的方法,其中该规则指定:在sn_ols_flag和sn_subpic_flag都等于1的情况下,子图片标识符的该列表指定各自包含多个子图片的图片中的子图片的子图片标识符,其中sn_ols_flag等于1指定该可缩放嵌套SEI消息应用于特定OLS,并且sn_subpic_flag等于1指定应用于指定OLS或层的该可缩放嵌套SEI消息仅应用于经指定OLS或层的特定子图片。
31.如解决方案1至30中任一项所述的方法,其中该转换包括将该视频编码为该比特流。
32.如解决方案1至30中任一项所述的方法,其中该转换包括从该比特流解码出该视频。
33.如解决方案1至30中任一项所述的方法,其中该转换包括从该视频生成该比特流,以及该方法还包括:将该比特流存储在非暂时性计算机可读记录介质中。
34.一种视频处理装置,包括被配置为实施解决方案1至33中的任一项或多项中记载的方法的处理器。
35.一种存储视频的比特流所述的方法,包括解决方案1至33中的任一项中记载所述的方法,并且还包括:将该比特流存储到非暂时性计算机可读记录介质。
36.一种存储程序代码的计算机可读介质,该程序代码在被执行时使处理器实施解决方案1至33中的任一项或多项中记载的方法。
37.一种计算机可读介质,该计算机可读介质存储根据上述方法中的任一项生成的比特流。
38.一种用于存储比特流表示的视频处理装置,其中该视频处理装置被配置为实施解决方案1至33中的任一项或多项中记载的方法。
第四组解决方案示出了在前面部分(例如,项目3、8和9)中讨论的技术的示例实施例。
1.一种视频处理方法(例如,如图15A所示的方法1500),包括:根据规则在包括视频层中的一个或多个视频图片的视频与该视频的比特流之间进行1502转换,以及其中该规则指定:在子比特流提取的处理中,无论用于替换在该子比特流提取期间被移除的参数集的外部部件的可用性如何,都进行(i)视频编解码层(VCL)网络抽象层(NAL)单元、(ii)与该VCLNAL单元相关联的填充数据NAL单元、以及(iii)与该VCLNAL单元相关联的填充有效载荷补充增强信息(SEI)消息的移除。
2.如解决方案1所述的方法,其中该规则指定:对于在0到NumLayersInOls[targetOlsIdx]-1的范围内的i的每个值,从作为该子比特流提取处理的输出的子比特流中移除nuh_layer_id等于LayerIdInOls[targetOlsIdx][i]并且sh_subpic_id不等于SubpicIdVal[subpicIdxTarget[i]]的所有视频编解码层(VCL)网络抽象层(NAL)单元、其相关联的填充符数据NAL单元、以及其相关联的包含填充符有效载荷SEI消息的SEI NAL单元,其中nuh_layer_id是NAL单元头标识符、LayerIdInOls[targetOlsIdx]指定输出层集合(OLS)中的nuh_layer_id值,其中该targetOLsIdx是目标输出层集合索引,sh_subpic_id指定包含条带的子图片的子图片标识符,subpicIdxTarget[i]指示对于i的目标子图片索引值,并且SubpicIdVal[subpicIdxTarget[i]]是用于subpicIdxTarget[i]的变量,i是整数。
3.一种视频处理方法(例如,如图15B所示的方法1510),包括:根据规则在包括一个或多个层的视频与该视频的比特流之间进行1512转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,以及其中该规则指定:在根据与子图片布局不同的子图片布局来划分参考图片的情况下,不允许使用该参考图片作为使用该子图片布局被划分为子图片的当前图片的共位图片。
4.如解决方案3所述的方法,其中该当前图片和该参考图片在不同层中。
5.一种视频处理方法(例如,如图15C所示的方法1520),包括:根据规则在包括一个或多个层的视频与该视频的比特流之间进行1522转换,该一个或多个层包括一个或多个视频图片,该一个或多个视频图片包括一个或多个子图片,并且其中该规则指定:在编解码工具依赖于与用于当前图片的参考图片的子图片布局不同的子图片布局的情况下,在使用该子图片布局被划分为子图片的当前图片的该转换期间禁用该编解码工具。
6.如解决方案5所述的方法,其中该当前图片和该参考图片在不同层中。
7.如解决方案5所述的方法,其中该编解码工具是双向光流(BDOF),其中使用光流计算来细化一个或多个初始预测。
8.如解决方案5所述的方法,其中该编解码工具是解码器侧运动矢量细化(DMVR),其中通过使用预测块来细化运动信息。
9.如解决方案5所述的方法,其中该编解码工具是利用光流的预测细化(PROF),其中基于光流计算来细化一个或多个初始预测。
10.如解决方案1至9中任一项所述的方法,其中该转换包括将该视频编码为该比特流。
11.如解决方案1至9中任一项所述的方法,其中该转换包括从该比特流解码出该视频。
12.如解决方案1至9中任一项所述的方法,其中该转换包括从该视频生成该比特流,并且该方法还包括:将该比特流存储在非暂时性计算机可读记录介质中。
13.一种视频处理装置,包括被配置为实施解决方案1至12中的任一项或多项中记载的方法的处理器。
14.一种存储视频的比特流所述的方法,包括在解决方案1至12中的任一项中记载所述的方法,并且还包括:将该比特流存储到非暂时性计算机可读记录介质。
15.一种存储程序代码的计算机可读介质,该程序代码在被执行时使处理器实施解决方案1至12中的任一项或多项中记载的方法。
16.一种计算机可读介质,该计算机可读介质存储根据上述方法中的任一项生成的比特流。
17.一种用于存储比特流表示的视频处理装置,其中该视频处理装置被配置为实施解决方案1至12中的任一项或多项中记载的方法。
第五组解决方案示出了在前面部分(例如,项目4)中讨论的技术的示例实施例。
1.一种视频处理方法(例如,如图16所示的方法1600),包括:根据规则在包括视频层中的一个或多个视频图片的视频与该视频的比特流之间进行转换,其中该规则指定:包含具有特定有效载荷类型的SEI消息的补充增强信息(SEI)网络抽象层(NAL)单元不包含具有不同于该特定有效载荷类型的有效载荷类型的另一SEI消息。
2.如解决方案1所述的方法,其中该规则将该SEI消息的移除指定为包含该SEI消息的该SEI NAL单元的移除。
3.如解决方案1或2所述的方法,其中具有该特定有效载荷类型的SEI消息对应于填充符有效载荷SEI消息。
4.如解决方案1至3中任一项所述的方法,其中该转换包括将该视频编码为该比特流。
5.如解决方案1至3中任一项所述的方法,其中该转换包括从该比特流解码出该视频。
6.如解决方案1至3中任一项所述的方法,其中该转换包括从该视频生成该比特流,并且该方法还包括:将该比特流存储在非暂时性计算机可读记录介质中。
7.一种视频处理装置,包括被配置为实施解决方案1至6中的任一项或多项中记载的方法的处理器。
8.一种存储视频的比特流所述的方法,包括在解决方案1至6中的任一项中记载所述的方法,并且还包括将该比特流存储到非暂时性计算机可读记录介质。
9.一种存储程序代码的计算机可读介质,该程序代码在被执行时使处理器实施解决方案1至6中的任一项或多项中记载的方法。
10.一种计算机可读介质,该计算机可读介质存储根据上述方法中的任一项生成的比特流。
11.一种用于存储比特流表示的视频处理装置,其中该视频处理装置被配置为实施解决方案1至6中的任一项或多项中记载的方法。
在本文描述的解决方案中,编码器可以通过根据格式规则产生编解码表示来符合格式规则。在本文描述的解决方案中,解码器可以使用格式规则来解析编解码表示中的语法元素以产生解码视频,其中根据格式规则知道存在和不存在语法元素。
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到相应的比特流表示的转换期间应用视频压缩算法,反之亦然。当前视频块的比特流表示可以对应于在比特流内的不同位置共同定位或分散的比特,如由语法所定义的。例如,宏块可以根据经变换的和经编解码的误差残差值被编码,并且还可以使用头中的比特和比特流中的其它字段被编码。此外,在转换期间,解码器可以基于上述解决方案中所描述的确定来解析具有某些字段可能存在或不存在的知识的比特流。类似地,编码器可以确定某些语法字段被包括或不被包括,并且通过从编解码表示中包括或排除语法字段来相应地生成编解码表示。
所公开技术的一些实施例包括做出决定或确定以启用视频处理工具或模式。在一个示例中,当启用视频处理工具或模式时,编码器将在视频块的处理中使用或实施该工具或模式,但未必基于该工具或模式的使用来修改所得比特流。换言之,当视频块到视频的比特流表示的转换将在基于决定或确定启用视频处理工具或模式时,该转换将使用该视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将使用比特流已经基于视频处理工具或模式被修改的知识来处理比特流。换言之,将使用基于决定或确定而启用的视频处理工具或模式来进行从视频的比特流表示到视频块的转换。
所公开技术的一些实施例包括作出停用视频处理工具或模式的决定或确定。在一个示例中,当禁用视频处理工具或模式时,编码器将不在视频块到视频的比特流表示的转换中使用该工具或模式。在另一示例中,当禁用视频处理工具或模式时,解码器将使用基于决定或确定而被禁用的视频处理工具或模式来处理具有比特流尚未被修改的知识的比特流。
本文档中描述的所公开的和其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本文档中公开的结构及其结构等同物、或者它们中的一个或多个的组合。所公开的和其他实施例可以被实施为一个或多个计算机程序产品,即,在计算机可读介质上被编码的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读储存设备、机器可读储存基板、存储器设备、实现机器可读传播信号的物质组成、或者它们中的一个或多个的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器、例如包括可编程处理器、计算机、或者多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。传播信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成用于对信息进行编码以用于传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言来编写,包括编译或解释语言,并且其可以以任何形式来部署,包括作为独立程序或者作为模块、组件、子例程或适用于计算环境中的其它单元。计算机程序不必对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、在专用于所讨论的程序的单个文件中、或者在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署在一台计算机上以被执行或者被部署在位于一个站点或分布在多个站点并通过通信网络互连的多台计算机上以被执行。
本文档中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流还可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量储存设备(例如磁盘、磁光盘或光盘),或被可操作地耦合以从用于存储数据的一个或多个大容量储存设备接收数据或向其传送数据,或上述两者。然而,计算机不必具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CDROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或者并入专用逻辑电路中。
尽管本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可能要求保护的内容的范围的限制,而是对可能特定于特定技术的特定实施例的特征的描述。在本专利文件中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管上述特征可以被描述为在某些组合中起作用,甚至最初被声称为这样,但在一些情况下,可以从组合中删除来自所声称的组合的一个或多个特征,并且所声称的组合可以被定向到子组合或子组合的变体。
类似地,虽然在附图中以特定次序描述操作,但这不应理解为要求以所示的特定次序或顺序次序执行此类操作,或要求执行所有图示操作以实现期望结果。此外,本专利文档中描述的实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这种分离。
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和说明的内容来做出其他实施方式、增强和变化。
- 视频子比特流提取过程中的可缩放嵌套SEI消息处理
- 视频子比特流提取过程中的SEI消息处理