首页> 中国专利> 用信号发送编码视频流中的混合NAL单元类型和子图片划分的方法

用信号发送编码视频流中的混合NAL单元类型和子图片划分的方法

摘要

提供了用于对视频数据进行解码的方法、计算机程序和计算机系统。接收包括一个或更多个子图片的视频数据。基于检查与一个或更多个子图片中的混合网络抽象层(NAL)单元对应的标志来识别与一个或更多个子图片中的每一个相关联的NAL单元类型。基于所识别的NAL单元类型对视频数据进行解码。

著录项

  • 公开/公告号CN113875252A

    专利类型发明专利

  • 公开/公告日2021-12-31

    原文格式PDF

  • 申请/专利权人 腾讯美国有限责任公司;

    申请/专利号CN202180002889.5

  • 发明设计人 崔秉斗;文格尔史蒂芬;刘杉;

    申请日2021-03-16

  • 分类号H04N19/51(20060101);

  • 代理机构44285 深圳市深佳知识产权代理事务所(普通合伙);

  • 代理人夏欢

  • 地址 美国加利福尼亚州帕洛阿尔托公园大道2747号

  • 入库时间 2023-06-19 13:27:45

说明书

相关申请的交叉参考

本申请要求于2020年3月31日提交给美国专利商标局的美国临时专利申请第63/003,137号和于2020年11月11日提交给美国专利商标局的美国专利申请第17/095,289号的优先权,上述美国专利申请的全部内容通过引用并入本文。

技术领域

本公开内容总体上涉及数据处理领域,并且更具体地涉及视频编码和解码。

背景技术

使用具有运动补偿的图片间预测的视频编码和解码已经公知达几十年。未压缩的数字视频可以由一系列图片构成,每个图片具有例如1920x1080亮度样本和相关联的色度样本的空间维度。这一系列图片可以具有例如每秒60个图片或60Hz的固定或可变图片速率(非正式地也称为帧速率)。未压缩的视频具有很高的比特率要求。例如,每个样本8比特下的1080p60 4:2:0视频(60Hz帧速率下的1920x 1080亮度样本分辨率)需要接近1.5千兆比特/s的带宽。一小时这样的视频需要超过600千兆字节的存储空间。

视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。压缩可以帮助减少上述带宽或存储空间要求,在某些情况下减少两个数量级或更多。可以采用无损压缩和有损压缩以及它们的组合。无损压缩是指可以从经压缩的原始信号重建原始信号的精确副本的技术。当使用有损压缩时,重建信号可能与原始信号不同,但原始信号与重建信号之间的失真小到足以使重建信号对预期应用有用。在视频的情况下,广泛采用有损压缩。容忍的失真量取决于应用;例如,某些消费者流传输应用的用户可能比电视贡献应用的用户容忍更高的失真。可实现的压缩比可以反映:更高的可允许/可容忍失真可以产生更高的压缩比。

视频编码器和解码器可以利用来自若干个大类的技术,包括例如运动补偿、变换、量化和熵编码,其中的一些将在下面介绍。

历史上,视频编码器和解码器倾向于对给定的图片大小进行操作,在大多数情况下该给定的图片大小针对编码视频序列(CVS,coded video sequence)、图片组(GOP,Groupof Pictures)或类似的多图片时间帧来定义并保持恒定。例如,在MPEG-2中,已知系统设计会根据诸如场景的活动的因素改变水平分辨率(并且从而改变图片大小),但仅在I图片处,因此通常用于GOP。例如,根据ITU-T Rec.H.263附录P,为了在CVS内使用不同分辨率而对参考图片进行重采样是已知的。然而,此处图片大小不改变,仅参考图片被重采样,可能导致仅部分图片画布被使用(在下采样的情况下)或者仅部分场景被捕获(在上采样的情况下)。此外,H.263附录Q允许向上或向下以因子2(在每个维度上)对单个宏块进行重采样。同样,图片大小保持相同。宏块的大小在H.263中是固定的,并且因此不需要用信号发送。

预测图片中图片大小的改变在现代视频编码中变得更加主流。例如,VP9允许参考图片重采样和整个图片的分辨率改变。类似地,对于VVC做出的某些建议(包括例如Hendry等人的“On adaptive resolution change(ARC)for VVC”,联合视频组文件JVET-M0135-v1,2019年1月9日至19日,其全部内容并入本文)允许将整个参考图片重采样到不同的(更高或更低)分辨率。在该文件中,建议将不同的候选分辨率编码在序列参数集中并且由图片参数集中的每图片语法元素进行参考。

发明内容

实施方式涉及用于对视频数据进行解码的方法、系统和计算机可读介质。根据一个方面,提供了一种用于对视频数据进行解码的方法。该方法可以包括接收包括一个或更多个子图片的视频数据。基于检查与一个或更多个子图片中的混合网络抽象层(networkabstraction layer,NAL)单元对应的标志来识别与一个或更多个子图片中的每一个相关联的NAL单元类型。基于所识别的NAL单元类型对视频数据进行解码。

根据另一方面,提供了一种用于对视频数据进行解码的计算机系统。计算机系统可以包括一个或更多个处理器、一个或更多个计算机可读存储器、一个或更多个计算机可读有形存储设备以及程序指令,所述程序指令存储在一个或更多个存储设备中的至少一个存储设备上以由一个或更多个处理器中的至少一个处理器经由一个或更多个存储器中的至少一个存储器来执行,由此计算机系统能够执行一种方法。该方法可以包括接收包括一个或更多个子图片的视频数据。基于检查与一个或更多个子图片中的混合网络抽象层(NAL)单元对应的标志来识别与一个或更多个子图片中的每一个相关联的NAL单元类型。基于所识别的NAL单元类型对视频数据进行解码。

根据又一方面,提供了一种用于对视频数据进行解码的计算机可读介质。计算机可读介质可以包括一个或更多个计算机可读存储设备和存储在一个或更多个有形存储设备中的至少一个有形存储设备上的程序指令,所述程序指令能够由处理器执行。程序指令能够由处理器执行以执行方法,所述方法可以相应地包括接收包括一个或更多个子图片的视频数据。基于检查与一个或更多个子图片中的混合网络抽象层(NAL)单元对应的标志来识别与一个或更多个子图片中的每一个相关联的NAL单元类型。基于所识别的NAL单元类型对视频数据进行解码。

附图说明

从下面要结合附图阅读的说明性实施方式的详细描述,这些和其他目的、特征和优点将变得明显。附图的各种特征不是按比例绘制的,因为这些图示是为了清楚地便于本领域技术人员结合详细描述进行理解。在附图中:

图1是根据实施方式的通信系统的简化框图的示意图。

图2是根据实施方式的通信系统的简化框图的示意图。

图3是根据实施方式的解码器的简化框图的示意图。

图4是根据实施方式的编码器的简化框图的示意图。

图5是如所指示的根据现有技术或实施方式的用于用信号发送ARC参数的选项的示意图。

图6是根据实施方式的语法表的示例。

图7是根据实施方式的计算机系统的示意图。

图8是用于具有自适应分辨率改变的可伸缩性的预测结构的示例。

图9是根据实施方式的语法表的示例。

图10是解析和解码每访问单元的poc周期和访问单元计数值的简化框图的示意图。

图11是包括多层子图片的视频比特流结构的示意图。

图12是具有增强分辨率的所选子图片的显示的示意图。

图13是包括多层子图片的视频比特流的解码和显示过程的框图。

图14是具有子图片的增强层的360度视频显示的示意图。

图15是子图片的布局信息及其对应的层和图片预测结构的示例。

图16是具有局部区域的空间可伸缩性模态的子图片的布局信息及其对应的层和图片预测结构的示例。

图17是用于子图片布局信息的语法表的示例。

图18是用于子图片布局信息的SEI消息的语法表的示例。

图19是用于指示输出层和每个输出层集的配置文件/层/级别信息的语法表的示例。

图20是用于指示每个输出层集的输出层模式的语法表的示例。

图21是用于指示每个输出层集的每个层的当前子图片的语法表的示例。

图22是用于指示子图片标识符的语法表的示例。

图23是用于指示子图片划分信息的语法表的示例。

图24是用于指示混合NAL单元类型和相关联的子图片划分信息的语法表的示例。

具体实施方式

本文公开了要求保护的结构和方法的详细实施方式;然而,可以理解的是,所公开的实施方式仅是对可以以各种形式实施的所要求保护的结构和方法的说明。然而,那些结构和方法可以以许多不同的形式实施并且不应被解释为限于本文阐述的示例性实施方式。相反,提供这些示例性实施方式使得本公开内容将是彻底和完整的并且将向本领域技术人员充分传达范围。在描述中,可以省略众所周知的特征和技术的细节以避免不必要地混淆所呈现的实施方式。

如先前所描述的,视频编码器和解码器倾向于关于给定的图片大小进行操作,在大多数情况下该给定的图片大小针对编码视频序列来定义并且保持恒定。然而,图片可以被划分成一个或更多个子图片。每个子图片可以进一步划分成一个或更多个切片。两个或更多个独立编码的子图片可以被合并成编码图片、由解码器解码并且被显示为单个输出图片。因此,当两个或更多个独立编码的图片被合并成编码图片时指定一些编码或解码约束可能是有利的。

本文参考根据各种实施方式的方法、装置(系统)和计算机可读介质的流程图和/或框图来描述各方面。应当理解,流程图和/或框图的每个块以及流程图和/或框图中的块的组合可以由计算机可读程序指令来实现。

图1示出了根据本公开内容的实施方式的通信系统(100)的简化框图。系统(100)可以包括经由网络(150)互连的至少两个终端(110-120)。对于数据的单向传输,第一终端(110)可以在本地位置处对视频数据进行编码,以经由网络(150)传输至另一终端(120)。第二终端(120)可以从网络(150)接收另一终端的编码视频数据、对编码数据进行解码并且显示恢复的视频数据。单向数据传输在媒体服务应用等中可能是常见的。

图1示出了第二对终端(130,140),第二对终端(130,140)被提供以支持可能例如在视频会议期间发生的编码视频的双向传输。对于数据的双向传输,每个终端(130,140)可以在本地位置处对捕获的视频数据进行编码,以经由网络(150)传输至另一终端。每个终端(130,140)还可以接收由其他终端传输的编码视频数据、可以对编码数据进行解码并且可以在本地显示设备处显示恢复的视频数据。

在图1中,终端(110-140)可以被图示为服务器、个人计算机和智能电话,但是本公开内容的原理可以不限于此。本公开内容的实施方式可应用于膝上型计算机、平板计算机、媒体播放器和/或专用视频会议装备。网络(150)表示在终端(110-140)之间传送编码视频数据的任意数量的网络,包括例如有线和/或无线通信网络。通信网络(150)可以在电路交换和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。出于本讨论的目的,网络(150)的架构和拓扑结构对于本公开内容的操作可能是不重要的,除非在下文中说明。

图2示出了视频编码器和解码器在流传输环境中的放置,作为所公开的主题的应用的示例。所公开的主题可以同样应用于其他启用视频的应用,包括例如视频会议、数字电视、在包括CD、DVD、记忆棒等的数字介质上存储压缩视频等。

流传输系统可以包括捕获子系统(213),捕获子系统(213)可以包括创建例如未压缩的视频样本流(202)的视频源(201),例如数码摄像机。该样本流(202)——被描绘为粗线以强调与编码视频比特流相比的高数据容量——可以由耦接至摄像机(201)的编码器(203)处理。编码器(203)可以包括硬件、软件或其组合以启用或实现所公开的主题的各方面,如下文更详细描述的。编码视频比特流(204)——被描绘为细线以强调与样本流相比较低的数据容量——可以存储在流服务器(205)上以供将来使用。一个或更多个流传输客户端(206,208)可以访问流传输服务器(205)以检索编码视频比特流(204)的副本(207,209)。客户端(206)可以包括视频解码器(210),视频解码器(210)对编码视频比特流(207)的输入副本进行解码并且创建可以在显示器(212)或其他呈现设备(未描绘)上呈现的输出视频样本流(211)。在一些流传输系统中,可以根据某些视频编码/压缩标准对视频比特流(204,207,209)进行编码。这些标准的示例包括ITU-T推荐(ITU-T Recommendation)H.265。正在开发的是一种非正式地称为多功能视频编码或VVC(Versatile Video Coding)的视频编码标准。所公开的主题可以在VVC的上下文中使用。

