掌桥专利:专业的专利平台
掌桥专利
首页

用于在视频编码中发送信号通知参考图片的系统和方法

文献发布时间:2023-06-19 11:55:48


用于在视频编码中发送信号通知参考图片的系统和方法

技术领域

本公开涉及视频编码,并且更具体地涉及用于发送信号通知编码视频的参考图片的技术。

背景技术

数字视频功能可以结合到各种设备中,包括数字电视、笔记本电脑或台式电脑、平板电脑、数字录音设备、数字媒体播放器、视频游戏设备、蜂窝电话(包括所谓的智能电话)、医学成像设备等。可以根据视频编码标准对数字视频进行编码。视频编码标准可以结合视频压缩技术。视频编码标准的示例包括ISO/IEC MPEG-4Visual和ITU-T H.264(也被称为ISO/IEC MPEG-4AVC)和高效视频编码(HEVC)。HEVC在2016年12月的ITU-T H.265建议书的高效视频编码(HEVC)中有所描述,该文献以引用方式并入本文,并且在本文中被称为ITU-TH.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月,意大利,都灵(Torino,IT))描述了由JVET在联合测试模型研究下的编码特征,该技术是超越ITU-T H.265功能的潜在增强视频编码技术。应当指出的是,JEM 7的编码特征在JEM参考软件中实现。如本文所用,术语JEM可统称包括在JEM 7中的算法以及JEM参考软件的具体实施。此外,响应于由VCEG和MPEG联合发布的“Joint Call for Proposals on Video Compression withCapabilities beyond HEVC”,在2018年4月16日至20日于加利福尼亚州圣地亚哥(SanDiego,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。2018年7月10日至18日在斯洛文尼亚的卢布尔雅那(Ljubljana,SI)举行的ISO/IEC JTC1/SC29/WG11第11次会议中的“Versatile VideoCoding(Draft 2)”即文档JVET-K1001-v5,该文档以引用方式并入本文并且被称为JVET-K1001,是JVET-J1001的更新。

视频压缩技术通过利用视频序列中固有的冗余来减少用于存储和传输视频数据的数据需求。视频压缩技术可将视频序列再分成连续较小的部分(即,视频序列内的帧组、帧组内的帧、帧内的切片、切片内的编码树单元(例如,宏块)、编码树单元内的编码块等)。可以使用帧内预测编码技术(例如,图片内(空间))和帧间预测技术(即图片间(时间))来生成待编码的视频数据单元与视频数据的参考单元之间的差值。该差值可以被称为残差数据。残差数据可以被编码为量化变换系数。语法元素可以涉及残差数据和参考编码单元(例如,帧内预测模式索引、运动矢量和块矢量)。可以对残差数据和语法元素进行熵编码。熵编码的残差数据和语法元素可以包括在兼容比特流中。可以根据数据结构来格式化兼容比特流和相关联元数据。

发明内容

在一个示例中,一种对视频数据进行解码的方法,该方法包括:对参考图片列表语法结构中的条目数量进行解码;如果该条目数量大于一,则对切片标头中的参考索引活动减一语法的数量进行解码;以及通过使用该参考索引活动减一语法的数量来导出活动变量。

附图说明

[图1]图1是示出根据本公开的一种或多种技术的可以被配置为对视频数据进行编码和解码的系统的示例的框图。

[图2]图2是示出根据本公开的一种或多种技术的编码视频数据和对应数据结构的概念图。

[图3]图3是示出根据本公开的一种或多种技术封装编码视频数据和对应元数据的数据结构的概念图。

[图4]图4是示出根据本公开的一种或多种技术的可被包括在可被配置为对视频数据进行编码和解码的系统的具体实施中的部件的示例的概念图。

[图5]图5是示出根据本公开的一种或多种技术的可被配置为对视频数据进行编码的视频编码器的示例的框图。

[图6]图6是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图。

具体实施方式

一般来讲,本公开描述了用于对视频数据进行编码的各种技术。具体地,本公开描述了用于发送信号通知编码视频的参考图片的技术。根据本文所述的技术来发送信号通知参考图片对于通过降低传输带宽来改善视频分发系统性能可能特别有用。应当指出的是,尽管本公开的技术是关于ITU-T H.264、ITU-T H.265、JVET-J1001和JVET-K1001描述的,但本公开的技术可普遍应用于视频编码。例如,本文所述的编码技术可结合到视频编码系统(包括基于未来视频编码标准的视频编码系统)中,包括块结构、帧内预测技术、帧间预测技术、变换技术、滤波技术和/或熵编码技术,不同于ITU-T H.265中包括的那些技术。因此,对ITU-T H.264、ITU-T H.265、JVET-J1001和JVET-K1001的参考是出于描述性目的,并且不应被解释为限制本文所述技术的范围。此外,应当指出的是,将文献以引用方式并入本文不应被解释为限制或产生相对于本文所用术语的歧义。例如,在某个并入的参考文献中提供的对某个术语的定义不同于另一个并入的参考文献和/或如本文所用的该术语的情况下,则该术语应以广泛地包括每个相应定义的方式和/或以包括替代方案中每个特定定义的方式来解释。

在一个示例中,发送信号通知参考图片列表的方法包括发送信号通知参数集中的一个或多个候选参考图片列表,以及发送信号通知与图片区域相关联的标头中的候选参考图片列表中的一个候选参考图片列表的索引。

在一个示例中,设备包括一个或多个处理器,该一个或多个处理器被配置为发送信号通知参数集中的一个或多个候选参考图片列表,以及发送信号通知与图片区域相关联的标头中的候选参考图片列表中的一个候选参考图片列表的索引。

在一个示例中,非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时使得设备的一个或多个处理器发送信号通知参数集中的一个或多个候选参考图片列表,并且发送信号通知与图片区域相关联的标头中的候选参考图片列表中的一个候选参考图片列表的索引。

在一个示例中,一种设备包括用于发送信号通知参数集中的一个或多个候选参考图片列表的装置,以及用于发送信号通知与图片的区域相关联的标头中的候选参考图片列表中的一个候选参考图片列表的索引的装置。

在一个示例中,解码视频数据的方法包括:解析参数集中包括的一个或多个语法元素,这些语法元素指示一个或多个候选参考图片列表;解析来自与图片区域相关联的标头的索引,该索引指示候选参考图片列表中的一个候选参考图片列表;以及基于所指示的候选参考图片列表生成视频数据。

在一个示例中,设备包括一个或多个处理器,该一个或多个处理器被配置为:解析参数集中包括的一个或多个语法元素,这些语法元素指示一个或多个候选参考图片列表;解析来自与图片区域相关联的标头的索引,该索引指示候选参考图片列表中的一个候选参考图片列表;以及基于所指示的候选参考图片列表生成视频数据。

在一个示例中,一种非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时使得设备的一个或多个处理器:解析参数集中包括的一个或多个语法元素,这些语法元素指示一个或多个候选参考图片列表;解析来自与图片区域相关联的标头的索引,该索引指示候选参考图片列表中的一个候选参考图片列表;以及基于所指示的候选参考图片列表生成视频数据。

在一个示例中,设备包括用于解析参数集中包括的一个或多个语法元素的装置,这些语法元素指示一个或多个候选参考图片列表;用于解析来自与图片区域相关联的标头的索引的装置,该索引指示候选参考图片列表中的一个候选参考图片列表;以及用于基于所指示的候选参考图片列表生成视频数据的装置。

在以下附图和描述中阐述了一个或多个示例的细节。根据描述和附图以及权利要求书,其他特征、对象和优点将显而易见。

视频内容通常包括由一系列帧组成的视频序列。一系列帧也可以被称为一组图片(GOP)。每个视频帧或图片可以包括一个或多个切片,其中切片包括多个视频块。视频块包括可被预测性地编码的像素值(也被称为样本)阵列。视频块可以根据扫描模式(例如,光栅扫描)来排序。视频编码器对视频块及其子分区执行预测编码。ITU-T H.264指定包括16×16亮度样本的宏块。ITU-T H.265指定类似的编码树单元(CTU)结构(其可被称为最大编码单元(LCU)),其中图片可以被分割成相同大小的CTU,并且每个CTU可以包括具有16×16、32×32或64×64亮度样本的编码树块(CTB)。如本文所用,术语“视频块”通常可以指图片的区域,或者可以更具体地指可以被预测性地编码的像素值的最大阵列、其子分区和/或对应结构。此外,根据ITU-T H.265,每个视频帧或图片可以被划分为包括一个或多个图块,其中图块是对应于图片的矩形区域的编码树单元序列。

在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位阶处进行。

在ITU-T H.265中,CU与在CU处具有其根的预测单元(PU)结构相关联。在ITU-TH.265中,PU结构允许分割亮度CB和色度CB以生成对应的参考样本。也就是说,在ITU-TH.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(即,帧内预测PB大小类型包括M×M或M/2×M/2,其中M为正方形CB的高度和宽度)。在ITU-T H.265中,除了正方形PB之外,还支持矩形PB来进行帧间预测,其中CB可垂直地或水平地减半以形成PB(即,帧间预测PB类型包括M×M、M/2×M/2、M/2×M或M×M/2)。此外,应当指出的是,在ITU-T H.265中,对于帧间预测,支持四个非对称PB划分,其中CB在CB的高度(顶部或底部)或宽度(左侧或右侧)的四分之一处被划分为两个PB(即,非对称划分包括M/4×M左、M/4×M右、M×M/4顶部和M×M/4底部)。对应于PB的帧内预测数据(例如,帧内预测模式语法元素)或帧间预测数据(例如,运动数据语法元素)用于生成PB的参考和/或预测样本值。

JEM指定具有最大大小的256×256亮度样本的CTU。JEM指定四叉树加二叉树(QTBT)块结构。在JEM中,QTBT结构允许由二叉树(BT)结构进一步划分四叉树叶节点。也就是说,在JEM中,二叉树结构允许将四叉树叶节点垂直或水平递归划分。因此,JEM中的二叉树结构实现了正方形和矩形叶节点,其中每个叶节点包括CB。如图2所示,包括在GOP中的图片可包括切片,其中每个切片包括CTU序列,并且每个CTU可根据QTBT结构被划分。在JEM中,CB用于预测而无需任何进一步的划分。也就是说,在JEM中,CB可以是对其应用相同预测的样本值的块。因此,JEM QTBT叶节点可类似于ITU-T H.265中的PB。

帧内预测数据(例如,帧内预测模式语法元素)或帧间预测数据(例如,运动数据语法元素)可将PU与对应的参考样本相关联。残差数据可以包括对应于视频数据的每个分量(例如,亮度(Y)和色度(Cb和Cr))的相应差值阵列。残差数据可能在像素域中。可对像素差值应用变换诸如离散余弦变换(DCT)、离散正弦变换(DST)、整数变换、小波变换或概念上类似的变换,以生成变换系数。应当指出的是,在ITU-T H.265中,CU可以进一步再分为变换单元(TU)。也就是说,为了生成变换系数,可以对像素差值的阵列进行再分(例如,可以将四个8×8变换应用于对应于16×16亮度CB的16×16残差值阵列),此类子分区可以被称为变换块(TB)。可以根据量化参数(QP)来量化变换系数。可以根据熵编码技术(例如,内容自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、概率区间划分熵编码(PIPE)等)对量化的变换系数(可以被称为位阶值)进行熵编码。此外,也可对语法元素(诸如,指示预测模式的语法元素)进行熵编码。熵编码的量化变换系数和对应的熵编码语法元素可形成可用于再现视频数据的兼容比特流。作为熵编码处理的一部分,可以对语法元素执行二值化处理。二值化是指将语法值转换为一个或多个比特的序列的过程。这些位可以被称为“bin”。

如上所述,帧内预测数据或帧间预测数据用于产生样本值的块的参考样本值。包括在当前PB或另一类型的图片区域结构和相关联的参考样本(例如,使用预测生成的那些)中的样本值之间的差可以被称为残差数据。如上所述,帧内预测数据或帧间预测数据可以将图片的区域(例如,PB或CB)与对应的参考样本相关联。对于帧内预测编码,帧内预测模式可指定图片内的参考样本的位置。在ITU-T H.265中,已定义的可能的帧内预测模式包括平面(即,表面拟合)预测模式(predMode:0)、DC(即平坦的整体平均)预测模式(predMode:1),以及33个角度预测模式(predMode:2-34)。在JEM中,已定义的可能的帧内预测模式包括平面预测模式(predMode:0)、DC预测模式(predMode:1),以及65个角度预测模式(predMode:2-66)。应当指出的是,平面预测模式和DC预测模式可以被称为无方向预测模式,并且角度预测模式可以被称为方向预测模式。应当指出的是,无论已定义的可能预测模式的数量如何,本文描述的技术可以是普遍适用的。

对于帧间预测编码,运动矢量(MV)识别先前编码的图片(即,当解码或编码当前图片时可用的图片)中的参考样本,以用于对当前图片中的当前视频块进行编码,从而利用视频中的时间冗余。例如,可以从位于先前编码的图片中的参考块预测当前视频块,并且可以使用运动矢量来指示参考块的位置。运动矢量和相关联数据可以描述例如运动矢量的水平分量、运动矢量的垂直分量、运动矢量的分辨率(例如,四分之一像素精度、二分之一像素精度、一像素精度、二像素精度、四像素精度)、预测方向和/或参考图片索引值。此外,编码标准诸如ITU-T H.265,可以支持运动矢量预测。运动矢量预测允许待指定的运动矢量使用相邻块的运动矢量。运动矢量预测的示例包括高级运动矢量预测(AMVP)、时间运动矢量预测(TMVP)、所谓的“合并”模式,以及“跳过”和“直接”运动推理。此外,JEM支持高级时间运动矢量预测(ATMVP)、空间-时间运动运动矢量预测(STMVP)、模式匹配运动矢量推导(PMMVD)模式,这是基于帧速率上转换(FRUC)技术的特殊合并模式,以及仿射变换运动补偿预测。

残差数据可以包括对应于视频数据的每个分量的相应差值阵列。残差数据可能在像素域中。可对差值阵列应用变换诸如离散余弦变换(DCT)、离散正弦变换(DST)、整数变换、小波变换或概念上类似的变换,以生成变换系数。在ITU-T H.265中,CU与在CU位阶处具有其根的变换单元(TU)结构相关联。也就是说,在ITU-T H.265中,如上所述,为了生成变换系数,可以对差值的阵列进行再分(例如,可以将四个8×8变换应用于16×16残差值阵列)。应当指出的是,在ITU-T H.265中,TB不一定与PB对准。

应当指出的是,在JEM中,对应于CB的残差值用于生成变换系数而无需进一步划分。也就是说,在JEM中,QTBT叶节点可以类似于ITU-T H.265中的PB和TB两者。应当指出的是,在JEM中,可以(在视频编码器中)应用核心变换和后续二次变换来生成变换系数。对于视频解码器,变换的顺序是相反的。此外,在JEM中,是否应用二次变换来生成变换系数可取决于预测模式。

可以对变换系数执行量化处理。量化通过限制为指定值集的振幅来近似变换系数。量化可用于改变表示一组变换系数所需的数据量。量化可以通过将变换系数除以缩放因子和任何相关联的取整函数(例如,舍入为最接近的整数)来实现。量化的变换系数可以被称为系数位阶值。逆量化(或“去量化”)可以包括将系数位阶值与缩放因子相乘。应当指出的是,如本文所用,术语量化过程在一些情况下可指除以缩放因子以生成位阶值,或者在一些情况下可指乘以缩放因子以恢复变换系数。也就是说,量化过程在一些情况下可以指量化,而在一些情况下可以指逆量化。

关于本文所用的公式,可以使用以下算术运算符:

+加法

-减法

*乘法,包括矩阵乘法

x

/将结果向着零截断的整数除法。例如,将7/4和-7/-4截断为1,将-7/4和7/-4截断为-1。

在不旨在进行截断或舍入情况下用于表示数学公式中的除法。

此外,可使用以下数学函数:

Log2(x)x的以2为底的对数;

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)的返回值指定。

-u(n):使用n位的无符号整数。

-ue(v):无符号整数0阶Exp-Golomb编码的语法元素,从最左位起。

如上所述,根据ITU-T H.265,每个视频帧或图片可以被划分为包括一个或多个切片,并且进一步被分区为包括一个或多个图块。图2是示出包括切片的图片组的示例的概念图。在图2所示的示例中,Pic

在ITU-T H.265中,编码视频序列(CVS)可以被封装(或结构化)为一系列访问单元,其中每个访问单元包括被配置为网络抽象层(NAL)单元的视频数据。在ITU-T H.265中,比特流被描述为包括形成一个或多个CVS的NAL单元序列。应当指出的是,ITU-T H.265支持多层扩展,包括格式范围扩展(RExt)、可伸缩性(SHVC)、多视图(MV-HEVC)和3-D(3D-HEVC)。多层扩展使视频呈现能够包括基底层和一个或多个附加增强层。例如,基底层可以使得能够呈现具有基本质量水平(例如,高清晰度呈现)的视频呈现,并且增强层可以使得能够呈现具有增强的质量水平(例如,超高清渲染)的视频呈现。在ITU-T H.265中,可以通过参考基底层来对增强层进行编码。也就是说,例如可以通过参考基底层中的一个或多个图片(包括其缩放版本)来对增强层中的图片进行编码(例如,使用帧间预测技术)。在ITU-T H.265中,每个NAL单元可以包括指示NAL单元与之相关联的视频数据层的标识符。应当指出的是,子比特流提取可以指接收兼容比特流的设备通过丢弃和/或修改接收到的比特流中的数据来形成新的兼容比特流的过程。例如,子比特流提取可以用于形成对应于视频的特定表示(例如,高质量表示)的新的兼容比特流。

参考图2中所示的示例,Pic

图3示出了包括多个CVS的比特流的示例,其中CVS由包括在相应的访问单元中的NAL单元表示。在图3所示的示例中,非VCL NAL单元包括相应的参数集单元(即视频参数集(VPS)、序列参数集(SPS)和图片参数集(PPS)单元)和访问单元定界符NAL单元。ITU-TH.265定义了NAL单元标头语义,其指定了包括在NAL单元中的原始字节序列有效载荷(RBSP)数据结构的类型。

如上所述,对于帧间预测编码,先前编码的图片中的参考样本用于对当前图片中的视频块进行编码。在对当前图片进行编码时可用作参考的先前编码的图片被称为参考图片。应当指出的是,解码顺序不一定对应于图片输出顺序,即视频序列中图片的时间顺序。在ITU-T H.265中,当图片被解码时,其被存储到解码图片缓冲器(DPB)(其可被称为帧缓冲器、参考缓冲器、参考图片缓冲器等)。在ITU-T H.265中,存储到DPB的图片在被输出时从DPB中移除,并且不再需要用于编码后续图片。在ITU-T H.265中,在对切片标头进行解码之后,即,在对图片进行解码开始时,每个图片调用一次是否应从DPB中移除图片的确定。例如,参考图2,Pic

在ITU-T H.265中,当前图片的RPS由五个RPS列表组成:RefPicSetStCurrBefore、RefPicSetStCurrAfter、RefPicSetStFoll、RefPicSetLtCurr和RefPicSetLtFoll。RefPicSetStCurrBefore、RefPicSetStCurrAfter和RefPicSetStFoll被统称为短期RPS。RefPicSetLtCurr和RefPicSetLtFoll统称为长期RPS。应当指出的是,在ITU-T H.265中,RefPicSetStCurrBefore、RefPicSetStCurrAfter和RefPicSetLtCurr中包含可用于当前图片的帧间预测的所有参考图片以及在解码顺序中跟随在当前图片之后的一个或多个图片。RefPicSetStFoll和RefPicSetLtFoll由不用于当前图片的帧间预测但可用于在解码顺序中跟随在当前图片之后的一个或多个图片的帧间预测的所有参考图片组成。ITU-T H.265提供了每个编码图片与图片顺序计数变量(表示为PicOrderCntVal)相关联的情况。在ITU-T H.265中,图片顺序计数用于识别图片。在ITU-T H.265中,在一个CVS中,编码图片中的每个编码图片的PicOrderCntVal值是唯一的。此外,在ITU-T H.265中,图片顺序计数提供了CVS中包括的图片(即,来自解码图片缓冲器,例如用于显示)的相对输出顺序(即,在具有较高图片顺序计数的图片之前输出具有较低图片顺序计数的图片)。在ITU-T H.265中,PicOrderCntVal的值在-2

如上所述,ITU-T H.265提供了两种通用类型的参考图片集:长期参考图片集和短期参考图片集。因此,ITU-T H.265提供了DPB中的图片标记如下的情况:“未用于参考”、“用于短期参考”或“用于长期参考”。在ITU-T H.265中,短期参考图片由其PicOrderCntVal值标识,并且长期参考图片由其PicOrderCntVal值或其slice_pic_order_cnt_lsb值标识(如下所述)。ITU-T H.265还提供了构建以下五个图片顺序计数值列表以导出RPS的情况:PocStCurrBefore、PocStCurrAfter、PocStFoll、PocLtCurr和PocLtFoll。下面更详细地描述PocStCurrBefore、PocStCurrAfter、PocStFoll、PocLtCurr和PocLtFoll的构建。

在ITU-T H.265中,可以在SPS中发送信号通知长期RPS集。此外,在ITU-T中,可在SPS中发送信号通知候选短期RSP集。此外,候选短期RSP中的一个候选短期RSP可通过发送信号通知切片片段标头中的SPS候选RSP中的一个SPS候选RSP的索引来指示。此外,可在切片片段标头中直接发送信号通知短期RPS。

表1示出了ITU-T H.265中序列参数集的与指示参考图片集有关的部分。

表1

ITU-T H.265针对表1中所示的相应语法元素提供了以下定义。

num_short_term_ref_pic_sets指定SPS中包括的st_ref_pic_set()语法结构的数量。num_short_term_ref_pic_sets的值应在0至64的范围内(包括端值),

long_term_ref_pics_present_flag等于0指定没有长期参考图片用于CVS中的任何编码图片的帧间预测。long_term_ref_pics_present_flag等于1指定长期参考图片可以用于CVS中的一个或多个编码图片的帧间预测。

num_long_term_ref_pics_sps指定SPS中指定的候选长期参考图片的数量。num_long_term_ref_pics_sps的值应在0至32的范围内(包括端值)。

lt_ref_pic_poc_lsb_sps[i]指定SPS中指定的第i个候选长期参考图片的图片顺序计数模MaxPicOrderCntLsb。用于表示lt_ref_pic_poc_lsb_sps[i]的位数等于log2_max_pic_order_cnt_lsb_minus4+4。

used_by_curr_pic_lt_sps_flag[i]等于0指定SPS中指定的第i个候选长期参考图片不被在其长期参考图片集(RPS)中包括SPS中指定的第i个候选长期参考图片的图片用作参考。

关于st_ref_pic_set(i),表2示出了ITU-T H.265中提供的st_ref_pic_set(i)语法。

表2

ITU-T H.265针对表2中所示的相应语法元素提供了以下定义。

inter_ref_pic_set_prediction_flag等于1指定第stRpsIdx个候选短期RPS由另一个候选短期RPS预测,该候选短期RPS被称为源候选短期RPS。当inter_ref_pic_set_prediction_flag不存在时,推断其等于0。

