用于发送信号通知编码视频的图片的图块结构的系统和方法与流程

文档序号:26013332发布日期:2021-07-23 21:34阅读:113来源:国知局
用于发送信号通知编码视频的图片的图块结构的系统和方法与流程

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



背景技术:

数字视频功能可以结合到各种设备中,包括数字电视、笔记本电脑或台式电脑、平板电脑、数字录音设备、数字媒体播放器、视频游戏设备、蜂窝电话(包括所谓的智能电话)、医学成像设备等。可以根据视频编码标准对数字视频进行编码。视频编码标准可以结合视频压缩技术。视频编码标准的示例包括iso/iecmpeg-4visual和itu-th.264(也被称为iso/iecmpeg-4avc)和高效视频编码(hevc)。hevc在2016年12月的itu-th.265建议书的高效视频编码(hevc)中有所描述,该文献以引用方式并入本文,并且在本文中被称为itu-th.265。目前正在考虑对itu-th.265进行扩展和改进以开发下一代视频编码标准。例如,itu-t视频编码专家组(vceg)和iso/iec活动图像专家组(mpeg)(被统称为联合视频研究组(jvet))正在研究压缩能力显著超过当前hevc标准的未来视频编码技术的标准化的潜在需求。以引用方式并入本文的联合探索模型7(jem7)、联合探索测试模型7(jem7)的算法描述、iso/iecjtc1/sc29/wg11文档:jvet-g1001(2017年7月,意大利,都灵)描述了由jvet在联合测试模型研究下的编码特征,该技术是超越itu-th.265功能的潜在增强视频编码技术。应当指出的是,jem7的编码特征在jem参考软件中实现。如本文所用,术语jem可统称包括在jem7中的算法以及jem参考软件的具体实施。此外,响应于由vceg和mpeg联合发布的“jointcallforproposalsonvideocompressionwithcapabilitiesbeyondhevc”,在2018年4月16日至20日于加利福尼亚州圣地亚哥(sandiego,ca)举行的iso/iecjtc1/sc29/wg11第10次会议上,各个小组提出了对视频编码的多种描述。作为视频编码的多种描述的结果,视频编码规范的草稿文本在2018年4月16日至20日于加利福尼亚州圣地亚哥举行的iso/iecjtc1/sc29/wg11第10次会议中的“versatilevideocoding(draft1)”即文档jvet-j1001-v2中有所描述,该文档以引用方式并入本文并且被称为jvet-j1001。2018年7月10日至18日在斯洛文尼亚的卢布尔雅那(ljubljana,si)举行的iso/iecjtc1/sc29/wg11第11次会议中的“versatilevideocoding(draft2)”即文档jvet-k1001-v7,该文档以引用方式并入本文并且被称为jvet-k1001,是jvet-j1001的更新。2018年10月3日至12日在中国澳门(macao,cn)举行的iso/iecjtc1/sc29/wg11第12次会议中的“versatilevideocoding(draft3)”即文档jvet-l1001-v2,该文档以引用方式并入本文并且被称为jvet-l1001,是jvet-k1001的更新。

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



技术实现要素:

在一个示例中,一种对视频数据进行解码的方法,所述方法包括:对图片参数集中的第一标记语法进行解码,其中所述第一标记语法指定是每个片段内的图块以光栅扫描顺序排列还是每个片段内的所述图块覆盖图片的矩形区域;对所述图片参数集中的第二标记语法进行解码,其中所述第二标记语法指定每个片段包括仅一个矩形区域或者每个片段包括一个或多个矩形区域;如果所述第一标记语法的值等于一并且所述第二标记语法的值等于零,则对数量语法进行解码,其中所述数量语法的值加一指定引用所述图片参数集的每个图片中片段的数量;如果所述第一标记语法的所述值等于一,则对地址语法进行解码,其中所述地址语法指示所述片段的索引;以及通过使用所述地址语法导出指定所述片段中区域的数量的变量。

在一个示例中,一种对视频数据进行编码的方法,所述方法包括:对图片参数集中的第一标记语法进行编码,其中所述第一标记语法指定是每个片段内的图块以光栅扫描顺序排列还是每个片段内的所述图块覆盖图片的矩形区域;对所述图片参数集中的第二标记语法进行编码,其中所述第二标记语法指定每个片段包括仅一个矩形区域或者每个片段包括一个或多个矩形区域;如果所述第一标记语法的值等于一并且所述第二标记语法的值等于零,则对数量语法进行编码,其中所述数量语法的值加一指定引用所述图片参数集的每个图片中片段的数量;如果所述第一标记语法的所述值等于一,则对地址语法进行编码,其中所述地址语法指示所述片段的索引;以及通过使用所述地址语法导出指定所述片段中区域的数量的变量。

附图说明

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

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

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

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

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

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

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

[图6]图6是示出根据本公开的一种或多种技术对图块集中包括的图块进行排序的示例的概念图。

[图7]图7是示出根据本公开的一种或多种技术对图块集中包括的视频块进行排序的示例的概念图。

[图8]图8是示出根据本公开的一种或多种技术发送信号通知字节范围信息的示例的概念图。

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

具体实施方式

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

在一个示例中,发送信号通知图块集结构的方法包括发送信号通知指示在比特流中启用了图块集的标记,发送信号通知指示划分图片的图块集列的数量的语法元素,以及发送信号通知指示划分图片的图块集行的数量的语法元素。

在一个示例中,设备包括一个或多个处理器,该一个或多个处理器被配置为发送信号通知指示在比特流中启用了图块集的标记,发送信号通知指示划分图片的图块集列的数量的语法元素,以及发送信号通知指示划分图片的图块集行的数量的语法元素。

在一个示例中,非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时使得设备的一个或多个处理器发送信号通知指示在比特流中启用了图块集的标记,发送信号通知指示划分图片的图块集列的数量的语法元素,以及发送信号通知指示划分图片的图块集行的数量的语法元素。

在一个示例中,一种装置包括:用于发送信号通知指示在比特流中启用了图块集的标记的装置;用于发送信号通知指示划分图片的图块集列的数量的语法元素的装置;以及用于发送信号通知指示划分图片的图块集行的数量的语法元素的装置。

在一个示例中,一种对视频数据进行解码的方法包括:解析指示在比特流中启用了图块集的标记;解析指示划分图片的图块集列的数量的语法元素;解析指示划分图片的图块集行的数量的语法元素;以及基于解析的语法元素的值来生成视频数据。

在一个示例中,设备包括一个或多个处理器,该一个或多个处理器被配置为解析指示在比特流中启用了图块集的标记;解析指示划分图片的图块集列的数量的语法元素;解析指示划分图片的图块集行的数量的语法元素;以及基于解析的语法元素的值来生成视频数据。

在一个示例中,非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时使得设备的一个或多个处理器解析指示在比特流中启用了图块集的标记;解析指示划分图片的图块集列的数量的语法元素;解析指示划分图片的图块集行的数量的语法元素;以及基于解析的语法元素的值来生成视频数据。

在一个示例中,一种装置包括:用于解析指示在比特流中启用了图块集的标记的装置;用于解析指示划分图片的图块集列的数量的语法元素的装置;用于解析指示划分图片的图块集行的数量的语法元素的装置;以及用于基于解析的语法元素的值来生成视频数据的装置。

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

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

在itu-th.265中,ctu由视频数据的每个分量(例如,亮度(y)和色度(cb和cr))的相应ctb组成。此外,在itu-th.265中,可根据四叉树(qt)划分结构来划分ctu,这使得ctu的ctb被划分为编码块(cb)。也就是说,在itu-th.265中,ctu可被划分为四叉树叶节点。根据itu-th.265,一个亮度cb连同两个对应的色度cb和相关联的语法元素被称为编码单元(cu)。在itu-th.265中,可以发送信号通知cb的最小允许大小。在itu-th.265中,亮度cb的最小允许最小大小是8×8亮度样本。在itu-th.265中,使用帧内预测或帧间预测对图片区域进行编码的决定在cu级进行。

在itu-th.265中,cu与在cu处具有其根的预测单元(pu)结构相关联。在itu-th.265中,pu结构允许分割亮度cb和色度cb以生成对应的参考样本。也就是说,在itu-th.265中,可将亮度cb和色度cb分割成相应的亮度和色度预测块(pb),其中pb包括应用了相同预测的样本值的块。在itu-th.265中,可将cb划分为1个、2个或4个pb。itu-th.265支持从64×64样本向下至4×4样本的pb大小。在itu-th.265中,支持正方形pb来进行帧内预测,其中cb可形成pb,或者cb可被分割成四个正方形pb(即,帧内预测pb大小类型包括m×m或m/2×m/2,其中m为正方形cb的高度和宽度)。在itu-th.265中,除了正方形pb之外,还支持矩形pb来进行帧间预测,其中cb可垂直地或水平地减半以形成pb(即,帧间预测pb类型包括m×m、m/2×m/2、m/2×m或m×m/2)。此外,应当指出的是,在itu-th.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。如图2a所示,包括在gop中的图片可包括片段,其中每个片段包括ctu序列,并且每个ctu可根据qtbt结构被划分。在jem中,cb用于预测而无需任何进一步的划分。也就是说,在jem中,cb可以是对其应用相同预测的样本值的块。因此,jemqtbt叶节点可类似于itu-th.265中的pb。

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

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

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

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

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

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

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

+加法

-减法

*乘法,包括矩阵乘法

xy求幂。将x指定为y的幂。在其他上下文中,此类符号用于上标而非旨在用于解释为求幂。

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

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

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

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

log2(x),以2为底的x的对数;

ceil(x),大于或等于x的最小整数。

关于本文使用的示例性语法,可以应用以下逻辑运算符的定义:

x&&yx和y的布尔逻辑“和”

x||yx和y的布尔逻辑“或”

!布尔逻辑“否”

x?y:z如果x为true或不等于0,则求值为y;否则,求值为z。

此外,可以应用以下关系运算符:

此外,应当指出的是,在本文所用的语法描述符中,可以应用以下描述符:-u(n):使用n位的无符号整数。

-ue(v):首先写入左位的无符号整数0阶exp-golomb编码语法元素。

虚拟现实(vr)应用程序可以包括可利用头戴式显示器渲染的视频内容,其中仅渲染与用户头部的取向相对应的球形视频的区域。vr应用程序可以通过全向视频启用,全向视频也称为360°球形视频。全向视频通常由多个相机捕获,这些相机覆盖多达360°的场景。与普通视频相比,全向视频的显著特征在于,通常仅显示整个捕获视频区域的子集,即,显示与当前用户的视场(fov)相对应的区域。fov有时也被称为视区。在其他情况下,视区可以是当前由用户显示和查看的球形视频的一部分。应当指出的是,视区的尺寸可小于或等于视场。

全向视频图片中的最感兴趣区域可以指整个视频区域的在统计上最有可能在该图片的呈现时间渲染给用户(即,最有可能在fov中)的子集。应当指出的是,全向视频的最感兴趣区域可以由导演或制作者的意图确定,或者由服务或内容提供商从用户统计导出,例如,通过当通过流服务提供全向视频内容时,用户最多地请求/观看哪些区域的统计数据。最感兴趣区域可以用于边缘服务器或客户端的全向视频自适应流传输中的数据预取,以及/或者当全向视频被转码为例如不同的编解码或投影映射时的转码优化。因此,在全向视频图片中发信号通知最感兴趣区域可以通过降低传输带宽和降低解码复杂度来改善系统性能。应当指出的是,底部区域通常是指编码视频数据的整个区域,例如整个视频区域。

如上所述,根据itu-th.265,每个视频帧或图片可以被划分为包括一个或多个片段,并且进一步被划分为包括一个或多个图块。图2a至图2c是示出包括片段并进一步将图片划分为图块的一组图片的示例的概念图。在图2a所示的示例中,图片4被示出为包括两个片段(即,片段1和片段2),其中每个片段包括ctu序列(例如,以光栅扫描顺序排列)。应当指出的是,片段是从独立片段分段开始并包含同一访问单元内的下一个独立片段分段(如果有的话)之前的所有后续从属片段分段(如果有的话)的一个或多个片段分段的序列。片段分段(如片段)是编码树单元的序列。在本文所述的示例中,在一些情况下,术语“片段”和“片段分段”可互换使用以指示编码树单元的序列。在图2b所示的示例中,图片4被示出为包括六个图块(即,图块1至图块6),其中每个图块是矩形的并且包括ctu序列。应当指出的是,在itu-th.265中,图块可以由包含在不止一个片段中的编码树单元组成,并且片段可以由包含在不止一个图块中的编码树单元组成。然而,itu-th.265规定应满足以下一个或两个条件:(1)片段中的所有编码树单元属于同一个图块;以及(2)图块中的所有编码树单元属于同一个片段。因此,例如,相对于图2b,图块中的所有图块可以属于单个片段,或者图块可以属于多个片段(例如,图块1至图块3可以属于片段1,并且图块4至图块6可以属于片段2)。相对于jvet-l1001,已经提出片段将需要由整数个完整图块组成,而不是仅需要由整数个完整ctu组成。因此,在一些视频编码技术中,可以支持或可以不支持包括不形成图片的矩形区域的一组ctu的片段。此外,需要由整数个完整图块组成的片段称为图块组。本文所述的技术可适用于片段、图块和/或图块组。

此外,如图2b所示,图块可以形成图块集(即,图块2和图块3形成图块集)。可以使用图块集来定义用于编码依赖性的边界(例如,帧内预测依赖性、熵编码依赖性等),并且因此,可以在编码和感兴趣区域编码中启用并行性。例如,如果图2b所示的示例中的视频序列与夜间新闻节目相对应,则由tile2和tile3形成的图块集可以与包括阅读新闻的新闻主播的视觉感兴趣区域相对应。itu-th.265定义了启用运动约束图块集(mcts)的信令。运动约束图块集可以包括图块集,对于该图块集,图片间预测依赖性限于参考图片中的并置的图块集。因此,可能独立于mcts外部的其他图块集的解码来执行给定mcts的运动补偿。例如,参考图2b,如果由图块2和图块3形成的图块集是mcts并且图片1至图片3中的每一个包括并置的图块集,可以在与图片4中的图块1、图块4、图块5和图块6的编码无关的图块2和图块3以及在图片1至图片3的每一个中与图块(图块1、图块4、图块5和图块6)并置的图块上执行运动补偿。根据mcts对视频数据进行编码对于包括全向视频呈现的视频应用程序可能是有用的。

如图2c所示,图块1至图块6可以形成全向视频的最感兴趣区域。此外,由tile2和tile3形成的图块集可以是包括在最感兴趣区域内的mcts。依赖于视区的视频编码(也可以被称为依赖于视区的部分视频编码)可以用于启用仅对整个视频区域的一部分进行解码。也就是说,例如,依赖于视区的视频编码可以用于提供用于呈现当前fov的足够信息。例如,可以使用mcts对全向视频进行解码,使得覆盖视区的每个可能区域可以跨时间与其他区域独立解码。在这种情况下,例如,对于特定的当前视区,可以将覆盖视区的最小图块集发送到客户端、进行解码并且/或者进行呈现。该过程可以被称为基于简单图块的部分解码(stpd)。

在itu-th.265中,编码视频序列(cvs)可以被封装(或结构化)为一系列访问单元,其中每个访问单元包括被构造为网络抽象层(nal)单元的视频数据。在itu-th.265中,比特流被描述为包括形成一个或多个cvs的nal单元序列。应当指出的是,itu-th.265支持多层扩展,包括格式范围扩展(rext)、可伸缩性(shvc)、多视图(mv-hevc)和3-d(3d-hevc)。多层扩展使视频呈现能够包括基底层和一个或多个附加增强层。例如,基底层可以使得能够呈现具有基本质量水平(例如,高清晰度呈现)的视频呈现,并且增强层可以使得能够呈现具有增强的质量水平(例如,超高清渲染)的视频呈现。在itu-th.265中,可以通过参考基底层来对增强层进行编码。也就是说,例如可以通过参考基底层中的一个或多个图片(包括其缩放版本)来对增强层中的图片进行编码(例如,使用帧间预测技术)。在itu-th.265中,每个nal单元可以包括指示nal单元与之相关联的视频数据层的标识符。参考图2a中所示的示例,图片4中包括的每个视频数据片段(即,片段1和片段2)被示出为封装在nal单元中。此外,在itu-th.265中,视频序列、gop、图片、片段和ctu中的每一个可以与描述视频编码属性的元数据相关联。itu-th.265定义了可用于描述视频数据和/或视频编码属性的参数集。在itu-th.265中,参数集可以被封装为特殊类型的nal单元,或者可以作为消息发送信号通知。包括编码视频数据(例如,片段)的nal单元可以被称为vcl(视频编码层)nal单元,并且包括元数据(例如,参数集)的nal单元可以被称为非vclnal单元。此外,itu-th.265使得补充增强信息(sei)消息能够被发送信号通知。在itu-th.265中,sei消息协助与解码、显示或其他目的有关的过程,然而,可能不需要sei消息来通过解码过程构造亮度或色度样本。在itu-th.265中,可以使用非vclnal单元在比特流中发送信号通知sei消息。此外,sei消息可以通过某种方式传送,而不是通过存在于比特流中(即,在带外发送信号通知)。

图3示出了包括多个cvs的比特流的示例,其中cvs由包括在相应的访问单元中的nal单元表示。在图3所示的示例中,非vclnal单元包括各自的参数集单元(即视频参数集(vps)、序列参数集(sps)和图片参数集(pps)单元)和访问单元定界符nal单元。应当指出的是,itu-th.265定义了nal单元标头语义,其指定了包括在nal单元中的原始字节序列有效载荷(rbsp)数据结构的类型。如上所述,可以使用mcts对全向视频进行编码。子比特流提取可以指通过丢弃和/或修改接收的比特流中的数据,接收符合itu-th.265的比特流的设备形成新的符合itu-th.265的比特流的过程。例如,如上所述,对于特定的当前视区,可以将覆盖视区的最小图块集发送至客户端。子比特流提取可以用于形成包括最小图块集的新的符合itu-th.265的比特流。例如,参考图2c,如果视区仅包括图块2和图块3并且比特流中的访问单元包括用于图块1至图块6的vclnal单元,其中图块1、图块2和图块3包括在第一片段中并且图块4、图块5和图块6包括在第二片段中,则子比特流提取过程可包括生成仅包括用于包括图块2和图块3的片段的vclnal单元的新比特流(即,从接收的比特流中移除包括用于图块4、图块5和图块6的片段的vclnal单元)。

如上所述,术语“图块结构”可以指将图片特定划分成图块。参考图2b,图片4的图块结构包括所示的图块,图块1至图块6。在一些情况下,可能有用的是针对不同图片使用不同的图块结构。在itu-th.265中,使用图片参数集发送信号通知图片的图块结构。表1是itu-th.265中指定的pps的语法的一部分,包括用于发送信号通知图块结构的相关语法元素。

表1

itu-th.265针对表1中所示的相应语法元素提供了以下定义。pps_pic_parameter_set_id标识pps以供其他语法元素引用。pps_pic_parameter_set_id的值应在0至63(包括端值)的范围内。

pps_seq_parameter_set_id指定活动sps的sps_seq_parameter_set_id的值。pps_seq_parameter_set_id的值应在0至15(包括端值)的范围内。

tiles_enabled_flag等于1指定在引用pps的每张图片中存在多于一个图块。tiles_enabled_flag等于0指定在引用pps的每张图片中存在仅一个图块。比特流符合性要求,对于cvs内激活的所有pps,tiles_enabled_flag的值应该是相同的。

num_tile_columns_minus1加1指定划分图片的图块列的数量。num_tile_columns_minus1应在0至picwidthinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_columns_minus1的值等于0。

num_tile_rows_minus1加1指定划分图片的图块行的数量。num_tile_rowsminus1应在0至picheightinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_rows_minus1的值等于0。当tiles_enabled_flag等于1时,num_tile_columns_minus1和num_tile_rows_minus1都应不等于0。

uniform_spacing_flag等于1指定图块列边界和同样的图块行边界在整个图片上均匀地分布。uniform_spacing_flag等于0的指定图块列边界和同样的图块行边界在整个图片上非均匀分布,而是使用语法元素column_width_minus1[i]和row_height_minus1[i]来明确地发送信号通知。当不存在时,推断uniform_spacing_flag的值等于1。

column_width_minus1[i]加1指定第i个图块列的宽度,单位为编码树块。

row_height_minus1[i]加1指定第i个图块列的高度,单位为编码树块。

此外,在itu-th.265中,使用片段分段标头发送信号通知关于比特流中的入口点的信息。表2是itu-th.265中指定的片段分段标头的语法的一部分,包括用于发送信号通知入口点的相关语法元素。

表2

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

slice_pic_parameter_set_id指定当前使用的pps的pps_pic_parameter_set_id的值。slice_pic_parameter_set_id的值应在0至63(包括端值)的范围内。

num_entry_point_offsets指定片段标头中的entry_point_offset_minus1[i]语法元素的数量。当不存在时,推断num_entry_point_offsets的值等于0。

num_entry_point_offsets的值被约束如下:

-如果tiles_enabled_flag等于0并且entropy_coding_sync_enabled_flag等于1,则num_entry_point_offsets的值应在0至picheightinctbsy-1(包括端值)的范围内。

-否则,如果tiles_enabled_flag等于1并且entropy_coding_sync_enabled_flag等于0,则num_entry_point_offsets的值应在0至(num_tile_columns_minus1+1)*(num_tile_rows_minus1+1)-1(包括端值)的范围内。

-否则,当tiles_enabled_flag等于1并且entropy_coding_sync_enabled_flag等于1时,num_entry_point_offsets的值应在0至(num_tile_columns_minus1+1)*picheightinctbsy-1(包括端值)的范围内。

offset_len_minus1加1指定entry_point_offset_minus1[i]语法元素的长度,单位为位。offset_len_minus1的值应在0至31(包括端值)的范围内。

entry_point_offset_minus1[i]加1指定第i个入口点偏移,单位为字节,并且由offset_len_minus1加1位表示。片段分段标头之后的片段分段数据由num_entry_point_offsets+1个子集组成,其中子集索引值的范围为0至num_entry_point_offsets(包括端值)。片段分段数据的第一字节被认为是字节0。当存在时,出于子集识别的目的,将出现在编码片段分段nal单元的片段分段数据部分中的防竞争字节计数为片段分段数据的一部分。子集0由编码片段分段数据的字节0至entry_point_offset_minus1[0](包括端值)组成,子集k(其中k在1至num_entry_point_offsets-1(包括端值)的范围内)由编码片段分段数据的字节firstbyte[k]至lastbyte[k](包括端值)组成,其中firstbyte[k]和lastbyte[k]定义为:

lastbyte[k]=firstbyte[k]+entry_point_off*et_minus1[k]

最后一个子集(其中子集索引等于num_entry_point_offsets)由编码片段分段数据的字节组成。

当tiles_enabled_flag等于1并且entropy_coding_sync_enabled_flag等于0时,每个子集应由片段分段中在相同图块内的所有编码树单元的所有编码位组成,并且子集的数量(即,num_entry_point_offsets+1的值)应等于包含作为编码片段分段的编码树单元的图块的数量。

注释6-当tiles_enabled_flag等于1并且entropy_coding_sync_enabled_flag等于0时,每个片段必须包括一个图块的编码树单元的子集(在这种情况下,语法元素entry_point_offset_minus1[i]不存在)或者必须包括整数个完整图块的所有编码树单元。

当tiles_enabled_flag等于0并且entropy_coding_sync_enabled_flag等于1时,每个子集k(其中k在0至num_entry_point_offsets(包括端值)的范围内)应由片段分段中包括在图片的相同亮度编码树块行中的亮度编码树块的所有编码树单元的所有编码位组成,并且子集的数量(即,num_entry_point_offsets+1的值)应等于包含编码片段分段中的编码树单元的图片的编码树块行的数量。

注释7-最后一个子集(即,子集k,k等于num_entry_point_offsets)可包含或可不包含包括图片的亮度编码树块行中的亮度编码树块的所有编码树单元。

当tiles_enabled_flag等于1并且entropy_coding_sync_enabled_flag等于1时,每个子集k(其中k在0至num_entry_point_offsets(包括端值)的范围内)应由片段分段中包括在图块的相同亮度编码树块行中的亮度编码树块的所有编码树单元的所有编码位组成,并且子集的数量(即,num_entry_point_offsets+1的值)应等于包含编码片段中的编码树单元的图块的亮度编码树块行的数量。

如上文的语法和语义所示,在itu-th.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)标准、第3代合作伙伴计划(3gpp)标准、欧洲电信标准协会(etsi)标准、互联网协议(ip)标准、无线应用协议(wap)标准以及电气与电子工程师协会(ieee)标准。

存储设备可以包括能够存储数据的任何类型的设备或存储介质。存储介质可以包括有形或非暂态计算机可读介质。计算机可读介质可以包括光盘、闪存、磁存储器或任何其他合适的数字存储介质。在一些示例中,存储器设备或其部分可以被描述为非易失性存储器,并且在其他示例中,存储器设备的部分可以被描述为易失性存储器。易失性存储器的示例可以包括随机存取存储器(ram)、动态随机存取存储器(dram)和静态随机存取存储器(sram)。非易失性存储器的示例可以包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(eprom)或电可擦除和可编程(eeprom)存储器的形式。一个或多个存储设备可以包括存储卡(例如,安全数字(sd)存储卡)、内部/外部硬盘驱动器和/或内部/外部固态驱动器。数据可以根据定义的文件格式存储在存储设备上。

图4是示出可被包括在系统100的具体实施中的部件的示例的概念图。在图4所示的示例性具体实施中,系统100包括一个或多个计算设备402a至402n、电视服务网络404、电视服务提供商站点406、广域网408、局域网410以及一个或多个内容提供商站点412a至412n。图4中所示的具体实施表示系统的示例,该系统可被配置为允许数字媒体内容(诸如电影、现场体育赛事等)和与其相关联的数据和应用程序以及媒体呈现被分发到多个计算设备(诸如计算设备402a至402n)并由该多个计算设备访问。在图4所示的示例中,计算设备402a至402n可以包括被配置为从电视服务网络404、广域网408和/或局域网410中的一者或多者接收数据的任何设备。例如,计算设备402a至402n可以配备用于有线和/或无线通信,并且可被配置为通过一个或多个数据信道接收服务,并且可以包括电视,包括所谓的智能电视、机顶盒和数字视频记录器。此外,计算设备402a至402n可以包括台式计算机、膝上型计算机或平板计算机、游戏控制台、移动设备(包括例如“智能”电话、蜂窝电话和个人游戏设备)。

电视服务网络404是被配置为允许分发可包括电视服务的数字媒体内容的网络的示例。例如,电视服务网络404可以包括公共空中电视网络、公共或基于订阅的卫星电视服务提供商网络,以及公共或基于订阅的有线电视提供商网络和/或云上或互联网服务提供商。应当指出的是,尽管在一些示例中,电视服务网络404可以主要用于允许提供电视服务,但是电视服务网络404还可以根据本文所述的电信协议的任何组合允许提供其他类型的数据和服务。此外,应当指出的是,在一些示例中,电视服务网络404可以允许电视服务提供商站点406与计算设备402a至402n中的一个或多个之间的双向通信。电视服务网络404可以包括无线和/或有线通信媒体的任何组合。电视服务网络404可以包括同轴电缆、光纤电缆、双绞线电缆、无线发射器和接收器、路由器、交换机、中继器、基站或可用于促进各种设备和站点之间的通信的任何其他设备。电视服务网络404可以根据一个或多个电信协议的组合来运营。电信协议可以包括专有方面和/或可以包括标准化电信协议。标准化电信协议的示例包括dvb标准、atsc标准、isdb标准、dtmb标准、dmb标准、有线数据服务接口规范(docsis)标准、hbbtv标准、w3c标准和upnp标准。

再次参考图4,电视服务提供商站点406可被配置为经由电视服务网络404分发电视服务。例如,电视服务提供商站点406可以包括一个或多个广播站、有线电视提供商、或卫星电视提供商、或基于互联网的电视提供商。例如,电视服务提供商站点406可被配置为通过卫星上行链路/下行链路接收传输(包括电视节目)。此外,如图4所示,电视服务提供商站点406可以与广域网408通信,并且可被配置为从内容提供商站点412a至412n接收数据。应当指出的是,在一些示例中,电视服务提供商站点406可以包括电视演播室,并且内容可以源自该电视演播室。

广域网408可以包括基于分组的网络,并且根据一个或多个电信协议的组合运营。电信协议可以包括专有方面和/或可以包括标准化电信协议。标准化电信协议的示例包括全球系统移动通信(gsm)标准、码分多址(cdma)标准、第3代合作伙伴计划(3gpp)标准、欧洲电信标准协会(etsi)标准、欧洲标准(en)、ip标准、无线应用协议(wap)标准、以及电气与电子工程师协会(ieee)标准,诸如,一个或多个ieee802标准(例如,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。如图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将帧内预测数据(例如,语法元素)输出到熵编码单元516和变换系数生成器504。如上所述,对残差数据执行的变换可以是模式相关的(例如,可以基于预测模式确定二次变换矩阵)。

再次参考图5,帧间预测处理单元514可被配置为针对当前视频块执行帧间预测编码。帧间预测处理单元514可被配置为接收源视频块并且计算视频块的pu的运动矢量。运动矢量可以指示当前视频帧内的视频块的pu相对于参考帧内的预测块的位移。帧间预测编码可以使用一个或多个参考图片。此外,运动预测可以是单向预测(使用一个运动矢量)或双向预测(使用两个运动矢量)。帧间预测处理单元514可被配置为通过计算由例如绝对差之和(sad)、平方差之和(ssd)或其他差值度量确定的像素差来选择预测块。如上所述,可以根据运动矢量预测来确定和指定运动矢量。如上所述,帧间预测处理单元514可被配置为执行运动矢量预测。帧间预测处理单元514可被配置为使用运动预测数据生成预测块。例如,帧间预测处理单元514可定位帧缓冲器内的预测视频块(图5中未示出)。需注意,帧间预测处理单元514可以进一步被配置为将一个或多个内插滤波器应用于重构的残差块,以计算用于运动估计的子整数像素值。帧间预测处理单元514可将所计算的运动矢量的运动预测数据输出到熵编码单元516。

再次参考图5,熵编码单元518接收量化的变换系数和预测语法数据(即帧内预测数据和运动预测数据)。应当指出的是,在一些示例中,系数量化单元506可以在将系数输出到熵编码单元518之前执行对包括量化变换系数的矩阵的扫描。在其他示例中,熵编码单元518可执行扫描。熵编码单元518可被配置为根据本文中所描述的技术中的一个或多个执行熵编码。这样,视频编码器500表示被配置为根据本发明的一种或多种技术生成编码视频数据的设备的示例。在一个示例中,视频编码器500可生成编码视频数据,包括运动约束图块集。

再次参考图1,数据封装器107可以接收编码视频数据,并根据定义的数据结构生成兼容比特流,例如,nal单元序列。接收兼容比特流的设备可以从其再现视频数据。此外,如上所述,子比特流提取可以指通过丢弃和/或修改接收的比特流中的数据,接收符合itu-th.265的比特流的设备形成新的符合itu-th.265的比特流的过程。应当指出的是,可使用术语符合性比特流来代替术语兼容比特流。

如上所述,在itu-th.265中,在每个行和列包括相同数量的图块的情况下图块结构受到限制。在一些情况下,在行和/或列中具有变化数量的图块可能是有用的。例如,对于360°球形视频的编码,在球体的两极区域处比在赤道处具有更少的图块可能是有用的,并且因此在这种情况下,逐行改变图块列的数量可能是有用的。在一个示例中,数据封装器107可被配置为根据本文所述的一种或多种技术发送信号通知图块结构。应当指出的是,数据封装器107不必要位于与视频编码器106相同的物理设备中。例如,被描述为由视频编码器106和数据封装器107执行的功能可以分布在图4所示的设备中。

根据本文所述的技术,数据封装器107可被配置为发送信号通知图块集结构的以下类型的信息中的一者或多者:

用于指示是否启用了图块集的标记。如果未启用,则推断整个图片为一个图块集。

如果启用图块集信令,则可以发送信号通知以下内容:

可以发送信号通知图块集的行的数量,

可以发送信号通知图块集的列的数量,

在每个图块集中,可以发送信号通知以下信息:

该图块集中的图块行的数量,

该图块集中的图块列的数量,

用于发送信号通知图块是否在图块集中沿行方向均匀地间隔开指示符/标记,和/或

用于发送信号通知图块是否在图块集中沿列方向均匀地间隔开指示符/标记,和/或

如果间距均匀,则可以针对每个图块集发送信号通知以下内容:

图块宽度,单位为图块集中每个图块行中ctb的数量,

图块高度,单位为图块集中每个图块列中ctb的数量,

如果间距不均匀,则可以针对每个图块集中的每个图块发送信号通知以下内容:

图块集中每个图块中的行中ctb的数量,

图块集中每个图块中的列中ctb的数量

表3示出了根据本文技术的可用于发送信号通知图块结构的参数集的语法的示例。在一个示例中,表3中包括的示例性语法可包括在pps中。在其他示例中,表3中包括的示例性语法可包括在vps或sps中。

表3

参考表3,应当注意,语法元素tiles_enabled_flag、tilesets_enabled_flag、num_tile_columns_minus1[k][l]、num_tile_rows_minus1[k][l]、uniform_spacing_flag[k][1]、column_width_minus1[k][l][i]、row_height_minus1[k][l][i]、tile_width_m_ctbsy_minus1[k][l]、tile_height_in_ctbsy_minus1[k][l]和loop_filter_across_tiles_enabled_flag[k][l]可基于以下示例性定义:

tiles_enabled_flag等于1指定在引用参数集的每个图片中存在多于一个图块。tiles_enabled_flag等于0指定在引用参数集的每个图片中存在仅一个图块。

tilesets_enabled_flag等于1指定在引用参数集的每个图片中存在多于一个图块集。tilesets_enabled_flag等于0指定在引用参数集的每个图片中存在仅一个图块集。

比特流符合性要求,对于cvs内激活的所有参数集,tilesets_enabled_flag的值应该是相同的。

比特流符合性要求,当tiles_enabled_flag等于0时,tilesets_enabled_flag应等于0。

num_tile_set_columns_minus1加1指定划分图片的图块集列的数量。num_tile_set_columns_minus1应在0至picwidthinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_set_columns_minus1的值等于0。

num_tile_set_rows_minus1加1指定划分图片的图块行的数量。num_tile_set_rows_minus1应在0至picheightinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_set_rows_minus1的值等于0。

在一个示例中,当tilesets_enabled_flag等于1时,num_tile_set_columns_minus1和num_tile_set_rows_minus1都应不等于0。

num_tile_columns_minus1[k][l]加1指定划分与索引(k,l)相关联的图块集的图块列的数量。num_tile_columns_minus1[k][l]应在0至picwidthinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_columns_minus1[k][l]的值等于0。

在另一个示例中,num_tile_columns_minus1[k][l]应在0至picwidthinctbsy-num_tile_set_columns_minus1-1(包括端值)的范围内。

num_tile_rows_minus1[k][l]加1指定划分与索引(k,l)相关联的图块集的图块行的数量。num_tile_rows_minus1[k][l]应在0至picheightlnctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_rows_minus1[k][l]的值等于0。

在另一个示例中,num_tile_rows_minus1[k][l]应在0至picheightinctbsy-num_tile_set_rows_minus1-1(包括端值)的范围内。

uniform_spacing_flag[k][l]等于1指定图块列边界和同样的图块行边界在整个与索引(k,l)相关联的图块集上均匀地分布。uniform_spacing_flag[k][l]等于0的指定图块列边界和同样的图块行边界在整个与索引(k,l)相关联的图块集上非均匀分布,而是使用语法元素column_width_minus1[k][l][i]和row_height_minus1[k][l][i]来明确地发送信号通知。当不存在时,推断uniform_spacing_flag[k][l]的值等于1。

column_width_minus1[k][l][i]加1指定第i个图块列的宽度,单位为与索引(k,l)相关联的图块集中的编码树块。

row_height_minus1[k][l][i]加1指定第i个图块行的高度,单位为与索引(k,l)相关联的图块集中的编码树块。

tile_width_in_ctbsy_minus1[k][l]加1指定图块集中与索引(k,l)相关联的每个图块列的宽度,单位为编码树块。

在一个示例中,比特流符合性要求,对于每个k在0至num_tile_set_rows_minus1(包括端值)的范围内,tile_width_in_ctbsy_minus1[k][l](其中l在0至num_tile_set_columns_minus1的范围内)的总和的值是相同值。

tile_height_in_ctbsy_minus1[k][l]加1指定图块集中与索引(k,l)相关联的每个图块行的高度,单位为编码树块。

在一个示例中,比特流符合性要求,对于每个l在0至num_tile__ser_columns_minus1(包括端值)的范围内,tile_height_in_ctbsy_minus1[k][l](其中k在0至num_tile_set_rowss_minus1的范围内)的总和的值是相同值。

loop_filter_across_tiles_enabled_flag[k][l]等于1指定可跨引用pps、与索引(k,l)相关联的图块集中的图块边界执行循环中滤波操作。loop_filter_across_tiles_enabled_flag[k][l]等于0指定不可跨引用pps、与索引(k,l)相关联的图块集中的图块边界执行循环中滤波操作。循环中滤波操作包括解块滤波和样本自适应偏移滤波操作。当不存在时,推断loop_filter_across_tiles_enabled_flag[k][l]的值等于1。

在另一个实例中,对于每个图块集行,可以允许每个图块集行的图块集列的数量不同。表4示出了根据本文技术的可用于发送信号通知图块结构的参数集的语法的示例。在一个示例中,表4中包括的示例性语法可包括在pps中。在其他示例中,表4中包括的示例性语法可包括在vps或sps中。

表4

参考表4,应当注意,语法元素tiles_enabled_flag、tilesets_enabled_flag、num_tile_rows_minus1、uniform_spacing_flag[k][l]、column_width_minus1[k][l][i]、row_height_minus1[k][l][i]、tile_width_in_ctbsy_minus1[k][l]、tile_height_in_ctbsy_minus1[k][l]和loop_filter_across_tiles_enabled_flag[k][l]可基于上文参考表3提供的定义。num_tile_set_columns_minus1[k]可基于以下示例性定义:

num_tile_set_columns_minus1[k]加1指定图块行k中的图块集列的数量。num_tile_set_columns_minus1[k]应在0至picwidthinctbsy-1(包括端值)的范围内。当不存在时,对于0至num_tile_set_rows_minus1(包括端值)的范围内的k,推断num_tile_set_columns_minus1[k]的值等于0。

在另一个实例中,对于每个图块集行,可以允许每个图块集列的图块集行的数量不同。表5示出了根据本文技术的可用于发送信号通知图块结构的参数集的语法的示例。在一个示例中,表5中包括的示例性语法可包括在pps中。在其他示例中,表5中包括的示例性语法可包括在vps或sps中。

表5

参考表5,应当注意,语法元素tiles_enabled_flag、tilesets_enabled_flag、num_tile_columns_minus1、uniform_spacing_flag[k][l]、column_width_minus1[k][l][i]、row_height_minus1[k][l][i]、tile_width_in_cthsy_minus1[k][l]、tile_height_in_ctbsy_minus1[k][l]和loop_filter_across_tiles_enabled_flag[k][l]可基于上文参考表3提供的定义。num_tile_set_rows_minus1[k]可基于以下示例性定义:

num_tile_set_rows_minus1[l]加1指定图块列1中的图块集行的数量。num_tile_set_rows_minus1[l]应在0至picheightlnctbsy-1(包括端值)的范围内。当不存在时,对于0至num_tile_set_columns_minus1(包括端值)的范围内的l,推断num_tile_set_rows_minus1[l]的值等于0。

参考该示例,在另一个示例中,可以替代地将语法元素num_tile_columns_mmusl[k][l]、num_tile_rows_minus1[k][l]、uniform_spacing_flag[k][l]、tile_width_in_ctbsy_minus1[k][l]、tile_height_in_ctbsy_minus1[k][l]和loop_filter_across_tiles_enabled_flag[k][l]的数组索引[k][l]发送信号通知为顺序为[l][k]的索引,并且因此可以将上述语法元素发送信号通知为语法元素num_tile_columns_minus1[l][k]、num_tile_rows_minus1[l][k]、uniform_spacing_flag[l][k]、tile_width_in_ctbsy_minus1[l][k]、tile_height_in_ctbsy_minus1[l][k]、loop_filter_across_tiles_enabled_flag[l][k]。

此外,参考该示例,在另一个示例中,可以替代地将元素column_width_minus1[k][l][i]、row_height_minus1[k][l][i]的数组索引[k][l][i]发送信号通知为顺序为以[l][k][i]的索引,并且因此可以将上述元素发送信号通知为语法元素column_width_minus1[l][k][i]、row_height_minus1[l][k][i]。

在一个示例中,根据本文的技术,图块的光栅顺序可以在图块集内逐行排列,并且图块集在图片内以光栅顺序排列。应当注意,这使得图块集内的编码数据是连续的,这可以帮助剪接图块集比特流并且对那些比特流部分进行并行解码。这里的术语“剪接”可以指对整体比特流的仅一部分进行提取,其中提取的部分可以对应于一个或多个图块集。相比之下,在itu-th.265中,图块的光栅排序在图片中逐行排列。图6示出了图块光栅扫描,其中图块的光栅顺序在图块集内逐行排列,并且图块集在图片内以光栅顺序排列。在图6中,针对每个图块指示的下标数字提供图块扫描的顺序。

在一个示例中,根据本文的技术,编码树块(ctb/ctu)的光栅排序可以在图块集内的图块光栅扫描中逐行进行,并且图块集在图片内以光栅顺序排列。应当注意,这使得图块集内的编码数据是连续的,这可以帮助剪接图块集比特流并且并行解码。这里的术语“剪接”可以指对整体比特流的仅一部分进行提取,其中提取的部分可以对应于一个或多个图块集。相比之下,在itu-th.265中,编码树块(ctb/ctu)的光栅排序在图片中的光栅扫描中逐行进行。图7示出了编码树块(ctb/ctu)的光栅排序可以在图块集内的图块光栅扫描中逐行进行,并且图块集在图片内以光栅顺序排列。在图7中,为每个ctu指示的数字提供了ctu扫描的顺序。应当注意,图7中的示例包括与图6所示相同的图块结构。

编码树块(ctb/ctu)、图块和图块集的光栅排序可基于以下描述:

该子条款指定vclnal单元的顺序以及与编码图片的关联。每个vclnal单元都是编码图片的一部分。

编码图片内的vclnal单元的顺序被约束如下:

-编码图片的第一vclnal单元的first_slice_segment_in_pic_flag应等于1。

-令slicesegaddra和slicesegaddrb为相同编码图片内的任意两个编码片段分段nal单元a和b的slice_segment_address值。当以下条件中的任一者为真时,编码片段分段nal单元a应在编码片段分段nal单元b之前:

-tileid[ctbaddrrstots[slicesegaddra]]小于tileid[ctbaddrrstots[slicesegaddrb]]。

-tileid[ctbaddrrstots[slicesegaddra]]等于tileid[ctbaddrrstots[slicesegaddrb]],并且ctbaddrrstots[slicesegaddra]小于ctbaddrrstots[slicesegaddrb]。

列表colwidtht[k][l][i]指定与索引(k,l)相关联的图块集的第i个图块列的宽度,单位为ctb,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且i在0至num_tile_columns_minus1(包括端值)的范围内,该列表如下导出:

列表rowheight[k][l][j]指定与索引(k,l)相关联的图块集的第j个图块行的高度,单位为ctb,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且j在0至num_tile_rows_minus1(包括端值)的范围内,该列表如下导出:

变量numtilesets指示图块集的数量,该变量如下导出:

numtilesets=(num_tile_set_rows_minus1+1)*(num_tile_set_columns_minus1+1)

数组pwctbsy[k][l]、phctbsy[k][l]、psizectbsy[k][l]分别指定与索引(k,l)相关联的图块集的亮度ctb中的图片宽度、亮度ctb中的图片高度、亮度ctb中的图片尺寸,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内并且l在0至num_tile_set_columns_minus1(包括端值)的范围内;并且数组ctbaddrrsoffset[k][l]指定与索引(k,l)相关联的图块集的ctb的累积计数,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内并且l在0至num_tile_set_columns_minus1(包括端值)的范围内,这些数组如下导出:

第j个图块集与索引(k,l)如下相关联。第j个图块集可以称为具有索引j的图块集。

给定图块集索引j和图片中图块集列的数量,k和l如下导出:

k=j/(num_tile_set_columns_minus1+1)

l=j%(num_tile_set_columns_minus1+1)

给定索引k和l以及图片中图块集列的数量,图块集索引j如下导出:

j=k*((num_tile_set_columns_minus1+1)+1

列表colbd[k][l][i]指定与索引(k,l)相关联的图块集的第i个图块列边界的位置,单位为编码树块,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且i在0至num_tile_columns_minus1+1(包括端值)的范围内,该列表如下导出:

列表rowbd[j]指定与索引(k,l)相关联的图块集的第j个图块行边界的位置,单位为编码树块,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且j在0至num_tile_rows_minus1+1(包括端值)的范围内,该列表如下导出:

列表ctbaddrrstots[ctbaddrrs]指定从图片的以ctb光栅扫描排序的ctb地址到以图块集和图块扫描排序的ctb地址的转换,其中ctbaddrrs在0至picsizelnctbsy-1(包括端值)的范围内,该列表如下导出:

列表ctbaddrtstors[ctbaddrts]指定从以图块扫描排序的ctb地址到图片的以ctb光栅扫描排序的ctb地址的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

for(ctbaddrrs=0;ctbaddrrs<picsizeinctbsy;ctbaddrrs++)

ctbaddrtstors[ctbaddrrstots[ctbaddrrs]]=ctbaddrrs

列表tileid[ctbaddrts]指定从以图块扫描排序的ctb地址到图块id的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

在根据本文技术的一个实例中,数据封装器107可被配置为发送信号通知信息,使得可以独立地处理每个图块集和图块集内的图块。在一个示例中,发送信号通知每个图块集的字节范围信息。在一个示例中,可以将该字节范围信息发送信号通知为图块集入口点偏移的列表。图8示出了其中t[j]和t[j+1]中的每一者分别指示属于第j个和第(j+1)个图块集的字节的大小的示例。另外,在每个图块集内,针对图块集中的每个图块发送信号通知字节范围信息。在一个示例中,可以将该字节范围信息发送信号通知为图块入口点偏移的列表。在图8中,b[j][k]和b[j+1][k]分别指示属于第j个图块集的第k个图块子集和第(j+1)个图块集的第k个图块子集的字节的大小。表6示出了可用于发送信号通知信息的示例性片段分段标头,使得可以根据本文的技术独立地处理每个图块集和图块集内的图块。

表6

参考表6,应当注意,语法元素tileset_ofiset_len_minus1、tileset_entry_point_offeet_minus1、num_entry_point_offsets、offset_len_minus1和entry_point_offset_minus1可以基于以下定义:

tileset_offset_len_minus1加1指定tileset_entry_point_offset_minus1[i]语法元素的长度,单位为位。tileset_offset_len_minus1的值应在0至31(包括端值)的范围内。

tileset_entry_point_offset_minus1[i]加1指定第i个图块集的第i个入口点偏移,单位为字节,并且由tileset_offset_len_minus1加1位表示。片段分段标头之后的片段分段数据由numtilesets个子集组成,其中图块集索引值的范围为0至numtilesets-1(包括端值)。片段分段数据的第一字节被认为是字节0。当存在时,出于子集识别的目的,将出现在编码片段分段nal单元的片段分段数据部分中的防竞争字节计数为片段分段数据的一部分。图块集0由编码片段分段数据的字节0至tileset_entry_point_offset_minus1[0](包括端值)组成,图块集k(其中k在1至numtilesets-1(包括端值)的范围内)由编码片段分段数据的字节firsttilesetbyte[k]至lasttilesetbyte[k](包括端值)组成,其中firsttilesetbyte[k]和lasttilesetbyte[k]定义为:

lasttilesetbyte[k]=firsttilesetbyte[k]+tilcset_entry_point_offset_minus1[k]

最后一个子集(其中子集索引等于numtilesets)由编码片段分段数据的剩余字节组成,即从片段分段数据的lasttilesetbyte[numtilesets-l]+l到结束的字节。

每个子集应由片段分段中位于同一图块集内的所有编码树单元的所有编码位组成。

num_entry_point_offsets[j]指定片段标头中第j个图块集的entry_point_offset_minus1[j][i]语法元素的数量。当不存在时,推断num_entry_point_offsets[j]的值等于0。

变量k和l如下导出:

k=j/(num_tile_set_columns_minus1+1)

l=j%(num_tile_set_columns_minus1+1)

num_entry_point_offsets[j]的值被约束如下:

-如果tiles_enabled_flag等于0并且entropy_coding_sync_enabled_flag等于1,则num_entrypoint_offsets[j]的值应在0至picheightinctbsy-1(包括端值)的范围内。

-否则,如果tiles_enabled_flag等于1并且entropy_coding_sync_enabled_flag等于0,则num_entry_point_offsets[j]的值应在0至(num_tile_columns_minus1[k][1]+1)*(num_tilerows_minus1[k][1]+1)-1(包括端值)的范围内,

-否则,当tiles_enabled_flag等于1并且entropy_coding_sync_enabled_flag等于1时,num_entry_point_offsets的值应在0至(num_tile_colunms_minus1[k][1]+1)*phctbsy[k][1]-1(包括端值)的范围内。

offset_len_minus1[j]加1指定entry_point_offset_minus1[j][i]语法元素的长度,单位为位。offset_len_minus1[j]的值应在0至31(包括端值)的范围内。

entry_point_offset_minus1[j][i]加1指定第j个图块集中第i个入口点偏移,单位为字节,并且由offset_len_minus1[j]加1位表示。片段分段数据中对应于第j个图块集的数据在tileset_entry_point_offset_minus1[j]位置之后并且由num_entry_point_offsets[j]+1个子集组成,其中第j个图块集的子集索引值在0至num_entry_point_offsets[j](包括端值)的范围内。片段分段数据的第一字节被认为是字节0。当存在时,出于子集识别的目的,将出现在编码片段分段nal单元的片段分段数据部分中的防竞争字节计数为片段分段数据的一部分。第j个图块集的子集0由编码片段分段数据的字节tileset_entry_point_offset_minus1[j]+0至tileset_entry_point_offset_minus1[j]+entry_point_offset_minus1[0](包括端值)组成,子集k(其中k在1至num_entry_pointoffsets[j]-1(包括端值)的范围内)由编码片段分段数据的字节firstbyte[j][k]至lastbyte[j][k](包括端值)组成,其中firstbyte[j][k]和lastbyte[j][k]定义为:

lastbyte[j][k]=firstbyte[k]+entry_point_offset_minus1[j][k]

最后一个子集(其中子集索引等于[j][num_entry_point_offsets[j]])由编码片段分段数据的字节lastbyte[j][num_entry_point_offsets[j]-1]+l至tileset_entry_point_offset_minus1[j+1]-1(包括端值)组成,其中j在0至numtilesets-1的范围内。

最后一个图块集的最后一个子集(其中子集索引等于[numtilesets-1][num_entry_point_offsets[numtilesets]])由编码片段分段数据的字节组成,即,从片段分段数据的lastbyte[numtilesets-1][num_entry_point_offsets[j]-1]+l直到结束的字节。

当tiles_enabled_flag等于1并且entropy_coding_sync_enabled_flag等于0时,每个子集应由片段分段中在相同图块内的所有编码树单元的所有编码位组成,并且子集的数量(即,num_entry_point_offsets[j]+1的值)应等于包含编码片段分段中第j个图块集中的编码树单元的图块的数量。

注释:当tiles_enabled_flag等于1并且entropy_coding_sync_enabled_flag等于0时,每个片段必须包括一个图块的编码树单元的子集(在这种情况下,语法元素entry_point_offset_minus1[j][i]不存在)或者必须包括整数个完整图块的所有编码树单元。

当tiles_enabled_flag等于0并且entropy_coding_sync_enabled_flag等于1时,每个子集k(其中k在0至num_entry_point_offsets[j](包括端值)的范围内)应由片段分段中包括在图片的相同亮度编码树块行中的亮度编码树块的所有编码树单元的所有编码位组成,并且子集的数量(即,num_entry_point_offsets[j]+1的值)应等于包含编码片段分段中的编码树单元的图片的编码树块行的数量。

注释:最后一个子集(即,子集k,k等于numentrypointoffsets[j])可包含或可不包含包括图片的亮度编码树块行中的亮度编码树块的所有编码树单元。

当tiles_enabled_flag等于1并且entropy_coding_sync_enabled_flag等于1时,第j个图块集的每个子集k(其中k在0至num_entry_point_offsets[j](包括端值)的范围内)应由片段分段中包括在第j个图块集中图块的相同亮度编码树块行中的亮度编码树块的所有编码树单元的所有编码位组成,并且子集的数量(即,num_entry_point_offsets[j]+1的值)应等于包含编码片段中第j个图块集中的编码树单元的图块的亮度编码树块行的数量。

在一个示例中,用于对每个图块集中的图块字节范围信令(图块偏移信令)进行固定长度编码的偏移长度信息可以仅被发送信号通知一次,并且将应用于所有图块集。表7中示出了用于偏移长度信息的示例性语法。

表7

参考表7,应当注意,语法元素tileset_offeet_len_minus1、tileset_entry_point_offset_minus1、num_entry_point_offsets和offset_len_minus1可以基于上面参考表6提供的定义,并且all_tile_offset_len_minus1和entry_point_offset_minus1可以基于以下定义:

all_tile_offset_len_minus1加1指定entry_point_offset_minus1[j][i]语法元素的长度,单位为位,其中j的每个值都在0至numtilesets-1(包括端值)的范围内。all_tile_offset_len_minus1的值应在0至31(包括端值)的范围内。

entry_point_offset_minus1[j][i]加1指定第j个图块集中第i个入口点偏移,单位为字节,并且由all_tile_offset_len_minus1加1位表示。

在一个示例中,可以在单个for循环中针对图片中的所有图块发送信号通知图块字节范围信息。在这种情况下,可以针对发送信号通知的图块字节范围的数量发送信号通知单个语法元素。然后,可以使用其他发送信号通知的语法元素来确定这些图块字节范围元素中有多少属于每个图块集。

在一个示例中,可以使用u(v)编码而不是ue(v)编码对图片中图块集列的数量的语法元素(unm_tile_set_columns_minus1)和图块集行的数量的语法元素(num_tile_set_rows_minus1)进行固定长度编码。在一个示例中,在这种情况下,可以发送信号通知附加语法元素以指示用于对这些元素进行固定长度编码的位的长度。在另一个示例中,可以不发送信号通知用于对这些语法元素进行编码的位的长度,而是推断其等于:

ceil(log2(picsizeinctbsy))位,其中picsizeinctbsy指示图片中ctb的数量。

在一个示例中,可以使用u(v)编码而不是ue(v)编码对用于图片中与索引(k,l)相关联的图块集、单位为ctb数量的图块宽度的语法元素(tile_width_in_ctbsy_minus1[k][l])和用于图片中与索引(k,l)相关联的图块集、单位为ctb数量的图块高度的语法元素(tile_height_in_ctbsy_minus1[k][l])进行固定长度编码。在一个示例中,在这种情况下,可以发送信号通知附加语法元素以指示用于对这些元素进行固定长度编码的位的长度。在另一个示例中,可以不发送信号通知用于对这些语法元素进行编码的位的长度,而是推断其等于:

ceil(log2(picsizeinctbsy))位,其中picsizeinctbsy指示图片中ctb的数量。

在一个示例中,可以不针对图片中的最后一个图块集的最后一个图块集列(num_tile_columns_minus1[num_tile_set_rows_minus1][num_tile_set_columns_minus1])和/或最后一个图块集行(num_tile_rows_minus1[num_tile_set_rows_minus1][num_tile_set_columns_minus1])发送信号通知ctb中的列宽度和/或ctb中的行高度的语法元素。在这种情况下,可以根据ctb中的图片高度和/或ctb中的图片宽度来推断它们的值。

表8示出了根据本文技术的可用于发送信号通知图块结构的参数集的语法的示例。在一个示例中,表8中包括的示例性语法可包括在pps中。在其他示例中,表8中包括的示例性语法可包括在vps或sps中。

表8

参考表8,相应语法元素可以基于以下定义:

num_tile_columns_minus1加1指定划分图片的图块列的数量。num_tile_columns_minus1应在0至picwidthinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_columns_minus1的值等于0。

num_tile_rows_minus1加1指定划分图片的图块行的数量。num_tile_rows_minus1应在0至picheightinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_rows_minus1的值等于0。

当tiles_enabled_flag等于1时,num_tile_columns_minus1和num_tile_rows_minus1都应不等于0。

uniform_spacing_flag等于1指定图块列边界和同样的图块行边界在整个图片上均匀地分布。uniform_spacing_flag等于0的指定图块列边界和同样的图块行边界在整个图片上非均匀分布,而是使用语法元素column_width_minus1[i]和row_height_minus1[i]来明确地发送信号通知。当不存在时,推断uniform_spacing_flag的值等于1。

column_width_minus1[i]加1指定第i个图块列的宽度,单位为编码树块。

row_height_minus1[i]加1指定第i个图块列的高度,单位为编码树块。

loop_filter_across_tiles_enabled_flag等于1指定可跨引用pps的图片中的图块边界执行循环中滤波操作。loop_filter_across_tiles_enabled_flag等于0指定不跨引用pps的图片中的图块边界执行循环中滤波操作。循环中滤波操作包括解块滤波和样本自适应偏移滤波操作。当不存在时,推断loop_filter_across_tiles_enabled_flag的值等于1。

tilesets_enabled_flag等于1指定在引用pps的每个图片中存在多于一个图块集。tilesets_enabled_flag等于0指定在引用pps的每个图片中存在仅一个图块集。

在另一个示例中,tilesets_enabled_flag等于1指示存在语法元素num_tile_set_rows_minus1、num_tile_sets_columns_minus1、num_tile_rows_in_tileset_minus1[k]、num_tile_columns_in_tileset_minus1[l]。tilesets_enabled_flag等于0指示不存在语法元素num_tile_set_rows_minus1、num_tile_sets_columns_minus1、num_tile_rows_in_tileset_minus1[k]、num_tile_columns_in_tileset_minus1[l]。

在一个示例中,当tilesets_enabled_flag等于0时,推断num_tile_set_rows_minus1等于0并且推断num_tile_sets_columns_minus1等于0(即,整个图片是单个图块集)。

在一个示例中,比特流符合性要求,对于cvs内激活的所有pps,tilesets_enabled_flag的值应该是相同的。当tiles_enabled_flag等于0时,推断tilesets_enabled_flag等于0。

在另一个示例中,比特流符合性要求,当tiles_enabled_flag等于0时,tilesets_enabled_flag应等于0。

num_tile_set_rows_minus1加1指定划分图片的图块集行的数量。num_tile_set_rows_minus1应在0至num_tile_rows_minus1(包括端值)的范围内。在另一个示例中,num_tile_set_rows_minus1应在0至picheightinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_set_rows_minus1的值等于0。

num_tile_set_columns_minus1加1指定划分图片的图块集列的数量。num_tile_set_columns_minus1应在0至num_tile_columns_minus1(包括端值)的范围内。在另一个示例中,num_tile_set_columns_minus1应在0至picwidthinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_set_columns_minus1的值等于0。

在一个示例中,当tilesets_enabled_flag等于1时,num_tile_set_columns_minus1和num_tile_set_rows_minus1都应不等于0。

num_tile_rows_in_tileset_minus1[k]加1指定与索引(k,l)相关联的图块集中的图块行的数量,其中每个k都在0至num_tile_set_rows_minus1(包括端值)的范围内。num_tile_rows_in_tileset_minus1[k]应在0至num_tile_rows_minus1(包括端值)的范围内。在另一个示例中,num_tile_rows_in_tileset_minus1[k]应在0至picheightinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_rows_in_tileset_minus1[k]的值等于num_tile_rows_minus1。在一个示例中,当不存在时,推断num_tile_rows_in_tileset_minus1[k]的值等于0。

在一个示例中,比特流符合性要求,对于k在0至num_tile_set_rows_minus1(包括端值)的范围内,所有(num_tile_rows_in_tileset_minus1[k]+1)的总和等于(num_tile_rows_minus1+1)。

在另一个示例中,num_tile_rows_minus1[k]应在0至picheightinctbsy-num_tile_set_rows_minus1-1(包括端值)的范围内。

num_tile_columns_in_tileset_minus1[l]加1指定与索引(k,l)相关联的图块集中的图块行的数量,其中每个l都在0至num_tile_set_columns_minus1(包括端值)的范围内。num_tile_columns_in_tileset_minus1[l]应在0至num_tile_columns_minus1(包括端值)的范围内。在另一个示例中,num_tile_columns_in_tileset_minus1[l]应在0至picwidthinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_columns_in_tileset_minus1[l]的值等于num_tile_columns_minus1。在一个示例中,当不存在时,推断num_tile_columns_in_tileset_minus1[l]的值等于0。

在一个示例中,比特流符合性要求,对于l在0至num_tile_set_columns_minus1(包括端值)的范围内,所有(numtiiccolumnsintilesctminus1[l]+1)的总和等于(num_tile_columns_minus1+1)。

在另一个示例中,num_tile_columns_minus1[l]应在0至picwidthinctbsy-num_tile_set_columns_minus1-1(包括端值)的范围内。

在一个示例中,可以在pps中发送信号通知图块结构语法(即,来自itu-th.265的语法元素),并且可以在sps中发送信号通知新提出的图块集相关语法。

在一个示例中,当如上所述在pps中发送信号通知语法时,可以针对图块集的范围定义以下各项:

令图片集ppsassociatedpicset是以解码顺序连续排列、并且在片段标头中激活了相关联pps的所有图片的集(通过包括slice_pic_parameter_set_id)。那么,在pps中发送信号通知的图块集的范围是图片集ppsassociatedpicset。

在另一个示例中:

在pps_pic_parameter_set_id值等于ppsvaia值的pps中发送信号通知的图块集的范围是以解码顺序连续排列并且其片段标头的slice_pic_parameter_set_id值等于ppsvaia的图片集,并且以解码顺序排列的该图片集之前和之后的图片的slice_pic_parameter_set_id等于不等于ppsvaia。在编码视频序列中可存在多个此类集。

在一个示例中,编码树块光栅和图块扫描转换过程可以如下:

列表colwidth[k][l][i]指定与索引(k,l)相关联的图块集的第i个图块列的宽度,单位为ctb,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且i在0至num_tile_columns_in_tileset_minus1[l](包括端值)的范围内,该列表如下导出:

列表rowheight[k][l][j]指定与索引(k,l)相关联的图块集的第j个图块行的高度,单位为ctb,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且j在0至num_tile_rows_in_tileset_minus1[k](包括端值)的范围内,该列表如下导出:

在另一个示例中,上述推导可以如下执行:

numtilesets=(num_tile_set_rows_minus1+1)*(num_tile_set_columns_minus1+1);

列表colwidth[k][l][i]指定与索引(k,l)相关联的图块集的第i个图块列的宽度,单位为ctb,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且i在0至num_tile_columns_in_tileset_minus1[l](包括端值)的范围内,该列表如下导出:

在另一个示例中,上述推导可以如下执行:

numtilesets=(num_tile_set_rows_minus1+1)*(num_tile_set_columns_minus1+1);

列表colwidth[k][l][i]指定与索引(k,l)相关联的图块集的第i个图块列的宽度,单位为ctb,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且i在0至num_tile_columns_in_tileset_minus1[l](包括端值)的范围内,该列表如下导出:

列表rowheight[k][l][j]指定与索引(k,l)相关联的图块集的第j个图块行的高度,单位为ctb,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且j在0至num_tile_rows_in_tileset_minus1[k](包括端值)的范围内,该列表如下导出:

在又一个示例中,上述推导可以如下执行:

列表colwidth[k][l][i]指定与索引(k,l)相关联的图块集的第i个图块列的宽度,单位为ctb,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且i在0至num_tile_columns_in_tileset_minus1[l](包括端值)的范围内,该列表如下导出:

列表rowheight[k][l][j]指定与索引(k,l)相关联的图块集的第j个图块行的高度,单位为ctb,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且j在0至num_tile_rows_in_tileset_minus1[k](包括端值)的范围内,该列表如下导出:

变量numtilesets指示图块集的数量,该变量如下导出:

numtilesets=(num_tile_set_rows_minus1+1)*(num_tile_set_columns_minus1+1)

数组pwctbsy[k][l]、phctbsy[k][l]、psizectbsy[k][l]分别指定与索引(k,l)相关联的图块集的亮度ctb中的图片宽度、亮度ctb中的图片高度、亮度ctb中的图片尺寸,其中k在0至num_tile_setrowsminus1(包括端值)的范围内并且l在0至num_tile_set_columns_minus1(包括端值)的范围内;并且数组ctbaddrrsoffset[k][l]指定与索引(k,l)相关联的图块集的ctb的累积计数,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内并且l在0至num_tile_set_columns_minus1(包括端值)的范围内,这些数组如下导出:

在一个示例中,如上文所述:

picsizeinctbsy将不被设置为等于0,并且将不被更新为picsizeinctbsy+=psizectbsy[k][l]。在这种情况下,如在itu-th.265中如下计算picsizeinctbsy:

picwidthinmincbsy=pic_width_in_luma_samples/mincbsizey

picwidthinctbsy=ceil(pic_width_in_luma_samples+ctbsizey)

picheightinmincbsy=pic_height_in_luma_samples/mincbsizey

picheightinctbsy=ceil(pic_height_in_luma_samplesctbsizey)

picsizeinmincbsy=picwidthinmincbsy*picheightinmincbsy

picsizeinctbsy=picwidthinctbsy*picheightinctbsy

第j个图块集与索引(k,l)如下相关联。第j个图块集可以称为具有索引j的图块集。

给定图块集索引或图块集标识符j和图片中图块集列的数量,k和l如下导出:

k=j/(num_tile_set_columns_minus1+1)

l=j%(num_tile_set_columns_minus1+1)

给定索引k和l以及图片中图块集列的数量,图块集索引或图块集标识符j如下导出:

j=k*(num_tile_set_columns_minus1+1)+l

每个图块集中的图块的数量,其中k在0至num_tile_set_rows_minus1(包括端值)和范围内并且l在0至num_tile_set_columns_minus1(包括端值)和范围内,如下导出:

列表colbd[k][l][i]指定与索引(k,l)相关联的图块集的第i个图块列边界的位置,单位为编码树块,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且i在0至num_tile_columns_in_tileset_minus1[k]+1(包括端值)的范围内,该列表如下导出:

列表rowbd[j]指定与索引(k,l)相关联的图块集的第j个图块行边界的位置,单位为编码树块,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内,l在0至num_tile_set_columns_minus1(包括端值)的范围内,并且j在0至num_tile_rows_in_tileset_minus1[k]+1(包括端值)的范围内,该列表如下导出:

列表ctbaddrrstots[ctbaddrrs]指定从图片的以ctb光栅扫描排序的ctb地址到以图块集和图块扫描排序的ctb地址的转换,其中ctbaddrrs在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

列表ctbaddrtstors[ctbaddrts]指定从以图块扫描排序的ctb地址到图片的以ctb光栅扫描排序的ctb地址的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

for(ctbaddrrs=0;ctbaddrrs<picsizelnctbsy;ctbaddrrs++)

ctbaddrtstors[ctbaddrrstots[ctbaddrrs]=ctbaddrrs

列表tileid[ctbaddrts]指定从以图块扫描排序的ctb地址到图块id的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

在一个示例中,子比特流提取或其他过程可能需要附加计算。在一个示例中,附加计算可如下所示:

对于k在0至num_tile_set_rows_minus1(包括端值)的范围内并且l在0至num_tile_set_columns_minus1(包括端值)的范围内,图块列的数量减1和图块行的数量减1如下导出:

列表tilecolumnpos[l]指定与索引(*,l)的边界相关联的图块集的位置,单位为图块,其中l在0至num_tile_columns_minus1+1(包括端值)的范围内,该列表如下导出:

for(1=0,tilecolumnpos[0]=0;1<=num_tile_set_columns_minus1;1++)

tilecolumnpos[l+1]=tilecolumnpos[1+1]+num_tile_columns_in_tileset_minus1[l]

列表tilerowpos[k]指定与索引(k,*)的边界相关联的图块集的位置,单位为图块,其中k在0至num_tile_rows_minus1+1(包括端值)的范围内,该列表如下导出:

for(k=0,tilerowpos[0]=0;k<=num_tile_set_rows_minus1;k++)

tilerowpos[k+1]=tilerowpos[k+1]+num_tile_rows_in_tileset_minus1[k]

列表colbd[k][1]指定与索引(k,1)相关联的图块集的图块列边界的位置,单位为编码树块,并且其中k在0至num_tile_set_rows_minus1(包括端值)的范围内并且1在0至num_tile_set_columns_minus1(包括端值)的范围内,并且

列表rowbd[k][l]指定与索引(k,1)相关联的图块集的图块行边界的位置,单位为编码树块,其中k在0至num_tile_set_rows_minus1(包括端值)的范围内并且1在0至num_tile_set_columns_minus1(包括端值)的范围内,这些列表如下导出:

表9示出了可用于发送信号通知信息的示例性片段分段标头,使得可以根据本文的技术独立地处理每个图块集和图块集内的图块。在这种情况下,片段总是包括单个完整的图块集。在这种情况下,在片段标头(其可替代地称为图块集标头或分段标头或此类其他类似名称)中完成以下信令:

表9

参考表9,应当注意,语法元素tile_set_id、num_entry_point_offsets、offset_len_minus1和entry_point_offset_minus1可以基于以下定义:

tile_set_id指定该图块集的图块集标识符。给定图块集索引k和l以及图片中图块集列的数量,图块集索引或图块集标识符j如下导出:

j=k*((num_tile_set_columns_minus1+1)+l

图块集标识符可替代地称为图块集索引。tile_set_id语法元素的长度是ceil(log2(numtilesets))位。

num_entry_point_offsets、offset_len_minus1和entry_offset_minus1[i]可具有与itu-th.265中提供的那些语法元素类似的语义。

在一个示例中,当tiles_enabled_flag等于1时导出以下内容:

如果tilesets_enabled_flag等于1:

offsetinfopresent=1

numoffsets=numtilesintileset[tile_set_id]-1

否则(即,如果tilesets_enabled_flag等于0):

offsetinfopresent=(num_entry_point_offsets?1:0)

numoffsets=num_entry_offsets

当tiles_enabled_flag等于0时:offsetinfopresent=0,numoffsets=0

在另一个示例中,表10示出了可用于发送信号通知信息的示例性片段分段标头,使得可以根据本文的技术独立地处理每个图块集和图块集内的图块。在这种情况下,片段可以包括整数个完整的图块集。在这种情况下,在片段标头(其可替代地称为图块集标头或分段标头或此类其他类似名称)中完成以下信令:

表10

参考表10,应当注意,语法元素tile_set_id、num_entry_point_offsets、offset_len_minus1、和entry_point_offset_minus1可以基于以下定义:

tile_set_id指定该图块集的图块集标识符。给定图块集索引k和1以及图片中图块集列的数量,图块集索引或图块集标识符j如下导出:

j=k*((num_tile_set_columns_minus1+1)+1

图块集标识符可替代地称为图块集索引。

tile_set_id语法元素的长度是ceil(log2(numtilesets))位。

num_tile_set_ids_minus1加1指定片段中存在的图块集的数量(以图块集的光栅扫描顺序排列)。num_tile_set_ids_minus1语法元素的长度是ceil(log2(numtilesets-1))位。

当tiles_enabled_flag等于1时导出以下内容:

如果tilesets_enabled_flag等于1:

offsetinfopresent=1

for(i=tile_set_id,numoffsets=0;i<(tile_set_id+num_tile_set_ids_minus1+1);i++)

{numoffsets+=numtiiesintileset[i]}

numoffsets=numoffsets-1;

否则(即,如果tilesets_enabled_flag等于0):

offsetinfopresent=(num_entry_point_offsets?1:0)

numoffsets=num_entry_offsets

当tiles_enabled_flag等于0时:offsetinfopresent=0,numoffsets=0

应当注意,“片段分段”可以替代地称为“片段”或“图块集”或“分段”或“多ctu组”或“图块组”或“图块列表”或“图块集合”等。因此,在一些情况下,这些词语可互换使用。另外,类似命名的数据结构名称是可互换的。应当注意,“片段分段标头”可以替代地被称为“片段标头”或“图块集标头”或“分段标头”或“多ctu组标头”或“图块组标头”或“图块列表标头”或“图块集合标头”等。因此,这些词语可互换使用。另外,在一些情况下,类似命名的数据结构名称可互换使用。

表11示出了根据本文技术的可用于发送信号通知图块结构的参数集的语法的示例。在一个示例中,表11中包括的示例性语法可包括在pps中。在其他示例中,表11中包括的示例性语法可包括在vps或sps或其他参数集中。在其他示例中,表11中包括的示例性语法可包括在图块组标头或片段标头中。

表11

参考表11,相应语法元素可以基于以下定义:

tilesets_enabled_flag等于1指定在引用参数集的每个图片中存在多于一个图块集。tilesets_enabled_flag等于0指定在引用参数集的每个图片中存在仅一个图块集。在变型中:tilesets_enabled_flag等于0可以指定在参考pps的每个图片中,每个图块都是图块集。

比特流符合性要求,对于cvs内激活的所有pps,tilesets_enabled_flag的值应该是相同的。当tiles_enabled_flag等于0时,推断tilesets_enabled_flag等于0。

num_tile_sets_in_pic_minus1加1指定图片中图块集的数量。

top_left_tile_id指定位于第i个图块集的左上角的图块的图块id。top_left_tile_id[i]的长度是ceil(log2(num_tilesets_in_pic_minus1+1))位。对于任意不等于j的i,top_left_tile_id[i]的值应不等于top_left_tile_id[j]的值。

num_tile_rows_in_tileset_minus1[i]加1指定第i个图块集中图块行的数量,其中每个i都在0至(num_tile_sets_in_pic_minus1)(包括端值)的范围内。num_tile_rows_in_tileset_minus1[i]应在0至num_tile_rows_minus1(包括端值)的范围内。num_tile_rows_in_tileset_minus1[i]的长度是ceil(log2(num_tile_rows_minus1+1))位。

当不存在时,推断num_tile_rows_in_tileset_minus1[i]的值等于0。

在变型中,当不存在时,推断num_tile_rows_in_tileset_minus1[i]的值等于num_tile_rows_minus1。

num_tile_columns_in_tileset_minus1[l]加1指定第i个图块集中图块列的数量,其中每个i都在0至(num_tile_sets_in_pic_minus1)(包括端值)的范围内。num_tile_columns_in_tileset_minus1[l]应在0至num_tile_columns_minus1(包括端值)的范围内。num_tile_columnss_in_tileset_minus1[i]的长度是ceil(log2(num_tile_columns_minus1+1))位。

当不存在时,推断num_tile_columns_in_tileset_minus1[l]的值等于0。

在变型中,当不存在时,推断num_tile_columns_in_tileset_minus1[l]的值等于num_tile_columns_minus1。

在变型中,对num_tile_rows_m_tileset_minus1[i]和num_tile_columns_in_tileset_minus1[l]进行ue(v)编码。

在变型中,一个或两个单独的附加语法元素发送信号通知用于num_tile_rows_in_tileset_minus1[i]和/或num_tile_columns_in_tileset_minus1[l]的位的数量。

表12示出了根据本文技术的可用于发送信号通知图块结构的参数集的语法的示例。在一个示例中,表12中包括的示例性语法可包括在pps中。在其他示例中,表12中包括的示例性语法可包括在vps或sps或其他参数集中。在其他示例中,表12中包括的示例性语法可包括在图块组标头或片段标头中。

表12

参考表12,相应语法元素可以基于上文提供的定义和以下定义:

remaining_tiles_tileset_flag等于1指定图片中除了在由语法元素top_left_tile_id[i]、num_tile_rows_in_tileset_minus1[i]和num_tile_columns_in_tileset_minus1[i]发送信号通知的(num_tilesets_in_pic_minus1-1)个图块集中明确指定的那些图块之外的所有剩余图块组成最后一个图块集。remaining_tiles_tileset_flag等于0指定通过发送信号通知语法元素top_left_tile_id[i]、num_tile_rows_in_tileset_minus1[i]和num_tile_columns_in_tileset_minus1[i]来明确指定所有num_tilesets_in_pic_minus1个图块集。

num_tile_rows_in_tileset_minus1[i]加1指定第i个图块集中图块行的数量,其中每个i都在0至(num_tile_sets_in_pic_minus1+!remaining_tiles_tileset_flag-l)(包括端值)的范围内。num_tile_rows_in_tileset_minus1[i]应在0至num_tile_rows_minus1(包括端值)的范围内。num_tile_rows_in_tileset_minus1[i]的长度是ceil(log2(num_tile_rows_minus1+1))位。

当不存在时,推断num_tile_rows_in_tileset_minus1[i]的值等于0。

在变型中,当不存在时,推断num_tile_rows_in_tileset_minus1[i]的值等于num_tile_rows_minus1。

num_tile_columns_in_tileset_minus1[l]加1指定第i个图块集中图块列的数量,其中每个i都在0至(num_tile_sets_in_pic_minus1+!remainmg_tiles_tileset_flag-1)(包括端值)的范围内。num_tile_columns_in_tileset_minus1[l]应在0至num_tile_columns_minus1(包括端值)的范围内。num_tile_columnss_in_tileset_minus1[i]的长度是ceil(log2(num_tile_columns_minus1+1))位。

当不存在时,推断num_tile_columns_in_tileset_minus1[l]的值等于0。

在变型中,当不存在时,推断num_tile_columns_in_tileset_minus1[l]的值等于num_tile_columns_minus1。

在变型示例中,比特流符合性要求,图片中的每个图块应属于且仅属于一个图块集,其中图块集在0至num_tile_sets_minus1(包括端值)的范围内。

表12a示出了根据本文技术的可用于发送信号通知图块结构的参数集的语法的示例。在一个示例中,表12a中包括的示例性语法可包括在pps中。在其他示例中,表12a中包括的示例性语法可包括在vps或sps或其他参数集中。在其他示例中,表12a中包括的示例性语法可包括在图块组标头或片段标头中。

表12a

参考表12a,相应语法元素可以基于上文提供的定义。

表13示出了根据本文技术的可用于发送信号通知图块结构的参数集的语法的示例。在一个示例中,表13中包括的示例性语法可包括在pps中。在其他示例中,表13中包括的示例性语法可包括在vps或sps或其他参数集中。在其他示例中,表13中包括的示例性语法可包括在图块组标头或片段标头中。

表13

参考表13,相应语法元素可以基于上文提供的定义和以下定义:

bottom_right_tile_id[i]指定位于第i个图块集的右下角的图块的图块id。bottom_right_tile_id[i]的长度是ceil(log2(num_tilesets_in_pic_minus1+1))位。对于任意不等于j的i,bottom_right_tile_id[i]的值应不等于bottom_right_tile_id[j]的值。

表14示出了根据本文技术的可用于发送信号通知图块结构的参数集的语法的示例。在一个示例中,表14中包括的示例性语法可包括在pps中。在其他示例中,表14中包括的示例性语法可包括在vps或sps或其他参数集中。在其他示例中,表14中包括的示例性语法可包括在图块组标头或片段标头中。

表14

参考表14,相应语法元素可以基于上文提供的定义。

参考表11至表14,表14a示出了图块组标头的示例性语法。

表14a

参考表14a,相应语法元素可以基于上文提供的定义和以下定义:

tile_set_idx指定该图块集的图块集索引。tile_set_idx语法元素的长度是ceil(log2(numtilesets))位。

参考表11,表15示出了图块组数据的示例性语法。

表15

参考表15,在一个示例中,从以图块扫描排序的ctb地址到图块id可如下转换:

参考表12至表14,表16示出了图块组数据的示例性语法。

表16

参考表12至表14,表16a示出了图块组数据的另一个示例性语法。表16和表16a之间的主要差异在于一些语法元素被导出的变量替换。

表16a

参考表12和表16和表16a,在一个示例中,从以图块扫描排序的ctb地址到图块id可如下转换:

参考表12a和表16和表16a,在一个示例中,从以图块扫描排序的ctb地址到图块id可如下转换:

参考表13和表16和表16a,在一个示例中,从以图块扫描排序的ctb地址到图块id可如下转换:

列表tileid[ctbaddrts]指定从以图块扫描排序的ctb地址到图块id的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,并且列表numctusintile[tileidx]指定从图块索引到图块中ctu的数量的转换,其中tileidx在0至picsizeinctbsy-1(包括端值)的范围内,这些列表如下导出:

参考表14和表16和表16a,在一个示例中,从以图块扫描排序的ctb地址到图块id可如下转换:

列表tileid[ctbaddrts]指定从以图块扫描排序的ctb地址到图块id的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,并且列表numctusintile[tileidx]指定从图块索引到图块中ctu的数量的转换,其中tileidx在0至picsizeinctbsy-1(包括端值)的范围内,这些列表如下导出:

在一个示例中,可以发送信号通知指示每个图块组包括仅一个图块的标记。针对图块组标头中的图块组中图块的数量发送信号通知语法元素可能以该标记作为条件。这提供了位节省。表17示出了可用于发送信号通知包括指示每个图块组由仅一个图块组成的标记的图块结构的图片参数集的语法的示例。

表17

参考表17,相应语法元素可以基于上文提供的定义和以下定义:

transform_skip_enabled_flag等于1指定残差编码语法中可能存在transform_skip_flag。transform_skip_enabled_flag等于0指定残差编码语法中不存在transform_skip_flag。

single_tile_in_pic_flag等于1指定在引用pps的每个图片中存在仅一个图块。single_tile_in_pic_flag等于0指定在引用pps的每个图片中存在多于一个图块。

比特流符合性要求,对于cvs内激活的所有pps,single_tile_in_pic_flag的值应该是相同的。

one_tile_per_tile_group等于1指定每个图块组包括一个图块。one_tile_per_tile_group等于0指定图块组可包括多于一个图块。

在变型中:

one_tile_per_tile_group等于1指定每个图块组包括一个图块。one_tile_per_tile_group等于0指定至少一个图块组包括多于一个图块。

tile_column_width_minus1加1指定第i个图块列的宽度,单位为编码树块。

tile_row_height_minus1[i]加1指定第i个图块列的高度,单位为编码树块。

参考表17,表18示出了图块组标头的示例性语法。

表18

参考表18,相应语法元素可以基于上文提供的定义和以下定义:

当存在时,图块组标头语法元素tile_group_pic_parameter_set_id的值在编码图片的所有图块组标头中应相同。

tile_group_pic_parameter_set_id指定当前使用的pps的pps_pic_parameter_set_id的值。tile_group_pic_parameter_set_id的值应在0至63(包括端值)的范围内。

tile_group_address指定图块组中第一图块的图块地址。tile_group_address的长度是ceil(log2(numtilesinpic))位。tile_group_address的值应在0至numtilesinpic-1(包括端值)的范围内,并且tile_group_address的值应不等于同一编码图片的任何其他编码图块组nal单元的tile_group_address的值。当tile_group_address不存在时,推断其等于0。

num_tiles_in_tile_group_minus1加1指定图块组中图块的数量。num_tiles_in_tile_group_minus1的值应在0至numtilesinpic-1(包括端值)的范围内。当不存在时,推断num_tiles_in_tile_group_minus1的值等于0。

在变型中,使用固定长度编码(即,u(v))而不是可变长度编码(即,ue(v))来发送信号通知图块组中的图块的数量(减1)的语法元素num_tiles_in_tile_group_minus1。这可允许在系统级进行更容易的解析。因此,num_tiles_in_tile_group_minus1可基于以下定义:

num_tiles_in_tile_group_minus1加1指定图块组中图块的数量。num_tiles_in_tile_group_minus1的长度是ceil(log2(numtilesinpic))位。当不存在时,推断num_tiles_in_tile_group_minus1的值等于0。

在一个示例中,发送信号通知图块组中图块的数量可以基于single_tile_in_pic_flag语法元素而不是基于numtileinpic导出的变量。使用语法元素发送信号通知使得图块组标头的解析更容易,因为不需要导出和使用附加变量来决定是否包括语法元素。表19示出了该示例的图块组标头的示例性语法。

表19

参考表19,相应语法元素可以基于上文提供的定义。

表20示出了图块组标头的另一个示例性语法。

表20

参考表20,相应语法元素可以基于上文提供的定义和以下定义。

tile_set_idx指定该图块集的图块集索引。tile_set_id语法元素的长度是ceil(log2(numtilesets))位。

如上所述,itu-th.265定义了启用运动约束图块集的信令,其中运动约束图块集可以包括图块集,对于该图块集,图片间预测依赖性限于参考图片中的并置的图块集。在一个示例中,可以发送信号通知指示图块集是否为mcts的标记。表21示出了可以用于发送信号通知包括指示图块集是否是可以发送信号通知的mcts的标记的图块结构的图片参数集的语法的示例。

表21

参考表21,相应语法元素可以基于以下定义:

pps_pic_parameter_set_id标识pps以供其他语法元素引用。pps_pic_parameter_set_id的值应在0至63(包括端值)的范围内。

pps_seq_parameter_set_id指定活动sps的sps_seq_parameter_set_id的值。pps_seq_parameter_set_id的值应在0至15(包括端值)的范围内。

transform_skip_enabled_flag等于1指定残差编码语法中可能存在transform_skip_flag。transform_skip_enabled_flag等于0指定残差编码语法中不存在transform_skip_flag。

single_tile_in_pic_flag等于1指定在引用pps的每个图片中存在仅一个图块。single_tile_in_pic_flag等于0指定在引用pps的每个图片中存在多于一个图块。

比特流符合性要求,对于cvs内激活的所有pps,single_tile_in_pic_flag的值应该是相同的。

num_tile_columns_minus1加1指定划分图片的图块列的数量。num_tile_columns_minus1应在0至picwidthinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_columns_minus1的值等于0。

num_tile_rows_minus1加1指定划分图片的图块行的数量。num_tile_rows_minus1应在0至picheightinctbsy-1(包括端值)的范围内。当不存在时,推断num_tile_rows_minus1的值等于0。

变量numtilesinpic被设置为等于(num_tile_columns_minus1+1)*(num_tile_rows_minus1+1)。

当single_tile_in_pic_flag等于0时,numtilesinpic应大于0。

tile_id_len_minus1加1指定用于表示pps中的语法元素tile_id_val[i][j]、top_left_tile_id[i]和bottom_right_tile_id[i](当存在时)的位的数量。tile_id_len_minus1的值应在ceil(log2(numtilesinpic)至15(包括端值)的范围内。

explicit_tile_id_flag等于1指定明确地发送信号通知每个图块的图块id。explicit_tile_id_flag等于0指定不明确地发送信号通知图块id。

tile_id_val[i][j]指定第i个图块行和第j个图块列的图块的图块id。tile_id_val[i][j]的长度是tile_id_len_minus1+1位。

对于0至num_tile_columns_minus1(包括端值)的范围内的任意整数m,以及0至num_tile_rows_minus1(包括端值)的范围内的任意整数n,当i不等于m或j不等于n时,tile_id_val[i][j]应不等于tile_id_val[m][n],并且当j*(num_tile_columns_minus1+1)+i小于n*(num_tile_columns_minus1+1)+m时,tile_id_val[i][j]应小于tile_id_val[m][n]。

uniform_tile_spacing_flag等于1指定图块列边界和同样的图块行边界在整个图片上均匀地分布。uniform_tile_spacing_flag等于0的指定图块列边界和同样的图块行边界在整个图片上非均匀分布,而是使用语法元素tile_column_width_minus1[i]和tile_row_height_minus1[i]来明确地发送信号通知。当不存在时,推断uniform_tile_spacing_flag的值等于1。

tile_column_width_minus1[i]加1指定第i个图块列的宽度,单位为ctb。

tile_row_height_minus1[i]加1指定第i个图块列的高度,单位为ctb。通过调用ctb光栅和图块扫描转换过程导出以下变量:

-列表colwidth[i],其指定第i个图块列的宽度,单位为ctb,其中i在0至num_tile_columns_minus1(包括端值)的范围内,

-列表rowheight[j],其指定第j个图块行的高度,单位为ctb,其中j在0至num_tile_rows_minus1(包括端值)的范围内,

-列表colbd[i],其指定第i个图块列边界的位置,单位为ctb,其中i在0至num_tile_columns_minus1+1(包括端值)的范围内,

-列表rowbd[j],其指定第j个图块行边界的位置,单位为ctb,其中j在0至num_tile_rows_minus1+1(包括端值)的范围内,

-列表ctbaddrrstots[ctbaddrrs],其指定从图片的以ctb光栅扫描排序的ctb地址到以图块扫描排序的ctb地址的转换,其中ctbaddrrs在0至picsizeinctbsy-1(包括端值)的范围内,

-列表ctbaddrtstors[ctbaddrts],其指定从以图块扫描排序的ctb地址到图片的以ctb光栅扫描排序的ctb地址的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,

-列表tileid[ctbaddrts],其指定从以图块扫描排序的ctb地址到图块id的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,

-列表numctusintile[tileidx],其指定从图块索引到图块中ctu的数量的转换,其中tileidx在0至picsizeinctbsy-1(包括端值)的范围内,

-一组numtilesinpictileid值的集合tileidtoidx[tileid],其指定从图块id到图块索引的转换,和列表firstctbaddrts[tileidx],其指定从图块id到图块中以图块扫描排序的第一ctb的ctb地址的转换,其中tileidx在0至numtilesinpic-1(包括端值)的范围内,

-列表columnwidthinlumasamples[i],其指定第i个图块列的宽度,单位为亮度样本,其中i在0至num_tile_columns_minus1(包括端值)的范围内,

-列表rowheightinlumasamples[j],其指定第j个图块行的高度,单位为亮度样本,其中j在0至num_tile_rows_minus1(包括端值)的范围内。

columnwidthinlumasamplesfi],其中i在0至num_tile_columns_minus1(包括端值)的范围内的,和rowheightinlumasamples[j],其中j在0至num_tile_rows_minus1(包括端值)的范围内,这些列表均应大于0。

tile_set_flag等于0指定每个图块是图块集。tile_set_flag等于1指定图块集由语法元素num_tile_sets_in_pic_minus1、top_left_tile_id[i]和bottom_right_tile_id[i]明确指定。

在另一个示例中,tile_set_flag等于0指定每个图片是一个图块。

num_tilesets_in_pic_minus1加1指定图片中图块集的数量。num_tilesets_in_pic_minus1的值应在0至(numtilesinpic-1)(包括端值)的范围内。当不存在时,推断num_tilesets_in_pic_minus1等于(numtilesinpic-1)。在另一示例中:当不存在时,推断num_tilesets_in_pic_minus1等于0。

signaled_tile_set_index_flag等于1指定发送信号通知每个图块集的图块集索引。signaled_tile_set_index_flag等于0指定不发送信号通知图块集索引。

remaining_tiles_tileset_flag等于1指定图块集中除了由语法元素top_left_tile_id[i]、num_tile_rows_in_tileset_minus1[i]和num_tile_columns_in_tileset_minus1[i]发送信号通知的(num_tilesets_in_pic_minus1-1)个图块集中明确指定的那些图块之外的所有剩余图块

形成最后一个图块集。remaining_tiles_tileset_flag等于0指定通过发送信号通知语法元素elementstop_left_tile_id[i]、num_tile_rows_in_tileset_minus1[i]和num_tile_columns_in_tileset_minus1[i]来明确指定所有num_tilesets_in_pic_minus1个图块集。

top_left_tile_id[i]指定位于第i个图块集的左上角的图块的图块id。top_left_tile_id[i]的长度是tile_id_len_minus1+1位。对于任意不等于j的i,top_left_tile_id[i]的值应不等于top_left_tile_id[j]的值。

bottom_right_tile_id[i]指定位于第i个图块集的右下角的图块的图块id。bottom_right_tile_id[i]的长度是tile_id_len_minus1+1位。

变量numtilerowsinslice[top_left_tile_id[i]]、numtilecolumnsinslice[top_left_tile_id[i]]和numtilesinslice[top_left_tile_id[i]]如下导出:

deltatileidx=tileidtoidx[bottornright_tile_id[i]]-tileidtoidx[top_left_tile_id[i]]

numtilerowsinslice[top_left_tileidti]]=(deltatileidx/(num_tile_columns_minus1+1))+1

numtilecolumnsinslice[top_left_tile_id[i]]=(deltatileidx%(num_tile_columns_minus1+1))+1

numtilesinslice[top_left_tile_id[i]]=numtilerowsinslice[top_left_tile_id[i]]*numtilecolumnsinslice[top_left_tile_id[i]]

is_mcts_flag等于1指定第i个图块集是运动约束图块集。is_mcts_flag等于0指定第i个图块集不是运动约束图块集。

在一个示例中,is_mcts_flag等于0指定第i个图块集可以是也可以不是运动约束图块集。

当第i个图块集是运动约束图块集时,其可以具有一个或多个约束,诸如itu-th.265的条款d.3.30(即,时间运动约束图块集sei消息)中描述的约束。在一个示例中,运动约束图块集可以称为时间运动约束图块集。

tile_set_index[i]指定第i个图块集的图块集索引。tile_set_index[i]语法元素的长度是ceil(log2(num_tile_sets_in_pic_minus1+1))位。当不存在时,对于i在0至num_tile_sets_in_pic_minus1(包括端值)的范围内,推断tile_set_index[i]等于i。

loop_filter_across_tiles_enabled_flag等于1指定可跨引用pps的图片中的图块边界执行循环中滤波操作。loop_filter_across_tiles_enabled_flag等于0指定不跨引用pps的图片中的图块边界执行循环中滤波操作。循环中滤波操作包括解块滤波、样本自适应偏移滤波和自适应环路滤波操作。当不存在时,推断loop_filter_across_tiles_enabled_flag的值等于1。

在一个示例中,可修改表21的对应部分,如下表21a所示:

表21a

其中相应语法元素可以具有如上提供的定义。此外,参考表21,图块组标头的语法可以如下表21b所示。

表21b

参考表21b,相应语法元素可以基于以下语义和定义:

当存在时,图块组标头语法元素tile_group_pic_parameter_set_id的值在编码图片的所有图块组标头中应相同。

tile_group_pic_parameter_set_id指定当前使用的pps的pps_pic_parameter_set_id的值。tile_group_pic_parameter_set_id的值应在0至63(包括端值)的范围内。

tile_set_idx指定该图块集的图块集索引。tile_set_idx语法元素的长度是ceil(log2(num_tile_sets_in_pic_minus1+1))位。

在另一个示例中,tile_set_idx可以称为tile_group_idx并具有如下语义:

tile_group_idx指定该图块集的图块集索引。tile_group_idx语法元素的长度是ceil(log2(num_tile_sets_in_pic_minus1+1))位。

tile_group_type指定根据表21c的图块组的编码类型。

表21c

当nal_unit_type等于irap_nut时,即,图片是irap图片时,tile_group_type应等于2。

log2_diff_ctu_max_bt_size指定可使用二进制分割进行分割的编码块的亮度ctb大小和最大亮度大小(宽度或高度)之间的差值。log2_diff_ctu_max_bt_size的值应在0至ctblog2sizey-mincblog2sizey(包括端值)的范围内。

当log2_diff_ctu_max_bt_size不存在时,推断log2_diff_ctu_max_bt_size的值等于2。

变量minqtlog2sizey、maxbtlog2sizey、minbtlog2sizey、maxttlog2sizey、minttlog2sizey、maxbtsizey、minbtsizey、maxttsizey、minttsizey和maxmttdepth如下导出:

minqtlog2sizey=(tile_group_type==i)?minqtlog2sizeintray:

minqtlog2sizeintery

maxbtlog2sizey=ctblog2sizey-log2_diff_ctu_max_bt_size

minbtlog2sizey=mincblog2sizey

maxttlog2sizey=(tile_group_type==i)?5:6

minttlog2sizey=mincblog2sizcy

minqtsizey=1<<minqtlog2sizey

maxbtsizey=1<<maxbtlog2sizey

minbtsizey=1<<minbtlog2sizey

maxttsizey=1<<maxttlog2sizey

minttsizey=1<<minttlog2sizey

maxmttdepth=(tile_group_type==i)?

max_mtt_hierarchy_depth_intra_tile_groups:

max_mtt_hierarchy_depth_inter_tile_groups

sbtmvp_size_override_flag等于1指定针对当前图块组存在语法元素log2_sbtmvp_active_size_minus2。sbtmvp_size_override_flag等于0指定语法元素1og2_atmvp_active_size_minus2不存在,并且推断log2_sbtmvp_size_active_minus2等于log2_sbtmvp_default_size_minus2。

log2_sbtmvp_active_size_minus2加2指定子块尺寸的值,该值用于驱动当前图块组的基于子块的tmvp的运动参数。当log2_sbtmvp_size_active_minus2不存在时,推断其等于log2_sbtmvp_default_size_minus2。该变量如下导出:

log2sbtmvpsize=log2_sbtmvp_size_active_minus2+2

tile_group_temporal_mvp_enabled_flag指定时间运动矢量预测器是否可以用于帧间预测。如果tile_group_temporal_mvp_enabled_flag等于0,则应约束当前图片的语法元素,使得在对当前图片进行解码时不使用时间运动矢量预测器。否则(tile_group_temporal_mvp_enabled_flag等于1),在对当前图片进行解码时使用时间运动矢量预测器。当不存在时,推断tile_group_temporal_mvp_enabled_flag的值等于0。

mvd_l1_zero_flag等于1指示mvd_coding(x0,y0,1)语法结构未被解析,并且对于compidx=0…1,mvdl1[x0][y0][compidx]被设置为等于0。mvd_l1_zero_flag等于0指示mvd_coding(x0,y0,1)语法结构被解析。

collocated_from_10_flag等于1指定从参考图片列表0导出用于时间运动矢量预测的并置图片。collocated_from_10_flag等于0指定从参考图片列表1导出用于时间运动矢量预测的并置图片。当collocated_from_10_flag不存在时,推断其等于1。

six_minus_max_num_merge_cand指定6减去图块组中支持的合并运动矢量预测(mvp)候选的最大数量。合并mvp候选的最大数量maxnummergecand如下导出:

maxnummergecand=6-six_minus_max_num_merge_cand

maxnummergecand的值应在1至6(包括端值)的范围内。

dep_quant_enabled_flag等于0指定禁用依赖量化。dep_quant_enabled_flag等于1指定启用依赖量化。

sign_data_hiding_enabled_flag等于0指定禁用符号位隐藏。sign_data_hiding_enabled_flag等于1指定启用符号位隐藏。当sign_data_hiding_enabled_flag不存在时,推断其等于0。

offset_len_minus1加1指定entry_point_offset_minus1[i]语法元素的长度,单位为位。offset_len_minus1的值应在0至31(包括端值)的范围内。

entry_point_offset_minus1[i]加1指定第i个入口点偏移,单位为字节,并且由offset_len_minus1加1位表示。片段标头之后的片段数据由numtilesinslice[tile_set_idx]个子集组成,其中子集索引值在0至numtilesinslice[tile_set_idx]-1(包括端值)的范围内。片段数据的第一字节被认为是字节0。当存在时,出于子集识别的目的,将出现在编码片段nal单元的片段数据部分中的防竞争字节计数为片段数据的一部分。子集0由编码片段分段数据的字节0至entry_point_offset_minus1[0](包括端值)组成,子集k(其中k在1至numtilesinslice[tile_set_idx]-2(包括端值)的范围内)由编码片段数据的字节firstbyte[k]至lastbyte[k](包括端值)组成,其中firstbyte[k]和lastbyte[k]定义为:

lastbyte[k]=firstbytefk]+entry_point_offset_minus1[k]

最后一个子集(其中子集索引等于numtilesinslice[tile_set_idx]-1)由编码片段数据的剩余字节组成。

每个子集应由片段中位于同一图块内的所有ctu的所有编码位组成。

进一步参考表21,tile_group_data()的语法可以如表21d中所示。

表21d

参考表21d,相应语法元素可以基于以下定义:

end_of_tile_one_bit应等于1。

应当注意,虽然本文的描述使用术语“片段”和“片段标头”,但是这些术语可以分别替换为术语“图块组”和“图块组标头”。另外,语法元素slice_type可以替换为语法元素tile_group_type。在这种情况下,使用slice_type的条件和其他语法元素可以更改为(使用)tile_group_type。另外,变量numtilesinslice可以替换为语法元素numtilesintilegroup。此外,应当注意,虽然本文所述的示例的描述使用术语“图块集”,但是一次或多次出现的“图块集”可以替换为术语“图块组”。此外,具有包括字词tile_set的名称的语法元素中的一个或多个语法元素可以替换为取代地包括字词tile_group的名称。因此,可对术语进行一个或多个以下更改:

将“图块集”更改为“图块组”。

将“tile_set”更改为“tile_group”

将numtilesinslice更改为numtilesintilegroup

将numtilerowsintilesetminus1更改为numtilerowsintilegroupminus1

将numtilecolumnsintilesetminus1更改为numtilecolumnsintilegroupminus1

将tile_set_idx更改为tile_group_idx

将num_tile_sets_in_pic_minus1更改为num_tile_groups_in_pic_minus1

将signaled_tile_set_index_flag更改为signaled_tile_group_index_flag或更改为explicit_tile_group_index_flag

将remaining_tiles_tileset_flag更改为remaining_tiles_tilegroup_flag

将tile_set_index更改为tile_group_index

表22a和表22b示出了根据本文技术的可用于发送信号通知图块结构的图片参数集的语法的示例。

表22a

表22b

表22c

参考表22a、表22b和表22c,相应语法元素可以基于上文提供的语义和定义以及以下语义和定义:

one_tile_per_tile_group等于1指定引用该pps的每个图块组包括一个图块。one_tile_per_tile_group等于0指定引用该pps的图块组可包括多于一个图块。

在另一个示例中:

one_tile_per_tile_group_flag等于1指定引用pps的每个图块组包含恰好一个图块。one_tile_per_tile_group_flag等于0指定引用pps的每个图块组包含一个或多个图块。

rect_tile_group_flag等于0指定图块组内的图块以光栅扫描顺序排列,并且在pps中不发送信号通知图块组信息。rect_tile_group_flag等于1指定由语法元素num_tile_groups_in_pic_minus1、top_left_tile_id[i]和(当存在时)bottom_right_tile_id[i]明确地发送信号通知矩形图块组信息。

tile_group_flag等于0指定每个图块都是图块集。tile_group_flag等于1指定图块集由语法元素num_tile_groups_in_pic_minus1、top_left_tile_id[i]和bottom_right_tile_id[i]明确指定。

在另一个示例中:

tile_group_flag等于0指定每个图块都是图块集。tile_group_flag等于1指定图块集由语法元素num_tile_groups_in_pic_minus1、top_left_tile_id[i]和bottom_right_tile_id[i]明确指定。

signalled_tile_group_index_length_minus1加1指定用于表示语法元素tile_group_index[i](当存在时)和tile_group_id的位的数量。signalled_tile_group_index_length_minus1的值应在0至15(包括端值)的范围内。

signalled_tile_group_index_flag等于1指定发送信号通知每个图块组的图块集组。signalled_tile_group_index_flag等于0指定不发送信号通知图块组索引。

num_tile_groups_injic_minus1加1指定图片中图块组的数量。num_tile_groups_in_pic_minus1的值应在0至(numtilesinpic-1)(包括端值)的范围内。当不存在时,推断num_tile_groups_in_pic_minus1等于(numtilesinpic-1)。

remaining_tiles_tile_group_flag等于1指定图块集中除了在由语法元素top_left_tile_id[i]、num_tile_rows_in_tile_group_minus1[i]和num_tile_columns_in_ttile_group_minus1[i]发送信号通知的(num_tile_groups_in_pic_minus1·1)个图块集中明确指定的那些图块之外的所有剩余图块组成最后一个图块集。remaining_tiles_tile_group_flag等于0指定通过发送信号通知语法元素elementstop_left_tile_id[i]、num_tile_rows_in_tile_group_minus1[i]和num_tile_columns_in_tile_group_minus1[i]来明确指定所有num_tile_groups_in_pic_minus1个图块集。

top_left_tile_id[i]指定位于第i个图块集的左上角的图块的图块索引。对于任意不等于j的i,top_left_tile_id[i]的值应不等于top_left_tile_id[j]的值。

bottom_right_tile_id[i]指定位于第i个图块集的右下角的图块的图块索引。当one_tile_per_tile_group_flag等于1时,推断bottom_right_tile_id[i]等于top_left_tile_id[i]。

numtilesintilegroup[i]指定图块组中图块的数量,该变量及其相关变量如下导出:

dcltatilcidx[i]=bottom_right_tile_id[i]-top_right_tile_id[i]

numtilerowsintilegroupminus1[i]=(deltatileidx[i]/(num_tile_columns_minus1+1))

numtilccolumnsintilegroupminus1[i]=

(deltatileidx[i]%(num_tile_columns_minus1+1))

numtilesintilegroup[i]=numtilerows[i]*numtilecolumns[i]

tile_group_index[i]指定第i个图块组的图块组索引。tile_group_index[i]语法元素的长度是signalled_tile_set_index_length_minus1+1位。当不存在时,对于每个i在0至num_tile_groups_in_pic_minus1(包括端值)的范围内,推断tile_group_index[i]等于i。

相对于表22a、表22b、表22c、表23a和表23b示出了图块组标头的示例性语法,并且表24示出了图块组数据的示例性语法。

表23a

表23b

表24

参考表23a、表23b和表24,相应语法元素可以基于上文提供的语义和定义以及以下语义和定义:

tile_group_id指定该图块组的图块组id。当signalled_tile_group_index_flag等于1时,tile_group_idx语法元素的长度是signalled_tile_set_index_length_minus1+1位,否则tile_group_idx的长度等于ceil(log2(num_tile_groups_in_pic_minus1+1))位。

在另一个示例中,

tile_group_id指定该图块组的图块组id。tile_group_idx语法元素的长度是signalled_tile_set_index_length_minus1+1位。

offset_len_minus1加1指定entry_point_offset_minus1[i]语法元素的长度,单位为位。offset_len_minus1的值应在0至31(包括端值)的范围内。

entry_point_offset_minus1[i]加1指定第i个入口点偏移,单位为字节,并且由offset_len_minus1加1位表示。片段标头之后的片段数据由rect_tile_group_flag?(numtilesintilegroup[tile_group_id]-1):num_tiles_in_tile_group_minus1+1个子集组成,其中子集索引值在0至rect_tile_group_flag?(numtilesintilegroup[tile_group_id]-1):num_tiles_in_tile_group_minus1(包括端值)的范围内。片段数据的第一字节被认为是字节0。当存在时,出于子集识别的目的,将出现在编码片段nal单元的片段数据部分中的防竞争字节计数为片段数据的一部分。子集0由编码片段分段数据的字节0至entry_point_offset_minus1[0](包括端值)组成,子集k(其中k在1至rect_tile_group_flag?(numtilesintilegroup[tile_group_id]-2):(num_tiles_in_tile_group_minus1-1)(包括端值)的范围内)由编码片段数据的字节firstbyte[k]至lastbyte[k](包括端值)组成,其中firstbyte[k]和lastbyte[k]定义为:

lastbytefk]=firstbyte[k]+entry_point_offset_minus1[k]

最后一个子集(其中子集索引等于rect_tile_group_flag?(numtilesinslicenumtilesintilegrpup[tile_groupset_idx]-1):num_tiles_in_tile_group_minus1)由编码片段数据的剩余字节组成。

参考表22a至表24,在一个示例中,ctb光栅和图块扫描过程可以如下进行:

列表colwidth[i]指定第i个图块列的宽度,单位为ctb,其中i在0至num_tile_columns_minus1(包括端值)的范围内,该列表如下导出:

列表rowheight[j]指定第j个图块行的高度,单位为ctb,其中j在0至num_tile_rows_minus1(包括端值)的范围内,该列表如下导出:

列表colbd[i]指定第i个图块列边界的位置,单位为ctb,其中i在0至num_tile_columns_minus1+1(包括端值)的范围内,该列表如下导出:

for(colbd[0]=0,i=0;i<num_tile_columns_minus1;i++)

colbd[i+1]=colbd[i]+colwidth[i]

列表rowbd[j]指定第j个图块行边界的位置,单位为ctb,其中j在0至num_tile_rows_minus1+1(包括端值)的范围内,该列表如下导出:

for(rowbd[0]=0,j=0;j<=num_tile_rows_minus1;j++)

rowbd[j+1]=rowbd[j]+rowheight[j]

列表ctbaddrrstots[ctbaddrrs]指定从图片的以ctb光栅扫描排序的ctb地址到以图块扫描排序的ctb地址的转换,其中ctbaddrrs在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

列表ctbaddrtstors[ctbaddrts]指定从以图块扫描排序的ctb地址到图片的以ctb光栅扫描排序的ctb地址的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

for(ctbaddrrs=0;ctbaddrrs≥picsizelnctbsy;ctbaddrrs++)

ctbaddrtstors[ctbaddrrstots[ctbaddrrs]]=ctbaddrrs

列表tileid[ctbaddrts]指定从以图块扫描排序的ctb地址到图块id的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

列表numctusintile[tileidx]指定从图块索引到图块中ctu的数量的转换,其中tileidx在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

for(j=0,tileidx=0;j<num_tile_rows_minus1;j++)

for(i=0;i<=num_tile_columns_minus1;i++,tileidx++)

numctuslntile[tileldx]=colwidth[i]*rowheight[j]

一组numtilesinpictileid值的集合tileidtoidx[tileid]指定从图块id到图块索引的转换,并且列表firstctbaddrts[tileidx]指定从图块id到图块中以图块扫描排序的第一ctb的ctb地址的转换,其中tileidx在0至numtilesinpic-1(包括端值)的范围内,这些列表如下导出:

toplefttileid[num_tile_groups_in_pic_minusl]=tlid;

bottomrighttileld[num_tile_groups_in_pic_minusi]=brid;

numtilerowsintilegroupminusl[num_tile_groups_in_pic_minusl]=(brid-tlid)/(num_tile_columns_minus1+1);

numtilecolumnsintilegroupminusl[num_tile_groups_in_pic_minus1]=(brid-tlid)%(num_tile_columns_minus1+1);

numtilesintilegroup[num_tile_groups_in_pic_minus1]=

(intilegroupnumtilerowsintilegroupminus1[num_tile_groups_in_pic_minus1]+1)*(numtilecolumnsintilegroupminusl[num_tile_sets_in_pic_minus1]+1)

columnwidthinlumasamples[i]指定第i个图块列的宽度,单位为亮度样本,其值被设置为等于colwidth[i]<<ctblog2sizey,其中i在0至num_tile_columns_minus1(包括端值)的范围内。

rowheightinlumasamples[j]指定第j个图块行的高度,单位为亮度样本,其值被设置为等于rowheight[j]<<ctblog2sizey,其中j在0至num_tile_rows_minus1(包括端值)的范围内。

表25示出了根据本文技术的可用于发送信号通知图块结构的图片参数集的语法的示例。

表25

参考表25,相应语法元素可以基于上文提供的语义和定义以及以下语义和定义:

single_tile_per_tile_group等于1指定引用该pps的每个图块组包括一个图块。single_tile_per_tile_group等于0指定引用该pps的图块组可包括多于一个图块。当不存在时,推断single_tile_per_tile_group等于1。

rect_tile_group_flag等于0指定每个图块组内的图块以光栅扫描顺序排列并且在pps中不发送信号传输图块组信息。rect_tile_group_flag等于1指定每个图块组内的图块覆盖图片的矩形区域并且在pps中发送信号传输图块组信息。当single_tile_per_tile_group_flag等于1时,推断rect_tile_group_flag等于1。

num_tile_groups_in_pic_minus1加1指定引用pps的每个图片中图块组的数量。num_tile_groups_in_pic_minus1的值应在0至(numtilesinpic-1)(包括端值)的范围内。当不存在并且rect_tile_group_flag等于1时,推断num_tile_groups_in_pic_minus1的值等于(numtilesinpic-1)。

top_left_tile_idx[i]指定位于第i个图块组的左上角的图块的图块索引。对于任意不等于j的i,top_left_tile_idx[i]的值应不等于top_left_tile_idx[j]的值。当不存在时,并且当rect_tile_group_flag等于1时,推断top_left_tile_idx[i]等于i。top_left_tile_idx[i]语法元素的长度是ceil(log2(numtilesinpic)位。

bottom_right_tile_idx[i]指定位于第i个图块组的右下角的图块的图块索引。当single_tile_per_tile_group_flag等于1时,推断bottom_right_tile_idx[i]等于top_left_tile_idx[i]。bottom_right_tile_idx[i]语法元素的长度是ceil(log2(numtilesinpic))位。比特流符合性要求,任何特定图块应仅被包括在一个图块组中。

numtilesintilegroup[i]指定图块组中图块的数量,该变量及其相关变量如下导出:

deltatileidx[i]=bottom_right_tile_idx[i]-top_left_tile_idx[i]

numtilerowsintitegroupminus1[i]=(deltatileidx[i]/(num_tile_columns_minus1+1))

numtilecolumnsintilegroupminus1[i]=

(deltatileidx[i]%(num_tile_columns_minus1+1))

numtilesintilegroup[i]=(numtilerowsintilegroupminus1[i]+1)*(numtilecolumnsintilegroupminus1[i]+1)

signalled_tile_group_id_flag等于1指定发送信号通知每个图块组的图块组id。signalled_tile_group_index_flag等于0指定不发送信号通知图块组id。当rect_tile_group_flag等于0时,推断signalled_tile_group_index_flag的值等于0。

signalled_tile_group_id_length_minus1加1指定用于表示语法元素tile_group_id[i]的位的数量(当存在时),并且当rect_tile_group_flag等于1时,指定图块组标头中的语法元素tile_group_address。signalled_tile_group_index_length_minus1的值应在0至15(包括端值)的范围内。当不存在时,并且当rect_tile_group_flag等于1时,推断signalled_tile_group_id_length_minus1的值等于ceil(log2(num_tile_groups_in_pic_minus1+1))-1。

tile_group_id[i]指定第i个图块组的图块组id。tile_group_id[i]语法元素的长度是signalled_tile_group_id_length_minus1+1位。当不存在时,并且当rect_tile_group_flag等于1时,对于每个i在0至num_tile_groups_m_pic_minus1(包括端值)的范围内,推断tile_group_id[i]等于i。

参考表25,表26示出了图块组标头的示例性语法,并且表27示出了图块组数据的示例性语法。

表26

表27

参考表26和表27,相应语法元素可以基于上文提供的语义和定义以及以下语义和定义:

tile_group_address指定图块组中第一图块的图块地址。如果rect_tile_group_flag等于0,则以下适用:

-图块地址是由公式6至7指定的图块id。

-tile_group_address的长度是ceil(log2(numtilesinpic))位。

-tile_group_address的值应在0至numtilesinpic-1(包括端值)的范围内。否则(rect_tile_group_flag等于1),则以下适用:

-图块地址是图块组的图块组id。

-tile_group_address的长度是signalled_tile_group_index_length_minus1+1位。

-如果signalled_tile_group_id_flag等于0,则tile_group_address的值应在0至num_tile_groups_in_pic_minus1(包括端值)的范围内。否则,tile_group_address的值应在0至2(signalled_tile_group_index_length_minus1+1)-1(包括端值)的范围内。

tile_group_address的值应不等于同一编码图片的任何其他编码图块组nal单元的tile_group_address的值。

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

变量numtilesintilegroup指定图块组中图块的数量,变量tgtileidx[i]指定图块组中第i个图块的图块索引,这些变量如下导出:

num_tiles_in_tile_group_minus1加1指定图块组中图块的数量。num_tiles_in_tile_group_minus1的值应在0至numtilesinpic-1(包括端值)的范围内。当不存在时,如果single_tile_per_tile_group_flag等于1,则推断num_tiles_in_tile_group_minus1的值等于0。当不存在时,当rect_tile_group_flag等于1且single_tile_per_tile_group_flag等于0时,推断num_tiles_in_tile_group_minus1的值等于numtilesintilegroup[tile_group_address]-1。

在另一个示例中,可如下指定num_tiles_in_tile_group_minus1的推断规则:

当不存在时,如下推断num_tiles_in_tile_group_minus1具有的值:

·如果single_tile_per_tile_group_flag等于1,则推断num_tiles_intile_groupminus1等于0。

·如果single_tile_per_tile_groupflag等于0并且rect_tile_group_flag等于1,则推断num_tiles_in_tile_group_minus1等于numtilesintilegroup[tile_group_address]-1。

offset_len_minus1加1指定entry_point_offset_minus1[i]语法元素的长度,单位为位。offset_len_minus1的值应在0至31(包括端值)的范围内。

entry_point_offeet_minus1[i]加1指定第i个入口点偏移,单位为字节,并且由offset_len_minus1加1位表示。片段标头之后的片段数据由numtilesincurrtilegroup个子集组成,其中子集索引值在0至numtilesincurrtilegroup-1(包括端值)的范围内。片段数据的第一字节被认为是字节0。当存在时,出于子集识别的目的,将出现在编码片段nal单元的片段数据部分中的防竞争字节计数为片段数据的一部分。子集0由编码片段分段数据的字节0至entry_point_offset_minus1[0](包括端值)组成,子集k(其中k在1至numtilesincurrtilegroup-2(包括端值)的范围内)由编码片段数据的字节firstbyte[k]至lastbyte[k](包括端值)组成,其中firstbyte[k]和lastbyte[k]定义为:

lastbyte[k]=firstbytefk]+entry_point_offset_minus1[k]

最后一个子集(其中子集索引等于numtilesincurrtilegroup-1)由编码片段数据的剩余字节组成。

参考表25至表27,在一个示例中,ctb光栅和图块扫描过程可以如下进行:

列表colwidth[i]指定第i个图块列的宽度,单位为ctb,其中i在0至num_tile_columns_minus1(包括端值)的范围内,该列表如下导出:

列表rowheight[j]指定第j个图块行的高度,单位为ctb,其中j在0至num_tile_rows_minus1(包括端值)的范围内,该列表如下导出:

列表colbd[i]指定第i个图块列边界的位置,单位为ctb,其中i在0至num_tile_columns_minus1+1(包括端值)的范围内,该列表如下导出:

for(colbd[0]=0,i=0;i<=num_tile_columns_minusl;i++)

colbd[i+1]=colbd[i]+colwidth[i]

列表rowbd[j]指定第j个图块行边界的位置,单位为ctb,其中j在0至num_tile_rows_minus1+1(包括端值)的范围内,该列表如下导出:

for(rowbd[0]=0,j=0;j<=num_tile_rows_minus1;j++)

rowbd[j+1]=rowbd[j]+rowheight[j]

列表ctbaddrrstots[ctbaddrrs]指定从图片的以ctb光栅扫描排序的ctb地址到以图块扫描排序的ctb地址的转换,其中ctbaddrrs在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

列表ctbaddrtstors[ctbaddrts]指定从以图块扫描排序的ctb地址到图片的以ctb光栅扫描排序的ctb地址的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

for(ctbaddrrs=0;ctbaddrrs<picsizeinctbsy;ctbaddrrs++)

ctbaddrtstors[ctbaddrrstots[ctbaddrrs]]=ctbaddrrs

列表tileid[ctbaddrts]指定从以图块扫描排序的ctb地址到图块id的转换,其中ctbaddrts在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

列表numctusintile[tileidx]指定从图块索引到图块中ctu的数量的转换,其中tileidx在0至picsizeinctbsy-1(包括端值)的范围内,该列表如下导出:

for(j=0,tileldx=0;j<=num_tile_rows_minusl;j++)

for(i=0;i<=num_tile_columns_minus1;i++,tileidx++)

numctusintile[tileldx]=colwidth[i]*rowheight[j]

一组numtilesinpictileid值的集合tileidtoidx[tileid]指定从图块id到图块索引的转换,并且列表firstctbaddrts[tileidx]指定从图块id到图块中以图块扫描排序的第一ctb的ctb地址的转换,其中tileidx在0至numtilesinpic-1(包括端值)的范围内,这些列表如下导出:

columnwidthinlumasamples[i]指定第i个图块列的宽度,单位为亮度样本,其值被设置为等于colwidth[i]<<ctblog2sizey,其中i在0至num_tile_columns_minus1(包括端值)的范围内。

rowheightinlumasamples[j]指定第j个图块行的高度,单位为亮度样本,其值被设置为等于rowheight[j]<<ctblog2sizey,其中j在0至num_tile_rows_minus1(包括端值)的范围内。

这样,源设备102表示设备的示例,该设备被配置为发送信号通知指示在比特流中启用了图块集的标记,发送信号通知指示划分图片的图块集列的数量的语法元素,以及发送信号通知指示划分图片的图块集行的数量的语法元素。

再次参考图1,接口108可以包括被配置为接收由数据封装器107生成的数据并且将数据发送和/或存储到通信介质的任何设备。接口108可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可以发送和/或接收信息的任何其他类型的设备。此外,接口108可以包括计算机系统接口,该计算机系统接口可以使文件能够存储在存储设备上。例如,接口108可以包括支持外围部件互连(pci)和高速外围部件互连(pcie)总线协议、专用总线协议、通用串行总线(usb)协议、i2c的芯片组、或可用于互连对等设备的任何其他逻辑和物理结构。

再次参考图1,目标设备120包括接口122、数据解封装器123、视频解码器124和显示器126。接口122可以包括被配置为从通信介质接收数据的任何设备。接口122可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可接收和/或发送信息的任何其他类型的设备。此外,接口122可以包括允许从存储设备检索兼容视频比特流的计算机系统接口。例如,接口122可以包括支持pci和pcie总线协议、专用总线协议、usb协议、i2c的芯片组,或者可用于互连对等设备的任何其他逻辑和物理结构。数据解封装器123可被配置为接收和解析本文所述的任何示例性参数集。

视频解码器124可以包括被配置为接收比特流(例如,mcts子比特流提取)和/或其可接受变体且从其再现视频数据的任何设备。显示器126可以包括被配置为显示视频数据的任何设备。显示器126可以包括各种显示设备诸如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另外的类型的显示器中的一种。显示器126可以包括高清显示器或超高清显示器。应当指出的是,尽管在图1所示的示例中,视频解码器124被描述为将数据输出到显示器126,但视频解码器124可以被配置为将视频数据输出到各种类型的设备和/或其子部件。例如,视频解码器124可被配置为将视频数据输出到任何通信介质,如本文所述。

图9是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图。在一个示例中,视频解码器600可被配置为对变换数据进行解码并基于经解码的变换数据从变换系数重构残差数据。视频解码器600可被配置为执行帧内预测解码和帧间预测解码,并且因此可被称为混合解码器。在图9所示的示例中,视频解码器600包括熵解码单元602、逆量化单元和变换系数处理单元604、帧内预测处理单元606、帧间预测处理单元608、加法器610、后滤波器单元612和参考缓冲器614。视频解码器600可被配置为以与视频编码系统一致的方式对视频数据进行解码。应当指出的是,尽管示出的示例性视频解码器600具有不同的功能块,但此类图示旨在用于描述目的,并且不将视频解码器600和/或其子部件限制为特定的硬件或软件架构。可使用硬件、固件和/或软件具体实施的任何组合来实现视频解码器600的功能。

如图9所示,熵解码单元602接收熵编码的比特流。熵解码单元602可被配置为根据与熵编码过程互逆的过程从比特流中解码语法元素和量化系数。熵解码单元602可以被配置为根据上文所述的任何熵编码技术来执行熵解码。熵解码单元602可以与视频编码标准一致的方式确定编码的比特流中的语法元素的值。如图9所示,熵解码单元602可以从比特流确定量化参数、量化系数值、变换数据和预测数据。在该示例中,如图9所示,逆量化单元和变换系数处理单元604从熵解码单元602接收量化参数、量化系数值、变换数据和预测数据,并输出重构的残差数据。

再次参见图9,可以将重构的残差数据提供给加法器610。加法器610可以将重构的残差数据添加到预测视频块并生成重构的视频数据。可根据预测视频技术(即帧内预测和帧间预测)确定预测视频块。帧内预测处理单元606可以被配置为接收帧内预测语法元素并且从参考缓冲器614检索预测视频块。参考缓冲器614可以包括被配置为存储一个或多个视频数据帧的存储器设备。帧内预测语法元素可识别帧内预测模式,诸如上述的帧内预测模式。帧间预测处理单元608可以接收帧间预测语法元素并生成运动矢量,以识别存储在参考缓冲器814中的一个或多个参考帧中的预测块。帧间预测处理单元608可以生成运动补偿块,可能基于内插滤波器执行内插。用于具有子像素精度的运动估计的内插滤波器的标识符可以被包括在语法元素中。帧间预测处理单元808可以使用内插滤波器来计算参考块的子整数像素的内插值。后置滤波器单元612可被配置为对重构的视频数据执行滤波。例如,后滤波器单元612可被配置为执行解块和/或样本自适应偏移(sao)滤波,例如基于在比特流中指定的参数。此外,应当指出的是,在一些示例中,后滤波器单元612可被配置为执行专用的任意滤波(例如,视觉增强,诸如蚊状噪声消除)。如图9所示,视频解码器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年11月30日提交的临时申请62/774,050、2018年12月21日提交的临时申请62/784,296、2019年1月11日提交的临时申请62/791,227、2019年2月15日提交的临时申请62/806,502的优先权,其全部内容据此以引用方式并入。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1