图3可以是根据实施方式的视频解码器(210)的功能框图。

接收器(310)可以接收要由解码器(210)进行解码的一个或更多个编解码视频序列;在同一实施方式或另一实施方式中,一次一个编码视频序列,其中每个编码视频序列的解码独立于其他编码视频序列。可以从信道(312)接收编码视频序列,该信道可以是到存储编码视频数据的存储设备的硬件/软件链路。接收器(310)可以与其他数据一起接收编码视频数据,所述其他数据例如编码音频数据和/或辅助数据流,其可以被转发到它们各自的使用实体(未描绘)。接收器(310)可以将编码视频序列与其他数据分离。为了对抗网络抖动,缓冲存储器(315)可以耦接在接收器(310)与熵解码器/解析器(320)(以下称为“解析器”)之间。当接收器(310)从具有足够带宽和可控性的存储/转发设备或从同步网络接收数据时,可能不需要缓冲器(315),或者缓冲器(315)可能很小。为了在诸如因特网的尽力而为的分组网络(best effort packet network)上使用,可能需要缓冲器(315),缓冲器(315)可以比较大并且可以有利地具有自适应大小。

视频解码器(210)可以包括用于从熵编码视频序列重建符号(321)的解析器(320)。这些符号的类别包括用于管理解码器(210)的操作的信息以及可能地包括用于控制呈现设备例如显示器(212)的信息,该呈现设备不是解码器的组成部分但可以耦接至解码器,如图2所示。用于呈现设备的控制信息可以是补充增强信息(SEI(SupplementaryEnhancement Information)消息)或视频可用性信息(VUI,Video UsabilityInformation)参数集片段(未描绘)的形式。解析器(320)可以对接收的编码视频序列进行解析/熵解码。编码视频序列的编码可以根据视频编码技术或标准,并且可以遵循本领域技术人员公知的原则,包括具有或不具有上下文敏感性的变长编码、霍夫曼编码、算术编码等。解析器(320)可以基于与组对应的至少一个参数从编码视频序列中提取用于视频解码器中的像素的子组中的至少一个子组的子组参数集。子组可以包括图片组(GOP,Groups ofPictures)、图片、图块、切片、宏块、编码单元(CU,Coding Unit)、块、变换单元(TU,Transform Unit)、预测单元(PU,Prediction Unit)等。熵解码器/解析器还可以从编码视频序列中提取诸如变换系数、量化器参数值、运动矢量等的信息。

解析器(320)可以对从缓冲器(315)接收的视频序列执行熵解码/解析操作,以便创建符号(321)。

取决于编码视频图片或其部分的类型(例如:帧间图片和帧内图片、帧间块和帧内块)以及其他因素,符号(321)的重建可以涉及多个不同的单元。可以通过由解析器(320)从编码视频序列中解析的子组控制信息来控制涉及哪些单元以及如何涉及。为清楚起见,未描绘解析器(320)与以下多个单元之间的这样的子组控制信息流。

除了已经提到的功能块之外,解码器210可以在概念上细分成如下所描述的多个功能单元。在商业约束下操作的实际实现方式中,这些单元中的许多单元彼此密切交互,并且可以至少部分地彼此集成。然而,出于描述所公开的主题的目的,在概念上细分成以下功能单元是合适的。

第一单元是缩放器/逆变换单元(351)。缩放器/逆变换单元(351)从解析器(320)接收量化的变换系数以及控制信息,包括要使用哪个变换、块大小、量化因子、量化缩放矩阵等作为符号(321)。它可以输出包括样本值的块,这些块可以输入到聚合器(355)中。

在一些情况下,缩放器/逆变换(351)的输出样本可以属于帧内编码块;即:不使用来自先前重建图片的预测信息但可以使用来自当前图片的先前重建部分的预测信息的块。这样的预测信息可以由帧内图片预测单元(352)提供。在一些情况下,帧内图片预测单元(352)使用从当前(部分重建的)图片(356)获取的周围已重建的信息来生成与重建中的块具有相同大小和形状的块。在一些情况下,聚合器(355)基于每个样本将帧内预测单元(352)已经生成的预测信息添加到由缩放器/逆变换单元(351)提供的输出样本信息。

在其他情况下,缩放器/逆变换单元(351)的输出样本可以与帧间编码的以及可能的运动补偿的块有关。在这样的情况下,运动补偿预测单元(353)可以访问参考图片存储器(357)以获取用于预测的样本。在根据与块有关的符号(321)对获取的样本进行运动补偿之后,这些样本可以由聚合器(355)添加到缩放器/逆变换单元的输出(在这种情况下称为残差样本或残差信号),以便生成输出样本信息。运动补偿单元从其获取预测样本的参考图片存储器内的地址可以由运动矢量控制,这些运动矢量以符号(321)的形式可用于运动补偿单元,符号(321)可以具有例如X、Y和参考图片分量。运动补偿还可以包括在使用子样本精确运动矢量时从参考图片存储器中获取的样本值的内插、运动矢量预测机制等。

聚合器(355)的输出样本可以在环路滤波器单元(356)中经受各种环路滤波技术。视频压缩技术可以包括环路滤波技术,该环路滤波技术由包括在编码视频比特流中并且作为来自解析器(320)的符号(321)可用于环路滤波器单元(356)的参数控制,但是也可以响应于在对编码图片或编码视频序列的先前(按解码顺序)部分解码期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。

环路滤波器单元(356)的输出可以是样本流,该样本流可以输出到呈现设备(212)以及存储在参考图片存储器(356)中以用于将来的图片间预测。

某些编码图片一旦被完全重建就可以用作参考图片以用于未来预测。一旦编码图片被完全重建并且编码图片已经被识别为参考图片(通过例如解析器(320)),则当前参考图片(356)可以成为参考图片缓冲器(357)的一部分,并且在开始重建后续编码图片之前,可以重新分配新的当前图片存储器。

视频解码器320可以根据诸如ITU-T Rec.H.265的标准中记录的预定视频压缩技术来执行解码操作。在编码视频序列遵循视频压缩技术文档或标准中指定的并且特别是视频压缩技术文档或标准中的配置文件文档中指定的视频压缩技术或标准的语法意义上,编码视频序列可以符合由正在使用的视频压缩技术或标准指定的语法。对于合规性,还需要编码视频序列的复杂性在由视频压缩技术或标准的层级所限定的范围内。在某些情况下,层级限制最大图片大小、最大帧速率、最大重建采样率(以例如每秒兆个样本来测量)、最大参考图片大小等。在某些情况下,可以通过在编码视频序列中用信号发送的假想参考解码器(HRD,Hypothetical Reference Decoder)规范和用于HRD缓冲器管理的元数据来进一步约束由层级设定的限制。

在实施方式中,接收器(310)可以与编码视频一起接收附加(冗余)数据。附加数据可以作为编码视频序列的一部分被包括。附加数据可以被视频解码器(320)使用以正确地解码数据和/或更准确地重建原始视频数据。附加数据可以是例如时间、空间或SNR增强层、冗余切片、冗余图片、前向纠错码等的形式。

图4可以是根据本公开内容的实施方式的视频编码器(203)的功能框图。

编码器(203)可以从视频源(201)(其不是编码器的一部分)接收视频样本,视频源(201)可以捕获要由编码器(203)编码的视频图像。

