[go: up one dir, main page]

CN114788290A - 用于在视频编码中发送信号通知画面定时和解码单元信息的系统和方法 - Google Patents

用于在视频编码中发送信号通知画面定时和解码单元信息的系统和方法 Download PDF

Info

Publication number
CN114788290A
CN114788290A CN202080083809.9A CN202080083809A CN114788290A CN 114788290 A CN114788290 A CN 114788290A CN 202080083809 A CN202080083809 A CN 202080083809A CN 114788290 A CN114788290 A CN 114788290A
Authority
CN
China
Prior art keywords
equal
flag
cpb
picture
delay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080083809.9A
Other languages
English (en)
Inventor
萨钦·G·德什潘德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Publication of CN114788290A publication Critical patent/CN114788290A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开涉及视频编码,并且更具体地涉及用于发送信号通知编码视频的画面定时和解码单元信息的技术。根据本发明的一个方面,在标志语法元素的值等于一的情况下,解析缓冲周期消息中的该标志语法元素,该标志语法元素指定画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数,并且解析该画面定时消息中的用于计算解码画面缓冲器输出时间的第一语法元素。

Description

用于在视频编码中发送信号通知画面定时和解码单元信息的 系统和方法
技术领域
本公开涉及视频编码,并且更具体地涉及用于发送信号通知编码视频的画面定时和解码单元信息的技术。
背景技术
数字视频功能可以结合到各种设备中,包括数字电视、笔记本电脑或台式电脑、平板电脑、数字录音设备、数字媒体播放器、视频游戏设备、蜂窝电话(包括所谓的智能电话)、医学成像设备等。可以根据视频编码标准对数字视频进行编码。视频编码标准定义了封装编码视频数据的合规比特流的格式。合规比特流是可以由视频解码设备接收和解码以生成重构视频数据的数据结构。视频编码标准可以结合视频压缩技术。视频编码标准的示例包括ISO/IEC MPEG-4Visual和ITU-T H.264(也被称为ISO/IEC MPEG-4AVC)和高效视频编码(HEVC)。HEVC在2016年12月的ITU-T H.265建议书的高效视频编码(HEVC)中有所描述,该文献以引用方式并入本文,并且在本文中被称为ITU-T H.265。目前正在考虑对ITU-T H.265进行扩展和改进以开发下一代视频编码标准。例如,ITU-T视频编码专家组(VCEG)和ISO/IEC活动图像专家组(MPEG)(被统称为联合视频研究组(JVET))正在致力于标准化压缩能力显著超过当前HEVC标准的视频编码技术。以引用方式并入本文的联合探索模型7(JEM 7)、联合探索测试模型7(JEM 7)的算法描述、ISO/IEC JTC1/SC29/WG11文档:JVET-G1001(2017年7月,意大利,都灵)描述了由JVET在联合测试模型研究下的编码特征,该技术是超越ITU-T H.265功能的潜在增强视频编码技术。应当指出的是,JEM 7的编码特征在JEM参考软件中实现。如本文所用,术语JEM可以集体指在JEM 7中的算法以及JEM参考软件的具体实施。此外,响应于由VCEG和MPEG联合发布的“Joint Call for Proposals on Video Compressionwith Capabilities beyond HEVC”,在2018年4月16日至20日于加利福尼亚州圣地亚哥(San Diego,CA)举行的ISO/IEC JTC1/SC29/WG11第10次会议上,各个小组提出了对视频编码工具的多种描述。根据对视频编码工具的多种描述,视频编码规范的最终初始草案文本在2018年4月16日至20日于加利福尼亚州圣地亚哥举行的ISO/IEC JTC1/SC29/WG11第10次会议中的“Versatile Video Coding(Draft 1)”即文档JVET-J1001-v2中有所描述,该文档以引用方式并入本文并且被称为JVET-J1001。JVET和MPEG的下一代视频编码标准的当前开发被称为通用视频编码(VVC)项目。2019年10月1日至11日在瑞士日内瓦(Geneva,CH)举行的ISO/IEC JTC1/SC29/WG11第16次会议中的“Versatile Video Coding(Draft 7)”(文档JVET-P2001-vE,其以引用方式并入本文,并且称为JVET-P2001)表示对应于VVC项目的视频编码规范的草稿文本的当前迭代。
视频压缩技术能够减少存储和传输视频数据的数据需求。视频压缩技术可以通过利用视频序列中固有的冗余来减少数据需求。视频压缩技术可将视频序列再分成连续较小的部分(即,视频序列内的一组画面、一组画面内的画面、画面内的区域、区域内的子区域等)。可以使用帧内预测编码技术(例如,画面内的空间预测技术)和帧间预测技术(即画面间的技术(时间))来生成待编码的单位视频数据与视频数据的参考单元之间的差值。该差值可以被称为残差数据。残差数据可以被编码为量化变换系数。语法元素可以涉及残差数据和参考编码单元(例如,帧内预测模式索引和运动信息)。可以对残差数据和语法元素进行熵编码。熵编码的残差数据和语法元素可以包括在形成合规比特流的数据结构中。
发明内容
在一个示例中,一种接收画面定时消息的方法,该方法包括:接收缓冲周期消息;解析该缓冲周期消息中的标志语法元素,该标志语法元素指定在该画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数;接收该画面定时消息;以及在该标志语法元素的值等于一的情况下,解析该画面定时消息中的用于计算解码画面缓冲器输出时间的第一语法元素。
在一个示例中,一种接收画面定时消息的设备,该设备包括:处理器以及与该处理器相关联的存储器;其中该处理器被配置为执行以下步骤:接收缓冲周期消息;解析该缓冲周期消息中的标志语法元素,该标志语法元素指定在该画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数;接收该画面定时消息;以及在该标志语法元素的值等于一的情况下,解析该画面定时消息中的用于计算解码画面缓冲器输出时间的第一语法元素。
在一个示例中,一种发送信号通知画面定时消息的方法,该方法包括:发送信号通知缓冲周期消息,该缓冲周期消息包括指定在该画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数的标志语法元素;以及在该标志语法元素的值等于一的情况下,发送信号通知包括用于计算解码画面缓冲器输出时间的第一语法元素的该画面定时消息。
在一个示例中,一种发送信号通知画面定时消息的设备,该设备包括:处理器以及与该处理器相关联的存储器;其中该处理器被配置为执行以下步骤:发送信号通知缓冲周期消息,该缓冲周期消息包括指定在该画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数的标志语法元素;以及在该标志语法元素的值等于一的情况下,发送信号通知包括用于计算解码画面缓冲器输出时间的第一语法元素的该画面定时消息。
附图说明
[图1]图1是示出根据本公开的一种或多种技术的可被配置为对视频数据进行编码和解码的系统的示例的框图。
[图2]图2是示出根据本公开的一种或多种技术的编码视频数据和对应数据结构的概念图。
[图3]图3是示出根据本公开的一种或多种技术封装编码视频数据和对应元数据的数据结构的概念图。
[图4]图4是示出根据本公开的一种或多种技术的可被包括在可被配置为对视频数据进行编码和解码的系统的具体实施中的部件的示例的概念图。
[图5]图5是示出根据本公开的一种或多种技术的可被配置为对视频数据进行编码的视频编码器的示例的框图。
[图6]图6是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图。
具体实施方式
一般来讲,本公开描述了用于对视频数据进行编码的各种技术。具体地,本公开描述了用于发送信号通知编码视频数据的画面定时和解码单元(DU)信息的技术。应当指出的是,尽管本公开的技术是相对于ITU-T H.264、ITU-T H.265、JEM和JVET-P2001描述的,但本公开的技术可普遍应用于视频编码。例如,除了包括在ITU-T H.265、JEM和JVET-P2001中的那些技术,本文所述的编码技术可并入视频编码系统(包括基于未来视频编码标准的视频编码系统),包括视频块结构、帧内预测技术、帧间预测技术、变换技术、滤波技术和/或其他熵编码技术。因此,对ITU-T H.264、ITU-T H.265、JEM和/或JVET-P2001的参考是出于描述性目的,并且不应被解释为限制本文所述技术的范围。此外,应当指出的是,将文献以引用方式并入本文是出于描述性目的,并且不应被解释为限制或产生关于本文所用术语的歧义。例如,在某个并入的参考文献中提供的对某个术语的定义不同于另一个并入的参考文献和/或如本文所用的该术语的情况下,则该术语应以广泛地包括每个相应定义的方式和/或以包括替代方案中每个特定定义的方式来解释。
在一个示例中,一种发送信号通知视频数据的解码单元参数的方法,该方法包括发送信号通知指示解码单元参数是否被包括在画面定时消息中的语法元素,以及基于该语法元素的值有条件地在画面定时消息中发送信号通知解码单元参数。
在一个示例中,一种设备包括一个或多个处理器,该一个或多个处理器被配置为发送信号通知指示解码单元参数是否被包括在画面定时消息中的语法元素,以及基于该语法元素的值有条件地在画面定时消息中发送信号通知解码单元参数。
在一个示例中,一种非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时使设备的一个或多个处理器发送信号通知指示解码单元参数是否被包括在画面定时消息中的语法元素,以及基于该语法元素的值有条件地在画面定时消息中发送信号通知解码单元参数。
在一个示例中,一种装置包括:用于发送信号通知指示解码单元参数是否被包括在画面定时消息中的语法元素的装置,以及用于基于该语法元素的值有条件地在画面定时消息中发送信号通知解码单元参数的装置。
在一个示例中,一种对视频数据进行解码的方法,包括:解析指示解码单元参数是否被包括在画面定时消息中的语法元素,以及基于该语法元素的值有条件地解析画面定时消息中的解码单元参数。
在一个示例中,一种设备包括一个或多个处理器,该一个或多个处理器被配置为解析指示解码单元参数是否被包括在画面定时消息中的语法元素,以及基于该语法元素的值有条件地解析画面定时消息中的解码单元参数。
在一个示例中,一种非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时使设备的一个或多个处理器解析指示解码单元参数是否被包括在画面定时消息中的语法元素,以及基于该语法元素的值有条件地解析画面定时消息中的解码单元参数。
在一个示例中,一种装置包括:用于解析指示解码单元参数是否被包括在画面定时消息中的语法元素的装置,以及用于基于该语法元素的值有条件地解析画面定时消息中的解码单元参数的装置。
在以下附图和描述中阐述了一个或多个示例的细节。根据描述和附图以及权利要求书,其他特征、对象和优点将显而易见。
视频内容包括由一系列帧(或画面)组成的视频序列。一系列帧也可以被称为一组画面(GOP)。每个视频帧或画面可被分成一个或多个区域。可根据基本单元(例如,视频块)和限定区域的一组规则来限定区域。例如,限定区域的规则可以是区域必须是布置成矩形的整数个视频块。此外,区域中的视频块可以根据扫描模式(例如,光栅扫描)来排序。如本文所用,术语“视频块”通常可以指画面的区域,或者可以更具体地指可以被预测性地编码的样本值的最大阵列、其子分区和/或对应结构。此外,术语“当前视频块”可以指画面的正被编码或解码的区域。视频块可被定义为样本值的阵列。应当指出的是,在一些情况下,像素值可被描述为包括视频数据的相应分量的样本值,其也可被称为颜色分量(例如,亮度(Y)和色度(Cb和Cr)分量或红色、绿色和蓝色分量)。应当指出的是,在一些情况下,术语“像素值”和“样本值”可互换使用。此外,在一些情况下,像素或样本可被称为pel。视频采样格式(也可以被称为色度格式)可以相对于视频块中包括的亮度样本的数量来定义视频块中包括的色度样本的数量。例如,对于4:2:0采样格式,亮度分量的采样率是水平和垂直两个方向的色度分量的采样率的两倍。
视频编码器可对视频块和其子分区执行预测编码。视频块和其子分区可以被称为节点。ITU-T H.264指定包括16×16亮度样本的宏块。也就是说,在ITU-T H.264中,画面被分段成宏块。ITU-T H.265指定类似的编码树单元(CTU)结构(其可被称为最大编码单元(LCU))。在ITU-T H.265中,画面被分段成CTU。在ITU-T H.265中,对于画面,CTU大小可被设置为包括16×16、32×32或64×64亮度样本。在ITU-T H.265中,CTU由视频数据的每个分量(例如,亮度(Y)和色度(Cb和Cr))的相应编码树块(CTB)组成。应当指出的是,具有一个亮度分量和两个对应色度分量的视频可被描述为具有两个通道,即,亮度通道和色度通道。此外,在ITU-T H.265中,可根据四叉树(QT)划分结构来划分CTU,这使得CTU的CTB被划分为编码块(CB)。也就是说,在ITU-T H.265中,CTU可被划分为四叉树叶节点。根据ITU-T H.265,一个亮度CB连同两个对应的色度CB和相关联语法元素被称为编码单元(CU)。在ITU-TH.265中,可以发送信号通知CB的最小允许大小。在ITU-T H.265中,亮度CB的最小允许最小大小是8×8亮度样本。在ITU-T H.265中,使用帧内预测或帧间预测对画面区域进行编码的决定在CU位阶处进行。
在ITU-T H.265中,CU与在CU处具有其根的预测单元结构相关联。在ITU-T H.265中,预测单元结构允许分割亮度CB和色度CB以生成对应的参考样本。即,在ITU-T H.265中,可将亮度CB和色度CB分割成相应的亮度预测块和色度预测块(PB),其中PB包括对其应用相同预测的样本值的块。在ITU-T H.265中,可将CB划分为1个、2个或4个PB。ITU-T H.265支持从64×64样本向下至4×4样本的PB大小。在ITU-T H.265中,正方形PB被支持用于帧内预测,其中CB可以形成PB或者CB可以被分割成四个正方形PB。在ITU-T H.265中,除了正方形PB之外,还支持矩形PB来进行帧间预测,其中CB可竖直地或水平地减半以形成PB。此外,应当指出的是,在ITU-T H.265中,对于帧间预测,支持四个非对称PB划分,其中CB在CB的高度(顶部或底部)或宽度(左侧或右侧)的四分之一处被划分为两个PB。对应于PB的帧内预测数据(例如,帧内预测模式语法元素)或帧间预测数据(例如,运动数据语法元素)用于生成PB的参考和/或预测样本值。
JEM指定具有最大大小的256×256亮度样本的CTU。JEM指定四叉树加二叉树(QTBT)块结构。在JEM中,QTBT结构允许由二叉树(BT)结构进一步划分四叉树叶节点。也就是说,在JEM中,二叉树结构允许将四叉树叶节点垂直或水平递归划分。在JVET-P2001中,根据四叉树加多类型树(QTMT或QT+MTT)结构来划分CTU。JVET-P2001中的QTMT类似于JEM中的QTBT。然而,在JVET-P2001中,除了指示二进制分割之外,多类型树还可以指示所谓的三元(或三叉树(TT))分割。三元分割将一个块垂直地或水平地分成三个块。在垂直TT分割的情况下,块从左边缘起在其宽度的四分之一处以及从右边缘起在其宽度的四分之一处分割,并且在水平TT分割的情况下,块从顶部边缘起在其高度的四分之一处以及从底部边缘起在其高度的四分之一处分割。
如上所述,每个视频帧或画面可被分成一个或多个区域。例如,根据ITU-T H.265,每个视频帧或画面可被划分为包括一个或多个切片,并且进一步被划分为包括一个或多个图块,其中每个切片包括CTU序列(例如,以光栅扫描顺序排列),并且其中图块是对应于画面的矩形区域的CTU序列。应当指出的是,在ITU-T H.265中,切片是从独立切片片段开始并且包含在下一个独立切片片段(如果有的话)之前的所有后续从属切片片段(如果有的话)的一个或多个切片片段的序列。切片片段(如切片)是CTU序列。因此,在一些情况下,术语“切片”和“切片片段”可互换使用以指示以光栅扫描顺序排列布置的CTU序列。此外,应当指出的是,在ITU-T H.265中,图块可由包含在多于一个切片中的CTU组成,并且切片可由包含在多于一个图块中的CTU组成。然而,ITU-T H.265规定了应满足以下一个或两个条件:(1)切片中的所有CTU属于同一个图块;以及(2)图块中的所有CTU属于同一个切片。
关于JVET-P2001,切片需要由整数个完整图块或图块内的整数个连续完整CTU行组成,而不是仅需要由整数个完整CTU组成。应当指出的是,在JVET-P2001中,切片设计不包括切片区段(即,没有独立的/从属的切片片段)。因此,在JVET-P2001中,画面可包括单个图块,其中单个图块被包含在单个切片内,或者画面可包括多个图块,其中该多个图块(或其CTU行)可被包含在一个或多个切片内。在JVET-P2001中,通过指定图块行的相应高度和图块列的相应宽度来指定如何将画面划分为图块。因此,在JVET-P2001中,图块是特定图块行和特定图块列位置内的矩形CTU区域。此外,应当指出的是,JVET-P2001规定画面可以被划分为子画面,其中子画面是画面内的矩形CTU区域。子画面的左上CTU可位于画面内的任何CTU位置,其中子画面被约束为包括一个或多个切片。因此,不同于图块,子画面不必被限制到特定行和列位置。应当指出的是,子画面可用于封装画面内感兴趣区域,并且子比特流提取过程可用于仅对特定感兴趣区域进行解码和显示。也就是说,如下文进一步详细描述的,编码视频数据的比特流包括网络抽象层(NAL)单元序列,其中NAL单元包封编码视频数据(即,对应于画面切片的视频数据),或者NAL单元包封用于对视频数据进行解码的元数据(例如,参数集),并且子比特流提取过程通过从比特流中移除一个或多个NAL单元来形成新比特流。
图2是示出根据图块、切片和子画面划分的画面组内的画面的示例的概念图。应当指出的是,本文所述技术可以适用于图块、切片、子画面、其子分区和/或其等效结构。也就是说,无论画面怎样被划分为区域,本文所述技术可普遍适用。例如,在一些情况下,本文所述技术可以适用于图块可以被划分为所谓的砖块的情况,其中砖块是特定图块内的矩形CTU行区域。此外,例如,在一些情况下,本文所述技术可以适用于一个或多个图块可被包括在所谓的图块组中的情况下,其中图块组包括整数个相邻图块。在图2所示的示例中,Pic3被示出为包括16个图块(即,Tile0至Tile15)和三个切片(即,Slice0至Slice2)。在图2所示的示例中,Slice0包括四个图块(即,Tile0至Tile3),Slice1包括八个图块(即,Tile4至Tile11),并且Slice2包括四个图块(即,Tile12至Tile15)。此外,如图2的示例所示,Pic3被示出包括两个子画面(即,Subpicture0和Subpicture1),其中Subpicture0包括Slice0和Slice1并且其中Subpicture1包括Slice2。如上所述,子画面可用于封装画面内的感兴趣区域,并且可以使用子比特流提取过程以便选择性地对感兴趣区域进行解码(和显示)。例如,参考图2,Subpicture0可以对应于体育赛事呈现的动作部分(例如,场地的视图),并且Subpicture1可以对应于在体育赛事呈现期间显示的滚动横幅。通过以这种方式将画面组织成子画面,观看者可能能够禁用滚动横幅的显示。也就是说,通过子比特流提取过程,Slice2 NAL单元可以从比特流中移除(并且因此未被解码和/或显示),并且Slice0 NAL单元和Slice1 NAL单元可以被解码和显示。下面进一步详细描述如何将画面的切片封装成相应NAL单元数据结构和子比特流提取。
对于帧内预测编码,帧内预测模式可指定画面内的参考样本的位置。在ITU-TH.265中,已定义的可能的帧内预测模式包括平面(即,表面拟合)预测模式、DC(即平坦的整体平均)预测模式,以及33个角度预测模式(predMode:2-34)。在JEM中,已定义的可能的帧内预测模式包括平面预测模式、DC预测模式,以及65个角度预测模式。应当指出的是,平面预测模式和DC预测模式可以被称为无方向预测模式,并且角度预测模式可以被称为方向预测模式。应当指出的是,无论已定义的可能预测模式的数量如何,本文描述的技术可以是普遍适用的。
对于帧间预测编码,确定参考画面,并且运动矢量(MV)识别该参考画面中用于生成对当前视频块的预测的样本。例如,可使用位于一个或多个先前编码的画面中的参考样本值来预测当前视频块,并且运动矢量用于指示参考块相对于当前视频块的位置。运动矢量可描述例如运动矢量的水平位移分量(即MVx)、运动矢量的垂直位移分量(即MVy)和运动矢量的分辨率(例如,四分之一像素精度、二分之一像素精度、一像素精度、二像素精度、四像素精度)。先前解码的画面(其可包括在当前画面之前或之后输出的画面)可被组织成一个或多个参考画面列表,并且使用参考画面索引值来标识。此外,在帧间预测编码中,单预测是指使用来自单个参考画面的样本值生成预测,双预测是指使用来自两个参考画面的相应样本值生成预测。也就是说,在单预测中,单个参考画面和对应的运动矢量用于生成对当前视频块的预测,而在双预测中,第一参考画面和对应的第一运动矢量以及第二参考画面和对应的第二运动矢量用于生成对当前视频块的预测。在双预测中,将相应的样本值组合(例如,相加、舍入和裁剪,或根据权重进行平均)以生成预测。画面及其区域可基于哪些类型的预测模式可用于对其视频块进行编码而被分类。也就是说,对于具有B类型的区域(例如,B切片),可利用双预测、单预测和帧内预测模式,对于具有P类型的区域(例如,P切片),可利用单预测和帧内预测模式,对于具有I类型的区域(例如,I切片),只能利用帧内预测模式。如上所述,通过参考索引来识别参考画面。例如,对于P切片,可以存在单个参考画面列表RefPicList0,并且对于B切片,除了RefPicList0之外,可以存在第二独立参考画面列表RefPicList1。应当指出的是,对于B切片中的单预测,可使用RefPicList0或RefPicList1中的一者来生成预测。此外,应当指出的是,在解码过程期间,在开始对画面进行解码时,从存储在解码画面缓冲器(DPB)中的先前解码的画面生成参考画面列表。
此外,编码标准可支持各种运动矢量预测模式。运动矢量预测使能够基于另一运动矢量来导出用于当前视频块的运动矢量的值。例如,可以从当前视频块的空间相邻块和时间相邻块导出具有相关联的运动信息的一组候选块。此外,所生成的(或默认的)运动信息可用于运动矢量预测。运动矢量预测的示例包括高级运动矢量预测(AMVP)、时间运动矢量预测(TMVP)、所谓的“合并”模式,以及“跳过”和“直接”运动推理。此外,运动矢量预测的其他示例包括高级时间运动矢量预测(ATMVP)和空间-时间运动矢量预测(STMVP)。对于运动矢量预测,视频编码器和视频解码器两者执行相同的过程以导出一组候选。因此,对于当前视频块,在编码和解码期间生成相同的一组候选。
如上所述,对于帧间预测编码,先前编码的画面中的参考样本用于对当前画面中的视频块进行编码。在对当前画面进行编码时可用作参考的先前编码的画面被称为参考画面。应当指出的是,解码顺序不一定对应于画面输出顺序,即视频序列中画面的时间顺序。在ITU-T H.265中,当画面被解码时,其被存储到解码画面缓冲器(DPB)(其可被称为帧缓冲器、参考缓冲器、参考画面缓冲器等)。在ITU-T H.265中,存储到DPB的画面在被输出时从DPB中移除,并且不再需要用于编码后续画面。在ITU-T H.265中,在对切片标头进行解码之后,即,在对画面进行解码开始时,每个画面调用一次是否应从DPB中移除画面的确定。例如,参考图2,Pic2被示出为参考Pic1。类似地,Pic3被示出为参考Pic0。关于图2,假设画面数量对应于解码顺序,DPB将填充如下:在解码Pic0之后,DPB将包括{Pic0};在解码Pic1开始时,DPB将包括{Pic0};在解码Pic1之后,DPB将包括{Pic0,Pic1};在解码Pic2开始时,DPB将包括{Pic0,Pic1}。然后,将参考Pic1解码Pic2,并且在解码Pic2之后,DPB将包括{Pic0,Pic1,Pic2}。在解码Pic3开始时,画面Pic0和Pic1将被标记以从DPB中移除,因为它们不是解码Pic3(或任何后续画面,未示出)所需的,并且假设Pic1和Pic2已被输出,则DPB将被更新以包括{Pic0}。然后将参考Pic0对Pic3进行解码。标记画面以将其从DPB中移除的过程可以称为参考画面集(RPS)管理。
如上所述,帧内预测数据或帧间预测数据用于产生样本值的块的参考样本值。包括在当前PB或另一类型的画面区域结构和相关联的参考样本(例如,使用预测生成的那些)中的样本值之间的差值可以被称为残差数据。残差数据可以包括对应于视频数据的每个分量的相应差值阵列。残差数据可能在像素域中。可对差值阵列应用变换诸如离散余弦变换(DCT)、离散正弦变换(DST)、整数变换、小波变换或概念上类似的变换,以生成变换系数。应当指出的是,在ITU-T H.265和JVET-P2001中,CU与在CU位阶处具有其根的变换树结构相关联。变换树被划分为一个或多个变换单元(TU)。即,为了生成变换系数,可以对差值的阵列进行划分(例如,可以将四个8×8变换应用于16×16残差值阵列)。对于视频数据的每个分量,差值的此类再分可被称为变换块(TB)。应当指出的是,在一些情况下,可以(在视频编码器中)应用核心变换和后续二次变换来生成变换系数。对于视频解码器,变换的顺序是相反的。
可以直接对变换系数或残差样本值执行量化过程(例如,就调色板编码量化而言)。量化通过限制为一组指定值的振幅来近似变换系数。量化实质上对变换系数进行缩放以便改变表示一组变换系数所需的数据量。量化可以包括将变换系数(或将偏移值添加到变换系数得到的值)除以量化缩放因子和任何相关联的取整函数(例如,取整为最接近的整数)。量化的变换系数可以被称为系数位阶值。逆量化(或“去量化”)可以包括将系数位阶值与量化缩放因子相乘,以及任何倒数取整或偏移加法运算。应当指出的是,如本文所用,术语量化过程在一些情况下可指除以缩放因子以生成位阶值,并且在一些情况下可指乘以缩放因子以恢复变换系数。也就是说,量化过程在一些情况下可以指量化,而在一些情况下可以指逆量化。此外,应当指出的是,虽然在下面的示例中的一些示例中关于与十进制记数法相关的算术运算描述了量化过程,但是这样的描述是为了说明的目的,并且不应该被解释为进行限制。例如,本文描述的技术可以在使用二进制运算等的设备中实现。例如,本文描述的乘法和除法运算可以使用移位运算等来实现。
可根据熵编码技术对量化的变换系数和语法元素(例如,指示视频块的编码结构的语法元素)进行熵编码。熵编码过程包括使用无损数据压缩算法对语法元素值进行编码。熵编码技术的示例包括内容自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、概率区间划分熵编码(PIPE)等。熵编码的量化变换系数和对应的熵编码的语法元素可形成可用于在视频解码器处再现视频数据的合规比特流。熵编码过程,例如CABAC,可以包括对语法元素进行二值化。二值化是指将语法元素的值转换为一个或多个位的序列的过程。这些位可以被称为“bin”。二值化可以包括以下编码技术中的一种或组合:固定长度编码、一元编码、截断一元编码、截断Rice编码、Golomb编码、k阶指数Golomb编码和Golomb-Rice编码。例如,二值化可以包括使用8位固定长度二值化技术将语法元素的整数值5表示为00000101,或者使用一元编码二值化技术将整数值5表示为11110。如本文所用,术语固定长度编码、一元编码、截断一元编码、截断Rice编码、Golomb编码、k阶指数Golomb编码和Golomb-Rice编码中的每一个可以指这些技术的一般实现和/或这些编码技术的更具体实现。例如,可以根据视频编码标准具体地定义Golomb-Rice编码实现。在CABAC的示例中,对于特定bin,上下文提供bin的最大概率状态(MPS)值(即,bin的MPS为0或1中的一者),以及bin是MPS或最小概率状态(LPS)的概率值。例如,上下文可以指示bin的MPS为0,并且bin为1的概率为0.3。应当指出的是,可以基于包括当前语法元素和先前编码的语法元素中的bin的先前编码的bin的值来确定上下文。例如,与相邻视频块相关联的语法元素的值可以用于确定当前bin的上下文。
关于本文所用的公式,可以使用以下算术运算符:
+加法
-减法
*乘法,包括矩阵乘法
xy求幂。将x指定为y的幂。在其他上下文中,此类符号用于上标而非旨在用于解释为求幂。
/将结果向着零截断的整数除法。例如,将7/4和-7/-4截断为1,将-7/4和7/-4截断为-1。
÷在不旨在进行截断或舍入情况下用于表示数学公式中的除法。
Figure BDA0003674560980000131
在不旨在进行截断或舍入情况下用于表示数学公式中的除法。
此外,可使用以下定义的数学函数:
Log2(x),x的以2为底的对数;
Figure BDA0003674560980000132
Figure BDA0003674560980000133
Ceil(x)大于或等于x的最小整数。
关于本文使用的示例性语法,可以应用以下逻辑运算符的定义:
x&&y x和y的布尔逻辑“和”
x||y x和y的布尔逻辑“或”
!布尔逻辑“否”
x?y:z如果x为TRUE或不等于0,则求值为y;否则,求值为z。
此外,可应用以下关系运算符:
>大于
≥大于或等于
<小于
≤小于或等于
==等于
!=不等于
此外,应当指出的是,在本文所用的语法描述符中,可以应用以下描述符:
-b(8):具有任何位串模式的字节(8位)。该描述符的解析过程由函数read_bit(8)的返回值指定。
-f(n):从最左位起使用n位(从左到右)写入的固定模式位串。该描述符的解析过程由函数read_bit(n)的返回值指定。
-se(v):有符号整数0阶Exp-Golomb编码的语法元素,从最左位起。
-tb(v):使用至多maxVal位的截断二元码,其中maxVal在语法元素的语义中定义。
-tu(v):使用至多maxVal位的截断一元码,其中maxVal在语法元素的语义中定义。
-u(n):使用n位的无符号整数。当语法表中n是“v”时,位数以取决于其他语法元素的值的方式变化。该描述符的解析过程由函数read_bits(n)的返回值指定,该返回值被解释为首先写入最高有效位的无符号整数的二进制表示。
-ue(v):无符号整数0阶Exp-Golomb编码的语法元素,从最左位起。
如上所述,视频内容包括由一系列画面组成的视频序列,并且每个画面可被分成一个或多个区域。在JVET-P2001中,画面的编码表示被称为编码画面,并且编码画面的所有CTU被封装在一个或多个编码切片NAL单元中。也就是说,一个或多个对应的编码切片NAL单元封装画面的编码表示。例如,再次参考图2,Pic3的编码表示被封装在三个编码切片NAL单元(即,Slice0 NAL单元、Slice1 NAL单元和Slice2 NAL单元)中。应当指出的是,术语视频编码层(VCL)NAL单元用作编码切片NAL单元的总称,即,VCL NAL是包括所有类型的切片NAL单元的总称。如上所述,并且在下文进一步详细描述,NAL单元可以封装用于对视频数据进行解码的元数据。封装用于对视频序列进行解码的元数据的NAL单元通常被称为非VCL NAL单元。因此,在JVET-P2001中,NAL单元可以是VCL NAL单元或非VCL NAL单元。应当指出的是,VCL NAL单元包括切片标头数据,其提供用于对特定切片进行解码的信息。因此,在JVET-P2001中,用于对视频数据进行解码的信息(在一些情况下可以被称为元数据)不限于被包括在非VCL NAL单元中。JVET-P2001规定画面单元(PU)是包含编码画面的所有VCL NAL单元及其相关联的非VCL NAL单元的一组NAL单元,并且访问单元(AU)是根据指定的分类规则彼此相关联、在解码顺序中是连续的并且每个存在的画面单元包含恰好一个编码画面的一组NAL单元。PU由一个画面标头NAL单元、一个编码画面(其由一个或多个VCL NAL单元构成)以及零个或更多个非VCL NAL单元组成。因此,在JVET-P2001中,访问单元包括一个或多个编码画面。在一些情况下,访问单元可包括被包括在不同视频层中的画面。在下文中进一步详细描述视频层。此外,在JVET-P2001中,编码视频序列(CVS)是AU序列,其由按解码顺序排列的CVSS AU和后续的零个或更多个非CVSS AU的AU(包括到下一个(不含)是CVSS AU的任何后续AU之前的所有后续AU)组成,其中编码视频序列开始(CVSS)AU是其中CVS中的每个层存在画面单元的AU,并且每个存在的画面单元中的编码画面是编码层视频序列开始(CLVSS)画面。在JVET-P2001中,编码层视频序列(CLVS)是同一层内的PU序列,其由按解码顺序排列的CLVSS PU和后续的非CLVSS PU的零个或更多个PU(包括到下一个(不含)是CLVSS PU的任何后续PU之前的所有后续PU)组成。也就是说,在JVET-P2001中,比特流可以被描述为包括形成CVS的NAL单元序列,其中CVS包括AU,并且每个AU可包括用于编码视频的多个层中的每个层的相应画面。
多层视频编码使得视频呈现能够被解码/显示为对应于视频数据基础层的呈现,并且被解码/显示为对应于视频数据的增强层的一个或多个附加呈现。例如,基底层可以使得能够呈现具有基本质量水平(例如,高清晰度呈现和/或30Hz帧率)的视频呈现,并且增强层可以使得能够呈现具有增强的质量水平(例如,超高清渲染和/或60Hz帧率)的视频呈现。可以通过参考基底层来对增强层进行编码。也就是说,例如可以通过参考基底层中的一个或多个画面(包括其缩放版本)来对增强层中的画面进行编码(例如,使用层间预测技术)。应当指出的是,层也可彼此独立地被编码。在这种情况下,两层之间可能不存在层间预测。每个NAL单元可以包括指示NAL单元与之相关联的视频数据层的标识符。如上所述,子比特流提取过程可以用于仅对画面的特定感兴趣区域进行解码和显示。此外,子比特流提取过程可以用于仅对特定视频层进行解码和显示。子比特流提取可以指接收合规或符合性比特流的设备通过丢弃和/或修改接收到的比特流中的数据来形成新的合规或符合性比特流的过程。例如,子比特流提取可以用于形成对应于特定视频表示(例如,高质量表示)的新的合规或符合性比特流。
在JVET-P2001中,视频序列、GOP、画面、切片和CTU中的每一者可以与描述视频编码属性的元数据相关联,并且一些类型的元数据被封装在非VCL NAL单元中。JVET-P2001定义了可用于描述视频数据和/或视频编码属性的参数集。特别地,JVET-P2001包括以下五种参数集:解码参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、画面参数集(PPS)和自适应参数集(APS),其中SPS应用于零个或更多整数个CVS,PPS适用于零个或更多整数个编码画面,APS适用于零个或更多个切片,并且DPS和VPS可以任选地由SPS引用。PPS应用于引用它的单个编码画面。在JVET-P2001中,参数集可以被封装为非VCL NAL单元,并且/或者可以作为消息发送信号通知。JVET-P2001还包括画面标头(PH),其被封装为非VCL NAL单元。在JVET-P2001中,画面标头应用于编码画面的所有切片。此外,JVET-P2001使得补充增强信息(SEI)消息能够被发送信号通知。在JVET-P2001中,SEI消息协助与解码、显示或其他目的有关的过程,然而,可能不需要SEI消息来根据解码过程构建亮度或色度样本。在JVET-P2001中,可以使用非VCL NAL单元在比特流中发送信号通知SEI消息。此外,SEI消息可以通过某种机制传送,而不是通过存在于比特流中(即,在带外发送信号通知)。
图3示出了包括多个CVS的比特流的示例,其中CVS包括AU,并且AU包括画面单元。图3中所示的示例对应于在比特流中封装图2的示例中所示的切片NAL单元的示例。在图3所示的示例中,Pic3的对应画面单元包括三个VCL NAL编码切片NAL单元,即Slice0 NAL单元、Slice1NAL单元和Slice2 NAL单元,以及两个非VCL NAL单元,即PPS NAL单元和PH NAL单元。应当指出的是,在图3中,标头是NAL单元标头(即,不与切片标头混淆)。此外,应当指出的是,在图3中,未示出的其他非VCL NAL单元可被包括在CVS中,例如SPS NAL单元、VPS NAL单元、SEI消息NAL单元等。此外,应当指出的是,在其他示例中,用于解码Pic3的PPS NAL单元可被包括在比特流中的其他地方,例如,在对应于Pic0的画面单元中,或可以由外部机构提供。然而,应当指出的是,在JVET-P2001中,要求每个画面的画面标头在对应于该画面的画面单元中。
JVET-P2001定义了NAL单元标头语义,其指定了包括在NAL单元中的原始字节序列有效载荷(RBSP)数据结构的类型。表1示出了JVEPP2001中提供的NAL单元标头的语法。
Figure BDA0003674560980000171
表1
JVET-P2001针对表1中所示的相应语法元素提供了以下定义。
forbidden_zero_bit应等于0。
nuh_reserved_zero_bit应等于“0”。未来可由ITU-T|ISO/IEC指定nuh_reserved_zero_bit的值1。解码器应忽略(即,从比特流中移除并丢弃)nuh_reserved_zero_bit等于“1”的NAL单元。
nuh_layer_id指定VCL NAL单元所属的层的标识符或者非VCL NAL单元适用的层的标识符。nuh_layer_id的值应在0至55的范围内(包括端值)。保留nuh_layer_id的其他值以供ITU-T|ISO/IEC将来使用。
编码画面的所有VCL NAL单元的nuh_layer_id的值应相同。编码画面或PU的nuh_layer_id的值是编码画面或PU的VCL NAL单元的nuh_layer_id的值。
非VCL NAL单元的nuh_layer_id的值被如下进行约束:
-如果nal_unit_type等于PPS_NUT、PREFIX_APS_NUT或SUFFIX_APS_NUT,则nuh_layer_id应等于参考NAL单元的编码切片NAL单元的最低nuh_layer_id值。
-否则,如果nal_unit_type等于SPS_NUT,则nuh_layer_id应等于参考SPS NAL单元的PPS NAL单元的最低nuh_layer_id值。
-否则,如果nal_unit_type等于AUD_NUT,则nuh_layer_id应等于vps_layer_id[0]。
-否则,当nal_unit_type等于PH_NUT、EOS_NUT或FD_NUT时,nuh_layer_id应等于相关联VCL NAL单元的nuh_layer_id。
注意—DPS、VPS和EOB NAL单元的nuh_layer_id的值不受限制。
对于CVSS AU的所有画面,nal_unit_type的值应相同。
nuh_temporal_id_plus1减去1指定NAL单元的时间标识符。
nuh_temporal_id_plus1的值应不等于0。
变量TemporalId如下导出:
TemporalId=nuh_temporal_id_plus1-1
当nal_unit_type处于IDR_W_RADL至RSV_IRAP_12的范围内(包括端值)时,TemporalId应等于0。
当nal_unit_type等于STSA_NUT时,TemporalId应等于0。
对于AU的所有VCL NAL单元,TemporalId的值应相同。编码画面、PU或AU的TemporalId的值是编码画面、PU或AU的VCL NAL单元的TemporalId的值。子层表示的TemporalId的值是子层表示中的所有VCL NAL单元的TemporalId的最大值。
非VCL NAL单元的TemporalId的值被约束如下:
-如果nal_unit_type等于DPS_NUT、VPS_NUT或SPS_NUT,则TemporalId应等于0,并且包含NAL单元的AU的TemporalId应等于0。
-否则,如果nal_unit_type等于PH_NUT,则TemporalId应等于包含NAL单元的PU的TemporalId。
-否则,如果nal_unit_type等于EOS_NUT或EOB_NUT,则TemporalId应等于0。
-否则,如果nal_unit_type等于AUD_NUT、FD_NUT、PREFIX_SEI_NUT或SUFFIX_SEI_NUT,则TemporalId应等于包含NAL单元的AU的TemporalId。
-否则,当nal_unit_type等于PPS_NUT、PREFIX_APS_NUT或SUFFIX_APS_NUT时,TemporalId应大于或等于包含NAL单元的PU的TemporalId。
注意—当NAL单元是非VCL NAL单元时,TemporalId的值等于非VCL NAL单元所应用的所有AU的TemporalId值的最小值。当nal_unit_type等于PPS_NUT、PREFIX_APS_NUT或SUFFIX_APS_NUT时,TemporalId可以大于或等于包含AU的TemporalId,因为所有PPS和APS都可被包括在比特流的开始中(例如,当它们被带外输送,并且接收器将它们放置在比特流的开始处时),其中第一编码画面具有等于0的TemporalId。
nal_unit_type指定NAL单元类型,即,如表2中指定的NAL单元中包含的RBSP数据结构的类型。
具有在UNSPEC28…UNSPEC31的范围内(包括端值)的nal_unit_type的NAL单元(其语义未指定)应不影响本说明书中指定的解码过程。
注意—在UNSPEC_28..UNSPEC_31的范围内的NAL单元类型可如由应用程序所确定的那样使用。在本说明书中未指定针对nal_unit_type的这些值的解码过程。由于不同的应用程序可能出于不同的目的使用这些NAL单元类型,因此在设计生成具有这些nal_unit_type值的NAL单元的编码器时以及在设计解释具有这些nal_unit_type值的NAL单元的内容的解码器时必须特别注意。本说明书未定义对这些值的任何管理。这些nal_unit_type值可能仅适用于使用“冲突”(即,同一nal_unit_type值的NAL单元内容的含义具有不同定义)不重要、或不可能或被管理的上下文中,例如,在控制应用程序或运输规范中定义或管理,或者通过控制分发比特流的环境来管理。
出于确定比特流的解码单元中的数据量之外的目的,解码器应忽略(从比特流中移除并丢弃)使用nal_unit_type的保留值的所有NAL单元的内容。
注意—该要求允许未来定义本说明书的兼容扩展。
Figure BDA0003674560980000201
Figure BDA0003674560980000211
表2
注意—干净随机存取(CRA)画面可具有存在于比特流中的相关联RASL或RADL画面。
注意—具有等于IDR_N_LP的nal_unit_type的瞬时解码刷新(EDR)画面不具有存在于比特流中的相关联前导画面。具有等于IDR_W_RADL的nal_unit_type的IDR画面不具有存在于比特流中的相关联RASL画面,但可具有在比特流中的相关联RADL画面。
对于任何特定画面的VCL NAL单元,以下适用:
-如果mixed_nalu_types_in_pic_flag等于0,则对于画面的所有编码切片NAL单元,nal_unit_type的值应相同。画面或PU被称为具有与画面或PU的编码切片NAL单元相同的NAL单元类型。
-否则(mixed_nalu_types_in_pic_flag等于1),VCL NAL单元中的一者或多者应全部具有在IDR_W_RADL至CRA_NUT的范围内(包括端值)的nal_unit_type的特定值,并且其他VCL NAL单元应全部具有在TRAIL_NUT至RSV_VCL_6的范围内(包括端值)或等于GRA_NUT的nal_unit_type的特定值。
对于单层比特流,以下约束适用:
-除比特流中按解码顺序排列的第一画面之外的每个画面都被视为与按解码顺序排列的先前IRAP画面相关联。
-当画面是IRAP画面的前导画面时,该画面应为RADL或RASL画面。
-当画面是IRAP画面的拖尾画面时,该画面不应为RADL或RASL画面。
-RASL画面不应存在于比特流中,这些RASL画面与IDR画面相关联。
-RADL画面不应存在于比特流中,这些RADL画面与具有等于IDR_N_LP的nal_unit_type的IDR画面相关联。
注意—可以通过丢弃在IRAP PU之前的所有PU(并且按解码顺序正确解码IRAP画面和所有后续非RASL画面)来执行IRAP PU的位置处的随机访问,前提条件是每个参数集(在比特流中或通过本说明书中未指定的外部方式)当被引用时是可用的。
-在解码顺序中在IRAP画面之前的任何画面应在输出顺序中在IRAP画面之前,并且应在输出顺序中在与IRAP画面相关联的任何RADL画面之前。
-与CRA画面相关联的任意RASL画面都应按输出顺序排列在与CRA画面相关联的任意RADL画面之前。
-与CRA图片相关联的任意RASL图片都应按输出顺序跟随在按解码顺序排列在CRA图片之前的任意IRAP图片之后。
-如果field_seq_flag等于0,并且当前画面是与IRAP画面相关联的前导画面,则该当前画面应按解码顺序排列在与相同IRAP画面相关联的所有非前导画面之前。否则,让picA和picB在解码顺序中分别是与IRAP画面相关联的第一个前导画面和最后一个前导画面,在解码顺序中picA之前应存在最多一个非前导画面,并且在解码顺序中picA和picB之间不应存在非前导画面。
应当指出的是,一般来讲,帧内随机接入点(IRAP)画面是在其解码过程中不引用除其自身之外的任何画面来进行预测的画面。在JVET-P2001中,IRAP画面可以是干净随机存取(CRA)画面或瞬时解码刷新(IDR)画面。在JVET-P2001中,比特流中按解码顺序排列的第一画面必须是IRAP画面或渐进解码刷新(GDR)画面。JVET-P2001描述了前导画面的概念,前导画面是在输出顺序中在相关联IRAP画面之前的画面。JVET-P2001还描述了拖尾画面的概念,拖尾画面是在输出顺序中在相关联IRAP画面之后的非IRAP画面。与IRAP画面相关联的拖尾画面在解码顺序中也在IRAP画面之后。对于IDR画面,不存在需要引用在IDR画面之前解码的画面的拖尾画面。JVET-P2001规定了CRA画面可具有在解码顺序中在CRA画面之后的前导画面,并且包含参考在CRA画面之前解码的画面的画面间预测。因此,当CRA画面用作随机访问点时,这些前导画面可能不可解码并且被识别为随机访问跳过前导(RASL)画面。可在解码顺序中在IRAP画面之后并且在输出顺序中在IRAP画面之前的另一类型的画面是随机访问可解码前导(RADL)画面,其不可包含对在解码顺序中在IRAP画面之前的任何画面的参考。GDR画面是其中每个VCL NAL单元具有等于GDR_NUT的nal_unit_type的画面。如果当前画面是与发送信号通知语法元素receovery_poc_cnt的画面标头相关联的GDR画面,并且存在CLVS中在解码顺序中在当前GDR画面后面的并且具有等于当前GDR画面的PicOrderCntVal加上recovery_poc_cnt的值的PicOrderCntVal的画面picA,则画面picA被称为恢复点画面。
如表2中所提供的,NAL单元可以包括序列参数集语法结构。表3示出了JVET-P2001中提供的SPS的语法结构。
Figure BDA0003674560980000241
Figure BDA0003674560980000251
Figure BDA0003674560980000261
Figure BDA0003674560980000271
Figure BDA0003674560980000281
Figure BDA0003674560980000291
表3
对于表3,JVET-P2001提供了以下语义:
在被引用之前,SPS RBSP应可用于解码过程,被包括在具有等于0的TemporalId的至少一个AU中或通过外部方式提供。
在CVS中具有sps_seq_parameter_set_id的特定值的所有SPS NAL单元应具有相同的内容。
当sps_decoding_parameter_set_id大于0时,其指定由SPS引用的DPS的dps_decoding_parameter_set_id的值。当sps_decoding_parameter_set_id等于0时,SPS不引用DPS,并且当对引用SPS的每个CLVS进行解码时,不引用DPS。在比特流中被编码画面引用的所有SPS中,sps_decoding_parameter_set_id的值应为相同的。
当sps_video_parameter_set_id大于0时,其指定由SPS引用的VPS的vps_video_parameter_set_id的值。
当sps_video_parameter_set_id等于0,以下适用:
-SPS不引用VPS。
-当对参考SPS的每个CLVS进行解码时,不引用VPS。
-推断vps_max_layers_minus1的值等于0。
-CVS应仅包含一个层(即,CVS中的所有VCL NAL单元应具有相同的nuh_layer_id值)。
-推断GeneralLayerIdx[nuh_layer_id]的值等于0。
-推断vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]的值等于1。
当vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]等于1时,由CLVS引用的具有特定nuh_layer_id值nuhLayerId的SPS应具有等于nuhLayerId的nuh_layer_id。
sps_max_sublayers_minus1加1指定引用SPS的每个CLVS中可能存在的最大时间子层数量。sps_max_sublayers_minus1的值应在0至vps_max_sublayers_minus1的范围内(包括端值)。
在符合本说明书的此版本的比特流中,sps_reserved_zero_4bits应等于0。保留sps_reserved_zero_4bits的其他值以供ITU-T|ISO/IEC将来使用。
sps_ptl_dpb_hrd_params_present_flag等于1指定在SPS中存在profile_tier_level()语法结构和dpb_parameters()语法结构,并且在SPS中还存在general_hrd_parameters()语法结构和ols_hrd_parameters()语法结构。sps_ptl_dpb_hrd_params_present_flag等于0指定在SPS中不存在这些语法结构中的任一者。sps_ptl_dpb_hrd_params_present_flag的值应等于vps_independent_layer_flag[nuh_layer_id]。
如果vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]等于等于1,则在SPS的dpb_parameters()语法结构中,变量MaxDecPicBuffMinus1被设置为等于max_dec_pic_buffering_minus1[sps_max_sublayers_minus1]。否则,MaxDecPicBuffMinus1在VPS中的第layer_nonoutput_dpb_params_idx[GeneralLayerIdx[nuh_layer_id]]个dpb_parameters()语法结构中被设置为等于max_dec_pic_buffering_minus1[sps_max_sublayers_minus1]。
gdr_enabled_flag等于1指定在引用SPS的CLVS中可能存在GDR画面。gdr_enabled_flag等于0指定在引用SPS的CLVS中不存在GDR画面。
sps_seq_parameter_set_id提供SPS的标识符以供其他语法元素引用。
无论nuh_layer_id值如何,SPS NAL单元共享sps_seq_parameter_set_id的相同值空间。
如所指定的,chroma_format_idc指定相对于亮度采样的色度采样。
separate_colour_plane_flag等于1指定4:4:4色度格式的三个颜色分量被单独地编码。separate_colour_plane_flag等于0指定颜色分量不被单独地编码。当separate_colour_plane_flag不存在时,推断其等于0。当separate_colour_plane_flag等于1时,编码画面由三个单独的分量组成,每个分量由一个颜色平面(Y、Cb或Cr)的编码样本组成并且使用单色编码语法。在这种情况下,每个颜色平面与特定的colour_plane_id值相关联。
注意—在具有不同colour_plane_id值的颜色平面之间的解码过程不存在相关性。例如,具有colour_plane_id的一个值的单色画面的解码过程不使用来自具有不同colour_plane_id值的单色画面的任何数据进行帧间预测。
根据separate_colour_plane_flag的值,变量ChromaArrayType的值如下指定:
-如果separate_colour_plane_flag等于0,则ChromaArrayType被设置为等于chroma_format_idc。
-否则(separate_colour_plane_flag等于1),ChromaArrayType被设置为等于0。
ref_pic_resampling_enabled_flag等于1指定当对引用SPS的CLVS中的编码画面进行解码时可应用参考画面重采样。ref_pic_resampling_enabled_flag等于0指定当对引用SPS的CLVS中的编码画面进行解码时不应用参考画面重采样。
pic_width_max_in_luma_samples指定引用SPS的每个编码画面的最大宽度,以亮度样本为单位。pic_width_max_in_luma_samples应不等于0,并且应为Max(8,MinCbSizeY)的整数倍。
pic_height_max_in_luma_samples指定引用SPS的每个编码画面的最大高度,以亮度样本为单位。pic_height_max_in_luma_samples应不等于0,并且应为Max(8,MinCbSizeY)的整数倍。
sps_log2_ctu_size_minus5加5指定每个CTU的亮度编码树块大小。比特流符合性要求sps_log2_ctu_size_minus5的值小于或等于2。
变量CtbLog2SizeY和CtbSizeY如下导出:
CtbLog2SizeY=sps_log2_ctu_size_minus5+5
CtbSizeY=1<<CtbLog2SizeY
subpics_present_flag等于1指定子画面参数存在于于SPS RBSP语法中。subpics_present_flag等于0指定子画面参数不存在于SPS RBSP语法中。
注意—当比特流是子比特流提取过程的结果并且仅包含到子比特流提取过程的输入比特流的子画面的子集时,可能需要在SPS的RBSP中将subpics_present_flag的值设置为1。
sps_num_subpics_minus1加1指定子画面的数量,sps_num_subpics_minus1应在0至254的范围内。当不存在时,推断sps_num_subpics_minus1的值等于0。
subpic_ctu_top_left_x[i]指定第i个子画面的左上CTU的水平位置,单位为CtbSizeY。语法元素的长度为Ceil(Log2(pic_width_max_in_luma_samples/CtbSizeY))位。当不存在时,推断subpic_ctu_top_left_x[i]的值等于0。
subpic_ctu_top_left_y[i]指定第i个子画面的左上CTU的竖直位置,单位为CtbSizeY。语法元素的长度为Ceil(Log2(pic_height_max_in_luma_samples/CtbSizeY))位。当不存在时,推断subpic_ctu_top_left_y[i]的值等于0。
subpic_width_minus1[i]加1指定第i个子画面的宽度,以CtbSizeY为单位。语法元素的长度为Ceil(Log2(pic_width_max_in_luma_samples/CtbSizeY))位。当不存在时,推断subpic_width_minus1[i]的值等于Ceil(pic_width_max_in_luma_samples/CtbSizeY)-1。
subpic_height_minus1[i]加1指定第i个子画面的高度,以CtbSizeY为单位。语法元素的长度为Ceil(Log2(pic_height_max_in_luma_samples/CtbSizeY))位。当不存在时,推断subpic_height_minus1[i]的值等于Ceil(pic_height_max_in_luma_samples/CtbSizeY)-1。
subpic_treated_as_pic_flag[i]等于1指定CLVS中的每个编码画面的第i个子画面在不包括循环中滤波操作的解码过程中被视为画面。subpic_treated_as_pic_flag[i]等于0指定CLVS中的每个编码画面的第i个子画面在不包括循环中滤波操作的解码过程中不被视为画面。当不存在时,推断subpic_treated_as_pic_flag[i]的值等于0。
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。
比特流符合性要求以下约束适用:
-对于任意两个子画面subpicA和subpicB,当subpicA的子画面索引小于subpicB的子画面索引时,subPicA的任意编码切片NAL单元在解码顺序中应在subPicB的任意编码切片NAL单元之前。
-子画面的形状应使得每个子画面在被解码时应具有其由画面边界组成的或由先前解码的子画面的边界组成的整个左边界和整个顶部边界。
sps_subpic_id_present_flag等于1指定SPS中存在子画面ID映射。sps_subpic_id_present_flag等于0指定SPS中不存在子画面ID映射。
sps_subpic_id_signalling_present_flag等于1指定在SPS中发送信号通知子画面ID映射。sps_subpic_id_signalling_present_flag等于0指定不在SPS中发送信号通知子画面ID映射。当不存在时,推断sps_subpic_id_signalling_present_flag的值等于0。
sps_subpic_id_len_minus1加1指定用于表示语法元素sps_subpic_id[i]的位数。sps_subpic_id_len_minus1的值应在0至15的范围内(包括端值)。
pps_subpic_id[i]指定第i个子画面的子画面ID。sps_subpic_id[i]语法元素的长度为sps_subpic_id_len_minus1+1位。当不存在时,并且当sps_subpic_id_present_flag等于0时,对于在0至sps_num_subpics_minus1范围内(包括端值)的每个i,推断sps_subpic_id[i]的值等于i
bit_depth_minus8如下指定亮度和色度阵列的样本的位深度BitDepth,以及亮度和色度量化参数范围偏移QpBdOffset的值:
BitDepth=8+bit_depth_minus8
QpBdOffset=6*bit_depth_minus8
bit_depth_minus8应在0至8的范围内(包括端值)。
min_qp_prime_ts_minus4如下指定用于变换跳过模式的最小允许量化参数:
QpPrimeTsMin=4+min_qp_prime_ts_minus4
min_qp_prime_ts_minus4的值应在0至48的范围内(包括端值)。
sps_weighted_pred_flag等于1指定可以将加权预测应用于引用SPS的P切片。sps_weighted_pred_flag等于0指定不将加权预测应用于引用SPS的P切片。
sps_weighted_bipred_flag等于1指定可以将显式加权预测应用于引用SPS的B切片。sps_weighted_bipred_flag等于0指定不将显式加权预测应用于引用SPS的B切片。
log2_max_pic_order_cnt_lsb_minus4如下指定在画面序列号的解码过程中使用的变量MaxPicOrderCntLsb的值:
MaxPicOrderCntLsb=2(log2_max_pic_order_cnt_lsb_minnus4+4)
log2_max_pic_order_cnt_lsb_minus4的值应在0至12的范围内(包括端值)。
sps_poc_msb_flag等于1指定在引用SPS的PH中存在ph_poc_msb_cycle_present_flag语法元素。sps_poc_msb_flag等于0指定在引用SPS的PH中不存在ph_poc_msb_cycle_present_flag语法元素。
poc_msb_len_minus1加1指定当引用SPS的PH中存在poc_msb_val语法元素时所述语法元素的长度,单位为位。poc_msb_len_minus1的值应在0至32-log2_max_pic_order_cnt_lsb_minus4-5的范围内(包括端值)。
sps_sublayer_dpb_params_flag用于控制SPS中的dpb_parameters()语法结构中max_dec_pic_buffering_minus1[i]、max_num_reorder_pics[i]和max_latency_increase_plus1[i]语法元素的存在。当不存在时,推断sps_sub_dpb_params_info_present_flag的值等于0。
long_term_ref_pics_flag等于0指定没有LTRP用于CLVS中任何编码画面的帧间预测。long_term_ref_pics_flag等于1表示LTRP可以用于CLVS中的一个或多个编码画面的帧间预测。
inter_layer_ref_pics_present_flag等于0指定没有ILRP用于CLVS中的任何编码画面的帧间预测。inter_layer_ref_pics_flag等于1指定ILRP可用于CLVS中的一个或多个编码画面的帧间预测。当sps_video_parameter_set_id等于0时,推断inter_layer_ref_pics_present_flag的值等于0。当vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]等于1时,inter_layer_ref_pics_present_flag的值应等于0。
sps_idr_rpl_present_flag等于1指定IDR画面的切片标头中存在参考画面列表语法元素。sps_idr_rpl_present_flag等于0指定IDR画面的切片标头中不存在参考画面列表语法元素。
rpl1_same_as_rpl0_flag等于1表示语法元素num_refjpic_lists_in_sps[1]和语法结构ref_pic_list_struct(1,rplsIdx)不存在,并且以下适用:
-推断num_ref_pic_lists_in_sps[1]的值等于num_ref_pic_lists_in_sps[0]的值。
-推断refjpic_list_struct(1,rplsIdx)中的语法元素中的每个语法元素的值等于对于rplsIdx范围在0至num_ref_pic_lists_in_sps[0]-1的ref_pic_list_struct(0,rplsIdx)中的对应语法元素的值。
num_ref_pic_lists_in_sps[i]指定包括在SPS中的ref_pic_list_struct(listIdx,rplsIdx)语法结构的数量,其中listIdx等于i。num_ref_pic_lists_in_sps[i]的值应在0至64的范围内(包括端值)。
注意—对于listIdx的每个值(等于0或1),解码器应为总数为num_ref_pic_lists_in_sps[i]+1的ref_pic_list_struct(listIdx,rplsIdx)语法结构分配内存,因为可能在当前画面的切片标头中存在直接发送信号通知的一个ref_pic_list_struct(listIdx,rplsIdx)语法结构。
qtbtt_dual_tree_intra_flag等于1指定,对于I切片,使用隐式四叉树分割将每个CTU分割成具有64×64亮度样本的编码单元,并且这些编码单元是亮度和色度的两个单独的coding_tree语法结构的根。qtbtt_dual_tree_intra_flag等于0指定单独的coding_tree语法结构不用于I切片。当qtbtt_dual_tree_intra_flag不存在时,推断其等于0。
log2_nun_luma_coding_block_size_minus2加2指定最小亮度编码块大小。log2_min_luma_coding_block_size_minus2的值应在0至Log2_ctu_size_minus5+3的值范围内(包括端值)。
变量MinCbLog2SizeY、MinCbSizeY、IbcBufWidthY、IbcBufWidthC和Vsize如下导出:
MinCbLog2SizeY=log2_min_luma_coding_block_size_minus2+2
MinCbSizeY=1<<MinCbLog2SizeY
IbcBufWidthY=256*128/CtbSizeY
IbcBufWidthC=IbcBufWidthY/SubWidthC
VSize=Min(64,CtbSizeY)
MinCbSizeY的值应小于或等于VSize。
变量CtbWidthC和CtbHeightC分别指定每个色度CTB的阵列的宽度和高度,这两个变量如下导出:
-如果chroma_format_idc等于0(单色)或separate_colour_plane_flag等于1,则CtbWidthC和CtbHeightC均等于0。
-否则,CtbWidthC和CtbHeightC如下导出:
CtbWidthC=CtbSizeY/SubWidthC
CtbHeightC=CtbSizeY/SubHeightC
对于在0至4范围内的log2BlockWidth和在0至4范围内(包括端值)的log2BlockHeight,以1<<log2BlockWidth和1<<log2BlockHeight作为输入调用所指定的右上对角线和光栅扫描顺序阵列初始化过程,并且将输出分配给DiagScanOrder[log2BlockWidth][log2BlockHeight]。
对于在0至6范围内的log2BlockWidth和在0至6范围内(包括端值)的log2BlockHeight,以1<<log2BlockWidth和1<<log2BlockHeight作为输入调用所指定的水平和竖直横过扫描顺序阵列初始化过程,并且将输出分配给HorTravScanOrderElog2BlockWidth][log2BlockHeight]和VerTravScanOrder[log2BlockWidth][log2BlockHeight]。
partition_constraints_override_enabled_flag等于1指定引用SPS的PH中存在partition_constraints_override_flag。partition_constraints_override_enabled_flag等于0指定引用SPS的PH中不存在partition_constraints_override_flag。
sps_log2_diff_min_qt_min_cb_intra_slice_luma指定对CTU进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小的以2为底的对数与引用SPS的slice_type等于2(I)的切片中的亮度CU的亮度样本中的最小编码块大小的以2为底的对数之间的默认差值。当partition_constraints_override_enabled_flag等于1时,该默认差值可以被引用SPS的PH中存在的pic_log2_diff_min_qt_min_cb_luma覆写。sps_log2_diff_max_bt_min_qt_intra_slice_luma的值应在0至CtbLog2SizeY-MinCbLog2SizeY的范围内(包括端值)。对CTU进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小的以2为底的对数如下导出:
MinQtLog2SizeIntraY=sps_log2_diff_min_qt_min_cb_intra_slice_luma+MinCbLog2SizeY
sps_log2_diff_min_qt_min_cb_inter_slice指定对CTU进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小的以2为底的对数与引用SPS的slice_type等于0(B)或1(P)的切片中的亮度CU的亮度样本中的最小亮度编码块大小的以2为底的对数之间的默认差值。当partition_constraints_override_enabled_flag等于1时,该默认差值可以被引用SPS的PH中存在的pic_log2_diff_min_qt_min_cb_luma覆写。sps_log2_diff_min_qt_min_cb_inter_slice的值应在0至CtbLog2SizeY-MinCbLog2SizeY的范围内(包括端值)。对CTU进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小的以2为底的对数如下导出:
MinQtLog2SizeInterY=sps_log2_diff_min_qt_min_cb_inter_slice+MinCbLog2SizeY
sps_max_mtt_hierarchy_depth_inter_slice指定对引用SPS的slice_type等于0(B)或1(P)的切片中的四叉树叶进行多类型树分割产生的编码单元的默认最大分级结构深度。当partition_constraints_override_enabled_flag等于1时,默认最大分级结构深度可以被引用SPS的PH中存在的pic_max_mtt_hierarchy_depth_inter_slice覆写。sps_max_mtt_hierarchy_depth_inter_slice的值应在0至2*(CtbLog2SizeY-MinCbLog2SizeY)的范围内(包括端值)。
sps_max_mtt_hierarchy_depth_intra_slice_luma指定对引用SPS的slice_type等于2(I)的切片中的四叉树叶进行多类型树分割产生的编码单元的默认最大分级结构深度。当partition_constraints_override_enabled_flag等于1时,默认最大分级结构深度可以被引用SPS的PH中存在的pic_max_mtt_hierarchy_depth_intra_slice_luma覆写。sps_max_mtt_hierarchy_depth_intra_slice_luma的值应在0至2*(CtbLog2SizeY-MinCbLog2SizeY)的范围内(包括端值)。
sps_log2_diff_max_bt_min_qt_intra_slice_luma指定可使用二进制分割的亮度编码块的亮度样本中的最大大小(宽度或高度)的以2为底的对数与对引用SPS的slice_type等于2(I)的切片中的CTU进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小(宽度或高度)的以2为底的对数之间的默认差值。当partition_constraints_override_enabled_flag等于1时,该默认差值可以被引用SPS的PH中存在的pic_log2_diff_max_bt_min_qt_luma覆写。sps_log2_diff_max_bt_min_qt_intra_slice_luma的值应在0至CtbLog2SizeY-MinQtLog2SizeIntraY的范围内(包括端值)。当sps_log2_diff_max_bt_min_qt_intra_slice_luma不存在时,推断sps_log2_diff_max_bt_min_qt_intra_slice_luma的值等于0。
sps_log2_diff_max_tt_min_qt_intra_slice_luma指定可使用三元分割的亮度编码块的亮度样本中的最大大小(宽度或高度)的以2为底的对数与对引用SPS的slice_type等于2(I)的切片中的CTU进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小(宽度或高度)的以2为底的对数之间的默认差值。当partition_constraints_override_enabled_flag等于1时,该默认差值可以被引用SPS的PH中存在的pic_log2_diff_max_tt_min_qt_luma覆写。sps_log2_diff_max_tt_min_qt_intra_slice_luma的值应在0至CtbLog2SizeY-MinQtLog2SizeIntraY的范围内(包括端值)。当sps_log2_diff_max_tt_min_qt_intra_slice_luma不存在时,推断sps_log2_diff_max_tt_min_qt_intra_slice_luma的值等于0。
sps_log2_diff_max_bt_min_qt_inter_slice指定可使用二进制分割的亮度编码块的亮度样本中的最大大小(宽度或高度)的以2为底的对数与对引用SPS的slice_type等于0(B)或1(P)的切片中的CTU进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小(宽度或高度)的以2为底的对数之间的默认差值。当partition_constraints_override_enabled_flag等于1时,该默认差值可以被引用SPS的PH中存在的pic_log2_diff_max_bt_min_qt_luma覆写。sps_log2_diff_max_bt_min_qt_inter_slice的值应在0至CtbLog2SizeY-MinQtLog2SizeInterY的范围内(包括端值)。当sps_log2_diff_max_bt_min_qt_inter_slice不存在时,推断sps_log2_diff_max_bt_min_qt_inter_slice的值等于0。
sps_log2_diff_max_tt_min_qt_inter_slice指定可使用三元分割的亮度编码块的亮度样本中的最大大小(宽度或高度)的以2为底的对数与对引用SPS的slice_type等于0(B)或1(P)的切片中的CTU进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小(宽度或高度)的以2为底的对数之间的默认差值。当partition_constraints_override_enabled_flag等于1时,该默认差值可以被引用SPS的PH中存在的pic_log2_diff_max_tt_min_qt_luma覆写。sps_log2_diff_max_tt_min_qt_inter_slice的值应在0至CtbLog2SizeY-MinQtLog2SizeInterY的范围内(包括端值)。当sps_log2_diff_max_tt_min_qt_inter_slice不存在时,推断sps_log2_diff_max_tt_min_qt_inter_slice的值等于0。
sps_log2_diff_min_qt_min_cb_mtra_slice_chroma指定对treeType等于DUAL_TREE_CHROMA的色度CTU进行四叉树分割产生的色度叶片块的亮度样本中的最小大小的以2为底的对数与引用SPS的slice_type等于2(I)的切片中treeType等于DUAL_TREE_CHROMA的色度CU的亮度样本中的最小编码块大小的以2为底的对数之间的默认差值。当partition_constraints_override_enabled_flag等于1时,该默认差值可以被引用SPS的PH中存在的pic_log2_diff_min_qt_min_cb_chroma覆写。sps_log2_diff_min_qt_min__cb_intra_slice_chroma的值应在0至CtbLog2SizeY-MinCbLog2SizeY的范围内(包括端值)。当不存在时,推断sps_log2_diff_min_qt_min_cb_intra_slice_chroma的值等于0。对treeType等于DUAL_TREE_CHROMA的CTU进行四叉树分割产生的色度叶片块的亮度样本中的最小大小的以2为底的对数如下导出:
MinQtLog2SizeIntraC=sps_log2_diffminqtmincbintrasliccchroma+MinCbLog2SizeY
Sps_max_mtt_hierarchy_depth_intra_slice_chroma指定对引用SPS的slice_type等于2(I)的切片中treeType等于DUAL_TREE_CHROMA的色度四叉树叶进行多类型树分割产生的色度编码单元的默认最大分级结构深度。当partition_constraints_override_enabled_flag等于1时,默认最大分级结构深度可以被引用SPS的PH中存在的pic_max_mtt_hierarchy_depth_chroma覆写。sps_max_mtt_hierarchy_depth_intra_slice_chroma的值应在0至2*(CtbLog2SizeY-MinCbLog2SizeY)的范围内(包括端值)。当不存在时,推断sps_max_mtt_hierarchy_depth_intra_slice_chroma的值等于0。
sps_log2_diff_max_bt_min_qt_intra_slice_chroma指定可使用二进制分割的色度编码块的亮度样本中的最大大小(宽度或高度)的以2为底的对数与对引用SPS的slice_type等于2(I)的切片中treeType等于DUAL_TREE_CHROMA的色度CTU进行四叉树分割产生的色度叶片块的亮度样本中的最小大小(宽度或高度)的以2为底的对数之间的默认差值。当partition_constraints_override_enabled_flag等于1时,该默认差值可以被引用SPS的PH中存在的pic_log2_diff_max_bt_min_qt_chroma覆写。sps_log2_diff_max_bt_min_qt_intra_slice_chroma的值应在0至CtbLog2SizeY-MinQtLog2SizeintraC的范围内(包括端值)。当sps_log2_diff_max_bt_min_qt_intra_slice_chroma不存在时,推断sps_log2_diff_max_bt_min_qt_intra_slice_chroma的值等于0。
sps_log2_diff_max_tt_min_qt_intra_slice_chroma指定可使用三元分割的色度编码块的亮度样本中的最大大小(宽度或高度)的以2为底的对数与对引用SPS的slice_type等于2(I)的切片中treeType等于DUAL_TREE_CHROMA的色度CTU进行四叉树分割产生的色度叶片块的亮度样本中的最小大小(宽度或高度)的以2为底的对数之间的默认差值。当partition_constraints_override_enabled_flag等于1时,该默认差值可以被引用SPS的PH中存在的pic_log2_diff_max_tt_min_qt_chroma覆写。sps_log2_diff_max_tt_min_qt_intra_slice_chroma的值应在0至CtbLog2SizeY-MinQtLog2SizeIntraC的范围内(包括端值)。当sps_log2_diff_max_tt_min_qt_intra_slice_chroma不存在时,推断sps_log2_diff_max_tt_min_qt_intra_slice_chroma的值等于0。
sps_max_luma_transform_size_64_flag等于1指定亮度样本中的最大变换大小等于64。sps_max_luma_transform_size_64_flag等于0指定亮度样本中的最大变换大小等于32。
当CtbSizeY小于64时,sps_max_luma_transform_size_64_flag的值应等于0。
变量MinTbLog2SizeY、MaxTbLog2SizeY、MinTbSizeY和MaxTbSizeY如下导出:
MinTbLog2SizeY=2
MaxTbLog2SizeY=sps_max_luma_transform__size_64_flag?6:5
MinTbSizeY=1<<MinTbLog2SizeY
MaxTbSizeY=1<<MaxTbLog2SizeY
sps_joint_cbcr_enabled_flag等于0指定色度残差的联合编码被禁用。sps_joint_cbcr_enabled_flag等于1指定启用色度残差的联合编码。
same_qp_table_for_chroma等于1指定仅发送信号通知一个色度QP映射表,并且当spsjoint_cbcr_enabled_flag等于1时,该表适用于Cb和Cr残差并且另外适用于联合Cb-Cr残差。same_qp_table_for_chroma等于0指定在SPS中发送信号通知色度QP映射表,当spsjoint_cbcr_enabled_flag等于1时,两个用于Cb和Cr,并且一个附加的用于联合Cb-Cr。当same_qp_table_for_chroma不存在于比特流中时,推断same_qp_table_for_chroma的值等于1。
qp_table_jstart_minus26[i]加26指定用于描述第i个色度QP映射表的起始亮度和色度QP。qp_table_start_minus26[i]的值应在-26-QpBdOffset至36的范围内(包括端值)。当比特流中不存在qp_table_start_minus26[i]时,推断qp_table_start_minus26[i]的值等于0。
num_points_in_qp_table_minus1[i]加1指定用于描述第i个色度QP映射表的点数。num_pointsjn_qp_table_minus1[i]的值应在0至63+QpBdOffset的范围内(包括端值)。当比特流中不存在num_points_in_qp_table_minus1[0]时,推断num_points_in_qp_table_minus1[0]的值等于0。
delta_qp_in_val_minus1[i][j]指定用于导出第i个色度QP映射表的第j个枢转点的输入坐标的增量值。当delta_qp_in_val_minus1[0][j]不存在于比特流中时,推断delta_qp_in_val_minus1[0][j]的值等于0。
delta_qp_diff_val[i][j]指定用于导出第i个色度QP映射表的第j个枢转点的输出坐标的增量值。
第i个色度QP映射表ChromaQpTable[i]如下导出,其中i=0..numQpTables-1:
Figure BDA0003674560980000431
当same_qp_table_for_chroma等于1时,ChromaQpTable[1][k]和ChromaQpTable[2][k]被设置为等于ChromaQpTable[0][k],其中k=-QpBdOffset..63。
比特流符合性要求,qpInVal[i][j]和qpOutVal[i][j]的值应在-QpBdOffsetC至63的范围内(包括端值),其中i=0..numQpTables-1,并且j=0..num_points_in_qp_table_minus1[i]+1。
sps_sao_enabled_flag等于1指定在解块滤波过程之后对重构画面应用样本自适应偏移过程。sps_sao_enabled_flag等于0指定在解块滤波器过程之后不对重构画面应用样本自适应偏移过程。
sps_alf_enabled_flag等于0指定禁用自适应环路滤波器。sps_alf_cnablcd_flag等于1指定启用自适应环路滤波器。
sps_transform_skip_enabled_flag等于1指定变换单元语法中可存在transform_skip_flag。sps_transform_skip_enabled_flag等于0指定变换单元语法中不存在transform_skip_flag。
sps_bdpcm_enabled_flag等于1指定用于帧内编码单元的编码单元语法中可存在intra_bdpcm_luma_flag,sps_bdpcm_enabled_flag等于0指定用于帧内编码单元的编码单元语法中不存在intra_bdpcm_luma_flag。当不存在时,推断sps_bdpcm_enabled_flag的值等于0。
sps_bdpcm_chroma_enabled_flag等于1指定用于帧内编码单元的编码单元语法中可存在intra_bdpcm_chroma_flag,sps_bdpcm_chroma_enabled_flag等于0指定用于帧内编码单元的编码单元语法中不存在intra_bdpcm_chroma_flag。当不存在时,推断sps_bdpcm_chroma_enabled_flag的值等于0。
sps_ref_wraparound_enabled_flag等于1指定在帧间预测中应用水平环绕式运动补偿。sps_ref_wraparound_enabled_flag等于0指定不应用水平环绕式运动补偿。当(CtbSizeY/MinCbSizeY+1)的值小于或等于(pic_width_in_luma_samples/MinCbSizeY-1)时,其中pic_width_in_luma_samples是引用SPS的任何PPS中的pic_width_in_luma_samples的值,sps_ref_wraparound_enabled_flag的值应等于0。
sps_ref_wraparound_offset_minus1加1指定用于计算水平环绕位置的偏移,以MinCbSizeY亮度样本为单位。ref_wraparound_offset_minus1的值应在(CtbSizeY/MinCbSizeY)+1至(pic_width_in_luma_samples/MinCbSizeY)-1的范围内(包括端值),其中pic_width_in_luma_samples是引用SPS的任何PPS中的pic_width_in_luma_samples的值。
sps_temporal_mvp_enabled_flag等于1指定在CLVS中可使用时间运动矢量预测器。sps_temporal_mvp_enabled_flag等于0指定在CLVS中不使用时间运动矢量预测器。
sps_sbtmvp_enabled_flag等于1指定在CLVS中在画面解码中可使用基于子块的时间运动矢量预测器,其中所有切片具有不等于1的slice_type。sps_sbtmvp_enabled_flag等于0指定在CLVS中不使用基于子块的时间运动矢量预测器。当sps_sbtmvp_enabled_flag不存在时,推断其等于0。
sps_amvr_enabled_flag等于1指定在运动矢量编码中使用自适应运动矢量差分辨率。amvr_enabled_flag等于0指定在运动矢量编码中不使用自适应运动矢量差分辨率。
sps_bdof_enabled_flag等于0指定禁用双向光流帧间预测。sps_bdof_enabled_flag等于1指定启用双向光流帧间预测。
sps_bdof_pic_present_flag等于1指定引用SPS的PH中存在pic_disable_bdof_flag。sps_bdof_pic_present_flag等于0指定引用SPS的PH中不存在pic_disable_bdof_flag。当sps_bdof_pic_present_flag不存在时,推断sps_bdof_pic_present_flag的值等于0。
sps_smvd_enabled_flag等于1指定在运动矢量解码中可使用对称运动矢量差。sps_smvd_enabled_flag等于0指定在运动矢量编码中不使用对称运动矢量差。
sps_dmvr_enabled_flag等于1指定启用基于解码器运动矢量修正的帧间双预测。sps_dmvr_enabled_flag等于0指定禁用基于解码器运动矢量修正的帧间双预测。
sps_dmvr_pic_present_flag等于1指定引用SPS的PH中存在pic_disable_dmvr_flag。sps_dmvr_pic_present_flag等于0指定引用SPS的PH中不存在pic_disable_dmvr_flag。当sps_dmvr_pic_present_flag不存在时,推断sps_dmvr_pic_present_flag的值等于0。
sps_mmvd_enabled_flag等于1指定启用具有运动矢量差的合并模式。sps_mmvd_enabled_flag等于0指定禁用具有运动矢量差的合并模式。
sps_isp_enabled_flag等于1指定启用具有子划分的帧内预测。sps_isp_enabled_flag等于0指定禁用具有子划分的帧内预测。
sps_mrl_enabled_flag等于1指定启用具有多个参考行的帧内预测。sps_mrl_enabled_flag等于0指定禁用具有多个参考行的帧内预测。
sps_mip_enabled_flag等于1指定启用基于矩阵的帧内预测。sps_mip_enabled_flag等于0指定禁用基于矩阵的帧内预测。
sps_cclm_enabled_flag等于0指定禁用从亮度分量到色度分量的跨分量线性模型帧内预测。sps_cclm_enabled_flag等于1指定启用从亮度分量到色度分量的跨分量线性模型帧内预测。当sps_cclm_enabled_flag不存在时,推断其等于0。
sps_chroma_horizontal_collocated_flag等于1指定预测过程以针对相对于对应亮度样本位置未水平移位的色度样本位置而设计的方式操作。sps_chroma_horizontal_collocated_flag等于0指定预测过程以针对色度样本位置而设计的方式操作,这些色度样本位置相对于对应亮度样本位置以亮度样本为单位向右移位0.5。当sps_chroma_horizontal_collocated_flag不存在时,推断其等于1。
sps_chroma_vertical_conocated_flag等于1指定预测过程以针对相对于对应亮度样本位置未竖直移位的色度样本位置而设计的方式操作。sps_chroma_vertical_collocated_flag等于0指定预测过程以针对色度样本位置而设计的方式操作,这些色度样本位置相对于对应亮度样本位置以亮度样本为单位向下移位0.5。当sps_chroma_vertical_collocated_flag不存在时,推断其等于1。
sps_mts_enabled_flag等于1指定序列参数集RBSP语法中存在sps_explicit_mts_intra_enabled_flag并且序列参数集RBSP语法中存在sps_explicit_mts_inter_enabled_flag。sps_mts_enabled_flag等于0指定序列参数集RBSP语法中不存在sps_explicit_mts_intra_enabled_flag并且序列参数集RBSP语法中不存在sps_explicit_mts_inter_enabled_flag。
sps_explicit_mts_intra_enabled_flag等于1指定帧内编码单元语法中可能存在mtsidx。sps_explicit_mts_intra_enabled_flag等于0指定帧内编码单元语法中不存在mts_idx。当不存在时,推断sps_explicit_mts_intra_enabled_flag的值等于0。
sps_explicit_mts_inter_enabled_flag等于1指定帧内编码单元语法中可能存在mts_idx。sps_explicit_mts_inter_enabled_flag等于0指定帧内编码单元语法中不存在mts_idx。当不存在时,推断sps_explicit_mts_inter_enabled_flag的值等于0。
sps_sbt_enabled_flag等于0指定禁用用于帧间预测CU的子块变换。sps_sbt_enabled_flag等于1指定启用用于帧间预测CU的子块变换。
sps_affine_enabled_flag指定是否可以将基于仿射模型的运动补偿用于帧间预测。如果sps_affine_enabled_flag等于0,则语法应被约束为使得在CLVS中不使用基于仿射模型的运动补偿,并且CLVS的编码单元语法中不存在inter_affine_flag和cu_affine_type_flag。否则(sps_affine_enabled_flag等于1),在CLVS中可使用基于仿射模型的运动补偿。
sps_affine_type_flag指定是否可以将基于6参数仿射模型的运动补偿用于帧间预测。如果sps_affine_type_flag等于0,则语法应被约束为使得在CLVS中不使用基于6参数仿射模型的运动补偿,并且CLVS中的编码单元语法中不存在cu_affine_type_flag。否则(sps_affine_type_flag等于1),在CLVS中可使用基于6参数仿射模型的运动补偿。当不存在时,推断sps_affine_type_flag的值等于0。
sps_affine_amvr_enabled_flag等于1指定在仿射帧间模式的运动矢量编码中使用自适应运动矢量差分辨率。sps_affine_amvr_enabled_flag等于0指定在仿射帧间模式的运动矢量编码中不使用自适应运动矢量差分辨率。当不存在时,推断sps_affine_amvr_enabled_flag的值等于0。
sps_affine_prof_enabled_flag指定利用光流的预测修正是否可以用于仿射运动补偿。如果sps_affine_prof_enabled_flag等于0,则不应用光流来修正仿射运动补偿。否则(sps_affine_prof_enabled_flag等于1),可以应用光流来修正仿射运动补偿。当不存在时,推断sps_affine_prof_enabled_flag的值等于0。
sps_prof_pic_present_flag等于1指定引用SPS的PH中存在pic_disable_prof_flag。sps_prof_pic_present_flag等于0指定引用SPS的PH中不存在pic_disable_prof_flag。当sps_prof_pic_present_flag不存在时,推断sps_prof_pic_present_flag的值等于0。
sps_palette_enabled_flag等于1指定编码单元语法中可能存在pred_mode_plt_flag。sps_palette_enabled_flag等于0指定编码单元语法中不存在pred_mode_plt_flag。当sps_palette_enabled_flag不存在时,推断其等于0。
sps_act_enabled_flag等于1指定可以使用自适应颜色变换,并且编码单元语法中可以存在cu_act_enabled_flag。sps_act_enabled_flag等于0指定不使用自适应颜色变换,并且编码单元语法中不存在cu_act_enabled_flag。当sps_act_enabled_flag不存在时,推断其等于0。
sps_bcw_enabled_flag指定是否可以将具有CU权重的双预测用于帧间预测。如果sps_bcw_enabled_flag等于0,则语法应被约束为使得在CLVS中不使用具有CU权重的双预测,并且CLVS的编码单元语法中不存在bcw_idx。否则(sps_bcw_enabled_flag等于1),在CLVS中可使用具有CU权重的双预测。
sps_ibc_enabled_flag等于1指定可以在CLVS中在画面的解码中使用IBC预测模式。sps_ibc_enabled_flag等于0指定不在CLVS中使用IBC预测模式。当sps_ibc_enabled_flag不存在时,推断其等于0。
sps_ciip_enabled_flag指定用于帧间编码单元的编码单元语法中可能存在ciip_flag。sps_ciip_enabled_flag等于0指定用于帧间编码单元的编码单元语法中不存在ciip_flag。
sps_fpel_mmvd_enabled_flag等于1指定具有运动矢量差的合并模式正使用整数样本精度。sps_fpel_mmvd_enabled_flag等于0指定具有运动矢量差的合并模式可使用分数样本精度。
sps_triangle_enabled_flag指定是否可以将基于三角形形状的运动补偿用于帧间预测。sps_triangle_enabled_flag等于0指定语法应被约束为使得在CVS中不使用基于三角形形状的运动补偿,并且在CVS的编码单元语法中不存在merge_triangle_split_dir、merge_triangle_idx0和merge_triangle_idxl。sps_triangle_enabled_flag等于1指定在CVS中可使用基于三角形形状的运动补偿。
sps_lmcs_enabled_flag等于1指定在CLVS中使用具有色度缩放的亮度映射。sps_lmcs_enabled_flag等于0指定在CLVS中不使用具有色度缩放的亮度映射。
sps_lfnst_enabled_flag等于1指定帧内编码单元语法中可能存在lfnst_idx。sps_lfnst_enabled_flag等于0指定帧内编码单元语法中不存在lfnst_idx。
sps_ladf_enabled_flag等于1指定SPS中存在sps_num_ladf_intervals_minus2、sps_ladf_lowest_interval_qp_offset、sps_ladf_qp_offset[i]和sps_ladf_delta_threshold_minus1[i]。
sps_num_ladf_intervals_minus2加1指定SPS中存在的sps_ladf_delta_threshold_minus1[i]和sps_ladf_qp_offset[i]语法元素的数量。sps_num_ladf_intervals_minus2的值应在0至3的范围内(包括端值)。
sps_ladf_lowest_interval_qp_offset指定用于导出指定的变量qP的偏移。sps_ladf_lowest_interval_qp_offset的值应在-63至63的范围内(包括端值)。
sps_ladf_qp_offset[i]指定用于导出指定的变量qP的偏移阵列。sps_ladf_qp_offset[i]的值应在-63至63的范围内(包括端值)。
sps_ladf_delta_threshold_minus1[i]用于计算SpsLadfIntervalLowerBound[i]的值,其指定第i个亮度强度水平间隔的下界。sps_ladf_delta_threshold_minus1[i]的值应在0至2BitDepth-3的范围内(包括端值)。
将SpsLadfIntervalLowerBound[0]的值设定为等于0。
对于i在0至sps_num_ladf_intervals_minus2的范围内(包括端值)的每个值,变量SpsLadfIntervalLowerBound[i+1]如下导出:
SpsLadfIntervalLowerBound[i+1]=SpsLadfIntervalLowerBound[i]
+sps_ladf_delta_threshold_minus1[i]+1
sps_scaling_list_enabled_flag等于1指定将缩放列表用于变换系数的缩放过程。sps_scaling_list_enabled_flag等于0指定不将缩放列表用于变换系数的缩放过程。
sps_loop_filter_across_virtual_boundaries_disabled_present_flag等于1指定在引用SPS的画面中的虚拟边界上禁用循环中滤波操作。sps_loop_filter_across_virtual_boundaries_disabled_present_flag等于0指定在引用SPS的画面中不应用循环中滤波操作的此类禁用。循环中滤波操作包括解块滤波器、样本自适应偏移滤波器和自适应环路滤波器操作。
sps_num_ver_virtual_boundaries指定SPS中存在的sps_virtual_boundaries_pos_x[i]语法元素的数量。当sps_num_ver_virtual_boundaries不存在时,推断其等于0。
sps_virtual_boundaries_pos_x[i]用于计算VirtualBoundariesPosX[i]的值,其指定第i个竖直虚拟边界的位置,以亮度样本为单位。sps_virtual_boundaries_pos_x[i]的值应在1至Ceil(pic_width_in_luma_samples÷8)-1的范围内(包括端值)。
sps_num_hor_virtual_boundaries指定SPS中存在的sps_virtual_boundaries_pos_y[i]语法元素的数量。当sps_num_hor_virtual_boundaries不存在时,推断其等于0。
sps_virtual_boundaries_pos_y[i]用于计算VirtualBoundariesPosY[i]的值,其指定第i个水平虚拟边界的位置,以亮度样本为单位。sps_virtual_boundaries_pos_y[i]的值应在1至Ceil(pic_width_in_luma_samples÷8)-1的范围内(包括端值)。
sps_general_hrd_params_present_flag等于1指定在SPS RBSP语法结构中存在语法结构general_hrd_parameters()。sps_general_hrd_params_present_flag等于0指定在SPS RBSP语法结构中不存在语法结构general_hrd_parameters()。
sps_sublayer_cpb_params_present_flag等于1指定SPS RBSP中的语法结构old_hrd_parameters()包括具有在0至sps_max_sublayers_minus1的范围内(包括端值)的TemporalId的子层表示的HRD参数。sps_sublayer_cpb_params_present_flag等于0指定SPS RBSP中的语法结构ols_hrd_parameters()包括具有仅等于sps_max_sublayers_minus1的TemporalId的子层表示的HRD参数。当sps_max_sublayers_minus1等于0时,推断sps_sublayer_cpb_params_present_flag的值等于0。
当sps_sublayer_cpb_params_present_flag等于0时,用于TemporalId在0至sps_max_sublayers_minus1-1的范围内(包括端值)的子层表示的HRD参数被推断为与用于TemporalId等于sps_max_sublayers_minus1的子层表示的HRD参数相同。这些参数包括紧接在ols_hrd_parameters语法结构中的条件“if(general_vcl_hrd_params_present_flag)”下,从fixed_pic_rate_gencral_flag[i]语法元素开始,直到sublayer_hrd_parameters(i)语法结构的HRD参数。
field_seq_flag等于1指示CLVS传送表示字段的画面。field_seq_flag等于0表示CLVS传送表示帧的画面。当general_frame_only_constraint_flag等于1时,field_seq_flag的值应等于0。当field_seq_flag等于1时,对于CLVS中的每个编码画面,应存在帧字段信息SEI消息。
注意—指定的解码过程不会以不同的方式处理表示字段或帧的画面。因此,表示字段的画面序列将用单个字段的画面尺寸来编码。例如,表示1080i字段的画面通常将具有1920×540的裁剪的输出尺寸,而序列画面速率通常表示源字段速率(通常介于50Hz与60Hz之间),而不是源帧速率(通常介于25Hz与30Hz之间)。
vui_parameters_present_flag等于1指定在SPS RBSP语法结构中存在语法结构vui_parameters()。vui_parameters_present_flag等于0指定在SPS RBSP语法结构中不存在语法结构vui_parameters()。
sps_extension_flag等于0指定在SPS RBSP语法结构中不存在sps_extension_data_flag语法结构。sps_extension_flag等于1指定在SPS RBSP语法结构中存在sps_extension_data_flag语法结构。
sps_extension_data_flag可具有任意值。它的存在和值不影响解码器符合本说明书的此版本中指定的配置文件。符合本说明书的此版本的解码器应忽略所有sps_extension_data_flag语法元素。
如上所述,在JVET-P2001中,当sps_general_hrd_params_present_flag等于1时,SPS RBSP语法结构中存在语法结构general_hrd_parameters()。
表4示出了JVET-P2001中提供的general_hrd_parameters()语法结构。
Figure BDA0003674560980000511
表4
对于表4,JVET-P2001提供了以下语义:
general_hrd_parameters()语法结构提供HRD操作中使用的HRD参数。
比特流符合性要求在比特流中的任何VPS或SPS中存在的general_hrd_parameters()语法结构的内容应相同。
当包括在VPS中时,general_hrd_parameters()语法结构适用于由VPS指定的所有OLS。当被包括在SPS中时,general_hrd_parameters()语法结构适用于仅包括引用SPS的层中最低层的OLS,并且该最低层是独立层。
num_units_in_tick是以频率time_scale Hz工作的时钟的时间单位数,该频率对应于时钟节拍计数器的一个增量(被称为时钟节拍),num_units_in_tick应大于0。以秒为单位的时钟节拍等于num_units_in_tick除以time_scale的商。
例如,当视频信号的画面率为25Hz时,time_scale可等于27 000 000并且num_units_in_tick可等于1 080 000,并且因此时钟节拍可等于0.04秒。
time_scale是一秒钟内经过的时间单位数。例如,使用27MHz时钟测量时间的时间坐标系的time_scale为27 000 000。time_scale的值应大于0。
general_nal_hrd_params_present_flag等于1指定general_hrd_parameters()语法结构中存在NAL HRD参数(其与II型比特流符合性点有关)。general_nal_hrd_params_present_flag等于0指定general_hrd_parameters()语法结构中不存在NAL HRD参数。
注意—当general_nal_hrd_params_present_flag等于0时,在不提供NAL HRD参数和所有BP SEI消息的情况下,以及当general_vcl_hrd_params_present_flag也等于0时,在不提供所有PT和DU信息SEI消息的情况下,不可通过本说明书中未指定的一些方式验证比特流的符合性。
变量NalHrdBpPresentFlag如下导出:
-如果以下条件中的一者或多者为真,则NalHrdBpPresentFlag被设置为等于1:
-general_nal_hrd_params_present_flag存在于比特流中并且等于1。
-在BP SEI消息中存在于比特流中的NAL HRD操作的BP存在的需要由应用程序通过本说明书中未指定的一些方式来确定。
-否则,NalHrdBpPresentFlag的值被设置为等于0。
general_vcl_hrd_params_present_flag等于1指定在general_hrd_parameters()语法结构中存在VCL HRD参数(与I型比特流符合性点有关)。
general_vcl_hrd_params_present_flag等于0指定general_hrdjparameters()语法结构中不存在VCL HRD参数。
注意—当general_vcl_hrd_params_present_flag等于0时,在不提供VCL HRD参数和所有BP SEI消息的情况下,以及当general_nal_hrd_params_present_flag也等于0时,在不提供所有PT和DU信息SEI消息的情况下,不可通过本说明书中未指定的一些方式验证比特流的符合性。
变量VclHrdBpPresentFlag如下导出:
-如果以下条件中的一者或多者为真,则VclHrdBpPresentFlag被设置为等于1:
-general_vcl_hrd_params_present_flag存在于比特流中并且等于1。
-在BP SEI消息中存在于比特流中的VAL HRD操作的BP存在的需要由应用程序通过本说明书中未指定的一些方式来确定。
-否则,VclHrdBpPresentFlag的值被设置为等于0。
变量CpbDpbDelaysPresentFlag如下导出:
-如果以下条件中的一者或多者为真,则CpbDpbDelaysPresentFlag被设置为等于1:
-general_nal_hrd_params_present_flag存在于比特流中并且等于1。
-general_vcl_hrd_params_present_flag存在于比特流中并且等于1。
-在PT SEI消息中存在于比特流中的CPB和DPB输出延迟存在的需要由应用程序通过本说明书中未指定的一些方式来确定。
-否则,CpbDpbDelaysPresentFlag的值被设置为等于0。
比特流符合性要求每个general_hrd_parameters()语法结构中的general_nal_hrd_params_present_flag和general_vcl_hrd_params_present_flag的值不应两者均等于0。
general_decoding_unit_hrd_params_present_flag等于1指定存在DU级HRD参数,并且HRD能够在AU级或DU级操作。general_decoding_unit_hrd_params_present_flag等于0指定不存在DU级HRD参数,并且HRD在AU级操作。当general_decoding_unit_hrd_params_present_flag不存在时,推断其值等于0。
tick_divisor_minus2用于指定时钟子节拍。当general_decoding_unit_hrd_params_present_flag等于1时,时钟子刻度是可以在编码数据中表示的最小时间间隔。
bit_rate_scale(与bit_rate_value_minus1[i][j]一起)指定当Htid等于i时第j个CPB的最大输入比特率。
cpb_size_scale(与cpb_size_value_minus1[i][j]一起)指定当Htid等于i并且当CPB在AU级操作时第j个CPB的CPB大小。
cpb_size_du_scale(与cpb_size_du_value_minus1[1][j]一起)指定当Htid等于i并且当CPB在DU级操作时第j个CPB的CPB大小。
hrd_cpb_cnt_minus1加1指定另选CPB传送时间表的数量。hrd_cpb_cnt_minus1的值应在0至31的范围内(包括端值)。
如上所述,在JVET-P2001中,当sps_sublayer_cpb_params_present_flag等于1时,语法结构old_hrd_parameters()存在于SPS RBSP语法结构中。表5示出了JVET-P2001中提供的ols_hrd_parameters()语法结构。
Figure BDA0003674560980000541
表5
对于表5,JVET-P2001提供了以下语义:
当ols_hrd_parameters()语法结构被包括在VPS中时,ols_hrd_parameters()语法结构适用的OLS由VPS指定。当ols_hrd_parameters()语法结构被包括在SPS中时,ols_hrd_parameters()语法结构适用于仅包括引用SPS的层中最低层的OLS,并且该最低层是独立层。
fixed_pic_rate_general_flag[i]等于1指示当Htid等于i时,按输出顺序排列的连续画面的HRD输出时间之间的时间距离受到如下所述的约束。fixed_pic_rate_general_flag[i]等于0指示该约束可能不适用。
当fixed_pic_rate_general_flag[i]不存在时,推断其等于0。
fixed_pic_rate_within_cvs_flag[i]等于1指示当Htid等于i时,按输出顺序排列的连续画面的HRD输出时间之间的时间距离受到如下所述的约束。flxed_pic_rate_within_cvs_flag[i]等于0指示该约束可能不适用。
当fixed_pic_rate_general_flag[i]等于1时,推断fixed_pic_rate_within_cvs_flag[i]的值等于1。
elemental_duration_in_tc_minus1[i]加1(当存在时)指定当Htid等于i时,指定如下所指定按输出顺序的连续画面的HRD输出时间的元素单元之间的时间距离,单位为时钟节拍。elemental_duration_in_tc_minus1[i]的值应在0至2047的范围内(包括端值)。
对于包含画面n的CVS,当Htid等于i并且fixed_pic_rate_general_flag[i]等于1,并且画面n是输出的画面而不是输出的比特流中的最后一个画面(按输出顺序)时,变量DpbOutputElementalInterval[n]的值如下指定:
DpbOutputElementalInterval[n]=DpbOutputInterval[n]÷ElementalOutputPeriods
其中DpbOutputInterval[n]在下文指定,ElementalOutputPeriods如下指定:
-如果存在包含display_elemental_periods_minus1语法元素的画面n的帧字段信息SEI消息,则ElementalOutputPeriods等于display_elemental_periods_minus1+1的值。
-否则,ElementalOutputPeriods等于1。
当对于包含画面n的CVS,Htid等于i并且fixed_pic_rate_general_flag[i]等于1,并且画面n是输出的画面而不是输出的比特流中的最后一个画面(按输出顺序)时,针对DpbOutputElementalInterval[n]计算的值应等于ClockTick*(elemental_duration_in_tc_minus1[i]+1),其中当对于如下所提供的那样指定的输出顺序中的下一个画面nextPicInOutputOrder,以下条件中的一者为真时,ClockTick被指定为ClockTick=num_units_in_tick+time_scaie(使用包含画面n的CVS的ClockTick的值):
-画面nextPicInOutputOrder与画面n在同一CVS中。
-画面nextPicInOutputOrder在不同CVS中,并且在包含画面nextPicInOutputOrder的CVS中fixed_pic_rate_general_flag[i]等于1,ClockTick的值对于两个CVS是相同的,并且elemental_duration_in_tc_minus1[i]的值对于两个CVS是相同的。
当画面n是输出的画面并且不是输出的比特流的最后一个画面时,变量DpbOutputInterval[n]的值如下导出:
DpbOutputInterval[n]=DpbOutputTime[nextPicInOutputOrder]-DpbOutputTime[n]
其中nextPicInOutputOrder是按输出顺序排列在画面n之后的画面,并且具有等于1的PictureOutputFlag。
当对于包含画面n的CVS,Htid等于i并且fixed_pic_rate_within_cvs_flag[i]等于1,并且画面n是输出的画面而不是输出的比特流中的最后一个画面(按输出顺序)时,针对DpbOutputElementalInterval[n]计算的值应等于ClockTick*(elemental_duration_in_tc_minus1[i]+1),其中当被指定用于如上指定的输出顺序中的下一个画面nextPicInOutputOrder与画面n在同一CVS中时,ClockTick如上所述(使用包含画面n的CVS的ClockTick的值)。
如所指定的,当HTid等于i时,low_delay_hrd_flag[i]指定HRD操作模式。当不存在时,推断low_delay_hrd_flag[i]的值等于0。
注意—当low_delay_hrd_flag[i]等于1时,允许由于AU使用的位数而违反标称CPB移除时间的“大画面”。预期但并非必需的是,此类“大画面”仅偶尔出现。
如上所述,在JVET-P2001中,当sublayer_hrd_parameters()可以存在于ols_hrd_parameters()语法结构中时。表6示出了JVET-P2001中提供的sub_layer_hrd_parameters()语法结构。
Figure BDA0003674560980000571
表6
对于表6,JVET-P2001提供了以下语义:
bit_rate_value_minus1[i][j](与bit_rate_scale一起)指定当CPB在AU级操作时第j个CPB的最大输入比特率,其中Htid等于i。bit_rate_value_minus1[i][j]应在0至232-2的范围内(包括端值)。对于大于0的任何j,以及i的任何特定值,bit_rate_value_minus1[i][j]应大于bit_rate_value_minus1[i][j-1]。
当DecodingUnitHrdFlag等于0时,以下适用:
-以比特每秒为单位的比特率如下给出:
BitRate[i][j]=(bit_rate_value_minus1[i][j]+1)*2(6+bit_rate_scale)
-当bit_rate_value_minus1[i][j]语法元素不存在时,推断如下:
-如果general_hrd_params_present_flag等于1,则推断bit_rate_value_minus1[i][j]等于bit_rate_value_minus1[sps_max_sublayers_minus1][j]。
-否则(general_hrd_params_present_flag等于0),推断BitRate[i][j]的值对于VCL HRD参数等于CpbBrVclFactor*MaxBR,并且对于NAL HRD参数等于CpbBrNalFactor*MaxBR,其中MaxBR、CpbBrVclFactor和CpbBrNalFactor如表7A至表7C所提供的那样指定。
Figure BDA0003674560980000581
表7A
Figure BDA0003674560980000591
表7B
简表 CpbVclFactor CpbNalFactor FormatCapabilityFactor MinCrScaleFactor
主要10 1000 1100 1.875 1.0
主要4:4:4 10 2 500 2 750 3.750 0.5
表7C
cpb_size_value_minus1[i][j]与cpb_size_scale一起使用以指定当CPB在AU级操作时第j个CPB大小,其中Htid等于i。cpb_size_value_minus1[i][j]应在0至232-2的范围内(包括端值)。对于大于0的任何j,以及i的任何特定值,cpb_size_value_minus1[i][j]应小于或等于cpb_size_value_minus1[i][j-1]。
当DecodingUnitHrdFlag等于0时,以下适用:
-以位为单位的CPB大小,如下给出:
CpbSize[i][j]=(cpb_size_value_minus1[1][j]+1)*2(4+epb_size_scale)
-当cpb_size_value_minus1[i][j]语法元素不存在时,推断如下:
-如果general_hrd_params_present_flag等于1,则推断cpb_size_value_minus1[i][j]等于cpb_size_value_minus1[sps_max_sublayers_minus1][j]。
-否则(general_hrd_params_present_flag等于0),推断CpbSize[i][j]的值对于VCL HRD参数等于CpbBrVclFactor*MaxCPB,并且对于NAL HRD参数等于CpbBrNalFactor*MaxCPB,其中MaxCPB、CpbBrVclFactor和CpbBrNalFactor如上文指定。
cpb_size_du_value_minus1[i][j]与cpb_size_du_scale一起使用以指定当CPB在DU级操作时第i个CPB大小,其中Htid等于i。cpb_size_du_value_minus1[i][j]应在0至232-2的范围内(包括端值)。对于大于0的任何j,以及i的任何特定值,cpb_size_du_value_minus1[i][j]应小于或等于cpb_size_du_value_minus1[i][j-1]。
当DecodingUnitHrdFlag等于1时,以下适用:
-以位为单位的CPB大小,如下给出:
CpbSize[i][j]=(cpb_size_du_value_minus1[i][j]+1)*2(4+cpb-size-du-scale)
-当cpb_size_du_value_minus1[i][j]语法元素不存在时,推断如下:
-如果general_hrd_params_present_flag等于1,则推断cpb_size_du_value_minus1[i][j]等于cpb_size_du_value_minus1[sps_max_sublayers_minus1][j]。
-否则(general_hrd_params_present_flag等于0),推断CpbSize[i][j]的值对于VCL HRD参数等于CpbVclFactor*MaxCPB,并且对于NAL HRD参数等于CpbNalFactor*MaxCPB,其中MaxCPB、CpbVclFactor和CpbNalFactor如上文指定。
bit_rate_du_value_minus1[i][j](与bit_rate_scale一起)指定当CPB在DU级操作时第j个CPB的最大输入比特率,其中Htid等于i。bit_rate_du_value_minus1[i][j]应在0至232-2的范围内(包括端值)。对于大于0的任何j,以及i的任何特定值,bit_rate_du_valuejninusl[i][j]应大于bit_rate_du_value_minus1[i][j-1]。
当DecodingUnitHrdFlag等于1时,以下适用:
-以比特每秒为单位的比特率如下给出:
BitRate[i][j]=(bit_rate_du_value_minus1[i][j]+1)*2(6+bit-rate-scale)
-当bit_rate_du_value_minus1[i][j]语法元素不存在时,推断如下:
-如果general_hrd_params_present_flag等于1,则推断bit_rate_du_value_minus1[i][j]等于bit_rate_du_value_minus1[sps_max_sublayers_minus1][j]。
-否则(general_hrd_params_present_flag等于0),推断BitRate[i][j]的值对于VCL HRD参数等于BrVclFactor*MaxCPB,并且对于NAL HRD参数等于BrNalFactor*MaxCPB,其中MaxCPB、BrVclFactor和BrNalFactor如上文指定。
cbr_flag[i][j]等于0指定为了由HRD使用第j个CPB规范解码该比特流,假想流调度器(HSS)以间歇比特率模式操作。cbr_flag[i][j]等于1指定HSS以恒定比特率(CBR)模式操作。
当不存在时,如下推断cbr_flag[i][j]的值:
-当cbr_flag[i][j]语法元素不存在时,推断如下:
-如果general_hrd_params_present_flag等于1,则推断cbr_flag[i][j]等于cbr_flag[sps_max_sublayers_minus1][j]。
-否则(general_hrd_params_present_flag等于0),推断cbr_flag[i][j]的值等于0。
如上所述,JVET-P2001使得SEI消息能够被发送信号通知,这有助于与解码、显示或其他目的相关的过程。此外,用于VCL HRD操作的SEI消息的类型包括缓冲周期SEI消息。表8示出了JVET-P2001中提供的buffering_period()语法结构。
Figure BDA0003674560980000621
Figure BDA0003674560980000631
表8
对于表8,JVET-P2001提供了以下语义:
BP SEI消息提供初始CPB移除延迟和初始CPB移除延迟偏移信息,以用于按解码顺序在相关联AU的位置处初始化HRD。当BP SEI消息存在时,当画面具有等于0的TemporalId时,该画面被称为notDiscardablePic画面并且不是RASL或RADL画面。
在当前图片不是比特流中解码顺序中的第一图片时,使prevNonDiscardablePic是解码顺序中TemporalId等于0并且不是RASL或RADL的前一画面。
BP SEI消息的存在如下指定:
-如果NalHrdBpPresentFlag等于1或者VclHrdBpPresentFlag等于1,则对于CVS中的每个AU,以下适用:
-如果AU是IRAP或GDR AU,则适用于操作点的BP SEI消息应与AU相关联。
-否则,如果AU包含notDiscardablePic,则适用于操作点的BP SEI消息可以或可不与AU相关联。
-否则,AU应不与适用于操作点的BP SEI消息相关联。
-否则(NalHrdBpPresentFlag和VclHrdBpPresentFlag均等于0),CVS中应没有AU与BP SEI消息关联。
注意—对于一些应用程序,可能期望频繁存在BP SEI消息(例如,用于在IRAP画面或非IRAP画面处随机访问或用于比特流剪接)。
bp_nal_hrd_params_present_flag等于1指定BP SEI消息中存在语法元素对nal_initial_cpb_removal_delay[i][j]和nal_initial_cpb_removal_offset[i][j]的列表。bp_nal_hrd_parameters_present_flag等于0指定BP SEI消息中不存在语法元素对nal_initial_cpb_removal_delay[i][j]和nal_initial_cpb_removal_offset[i][j]。
bp_nal_hrd_params_present_flag的值应等于general_nal_hrd_params_present_flag。
bp_vcl_hrd_params_present_flag等于1指定BP SEI消息中存在语法元素对vcl_initial_cpb_removal_delay[i][j]和vcl_initial_cpb_removal_offset[i][j]的列表。bp_vcl_hrd_params_present_flag等于0指定BP SEI消息中不存在语法元素对vcl_initial_cpb_removal_delay[i][j]和vcl_initial_cpb_removal_offset[i][j]。
bp_vcl_hrd_params_present_flag的值应等于general_vcl_hrd_params_present_flag。
BP SEI消息中的bp_vcl_hrd_params_present_flag和bp_nal_hrd_params_present_flag不应两者均等于0。
initial_cpb_removal_delay_length_minus1加1指定当前缓冲周期中BP SEI消息的语法元素nal_initial_cpb_removal_delay[i][j]、nal_initial_cpb_removal_offset[i][j]、vcl_initial_cpb_removal_delay[i][j]和vcl_initial_cpb_removal_offset[i][j]的长度,单位为位。当不存在时,推断initial_cpb_removal_delay_length_minus1的值等于23。
cpb_removal_delay_length_minus1加1指定当前缓冲周期中BP SEI消息中的语法元素cpb_removal_delay_delta_minus1和cpb_removal_delay_delta[i]以及PT SEI消息中的语法元素cpb_removal_delay_minus1[i]的长度,单位为位。当不存在时,推断cpb_removal_delay_length_minus1的值等于23。
dpb_output_delay_length_minus1加1指定当前缓冲周期中PT SEI消息中的语法元素dpb_output_delay的长度,单位为位。当不存在时,推断dpb_output_delay_length_minus1的值等于23。
alt_cpb_params_present_flag等于1指定当前缓冲周期中BP SEI消息中的语法元素use_alt_cpb_params_flag的存在,以及PT SEI消息中的另选定时信息的存在。当不存在时,推断bp_alt_cpb_params_present_flag的值等于0。当相关联画面既不是CRA画面也不是IDR画面时,bp_alt_cpb_params_present_flag的值应等于0。
bp_decoding_unit_hrd_params_present_flag等于1指定存在DU级HRD参数,并且HRD能够在AU级或DU级操作。bp_decoding_unit_hrd_params_present_flag等于0指定不存在DU级HRD参数,并且HRD在AU级操作。当bp_decoding_unit_hrd_params_present_flag不存在时,推断其值等于0。bp_decoding_unit_hrd_params_present_flag的值应等于general_decoding_unit_hrd_params_present_flag。
du_cpb_removal_delay_increment_length_minus1加1指定当前缓冲周期中PTSEI消息中的du_cpb_removal_delay_increment_minus1[][]和du_common_cpb_removal_delay_increment_minus1[]语法元素以及当前缓冲周期中DU信息SEI消息中的du_spt_cpb_removal_delay_increment[]语法元素的长度,单位为位。当不存在时,推断du_cpb_removal_delay_increment_length_minus1的值等于23。
dpb_output_delay_du_length_minus1加1指定当前缓冲周期中PT SEI消息中的pic_dpb_output_du_delay语法元素以及当前缓冲周期中DU信息SEI消息中的pic_spt_dpb_output_du_delay语法元素的长度,单位为位。当不存在时,推断dpb_output_delay_du_length_minus1的值等于23。
decoding_unit_cpb_params_in_pic_timing_sei_flag等于1指定PT SEI消息中存在DU级CPB移除延迟参数,并且没有DU信息SEI消息(在CVS中或通过本说明书中未指定的外部方式提供)。decoding_unit_cpb_params_in_pic_timing_sei_flag等于0指定DU信息SEI消息中存在DU级CPB移除延迟参数,并且PT SEI消息不包括DU级CPB移除延迟参数。当decoding_unit_cpb_params_in_pic_timing_sei_flag语法元素不存在时,推断其等于0。
concatenation_flag指示:在当前画面不是比特流中按解码顺序排列的第一画面时,是相对于具有BP SEI消息的前一画面的标称CPB移除时间还是相对于画面prevNonDiscardablePic的标称CPB移除时间来确定当前画面的标称CPB移除时间。
additional_concatenation_info_present_flag等于1指定,在BP SEI消息中存在语法元素max_initial_removal_delay_for_concatination,并且在PT SEI消息中存在delay_for_concatenation_ensured_flag语法元素。additional_concatenation__info_present_flag等于0指定BP SEI消息中不存在语法元素max_initial_removal_delay_for_concatination,并且PT SEI消息中不存在语法元素delay_for_concatenation_ensured_flag。
max_initial_removal_delay_for_concatination可以与PT SEI消息中的delay_for_concatenation_ensured_flag一起使用,以标识是否应用了利用cpb_removal_delay_delta_minus1计算的一下BP的从第一AU的CPB的标称移除时间。max_initial_removal_delay_for_concatination的长度为initial_cpb_removal_delay_length_minus1+1位。
cpb_removal_delay_delta_minus1加1指定:在当前画面不是比特流中按解码顺序排列的第一画面时,相对于画面prevNonDiscardablePic的标称CPB移除时间的CPB移除延迟增量值。该语法元素的长度为cpb_removal_delay_length_minus1+1位。
在当前画面包含BP SEI消息并且concatenation_flag等于0并且当前画面不是比特流中按解码顺序排列的第一画面时,比特流符合性要求应用以下约束:
-如果画面prevNonDiscardablePic不与BP SEI消息相关联,则当前画面的cpb_removal_delay_minus1应等于prevNonDiscardablePic的cpb_removal_delay_minus1加cpb_removal_delay_delta_minus1+1。
-否则,cpb_removal_delay_minus1应等于cpb_removal_delay_delta_minus1。
注意—在当前画面包含BP SEI消息并且concatenation_flag等于1时,不使用当前画面的cpb_removal_delay_minus1。在一些情况下,以上指定的约束可使得可能通过简单地在用于剪接点处的IRAP或GDR画面的BP SEI消息中将concatenation_flag的值从0改变为1来剪接比特流(其使用适当设计的引用结构)。当concatenation_flag等于0时,以上指定的约束使得解码器能够检查约束是否得到满足,作为检测画面prevNonDiscardablePic的丢失的方式。
cpb_removal_delay_deltas_present_flag等于1指定BP SEI消息包含CPB移除延迟增量。cpb_removal_delay_deltas_present_flag等于0指定BP SEI消息中不存在CPB移除延迟增量。
num_cpb_removal_delay_deltas_minus1加1指定BP SEI消息中的语法元素cpb_removal_delay_delta[i]的数量。num_cpb_removal_offsets_minus1的值应在0至15的范围内(包括端值)。
cpb_removal_delay_delta[i]指定第i个CPB移除延迟增量。该语法元素的长度为cpb_removal_delay_length_minus1+1位。
bp_max_sublayers_minus1加1指定在BP SEI消息中指示CPB移除延迟和CPB移除偏移的时间子层的最大数量。bp_max_sublayers_minus1的值应在0至vps_max_sublayers_minus1的范围内(包括端值)。
bp_cpb_cnt_minus1加1指定当bp_nal_hrd_params_present_flag等于1时,第i个时间子层的语法元素对nal_initial_cpb_removal_delay[i][j]和nal_initial_cpb_removal_offset[i][j]的数量,并且指定当bp_vcl_hrd_params_present_flag等于1时,第i个时间子层的语法元素对vcl_initial_cpb_removal_delay[i][j]和vcl_initial_cpb_removal_offset[i][j]的数量。bp_cpb_cnt_minus1的值应在0至31的范围内(包括端值)。
bp_cpb_cnt_minus1的值应等于hrd_cpb_cnt_minus1的值。
sublayer_initial_cpb_removal_delay_present_flag等于1指定对于在0至bp_max_sublayers_minus1的范围内(包括端值)的时间子层表示,存在初始CPB移除延迟相关语法元素。sublayer_initial_cpb_removal_delay_present_flag等于0指定第bp_max_sublayers_minus1个时间子层表示,存在初始CPB移除延迟相关语法元素。
nal_initial_cpb_removal_delay[i][j]和nal_initial_alt_cpb_removal_delay[i][j]指定对于NAL HRD的第j个默认和另选初始CPB移除延迟,以第i个时间子层的90kHz时钟为单位。nal_initial_cpb_removal_delay[i][j]和nal_initial_alt_cpb_removal_delay[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。nal_initial_cpb_removal_delay[i][j]和nal_initial_alt_cpb_removal_delay[i][j]的值应不等于0并且应小于或等于90000*(CpbSize[i][j]÷BitRate[i][j]),其为90kHz时钟单位下的CPB大小的时间等效物。当不存在时,推断nal_initial_cpb_removal_delay[i][j]和nal_initial_alt_cpb_removal_delay[i][j]的值等于90000*(CpbSize[i][j]÷BitRate[i][j])。
nal_imtial_cpb_removal_offset[i][j]和nal_initial_alt_cpb_removal_offset[i][j]指定对于NAL HRD,第i个时间子层的第j个默认和另选初始CPB移除偏移,以90kHz时钟为单位。nal_initial_cpb_removal_offset[i][j]和nal_initial_alt_cpb_removal_offset[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。当不存在时,推断nal_initial_cpb_removal_offset[i][j]和nal_initial_alt_cpb_removal_offset[i][j]的值等于0。
在整个CVS中,对于i和j的每个值对,nal_initial_cpb_removal_delay[i][j]和nal_initial_cpb_removal_offset[i][j]的总和应恒定,并且nal_initial_alt_cpb_removal_delay[i][j]和nal_initial_alt_cpb_removal_offset[i][j]的总和应恒定。
vcl_imtial_cpb_removal_delay[i][j]和vcl_initial_alt_cpb_removal_delay[i][j]指定对于VAL HRD,第i个时间子层的第j个默认和另选初始CPB移除延迟,以90kHz时钟为单位。vcl_initial_cpb_removal_delay[i][j]和vcl_initial_alt_cpb_removal_delay[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。vcl_initial_cpb_removal_delay[i][j]和vcl_initial_alt_cpb_removal_delay[i][j]的值应不等于0并且应小于或等于90000*(CpbSize[i][j]÷BitRate[i][j]),其为90kHz时钟单位下的CPB大小的时间等效物。当不存在时,推断vcl_initial_cpb_removal_delay[i][j]和vcl_initial_alt_cpb_removal_delay[i][j]的值等于90000*(CpbSize[i][j]÷BitRate[i][j])。
vcl_initial_cpb_removal_ofiset[i][j]和vcl_initial_alt_cpb_removal_offset[i][j]指定对于VCL HRD,第i个时间子层的第j个默认和另选初始CPB移除偏移,以90kHz时钟为单位。vcl_initial_cpb_removal_offset[i][j]和vcl_initial_alt_cpb_removal_offset[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。
当不存在时,推断vcl_initial_cpb_removal_offset[i][j]和vcl_initial_alt_cpb_removal_offset[i][j]的值等于0。
在整个CVS中,对于i和j的每个值对,vcl_initial_cpb_removal_delay[i][j]和vcl_initial_cpb_removal_offset[i][j]的总和应恒定,并且vcl_initial_alt_cpb_removal_delay[i][j]和vcl_initial_alt_cpb_removal_offset[i][j]的总和应恒定。
use_alt_cpb_params_flag可用于导出UseAltCpbParamsFlag的值。当use_alt_cpb_params_flag不存在时,推断其等于0。
当以下条件中的一者或多者适用时,UseAltCpbParamsFlag被设置为等于1:
-use_alt_cpb_params_flag等于1。
-当本说明书中未指定的一些外部方式可用于设置UseAltCpbParamsFlag,并且UseAltCpbParamsFlag的值通过外部方式被设置为1时。
如上所述,JVET-P2001使得SEI消息能够被发送信号通知,这有助于与解码、显示或其他目的相关的过程。此外,用于VCL HRD操作的SEI消息的类型包括画面定时SEI消息。表9示出了JVET-P2001中提供的pic_timing()语法结构。
Figure BDA0003674560980000701
Figure BDA0003674560980000711
表9
对于表9,JVET-P2001提供了以下语义:
PT SEI消息为与SEI消息相关联的AU提供了CPB移除延迟和DPB输出延迟信息。
如果适用于当前AU的BP SEI消息的bp_nal_hrd_params_present_flag或bp_vcl_hrd_params_present_flag等于1,则变量CpbDpbDelaysPresentFlag被设置为1。否则,CpbDpbDelaysPresentFlag被设置为等于0。
PT SEI消息的存在如下指定:
-如果CpbDpbDelaysPresentFlag等于1,则PT SEI消息应与当前AU相关联。
-否则(CpbDpbDelaysPresentFlag等于0),应不存在与当前AU相关联的PT SEI消息。
PT SEI消息语法中的TemporalId是包含PT SEI消息的SEI NAL单元的TemporalId。
cpb_removal_delay_minus1[i]加1用于计算当Htid等于i时,与PT SEI消息相关联的AU的标称CPB移除时间与包含BP SEI消息的按解码顺序的前一AU之间的时钟节拍的数量。该值还用于计算AU数据到达HSS的CPB中的最早可能时间。cpb_removal_delay_minus1[i]的长度为cpb_removal_delay_length_minus1+1位。
cpb_alt_timing_info_present_flag等于1指定语法元素cpb_alt_initial_cpb_removal_delay_delta[i]、cpb_delay_offset和dpb_delay_offset的存在。当相关联画面是RASL画面时,cpb_alt_timing_info_present_flag的值应等于0。
注意—对于按解码顺序在IRAP画面之后的多于一个AU,cpb_alt_timing_info_present_flag的值可能等于1。然而,另选定时仅应用于具有等于1的cpb_alt_timing_info_present_flag并且按解码顺序在IRAP画面之后的第一个AU。
cpb_alt_initial_cpb_removal_delay_delta[i]指定对于第i个CPB的另选初始CPB移除延迟增量。cpb_alt_initial_cpb_removal_delay_delta[i]的长度为initial_cpb_removal_delay_length_minus1+1位。
cpb_alt_imtial_cpb_removal_offset_delta[i]指定第i个CPB的另选初始CPB移除偏移增量。cpb_alt_initial_cpb_removal_offset_delta[i]的长度为initial_cpb_removal_delay_length_minus1+1位。
cpb_delay_offset指定当与PT SEI消息相关联的AU按解码顺序直接跟在与BPSEI消息相关联的AU之后时,在导出与PT SEI消息相关联的AU和按解码顺序跟在其之后的AU的标称CPB移除时间时要使用的偏移。cpb_delay_offset的长度为au_cpb_removal_delay_length_minus1+1位。当不存在时,推断cpb_delay_offset的值等于0。
dpb_delay_offset指定当与PT SEI消息相关联的AU按解码顺序直接跟在与BPSEI消息相关联的AU之后时,在导出与BP SEI消息相关联的IRAP AU的DPB输出时间时要使用的偏移。dpb_delay_offset的长度为dpb_output_delay_length_minus1+1位。当不存在时,推断dpb_delay_offset的值等于0。
当前画面的变量pResetFlag如下导出:
-如果当前画面与BP SEI消息相关联,则BpResetFlag被设置为等于1。
-否则,BpResetFlag被设置为等于0。
pt_sublayer_delays_present_flag[i]等于1指定对于具有TemporalId等于i的子层,存在cpb_removal_delay_delta_idx[i]或cpb_removal_delay_minus1[i],以及du_common_cpb_removal_delay_increment_minus1[i]或du_cpb_removal_delay_incremcnt_minus1[][]。sublayer_delays_present_flag[i]等于0指定对于具有TemporalId等于i的子层,既不存在cpb_removal_delay_delta_idx[i]也不存在cpb_removal_delay_minus1[i],以及既不存在du_common_cpb_removal_delay_increment_minus1[i]也不存在du_cpb_removal_delay_incremcnt_minus1[][]。推断pt_sublayer_delays_present_flag[bp_max_sublayers_minus1]的值等于1。当不存在时,对于在0至bp_max_sublayers_minus1-1的范围内(包括端值)的任何i,推断pt_sublayer_delays_present_flag[i]的值等于0。
cpb_removal_delay_delta_enabled_flag[i]等于1指定cpb_removal_delay_delta_idx[i]存在于PT SEI消息中。
cpb_removal_delay_delta_enabled_flag[i]等于0指定cpb_removal_delay_delta_idx[i]不存在于PT SEI消息中。当不存在时,推断cpb_removal_delay_delta_enabled_flag[i]的值等于0。
cpb_removal_delay_delta_idx[i]指定适用于Htid的CPB移除增量的索引,该索引等于cpb_removal_delay_delta[j]列表中的i,其中j的范围从0至num_cpb_removal_delay_deltas_minus1(包括端值)。cpb_removal_delay_delta_idx[i]的长度为Ceil(Log2(num_cpb_removal_delay_deltas_minus1+1))位。
当前画面的变量CpbRemovalDelayMsb[i]和CpbRemovalDelayVal[i]如下导出:
-如果当前AU是初始化HRD的AU,则CpbRemovalDelayMsb[i]和CpbRemovalDelayVal[i]均被设置为等于0,并且cpbRemovalDelayValTmp[i]的值被设置为等于cpb_removal_delay_minus1[i]+1。
-否则,对于画面prevNonDiscardablePic,让画面prevNonDiscardablePic是解码顺序中TemporalId等于0并且不是RASL或RADL的前一画面,让prevCpbRemovalDelayMinus1[i]、prevCpbRemovalDelayMsb[i]和prevBpResetFlag设置为分别等于CpbRemovalDelayValTmp[i]-1、CpbRemovalDelayMsb[i]和BpResetFlag的值,并且以下适用:
-CpbRemovalDelayMsb[i]如下导出:
Figure BDA0003674560980000741
-CpbRemovalDelayVal如下导出:
CpbRemovalDelayVal[i]=CpbRemovalDelayMsb[i]+cpbRemovalDelayValTmp[i]
CpbRemovalDelayVal[i]的值应在1至232的范围内(包括端值)。
变量picDpbOutputDelta[i]如下导出:
-如果pt_sublayer_delays_present_flag[i]等于0,则picDpbOutputDelta[i]被设置为等于0。
-否则(pt_sublayer_delays_present_flag[i]等于1),picDpbOutputDelta[i]被设置为等于CpbRemovalDelayVal[i]-(cpb_removal_delay_minus1[sps_max_sublayers_minus1]+1)。
dpb_output_delay用于计算画面的DPB输出时间。它指定在从CPB移除AU之后、在从DPB输出解码画面之前要等待多少时钟节拍。
注意—当画面仍被标记为“用于短期参考”或“用于长期参考”时,在其输出时间不从DPB中移除该画面。
dpb_delay_delay的长度为dpb_output_delay_length_minus1+1位。当max_dec_pic_buffering_minus1[Htid]等于0时,pic_dpb_output_delay的值应等于0。
从符合输出定时的解码器输出的任何画面的dpb_output_delay导出的输出时间应在从按解码顺序排列的任何后续CVS中的所有画面的dpb_output_delay导出的输出时间之前。
按该语法元素的值建立的画面输出顺序应与按PicOrderCntVal的值建立的顺序相同。
对于因为按解码顺序排列在具有等于1或被推断为等于1的no_output_of_prior_pics_flag的CLVSS画面之前而不由“扰动”过程输出的画面,从dpb_output_delay导出的输出时间应随着PicOrderCntVal的值相对于同一CVS内的所有画面的增加而增加。
pic_dpb_output_du_delay用于计算当DecodingUnitHrdFlag等于1时画面的DPB输出时间。它指定在从CPB移除AU中的最后一个DU之后、在从DPB输出解码画面之前要等待多少子时钟节拍。
语法元素pic_dpb_output_du_delay的长度由dpb_output_delay_du_length_minus1+1以位为单位给出。
从符合输出定时的解码器输出的任何画面的pic_dpb_output_du_delay导出的输出时间应在从按解码顺序的任何后续CVS中的所有画面的pic_dpb_output_du_delay导出的输出时间之前。
按该语法元素的值建立的画面输出顺序应与按PicOrderCntVal的值建立的顺序相同。
对于因为按解码顺序排列在具有等于1或被推断为等于1的no_output_of_prior_pics_flag的CLVSS画面之前而不由“扰动”过程输出的画面,从pic_dpb_output_du_delay导出的输出时间应随着PicOrderCntVal的值相对于同一CVS内的所有画面的增加而增加。
对于CVS中的任意两个画面,当DecodingUnitHrdFlag等于1时两个画面的输出时间之间的差值应与当DecodingUnitHrdFlag等于0时的相同差值相同。
num_decoding_units_minus1加1指定与PT SEI消息相关联的AU中的DU的数量。num_decoding_units_minus1的值应在0至PicSizelnCtbsY-1的范围内(包括端值)。
du_common_cpb_removal_delay_flag等于1表示存在语法元素du_common_cpb_removal_delay_increment_minus1[i]。du_common_cpb_removal_delay_flag等于0表示不存在语法元素du_common_cpb_removal_delay_increment_minus1[i]。
du_common_cpb_removal_delay_increment_minus1[i]加1指定当Htid等于i时,在与PT SEI消息相关联的AU中按解码顺序排列的任意两个连续DU的标称CPB移除时间之间的持续时间(以时钟子节拍为单位)。如所指定的,该值还用于计算DU数据到HSS的CPB中的最早可能到达时间。该语法元素的长度为du_cpb_removal_delay_increment_length_minus1+1位。
对于小于bp_max_sublayers_minus1的任意i值,当du_common_cpb_removal_delay_increment_minus1[i]不存在时,推断其值等于du_common_cpb_removal_delay_increment_minus1[bp_max_sublayers_minus1]。
num_nalus_in_du_minus1[i]加1指定与PT SEI消息相关联的AU的第i个DU中的NAL单元的数量。num_nalus_in_du_minus1[i]的值应在0至PicSizelnCtbsY-1的范围内(包括端值)。
AU的第一个DU由AU中按解码顺序排列的前num_nalus_in_du_minus1[0]+1个连续NAL单元组成。AU的第i个(其中i大于0)DU由num_nalus_in_du_minus1[i]+1个连续NAL单元组成,这些连续NAL单元按照解码顺序紧跟在AU的前一DU中的最后一个NAL单元之后。每个DU中应该存在至少一个VCL NAL单元。与VCL NAL单元相关联的所有非VCL NAL单元都应被包括在与VCL NAL单元相同的DU中。
du_cpb_removal_delay_increment_minus1[i][j]加1指定当Htid等于j时,在与PT SEI消息相关联的AU中按解码顺序排列的第(i+1)个DU与第i个DU的标称CPB移除时间之间的持续时间(以时钟子节拍为单位)。如所指定的,该值还用于计算DU数据到HSS的CPB中的最早可能到达时间。该语法元素的长度为du_cpb_removal_delay_increment_length_minus1+1位。
对于小于bp_max_sublayers_minus1的任意j值,当du_cpb_removal_delay_increment_minus1[i][j]不存在时,推断其值等于du_cpb_removal_delay_increment_minus1[i][bp_max_sublayers_minus1]。
delay_for_concatenation_ensured_flag等于1指定最终到达时间和与PT SEI消息相关联的AU的CPB移除时间之间的差值使得当跟随有具有等于1的concatenation_flag的BP SEI消息并且InitCpbRemovalDelay[][]小于或等于max_initial_removal_delay_for_concatination的值的AU时,利用cpb_removal_delay_delta_minus1计算的后续AU从CPB中的标称移除时间适用。delay_for_concatenation_ensured__flag等于0指定最终到达时间和与PT SEI消息相关联的AU的CPB移除时间之间的差值可能或可能不超过max_val_mitial_removal_delay_for_splicing的值。
如上所述,JVET-P2001使得SEI消息能够被发送信号通知,这有助于与解码、显示或其他目的相关的过程。此外,用于VCL HRD操作的SEI消息的类型包括解码单元信息SEI消息。表10示出了JVET-P2001中提供的decoding_unit_info()语法结构。
Figure BDA0003674560980000771
表10
对于表10,JVET-P2001提供了以下语义:
DU信息SEI消息为与SEI消息相关联的DU提供了CPB移除延迟信息。
以下适用于DU信息SEI消息语法和语义:
-在BP SEI消息中找到语法元素bp_decoding_unit_hrd_params_present_fla、decoding_unit_cpb_params_in_pic_timing_sei_flag和dpb_output_delay_du_length_minus1,该BP SEI消息适用于DU信息SEI消息所适用的操作点中的至少一者。
-比特流(或其一部分)是指与DU信息SEI消息所适用的操作点中的任一者相关联的比特流子集(或其部分)。
操作点的DU信息SEI消息的存在如下指定:
-如果CpbDpbDelaysPresentFlag等于1、bp_decoding_unit_hrd_params_present_flag等于1并且decoding_unit_cpb_params_in_pic_timing_sei_flag等于0,则适用于操作点的一个或多个DU信息SEI消息应与CVS中的每个DU相关联。
-否则,如果CpbDpbDelaysPresentFlag等于1、bp_decoding_unit_hrd_params_present_flag等于1并且decoding_unit_cpb_params_in_pic_timing_sei_flag等于1,则适用于操作点的一个或多个DU信息SEI消息可以或可以不与CVS中的每个DU相关联。
-否则(CpbDpbDelaysPresentFlag等于0或bp_decoding_unit_hrd_paranis_present_flag等于0),在CVS中,不应有与适用于操作点的DU信息SEI消息相关联的DU。
与DU信息SEI消息相关联的该组NAL单元按解码顺序由包含DU信息SEI消息的SEINAL单元和AU中的所有后续NAL单元组成,直到但不包括任何包含具有不同decoding_unit_idx值的DU信息SEI消息的后续SEI NAL单元。每个DU应包括至少一个VCL NAL单元。与VCLNAL单元相关联的所有非VCL NAL单元都应被包括在包含VCL NAL单元的DU中。
DU信息SEI消息语法中的TemporalId是包含DU信息SEI消息的SEI NAL单元的TemporalId。
decoding_unit_idx指定从0开始到与DU信息SEI消息相关联的DU的当前AU中的DU列表的索引。decoding_unit_idx的值应在0至PicSizelnCtbsY-1的范围内(包括端值)。
由duIdx的特定值标识的DU包括且仅包括与具有decoding_unit_idx等于duIdx的所有DU信息SEI消息相关联的所有NAL单元。此类DU也被称为与具有decoding_unit_idx等于duIdx的DU信息SEI消息相关联。
对于一个AU中具有decoding_unit_idx分别等于duIdxA和duIdxB的任意两个DUduA和duB,其中duIdxA小于duIdxB,duA应按解码顺序排列在duB之前。
按解码顺序,一个DU的NAL单元不应存在于另一DU的任意两个NAL单元之间。
dui_sublayer_delays_present_flag[i]等于1指定对于具有TemporalId等于i的子层,存在du_spt_cpb_removal_delay_increment[i]。dui_sublayer_delays_present_flag[i]等于0指定对于具有TemporalId等于i的子层,不存在du_spt_cpb_removal_delay_increment[i]。当不存在时,推断dui_sublayer_delays_present_flag[i]的值等于0。
du_spt_cpb_removal_delay_increment[i]指定当Htid等于i时,当前AU中按解码顺序排列的最后一个DU的标称CPB时间和与DU信息SEI消息相关联的DU之间的持续时间(以时钟子节拍为单位)。如附录C所指定的,该值还用于计算DU数据到HSS的CPB中的最早可能到达时间。该语法元素的长度为du_cpb_removal_delay_increment_length_minus1+1。当与DU信息SEI消息关联的DU是当前AU中的最后一个DU时,du_spt_cpb_removal_delay_increment[i]的值应等于0。对于小于bp_max_sublayers_minus1的任意i值,当du_spt_cpb_removal_delay_increment[i]不存在时,推断其值等于du_spt_cpb_removal_delay_increment[bp_max_sublayers_minus1]。
dpb_output_du_delay_present_flag等于1指定DU信息SEI消息中存在pic_spt_dpb_output_du_delay语法元素。dpb_output_du_delay_present_flag等于0指定DU信息SEI消息中不存在pic_spt_dpb_output_du_delay语法元素。
pic_spt_dpb_output_du_delay用于计算当DecodingUnitHrdFlag等于1时画面的DPB输出时间。它指定在从CPB移除AU中的最后一个DU之后、在从DPB输出解码画面之前要等待多少子时钟节拍。当不存在时,推断pic_spt_dpb_output_du_delay的值等于pic_dpb_outpuUdu_delay。语法元素pic_spt_dpb_output_du_delay的长度由dpb_output_delay_du_length_minus1+1以位为单位给出。
比特流符合性要求与相同AU相关联、应用于相同操作点并且dpb_output_du_delay_present_flag等于1的所有DU信息SEI消息都应具有相同的pic_spt_dpb_output_du_delay值。
从符合输出定时的解码器输出的任何画面的pic_spt_dpb_output_du_delay导出的输出时间应在从按解码顺序的任何后续CVS中的所有画面的pic_spt_dpb_output_du_delay导出的输出时间之前。
按该语法元素的值建立的画面输出顺序应与按PicOrderCntVal的值建立的顺序相同。
对于因为按解码顺序排列在具有等于1或被推断为等于1的no_output_of_prior_pics_flag的CLVSS画面之前而不由“扰动”过程输出的画面,从pic_spt_dpb_output_du_delay导出的输出时间应随着PicOrderCntVal的值相对于同一CVS内的所有画面的增加而增加。
对于CVS中的任意两个画面,当DecodingUnitHrdFlag等于1时两个画面的输出时间之间的差值应与当DecodingUnitHrdFlag等于0时的相同差值相同。
此外,JVET-P2001为解码画面缓冲器的画面输出提供了以下内容:
此子句中指定的过程在AU n的CPB移除时间CpbRemovalTime[n]立即发生。
当画面n具有等于1的PictureOutputFlag时,其DPB输出时间DpbOutputTime[n]如下导出,其中变量firstPicInBufferingPeriodFlag在AU n是BP的第一个AU时等于1,否则等于0:
Figure BDA0003674560980000811
其中picDpbOutputDelay为pic_dpb_output_delay的值,并且picDpbOutputDelta为根据cpb_removal_delay_minus1[Htid]和与AU n相关联的PT SEI消息中的cpb_removal_delay_delta_idx[Htid]以及与AU n相关联的PT SEI消息中的cpb_removal_delay_delta[cpb_removal_delay_delta_idx[Htid]]导出的picDpbOutputDelta[Htid]的值,并且picSptDpbOutputDuDelay为当存在时与AU n相关联的DU信息SEI消息中的pic_spt_dpb_output_du_delay的值,或者当不存在与AU n相关联的DU信息SEI消息或不存在与AU n相关联的DU信息SEI消息具有pic_spt_dpb_output_du_delay时与AU n相关联的PTSEI消息中的pic_dpb_output_du_delay的值。
注意—当与AU n相关联的任何DU信息SEI消息中不存在语法元素pic_spt_dpb_output_du_delay时,推断该值等于与AU n相关联的PT SEI消息中的pic_dpb_output_du_delay。
当前画面的输出如下指定:
-如果PictureOutputFlag等于1,并且DpbOutputTime[n]等于CpbRemovalTime[n],则输出当前画面。
-否则,如果PictureOutputFlag等于0,则不输出当前画面,而是按照下面的条款将其存储在DPB中。
-否则(PictureOutputFlag等于1,DpbOutputTime[n]大于CpbRemovalTime[n]),当前画面稍后输出并且将被存储在DPB中(如下所指定),并且在时间DpbOutputTime[n]输出,除非NoOutputOfPriorPicsFlag等于1指示不输出。
当输出时,使用画面的符合性裁剪窗口裁剪画面。当画面n是输出的画面并且不是输出的比特流的最后一个画面时,变量DpbOutputInterval[n]的值如下导出:
DpbOutputInterval[n]=DpbOutputTime[nextPicInOutputOrder]-DpbOutputTime[n]
其中nextPicInOutputOrder是按输出顺序排列在画面n之后的画面,并且具有等于1的PictureOutputFlag。
当前解码画面存储在空画面存储缓冲器中的DPB中,DPB填充度递增一,并且当前画面被标记为“用于短期参考”。
注意—除非比水平限制所需的更多的存储器可用于解码画面的存储,否则解码器应在第一切片被解码时开始将当前画面的解码部分存储到DPB中,并且随着解码过程进行而继续存储更多解码样本。
在JVET-P2001中,发送信号通知语法元素pic_dpb_output_du_delay和pic_spt_dpb_output_du_delay不太理想。特别地,如果存在DU级HRD参数(即,bp_decoding_unit_hrd_params_present_flag等于1),则始终在画面定时SEI消息中发送信号通知画面dpb输出延迟信息(即pic_dpb_output_du_delay)。另外,如果dpb_output_du_delay_present_flag等于1,则可以在语法元素pic_spt_dpb_output_du_delay中的一个或多个DU信息SEI消息中的每一者中发送信号通知画面dpb输出延迟信息。如果在DU信息SEI消息中发送信号通知画面dpb输出延迟信息,则被发送信号通知的值应相同。断言发送信号通知关于画面DPB输出延迟的信息的这种方式不必要地冗余并且过于复杂。根据本文的技术,提出了用于发送信号通知画面DPB输出延迟信息的简化方案。在一个示例中,根据本文的技术,如果存在DU级HRD参数,则在缓冲周期SEI消息(或画面定时SEI消息)中发送信号通知标志以控制DU级画面DPB输出延迟信息是仅在画面定时SEI消息中还是在DU信息SEI消息中被发送信号通知。另外,在一个示例中,在画面定时SEI消息(或在缓冲周期SEI消息中)发送信号通知附加标志以指示当在画面定时SEI消息中发送信号通知DU级画面DPB输出延迟信息时,其可以在DU信息SEI消息中更新。在一个示例中,在缓冲周期SEI消息(或画面定时SEI消息)中发送信号通知标志,其指定DU级画面DPB输出延迟信息是被发送信号通知,还是被推断为与AU级的信息相同。
图1是示出根据本公开的一种或多种技术的可以被配置为对视频数据进行编码(例如,编码和/或解码)的系统的示例的框图。系统100表示可以根据本公开的一种或多种技术来封装视频数据系统的示例。如图1所示,系统100包括源设备102、通信介质110和目标设备120。在图1所示的示例中,源设备102可以包括被配置为对视频数据进行编码并将编码的视频数据传输到通信介质110的任何设备。目标设备120可以包括被配置为经由通信介质110接收编码视频数据并且对编码视频数据进行解码的任何设备。源设备102和/或目标设备120可以包括配备用于进行有线和/或无线通信的计算设备,并且可以包括例如机顶盒、数字视频录像机、电视机、台式电脑、膝上型电脑或平板电脑、游戏控制台、医学成像设备和移动设备(包括例如智能电话、蜂窝电话、个人游戏设备)。
通信介质110可以包括无线和有线通信介质和/或存储设备的任意组合。通信介质110可以包括同轴电缆、光纤电缆、双绞线电缆、无线发射器和接收器、路由器、交换机、中继器、基站或可用于促进各种设备和站点之间的通信的任何其他设备。通信介质110可以包括一个或多个网络。例如,通信介质110可以包括被配置为允许访问万维网例如互联网的网络。网络可以根据一个或多个电信协议的组合操作。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括数字视频广播(DVB)标准、高级电视系统委员会(ATSC)标准、综合服务数字广播(ISDB)标准、有线数据业务接口规范(DOCSIS)标准、全球移动通信系统(GSM)标准、码分多址(CDMA)标准、第3代合作伙伴计划(3GPP)标准、欧洲电信标准协会(ETSI)标准、互联网协议(IP)标准、无线应用协议(WAP)标准以及电气与电子工程师协会(IEEE)标准。
存储设备可以包括能够存储数据的任何类型的设备或存储介质。存储介质可以包括有形或非暂态计算机可读介质。计算机可读介质可以包括光盘、闪存存储器、磁存储器或任何其他合适的数字存储介质。在一些示例中,存储器设备或其部分可以被描述为非易失性存储器,并且在其他示例中,存储器设备的部分可以被描述为易失性存储器。易失性存储器的示例可以包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。非易失性存储器的示例可以包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。存储设备可以包括存储卡(例如,安全数字(SD)存储卡)、内部/外部硬盘驱动器和/或内部/外部固态驱动器。数据可以根据定义的文件格式存储在存储设备上。
图4是示出可以被包括在系统100的具体实施中的部件的示例的概念图。在图4所示的示例性具体实施中,系统100包括一个或多个计算设备402A至402N、电视服务网络404、电视服务提供方站点406、广域网408、局域网410以及一个或多个内容提供方站点412A至412N。图4中所示的具体实施表示系统的示例,该系统可被配置为允许数字媒体内容(诸如电影、现场体育赛事等)和与其相关联的数据和应用程序以及媒体呈现被分发到多个计算设备(诸如计算设备402A至402N)并由该多个计算设备访问。在图4所示的示例中,计算设备402A至402N可以包括被配置为从电视服务网络404、广域网408和/或局域网410中的一者或多者接收数据的任何设备。例如,计算设备402A至402N可以配备用于有线和/或无线通信,并且可被配置为通过一个或多个数据信道接收服务,并且可以包括电视,包括所谓的智能电视、机顶盒和数字视频记录器。此外,计算设备402A至402N可以包括台式计算机、膝上型计算机或平板计算机、游戏控制台、移动设备(包括例如“智能”电话、蜂窝电话和个人游戏设备)。
电视服务网络404是被配置为使得能够分发可以包括电视服务的数字媒体内容的网络的示例。例如,电视服务网络404可以包括公共空中电视网络、公共或基于订阅的卫星电视服务提供方网络,以及公共或基于订阅的有线电视提供方网络和/或云上或互联网服务提供方。应当指出的是,尽管在一些示例中,电视服务网络404可以主要用于允许提供电视服务,但是电视服务网络404还可以根据本文所述的电信协议的任何组合允许提供其他类型的数据和服务。此外,应当指出的是,在一些示例中,电视服务网络404可以允许电视服务提供方站点406与计算设备402A至402N中的一个或多个之间的双向通信。电视服务网络404可以包括无线和/或有线通信媒体的任何组合。电视服务网络404可以包括同轴电缆、光纤电缆、双绞线电缆、无线发射器和接收器、路由器、交换机、中继器、基站或可用于促进各种设备和站点之间的通信的任何其他设备。电视服务网络404可以根据一个或多个电信协议的组合来运营。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括DVB标准、ATSC标准、ISDB标准、DTMB标准、DMB标准、有线数据服务接口规范(DOCSIS)标准、HbbTV标准、W3C标准和UPnP标准。
再次参考图4,电视服务提供方站点406可被配置为经由电视服务网络404分发电视服务。例如,电视服务提供方站点406可以包括一个或多个广播站、有线电视提供方或卫星电视提供方或基于互联网的电视提供方。例如,电视服务提供方站点406可被配置为通过卫星上行链路/下行链路接收传输(包括电视节目)。此外,如图4所示,电视服务提供方站点406可以与广域网408通信,并且可被配置为从内容提供方站点412A至412N接收数据。应当指出的是,在一些示例中,电视服务提供方站点406可以包括电视演播室,并且内容可以源自该电视演播室。
广域网408可以包括基于分组的网络,并且根据一个或多个电信协议的组合运营。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括全球系统移动通信(GSM)标准、码分多址(CDMA)标准、第3代合作伙伴计划(3GPP)标准、欧洲电信标准协会(ETSI)标准、欧洲标准(EN)、IP标准、无线应用协议(WAP)标准,以及电气与电子工程师协会(IEEE)标准,诸如,IEEE 802标准中的一者或多者(例如,Wi-Fi)。广域网408可以包括无线和/或有线通信媒体的任何组合。广域网408可以包括同轴电缆、光纤电缆、双绞线电缆、以太网电缆、无线发射器和接收器、路由器、交换机、中继器、基站、或可用于促进各种设备和站点之间的通信的任何其他设备。在一个示例中,广域网408可以包括互联网。局域网410可以包括基于分组的网络,并且根据一个或多个电信协议的组合运营。可以基于访问级别和/或物理基础设施将局域网410与广域网408区分开。例如,局域网410可以包括安全家庭网络。
再次参考图4,内容提供方站点412A至412N表示可以向电视服务提供方站点406和/或计算设备402A至402N提供多媒体内容的站点的示例。例如,内容提供方站点可以包括具有一个或多个工作室内容服务器的工作室,该工作室内容服务器被配置为向电视服务提供方站点406提供多媒体文件和/或流。在一个示例中,内容提供方站点412A至412N可被配置为使用IP套件提供多媒体内容。例如,内容提供方站点可被配置为根据实时流协议(RTSP)、HTTP等向接收器设备提供多媒体内容。此外,内容提供方站点412A至412N可被配置为通过广域网408向接收器设备402A至402N和/或电视服务提供方站点406中的一个或多个提供包括基于超文本的内容等的数据。内容提供方站点412A至412N可以包括一个或多个web服务器。可以根据数据格式来定义由数据提供方站点412A至412N提供的数据。
再次参考图1,源设备102包括视频源104、视频编码器106、数据封装器107和接口108。视频源104可以包括被配置为捕获和/或存储视频数据的任何设备。例如,视频源104可以包括摄像机和可操作地与其耦接的存储设备。视频编码器106可以包括被配置为接收视频数据并生成表示视频数据的合规比特流的任何设备。合规比特流可以指视频解码器可以从其接收和再现视频数据的比特流。合规比特流的各方面可根据视频编码标准来定义。当生成合规比特流时,视频编码器106可以压缩视频数据。压缩可能是有损的(观察者可觉察的或不可觉察的)或无损的。图5是示出可实现本文所述的用于对视频数据进行编码的技术的视频编码器500的示例的框图。应当指出的是,尽管示例性视频编码器500被示出为具有不同的功能块,但此类图示旨在用于描述目的,并且不将视频编码器500和/或其子部件限制为特定的硬件或软件架构。可使用硬件、固件和/或软件具体实施的任何组合来实现视频编码器500的功能。
视频编码器500可执行画面区域的帧内预测编码和帧间预测编码,并且因此可被称为混合视频编码器。在图5所示的示例中,视频编码器500接收源视频块。在一些示例中,源视频块可以包括已经根据编码结构划分的画面区域。例如,源视频数据可以包括宏块、CTU、CB、其子分区和/或另外的等效编码单元。在一些示例中,视频编码器500可被配置为执行源视频块的附加细分。应当指出的是,本文描述的技术通常适用于视频编码,而不管在编码之前和/或期间如何划分源视频数据。在图5所示的示例中,视频编码器500包括加法器502、变换系数生成器504、系数量化单元506、逆量化和变换系数处理单元508、加法器510、帧内预测处理单元512、帧间预测处理单元514、滤波器单元516和熵编码单元518。如图5所示,视频编码器500接收源视频块并输出比特流。
在图5所示的示例中,视频编码器500可以通过从源视频块中减去预测视频块来生成残差数据。下面详细描述了对预测视频块的选择。求和器502表示被配置为执行该减法运算的部件。在一个示例中,视频块的减法发生在像素域中。变换系数生成器504对残差块或其子分区应用变换诸如离散余弦变换(DCT)、离散正弦变换(DST)或概念上类似的变换(例如,可以将四个8×8变换应用于16×16残差值阵列)以产生残差变换系数集合。变换系数生成器504可被配置为执行离散三角变换系列中包括的变换的任何和全部组合,包括其近似。变换系数生成器504可将变换系数输出到系数量化单元506。系数量化单元506可被配置为执行变换系数的量化。量化过程可以减少与一些或所有系数相关联的位深度。量化的程度可以改变编码的视频数据的率失真(即比特率与视频质量的关系)。量化的程度可以通过调整量化参数(QP)来修改。可以基于切片位阶值和/或CU位阶值(例如,CU增量QP值)来确定量化参数。QP数据可以包括用于确定用于量化特定变换系数集合的QP的任何数据。如图5所示,量化的变换系数(可被称为位阶值)被输出到逆量化和变换系数处理单元508。逆量化和变换系数处理单元508可被配置为应用逆量化和逆变换来生成重构残差数据。如图5所示,在求和器510处,重构残差数据可以被添加到预测视频块。这样,可以重构编码的视频块,并且可以使用所得重构视频块来评估给定的预测、变换和/或量化的编码质量。视频编码器500可被配置为执行多个编码回合(例如,在改变预测、变换参数和量化参数中的一者或多者的同时执行编码)。比特流的率失真或其他系统参数可以基于重构视频块的评估来优化。此外,重构视频块可被存储并用作预测后续块的参考。
再次参考图5,帧内预测处理单元512可被配置为针对待编码视频块选择帧内预测模式。帧内预测处理单元512可被配置为评估帧并且确定用以编码当前块的帧内预测模式。如上所述,可能的帧内预测模式可以包括平面预测模式、DC预测模式和角度预测模式。此外,应当指出的是,在一些示例中,可以根据亮度预测模式的预测模式来推断色度分量的预测模式。帧内预测处理单元512可在执行一个或多个编码回合之后选择帧内预测模式。此外,在一个示例中,帧内预测处理单元512可以基于率失真分析来选择预测模式。如图5所示,帧内预测处理单元512将帧内预测数据(例如,语法元素)输出到熵编码单元518和变换系数生成器504。如上所述,对残差数据执行的变换可以是模式相关的(例如,可以基于预测模式确定二次变换矩阵)。
再次参考图5,帧间预测处理单元514可被配置为针对当前视频块执行帧间预测编码。帧间预测处理单元514可被配置为接收源视频块并且计算视频块的PU的运动矢量。运动矢量可以指示当前视频帧内的视频块的预测单元相对于参考帧内的预测块的位移。帧间预测编码可以使用一个或多个参考画面。此外,运动预测可以是单向预测(使用一个运动矢量)或双向预测(使用两个运动矢量)。帧间预测处理单元514可被配置为通过计算由例如绝对差之和(SAD)、平方差之和(SSD)或其他差值度量确定的像素差来选择预测块。如上所述,可以根据运动矢量预测来确定和指定运动矢量。如上所述,帧间预测处理单元514可被配置为执行运动矢量预测。帧间预测处理单元514可被配置为使用运动预测数据生成预测块。例如,帧间预测处理单元514可定位帧缓冲器内的预测视频块(图5中未示出)。应当指出的是,帧间预测处理单元514可以进一步被配置为将一个或多个内插滤波器应用于重构残差块,以计算用于运动估计的子整数像素值。帧间预测处理单元514可将所计算的运动矢量的运动预测数据输出到熵编码单元518。
如图5所示,滤波器单元516接收重构的视频块和编码参数,并且输出经修改的重构视频数据。滤波器单元516可被配置为执行解块和/或样本自适应偏移(SAO)滤波。SAO滤波是一种可用于通过向重构视频数据添加偏移以改善重构的非线性振幅映射。应当指出的是,如图5所示,帧内预测处理单元512和帧间预测处理单元514可以经由滤波器单元216接收经修改的重构视频块。熵编码单元518接收量化的变换系数和预测语法数据(即,帧内预测数据和运动预测数据)。应当指出的是,在一些示例中,系数量化单元506可以在将系数输出到熵编码单元518之前执行对包括量化变换系数的矩阵的扫描。在其他示例中,熵编码单元518可执行扫描。熵编码单元518可以被配置为根据本文所述的技术中的一种或多种技术执行熵编码。这样,视频编码器500表示被配置为根据本公开的一种或多种技术生成编码视频数据的设备的示例。
再次参考图1,数据封装器107可以接收编码视频数据,并根据定义的数据结构生成合规比特流,例如,NAL单元序列。接收合规比特流的设备可以从其再现视频数据。此外,如上所述,子比特流提取可以指通过丢弃和/或修改接收的比特流中的数据,接收合规ITU-T H.265的比特流的设备形成新的合规ITU-T H.265的比特流的过程。应当指出的是,可以使用术语符合性比特流来代替术语合规比特流。在一个示例中,数据封装器107可被配置为根据本文所述的一种或多种技术生成语法。应当指出的是,数据封装器107不需要必须位于与视频编码器106相同的物理设备中。例如,被描述为由视频编码器106和数据封装器107执行的功能可以分布在图4所示的设备中。
如上所述,在JVET-P2001中,发送信号通知语法元素pic_dpb_output_du_delay和pic_spt_dpb_output_du_delay不太理想。如上所述,在一个示例中,根据本文的技术,如果存在DU级HRD参数,则在缓冲周期SEI消息(或画面定时SEI消息或一些其他位置,例如参数集,如序列参数集)中发送信号通知标志以控制和指定DU级画面DPB输出延迟信息是仅在画面定时SEI消息中还是在DU信息SEI消息中被发送信号通知。在JVEDP2001中,断言如果期望在DU信息SEI消息中发送信号通知DU级画面DPB输出延迟信息,则即使当忽略时也需要在画面定时SEI消息中发送信号通知DU级画面DPB输出延迟值。另一方面,当在创建PT SEI消息时已知DU级画面DPB输出延迟信息时,在每个DU信息SEI消息中不必要地发送信号通知附加标志。表11示出了buffering_period()语法结构的示例,表12示出了pic_timing()语法结构的示例,并且表13示出了decoding_unit_info()语法结构的示例,其中如果存在DU级HRD参数,则在缓冲周期SEI消息中发送信号通知标志以根据本文的技术控制是仅在画面定时SEI消息中还是在DU信息SEI消息中发送信号通知DU级画面DPB输出延迟信息。
Figure BDA0003674560980000901
Figure BDA0003674560980000911
表11
Figure BDA0003674560980000921
Figure BDA0003674560980000931
表12
Figure BDA0003674560980000932
表13
对于表11至表13,语义可以基于以上提供的语义,在一个示例中,语法元素decoding_umt_dpb_du_params_in_pic_timing_sei_flag和pic_dpb_output_delay的语义基于以下:
decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于1指定当bp_decoding_unit_hrd_params_present_flag等于1时仅在画面定时SEI消息中存在DU级画面dpb输出延迟信息(即,语法元素pic_dpb_output_du_delay)。decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0指定当bp_decoding_unit_hrd_params_present_flag等于1时DU级画面dpb输出延迟信息(即语法元素pic_spt_dpb_output_du_delay)存在(或可能存在)于DU信息SEI消息中。当decoding_unit_dpb_du_params_in_pic_timing_sei_flag语法元素不存在时,推断其等于0。
应当指出的是,decoding_unit_dpb_du_params_in_pic_timing_sei_flag可改为命名为decoding_unit_dpb_params_in_pic_timing_sei_flag或可以使用一些其他名称。
pic_dpb_output_delay用于计算画面的DPB输出时间。它指定在从CPB移除AU之后、在从DPB输出解码画面之前要等待多少时钟节拍。
注意—当画面仍被标记为“用于短期参考”或“用于长期参考”时,在其输出时间不从DPB中移除该画面。
dpb_delay_delay的长度为dpb_output_delay_length_minus1+1位。
当max_dec_pic_buffering_minus1[Htid]等于0时,pic_dpb_output_delay的值应等于0。
从符合输出定时的解码器输出的任何画面的dpb_output_delay导出的输出时间应在从按解码顺序排列的任何后续CVS中的所有画面的dpb_output_delay导出的输出时间之前。
按该语法元素的值建立的画面输出顺序应与按PicOrderCntVal的值建立的顺序相同。
对于因为按解码顺序排列在具有等于1或被推断为等于1的no_output_of_prior_pics_flag的CLVSS画面之前而不由“扰动”过程输出的画面,从dpb_output_delay导出的输出时间应随着PicOrderCntVal的值相对于同一CVS内的所有画面的增加而增加。
此外,以下可适用于DU信息SEI消息语法和语义:
-在BP SEI消息中找到语法元素bp_decoding_unit_hrd_params_present_fla、decoding_unit_cpb_params_in_pic_timing_sei_flag和dpb_output_delay_du_length_minus1,该BP SEI消息适用于DU信息SEI消息所适用的操作点中的至少一者。
-比特流(或其一部分)是指与DU信息SEI消息所适用的操作点中的任一者相关联的比特流子集(或其部分)。
操作点的DU信息SEI消息的存在如下指定:
-如果CpbDpbDelaysPresentFlag等于1、bp_decoding_unit_hrd_params_present_flag等于1并且decoding_unit_cpb_params_in_pic_timing_sei_flag等于0,以及/或者decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0,则适用于操作点的一个或多个DU信息SEI消息应与CVS中的每个DU相关联。
-否则,在CVS中,不应有与适用于操作点的DU信息SEI消息相关联的DU。
在一个示例中:
当DU信息SEI消息存在时,decoding_unit_cpb_params_in_pic_timing_sei_flag或decoding_unit_dpb_du_params_in_pic_timing_sei_flag中的至少一者应等于0。
在变体中:
操作点的DU信息SEI消息的存在如下指定:
-如果CpbDpbDelaysPresentFlag等于1、bp_decoding_unit_hrd_params_present_flag等于1并且decoding_unit_cpb_params_in_pic_timing_sei_flag等于0,以及/或者decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0,则适用于操作点的一个或多个DU信息SEI消息应与CVS中的每个DU相关联。
-否则,如果CpbDpbDelaysPresentFlag等于1、bp_decoding_unit_hrd_params_present_flag等于1并且decoding_unit_cpb_params_in_pic_timing_sei_flag等于1,以及decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于1,则适用于操作点的一个或多个DU信息SEI消息可以或可以不与CVS中的每个DU相关联。
-否则(CpbDpbDelaysPresentFlag等于0或bp_decoding_unit_hrd_params_present_flag等于0),在CVS中,不应有与适用于操作点的DU信息SEI消息相关联的DU。
dpb_output_du_delay_present_flag等于1指定DU信息SEI消息中存在pic_spt_dpb_output_du_delay语法元素。dpb_output_du_delay_present_flag等于0指定DU信息SEI消息中不存在pic_spt_dpb_output_du_delay语法元素。
在一个示例中,当不存在时,推断dpb_output_du_delay_present_flag等于0。
pic_spt_dpb_output_du_delay用于计算当DecodingUnitHrdFlag等于1并且decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0时画面的DPB输出时间。它指定在从CPB移除AU中的最后一个DU之后、在从DPB输出解码画面之前要等待多少子时钟节拍。
在一个示例中:
当不存在时,推断pic_spt_dpb_output_du_delay的值等于pic_dpb_output_du_delay。语法元素pic_spt_dpb_output_du_delay的长度由dpb_output_delay_du_length_minus1+1以位为单位给出。
比特流符合性要求与相同AU相关联、应用于相同操作点并且具有(在一个变型中不移除该串)decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0的所有DU信息SEI消息都应具有相同的pic_spt_dpb_output_du_delay值。
从符合输出定时的解码器输出的任何画面的pic_spt_dpb_output_du_delay导出的输出时间应在从按解码顺序的任何后续CVS中的所有画面的pic_spt_dpb_output_du_delay导出的输出时间之前。
按该语法元素的值建立的画面输出顺序应与按PicOrderCntVal的值建立的顺序相同。
对于因为按解码顺序排列在具有等于1或被推断为等于1的no_output_of_prior_pics_flag的CLVSS画面之前而不由“扰动”过程输出的画面,从pic_spt_dpb_output_du_delay导出的输出时间应随着PicOrderCntVal的值相对于同一CVS内的所有画面的增加而增加。
对于CVS中的任意两个画面,当DecodingUnitHrdFlag等于1时两个画面的输出时间之间的差值应与当DecodingUnitHrdFlag等于0时的相同差值相同。
此外,根据本文的技术,以下用于画面输出的过程可用于解码画面缓冲器:
此子句中指定的过程在AU n的CPB移除时间CpbRemovalTime[n]立即发生。
当画面n具有等于1的PictureOutputFlag时,其DPB输出时间DpbOutputTime[n]如下导出,其中变量firstPicInBufferingPeriodFlag在AU n是BP的第一个AU时等于1,否则等于0:
Figure BDA0003674560980000971
,其中picDpbOutputDelay为pic_dpb_output_delay的值,并且picDpbOutputDelta为根据cpb_removal_delay_minus1[Htid]和与AU n相关联的PT SEI消息中的cpb_removal_delay_delta_idx[Htid]以及与AU n相关联的PT SEI消息中的cpb_removal_delay_delta[cpb_removal_delay_delta_idx[Htid]]导出的picDpbOutputDelta[Htid]的值,并且picSptDpbOutputDuDelay为当decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0时与AU n相关联的DU信息SEI消息中的pic_spt_dpb_output_du_delay的值,或者当decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于1时与AUn相关联的PT SEI消息中的pic_dpb_output_du_delay的值。
注意—当与AU n相关联的任何DU信息SEI消息中不存在语法元素pic_spt_dpb_output_du_delay时,推断该值等于与AU n相关联的PT SEI消息中的pic_dpb_output_du_delay。
当前画面的输出如下指定:
-如果PictureOutputFlag等于1,并且DpbOutputTime[n]等于CpbRemovalTime[n],则输出当前画面。
-否则,如果PictureOutputFlag等于0,则不输出当前画面,而是如上指定的将其存储在DPB中。
-否则(PictureOutputFlag等于1,DpbOutputTime[n]大于CpbRemovalTime[n]),当前画面稍后输出并且将被存储在DPB中(如上文所指定),并且在时间DpbOutputTime[n]输出,除非NoOutputOfPriorPicsFlag等于1指示不输出。
当输出时,使用画面的符合性裁剪窗口裁剪画面。当画面n是输出的画面并且不是输出的比特流的最后一个画面时,变量DpbOutputInterval[n]的值如下导出:
DpbOutputInterval[n]=DpbOutputTime[nextPicInOutputOrder]–DpbOutputTime[n]
其中nextPicInOutputOrder是按输出顺序排列在画面n之后的画面,并且具有等于1的PictureOutputFlag。
对于表11至表13,应当指出的是,在一些示例中,语法元素decoding_unit_cpb_du_params_in_pic_timing_sei_flag可被称为du_cpb_params_in_pic_timing_sei_flag并且具有基于上文对于表8提供的以下语义的语义。此外,语法元素decoding_unit_dpb_du_params_in_pic_timing_sei_flag可被称为du_dpb_pararas_in_pic_timing_sei_flag并且具有基于以下的语义:
du_dpb_params_in_pic_timing_sei_flag等于1指定DU级DPB输出延迟参数存在于PT SEI消息中,并且不存在于DU信息SEI消息中。du_dpb_params_in_pic_timing_sei_flag等于0指定DU级DPB输出延迟参数存在于DU信息SEI消息中并且不存在于PT SEI消息中。当du_dpb_paramsjn_pic_timing_sei_flag语法元素不存在时,推断其等于0。
应当指出的是,对于表13中所示的示例,在一些情况下,可能不需要发送信号通知语法元素dui_sublayer_delays_present_flag[bp_max_sublayers_minus1],而是可以推断其值。这是因为当相应dui_sublayer_delays_present_flag[i]等于0时,语法元素du_spt_cpb_removal_delay_increment[bp_max_sublayers_minus1]用于推断du_spt_cpb_removal_delay_increment[i],i在0至bp_max_sublayers_minus1-1的范围内。因此,在一个示例中,根据本文的技术,decoding_unit_infoO语法结构的示例可以如表13A中提供的那样,其中dui_sublayer_delays_present_flag[i]有条件地存在,并且当不存在时基于bp_max_sublayers_minus1推断。
Figure BDA0003674560980000991
表13A
对于表13A,语义可以基于上文提供的语义,在一个示例中,语法元素dui_sublayer_delays_present_flag[i]和du_spt_cpb_removal_delay_increment[i]的语义基于以下:
dui_sublayer_delays_present_flag[i]等于1指定对于具有TemporalId等于i的子层,存在du_spt_cpb_removal_delay_increment[i]。dui_sublayer_delays_present_flag[i]等于0指定对于具有TemporalId等于i的子层,不存在du_spt_cpb_removal_delay_increment[i]。当du_cpb-params_in_pic_timing_sei_flag等于0时,推断dui_sublayer_delays_present_flag[bp_max_sublayers_minus1]的值等于1。否则,当不存在时,推断dui_sublayer_delays_present_flag[i]的值等于0。
du_spt_cpb_removal_delay_increment[i]指定当Htid等于i时,当前AU中按解码顺序排列的最后一个DU的标称CPB时间和与DU信息SEI消息相关联的DU之间的持续时间(以时钟子节拍为单位)。如所指定的,该值还用于计算DU数据到HSS的CPB中的最早可能到达时间。该语法元素的长度为du_cpb_removal_delay_increment_length_minus1+1。当与DU信息SEI消息关联的DU是当前AU中的最后一个DU时,du_spt_cpb_removal_delay_increment[i]的值应等于0。对于小于bp_max_sublayers_minus1的任意i值,当du_spt_cpb_removal_delay_increment[i]不存在时,推断其值等于du_spt_cpb_removal_delay_increment[bp_max_sublayers_minus1]。
在另一示例中,可以发送信号通知标志dui_sublayer_delays_present_flag[bp_max_sublayers_minus1],并且可能需要以下符合性约束:dui_sublayer_delays_present_flag[bp_max_sublayers_minus1]的值应等于1。
在另一示例中,该约束可以如下指定:
当du_cpb_params_in_pic_timing_sei_flag等于0时,dui_sublayer_delays_present_flag[bp_max_sublayers_minus1]的值应等于1。
或者如下:
当存在时,dui_sublayer_delays_present_flag[bp_max_sublayers_minus1]的值应等于1。这要求当du_cpb_params_in_pic_timing_sei_flag等于0时,必须发送信号通知语法元素dui_sublayer_delays_present_flag[bp_max_sublayers_minus1]。因此,当在解码单元信息SEI消息中发送信号通知解码单元CPB参数时,必须发送信号通知dui_sublayer_delays_present_flag[bp_max_sublayers_minus1]。
在变体中,条件
if(i<bp_max_sublayers_minus1)
dui_sublayer_delays_present_flag[i] u(1)
可改为写成
if(i!=bp_max_sublayers_minus1)
dui_sublayer_delays_present_flag[i] u(1)
在另一变体中,条件可以写为如表13B中提供的那样。
Figure BDA0003674560980001021
表13B
对于表13B,语义可以基于上文提供的语义,在一个示例中,语法元素dui_sublayer_delays_present_flag[i]的语义基于以下:
dui_sublayer_delays_present_flag[i]等于1指定对于具有TemporalId等于i的子层,存在du_spt_cpb_removal_delay_increment[i]。dui_sublayer_delays_present_flag[i]等于0指定对于具有TemporalId等于i的子层,不存在du_spt_cpb_removal_delay_increment[i]。当du_cpb_params_in_pic_timing_sei_flag等于0时,推断dui_sublayer_delays_present_flag[bp_max_sublayers_minus1]的值等于1。否则,当不存在时,推断dui_sublayer_delays_present_flag[i]的值等于0。
在另一示例中,在这种情况下的语义可能如下:
dui_sublayer_delays_present_flag[i]等于1指定对于具有TemporalId等于i的子层,存在du_spt_cpb_removal_delay_increment[i]。dui_sublayer_delays_present_flag[i]等于0指定对于具有TemporalId等于i的子层,不存在du_spt_cpb_removal_delay_increment[i]。当不存在时,推断dui_sublayer_delays_present_flag[i]的值等于0。
应当指出的是,由于当i小于bp_max_sublayers_minus1时对du_spt_cpb_removal_delay_increment[i]的推断使用了du_spt_cpb_removal_delay_increment[bp_max_sublayers_minus1]的值,因此在一个示例中,能够以相反的顺序发送信号通知语法元素dui_sublayer_delays_present_flag[i]和du_spt_cpb_removal_delay_increment[i]的for循环。这将允许在小于bp_max_sublayers_minus1的i的du_spt_cpb_removal_delay_increment[i]的其他值(其可以存在或可以不存在)之前确定du_spt_cpb_removal_delay_increment[bp_max_sublayers_minus1]的值,其需要使用该值用于其推断(如果基于dui_sublayer_delays_present_flag[i]的值,它们中的一者或多者不存在)。因此,在一个示例中,根据本文的技术,dccoding_unit_info()语法结构的示例可如表13C中提供的那样。
Figure BDA0003674560980001031
表13C
对于表13C,语义可以基于上文提供的语义,在一个示例中,语法元素dui_sublayer_delays_present_flag[i]的语义基于以下:
dui_sublayer_delays_present_flag[i]等于1指定对于具有TemporalId等于i的子层,存在du_spt_cpb_removal_delay_increment[i]。dui_sublayer_delays_present_flag[i]等于0指定对于具有TemporalId等于i的子层,不存在du_spt_cpb_removal_delay_increment[i]。当du_cpb_params_in_pic_timing_sei_flag等于0时,dui_sublayer_delays_present_flag[bp_max_sublayers_minus1]的值应等于1。当不存在时,推断dui_sublayer_delays_present_flag[i]的值等于0。
在一个示例中,根据本文的技术,decoding_unit_info()语法结构的示例可如表13D中提供的那样。
Figure BDA0003674560980001041
表13D
对于表13D,语义可基于如上提供的语义。或在另一示例中,dui_sublayer_delays_present_flag[i]在这种情况下的语义可能如下:
dui_sublayer_delays_present_flag[i]等于1指定对于具有TemporalId等于i的子层,存在du_spt_cpb_removal_delay_increment[i]。dui_sublayer_delays_present_flag[i]等于0指定对于具有TemporalId等于i的子层,不存在du_spt_cpb_removal_delay_increment[i]。当du_cpb_params_in_pic_timing_sei_flag等于0时,推断dui_sublayer_delays_present_flag[bp_max_sublayers_minus1]的值等于1。否则,当不存在时,推断dui_sublayer_delays_present_flag[i]的值等于0。
在一个示例中,根据本文的技术,decoding_unit_info()语法结构的示例可如表13E中提供的那样。
Figure BDA0003674560980001051
表13E
对于表13E,语义可基于如上提供的语义。
在一个示例中,条件“当du_cpb_params_in_pic_timing_sei_flag等于0时”可以从上述推断中的一者或多者中移除。
应当指出的是,在一个示例中,根据本文的技术,
当DecodingUnitHrdFlag等于1时,以下适用:
-变量duCpbRemovalDelayInc如下导出:
-如果du_cpb_params_in_pic_timing_sei_flag等于0,则duCpbRemovalDelayInc被设置为等于与DU m相关联的、如指定选择的DU信息SEI消息中du_spt_cpb_removal_delay_increment[Htid]的值。
-否则,对于与AU n相关联的、如指定选择的PT SEI消息中的DU m,如果du_common_cpb_removal_delay_flag等于0,则duCpbRemovalDelayInc被设置为等于du_cpb_removal_delay_increment_minus1[i][Htid]+1的值,其中i的值对于包含DU m的AU中的前num_nalus_in_du_minus1[0]+1个连续NAL单元为0,对于相同AU中的后续num_nalus_in_du_minus1[1]+1个NAL单元为1,对于相同AU中的后续num_nalus_in_du_minus1[2]+1个NAL单元为2,以此类推。
-否则,duCpbRemovalDelayInc被设置为等于与AU n相关联的、如指定选择的PTSEI消息中du_common_cpb_removal_delay_increment_minus1[Htid]+1的值。
表14示出了pic_timing()语法结构的示例,其中如果存在DU级HRD参数,则根据本文的技术在缓冲周期SEI消息中发送信号通知标志以控制是仅在画面定时SEI消息中还是在DU信息SEI消息中发送信号通知DU级画面DPB输出延迟信息。
Figure BDA0003674560980001071
Figure BDA0003674560980001081
表14
对于表14,语义可基于如上提供的语义。
除了上文提供的信令之外,在一个示例中,在画面定时SEI消息(或在缓冲周期SEI消息中)发送信号通知附加标志以指示当在画面定时SEI消息中发送信号通知DU级画面DPB输出延迟信息时,其可以在DU信息SEI消息中更新。表15示出了pic_timing()语法结构的示例,并且表16示出了decoding_unit_info()语法结构的示例,其中根据本文的技术,在画面定时SEI消息中发送信号通知附加标志以指示当在画面定时SEI消息中发送信号通知DU级画面DPB输出延迟信息时,它可以在DU信息SEI消息中更新。
Figure BDA0003674560980001091
Figure BDA0003674560980001101
表15
Figure BDA0003674560980001102
表16
对于表15和表16,语义可以基于上文提供的语义,在一个示例中,语法元素decoding_unit_dpb_du_params_in_update_du_sei_flag的语义基于以下:
decoding_umt_dpb_du_params_in_update_du_sei_flag等于1指定可以在DU信息SEI消息中发送信号通知DU级画面dpb输出信息(dpb_output_du_delay_present_flag,如果存在pic_spt_dpb_output_du_delay)。decoding_unit_dpb_du_params_in_update_du_sei_flag等于0指定DU级画面DPB输出信息(dpb_output_du_delay_present_flag和如果存在pic_spt_dpb_output_du_delay)不在DU信息SEI消息中被发送信号通知,并且(或可能)仅存在于画面定时SEI消息中。
当bp_decoding_unit_hrd_params_present_flag等于1时,并且当decodmg_unit_dpb_du_params_in_update_du_sei_flag不存在时:
-如果decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0,则推断decoding_unit_dpb_du_params_in_update_du_sei_flag等于1。
当bp_decoding_unit_hrd_params_present_flag等于0时,并且当decoding_unit_dpb_du_params_in_update_du_sei_flag不存在时:推断decoding_unit_dpb_du_params_in_update_du_sei_flag等于1。(或0)
在另一示例中:当不存在时,推断decoding_unit_dpb_du_params_in_update_du_sei_flag等于0。
此外,以下可适用于DU信息SEI消息语法和语义:
-在BP SEI消息中找到语法元素bp_decoding_unit__hrd_params_present_flag、decoding_unit_cpb_params_in_pictimingseiflag和dpb_output_delay_du_length_minus1,该BP SEI消息适用于DU信息SEI消息所适用的操作点中的至少一者。
-比特流(或其一部分)是指与DU信息SEI消息所适用的操作点中的任一者相关联的比特流子集(或其部分)。
操作点的DU信息SEI消息的存在如下指定:
-如果CpbDpbDelaysPresentFlag等于1、bp_decoding_unit_hrd_params_present_flag等于1并且decoding_unit_cpb_params_in_pic_timing__sei_flag等于0,以及/或者decoding_unit_dpb_du_paranis_in_pic_timing_sei_flag等于0,或者decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于1并且decoding_unit_dpb_du_pararns_in_update_du_sei_flag等于1,适用于操作点的一个或多个DU信息SEI消息应与CVS中的每个DU相关联。
-否则,在CVS中,不应有与适用于操作点的DU信息SEI消息相关联的DU。
在一个示例中:
当DU信息SEI消息存在时,decoding_unit_cpb_params_in_pic_timing_sei_flag或
decoding_unit_dpb_du_params_in_pic_timing_sei_flag中的至少一者应等于0,或者decoding_unit_dpb_du_params_in_update_du_sei_flag应等于1。
在变体示例中:
操作点的DU信息SEI消息的存在如下指定:
-如果CpbDpbDelaysPresentFlag等于1、bp_decoding_unit_hrd_params_present_flag等于1并且decoding_unit_cpb_params_in_pic_timing__sei_flag等于0,以及/或者decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0,或者decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于1并且decoding_unit_dpb_du_params_in_update_du_sei_flag等于1,则适用于操作点的一个或多个DU信息SEI消息应与CVS中的每个DU相关联。
-否则,如果CpbDpbDelaysPresentFlag等于1、bp_decoding_unit_hrd_params_present_flag等于1,并且decoding_unit_cpb_params_in_pictiming_sei_flag等于1,以及decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于1,则适用于操作点的一个或多个DU信息SEI消息可以或可以不与CVS中的每个DU相关联。
-否则(CpbDpbDelaysPresentFlag等于0或bp_decoding_unit_hrd_params_present_flag等于0),在CVS中,不应有与适用于操作点的DU信息SEI消息相关联的DU。
dpb_output_du_delay_present_flag等于1指定DU信息SEI消息中存在pic_spt_dpb_putput_du_delay语法元素。dpb_output_du_delay_present_flag等于0指定DU信息SEI消息中不存在pic_spt_dpb_output_du_delay语法元素。
在一个示例中,当不存在时,推断dpb_output_du_delay_present_flag等于0。
pic_spt_dpb_output_du_delay用于计算当DecodingUnitHrdFlag等于1并且decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0或者decoding_unit_dpb_du_params_in_update_du_sei_flag等于1时画面的DPB输出时间。它指定在从CPB移除AU中的最后一个DU之后、在从DPB输出解码画面之前要等待多少子时钟节拍。
在一个示例中:
当不存在时,推断pic_spt_dpb_output_du_delay的值等于pic_dpb_outpuUdu_delay。语法元素pic_spt_dpb_output_du_delay的长度由dpb_output_delay_du_length_minus1+1以位为单位给出。
比特流符合性要求与相同AU相关联、应用于相同操作点并且具有(在一个变型中不移除该串)decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0或者decoding_unit_dpb_du_params_in_update_du_sei_flag等于1的所有DU信息SEI消息都应具有相同的pic_spt_dpb_output_du_delay值。
从符合输出定时的解码器输出的任何画面的pic_spt_dpb_output_du_delay导出的输出时间应在从按解码顺序的任何后续CVS中的所有画面的pic_spt_dpb_output_du_delay导出的输出时间之前。
按该语法元素的值建立的画面输出顺序应与按PicOrderCntVal的值建立的顺序相同。
对于因为按解码顺序排列在具有等于1或被推断为等于1的no_output_of_prior_pics_flag的CLVSS画面之前而不由“扰动”过程输出的画面,从pic_spt_dpb_output_du_delay导出的输出时间应随着PicOrderCntVal的值相对于同一CVS内的所有画面的增加而增加。
对于CVS中的任意两个画面,当DecodingUnitHrdFlag等于1时两个画面的输出时间之间的差值应与当DecodingUnitHrdFlag等于0时的相同差值相同。
此外,根据本文的技术,以下用于画面输出的过程可用于解码画面缓冲器:
此子句中指定的过程在AU n的CPB移除时间CpbRemovalTime[n]立即发生。
当画面n具有等于1的PictureOutputFlag时,其DPB输出时间DpbOutputTime[n]如下导出,其中变量firstPicInBufferingPeriodFlag在AU n是BP的第一个AU时等于1,否则等于0:
Figure BDA0003674560980001141
,其中picDpbOutputDelay为pic_dpb_output_delay的值,并且picDpbOutputDelta为根据cpb_removal_delay_minus1[Htid]和与AU n相关联的PT SEI消息中的cpb_removal_delay_delta_idx[Htid]以及与AU n相关联的PT SEI消息中的cpb_removal_delay_delta[cpb_removal_delay_delta_idx[Htid]]导出的picDpbOutputDelta[Htid]的值,并且picSptDpbOutputDuDelay为当存在时与AU n相关联的DU信息SEI消息中的pic_spt_dpb_output_du_delay的值,或者当decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于1时并且decoding_unit_dpb_du_params_in_update_du_sei_flag等于0时与AU n相关联的PT SEI消息中的pic_dpb_output_du_delay的值。
注意—当与AU n相关联的任何DU信息SEI消息中不存在语法元素pic_spt_dpb_output_du_delay时,推断该值等于与AU n相关联的PT SEI消息中的pic_dpb_output_du_delay。
当前画面的输出如下指定:
-如果PictureOutputFlag等于1,并且DpbOutputTime[n]等于CpbRemovalTime[n],则输出当前画面。
-否则,如果PictureOutputFlag等于0,则不输出当前画面,而是如上指定的将其存储在DPB中。
-否则(PictureOutputFlag等于1,DpbOutputTime[n]大于CpbRemovalTime[n]),当前画面稍后输出并且将被存储在DPB中(如上文所指定),并且在时间DpbOutputTime[n]输出,除非NoOutputOfPriorPicsFlag等于1指示不输出。
当输出时,使用画面的符合性裁剪窗口裁剪画面。当画面n是输出的画面并且不是输出的比特流的最后一个画面时,变量DpbOutputInterval[n]的值如下导出:
DpbOutputInterval[n]=DpbOutputTime[nextPidnOutputOrder]-DpbOutputTime[n]
其中nextPicInOutputOrder是按输出顺序排列在画面n之后的画面,并且具有等于1的PictureOutputFlag。
在另一个示例中:
不使用新的标志decoding_unit_dpb_du_params_in_pic_timing_sei_flag,对于所提出的条件信令,而是可以使用标志decoding_unit_cpb_params_in_pic_timing_sei_flag。在这种情况下,标志可被称为decoding_unit_cpb_params_in_pic_timing_sei_flag。
在另一个示例中:
比特流符合性可能要求当decoding_unit_cpb_params_in_pic_timing_sei_flag等于1时,decoding_unit_dpb_du_params_in_pic_timing_sei_flag应等于1。在另一示例中,比特流符合性可能要求:当decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于1时,decoding_unit_cpb_params_in_pic_timing_sei_flag应等于1。
应当指出的是,在表15中示出的示例性语法中,标志decoding_unit_dpb_du_params_in_update_du_sei_flag与在缓冲周期SEI消息中发送信号通知的语法元素decoding_unit_dpb_du_params_in_pic_timing_sei_flag一起使用。然而,在其他示例中,标志还可以与在画面定时SEI消息中发送信号通知的decoding_unit_dpb_du_params_in_pic_timing_sei_flag标志一起使用。
如上所述,在一个示例中,根据本文的技术,可以在缓冲周期SEI消息(或画面定时SEI消息)中发送信号通知标志,其指定DU级画面DPB输出延迟信息是被发送信号通知,还是被推断为与AU级的信息相同。表17示出了根据本文的技术的buffering_period()语法结构的相关部分的示例,其中缓冲周期SEI消息中的标志指定DU级画面DPB输出延迟信息是被发送信号通知还是推断为与AU级的信息相同。
Figure BDA0003674560980001161
表17
对于表17,语义可以基于上文提供的语义,在一个示例中,语法元素decoding_unit_dpb_du_info_signalled_flag的语义基于以下:
decoding_unit_dpb_du_info_signalled_flag等于1指定存在DU级画面DPB输出信息(即,DU信息SEI消息中的pic_spt_dpb_output_du_delay语法元素和/或画面定时SEI消息中的pt_pic_spt_dpb_output_du_delay语法元素)。decoding_unit_dpb_du_info_signalled_flag等于0指定不存在DU级画面DPB输出信息(即,DU信息SEI消息中的pic_spt_dpb_output_du_delay语法元素和/或画面定时SEI消息中的pt_pic_spt_dpb_output_du_delay语法元素)。当decoding_unit_dpb_du_info_signalled_flag等于0时,推断DU级画面DPB输出信息与AU级画面DPB输出信息相同(例如,推断pic_spt_dpb_output_du_delay等于pic_dpb_output_delay,并且/或者推断pt_pic_spt_dpb_output_du_delay等于pic_dpb_output_delay)。
或在一个示例中,
decoding_unit_dpb_du_info_signalled_flag等于1指定存在DU级画面DPB输出信息(即,DU信息SEI消息中的pic_spt_dpb_output_du_delay语法元素和/或画面定时SEI消息中的pt_pic_spt_dpb_output_du_delay语法元素,或画面定时SEI消息中的pic_dpb_output_du_delay语法元素)。decoding_unit_dpb_du_info_signalled_flag等于0指定不存在DU级画面DPB输出信息(即,DU信息SEI消息中的pic_spt_dpb_output_du_delay语法元素和/或画面定时SEI消息中的pt_pic_spt_dpb_output_du_delay语法元素,或画面定时SEI消息中的pic_dpb_output_du_delay语法元素)。当decoding_unit_dpb_du_info_signalled_flag等于0时,推断DU级画面DPB输出信息与AU级画面DPB输出信息相同(例如,推断pic_spt_dpb_output_du_delay等于pic_dpb_output_delay,并且/或者推断pt_pic_spt_dpb_output_du_delay等于pic_dpb_output_delay,以及/或者推断pic_dpb_output_du_delay等于pic_dpb_output_delay)。
表18示出了根据本文的技术的可以与表17中提供的语法结合使用的解码单元语法结构。
Figure BDA0003674560980001181
表18
对于表18,语义可基于如上提供的语义。
表19示出了根据本文的技术的buffering_period()语法结构的相关部分的示例,其中缓冲周期SEI消息中的标志指定DU级画面DPB输出延迟信息是被发送信号通知还是推断为与AU级的信息相同。
Figure BDA0003674560980001191
表19
对于表19,语义可以基于上文提供的语义,在一个示例中,语法元素decoding_unit_dpb_du_info_signalled_flag的语义基于以下:
decoding_unit_dpb_du_info_signalled_flag等于1指定存在DU级画面DPB输出信息(即,缓冲周期SEI消息中的decoding_unit_dpb_du_params_in_pic_timing_sei_flag和/或DU信息SEI消息中的pic_spt_dpb_output_du_delay语法元素和/或画面定时SEI消息中的pic_dpb_output_du_delay语法元素)。decoding_unit_dpb_du_info_signalled_flag等于0指定不存在DU级画面DPB输出信息(即,缓冲周期SEI消息中的decoding_unit_dpb_du_params_in_pic_timing_sei_flag和/或DU信息SEI消息中的pic_spt_dpb_output_du_delay语法元素和/或画面定时SEI消息中的pic_dpb_putput_du_delay语法元素)。当decoding_unit_dpb_du_info_signalled_flag等于0时,推断DU级画面DPB输出信息与AU级画面DPB输出信息相同(例如,推断pic_spt_dpb_output_du_delay等于pic_dpb_output_delay,并且/或者推断pt_pic_spt_dpb_output_du_delay等于pic_dpb_output_delay)。
在一个示例中,当不存在时,推断decoding_unit_dpb_du_params_in_pic_timing_sei_flag的值等于1。
在一个示例中,当不存在时,推断decoding_unit_dpb_du_params_in_pic_timing_sei_flag等于0。
表20示出了根据本文的技术的画面定时语法结构,并且表21示出了可以与表19中提供的语法结合使用的解码单元语法结构。
Figure BDA0003674560980001211
Figure BDA0003674560980001221
表20
Figure BDA0003674560980001222
表21
对于表20和表21,语义可以基于如上提供的语义以及以下语义规则:
在一个示例中:
当不存在并且decoding_unit_dpb_du_info_signalled_flag等于0时,推断pic_spt_dpb_output_du_delay等于pic_dpb_output_delay。
在另一个示例中:
当decoding_unit_dpb_du_info_signalled_flag等于0时,推断pic_spt_dpb_output_du_delay等于pic_dpb_output_delay。
如上所述,JVET-P2001提供了用于解码画面缓冲器的画面输出过程。此外,JVET-P2001提供了用于确定编码画面缓冲器的移除延迟的以下内容:
如果DecodingUnitHrdFlag等于0,则decodingUnitParamsFlag被设置为等于0,并且在将DU视为AU的情况下调用此子句的剩余部分中指定的过程,以导出AU n的初始和最终CPB到达时间。
否则(DecodingUnitHrdFlag等于1),首先以被设置为等于0的变量DecodingUnitParamsFlag和被认为是AU的DU来调用此子句的剩余部分中指定的过程,以导出AU n的初始和最终CPB到达时间,然后以被设置为等于1的decodingUnitParamsFlag和被认为是AU的子集的DU来调用此子句的剩余部分中指定的过程,以导出AU n中的DU的初始和最终CPB到达时间。调用在此子句的剩余部分中指定的过程以导出AU n的初始和最终CPB到达时间。
变量InitCpbRemovalDelay[Htid][ScIdx]和
InitCpbRemovalDelayOffset[Htid][ScIdx]如下导出:
-如果以下条件中的一者或多者为真,则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于AU 1的BP SEI消息语法元素nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]的值减去PT SEI消息语法元素cpb_alt_initial_removal_delay_delta和cpb_alt_jnitial_removaLoffset__delta的值或者当NalHrdModeFlag等于0时,分别等于AU 1的vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][Scldx]减去PT SEI消息语法元素cpb_alt_initial_removal_delay_delta和cpb_alt_initial_removal_offset_delta的值其中包含语法元素的BP SEI消息如下文所指定的来选择:
-AU 0的UseAltCpbParamsFlag等于1。
-DefaultInitCpbParamsFlag等于0。
-否则,如果decodingUnitParamsFlag的值等于1,则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于BP SEI消息语法元素nal_initial_alt_cpb_removal_delay[Htid][ScIdx]和nal_nitial_alt_cpb_removal_offset[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于vcl_initial_alt_cpb_removal_delay[Htid][ScIdx]和vcl_initial_alt_cpb_removal_offset[Htid][ScIdx],其中BP SEI消息语法元素如下文所指定的来选择。
-否则(DecodingUnitHrdFlag等于0),则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于BP SEI消息语法元素nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx],其中BP SEI消息语法元素如下文所指定的来选择。
当与AU 0相关联的BP SEI消息具有等于1的cpb_alt_timing_info_present_flag时,以下中的任一者适用于选择初始CPB移除延迟和延迟偏移:
-如果NalHrdModeFlag等于1,则在选定的BP SEI消息中选择分别由nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]表示的默认初始CPB移除延迟和延迟偏移。-否则,在选定的BP SEI消息中选择分别由vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx]表示的默认初始CPB移除延迟和延迟偏移。变量DefaultInitCpbParamsFlag被设置为等于1。
-如果NalHrdModeFlag等于1,则在选定的BP SEI消息中选择分别由nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移,以及在与按解码顺序排列在AU 0之后的AU相关联的PT SEI消息中选择分别由cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和cpb_alt_initial_removal_offset_delta[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移。-否则,在选定的BP SEI消息中选择分别由vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移,以及在与按解码顺序在AU 0之后的AU相关联的PT SEI消息中选择分别由cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和cpb_alt_initial_removal_offset_delta[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移。变量DefaultInitCpbParamsFlag被设置为等于0,并且以下中的一者适用:
-与AU 0相关联的RASL AU从BitstreamToDecode中丢弃,而剩余的比特流被分配给BitstreamToDecode。
-从BitstreamToDecode中丢弃按解码顺序在AU 0之后直到与DRAP指示SEI消息相关联的AU的所有AU,并且将剩余比特流分配给BitstreamToDecode。
参考表8,应当指出的是,在JVET-P2001中,初始缓冲延迟参数对于VCL HRD和NALHRD可以是不同的。此外,参考表9,JVET-P2001提供了经由画面定时SEI以发送信号通知的一组另选缓冲延迟参数,作为初始CPB移除延迟偏移(即,cpb_alt_initial_cpb_removal_delay_delta[i],以及cpb_alt_initial_cpb_removal_offset_delta[i])。然而,在图片定时SEI中,仅发送信号通知单组延迟偏移。应当指出的是,语法元素cpb_alt_initial_cpb_removal_delay_delta[i]和cpb_alt_mitial_cpb_removal_offset_delta[i]可改为用其他名称来调用。在一个示例中,根据本文的技术,可以针对VCL HRD和NAL HRD发送信号通知单独的一组另选缓冲延迟参数。表22示出了根据本文的技术的画面定时消息的相关部分的示例。
Figure BDA0003674560980001261
表22
对于表22,语义可以基于如上提供的语义以及以下语义:
cpb_alt_timing_info_present_flag等于1表示存在语法元素nal_cpb_alt_initial_cpb_removal_delay_delta[i]、nal_cpb_alt_initial_cpb_removal_offset_delta[i]、vcl_cpb_alt_initial_cpb_removal_delay_delta[i]、vcl_cpb_alt_initial_cpb_removal_offset_delta[i]、cpb_delay_offset和dpb_delay_offset。当相关联画面是RASL画面时,cpb_alt_timing_info_present_flag的值应等于0。
cpb_alt_initial_cpb_removal_delay_delta[i]、cpb_delay_offset和dpb_delay_offset。当相关联画面是RASL画面时,cpb_alt_timing_info_present_flag的值应等于0。
注意—对于按解码顺序在IRAP画面之后的多于一个AU,cpb_alt_timing_info_present_flag的值可能等于1。然而,另选定时仅应用于具有等于1的cpb_alt_timing_info_present_flag并且按解码顺序在IRAP画面之后的第一个AU。
nal_cpb_alt_initial_cpb_removal_delay_delta[i]指定NAL HRD的第i个CPB的另选初始CPB移除延迟增量,以90kHz时钟为单位。nal_cpb_alt_initial_cpb_removal_delay_delta[i]的长度为initial_cpb_removal_delay_length_minus1+1位。
nal_cpb_alt_imtial_cpb_removal_offset_delta[i]指定NAL HRD的第i个CPB的另选初始CPB移除偏移增量,以90kHz时钟为单位。nal_cpb_alt_initial_cpb_removal_offset_delta[i]的长度为initial_cpb_removal_delay_length_minus1+1位。
vcl_cpb_alt_mitial_cpb_removal_delay_delta[i]指定VCL HRD的第i个CPB的另选初始CPB移除延迟增量,以90kHz时钟为单位。nal_cpb_alt_initial_cpb_removal_delay_delta[i]的长度为initial_cpb_removal_delay_length_minus1+1位。
vcl_cpb_alt_initial_cpb_removal_offset_delta[i]指定VCL HRD的第i个CPB的另选初始CPB移除偏移增量,以90kHz时钟为单位。vcl_cpb_alt_initial_cpb_removal_offset_delta[i]的长度为initial_cpb_removal_delay_length_minus1+1位。
在一个示例中,nal_cpb_alt_initial_cpb_removal_delay_delta[i]、vcl_cpb_altjnitial_cpb_removal_delay_delta[i]、vcl_cpb_alt_initial_cpb_removal_offset_delta[i]中的一者或多者的单位可能不同于“以90kHz时钟为单位”。同样,例如,可以定义这些语法元素的语义中的一个或多个语义,省略“以90kHz时钟为单位”一词。
在一个示例中,不使用bp_nal_hrd_params_present_flag来有条件地发送信号通知nal_cpb_alt_initial_cpb_removal_delay_delta[i]和
nal_cpb_alt_initial_cpb_removal_offset_delta,而是可以使用单独的新的标志。
在一个示例中,不使用bp_vcl_hrd_params_present_flag来有条件地发送信号通知vcl_cpb_alt_initial_cpb_removal_delay_delta[i]和
vcl_cpb_alt_initial_cpb_removal_offset_delta,而是可以使用单独的新的标志。
对于表22,在一个示例中,用于确定编码画面缓冲器的移除延迟的过程可以如下:
变量InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]如下导出:
-如果以下条件中的一者或多者为真,则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于AU 1的BP SEI消息语法元素nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]的值减去PT SEI消息语法元素nal_cpb_alt_initial_removal_delay_delta[ScIdx]和nal_cpb_alt_initial_removal_offset_delta[ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于AU 1的vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][Scldx]减去PT SEI消息语法元素vcl_cpb_altjnitial_removal_delay_delta[Scldx]和vcl__cpb_alt_initial_rernoval_pffset_delta[Scldx]的值,其中包含语法元素的BP SEI消息如下文所指定的来选择:
-AU 0的UseAltCpbParamsFlag等于1。
-DefaultInitCpbParamsFlag等于0。
-否则,如果decodingUnitParamsFlag的值等于1,则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于BP SEI消息语法元素nal_initial_alt_cpb_removal_delay[Htid][ScIdx]和nal_initial_alt_cpb_removal_offset[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于vcl_initial_alt_cpb_removal_delay[Htid][ScIdx]和vcl_initial_alt_cpb_removal_offset[Htid][ScIdx],其中BP SEI消息语法元素如下文所指定的来选择。
-否则(DecodingUnitHrdFlag等于0),则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于BP SEI消息语法元素nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx],其中BP SEI消息语法元素如下文所指定的来选择。
当与AU 0相关联的BP SEI消息具有等于1的cpb_alt_timing_info_present_flag时,以下中的任一者适用于选择初始CPB移除延迟和延迟偏移:
-如果NalHrdModeFlag等于1,则在选定的BP SEI消息中选择分别由nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]表示的默认初始CPB移除延迟和延迟偏移。否则,在选定的BP SEI消息中选择分别由vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx]表示的默认初始CPB移除延迟和延迟偏移。变量DefaultInitCpbParamsFlag被设置为等于1。
-如果NalHrdModeFlag等于1,则在选定的BP SEI消息中选择分别由nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移,以及在与按解码顺序在AU 0之后的AU相关联的PTSEI消息中选择分别由nal_cpb_alt_initial_removal_delay_delta[ScIdx]和nal_cpb_alt_initial_removal_offset_delta[ScIdx]表示的另选初始CPB移除延迟和延迟偏移。否则,在选定的BP SEI消息中选择分别由vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移,以及在与按解码顺序在AU 0之后的AU相关联的PT SEI消息中选择分别由vcl_cpb_alt_initial_removal_delay_delta[Scidx]和vcl_cpb_alt_initial_removal_offset_delta[Scldx]表示的另选初始CPB移除延迟和延迟偏移。变量DefaultInitCpbParamsFlag被设置为等于0,并且以下中的一者适用:
-与AU 0相关联的RASL AU从BitstreamToDecode中丢弃,而剩余的比特流被分配给BitstreamToDecode。
-从BitstreamToDecode中丢弃按解码顺序在AU 0之后直到与DRAP指示SEI消息相关联的AU的所有AU,并且将剩余比特流分配给BitstreamToDecode。
在另一示例中,另外可以针对VCL HRD以及针对NAL HRD单独地在画面定时SEI中发送信号通知cpb_delay_offset和/或dpb_delay_offset语法元素。表23示出了根据本文的技术的画面定时消息的相关部分的示例
Figure BDA0003674560980001311
表23
对于表23,语义可以基于如上提供的语义以及以下语义:
nal_cpb_delay_offset指定对于NAL HRD,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与PT SEI消息相关联的AU和按解码顺序跟在其之后的AU的标称CPB移除时间时要使用的偏移。nal_cpb_delay_offset的长度为au_cpb_removal_delay_length_minus1+1位。当不存在时,推断nal_cpb_delay_offset的值等于0。
nal_dpb_delay_offset指定对于NAL HRD,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与BP SEI消息相关联的IRAP AU的DPB输出时间时要使用的偏移。nal_dpb_delay_offset的长度为dpb_output_delay_length_minus1+1位。当不存在时,推断nal_dpb_delay_offset的值等于0。
vcl_cpb_delay_offset指定对于VCL HRD,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与PT SEI消息相关联的AU和按解码顺序跟在其之后的AU的标称CPB移除时间时要使用的偏移。vcl_cpb_delay_offset的长度为au_cpb_removal_delay_length_minus1+1位。当不存在时,推断vcl_cpb_delay_offset的值等于0。
vcl_dpb_delay_offset指定对于VCL HRD,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与BP SEI消息相关联的IRAP AU的DPB输出时间时要使用的偏移。vcl_dpb_delay_offset的长度为dpb_output_delay_length_minus1+1位。当不存在时,推断vcl_dpb_delay_offset的值等于0。
当前画面的变量pResetFlag如下导出:
-如果当前画面与BP SEI消息相关联,则BpResetFlag被设置为等于1。
-否则,BpResetFlag被设置为等于0。
对于表23,在一个示例中,用于导出变量DpbDelayOffset和CpbDelayOffset的过程可以如下:
变量DpbDelayOffset和CpbDelayOffset如下导出,其中k为与BP SEI消息相关联的AU:
-如果以下条件中的一者或多者为真,则DpbDelayOffset被设置为等于AU k+1的PT SEI消息语法元素nal_dpb_delay_offset的值(在NalHrdModeFlag等于1的情况下),或者等于vcl_dpb_delay_offset(在NalHrdModeFlag等于0的情况下),并且CpbDelayOffset被设置为等于AU k+1的PT SEI消息语法元素nal_cpb_delay_offset的值(在NalHrdModeFlag等于1的情况下),或者等于vcl_dpb_delay_offset(在NalHrdModeFlag等于0的情况下),其中包含语法元素的PT SEI消息如本文所指定的来选择:
-AU 0的UseAltCpbParamsFlag等于1。
-DefaultInitCpbParamsFlag等于0。
-否则,DpbDelayOffset和CpbDelayOffset被设置为等于0。
此外,应当指出的是,在JVET-P2001中,对于初始CPB移除延迟偏移(即cpb_alt_initial_cpb_removal_delay_delta[i],以及cpb_alt_initial_cpb_removal_offset_delta[i]),在不考虑时间可伸缩性的情况下,仅发送信号通知单组参数。在一个示例中,根据本文的技术,可以针对不同的时间子层表示发送信号通知单独的一组参数。表24示出了根据本文的技术的画面定时消息的相关部分的示例。
Figure BDA0003674560980001331
表24
对于表24,语义可以基于如上提供的语义以及以下语义:
cpb_alt_timing_info_present_flag等于1指定语法元素cpb_alt_initial_cpb_removal_delay_delta[i][j]、cpb_alt_initial_cpb_removal_offset_delta[i][j]、cpb_delay_offset和dpb_delay_offset的存在。当相关联画面是RASL画面时,cpb_alt_timing_info_present_flag的值应等于0。
注意—对于按解码顺序在IRAP画面之后的多于一个AU,cpb_alt_timing_info_present_flag的值可能等于1。然而,另选定时仅应用于具有等于1的cpb_alt_timing_info_present_flag并且按解码顺序在IRAP画面之后的第一个AU。
cpb_alt_initial_cpb_removal_delay_delta[i][j]指定第j个CPB调度的第i个时间子层的另选初始CPB移除延迟增量。cpb_alt_initial_cpb_removal_delay_delta[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。
cpb_alt_initial_cpb_removal_offset_delta[i][j]指定第i个CPB的另选初始CPB移除偏移增量。cpb_alt_initial_cpb_removal_offset_delta[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。
应当指出的是,在一个示例中,阵列索引[i][j]可改为被翻转为索引[j][i]。
在一个示例中,可以用字词“对于第i个时间子层表示”替换字词“对于第i个时间子层”。
对于表24,在一个示例中,用于确定编码画面缓冲器的移除延迟的以下过程可以如下:
变量InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]如下导出:
-如果以下条件中的一者或多者为真,则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于AU 1的BP SEI消息语法元素nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]的值减去PT SEI消息语法元素cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和cpb_alt_initial_removal_offset_delta[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于AU 1的vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][Scldx]减去PT SEI消息语法元素cpb_alt_initial_removal_delay_delta[Htid][Scldx]和cpb_alt_initial_removal_offset_delta[Htid][Scldx]的值,其中包含语法元素的BPSEI消息如下文所指定的来选择。
-AU 0的UseAltCpbParamsFlag等于1。
-DefaultInitCpbParamsFlag等于0。
-否则,如果decodingUnitParamsFlag的值等于1,则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于BP SEI消息语法元素nal_initial_alt_cpb_removal_delay[Htid][ScIdx]和nal_initial_alt_cpb_removal_offset[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于vcl_initial_alt_cpb_removal_delay[Htid][ScIdx]和vcl_initial_alt_cpb_removal_offset[Htid][ScIdx],其中BP SEI消息语法元素如下文所指定的来选择。
-否则(DecodingUnitHrdFlag等于0),则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于BPSEI消息语法元素nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx],其中BP SEI消息语法元素如下文所指定的来选择。
当与AU 0相关联的BP SEI消息具有等于1的cpb_alt_timing_info_present_flag时,以下中的任一者适用于选择初始CPB移除延迟和延迟偏移:
-如果NalHrdModeFlag等于1,则在选定的BP SEI消息中选择分别由nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]表示的默认初始CPB移除延迟和延迟偏移。-否则,在选定的BP SEI消息中选择分别由vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx]表示的默认初始CPB移除延迟和延迟偏移。变量DefaultInitCpbParamsFlag被设置为等于1。
-如果NalHrdModeFlag等于1,则在选定的BP SEI消息中选择分别由nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移,以及在与按解码顺序排列在AU 0之后的AU相关联的PT SEI消息中选择分别由cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和cpb_alt_initial_removal_offset_delta[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移。否则,在选定的BP SEI消息中选择分别由vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移,以及在与按解码顺序在AU 0之后的AU相关联的PT SEI消息中选择分别由cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和cpb_alt_initial_removal_offset_delta[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移。变量DefaultInitCpbParamsFlag被设置为等于0,并且以下中的一者适用:
-与AU 0相关联的RASL AU从BitstreamToDecode中丢弃,而剩余的比特流被分配给BitstreamToDecode。
-从BitstreamToDecode中丢弃按解码顺序在AU 0之后直到与DRAP指示SEI消息相关联的AU的所有AU,并且将剩余比特流分配给BitstreamToDecode。
在一个示例中,不使用sub_layer_initial_cpb_removal_delay_present_flag来有条件地发送信号通知cpb_alt_initial_cpb_removal_delay_delta[i][j]和cpb_alt_initial_cpb_removal_offset_delta[i][j],而是可以使用单独的新的标志。
在一个示例中,另外可以针对每个子层表示以及针对每个HRD调度单独地在画面定时SEI中发送信号通知cpb_delay_offset和/或dpb_delay_offset语法元素。表25示出了根据本文的技术的画面定时消息的相关部分的示例。
Figure BDA0003674560980001371
表25
对于表25,语义可以基于如上提供的语义以及以下语义:
cpb_delay_offset[i]指定对于第i个时间子层,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与PT SEI消息相关联的AU和按解码顺序跟在其之后的AU的标称CPB移除时间时要使用的偏移。cpb_delay_offset[i]的长度为au_cpb_removal_delay_length_minus1+1位。当不存在时,推断cpb_delay_offset[i]的值等于0。
dpb_delay_offset[i]指定对于第i个时间子层,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与BP SEI消息相关联的IRAP AU的DPB输出时间时要使用的偏移。dpb_delay_offset[i]的长度为dpb_output_delay_length_minus1+1位。当不存在时,推断dpb_delay_offset[i]的值等于0。当前画面的变量pResetFlag如下导出:
-如果当前画面与BP SEI消息相关联,则BpResetFlag被设置为等于1。
-否则,BpResetFlag被设置为等于0。
对于表25,在一个示例中,用于导出变量DpbDelayOffset和CpbDelayOffset的过程可以如下:
变量DpbDelayOffset和CpbDelayOffset如下导出,其中k为与BP SEI消息相关联的AU:
-如果以下条件中的一者或多者为真,则DpbDelayOffset被设置为等于AU k+1的PT SEI消息语法元素dpb_delay_offset[Htid]的值,并且CpbDelayOffset被设置为等于AUk+1的PT SEI消息语法元素cpb_delay_offset[Htid]的值,其中包含语法元素的PT SEI消息如本文所指定的来选择:
-AU 0的UseAltCpbParamsFlag等于1。
-DefaultInitCpbParamsFlag等于0。
-否则,DpbDelayOffset和CpbDelayOffset被设置为等于0。
对于表24和表25,在一个示例中,语法元素cpb_alt_initial_removal_delay_delta、cpb_alt_initial_removal_offset_delta、cpb_delay_offset和dpb_delay_offset的语义可以基于以下内容:
cpb_alt_initial_removal_delay_delta[i][j]指定第j个CPB的第i个子层的另选初始CPB移除延迟增量。cpb_alt_initial_removal_delay_delta[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。
对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且cpb_alt_initial_removal_delay_delta[i][j]不存在时,推断其值等于cpb_alt_initial_removal_delay_delta[bp_max_sublayers_minus1][j]。
在变体示例中,推断规则可如下表示:
对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且cqb_alt_initial_removal_delay_delta[i][j]不存在时,推断其值等于0。在这种情况下,CPB缓冲器在初始缓冲期间将被完全填充。
在另一变体示例中,推断规则可如下表示:
对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且cpb_alt_initial_removal_delay_delta[i][j]不存在时,推断其值等于cpb_alt_initial_removal_delay_delta[i+1][j]。
cpb_alt_initial_removal_offset_delta[i][j]指定第j个CPB的第i个子层的另选初始CPB移除偏移增量。cpb_alt_initial_removal_offset_delta[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。
对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且cpb_alt_initial_removal_offset_delta[i][j]不存在时,推断其值等于cpb_alt_initial_removal_offset_delta[bp_max_sublayers_minus1][j]。
在另一变体示例中,推断规则可如下表示:
对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且cpb_alt_initial_removal_offset_delta[i][j]不存在时,推断其值等于0。
在这种情况下,CPB缓冲器在初始缓冲期间将被完全填充。
在另一变体中,推断规则可如下表示:
对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且cpb_alt_initial_removal_offset_delta[i][j]不存在时,推断其值等于cpb_alt_initial_removal_offset_delta[i+1][j]。
cpb_delay_offset[i]指定对于第i个子层,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与PT SEI消息相关联的AU和按解码顺序跟在其之后的AU的标称CPB移除时间时要使用的偏移。cpb_delay_offset[i]的长度为au_cpb_removal_delay_length_minus1+1位。
当cpb_alt_timing_info_present_flag等于1时,以及当不存在时,推断cpb_delay_offset[i]的值等于cpb_delay_offset[bp_max_sublayers_minus1]。
在变体示例中,推断规则可如下表示:
对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且cpb_delay_offset[i]不存在时,推断其值等于cpb_delay_offset[bp_max_sublayers_minus1]。否则,当不存在时,推断cpb_delay_offset[i]的值等于0。
在另一变体示例中,推断规则可如下表示:
对于cpb_delay_offset[i]的推断规则没有改变,即,当不存在时推断其等于0。
dpb_delay_offset[i]指定对于第i个子层,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与BP SEI消息相关联的IRAP AU的DPB输出时间时要使用的偏移。dpb_delay_offset[i]的长度为dpb_output_delay_length_minus1+1位。当cpb_alt_timing_info_present_flag等于1时,以及当不存在时,推断dpb_delay_offset[i]的值等于dpb_delay_offset[bp_max_sublayers_minus1]。
在变体示例中,推断规则可如下表示:
对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且dpb_delay_offset[i]不存在时,推断其值等于dpb_delay_offset[bp_max_sublayers_minus1]。否则,当不存在时,推断dpb_delay_offset[i]的值等于0。
在另一变体示例中,推断规则可如下表示:
推断规则没有改变,即,当不存在时推断其等于0。
应当指出的是,在一个示例中,以上包括“当cpb_alt_timing_info_present_flag等于1时”的一个或多个推断条件可被修改为“当cpb_alt_timing_info_present_flag等于1并且sublayer_initial_cpb_removal_delay_present_flag等于0时”
对于语法元素cpb_alt_initial_removal_delay_delta[i][j],应当指出的是,如果不使用单个标志(sublayer_initial_cpb_removal_delay_present_flag),而是使用单独的标志(sublayer_initial_cpb_removal_delay_present_flag[i])来控制每个第i个时间子层的语法元素的存在,则这些推断规则中的一个或多个推断规则可能特别有用。另外,在这种情况下,可能需要以i值的降序从i等于bp_max_sublayers_minus1-1开始应用推断规则。
对于语法元素cpb_alt_initial_removal_offset_delta[i][j],应当指出的是,如果不使用单个标志(sublayer_initial_cpb_removal_delay_present_flag),而是使用单独的标志(sublayer_initial_cpb_removal_delay_present_flag[i])来控制每个第i个时间子层的语法元素的存在,则这些推断规则中的一个或多个推断规则可能特别有用。另外,在这种情况下,可能需要以i值的降序从i等于bp_max_sublayers_minus1-1开始应用推断规则。
此外,对于buffering_period()语法结构,在一个示例中,语法元素initial_cpb_removal_delay_length_minus1、cpb_removal_delay_length_minus1和dpb_output_delay_length_minus1的语义可以基于以下内容:
initial_cpb_removal_delay_length_minus1加1指定当前缓冲周期中BP SEI消息的语法元素nal_initial_cpb_removal_delay[i][j]、nal_initial_cpb_removal_offset[i][j]、vcl_initial_cpb_removal_delay[i][j]和vcl_initial_cpb_removal_offset[i][j]以及PT SEI消息中的语法元素cpb_alt_initial_removal_delay_delta[i][j]、cpb_alt_initial_removal_offset_delta[i][j]的长度,单位为位。当不存在时,推断initial_cpb_removal_delay_length_minus1的值等于23。
cpb_removal_delay_length_minus1加1指定当前缓冲周期中BP SEI消息中的语法元素cpb_removal_delay_delta_minus1和cpb_removal_delay_delta[i]以及PT SEI消息中的语法元素cpb_removal_delay_minus1[i]和cpb_delay_offset[i]的长度,单位为位。当不存在时,推断cpb_removal_delay_length_minus1的值等于23。
dpb_output_delay_length_minus1加1指定当前缓冲周期中PT SEI消息中的语法元素dpb_output_delay和dpb_delay_offset[i]的长度,单位为位。当不存在时,推断dpb_output_delay_length_minus1的值等于23。
应当指出的是,这些语义提供了画面定时SEI消息中的语法元素cpb_delay_offset[i]、cpb_alt_initial_removal_delay_delta[i][j]、cpb_alt_initial_removal_offset_delta[i][j]的长度。
在一个示例中,根据本文的技术,表22和表24中所示的语法结构可以组合用于发送信号通知用于时间子层的VCL HRD和NAL HRD的另选定时HRD参数。表26A示出了根据本文的技术的画面定时消息的相关部分的示例。
Figure BDA0003674560980001431
表26A
对于表26A,语义可以基于如上提供的语义以及以下语义:
cpb_alt_timing_info_present_flag等于1表示存在语法元素nal_cpb_alt_initial_cpb_removal_delay_delta[i][j]、nal_cpb_alt_initial_cpb_removal_offset_delta[i][j]、vcl_cpb_alt_initial_cpb_removal_delay_delta[i][j]、vcl_cpb_alt_initial_cpb_removal_offset_delta[i][j]、cpb_delay_offset和dpb_delay_offset。当相关联画面是RASL画面时,cpb_alt_timing_info_present_flag的值应等于0。
注意—对于按解码顺序在IRAP画面之后的多于一个AU,cpb_alt_timing_info_present_flag的值可能等于1。然而,另选定时仅应用于具有等于1的cpb_alt_timing_info_present_flag并且按解码顺序在IRAP画面之后的第一个AU。
nal_cpb_alt_initial_cpb_removal_delay_delta[i][j]指定NAL HRD的第j个CPB调度的第i个时间子层的另选初始CPB移除延迟增量,以90kHz时钟为单位。nal_cpb_alt_initial_cpb_removal_delay[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。
nal_cpb_alt_initial_cpb_removal_offset_delta[i][j]指定NAL HRD的第j个CPB调度的第i个时间子层的另选初始CPB移除偏移增量,以90kHz时钟为单位。nal_cpb_alt_initial_cpb_removal_offset_delta[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。
vcl_epb_alt_initial_cpb_removal_delay_delta[i][j]指定VCL HRD的第j个CPB调度的第i个时间子层的另选初始CPB移除延迟增量,以90kHz时钟为单位。nal_cpb_alt_initial_cpb_removal_delay_delta[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。
vcl_cpb_alt_initial_cpb_removal_offset_delta[i][j]指定VCL HRD的第j个CPB调度的第i个时间子层的另选初始CPB移除偏移增量,以90kHz时钟为单位。vcl_cpb_alt_initial_cpb_removal_offset_delta[i][j]的长度为initial_cpb_removal_delay_length_minus1+1位。
表26B示出了根据本文的技术的画面定时消息的相关部分的另一示例。
Figure BDA0003674560980001451
表26B
对于表26B,语义可以基于如上提供的语义以及以下语义:
cpb_alt_timing_info_present_flag等于1表示存在语法元素nal_cpb_alt_initial_cpb_removal_delay_delta[i][j]、nal_cpb_alt_initial_cpb_removal_offset_delta[i][j]、vcl_cpb_alt_initial_cpb_removal_delay_delta[i][j]、vcl_cpb_alt_initial_cpb_removal_offset_delta[i][j]、nal_cpb_delay_offset[i]、vcl_cpb_delay_offset[i]、vcl_dpb_delay_offset[i]和vcl_dpb_delay_offset[i]。当相关联画面是RASL画面时,cpb_alt_timing_info_present_flag的值应等于0。
注意—对于按解码顺序在IRAP画面之后的多于一个AU,cpb_alt_timing_info_present_flag的值可能等于1。然而,另选定时仅应用于具有等于1的cpb_alt_timing_info_present_flag并且按解码顺序在IRAP画面之后的第一个AU。
nal_cpb_alt_initial_removal_delay_delta[i][j]指定NAL HRD的第j个CPB的第i个子层的另选初始CPB移除延迟增量,以90kHz时钟为单位。nal_cpb_alt_initial_cpb_removal_delay_delta[i]的长度为initial_cpb_removal_delay_length_minus1+1位。对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且nal_cpb_alt_initial_removal_delay_delta[i][j]不存在时,推断其值等于0。
在另一示例中:对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且nal_cpb_alt_initial_removal_delay_delta[i][j]不存在时,推断其值等于nal_cpb_alt_initial_removal_delay_delta[bp_max_sublayers_minus1][j]。
在另一示例中:当不存在时,推断nal_cpb_alt_initial_removal_delay_delta[i][j]等于0。
nal_cpb_alt_initial_removal_offset_delta[i][j]指定NAL HRD的第j个CPB的第i个子层的另选初始CPB移除偏移增量,以90kHz时钟为单位。nal_cpb_alt_initial_cpb_removal_offset_delta[i]的长度为initial_cpb_removal_delay_length_minus1+1位。对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且nal_cpb_alt_initial_removal_offset[i][j]不存在时,推断其值等于0。
在另一示例中:对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且nal_cpb_alt_initial_removal_offset_delta[i][j]不存在时,推断其值等于nal_cpb_alt_initial_removal_offset_delta[bp_max_sublayers_minus1][j]。
在另一示例中:当不存在时,推断nal_cpb_alt_initial_removal_offset_delta[i][j]等于0。
vcl_cpb_alt_initial_cpb_removal_delay_delta[i][j]指定VCL HRD的第j个CPB的第i个子层的另选初始CPB移除延迟增量,以90kHz时钟为单位。vcl_cpb_alt_initial_cpb_removal_delay_delta[i]的长度为initial_cpb_removal_delay_length_minus1+1位。对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且vcl_cpb_alt_initial_removal_delay_delta[i][j]不存在时,推断其值等于0。
在另一示例中:对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且vcl_cpb_alt_initial_removal_delay_delta[i][j]不存在时,推断其值等于vcl_cpb_alt_initial_removal_delay_delta[bp_max_sublayers_minus1][j]。
在另一示例中:当不存在时,推断vcl_cpb_alt_initial_removal_delay_delta[i][j]等于0。
vcl_cpb_alt_imtial_cpb_removal_offset_delta[i][j]指定VCL HRD的第j个CPB的第i个子层的另选初始CPB移除偏移增量,以90kHz时钟为单位。vcl_cpb_alt_initial_cpb_removal_offset_delta[i]的长度为initial_cpb_removal_delay_length_minus1+1位。对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且vcl_cpb_alt_initial_removal_offset[i][j]不存在时,推断其值等于0。
在另一示例中:对于小于bp_max_sublayers_minus1的任意i值,当cpb_alt_timing_info_present_flag等于1并且vcl_cpb_alt_initial_removal_offset_delta[i][j]不存在时,推断其值等于vcl_cpb_alt_initial_removal_offset_delta[bp_max_sublayers_minus1][j]。
在另一示例中:当不存在时,推断vcl_cpb_alt_initial_removal_offset_delta[i][j]等于0。
nal_cpb_delay_offset[i]指定对于NAL HRD,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与PT SEI消息相关联的AU和按解码顺序跟在其之后的AU的标称CPB移除时间时要使用的偏移。nal_cpb_delay_offset[i]的长度为au_cpb_removal_delay_length_minus1+1位。当不存在时,推断nal_cpb_delay_offset[i]的值等于0。
nal_dpb_delay_offset[i]指定对于NAL HRD,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与BP SEI消息相关联的IRAP AU的DPB输出时间时要使用的偏移。nal_dpb_delay_offset[i]的长度为dpb_output_delay_length_minus1+1位。当不存在时,推断nal_dpb_delay_offset[i]的值等于0。
vcl_cpb_delay_offset[i]指定对于VCL HRD,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与PT SEI消息相关联的AU和按解码顺序跟在其之后的AU的标称CPB移除时间时要使用的偏移。vcl_cpb_delay_offset[i]的长度为au_cpb_removal_delay_length_minus1+1位。当不存在时,推断vcl_cpb_delay_offset[i]的值等于0。
vcl_dpb_delay_offset[i]指定对于VCL HRD,当与PT SEI消息相关联的AU按解码顺序直接跟在与BP SEI消息相关联的AU之后时,在导出与BP SEI消息相关联的IRAP AU的DPB输出时间时要使用的偏移。vcl_dpb_delay_offset[i]的长度为dpb_output_delay_length_minus1+1位。当不存在时,推断vcl_dpb_delay_offset[i]的值等于0。
对于表24,在一个示例中,用于确定编码画面缓冲器的移除延迟的以下过程可以如下:
变量InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]如下导出:
-如果以下条件中的一者或多者为真,则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于AU 1的BP SEI消息语法元素nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]的值减去PT SEI消息语法元素nal_cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和nal_cpb_alt_initial_removal_offset_delta[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于AU1的vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][Scldx]减去PT SEI消息语法元素vcl_cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和vcl_cpb_alt_initial_removal_offset_delta[Htid][ScIdx]的值,其中包含语法元素的BP SEI消息如下文所指定的来选择:
-AU 0的UseAltCpbParamsFlag等于1。
-DefaultInitCpbParamsFlag等于0。
-否则,如果decodingUnitParamsFlag的值等于1,则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于BP SEI消息语法元素nal_initial_alt_cpb_removal_delay[Htid][ScIdx]和nal_initial_alt_cpb_removal_offset[Htid][ScIdx]的值或者当NalHrdModeFlag等于0时,分别等于vcl_initial_alt_cpb_removal_delay[Htid][ScIdx]和vcl_initial_alt_cpb_removal_offset[Htid][ScIdx],其中BP SEI消息语法元素如下文所指定的来选择。
-否则(DecodingUnitHrdFlag等于0),则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于BPSEI消息语法元素nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx],其中BP SEI消息语法元素如下文所指定的来选择。
当与AU 0相关联的BP SEI消息具有等于1的cpb_alt_timing_info_present_flag时,以下中的任一者适用于选择初始CPB移除延迟和延迟偏移:
-如果NalHrdModeFlag等于1,则在选定的BP SEI消息中选择分别由nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]表示的默认初始CPB移除延迟和延迟偏移。-否则,在选定的BP SEI消息中选择分别由vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx]表示的默认初始CPB移除延迟和延迟偏移。变量DefaultInitCpbParamsFlag被设置为等于1。
-如果NalHrdModeFlag等于1,则在选定的BP SEI消息中选择分别由nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移,以及在与按解码顺序排列在AU 0之后的AU相关联的PT SEI消息中选择分别由nal_cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和nal_cpb_alt_initial_removal_offset_delta[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移。否则,在选定的BP SEI消息中选择分别由vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移,以及在与按解码顺序在AU 0之后的AU相关联的PT SEI消息中选择分别由vcl_cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和vcl_cpb_alt_initial_removal_offset_delta[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移。变量DefaultInitCpbParamsFlag被设置为等于0,并且以下中的一者适用:
-与AU 0相关联的RASL AU从BitstreamToDecode中丢弃,而剩余的比特流被分配给BitstreamToDecode。
-从BitstreamToDecode中丢弃按解码顺序在AU 0之后直到与DRAP指示SEI消息相关联的AU的所有AU,并且将剩余比特流分配给BitstreamToDecode。
在一个示例中,用于确定编码画面缓冲器的移除延迟的以下过程可以如下:
变量InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]如下导出:
-如果以下条件中的一者或多者为真,则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于AU 1的BP SEI消息语法元素nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]的值减去PT SEI消息语法元素nal_cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和nal_cpb_alt_initial_removal_offset_delta[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于AU1的vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][Scldx]减去PT SEI消息语法元素vcl_cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和vcl_cpb_alt_initial_removal_offset_delta[Htid][ScIdx]的值,其中包含语法元素的BP SEI消息如下文所指定的来选择:
-AU 0的UseAltCpbParamsFlag等于1。
-DefaultInitCpbParamsFlag等于0。
-否则,如果decodingUnitParamsFlag的值等于1,则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于BP SEI消息语法元素nal_initial_alt_cpb_removal_delay[Htid][ScIdx]和nal_initial_alt_cpb_removal_offset[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于vcl_initial_alt_cpb_removal_delay[Htid][ScIdx]和vcl_initial_alt_cpb_removal_offset[Htid][ScIdx],其中BP SEI消息语法元素如下文所指定的来选择。
-否则(DecodingUnitHrdFlag等于0),则当NalHrdModeFlag等于1时,InitCpbRemovalDelay[Htid][ScIdx]和InitCpbRemovalDelayOffset[Htid][ScIdx]被设置为分别等于BP SEI消息语法元素nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]的值,或者当NalHrdModeFlag等于0时,分别等于vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx],其中BP SEI消息语法元素如下文所指定的来选择。
变量DpbDelayOffset和CpbDelayOffset如下导出,其中k为与BP SEI消息相关联的AU:
-如果以下条件中的一者或多者为真,则DpbDelayOffset被设置为等于AU k+1的PT SEI消息语法元素nal_dpb_delay_offset[Htid]的值(在NalHrdModeFlag等于1的情况下),或者等于vcl_dpb_delay_offset[Htid](在NalHrdModeFlag等于0的情况下),并且CpbDelayOffset被设置为等于AU k+1的PT SEI消息语法元素nal_cpb_delay_offset[Htid]的值(在NalHrdModeFlag等于1的情况下),或者等于vcl_dpb_delay_offset[Htid](在NalHrdModeFlag等于0的情况下),其中包含语法元素的PT SEI消息如下文所指定的来选择:
-AU 0的UseAltCpbParamsFlag等于1。
-DefaultInitCpbParamsFlag等于0。
-否则,DpbDelayOffset和CpbDelayOffset被设置为等于0。
当与AU 0相关联的BP SEI消息具有等于1的cpb_alt_timing_info_present_flag时,以下中的任一者适用于选择初始CPB移除延迟和延迟偏移:
-如果NalHrdModeFlag等于1,则在选定的BP SEI消息中选择分别由nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]表示的默认初始CPB移除延迟和延迟偏移。-否则,在选定的BP SEI消息中选择分别由vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx]表示的默认初始CPB移除延迟和延迟偏移。变量DefaultInitCpbParamsFlag被设置为等于1。
-如果NalHrdModeFlag等于1,则在选定的BP SEI消息中选择分别由nal_initial_cpb_removal_delay[Htid][ScIdx]和nal_initial_cpb_removal_offset[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移,以及在与按解码顺序排列在AU 0之后的AU相关联的PT SEI消息中选择分别由nal_cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和nal_cpb_alt_initial_removal_offset_delta[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移。否则,在选定的BP SEI消息中选择分别由vcl_initial_cpb_removal_delay[Htid][ScIdx]和vcl_initial_cpb_removal_offset[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移,以及在与按解码顺序在AU 0之后的AU相关联的PT SEI消息中选择分别由vcl_cpb_alt_initial_removal_delay_delta[Htid][ScIdx]和vcl_cpb_alt_initial_removal_offset_delta[Htid][ScIdx]表示的另选初始CPB移除延迟和延迟偏移。变量DefaultInitCpbParamsFlag被设置为等于0,并且以下中的一者适用:
-与AU 0相关联的RASL AU从BitstreamToDecode中丢弃,而剩余的比特流被分配给BitstreamToDecode。
-从BitstreamToDecode中丢弃按解码顺序在AU 0之后直到与DRAP指示SEI消息相关联的AU的所有AU,并且将剩余比特流分配给BitstreamToDecode。
如上所述,例如,对于表9、表12、表14、表15和表20,pic_timing()语法结构可以包括语法元素du_common_cpb_removal_delay_flag、du_common_cpb_removal_delay_increment_minus1[i]、num_nalus_in_du_minus1[i]和du_cpb_removal_delay_increment_minus1[i][j]。在一个示例中,根据本文的技术,语法元素du_common_cpb_removal_delay_flag、du_common_cpb_removal_delay_increment_minus1[]、num_nalus_in_du_minus1[i]和du_cpb_removal_delay_increment_minus1[i][j]可以仅在AU中存在多于一个DU时被发送信号通知。表27A至表27C示出了根据本文的技术的画面定时消息的相关部分的示例,其中语法元素du_common_cpb_removal_delay_flag、du_common_cpb_removal_delay_increment_minus1[i]、num_nalus_in_du_minus1[i]和du_cpb_removal_delay_increment_minus1[i][j]仅在AU中存在多于一个DU时被发送信号通知。
Figure BDA0003674560980001541
表27A
Figure BDA0003674560980001551
表27B
Figure BDA0003674560980001561
表27C
对于表27A至表27B,语义可以基于如上提供的语义以及以下语义:
du_common_cpb_removal_delay_flag等于1表示存在语法元素du_common_cpb_removal_delay_increment_minus1[i]。du_common_cpb_removal_delay_flag等于0表示不存在语法元素du_common_cpb_removal_delay_increment_minus1[i]。当不存在时,推断du_common_cpb_removal_delay_flag等于0。
num_nalus_in_du_minus1[i]加1指定与PT SEI消息相关联的AU的第i个DU中的NAL单元的数量。num_nalus_in_du_minus1[i]的值应在0至PicSizelnCtbsY-1的范围内(包括端值)。当num_decoding_units_minus1等于0时,以及当不存在时(即,当num_nalus_in_du_minus1[0]不存在时),推断num_nalus_in_du_minus1[0]等于AU中的NAL单元的数量。(在另一示例中,此推断规则可以不被包括在语义中。)
AU的第一个DU由AU中按解码顺序排列的前num_nalus_in_du_minus1[0]+1个连续NAL单元组成。AU的第i个(其中i大于0)DU由num_nalus_in_du_minus1[i]+1个连续NAL单元组成,这些连续NAL单元按照解码顺序紧跟在AU的前一DU中的最后一个NAL单元之后。每个DU中应该存在至少一个VCL NAL单元。与VCL NAL单元相关联的所有非VCL NAL单元都应被包括在与VCL NAL单元相同的DU中。
对于表27C,语义可以基于如上提供的语义以及以下语义:
du_common_cpb_removal_delay_flag等于1表示存在语法元素du_common_cpb_removal_delay_increment_minus1[i]。du_common_cpb_removal_delay_flag等于0表示不存在语法元素du_common_cpb_removal_delay_increment_minus1[i]。当不存在时,推断du_common_cpb_removal_delay_flag等于1。
应当指出的是,在一些情况下,num_decoding_units_minus1的值应需要在0至PicSizelnCtbsY-1的范围内(包括端值)。断言至少在以下类型的情况下,num_decoding_units_minus1可以等于0,并且基于DU的参数可以被包括在PT SEI消息中:
-允许/支持基于解码单元的操作,并且因此缓冲周期SEI消息已经设置bp_decoding_unit_hrd_params_present_flag等于1。在这种情况下,许多后续画面可以在AU中具有多个DU,但是一个或多个画面可以在AU中具有单个DU(例如,可能是由于压缩画面的大小较小)。
-对比特流应用子画面子比特流提取过程,并且得到的子比特流具有单个子画面,该子画面也是DU(例如,每个子画面的单个切片模式用于切片)。
在一个示例中,根据本文的技术,标志du_common_cpb_removal_delay_flag可以被发送信号通知,但是当AU中仅存在一个DU时,需要具有特定值。表28A和表28B示出了根据本文的技术的画面定时消息的相关部分的示例,其中标志du_common_cpb_removal_delay_flag被发送信号通知,但是当AU中仅存在一个DU时,需要具有特定值。
Figure BDA0003674560980001581
表28A
Figure BDA0003674560980001591
表28B
对于表28A,语义可以基于上文提供的语义,并且在这种情况下,比特流符合性可能要求:当num_decoding_units_minus1等于0时,du_common_cpb_removal_delay_flag应等于1。
对于表28B,语义可以基于如上提供的语义以及以下语义:
num_nalus_in_du_minus1[i]加1指定与PT SEI消息相关联的AU的第i个DU中的NAL单元的数量。num_nalus_in_du_minus1[i]的值应在0至PicSizelnCtbsY-1的范围内(包括端值)。当num_decoding_units_minus1等于0时,以及当不存在时(即,当num_nalus_in_du_minus1[0]不存在时),推断num_nalus_in_du_minus1[0]等于AU中的NAL单元的数量。(在另一示例中,此推断规则可以不被包括在语义中。)
AU的第一个DU由AU中按解码顺序排列的前num_nalus_in_du_minus1[0]+1个连续NAL单元组成。AU的第i个(其中i大于0)DU由num_nalus_in_du_minus1[i]+1个连续NAL单元组成,这些连续NAL单元按照解码顺序紧跟在AU的前一DU中的最后一个NAL单元之后。每个DU中应该存在至少一个VCL NAL单元。与VCL NAL单元相关联的所有非VCL NAL单元都应被包括在与VCL NAL单元相同的DU中。
在这种情况下(当使用表28B时)符合性可能要求:
当num_decoding_units_minus1等于0时,du_common_cpb_removal_delay_flag应等于0。
在一个示例中,条件:
if(!du_common_cpb_removal_delay_flag&&i<num_decoding_units_minus1)
可以表示为:
if(!du_common_cpb_removal_delay_flag&&i<num_decoding_units_minus1&&num_decoding_units_minus1>0)
对于表27A至表28B,在一个示例中,变量duCpbRemovalDelayInc如下导出:
当DecodingUnitHrdFlag等于1时,以下适用:
-变量duCpbRemovalDelayInc如下导出:
-如果du_cpb_params_in_pic_timing_sei_flag等于0,则duCpbRemovalDelayInc被设置为等于与DU m相关联的、如指定选择的DU信息SEI消息中du_spt_cpb_removal_delay_increment[i]的值。
-否则,对于与AU n相关联的、如指定选择的PT SEI消息中的DU m,如果du_common_cpb_removal_delay_flag等于0并且num_decoding_units_minus1大于0,则duCpbRemovalDelayInc被设置为等于du_cpb_removal_delay_increment_minus1[i][Htid]+1的值,其中i的值对于包含DU m的AU中的前num_nalus_in_du_minus1[0]+1个连续NAL单元为0,对于相同AU中的后续num_nalus_in_du_minus1[1]+1个NAL单元为1,对于相同AU中的后续num_nalus_in_du_minus1[2]+1个NAL单元为2,以此类推。
-否则,如果du_common_cpb_removal_delay_flag等于1并且num_decoding_units_minus1大于0,则duCpbRemovalDelayInc被设置为等于与AU n相关联的、如指定选择的PT SEI消息中du_common_cpb_removal_delay_increment_minus1[Htid]+1的值。
-否则,duCpbRemovalDelayInc被设置为等于0(在一个示例中,该条件可能不存在于导出中)。
对于表27A至表28B,在另一示例中,变量duCpbRemovalDelayInc可以如下导出:
当DecodingUnitHrdFlag等于1时,以下适用:
-当num_decoding_units_minus1大于0时,变量duCpbRemovalDelayInc如下导出:
-如果du_cpb_params_in_pic_timing_sei_flag等于0,则duCpbRemovalDelayInc被设置为等于与DU m相关联的、如指定选择的DU信息SEI消息中du_spt_cpb_removal_delay_increment[i]的值。
-否则,对于与AU n相关联的、如指定选择的PT SEI消息中的DU m,如果du_common_cpb_removal_delay_flag等于0,则duCpbRemovalDelayInc被设置为等于du_cpb_removal_delay_increment_minus1[i][Htid]+1的值,其中i的值对于包含DU m的AU中的前num_nalus_in_du_minus1[0]+1个连续NAL单元为0,对于相同AU中的后续num_nalus_in_du_minus1[1]+1个NAL单元为1,对于相同AU中的后续num_nalus_in_du_minus1[2]+1个NAL单元为2,以此类推。
-否则,duCpbRemovalDelayInc被设置为等于与AU n相关联的、如指定选择的PTSEI消息中du_common_cpb_removal_delay_increment_minus1[Htid]+1的值。
在一个示例中,仅当AU中存在多于一个DU时才允许PT SEI中的解码单元模式信令。根据本文的技术,num_decoding_umts_minus1可以用具有基于以下语义的语法元素num_decoding_units_minus2替换:
num_decoding_units_minus2加1指定与PT SEI消息相关联的AU中的DU的数量。num_decoding_units_minus2的值应在0至PicSizelnCtbsY-2的范围内(包括端值)。
应当指出的是,在这种情况下,条件
for(i=0;i<=num_decoding_units_minus1;i++)
可以用以下条件替换
for(i=0;i<=num_decoding_units_minus2+1;i++)
并且条件
if(!du_common_cpb_removal_delay_flag&&i<num_decoding_units_minus1)
可以用if(!du_common_cpb_removal_delay_flag&&i<(num_decoding_units_minus2+1))替换
应当指出的是,表22至表28B中描述的示例性画面定时消息语法结构可以与本文所述的其他画面定时消息语法结构组合。
以此方式,源设备102表示一种设备的示例,该设备被配置为发送信号通知指示解码单元参数是否被包括在画面定时消息中的语法元素,以及基于该语法元素的值有条件地在画面定时消息中发送信号通知解码单元参数。
再次参考图1,接口108可以包括被配置为接收由数据封装器107生成的数据并且将数据传输和/或存储到通信介质的任何设备。接口108可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可以发送和/或接收信息的任何其他类型的设备。此外,接口108可以包括计算机系统接口,该计算机系统接口可以使文件能够存储在存储设备上。例如,接口108可以包括支持外围部件互连(PCI)和高速外围部件互连(PCIe)总线协议、专用总线协议、通用串行总线(USB)协议、I2C的芯片组、或可用于互连对等设备的任何其他逻辑和物理结构。
再次参考图1,目标设备120包括接口122、数据解封装器123、视频解码器124和显示器126。接口122可以包括被配置为从通信介质接收数据的任何设备。接口122可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者能够接收和/或发送信息的任何其他类型的设备。此外,接口122可以包括允许从存储设备检索合规视频比特流的计算机系统接口。例如,接口122可以包括支持PCI和PCIe总线协议、专用总线协议、USB协议、I2C的芯片组,或者可用于互连对等设备的任何其他逻辑和物理结构。数据解封装器123可被配置为接收和解析本文所述的任何示例语法结构。
视频解码器124可以包括被配置为接收比特流(例如,子比特流提取)和/或其可接受变体且从其再现视频数据的任何设备。显示器126可以包括被配置为显示视频数据的任何设备。显示器126可以包括各种显示设备诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另外的类型的显示器中的一种。显示器126可以包括高清显示器或超高清显示器。应当指出的是,尽管在图1所示的示例中,视频解码器124被描述为将数据输出到显示器126,但视频解码器124可以被配置为将视频数据输出到各种类型的设备和/或其子部件。例如,视频解码器124可被配置为将视频数据输出到任何通信介质,如本文所述。
图6是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图(例如,用于上述参考画面列表构建的解码过程)。在一个示例中,视频解码器600可被配置为对变换数据进行解码并基于解码的变换数据从变换系数重构残差数据。视频解码器600可被配置为执行帧内预测解码和帧间预测解码,并且因此可被称为混合解码器。视频解码器600可被配置为解析上面在表1至表28B中所述的语法元素的任何组合。视频解码器600可以基于或根据上述过程并且还基于表1至表28B中的解析值来解码画面。
在图6所示的示例中,视频解码器600包括熵解码单元602、逆量化单元604、逆变换系数处理单元606、帧内预测处理单元608、帧间预测处理单元610、求和器612、后置滤波器单元614和参考缓冲器616。视频解码器600可被配置为以与视频编码系统一致的方式对视频数据进行解码。应当指出的是,尽管示出的示例性视频解码器600具有不同的功能块,但此类图示旨在用于描述目的,并且不将视频解码器600和/或其子部件限制为特定的硬件或软件架构。可使用硬件、固件和/或软件具体实施的任何组合来实现视频解码器600的功能。
如图6所示,熵解码单元602接收熵编码的比特流。熵解码单元602可被配置为根据与熵编码过程互逆的过程从比特流中解码语法元素和量化系数。熵解码单元602可被配置为根据上文所述的任何熵编码技术来执行熵解码。熵解码单元602可以与视频编码标准一致的方式确定编码的比特流中的语法元素的值。如图6所示,熵解码单元602可以从比特流确定量化参数、量化系数值、变换数据和预测数据。在该示例中,如图6所示,逆量化单元604和逆变换系数处理单元606从熵解码单元602接收量化参数、量化系数值、变换数据和预测数据,并输出重构残差数据。
再次参见图6,可以将重构残差数据提供给求和器612。求和器612可以将重构残差数据添加到预测视频块并且生成重构视频数据。可根据预测视频技术(即帧内预测和帧间预测)确定预测视频块。帧内预测处理单元608可被配置为接收帧内预测语法元素并且从参考缓冲器616检索预测视频块。参考缓冲器616可以包括被配置为存储一个或多个视频数据帧的存储器设备。帧内预测语法元素可识别帧内预测模式,诸如上述的帧内预测模式。帧间预测处理单元610可接收帧间预测语法元素并生成运动矢量,以识别存储在参考缓冲器616中的一个或多个参考帧中的预测块。帧间预测处理单元610可以生成运动补偿块,可能基于内插滤波器执行内插。用于具有子像素精度的运动估计的内插滤波器的标识符可以包括在语法元素中。帧间预测处理单元610可以使用内插滤波器来计算参考块的子整数像素的内插值。后置滤波器单元614可被配置为对重构视频数据执行滤波。例如,后置滤波器单元614可被配置为执行解块和/或样本自适应偏移(SAO)滤波,例如基于在比特流中指定的参数。此外,应当指出的是,在一些示例中,后置滤波器单元614可被配置为执行专用的任意滤波(例如,视觉增强,诸如蚊状噪声消除)。如图6所示,视频解码器600可以输出重构的视频块。以此方式,视频解码器600表示一种设备的示例,该设备被配置为解析指示是否基于包括在序列参数集中的参考画面列表导出与画面标头相关联的画面的参考画面列表的语法元素,并且基于指示是否基于包括在序列参数集中的参考画面列表导出与画面标头相关联的画面的参考画面列表的该语法元素的值,有条件地解析指示与包括在该序列参数集中的参考画面列表相关联的索引值的语法元素。
在一个或多个示例中,所述功能可以通过硬件、软件、固件或它们的任何组合来实现。如果以软件实现,则可将功能作为一个或多个指令或代码存储在计算机可读介质上或经由计算机可读介质上传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于有形介质诸如数据存储介质的计算机可读存储介质,或者包括例如根据通信协议促进计算机程序从一个地方传输到另一个地方的任何介质的传播介质。这样,计算机可读介质通常可对应于:(1)非暂态的有形计算机可读存储介质,或者(2)通信介质诸如信号或载波。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中所述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
以举例而非限制的方式,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储设备、磁盘存储设备或其他磁存储设备、闪存存储器,或者可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其他介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或无线技术诸如红外线、无线电和微波从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术诸如红外线、无线电和微波都包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂态介质,而是针对非暂态有形存储介质。如本文所用,磁盘和光盘包括压缩光盘(CD)、激光盘、光学光盘、数字通用光盘(DVD)、软磁盘及Blu-ray光盘,其中磁盘通常以磁性方式复制数据,而光盘则利用激光以光学方式复制数据。上述的组合也应该包括在计算机可读介质的范围内。
可以由一个或多个处理器诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效集成或离散逻辑电路执行指令。因此,如本文所用的术语“处理器”可以指任何前述结构或适用于实现本文所描述的技术的任何其他结构。此外,在一些方面中,可以在被配置用于编码和解码的专用硬件和/或软件模块内提供本文所述的功能,或者将其结合到组合编解码器中。而且,这些技术可以完全在一个或多个电路或逻辑元件中实现。
本公开的技术可以在各种设备或装置(包括无线手机、集成电路(IC)或一组IC(例如,芯片组))中实现。在本公开中描述了各种部件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,可以将各种单元组合在编解码器硬件单元中,或者通过互操作硬件单元包括如上所述的一个或多个处理器的集合,结合合适的软件和/或固件来提供各种单元。
此外,每个上述实施方案中所使用的基站设备和终端设备的每个功能块或各种特征可通过电路(通常为一个集成电路或多个集成电路)实现或执行。被设计为执行本说明书中所述的功能的电路可以包括通用处理器、数字信号处理器(DSP)、专用或通用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑设备、分立栅极或晶体管逻辑器或分立硬件部件或它们的组合。通用处理器可以是微处理器,或另选地,该处理器可以是常规处理器、控制器、微控制器或状态机。通用处理器或上述每种电路可由数字电路进行配置,或者可由模拟电路进行配置。此外,当由于半导体技术的进步而出现制成取代当前集成电路的集成电路的技术时,也能够使用通过该技术生产的集成电路。
已经描述了各种示例。这些示例和其他示例在以下权利要求的范围内。
<发明内容>
在一个示例中,一种发送信号通知视频数据的解码单元参数的方法,该方法包括:发送信号通知指示解码单元参数是否被包括在画面定时消息中的语法元素;以及基于该语法元素的值有条件地在画面定时消息中发送信号通知解码单元参数。
在一个示例中,一种对视频数据进行解码的方法,该方法包括:解析指示解码单元参数是否被包括在画面定时消息中的语法元素;以及基于该语法元素的值有条件地解析画面定时消息中的解码单元参数。
在一个示例中,提供了该方法,其中该语法元素被包括在缓冲周期消息中。
在一个示例中,提供了该方法,其中解码单元参数包括解码单元输出延迟信息。
在一个示例中,提供了一种设备,该设备包括被配置为执行步骤的任意和全部组合的一个或多个处理器。
在一个示例中,提供了该设备,其中该设备包括视频编码器。
在一个示例中,提供了该设备,其中该设备包括视频解码器。
在一个示例中,一种系统,该系统包括:设备,该设备包括视频编码器;并且该设备包括视频解码器。
在一个示例中,一种装置,该装置包括:用于执行步骤的任意和全部组合的装置。
在一个示例中,提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括存储在其上的指令,这些指令当被执行时使得设备的一个或多个处理器执行步骤的任意和全部组合。
在一个示例中,一种接收画面定时消息的方法,该方法包括:接收缓冲周期消息;解析该缓冲周期消息中的标志语法元素,该标志语法元素指定在该画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数;接收该画面定时消息;以及在该标志语法元素的值等于一的情况下,解析该画面定时消息中的用于计算解码画面缓冲器输出时间的第一语法元素。
在一个示例中,该方法还包括:接收解码单元信息;以及在该标志语法元素的值等于零的情况下,解析该解码单元信息中的用于计算解码画面缓冲器输出时间的第二语法元素。
在一个示例中,一种接收画面定时消息的设备,该设备包括:处理器以及与该处理器相关联的存储器;其中该处理器被配置为执行以下步骤:接收缓冲周期消息;解析该缓冲周期消息中的标志语法元素,该标志语法元素指定在该画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数;接收该画面定时消息;以及在该标志语法元素的值等于一的情况下,解析该画面定时消息中的用于计算解码画面缓冲器输出时间的第一语法元素。
在一个示例中,一种发送信号通知画面定时消息的方法,该方法包括:发送信号通知缓冲周期消息,该缓冲周期消息包括指定在该画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数的标志语法元素;以及在该标志语法元素的值等于一的情况下,发送信号通知包括用于计算解码画面缓冲器输出时间的第一语法元素的该画面定时消息。
在一个示例中,一种发送信号通知画面定时消息的设备,该设备包括:处理器以及与该处理器相关联的存储器;其中该处理器被配置为执行以下步骤:发送信号通知缓冲周期消息,该缓冲周期消息包括指定在该画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数的标志语法元素;以及在该标志语法元素的值等于一的情况下,发送信号通知包括用于计算解码画面缓冲器输出时间的第一语法元素的该画面定时消息。
<交叉引用>
本非临时专利申请根据《美国法典》第35卷第119节(35U.S.C.§119)要求于2019年12月5日提交的临时申请62/944,206、2019年12月20日提交的临时申请62/951,987、2020年1月2日提交的临时申请62/956,523、2020年2月14日提交的临时申请62/976,846、2020年3月18日提交的临时申请62/991,499、2020年3月30日提交的临时申请63/002,127、2020年4月10日提交的临时申请63/008,453的优先权,这些临时申请的全部内容据此以引用方式并入。

Claims (5)

1.一种接收画面定时消息的方法,所述方法包括:
接收缓冲周期消息;
解析所述缓冲周期消息中的标志语法元素,所述标志语法元素指定在所述画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数;
接收所述画面定时消息;以及
在所述标志语法元素的值等于一的情况下,解析所述画面定时消息中的用于计算解码画面缓冲器输出时间的第一语法元素。
2.根据权利要求1所述的方法,所述方法还包括:
接收解码单元信息;以及
在所述标志语法元素的所述值等于零的情况下,解析所述解码单元信息中的用于计算所述解码画面缓冲器输出时间的第二语法元素。
3.一种接收画面定时消息的设备,所述设备包括:
处理器;以及
与所述处理器相关联的存储器;其中所述处理器被配置为执行以下步骤:
接收缓冲周期消息;
解析所述缓冲周期消息中的标志语法元素,所述标志语法元素指定在所述画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数;
接收所述画面定时消息;以及
在所述标志语法元素的值等于一的情况下,解析所述画面定时消息中的用于计算解码画面缓冲器输出时间的第一语法元素。
4.一种发送信号通知画面定时消息的方法,所述方法包括:
发送信号通知缓冲周期消息,所述缓冲周期消息包括指定在所述画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数的标志语法元素;以及
在所述标志语法元素的值等于一的情况下,发送信号通知包括用于计算解码画面缓冲器输出时间的第一语法元素的所述画面定时消息。
5.一种发送信号通知画面定时消息的设备,所述设备包括:
处理器;以及
与所述处理器相关联的存储器;其中所述处理器被配置为执行以下步骤:
发送信号通知缓冲周期消息,所述缓冲周期消息包括指定在所述画面定时消息中是否存在解码单元级解码画面缓冲器输出延迟参数的标志语法元素;以及
在所述标志语法元素的值等于一的情况下,发送信号通知包括用于计算解码画面缓冲器输出时间的第一语法元素的所述画面定时消息。
CN202080083809.9A 2019-12-05 2020-11-30 用于在视频编码中发送信号通知画面定时和解码单元信息的系统和方法 Pending CN114788290A (zh)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201962944206P 2019-12-05 2019-12-05
US62/944,206 2019-12-05
US201962951987P 2019-12-20 2019-12-20
US62/951,987 2019-12-20
US202062956523P 2020-01-02 2020-01-02
US62/956,523 2020-01-02
US202062976846P 2020-02-14 2020-02-14
US62/976,846 2020-02-14
US202062991499P 2020-03-18 2020-03-18
US62/991,499 2020-03-18
US202063002127P 2020-03-30 2020-03-30
US63/002,127 2020-03-30
US202063008453P 2020-04-10 2020-04-10
US63/008,453 2020-04-10
PCT/JP2020/044507 WO2021112036A1 (en) 2019-12-05 2020-11-30 Systems and methods for signaling picture timing and decoding unit information in video coding

Publications (1)

Publication Number Publication Date
CN114788290A true CN114788290A (zh) 2022-07-22

Family

ID=76221635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080083809.9A Pending CN114788290A (zh) 2019-12-05 2020-11-30 用于在视频编码中发送信号通知画面定时和解码单元信息的系统和方法

Country Status (4)

Country Link
US (1) US12316875B2 (zh)
EP (1) EP4070556A4 (zh)
CN (1) CN114788290A (zh)
WO (1) WO2021112036A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116847073A (zh) * 2022-10-13 2023-10-03 弗劳恩霍夫应用研究促进协会 使用编码图片缓存器的视频编码

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021201513A1 (ko) * 2020-03-30 2021-10-07 엘지전자 주식회사 Sps 내 ptl, dpb 및 hrd 관련 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
WO2021210841A1 (ko) * 2020-04-16 2021-10-21 엘지전자 주식회사 비디오 또는 영상 코딩 시스템에서의 픽처 헤더에 포함된 정보에 기반한 영상 코딩 방법
CN115917978A (zh) * 2020-06-08 2023-04-04 字节跳动有限公司 对解码图片缓冲器的约束
KR20230027156A (ko) * 2020-06-10 2023-02-27 엘지전자 주식회사 서브레이어 레벨 정보에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체
KR20230019261A (ko) * 2020-06-10 2023-02-07 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 다중-계층 비디오 비트스트림 및 출력 타이밍 유도을 위한 기타 시그널링 개념

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854552A (zh) * 2003-03-31 2010-10-06 夏普株式会社 视频编码器和编码视频的方法
WO2013109179A1 (en) * 2012-01-20 2013-07-25 Telefonaktiebolaget L M Ericsson (Publ) Output of decoded reference pictures
CN104396255A (zh) * 2012-07-02 2015-03-04 索尼公司 具有低延迟的视频编码系统及其操作方法
CN104396260A (zh) * 2012-07-02 2015-03-04 索尼公司 具有时域层的视频编码系统及其操作方法
US20150103921A1 (en) * 2013-10-14 2015-04-16 Nokia Corporation Apparatus, a method and a computer program for video coding and decoding
US20150103895A1 (en) * 2013-10-13 2015-04-16 Sharp Laboratories Of America, Inc. Electronic devices for signaling multiple initial buffering parameters
CN104685893A (zh) * 2012-06-29 2015-06-03 弗兰霍菲尔运输应用研究公司 视频数据流概念技术
CN104756495A (zh) * 2012-09-28 2015-07-01 夏普株式会社 用于发信号通知子画面缓冲器参数的电子设备
CN105308971A (zh) * 2013-06-03 2016-02-03 高通股份有限公司 假设的参考解码器模型和跨层随机存取跳过图片的一致性
CN105359525A (zh) * 2013-07-14 2016-02-24 夏普株式会社 瓦片对齐信令和一致性约束
US20170064301A1 (en) * 2015-08-26 2017-03-02 Zhan Ma Methods and Apparatus for Use of Reference Block in Video Coding
WO2018128228A1 (ko) * 2017-01-03 2018-07-12 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9503753B2 (en) * 2012-09-24 2016-11-22 Qualcomm Incorporated Coded picture buffer arrival and nominal removal times in video coding

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854552A (zh) * 2003-03-31 2010-10-06 夏普株式会社 视频编码器和编码视频的方法
WO2013109179A1 (en) * 2012-01-20 2013-07-25 Telefonaktiebolaget L M Ericsson (Publ) Output of decoded reference pictures
CN104685893A (zh) * 2012-06-29 2015-06-03 弗兰霍菲尔运输应用研究公司 视频数据流概念技术
CN104396255A (zh) * 2012-07-02 2015-03-04 索尼公司 具有低延迟的视频编码系统及其操作方法
CN104396260A (zh) * 2012-07-02 2015-03-04 索尼公司 具有时域层的视频编码系统及其操作方法
CN104756495A (zh) * 2012-09-28 2015-07-01 夏普株式会社 用于发信号通知子画面缓冲器参数的电子设备
CN105308971A (zh) * 2013-06-03 2016-02-03 高通股份有限公司 假设的参考解码器模型和跨层随机存取跳过图片的一致性
CN105359525A (zh) * 2013-07-14 2016-02-24 夏普株式会社 瓦片对齐信令和一致性约束
US20150103895A1 (en) * 2013-10-13 2015-04-16 Sharp Laboratories Of America, Inc. Electronic devices for signaling multiple initial buffering parameters
US20150103921A1 (en) * 2013-10-14 2015-04-16 Nokia Corporation Apparatus, a method and a computer program for video coding and decoding
US20170064301A1 (en) * 2015-08-26 2017-03-02 Zhan Ma Methods and Apparatus for Use of Reference Block in Video Coding
WO2018128228A1 (ko) * 2017-01-03 2018-07-12 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
B. BROSS, ET AL: "Versatile Video Coding (Draft 7)", 《JVET-P2001-V14 》, 14 November 2019 (2019-11-14) *
SACHIN DESHPANDE: "On Decoding Unit Parameters Signalling", 《JVET-Q0221-V1》, 30 December 2019 (2019-12-30), pages 1 - 9 *
吴永胜: "基于S3C2442视频解码研究与实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, 15 September 2009 (2009-09-15) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116847073A (zh) * 2022-10-13 2023-10-03 弗劳恩霍夫应用研究促进协会 使用编码图片缓存器的视频编码
CN116847076A (zh) * 2022-10-13 2023-10-03 弗劳恩霍夫应用研究促进协会 使用编码图片缓存器的视频编码
CN116847076B (zh) * 2022-10-13 2024-04-05 弗劳恩霍夫应用研究促进协会 使用编码图片缓存器的视频编码
CN116847073B (zh) * 2022-10-13 2024-05-28 弗劳恩霍夫应用研究促进协会 使用编解码图片缓存器的视频编解码方法

Also Published As

Publication number Publication date
EP4070556A1 (en) 2022-10-12
WO2021112036A1 (en) 2021-06-10
EP4070556A4 (en) 2023-10-11
US12316875B2 (en) 2025-05-27
US20230016439A1 (en) 2023-01-19

Similar Documents

Publication Publication Date Title
US11778236B2 (en) Device, and method of decoding video data
US20240305828A1 (en) Systems and methods for signaling subpicture information in video coding
US20220394301A1 (en) Systems and methods for signaling picture information in video coding
CN113170201B (zh) 用于对视频数据进行解码的方法和设备
US12096033B2 (en) Systems and methods for signaling buffering period information in video coding
US12231695B2 (en) Systems and methods for signaling sequence parameter information in video coding
US12262040B2 (en) Systems and methods for signaling temporal sublayer information in video coding
CN113892271B (zh) 用于在视频编码中发送信号通知假想参考解码器参数的系统和方法
CN114270864A (zh) 用于在视频编码中发送信号通知图片信息的系统和方法
CN113632489B (zh) 对视频数据进行解码的设备和方法
US12088848B2 (en) Systems and methods for signaling output layer set information in video coding
US12316875B2 (en) Systems and methods for signaling picture timing and decoding unit information in video coding
US11792433B2 (en) Systems and methods for signaling profile and level information in video coding
CN114830672A (zh) 用于在视频编码中发送信号通知图片输出分辨率的系统和方法
US20220109865A1 (en) Systems and methods for signaling picture buffer information for intra random access point picture sub-bitstreams in video coding
US20220385918A1 (en) Systems and methods for signaling buffering period information in video coding
US20250024082A1 (en) Systems and methods for reducing latency in decoding of coded video data
US20240251106A1 (en) Systems and methods for signaling picture resolution information in video coding
CN119325713A (zh) 用于在视频编码中发送信号通知参考图片列表条目信息的系统和方法
CN118844059A (zh) 用于在视频编码中处置边界外运动补偿预测因子的系统和方法
CN118303028A (zh) 用于减少编码视频数据的解码中的延迟的系统和方法
CN119743625A (zh) 用于在视频编码中发送信号通知关于时间子层的源图片定时信息的系统和方法
CN118283280A (zh) 对视频数据执行神经网络滤波的方法及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination