灵活的图片分割

文档序号:385274 发布日期:2021-12-10 浏览:26次 >En<

阅读说明:本技术 灵活的图片分割 (Flexible picture segmentation ) 是由 赵亮 赵欣 杜祎鑫 刘杉 于 2021-02-03 设计创作,主要内容包括:系统和方法可提供灵活的图片分割,一种方法包括:接收被分割成多个编码树单元(CTU)的已编码图片,其中,已编码图片的多个CTU中、与已编码图片的边界相邻的至少一行或至少一列CTU的尺寸维度小于多个CTU中、与已编码图片的任何边界不相邻的每个CTU的对应尺寸维度;以及基于多个CTU对已编码图片进行解码,其中,至少一行或至少一列CTU包括:已编码图片的、与已编码图片的顶部边界相邻的第一个CTU行,或已编码图片的、与已编码图片的左边界相邻的第一个CTU列。(Systems and methods may provide flexible picture segmentation, one method comprising: receiving an encoded picture partitioned into a plurality of Coding Tree Units (CTUs), wherein a size dimension of at least one row or at least one column of CTUs of the plurality of CTUs of the encoded picture that are adjacent to boundaries of the encoded picture is less than a corresponding size dimension of each CTU of the plurality of CTUs that are not adjacent to any boundaries of the encoded picture; and decoding the encoded picture based on the plurality of CTUs, wherein at least one row or at least one column of CTUs comprises: the first CTU row of the encoded picture adjacent to the top boundary of the encoded picture, or the first CTU column of the encoded picture adjacent to the left boundary of the encoded picture.)

灵活的图片分割

相关申请的交叉引用

本申请要求于2020年2月12日提交的第62/975,505号美国临时申请以及于2020年11月16日提交的第17/098,918号美国申请的优先权,这两个美国申请通过引用整体并入本文。

技术领域

本公开的实施例涉及一组高级视频编码技术。更具体地,本公开的实施例可提供灵活的图片分割。

背景技术

AOMediaVideo 1(AV1)是针对在互联网上传输视频而设计的开放视频编码格式。AV1由开放媒体联盟(AOMedia)开发,作为VP9的继承者,该联盟于2015年成立,包括半导体公司、视频点播提供商、视频内容生产商、软件开发公司和网络浏览器供应商。AV1项目的许多组件来自联盟成员先前的研究工作。个人贡献者在多年前就开始了实验技术平台:Xiph/Mozilla的达拉(Daala)于2010年发布代码,谷歌的实验VP9进化项目VP10于2014年9月12日宣布,思科的索尔(Thor)于2015年8月11日发布。基于VP9的码基建立的AV1结合额外的技术,其中一些技术以这些实验格式开发。AV1参考编解码器的第一版本(第0.1.0版)于2016年4月7日发布。联盟于2018年3月28日宣布发行AV1比特流规范,以及作为参考的、基于软件的编码器和解码器。在2018年6月25日,发布第1.0.0验证版的规范。在2019年1月8日,发布“AV1比特流和解码过程规范”,这是具有勘误表1的第1.0.0验证版的规范。AV1比特流规范包括参考视频编解码器。开放介质联盟(在2019年1月8日)发布的“AV1比特流和解码处理规范”(具有勘误表1的第1.0.0版)通过引用整体并入本文。

ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)在2013年发布H.265/HEVC(高效视频编码)标准的第一版,在2014年发布第二版,在2015年发布第三版,在2016年发布第四版。在2015年,这两个标准组织共同组建联合视频探索团队(JVET),以探索开发超越HEVC的下一代视频编码标准的潜力。在2017年10月,JVET发布了具有超越HEVC的性能的视频压缩方案的联合征集建议书(CfP)。到2018年2月15日,分别提交涉及标准动态范围(SDR)的总共22个CfP响应、涉及高动态范围(HDR)的12个CfP响应以及涉及360个视频类别的12个CfP响应。在2018年4月,在122MPEG/第10届JVET会议中评估所有接收到的CfP响应。作为这次会议的结果,JVET正式启动了超越HEVC的下一代视频编码的标准化过程。新标准被命名为通用视频编码(VVC),且JVET重新命名为联合视频专家组。联合视频专家组(在2019年10月)发布的VVC标准的规范“通用视频编码(草案七)”,JVET-P2001-vE通过引用整体并入本文。

发明内容

在诸如H.264/AVC、HEVC、VVC和AV1的现代视频编码标准中,图片按照光栅扫描顺序分成一系列CTU,其中CTU的大小彼此相同,除了位于图片的右边界或底边界的CTU之外。然而,如果对象边界未与该固定图片分割对齐,则需要更多的比特来用信号通知对象的边界和运动。

本公开的一些实施例解决了上述问题和其它问题。

根据一个或多个实施例,提供一种由至少一个处理器执行的方法。该方法可包括:接收被分割成多个编码树单元(CTU)的已编码图片,其中,已编码图片的多个CTU中、与已编码图片的边界相邻的至少一行或至少一列CTU的尺寸维度小于多个CTU中、与已编码图片的任何边界不相邻的每个CTU的对应尺寸维度;以及基于多个CTU对已编码图片进行解码,其中,至少一行或至少一列CTU包括:已编码图片的、与已编码图片的顶部边界相邻的第一个CTU,或已编码图片的、与已编码图片的左边界相邻的第一个CTU列。

根据实施例,多个CTU中与已编码图片的任何边界不相邻的每个CTU具有相同的尺寸。

根据实施例,至少一行或至少一列CTU包括:与已编码图片的左边界相邻的第一个CTU列、和与已编码图片的右边界相邻的最后一个CTU列,以及第一个CTU列和最后一个CTU列各自的宽度均小于多个CTU中与已编码图片的任何边界不相邻的每个CTU的宽度。

根据实施例,至少一行或至少一列CTU包括或进一步包括:与已编码图片的顶部边界相邻的第一个CTU行、和与已编码图片的底部边界相邻的最后一个CTU行,以及第一个CTU行和最后一个CTU行各自的高度均小于多个CTU中与已编码图片的任何边界不相邻的每个CTU的高度。