视频源(201)可以以数字视频样本流的形式提供要由编码器(203)编码的源视频序列,该数字视频样本流可以具有任何合适的比特深度(例如:8比特、10比特、12比特……)、任何色彩空间(例如,BT.601Y CrCB、RGB……)和任何合适的采样结构(例如YCrCb 4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(201)可以是存储先前准备好的视频的存储设备。在视频会议系统中,视频源(203)可以是捕获本地图像信息作为视频序列的摄像机。视频数据可以被提供为多个单独的图片,所述多个单独的图片当被依次观看时,赋予运动。图片本身可以被组织为像素的空间阵列,其中,取决于所使用的采样结构、色彩空间等,每个像素可以包括一个或更多个样本。本领域技术人员可以容易地理解像素与样本之间的关系。下面的描述聚焦在样本上。

根据实施方式,编码器(203)可以实时地或在应用所需的任何其他时间约束下将源视频序列的图片编码并压缩成编码视频序列(443)。施行适当的编码速度是控制器(450)的功能之一。控制器控制如下所描述的其他功能单元,并且在功能上耦接至这些单元。为清楚起见,未描绘耦接。由控制器设置的参数可以包括速率控制相关参数(图片跳过、量化器、速率失真优化技术的λ值……)、图片大小、图片组(GOP,group of pictures)布局、最大运动矢量搜索范围等。本领域技术人员可以容易地识别控制器(450)的其他功能,因为它们可能涉及针对某个系统设计优化的视频编码器(203)。

一些视频编码器以本领域技术人员容易识别为“编码环路”的方式进行操作。作为过分简化的描述,编码环路可以由编码器(430)(以下称为“源编码器”)的编码部分(负责基于待编码的输入图片和参考图片创建符号)以及嵌入在编码器(203)中的(本地)解码器(433)构成,(本地)解码器(433)重建符号以创建(远程)解码器也将创建的样本数据(因为在公开的主题中考虑的视频压缩技术中,符号与编码视频比特流之间的任何压缩都是无损的)。该重建样本流被输入到参考图片存储器(434)。由于符号流的解码导致与解码器位置(本地或远程)无关的比特精确结果,因此参考图片缓冲器内容在本地编码器与远程编码器之间也是比特精确的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器在解码期间使用预测时将“看到”的样本值完全相同。该参考图片同步性(以及在例如因为信道错误而无法保持同步性的情况下产生的漂移)的基本原理是本领域技术人员公知的。

“本地”解码器(433)的操作可以与上面已经结合图3详细描述的“远程”解码器(210)的操作相同。还简要参照图3,然而,当符号可用并且通过熵编码器(445)和解析器(320)将符号编码/解码为编码视频序列可以是无损的时,包括通道(312)、接收器(310)、缓冲器(315)和解析器(320)的解码器(210)的熵解码部分可以并非完全在本地解码器(433)中实现。

此时可以观察到,除了存在于解码器中的解析/熵解码之外的任何解码器技术也必须以基本相同的功能形式存在于对应的编码器中。为此,所公开的主题聚焦于解码器操作。编码器技术的描述可以简化,因为它们与全面描述的解码器技术互逆。仅在某些领域需要更详细的描述并在下面提供更详细的描述。

作为其操作的一部分,源编码器(430)可以执行运动补偿预测编码,其参考来自视频序列的被指定为“参考帧”的一个或更多个先前编码帧对输入帧预测性地编码。以这种方式,编码引擎(432)对输入帧的像素块与可以被选择作为输入帧的预测参考的参考帧的像素块之间的差异进行编码。

本地视频解码器(433)可以基于由源编码器(430)创建的符号对可以被指定为参考帧的帧的编码视频数据进行解码。编码引擎(432)的操作可以有利地是有损过程。当编码视频数据可以在视频解码器(图4中未示出)处被解码时,重建的视频序列典型地可以是具有一些误差的源视频序列的副本。本地视频解码器(433)复制解码过程,所述解码过程可以由视频解码器对参考帧执行并且可使重建的参考帧被存储在参考图片缓存(434)中。以这种方式,编码器(203)可以在本地存储重建的参考帧的副本,所述副本具有与将由远端视频解码器获得的重建的参考帧共同的内容(不存在传输误差)。

预测器(435)可以针对编码引擎(432)执行预测搜索。即,对于待编码的新帧,预测器(435)可以在参考图片存储器(434)中搜索可以作为新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(435)可以基于样本块逐像素块操作以找到适当的预测参考。在一些情况下,如由通过预测器(435)获得的搜索结果所确定的,输入图片可以具有从存储在参考图片存储器(434)中的多个参考图片中取得的预测参考。

控制器(450)可以管理视频编码器(430)的编码操作,包括例如设置用于对视频数据进行编码的参数和子组参数。

所有前述功能单元的输出可以在熵编码器(445)中经受熵编码。熵编码器通过根据本领域技术人员已知的技术例如霍夫曼编码、可变长度编码、算术编码等对符号进行无损压缩,来将由各个功能单元生成的符号转换成编码视频序列。

传输器(440)可以缓冲由熵编码器(445)创建的编码视频序列,以为经由通信信道(460)进行传输做准备,通信信道(460)可以是到将会存储编码视频数据的存储设备的硬件/软件链路。传输器(440)可以将来自视频编码器(430)的编码视频数据与其他待传输的数据例如编码音频数据和/或辅助数据流(未示出源)合并。

控制器(450)可以管理编码器(203)的操作。在编码期间,控制器(450)可以为每个编码图片分配特定的编码图片类型,编码图片类型可以影响可以应用于相应图片的编码技术。例如,图片通常可以被指定为以下帧类型之一:

帧内图片(I图片)可以是可以在不使用序列中的任何其他帧作为预测源的情况下被编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新图片。本领域技术人员知道I图片的那些变型及其各自的应用和特征。

预测图片(P图片)可以是可以使用帧内预测或帧间预测进行编码和解码的图片,帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。

双向预测图片(B图片)可以是可以使用帧内预测或帧间预测进行编码和解码的图片,帧内预测或帧间预测使用最多两个运动矢量和参考索引来预测每个块的样本值。类似地,多预测图片可以使用多于两个参考图片和相关联的元数据以重建单个块。

源图片通常可以在空间上被细分成多个样本块(例如,各自具有4x4、8x8、4x8或16x16个样本的块)并且逐块进行编码。可以参考通过应用于块的相应图片的编码分配确定的其他(编码的)块来对块进行预测性编码。例如,可以对I图片的块进行非预测性地编码,或者可以参考同一图片的已经编码的块来对I图片的块进行预测性地编码(空间预测或帧内预测)。可以参考一个先前编码的参考图片经由空间预测或经由时间预测来对P图片的像素块进行非预测性编码。可以参考一个或两个先前编码的参考图片经由空间预测或经由时间预测来对B图片的块进行非预测性编码。

视频编码器(203)可以根据预定视频编码技术或标准例如ITU-T Rec.H.265来执行编码操作。在其操作中,视频编码器(203)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测性编码操作。因此,编码视频数据可以符合由正在使用的视频编码技术或标准指定的语法。

在实施方式中,传输器(440)可以与编码视频一起传输附加数据。视频编码器(430)可以包括这样的数据作为编码视频序列的一部分。附加数据可以包括时间/空间/SNR增强层、其他形式的冗余数据例如冗余图片和切片、补充增强信息(SEI,SupplementaryEnhancement Information)消息、视觉可用性信息(VUI,Visual Usability Information)参数集片段等。

在更详细地描述所公开主题的某些方面之前,需要介绍一些术语,这些术语将在本描述的其余部分中提及。

此后的子图片在一些情况下是指样本、块、宏块、编码单元或在语义上分组并且可以以改变的分辨率独立编码的类似实体的矩形布置。一个或更多个子图片可以用于图片。一个或更多个编码子图片可以形成编码图片。一个或更多个子图片可以组装成图片,并且可以从图片中提取一个或更多个子图片。在某些环境中,一个或更多个编码子图片可以在压缩域中组装成编码图片,而不需要转码到样本级别,并且在相同或某些其他情况下,可以从压缩域中的编码图片中提取一个或更多个编码子图片。

自适应分辨率改变(ARC,Adaptive Resolution Change)此后是指以下机制:允许通过例如参考图片重采样来改变编码视频序列内的图片或子图片的分辨率。ARC参数此后是指执行自适应分辨率改变所需的控制信息,其可以包括例如滤波器参数、缩放因子、输出和/或参考图片的分辨率、各种控制标志等。

以上描述聚焦于编码和解码单个语义独立的编码视频图片。在描述具有独立ARC参数的多个子图片的编码/解码的含义及其隐含的额外复杂性之前,应描述用于用信号发送ARC参数的选项。

参照图5,示出了用于用信号发送ARC参数的若干个新颖选项。如每个选项所指出的,从编码效率、复杂性和架构的角度来看,它们都有某些优点和某些缺点。视频编码标准或技术可以选择这些选项或者从现有技术中已知的选项中的一个或更多个,以用于用信号发送ARC参数。这些选项可能并不相互排斥,并且可以想到的是,这些选项可以基于应用需求、所涉及的标准技术或编码器的选择进行互换。

ARC参数的类别可以包括:

-上/下采样因子,分离的或在X维度和Y维度上组合

–上/下采样因子,添加时间维度,指示针对给定数量的图片以恒定速度放大/缩小

-以上两者中的任一者可以涉及一个或更多个可能的短的语法元素的编码,所述语法元素可以指向包含因素的表。

-输入图片、输出图片、参考图片、编码图片的以样本、块、宏块、CU或任何其他合适的粒度为单位的在X或Y维度上组合或分离的分辨率。如果存在多于一个分辨率(例如,一个用于输入图片,一个用于参考图片),则在某些情况下,可以从另一组值推断出一组值。例如,这可以通过使用标志来进行门控。对于更详细的示例,参见下文。

-同样以上述合适的粒度为单位的类似于在H.263附录P中使用的坐标的“翘曲”坐标。H.263附录P定义了一种对这样的翘曲坐标编码的有效方法,但也可以设计能想到的其他可能更有效的方法。例如,附录P的翘曲坐标的可变长度可逆的“霍夫曼”式编码可以由合适长度的二进制编码代替,其中二进制码字的长度可以例如从最大图片大小得到,其可能乘以某个因子并偏移某个值,以便允许“翘曲”超出最大图片大小的界限。

-上采样或下采样滤波器参数。在最简单的情况下,可能仅存在单个滤波器用于上采样和/或下采样。然而,在某些情况下,在滤波器设计中允许更大的灵活性可能是有利的,并且这可能需要用信号发送滤波器参数。可以通过可能的滤波器设计列表中的索引来选择这样的参数,可以完全指定滤波器(例如,通过滤波器系数列表,使用合适的熵编码技术),可以通过上/下采样率隐式地选择滤波器,相应地又根据上面提到的任何机制用信号发送上/下采样率,以此类推。

此后,描述假设对通过码字指示的上/下采样因子(在X和Y维度中使用的相同因子)的有限集合编码。可以有利地例如使用对于诸如H.264和H.265的视频编码规范中的某些语法元素通用的Ext-Golomb码对该码字进行可变长度编码。例如,一种合适的值到上/下采样因子的映射可以根据下表:

根据应用的需要和视频压缩技术或标准中可用的升高和下降机制的能力,可以设计许多类似的映射。该表可以扩展到更多值。值也可以由除Ext-Golomb码之外的熵编码机制表示,例如使用二进制编码表示。当重采样因子对视频处理引擎(首先是编码器和解码器)本身之外例如MANE感兴趣时,这可能具有某些优势。应该注意的是,对于不需要分辨率改变的(大概)最常见的情况,可以选择较短的Ext-Golomb码;在上表中,仅选择单个比特。对于最常见的情况,这与使用二进制代码相比具有编码效率优势。

表中条目的数量以及它们的语义可以是完全或部分可配置的。例如,表的基本要点可以在诸如序列或解码器参数集的“高”参数集中传达。替选地或另外地,可以在视频编码技术或标准中限定一个或更多个这样的表,并且可以通过例如解码器或序列参数集来选择一个或更多个这样的表。

此后,描述了可以如何将如上所述所编码的上采样/下采样因子(ARC信息)包括在视频编码技术或标准语法中。类似的考虑可以适用于一个或若干个控制上/下采样滤波器的码字。参见下面的当滤波器或其他数据结构需要相对大量的数据时的讨论。

H.263附录P以四个翘曲坐标的形式将ARC信息502包括到图片报头501中,特别是包括在H.263PLUSPTYPE(503)报头扩展中。当a)存在可用的图片报头以及b)预期ARC信息会频繁改变时,这可能是一个明智的设计选择。然而,使用H.263样式信令时的开销可能非常高,并且缩放因子可能在图片边界之间不适用,因为图片报头可能具有瞬态性质。

上面参考的JVCET-M135-vl包括位于图片参数集(504)中、索引包括目标分辨率的表(506)的ARC参考信息(505)(索引),表(506)又位于序列参数集(507)内。根据作者的口头陈述,可以通过在能力交换期间使用SPS作为互操作性协商点来对齐(justify)在序列参数集(507)中的表(506)中可能的分辨率的放置。通过参考适当的图片参数集(504),分辨率可以在由表(506)中的值设置的限制内随图片而变化。

仍然参照图5,可以存在以下附加选项以在视频比特流中传达ARC信息。如上面所描述的,这些选项中的每一个都具有优于现有技术的某些优点。这些选项可以同时存在于相同的视频编码技术或标准中。

在实施方式中,ARC信息(509)例如重采样(缩放)因子可以存在于切片报头、GOB报头、图块报头或图块组报头(以下称为图块组报头)(508)中。这对于很小的ARC信息可以是足够的,例如单个可变长度ue(v)或若干比特的固定长度码字,例如如上所示。直接在图块组报头中具有ARC信息具有以下附加优点:ARC信息可以应用于例如由该图块组表示的子图片而不是整个图片。另外参见下文。另外,即使视频压缩技术或标准仅设想整个图片自适应分辨率变化(与例如基于图块组的自适应分辨率变化相比),从容错的角度来看,将ARC信息放入图块组报头中相对于将ARC信息放入到H.263样式图片报头中具有某些优点。

在同一实施方式或另一实施方式中,ARC信息(512)本身可以存在于适当的参数集(511)中,例如图片参数集、报头参数集、图块参数集、自适应参数集等(所描绘的自适应参数集)。该参数集的范围可以有利地不大于图片例如图块组。通过相关参数集的激活,ARC信息的使用是隐式的。例如,当视频编码技术或标准仅考虑基于图片的ARC时,则图片参数集或等效物可能是合适的。

在同一实施方式或另一实施方式中,ARC参考信息(513)可以存在于图块组报头(514)或类似的数据结构中。该参考信息(513)可以指范围超出单个图片的参数集(516)例如序列参数集或解码器参数集中可用的ARC信息(515)的子集。

如在JVET-M0135-v1中使用的来自图块组报头的PPS、PPS、SPS的间接隐含激活的附加层级似乎是不必要的,因为就像序列参数集一样,图片参数集可以(并且在某些标准例如RFC3984中)用于能力协商或公告。然而,如果ARC信息应该应用于例如也由图块组表示的子图片,则具有限于图块组的激活范围的参数集例如自适应参数集或报头参数集可以是更好的选择。此外,如果ARC信息的大小超过可忽略不计的大小——例如包含滤波器控制信息例如许多滤波器系数——则从编码效率的角度来看,参数可以是比直接使用报头(508)更好的选择,因为可以通过参考相同的参数集由未来的图片或子图片重复使用这些设置。

当使用具有跨多个图片的范围的序列参数集或另一更高参数集时,某些考虑可能适用:

1.用于存储ARC信息表的参数集(516)在一些情况下可以是序列参数集,但在其他情况下有利地是解码器参数集。解码器参数集可以具有多个CVS即编码视频流的激活范围,即从会话开始直到会话拆除的所有编码视频比特。这样的范围可能更合适,因为可能的ARC因子可以是可以在硬件中实现的解码器特征,并且硬件特征趋向于不会随任何CVS(其在至少某些娱乐系统中是长度为一秒或更短的图片组)而改变。也就是说,将表放入序列参数集中明确地被包括在本文描述(特别是结合下面的第2点)的放置选项中。