delta_idx_minus1加1指定stRpsIdx的值与源候选短期RPS在SPS中指定的候选短期RPS列表中的索引之间的差值。delta_idx_minus1的值应在0至stRpsIdx-1的范围内(包括端值)。当delta_idx_minus1不存在时,推断其等于0。

变量RefRpsIdx如下导出:

RefRpsIdx=stRpsIdx-(delta_idx_minus1+1)

delta_rps_sign和abs_delta_rps_minus1一起指定变量deltaRps的值如下:

deltaRps=(1-2*delta_rps_sign)*(abs_delta_rps_minus1+1)

变量deltaRps表示要添加到源候选短期RPS的图片顺序计数差值中以获得第stRpsIdx个候选短期RPS的图片顺序计数差值的值。abs_delta_rps_minus1的值应在0至2

used_by_curr_pic_flag[j]等于0指定源候选短期RPS中的第j个条目不被当前图片用作参考。

use_delta_flag[j]等于1指定源候选短期RPS中的第j个条目包括在第stRpsIdx个候选短期RPS中。use_delta_flag[j]等于0指定源候选短期RPS中的第j个条目不包括在第stRpsIdx个候选短期RPS中。当use_delta_flag[j]不存在时,推断其值等于1。

当inter_ref_pic_set_prediction_flag等于1时,变量DeltaPocS0[stRpsIdx][i]、UsedByCurrPicS0[stRpsIdx][i]、NumNegativePics[stRpsIdx]、DeltaPocS1[stRpsIdx][i]、UsedByCurrPicS1[stRpsIdx][i]和NumPositivePics[stRpsIdx]如下导出:

num_negative_pics指定图片顺序计数值小于当前图片的图片顺序计数值的第stRpsIdx个候选短期RPS中的条目数量。在当前图片的nuh_layer_id等于0时,num_negative_pics的值应在0至sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范围内(包括端值)。

num_positive_pics指定图片顺序计数值大于当前图片的图片顺序计数值的第stRpsIdx个候选短期RPS中的条目数量。在当前图片的nuh_layer_id等于0时,num_positive_pics的值应在0至sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]-num_negative_pics的范围内(包括端值)。

当i等于0时,delta_poc_s0_minus1[i]加1指定当前图片的图片顺序计数值与第stRpsIdx个候选短期RPS中的第i个条目之间的差值,该条目的图片顺序计数值小于当前图片的图片顺序计数值,或者,当i大于0时,指定第stRpsIdx个候选短期RPS中的第(i-1)个条目与第i个条目的图片顺序计数值之间的差值,这两个条目的图片顺序计数值小于当前图片的图片顺序计数值。Delta_poc_s0_minus1[i]的值应在0至2

used_by_curr_pic_s0_flag[i]等于0指定第stRpsIdx个候选短期RPS中的第i个条目不被当前图片用作参考,该条目的图片顺序计数值小于当前图片的图片顺序计数值。

当i等于0时,delta_poc_s1_minus1[i]加1指定当前图片的图片顺序计数值与第stRpsIdx个候选短期RPS中的第i个条目之间的差值,该条目的图片顺序计数值小于当前图片的图片顺序计数值,或者,当i大于0时,指定当前候选短期RPS中的第(i-1)个条目与第i个条目的图片顺序计数值之间的差值,这两个条目的图片顺序计数值大于当前图片的图片顺序计数值。delta_poc_s1_minus1[i]的值应在0至2

used_by_curr_pic_s1_flag[i]等于0指定当前候选短期RPS中的第i个条目不被当前图片用作参考,该条目的图片顺序计数值大于当前图片的图片顺序计数值。

当inter_ref_pic_set_prediction_flag等于0时,变量NumNegativePics[stRpsIdx]、NumPositivePics[stRpsIdx]、UsedByCurrPicS0[stRpsIdx][i]、UsedByCurrPicS1[stRpsIdx][i]、DeltaPocS0[stRpsIdx][i]和DeltaPocS1[stRpsIdx][i]如下导出:

NumNegativePics[stRpsIdx]=num_negative_pics

NumPositivePics[stRpsIdx]=num_positive_pics

UsedByCurrPicS0[stRpsIdx][i]=used_by_curr_pic_s0_flag[i]

UsedByCurrPicS1[stRpsIdx][i]=used_by_curr_pic_s1_flag[i]

-如果i等于0,则以下适用:

DeltaPocS0[stRpsIdx][i]=-(delta_poc_s0_minus1[i]+1)

DeltaPocS1[stRpsIdx][i]=delta_poc_s1_minus1[i]+1

-否则,以下适用:

DeltaPocS0[stRpsIdx][i]=DeltaPocS0[stRpsIdx][i–1]-(delta_poc_s0_minus1[i]+1)

DeltaPocS1[stRpsIdx][i]=DeltaPocS1[stRpsIdx][i–1]+(deltapoc_s1_minus1[i]+1)

变量NumDeltaPocs[stRpsIdx]如下导出:

NumDeltaPocs[stRpsIdx]=NumNegativePics[stRpsIdx]+NumPositivePics[stRpsIdx]

如上所述,ITU-T H.265指定了st_ref_pic_set(stRpsIdx)语法结构可以存在于SPS中或切片片段标头中的情况。ITU-T H.265还提供了根据语法结构是包括在切片标头还是SPS中的情况,以下适用:

-如果存在于切片标头中,则st_ref_pic_set(stRpsIdx)语法结构指定当前图片(包含切片的图片)的短期RPS,并且以下适用:

-在当前图片的所有切片标头中,st_ref_pic_set(stRpsIdx)语法结构的内容应相同。

-stRpsIdx的值应等于活动SPS中的语法元素num_short_term_ref_pic_sets。

-当前图片的短期RPS也被称为在该子句的其余部分中指定的语义中的第num_short_term_ref_pic_sets个候选短期RPS。

-否则(存在于SPS中),st_ref_pic_set(stRpsIdx)语法结构指定候选短期RPS,并且在该子句的其余部分中指定的语义中的术语“当前图片”是指在以SPS作为活动SPS的CVS中,其short_term_ref_pic_set_idx等于stRpsIdx的每个图片。

表3示出了ITU-T H.265中切片片段标头的与指示参考图片集有关的部分。

表3

ITU-T H.265针对表3中所示的相应语法元素提供了以下定义。

slice_pic_order_cnt_lsb指定当前图片的图片顺序计数模MaxPicOrderCntLsb。slice_pic_order_cnt_lsb语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。slice_pic_order_cnt_lsb的值应在0至MaxPicOrderCntLsb-1的范围内(包括端值)。当slice_pic_order_cnt_lsb不存在时,除非在一些情况下在ITU-H.265中指定,否则推断slice_pic_order_cnt_lsb等于0。

short_term_ref_pic_set_sps_flag等于1指定基于活动SPS中由切片标头中的语法元素short_term_ref_pic_set_idx标识的st_ref_pic_set()语法结构中的一者导出当前图片的短期RPS。short_term_ref_pic_set_sps_flag等于0指定基于直接包括在当前图片的切片标头中的st_ref_pic_set()语法结构导出当前图片的短期RPS。当num_short_term_ref_pic_sets等于0时,short_term_ref_pic_set_sps_flag的值应等于0。

short_term_ref_pic_set_idx指定用于导出当前图片的短期RPS的st_ref_pic_set()语法结构的包括在活动SPS的st_ref_pic_set()语法结构列表中的索引。语法元素short_term_ref_pic_set_idx由Ceil(Log2(num_short_term_ref_pic_sets))位表示。当不存在时,推断short_term_ref_pic_set_idx的值等于0。short_term_ref_pic_set_idx的值应在0至num_short_term_ref_pic_sets-1的范围内(包括端值)。

变量CurrRpsIdx如下导出:

-如果short_term_ref_pic_set_sps_flag等于1,则将CurrRpsIdx设定为等于short_term_ref_pic_set_idx。

-否则,将CurrRpsIdx设定为等于num_short_temi_ref_pic_sets。

num_long_term_sps指定基于活动SPS中指定的候选长期参考图片而导出的当前图片的长期RPS中的条目数量。num_long_term_sps的值应在0至num_long_term_ref_pics_sps的范围内(包括端值)。当不存在时,推断num_long_term_sps的值等于0。

num_long_term_pics指定当前图片的在切片标头中直接发送信号通知的长期RPS中的条目数量。当不存在时,推断num_long_term_pics的值等于0。

当nuh_layer_id等于0时,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps和num_long_term_pics的总和应小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。

lt_idx_sps[i]指定当前图片的长期RPS中第i个条目在活动SPS中指定的候选长期参考图片列表中的索引。用于表示lt_idx_sps[i]的位数等于Ceil(Log2(num_long_term_ref_pics_sps))。当不存在时,推断lt_idx_sps[i]的值等于0。lt_idx_sps[i]的值应在0至num_long_term_ref_pics_sps-1的范围内(包括端值)。

poc_lsb_lt[i]指定当前图片的长期RPS中第i个条目的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[i]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

used_by_curr_pic_lt_flag[i]等于0指定当前图片的长期RPS中的第i个条目不被当前图片用作参考。

变量PocLsbLt[i]和UsedByCurrPicLt[i]如下导出:

-如果i小于num_long_term_sps,则将PocLsbLt[i]设定为等于lt_ref_pic_poc_lsb_sps[lt_idx_sps[i]],并且将UsedByCurrPicLt[i]设定为等于used_by_curr_pic_lt_sps_flag[lt_idx_sps[i]]。

-否则,将PocLsbLt[i]设定为等于poc_lsb_lt[i],并且将UsedByCurrPicLt[i]设定为等于used_by_curr_pic_lt_flag[i]。

delta_poc_msb_present_flag[i]等于1指定delta_poc_msb_cycle_lt[i]存在。delta_poc_msb_present_flag[i]等于0指定delta_poc_msb_cycle_lt[i]不存在。

delta_poc_msb_cycle_lt[i]用于确定当前图片的长期RPS中第i个条目的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[i]不存在时,推断其等于0。

变量DeltaPocMsbCycleLt[i]如下导出:

如上所述,在ITU-T H.265中,构建PocStCurrBefore、PocStCurrAfter、PocStFoll、PocLtCurr和PocLtFoll以导出RPS。ITU-T H.265提供了关于构建PocStCurrBefore、PocStCurrAfter、PocStFoll、PocLtCurr和PocLtFoll的内容:

-如果当前图片是IDR图片,则将PocStCurrBefore、PocStCurrAfter、PocStFoll、PocLtCurr和PocLtFoll都设定为空,并且将NumPocStCurrBefore、NumPocStCurrAfter、NumPocStFoll、NumPocLtCurr和NumPocLtFoll都设定为等于0。

-否则,以下适用:

ITU-T H.265还提供了使用PocStCurrBefore、PocStCurrAfter、PocStFoll、PocLtCurr和PocLtFoll导出当前图片的五个RPS列表(RefPicSetStCurrBefore、RefPicSetStCurrAfter、RefPicSetStFoll、RefPicSetLtCurr和RefPicSetLtFoll)的情况,如下:

1.以下适用:

2.包括在RefPicSetLtCurr或RefPicSetLtFoll中并且其nuh_layer_id等于currPicLayerld的所有参考图片均被标记为“用于长期参考”。

3.以下适用:

4.DPB中未包括在RefPicSetLtCurr、RefPicSetLtFoll、RefPicSetStCurrBefore、RefPicSetStCurrAfter或RefPicSetStFoll中并且其nuh_layer_id等于currPicLayerld的所有参考图片被标记为“未用于参考”。

最后,在ITU-T H.265中,执行解码过程以用于使用五个RPS列表构建一个或两个临时参考图片列表。可任选地修改(即,重新索引)所构建的该一个或两个临时参考图片列表。修改或未修改的临时参考图片列表用于创建最终参考图片列表。参考图片列表的索引值用于在帧间预测期间识别图片。

根据本文的技术,描述了用于生成参考图片列表的简化过程。根据本文的技术,可以直接发送信号通知参考图片列表。如下面进一步详细描述的,在一个示例中,根据本文的技术,可以如下直接发送信号通知参考图片列表:可以在SPS中发送信号通知候选图片列表集,并且可以在切片片段标头中发送信号通知SPS候选图片列表的一个至三个索引,或者可以在切片片段标头中直接发送信号通知新的参考图片列表;可以基于发送信号通知的索引创建一个或两个最终参考图片列表。另外,基于一个、两个或三个参考图片列表来标记参考图片。本文所述的技术是与ITU-T H.265方法相比更简化的解码过程。此外,直接发送信号通知参考图片列表避免了需要在参考图片集语法之上发送信号通知参考图片列表修改语法。

图1是示出根据本公开的一种或多种技术的可以被配置为对视频数据进行编码(例如,编码和/或解码)的系统的示例的框图。系统100表示可以根据本公开的一种或多种技术来封装视频数据系统的示例。如图1所示,系统100包括源设备102、通信介质110和目标设备120。在图1所示的示例中,源设备102可以包括被配置为对视频数据进行编码并将编码视频数据传输到通信介质110的任何设备。目标设备120可以包括被配置为经由通信介质110接收编码视频数据并且对编码视频数据进行解码的任何设备。源设备102和/或目标设备120可以包括配备用于进行有线和/或无线通信的计算设备,并且可以包括例如机顶盒、数字视频录像机、电视机、台式电脑、膝上型电脑或平板电脑、游戏控制台、医学成像设备和移动设备(包括例如智能电话、蜂窝电话、个人游戏设备)。

通信介质110可以包括无线和有线通信介质和/或存储设备的任意组合。通信介质110可以包括同轴电缆、光纤电缆、双绞线电缆、无线发射器和接收器、路由器、交换机、中继器、基站或可用于促进各种设备和站点之间的通信的任何其他设备。通信介质110可以包括一个或多个网络。例如,通信介质110可以包括被配置为允许访问万维网例如互联网的网络。网络可以根据一个或多个电信协议的组合来运营。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括数字视频广播(DVB)标准、高级电视系统委员会(ATSC)标准、综合业务数字广播(ISDB)标准、有线数据业务接口规范(DOCSIS)标准、全球移动通信系统(GSM)标准、码分多址(CDMA)标准、第三代合作伙伴计划(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)标准、第三代合作伙伴计划(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的运动矢量。运动矢量可以指示当前视频帧内的视频块的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所示的设备中。

如上所述,在一个示例中,根据本文的技术,可以如下直接发送信号通知参考图片列表:可以在SPS(或其他参数集,例如,VPS)中发送信号通知候选图片列表集,并且可以在切片片段标头中发送信号通知SPS候选图片列表的一个至三个索引,或者可以在切片片段标头中直接发送信号通知新的参考图片列表。切片片段标头可在一些情况下被称为片段标头。表4示出了可包括在SPS中的相关语法的示例,并且表5示出了可用于根据本文的技术直接发送信号通知参考图片列表的切片片段标头中的相关语法的示例。应当指出的是,表4中包括的语法不限于被包括在SPS中(例如,语法可被包括在参数集中),并且表5中包括的语法不限于被包括在切片片段标头中(例如,语法可被包括在与另一类型的图片区域相关联的标头中,例如图片标头或图块集标头)。

表4

表5

在一个示例中,以下定义可用于表4中所示的相应语法元素。

num_ref_pic_lists_minus1指定SPS中包括的pic_lists(i)语法结构的数量。num_ref_pic_lists_minus1的值应在0至255的范围内(包括端值)。

pic_list(0)被推断为图片的空列表。因此,pic_list(0)不包括任何图片。

解码器应该为总数为(num_ref_pic_lists_minus1+4)的pic_list()语法结构分配内存,因为在当前图片的切片标头中可能直接发送信号通知多达3个pic_list()语法结构。

在一个示例中,以下定义可用于表5中所示的相应语法元素。

num_rpl_slice_header_minus1指定在rpl_sps_flag等于0的情况下在切片标头中直接发送信号通知的pic_lists(i)语法结构的数量,或者指定在rpl_sps_flag等于1的情况下在切片标头中发送信号通知的rpl_index[j]条目的数量。num_rpl_slice_header_minus1的值应在0至2的范围内(包括端值)。保留值3。

rpl_sps_flag等于1指定基于活动SPS中的pic_list()语法结构发送信号通知当前图片的参考图片列表,该语法结构由切片头中的语法元素rpl_idx[j]标识。rpl_sps_flag等于0指定在pic_list()语法结构中发送信号通知当前图片的长期参考图片列表,该语法结构在当前图片的切片标头中被直接发送信号通知。

rpl_idx[j]指定参考图片列表的索引。rpl_idx[0]指定当前图片的参考图片列表0的索引。如果存在,如果当前切片为B切片,则rpl_idx[l]指定参考图片列表1的索引,并且如果当前切片为P切片,则rpl_idx[l]指定包括以比特流顺序跟随在当前图片之后的图片的参考图片的图片列表的索引。如果存在,rpl_idx[2]表示包括以比特流顺序跟随在当前图片之后的图片的参考图片的图片列表的索引。

对于j在0至num_rpl_slice_header_minus1的范围内(包括端值)的语法元素rpl_idx[j]由Ceil(Log2(num_refjpic_lists_minus1+1))位表示。Rpl_idx[j]的值应在0至num_ref_pic_lists_minus1的范围内(包括端值)。

表6示出了根据本文技术的pic_list语法的示例。

表6

表7示出了根据本文技术的pic_list语法的另一个示例。

表7

在一个示例中,以下定义可用于表6和表7中所示的相应语法元素。

inv_list_flag等于1指定通过反转第(listIdx-1)个列表中的每个增量POC值的符号来从第(listIdx-1)个图片列表导出第listIdx个图片列表。inv_list_flag等于0指定发送信号通知第listIdx个图片列表。当inv_list_flag不存在时,推断其等于0。

neg_delta_entries指定图片顺序计数值小于当前图片的图片顺序计数值的第listIdx个图片列表中的条目数量。neg_delta_entries的值应在0至sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范围内(包括端值)。

pos_delta_entries指定图片顺序计数值大于当前图片的图片顺序计数值的第listIdx个图片列表中的条目数量。pos_delta_entries的值应在0至sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]-neg_delta_entries的范围内(包括端值)。

关于表6所示的示例,在一个示例中,以下定义可用于语法元素delta_entry_minus1。

delta_entries_minus1[i]加1,

-当i等于0时,指定当前图片的图片顺序计数值与第listIdx个图片列表中的第i个条目之间的差值(该条目的图片顺序计数值小于该当前图片的图片计数值),或者,

-当i大于0且小于neg_delta_entries时,指定第listIdx个图片列表中第i个条目和第(i+1)个条目的图片顺序计数值之间的差值(这两个条目的图片顺序计数值小于当前图片的图片顺序计数值),或者,

-当i等于neg_delta_entries时,指定当前图片的图片顺序计数值与第listIdx个图片列表中的第i个条目之间的差值(该条目的图片顺序计数值大于该当前图片的图片计数值),或者,

-当i大于neg_delta_entries时,指定第listIdx个图片列表中第(i+1)个条目和第i个条目的图片顺序计数值之间的差值(这两个条目的图片顺序计数值大于当前图片的图片顺序计数值)。

delta_entries_minus1[i]的值应在0至2

当inv_list_flag等于0时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、NumPositivePics[listIdx]、DeltaPoc[listIdx][i]如下导出:

NumNegativePics[listIdx]=neg_delta_entries

NumPositivePics[listIdx]=pos_delta_entries

NumDeltaPocs[listIdx]=NumNegativePics[listIdx]+NumPositivePics[listIdx]

-如果i等于0,则以下适用:

DeltaPoc[listIdx][i]=-(delta_entries_minus1[0]+1)

-如果i>0且小于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][i]=DeltaPoc[listIdx][i–1]-(delta_entries_minus1[i]+1)

-如果i等于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][neg_delta_entries]=delta_entries_minus1[i]+1

-如果i大于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][i]=DeltaPoc[listIdx][i-1]+(delta_entries_minus 1[i]+1)

当inv_list_flag等于1时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、NumPositivePocs[listIdx]、DeltaPoc[listIdx][i]如下导出:

NumNegativePics[listIdx]=NumPositivePics[listIdx-l]

NumPositivePics[listIdx]=NumNegativePics[listIdx-1]

NumDeltaPocs[listIdx]=NumDeltaPocs[listIdx-1]

-对于i在0至NumDeltaPocs[listIdx](包括端值)的范围内,以下适用:

DeltaPocf listIdx][i]=-(DeltaPoc[listIdx-1][i])

关于表7所示的示例,在一个示例中,以下定义可用于语法元素delta_entry_minus1。

delta_entries_minus1[i]加1,

-当i等于0时,指定当前图片的图片顺序计数值与第listIdx个图片列表中的第i个条目之间的差值(该条目的图片顺序计数值小于该当前图片的图片计数值),或者,

-当i大于0且小于neg_delta_entries时,指定第listIdx个图片列表中第i个条目和第(i+1)个条目的图片顺序计数值之间的差值(这两个条目的图片顺序计数值小于当前图片的图片顺序计数值),或者,

-当i等于neg_delta_entries时,指定当前图片的图片顺序计数值与第listIdx个图片列表中的第i个条目之间的差值(该条目的图片顺序计数值大于该当前图片的图片计数值),或者,

-当i大于neg_delta_entries时,指定第listIdx个图片列表中第(i+1)个条目和第i个条目的图片顺序计数值之间的差值(这两个条目的图片顺序计数值大于当前图片的图片顺序计数值)。

delta_entries_minus1[i]的值应在0至2

当inv_list_flag等于0时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、DeltaPocS0[listIdx][i]和DeltaPocS1[listIdx][i]如下导出:

NumNegativePics[listIdx]=neg_delta_entries

NumPositivePics[listIdx]=pos_delta_entries

-如果i等于0,则以下适用:

DeltaPocS0[listIdx][i]=-(neg_delta_entries_minus1[i]+1)

DeltaPocSl[listIdx][i]=pos_delta_entries_minus1[i]+1

-否则,以下适用:

DeltaPocS0[listIdx][i]=DeltaPocS0[stRpsIdx][i-1]-(neg_delta_entries_minus1[i]+1)