根据实施例,对已编码图片进行解码包括:用信号通知至少一行或至少一列CTU中、与已编码图片的顶部边界或左边界相邻的第一个CTU行或第一个CTU列的尺寸维度。

根据实施例,第一个CTU行或第一个CTU列的尺寸维度是以2的幂表示的正整数。

根据实施例,对已编码图片进行解码包括:用信号通知第一标志,第一标志用于指示至少一行或至少一列CTU中、与已编码图片的顶部边界或左边界相邻的第一个CTU行或第一个CTU列的尺寸维度是否等于最大允许CTU尺寸;基于第一标志,确定第一个CTU行或第一个CTU列的尺寸维度不等于最大允许CTU尺寸;以及基于该确定,用信号通知第二标志,第二标志用于指示第一个CTU行或第一个CTU列的尺寸维度。

根据实施例,对已编码图片进行解码包括:基于确定第一个CTU行或第一个CTU列的尺寸维度等于或大于预定值,且至少一行或至少一列CTU中的第一个CTU行或第一个CTU列的另一尺寸维度小于预定值,不允许在已编码图片的至少一行或至少一列CTU中的第一个CTU行或第一个CTU列中、在CTU层级进行水平或垂直划分,其中,尺寸维度是高度和宽度之一,且另一尺寸维度是高度和宽度中的另一个,以及预定值是大于64的2的幂值。

根据实施例,对已编码图片进行解码包括:基于确定第一个CTU行或第一个CTU列的尺寸维度等于或大于预定值,且至少一行或至少一列CTU中的第一个CTU行或第一个CTU列的另一尺寸维度小于预定值,不允许在已编码图片的至少一行或至少一列CTU中的第一个CTU行或第一个CTU列中、在CTU层级进行水平三叉树TT或垂直TT划分,其中,尺寸维度是高度和宽度之一,且另一尺寸维度是高度和宽度中的另一个,以及预定值是大于64的2的幂值。

根据实施例,第一个CTU行或最后一个CTU行的高度小于最大CTU尺寸,且多个CTU中与已编码图片的任何边界不相邻的每个CTU的高度等于最大CTU尺寸,关于第一个CTU行或最后一个CTU行是否小于其它CTU的决定通过比特流中的一个语法指示,或者第一个CTU列或最后一个CTU列的宽度小于最大CTU尺寸,且多个CTU中与已编码图片的任何边界不相邻的每个CTU的宽度等于最大CTU尺寸,关于第一个CTU列或最后一个CTU列是否小于其它CTU的决定通过比特流中的一个语法指示。

根据一个或多个实施例,提供一种系统。该系统包括:至少一个存储器,配置成存储计算机程序代码;以及至少一个处理器,配置成访问计算机程序代码并按照计算机程序代码的指令进行操作,计算机程序代码包括:解码代码,配置成使得至少一个处理器对被分割成多个编码树单元(CTU)的已编码图片进行解码。已编码图片的多个CTU中、与已编码图片的边界相邻的至少一行或至少一列CTU的尺寸维度可以小于多个CTU中、与已编码图片的任何边界不相邻的每个CTU的对应尺寸维度,解码代码可配置成使得至少一个处理器基于多个CTU对已编码图片进行解码,以及至少一行或至少一列CTU可包括:已编码图片的、与已编码图片的顶部边界相邻的第一个CTU行,或已编码图片的、与已编码图片的左边界相邻的第一个CTU列。

根据实施例,多个CTU中与已编码图片的任何边界不相邻的每个CTU具有相同的尺寸。

根据实施例,至少一行或至少一列CTU包括:与已编码图片的左边界相邻的第一个CTU列、和与已编码图片的右边界相邻的最后一个CTU列,以及第一个CTU列和最后一个CTU列各自的宽度均小于多个CTU中与已编码图片的任何边界不相邻的每个CTU的宽度。

根据实施例,至少一行或至少一列CTU包括或进一步包括:与已编码图片的顶部边界相邻的第一个CTU行、和与已编码图片的底部边界相邻的最后一个CTU行,以及第一个CTU行和最后一个CTU行各自的高度均小于多个CTU中与已编码图片的任何边界不相邻的每个CTU的高度。

根据实施例,解码代码进一步配置成使得至少一个处理器用信号通知至少一行或至少一列CTU中、与已编码图片的顶部边界或左边界相邻的第一个CTU行或第一个CTU列的尺寸维度。

根据实施例,解码代码进一步配置成使得至少一个处理器:用信号通知第一标志,第一标志用于指示至少一行或至少一列CTU中、与已编码图片的顶部边界或左边界相邻的第一个CTU行或第一个CTU列的尺寸维度是否等于最大允许CTU尺寸;基于第一标志,确定第一个CTU行或第一个CTU列的尺寸维度不等于最大允许CTU尺寸;以及基于该确定,用信号通知第二标志,第二标志用于指示第一个CTU行或第一个CTU列的尺寸维度。

根据实施例,解码代码进一步配置成使得至少一个处理器:基于确定第一个CTU行或第一个CTU列的尺寸维度等于或大于预定值,且至少一行或至少一列CTU中的第一个CTU行或第一个CTU列的另一尺寸维度小于预定值,不允许在已编码图片的至少一行或至少一列CTU中的第一个CTU行或第一个CTU列中、在CTU层级进行水平或垂直划分,其中,尺寸维度是高度和宽度之一,另一尺寸维度是高度和宽度中的另一个,以及预定值是大于64的2的幂值。

根据实施例,解码代码进一步配置成使得至少一个处理器:基于确定第一个CTU行或第一个CTU列的尺寸维度等于或大于预定值,且至少一行或至少一列CTU中的第一个CTU行或第一个CTU列的另一尺寸维度小于预定值,不允许在已编码图片的至少一行或至少一列CTU中的第一个CTU行或第一个CTU列中、在CTU层级进行水平三叉树(TT)或垂直TT划分,其中,尺寸维度是高度和宽度之一,另一尺寸维度是高度和宽度中的另一个,以及预定值是大于64的2的幂值。