2.ARC参考信息(513)可以有利地被直接放置在图片/切片图块/GOB/图块组报头(此后为图块组报头)(514)中,而不是如在JVCET-M0135-v1中被放置在图片参数集中,原因如下:当编码器想要改变图片参数集例如ARC参考信息中的单个值时,则它必须创建新的PPS并参考该新的PPS。假设仅ARC参考信息发生改变,而其他信息例如PPS中的量化矩阵信息保持不变。这样的信息的大小可能很大,并且将需要被重传以使新的PPS完整。由于ARC参考信息可以是单个码字例如表(513)中的索引并且将是唯一发生改变的值,因此重传所有例如量化矩阵信息将是麻烦且浪费的。到目前为止,从编码效率的角度来看,如JVET-M0135-v1中所提议的,通过PPS避免间接性可能好得多。类似地,将ARC参考信息放置在PPS中具有以下附加缺点:由ARC参考信息(513)所参考的ARC信息必须要应用于整个图片而不是子图片,因为图片参数集激活的范围是图片。

在同一实施方式或另一实施方式中,ARC参数的信令可以遵循如图6中概述的详细示例。图6描绘了至少自1993年以来在视频编码标准中使用的表示中的语法图。这样的语法图的标记大致遵循C样式的编程。粗体行指示比特流中存在的语法元素,没有粗体的行通常指示控制流或变量设置。

作为可用于图片的(可能是矩形的)部分的报头的示例性语法结构的图块组报头(601)可以有条件地包含可变长度的、Exp-Golomb编码的语法元素dec_pic_size_idx(602)(以粗体描绘)。可以根据自适应分辨率(603)的使用来门控图块组报头中该语法元素的存在——此处,标志的值未以粗体描绘,这意味着该标志在其出现在语法图中时存在于比特流中。可以在比特流内部或外部的任何高级语法结构中用信号发送自适应分辨率是否用于该图片或其部分。在所示示例中,这在序列参数集中用信号发送,如下面所概述的。

仍然参照图6,还示出了序列参数集(610)的摘录。所示的第一个语法元素是adaptive_pic_resolution_change_flag(611)。当为真时,该标志可以指示使用自适应分辨率,这又可能需要某些控制信息。在该示例中,这样的控制信息根据基于参数集(612)和图块组报头(601)中的if()语句的标志的值有条件地存在。

当使用自适应分辨率时,在该示例中,编码是以样本为单位的输出分辨率(613)。附图标记613是指output_pic_width_in_luma_samples和output_pic_height_in_luma_samples二者,它们一起可以限定输出图片的分辨率。在视频编码技术或标准中的其他地方,可以限定对任一值的某些限制。例如,层级定义可能会限制总输出样本的数量,其可能是这两个语法元素的值的乘积。此外,某些视频编码技术或标准或者外部技术或标准例如系统标准可能会限制数值范围(例如,一个或两个维度必须能被2的幂整除)或纵横比(例如,宽度和高度必须是4:3或16:9的关系)。可以引入这样的限制以促进硬件实现或用于其他原因,并且在本领域中是众所周知的。

在某些应用中,以下是可取的:编码器指示解码器使用某个参考图片大小而不是隐式地假设该大小是输出图片大小。在该示例中,语法元素reference_pic_size_present_flag(614)对参考图片尺寸(615)(同样,该附图标记是指宽度和高度两者)的有条件存在进行门控。

最后,示出了可能的解码图片宽度和高度的表。例如,可以通过表指示(num_dec_pic_size_in_luma_samples_minus1)(616)来表示这样的表。

“minus1”可以指对该语法元素的值的解释。例如,如果编码值为零,则存在一个表条目。如果该值为5,则存在六个表条目。对于表中的每一“行”,解码图片宽度和高度则被包括在语法(617)中。

可以使用图块组报头中的语法元素dec_pic_size_idx(602)对呈现的表条目(617)进行索引,从而允许每个图块组具有不同的解码大小——实际上是缩放因子。

某些视频编码技术或标准例如VP9通过结合时间可缩放性实现某些形式的参考图片重采样(与所公开的主题完全不同地用信号发送)来支持空间可缩放性,以实现空间可缩放性。特别地,可以使用ARC样式的技术使某些参考图片被上采样到更高分辨率以形成空间增强层的基础。可以使用高分辨率的正常预测机制来改进那些上采样的图片,以便添加细节。

所公开的主题可以在这样的环境中使用。在某些情况下,在同一实施方式或另一实施方式中,NAL单元报头中的值例如时间ID字段可以用于不仅指示时间层,而且还指示空间层。这样做对某些系统设计有一定优点;例如,针对基于NAL单元报头时间ID值而选定转发的时间层而创建和优化的现有选定转发单元(SFU,Selected Forwarding Units)可以在不修改的情况下用于可扩展环境。为了实现这一点,可能需要编码图片大小与时间层之间的映射由NAL单元报头中的时间ID字段指示。

在一些视频编码技术中,访问单元(AU,Access Unit)可以指在给定时刻被捕获并合成为相应图片/切片/图块/NAL单元比特流的编码图片、切片、图块、NAL单元等。该时刻可以是合成时间。

在HEVC和某些其他视频编码技术中,图片顺序计数(POC,picture order count)值可以用于指示在解码图片缓冲器(DPB,decoded picture buffer)中存储的多个参考图片之中选择的参考图片。当访问单元(AU)包括一个或更多个图片、切片或图块时,属于同一AU的每个图片、切片或图块可以携带相同的POC值,从该相同的POC值可以得到它们是从同一合成时间的内容创建的。换句话说,在两个图片/切片/图块携带相同的给定POC值的场景中,这可以指示属于同一AU并且具有相同合成时间的两个图片/切片/图块。相比之下,具有不同POC值的两个图片/切片/图块可以指示属于不同AU并且具有不同合成时间的那些图片/切片/图块。

在所公开的主题的实施方式中,前述严格关系可以放松,因为访问单元可以包括具有不同POC值的图片、切片或图块。通过在AU内允许不同的POC值,可以使用POC值来识别具有相同呈现时间的潜在可独立解码的图片/切片/图块。这转而可以实现支持多个可缩放层而无需改变参考图片选择信令(例如参考图片集信令或参考图片列表信令),如下文更详细描述的。

然而,相对于具有不同POC值的其他图片/切片/图块,能够单独根据POC值识别图片/切片/图块所属的AU仍然是期望的。这可以如下面所描述来实现。

在同一实施方式或其他实施方式中,可以在高级语法结构例如NAL单元报头、切片报头、图块组报头、SEI消息、参数集或AU定界符中用信号发送访问单元计数(AUC,accessunit count)。AUC的值可以用于识别哪些NAL单元、图片、切片或图块属于给定的AU。AUC的值可以对应于不同的合成时刻。AUC值可以等于POC值的倍数。可以通过将POC值除以整数值来计算AUC值。在某些情况下,除法运算会给解码器实现带来一定的负担。在这样的情况下,AUC值的数值空间中的小限制可以允许用移位运算代替除法运算。例如,AUC值可以等于POC值范围的最高有效位(MSB,Most Significant Bit)值。

在同一实施方式中,可以在高级语法结构例如NAL单元报头、切片报头、图块组报头、SEI消息、参数集或AU定界符中用信号发送每个AU的POC周期的值(poc_cycle_au)。poc_cycle_au可以指示多少个不同且连续的POC值可以与同一AU相关联。例如,如果poc_cycle_au的值等于4,则POC值等于0-3(包括端点)的图片、切片或图块与AUC值等于0的AU相关联,并且POC值等于4-7(包括端点)的图片、切片或图块与AUC值等于1的AU相关联。因此,可以通过将POC值除以poc_cycle_au的值来推断AUC的值。

在同一实施方式或另一实施方式中,poc_cyle_au的值可以从位于例如视频参数集(VPS,video parameter set)中的信息得到,该信息识别编码视频序列中的空间或SNR层的数量。下面简要描述这样的可能的关系。虽然如上所描述的推导可以在VPS中节省一些比特并且因此可以提高编码效率,但在视频参数集下方分层地在适当的高级语法结构中显式编码poc_cycle_au可能是有利的,以便能够针对比特流的给定小部分例如图片最小化poc_cycle_au。由于可以在低级语法结构中编码POC值(和/或间接参考POC的语法元素的值),因此该优化可以节省比通过上述推导过程可以节省的比特更多的比特。

上述用于用信号发送自适应分辨率参数的技术可以使用计算机可读指令实现为计算机软件,并且物理存储在一个或更多个计算机可读介质中。例如,图7示出了适于实现所公开主题的某些实施方式的计算机系统700。

可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,所述机器代码或计算机语言可以经受汇编、编译、链接或类似机制以创建包括指令的代码,所述指令可以直接由计算机中央处理单元(CPU,central processing unit)、图形处理单元(GPU,Graphics Processing Unit)等执行或者通过解释、微代码执行等由计算机中央处理单元(CPU,central processing unit)、图形处理单元(GPU,Graphics Processing Unit)等执行。

指令可以在各种类型的计算机或其部件上执行,包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。

图7中所示的部件对于计算机系统700在本质上是示例性的并且不旨在暗示对实现本公开内容的实施方式的计算机软件的使用范围或功能的任何限制。部件的配置也不应被解释为具有与计算机系统700的示例性实施方式中所示的任何一个部件或部件的组合有关的任何依赖性或要求。

计算机系统700可以包括某些人机接口输入设备。这样的人机接口输入设备可以响应于一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘)进行的输入。人机接口设备还可以用于捕获不一定与人的有意识输入直接有关的某些媒体,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静态图像摄像机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。

输入人机接口设备可以包括以下中的一个或更多个(仅描绘了每个中的一个):键盘701、鼠标702、触控板703、触摸屏710、数据手套704、操纵杆705、麦克风706、扫描仪707、摄像机708。

计算机系统700还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或更多个人类用户的感官。这样的人机接口输出设备可以包括触觉输出设备(例如,通过触摸屏710、数据手套704或操纵杆705进行的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备)、音频输出设备(例如:扬声器709、头戴式耳机(未描绘))、视觉输出设备(例如,屏幕710,包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕,每个屏幕具有或不具有触摸屏输入能力,每个屏幕具有或不具有触觉反馈能力——其中的一些可能能够通过诸如立体图像输出的手段输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘)、全息显示器和烟罐(未描绘))和打印机(未描绘)。

计算机系统700还可以包括人类可访问的存储设备及其相关联的介质例如光学介质,包括具有CD/DVD或类似介质721的CD/DVD ROM/RW720、拇指驱动器722、可移除硬盘驱动器或固态驱动器723、传统磁介质例如磁带和软盘(未描绘)、基于专用ROM/ASIC/PLD的设备例如安全软件狗(未描绘)等。

本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包含传输介质、载波或其他瞬态信号。

计算机系统700还可以包括至一个或更多个通信网络的接口。网络可以是例如无线的、有线连接的、光学的。网络还可以是局域的、广域的、城域的、车载和工业的、实时的、延迟容忍的等。网络的示例包括:局域网例如以太网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线连接或无线广域数字网络、包括CANBus的车辆和工业网络等。某些网络通常需要外部网络接口适配器,该外部网络接口适配器附接至某些通用数据端口或外围总线(749)(例如,计算机系统700的USB端口);其他网络通常通过附接至如下所述的系统总线(例如,到PC计算机系统的以太网接口或到智能电话计算机系统的蜂窝网络接口)而集成到计算机系统700的内核中。使用这些网络中的任何网络,计算机系统700可以与其他实体进行通信。这样的通信可以是单向仅接收的(例如,广播电视)、单向仅发送的(例如,CANbus到某些CANbus设备)、或双向的,例如使用局域或广域数字网络到其他计算机系统。可以在这些网络和上述网络接口中每一个上使用某些协议和协议栈。

前述人机接口设备、人类可访问存储设备和网络接口可以附接至计算机系统700的内核740。