DeltaPocS1[listIdx][i]=DeltaPocS1[stRpsIdx][i-1]+(pos_delta_entries_minus1[i]+1

变量NumDeltaPocs[listIdx]如下导出:

NumDeltaPocs[listIdx]=NumNegativePics[listIdx]+NumPositivePics[listIdx]

基于上文在表4至表7中提供的语法,在一个示例中,可以根据和/或基于以下步骤执行用于导出参考图片列表(RPL)的过程,即,由视频解码器在对图片进行解码的开始时执行的过程:

以下适用:

对于j在0至num_rpl_slice_header_minus1范围内(包括端值)的变量CurrRPListIdx[j]如下导出:

-如果rpl_sps_flag等于1,则将CurrRPListIdx[j]设定为等于rpl_idx[j]。

-否则,将CurrRPListIdx[j]设定为等于rpl_idx[num_refjpic_lists_minus1+j+l]。

对于j在0至num_rpl_slice_header_minus1的范围内(包括端值)以下适用:

DPB中未包括在对于j在0至num_rp1_slice_header_minus1的范围内(包括端值)的RefPics[j]中的所有参考图片被标记为“未用于参考”。

在一个示例中,对于否则将CurrRPListIdx[j]设定为等于rpl_idx[num_ref_pic_lists_minus1+j+1]的情况,可执行以下操作:

此外,基于上文在表4至表7中提供的语法,在一个示例中,用于参考图片列表构建的过程,即,由视频解码器在解码过程开始时针对每个P切片或B切片执行的用于构建参考图片列表RefPicList0的过程,以及针对B切片构建RefPicList1的过程可以基于以下来执行:

将变量NumRpsCurrList0设定为等于Max(num_ref_idx_10_active_minus1+1,NumDeltaPocs[CurrRPListIdx[0]]),并且列表RefPicList0如下构建:

for(i=0,rIdx=0;i

RefPicList0[rIdx]=RefPics[0][i]

当切片为B切片时,将变量NumRpsCurrList1设定为等于Max(num_ref_idx_ll_active_minus1+1,

NumDeltaPocs[CurrRPList1dx[0]]),并且RefPicList1如下构建:

for(i=0,rIdx=0;i

RefPicList1[rIdx]=RefPics[1][i]

在另一个示例中,构建参考图片列表RefPicList0,并且对于B切片,RefPicList1可以基于以下内容来执行,其中可以存在RPL修改:

列表RefPicList0如下构建。

分别将上述RefPicList0条目分配给RefPicListTemp0,以及上述RefPicList1条目分配给RefPicListTemp1阵列。然后,最终的参考图片列表如下导出:

for(rIdx=0;rIdx<=num_ref_idx_10_active_minus1;rIdx++)

RefPicList0[rIdx]=ref_pic_list_modification_flag_10?

RefPicListTemp0[list_entry_10[rIdx]]:RefPicListTemp0[rIdx]

当切片为B切片时,列表RefPicList1如下构建:

for(rIdx=0;rIdx<=num_ref_idx_11_active_minus1;rIdx++)

RefPicList1[rIdx]=ref_pic_list_modification_flag_11?

RefPicListTemp1[list_entry_11[rIdx]]:RefPicListTemp1[rIdx]

此外,基于上文在表4至表7中提供的语法,在一个示例中,可以根据和/或基于以下步骤来执行用于生成不可用参考图片的过程:

每个编码图片调用一次该过程。

当调用该过程时,以下适用:

-对于其中i在0至NumDeltaPocs[CurrRPListIdx[j]]的范围内(包括端值),j在0至num_rpl_slice_header_minus1的范围内(包括端值)的每个RefPics[j][i],即等于“无参考图片”,按照“生成一个不可用图片”中指定的方式生成图片,并且以下适用:

-将所生成图片的PicOrderCntVal值设定为等于PicOrderCntVal+DeltaPoc[CurrRPListIdx[j]][i]。

-所生成图片被标记为“用于短期参考”。

-RefPics[j][i]被设定为所生成的参考图片。

此外,基于上文在表4至表7中提供的语法,在一个示例中,可以根据和/或基于以下步骤来执行用于生成一个不可用参考图片的过程:

当调用该过程时,如下生成不可用图片:

-将用于图片的样本阵列S

-将用于图片的样本阵列S

-对于x=0..pic_width_injuma_samples-1,y=0..pic_height_in_luma_samples-1,将预测模式CuPredMode[x][y]设定为等于MODE_INTRA。

此外,基于上文在表4至表7中提供的语法,在一个示例中,可以根据和/或基于以下步骤来执行用于选择参考图片的过程:

该过程的输入为参考索引refIdxLX。

该过程的输出是由亮度样本refPicLXL的二维阵列以及色度样本refPicLX

输出参考图片RefPicListX[refIdxLX]由亮度样本refPicLX

参考图片样本阵列refPicLX

在一个示例中,根据本文的技术,可以直接发送信号通知长期参考图片列表,如下面进一步详细提供的。表8示出了可包括在SPS中以用于直接发送信号通知长期参考图片列表的相关语法的示例。应当指出的是,表8中包括的语法不限于包括在SPS中(例如,语法可以包括在参数集中)。

表8

在一个示例中,以下定义可用于表8中所示的相应语法元素。

long_term_ref_pics_present_flag等于0指定没有长期参考图片用于CVS中任何编码图片的帧间预测。long_term_ref_pics_present_flag等于1指定长期参考图片可以用于CVS中的一个或多个编码图片的帧间预测。

num_ref_pic_lists_minus1指定SPS中包括的pic_lists(i)语法结构的数量。num_ref_pic_lists_minus1的值应在0至255的范围内(包括端值)。

pic_list(0)被推断为图片的空列表。因此,pic_list(0)不包括任何图片。

解码器应该为总数为(num_ref_pic__lists__minus1+4)的pic_list()语法结构分配内存,因为在当前图片的切片标头中可能直接发送信号通知多达3个pic_list()语法结构。

表9A示出了可以与表8中所示的示例性语法结合使用的pic_list语法的示例。

表9A

在一个示例中,以下定义可用于表9A中所示的相应语法元素。

inv_list_flag等于1指定通过反转第(listIdx-1)个列表中的每个增量POC值的符号来从第(listIdx-1)个图片列表导出第listIdx个图片列表。inv_list_flag等于0指定发送信号通知第listIdx个图片列表。当inv_list_flag不存在时,推断其等于0。

neg_delta_entries指定图片顺序计数值小于当前图片的图片顺序计数值的第listIdx个图片列表中的条目数量。neg_delta_entries的值应在0至sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范围内(包括端值)。

pos_delta_entries指定图片顺序计数值大于当前图片的图片顺序计数值的第listIdx个图片列表中的条目数量。pos_delta_entries的值应在0至sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]-neg_delta_entries的范围内(包括端值),delta_entries_minus1[i]加1,

-当i等于0时,指定当前图片的图片顺序计数值与第listIdx个图片列表中的第i个条目之间的差值(该条目的图片顺序计数值小于该当前图片的图片计数值),或者,

-当i大于0且小于neg_delta_entries时,指定第listIdx个图片列表中第i个条目和第(i+1)个条目的图片顺序计数值之间的差值(这两个条目的图片顺序计数值小于当前图片的图片顺序计数值),或者,

-当i等于neg_delta_entries时,指定当前图片的图片顺序计数值与第listIdx个图片列表中的第i个条目之间的差值(该条目的图片顺序计数值大于该当前图片的图片计数值),或者,

-当i大于neg_delta_entries时,指定第listIdx个图片列表中第(i+1)个条目和第i个条目的图片顺序计数值之间的差值(这两个条目的图片顺序计数值大于当前图片的图片顺序计数值)。

delta_entries_minus1[i]的值应在0至2

ltrp_list_present_flag等于0指定在该图片列表中不发送信号通知长期参考图片。ltrp_list_present_flag等于1指定在该图片列表中发送信号通知长期参考图片,并且num_long_term_pics_minus1、poc_lst_lt[j]、delta_poc_msb_present_flag[j]存在,并且delta_po_msb_cycle_lt[j]可存在。当不存在时,推断ltrp_list_present_flag等于0。

num_long_term_pics_minus1加1指定图片列表中的长期参考图片条目的数量。NumNegativePics[listIdx]、NumPositivePics[listIdx]、(num_long_term_pics_minus1+1)的总和应小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。

poc_lsb_It[j]指定列表中第j个长期参考图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[i]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

delta_poc_msb_present_flag[j]等于1指定delta_poc_msb_cycle_lt[j]存在。delta_poc_msb_present_flag[i]等于0指定delta_poc_msb_cycle_lt[j]不存在。

delta_poc_msb_cycle_It[j]用于确定列表中第j个长期参考图片的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[j]不存在时,推断其等于0。

变量DeltaPocMsbCycleLt[j]如下导出:

当inv_list_flag等于0时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、NumPositivePics[listIdx]、DeltaPoc[listIdx][i]如下导出:

NumNegativePics[listIdx]=neg_delta_entries

NumPositivePics[listIdx]=pos_delta_entries

NumDeltaPocs[listIdx]=NumNegativePics[listIdx]+NumPositivePics[listIdx]

-如果i等于0,则以下适用:

DeltaPoc[listIdx][i]=-(delta_entries_minus 1[0]+1)

-如果i>0且小于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][i]=DeltaPoc[listIdx][i-1]-(delta_entries_minus 1[i]+1)

-如果i等于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][neg_delta_entries]=delta_entries_minus1[i]+1

-如果i大于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][i]=DeltaPoc[listIdx][i-1]+(delta_entries_minus1[i]+1)

当inv_list_flag等于1时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、NumPositivePocs[listIdx]、DeltaPoc[listIdx][i]如下导出:

NumNegativePics[listIdx]=NumPositivePics[listIdx-l]

NumPositivePics[listIdx]=NumNegativePics[listIdx-l]

NumDeltaPocs[listIdx]=NumDeltaPocs[listIdx-l]

-对于i在0至NumDeltaPocs[listIdx](包括端值)的范围内,以下适用:

DeltaPoc[listIdx][i]=-(DeltaPoc[listIdx-l][i])

如果ltrp_list_present_flag等于0,则将NumPocLt[listIdx]设置为等于0

否则:NumPocLt[listIdx]=num_long_term_pics_minus1+1

表9B示出了可以与表8中所示的示例性语法结合使用的pic_list语法的另一个示例。应当指出的是,在表9B所示的示例中,允许以任何顺序发送信号通知参考图片列表,这与要求首先发送信号通知当前图片之前的图片的方法相反。

表9B

在一个示例中,以下定义可用于表9B中所示的相应语法元素。

inv_list_flag等于1指定通过反转第(listIdx-1)个列表中的每个增量POC值的符号来从第(listIdx-1)个图片列表导出第listIdx个图片列表。inv_list_flag等于0指定发送信号通知第listIdx个图片列表。当inv_list_flag不存在时,推断其等于0。

num_strp_pics指定第listIdx个图片列表中短期参考图片(STRP)条目的数量。

变体:在变体而不是num_strjpics中,可以发送信号通知语法元素num_strp_pics_minus1。其可具有如下语义:

num_strp_pics_minus1加1指定第listIdx个图片列表中短期参考图片(STRP)条目的数量。

strp_delta_poc[i],当第i个条目为第listIdx个图片列表中的第一STRP条目时,指定当前图片的图片顺序计数值与第i个条目所参考的图片之间的绝对差,或者,当第i个条目为STRP条目但不是第listIdx个图片列表中的第一STRP条目时,指定第listIdx个图片列表中由第i个条目参考的图片的图片顺序计数值与前一个STRP条目参考的图片的图片顺序计数值之间的绝对差。

delta_poc_st[i]的值应在0至2

strp_pic_sign[i]等于1指定第listIdx个图片列表中的第i个条目具有大于或等于0的增量图片顺序计数(POC)值。strp_pic_signs[i]等于0指定第listIdx个图片列表中的第i个条目具有小于0的增量图片顺序计数(POC)值。当不存在时,推断strp_pic_sign[i]等于1。在另一个示例中:当不存在时,推断strp_pic_sign[i]等于0。

ltrp_list_present_flag等于0指定在该图片列表中不发送信号通知长期参考图片。ltrp_list_present_flag等于1指定在该图片列表中发送信号通知长期参考图片,并且num_long_term_pics_minus1、poc_lst_lt[j]、delta_poc_msb_present_flag[j]存在,并且delta_po_msb_cycle_lt[j]可存在。当不存在时,推断present ltrp_list_present_flag等于0。

num_long_term_pics_minus1加1指定图片列表中的长期参考图片条目的数量。

NumNegativePics[listIdx]、NumPositivePics[listIdx]、(num_long_term_pics_minus1+1)的总和应小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。

poc_lsb_lt[j]指定列表中第j个长期参考图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[i]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

delta_poc_msb_present_flag[j]等于1指定delta_poc_msb_cycle_lt[j]存在。delta_poc_msb_present_flag[i]等于0指定delta_poc_msb_cycle_lt[j]不存在。

delta_poc_msb_cycle_lt[j]用于确定列表中第j个长期参考图片的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[j]不存在时,推断其等于0。

变量DeltaPocMsbCycleLt[j]如下导出:

当inv_list_flag等于0时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、NumPositivePics[listIdx]、DeltaPoc[listIdx][i]如下导出:

NumDeltaPocs[listIdx]=NumNegativePics[listIdx]+NumPositivePics[listIdx]

当inv_list_flag等于1时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、NumPositivePocs[listIdx]、DeltaPoc[listIdx][i]如下导出:

NumNegativePics[listIdx]=NumPositivePics[listIdx-l]

NumPositivePics[listIdx]=NumNegativePics[listIdx-l]

NumDeltaPocsf listIdx]=NumDeltaPocs[listIdx-l]

-对于i在0至NumDeltaPocs[listIdx]的范围内(包括端值),以下适用:

DeltaPoc[listIdx][i]=-(DeltaPoc[listIdx-1][i])

如果ltrp_list_present_flag等于0,则将NumPocLt[listIdx]设置为等于0

否则:NumPocLt[listIdx]=num_long_term_pics_minus1+1

基于上文在表8和表9A至表9B中提供的语法,在一个示例中,可以根据和/或基于以下步骤来执行用于导出参考图片列表(RPL)的过程。这些步骤可按下文所示的顺序或按不同的顺序执行。

以下适用:

对于j在0至num_rpl_slice_header_minus1范围内(包括端值)的变量CurrRPListIdx[j]如下导出:

-如果rpl_sps_flag等于1,则将CurrRPListIdx[j]设定为等于rpl_idx[j]。

-否则,将CurrRPListIdx[j]设定为等于rpl_idx[num_ref_picjists_minus1+j+l]。

对于j在0至num_rpl_slice_header_minus1的范围内(包括端值)以下适用:

对于j在0至num_rpl_slice_header_minus1的范围内(包括端值)以下适用:

包括在RefPics[j][k]中的所有参考图片,对于k在NumDeltaPocs[CurrRPListIdx[j]]至NumDeltaPocs[CurrRPListIdx[j]]+NumPocLt[CurrRPListIdx[j]]-1]的范围内(包括端值),对于j在0至num_rpl_slice_header_minusl的范围内(包括端值),被标记为“用于长期参考”。

DPB中未包括在对于j在0至num_rpl_slice_header_minus1的范围内(包括端值)的RefPics[j]中的所有参考图片被标记为“未用于参考”。

基于上文在表8和表9A至表9B中提供的语法,在一个示例中,可以根据和/或基于以下步骤来执行用于生成不可用图片的过程:

-对于其中i在0至NumDeltaPocs[CurrRPListIdx[j]]的范围内(包括端值),j在0至num_rpl_slice_header_minus1的范围内(包括端值)的每个RefPics[j][i],即等于“无参考图片”,按照“生成一个不可用图片”中指定的方式生成图片,并且以下适用:

-将所生成图片的PicOrderCntVal值设定为等于PicOrderCntVal+DeltaPoc[CurrRPListIdx[j]][i]。

-所生成图片被标记为“用于短期参考”。

-RefPics[j][i]被设定为所生成的参考图片。

在一个示例中,可仅针对j等于num_rpl_slice_header_minus1时执行以上步骤。

-对于i在NumDeltaPocs[CurrRPListIdx[j]]至NumDeltaPocs[CurrRPListIdx[j]]+NumPocLt[CurrRPListIdx[j]]-1]的范围内(包括端值),j在0至num_rpl_slice_header_minusl的范围内(包括端值)的每个RefPics[j][i],即等于“无参考图片”,按照“生成一个不可用图片”中指定的方式生成图片,并且以下适用:

-将所生成图片的PicOrderCntVal值设定为等于(DPocLt[CurrRPListIdx[j]][i-NumDeltaPocs[CurrRPListIdx[j]]-slice_pic_order_cnt_lsb+PicOrderCntVal),此为在DeltaPocMsbPresentFlag[CurrRPListIdx[j]][i-NumDeltaPocs[CurrRPListIdx[j]]等于1的情况下,否则将其设定为DPocLt[CurrRPListIdx[j]][i-NumDeltaPocsfCurrRPListIdx[j]](此为在DeltaPocMsbPresentFlag[CurrRPListIdx[j]][i-NumDeltaPocsfCurrRPListIdx[j]]等于0的情况下)。

-推断所生成图片的slice_pic_order_cnt_lsb值等于((所生成图片的PicOrderCntVal)&(MaxPicOrderCntLsb-1))。

-所生成图片被标记为“用于长期参考”。

-RefPics[j][i]被设定为所生成的参考图片。

在一个示例中,可仅针对j等于num_rpl_slice_header_minus1时执行以上步骤。

基于上文在表8和表9A至表9B中提供的语法,在一个示例中,构建参考图片列表RefPicList0,以及针对B切片构建RefPicList1可以基于以下来执行:

将变量NumRpsCurrList0设定为等于Max(num_ref_idx_10_active_minus1+1,

NumDeltaPocs[CurrRPListIdx[0]]+NumPocLt[CurrRPListIdx[0]]),并且列表RefPicList0如下构建:

for(i=0,rIdx=0;i<(NumDeltaPocs[CurrRPListIdx[0]]]+NumPocLt[CurrRPListIdx[0]])&&rIdx

RefPicList0[rIdx]=RefPicsf 0][i]

当切片为B切片时,将变量NumRpsCurrList1设定为等于Max(num_ref_idx_ll_active_minus1+1,NumDeltaPocs[CurrRPListIdx[0]]+NumPocLt[CurrRPListIdx[l]])),并且列表RefPicList1如下构建:

表10示出了可包括在SPS中的相关语法的另一个示例,并且表11示出了可用于根据本文的技术直接发送信号通知长期参考图片列表的切片片段标头中的相关语法的示例。应当指出的是,表10中包括的语法不限于包括在SPS中,并且表11中包括的语法不限于包括在切片片段标头中。在关于表10和表11所示的示例中,长期参考图片相关信息不包括在pic_List()中,而是包括在单独的长期ltrp_pic_List()中。应当指出的是,当长期参考图片相关信息包括在单独的ltrp_pic_list()中时,pic_list()可以基于表7中所示的示例。

表10

表11

在一个示例中,以下定义可用于表10中所示的相应语法元素。

long_term_ref_pics_present_flag等于0指定没有长期参考图片用于CVS中任何编码图片的帧间预测。long_term_ref_pics_present_flag等于1指定长期参考图片可以用于CVS中的一个或多个编码图片的帧间预测。

num_ref_pic_lists_minus1指定SPS中包括的pic_lists(i)语法结构的数量。num_ref_pic_lists_minus1的值应在0至255的范围内(包括端值)。

pic_list(0)被推断为图片的空列表。因此,pic_list(0)不包括任何图片。

解码器应该为总数为(num_ltrp_ref_pic_lists_minus1+4)的ltrp_pic_list()语法结构分配内存,因为在当前图片的切片标头中可能直接发送信号通知多达3个ltrp_pic_list()语法结构。

num_ltrp_ref_pic_lists_minus1指定SPS中包括的ltrp_pic_lists(i)语法结构的数量。num_ltrp_ref_pic_lists_minus1的值应在0至255的范围内(包括端值)。解码器应该为总数为(num_ltrp_ref_pic_lists_minus1+3)的ltrp_pic_list()语法结构分配内存,因为在当前图片的切片标头中可能直接发送信号通知多达2个ltrp_pic_list()语法结构。

在一个示例中,以下定义可用于表11中所示的相应语法元素。

num_rpl_slice_header_minus1指定在rpl_sps_flag等于0的情况下在切片标头中直接发送信号通知的picjists(i)语法结构的数量,或者指定在rpl_sps_flag等于1的情况下在切片标头中发送信号通知的rpl_index[j]条目的数量。num_rpl_slice_header_minus1的值应在0至2的范围内(包括端值)。保留值3。

rpl_sps_flag等于1指定基于活动SPS中的pic_list()语法结构发送信号通知当前图片的参考图片列表,该语法结构由切片头中的语法元素rpl_idx[j]标识。rpl_sps_flag等于0指定在pic_list()语法结构中发送信号通知当前图片的长期参考图片列表,该语法结构在当前图片的切片标头中被直接发送信号通知。

rpl_idx[j]指定参考图片列表的索引。rpl_idx[0]指定当前图片的参考图片列表0的索引。如果存在,如果当前切片为B切片,则rpl_idx[1]指定参考图片列表1的索引,并且如果当前切片为P切片,则rpl_idx[l]指定包括以比特流顺序跟随在当前图片之后的图片的参考图片的图片列表的索引。如果存在,ipl_idx[2]表示包括以比特流顺序跟随在当前图片之后的图片的参考图片的图片列表的索引。

对于j在0至num_rpl_slice_header_minus1的范围内(包括端值)的语法元素rpl_idx[j]由Ceil(Log2(num_refjpic_lists_minus1+1))位表示。Rpl_idx[j]的值应在0至num_ref_pic_lists_minus1的范围内(包括端值)。

num_ltrp_rpl_slice_header_minus1指定在ltrp_rpl_sps_flag等于0的情况下在切片标头中直接发送信号通知的ltrp_pic_lists(i)语法结构的数量,或者指定在ltrp_rpl_sps_flag等于1的情况下在切片标头中发送信号通知的ltrp_rpl_index[j]条目的数量。num_ltrp_rpl_slice_header_minus1的值应在0至1的范围内(包括端值)。保留值2和3。

在另一个示例中,仅1位(即,u(l))可用于num_ltrp_rpl_slice_header_minus1,并且其语义将如下:

num_ltrp_rpl_slice_header_minus1指定在ltrp_rpl_sps_flag等于0的情况下在切片标头中直接发送信号通知的ltrp_pic_lists(i)语法结构的数量,或者指定在ltrp_rpl_sps_flag等于1的情况下在切片标头中发送信号通知的ltrp_rpl_index[j]条目的数量。

ltrp_rpl_sps_flag等于1指定基于活动SPS中的ltrp_pic_list()语法结构发送信号通知当前图片的长期参考图片列表,该语法结构由切片头中的语法元素ltrp_rpl_idx[j]标识。ltrp_rpl_sps_flag等于0指定在ltrp_pic_list()语法结构中发送信号通知当前图片的长期参考图片列表,该语法结构在当前图片的切片标头中被直接发送信号通知。

ltrp_rpl_idx[j]指定长期参考图片列表的索引。ltrp_rpl_idx[0]指定用于构建当前图片的长期参考图片列表0和1的索引。如果存在,rpl_idx[l]指定包括以比特流顺序跟随在当前图片之后的图片的长期参考图片的图片列表的索引。

对于j在0至num_ltrp_rpl_slice_header_minus1的范围内(包括端值)的语法元素ltrp_rpl_idx[j]由Ceil(Log2(num_ltrp_ref_pic_lists_minus1+1))位表示。ltrp_rpl_idx[j]的值应在0至num_ltrp_refjaic_lists_minus1的范围内(包括端值)。

表12示出了可以与表10和表11中所示的示例语法结合使用的ltrp_pic_list语法的另一个示例。

表12

在一个示例中,以下定义可用于表12中所示的相应语法元素。

num_long_term_pics_minus1加1指定图片列表中的长期参考图片条目的数量。NumNegativePics[listIdx]、NumPositivePics[listIdx]、(num_long_term_pics_minus1+1)的总和应小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。

poc_lsb_lt[j]指定列表中第j个长期参考图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[i]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

delta_poc_msb_present_flag[j]等于1指定delta_poc_msb_cycle_lt[j]存在。delta_poc_msb_present_flag[i]等于0指定delta_poc_msb_cycle_lt[j]不存在。