根据一个或多个实施例,提供一种非暂时性计算机可读介质,该非暂时性计算机可读介质存储计算机指令。计算机指令可配置成在由至少一个处理器运行时,使得至少一个处理器:对被分割成多个编码树单元(CTU)的已编码图片进行解码,其中,已编码图片的多个CTU中、与已编码图片的边界相邻的至少一行或至少一列CTU的尺寸维度小于多个CTU中、与已编码图片的任何边界不相邻的每个CTU的对应尺寸维度,计算机指令配置成使得至少一个处理器基于多个CTU对已编码图片进行解码,以及至少一行或至少一列CTU包括:已编码图片的、与已编码图片的顶部边界相邻的第一个CTU行,或已编码图片的、与已编码图片的左边界相邻的第一个CTU列。

附图说明

通过以下详细描述和附图,所公开的主题的进一步特征、性质和各种优点将更加明显,其中:

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

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

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

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

图5是划分成多个CTU的图片的示例性图示。

图6A是用于描述VTM中的分割限制的第一示例的块的示例性图示。

图6B是用于描述VTM中的分割限制的第二示例的块的示例性图示。

图6C是用于描述VTM中的分割限制的第三示例的块的示例性图示。

图6D是用于描述VTM中的分割限制的第四示例的块的示例性图示。

图6E是用于描述VTM中的分割限制的第五示例的块的示例性图示。

图6F是用于描述VTM中的分割限制的第六示例的块的示例性图示。

图6G是用于描述VTM中的分割限制的第七示例的块的示例性图示。

图6H是用于描述VTM中的分割限制的第八示例的块的示例性图示。

图7A是用于演示多类型树结构中的垂直二元划分类型的图。

图7B是用于演示多类型树结构中的水平二元划分类型的图。

图7C是用于演示多类型树结构中的垂直三元划分类型的图。

图7D是用于演示多类型树结构中的水平三元划分类型的图。

图8是示出分区划分信息在具有嵌套多类型树编码树结构的四叉树中的信令机制的图。

图9是示出通过四叉树和嵌套多类型树编码块结构将CTU划分成多个CU的示例性图示。

图10A是示出VP9的第一示例性分割结构的图。

图10B是示出VP9的第二示例性分割结构的图。

图10C是示出VP9的第三示例性分割结构的图。

图10D是示出VP9的第四示例性分割结构的图。

图11A是示出AV1的第一示例性分割结构的图。

图11B是示出AV1的第二示例性分割结构的图。

图11C是示出AV1的第三示例性分割结构的图。

图11D是示出AV1的第四示例性分割结构的图。

图11E是示出AV1的第五示例性分割结构的图。

图11F是示出AV1的第六示例性分割结构的图。

图11G是示出AV1的第七示例性分割结构的图。

图11H是示出AV1的第八示例性分割结构的图。

图11I是示出AV1的第九示例性分割结构的图。

图11J是示出AV1的第十示例性分割结构的图。

图12是示出根据本公开的实施例的划分成多个CTU的图片的图。

图13是示出根据本公开的实施例的划分成多个CTU的图片的图。

图14是示出根据本公开的实施例的划分成多个CTU的图片的图。

图15是示出根据本公开的实施例的划分成多个CTU的图片的图。

图16是根据本公开的实施例的解码器的示意图。

图17是适合于实现本公开的实施例的计算机系统的图。

具体实施方式

[图片分割成多个CTU]

图片可划分成一系列编码树单元(CTU)的序列,CTU还可称为超级块(SB)。HEVC和VVC中的CTU概念类似于AV1中的SB概念。对于具有三个样本阵列的图片,CTU可包括一个N×N亮度样本块以及两个对应的色度样本块,或者CTU可由一个N×N亮度样本块以及两个对应的色度样本块组成。图5示出了划分成多个CTU(510)的图片(500)的示例。

CTU中亮度块的最大允许尺寸被指定为128×128(而亮度变换块的最大尺寸是64×64)。

虚拟流水线数据单元(VPDU)可定义为图片中的非重叠单元。在硬件解码器中,连续的VPDU可同时由多个流水线站处理。VPDU尺寸大致与大多数流水线站中的缓冲器尺寸成比例,因此保持VPDU尺寸小,可能比较重要。在大多数硬件解码器中,VPDU尺寸可设置成最大变换块(TB)尺寸。

为了将VPDU尺寸保持为64×64亮度样本,可以在VVC测试模型(VTM)中应用以下标准分割限制(具有语法信令修改),如图6A至图6H所示,图6A至图6H示出了尺寸为128×128的CTU块(520),其中块(520)分割成用细线指示的四个VPDU,且不允许对CU进行分割则由分割线(527)指示:

·当CU的宽度或高度之一或两者等于128时,不允许对CU进行三叉树(TT)划分。例如,如图6A和图6B及图6E和图6H所指示的,可以不允许对CU进行TT划分。

·对于128×N CU(N≤64,即宽度等于128,高度小于或等于128),不允许水平二叉树(BT)。例如,如图6D所指示的,可以不允许对CU进行水平BT划分。

·对于N×128CU(N≤64,即高度等于128,宽度小于或等于64),不允许垂直BT。例如,如图6C所指示的,可以不允许对CU进行垂直BT划分。

在HEVC和VVC中,当树节点块的一部分超过图片底部边界或右边界时,可强制对树节点块进行划分,直到每个编码CU的所有样本位于图片边界内。

[在VVC中具有嵌套多类型树编码块结构的四叉树]