内核740可以包括一个或更多个中央处理单元(CPU)741、图形处理单元(GPU)742、现场可编程门区(FPGA,Field Programmable Gate Areas)形式的专用可编程处理单元743、针对特定任务的硬件加速器744等。这些设备连同只读存储器(ROM,Read-onlymemory)745、随机存取存储器746、内部大容量存储装置(例如内部非用户可访问硬盘驱动器、SSD等)747可以通过系统总线748连接。在一些计算机系统中,系统总线748可以能够以一个或更多个物理插头的形式访问,以实现附加CPU、GPU等的扩展。外围设备可以直接附接至内核的系统总线748或可以通过外围总线749附接至系统总线748。外围总线的架构包括PCI、USB等。

CPU 741、GPU 742、FPGA743和加速器744可以执行某些指令,这些指令组合起来可以形成前述计算机代码。该计算机代码可以存储在ROM 745或RAM 746中。瞬态数据也可以存储在RAM 746中,而永久数据可以存储在例如内部大容量存储装置747中。通过使用可以与一个或更多个CPU 741、GPU 742、大容量存储装置747、ROM 745、RAM 746等紧密相关联的高速缓冲存储器来实现对任何存储器设备的快速存储和检索。

计算机可读介质上在其上可以具有用于执行各种计算机实现的操作的计算机代码。媒体和计算机代码可以是为了本公开内容的目的而专门设计和构建的那些媒体和计算机代码,或者它们可以是计算机软件领域的技术人员公知且可用的类型。

作为示例而非限制,具有架构700并且具体地具有内核740的计算机系统可以提供作为处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一个或更多个有形计算机可读介质中的软件的结果的功能。这样的计算机可读介质可以是与如以上介绍的用户可访问大容量存储装置以及作为非暂态本质的内核740的某些存储装置例如内核内部大容量存储装置747或ROM 745相关联的介质。实现本公开内容的各种实施方式的软件可以存储在这样的设备中并且由内核740执行。根据特定需要,计算机可读介质可以包括一个或更多个存储设备或芯片。软件可以使内核740并且具体地使其中的处理器(包括CPU、GPU、FPGA等)执行本文描述的特定过程或特定过程的特定部分,包括定义存储在RAM 746中的数据结构和根据由软件定义的过程修改这样的数据结构。另外或作为替选,计算机系统可以提供作为硬连线或以其他方式包含在电路(例如:加速器744)中的逻辑的结果的功能,其可以代替软件运行或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,对软件的参考可以包含逻辑,并且反之亦然。在适当的情况下,对计算机可读介质的参考可以涵盖存储用于执行的软件的电路(例如集成电路(IC,integrated circuit))、包含用于执行的逻辑的电路或两者。本公开内容包含硬件和软件的任何合适的组合。

图8示出了具有自适应分辨率改变的具有temporal_id、layer_id、POC和AUC值的组合的视频序列结构的示例。在该示例中,AUC=0的第一AU中的图片、切片或图块可以具有temporal_id=0和layer_id=0或1,而AUC=1的第二AU中的图片、切片或图块可以分别具有temporal_id=1和layer_id=0或1。不管temporal_id和layer_id的值如何,POC的值每个图片增加1。在该示例中,poc_cycle_au的值可以等于2。优选地,poc_cycle_au的值可以设置为等于层的数量(空间可扩展性)。因此,在该示例中,POC的值增加2,而AUC的值增加1。

在上述实施方式中,可以通过使用HEVC中现存的参考图片集(RPS,referencepicture set)信令或参考图片列表(RPL,reference picture list)信令来支持图片间或层间预测结构和参考图片指示中的全部或子集。在RPS或RPL中,通过用信号发送POC值或当前图片与所选参考图片之间的POC的增量值来指示所选参考图片。对于所公开的主题,可以使用RPS和RPL来指示图片间或层间预测结构而无需改变信令,但具有以下限制。如果参考图片的temporal_id的值大于当前图片的temporal_id的值,则当前图片可以不使用参考图片进行运动补偿或其他预测。如果参考图片的layer_id的值大于当前图片的layer_id的值,则当前图片可以不使用参考图片进行运动补偿或其他预测。

在同一实施方式和其他实施方式中,可以跨访问单元内的多个图片禁用用于时间运动矢量预测的基于POC差异的运动矢量缩放。因此,尽管每个图片在访问单元内可以具有不同的POC值,但运动矢量未被缩放并用于访问单元内的时间运动矢量预测。这是因为同一AU中具有不同POC的参考图片被认为是具有相同时刻的参考图片。因此,在本实施方式中,当参考图片属于与当前图片相关联的AU时,运动矢量缩放函数可以返回1。

在同一实施方式和其他实施方式中,当参考图片的空间分辨率与当前图片的空间分辨率不同时,可以跨多个图片可选地禁用用于时间运动矢量预测的基于POC差异的运动矢量缩放。当允许运动矢量缩放时,运动矢量基于当前图片与参考图片之间的POC差异和空间分辨率比来缩放。

在同一实施方式或另一实施方式中,特别是当poc_cycle_au具有非均匀值时(当vps_contant_poc_cycle_per_au==0时),可以基于AUC差异而不是POC差异来缩放运动矢量用于时间运动矢量预测。否则(当vps_contant_poc_cycle_per_au==1时),基于AUC差异的运动矢量缩放可以与基于POC差异的运动矢量缩放相同。

在同一实施方式或另一实施方式中,当基于AUC差异对运动矢量进行缩放时,与当前图片相同的AU(具有相同AUC值)中的参考运动矢量不基于AUC差异进行缩放并且用于没有缩放或具有基于当前图片与参考图片之间的空间分辨率比的缩放的运动矢量预测。

在同一实施方式和其他实施方式中,AUC值用于识别AU的边界并且用于假设参考解码器(HRD,hypothetical reference decoder)操作,该操作需要AU粒度下的输入和输出时序。大多数情况下,可以输出AU中最高层的解码图片以进行显示。AUC值和layer_id值可以用于识别输出图片。

在实施方式中,图片可以由一个或更多个子图片构成。每个子图片可以覆盖图片的局部区域或整个区域。由子图片支持的区域可以与由另一子图片支持的区域交叠或不交叠。由一个或更多个子图片组成的区域可以覆盖或者可以不覆盖图片的整个区域。如果图片由子图片构成,则由子图片支持的区域与由图片支持的区域相同。

在同一实施方式中,可以通过与用于编码图片的编码方法类似的编码方法对子图片进行编码。可以对子图片独立编码或者可以根据另一子图片或编码图片对子图片进行编码。子图片与另一子图片或编码图片可以具有或可以不具有任何解析相关性。

在同一实施方式中,编码子图片可以包含在一个或更多个层中。层中的编码子图片可以具有不同的空间分辨率。可以在空间上对原始子图片重采样(上采样或下采样),使用不同的空间分辨率参数对原始子图片进行编码,并且将其包含在与层对应的比特流中。

在同一实施方式或另一实施方式中,可以对具有(W,H)的子图片进行编码并且将其包含在与第0层对应的编码比特流中,其中W指示子图片的宽度并且H指示子图片的高度,而可以对来自具有原始空间分辨率的子图片的具有(W*S

在同一实施方式或另一实施方式中,层中的编码子图片可以具有与同一子图片或不同子图片中的另一层中的编码子图片的视觉质量不同的视觉质量。例如,用量化参数Q

在同一实施方式或另一实施方式中,层中的编码子图片可以是独立可解码的,而与相同局部区域的另一层中的编码子图片没有任何解析或解码相关性。可以独立解码而无需参考同一局部区域的另一子图片层的子图片层为独立的子图片层。独立子图片层中的编码子图片与同一子图片层中先前编码的子图片可以具有或可以不具有解码或解析相关性,但编码子图片与另一子图片层中的编码图片可以不具有任何相关性。

在同一实施方式或另一实施方式中,层中的编码子图片可以是可依赖性地解码的,与同一局部区域的另一层中的编码子图片具有任何解析或解码相关性。可以通过参考同一局部区域的另一子图片层进行依赖性解码的子图片层是依赖性子图片层。依赖性子图片中的编码子图片可以参考属于同一子图片的编码子图片、同一子图片层中的先前编码的子图片或者这两个参考子图片。

在同一实施方式或另一实施方式中,编码子图片由一个或更多个独立子图片层和一个或更多个依赖性子图片层构成。然而,对于编码子图片,可以存在至少一个独立子图片层。独立子图片层可以具有层标识符(layer_id)的值,该层标识符(layer_id)的值可以存在于NAL单元报头或其他高级语法结构中、等于0。layer_id等于0的子图片层是基础子图片层。

在同一实施方式或另一实施方式中,图片可以由一个或更多个前景子图片和一个背景子图片构成。由背景子图片支持的区域可以等于图片的区域。由前景子图片支持的区域可以与由背景子图片支持的区域交叠。背景子图片可以是基础子图片层,而前景子图片可以是非基础(增强)子图片层。一个或更多个非基础子图片层可以参考同一基础层以进行解码。layer_id等于a的每个非基础子图片层可以参考layer_id等于b的非基础子图片层,其中a大于b。

在同一实施方式或另一实施方式中,图片可以由一个或更多个前景子图片构成,具有或不具有背景子图片。每个子图片可以具有其自己的基础子图片层和一个或更多个非基础(增强)层。每个基础子图片层可以被一个或更多个非基础子图片层参考。layer_id等于a的每个非基础子图片层可以参考layer_id等于b的非基础子图片层,其中a大于b。

在同一实施方式或另一实施方式中,图片可以由一个或更多个前景子图片构成,具有或不具有背景子图片。(基础或非基础)子图片层中的每个编码子图片可以被属于同一子图片的一个或更多个非基础层子图片和不属于同一子图片的一个或更多个非基础层子图片参考。

在同一实施方式或另一实施方式中,图片可以由一个或更多个前景子图片构成,具有或不具有背景子图片。层a中的子图片可以进一步划分成同一层中的多个子图片。层b中的一个或更多个编码子图片可以参考层a中的已划分子图片。

在同一实施方式或另一实施方式中,编码视频序列(CVS,coded video sequence)可以是一组编码图片。CVS可以由一个或更多个编码子图片序列(CSPS,coded sub-picturesequence)构成,其中CSPS可以是覆盖图片的同一局部区域的一组编码子图片。CSPS可以具有与编码视频序列的时间分辨率相同或不同的时间分辨率。

在同一实施方式或另一实施方式中,可以对CSPS编码,并且将其包含在一个或更多个层中。CSPS可以由一个或更多个CSPS层构成。解码与CSPS对应的一个或更多个CSPS层可以重建与同一局部区域对应的子图片序列。

在同一实施方式或另一实施方式中,与CSPS对应的CSPS层的数量可以与和另一CSPS对应的CSPS层的数量相同或不同。

在同一实施方式或另一实施方式中,CSPS层可以具有与另一CSPS层不同的时间分辨率(例如,帧速率)。可以对原始(未压缩)子图片序列在时间上重采样(上采样或下采样),用不同的时间分辨率参数对其进行编码,并且将其包含在与层对应的比特流中。

在同一实施方式或另一实施方式中,可以对具有帧速率F的子图片序列编码并且将其包含在与层0对应的编码比特流中,而可以对具有F*S

在同一实施方式或另一实施方式中,当具有CSPS层a的子图片被具有CSPS层b的子图片参考用于运动补偿或任何层间预测时,如果CSPS层a的空间分辨率与CSPS层b的空间分辨率不同,则对CSPS层a中的解码像素进行重采样,并且用于参考。重采样过程可能需要上采样滤波或下采样滤波。

在同一实施方式或另一实施方式中,图9示出了用于用信号发送VPS

(或SPS)中的vps_poc_cycle_au的语法元素以及切片报头中的slice_poc_cycle_au的语法元素的语法表的示例,vps_poc_cycle_au指示用于编码视频序列中的所有图片/切片的poc_cycle_au,slice_poc_cycle_au指示当前切片的poc_cycle_au。如果POC值对于每个AU均匀增加,则VPS中的vps_contant_poc_cycle_per_au被设置为等于1,并且在VPS中用信号发送vps_poc_cycle_au。在这种情况下,没有显式地用信号发送slice_poc_cycle_au,并且通过将POC值除以vps_poc_cycle_au来计算每个AU的AUC值。如果POC值对于每个AU不均匀增加,则VPS中的vps_contant_poc_cycle_per_au被设置为等于0。在这种情况下,不用信号发送vps_access_unit_cnt,而在每个切片或图片的切片报头中用信号发送slice_access_unit_cnt。每个切片或图片可以具有不同的slice_access_unit_cnt值。通过将POC值除以slice_poc_cycle_au来计算每个AU的AUC值。图10示出了说明相关工作流程的框图。

在同一实施方式或其他实施方式中,即使图片、切片或图块的POC值可以不同,但是与具有相同AUC值的AU对应的图片、切片或图块可以与相同的解码或输出时刻相关联。因此,同一AU中的图片、切片或图块之间没有任何内部解析/解码相关性,可以对与同一AU相关联的图片、切片或图块中的全部或子集并行解码,并且与同一AU相关联的图片、切片或图块中的全部或子集可以在同一时刻输出。

在同一实施方式或其他实施方式中,即使图片、切片或图块的POC值可以不同,但是与具有相同AUC值的AU对应的图片、切片或图块可以与同一合成/显示时刻相关联。当合成时间被包含在容器格式中时,即使图片对应于不同的AU,如果图片具有相同的合成时间,则可以在同一时刻显示图片。

在同一实施方式或其他实施方式中,每个图片、切片或图块可以在同一AU中具有相同时间标识符(temporal_id)。对应于时刻的图片、切片或图块的全部或子集可以与同一时间子层相关联。在同一实施方式或其他实施方式中,每个图片、切片或图块在同一AU中可以具有相同或不同的空间层id(layer_id)。对应于时刻的图片、切片或图块的全部或子集可以与相同或不同的空间层相关联。

图11示出了示例视频流,其包括layer_id等于0的背景视频CSPS和多个前景CSPS层。虽然编码子图片可以由一个或更多个CSPS层构成,但不属于任何前景CSPS层的背景区域可以由基础层构成。基础层可以包含背景区域和前景区域,而增强CSPS层包含前景区域。在同一区域处,增强CSPS层可以具有比基础层更好的视觉质量。增强CSPS层可以参考与同一区域对应的基础层的重建像素和运动矢量。

在同一实施方式或另一实施方式中,在视频文件中,与基础层对应的视频比特流被包含在轨道中,而与每个子图片对应的CSPS层被包含在单独的轨道中。

在同一实施方式或另一实施方式中,与基础层对应的视频比特流被包含在轨道中,而具有相同layer_id的CSPS层被包含在单独的轨道中。在该示例中,与层k对应的轨道仅包括与层k对应的CSPS层。

在同一实施方式或另一实施方式中,每个子图片的每个CSPS层存储在单独的轨道中。每个轨道与一个或更多个其他轨道可以具有或可以不具有任何解析或解码相关性。

在同一实施方式或另一实施方式中,每个轨道可以包含与所有子图片或子图片子集的CSPS层的层i到层j对应的比特流,其中0

在同一实施方式或另一实施方式中,图片由一个或更多个相关联的媒体数据构成,该媒体数据包括深度图、阿尔法图、3D几何数据、占用图等。这样相关联的定时媒体数据可以被划分为一个或多个数据子流,一个或多个数据子流中的每一个对应于一个子图片。

在同一实施方式或另一实施方式中,图12示出了基于多层子图片方法的视频会议的示例。在视频流中,包含与背景图片对应的一个基础层视频比特流和与前景子图片对应的一个或更多个增强层视频比特流。每个增强层视频比特流对应于CSPS层。在显示中,默认显示与基础层对应的图片。它包含一个或更多个用户的画中画(PIP,picture in apicture)。当通过客户端控件选择特定用户时,对与所选用户对应的增强CSPS层进行解码并且以增强的质量或空间分辨率显示与所选用户对应的增强CSPS层。

图13示出了操作图。

在同一实施方式或另一实施方式中,网络中间盒(例如路由器)可以根据其带宽选择层的子集以发送给用户。图片/子图片组织可以用于带宽适配。例如,如果用户没有带宽,则路由器由于其重要性或基于使用的设置来剥去层或选择一些子图片,并且这可以动态地进行以适应带宽。

图14示出了360度视频的使用情况。当球面360度图片被投影到平面图片上时,可以将投影360度图片划分成多个子图片作为基础层。可以对特定子图片的增强层进行编码并且将其传输到客户端。解码器能够对包括所有子图片的基础层和所选子图片的增强层二者进行解码。当当前视口与所选的子图片相同时,利用具有增强层的解码子图片,显示图片可以具有更高质量。否则,可以以低质量显示具有基础层的解码图片。

在同一实施方式或另一实施方式中,用于显示的任何布局信息可以作为补充信息(例如SEI消息或元数据)存在于文件中。可以根据用信号发送的布局信息重新定位和显示一个或更多个解码子图片。可以由流传输服务器或广播公司用信号发送布局信息,或者可以由网络实体或云服务器重新生成布局信息,或者可以通过用户自定义的设置来确定布局信息。

在实施方式中,当输入图片被划分成一个或更多个(矩形)子区域时,每个子区域可以被编码为独立层。与局部区域对应的每个独立层可以具有唯一的layer_id值。对于每个独立层,可以用信号发送子图片大小和位置信息。例如,图片大小(宽,高)、左上角的偏移信息(x_offset,y_offset)。图15示出了经划分的子图片的布局、其子图片大小和位置信息及其对应的图片预测结构的示例。可以在高级语法结构例如参数集、切片或图块组的报头或者SEI消息中用信号发送包括子图片大小和子图片位置的布局信息。

在同一实施方式中,与独立层对应的每个子图片在AU内可以具有其唯一的POC值。当通过使用RPS或RPL结构中的语法元素指示存储在DPB中的图片之中的参考图片时,可以使用与层对应的每个子图片的POC值。

在同一实施方式或另一实施方式中,为了指示(层间)预测结构,可以不使用layer_id而可以使用POC(增量(delta))值。

在同一实施方式中,与层(或局部区域)对应的POC值等于N的子图片可以用作或可以不用作与同一层(或同一局部区域)对应的POC值等于N+K的子图片的参考图片,以进行运动补偿预测。在大多数情况下,数字K的值可以等于(独立)层的最大数量,(独立)层的最大数量可以与子区域的数量相同。

在同一实施方式或另一实施方式中,图16示出了图15的扩展情况。当输入图片被划分成多个(例如四个)子区域时,可以用一个或更多个层对每个局部区域进行编码。在这种情况下,独立层的数量可以等于子区域的数量,并且一个或更多个层可以对应于子区域。因此,可以用一个或更多个独立层和零个或更多个依赖性层对每个子区域进行编码。

在同一实施方式中,在图16中,输入图片可被划分成四个子区域。右上子区域可以被编码为两层,即层1和层4,而右下子区域可以被编码为两层,即层3和层5。在这种情况下,层4可以参考层1以进行运动补偿预测,而层5可以参考层3以进行运动补偿。

在同一实施方式或另一实施方式中,可以(可选地)禁用跨层边界的环路滤波(例如去块滤波、自适应环路滤波、整形器、双边滤波或任何基于深度学习的滤波)。

在同一实施方式或另一实施方式中,可以(可选地)禁用跨层边界的运动补偿预测或块内复制。

在同一实施方式或另一实施方式中,可以可选地处理用于在子图片的边界处的运动补偿预测或环路滤波的边界填充。可以在高级语法结构例如参数集(VPS、SPS、PPS或APS)、切片或图块组报头或SEI消息中用信号发送指示边界填充是否被处理的标志。

在同一实施方式或另一实施方式中,可以在VPS或SPS中用信号发送子区域(或子图片)的布局信息。图17示出了VPS和SPS中的语法元素的实例。在该示例中,在VPS中用信号发送vps_sub_picture_dividing_flag。该标志可以指示输入图片是否被划分成多个子区域。当vps_sub_picture_dividing_flag的值等于0时,与当前VPS对应的编码视频序列中的输入图片可以不被划分成多个子区域。在这种情况下,输入图片大小可以等于编码图片大小(pic_width_in_luma_samples,pic_height_in_luma_samples),其在SPS中用信号发送。当vps_sub_picture_dividing_flag的值等于1时,可以将输入图片划分成多个子区域。在这种情况下,在VPS中用信号发送语法元素vps_full_pic_width_in_luma_samples和vps_full_pic_height_in_luma_samples。vps_full_pic_width_in_luma_samples和vps_full_pic_height_in_luma_samples的值可以分别等于输入图片的宽度和高度。

在同一实施方式中,vps_full_pic_width_in_luma_samples和vps_full_pic_height_in_luma_samples的值可以不用于解码,而可以用于合成和显示。

在同一实施方式中,当vps_sub_picture_dividing_flag的值等于1时,可以在与特定层对应的SPS中用信号发送语法元素pic_offset_x和pic_offset_y。在这种情况下,在SPS中用信号发送的编码图片大小(pic_width_in_luma_samples,pic_height_in_luma_samples)可以等于与特定层对应的子区域的宽度和高度。此外,可以在SPS中用信号发送子区域的左上角的位置(pic_offset_x,pic_offset_y)。

在同一实施方式中,子区域的左上角的位置信息(pic_offset_x,pic_offset_y)可以不用于解码,而可以用于合成和显示。

在同一实施方式或另一实施方式中,可以在参数集或SEI消息中用信号发送输入图片的所有子区域或子区域的子集的布局信息(大小和位置)、层之间的相关性信息。图18示出了用于指示子区域的布局、层之间的相关性以及子区域与一个或更多个层之间的关系的信息的语法元素的示例。在该示例中,语法元素num_sub_region指示当前编码视频序列中(矩形)子区域的数量。语法元素num_layers指示当前编码视频序列中的层数。num_layers的值可以等于或大于num_sub_region的值。当任一子区域被编码为单个层时,num_layers的值可以等于num_sub_region的值。当一个或更多个子区域被编码为多个层时,num_layers的值可以大于num_sub_region的值。语法元素direct_dependency_flag[i][j]指示从第j层到第i层的相关性。num_layers_for_region[i]指示与第i子区域相关联的层数。sub_region_layer_id[i][j]指示与第i子区域相关联的第j层的layer_id。sub_region_offset_x[i]和sub_region_offset_y[i]分别指示第i子区域的左上角的水平定位和垂直定位。sub_region_width[i]和sub_region_height[i]分别表示第i子区域的宽度和高度。

在一个实施方式中,可以在高级语法结构例如VPS、DPS、SPS、PPS、APS或SEI消息中用信号发送一个或更多个语法元素,所述一个或更多个语法元素指定用于指示具有或不具有配置文件层级信息的要输出的一个或更多个层的输出层集。参照图19,可以在VPS中用信号发送参考VPS指示编码视频序列中的输出层集(OLS,output layer set)的数量的语法元素num_output_layer_sets。对于每个输出层集,可以用信号发送与输出层的数量一样多的output_layer_flag。

在同一实施方式中,output_layer_flag[i]等于1指定输出第i层。vps_output_layer_flag[i]等于0指定不输出第i层。

在同一实施方式或另一实施方式中,可以在高级语法结构例如VPS、DPS、SPS、PPS、APS或SEI消息中用信号发送指定每个输出层集的配置文件层级信息的一个或更多个语法元素。仍然参照图19,可以在VPS中用信号发送参考VPS指示编码视频序列中每个OLS的配置文件层级信息的数量的语法元素num_profile_tile_level。对于每个输出层集,可以用信号发送与输出层的数量一样多的用于配置文件层级信息的语法元素的集合或指示配置文件层级信息中的条目之中的特定配置文件层级信息的索引。

在同一实施方式中,profile_tier_level_idx[i][j]指定VPS中profile_tier_level()语法结构列表中的应用于第i OLS的第j层的profile_tier_level()语法结构的的索引。

在同一实施方式或另一实施方式中,参照图20,当最大层数大于1(vps_max_layers_minus1>0)时,可以用信号发送语法元素num_profile_tile_level和/或num_output_layer_sets。

在同一实施方式或另一实施方式中,参照图20,指示第i输出层集的输出层信令的模式的语法元素vps_output_layers_mode[i]可以存在于VPS中。

在同一实施方式中,vps_output_layers_mode[i]等于0指定仅输出第i输出层集的最高层。vps_output_layer_mode[i]等于1指定输出第i输出层集的所有层。vps_output_layer_mode[i]等于2指定输出的层是第i输出层集的vps_output_layer_flag[i][j]等于1的层。可以保留更多值。

在同一实施方式中,根据用于第i输出层集的vps_output_layers_mode[i]的值,可以用信号发送或者可以不用信号发送output_layer_flag[i][j]。

在同一实施方式或另一实施方式中,参照图20,对于第i输出层集可以存在标志vps_ptl_signal_flag[i]。根据vps_ptl_signal_flag[i]的值,可以用信号发送或者可以不用信号发送第i输出层集的配置文件层级信息。

在同一实施方式或另一实施方式中,参照图21,可以在高级语法结构例如VPS、DPS、SPS、PPS、APS或SEI消息中用信号发送当前CVS中子图片的数量max_subpics_minus1。

在同一实施方式中,参照图21,当子图片的数量大于1(max_subpics_minus1>0)时,可以用信号发送第i子图片的子图片标识符sub_pic_id[i]。

在同一实施方式或另一实施方式中,可以在VPS中用信号发送指示属于每个输出层集的每个层的子图片标识符的一个或更多个语法元素。参照图22,sub_pic_id_layer[i][j][k]指示存在于第i输出层集的第j层中的第k子图片。利用这些信息,解码器可以识别对于特定输出层集的每一层可以解码和输出哪个子图片。

在实施方式中,图片报头(PH,picture header)是包含应用于编码图片的所有切片的语法元素的语法结构。图片单元(PU,picture unit)是NAL单元集合,所述NAL单元集合根据指定的分类规则相互关联,在解码顺序上是连续的,并且恰好包含一个编码图片。PU可以包含图片报头(PH)和构成编码图片的一个或更多个视频编码层(VCL,video codinglayer)NAL单元。

在实施方式中,SPS(RBSP)在其被参考之前可用于解码过程,被包括在TemporalId等于0的至少一个AU中,或者通过外部手段来提供。

在实施方式中,SPS(RBSP)在其被参考之前可用于解码过程,被包括在包含参考SPS的一个或更多个PPS的CVS中TemporalId等于0的至少一个AU中,或者通过外部手段来提供。

在实施方式中,SPS(RBSP)在其被一个或更多个PPS参考之前可用于解码过程,被包括在nuh_layer_id等于参考CVS中的SPS NAL单元的PPS NAL单元的最低nuh_layer_id值的至少一个PU中,该CVS包含参考SPS的一个或更多个PPS,或通过外部手段来提供SPS(RBSP)。

在实施方式中,SPS(RBSP)在其被一个或更多个PPS参考之前可用于解码过程,被包括在TemporalId等于0且nuh_layer_id等于参考SPS NAL单元的PPS NAL单元的最低nuh_layer_id值的至少一个PU中,或者通过外部手段来提供。

在实施方式中,SPS(RBSP)在其被一个或更多个PPS参考之前可用于解码过程,被包括在TemporalId等于0且nuh_layer_id等于参考CVS中的SPS NAL单元的PPS NAL单元的最低nuh_layer_id值的至少一个PU中,该CVS包含参考SPS的一个或更多个PPS,或者通过外部手段来提供SPS(RBSP)。

在同一实施方式或另一实施方式中,pps_seq_parameter_set_id为所参考的SPS指定sps_seq_parameter_set_id的值。pps_seq_parameter_set_id的值在由CLVS中的编码图片参考的所有PPS中可以是相同的。

在同一实施方式或另一实施方式中,CVS中具有特定sps_seq_parameter_set_id值的所有SPS NAL单元可以具有相同的内容。

在同一实施方式或另一实施方式中,不管nuh_layer_id值如何,SPS NAL单元可以共享sps_seq_parameter_set_id的相同值空间。

在同一实施方式或另一实施方式中,SPS NAL单元的nuh_layer_id值可以等于参考SPS NAL单元的PPS NAL单元的最低nuh_layer_id值。

在实施方式中,当nuh_layer_id等于m的SPS被nuh_layer_id等于n的一个或更多个PPS参考时。nuh_layer_id等于m的层可以与nuh_layer_id等于n的层或nuh_layer_id等于m的层的(直接或间接)参考层相同。

在实施方式中,PPS(RBSP)在其被参考之前应该可用于解码过程,被包括在TemporalId等于PPS NAL单元的TemporalId的至少一个AU中,或者通过外部手段来提供。

在实施方式中,PPS(RBSP)在其被参考之前应该可用于解码过程,被包括在TemporalId等于CVS中PPS NAL单元的TemporalId的至少一个AU中,该CVS包含参考PPS的一个或更多个PH(或编码切片NAL单元),或通过外部手段来提供PPS(RBSP)。

在实施方式中,PPS(RBSP)在其被一个或更多个PH(或编码切片NAL单元)参考之前应该可用于解码过程,被包括在nuh_layer_id等于参考CVS中的PPS NAL单元的编码切片NAL单元的最低nuh_layer_id值的至少一个PU中,该CVS包含参考PPS的一个或更多个PH(或编码切片NAL单元),或通过外部手段来提供PPS(RBSP)。

在实施方式中,PPS(RBSP)在其被一个或更多个PH(或编码切片NAL单元)参考之前应该可用于解码过程,被包括在TemporalId等于PPS NAL单元的TemporalId且nuh_layer_id等于参考CVS中的PPS NAL单元的编码切片NAL单元的最低nuh_layer_id值的至少一个PU中,该CVS包含参考PPS的一个或更多个PH(或编码切片NAL单元),或通过外部手段来提供PPS(RBSP)。

在同一实施方式或另一实施方式中,PH中的ph_pic_parameter_set_id为所使用的参考的PPS指定pps_pic_parameter_set_id的值。pps_seq_parameter_set_id的值在被CLVS中的编码图片参考的所有PPS中可以是相同的。

在同一实施方式或另一实施方式中,PU内具有特定pps_pic_parameter_set_id值的所有PPS NAL单元应该具有相同内容。

在同一实施方式或另一实施方式中,无论nuh_layer_id值如何,PPS NAL单元均可以共享pps_pic_parameter_set_id的相同值空间。

在同一实施方式或另一实施方式中,PPS NAL单元的nuh_layer_id值可以等于参考NAL单元、参考PPS NAL单元的编码切片NAL单元的最低nuh_layer_id值,

在实施方式中,当nuh_layer_id等于m的PPS被nuh_layer_id等于n的一个或更多个编码切片NAL单元参考时。nuh_layer_id等于m的层可以与nuh_layer_id等于n的层或nuh_layer_id等于m的层的(直接或间接)参考层相同。

在实施方式中,PPS(RBSP)在其被参考之前应该可用于解码过程,被包括在TemporalId等于PPS NAL单元的TemporalId的至少一个AU中,或通过外部手段来提供。

在实施方式中,PPS(RBSP)在其被参考之前应该可用于解码过程,被包括在TemporalId等于CVS中PPS NAL单元的TemporalId的至少一个AU中,该CVS包含参考PPS的一个或更多个PH(或编码切片NAL单元),或者通过外部方式来提供PPS(RBSP)。

在实施方式中,PPS(RBSP)在其被一个或更多个PH(或编码切片NAL单元)参考之前应该可用于解码过程,被包括在nuh_layer_id等于参考CVS中的PPS NAL单元的编码切片NAL单元的最低nuh_layer_id值的至少一个PU中,该CVS包含参考PPS的一个或更多个PH(或编码切片NAL单元),或通过外部方式来提供PPS(RBSP)。

在实施方式中,PPS(RBSP)在其被一个或更多个PH(或编码切片NAL单元)参考之前应该可用于解码过程,被包括在TemporalId等于PPS NAL单元的TemporalId且nuh_layer_id等于参考CVS中的PPS NAL单元的编码切片NAL单元的最低nuh_layer_id值的至少一个PU中,该CVS包含参考PPS的一个或更多个PH(或编码切片NAL单元),或通过外部手段来提供PPS(RBSP)

在同一实施方式或另一个实施方式中,PH中的ph_pic_parameter_set_id为所使用的参考的PPS指定pps_pic_parameter_set_id的值。pps_seq_parameter_set_id的值在被CLVS中的编码图片参考的所有PPS中可以是相同的。

在同一实施方式或另一实施方式中,PU内具有特定pps_pic_parameter_set_id值的所有PPS NAL单元应该具有相同内容。

在同一实施方式或另一实施方式中,无论nuh_layer_id值如何,PPS NAL单元可以共享pps_pic_parameter_set_id的相同值空间。

在同一实施方式或另一实施方式中,PPS NAL单元的nuh_layer_id值可以等于参考NAL单元、参考PPS NAL单元的编码切片NAL单元的最低nuh_layer_id值。

在实施方式中,当nuh_layer_id等于m的PPS被nuh_layer_id等于n的一个或更多个编码切片NAL单元参考时。nuh_layer_id等于m的层可以与nuh_layer_id等于n的层或nuh_layer_id等于m的层的(直接或间接)参考层相同。

在实施方式中,如图22所示,图片参数集中的pps_subpic_id[i]指定第i子图片的子图片ID。pps_subpic_id[i]语法元素的长度是pps_subpic_id_len_minus1+1比特。

对于在0到sps_num_subpics_minus1范围(包括端点)内的每个i值,变量SubpicIdVal[i]如下推导:

在同一实施方式或另一实施方式中,对于在0到sps_num_subpics_minus1范围(包括端点)内的任何两个不同的i和j值,SubpicIdVal[i]可以不等于SubpicIdVal[j]。

在同一实施方式或另一实施方式中,当当前图片不是CLVS的第一图片时,对于0到sps_num_subpics_minus1范围(包括端点)内的每个i值,如果SubpicIdVal[i]的值不等于同一层中按解码顺序的前一图片的SubpicIdVal[i]的值,则子图片索引为i的当前图片中的子图片的所有编码切片NAL单元的nal_unit_type可以等于IDR_W_RADL到CRA_NUT范围(包括端点)内的特定值。

在同一实施方式或另一实施方式中,当当前图片不是CLVS的第一图片时,对于0到sps_num_subpics_minus1范围(包括端点)内的每个i值,如果SubpicIdVal[i]的值不等于同一层中按解码顺序的前一图片的SubpicIdVal[i]的值,则sps_independent_subpics_flag可以等于1。

在同一实施方式或另一实施方式中,当当前图片不是CLVS的第一图片时,对于0到sps_num_subpics_minus1范围(包括端点)内的每个i值,如果SubpicIdVal[i]的值不等于同一层中按解码顺序的前一图片的SubpicIdVal[i]的值,则subpic_treated_as_pic_flag[i]和loop_filter_across_subpic_enabled_flag[i]可以等于1。

在同一实施方式或另一实施方式中,当当前图片不是CLVS的第一图片时,对于0到sps_num_subpics_minus1范围(包括端点)内的每个i值,如果SubpicIdVal[i]的值不等于同一层中按解码顺序的前一图片的SubpicIdVal[i]的值,则sps_independent_subpics_flag应等于1或者subpic_treat_as_pic_flag[i]和loop_filter_across_subpic_enabled_flag[i]应等于1。

在同一实施方式或另一实施方式中,当对子图片独立编码而不参考另一子图片时,可以在编码视频序列内改变区域的子图片标识符的值。

以CTB为单位处理样品。每个亮度CTB的阵列大小在宽度和高度方面均是以样本为单位的CtbSizeY。每个色度CTB的阵列的宽度和高度分别为以样本为单位的CtbWidthC和CtbHeightC。每个CTB被分配有划分信令,以识别用于帧内或帧间预测以及用于变换编码的块大小。划分是递归四叉树划分。四叉树的根与CTB相关联。四叉树被分裂直到到达叶子,其被称为四叉树叶子。当部件宽度不是CTB大小的整数时,右侧部件边界处的CTB是不完整的。当部件高度不是CTB大小的整数倍时,底部部件边界处的CTB是不完整的。

可以以CtbSizeY为单位在SPS中用信号发送每个子图片的宽度和高度信息。在图23中,例如,subpic_width_minus1[i]加1指定以CtbSizeY为单位的第i子图片的宽度。语法元素的长度是Ceil(Log2((pic_width_max_in_luma_samples+CtbSizeY–1)>>CtbLog2SizeY))比特。当不存在时,subpic_width_minus1[i]的值被推断为等于((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_x[i]–1。subpic_height_minus1[i]加1指定以CtbSizeY为单位的第i子图片的高度。语法元素的长度是Ceil(Log2((pic_height_max_in_luma_samples+CtbSizeY–1)>>CtbLog2SizeY))比特。当不存在时,subpic_height_minus1[i]的值被推断为等于((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_y[i]-1。

当图片宽度大于或等于CtbSizeY时,每个子图片的宽度可以大于或等于CtbSizeY。当图片高度大于或等于CtbSizeY时,每个子图片的高度可以大于或等于CtbSizeY。

如果图片宽度不大于CtbSizeY且图片高度不大于CtbSizeY,则该图片可能不会被划分成多于一个子图片。在这种情况下,子图片的数量可以等于1。

当pic_width_max_in_luma_samples不大于CtbSizeY且pic_height_max_in_luma_samples不大于CtbSizeY时,subpic_info_present_flag的值应等于0。当subpic_info_present_flag等于0时,对于子图片划分信息不存在显式信令,并且图片中的子图片的数量等于1。

在同一实施方式或另一实施方式中,sps_subpic_id_len_minus1加1指定用于表示语法元素sps_subpic_id[i]、语法元素pps_subpic_id[i](当存在时)和语法元素slice_subpic_id(当存在时)的比特数。sps_subpic_id_len_minus1的值可以在0到15的范围(包括端点)内。1<<(sps_subpic_id_len_minus1)的值可能大于或等于sps_num_subpics_minus1+1。

在同一实施方式或另一实施方式中,当子图片的数量等于1时,subpic_info_present_flag可以等于0并且可以不显式地用信号发送子图片划分信息,因为在这种情况下,子图片宽度和高度信息等于图片宽度和高度信息,并且子图片的左上位置等于图片的左上位置。

例如,subpic_ctu_top_left_x[i]指定以CtbSizeY为单位的第i子图片的左上CTU的水平位置。语法元素的长度是Ceil(Log2((pic_width_max_in_luma_samples+CtbSizeY–1)>>CtbLog2SizeY))比特。当不存在时,subpic_ctu_top_left_x[i]的值被推断为等于0。subpic_ctu_top_left_y[i]指定以CtbSizeY为单位的第i子图的左上CTU的垂直位置。语法元素的长度是Ceil(Log2((pic_height_max_in_luma_samples+CtbSizeY–1)>>CtbLog2SizeY))比特。当不存在时,subpic_ctu_top_left_y[i]的值被推断为等于0。subpic_width_minus1[i]加1指定以CtbSizeY为单位的第i子图片的宽度。语法元素的长度是Ceil(Log2((pic_width_max_in_luma_samples+CtbSizeY–1)>>CtbLog2SizeY))比特。当不存在时,subpic_width_minus1[i]的值被推断为等于((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_x[i]-1。subpic_height_minus1[i]加1指定以CtbSizeY为单位的第i子图片的高度。语法元素的长度是Ceil(Log2((pic_height_max_in_luma_samples+CtbSizeY–1)>>CtbLog2SizeY))比特。当不存在时,subpic_height_minus1[i]的值被推断为等于((pic_height_max_in_luma_samples+CtbSizeY–1)>>CtbLog2SizeY)-subpic_ctu_top_left_y[i]-1。

在同一实施方式或另一实施方式中,当子图片的数量大于1时,subpic_info_present_flag可以等于1,并且可以在参数集中显式地用信号发送子图片划分信息,如图23所示。

例如,在图23中,sps_num_subpics_minus2加2指定CLVS中每个图片中的子图片数量。sps_num_subpics_minus2的值可以在0到Ceil(pic_width_max_in_luma_samples÷CtbSizeY)*Ceil(pic_height_max_in_luma_samples÷CtbSizeY)-2的范围(包括端点)内。当不存在时,sps_num_subpics_minus2的值被推断为等于0。

在同一实施方式中,分别指定图块列和行中第i子图片的宽度和高度的列表SubpicWidthInTiles[i]和SubpicHeightInTiles[i](i的范围从0到sps_num_subpics_minus1(包括端点))以及指定第i子图片的高度是否小于一个图块行的列表subpicHeightLessThanOneTileFlag[i](i的范围从0到sps_num_subpics_minus1(包括端点))如下推导:

当rect_slice_flag等于1时,指定第i切片中CTU的数量的列表NumCtusInSlice[i](i的范围从0到num_slices_in_pic_minus1(包括端点))、指定包含切片中的第一CTU的图块的图块索引的列表SliceTopLeftTileIdx[i](i的范围从0到num_slices_in_pic_minus1(包括端点))、以及指定第i切片内的第j CTB的图片光栅扫描地址的矩阵CtbAddrInSlice[i][j](i的范围从0到num_slices_in_pic_minus1(包括端点),并且j的范围从0到NumCtusInSlice-1(包括端点))、以及指定包含第i切片的图块中的切片数量的变量NumSlicesInTile[i]如下推导:

两个或更多个独立编码的子图片可以合并成编码图片,使得可以对编码图片进行解码并且作为单个图片输出。

当两个或更多个独立编码的子图片被合并成编码图片时,编码图片可以由具有两个或更多个不同NAL单元类型的VCL NAL单元构成。

在图23中,可以在参数集(例如PPS、SPS)中用信号发送标志mixed_nalu_types_in_pic_flag。mixed_nalu_types_in_pic_flag等于1指定参考PPS的每个图片具有多于一个VCL NAL单元,并且VCL NAL单元不具有相同的nal_unit_type值。mixed_nalu_types_in_pic_flag等于0指定参考PPS的每个图片具有一个或更多个VCL NAL单元,并且参考PPS的每个图片的VCL NAL单元具有相同的nal_unit_type值。

当PPS中的mixed_nalu_types_in_pic_flag等于1时,mixed_nalu_types_in_pic_flag等于1的每个图片被处理为拖拽图片。因此,具有两个或更多个不同NAL单元类型的编码图片可以被解码为拖拽图片。当该图片被按解码顺序的后续图片参考时,该图片可以被处理为拖拽图片。

在图23中,sps_independent_subpics_flag等于1指定CLVS中的所有子图片边界都被视为图片边界,并且不存在跨子图片边界的环路滤波。sps_independent_subpics_flag等于0不会强加这样的约束。当不存在时,推断sps_independent_subpics_flag的值等于0。

在图23中,subpic_treated_as_pic_flag[i]等于1指定CLVS中的每个编码图片的第i子图片在除环路滤波操作之外的解码过程中被视为图片。subpic_treated_as_pic_flag[i]等于0指定CLVS中的每个编码图片的第i子图片在除环路滤波操作之外的解码过程中不被视为图片。当不存在时,subpic_treated_as_pic_flag[i]的值被推断为等于sps_independent_subpics_flag。当subpic_treated_as_pic_flag[i]等于1时,比特流一致性的要求是:对于包括包含第i子图片的层作为输出层的OLS中的每个输出层及其参考层,以下所有条件都为真:

-输出层及其参考层中的所有图片应具有相同的pic_width_in_luma_samples值和相同的pic_height_in_luma_samples值。

-由输出层及其参考层参考的所有SPS应具有相同的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]值。

-对于在0到sps_num_subpics_minus1范围(包括端点)内的每个j值,输出层及其参考层中每个访问单元中的所有图片都应具有相同的SubpicIdVal[j]值。

在图23中,loop_filter_across_subpic_enabled_flag[i]等于1指定可以跨CLVS中每个编码图片中的第i子图片的边界执行环路滤波操作。loop_filter_across_subpic_enabled_flag[i]等于0指定不会跨CLVS中每个编码图片中的第i子图片的边界执行环路滤波操作。当不存在时,loop_filter_across_subpic_enabled_pic_flag[i]的值被推断为等于1-sps_independent_subpics_flag。

当两个或更多个编码子图片被合并成编码图片时,那些编码子图片彼此之间可能不具有任何解析或解码相关性。

在实施方式中,当PPS中的mixed_nalu_types_in_pic_flag等于1时,参考PPS的子图片的subpic_treated_as_pic_flag[]的值可以等于1。

在实施方式中,当sps_independent_subpics_flag等于0并且一个或更多个subpic_treated_as_pic_flag[]值不等于1时,mixed_nalu_types_in_pic_flag可以等于0。

在实施方式中,当mixed_nalu_types_in_pic_flag等于1时,sps_independent_subpics_flag的值可以等于1。

在实施方式中,当PPS中的mixed_nalu_types_in_pic_flag等于1时,参考PPS的子图片的subpic_treated_as_pic_flag[]的值被推断为等于1。

在实施方式中,当图片内具有不同NAL单元类型的两个或更多个相邻子图片应具有等于1的subpic_treated_as_pic_flag[]的值时。

在实施方式中,在图24中,可以在PPS中用信号发送子图片划分信息。例如,pps_independent_subpics_flag等于1指定参考PPS的所有边界子图片都被视为图片边界并且不存在跨子图片边界的环路滤波。pps_independent_subpics_flag等于0不会强加这样的约束。当不存在时,pps_independent_subpics_flag的值被推断为等于0。pps_subpic_treated_as_pic_flag[i]等于1指定参考PPS的每个编码图片的第i子图片在除环路滤波操作之外的解码过程中被视为图片。pps_subpic_treated_as_pic_flag[i]等于0指定参考PPS的每个编码图片的第i子图片在除环路滤波操作之外的解码过程中不被视为图片。当不存在时,pps_subpic_treated_as_pic_flag[i]的值被推断为等于pps_independent_subpics_flag。pps_loop_filter_across_subpic_enabled_flag[i]等于1指定可以跨参考PPS的每个编码图片中的第i子图片的边界执行环路滤波操作。pps_loop_filter_across_subpic_enabled_flag[i]等于0指定不会跨参考PPS的每个编码图片中的第i子图片的边界执行环路滤波操作。当不存在时,pps_loop_filter_across_subpic_enabled_pic_flag[i]的值被推断为等于1-pps_independent_subpics_flag。

在同一实施方式中,当PPS中的mixed_nalu_types_in_pic_flag等于1时,pps_subpic_treated_as_pic_flag[]的值应等于1。

在同一实施方式或另一实施方式中,当mixed_nalu_types_in_pic_flag等于1时,pps_independent_subpics_flag应等于1。

在同一实施方式或另一实施方式中,当mixed_nalu_types_in_pic_flag等于1时,pps_subpic_treated_as_pic_flag[]应等于1。

在实施方式中,当mixed_nalu_types_in_pic_flag等于1并且图片的至少VCL NAL单元具有等于CRA_NUT的nal_unit_type时,CRA子图片或图片可以不被处理为CVS开始图片。

在实施方式中,当mixed_nalu_types_in_pic_flag等于1并且图片的至少VCL NAL单元具有等于CRA_NUT的nal_unit_type时,可以输出与CRA子图片或图片相关联的前导图片。

在同一实施方式中,当mixed_nalu_types_in_pic_flag等于1并且图片的至少VCLNAL单元具有等于CRA_NUT的nal_unit_type时,该图片的HandleCraAsCvsStartFlag和NoOutputBeforeRecoveryFlag均被设置为等于0。

虽然本公开已经描述了若干个示例性实施方式,但是存在落入本公开内容的范围内的改变、置换和各种替代等效物。因此应当理解,本领域技术人员将能够设计出多种系统和方法,其虽然在本文中没有明确示出或描述,但是实施了本公开内容的原理并且因此在本公开内容的精神和范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号