一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于在视频编码中发送信号通知解码图片缓冲器信息的系统和方法与流程

2022-02-24 20:13:18 来源:中国专利 TAG:


1.本公开涉及视频编码,并且更具体地涉及用于发送信号通知编码视频的解码图片缓冲器信息的技术。


背景技术:

2.数字视频功能可以结合到各种设备中,包括数字电视、笔记本电脑或台式电脑、平板电脑、数字录音设备、数字媒体播放器、视频游戏设备、蜂窝电话(包括所谓的智能电话)、医学成像设备等。可以根据视频编码标准对数字视频进行编码。视频编码标准定义了封装编码视频数据的兼容比特流的格式。兼容比特流是可以由视频解码设备接收和解码以生成重构视频数据的数据结构。视频编码标准可以结合视频压缩技术。视频编码标准的示例包括iso/iec mpeg-4 visual和itu-t h.264(也被称为iso/iec mpeg-4 avc)和高效视频编码(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 compression with 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。vceg和mpeg的下一代视频编码标准的当前开发被称为通用视频编码(vvc)项目。2019年3月19日至27日在瑞士日内瓦(geneva,ch)举行的iso/iec jtc1/sc29/wg11第14次会议中的“versatile video coding(draft 5)”(文档jvet-n1001-v7,其以引用方式并入本文,并且称为jvet-n1001)表示对应于vvc项目的视频编码规范的草稿文本的当前迭代。
3.视频压缩技术能够减少存储和传输视频数据的数据需求。视频压缩技术可以通过利用视频序列中固有的冗余来减少数据需求。视频压缩技术可将视频序列再分成连续较小的部分(即,视频序列内的一组图片、一组图片内的图片、图片内的区域、区域内的子区域等)。可以使用帧内预测编码技术(例如,图片内的空间预测技术)和帧间预测技术(即图片
间的技术(时间))来生成待编码的单位视频数据与视频数据的参考单元之间的差值。该差值可以被称为残差数据。残差数据可以被编码为量化变换系数。语法元素可以涉及残差数据和参考编码单元(例如,帧内预测模式索引和运动信息)。可以对残差数据和语法元素进行熵编码。熵编码的残差数据和语法元素可以包括在形成兼容比特流的数据结构中。


技术实现要素:

4.在一个示例中,一种对视频数据进行解码的方法,该方法包括:解析指定可存在于编码视频序列中的时间子层的最大数量的语法元素;确定指定可存在于编码视频序列中的时间子层的该最大数量的该语法元素的值是否大于零;以及仅当确定指定可存在于编码视频序列中的时间子层的该最大数量的该语法元素的该值大于零时,有条件地解析指示解码图片缓冲器参数的存在的语法元素。
5.在一个示例中,一种包括一个或多个处理器的设备,该一个或多个处理器被配置为:解析指定可存在于编码视频序列中的时间子层的最大数量的语法元素;确定指定可存在于编码视频序列中的时间子层的该最大数量的该语法元素的值是否大于零;并且仅当确定可存在于编码视频序列中的时间子层的该最大数量大于零时,有条件地解析指示解码图片缓冲器参数的存在的语法元素。
附图说明
6.[图1]图1是示出根据本公开的一种或多种技术的可以被配置为对视频数据进行编码和解码的系统的示例的框图。[图2]图2是示出根据本公开的一种或多种技术的编码视频数据和对应数据结构的概念图。[图3]图3是示出根据本公开的一种或多种技术封装编码视频数据和对应元数据的数据结构的概念图。[图4]图4是示出根据本公开的一种或多种技术的可被包括在可被配置为对视频数据进行编码和解码的系统的具体实施中的部件的示例的概念图。[图5]图5是示出根据本公开的一种或多种技术的可被配置为对视频数据进行编码的视频编码器的示例的框图。[图6]图6是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图。
具体实施方式
[0007]
一般来讲,本公开描述了用于对视频数据进行编码的各种技术。具体地,本公开描述了用于发送信号通知编码视频数据的解码图片缓冲器信息的技术。应当指出的是,尽管本公开的技术是关于itu-t h.264、itu-t h.265、jem和jvet-n1001描述的,但本公开的技术可普遍应用于视频编码。例如,除了包括在itu-t h.265、jem和jvet-n1001中的那些技术,本文所述的编码技术可并入视频编码系统(包括基于未来视频编码标准的视频编码系统),包括视频块结构、帧内预测技术、帧间预测技术、变换技术、滤波技术和/或其他熵编码技术。因此,对itu-t h.264、itu-t h.265、jem和/或jvet-n1001的参考是出于描述性目的,
并且不应被解释为限制本文所述技术的范围。此外,应当指出的是,将文献以引用方式并入本文是出于描述性目的,并且不应被解释为限制或产生关于本文所用术语的歧义。例如,在某个并入的参考文献中提供的对某个术语的定义不同于另一个并入的参考文献和/或如本文所用的该术语的情况下,则该术语应以广泛地包括每个相应定义的方式和/或以包括替代方案中每个特定定义的方式来解释。
[0008]
在一个示例中,一种对视频数据进行编码的方法包括:发送信号通知第一值,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;以及发送信号通知第二值,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小,其中用于该对应第二视频子层的解码图片缓冲器的该最大所需大小被计算为该第一值和该第二值的总和。
[0009]
在一个示例中,一种设备包括一个或多个处理器,该一个或多个处理器被配置为:发送信号通知第一值,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;并且发送信号通知第二值,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小,其中用于该对应第二视频子层的解码图片缓冲器的该最大所需大小被计算为该第一值和该第二值的总和。
[0010]
在一个示例中,一种非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时,使得设备的一个或多个处理器:发送信号通知第一值,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;并且发送信号通知第二值,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小,其中用于该对应第二视频子层的解码图片缓冲器的该最大所需大小被计算为该第一值和该第二值的总和。
[0011]
在一个示例中,一种装置包括:用于发送信号通知第一值的装置,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;以及用于发送信号通知第二值的装置,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小,其中用于该对应第二视频子层的解码图片缓冲器的该最大所需大小被计算为该第一值和该第二值的总和。
[0012]
在一个示例中,一种对视频数据进行解码的方法包括:解析第一值,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;解析第二值,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小,以及将用于该对应第二视频子层的解码图片缓冲器的该最大所需大小计算为该第一值和该第二值的总和。
[0013]
在一个示例中,一种设备包括一个或多个处理器,该一个或多个处理器被配置为:解析第一值,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;解析第二值,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小;并且将用于该对应第二视频子层的解码图片缓冲器的该最大所需大小计算为该第一值和该第二值的总和。
[0014]
在一个示例中,一种非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时,使得设备的一个或多个处理器:解析第一值,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;解析第二值,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小;并且将用于该对应第二视频子层的解码图片缓冲器的该最大所需大小计算为该第一值和该第二值的总和。
[0015]
在一个示例中,一种装置包括:用于解析第一值的装置,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;用于解析第二值的装置,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小;和用于将用于该对应第二视频子层的解码图片缓冲器的该最大所需大小计算为该第一值和该第二值的总和的装置。
[0016]
在以下附图和描述中阐述了一个或多个示例的细节。根据描述和附图以及权利要求书,其他特征、对象和优点将显而易见。
[0017]
视频内容包括由一系列帧(或图片)组成的视频序列。一系列帧也可以被称为一组图片(gop)。每个视频帧或图片可被分成一个或多个区域。可根据基础单元(例如,视频块)和限定区域的规则集来限定区域。例如,限定区域的规则可以是区域必须是布置成矩形的整数个视频块。此外,区域中的视频块可以根据扫描模式(例如,光栅扫描)来排序。如本文所用,术语“视频块”通常可以指图片的区域,或者可以更具体地指可以被预测性地编码的样本值的最大阵列、其子分区和/或对应结构。此外,术语“当前视频块”可以指图片的正被编码或解码的区域。视频块可被定义为样本值的阵列。应当指出的是,在一些情况下,像素值可被描述为包括视频数据的相应分量的样本值,其也可被称为颜色分量(例如,亮度(y)和色度(cb和cr)分量或红色、绿色和蓝色分量)。应当指出的是,在一些情况下,术语“像素值”和“样本值”可互换使用。此外,在一些情况下,像素或样本可被称为pel。视频采样格式(也可以被称为色度格式)可以相对于视频块中包括的亮度样本的数量来定义视频块中包括的色度样本的数量。例如,对于4:2:0采样格式,亮度分量的采样率是水平和垂直两个方向的色度分量的采样率的两倍。
[0018]
视频编码器可对视频块和其子分区执行预测编码。视频块和其子分区可以被称为节点。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-t h.265中,可以发送信号通知cb的最小允许大小。在itu-t h.265中,亮度cb的最小允许最小大小是8
×
8亮度样本。在itu-t h.265中,使用帧内预测或帧间预测对图片区域进行编码的决定在cu位阶处进行。
[0019]
在itu-t h.265中,cu与在cu处具有其根的预测单元(pu)结构相关联。在itu-t h.265中,pu结构允许分割亮度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的参考和/或预测样本值。
[0020]
jem指定具有最大大小的256
×
256亮度样本的ctu。jem指定四叉树加二叉树(qtbt)块结构。在jem中,qtbt结构允许由二叉树(bt)结构进一步划分四叉树叶节点。也就是说,在jem中,二叉树结构允许将四叉树叶节点垂直或水平递归划分。在jvet-n1001中,根据四叉树加多类型树(qtmt或qt mtt)结构来划分ctu。jvet-n1001中的qtmt类似于jem中的qtbt。然而,在jvet-n1001中,除了指示二进制分割之外,多类型树还可以指示所谓的三元(或三叉树(tt))分割。三元分割将一个块垂直地或水平地分成三个块。在垂直tt分割的情况下,块从左边缘起在其宽度的四分之一处以及从右边缘起在其宽度的四分之一处分割,并且在水平tt分割的情况下,块从顶部边缘起在其高度的四分之一处以及从底部边缘起在其高度的四分之一处分割。
[0021]
如上所述,每个视频帧或图片可被分成一个或多个区域。例如,根据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属于同一个切片。
[0022]
关于jvet-n1001,切片需要由整数个砖块组成,而不是仅需要由整数个ctu组成。在jvet-n1001中,砖块是图片中特定图块内的矩形ctu行区域。此外,在jvet-n1001中,图块可被划分成多个砖块,每个砖块由图块内的一个或多个ctu行组成。未被划分成多个砖块的图块也被称为砖块。然而,作为图块的真子集的砖块不被称为图块。因此,在一些视频编码技术中,可支持或可不支持包括不形成图片的矩形区域的一组ctu的切片。此外,应当指出的是,在一些情况下,切片可能需要由整数个完整图块组成,并且在这种情况下,切片被称为图块组。本文所述的技术可适用于砖块、切片、图块和/或图块组。图2是示出包括切片的图片组的示例的概念图。在图2所示的示例中,pic3被示出为包括两个切片(即,切片0和切片1)。在图2所示的示例中,切片0包括一个砖块,即砖块0,并且切片1包括两个砖块,即砖块1和砖块2。应当指出的是,在一些情况下,切片0和切片1可满足图块和/或图块组的要求并被分类为图块和/或图块组。
[0023]
对于帧内预测编码,帧内预测模式可指定图片内的参考样本的位置。在itu-t h.265中,已定义的可能的帧内预测模式包括平面(即,表面拟合)预测模式、dc(即平坦的整体平均)预测模式,以及33个角度预测模式(predmode:2-34)。在jem中,已定义的可能的帧内预测模式包括平面预测模式、dc预测模式,以及65个角度预测模式。应当指出的是,平面预测模式和dc预测模式可以被称为无方向预测模式,并且角度预测模式可以被称为方向预
测模式。应当指出的是,无论已定义的可能预测模式的数量如何,本文描述的技术可以是普遍适用的。
[0024]
对于帧间预测编码,确定参考图片,并且运动矢量(mv)识别该参考图片中用于生成对当前视频块的预测的样本。例如,可使用位于一个或多个先前编码的图片中的参考样本值来预测当前视频块,并且运动矢量用于指示参考块相对于当前视频块的位置。运动矢量可描述例如运动矢量的水平位移分量(即mv
x
)、运动矢量的垂直位移分量(即mvy)和运动矢量的分辨率(例如,四分之一像素精度、二分之一像素精度、一像素精度、二像素精度、四像素精度)。先前解码的图片(其可包括在当前图片之前或之后输出的图片)可被组织成一个或多个参考图片列表,并且使用参考图片索引值来标识。此外,在帧间预测编码中,单预测是指使用来自单个参考图片的样本值生成预测,双预测是指使用来自两个参考图片的相应样本值生成预测。也就是说,在单预测中,单个参考图片和对应的运动矢量用于生成对当前视频块的预测,而在双预测中,第一参考图片和对应的第一运动矢量以及第二参考图片和对应的第二运动矢量用于生成对当前视频块的预测。在双预测中,将相应的样本值组合(例如,相加、舍入和裁剪,或根据权重进行平均)以生成预测。图片及其区域可基于哪些类型的预测模式可用于对其视频块进行编码而被分类。也就是说,对于具有b类型的区域(例如,b切片),可利用双预测、单预测和帧内预测模式,对于具有p类型的区域(例如,p切片),可利用单预测和帧内预测模式,对于具有i类型的区域(例如,i切片),只能利用帧内预测模式。如上所述,通过参考索引来识别参考图片。例如,对于p切片,可以存在单个参考图片列表refpiclist0,并且对于b切片,除了refpiclist0之外,可以存在第二独立参考图片列表refpiclist1。应当指出的是,对于b切片中的单预测,可使用refpiclist0或refpiclist1中的一者来生成预测。此外,应当指出的是,在解码过程期间,在开始对图片进行解码时,从存储在解码图片缓冲器(dpb)中的先前解码的图片生成参考图片列表。
[0025]
此外,编码标准可支持各种运动矢量预测模式。运动矢量预测使能够基于另一运动矢量来导出用于当前视频块的运动矢量的值。例如,可以从当前视频块的空间相邻块和时间相邻块导出具有相关联的运动信息的一组候选块。此外,所生成的(或默认的)运动信息可用于运动矢量预测。运动矢量预测的示例包括高级运动矢量预测(amvp)、时间运动矢量预测(tmvp)、所谓的“合并”模式,以及“跳过”和“直接”运动推理。此外,运动矢量预测的其他示例包括高级时间运动矢量预测(atmvp)和空间-时间运动矢量预测(stmvp)。对于运动矢量预测,视频编码器和视频解码器两者执行相同的过程以导出一组候选。因此,对于当前视频块,在编码和解码期间生成相同的一组候选。
[0026]
如上所述,对于帧间预测编码,先前编码的图片中的参考样本用于对当前图片中的视频块进行编码。在对当前图片进行编码时可用作参考的先前编码的图片被称为参考图片。应当指出的是,解码顺序不一定对应于图片输出顺序,即视频序列中图片的时间顺序。在itu-t h.265中,当图片被解码时,其被存储到解码图片缓冲器(dpb)(其可被称为帧缓冲器、参考缓冲器、参考图片缓冲器等)。在itu-t h.265中,存储到dpb的图片在被输出时从dpb中移除,并且不再需要用于编码后续图片。在itu-t h.265中,在对切片标头进行解码之后,即,在对图片进行解码开始时,每个图片调用一次是否应从dpb中移除图片的确定。例如,参考图2,pic3被示出为参考pic2。类似地,pic4被示出为参考pic1。关于图2,假设图片数量对应于解码顺序,dpb将填充如下:在解码pic1之后,dpb将包括{pic1};在解码pic2开始
时,dpb将包括{pic1};在解码pic2之后,dpb将包括{pic1,pic2};在解码pic3开始时,dpb将包括{pic1,pic2}。然后,将参考pic2解码pic3,并且在解码pic3之后,dpb将包括{pic1,pic2,pic3}。在解码pic4开始时,图片pic2和pic3将被标记以从dpb中移除,因为它们不是解码pic4(或任何后续图片,未示出)所需的,并且假设pic2和pic3已被输出,则dpb将被更新以包括{pic1}。然后将使用参考pic1对pic4进行解码。标记图片以将其从dpb中移除的过程可以称为参考图片集(rps)管理。
[0027]
如上所述,帧内预测数据或帧间预测数据用于产生样本值的块的参考样本值。包括在当前pb或另一类型的图片区域结构和相关联的参考样本(例如,使用预测生成的那些)中的样本值之间的差可以被称为残差数据。残差数据可以包括对应于视频数据的每个分量的相应差值阵列。残差数据可能在像素域中。可对差值阵列应用变换诸如离散余弦变换(dct)、离散正弦变换(dst)、整数变换、小波变换或概念上类似的变换,以生成变换系数。应当指出的是,在itu-t h.265和jvet-n1001中,cu与在cu级具有其根的变换单元(tu)结构相关联。即,为了生成变换系数,可以对差值的阵列进行划分(例如,可以将四个8
×
8变换应用于16
×
16残差值阵列)。对于视频数据的每个分量,差值的此类再分可被称为变换块(tb)。应当指出的是,在一些情况下,可以(在视频编码器中)应用核心变换和后续二次变换来生成变换系数。对于视频解码器,变换的顺序是相反的。
[0028]
可以直接对变换系数或残差样本值执行量化过程(例如,就调色板编码量化而言)。量化通过限制为一组指定值的振幅来近似变换系数。量化实质上对变换系数进行缩放以便改变表示一组变换系数所需的数据量。量化可以包括将变换系数(或将偏移值添加到变换系数得到的值)除以量化缩放因子和任何相关联的取整函数(例如,取整为最接近的整数)。量化的变换系数可以被称为系数位阶值。逆量化(或“去量化”)可以包括将系数位阶值与量化缩放因子相乘,以及任何倒数取整或偏移加法运算。应当指出的是,如本文所用,术语量化过程在一些情况下可指除以缩放因子以生成位阶值,并且在一些情况下可指乘以缩放因子以恢复变换系数。也就是说,量化过程在一些情况下可以指量化,而在一些情况下可以指逆量化。此外,应当指出的是,虽然在下面的示例中的一些示例中关于与十进制记数法相关的算术运算描述了量化过程,但是这样的描述是为了说明的目的,并且不应该被解释为进行限制。例如,本文描述的技术可以在使用二进制运算等的设备中实现。例如,本文描述的乘法和除法运算可以使用移位运算等来实现。
[0029]
可根据熵编码技术对量化的变换系数和语法元素(例如,指示视频块的编码结构的语法元素)进行熵编码。熵编码过程包括使用无损数据压缩算法对语法元素值进行编码。熵编码技术的示例包括内容自适应可变长度编码(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。
÷
在不旨在进行截断或舍入情况下用于表示数学公式中的除法。在不旨在进行截断或舍入情况下用于表示数学公式中的除法。
[0030]
此外,可使用以下数学函数:log2(x)x的以2为底的对数;log2(x)x的以2为底的对数;ceil(x)大于或等于x的最小整数。
[0031]
关于本文使用的示例性语法,可以应用以下逻辑运算符的定义:x&&yx和y的布尔逻辑“和”x||yx和y的布尔逻辑“或”!布尔逻辑“否”x?y:z如果x为true或不等于0,则求值为y;否则,求值为z。
[0032]
此外,可应用以下关系运算符:>大于≥大于或等于<小于≤小于或等于==等于!=不等于
[0033]
此外,应当指出的是,在本文所用的语法描述符中,可以应用以下描述符:-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编码的语法元素,从最左位起。
[0034]
如上所述,视频内容包括由一系列帧(或图片)组成的视频序列,并且每个视频帧或图片可被分成一个或多个区域。编码视频序列(cvs)可以被封装(或结构化)为一系列访问单元,其中每个访问单元包括被配置为网络抽象层(nal)单元的视频数据。比特流可被描述为包括形成一个或多个cvs的nal单元序列。应当指出的是,多层扩展使视频呈现能够包括基底层和一个或多个附加增强层。例如,基底层可以使得能够呈现具有基本质量水平(例如,高清晰度呈现和/或30hz帧率)的视频呈现,并且增强层可以使得能够呈现具有增强的质量水平(例如,超高清渲染和/或60hz帧率)的视频呈现。可以通过参考基底层来对增强层进行编码。也就是说,例如可以通过参考基底层中的一个或多个图片(包括其缩放版本)来对增强层中的图片进行编码(例如,使用层间预测技术)。每个nal单元可以包括指示nal单元与之相关联的视频数据层的标识符。应当指出的是,子比特流提取可以指接收兼容或符合性比特流的设备通过丢弃和/或修改接收到的比特流中的数据来形成新的兼容或符合性比特流的过程。例如,子比特流提取可以用于形成对应于特定视频表示(例如,高质量表示)的新的兼容或符合性比特流。层也可彼此独立地被编码。在这种情况下,两层之间可能不存在层间预测。
[0035]
参考图2中所示的示例,pic3中包括的每个视频数据切片(即,切片0切片1)被示出为封装在nal单元中。在jvet-n1001中,视频序列、gop、图片、切片和ctu中的每一者可以与描述视频编码属性的元数据相关联。jvet-n1001定义了可用于描述视频数据和/或视频编码属性的参数集。具体地讲,jvet-n1001包括以下五种类型的参数集:解码参数集(dps)、视频参数集(vps)、序列参数集(sps)、图片参数集(pps)和自适应参数集(aps)。关于sps,jvet-n1001包括以下定义:序列参数集(sps):一种语法结构,包含应用于零个或多个完整cvs的语法元素,这些cvs由在每个切片标头中找到的语法元素引用的pps中找到的语法元素的内容确定。
[0036]
在jvet-n1001中,参数集可以被封装为特殊类型的nal单元,或者可以作为消息发送信号通知。包括编码视频数据(例如,切片)的nal单元可以被称为vcl(视频编码层)nal单元,并且包括元数据(例如,参数集)的nal单元可以被称为非vcl nal单元。此外,jvet-n1001使得补充增强信息(sei)消息能够被发送信号通知。在jvet-n1001中,sei消息协助与解码、显示或其他目的有关的过程,然而,可能不需要sei消息来通过解码过程构建亮度或色度样本。在jvet-n1001中,可以使用非vcl nal单元在比特流中发送信号通知sei消息。此外,sei消息可以通过某种方式传送,而不是通过存在于比特流中(即,在带外发送信号通
知)。
[0037]
访问单元可被称为层访问单元。如上所述,多层扩展使视频呈现能够包括基底层和一个或多个附加增强层。应当指出的是,在itu-t h.265中,可扩展层的时间真子集不被称为层,而是被称为子层或时间子层。也就是说,itu-t h.265提供了关于子层的以下定义:子层:时间可扩展比特流的时间可扩展层,由具有特定temporalld变量值的vcl nal单元和相关联的非vcl nal单元组成。术语子层和时间子层可互换使用。
[0038]
如上所述,子比特流提取可以用于形成对应于特定视频表示的新比特流。应当注意,对于特定时间视频表示(例如,60hz表示),子比特流提取可包括提取基底层和一个或多个增强层,其中可使用最高时间子层标识符(例如,highesttid)来指定特定表示。也就是说,例如,可通过提取10hz时间子层标识符=0、30hz时间子层标识符=1和60hz时间子层标识符=2来形成60hz表示。也就是说,提取具有小于等于目标子层的时间子层标识符highesttid的每个时间子层以用于表示。
[0039]
图3示出了包括多个cvs的比特流的示例,其中cvs由包括在相应的访问单元中的nal单元表示。在图3所示的示例中,非vcl nal单元包括相应的参数集nal单元(即,序列参数集(sps)和图像参数集(pps)nal单元)、sei消息nal单元和访问单元界定符nal单元。应当指出的是,在图3中,header是nal单元标头。
[0040]
jvet-n1001定义了nal单元标头语义,其指定了包括在nal单元中的原始字节序列有效载荷(rbsp)数据结构的类型。表1示出了jvet-n1001中提供的nal单元标头的语法。表1
[0041]
jvet-n1001针对表1中所示的相应语法元素提供了以下定义。zero_tid_required_flag等于0指定zero_tid_required_flag不对nuh_temporal_id_plus1的值施加任何附加约束。nuh_temporal_id_plus1减1指定nal单元的时间标识符。nuh_temporal_id_plusl的值应不等于0。当zero_tid_required_flag等于1时,nuh_temporal_id_plus1的值应等于1。变量temporalid如下导出:temporalid=nuh_temporal_id_plus 1-1注意—在16至31的范围内(包括端值)的nal单元类型具有等于1的zero_tid_required_flag,并且因此具有等于0的temporalid。
层访问单元的所有vcl nal单元的temporalid的值应相同。编码图片或层访问单元的temporalid的值是编码图片或层访问单元的vcl nal单元的temporalid的值。非vcl nal单元的temporalid的值被约束如下:-如果nalunittype等于sps_nut,则temporalld等于0,并且包含nal单元的层访问单元的temporalid应等于0。-否则,如果nalunittype等于aps_nut,则temporalid应等于包含nal单元的层访问单元的temporalid。-否则,当nalunittype不等于eos_nut并且不等于eob_nut时,temporalid应大于或等于包含nal单元的层访问单元的temporalid。注意—当nal单元是非vcl nal单元时,temporalid的值等于非vcl nal单元所应用的所有层访问单元的temporalid值的最小值。当nalunittype等于pps_nut时,temporalid可大于或等于包含层访问单元的temporalid,因为所有图片参数集(pps)可包括在比特流的开始中,其中第一编码图片具有等于0的temporalid。当nalunittype等于prefix_sei_nut或suffix_sei_nut时,temporalid可大于或等于包含层访问单元的temporalid,因为sei nal单元可包含应用于比特流子集的信息,该比特流子集包括其temporalid值大于包含sei nal单元的层访问单元的temporalid的层访问单元。nuh_layer_id指定vcl nal单元所属的层的标识符或者非vcl nal单元适用的层的标识符。nuh_layer_id的值应在0至126的范围内(包括端值)。未来可由itu-t|iso/iec指定值127。出于确定比特流的解码单元中的数据量之外的目的,解码器应忽略nal单元中nuhlayerid的值127之后的所有数据。注意—在本说明书的未来扩展中,nuh_layer_id的值127可用于指示扩展层标识符。编码图片的所有vcl nal单元的nuh_layer_id的值应相同。编码图片的nuh_layer id的值是编码图片的vcl nal单元的nuh_layer_id的值。nuh_reserved_zero_bit应等于

o’。未来可由itu-t|iso/iec指定nuh_reserved_zero_bit的值1。解码器应忽略(即,从比特流中移除并丢弃)nuh_reserved_zero_bit等于
‘1’
的nal单元。
[0042]
关于语法元素nal_unit_type_lsb,jvet-n1001提供如下:nal_unit_type_lsb指定nal单元类型的最低有效位。变量nalunittype指定nal单元类型,即,如表2中指定的nal单元中包含的rbsp数据结构的类型,该变量如下导出:nalunittype=(zero_tid_required_flag《《4) nal_unit_type_lsb具有在unspec28

unspec31的范围内(包括端值)的nalunittype的nal单元(其语义未指定)应不影响本说明书中指定的解码过程。注意—在unspec28

unspec31的范围内的nal单元类型可如由应用程序所确定的那样使用。在本说明书中未指定针对nalunittype的这些值的解码过程。由于不同的应用程序可能出于不同的目的使用这些nal单元类型,因此在设计生成具有这些nalunittype值的nal单元的编码器时以及在设计解释具有这些nalunittype值的nal单元的内容的解码器时
必须特别注意。本说明书未定义对这些值的任何管理。这些nalunittype值可能仅适用于使用“冲突”(即,同一nalunittype值的nal单元内容的含义具有不同定义)不重要、或不可能或被管理的上下文中,例如,在控制应用程序或运输规范中定义或管理,或者通过控制分发比特流的环境来管理。出于确定比特流的解码单元中的数据量之外的目的,解码器应忽略(从比特流中移除并丢弃)使用nalunittype的保留值的所有nal单元的内容。注意—该要求允许未来定义本说明书的兼容扩展。
表2注意—干净随机存取(cra)图片可具有存在于比特流中的相关联rasl或radl图片。注意—具有等于idrnlp的nalunittype的瞬时解码刷新(idr)图片不具有存在于比特流中的相关联前导图片。具有等于ldr w radl的nalunittype的idr图片不具有存在于比特流中的相关联rasl图片,但可具有在比特流中的相关联radl图片。
[0043]
应当指出的是,一般来讲,例如相对于itu-t h.265,irap图片是在其解码过程中不引用其自身之外的任何图片来进行帧间预测的图片。通常,比特流中解码顺序中的第一图片必须是irap图片。在itu-t h.265中,irap图片可以是断链路存取(bla)图片、干净随机存取(cra)图片或瞬时解码刷新(idr)图片。itu-t h.265描述了前导图片的概念,前导图片是在输出顺序中在相关联irap图片之前的图片。itu-t h.265还描述了拖尾图片的概念,拖尾图片是在输出顺序中在相关联irap图片之后的非irap图片。与irap图片相关联的拖尾图片在解码顺序中也在irap图片之后。对于idr图片,不存在需要引用在idr图片之前解码的图片的拖尾图片。itu-t h.265规定了cra图片可具有在解码顺序中在cra图片之后的前导图片,并且包含引用在cra图片之前解码的图片的图片间预测。因此,当cra图片用作随机访问点时,这些前导图片可能不可解码并且被识别为随机访问跳过前导(rasl)图片。bla图片也可在rasl图片之后。当这些rasl图片不可解码时,即当解码器在cra点处开始其解码过程时,对于bla图片并且对于cra图片,这些rasl图片总是被丢弃。可在解码顺序中在irap图片之后并且在输出顺序中在irap图片之前的另一类型的图片是随机访问可解码前导(radl)图片,其不可包含对在解码顺序中在irap图片之前的任何图片的引用。
[0044]
如上所述,在jvet-n1001中,非vcl nal单元包括相应参数集nal单元。表3示出了jvet-n1001中提供的序列参数集语法。
表3
[0045]
关于表3,jvet-n1001提供了以下语义:当sps_decoding_parameter_set_id大于0时,其指定由sps引用的dps的dps_decoding_parameter_set_id的值。当sps_decoding_parameter_set_id等于0时,sps不引用dps,并且当对引用sps的每个cvs进行解码时,没有dps是活动的。当sps_video_parameter_set_id大于0时,其指定由sps引用的vps的vps_video_parameter_set_id的值。当sps_video_parameter_set_id等于0时,sps不引用vps,并且当对引用sps的每个cvs进行解码时,没有vps是活动的。sps_max_sub_layers_minus1加1指定引用sps的每个cvs中可存在的最大时间子层数量。sps_max_sub_layers_minus1的值应在0至6的范围内(包括端值)。在符合本说明书的此版本的比特流中,sps_reserved_zero_5bits应等于0。保留用于sps_reserved_zero 5bits的其他值以供itu-t|iso/iec将来使用。gra_enabled_flag等于1指定在引用sps的cvs中可存在gra图片。gra_enabled_flag等于0指定在引用sps的cvs中不存在gra图片。sps_seq_parameter_set_id提供sps的标识符以供其他语法元素引用。sps_seq_parameter_set_id的值应在0至15的范围内(包括端值)。如所指定的,chroma_format_idc指定相对于亮度采样的色度采样。chroma_format_idc的值应在0至3的范围内(包括端值)。separate_colour_plane_flag等于1指定4:4:4色度格式的三个颜色分量被单独地编码。separate_colour_plane_flag等于0指定颜色分量不被单独地编码。当separate_colourjplane_flag不存在时,推断其等于0。当scparale_colour plane_flag等于1时,编码图片由三个单独的分量组成,每个分量由一个颜色平面(y、cb或cr)的编码样本组成并且使用单色编码语法。在这种情况下,每个颜色平面与特定的colour_plane_id值相关联。注意—在具有不同colour_plane_id值的颜色平面之间的解码过程不存在相关
性。例如,具有colour_plane_id的一个值的单色图片的解码过程不使用来自具有不同颜色平面id值的单色图片的任何数据进行帧间预测。根据separate_colour_plane_flag的值,变量chromaarraytype的值如下指定:-如果separate_colour_plane flag等于0,则将chromaarraytype设定为等于chroma_format_idc。-否则(separate_colour_plane_flag等于1),将chromaarraytype设定为等于0。pic_width_in_luma_samples指定每个解码图片的宽度,单位为亮度样本。pic_width_in_luma_samples应不等于0并且应为mincbsizey的整数倍。pic_height_in_luma_samples指定每个解码图片的高度,单位为亮度样本。pic_height_in_luma_samples应不等于0并且应为mincbsizey的整数倍。conformance_window_flag等于1表示在sps中贴合裁剪窗口偏移参数紧随其后。conformance_window_flag等于0表示不存在贴合裁剪窗口偏移参数。conf_win_left_offset、conf_win_right_offset、conf_win_top_offset和conf_win_bottom_offset根据在要输出的图片坐标中指定的矩形区域,指定cvs中从解码过程输出的图片的样本。当conformance_window_flag等于0时,推断conf_winleft_offset、conf_win_right_offset、conf_win_top_offset和conf_win bottom_offset的值等于0。贴合裁剪窗口包含具有从subwidthc*conf_win_left_offset到pic_width_in_luma_samples-(subwidthc*conf_win_right_offset 1)的水平图片坐标,和从subheightc*conf win top_offset到pic_height_in_luma_samples-(subheightc*conf_win_bottom_offset 1)的垂直图片坐标(包括端点)的亮度样本。subwidthc*(conf_win_left_offset conf_win_right_offset)的值应小于pic_width__in_luma_samples,并且subheightc*(conf_win_top_offset conf_win_bottom_offset)的值应小于pic_height_in_luma_samples。当chromaarraytype不等于0时,两个色度矩阵的对应指定样本是具有图片坐标(x/subwidthc,y/subheightc)的样本,其中(x,y)是指定的亮度样本的图片坐标。注意—贴合裁剪窗口偏移参数仅在输出时应用。所有内部解码过程都应用于未裁剪的图片大小。bit_depth_luma_minus8如下指定亮度阵列bitdepthy的样本的位深度和亮度量化参数范围偏移qpbdoffsety的值:bitdepthy=8 bit_depth_luma_minus8qpbdoffsety=6*bit_depth_luna_minus8bit_depth_luma_minus8应在0至8的范围内(包括端值)。bit_depth_chroma_minus8如下指定色度阵列bitdepthc的样本的位深度和色度量化参数范围偏移qpbdoffsetc的值:bitdepthc=8 bit_depth_chroma_minus8qpbdoffsetc=6*bit_depth_chroma_minus8bit_depth_chroma_minus8应在0至8的范围内(包括端值)。log2 max_pic_order_cnt_lsb_minus4如下指定在图片序列号的解码过程中使用的变量maxpicordercntlsb的值:
maxpicordercntlsb=2
(log2_max_pic_order”cnt_lsb”minus4 4)
log2_max_pic_order_cnt_lsb_minus4的值应在0至12的范围内(包括端值)。sps_sub_layer_ordering_info_present_flag等于1指定对于sps_max_sub_layers_minus1 1个子层存在sps_max_dec_pic_buffering_minus1[i]、sps_max_num_reorder_pics[i]和sps_max_latency_increase_plus1[i]。sps_sub_layer_ordering info_present_flag等于0指定sps_max_dec_pic_buffering_rninus1[sps_max_sub_layers_minus1]、sps_max_num_reorderjpics[sps_max_sub_layers_minus1]和sps_max_latency_increase_plus1[sps_max_sub_layers_minus1]的值适用于所有子层。sps_max_dec_pic_buffering_minus1[i]加1指定当highesttid等于i时用于cvs的解码图片缓冲器的最大所需大小,单位为图片存储缓冲器。sps max dec_pic_buffering_minus1[i]的值应在0至maxdpbsize-1的范围内(包括端值),其中maxdpbsize如别处所指定。当i大于0时,sps_max_dec_pic_buffering_minus1[i]应大于或等于sps_max_dec_pic_buffering_minus1[i-1]。当对于i在0至sps_max_sub_layers_minus1-1的范围内(包括端值),不存在sps_max_dec_pic_buffering_minus1[i]时,由于sps_sub_layer_ordering_info_present_flag等于0,推断其等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。sps_max_num_reorder_pics[i]指示当highesttid等于i时,可在解码顺序中在cvs中的任何图片之前并且在输出顺序中在该图片之后的最大允许图片数量。sps_max_num_reorder_pics[i]的值应在0至sps_max_dec_pic_buffering_minus1[i]的范围内(包括端值)。当i大于0时,sps_max_num_reorder_pics[i]应大于或等于sps_max_num_reorder_pics[i-1]。当对于i在0至sps_max_sub_layers_minus1-1的范围内(包括端值),不存在sps_max_num_reorder_pics[i]时,由于sps_sub_layer ordering info_present_nag等于0,推断其等于sps_max_num_reorder_pics[sps_max_sub_layers_minus1]。sps_max_latency_increase_plusl[i]不等于0用于计算spsmaxlatencypictures[i]的值,其指定当highesttid等于i时,可在输出顺序中在cvs中的任何图片之前并且在解码顺序中在该图片之后的最大图片数量。当sps_max_latency_increase_plusl[i]不等于0时,spsmaxlatencypictures[i]的值如下指定:spsmaxlatencypictures[i]=sps_max_num_reorder_pics[i] sps_max_latency_increase_plus1[i]-1当sps_max_latency_increase_plus1[i]等于0时,不表示对应的限制。sps_max_latency_increase plus1[i]的值应在0至2
32-2的范围内(包括端值)。当对于i在0至sps_max_sub_layers_minus1-1的范围内(包括端值),不存在sps_max_latency_increase_plusl[i]时,由于sps_sub_layer_ordering_info_present_flag等于0,推断其等于sps_max_latency_increase_plus1[sps_max_sub_layers_minus1]。long_term_ref_pics_flag等于0表示没有ltrp用于cvs中任何编码图片的帧间预测。long_term_ref_pics_flag等于1表示ltrp可以用于cvs中的一个或多个编码图片的帧间预测。sps_idr_rpl_present_flag等于1指定idr图片的切片标头中存在参考图片列表
语法元素。sps_idr_rpl_present_flag等于0指定idr图片的切片标头中不存在参考图片列表语法元素。rpl1_same_as_rp10_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语法结构的根。log2_ctu_size_minus2加2指定每个ctu的亮度编码树块大小。log2_min_luma_coding_block_size minus2加2指定最小亮度编码块大小。变量ctblog2sizey、ctbsizey、mincblog2sizey、mincbsizey、mintblog2sizey、maxtblog2sizey、mintbsizey、maxtbsizey、picwidthlnctbsy、picheightlnctbsy、picsizelnctbsy、picwidthlnmincbsy、picheightlnmincbsy、picsizelnmincbsy、picsizelnsamplesy、picwidthlnsamplesc和picheightlnsamplesc如下导出:ctblog2sizey=log2_ctu_size_minus2 2ctbsizey=1《《ctblog2sizeymincblog2sizey=log2 min_luma_coding_block_size minus2 2mincbsizey=1《《mincblog2sizeymintblog2sizey=2maxtblog2sizey=6mintbsizey=1《《mintblog2sizeymaxtbsizey=1《《maxtblog2sizeypicwidthlnctbsy=ceil(pic_width_in_luma_samples ctbsizey)picheightlnctbsy=ceil(pic_height_in_luma_samples ctbsizey)picsizelnctbsy=picwidthlnctbsy*picheightlnctbsypicwidthlnmincbsy=pic_width_in_luma_samples/mincbsizeypicheightlnmincbsy=pic_height_in_luma_samples/mincbsizeypicsizelnmincbsy=picwidthlnmincbsy*picheightlnmincbsy
picsizelnsamplesy=pic_width_in_luma_samples*pic_height_in_luma_samplespicwidthlnsamplesc=pic_width_in_luma_samples/subwidthcpicheightlnsamplesc=pic_height_in_luma_samples/subheightc变量ctbwidthc和ctbheightc分别指定每个色度ctb的阵列的宽度和高度,这两个变量如下导出:-如果chroma_format_idc等于0(单色)或separate_colour_plane_flag等于1,则ctbwidthc和ctbheightc均等于0。-否则,ctbwidthc和ctbheightc如下导出:ctbwidthc=ctbsizey/subwidthcctbheightc=ctbsizey/subheightc对于0至4范围内(包括端值)的log2blockwidth和0至4范围内(包括端值)的log2blockheight,以1《《log2blockwidth和1《《log2blockheight作为输入调用如所指定的右上对角线扫描顺序阵列初始化过程,并且将输出分配给diagscanorder[log2blockwidth][log2blockh eight]。partition_constraints_override_enabled_flag等于1指定引用sps的切片的切片标头中存在partition_constraints_override_flag。partition_constraints_override_enabled_flag等于0指定引用sps的切片的切片标头中不存在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_flag等于1时,该默认差值可以被引用sps的切片的切片标头中存在的slice_log2_diff_min_qt_min_cb_luma覆写。sps_log2_diff_min_qt_min_cb_intra_slice_luma的值应在0至ctblog2sizey-mincblog2sizey的范围内(包括端值)。对ctu进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小的以2为底的对数如下导出:minqtlog2sizeintray=sps_log2_diff_min_qt_min_cb_intra_slice_luma mincblog2sizeysps_log2 diff_min_qt_min_cb_inter_slice指定对ctu进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小的以2为底的对数与引用sps的slice_type等于0(b)或1(p)的切片中的亮度cu的亮度样本中的最小亮度编码块大小的以2为底的对数之间的默认差值。当partition_constraints_override_flag等于1时,该默认差值可以被引用sps的切片的切片标头中存在的slice_log2 diff_mim_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_flag等于1时,默认最大分级结构深度可以被引用sps的切片的切片标头中存在的slice_max_mtt_hierarchy_depth_luma覆写。sps_max_mti_hierarchy_depth_inter_slice的值应在0至ctblog2sizey-mincblog2sizey的范围内(包括端值)。sps_max_mtt_hierarchy_depth_intra_slice_luma指定对引用sps的slice_type等于2(i)的切片中的四叉树叶进行多类型树分割产生的编码单元的默认最大分级结构深度。当partition_constraints_override_flag等于1时,默认最大分级结构深度可以被引用sps的切片的切片标头中存在的slice_max_mtt_hierarchy_dcpth luma覆写。sps_max_mtt_hierarchy_depth_intra_slice_luma的值应在0至ctblog2sizey-mincblog2sizey的范围内(包括端值)。sps_log2_diff_max_bt_min_qt_intra_slice_luma指定可使用二进制分割的亮度编码块的亮度样本中的最大大小(宽度或高度)的以2为底的对数与对引用sps的slice_type等于2(i)的切片中的ctu进行四叉树分割产生的亮度叶片块的亮度样本中的最小大小(宽度或高度)的以2为底的对数之间的默认差值。当partition_constraints_override_flag等于1时,该默认差值可以被引用sps的切片的切片标头中存在的slice_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_flag等于1时,该默认差值可以被引用sps的切片的切片标头中存在的slice_log2_diff_max_tt_min_qt_luma覆写。sps_log2_diff_max_tt_min_qt_intra_slice_luma的值应在0至ctblog2sizey-minqtlog2sizelntray的范围内(包括端值)。当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_flag等于1时,该默认差值可以被引用sps的切片的切片标头中存在的slice_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_flag等于1时,该默认差值可以被引用sps的切片的切片标头中存在的slice_log2 diffmax tt min qtluma覆写。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_intra_slice_chroma指定对treetype等于dual_tree_chroma的色度ctu进行四叉树分割产生的色度叶片块的亮度样本中的最小大小的以2为底的对数与引用sps的slice type等于2(i)的切片中treetype等于dual_tree_chroma的色度cu的亮度样本中的最小编码块大小的以2为底的对数之间的默认差值。当partition_constraints_override_flag等于1时,该默认差值可以被引用sps的切片的切片标头中存在的slice jog2_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_diff_min_qt_min_cb_intra_slice_chroma mincblog2sizeysps_max_mtt_hierarchy_depth_intra_slice_chroma指定由参考指定对引用sps的slice_type等于2(i)的切片中treetype等于dual_tree_chroma的色度四叉树叶进行多类型树分割产生的色度编码单元的默认最大分级结构深度。当partition_constraints_override_flag等于1时,默认最大分级结构深度可以被引用sps的切片的切片标头中存在的slice_max_mtt_hierarchy_depth_chroma覆写。sps max_mtt_hierarchy_depth_intra_slice_chroma的值应在0至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_flag等于1时,该默认差值可以被引用sps的切片的切片标头中存在的slice_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等于dualtreechroma的色度ctu进行四叉树分割产生的色度叶片块的亮度样本中的最小大小(宽度或高度)的以2为底的对数之间的默认差值。当partition_constraints_override_flag等于1时,该默认差值可以被引用sps的切片的切片标头中存在的slice_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不存在时,推断spslog2_diff_max_tt_min_qt_intra_slice_chroma的值等于0。sps_sao_enabled_flag等于1指定在解块滤波过程之后对重构图片应用样本自适应偏移过程。sps_sao_enabled_flag等于0指定在解块滤波器过程之后不对重构图片应用样本自适应偏移过程。sps_alf_cnablcd_flag等于0指定禁用自适应回路滤波器。sps_alf_cnablcd_flag等于1指定启用自适应回路滤波器。sps_pcm_enabled_flag等于0指定cvs中不存在pcm相关的语法(pcm_sample_bit_depth_luma_minus1、pcm_sample_bit_depth_chroma_minus1、log2_min_pcm_luma_coding_block_size_minus3、log2_diff_max_min_pcm_luma_coding_block_size、pcm_loop_filter_disabled_flag、pcm_flag、pcm_alignment_zero_bit语法元素和pcm_sample()语法结构)。注意—当mincblog2sizey等于6并且sps_pcm_enabled_flag等于1时,cvs中不存在pcm样本数据相关的语法(pcm_flag、pcm_alignment_zero_bit语法元素和pcm_sample()语法结构),因为可传送pcm样本数据相关的语法的编码块的最大大小被限制为小于或等于min(ctblog2sizey,5)。因此,mincblog2sizey等于6和sps_pcm_enabled_flag等于1不是在cvs中传送pcm样本数据的适当设置。pcm_sample_bit_depth_luma_minus1如下指定用于表示亮度分量的每个pcm样本值的位数:pcmbitdepthy=pcm_sample_bit_depth_luma_minus1 1pcmbitdepthy的值应小于或等于bitdepthy的值。pcm_sample_bit_depth_chroma_minus1如下指定用于表示色度分量的每个pcm样本值的位数:pcmbitdepthc=pcm_sample_bit_depth_chroma_minus1 1pcmbitdepthc的值应小于或等于bitdepthc的值—当chromaarraytype等于0时,在解码过程中不使用pcm_sample_bit_depth_chroma_minus1,并且解码器应忽略其值。log2_min_pcm luma_coding_block_size_minus3加3指定pcm_flag等于1的编码块的最小大小。变量log2minipcmcbsizey被设置为等于log2_min_pcm_luma_coding_block_size_minus3 3。log2minipcmcbsizey的值应在min(mincblog2sizey,5)至min(ctblog2sizey,5)的范围内(包括端值)。log2_diff_max_min_pcm_luma_coding_block_size指定pcm_flag等于1的编码块的最大和最小大小之间的差值。变量log2maxipcmcbsizey被设置为等于
log2_diff_max_min_pcm_luma_coding_block_size log2minipcmcbsizey。log2maxipcmcbsizey的值应小于或等于min(ctblog2sizey,5)。pcm_loop_filter_disabled_flag如下指定是否在pcm_flag等于1的编码单元中的重构样本上禁用回路滤波过程:-如果pcm_loop_filter_disabled_flag等于1,则在pcm_flag等于1的编码单元中的重构样本上禁用解块滤波过程、样本自适应偏移滤波过程和自适应回路滤波过程。-否则(pcm_loop_filter_disabled_flag值等于0),在pcm flag等于1的编码单元中的重构样本上不禁用解块滤波过程、样本自适应偏移滤波过程和自适应回路滤波过程。当pcm_loop_filter_disabled_flag不存在时,推断其等于0。sps_ref_wraparound_enabled_flag等于1指定在帧间预测中应用水平环绕式运动补偿。sps_ref_wraparound_enabled_flag等于0指定不应用水平环绕式运动补偿。当不存在时,推断sps_rel_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的范围内(包括端值)。sps_temporal_mvp_enabled_flag等于1指定cvs中slice_type不等于i的切片的切片标头中存在slice_temporal_mvp_enabled_flag。sps_temporal_mvp_enabled_flag等于0指定切片标头中不存在slice_temporal_mvp_enabled_flag并且cvs中不使用时间运动矢量预测器。sps_sbtmvp_enabled_flag等于1指定在cvs中在图片解码中可使用基于子块的时间运动矢量预测器,其中所有切片具有不等于1的slice_type。sps_sbtmvp_enabled_flag等于0指定在cvs中不使用基于子块的时间运动矢量预测器。当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_smvd_enabled_flag等于1指定在运动矢量解码中可使用对称运动矢量差。sps_smvd_enabled_flag等于0指定在运动矢量编码中不使用对称运动矢量差。sps_affine_amvr_enabled_flag等于1指定在仿射帧间模式的运动矢量编码中使用自适应运动矢量差分辨率,sps_affine_amvr_enabled_flag等于0指定在仿射帧间模式的运动矢量编码中不使用自适应运动矢量差分辨率。sps_dmvr_enabled_flag等于1指定启用基于解码器运动矢量修正的帧间双预测。sps_dmvr_enabled_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_colocated_chroma_flag等于1指定跨分量线性模型帧内预测中的左上下采样的亮度样本与左上亮度样本并置。sps_cclm_colocated_chroma_flag等于0指定跨分量线性模型帧内预测中的左上下采样的亮度样本与左上亮度样本水平共站,但是相对于左上亮度样本竖直移位0.5个亮度样本单位。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指定用于帧内编码单元的变换单元语法中可存在tu_mts_idx。sps_explicit_mts_intra_enabled_flag等于0指定用于帧内编码单元的变换单元语法中不存在tu_mts_idx。当不存在时,推断sps_explicit_mts_intra_enabled_flag的值等于0。sps_explicit_mts_inter_enabled_flag等于1指定用于帧间编码单元的变换单元语法中可存在tu_mts_idx。sps_explicit_mts_inter_enabled_flag等于0指定用于帧间编码单元的变换单元语法中不存在tu_mts_idx。当不存在时,推断sps_explicit_mts_inter_enabled_flag的值等于0。sps_sbt_enabled_flag等于0指定禁用用于帧间预测cu的子块变换。sps_sbt_enabled_flag等于1指定启用用于帧间预测cu的子块变换。sps_sbt_max_size_64_flag等于0指定用于允许子块变换的最大cu宽度和高度是32个亮度样本。sps_sbt_max_size_64_flag等于1指定用于允许子块变换的最大cu宽度和高度是64个亮度样本。maxsbtsize=sps_sbt_max_size_64_flag?64:32sps_affine_enabled_flag指定是否可以将基于仿射模型的运动补偿用于帧间预测。如果sps_affine_enabled_flag等于0,则语法应被约束为使得在cvs中不使用基于仿射模型的运动补偿,并且cvs的编码单元语法中不存在inter_affine_flag和cu_affine_type_flag。否则(sps_affine_enabled_flag等于1),在cvs中可使用基于仿射模型的运动补偿。sps_afflne_type_flag指定是否可以将基于6参数仿射模型的运动补偿用于帧间预测。如果sps_affine_type_flag等于0,则语法应被约束为使得在cvs中不使用基于6参数仿射模型的运动补偿,并且cvs中的编码单元语法中不存在cu_affine_type_flag。否则(sps_affine_type_flag等于1),在cvs中可使用基于6参数仿射模型的运动补偿。当不存在时,推断sps_affine_type_flag的值等于0。
sps_bcw_enabled_flag指定是否可以将具有cu权重的双预测用于帧间预测。如果sps_bcw_enabled_flag等于0,则语法应被约束为使得在cvs中不使用具有cu权重的双预测,并且cvs的编码单元语法中不存在bcw_idx。否则(sps_bcw_enabled_flag等于1),在cvs中可使用具有cu权重的双预测。sps_ibc_enabled_flag等于1指定在cvs中在图片解码中可使用当前图片引用。sps_ibc_enabled_flag等于0指定在cvs中不使用当前图片引用。当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_idx1。sps_triangle_enabled_flag等于1指定在cvs中可使用基于三角形形状的运动补偿。sps_lmcs_enabled_flag等于1指定在cvs中使用具有色度缩放的亮度映射。sps_lmcs_enabled_flag等于0指定在cvs中不使用具有色度缩放的亮度映射。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的值应在0至63的范围内(包括端值)。sps_ladf_qp_offset[i]指定用于导出指定的变量qp的偏移阵列。sps_ladf_qp_offset[i]的值应在0至63的范围内(包括端值)。sps_ladf_delta_threshold_minus1[i]用于计算spsladfintervallowerbound[i]的值,其指定第i个亮度强度水平间隔的下界。sps_ladf_delta_threshold_minus1[i]的值应在0至2
bitdepthy-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] 1timing_info_present_flag等于1指定在sps rbsp语法结构中存在语法元素num_
units_in_tick、time_scale和hrd_parameters_present_flag。timing_info_present_flag等于0指定在sps rbsp语法结构中不存在num_units_in_tick、time_scale和hrd_parameters_present_flag。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。hrd_parameters_present_flag等于1指定在sps rbsp语法结构中存在语法结构hrd_parameters()。hrd_parameters_present_flag等于0指定在sps rbsp语法结构中不存在语法结构hrd_parameters()。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语法元素。
[0046]
如上所述,在解码过程期间,在开始对图片进行解码时,从存储在解码图片缓冲器(dpb)中的先前解码的图片生成参考图片列表。参数集可包括关于dpb的信息。例如,参见表3,在jvet-n1001中,sps包括:语法元素sps_max_decjpic_buffering_minus1[i],该语法元素加1指定当highesttid等于i时用于cvs的解码图片缓冲器的最大所需大小,单位为图片存储缓冲器;语法元素sps_max_num_reorder_pics[i],该语法元素指示当highesttid等于i时,可在解码顺序中在cvs中的任何图片之前并且在输出顺序中在该图片之后的最大允许图片数量;以及语法元素sps_max_latency_increase_plus1[i],该语法元素可用于指定当highesttid等于i时,可在输出顺序中在cvs中的任何图片之前并且在解码顺序中在该图片之后的最大图片数量。因此,基于sps_max_dec_pic_buffering_minus1、sps_max_num_reorder_pics和/或sps_max_latency_increase_plus1[i]的值,视频解码器可为编码视频序列例如具有highesttid等于i的编码视频序列的dpb分配资源。在jvet-n1001中,发送信号通知dpb信息不太理想。具体地讲,在jvet-n1001中,语法元素sps_max_dec_pic_buffermg_mimis1[i]和sps_max_num_reorder_pics[i]中的每一者使用ue(v)编码来进行编码,并且作为索引i的函数的参数值之间存在严格单调非递减关系。也就是说,当存在多个子层时,随着i增大,sps_max_decjpic_buffering_minus1[i]和sps_max_num_reorder_pics[i]增大(或保持不变)。也就是说,例如,60hz的视频增强层需要比对应的30hz的视频基底层更大的dpb。因此,根据jvet_n1001中的信令,sps_max_dec_
pic_buffering_minus1[i]应大于或等于sps_max_dec_pic_buffering_minus1[i-1],并且sps max num reorder_pics[i]大于或等于to sps_max_num_reorder_pics[i-1]。根据本文的技术,以更有效的方式发送信号通知当highesttid等于i时用于cvs的解码图片缓冲器的最大所需大小(单位为图片存储缓冲器)以及当highesttid等于i时可在解码顺序中在cvs中的任何图片之前并且在输出顺序中在该图片之后的图片的最大允许数量,因此,可根据本文的技术来实现位节省。
[0047]
图1是示出根据本公开的一种或多种技术的可以被配置为对视频数据进行编码(例如,编码和/或解码)的系统的示例的框图。系统100表示可以根据本公开的一种或多种技术来封装视频数据系统的示例。如图1所示,系统100包括源设备102、通信介质110和目标设备120。在图1所示的示例中,源设备102可以包括被配置为对视频数据进行编码并将编码的视频数据传输到通信介质110的任何设备。目标设备120可以包括被配置为经由通信介质110接收编码视频数据并且对编码视频数据进行解码的任何设备。源设备102和/或目标设备120可以包括配备用于进行有线和/或无线通信的计算设备,并且可以包括例如机顶盒、数字视频录像机、电视机、台式电脑、膝上型电脑或平板电脑、游戏控制台、医学成像设备和移动设备(包括例如智能电话、蜂窝电话、个人游戏设备)。
[0048]
通信介质110可以包括无线和有线通信介质和/或存储设备的任意组合。通信介质110可以包括同轴电缆、光纤电缆、双绞线电缆、无线发射器和接收器、路由器、交换机、中继器、基站或可用于促进各种设备和站点之间的通信的任何其他设备。通信介质110可以包括一个或多个网络。例如,通信介质110可以包括被配置为允许访问万维网例如互联网的网络。网络可以根据一个或多个电信协议的组合操作。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括数字视频广播(dvb)标准、高级电视系统委员会(atsc)标准、综合服务数字广播(isdb)标准、有线数据业务接口规范(docsis)标准、全球移动通信系统(gsm)标准、码分多址(cdma)标准、第3代合作伙伴计划(3gpp)标准、欧洲电信标准协会(etsi)标准、互联网协议(ip)标准、无线应用协议(wap)标准以及电气与电子工程师协会(ieee)标准。
[0049]
存储设备可以包括能够存储数据的任何类型的设备或存储介质。存储介质可以包括有形或非暂态计算机可读介质。计算机可读介质可以包括光盘、闪存存储器、磁存储器或任何其他合适的数字存储介质。在一些示例中,存储器设备或其部分可以被描述为非易失性存储器,并且在其他示例中,存储器设备的部分可以被描述为易失性存储器。易失性存储器的示例可以包括随机存取存储器(ram)、动态随机存取存储器(dram)和静态随机存取存储器(sram)。非易失性存储器的示例可以包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(eprom)或电可擦除和可编程(eeprom)存储器的形式。存储设备可以包括存储卡(例如,安全数字(sd)存储卡)、内部/外部硬盘驱动器和/或内部/外部固态驱动器。数据可以根据定义的文件格式存储在存储设备上。
[0050]
图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可以包括台式计算机、膝上型计算机或平板计算机、游戏控制台、移动设备(包括例如“智能”电话、蜂窝电话和个人游戏设备)。
[0051]
电视服务网络404是被配置为使得能够分发可以包括电视服务的数字媒体内容的网络的示例。例如,电视服务网络404可以包括公共空中电视网络、公共或基于订阅的卫星电视服务提供方网络,以及公共或基于订阅的有线电视提供方网络和/或云上或互联网服务提供方。应当指出的是,尽管在一些示例中,电视服务网络404可以主要用于允许提供电视服务,但是电视服务网络404还可以根据本文所述的电信协议的任何组合允许提供其他类型的数据和服务。此外,应当指出的是,在一些示例中,电视服务网络404可以允许电视服务提供方站点406与计算设备402a至402n中的一个或多个之间的双向通信。电视服务网络404可以包括无线和/或有线通信媒体的任何组合。电视服务网络404可以包括同轴电缆、光纤电缆、双绞线电缆、无线发射器和接收器、路由器、交换机、中继器、基站或可用于促进各种设备和站点之间的通信的任何其他设备。电视服务网络404可以根据一个或多个电信协议的组合来运营。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括dvb标准、atsc标准、isdb标准、dtmb标准、dmb标准、有线数据服务接口规范(docsis)标准、hbbtv标准、w3c标准和upnp标准。
[0052]
再次参考图4,电视服务提供方站点406可被配置为经由电视服务网络404分发电视服务。例如,电视服务提供方站点406可以包括一个或多个广播站、有线电视提供方或卫星电视提供方或基于互联网的电视提供方。例如,电视服务提供方站点406可被配置为通过卫星上行链路/下行链路接收传输(包括电视节目)。此外,如图4所示,电视服务提供方站点406可以与广域网408通信,并且可被配置为从内容提供方站点412a至412n接收数据。应当指出的是,在一些示例中,电视服务提供方站点406可以包括电视演播室,并且内容可以源自该电视演播室。
[0053]
广域网408可以包括基于分组的网络,并且根据一个或多个电信协议的组合运营。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括全球系统移动通信(gsm)标准、码分多址(cdma)标准、第3代合作伙伴计划(3gpp)标准、欧洲电信标准协会(etsi)标准、欧洲标准(en)、ip标准、无线应用协议(wap)标准、以及电气与电子工程师协会(ieee)标准,诸如,一个或多个ieee 802标准(例如,wi-fi)。广域网408可以包括无线和/或有线通信媒体的任何组合。广域网408可以包括同轴电缆、光纤电缆、双绞线电缆、以太网电缆、无线发射器和接收器、路由器、交换机、中继器、基站、或可用于促进各种设备和站点之间的通信的任何其他设备。在一个示例中,广域网408可以包括互联网。局域网410可以包括基于分组的网络,并且根据一个或多个电信协议的组合运营。可以基于访问级别和/或物理基础设施将局域网410与广域网408区分开。例如,局域网410可以包括安全家庭网络。
[0054]
再次参考图4,内容提供方站点412a至412n表示可以向电视服务提供方站点406
和/或计算设备402a至402n提供多媒体内容的站点的示例。例如,内容提供方站点可以包括具有一个或多个工作室内容服务器的工作室,该工作室内容服务器被配置为向电视服务提供方站点406提供多媒体文件和/或流。在一个示例中,内容提供方站点412a至412n可被配置为使用ip套件提供多媒体内容。例如,内容提供方站点可被配置为根据实时流协议(rtsp)、http等向接收器设备提供多媒体内容。此外,内容提供方站点412a至412n可被配置为通过广域网408向接收器设备402a至402n和/或电视服务提供方站点406中的一个或多个提供包括基于超文本的内容等的数据。内容提供方站点412a至412n可以包括一个或多个web服务器。可以根据数据格式来定义由数据提供方站点412a至412n提供的数据。
[0055]
再次参考图1,源设备102包括视频源104、视频编码器106、数据封装器107和接口108。视频源104可以包括被配置为捕获和/或存储视频数据的任何设备。例如,视频源104可以包括摄像机和可操作地与其耦接的存储设备。视频编码器106可以包括被配置为接收视频数据并生成表示视频数据的兼容比特流的任何设备。兼容比特流可以指视频解码器可以从其接收和再现视频数据的比特流。兼容比特流的各方面可根据视频编码标准来定义。当生成兼容比特流时,视频编码器106可以压缩视频数据。压缩可能是有损的(观察者可觉察的或不可觉察的)或无损的。图5是示出可实现本文所述的用于对视频数据进行编码的技术的视频编码器500的示例的框图。应当指出的是,尽管示例性视频编码器500被示出为具有不同的功能块,但此类图示旨在用于描述目的,并且不将视频编码器500和/或其子部件限制为特定的硬件或软件架构。可使用硬件、固件和/或软件具体实施的任何组合来实现视频编码器500的功能。
[0056]
视频编码器500可执行图片区域的帧内预测编码和帧间预测编码,并且因此可被称为混合视频编码器。在图5所示的示例中,视频编码器500接收源视频块。在一些示例中,源视频块可以包括已经根据编码结构划分的图片区域。例如,源视频数据可以包括宏块、ctu、cb、其子分区和/或另外的等效编码单元。在一些示例中,视频编码器500可被配置为执行源视频块的附加细分。应当指出的是,本文描述的技术通常适用于视频编码,而不管在编码之前和/或期间如何划分源视频数据。在图5所示的示例中,视频编码器500包括加法器502、变换系数生成器504、系数量化单元506、逆量化和变换系数处理单元508、加法器510、帧内预测处理单元512、帧间预测处理单元514、滤波器单元516和熵编码单元518。如图5所示,视频编码器500接收源视频块并输出比特流。
[0057]
在图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可被配置为执行多个编码回合(例如,在改变预测、变换参数和量化参数中的一者或多者的同时执行编码)。比特流的率失真或其他系统参数可以基于重构视频块的评估来优化。此外,重构视频块可被存储并用作预测后续块的参考。
[0058]
再次参考图5,帧内预测处理单元512可被配置为针对待编码视频块选择帧内预测模式。帧内预测处理单元512可被配置为评估帧并且确定用以编码当前块的帧内预测模式。如上所述,可能的帧内预测模式可以包括平面预测模式、dc预测模式和角度预测模式。此外,应当指出的是,在一些示例中,可以根据亮度预测模式的预测模式来推断色度分量的预测模式。帧内预测处理单元512可在执行一个或多个编码回合之后选择帧内预测模式。此外,在一个示例中,帧内预测处理单元512可以基于率失真分析来选择预测模式。如图5所示,帧内预测处理单元512将帧内预测数据(例如,语法元素)输出到熵编码单元518和变换系数生成器504。如上所述,对残差数据执行的变换可以是模式相关的(例如,可以基于预测模式确定二次变换矩阵)。
[0059]
再次参考图5,帧间预测处理单元514可被配置为针对当前视频块执行帧间预测编码。帧间预测处理单元514可被配置为接收源视频块并且计算视频块的pu的运动矢量。运动矢量可以指示当前视频帧内的视频块的pu相对于参考帧内的预测块的位移。帧间预测编码可以使用一个或多个参考图片。此外,运动预测可以是单向预测(使用一个运动矢量)或双向预测(使用两个运动矢量)。帧间预测处理单元514可被配置为通过计算由例如绝对差之和(sad)、平方差之和(ssd)或其他差值度量确定的像素差来选择预测块。如上所述,可以根据运动矢量预测来确定和指定运动矢量。如上所述,帧间预测处理单元514可被配置为执行运动矢量预测。帧间预测处理单元514可被配置为使用运动预测数据生成预测块。例如,帧间预测处理单元514可定位帧缓冲器内的预测视频块(图5中未示出)。应当指出的是,帧间预测处理单元514可以进一步被配置为将一个或多个内插滤波器应用于重构残差块,以计算用于运动估计的子整数像素值。帧间预测处理单元514可将所计算的运动矢量的运动预测数据输出到熵编码单元518。
[0060]
如图5所示,滤波器单元516接收重构的视频块和编码参数,并且输出已修改的重构视频数据。滤波器单元516可被配置为执行解块和/或样本自适应偏移(sao)滤波。sao滤波是一种可用于通过向重构视频数据添加偏移以改善重构的非线性振幅映射。应当指出的是,如图5所示,帧内预测处理单元512和帧间预测处理单元514可以经由滤波器单元216接收修改的重构视频块。熵编码单元518接收量化的变换系数和预测语法数据(即,帧内预测数据和运动预测数据)。应当指出的是,在一些示例中,系数量化单元506可以在将系数输出到熵编码单元518之前执行对包括量化变换系数的矩阵的扫描。在其他示例中,熵编码单元518可执行扫描。熵编码单元518可以被配置为根据本文所述的技术中的一种或多种技术执行熵编码。这样,视频编码器500表示被配置为根据本公开的一种或多种技术生成编码视频数据的设备的示例。
[0061]
再次参考图1,数据封装器107可以接收编码视频数据,并根据定义的数据结构生
成兼容比特流,例如,nal单元序列。接收兼容比特流的设备可以从其再现视频数据。此外,如上所述,子比特流提取可以指通过丢弃和/或修改接收的比特流中的数据,接收兼容itu-t h.265的比特流的设备形成新的兼容itu-t h.265的比特流的过程。应当指出的是,可以使用术语符合性比特流来代替术语兼容比特流。在一个示例中,数据封装器107可被配置为根据本文所述的一种或多种技术生成语法。应当指出的是,数据封装器107不必要位于与视频编码器106相同的物理设备中。例如,被描述为由视频编码器106和数据封装器107执行的功能可以分布在图4所示的设备中。
[0062]
如上所述,在jvet-n1001中,发送信号通知dpb信息不太理想。在一个示例中,根据本文的技术,sps_max_dec_pic_buffermg_minus1和sps_max_num_reorder_pics可编码为使用固定位数的无符号整数。也就是说,根据本文的技术,可以将用于表3中语法元素sps_max_dec_pic_buffering_minus1和sps_max_num_reorder_pics的描述符ue(v)改变为u(v)。在这种情况下,在一个示例中,sps_max_dec_pic_buffering_minus1和sps_max_num_reorder_pics的语义可基于以下内容:sps_max_dec_pic_buffering_minus1[i]加1指定当highesttid等于i时用于cvs的解码图片缓冲器的最大所需大小,单位为图片存储缓冲器。sps_max_dec_pic_buffering_minus1[i]语法元素的长度为ceil(log2(maxdpbsize-1)位。当i大于0时,sps max dec_pic_buffcring minus1[i]应大于或等于spsrnaxdecpic_bultering_minus1[i-1]。当对于i在0至sps_max_sub_layers_minus1-1的范围内(包括端值),不存在sps_max_dec_pic_buffering_minus1[i]时,由于sps_sub layer ordering info present nag等于0,推断其等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。在一个示例中,maxdpbsize可以如itu-t h.265中所提供被定义如下:其中maxlumaps在表a中指定,并且maxdpbpicbuf等于6。
表a在另一个示例中,对于不同的时间子层,maxdpbsize值可不同。因此,maxdpbsize[i]对于每个i可具有不同的值。sps_max_num_reorder_pics[i]指示当highesttid等于i时,可在解码顺序中在cvs中的任何图片之前并且在输出顺序中在该图片之后的最大允许图片数量。sps_max_num_reorder_pics[i]语法元素的长度为ceil(log2(maxdpbsize-1)位。当i大于0时,sps_max_num_reorder pics[i]应大于或等于sps_max_num_reorder_pics[i-1]。当对于i在0至sps_max_sub_laycrs minus1-1的范围内(包括端值),不存在sps_max_num_reorder_pics[i]时,由于sps_sub_layer_ordering_info_present_flag等于0,推断其等于sps_max_num_reorder_pics[sps_max_sub_laycrs minus1]。此外,在一个示例中,sps_max_num_reorder_pics[i]语法元素的长度可以是ceil(log2(sps_max_dec_pic_buffering_minus1[i]))位。
[0063]
在一个示例中,根据本文的技术,可使用增量编码发送信号通知当highesttid等
于i时用于cvs的解码图片缓冲器的最大所需大小(单位为图片存储缓冲器)以及/或者当highesttid等于i时可在解码顺序中在cvs中的任何图片之前并且在输出顺序中在该图片之后的图片的最大允许数量。表4示出了可根据本文的技术发送信号通知的序列参数集的语法的示例。表4关于表4,语义可基于上面关于表3为语法元素sps_max_dec_pic_buffering_delta、sps_max_num_reorder_pics_delta和sps_max_latency_increase_plus1提供的语义,在一个示例中,可使用以下语义:sps_max_dec_pic_buffering_delta[i]用于计算spsmaxdecpicbuffering[i]的值,该值指定当highesttid等于i时cvs的解码图片缓冲器的最大所需大小,单位为图片存储缓冲器。sps_max_dec_pic_buffering_delta[i]的值应在0至maxdpbsize-1的范围内(包括端值),其中maxdpbsize如别处所指定。在另一个示例中,spsmaxdecpicbuffering[i]的值应在0至maxdpbsize的范围内(包括端值),其中maxdpbsize如别处所指定。当对于i在0至sps_max_sub_layers_minus1-1的范围内(包括端值),不存在sps_max dec_pic_buffering_delta[i]时,由于sps_sub_layer_ordering_info_present_flag等于0,推断其等于0。变量spsmaxdecpicbuffering[i]如下计算:
在另一个示例中,变量spsmaxdecpicbuffering[i]可如下计算:spsmaxdecpicbuffering[i]=sps_max_dec_pic_buffering_delta[i] (i=0)?1:spsmaxdecpicbuffering[i-1]sps_max_num_reorder_pics_delta[i]用于计算spsmaxnumreorderpics[i]的值,该值指定当highesttid等于i时,可在解码顺序中在cvs中的任何图片之前并且在输出顺序中在该图片之后的最大允许图片数量。sps_max_num_reorder_pics_delta[i]的值应在0至(spsmaxdecpicbuffering[i]-1)的范围内(包括端值)。在另一个示例中:spsmaxnumreorderpics[i]的值应在0至(spsmaxdecpicbuffering[i]-1)的范围内。当对于i在0至sps_max_sub layers_minus1-1的范围内(包括端值),不存在sps_max_num_reorder_pics_delta[i]时,由于sps_sub_layer_orderinginfo_present_flag等于0,推断其等于0。变量spsmaxnumreorderpics[i]如下计算:在另一个示例中,变量spsmaxnumreorderpics[i]可如下计算:spsmaxnumreorderpics[i]=sps_max_num_reorder_pics_delta[i] (i==0)?0:spsmaxnumreorderpics[i-1]。sps_max_latency_increase_plus1[i]不等于0用于计算spsmaxlatencypictures[i]的值,该值指定当highesttid等于i时,可在输出顺序中在cvs中的任何图片之前并且在解码顺序中在该图片之后的最大图片数量。当sps_max_latency_increasc_plus1[i]不等于0时,spsmaxlatencypictures[i]的值如下指定:spsmaxlatencypictures[i]=spsmaxnumreorderpics[i] sps_max_latency_increase_plus1[i]-1当sps_max_latency_increase_plus1[i]等于0时,不表示对应的限制。sps_max_latency_increase_plus1[i]的值应在0至2
32-2的范围内(包括端值)。当对于i在0至sps_max_sub_layers_minus1-1的范围内(包括端值),不存在sps_max_latency_increase_plus1[i]时,由于sps_sub_layer_ordering_info_present_flag等于
0,推断其等于sps_max_latency_increase_plus1[sps_max_sub_layers_minus1]。应当指出的是,基于sps_max_dec_pic_buffering_delta、sps_max_num_reorder_pics_delta和sps_max_latency_increase_plus1的示例性语义,根据本文的技术,在jvet-n1001中,可进行以下修改:
·
用spsmaxdecpicbuffering[i]-1替换所有出现的sps_max_dec_pic_buffering_minus1[i]
·
用spsmaxdecpicbuffering[i]替换所有出现的(sps_max_dec_pic_buffering_minus1[i] 1)
·
用spsmaxnumreorderpics[i]替换所有出现的sps_max_num_reorder_pics[i]在一个示例中,根据本文的技术,可基于语法元素sps_max_sub_layers_minus1的值有条件地发送信号通知语法元素sps_sub_layer_ordering_info_present_flag。具体地讲,当引用sps的cvs或比特流中存在仅一个时间子层时,将不发送信号通知sps_sub_layer_ordering_info_present_flag语法元素。相反,在这种情况下推断sps_sub_layer_ordering_info_present_flag的值。这节省了一个位。表5示出了可根据本文的技术发送信号通知的序列参数集的语法的示例。表5在另一个示例中,可将条件if(!sps_max_sub_layers_minus1)替代地写作if
(sps_max_sub_layers_minus1》0)或某种其他类似的测试。关于表5,语义可基于上面关于表3为语法元素sps_sub_layer_ordering_info_present_flag、sps_max_dec_pic_buffering_delta、sps_max_num_reorder_pics_delta和sps_max_latency_increase_plus1提供的语义,在一个示例中,可使用以下语义:sps_sub_layer_ordering_info_present_flag等于1指定对于spsmax_sub_layers_minus1 1个子层存在sps_max_dcc_pic_buffering_minus1[i]、sps_max_num_reorder_pics[i]和sps_max_latency_increase_plus1[i]。sps_sub_layer_ordering_info_present_flag等于0指定sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]、sps_max_num_reorder_pics[sps_max_sub_layers_minus1]和sps_max_latency_increase_plus1[sps_max_sub_layers_minus1]的值适用于所有子层。当不存在时,推断sps_sub_layer_ordering_info_present_flag等于0。在另一个示例中:当不存在时,推断sps_sub_layer_ordering_info_present_flag等于1。sps_max_dec_pic_buffering_delta[i]用于计算spsmaxdecpicbuffering[i]的值,该值指定当highesttid等于i时cvs的解码图片缓冲器的最大所需大小,单位为图片存储缓冲器。spsmaxdecpicbuffering[i]的值应在0至maxdpbsize的范围内(包括端值),其中maxdpbsize如别处所指定。当对于i在0至sps_max_sub_layers_minusl-1的范围内(包括端值),不存在sps_max_dec_pic_buffering_delta[i]时,由于sps_sub_layer_ordering_infojpresent_flag等于0,推断其等于0。变量spsmaxdecpicbuffering[i]如下计算:spsmaxdecpicbuffering[i]=sps_max_dec_pic_buffering_delta[i] (i=0)?1:spsmaxdecpicbuffering[i-1]sps_max_num_reorder_pics_delta[i]用于计算spsmaxnumreorderpics[i]的值,该值指定当highesttid等于i时,可在解码顺序中在cvs中的任何图片之前并且在输出顺序中在该图片之后的最大允许图片数量。spsmaxnumreorderpics[i]的值应在0至(spsmaxdecpicbuffering[i]-l)的范围内(包括端值)。当对于i在0至sps inax_sub_layers_minusl-1的范围内(包括端值),不存在sps_max_num_reorder_pics_delta[i]时,由于sps_sub_layer_ordering_info_present_flag等于0,推断其等于0。变量spsmaxnumreorderpics[i]如下计算:spsmaxnumreorderpics[i]=sps_max_num_reorder_pics_delta[i] (i=0)?0:spsmaxnumreorderpics[i-1]。sps_max_latency_increase_plus1[i]不等于0用于计算spsmaxlatencypictures[i]的值,该值指定当highesttid等于i时,可在输出顺序中在cvs中的任何图片之前并且在解码顺序中在该图片之后的最大图片数量。当sps_max_latency_increase_plus1[i]不等于0时,spsmaxlatencypictures[i]的值如下指定:spsmaxlatencypictures[i]=spsmaxnumreorderpics[i] sps_max_latency_increase_plus1[i]-1当sps_max_latency_increase_plus1[i]等于0时,不表示对应的限制。sps_max_latency_increase_plus1[i]的值应在0至2
32-2的范围内(包括端值)。当
对于i在0至sps_max_sub_layers_minus1-1的范围内(包括端值),不存在sps_max_latency_increase_plus1[i]时,由于sps_sub_layer_ordering_info_present flag等于0,推断其等于sps_max_latency_increase_plus1[sps_max_sub_layers_minus 1]。这样,源设备102表示设备的示例,该设备被配置为:发送信号通知第一值,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;并且发送信号通知第二值,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小,其中用于该对应第二视频子层的解码图片缓冲器的该最大所需大小被计算为该第一值和该第二值的总和。
[0064]
再次参考图1,接口108可以包括被配置为接收由数据封装器107生成的数据并且将数据传输和/或存储到通信介质的任何设备。接口108可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可以发送和/或接收信息的任何其他类型的设备。此外,接口108可以包括计算机系统接口,该计算机系统接口可以使文件能够存储在存储设备上。例如,接口108可以包括支持外围部件互连(pci)和高速外围部件互连(pcie)总线协议、专用总线协议、通用串行总线(usb)协议、i2c的芯片组、或可用于互连对等设备的任何其他逻辑和物理结构。
[0065]
再次参考图1,目标设备120包括接口122、数据解封装器123、视频解码器124和显示器126。接口122可以包括被配置为从通信介质接收数据的任何设备。接口122可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可接收和/或发送信息的任何其他类型的设备。此外,接口122可以包括允许从存储设备检索兼容视频比特流的计算机系统接口。例如,接口122可以包括支持pci和pcie总线协议、专用总线协议、usb协议、i2c的芯片组,或者可用于互连对等设备的任何其他逻辑和物理结构。数据解封装器123可被配置为接收和解析本文所述的任何示例语法结构。
[0066]
视频解码器124可以包括被配置为接收比特流(例如,子比特流提取)和/或其可接受变体且从其再现视频数据的任何设备。显示器126可以包括被配置为显示视频数据的任何设备。显示器126可以包括各种显示设备诸如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另外的类型的显示器中的一种。显示器126可以包括高清显示器或超高清显示器。应当指出的是,尽管在图1所示的示例中,视频解码器124被描述为将数据输出到显示器126,但视频解码器124可以被配置为将视频数据输出到各种类型的设备和/或其子部件。例如,视频解码器124可被配置为将视频数据输出到任何通信介质,如本文所述。
[0067]
图6是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图(例如,用于上述参考图片列表构建的解码过程)。在一个示例中,视频解码器600可被配置为对变换数据进行解码并基于解码的变换数据从变换系数重构残差数据。视频解码器600可被配置为执行帧内预测解码和帧间预测解码,并且因此可被称为混合解码器。视频解码器600可被配置为解析上面在表1至表4中所述的语法元素的任何组合。此外,视频解码器600可被配置为基于上面在表1至表4中所述的语法元素的解析值向dpb分配资源。视频解码器600可基于或根据上述过程解码图片。
[0068]
在图6所示的示例中,视频解码器600包括熵解码单元602、逆量化单元和变换系数处理单元604、帧内预测处理单元606、帧间预测处理单元608、加法器610、后置滤波器单元612和参考缓冲器614。视频解码器600可被配置为以与视频编码系统一致的方式对视频数
据进行解码。应当指出的是,尽管示出的示例性视频解码器600具有不同的功能块,但此类图示旨在用于描述目的,并且不将视频解码器600和/或其子部件限制为特定的硬件或软件架构。可使用硬件、固件和/或软件具体实施的任何组合来实现视频解码器600的功能。
[0069]
如图6所示,熵解码单元602接收熵编码的比特流。熵解码单元602可被配置为根据与熵编码过程互逆的过程从比特流中解码语法元素和量化系数。熵解码单元602可被配置为根据上文所述的任何熵编码技术来执行熵解码。熵解码单元602可以与视频编码标准一致的方式确定编码的比特流中的语法元素的值。如图6所示,熵解码单元602可以从比特流确定量化参数、量化系数值、变换数据和预测数据。在该示例中,如图6所示,逆量化单元和变换系数处理单元604从熵解码单元602接收量化参数、量化系数值、变换数据和预测数据,并输出重构的残差数据。
[0070]
再次参考图6,可以将重构的残差数据提供给加法器610。加法器610可以将重构的残差数据添加到预测视频块并生成重构的视频数据。可根据预测视频技术(即帧内预测和帧间预测)确定预测视频块。帧内预测处理单元606可被配置为接收帧内预测语法元素并且从参考缓冲器614检索预测视频块。参考缓冲器614可以包括被配置为存储一个或多个视频数据帧的存储器设备。帧内预测语法元素可识别帧内预测模式,诸如上述的帧内预测模式。帧间预测处理单元608可接收帧间预测语法元素并生成运动矢量,以识别存储在参考缓冲器616中的一个或多个参考帧中的预测块。帧间预测处理单元608可以生成运动补偿块,可能基于内插滤波器执行内插。用于具有子像素精度的运动估计的内插滤波器的标识符可以包括在语法元素中。帧间预测处理单元608可以使用内插滤波器来计算参考块的子整数像素的内插值。后置滤波器单元614可被配置为对重构的视频数据执行滤波。例如,后置滤波器单元614可被配置为执行解块和/或样本自适应偏移(sao)滤波,例如基于在比特流中指定的参数。此外,应当指出的是,在一些示例中,后置滤波器单元614可被配置为执行专用的任意滤波(例如,视觉增强,诸如蚊状噪声消除)。如图6所示,视频解码器600可以输出重构的视频块。这样,视频解码器600表示设备的示例,该设备被配置为:解析第一值,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;解析第二值,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小;并且将用于该对应第二视频子层的解码图片缓冲器的该最大所需大小计算为该第一值和该第二值的总和。
[0071]
在一个或多个示例中,所述功能可以通过硬件、软件、固件或它们的任何组合来实现。如果以软件实现,则可将功能作为一个或多个指令或代码存储在计算机可读介质上或经由计算机可读介质上传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于有形介质诸如数据存储介质的计算机可读存储介质,或者包括例如根据通信协议促进计算机程序从一个地方传输到另一个地方的任何介质的传播介质。这样,计算机可读介质通常可以对应于:(1)非暂态的有形计算机可读存储介质,或者(2)通信介质诸如信号或载波。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中所述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0072]
以举例而非限制的方式,此类计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储设备、磁盘存储设备或其他磁存储设备、闪存存储器、或者可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其他介质。而且,任何连
接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(dsl)或无线技术诸如红外线、无线电和微波从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、dsl或无线技术诸如红外线、无线电和微波都包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂态介质,而是针对非暂态有形存储介质。如本文所用,磁盘和光盘包括压缩光盘(cd)、激光盘、光学光盘、数字通用光盘(dvd)、软磁盘及blu-ray光盘,其中磁盘通常以磁性方式复制数据,而光盘则利用激光以光学方式复制数据。上述的组合也应该包括在计算机可读介质的范围内。
[0073]
可以由一个或多个处理器诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其他等效集成或离散逻辑电路执行指令。因此,如本文所用的术语“处理器”可以指任何前述结构或适用于实现本文所描述的技术的任何其他结构。此外,在一些方面中,可以在被配置用于编码和解码的专用硬件和/或软件模块内提供本文所述的功能,或者将其结合到组合编解码器中。而且,这些技术可以完全在一个或多个电路或逻辑元件中实现。
[0074]
本公开的技术可以在各种设备或装置包括无线手机、集成电路(ic)或ic集(例如,芯片集)中实现。在本公开中描述了各种部件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,可以将各种单元组合在编解码器硬件单元中,或者通过互操作硬件单元包括如上所述的一个或多个处理器的集合,结合合适的软件和/或固件来提供各种单元。
[0075]
此外,每个上述实施方案中所使用的基站设备和终端设备的每个功能块或各种特征可通过电路(通常为一个集成电路或多个集成电路)实现或执行。被设计为执行本说明书中所述的功能的电路可以包括通用处理器、数字信号处理器(dsp)、专用或通用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑设备、分立栅极或晶体管逻辑器或分立硬件部件或它们的组合。通用处理器可为微处理器,或另选地,该处理器可为常规处理器、控制器、微控制器或状态机。通用处理器或上述每种电路可由数字电路进行配置,或可由模拟电路进行配置。此外,当由于半导体技术的进步而出现制成取代当前集成电路的集成电路的技术时,也能够使用通过该技术生产的集成电路。
[0076]
已经描述了各种示例。这些示例和其他示例在以下权利要求的范围内。《发明内容》
[0077]
在一个示例中,一种发送信号通知用于对视频数据进行解码的图片缓冲器(dpb)信息的方法,该方法包括:发送信号通知第一值,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;以及发送信号通知第二值,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小,其中用于该对应第二视频子层的解码图片缓冲器的该最大所需大小被计算为该第一值和该第二值的总和。
[0078]
在一个示例中,一种对视频数据进行解码的方法,该方法包括:解析第一值,该第一值指示用于对应第一视频子层的解码图片缓冲器的最大所需大小;解析第二值,该第二值指示用于对应第二视频子层的解码图片缓冲器的最大所需大小;以及将用于该对应第二视频子层的解码图片缓冲器的该最大所需大小计算为该第一值和该第二值的总和。
[0079]
在一个示例中,提供了该方法,其中该第一值和该第二值包括在序列参数集中。
[0080]
在一个示例中,一种用于对视频数据进行编码的设备,该设备包括被配置为执行这些步骤的任意和全部组合的一个或多个处理器。
[0081]
在一个示例中,提供了该设备,其中该设备包括视频编码器。
[0082]
在一个示例中,提供了该设备,其中该设备包括视频解码器。
[0083]
在一个示例中,一种系统,该系统包括:设备,该设备包括视频编码器;并且该设备包括视频解码器。
[0084]
在一个示例中,一种用于对视频数据进行编码的装置,该装置包括用于执行步骤的任意和全部组合的装置。
[0085]
在一个示例中,一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括存储在其上的指令,当这些指令被执行时,使得用于编码视频数据的设备的一个或多个处理器执行步骤的任意和全部组合。
[0086]
在一个示例中,一种对视频数据进行解码的方法,该方法包括:解析指定可存在于编码视频序列中的时间子层的最大数量的语法元素;确定指定可存在于编码视频序列中的时间子层的该最大数量的该语法元素的值是否大于零;以及仅当确定指定可存在于编码视频序列中的时间子层的该最大数量的该语法元素的该值大于零时,有条件地解析指示解码图片缓冲器参数的存在的语法元素。
[0087]
在一个示例中,该方法还包括当指示解码图片缓冲器参数的存在的该语法元素未被解析时,推断该语法元素的该值为零。
[0088]
在一个示例中,提供了该方法,其中该语法元素包括在序列参数集中。
[0089]
在一个示例中,一种包括一个或多个处理器的设备,该一个或多个处理器被配置为:解析指定可存在于编码视频序列中的时间子层的最大数量的语法元素;确定指定可存在于编码视频序列中的时间子层的该最大数量的该语法元素的值是否大于零;并且仅当确定可存在于编码视频序列中的时间子层的该最大数量大于零时,有条件地解析指示解码图片缓冲器参数的存在的语法元素。
[0090]
在一个示例中,该设备,其中该一个或多个处理器被进一步配置为当指示解码图片缓冲器参数的存在的该语法元素未被解析时,推断该语法元素的该值为零。
[0091]
在一个示例中,提供了该设备,其中该语法元素包括在序列参数集中。
[0092]
在一个示例中,提供了该设备,其中该设备是视频解码器。《交叉引用》
[0093]
本非临时专利申请根据《美国法典》第35卷第119节(35u.s.c.
§
119)要求于2019年6月19日提交的临时申请62/863,776、2019年6月28日提交的临时申请62/868,641的优先权,这两个申请的全部内容据此以引用方式并入。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献