在HEVC中,可通过使用表示为编码树的四叉树(QT)结构来将CTU划分成多个CU,以适应各种局部特性。可以在CU层级进行关于是否使用帧间图片(时间)或帧内图片(空间)预测来对图片区域进行编码的判断。每个CU可根据预测单元(PU)划分类型进一步分成一个、两个或四个PU。在一个PU内,可应用相同的预测处理,并基于PU将相关信息发送到解码器。在通过应用基于PU划分类型的预测处理来获得残差块之后,可根据另一四叉树结构(如CU的编码树)将CU分割成多个变换单元(TU)。HEVC结构的一个关键特征是HEVC结构具有包括CU、PU和TU的多个分割概念。

在VVC中,使用二元和三元划分分段结构的、具有嵌套多类型树的四叉树代替多个分割单元类型的概念。即,VVS不包括分离的CU、PU和TU概念,除了对于最大变换长度而言尺寸太大的CU需要分离之外,且支持CU分割形状的更多灵活性。在编码树结构中,CU可具有正方形或矩形形状。首先通过四元树(还称为四叉树)结构来分割编码树单元(CTU)。然后,可通过多类型树结构进一步分割四元树叶节点。如图7A至图7D的图(550)~(580)所示,在多类型树结构中存在四种划分类型:如图7A所示的垂直二元划分(SPLIT_BT_VER),如图7B所示的水平二元划分(SPLIT_BT_HOR),如图7C所示的垂直三元划分(SPLIT_TT_VER),以及如图7D所示的水平三元划分(SPLIT_TT_HOR)。多类型树叶节点可称为编码单元(CU),除非CU对于最大变换长度而言太大,否则该分段可用于预测和变换处理,而无需任何进一步的分割。这意味着在大多数情况下,CU、PU和TU在具有嵌套多类型树编码块结构的四叉树中具有相同的块尺寸。当最大支持的变换长度小于CU的颜色分量的宽度或高度时发生异常。

图8示出了分区划分信息在具有嵌套多类型树编码树结构的四叉树中的信令机制。编码树单元(CTU)(605)可被处理成为四元树的根,且可首先通过四元树结构基于用信号通知的标志(612)(qt_split_flag)来分割。例如,当第一标志(612)的值为“1”时,可不执行四叉树分割,使得存在QT_nodes(610)。当第一标志(612)的值为“0”时,可执行四叉树分割,使得存在一个或多个四元树叶节点(615)(QT-leaf_node/MTT_node)。然后,每个四元树叶节点(615)(当足够大以允许分割时)通过多类型树结构来进一步分割。在多类型树结构中,标志(617)(mtt_split_cu_flag或mtt_split_flag)用信号通知,以指示四元树叶节点(615)是否被进一步分割。例如,当标志617的值为“1”时,四元树叶节点(615)被进一步分割(由参考符号620指示)。当标志(617)的值为“0”时,四元树叶节点(615)不被进一步分割(由参考符号625指示)。如果四元树叶节点(615)被进一步分割,则标志(622)(mtt_split_cu_vertical_flag或mtt_split_vertical_flag)可以用信号通知以指示划分方向。例如,如果标志(622)的值为“1”,则四元树叶节点(615)可被垂直划分(由参考符号630指示),以及如果标志(622)的值为“0”,则四元树叶节点(615)可被水平划分(由参考符号635指示)。标志(632)(mtt_split_cu_binary_flag或mtt_split_binary_flag)可以用信号通知以指示划分是二元划分还是三元划分。例如,如果标志(632)的值为“1”,则四元树叶节点(615)可以是二元划分(由参考符号640和650指示),以及如果标志(632)的值为“0”,则四元树叶节点(615)可以是三元划分(由参考符号645和655指示)。基于标志(622)和标志(632)的值,可导出CU的多类型树划分模式(MttSplitMode),如下面表1中所示。

表1-基于多类型树语法元素导出的MttSplitMode导出

MttSplitMode mtt_split_cu_vertical_flag mtt_split_cu_binary_flag
SPLIT_TT_HOR 0 0
SPLIT_BT_HOR 0 1
SPLIT_TT_VER 1 0
SPLIT_BT_VER 1 1

图9示出了通过四叉树和嵌套多类型树编码块结构将CTU(660)划分成多个CU,其中粗线边缘表示四叉树分割,虚线边缘表示多类型树分割。具有嵌套多类型树分割的四叉树提供由CU组成的内容自适应编码树结构。CU的尺寸可与CTU一样大或者与4×4亮度样本单元一样小。对于4∶2∶0色度格式的情况,最大色度CB尺寸是64×64,最小色度CB尺寸是2×2。

在VVC中,最大支持亮度变换尺寸为64×64,最大支持色度变换尺寸为32×32。当CB的宽度或高度大于最大变换宽度或高度时,CB沿着水平和/或垂直方向被自动划分以满足沿着该方向的变换尺寸限制。

在VTM7中,编码树方案支持亮度和色度能够具有单独的块树结构。对于P切片和B切片,一个CTU中的亮度和色度CTB必须共享相同的编码树结构。然而,对于I切片,亮度和色度可具有单独的块树结构。当应用单独的块树模式时,亮度CTB通过一个编码树结构被分割成多个CU,且色度CTB通过另一编码树结构被分割成多个色度CU。这意味着I切片中的CU可由亮度分量的编码块或两个色度分量的编码块组成,P切片或B切片中的CU可由全部三个颜色分量的编码块组成,除非视频是单色的。

[VP9和AV1中的编码块分割]

参考图10A至图10D的分割结构(670)~(673),VP9使用四路分割树,四路分割树从64×64层级开始,向下进行到4×4层级,对于块8×8存在一些附加限制。应注意,图10D中标示为R的分区指的是递归,即以较低的规模重复相同的分割树,直到达到最小4×4层级。

参考图11A至图11J的分割结构(680)~(689),AV1不仅将分割树扩展为十路结构,而且增大最大尺寸(按照VP9/AV1的说法,称为超级块)以从128×128开始。应注意,这包括在VP9中不存在的4:1/1:4矩形分区。没有一个矩形分区可被进一步细分。除了编码块尺寸之外,定义编码树深度以指示来自根节点的划分深度。具体地说,根节点(例如128×128)的编码树深度设置为0,且在树块被进一步划分一次之后,编码树深度增加1。