delta_poc_msb_cycle_lt[j]用于确定列表中第j个长期参考图片的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[j]不存在时,推断其等于0。

变量DeltaPocMsbCycleLt[j]如下导出:

当inv_list_flag等于0时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、NumPositivePics[listIdx]、DeltaPoc[listIdx][i]如下导出:

NumNegativePics[listIdx]=neg_delta_entries

NumPositivePics[listIdx]=pos_delta_entries

NumDeltaPocs[listIdx]=NumNegativePics[listIdx]+NumPositivePicsflistIdx]

-如果i等于0,则以下适用:

DeltaPoc[listIdx][i]=-(delta_entries_minus1[0]+1)

-如果i>0且小于neg_delta_entries,则以下适用:

DeltaPocf listIdx][i]=DeltaPoc[listIdx][i-1]

-(delta_entries_minus1[i]+1)

-如果i等于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][neg_delta_entries]=delta_entries_minus1[i]+1

-如果i大于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][i]=DeltaPoc[listIdx][i-1]+

(delta_entries_minus1[i]+1)

当inv_list_flag等于1时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、NumPositivePocs[listIdx]、DeltaPoc[listIdx][i]如下导出:

基于上文在表10、表11和表12中提供的语法,在一个示例中,可以根据和/或基于以下步骤来执行用于导出参考图片列表(RPL)的过程。

这些步骤可按下文所示的顺序或按不同的顺序执行。

以下适用:

对于j在0至num_rpl_slice_header_minus1范围内(包括端值)的变量CurrRPListIdx[j]如下导出:

对于j在0至num_rpl_slice_header_minus1范围内(包括端值),n在0至num_ltrp_rpl_slice_header_minus1的范围内(包括端值),以下适用:

对于n在0至num_ltrp_rpl_slice_header_minus1范围内(包括端值)的变量CurrLTRPRPListIdx[n]如下导出:

-如果ltrp__rpl_sps_flag等于1,则将CurrLTRPRPListIdx[n]设定为等于ltrp_rpl_idx[n]。

-否则,将CurrLTRPRPListIdx[n]设定为等于ltrp_rpl_idx[num_ltrp_ref_pic_lists_minus1+n+1]。

在另一个示例中,上述步骤为:

-如果当前切片为B切片,则仅对于j在0至1的范围内,或者如果当前切片为P切片,则对于n等于0,j在0的范围内适用;以及

-如果当前切片为B切片,则仅对于j等于max(2,num_rpl_slice_header_minus1),或者如果当前切片为P切片,则对于j等于max(1,num_rpl_slicejieader_minus1),n等于max(1,num_ltrp_rpl_slice_header_minus1)适用;以及

包括在RefPics[j][k]中的所有参考图片,对于k在NumDeltaPocs[CurrRPListIdx[j]]至NumDeltaPocs[CurrRPListIdx[j]]+NumPocLt[CurrLTRPRPListIdx[n]]-1]的范围内(包括端值),对于j在0至num_rpl_slice_header_minusl的范围内(包括端值),被标记为“用于长期参考”。

DPB中未包括在对于j在0至num_rpl_slice_header_minus1的范围内(包括端值)的RefPics[j]中的所有参考图片被标记为“未用于参考”。

基于上文在表10、表11和表12中提供的语法,在一个示例中,可以根据和/或基于以下步骤来执行用于生成不可用图片的过程:

对于其中i在0至NumDeltaPocs[CurrRPListIdx[j]]的范围内(包括端值),j在0至num_rpl_slice_header_minus1的范围内(包括端值)的每个RefPics[j][i],即等于“无参考图片”,按照“生成一个不可用图片”中指定的方式生成图片,并且以下适用:

将所生成图片的PicOrderCntVal值设定为等于PicOrderCntVal+DeltaPoc[CurrRPListIdx[j]][i]。

所生成图片被标记为“用于短期参考”。

RefPics[j][i]被设定为所生成的参考图片。

在一个示例中,可仅针对j等于num_rpl_slice_header_minus1时执行以上步骤。

对于i在NumDeltaPocs[CurrRPListIdx[j]]至NumDeltaPocs[CurrRPListIdx[j]]+NumPocLt[CurrLTRPRPListIdx[n]]-1]的范围内(包括端值),j在0至num_rpl_slice_header_minus1的范围内(包括端值),n在0至num_ltrp_rpl_slice_header_minus1的范围内的每个RefPics[j][i],等于“无参考图片”,按照“生成一个不可用图片”中指定的方式生成图片,并且以下适用:

-将所生成图片的PicOrderCntVal值设定为等于(DPocLt[CurrLTRPRPListIdx[n]][i-NumDeltaPocs[CurrRPListIdx[j]]]-slice_pic_order_cnt_lsb+PicOrderCntVal),此为在DeltaPocMsbPresentFlag[CurrLTRPRPListIdx[n]][i-NumDeltaPocs[CurrRPListIdx[j]]]等于1的情况下,否则将其设定为DPocLt[CurrLTRPRPListIdx[n]][i-NumDeltaPocs[CurrRPListIdx[j]]](此为在DeltaPocMsbPresentFlag[CurrLTRPRPListIdx[n]][i-NumDeltaPocs[CurrRPListIdx[j]]]等于0的情况下)。

-推断所生成图片的slice_pic_order_cnt_lsb值等于((所生成图片的PicOrderCntVal)&(MaxPicOrderCntLsb-1))。

-所生成图片被标记为“用于长期参考”。

-RefPics[j][i]被设定为所生成的参考图片。

在一个示例中,可仅针对j等于num_rpl_slice_header_minus1,以及n等于num_ltrp_rpl_slice_header_minus1时执行以上步骤。

在一个示例中,可仅针对j等于num_rpl_slice_header_minus1时执行以上步骤。

基于上文在表10、表11和表12中提供的语法,在一个示例中,构建参考图片列表RefPicList0,以及针对B切片构建RefPicList1可以基于以下来执行:

将变量NumRpsCurrList0设定为等于Max(num_ref_idx_10_active_minus1+1,

NumDeltaPocs[CurrRPListIdx[0]]+NumPocLt[CurrLTRPRPListIdx[0]]),并且列表RefPicList0如下构建:

for(i=0,rIdx=0;i<(NumDeltaPocs[CurrRPListIdx[0]]]+NumPocLt[CurrRPListIdx[0]])&&rIdx

RefPicList0[rIdx]=RefPics[0][i]

当切片为B切片时,将变量NumRpsCurrList1设定为等于Max(num_ref_idx_ll_active_minus1+1,

NumDeltaPocs[CurrRPListIdx[0]]+NumPocLt[CurrLTRPRPListIdx[0]])),并且列表RefPicList1如下构建:

在一个示例中,可以在切片标头中直接发送信号通知长期参考图片列表。关于表8所示的SPS语法的示例,表13示出了可用于根据本文的技术直接发送信号通知长期参考图片列表的切片片段标头中的相关语法的示例。此外,表14提供了可包括在切片片段标头中的长期参考图片的示例。应当指出的是,表14中所示的示例长期参考图片列表被布置成使得列表中的前几个条目(由语法元素或变量指示)发送信号通知当前图片的长期参考图片(LTRP)信息,并且列表中剩余的条目发送信号通知以比特流顺序跟随在当前图片之后的图片的LTRP信息。

表13

表14

在一个示例中,以下定义可用于表13中所示的相应语法元素。

num_rpl_slice_header_minus1指定在rpl_sps_flag等于0的情况下在切片标头中直接发送信号通知的pic_lists(i)语法结构的数量,或者指定在rpl_sps_flag等于1的情况下在切片标头中发送信号通知的rpl_index[j]条目的数量。num_rpl_slice_header_minus1的值应在0至2的范围内(包括端值)。保留值3。

rpl_sps_flag等于1指定基于活动SPS中的pic_list()语法结构发送信号通知当前图片的参考图片列表,该语法结构由切片头中的语法元素rpl_idx[j]标识。rpl_sps_flag等于0指定在pic_list()语法结构中发送信号通知当前图片的长期参考图片列表,该语法结构在当前图片的切片标头中被直接发送信号通知。

rpl_idx[j]指定参考图片列表的索引。rpl_idx[0]指定当前图片的参考图片列表0的索引。如果存在,如果当前切片为B切片,则rpl_idx[l]指定参考图片列表1的索引,并且如果当前切片为P切片,则rpl_idx[l]指定包括以比特流顺序跟随在当前图片之后的图片的参考图片的图片列表的索引。如果存在,rpl_idx[2]表示包括以比特流顺序跟随在当前图片之后的图片的参考图片的图片列表的索引。

对于j在0至num_rpl_slice_header_minus1的范围内(包括端值)的语法元素rpl_idx[j]由Ceil(Log2(num_ref_pic_lists_minus1+1))位表示。Rpl_idx[j]的值应在0至num_ref_pic_lists_minus1的范围内(包括端值)。在一个示例中,以下定义可用于表14中所示的相应语法元素。

num_long_term_pics_minus1加1指定该ltrp_sl_list()列表中的长期参考图片条目的数量。这包括当前图片的长期参考图片和以比特流顺序跟随在当前图片之后的图片的信息。

num_currpic_long_term_pics指定当前图片的该ltrp_sl_list()列表中长期参考图片条目的数量。

因此,在ltrp_sl_list()的for循环中,前num_currpic_long_term_pics条目对应于当前图片的长期参考图片信息,并且后续条目对应于以比特流顺序跟随在当前图片之后的图片的长期参考图片信息。

NumNegativePics[listIdx]、NumPositivePics[listIdx]、(num_long_term_pics_minus1+1)的总和应小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。

poc_lsb_lt[j]指定第j个长期参考图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[i]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

delta_poc_msb_present_flag[j]等于1指定delta_poc_msb_cycle_lt[j]存在。delta_poc_msb_present_flag[i]等于0指定delta_poc_msb_cycle_lt[j]不存在。

delta_poc_msb_cycle_lt[j]用于确定第j个长期参考图片的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[j]不存在时,推断其等于0。

变量DeltaPocMsbCycleLt[j]如下导出:

if(j==0)

DeltaPocMsbCycleLt[j]=delta_poc_msb_cycle_lt[j]

else

DeltaPocMsbCycleLt[j]=delta_poc_msb_cycle_lt[j]+

DeltaPocMsbCycleLt[j-1]

当inv_list_flag等于0时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、NumPositivePics[listIdx]、DeltaPoc[listIdx][i]如下导出:

NumNegativePics[listIdx]=neg_delta_entries

NumPositivePics[listIdx]=pos_delta_entries

NumDeltaPocs[listIdx]=NumNegativePics[listIdx]+NumPositivePics[listIdx]

-如果i等于0,则以下适用:

DeltaPoc[listIdx][i]=-(delta_entries_minus1[0]+1)

-如果i>0且小于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][i]=DeltaPoc[listIdx][i-1]-(delta_entries_minus 1[i]+1)

-如果i等于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][neg_delta_entries]=delta_entries_minus1[i]+1

-如果i大于neg_delta_entries,则以下适用:

DeltaPoc[listIdx][i]=DeltaPoc[listIdx][i-1]+(delta_entries_minus1[i]+1)

当inv_list_flag等于1时,变量NumNegativePics[listIdx]、NumPositivePics[listIdx]、NumPositivePocs[listIdx]、DeltaPoc[listIdx][i]如下导出:

NumNegativePics[listIdx]=NumPositivePics[listIdx-l]

NumPositivePics[listIdx]=NumNegativePics[listIdx-l]

NumDeltaPocs[listIdx]=NumDeltaPocs[listIdx-l]

-对于i在0至NumDeltaPocs[listIdx](包括端值)的范围内,以下适用:

DeltaPoc[listIdx][i]=-(DeltaPoc[listIdx-l][i])

如果long_term_ref_pics_present_flag等于0,则将NumPocLt设定为等于0

否则:NumPocLt=num_long_term_pics_minus1+1;

NumPocLtCurr=num_currpic_long_term_pics;

NumPocLtFoll=num_long_term_pics_minus1+1-NumPocLtCurr;

基于上文在表13和表14中提供的语法,在一个示例中,可以根据和/或基于以下步骤来执行用于导出参考图片列表(RPL)的过程。这些步骤可按下文所示的顺序或按不同的顺序执行。

以下适用:

对于j在0至num_rpl_slice_header_minus1范围内(包括端值)的变量CurrRPListIdx[j]如下导出:

-如果rpl_sps_flag等于1,则将CurrRPListIdx[j]设定为等于rpl_idx[j]。

-否则,将CurrRPListIdx[j]设定为等于rpl_idx[num_ref_pic_lists_minus1+j+l]。

对于j在0至num_rpl_slice_header_minus1的范围内(包括端值)以下适用:

如果当前切片为B切片,则对于j在0到1的范围内,或者如果当前切片为P切片,则对于j在0的范围内,以下适用:

并且如果当前切片为B切片,则对于j等于max(2,num_rpl_slice_header_minus1),或者如果当前切片为P切片,则对于j等于max(1,num_rpl_slice_header_minus1),以下适用:

包括在RefPics[j][k]中的所有参考图片,对于k在NumDeltaPocs[CurrRPListIdx[j]]至NumDeltaPocs[CurrRPListIdx[j]]+NumPocLtCurr-1]范围内(包括端值),如果当前切片为B切片,则对于j在0至1范围内,或者如果当前切片为P切片,则对于j在0范围内,以及对于k在NumDeltaPocs[CurrRPListIdx[j]]至NumDeltaPocs[CurrRPListIdx[j]]+NumPocLt-NumPocLtCurr-1]范围内(包括端值),如果当前切片为B切片,则对于j等于max(2,num_rpl_slice_header_minus1),或者如果当前切片为P切片,则对于j等于max(l,num_rpl_slice_header_minus1),被标记为“用于长期参考”。DPB中未包括在对于j在0至num_rpl_slice_header_minus1的范围内(包括端值)的RefPics[j]中的所有参考图片被标记为“未用于参考”。

基于上文在表13和表14中提供的语法,在一个示例中,可以根据和/或基于以下步骤来执行用于生成不可用图片的过程:

对于其中i在0至NumDeltaPocs[CurrRPListIdx[j]]的范围内(包括端值),j在0至num_rpl_slice_header_minus1的范围内(包括端值)的每个RefPics[j][i],即等于“无参考图片”,按照“生成一个不可用图片”中指定的方式生成图片,并且以下适用:

将所生成图片的PicOrderCntVal值设定为等于PicOrderCntVal+DeltaPoc[CurrRPListIdx[j]][i]。

所生成图片被标记为“用于短期参考”。

RefPics[j][i]被设定为所生成的参考图片。

在一个示例中,可仅针对j等于num_rpl_slice_header_minus1时执行以上步骤。

对于i在NumDeltaPocs[CurrRPListIdx[j]]至NumDeltaPocs[CurrRPListIdx[j]]+NumPocLtCurr]-1]范围内(包括端值),如果当前切片为B切片则对于j在0至1的范围内,或者如果当前切片为P切片则对于j在0范围内的每个RefPics[j][i],即等于“无参考图片”,按照“生成一个不可用图片”中指定的方式生成图片,并且以下适用:

-将所生成图片的PicOrderCntVal值设定为等于(DPocLt[i-NumDeltaPocs[CurrRPListIdx[j]]-slice_pic_order_cnt_lsb+PicOrderCntVal),此为在DeltaPocMsbPresentFlag[i-NumDeltaPocs[CurrRPListIdx[j]]等于1的情况下,否则将其设定为DPocLt[i-NumDeltaPocs[CurrRPListIdx[j]](此为在DeltaPocMsbPresentFlag[i-NumDeltaPocs[CurrRPListIdx[j]]等于0的情况下)。

-推断所生成图片的slice_pic_order_cnt_lsb值等于((所生成图片的PicOrderCntVal)&(MaxPicOrderCntLsb-1))。

-所生成图片被标记为“用于长期参考”。

-RefPics[j][i]被设定为所生成的参考图片。

在一个示例中,可仅针对j等于num_rpl_slice_header_minus1时执行以上步骤。

对于i在NumDeltaPocs[CurrRPListIdx[j]]至NumDeltaPocs[CurrRPListIdx[j]]+NumPocLt-NumPocLtCurr]-l]范围内(包括端值),如果当前切片为B切片则对于j等于max(2,num_rpl_slice_header_minus1),或者如果当前切片为P切片则对于j等于max(1,num_rpl_slice_header_minus1)的每个RefPics[j][i],即等于“无参考图片”,按照“生成一个不可用图片”中指定的方式生成图片,并且以下适用:

-将所生成图片的PicOrderCntVal值设定为等于(DPocLt[i-NumDeltaPocs[CurrRPListIdx[j]]-slice_pic_order_cnt_lsb+PicOrderCntVal),此为在DeltaPocMsbPresentFlag[i-NumDeltaPocs[CurrRPListIdx[j]]等于1的情况下,否则将其设定为DPocLt[i-NumDeltaPocs[CurrRPListIdx[j]](此为在DeltaPocMsbPresentFlag[i-NumDeltaPocs[CurrRPListIdx[j]]等于0的情况下)。

-推断所生成图片的slice_pic_order_cnt_lsb值等于((所生成图片的PicOrderCntVal)&(MaxPicOrderCntLsb-1))。

-所生成图片被标记为“用于长期参考”。

-RefPics[j][i]被设定为所生成的参考图片。

在一个示例中,可仅针对j等于num_rpl_slice_header_minus1时执行以上步骤。

基于上文在表13和表14中提供的语法,在一个示例中,构建参考图片列表RefPicList0,以及针对B切片构建RefPicList1可以基于以下来执行:

将变量NumRpsCurrList0设定为等于Max(num_ref_idx_10_active_minus1+1,

NumDeltaPocs[CurrRPListIdx[0]]+NumPocLtCurr),并且列表RefPicList0如下构建:

for(i=0,rIdx=0;i<(NumDeltaPocs[CurrRPList1dx[0]]]+NumPocLtCurr)&&rIdx

RefPicList0[rIdx]=RefPics[0][i]

当切片为B切片时,将变量NumRpsCurrList1设定为等于Max(num_ref_idx_ll_active_minus1+1,

NumDeltaPocs[CurrRPListIdx[0]]+NumPocLtCurr),并且列表RefPicList1如下构建:

for(i=0,rIdx=0;i<(NumDeltaPocs[CurrRPListIdx[l]]+NumPocLtCurr)&&rIdx

RefPicList1[rIdx]=RefPics[1][i]

在一个示例中,长期参考图片可以根据其与当前图片的PicOrderCntVal相比的PicOrderCntVal值距离来插入参考图片列表0和/或参考图片列表1中。

应当指出的是,关于表8至表14中所示的示例,生成一个不可用图片和选择参考图片列表的过程可类似于上文关于表4至表7所述的过程。

如上所述,用于构建参考图片列表RefPicList0和RefPicList1的过程包括确定NumRpsCurrList0和NumRpsCurrList1的相应值。如上文所提供,NumRpsCurrList0和NumRpsCurrList1的值基于num_ref_idx_10_active_minus1和num_ref_idx_11_active_minus1的相应值来确定。在JVET-K1001中,num_ref_idx_10_active_minus1和num_ref_idx_11_active_minus1的值可以基于包括在图片参数集(PPS)中的以下语法元素来确定。

num_ref_idx_10_default_active_minus1指定针对P切片和B切片的num_ref_idx_10_active_minus1的推断值,其中num_ref_idx_active_override_flag等于0。num_ref_idx_10_default_active_minus1的值应在0至14的范围内(包括端值)。

num_ref_idx_11_default_active_minus1指定num_ref_idx_11_active_minus1的推断值,其中num_ref_idx_active_override_flag等于0。num_ref_idx_11_default_active_minus1的值应在0至14的范围内(包括端值),以及在切片标头中提供的以下语法元素:

num_ref_idx_active_override_flag等于1指定对于P切片和B切片存在语法元素num_ref_idx_10_active_minus1,对于B切片存在语法元素num_ref_idx_11_active_minus1。num_ref_idx_active_override_flag等于0指定语法元素num_ref_idx_10_active_minus1和num_ref_idx_11_active_minus1不存在。

num_ref_idx_10_active_minus1指定可用于解码切片的参考图片列表0的最大参考索引。num_ref_idx_10_active_minus1应在0至14的范围内(包括端值)。在当前切片为P切片或B切片并且不存在num_ref_idx_10_active_minus1时,推断num_ref_idx_10_active_minus1等于num_ref_idx_10_default_active_minus1。

num_ref_idx_11_active_minus1指定可用于解码切片的参考图片列表1的最大参考索引。num_ref_idx_11_active_minus1应在0至14的范围内(包括端值)。当num_ref_idx_11_active_minus1不存在时,推断num_ref_idx_11_active_minus1等于num_ref_idx_11_default_active_minus1。

根据本文的技术,可以从JVET-K1001中的PPS中移除num_ref_idx_10_default_active_minus1和num_ref_idx_11_default_active_minus1,并且PPS的变体包括num_ref_idx_10_default_active_minus1和num_ref_idx_11_default_active_minus1。可以从JVET-K1001中的切片标头中移除num_ref_idx_active_override_flag、num_ref_idx_10_active minus1和num_ref_idx_11_active_minus1,并且切片标头的变体包括num_ref_idx_active_override_flag、num_ref_idx_10_active_minus1和num_ref_idx_11_active_minus1。即,根据本文的技术,导出num_ref_idx_10_active_minus1和num_ref_idx_11_active_minus1的值,而不是直接发送信号通知。此外,下文描述了根据本文的技术导出对应于num_ref_idx_10_active_minus1和num_ref_idx_11_active_minus1的值的技术。应当指出的是,ITU-T H.265和JVET-K1001中的约定提供了计算中发送信号通知的值包括下划线,而导出的值(被称为变量)不包括下划线。因此,在下面的等式中,NumRefIdxL0ActiveMinus是导出变量,其值对应于先前发送信号通知的num_ref_idx_10_active_minus1的值,并且NumRefIdxL1ActiveMinus是导出变量,其值对应于先前发送信号通知的num_ref_idx_11_active_minus1的值。应当指出的是,当本文所述的技术用于修改JVET-K1001时,JVET-K1001中的num_ref_idx_10_active_minus1和num_ref_idx_11_active_minus1的实例被替换为NumRefIdxL0ActiveMinus和NumRefIdxL1ActiveMinus的相应实例。为了简洁起见,本文未详细描述用NumRefIdxL0ActiveMinus和NumRefIdxL1ActiveMinus分别替换num_ref_idx_10_active_minus1和num_ref_idx_11_active_minus1。

在一个示例中,根据本文的技术,NumRefIdxL0ActiveMinus和NumRefIdxL1ActiveMinus可如下导出:

如果当前切片为P切片或B切片:

NumRefIdxL0ActiveMinus=(rpl_sps_flag?NumDeltaPocs[rpl_idx[0]]:

NumDeltaPocs[num_ref_pic_lists_minus1+1])-1

如果当前切片为B切片:

NumRefIdxL1ActiveMinus=(rpl_sps_flag?NumDeltaPocsfrpl_idx[l]]:

NumDeltaPocs[num_ref_pic_lists_minus1+2])-1

此外,在一个示例中,根据本文的技术,num_ref_idx_10_active_minus1和num_ref_idx_11_active_minus1可如下导出:

如果当前切片为P切片或B切片:

NumRefIdxLOActiveMinus=(rpl_sps_flag?(NumDeltaPocs[rpl_idx[0]]+NumPocLt[rpl_idx[0]]:(NumDeltaPocs[num_ref_pic_lists_minus 1+1]+NumPocLt[num_ref_pic_lists_minus1+1]))-1

如果当前切片为B切片:

NumRefIdxLlActiveMinus=(rpl_sps_flag?(NumDeltaPocs[rpl_idx[l]]+NumPocLt[rpl_idx[0]]):

NumDeltaPocs[num_ref_pic_lists_minus1+2]+

NumPocLt[num_ref_pic_lists_minus1+2])-l

应当指出的是,在一个示例中,在上面的等式中,可以省略减去1以导出NumRefIdxL0ActiveMinus和NumRefIdxL1ActiveMinus的步骤。

另外,在这种情况下,参考图片列表0和参考图片列表1创建过程将如下修改:

列表RefPicList0如下构建:

for(i=0;i<(NumDeltaPocs[CurrRPListIdx[0]]]+NumPocLt[CurrRPListIdx[0]]);i++)

RefPicList0[rIdx]=RefPics[0][i]

当切片为B切片时,列表RefPicList1如下构建:

for(i=0;i<(NumDeltaPocs[CurrRPListIdx[l]]+NumPocLt[CurrRPListIdx[l]]);i++)

RefPicList1[rIdx]=RefPics[1][i]

在另一个示例中,另外,在这种情况下,参考图片列表0和参考图片列表1创建过程将如下修改:

列表RefPicList0如下构建:

for(i=0;i

RefPicList0[rIdx]=RefPics[0][i]

当切片为B切片时,列表RefPicList1如下构建:

for(i=0;i

RefPicList1[rIdx]=RefPics[1][i]

2018年10月3日至12日在中国澳门(Macao,CN)举行的ISO/IEC JTC1/SC29/WG11第12次会议中的“On reference picture management for VVC”,即文档JVET-L0112-v3,该文档在本文中称为JVET-L0112,描述了基于参考图片列表0和1的直接信令和导出的参考图片管理方法。具体地,表15示出了用于JVET-L0112中所述的参考图片管理方法的SPS中包括的相关语法,表16示出了用于JVET-L0112中所述的参考图片管理方法的PPS中包括的相关语法,并且表17示出了用于JVET-L0112中所述的参考图片管理方法的切片标头中包括的相关语法。

表15

表16

表17

JVET-L0112针对表15中所示的相应语法元素提供了以下定义:long_term_ref_pics_flag等于0指定没有LTRP用于CVS中任何编码图片的帧间预测。long_term_ref_pics_flag等于1指定LTRP可以用于CVS中的一个或多个编码图片的帧间预测。

additional_lt_poc_lsb指定在参考图片列表的解码过程中使用的变量MaxLtPicOrderCntLsb的值:

MaxLtPicOrderCntLsb=2

additional_lt_poc_lsb的值应在0至32-Log2_max_pic_order_cnt_lsb_minus4-4的范围内(包括端值)。

当不存在时,推断additional_lt_poc_lsb的值等于0。

rpl1_same_as_rpl0_flag等于1指定语法结构num_ref_pic_lists_in_sps[1]和ref_pic_list_struct(1,rplsIdx,ItrpFlag)不存在,并且以下适用:

-推断num_ref_pic_lists_in_sps[1]的值等于num_ref_pic_lists_in_sps[0]的值。

-推断ref_pic_list_struct(1,rplsIdx,ItrpFlag)中的语法元素中的每个语法元素的值等于对于rplsIdx范围在0至num_ref_pic_lists_in_sps[0]-1的ref_pic_list_struct(0,rplsIdx,ItrpFlag)中的对应语法元素的值。

num_ref_pic_lists_in_sps[i]指定包括在SPS中的ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构的数量,其中listIdx等于i。num_ref_pic_lists_in_sps[i]的值应在0至64的范围内(包括端值)。

注释2-对于listIdx的每个值(等于0或1),解码器应为总数为num_ref_pic_lists_in_sps[i]+1的语法结构ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)分配内存,因为可能在当前图片的切片标头中存在直接发送信号通知的一个ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构。

JVET-L0112针对表16中所示的相应语法元素提供了以下定义:num_ref_idx_default_active_minus1[i]加1,当i等于0时,指定针对P切片和B切片的变量NumRefIdxActive[0]的推断值,其中num_ref_idx_active_override_flag等于0,并且当i等于1时,指定针对B切片的NumRefIdxActive[1]的推断值,其中num_ref_idx_active_override_flag等于0。num_ref_idx_default_active__minus1[i]的值应在0至14的范围内(包括端值)。

rpl1_idxjpresent_flag等于0指定切片标头中不存在ref_pic_list_sps_flag[1]和ref_pic_list_idx[1]。rpl1_idx_present_flag等于1指定切片标头中可能存在ref_pic_list_sps_flag[1]和ref_pic_list_idx[1]。

JVET-L0112针对表17中所示的相应语法元素提供了以下定义:

slice_pic_order_cnt_lsb指定当前图片的图片顺序计数模MaxPicOrderCntLsb。slice_pic_order_cnt_lsb语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。slice_pic_order_cnt_lsb的值应在0至MaxPicOrderCntLsb-1的范围内(包括端值)。当slice_pic_order_cnt_lsb不存在时,推断slice_pic_order_cnt_lsb等于0。

ref_pic_list_sps_flag[i]等于1指定基于活动SPS中ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构(其中listIdx等于i)中的一者导出当前图片的参考图片列表。ref_pic_list_sps_flag[i]等于0指定基于ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构(其中listIdx等于i)导出当前图片的参考图片列表i,该语法结构直接包括在当前图片的切片标头中。当num_ref_pic_lists_in_sps[i]等于0时,推断ref_pic_list_sps_flag[i]的值等于0。当rpl_idx_present_flag等于0并且存在ref_pic_list_sps_flag[0]时,推断ref_pic_list_sps_flag[1]的值等于ref_pic_list_sps_flag[0]。

ref_pic_list_idx[i]指定用于导出当前图片的参考图片列表i的ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构(其中listIdx等于i)的包括在活动SPS中的ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构列表的索引。语法元素ref_pic_list_idx[i]由Ceil(Log2(num_ref_pic_lists_in_sps[i]))位表示。当不存在时,推断ref_pic_list_idx[i]的值等于0。ref_pic_list_idx[i]的值应在0至num_ref_pic_lists_in_sps[i]-1的范围内(包括端值)。当rpl_idx_present_flag等于0并且存在ref_pic_list_sps_flag[0]时,推断ref_pic_list_idx[1]的值等于ref_pic_list_idx[0]。

num_ref_idx_active_override_flag等于1指定对于P切片和B切片存在语法元素num_ref_idx_active_minus1[0],对于B切片存在语法元素num_ref_idx_active_minus1[1]。num_ref_idx_active_override_flag等于0指定语法元素num_ref_idx_active_minus1[0]和num_ref_idx_active_minus1[1]不存在。

num_ref_idx_active_minus1[i]当存在时,指定变量NumRefIdxActive[i]的值如下:

NumRefIdxActive[i]=num_ref_idx_active_minus1[i]+1

num_ref_idx_active_minus1[i]的值应在0至14的范围内(包括端值)。

NumRefIdxActive[i]-1的值指定可用于解码切片的参考图片列表i的最大参考索引。当NumRefIdxActive[i]的值等于0时,参考图片列表i的参考索引不可用于解码切片。

对于i等于0或1,在当前切片为B切片并且num_ref_idx_active_override_flag等于0时,推断NumRefIdxActive[i]等于num_ref_idx_default_active_minus1[i]+1。

在当前切片为P切片并且num_ref_idx_active_override_flag等于0时,推断NumRefIdxActive[0]等于num_ref_idx_default_active_minus1[0]+1。

在当前切片为P切片时,推断NumRefIdxActive[1]等于0。

在当前切片为I切片时,推断NumRefIdxActive[0]和NumRefIdxActive[1]等于0。

在一个示例中,根据本文的技术,JVET-L0112中的切片标头可被修改成使得当需要发送信号通知与活动参考图片的数量相对应的语法元素时,仅在该对应参考图片列表包括多于一个条目时才发送信号通知它们。在这种情况下,当未发送信号通知时,推断参考图片列表0和/或参考图片列表1的活动参考图片的数量。这提供了位节省。

具体地讲,表18示出了根据本文技术的包括在切片标头中的相关语法的示例。

表18

关于表18中所示的相应语法元素,定义可以基于上面提供的定义。关于语法元素num_ref_idx_active_minus1,定义可以基于以下内容:

num_ref_idx_active_minus1[i]当存在时,指定变量NumRefIdxActive[i]的值如下:

NumRefIdxActive[i]=num_ref_idx_active_minus1[i]+1

num_ref_idx_active_minus1[i]的值应在0至14的范围内(包括端值)。

NumRefIdxActive[i]-1的值指定可用于解码切片的参考图片列表i的最大参考索引。当NumRefIdxActive[i]的值等于0时,参考图片列表i的参考索引不可用于解码切片。

对于i等于0或1,在当前切片为B切片并且num_ref_idx_active_override_flag等于0时,推断NumRefIdxActive[i]等于num_ref_idx_default_active_minus1[i]+1。

在当前切片为P切片并且num_ref_idx_active_override_flag等于0时,推断NumRefIdxActive[0]等于num_ref_idx_default_active_minus1[0]+1。

对于i等于0或1,在当前切片为B切片并且num_ref_idx_active_override_flag等于1且num_ref_idx_active_minus1[i]不存在时,推断num_ref_idx_active_minus1[i]等于0。在另一个示例中,在这种情况下,对于i等于0和1,可针对num_ref_idx_active_minus1[i]推断不同的值。

在当前切片为P切片并且num_ref_idx_active_override_flag等于1并且num_ref_idx_active_minus1[0]不存在时,推断num_ref_idx_active_minus1[0]等于0。在另一个示例中,在这种情况下,可针对num_ref_idx_active_minus1[0]推断不同的值。在当前切片为P切片时,推断NumRefIdxActive[1]等于0。

在当前切片为I切片时,推断NumRefIdxActive[0]和NumRefIdxActive[1]等于0。

此外,在一个示例中,根据本文的技术,在表17中,可以替代地将num_ref_idx_active_minus1[i]发送信号通知为num_ref_idx_active[i],以允许参考图片列表没有当前图片的活动参考图片。这可能是当参考图片列表仅包括作为比特流中未来图片的参考图片的图片时的情况。参考图片列表可以为空的另一种情况可以是,当在ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)中发送信号通知num_strp_entries[listIdx][rplsIdx]和num_ltrp_entries[listIdx][rplsIdx]时,使得NumEntriesInList[listIdx][rplsIdx]的值应在0至sps_max_dec_pic_buffering_minus1的范围内。在一个示例中,num_ref_idx_active[i]可基于以下定义:

num_ref_idx_active[i]当存在时,指定变量NumRefIdxActive[i]的值如下:

NumRefIdxActive[i]=num_ref_idx_active[i]

num_ref_idx_active[i]的值应在0至15的范围内(包括端值)。

当num_ref_idx_active[i]大于0时,NumRefIdxActive[i]的值指定可用于解码切片的参考图片列表i的最大参考索引。当NumRefIdxActive[i]的值等于0时,参考图片列表i的参考索引不可用于解码切片。

对于i等于0或1,在当前切片为B切片并且num_ref_idx_active_override_flag等于0时,推断NumRefIdxActive[i]等于num_ref_idx_default_active_minus1[i]+1。

在当前切片为P切片并且num_ref_idx_active_override_flag等于0时,推断NumRefIdxActive[0]等于num_ref_idx_default_active_minus1[0]+1。

在当前切片为P切片时,推断NumRefIdxActive[1]等于0。

在当前切片为I切片时,推断NumRefIdxActive[0]和NumRefIdxActive[1]等于0。

此外,在一个示例中,根据本文的技术,表18中的内容可被修改和发送信号通知,如表18A所示。在这种情况下,可以替代地将num_ref_idx_active_minus1[i]发送信号通知为num_ref_idx_active[i],以允许参考图片列表没有当前图片的活动参考图片。这可能是当参考图片列表仅包括作为比特流中未来图片的参考图片的图片时的情况。参考图片列表可以为空的另一种情况可以是,当在ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)中发送信号通知num_strp_entries[listIdx][rplsIdx]和num_ltrp_entries[listIdx][rplsIdx]时,使得NumEntriesInList[listIdx][rplsIdx]的值应在0至sps_max_dec_pic_buffering_minus1的范围内。在一个示例中,num_ref_idx_active[i]可基于以下定义。另外,在这种情况下,当需要发送信号通知与活动参考图片的数量相对应的语法元素时,它们仅在对应参考图片列表不为空时才被发送信号通知。在这种情况下,当未发送信号通知时,推断参考图片列表0和/或参考图片列表1的活动参考图片的数量。这提供了位节省。

表18A

在该示例中,语义可以如下:

num_ref_idx_active[i]当存在时,指定变量NumRefIdxActive[i]的值如下:

NumRefIdxActive[i]=num_ref_idx_active[i]

num_ref_idx_active[i]的值应在0至15的范围内(包括端值)。

当num_ref_idx_active[i]大于0时,NumRefIdxActive[i]的值指定可用于解码切片的参考图片列表i的最大参考索引。当NumRefIdxActive[i]的值等于0时,参考图片列表i的参考索引不可用于解码切片。

对于i等于0或1,在当前切片为B切片并且num_ref_idx_active_override_flag等于0时,推断NumRefIdxActive[i]等于num_ref_idx_default_active_minus1[i]+1。

在当前切片为P切片并且num_ref_idx_active_override_flag等于0时,推断NumRefIdxActive[0]等于num_ref_idx_default_active_minus1[0]+1。

对于i等于0或1,在当前切片为B切片并且num_ref_idx_active_override_flag等于1且num_ref_idx_active[i]不存在时,推断num_ref_idx_active[i]等于0。

在当前切片为P切片并且num_ref_idx_active_override_flag等于1时,nuin_ref_idx_active[0]不存在,推断num_ref_idx_active[0]等于0。

在当前切片为P切片时,推断NumRefIdxActive[1]等于0。

在当前切片为I切片时,推断NumRefIdxActive[0]和NumRefIdxActive[1]等于0。

在另一个示例中,对NumEntriesInList[listIdx][rplsIdx]=num_strp_entries[listIdx][rplsIdx]+num_ltrp_entries[listIdx][rplsIdx]的约束可如下修改:

NumEntriesInList[listIdx][rplsIdx]的值应在01至sps_max_dec_pic_buffering_minus1的范围内(包括端值)。

关于表18和表18A中所示的示例,应当指出的是,在一个示例中,条件“if(NumEntriesInList[i][currRpls!dx[i]]>0)”,则NumEntriesInList[i]可被替换为num_ref_entries[i],其中num_ref_entries[i][rplsIdx]在表26中定义,并且在该表下方定义了相关联语义。

此外,在一个示例中,关于表18和表18A中所示的示例,使用以下语法。

可如下修改:

或者如下:

参考上文的表5,在一个示例中,根据本文的技术,在一个示例中,根据表19所示的示例,活动覆写语法可以包括在切片标头中。

表19

关于表19中所示的相应语法元素,定义可以基于上面提供的定义。关于语法元素num_ref_idx_active_minus1,定义可以基于以下内容:

num_ref_idx_10_active_minus1指定可用于解码切片的参考图片列表0的最大参考索引。num_ref_idx_10_active_minus1应在0至14的范围内(包括端值)。在当前切片为P切片或B切片并且num_ref_idx_active_override_flag等于0时,推断num_ref_idx_10_active_minus1等于num_ref_idx_10_default_active_minus1。

在当前切片为P切片或B切片并且num_ref_idx_active_override_flag等于1且num_ref_idx_10_active_minus1不存在时,推断num_ref_idx_10_active_minus1等于0。num_ref_idx_11_active_minus1指定可用于解码切片的参考图片列表1的最大参考索引。num_ref_idx_11_active_minus1应在0至14的范围内(包括端值)。当num_ref_idx_11_active_minus1不存在且num_ref_idx_active_override_flag等于0时,推断num_ref_idx_11_active_minus1等于num_ref_idx_11_default_active_minus1。

当num_ref_idx_ll_active_minus1不存在且num_ref_idx_active_override_flag等于1时,推断num_ref_idx_ll_active_minus1等于0。

关于表19,语法的以下部分

可以等效地写成:

表20示出了JVET-L0112中描述的参考图片管理方法所包括的参考图片列表结构的相关语法。

表20

JVET-L0112针对表20中所示的相应语法元素提供了以下定义:ref_pic_List_struct(listIdx,rplsIdx,ItrpFlag)语法结构可以存在于SPS中或切片标头中。根据语法结构是包括在切片标头还是SPS中的情况,以下适用:

-如果存在于切片标头中,则ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构指定当前图片(包含切片的图片)的参考图片列表lighIdx。

-否则(存在于SPS中),ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构指定参考图片列表listIdx的候选,并且在此子句其余部分中指定的语义中的术语“当前图片”是指如下每个图片:1)具有一个或多个包含等于包括在SPS中的ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)列表中的索引的ref_pic_list_idx[listIdx]的切片,以及2)在具有SPS作为活动SPS的CVS中。

num_strp_entries[listIdx][rplsIdx]指定ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构中STRP条目的数量。

num_ltrp_entries[listIdx][rplsIdx]指定ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构中LTRP条目的数量。当不存在时,推断num_ltrp_entries[listIdx][rplsIdx]的值等于0。

变量NumEntriesInList[listIdx][rplsIdx]如下导出:

NumEntriesInList[listIdx][rplsIdx]=num_strp_entries[listIdx][rplsIdx]+num_ltrp_entries)listIdx][rplsIdx]

NumEntriesInList[listIdx][rplsIdx]的值应在0至sps_max_dec_pic_buffering_minus1的范围内(包括端值)。

lt_ref_pic_flag[listIdx][rplsIdx][i]等于1指定ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构中第i个条目为LTRP条目。lt_ref_pic_flag[listIdx][rplsIdx][i]等于0指定ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构中第i个条目为STRP条目。当不存在时,推断lt_ref_pic_flag[listIdx][rplsIdx][i]的值等于0。

比特流符合性的要求是,对于i在0至NumEntriesInList[listIdx][rplsIdx]-1范围内(包括端值)的lt_ref_pic_flag[listIdx][rplsIdx][i]的总和应等于num_ltrp_entries[listIdx][rplsIdx]。

strp_entry_sign_flag[listIdx][rplsIdx][i]等于1指定语法结构ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)中的第i个条目具有大于或等于0的值。

strp_entry_sign_flag[listIdx][rplsIdx]等于0指定语法结构ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)中的第i个条目具有小于0的值。

delta_poc_st[listIdx][rplsIdx][i],当第i个条目是ref_pic_list_struct(rplsIdx,ItrpFlag)语法结构中的第一STRP条目时,指定当前图片的图片顺序计数值与第i个条目所参考的图片之间的绝对差,或者,当第i个条目是STRP条目但不是ref_pic_list_struct(rplsIdx,ItrpFlag)语法结构中的第一STRP条目时,指定ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构中由第i个条目参考的图片的图片顺序计数值与前一个STRP条目参考的图片的图片顺序计数值之间的绝对差。

delta_poc_st[listIdx][rplsIdx][i]的值应在-2

列表DeltaPocSt[listIdx][rplsIdx]如下导出:

poc_lsb_lt[listIdx][rplsIdx][i]指定由ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构中的第i个条目参考的图片的图片顺序计数模MaxLtPicOrderCntLsb的值。poc_lsb_lt[listIdx][rplsIdx][i]语法元素的长度为Log2(MaxLtPicOrderCntLsb)位。

在一个示例中,根据本文的技术,可以如表21所示修改参考图片列表结构的相关语法,使得短期参考图片条目的数量的语法元素被修改以用减1编码发送信号通知。这提供了位节省并且要求发送信号通知至少一个短期参考图片。

表21

在这种情况下,表21中的num_strp_entries_minus1的语义可以如下:

num_strp_entries_minus1[listIdx][rplsIdx]加1指定ref_pic_list_struct(listIdx,rplsIdx,ItrpFlag)语法结构中STRP条目的数量。

在这种情况下,变量NumEntriesInList[listIdx][rplsIdx]可如下导出:

NumEntriesInList[listIdx][rplsIdx]=num_strp_entries_minus1[listIdx][rplsIdx]+1+num_ltrp_entries[listIdx][rplsIdx]

在一个示例中,该约束可以如下:

NumEntriesInList[listIdx][rplsIdx]的值应在1至sps_max_dec_pic_buffering_minus1的范围内(包括端值)。

或者如下:

NumEntriesInList[listIdx][rplsIdx]的值应大于0。

如上所述,JVET-L0112描述了基于参考图片列表0和1的直接信令和导出的参考图片管理方法。表22示出了包括在用于参考图片管理的SPS中的相关语法,表23示出了包括在用于参考图片管理的切片标头中的相关语法,并且表24示出了根据本文技术的用于参考图片列表结构的相关语法。应当指出的是,根据关于表22至表24所示的示例,语法元素num_ref_idx_default_active_minus1[i]和rpl1_idx_present_flag不包括在PPS中。

表22

表23

在表23的变体中,条件

可进行如下更改:

其中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的范围内(包括端值)。

注释2-对于listIdx的每个值(等于0或1),解码器应为总数为num_ref_pic_lists_in_sps[i]+1的语法结构ref_pic_list_struct(listIdx,rplsIdx)分配内存,因为可能在当前图片的切片标头中存在直接发送信号通知的一个ref_pic_list_struct(listIdx,rplsIdx)语法结构。

表24

关于表22中所示的相应语法元素,定义可以基于上面提供的定义。关于语法元素num_ref_pic_lists_in_sps,定义可以基于以下内容:

num_ref_pic_lists_in_sps指定SPS中包括的ref_pic_list_struct(rplsIdx)语法结构的数量。num_ref_pic_lists_in_sps的值应在0至128的范围内(包括端值)。注释2-解码器应该为总数为num_ref_pic_lists_in_sps+3ref_pic_list_struct(listIdx,rplsIdx)语法结构分配内存,因为在当前图片的图块组标头中可能直接发送信号通知多达三个ref_pic_list_struct(rplsIdx)语法结构。

关于表23中所示的相应语法元素,定义可以基于以下内容:

slice_pic_order_cnt_lsb指定当前图片的图片顺序计数模MaxPicOrderCntLsb。slice_pic_order_cnt_lsb语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。slice_pic_order_cnt_lsb的值应在0至MaxPicOrderCntLsb-1的范围内(包括端值)。

num_rpl_header_minus1指定当ref_pic_list_sps_flag[i]等于0时在图块组标头中直接发送信号通知的ref_pic_list_struct()语法结构的数量和当ref_pic_list_sps_flag[i]等于1时在图块组标头中发送信号通知的ref_pic_list_idx[i]条目的数量的总和。num_rpl_header_minus1的值应在0至2的范围内(包括端值)。保留值3。

ref_pic_list_sps_flag[i]等于1指定基于活动SPS中ref_pic_list_struct(rplsIdx)语法结构中的一者导出当前图片的参考图片列表。ref_pic_list_sps_flag[i]等于0指定基于ref_pic_list_struct(rplsIdx)语法结构导出当前图片的参考图片列表i,该语法结构直接包括在当前图片的图块组标头中。当不存在时,推断ref_pic_list_sps_flag[i]等于0。

ref_pic_list_idx[i]指定用于导出当前图片的参考图片列表i的ref_pic_list_struct(listIdx,rplsIdx)语法结构(其中listIdx等于i)的包括在活动SPS中的ref_pic_list_struct(listIdx,rplsIdx)语法结构列表的索引。语法元素ref_pic_list_idx[i]由Ceil(Log2(num_ref_pic_lists_in_sps[i]))位表示。当不存在时,推断ref_pic_list_idx[i]的值等于0。ref_pic_list_idx[i]的值应在0至num_ref_pic_lists_in_sps-1的范围内(包括端值)。

关于表24,可以使用相应语法元素的以下定义:

ref_pic_list_struct(rplsIdx)语法结构可存在于SPS中或图块组标头中。根据语法结构是包括在图块组标头还是SPS中的情况,以下适用:

-如果存在于图块组标头中,则ref_pic_list_struct(rplsIdx)语法结构指定当前图片(包含切片的图片)的参考图片列表。

-否则(存在于SPS中),ref_pic_list_struct(rplsIdx)语法结构指定参考图片列表的候选,并且在此子句其余部分中指定的语义中的术语“当前图片”是指如下每个图片:1)具有一个或多个包含等于包括在SPS中的ref_pic_list_struct(rplsIdx)列表中的索引的ref_pic_list_idx[j]的图块组,以及2)在具有SPS作为活动SPS的CVS中。

num_strp_entries[rplsIdx]指定ref_pic_list_struct(rplsIdx)语法结构中STRP条目的数量。

ltrp_list_present_flag等于0指定在该参考图片列表结构中不发送信号通知长期参考图片。ltrp_list_present_flag等于1指定在该参考图片列表结构ref_pic_list_struct(rplsIdx)中发送信号通知长期参考图片。当不存在时,推断present ltrp_list_present_flag等于0。

num_ltrp_entries_minus1[rplsIdx]加1指定ref_pic_list_struct(rplsIdx)语法结构中LTRP条目的数量。

变量NumEntriesInList[rplsIdx]如下导出:

NumEntriesInList[rplsIdx]=num_strp_entries[rplsIdx]+

(ltrp_list_present_flag?(num ltrp entriesjninusl[rplsIdx]+l):0)

NumEntriesInList[rplsIdx]的值应在0至sps_max_dec_pic_buffering_minus1的范围内(包括端值)。

lt_ref_pic_flag[rplsIdx][i]等于1指定ref_pic_list_struct(rplsIdx)语法结构中第i个条目为LTRP条目。lt_ref_pic_flag[rplsIdx][i]等于0指定ref_pic_list_struct(rplsIdx)语法结构中第i个条目为STRP条目。当不存在时,当ltrp_list_present_flag等于0,推断lt_ref_pic_flag[rplsIdx][i]的值等于0。当不存在时,当ltrp_list_present_flag等于1,如下推断lt_ref_pic_flag[rplsIdx][NumEntriesInList[rplsIdx]-l]的值:

当ltrp_list_present_flag等于1时,如下导出变量LTRPFlags:

for(i=0,LTRPFlags=0;i

LTRPFlags+=lt_ref_pic_flag[rplsIdx][i]

}

然后当ltrp_list_present_flag等于1时,推断lt_ref_pic_flag[rplsIdx][NumEntriesInList[rplsIdx]-l]等于(num_ltrp_entries_minus1[rplsIdx]+l)-LTRPFlags。

strp_entry_sign_flag[rplsIdx][i]等于1指定语法结构ref_pic_list_struct(rplsIdx)中的第i个条目具有大于或等于0的增量POC值。strp_entry_sign_flag[rplsIdx]等于0指定语法结构ref_pic_list_struct(rplsIdx)中的第i个条目具有小于0的值。当不存在时,推断strp_entry_sign_flag[rplsIdx][i]等于1。

delta_poc_st[rplsIdx][i],当第i个条目是ref_pic_list_struct(rplsIdx)语法结构中的第一STRP条目时,指定当前图片的图片顺序计数值与第i个条目所参考的图片之间的绝对差,或者,当第i个条目是STRP条目但不是ref_pic_list_struct(rplsIdx)语法结构中的第一STRP条目时,指定ref_pic_list_struct(rplsIdx)语法结构中由第i个条目参考的图片的图片顺序计数值与前一个STRP条目参考的图片的图片顺序计数值之间的绝对差。

delta_poc_st[rplsIdx][i]的值应在0至2

列表DeltaPocSt[listIdx][rplsIdx]如下导出:

poc_lsb_lt[rplsIdx][i]指定由ref_pic_list_struct(rplsIdx)语法结构中的第i个条目参考的图片的图片顺序计数模MaxLtPicOrderCntLsb的值。poc_lsb_lt[rplsIdx][i]语法元素的长度为Log2(MaxLtPicOrderCntLsb)位。

关于相对于表22至表24所示的示例,在一个示例中,用于参考图片列表构建的解码过程可以如下:

对于非IRAP图片的每个图块组,在解码过程开始时调用该过程。通过参考索引对参考图片进行寻址。参考索引是到参考图片列表中的索引。在解码I图块组时,在对图块组数据的解码中不使用参考图片列表。当解码P切片时,仅参考图片列表0(即,RefPicList[0])用于对切片数据进行解码。当解码B切片时,参考图片列表0和参考图片列表1(即,RefPicList[1])两者均用于对切片数据进行解码。

在非IRAP图片的每个图块组的解码过程开始时,导出对于i在0至num_rpl_head_minus1(包括端值)的范围内的参考图片列表RefPicList[i]。参考图片列表用于标记如下指定的参考图片或解码切片数据。

注释1-对于不是图片的第一图块组的非IRAP图片的I图块组,可以对于比特流符合性检查目的导出RefPicList[0]和RefPicList[1],但它们的导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。对于不是图片的第一图块组的P图块组,可以对于比特流符合性检查目的导出RefPicList[1],但其导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。

对于i,参考图片列表RefPicList[i]在0至num_rpl_head_minus1的范围内(包括端值),其如下构建:

对于等于0或1的每个i,以下适用:

-如果lt_ref_pic_flag[RplsIdx[i]][j]等于0,则对于j在0至NumEntriesInList[RplsIdx[i]]-1范围内(包括端值)的RefPicList[i][j]中的每个条目被称为STRP条目,否则被称为LTRP条目。

注释2-RefPicList[0]中的条目和RefPicList[1]中的条目都可能参考特定图片。RefPicList[0]中的多于一个条目或RefPicList[1]中的多于一个条目还可能参考特定图片。

注释3-RefPicList[0]中的条目和RefPicList[1]中的条目共同指可用于当前图片的帧间预测的所有参考图片以及在解码顺序中跟随在当前图片之后的一个或多个图片。RefPicList[2]中的条目是指不用于当前图片的帧间预测但可用于在解码顺序中跟随在当前图片之后的一个或多个图片的帧间预测的所有参考图片。

注释4-在RefPicList[0]或RefPicList[1]中可存在等于“无参考图片”的一个或多个条目,因为对应图片不存在于DPB中。应当针对RefPicList[0]或RefPicList[1]中的每个条目推断出等于“无参考图片”的无意图片丢失。

比特流符合性的要求以下约束适用:

-由RefPicList[0]或RefPicList[1]中的每个条目参考的图片应存在于DPB中,并且应具有小于或等于当前图片的TemporalId。

-图片的图块组的RefPicList[0]或RefPicList[1]中的STRP条目以及相同图块组或相同图片的不同图块组的RefPicList[0]或RefPicList[1]中的LTRP条目不应是指相同的图片。

-在RefPicList[0]或RefPicList[1]中不应存在LTRP条目,其中当前图片的PicOrderCntVal与该条目参考的图片的PicOrderCntVal之间的差值大于或等于2

-设setOfRefPics为RefPicList[i]中所有条目参考的唯一图片集,对于i在0至num_rpl_header_minus1范围内(包括端值)。setOfRefPics中的图片数量应小于或等于sps_max_dec_pic_buffering_minus1,并且setOfRefPics对于图片的所有图块组应相同。

关于相对于表22至表24所示的示例,在一个示例中,用于参考图片标记的解码过程可以如下:

在如上所述解码图块组标头和用于图块组的参考图片列表构建的解码过程之后,但在解码图块组数据之前,对每个图片调用一次该过程。该过程可导致DPB中的一个或多个参考图片被标记为“未用于参考”或“用于长期参考”。

DPB中的解码图片可被标记为“未用于参考”、“用于短期参考”或“用于长期参考”,但在解码过程的操作期间的任何给定时刻这三张中仅有一张。将这些标记中的一个标记分配给图片,在适用时隐含地移除这些标记中的另一个标记。当图片被称为被标记为“用于参考”时,这共同地指被标记为“用于短期参考”或“用于长期参考”(但不是两者)的图片。

在当前图片卫IRAP图片时,当前DPB中的所有参考图片(如果有的话)被标记为“未用于参考”。

STRP通过它们的PicOrderCntVal值来标识。LTRP由它们的PicOrderCntVal值的Log2(MaxLtPicOrderCntLsb)LSB标识。

以下适用:

-对于RefPicList[i]中的每个LTRP条目,对于i在0至num_rpl_header_minus1的范围内(包括端值),该图片被标记为“用于长期参考”。

-对于RefPicList[i]中的每个STRP条目,对于i在0至num_rpl_header_minus1的范围内(包括端值),该图片被标记为“用于短期参考”。

-DPB中未被RefPicList[i]中任何条目参考的对于i在0至num_rpl_header_minus1的范围内(包括端值)的每个参考图片被标记为“未用于参考”。

应当指出的是,在一个示例中,可以使用减一信令的参考图片列表结构。表25示出了在使用减一信令的情况下参考图片列表结构的相关语法。

表25

关于表25中所示的相应语法元素,定义可以基于上面提供的定义。关于语法元素lt_ref_pic_flag,定义可以基于以下内容:

lt_ref_pic_flag[rplsIdx][i]等于1指定ref_pic_list_struct(rplsIdx)语法结构中第i个条目为LTRP条目。lt_ref_pic_flag[rplsIdx][i]等于0指定ref_pic_list_struct(rplsIdx)语法结构中第i个条目为STRP条目。当不存在时,当num_ltrp_entries[rplsIdx]等于0,推断lt_ref_pic_flag[rplsIdx][i]的值等于0。当不存在时,当num_ltrp_entry[rplsIdx]大于0时,推断lt_ref_pic_flag[rplsIdx][NumEntriesInList[rplsIdx]-l]的值:

当num_ltrp_entries[rplsIdx]大于0时,变量LTRPFlags如下导出:

for(i=0,LTRPFlags=0;i

LTRPFlags+=lt_ref_pic_flag[rplsIdx][i]

}

然后当num_ltrp_entries[rplsIdx]大于0时,推断lt_ref_pic_flag[rplsIdx][NumEntriesInList[rplsIdx]-1]等于(num_ltrp_entries[rplsIdx])-LTRPFlags

在一个示例中,根据本文的技术,参考图片列表结构的语法可以如表26所提供。

表26

关于表26,可以使用相应语法元素的以下定义:

ref_pic_list_struct(listIdx,rplsIdx)语法结构可存在于SPS中或切片标头中。根据语法结构是包括在切片标头还是SPS中的情况,以下适用:

-如果存在于切片标头中,则ref_pic_list_struct(listIdx,rplsIdx)语法结构指定当前图片(包含切片的图片)的参考图片列表lighIdx。

-否则(存在于SPS中),ref_pic_list_struct(listIdx,rplsIdx)语法结构指定参考图片列表listIdx的候选,并且在此子句其余部分中指定的语义中的术语“当前图片”是指如下每个图片:1)具有一个或多个包含等于包括在SPS中的ref_pic_list_struct(listIdx,rplsIdx)列表中的索引的ref_pic_list_idx[listIdx]的切片,以及2)在具有SPS作为活动SPS的CVS中。

num_ref_entries[listIdx][rplsIdx]指定ref_pic_list_struct(listIdx,rplsIdx)语法结构中条目的数量。num_ref_entries[listIdx][rplsIdx]的值应在0至sps_max_dec_pic_buffering_minus1+14的范围内(包括端值)。

st_ref_pic_flaglistIdx][rplsIdx][i]等于1指定ref_pic_list_struct(listIdx,rplsIdx)语法结构中第i个条目为STRP条目。st_ref_pic_flag[listIdx][rplsIdx][i]等于0指定ref_pic_list_struct(listIdx,rplsIdx)语法结构中第i个条目为LTRP条目。当不存在时,推断st_ref_pic_flag[listIdx][rplsIdx][i]的值等于1。

abs_delta_poc_st[listIdx][rplsIdx][i],当第i个条目是ref_pic_list_struct(listIdx,rplsIdx)语法结构中的第一STRP条目时,指定当前图片的图片顺序计数值与第i个条目所参考的图片之间的绝对差,或者,当第i个条目是STRP条目但不是ref_pic_list_struct(listIdx,rplsIdx)语法结构中的第一STRP条目时,指定ref_pic_list_struct(listIdx,rplsIdx)语法结构中由第i个条目参考的图片的图片顺序计数值与前一个STRP条目参考的图片的图片顺序计数值之间的绝对差。

abs_delta_poc_st[listIdx][rplsIdx][i]的值应在0至2

strp_entry_sign_flag[listIdx][rplsIdx][i]等于1指定语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目具有大于或等于0的值。strp_entry_sign_flag[listIdx][rplsIdx]等于0指定语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目具有小于0的值。当不存在时,推断strp_entry_sign_flag[i][j]的值等于1。

列表DeltaPocSt[listIdx][rplsIdx]如下导出:

poc_lsb_lt[listIdx][rplsIdx][i]指定由ref_pic_list_struct(listIdx,rplsIdx)语法结构中的第i个条目参考的图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[listIdx][rplsIdx][i]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

在一个示例中,关于在一个示例中提供于表26中的参考图片列表结构的示例语法,根据本文的技术,对应切片标头的语法可以如表27中提供。

表27

关于表27中所示的相应语法元素,定义可以基于上面提供的定义。关于语法元素additional_poc_lsb_present_flag和additional_poc_lsb_val,定义可以基于以下内容:

additional_poc_lsb_present_flag[i][j]等于1指定additional_poc_lsb_val[i][j]存在。additional_poc_lsb_present_flag[i][j]等于0指定additional_poc_lsb_present_flag[i][j]不存在。

additional_poc_lsb_val[i][j]指定FullPocLsbLt[i][j]的值如下:

FullPocLsbLtf i][RplsIdx[i]][j]=additional_poc_lsb_val[i][j]*MaxPicOrderCntLsb+

poc_lsb_lt[i][RplsIdxf i]][j]

语法元素additional_poc_lsb_val[i][j]由additional_lt_poc_lsb_len位表示。当不存在时,推断additional_poc_lsb_val[i][j]的值等于0。

在一个示例中,表27中的语法元素中的一些语法元素的定义可如下修改:

ref_pic_list_sps_flag[i]等于1指定基于活动SPS中ref_pic_list_struct(listIdx,rplsIdx)语法结构(其中listIdx等于i)中的一者导出当前图片的参考图片列表。ref_pic_list_sps_flag[i]等于0指定基于ref_pic_list_struct(listIdx,rplsIdx)语法结构(其中listIdx等于i)导出当前图片的参考图片列表i,该语法结构直接包括在当前图片的切片标头中。当rpl1_idx_present_flag等于0时,推断ref_pic_list_sps_flag[1]的值等于ref_pic_list_sps_flag[0]。当不存在时,推断ref_pic_list_sps_flag[i]等于0。

ref_pic_list_idx[i]指定用于导出当前图片的参考图片列表i的ref_pic_list_struct(listIdx,rplsIdx)语法结构(其中listIdx等于i)的包括在活动SPS中的ref_pic_list_struct(listIdx,rplsIdx)语法结构列表的索引。语法元素ref_pic_list_idx[i]由Ceil(Log2(num_ref_pic_lists_in_sps[i]))位表示。当不存在时,推断ref_pic_list_idx[i]的值等于0。ref_pic_list_idx[i]的值应在0至num_ref_pic_lists_in_sps[i]-1的范围内(包括端值)。当rpl1_idx_present_flag等于0时,推断ref_pic_list_idx[1]的值等于ref_pic_list_idx[0]。

变量RplsIdx[i]如下导出:

RplsIdx[i]=ref_pic_list_sps_flag[i]?ref_pic_list_idx[i]:num_ref_pic_lists_in_sps[i]

在这种情况下,存在一个示例;变量NumLTRPEntries[listIdx][rplsIdx]可如下导出:

在另一个示例中,可以进一步修改切片标头语法,如表27A所示。

表27A

表27A与表27相比的一些更改如下。在表27A中:

-语法元素ref_pic_lists_sps_flag[i]、ref_pic_list_idx[i]、ref_pic_list_struct(i,num_ref_pic_lists__in_sps[i])、additionaljpoc_lsb_present_flag[i][j]、additional_poc_lsb_val[i][j]仅在slice_type等于P或B时被发送信号通知。

-如果切片类型为B,则循环索引从i=0变为i<2。否则(如果切片类型等于P),循环索引仅从i=0变为i<1。

上述语法更改提供了位节省,因为语法元素中的一些语法元素在某些条件下不被发送信号通知。另外,信令additional_poc_lsb_present_flag[i][j]和additional_poc_lsb_val[i][j]受if((i==0||(i==1&&rpl1_idx_present_flag)))条件制约。

这意味着对于i等于0发送信号通知这些语法元素。但是当i等于1并且rpl1_idx_present_flag等于0时,它们不被发送信号通知。在这种情况下,推断它们的值。无信令通知语法元素提供位节省。

关于表27A,语法元素中的一些语法元素的语义可以如下修改:additional_poc_lsb_present_flag[i][j]等于1指定存在additional_poc_lsb_val[i][j]。additional_poc_lsb_present_flag[i][j]等于0指定不存在additional_poc_lsb_val[i][j]。当rpl1_idx_present_flag等于0时,推断additional_poc_lsb_present_flag[1][j]的值等于additional_poc_lsb_present_flag[0][j]。additional_poc_lsb_val[i][j]如下指定FullPocLsbLt[i][j]的值:

FullPocLsbLt[i][RplsIdxf i]][j]=additional_poc_lsb_val[i][j]*MaxPicOrderCntLsb+

poc_lsb_lt[i][RplsIdx[i]][j]

语法元素additional_poc_lsb_val[i][j]由additional_lt_poc_lsb_len位表示。当rpl1_idx_present_flag等于0时,推断additional_poc_lsb_val[1][j]的值等于additional_poc_lsb_val[0][j]。当不存在时,additional_poc_lsb_present_flag[i][j]

等于0,推断additional_poc_lsb_val[i][j]的值等于0。

应当指出的是,尽管本文档中的描述使用术语切片和切片标头,但这些术语可以用术语图块组和图块组标头替换。另外,语法元素slice_type可由语法元素tile_group_type替换。在这种情况下,可将使用slice_type的条件和其他语法元素更改为tile_group_type。作为示例,以下

可更改为:

在一个示例中,根据本文的技术,参考图片列表结构的语法可以如表28所提供。

表28

关于表28,可以使用相应语法元素的以下定义:

ref_pic_list_struct(listIdx,rplsIdx)语法结构可存在于SPS中或切片标头中。根据语法结构是包括在切片标头还是SPS中的情况,以下适用:

-如果存在于切片标头中,则ref_pic_list_struct(listIdx,rplsIdx)语法结构指定当前图片(包含切片的图片)的参考图片列表lighIdx。

-否则(存在于SPS中),ref_pic_list_struct(listIdx,rplsIdx)语法结构指定参考图片列表listIdx的候选,并且在此子句其余部分中指定的语义中的术语“当前图片”是指如下每个图片:1)具有一个或多个包含等于包括在SPS中的ref_pic_list_struct(listIdx,rplsIdx)列表中的索引的ref_pic_list_idx[listIdx]的切片,以及2)在具有SPS作为活动SPS的CVS中。

num_ref_entries_minus1[listIdx][rplsIdx]加1指定ref_pic_list_struct(listIdx,rplsIdx)语法结构中条目的数量。num_ref_entries_minus1[listIdx][rplsIdx]的值应在0至sps_max_dec_pic_buffering_minus1+14的范围内(包括端值)。

在另一个示例中:num_ref_entries_minus1[listIdx][rplsIdx]的值应在0至sps_max_dec_pic_buffering_minus1+13的范围内(包括端值)。

st_ref_pic_flaglistIdx][rplsIdx][i]等于1指定ref_pic_list_struct(listIdx,rplsIdx)语法结构中第i个条目为STRP条目。st_ref_pic_flag[listIdx][rplsIdx][i]等于0指定ref_pic_list_struct(listIdx,rplsIdx)语法结构中第i个条目为LTRP条目。当不存在时,推断st_ref_pic_flag[listIdx][rplsIdx][i]的值等于1。

变量NumLTRPEntries[listIdx][rplsIdx]如下导出:

abs_delta_poc_st[listIdx][rplsIdx][i],当第i个条目是ref_pic_list_struct(listIdx,rplsIdx)语法结构中的第一STRP条目时,指定当前图片的图片顺序计数值与第i个条目所参考的图片之间的绝对差,或者,当第i个条目是STRP条目但不是ref_pic_list_struct(listIdx,rplsIdx)语法结构中的第一STRP条目时,指定ref_pic_list_struct(listIdx,rplsIdx)语法结构中由第i个条目参考的图片的图片顺序计数值与前一个STRP条目参考的图片的图片顺序计数值之间的绝对差。

abs_delta_poc_st[listIdx][rplsIdx][i]的值应在0至2

strp_entry_sign_flag[listIdx][rplsIdx][i]等于1指定语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目具有大于或等于0的值。strp_entry_sign_flag[listIdx][rplsIdx]等于0指定语法结构ref_pic_list_struct(listIdx,rplsIdx)中的第i个条目具有小于0的值。当不存在时,推断strp_entry_sign_flag[i][j]的值等于1。

列表DeltaPocSt[listIdx][rplsIdx]如下导出:

poc_lsb_lt[listIdx][rplsIdx][i]指定由ref_pic_list_struct(listIdx,rplsIdx)语法结构中的第i个条目参考的图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[listIdx][rplsIdx][i]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

关于相对于表28所示的示例,在一个示例中,用于参考图片列表构建的解码过程可以如下:

对于非IRAP图片的每个切片,在解码过程开始时调用该过程。通过参考索引对参考图片进行寻址。参考索引是到参考图片列表中的索引。在解码I切片时,在对切片数据的解码中不使用参考图片列表。当解码P切片时,仅参考图片列表0(即,RefPicList[0])用于对切片数据进行解码。当解码B切片时,参考图片列表0和参考图片列表1(即,RefPicList[1])两者均用于对切片数据进行解码。

在非IRAP图片的每个切片的解码过程开始时,导出参考图片列表RefPicList[0]和RefPicList[1]。参考图片列表用于如本文所指定的参考图片的标记或解码切片数据。

注释1-对于不是图片的第一切片的非IRAP图片的I切片,可以对于比特流符合性检查目的导出RefPicList[0]和RefPicList[1],但它们的导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。对于不是图片的第一切片的P切片,可以对于比特流符合性检查目的导出RefPicList[1],但其导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。

参考图片列表RefPicList[0]和RefPicList[1]如下构建:

对于等于0或1的每个i,RefPicList[i]中的第一NumRefIdxActive[i]条目被称为RefPicList[i]中的活动条目,并且RefPicList[i]中的其他条目被称为RefPicList[i]中的非活动条目。

注释2-RefPicList[0]中的条目和RefPicList[1]中的条目都可能参考特定图片。RefPicList[0]中的多于一个条目或RefPicList[1]中的多于一个条目还可能参考特定图片。

注释3-RefPicList[0]中的活动条目和RefPicList[1]中的活动条目共同指可用于当前图片的帧间预测的所有参考图片以及在解码顺序中跟随在当前图片之后的一个或多个图片。RefPicList[0]中的非活动条目和RefPicList[1]中的非活动条目共同指不用于当前图片的帧间预测但可用于在解码顺序中跟随在当前图片之后的一个或多个图片的帧间预测的所有参考图片。

注释4-在RefPicList[0]或RefPicList[1]中可存在等于“无参考图片”的一个或多个条目,因为对应图片不存在于DPB中。应忽略RefPicList[0]或RefPicList[0]中等于“无参考图片”的每个非活动条目。应当针对RefPicList[0]或RefPicList[1]中的每个活动条目推断出等于“无参考图片”的无意图片丢失。

比特流符合性的要求以下约束适用:

-对于等于0或1的每个i,num_ref_entries_minus1[i][RplsIdx[i]]不应小于NumRefIdxActive[i]。

-由RefPicList[0]或RefPicList[1]中的每个活动条目参考的图片应存在于DPB中,并且应具有小于或等于当前图片的TemporalId。

-图片的切片的RefPicList[0]或RefPicList[1]中的STRP条目以及相同切片或相同图片的不同切片的RefPicList[0]或RefPicList[1]中的LTRP条目不应是指相同的图片。

-在RefPicList[0]或RefPicList[1]中不应存在LTRP条目,其中当前图片的PicOrderCntVal与该条目参考的图片的PicOrderCntVal之间的差值大于或等于2

-设setOfRefPics为由RefPicList[0]中的所有条目和RefPicList[1]中的所有条目参考的唯一图片集。setOfRefPics中的图片数量应小于或等于sps_max_dec_pic_buffering_minus1,并且setOfRefPics对于图片的所有切片应相同。

如上所述,JVET正在研究对未来视频编码技术标准化的潜在需要。JVET的下一代视频编码标准的当前开发被称为通用视频编码(VVC)项目。2019年1月9日至18日在马萨诸塞州马拉喀什(Marrakech,MA)举行的ISO/IEC JTC1/SC29/WG11第13次会议中的“Versatile Video Coding(Draft 4)”(文档JVET-M1001-v5,其以引用方式并入本文,并且称为JVET-M1001)表示对应于VVC项目的视频编码规范的草稿文本的当前迭代。如上面进一步描述的,术语切片和切片标头可以用术语图块组和图块组标头替换。应当指出的是,关于JVET-M1001,图块组需要由整数个完整图块组成,而不是仅需要由整数个CTU组成。

上文提供的表26示出了JVET-M1001中提供的ref_pic_List_struct。应当指出的是,在JVET-M1001中,ref_pic_list_struct()中语法元素的语义与上文关于表26提供的相同,其中术语切片用图块组替换,并且以下将变量NumLtrpEntries添加到语法元素st_ref_pic_flag的定义中:

变量NumLtrpEntries[listIdx][rplsIdx]如下导出:

此外,表29示出了根据JVET-M1001的用于参考图片管理的SPS中包括的相关语法,并且表30示出了JVET-M1001中的包括在用于参考图片管理的图块组标头中的相关语法。

表29

表30

关于表29,在JVET-M1001中,语法元素long_term_ref_pics_flag,rpl1_same_as_rpl0_flag和num_ref_pic_lists_in_sps的定义与上文关于表15提供的那些相同。关于表30,JVET-M1001提供了语法元素ref_pic_list_sps_flag和ref_pic_list_idx[i]的定义与上文关于表27提供的那些相同的情况。JVET-M1001为语法元素delta_poc_msb_present_flag、delta_poc_msb_cycle_lt、num_ref_idx_active_override_flag和num_ref_idx_active_minus1提供了以下语义:

delta_poc_msb_present_flag[i][j]等于1指定delta_poc_msb_cycle_lt[i][j]存在。delta_poc_msb_present_flag[i][j]等于0指定delta_poc_msb_cycle_lt[i][j]不存在。设prevTid0Pic为TemporalId等于0并且不是RASL或RADL图片的解码顺序中的先前图片。设setOfPrevPocVals为由以下组成的集:

-prevTid0Pic的PicOrderCntVal,

-prevTid0Pic的RefPicList[0]中的条目和RefPicList[1]中的条目参考的每个图片的PicOrderCntVal,

-在解码顺序中遵循prevTid0Pic并且在解码顺序中在当前图片之前的每个图片的PicOrderCntVal。

当在setOfPrevPocVals中存在多于一个值时,该值的模MaxPicOrderCntLsb等于poc_lsb_lt[i][RplsIdx[i]][j],elta_poc_msb_present_flag[i][j]的值应等于1。

delta_poc_msb_cycle_lt[i][j]指定FullPocLt[i][j]的值如下:

delta_poc_msb_cycle_lt[i][j]的值应在0至2

num_ref_idx_active_override_flag等于1指定对于P图块组和B图块组存在语法元素num_ref_idx_active_minus1[0],对于B图片组存在语法元素num_ref_idx_active_minus1[1]。num_ref_idx_active_override_flag等于0指定语法元素num_ref_idx_active_minus1[0]和num_ref_idx_active_minus1[1]不存在。

num_ref_idx_active_minus1[i]用于导出变量NumRefIdxActive[i],如以下公式所指定。num_ref_idx_active_minus1[i]的值应在0至14的范围内(包括端值)。

对于i等于0或1,在当前图块组为B图块组并且num_ref_idx_active_override_flag等于1并且num_ref_idx_active_minus1[i]不存在时,推断num_ref_idx_active_minus1[i]等于0。

在当前图块组为P图块组,num_ref_idx_active_override_flag等于1并且num_ref_idx_active_minus1[0]不存在时,推断num_ref_idx_active_minus1[0]等于0。

变量NumRefIdxActive[i]如下导出:

NumRefIdxActive[i]-1的值指定可用于解码图块组的参考图片列表i的最大参考索引。当NumRefIdxActive[i]的值等于0时,参考图片列表i的参考索引不可用于解码图块组。

如下导出变量CurrPicIsOnlyRef,其表示当前解码图片为当前图块组的唯一参考图片:

CurrPicIsOnlyRef=sps_cpr_enabled_flag&&(tile_group_type==P)&&(num_ref_idx_active_minus 1[0]==0)

因此,JVET-M1001提供关于参考图片列表中的长期参考图片的POC相关信息在两个地方被发送信号通知的情况,即,在参考图片列表结构(ref_pic_List_struct(listIdx,rplsIdx))中和图块组标头中。在JVET-M1001中,参考图片列表结构可在候选参考图片列表的列表中在SPS中发送信号通知。因此,在JVET-M1001中,关于长期参考图片的信息不并置排列。例如,用于每个长期参考图片的poc_lsb_lt[listIdx][rplsIdx][i]信息在ref_pic_list_struct(listIdx,rplsIdx)中发送信号通知,其可来自SPS,但每个长期参考图片的增量poc msb存在标记和增量poc MSB循环信息总是在图块组标头中发送信号通知。根据本文的技术,关于长期参考图片的信息可并置排列以便简化分析。

在一个示例中,根据本文的技术,关于长期参考图片的所有信息包括例如用于参考图片列表的图片顺序计数模MaxPi-cOrderCntLsb、增量poc MSB存在标记和poc MSB循环信息可以处于一个位置,即单个语法结构。在一个示例中,可以在图块组标头中发送信号通知关于长期参考图片的所有信息。这可通过并置排列所有信息来简化分析。表31和表32示出了在图块组标头中发送信号通知关于长期参考图片的所有信息的示例。

表31

表32

关于表31,语法元素num_ref_entries_minus1、st_ref_pic_flag、abs_delta_poc_st和strp_entry_sign_flag的定义可以与JVET-M1001中提供的那些相同,如上所述。关于表32,语法元素ref_pic_list_sps_flag、ref_pic_list_idx、num_ref_idx_active_override_flag和num_ref_idx_active_minus1的定义可与上文关于表30提供的那些定义相同,并且语法元素poc_lsb_lt、delta_poc_msb_present_flag和delta_poc_msb_cycle_lt的定义可以如下:

poc_lsb_lt[i][j]指定第i个参考图片列表中第j个长期参考图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[i][j]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

delta_poc_msb_present_flag[i][j]等于1指定delta_poc_msb_cycle_lt[i][j]存在。delta_poc_msb_present_flag[i][j]等于0指定delta_poc_msb_cycle_lt[i][j]不存在。

delta_poc_msb_cyde_lt[i][j]用于确定第i个参考图片列表中第j个长期参考图片条目的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[i][j]不存在时,推断其等于0。

变量DeltaPocMsbCycleLt[i][j]如下导出:

非IDR图片可如下定义:

非IDR图片:非IDR图片的编码图片。

当在图块组标头中如上所述发送信号通知信息时,用于参考图片列表构建的解码过程可以如下:

对于非IDR图片的每个图块组,在解码过程开始时调用该过程。通过参考索引对参考图片进行寻址。参考索引是到参考图片列表中的索引。在解码I图块组时,在对图块组数据的解码中不使用参考图片列表。当解码P图块组时,仅参考图片列表0(即,RefPicList[0])用于对图块组数据进行解码。当解码B图块组时,参考图片列表0和参考图片列表1(即,RefPicList[1])两者均用于对图块组数据进行解码。

在非IDR图片的每个图块组的解码过程开始时,导出参考图片列表RefPicList[0]和RefPicList[1]。参考图片列表用于参考图片的标记或解码图块组数据。

注释1-对于不是图片的第一图块组的非IDR图片的I图块组,可以对于比特流符合性检查目的导出RefPicList[0]和RefPicList[1],但它们的导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。对于不是图片的第一图块组的P图块组,可以对于比特流符合性检查目的导出RefPicList[1],但其导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。

参考图片列表RefPicList[0]和RefPicList[1]如下构建:

对于等于0或1的每个i,RefPicList[i]中的第一NumRefIdxActive[i]条目被称为RefPicList[i]中的活动条目,并且RefPicList[i]中的其他条目被称为RefPicList[i]中的非活动条目。

在一个示例中,可以在参考图片列表语法结构中发送信号通知关于长期参考图片的所有信息。这可通过并置排列所有信息来简化分析。另外,这可通过将该信息包括在候选列表结构中的SPS中来提供位节省。因此,不需要在图块组标头中重复该信息。表33和表34示出了可以在参考图片列表语法结构中发送信号通知关于长期参考图片的所有信息的示例。

表33

表34

关于表33和表35,语法元素num_ref_entries_minus1、st_ref_pic_flag、abs_delta_poc_st和strp_entry_sign_flag的定义可与上文关于表31所述的相同,并且语法元素poc_lsb_lt、delta_poc_msb_present_flag和delta_poc_msb_cycle_lt的定义可与上文关于表32提供的相同或者可以如下:poc_lsb_lt[listIdx][rplsIdx][j]指定由ref_pic_list_struct(listIdx,rplsIdx)语法结构参考的第j个长期参考图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[listIdx][rplsIdx][j]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

delta_poc_msb_present_flag[listIdx][rplsIdx][j]等于1指定delta_poc_msb_cycle_lt[listIdx][rplsIdx][j]存在。

delta_poc_msb_present_flag[listIdx][rplsIdx][j]等于0指定delta_poc_msb_cycle_lt[listIdx][rplsIdx][j]不存在。

delta_poc_msb_cyde_lt[listIdx][rplsIdx][j]用于确定ref_pic_list_struct(listIdx,rplsIdx)语法结构中第j个长期参考图片条目的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[listIdx][rplsIdx][j]不存在时,推断其等于0。

变量DeltaPocMsbCycleLt[listIdx][rplsIdx][j]如下导出:

关于表34,语法元素ref_pic_List_sps_flag、ref_pic_List_idx、num_ref_idx_active_override_flag和num_ref_idx_active_minus1的定义可与上文关于表30提供的那些相同。

当在参考图片列表结构中如上所述发送信号通知信息时,用于参考图片列表构建的解码过程可以如下:

对于非IDR图片的每个图块组,在解码过程开始时调用该过程。通过参考索引对参考图片进行寻址。参考索引是到参考图片列表中的索引。在解码I图块组时,在对图块组数据的解码中不使用参考图片列表。当解码P图块组时,仅参考图片列表0(即,RefPicList[0])用于对图块组数据进行解码。当解码B图块组时,参考图片列表0和参考图片列表1(即,RefPicList[1])两者均用于对图块组数据进行解码。

在非IDR图片的每个图块组的解码过程开始时,导出参考图片列表RefPicList[0]和RefPicList[1]。参考图片列表用于参考图片的标记或解码图块组数据。

注释1-对于不是图片的第一图块组的非IDR图片的I图块组,可以对于比特流符合性检查目的导出RefPicList[0]和RefPicList[1],但它们的导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。对于不是图片的第一图块组的P图块组,可以对于比特流符合性检查目的导出RefPicList[1],但其导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。

参考图片列表RefPicList[0]和RefPicList[1]如下构建:

对于等于0或1的每个i,RefPicList[i]中的第一NumRefIdxActive[i]条目被称为RefPicList[i]中的活动条目,并且RefPicList[i]中的其他条目被称为RefPicList[i]中的非活动条目。

此外,在一个示例中,在表34中提供的参考图片列表语法结构中发送信号通知关于长期参考图片的所有信息的情况下,可以如表35中提供的那样修改。

表35

在一个示例中,关于参考图片的信息的位置可以由标记控制。因此,关于短期参考图片的信息在参考图片列表语法结构中发送信号通知,并且关于长期参考图片的信息可以在参考图片列表语法结构或图块组标头中发送信号通知。这允许重复使用候选短期参考图片结构,同时在使用时提供长期参考图片信息(在图块组标头中)。表36和表37示出了关于参考图片的信息由标记控制的示例。

表36

表37

关于表36,语法元素num_ref_entries_minus1、st_ref_pic_flag、abs_delta_poc_st和strp_entry_sign_flag的定义可以与上文关于表31所述的相同,并且语法元素poc_lsb_lt、delta_poc_msb_present_flag和delta_poc_msb_cycle_lt的定义可以如上文关于表32提供的。语法元素ltrp_in_tilegroup_header_flag的定义可以如下:

ltrp_in_tilegroup_header_flag[listIdx][rplsIdx]等于1指定在图块组标头中发送信号通知第rplsIdx个参考图片列表的第listIdx个列表的长期参考图片信息。ltrp_in_tilegroup_header_flag[listIdx][rplsIdx]等于0指定在ref_pic_list_struct(listIdx,rplsIdx)语法结构中发送信号通知第rplsIdx个参考图片列表的长期参考图片信息。当不存在时,推断ltrp_in_tilegroup_header_flag[listIdx][rplsIdx]的值等于0。

在另一个示例中,当不存在时,推断ltrp_in_tilegroup_header_flag[listIdx][rplsIdx]的值等于1。

关于表37,通用语法元素的定义可以如上所述,并且语法元素delta_poc_msb_present_flag和delta_poc_msb_cycle_lt的定义可以如下提供。

delta_poc_msb_present_flag[listIdx][rplsIdx][j]等于1指定delta_poc_msb_cycle_lt[listIdx][rplsIdx][j]存在。

delta_poc_msb_present_flag[listIdx][rplsIdx][j]等于0指定delta_poc_msb_cycle_lt[listIdx][rplsIdx][j]不存在。

delta_poc_msb_cyde_lt[listIdx][rplsIdx][j]用于确定ref_pic_list_struct(listIdx,rplsIdx)语法结构中第j个长期参考图片条目的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[listIdx][rplsIdx][j]不存在时,推断其等于0。

变量DeltaPocMsbCycleLt[listIdx][rplsIdx][j]如下导出:

当通过标记控制如上所述发送信号通知信息时,用于参考图片列表构建的解码过程可以如下:

对于非IDR图片的每个图块组,在解码过程开始时调用该过程。通过参考索引对参考图片进行寻址。参考索引是到参考图片列表中的索引。在解码I图块组时,在对图块组数据的解码中不使用参考图片列表。当解码P图块组时,仅参考图片列表0(即,RefPicList[0])用于对图块组数据进行解码。当解码B图块组时,参考图片列表0和参考图片列表1(即,RefPicList[1])两者均用于对图块组数据进行解码。

在非IDR图片的每个图块组的解码过程开始时,导出参考图片列表RefPicList[0]和RefPicList[1]。参考图片列表用于参考图片的标记或解码图块组数据。

注释1-对于不是图片的第一图块组的非IDR图片的I图块组,可以对于比特流符合性检查目的导出RefPicList[0]和RefPicList[1],但它们的导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。对于不是图片的第一图块组的P图块组,可以对于比特流符合性检查目的导出RefPicList[1],但其导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。

参考图片列表RefPicList[0]和RefPicList[1]如下构建:

对于等于0或1的每个i,RefPicList[i]中的第一NumRefIdxActive[i]条目被称为RefPicList[i]中的活动条目,并且RefPicList[i]中的其他条目被称为RefPicList[i]中的非活动条目。

此外,在一个示例中,在可以通过标记控制关于参考图片的信息的位置的情况下,可以如表38中提供的那样修改表36中提供的语法结构。

表38

如上所述,在一个示例中,语法元素delta_poc_msb_cycle_lt[i][j]指定FullPocLt[i][j]的值如下:

变量FullPocLt[i][j]用于参考图片列表构建的解码过程。在一个示例中,根据本文的技术,语法元素delta_poc_msb_cycle_lt[i][j]可如下指定变量FullPocLt[i][j]的值:

应当指出的是,在所提供的指定FullPocLt[i][j]中,poc_lsb_lt[i][RplsIdx[i]][k]值(其中k索引存在于第i个参考图片列表中(例如,其中i在0至1的范围内(包括端值),即,对于一个或两个参考图片列表))用于所选择的参考图片列表索引(例如,RplsIdx[i]),如下所述:

-从第一条目(如果使用基于零索引的阵列,则其可被称为第0'个条目)开始解析参考图片列表,并将第一索引初始化为零。

-当从第一条目开始遍历列表时,每当条目的短期参考图片标记(例如,st_ref_pic_flag[i][RplsIdx[i]][k])等于零时(其指示它是长期参考图片),所述第一索引增加1。

-当所述第一索引等于图块组环信令增量POC msb信息中的长期参考图片索引(例如,J)的索引时,参考图片列表中的当前位置被注释为第二索引。

-例如,在对应于该第二索引位置(k)的参考图片列表中发送信号通知的poc_lsb_lt值(poc_lsb_lt[i][RplsIdx[i]][k])用于计算长期参考图片(例如,FullPocLt[i][RplsIdx[i]][j])的完整POC。

因此,一般来讲,根据本文的技术,可以通过确定参考图片列表中的图片为长期参考图片(即,与短期图片相对),并且对于每个长期参考图片,基于对应于每个相应长期图片的增量值计算完整的长期POC值,其中相对于先前确定的增量值确定对应于相应长期图片的增量值。

另外,如上文在JVET-M1001中所述,语义和约束涉及

delta_poc_msb_present_flag[i][j]可以如下:

delta_poc_msb_present_flag[i][j]等于1指定delta_poc_msb_cycle_lt[i][j]存在。

delta_poc_msb_present_flag[i][j]等于0指定delta_poc_msb_cycle_lt[i][j]不存在。

设prevTid0Pic为TemporalId等于0并且不是RASL或RADL图片的解码顺序中的先前图片。设setOfPrevPocVals为由以下组成的集:

-prevTid0Pic的PicOrderCntVal,

-prevTid0Pic的RefPicList[0]中的条目和RefPicList[1]中的条目参考的每个图片的PicOrderCntVal,

-在解码顺序中遵循prevTid0Pic并且在解码顺序中在当前图片之前的每个图片的PicOrderCntVal。

当在setOfPrevPocVals中存在多于一个值时,该值的模MaxPicOrderCntLsb等于poc_lsb_lt[i][RplsIdx[i]][j],elta_poc_msb_present_flag[i][j]的值应等于1。

在一个示例中,根据本文的技术,语义和约束涉及语法元素,

delta_poc_msb_present_flag[i][j]可以如下:

delta_poc_msb_present_flag[i][j]等于1指定delta_poc_msb_cycle_lt[i][j]存在。delta_poc_msb_present_flag[i][j]等于0指定delta_poc_msb_cycle_lt[i][j]不存在。设prevTid0Pic为TemporalId等于0并且不是RASL或RADL图片的解码顺序中的先前图片。设setOfPrevPocVals为由以下组成的集:

-prevTid0Pic的PicOrderCntVal,

-prevTid0Pic的RefPicList[0]中的条目和RefPicList[1]中的条目参考的每个图片的PicOrderCntVal,

-在解码顺序中遵循prevTid0Pic并且在解码顺序中在当前图片之前的每个图片的PicOrderCntVal。

变量k如下计算:

当在setOfPrevPocVals中存在多于一个值时,该值的模MaxPicOrderCntLsb等于poc_lsb_lt[i][RplsIdx[i]][k],elta_poc_msb_present_flag[i][j]的值应等于1。

此外,正确的索引k可用于长期参考图片,以用于对参考图片列表构建的解码过程进行如下解码:

对于非IDR图片的每个图块组,在解码过程开始时调用该过程。通过参考索引对参考图片进行寻址。参考索引是到参考图片列表中的索引。在解码I图块组时,在对图块组数据的解码中不使用参考图片列表。当解码P图块组时,仅参考图片列表0(即,RefPicList[0])用于对图块组数据进行解码。当解码B图块组时,参考图片列表0和参考图片列表1(即,RefPicList[1])两者均用于对图块组数据进行解码。

在非IDR图片的每个图块组的解码过程开始时,导出参考图片列表RefPicList[0]和RefPicList[1]。参考图片列表用于参考图片的标记或解码图块组数据。

注释1-对于不是图片的第一图块组的非IDR图片的I图块组,可以对于比特流符合性检查目的导出RefPicList[0]和RefPicList[1],但它们的导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。对于不是图片的第一图块组的P图块组,可以对于比特流符合性检查目的导出RefPicList[1],但其导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。

参考图片列表RefPicList[0]和RefPicList[1]如下构建:

在一个示例中,根据本文的技术,条件信令可用于发送信号通知图块组标头中的num_ref_idx_active_override_flag。当未发送信号通知该标记时,可使用推断规则。该条件信令可在P图块组类型和B图块组类型的每个图块组标头中保存一位。在一个示例中,如果以下条件中的一个条件为真,则可以不发送信号通知语法元素num_ref_idx_active_override_flag:

·如果图块组类型为P图块组,并且所选择的参考图片列表(列表0)的参考条目的数量小于或等于1,并且如果参考索引默认活动减1的数量等于0;或者

·如果图块组类型为B图块组,并且所选择的参考图片列表(列表0和列表1)两者的参考条目的数量各自小于或等于1,并且如果参考索引默认活动减1的数量等于0;

否则,可以发送信号通知语法元素num_ref_idx_active_override_flag。

在上述情况下,可以推断出在未发送信号通知时num_ref_idx_active_override_flag的值,因为该推断导致用于在具有或不具有发送信号通知的情况下计算NumRefIdxActive[i]的相同值。

在一个示例中,如果以下条件中的一个条件为真,则可以不发送信号通知语法元素num_ref_idx_active_override_flag:

·如果图块组类型为P图块组,并且所选择的参考图片列表(列表0)的参考条目的数量等于1,并且如果参考索引默认活动减1的数量等于0;或者

·如果图块组类型为B图块组,并且所选择的参考图片列表(列表0和列表1)两者的参考条目的数量各自等于1,并且如果参考索引默认活动减1的数量等于0;

否则可以发送信号通知语法元素num_ref_idx_active_override_flag。

在上述情况下,可以推断出在未发送信号通知时num_ref_idx_active_override_flag的值,因为该推断导致用于在具有或不具有发送信号通知的情况下计算NumRefIdxActive[i]的相同值。

此外,当未发送信号通知num_ref_idx_active_override_flag时,推断出其值。表39示出了根据该示例的当有条件地发送信号通知num_ref_idx_active_override_flag时图块组标头的示例语法。

表39

对于表39,语法元素的语义可以如上提供。对于语法元素num_ref_idx_active_override_flag,可使用以下语义:

num_ref_idx_active_override_flag等于1指定对于P图块组和B图块组存在语法元素num_ref_idx_active_minus1[0],对于B图片组存在语法元素num_ref_idx_active_minus1[1]。num_ref_idx_active_override_flag等于0指定语法元素num_ref_idx_active_minus1[0]和num_ref_idx_active_minus1[1]不存在。当不存在时,推断num_ref_idx_active_override_flag等于1。

在另一个示例中:当不存在时,推断num_ref_idx_active_override_flag等于0。

此外,应当指出的是,条件:

if((tile_group_type==P&&(num_ref_entries[0][RplsIdx[0]]>1||num_ref_idx_default_active_minus 1[0]!=0))||(tile_group_type==B&&

(num_ref_entries[0][RplsIdx[0]]>1||num_ref_idx_default_active_minus1[0]!=0||num_ref_entries[1][RplsIdx[1]]>1||num_ref_idx_default_active_minus 1[1]!=0))

可使用等效布尔表达式来表达。例如,其相反可表示为:

if((num_ref_entries[0][RplsIdx[0]]>1||num_ref_idx_default_active_minus1[0]!=0)||

(tile_group_type==B&&(num_ref_entries[1][RplsIdx[1]]>1||

num_ref_idx_default_active_minus1[1]!=0))

在另一个变体中,上述条件可如下修改:

if((tile_group_type==P&&(num_ref_entries[0][RplsIdx[0]]!=1||

num_ref_idx_default_active_minus1[0]!=0))||(tile_group_type==B&&

(num_ref_entries[0][RplsIdxf 0]]!=1||num_ref_idx_default_active_minus1[0]!=0||

num_ref_entries[1][RplsIdxf 1]]!=1||num_ref_idx_default_active_minus1[1]!=0))

此处,不是检查列表中的参考条目的数量是否大于1,而是进行严格检查以检查它们是否不完全等于1。

在又一个变体中,该条件可如下修改:

if((num__ref_entries[0][RplsIdx[0]]!=1||num_ref_idx_default_active_minus1[0]!=0)||

(tile_group_type==B&&(num_ref_entries[1][RplsIdxf 1]]!=1||

num_ref_idx_default_active_minus1[1]!=0))

此处不是检查列表中的参考条目的数量是否大于1,而是进行严格检查以检查它们是否不完全等于1。

在又一个变体中,该条件可如下修改:

if((num_ref_entries[0][RplsIdx[0]]>1|(tilegrouptype==B&&

(num_ref_entries[1][RplsIdx[1]]>1))

在又一个变体中,表39中的以下两行语法

可用以下语法行替换:

或者可替换为以下语法行,当不存在时,推断num_ref_entries[1][RplsIdxf1]]等于1:

因此,总体语法部分可以如下:

在又一个变体中,表39中的以下语法行

可用以下语法行替换:

或使用以下语法行

在一个示例中,根据本文的技术,可以增加灵活性的方式发送信号通知关于参考图片列表的长期参考图片的信息,包括图片顺序计数模MaxPicOrderCntLsb、增量poc MSB存在标记和增量poc MSB循环信息。

在一个示例中,代替用于参考图片列表结构的单个ltrp_in_tilegroup_header_flag[listIdx][rplsIdx],对于每个长期参考图片,可以将单独的标记发送信号通知为ltrp_in_tilegroup_header_flag[listIdx][rplsIdx][i]。这在提供关于参考图片列表结构中的一些长期参考图片的信息和关于图块组标头中的一些长期参考图片的信息方面提供了最大灵活性。在这两种情况下,关于特定长期参考图片的信息并置排列在参考图片列表结构中或图块组标头中。表40和表41示出了图块组标头的示例,其中每个长期参考图片发送信号通知参考图片列表结构和单独的标记。

表40

表41

关于表40,语法元素的定义可以与上述定义相同,并且语法元素poc_lsb_lt、delta_poc_msb_present_flag和delta_poc_msb_cycle_lt的定义可以如下:

poc_lsb_lt[i][j]指定第i个参考图片列表中第j个长期参考图片的图片顺序计数模MaxPicOrderCntLsb的值。Poc_lsb_lt[i][j]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

delta_poc_msb_present_flag[i][j]等于1指定delta_poc_msb_cycle_lt[listIdx][rplsIdx][i][j]存在。delta_poc_msb_present_flag[i][j]等于0指定delta_poc_msb_cycle_lt[i][j]不存在。

delta_poc_msb_cyde_lt[i][j]用于确定第i个参考图片列表中第j个长期参考图片第i个条目的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[i][j]不存在时,推断其等于0。

变量DeltaPocMsbCycleLt[i][j]如下导出:

关于表41,语法元素的定义可以与上述定义相同,并且语法元素ltrp_in_tilegroup_header_flag、delta_poc_msb_present_flag、delta_poc_msb_cycle_lt的定义可以如下:

ltrp_in_tilegroup_header_flag[listIdx][rplsIdx][k]等于1指定在图块组标头中发送信号通知第k个长期参考图片的第rplsIdx个参考图片列表的第listIdx个列表的长期参考图片信息。ltrp_in_tilegroup_header_flag[listIdx][rplsIdx][k]等于0指定在ref_pic_list_struct(listIdx,rplsIdx)语法结构中发送信号通知第k个长期参考图片的第rplsIdx个参考图片列表的长期参考图片信息。当不存在时,推断ltrp_in_tilegroup_header_flag[listIdx][rplsIdx][k]的值等于0。在另一个示例中,当不存在时,推断ltrp_in_tilegroup_header_flag[listIdx][rplsIdx][k]的值等于1。

delta_poc_msb_present_flag[listIdx][rplsIdx][k]等于1指定delta_poc_msb_cycle_lt[listIdx][rplsIdx][k]存在。

delta_poc_msb_present_flag[listIdx][rplsIdx][k]等于0指定delta_poc_msb_cycle_lt[listIdx][rplsIdx][k]不存在。

delta_poc_msb_cyde_lt[listIdx][rplsIdx][k]用于确定ref_pic_list_struct(listIdx,rplsIdx)语法结构中第k个长期参考图片的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[listIdx][rplsIdx][k]不存在时,推断其等于0。

此外,关于表40和表41,可以使用以下用于参考图片列表构建的解码过程:

对于非IRAP图片的每个图块组,在解码过程开始时调用该过程。通过参考索引对参考图片进行寻址。参考索引是到参考图片列表中的索引。在解码I图块组时,在对图块组数据的解码中不使用参考图片列表。当解码P图块组时,仅参考图片列表0(即,RefPicList[0])用于对图块组数据进行解码。当解码B图块组时,参考图片列表0和参考图片列表1(即,RefPicList[1])两者均用于对图块组数据进行解码。

在非IRAP图片的每个图块组的解码过程开始时,导出参考图片列表RefPicList[0]和RefPicList[1]。参考图片列表用于参考图片的标记或解码图块组数据。

注释1-对于不是图片的第一图块组的非IRAP图片的I图块组,可以对于比特流符合性检查目的导出RefPicList[0]和RefPicList[1],但它们的导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。对于不是图片的第一图块组的P图块组,可以对于比特流符合性检查目的导出RefPicList[1],但其导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。

参考图片列表RefPicList[0]和RefPicList[1]如下构建:

对于等于0或1的每个i,RefPicList[i]中的第一NumRefIdxActive[i]条目被称为RefPicList[i]中的活动条目,并且RefPicList[i]中的其他条目被称为RefPicList[i]中的非活动条目。

在一个示例中,在图块组标头中发送信号通知所有长期参考图片信息,包括参考图片列表中的长期参考图片的位置。表42和表43示出了图块组标头和参考图片列表结构的示例,并且其中所有长期参考图片信息在图块组标头中发送信号通知。

表42

表43

关于表42,语法元素的定义可以与上述定义相同,并且语法元素num_long_term_pics、poc_lsb_lt、delta_poc_msb_present_flag和delta_poc_msb_cycle_lt的定义可以如下:

num_long_term_pics[i][RplsIdx[i]]指示第i参考图片列表中对应于RplsIdx[i]索引的长期参考图片的数量。当不存在时,推断num_long_term_pics[i][RplsIdx[i]]等于0。

在变体中,num_long_term_pics[i][RplsIdx[i]]可以替代地称为num_long_term_pics[i],具有以下语义。

num_long_term_pics[i]指示第i参考图片列表中的长期参考图片的数量。当不存在时,推断num_long_term_pics[i]等于0。

poc_lsb_lt[i][j]指定第i个参考图片列表中第j个长期参考图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[i][j]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

delta_poc_msb_present_flag[i][j]等于1指定delta_poc_msb_cycle_lt[listIdx][rplsIdx][i][j]存在。delta_poc_msb_present_flag[i][j]等于0指定delta_poc_msb_cycle_lt[i][j]不存在。

delta_poc_msb_cyde_lt[i][j]用于确定第i个参考图片列表中第j个长期参考图片的图片顺序计数值的最高有效位的值。当delta_poc_msb_cycle_lt[i][j]不存在时,推断其等于0。

变量DeltaPocMsbCycleLt[i][j]如下导出:

关于表43,语法元素的定义可以与上述定义相同,并且语法元素num_ref_entries的定义可以如下:

num_ref_entries[listIdx][rplsIdx]指定ref_pic_list_struct(listIdx,rplsIdx)语法结构中短期参考图片条目的数量。

此外,关于表42和表43,可以使用以下用于参考图片列表构建的解码过程:

对于非IRAP图片的每个图块组,在解码过程开始时调用该过程。通过参考索引对参考图片进行寻址。参考索引是到参考图片列表中的索引。在解码I图块组时,在对图块组数据的解码中不使用参考图片列表。当解码P图块组时,仅参考图片列表0(即,RefPicList[0])用于对图块组数据进行解码。当解码B图块组时,参考图片列表0和参考图片列表1(即,RefPicList[1])两者均用于对图块组数据进行解码。

在非IRAP图片的每个图块组的解码过程开始时,导出参考图片列表RefPicList[0]和RefPicList[1]。参考图片列表用于参考图片的标记或解码图块组数据。

注释1-对于不是图片的第一图块组的非IRAP图片的I图块组,可以对于比特流符合性检查目的导出RefPicList[0]和RefPicList[1],但它们的导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。对于不是图片的第一图块组的P图块组,可以对于比特流符合性检查目的导出RefPicList[1],但其导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。

参考图片列表RefPicList[0]和RefPicList[1]如下构建:

在一个示例中,长期参考图片的图片顺序计数(POC)LSB信息的位置可以由标记控制。因此,关于短期参考图片的POC信息可以在参考图片列表语法结构中发送信号通知,并且关于长期参考图片POC LSB的信息可以在参考图片列表语法结构或图块组标头中发送信号通知,即,与增量POC MSB存在和增量POC MSB循环信息并置排列。这允许重复使用候选短期参考图片结构,同时在使用时提供长期参考图片信息(在图块组标头中)。据断言,此类灵活性是有用的。表44和表45示出了图块组标头和参考图片列表结构的示例,并且其中长期参考图片POC LSB信息由标记控制在参考列表结构或图块组标头中发送信号通知。

表44

表45

关于表44,语法元素的定义可以与上述定义相同,并且语法元素poc_lsb_lt、delta_poc_msb_present_flag和delta_poc_msb_cycle_lt的定义可以如下:

poc_lsb_lt[i][j]指定第i个参考图片列表中第j个长期参考图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[i][j]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

变量PocLsbLt[i][j]如下导出:

PocLsbLt[i][j]=(ltrp_in_tilegroup_header_flag[i][RplsIdx[i]])?poc_lsb_lt[i][j]:

poc_lsb_lt[listIdx][RplsIdx[i]][j]

在一个示例中,变量PocLsbLt[i][j]可以替代地称为变量PocLsbLt[i][RplsIdx[i]][j]。

delta_poc_msb_present_flag[i][j]等于1指定delta_poc_msb_cycle_lt[i][j]存在。delta_poc_msb_present_flag[i][j]等于0指定delta_poc_msb_cycle_lt[i][j]不存在。设prevTid0Pic为Temporalld等于0并且不是RASL或RADL图片的解码顺序中的先前图片。设setOfPrevPocVals为由以下组成的集:

-prevTid0Pic的PicOrderCntVal,

-prevTid0Pic的RefPicList[0]中的条目和RefPicList[1]中的条目参考的每个图片的PicOrderCntVal,

-在解码顺序中遵循prevTid0Pic并且在解码顺序中在当前图片之前的每个图片的PicOrderCntVal。

当在setOfPrevPocVals中存在多于一个值时,该值的模MaxPicOrderCntLsb等于PocLsbLt[i][j],elta_poc_msb_present_flag[i][j]的值应等于1。

delta_poc_msb_cycle_lt[i][j]的值应在0至2

关于表45,语法元素的定义可以与上述定义相同,并且语法元素ltrp_in_tilegroup_header的定义可以如下:

ltrp_in_tilegroup_header_flag[listIdx][rplsIdx]等于1指定在图块组标头中发送信号通知第rplsIdx个参考图片列表的第listIdx个列表的长期参考图片的图片顺序计数(POC)LSB信息。ltrp_in_tilegroup_header_flag[listIdx][rplsIdx]等于0指定在ref_pic_list_struct(listIdx,rplsIdx)语法结构中发送信号通知第rplsIdx个参考图片列表的长期参考图片的图片顺序计数(POC)LSB信息。

此外,关于表44和表45,可以使用以下用于参考图片列表构建的解码过程:

对于非IDR图片的每个图块组,在解码过程开始时调用该过程。通过参考索引对参考图片进行寻址。参考索引是到参考图片列表中的索引。在解码I图块组时,在对图块组数据的解码中不使用参考图片列表。当解码P图块组时,仅参考图片列表0(即,RefPicList[0])用于对图块组数据进行解码。当解码B图块组时,参考图片列表0和参考图片列表1(即,RefPicList[1])两者均用于对图块组数据进行解码。

在非IDR图片的每个图块组的解码过程开始时,导出参考图片列表RefPicList[0]和RefPicList[1]。参考图片列表用于参考图片的标记或解码图块组数据。

注释1-对于不是图片的第一图块组的非IDR图片的I图块组,可以对于比特流符合性检查目的导出RefPicList[0]和RefPicList[1],但它们的导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。对于不是图片的第一图块组的P图块组,可以对于比特流符合性检查目的导出RefPicList[1],但其导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。

参考图片列表RefPicList[0]和RefPicList[1]如下构建:

对于等于0或1的每个i,RefPicList[i]中的第一NumRefIdxActive[i]条目被称为RefPicList[i]中的活动条目,并且RefPicList[i]中的其他条目被称为RefPicList[i]中的非活动条目。

表46示出了可根据本文的技术使用的参考图片列表结构的示例。

表46

关于表46,语法元素的定义可以与上述定义相同,并且语法元素poc_lsb_lt的定义可以如下:

poc_lsb_lt[listIdx][rplsIdx][j]指定由ref_pic_list_struct(listIdx,rplsIdx)参考的第j个长期参考图片的图片顺序计数模MaxPicOrderCntLsb的值。poc_lsb_lt[listIdx][rplsIdx][j]语法元素的长度为log2_max_pic_order_cnt_lsb_minus4+4位。

此外,关于表46,可以使用以下用于参考图片列表构建的解码过程:

对于非IRAP图片的每个图块组,在解码过程开始时调用该过程。通过参考索引对参考图片进行寻址。参考索引是到参考图片列表中的索引。在解码I图块组时,在对图块组数据的解码中不使用参考图片列表。当解码P图块组时,仅参考图片列表0(即,RefPicList[0])用于对图块组数据进行解码。当解码B图块组时,参考图片列表0和参考图片列表1(即,RefPicList[1])两者均用于对图块组数据进行解码。

在非IRAP图片的每个图块组的解码过程开始时,导出参考图片列表RefPicList[0]和RefPicList[1]。参考图片列表用于参考图片的标记或解码图块组数据。

注释1-对于不是图片的第一图块组的非IRAP图片的I图块组,可以对于比特流符合性检查目的导出RefPicList[0]和RefPicList[1],但它们的导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。对于不是图片的第一图块组的P图块组,可以对于比特流符合性检查目的导出RefPicList[1],但其导出对于以解码顺序解码当前图片或当前图片之后的图片不是必要的。

参考图片列表RefPicList[0]和RefPicList[1]如下构建:

这样,源设备102表示设备的示例,该设备被配置为发送信号通知参数集中的一个或多个候选参考图片列表,以及发送信号通知与图片区域相关联的标头中的候选参考图片列表中的一个候选参考图片列表的索引。

再次参考图1,接口108可以包括被配置为接收由数据封装器107生成的数据并且将数据传输和/或存储到通信介质的任何设备。接口108可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可以传输和/或接收信息的任何其他类型的设备。此外,接口108可以包括计算机系统接口,该计算机系统接口可以使文件能够存储在存储设备上。例如,接口108可以包括支持外围组件互连(PCI)和外围组件快速互连(PCIe)总线协议、专用总线协议、通用串行总线(USB)协议、PC的芯片集或可用于互连对等设备的任何其他逻辑和物理结构。

再次参考图1,目标设备120包括接口122、数据解封装器123、视频解码器124和显示器126。接口122可以包括被配置为从通信介质接收数据的任何设备。接口122可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可接收和/或发送信息的任何其他类型的设备。此外,接口122可以包括允许从存储设备检索兼容视频比特流的计算机系统接口。例如,接口122可以包括支持PCI和PCIe总线协议、专用总线协议、USB协议、PC的芯片集,或者可以被用于互连对等设备的任何其他逻辑和物理结构。数据解封装器123可被配置为接收和解析本文所述的任何示例语法结构。

视频解码器124可以包括被配置为接收比特流(例如,MCTS子比特流提取)和/或其可接受变体且从其再现视频数据的任何设备。显示器126可以包括被配置为显示视频数据的任何设备。显示器126可以包括各种显示设备诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另外的类型的显示器中的一者。显示器126可以包括高清显示器或超高清显示器。应当指出的是,尽管在图1所示的示例中,视频解码器124被描述为将数据输出到显示器126,但视频解码器124可被配置为将视频数据输出到各种类型的设备和/或其子部件。例如,视频解码器124可被配置为将视频数据输出到任何通信介质,如本文所述。

图6是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图。在一个示例中,视频解码器600可被配置为对变换数据进行解码并基于解码的变换数据从变换系数重构残差数据。视频解码器600可被配置为执行帧内预测解码和帧间预测解码,并且因此可被称为混合解码器。视频解码器600可被配置为解析上面在表1至表25中所述的语法元素的任何组合。视频解码器600可基于或根据上述过程导出参考图片列表。视频解码器600可基于或根据上述过程构建参考图片列表RefPicList0和RefPicList1。视频解码器可基于参考图片列表来执行视频解码。

在图6所示的示例中,视频解码器600包括熵解码单元602、逆量化单元和变换系数处理单元604、帧内预测处理单元606、帧间预测处理单元608、加法器610、后置滤波器单元612和参考缓冲器614。视频解码器600可被配置为以与视频编码系统一致的方式对视频数据进行解码。应当指出的是,尽管示出的示例性视频解码器600具有不同的功能块,但此类图示旨在用于描述目的,并且不将视频解码器600和/或其子部件限制为特定的硬件或软件架构。可使用硬件、固件和/或软件具体实施的任何组合来实现视频解码器600的功能。

如图6所示,熵解码单元602接收熵编码的比特流。熵解码单元602可被配置为根据与熵编码过程互逆的过程从比特流中解码语法元素和量化系数。熵解码单元602可被配置为根据上文所述的熵编码技术中的任一种执行熵解码。熵解码单元602可以与视频编码标准一致的方式确定编码的比特流中的语法元素的值。如图6所示,熵解码单元602可以从比特流确定量化参数、量化系数值、变换数据和预测数据。在该示例中,如图6所示,逆量化单元和变换系数处理单元604从熵解码单元602接收量化参数、量化系数值、变换数据和预测数据,并输出重构的残差数据。

再次参考图6,可以将重构的残差数据提供给加法器610。加法器610可以将重构的残差数据添加到预测视频块并生成重构的视频数据。可根据预测视频技术(即帧内预测和帧间预测)确定预测视频块。帧内预测处理单元606可被配置为接收帧内预测语法元素,并且从参考缓冲器614处检索预测视频块。参考缓冲器614可以包括被配置为存储一个或多个视频数据帧的存储器设备。帧内预测语法元素可识别帧内预测模式,诸如上述的帧内预测模式。帧间预测处理单元608可以接收帧间预测语法元素并生成运动矢量,以识别存储在参考缓冲器616中的一个或多个参考帧中的预测块。帧间预测处理单元608可生成运动补偿块,可能基于内插滤波器执行内插。用于具有子像素精度的运动估计的内插滤波器的标识符可以包括在语法元素中。帧间预测处理单元608可以使用内插滤波器来计算参考块的子整数像素的内插值。后置滤波器单元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)要求于2018年12月10日提交的临时申请62/777,617、2018年12月14日提交的临时申请62/780,146、2018年12月21日提交的临时申请62/784,168、2019年3月4日提交的临时申请62/813,630、2019年3月9日提交的临时申请62/816,115、2019年3月20日提交的临时申请62/821,016、2019年3月25日提交的临时申请62/823,554的优先权,这些临时申请的全部内容据此以引用方式并入。

相关技术
  • 用于在视频编码中发送信号通知参考图片的系统和方法
  • 用于在视频编码中发送信号通知假想参考解码器参数的系统和方法
技术分类

06120113104776