作为如VP9中实施的固定变换单元尺寸的替代,AV1允许将亮度编码块分割成多个尺寸的变换单元,这些变换单元可由递归分割来表示,递归分割向下进行,直到两个层级。为了合并AV1的扩展编码块分割,可支持从4×4到64×64的正方形、2:1/1:2和4:1/1:4变换尺寸。对于色度块,仅可允许最大可能的变换单元。

下面详细讨论本公开的实施例。下面在本公开中使用的术语“CTU”可指的是编码标准的最大编码单元(LCU)。例如,术语“CTU”可指的是HEVC和VVC中定义的CTU和/或AV1中定义的SB。

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

图1示出了第二对终端(130,140),第二对终端(130,140)设置成支持已编码视频的双向传输,该双向传输可例如在视频会议期间发生。对于双向数据传输,每个终端(130,140)可以在本地位置对采集的视频数据进行编码,以通过网络(150)传输到另一终端。每个终端(130,140)还可接收由另一终端传输的已编码视频数据,可对已编码数据进行解码,且可以在本地显示设备上显示恢复的视频数据。

在图1中,终端(110-140)可被示出为服务器、个人计算机和智能电话,和/或任何其它类型的终端。例如,终端(110-140)可以是膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络(150)表示在终端(110-140)之间传送已编码视频数据的任何数量的网络,包括例如有线和/或无线通信网络。通信网络(150)可在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或互联网。出于本讨论的目的,除非在下文中有所解释,否则网络(150)的架构和拓扑对于本公开的操作来说可能是无关紧要的。

图2示出了视频编码器和解码器在流式传输环境中的放置方式,作为所公开的主题的应用示例。所公开的主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等。

如图2所示,流式传输系统(200)可包括采集子系统(213),该采集子系统可包括视频源(201)和编码器(203)。视频源(201)可以是例如数码相机,且可配置成创建未压缩的视频样本流(202)。相较于已编码视频比特流,未压缩的视频样本流(202)可提供高数据量,且可由耦接到相机(201)的编码器(203)处理。编码器(203)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开的主题的各方面。相较于样本流,已编码视频比特流(204)可包括较低数据量,且可存储在流式传输服务器(205)上以供将来使用。一个或多个流式传输客户端(206)可访问流式传输服务器(205)以检索视频比特流(209),视频比特流(209)可以是已编码视频比特流(204)的副本。

在实施例中,流式传输服务器(205)还可用作媒体感知网络单元(MANE)。例如,流式传输服务器(205)可配置成修剪已编码视频比特流(204),以将可能不同的比特流裁剪给一个或多个流式传输客户端(206)。在实施例中,MANE可与流式传输系统(200)中的流式传输服务器(205)分开提供。

流式传输客户端(206)可包括视频解码器(210)和显示器(212)。例如,视频解码器(210)可对视频比特流(209)进行解码,视频比特流(209)是已编码视频比特流(204)的传入副本,且视频解码器(210)可产生可在显示器(212)或另一呈现装置(未描绘)上呈现的输出视频样本流(211)。在一些流式传输系统中,可根据某些视频编码/压缩标准对视频比特流(204,209)进行编码。该些标准的示例包括但不限于ITU-T建议书H.265。正在开发的视频编码标准非正式地称为下一代视频编码(Versatile Video Coding,VVC)。本公开的实施例可用于VVC的上下文中。

图3是根据本公开的实施例的、附接到显示器(212)的视频解码器(210)的示例性功能框图。

视频解码器(210)可包括信道(312)、接收器(310)、缓冲存储器(315)、熵解码器/解析器(320)、缩放器/逆变换单元(351)、帧内预测单元(352)、运动补偿预测单元(353)、聚合器(355)、环路滤波器单元(356)、参考图片存储器(357)和当前图片存储器()。在至少一个实施例中,视频解码器(210)可包括集成电路、一系列集成电路和/或其它电子电路。视频解码器(210)还可部分地或完全地在具有关联存储器的一个或多个CPU上运行的软件中体现。

在本实施例和其它实施例中,接收器(310)可接收将由解码器(210)解码的一个或多个已编码视频序列;可以一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列的解码。可从信道(312)接收已编码视频序列,该信道可以是通向存储已编码视频数据的存储装置的硬件/软件链路。接收器(310)可接收可转发到它们各自的使用实体(未描绘)的已编码视频数据以及其它数据,例如已编码音频数据和/或辅助数据流。接收器(310)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(315)可耦接在接收器(310)与熵解码器/解析器(320)(此后称为“解析器”)之间。当接收器(310)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,可以不使用缓冲器(315),或可将该缓冲器做得较小。为了尽力在互联网等业务分组网络上使用,可能需要缓冲器(315),该缓冲器可相对较大并可具有自适应性大小。

视频解码器(210)可包括解析器(320)以根据熵编码视频序列重建符号(321)。例如,这些符号的类别包括用于管理解码器(210)的操作的信息,以及用以控制呈现装置(例如,显示器)(212)的潜在信息,该呈现装置可耦接到解码器,如图2中所示。例如,用于呈现装置的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI)消息或视频可用性信息(Video Usability Information,VUI)的参数集片段(未描绘)的形式。解析器(320)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循本领域技术人员已知的各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(320)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器(320)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。

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

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

除已经提及的功能块以外,解码器(210)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施方式中,这些单元中的许多单元彼此紧密交互且可至少部分地彼此集成。然而,出于描述所公开的主题的目的,概念上细分成下文的功能单元是适当的。

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

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

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

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

环路滤波器单元(356)的输出可以是样本流,该样本流可输出到呈现装置(例如,显示器)(212)以及存储在参考图片存储器(357)中,以用于后续的帧间图片预测。

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

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

在实施例中,接收器(310)可连同已编码视频的接收一起接收附加(冗余)数据。该附加数据可被包括作为已编码视频序列的一部分。该附加数据可由视频解码器(210)使用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或SNR(信噪比)增强层、冗余切片、冗余图片、前向纠错码等形式。

图4示出了根据本公开的实施例的、与视频源(201)相关联的视频编码器(203)的示例性功能框图。

视频编码器(203)可包括例如作为源编码器(430)的编码器、编码引擎(432)、(本地)解码器(433)、参考图片存储器(434)、预测器(435)、传输器(440)、熵编码器(445)、控制器(450)和信道(460)。

编码器(203)可从视频源(201)(并非编码器的一部分)接收视频样本,该视频源可采集将由编码器(203)编码的视频图像。

视频源(201)可提供将由编码器(203)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如BT.601Y CrCB、RGB……)和任何合适采样结构(例如Y CrCb 4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(201)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(203)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的采样结构、色彩空间等,每个像素可包括一个或多个样本。本领域技术人员可容易理解像素与样本之间的关系。下文侧重于描述样本。

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

一些视频编码器在本领域技术人员容易认识到的“编码环路”中进行操作。作为简单的描述,编码环路可包括源编码器(430)的编码部分(负责基于待编码的输入图片和参考图片创建符号)和嵌入于编码器(203)中的(本地)解码器(433),解码器(433)重建符号以用类似于(远程)解码器还可创建样本数据的方式创建样本数据(因为在某些视频压缩技术中,符号与已编码视频比特流之间的压缩是无损的)。可将重建的样本流输入到参考图片存储器(434)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。本领域技术人员知道这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)。

“本地”解码器(433)的操作可与已在上文结合图3详细描述的“远程”解码器(210)的操作相同。然而,当符号可用且熵编码器(445)和解析器(320)可无损地将符号编码/解码为已编码视频序列时,包括信道(312)、接收器(310)、缓冲器(315)和解析器(320)在内的解码器(210)的熵解码部分,可能无法完全在本地解码器(433)中实施。

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

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

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

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

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

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

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

控制器(450)可管理编码器(203)的操作。在编码期间,控制器(450)可给每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为帧内图片(I图片)、预测性图片(P图片)或双向预测性图片(B图片)。

帧内图片(I图片)可以是不将序列中的任何其它帧用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。本领域技术人员了解I图片的变体及其相应的应用和特征。

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

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

源图片通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测性编码,该其它块由应用于块的相应图片的编码分配来确定。举例来说,I图片的块可进行非预测性编码,或该块可参考同一图片的已编码块来进行预测性编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时间预测进行非预测性编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时间预测进行非预测性编码。

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

在实施例中,传输器(440)可在传输已编码视频时传输附加数据。视频编码器(430)可包括此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和切片等其它形式的冗余数据、辅助增强信息(SEI)消息或视频可用性信息(VUI)参数集片段等。

在更详细地描述本公开的实施例的某些方面之前,下面引入在本说明书的其余部分中提及的几个术语。

此后,在某些情况下,“子图片”指的是在语义上被分组且可以以改变的分辨率独立编码的样本、块、宏块、编码单元或类似实体的矩形排列。一个或多个子图片可形成图片。一个或多个已编码子图片可形成已编码图片。可将一个或多个子图片组合成图片,且可从图片提取一个或多个子图片。在某些环境中,一个或多个已编码子图片可以在压缩域中组合,而不必转换成已编码图片的样本层级,且在相同情况或某些其它情况下,可从压缩域中的已编码图片中提取一个或多个已编码子图片。

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

根据本公开的实施例,位于图片的第一行(和/或列)中的CTU的尺寸可小于位于图片的第二行(和/或列)中的CTU的尺寸,且CTU的尺寸可以相同,除了位于图片的顶部边界、底部边界、左边界和/或右边界的CTU之外。

例如,根据本公开的实施例,参考图12至图15,可将图片(700)、(710)、(720)和(730)分割成多个CTU。在图12中,位于图片(700)的第一个CTU列(702)和最后一个CTU列(706)中的CTU的尺寸可小于位于图片(700)的其它列中的CTU的尺寸,且位于其它列中的CTU可具有彼此相同的尺寸。在图13中,位于图片(710)的第一个CTU行(704)和最后一个CTU行(708)中的CTU的尺寸可小于位于图片(710)的其它行中的CTU的尺寸,且位于其它行中的CTU可具有彼此相同的尺寸。在图14中,位于图片(720)的第一个CTU行(704)、第一个CTU列(702)、最后一个CTU行(708)和最后一个CTU列(706)中的CTU的尺寸可小于位于图片(720)的其它行/列中的CTU的尺寸,且位于其它行/列中的CTU可具有彼此相同的尺寸。在图15中,位于第一个CTU行(704)和第一个CTU列(702)中的CTU的尺寸可小于位于图片(730)的其它行/列中的CTU的尺寸,且位于其它行/列中的CTU可具有彼此相同的尺寸。

在一个或多个实施例中,第一个CTU行和/或列的宽度和/或高度在比特流中以高级语法(HLS)用信号通知,HLS包括例如序列参数集(SPS)、图片参数集(PPS)或切片标头。

在一个实施例中,第一个CTU行和/或列的宽度和/或高度可通过使用固定长度编码或截断二元编码或截断一元编码来用信号通知。

在另一实施例中,首先用信号通知一个标志,该标志用以指示第一个CTU行(和/或列)的宽度(和/或高度)是否等于最大允许CTU尺寸。如果一个标志指示宽度(和/或高度)不等于最大允许CTU尺寸,则可进一步用信号通知第二标志,该第二标志用以指示第一个CTU行(和/或列)的宽度(和/或高度)。在一个示例中,固定长度编码可用于第二标志的发送(signaling)。

在一个实施例中,第一个CTU行(和/或列)的宽度(和/或高度)被限制为2的幂,且第一个CTU行(和/或列)的宽度(和/或高度)可等于或大于K1,其中K1可以是正整数,例如2,4,6,8等,或者K可以是2的幂。例如,可限制第一个CTU行的高度和/或可限制第一个CTU列的宽度。

在另一实施例中,第一个CTU行(和/或列)的宽度(和/或高度)可被限制为K2的整数倍,其中K2是偶数整数,例如2,4,6,8,10,12,14,16等。例如,可限制第一个CTU行的高度和/或可限制第一个CTU列的宽度。在一个实施例中,K2可进一步被限制为2的幂。在一个实施例中,为了确保每个编码块的宽度和高度是2的幂,可将用于最后一个CTU行的相同边界处理规则应用于第一个CTU行,且可将用于最后一个CTU列的相同边界处理规则应用于第一个CTU列。

在一个或多个实施例中,当第一个CTU行(和/或列)的宽度(和/或高度)等于或大于K3,且第一个CTU行(和/或列)的高度(和/或宽度)小于K3时,则不允许在第一个CTU行(和/或列)中,在CTU层级进行水平(和/或垂直)划分。K3可以是2的幂值,且K3可大于64,例如128或256。例如,根据实施例,当第一个CTU行(704)的宽度等于或大于K3且第一个CTU行(704)的高度小于K3时,则可禁止在第一个CTU行(704)的CTU层级进行水平划分。替代地或另外,当第一个CTU列(702)的高度等于或大于K3且第一个CTU列(702)的宽度小于K3时,则可以不禁止在第一个CTU列(702)的CTU层级进行垂直划分。在针对第一个CTU行(704)和第一个CTU列(702)的上述条件分别为真的情况下,可禁止角落CTU(709)的水平和垂直划分。类似地,当提供另一个角落CTU的CTU行和列满足上述条件时,可禁止任何其它角落CTU的水平和垂直划分。

在一个或多个实施例中,当第一个CTU行(和/或列)的宽度(和/或高度)等于或大于K3,且第一个CTU行(和/或列)的高度(和/或宽度)小于K3时,则可以不允许在第一个CTU行(和/或列)中,在CTU层级进行垂直TT(和/或水平TT)划分。K3可以是2的幂值,且K3可大于64,例如128或256。例如,根据实施例,当第一个CTU行(704)的宽度等于或大于K3且第一个CTU行(704)的高度小于K3时,则可禁止在第一个CTU行(704)的CTU层级进行水平TT划分。替代地或另外,当第一个CTU列(702)的高度等于或大于K3且第一个CTU列(702)的宽度小于K3时,则可禁止在第一个CTU列(702)的CTU层级进行垂直TT划分。在针对第一个CTU行(704)和第一个CTU列(702)的上述条件分别为真的情况下,可禁止角落CTU(709)的水平和垂直TT划分(参见图15)。类似地,当提供另一个角落CTU的CTU行和列满足上述条件时,可禁止任何其它角落CTU的水平和垂直TT划分。

在一个或多个实施例中,仅图片的第一个CTU行(和/或列)或最后一个CTU行(和/或列)的高度(和/或宽度)可小于最大CTU尺寸,图片的其它CTU行(和/或列)的尺寸可与最大CTU尺寸相同。例如,如图14所示,图片(740)的第一个CTU行(704)的高度和第一个CTU列(702)的宽度可小于最大CTU尺寸,图片(720)的其它行/列可等于最大CTU尺寸。

在一个实施例中,在比特流中以高级语法(HLS)用信号通知一个标志,该标志用以指示第一个CTU行(和/或列)和/或最后一个CTU行(和/或列)的尺寸是否小于其它CTU行(和/或列)的尺寸,HLS包括例如序列参数集(SPS)、图片参数集(PPS)或切片标头。

上面所描述的本公开的实施例可仅应用于指定的颜色分量(例如,仅亮度、仅色度),或者不同地应用于不同的颜色分量(例如,不同尺寸的第一个CTU行或CTU列可应用于不同的颜色分量)。

根据实施例,第一个CTU列的宽度可由解码器从其它剩余CTU导出。根据实施例,编码器可以向解码器指定第一个CTU列(和/或行)和/或中间列(和/或行)的尺寸,且解码器可基于所指定的尺寸导出最后一个CTU列(和/或行)的尺寸。

本公开的实施例可包括至少一个处理器和存储器,存储器存储计算机指令。计算机指令可配置成在由至少一个处理器运行时,使得至少一个处理器执行本公开的实施例的功能。

例如,参考图16,本公开的解码器(800)可包括至少一个处理器和存储器,存储器存储计算机指令。计算机指令可包括解码代码(810)。解码器(800)可实现图2和图3所示的视频解码器(210)。

解码代码(810)可配置成使得至少一个处理器对分割成多个CTU的已编码图片进行解码,其中解码代码(810)可配置成使得至少一个处理器基于多个CTU对已编码图片进行解码。

CTU可具有本公开中例如针对图12至图15描述的实施例的多个CTU配置中的任一个CTU配置。例如,已编码图片的多个CTU中、与已编码图片的边界相邻的至少一行或至少一列CTU的尺寸维度可小于多个CTU中、与已编码图片的任何边界不相邻的每个CTU的对应尺寸维度。

根据本公开的实施例,解码代码(810)可进一步配置成使得至少一个处理器用信号通知标志。例如,解码代码(810)可配置成使得至少一个处理器用信号通知至少一行或至少一列CTU中、与已编码图片的顶部边界或左边界相邻的第一行和/或第一列的尺寸维度。替代地,解码代码(810)可配置成使得至少一个处理器:用信号通知第一标志,第一标志用于指示至少一行或至少一列CTU中、与已编码图片的顶部边界或左边界相邻的第一行和/或第一列的尺寸维度是否等于最大允许CTU尺寸;基于第一标志,确定第一个CTU行和/或第一个CTU列的尺寸维度不等于最大允许CTU尺寸;以及基于该确定,用信号通知第二标志,该第二标志用于指示第一个CTU行和/或第一个CTU列的尺寸维度。

解码代码(810)可进一步配置成使得至少一个处理器基于本公开中描述的实施例的不允许条件,不允许在CTU层级进行水平或垂直划分,和/或不允许水平三叉树(TT)或垂直TT划分。例如,解码代码(810)可配置成使得至少一个处理器基于确定第一个CTU行或第一个CTU列的尺寸维度等于或大于预定值,且至少一行或至少一列CTU中的第一个CTU行或第一个CTU列的另一尺寸维度小于预定值,不允许在已编码图片的至少一行或至少一列CTU中的第一个CTU行或第一个CTU列中,在CTU层级进行水平或垂直划分,其中,尺寸维度是高度和宽度之一,以及另一尺寸维度是高度和宽度中的另一个,以及预定值是大于64的2的幂值。替代地或另外,解码代码(810)可配置成使得至少一个处理器基于确定第一个CTU行或第一个CTU列的尺寸维度等于或大于预定值,且至少一行或至少一列CTU中的第一个CTU行或第一个CTU列的另一尺寸维度小于预定值,不允许在已编码图片的至少一行或至少一列CTU中的第一个CTU行或第一个CTU列中,在CTU层级进行水平三叉树(TT)或垂直TT划分。

根据实施例,解码代码(810)还可配置成使得至少一个处理器将已编码图片分割成多个CTU。

根据实施例,对应于上述过程的编码器侧过程可基于上述描述通过用于对图片进行编码的编码代码来实现,如本领域普通技术人员将理解的。

可以将上面所描述的本公开的实施例的技术实现为计算机软件,该计算机软件使用计算机可读指令,且物理地存储在一个或多个计算机可读介质中。例如,图17示出了适合于实施所公开的主题的实施例的计算机系统(900)。

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

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

图17所示的计算机系统(900)的组件本质上是示例性的,并不旨在对实现本公开的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为具有与计算机系统(900)的示例性实施例中所示的组件中的任何一个组件或组件的组合相关的任何依赖或要求。

计算机系统(900)可包括某些人机接口输入装置。此类人机接口输入装置可响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘)。人机接口装置还可用于捕获不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。

输入人机接口装置可包括下述中的一项或多项(每种中仅示出一个):键盘(901)、鼠标(902)、触控板(903)、触摸屏(910)、数据手套、操纵杆(905)、麦克风(906)、扫描仪(907)、相机(908)。

计算机系统(900)还可包括某些人机接口输出装置。此类人机接口输出装置可例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可包括触觉输出装置(例如触摸屏(910)的触觉反馈、数据手套或操纵杆(905),但也可以是不作为输入装置的触觉反馈装置)。例如,此类装置可以是音频输出装置(例如:扬声器(909)、耳机(未描绘))、视觉输出装置(例如包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕(910),每种屏幕都有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘)以及打印机(未描绘)来输出二维视觉输出或超过三维的输出。

计算机系统(900)还可包括人类可访问存储装置及其关联介质,例如,包括具有CD/DVD等介质(921)的CD/DVD ROM/RW(920)的光学介质、指状驱动器(922),可拆卸硬盘驱动器或固态驱动器(923)、诸如磁带和软盘之类的传统磁性介质(未描绘)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的装置(未描绘)等。

本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其它暂时性信号。

计算机系统(900)还可包括通到一个或多个通信网络的接口。网络可以例如是无线网络、有线网络、光网络。网络可进一步是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络的示例包括诸如以太网之类的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业用电视等等。某些网络通常需要连接到某些通用数据端口或外围总线(949)的外部网络接口适配器(例如,计算机系统(900)的USB端口);如下所述,其它网络接口通常通过连接到系统总线而集成到计算机系统900的内核中(例如,连接到PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(900)可使用这些网络中的任何一个网络与其它实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANbus装置的CANbus)或双向的,例如,使用局域网或广域网数字网络连接到其它计算机系统。此类通信可包括与云计算环境(955)的通信。如上所述,可在那些网络和网络接口中的每一个上使用某些协议和协议栈。

上述人机接口装置、人机可访问的存储装置和网络接口(954)可附接到计算机系统(900)的内核(940)。

内核(940)可包括一个或多个中央处理单元(CPU)(941),图形处理单元(GPU)(942),现场可编程门区域(FPGA)(943)形式的专用可编程处理单元、用于某些任务的硬件加速器(194)等。这些装置以及只读存储器(ROM)(945)、随机存取存储器(RAM)(946)、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器(947)可通过系统总线(948)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(948),以能够通过附加的CPU、GPU等进行扩展。外围装置可直接连接到内核的系统总线(948)或通过外围总线(949)连接到内核的系统总线(948)。外围总线的体系结构包括PCI、USB等。图形适配器(950)可包括在内核(940)中。

CPU(941)、GPU(942)、FPGA(943)和加速器(944)可执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可存储在ROM(945)或RAM(946)中。过渡数据也可存储在RAM(946)中,而永久数据可例如存储在内部大容量存储器(947)中。可通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可与下述紧密关联:一个或多个CPU(941)、GPU(942)、大容量存储器(947)、ROM(945)、RAM(946)等。

计算机可读介质可在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。

作为非限制性示例,可由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(900),特别是内核(940)的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性的内核(940)的存储器,例如内核内部大容量存储器(947)或ROM(945)。可将实现本公开的各实施例的软件存储在此类装置中并由内核(940)执行。根据特定需要,计算机可读介质可包括一个或多个存储装置或芯片。软件可使得内核(940),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM(946)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可由于硬连线或以其它方式体现在电路(例如,加速器(944))中的逻辑而使得计算机系统提供功能,该电路可替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可包括存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路或包括两者。本公开包括硬件和软件的任何合适的组合。

尽管本公开已经描述了多个非限制性示例实施例,但是存在落入本公开的范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但是体现了本公开的原理,因此落入本公开的精神和范围内的系统和方法。

45页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:天线极化分集

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类