光栅扫描分块组与矩形分块组协调的解码方法、设备和介质转让专利

申请号 : CN202210099713.2

文献号 : CN114710668B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 弗努·亨德里王业奎

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种视频译码机制。所述机制包括将图像分割成多个分块。一个分块组包括若干个分块。将标志也编码到码流的参数集中。当所述分块组为光栅扫描分块组时,所述标志设置为第一值,当所述分块组为矩形分块组时,所述标志设置为第二值。根据所述分块组,将分块编码到所述码流中。存储所述码流,用于与解码器通信。

权利要求 :

1.一种解码方法,其特征在于,所述方法包括:接收码流,所述码流包括分割成多个分块(tile)的图像,其中,若干个分块包括在一个分块组中;

从所述码流的参数集中获取标志,所述标志用于指示所述分块组为光栅扫描分块组或矩形分块组,所述标志的取值为0或1;

当所述标志为0时,确定所述分块组为所述光栅扫描分块组;

当所述标志为1时,确定所述分块组为所述矩形分块组;

其中,所述光栅扫描分块组包括按照所述图像的光栅扫描顺序连续排列的多个分块,所述矩形分块组包括共同构成所述图像的矩形区域的多个分块;

根据所述分块组是所述光栅扫描分块组或所述矩形分块组对所述分块进行解码,以生成经解码分块。

2.根据权利要求1所述的方法,其特征在于,所述标志为矩形分块组标志。

3.根据权利要求1或2所述的方法,其特征在于,包括所述标志的参数集为序列参数集。

4.根据权利要求1或2所述的方法,其特征在于,包括所述标志的参数集为图像参数集。

5.根据权利要求1或2所述的方法,其特征在于,还包括:获取所述分块组的第一个分块的标识和最后一个分块的标识,以确定所述分块组包括的所述若干个分块。

6.根据权利要求1或2所述的方法,其特征在于,还包括:从所述码流中的分块组头中获得所述分块组的第一个分块的标识和最后一个分块的标识。

7.根据权利要求1或2所述的方法,其特征在于,当所述分块组为所述光栅扫描分块组时,所述分块组中的分块包含关系由以下方法确定:将所述分块组的第一个分块与最后一个分块之间的若干个分块的数量确定为所述分块组中的若干个分块的数量;

根据所述分块组中的若干个分块的数量确定所述分块包含关系。

8.根据权利要求1或2所述的方法,其特征在于,当所述分块组为矩形分块组时,所述分块组中的分块包含关系由以下方法确定:确定所述分块组的第一个分块与最后一个分块之间的增量值;

根据所述增量值和若干个分块列的数量确定若干个分块组行的数量;

根据所述增量值和若干个分块列的数量确定若干个分块组列的数量;

根据所述若干个分块组行的数量和所述若干个分块组列的数量确定所述分块包含关系。

9.一种视频译码设备,其特征在于,包括:

处理器、耦合到所述处理器的接收器,所述处理器和接收器用于执行如权利要求1‑8中任一项所述的方法。

10.一种存储有计算机可执行指令的非瞬时性计算机可读介质,其特征在于,当处理器执行所述计算机可执行指令时,使得所述处理器执行如权利要求1‑8中任一项所述的方法。

11.一种解码器,其特征在于,包括:

接收模块,用于接收码流,所述码流包括分割成多个分块(tile)的图像,其中,若干个分块包括在一个分块组中;

获取模块,用于从所述码流的参数集中获取标志,所述标志用于指示所述分块组为光栅扫描分块组或矩形分块组,所述标志的取值为0或1;

确定模块,用于:

当所述标志为0时,确定所述分块组为光栅扫描分块组;

当所述标志为1时,确定所述分块组为矩形分块组;

其中,所述光栅扫描分块组包括按照所述图像的光栅扫描顺序连续排列的多个分块,所述矩形分块组包括共同构成所述图像的矩形区域的多个分块;

解码模块,用于根据所述分块组是所述光栅扫描分块组或所述矩形分块组对所述分块进行解码,以生成经解码分块。

12.根据权利要求11所述的解码器,其特征在于,所述标志为矩形分块组标志。

13.根据权利要求11或12所述的解码器,其特征在于,包括所述标志的参数集为序列参数集。

14.根据权利要求11或12所述的解码器,其特征在于,包括所述标志的参数集为图像参数集。

说明书 :

光栅扫描分块组与矩形分块组协调的解码方法、设备和介质

[0001] 本申请是分案申请,原申请的申请号是201980083831.0,原申请日是2019年12月17日,原申请的全部内容通过引用结合在本申请中。

技术领域

[0002] 本发明大体上涉及视频译码,具体涉及将图像分割成分块组以在视频译码中提升压缩的机制。

背景技术

[0003] 即使在视频较短的情况下也需要对大量的视频数据进行描述,当数据要在带宽容量受限的通信网络中发送或以其它方式发送时,这样可能会造成困难。因此,视频数据通常要先压缩然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备上存储视频时,视频的大小也可能成为问题。视频压缩设备通常在信源侧使用软件和/或硬件,以在发送或存储之前对视频数据进行译码,从而减少用来表示数字视频图像所需的数据量。然后,压缩数据在目的地侧由用于对视频数据进行解码的视频解压缩设备接收。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。

发明内容

[0004] 在一个实施例中,本发明包括一种由编码器执行的方法,所述方法包括:所述编码器的处理器将图像分割成多个分块;所述处理器将若干个分块分配到分块组中;所述处理器进行编码,当所述分块组为光栅扫描分块组时,所述标志设置为第一值,当所述分块组为矩形分块组时,所述标志设置为第二值,其中,所述标志编码到在码流的参数集中;所述处理器根据所述分块组将所述分块编码到所述码流中;在所述编码器的存储器中存储所述码流,用于与解码器通信。一些视频译码系统使用包含按光栅扫描顺序分配分块的分块组。其他系统使用矩形分块组来代替,以支持虚拟现实(virtual reality,VR)、电话会议和其他感兴趣区域的译码方案中的子图像提取。还有其他系统允许编码器根据视频译码应用的类型选择分块组类型。本方面包括指示相应分块组为光栅扫描分块组还是矩形分块组的标志。本方法提醒解码器使用合适的分块组译码方案进行适当的解码。因此,针对不同使用情形,本发明中的标志允许编码器/解码器(编解码器,codec)支持使用多个分块组方案,因此提升了编码器和解码器的功能。此外,指示本发明中的标志可以提高编码效率,降低编码器和/或解码器的内存资源占用率、处理资源占用率和/或网络资源占用率。
[0005] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述标志为矩形分块组标志。
[0006] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述标志编码到的参数集为序列参数集。
[0007] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述标志编码到的参数集为图像参数集。
[0008] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,还包括所述处理器在所述码流中编码所述分块组的第一个分块的标识和最后一个分块的标识,指示所述分块组包括的所述分块。
[0009] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,其中,所述分块组的第一个分块的标识和最后一个分块的标识编码到所述码流中的分块组头中。
[0010] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,当所述分块组为所述光栅扫描分块组时,所述分块组中的分块包含关系通过以下方式确定:将所述分块组的第一个分块与最后一个分块之间的若干个分块的数量确定为所述分块组中的若干个分块的数量;根据所述分块组中的若干个分块的数量确定所述分块包含关系。
[0011] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,当所述分块组为矩形分块组时,所述分块组中的分块包含关系由以下方法确定:确定所述分块组的第一分块与最后一个分块之间的增量值;根据所述图像中的增量值和若干个分块列的数量确定若干个分块组行的数量;根据所述图像中的增量值和若干个分块列的数量确定若干个分块组列的数量;根据所述若干个分块组行的数量和所述若干个分块组列的数量确定所述分块包含关系。
[0012] 在一个实施例中,本发明包括一种由解码器执行的方法,所述方法包括:所述解码器的处理器通过接收器接收码流,所述码流包括分割成多个分块的图像,其中,若干个分块包括在一个分块组中;所述处理器从所述码流的参数集中获取标志;当所述标志设置为第一值时,所述处理器确定所述分块组为光栅扫描分块组;当所述标志设置为第二值时,所述处理器确定所述分块组为矩形分块组;所述处理器根据所述分块组为所述光栅扫描分块组或所述矩形分块组,确定所述分块组的分块包含关系;所述处理器根据所述分块组对所述分块进行解码,以生成经解码分块;所述处理器根据所述经解码分块生成用于显示的重建视频序列。一些视频编码系统使用包含按光栅扫描顺序分配分块的分块组。其他系统使用矩形分块组来代替,以支持VR、电话会议和其他感兴趣区域的译码方案中的子画面提取。还有其他系统允许编码器根据视频译码应用的类型选择分块组类型。本方面包括指示相应分块组为光栅扫描分块组还是矩形分块组的标志。本方法提醒解码器使用合适的分块组译码方案进行适当的解码。因此,针对不同使用情形,本发明中的标志允许编码器/解码器支持使用多个分块组方案,因此提升了编码器和解码器的功能。此外,指示本发明中的标志可以提高译码效率,降低编码器和/或解码器的内存资源占用率、处理资源占用率和/或网络资源占用率。
[0013] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述标志为矩形分块组标志。
[0014] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述标志编码到的参数集为序列参数集。
[0015] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述标志编码到的参数集为图像参数集。
[0016] 可选地,根据上述任一方面,在所述方面的另一种实施方式中,所述处理器还获取所述分块组的第一个分块的标识和最后一个分块的标识,确定所述分块组包括的所述分块。
[0017] 可选地,根据上述任一方面,在所述方面的另一种实施方式中,从所述码流中的分块组头中获得所述分块组的第一个分块的标识和最后一个分块的标识。
[0018] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,当所述分块组为所述光栅扫描分块组时,所述分块组中的分块包含关系通过以下方式确定:将所述分块组的第一个分块与最后一个分块之间的若干个分块的数量确定为所述分块组中的若干个分块的数量;根据所述分块组中的若干个分块的数量确定所述分块包含关系。
[0019] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,当所述分块组为矩形分块组时,所述分块组中的分块包含关系由以下方法确定:确定所述分块组的第一分块与最后一个分块之间的增量值;根据所述图像中的增量值和若干个分块列的数量确定若干个分块组行的数量;根据所述图像中的增量值和若干个分块列的数量确定若干个分块组列的数量;根据所述若干个分块组行的数量和所述若干个分块组列的数量确定所述分块包含关系。
[0020] 在一个实施例中,本发明包括一种视频译码设备,包括:处理器、耦合到所述处理器的接收器以及耦合到所述处理器的发送器,所述处理器、接收器和发送器,用于执行上述任一方面所述的方法。
[0021] 在一个实施例中,本发明包括非瞬时性计算机可读介质,所述非瞬时性计算机可读介质包括用于视频译码设备的计算机程序产品,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,所述视频译码设备执行执行上述任一方面所述的方法。
[0022] 在一个实施例中,本发明包括一种编码器,包括:分割模块,用于将图像分割成多个分块;包括模块,用于将若干个分块包括在分块组中;编码模块,用于:当所述分块组为光栅扫描分块组时,将标志编码为第一值,当所述分块组为矩形分块组时,将标志编码为第二值,其中,所述标志编码到码流的参数集中;根据分块包含关系将所述分块编码到所述码流中;存储模块,用于存储所述码流,用于与解码器通信。
[0023] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述编码器还用于执行上述任一方面所述的方法。
[0024] 在一个实施例中,本发明包括解码器,包括:接收模块,用于接收码流,所述码流包括分割成多个分块的图像,其中,若干个分块包括在一个分块组中;获取模块,用于从所述码流的参数集中获取标志;确定模块,用于:当所述标志设置为第一值时,确定所述分块组为光栅扫描分块组;当所述标志设置为第二值时,确定所述分块组为矩形分块组;根据所述分块组为所述光栅扫描分块组或所述矩形分块组,确定所述分块组的分块包含关系;解码模块,用于根据所述分块组对所述分块进行解码,以生成经解码分块;生成模块,用于根据所述经解码分块生成用于显示的重建视频序列。
[0025] 可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述解码器还用于执行上述任一方面所述的方法。
[0026] 为了清楚起见,上述任一实施例可以与上述任一其他实施例的一个或多个结合以创建在本发明范围内的新实施例。
[0027] 结合附图的详细描述中,可以更清楚地理解这些以及其他特征。

附图说明

[0028] 为了更透彻地理解本发明的,现参阅结合附图和具体实施方式而进行的以下简要说明,其中相同附图标记表示相同部分。
[0029] 图1为示例性视频信号译码方法的流程图。
[0030] 图2为对视频进行译码的示例性编码和解码(编解码器,codec)系统的示意图。
[0031] 图3为示例性视频编码器的示意图。
[0032] 图4为示例性视频解码器的示意图。
[0033] 图5为包含经编码视频序列的示例性码流的示意图。
[0034] 图6为分割成光栅扫描分块组的示例性图像的示意图。
[0035] 图7为分割成矩形分块组的示例性图像的示意图。
[0036] 图8为示例性视频译码设备的示意图。
[0037] 图9为将图像编码为码流的示例性方法的流程图。
[0038] 图10为从码流中解码图像的示例性方法的流程图。
[0039] 图11为对码流中图像的视频序列进行译码的示例性系统的示意图。

具体实施方式

[0040] 最初应理解,尽管下文提供一个或多个实施例的说明性实施方案,但可使用任意数目的当前已知或现有的技术来实施所公开的系统和/或方法。本发明决不应限于下文所说明的所述说明性实施方案、图式和技术,包含本文所说明并描述的示范性设计和实施方案,而是可以在所附权利要求书的范围以及其均等物的完整范围内修改。
[0041] 本发明采用各种缩略语,例如译码树块(coding tree block,CTB)、译码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)、编码视频序列(coded video sequence,CVS)、联合视频专家组(Joint Video Experts Team,JVET)、运动约束分块集(motion constrained tile set,MCTS)、最大输出单元(maximum transfer unit,MTU)、网络抽象层(network abstraction layer,NAL)、图像顺序编号(picture order count,POC)、原始字节序列载荷(raw byte sequence payload,RBSP)、序列参数集(sequence parameter set,SPS)、通用视频编码(versatile video coding,VVC)、工作草案(working draft,WD)。
[0042] 许多视频压缩技术可以用来压缩视频文件的大小,同时尽量减少数据丢失。例如,视频压缩技术可以包括执行空间(例如,帧内)预测和/或时间(例如,帧间)预测,以减少或删除视频序列中的冗余数据。对于基于块的视频译码,可以将视频条带(slice)(例如,视频图像或视频图像的一部分)分割成视频块,视频块也可以称为树块、译码树块(coding tree block,CTB)、译码树单元(coding tree unit,CTU)、译码单元(coding unit,CU)和/或译码节点。图像的帧内译码(I)条带中的视频块针对同一图像中相邻块中的参考像素点、使用空间预测进行译码。图像的帧间单向预测(P)条带或双向预测(B)条带中的视频块可以针对同一图像中相邻块中的参考像素点使用空间预测,或者针对其他参考图像中的参考像素点使用时间预测。图像(picture/image)可以称为,参考图像可以称为参考帧。空间或时间预测产生表示图像块的预测块。残差数据表示原始图像块和预测块之间的像素差。因此,根据指向构成预测块的参考像素点的块的运动矢量和表示经译码块与预测块之间的差的残差数据,对帧间译码的块进行编码。根据帧内译码模式和残差数据对帧内译码的块进行编码。为了进一步压缩,残差数据可以从像素域变换到变换域。产生残差变换系数,该残差变换系数可以量化。量化变换系数最初可以以二维阵列排列。可以扫描该量化变换系数,产生变换系数的一维向量。并且可以应用熵编码来实现更大的压缩。下文将更详细地讨论这种视频压缩技术。
[0043] 为了保证经编码的视频能够被准确解码,按照相应的视频译码标准对视频进行编解码。视频译码标准包括国际电信联盟标准化部门(International Telecommunication Union Standardization Sector,ITU‑T)H.261标准、国籍标准化组织/国际电工委员会(International Organization  for  Standardization/International Electrotechnical Commission,ISO/IEC)活动图像专家组(Motion Picture Experts Group,MPEG)‑1第2部分、ITU‑T H.262或ISO/IEC MPEG‑2第2部分、ITU‑T H.263、ISO/IEC MPEG‑4第2部分、高级视频编码(Advanced Video Coding,AVC),也称为ITU‑T H.264或ISO/IEC MPEG‑4第10部分,以及高效视频编码(High Efficiency Video Coding,HVEC),也称为ITU‑T H.265或MPEG‑H第2部分。AVC包括可适性视频编码(Scalable Video Coding,SVC)、多视图视频编码(Multiview Video Coding,MVC)和多视图视频编码加深度(Multiview Video Coding plus Depth,MVC+D)和三维高级视频编码(three‑dimentional AVC,3D‑AVC)等扩展。HEVC包括可适性高效视频编码(Scalable HEVC,SHVC)、多视图高效视频编码(Multiview HEVC,MV‑HEVC)和三维高效视频编码(3D HEVC,3D‑HEVC)等扩展。ITU‑T和ISO/IEC的联合视频专家组(Joint Video Experts Team,JVET)已开始开发一种称为通用视频译码(Versatile Video Coding,VVC)的视频译码标准。VVC包括在工作草案(Working Draft,WD)中,其中该工作草案包括JVET‑L1001‑v5。
[0044] 为了对视频图像进行译码,首先对图像进行分割,并将图像块编码到码流中。图像的分割方案有多种。例如,根据波前并行处理(Wavefront Parallel Processing,WPP)图像可以被分割成常规条带、非独立条带、和/或分块。为了简单起见,HEVC限制了编码器,使得在将条带划分成用于视频译码的CTB组时,只能使用常规条带、非独立条带、分块、WPP及其组合。这种分割方法可以用于支持最大传输单元(maximum transfer unit,MTU)大小匹配、并行处理和降低端到端延迟。MTU表示单个报文能够传输的最大数据量。如果报文净荷超过MTU,则通过分片过程将净荷分成两个报文。
[0045] 常规条带,也简单地称为条带,是图像被分割的部分,可以独立于同一图像中的其他常规条带重建,尽管由于环路滤波操作会产生一些依赖关系。每个常规条带被封装在自己的网络抽象层(network abstraction layer,NAL)单元中进行发送。进一步地,可以不使能帧内预测(帧内像素点预测、运动信息预测、译码模式预测)和跨条带边界的熵编码的依赖,以支持独立重建。这种独立重建支持并行化。例如,基于常规条带的并行化使用最小的处理器间或核间通信。然而,由于每个常规条带是独立的,因此每个条带都与单独的条带头相关联。由于每个条带的条带头的比特成本,且由于缺乏跨条带边界的预测,使用常规条带会带来大量的译码开销。此外,可以使用常规条带来满足MTU大小匹配要求。具体地,由于常规条带被封装在单独的NAL单元中,并且可以独立进行译码,所以每个常规条带应该小于MTU方案中的MTU,以避免条带被分成多个报文。因此,并行化的目标和MTU大小匹配的目标可能会对图像中的条带布局提出不同的要求。
[0046] 非独立条带与常规条带类似,但非独立条带的条带头更短,并且允许在不破坏帧内预测的情况下对图像树块边界进行分割。因此,非独立条带允许将常规条带分成多个NAL单元,并通过允许在完成整个常规条带的编码之前发送出常规条带的一部分,降低端到端的延迟。
[0047] 分块是图像中由水平和垂直边界划分的分割部分,这些边界形成了分块的列和行。分块可以按光栅扫描顺序(从右到左,从上到下)进行译码。CTB的扫描顺序在分块内部进行。因此,在进行到下一个分块中的CTB之前,第一分块中的CTB按照光栅扫描顺序进行译码。与常规条带类似,分块解除了对帧内预测以及对熵解码的依赖。但是,单个NAL单元中可能不包括分块,因此,分块可能不用于MTU大小匹配。每个分块可以由一个处理器/核处理,用于解码相邻分块的处理单元之间的帧内预测的处理器间/核间通信可以限制用于(当相邻分块在同一条带中时)发送共享的条带头,和执行与环路滤波相关的重建像素点和元数据的共享。当条带中包括多个分块时,可以在条带头中指示除条带中的第一入口点偏移之外的每个分块的入口点字节偏移。对于每个条带和分块,应至少满足以下一个条件:(1)条带中的所有经译码树块属于同一个分块;(2)条带中的所有经译码树块属于同一个条带。
[0048] 在WPP中,图像被分割成单行CTB。熵解码和预测机制可以使用来自其他行中的CTB的数据。通过对CTB行进行并行解码,可以实现并行处理。例如,当前行可以与前一行并行解码。但是,当前行的解码会从前几行的解码过程中延迟两个CTB。该延迟确保在对当前CTB进行译码前,与上述CTB和当前行中当前CTB右侧相关的数据可用。当用图形表示时,该方法以波前的形式表示。这种交错启动方式允许使用与图像中包含的CTB行数相同的处理器/核数量进行并行处理。由于可以在图像内相邻树块行之间进行帧内预测,因此使用处理器间/核间通信来实现帧内预测非常重要。WPP分割方法不考虑NAL单元大小。因此,WPP不支持MTU大小匹配。然而,常规条带可以与WPP结合使用,并产生一定译码开销,以实现所需的MTU大小匹配。
[0049] 分块也可以包括运动约束分块集。运动约束分块集(motion constrained tile set,MCTS)是一种分块集,使得相关的运动矢量被限制为指向MCTS内部的整像素位置和仅需要MCTS内部的整像素位置进行插值的分数像素位置。此外,不允许将运动矢量候选用于从MCTS外部的块推导的时间运动矢量预测。这样,每个MCTS可以独立解码,而不存在MCTS中未包括的块。时间MCTS补充增强信息(supplemental enhancement information,SEI)消息可以用于表示码流中存在MCTS并指示(signal)MCTS。MCTS SEI消息提供可用于MCTS子码流提取(指定为SEI消息语义的一部分)的补充信息,以生成符合MCTS的码流。所述信息包括若干个提取信息集,每个提取信息集定义若干个MCTS,并包含了替换视频参数集(video parameter set,VPS)、序列参数集(sequence parameter set,SPS)和图像参数集(picture parameter set,PPS)的原始字节序列载荷(raw bytes sequence payload,RBSP)字节,以便在MCTS子码流提取过程中使用。根据MCTS子码流提取过程提取子码流时,参数集合(VPS、SPS、PPS)可能被改写或替换,并且可能需要更新条带头,因为一个或多个与条带地址相关的语法元素(包括first_slice_segment_in_pic_flag和slice_segment_address)可以在已提取的子码流中使用不同的值。
[0050] 本发明涉及不同的分块方案。具体地,当图像被分割成分块时,可以将所述分块分配给分块组。分块组是可以单独提取和译码的相关分块的集合,例如,以支持感兴趣区域的显示和/或支持并行处理。可以将分块分配给分块组,以允许在组内应用对应的参数、函数、译码工具等。例如,分块组中可包含MCTS。在另一示例中,分块组可以单独处理和/或提取。有些系统使用光栅扫描机制来创建相应的分块组。如本文所使用的,光栅扫描分块组是按照光栅扫描顺序分配分块的分块组。光栅扫描顺序按照从右到左,从上到下的顺序在第一个分块和最后一个分块之间连续进行。光栅扫描分块组可能对某些应用很有用,例如在支持并行处理方面。
[0051] 但是,在某些情况下,光栅扫描分块组可能效率不高。例如,在虚拟现实(virtual reality,VR)应用中,周围环境被记录为编码到图像中的球面。然后,用户可以通过观看自己选择的图像的子图像来体验周围环境。用户选择的子图像可以称为感兴趣区域。允许用户有选择地感知周围环境的一部分,使用户产生出现在该环境中的感觉。因此,图像的未选择部分可能不会被观看,因此被丢弃。因此,可以差别对待用户选择的子图像和未选择的子图像(例如,未选择的子图像可以以较低的分辨率指示,也可以在呈现(rendering)过程中使用更简单的机制进行处理等)。分块组允许在子图像之间进行这种差别处理。然而,用户选择的子图像通常是矩形和/或方形区域。因此,光栅扫描分块组可能对此类情况没有用。
[0052] 为了克服这些问题,一些系统采用矩形分块组。矩形分块组是包含组合在一起可以形成矩形形状的分块的分块组。如本文所使用的矩形,是一个正好有四个边相连的形状,使得每个边都以90度角与另外两个边连接。两种分块组方法(例如,光栅扫描分块组和矩形分块组)各有优点和缺点。因此,视频译码系统可以同时支持这两种方法。然而,当这两种方法都可用时,视频译码系统可能无法高效地指示分块组的使用情况。例如,这些方法的指示的简单合并可能导致语法结构复杂,影响效率,和/或需要增加编码器和/或解码器的处理器。本发明提供了用于解决视频译码技术中的这些问题和其他问题的机制。
[0053] 本文公开了各种机制,这些机制通过使用简单、紧凑的指示来协调光栅扫描分块组和矩形分块组的使用。这种指示提高了译码效率,从而降低了编码器和/或解码器的内存资源占用率、处理资源占用率和/或网络资源占用率。为了协调这些方法,编码器可以指示用于表示使用哪种类型分块组的标志。例如,标志可以是在参数集中指示的矩形分块组标志,例如SPS和/或PPS。该标志可以表示编码器使用的是光栅扫描分块组还是矩形分块组。然后,编码器可以通过简单地指示分块组中的第一个分块和最后一个分块来表示分块组成员关系。解码器可以根据第一个分块、最后一个分块以及分块组类型的表示,确定分块组中包含哪些分块。因此,可以从码流中省略每个分块组中所有分块的完整列表,从而提高译码效率。例如,如果该分块组为光栅分块组,则可以通过确定分块组的第一个分块和最后一个分块之间的若干个分块的数量,并通过将第一个分块和最后一个分块之间带有标识的许多分块添加到分块组中,来确定分配给分块组的分块。如果该分块组为矩形分块组,则可以使用不同的方法。例如,可以确定分块组的第一个分块和最后一个分块之间的增量(delta)值。然后,根据图像中的增量值和若干个分块列的数量,可以确定若干个分块组行的数量和若干个分块组列的数量。再根据所述若干个分块组行的数量和所述若干个分块组列的数量确定分块组中的分块。下面详细描述这些例子和其他例子。
[0054] 图1为示例性视频信号译码方法100的流程图。具体地,在编码器侧对视频信号进行编码。编码过程通过采用各种机制来压缩视频信号以减小视频文件大小。较小的文件大小允许在减少相关的带宽开销的同时,将压缩的视频文件发送给用户。然后,解码器对压缩的视频文件进行解码,以重建原始视频信号,向终端用户显示。解码过程通常与编码过程对应以允许解码器一致地重建视频信号。
[0055] 在步骤101中,将视频信号输入编码器中。例如,视频信号可以是存储在存储器中的未压缩的视频文件。在另一示例中,视频文件可以由视频捕获设备(如视频摄像机)捕获,并且进行编码以支持视频的直播。所述视频文件可以包括音频分量和视频分量。所述视频分量包括一系列图像帧,当按顺序观看时,这些图像帧会产生运动的视觉效果。这些帧包括根据光表示的像素(本文称为亮度分量(或亮度像素点))和颜色(称为色度分量(或色度像素点))。在一些示例中,这些帧还可以包括深度值以支持三维观看。
[0056] 在步骤103中,将视频分割成块。分割包括将每个帧中的像素细分为用于压缩的方块和/或矩形块。例如,在高效视频编码(High Efficiency Video Coding,HEVC)(即H.265和MPEG‑H第2部分)中,可以首先将帧分为译码树单元(coding tree unit,CTU),所述译码树单元为预定义大小(例如,64×64个像素)的块。CTU包括亮度像素点和色度像素点。可以使用译码树将CTU分成块,然后递归细分这些块,直到获得支持进一步编码的配置。例如,可以对帧的亮度分量进行细分,直到各个块包括相对均匀的亮度值。此外,可以对帧的色度分量进行细分,直到各个块包括相对均匀的颜色值。因此,分割机制根据视频帧的内容而不同。
[0057] 在步骤105中,采用各种压缩机制来压缩在步骤103中分割的图像块。例如,可以使用帧间预测和/或帧内预测。帧间预测旨在利用共同场景中的对象往往出现在连续帧中这一事实。因此,无需在相邻帧中对参考帧中描绘对象的块进行重复描述。具体地,一个对象(如一张桌子)可以在多个帧中保持恒定的位置。因此,只描述一次桌子,相邻帧可以重新参考参考帧。可以采用模式匹配机制来匹配多个帧中的对象。此外,由于对象移动或摄像机移动等,移动对象可以通过多个帧表示。在特定示例中,视频可以通过多个帧显示在屏幕上移动的汽车。可以采用运动矢量描述这种移动。运动矢量是一个二维矢量,提供从帧中对象的坐标到参考帧中该对象的坐标的偏移。因此,帧间预测可以将当前帧中的图像块编码为运动矢量集合,表示相对于参考帧中对应块的偏移。
[0058] 帧内预测对公共帧中的块进行编码。帧内预测利用亮度分量和色度分量往往在帧中聚集这一事实。例如,一棵树的一部分中的一片绿色往往与几片类似的绿色相邻。帧内预测采用多种方向预测模式(例如,HEVC中的33种模式)、平面模式和直流(direct current,DC)模式。所述方向模式表示当前块与对应方向上邻块的像素点相似/相同。平面模式表示可以基于行边缘处的邻块对行/列(例如平面)上的一系列块进行内插。实际上,平面模式通过采用变化值的相对恒定的斜率来表示光/颜色在行/列上的平滑转变。DC模式用于边界平滑,表示块和与所有邻块的像素点相关联的平均值相似/相同,所述邻块与方向预测模式的角方向相关联。因此,帧内预测块可以将图像块表示为各种关系预测模式值而非实际值。帧间预测块可以将图像块表示为运动矢量值而非实际值。在任一种情况下,,预测块在某些情况下可能无法准确地表示图像块。所有差值都存储在残差块中。可以对残差块进行变换以进一步压缩文件。
[0059] 在步骤107中,可以应用各种滤波技术。在HEVC中,根据环内滤波方案应用滤波器。上文描述的基于块的预测可能使得在解码器侧创建块状图像。此外,基于块的预测方案可以对块进行编码,然后重建编码块,以供以后用作参考块。所述环内滤波方案迭代地将噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和像素点自适应偏移(sample adaptive offset,SAO)滤波器应用于块/帧。这些滤波器缓解了此类块伪影,从而可以准确地重建编码文件。此外,这些滤波器缓解了重建参考块中的伪影,使得伪影不太可能在基于重建参考块编码的后续块中产生其它的伪影。
[0060] 在步骤109中,一旦对视频信号进行了分割、压缩和滤波,则在码流中对所得数据进行编码。所述码流包括上述数据以及支持在解码器侧进行适当的视频信号重建所需要的指示数据。例如,此类数据可以包括分割数据、预测数据、残差块和向解码器提供编码指令的各种标志。所述码流可以存储在存储器中,以便在请求时向解码器发送。还可以向多个解码器广播和/或组播所述码流。创建码流是一个迭代过程。因此,步骤101、103、105、107和109可以在多个帧和块中连续和/或同时执行。图1所示的顺序是为了清楚和用于描述而呈现的,并非旨在将视频编码过程限制于特定顺序。
[0061] 在步骤111中,所述解码器接收所述码流并开始解码过程。具体地,所述解码器采用熵解码方案将所述码流转换为对应的语法数据和视频数据。在步骤111中,所述解码器采用所述码流中的语法数据来确定帧的分割。分割应该与步骤103中的块分割结果匹配。这里描述了步骤111中采用的熵编码/解码。所述编码器在压缩过程中进行许多选择,例如根据一个或多个输入图像中值的空间定位从多个可能选择中选择块分割方案。指示确切的选择可能会使用大量的位元。本文中使用位元是被视为变量的二进制值(例如,可能根据上下文变化的比特值)。熵编码允许编码器丢弃任何明显不适合特定情况的选项,从而留下一组可使用的选项。然后,为每个可使用的选项分配码字。码字的长度取决于可使用的选项的数量(例如,一个位元对应两个选项,两个位元对应三个或四个选项等)。然后,所述编码器对所选选项的码字进行编码。该方案减小了码字的大小,因为码字的大小与唯一指示从可使用的选项的小子集中的一个选项,而非唯一指示从所有可能选项的潜在大集中的选项所需要的码字一样大。然后,所述解码器通过以与所述编码器类似的方式确定可使用选项集来对所述选择进行解码。通过确定可使用选项集,所述解码器可以读取码字并确定所述编码器做出的选择。
[0062] 在步骤113中,解码器执行块解码。具体地,所述解码器进行逆变换来生成残差块。然后,所述解码器使用残差块和对应的预测块,根据分割重建图像块。所述预测块可以包括在步骤105中编码器侧生成的帧内预测块和帧间预测块。然后,根据在步骤111中确定的分割数据将重建图像块定位到重建视频信号的帧中。步骤113的语法还可以通过上文描述的熵编码在码流中指示。
[0063] 在步骤115中,以类似于步骤107的方式在编码器侧对重建视频信号的帧进行滤波。例如,可以对帧应用噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和SAO滤波器以去除块伪影。一旦对帧进行滤波,可以在步骤117中将视频信号输出到显示器以供终端用户观看。
[0064] 图2为对视频进行译码的示例性编码和解码(编解码器,codec)系统200的示意图。具体地,编解码系统200能够实现操作方法100。编解码系统200广义地描述编码器和解码器中使用的组件。编解码系统200接收视频信号并对视频信号进行分割,如操作方法100中的步骤101和103所描述,从而产生经分割的视频信号201。然后,当作为编码器时,编解码系统
200将经分割的视频信号201压缩到经编码码流中,如方法100中的步骤105、107和109所描述的。当作为解码器时,编解码系统200从码流中生成输出视频信号,如操作方法100中的步骤111、113、115和117所描述的。编解码系统200包括通用编码器控制组件211、变换缩放和量化组件213、帧内估计组件215、帧内预测组件217、运动补偿组件219、运动估计组件221、缩放和逆变换组件229、滤波器控制分析组件227、环内滤波器组件225、解码图像缓冲器组件223、标头格式化和上下文自适应二进制算术编码(context  adaptive  binary arithmetic coding,CABAC)组件231。此类组件如图所示耦合。在图2中,黑线表示待编码/解码数据的移动,而虚线表示控制其它组件操作的控制数据的移动。编解码系统200的组件都可以在编码器中使用。解码器可以包括编解码系统200的组件的子集。例如,解码器可以包括帧内预测组件217、运动补偿组件219、缩放和逆变换组件229、环内滤波器组件225和解码图像缓冲器组件223。这里对这些组件进行描述。
[0065] 经分割的视频信号201是已通过编码树分割成像素块的捕获视频序列。译码树采用各种划分模式将像素块细分为更小的像素块。然后可以将这些块进一步细分为更小块。所述块可以称为译码树上的节点。较大的父节点被划分成较小的子节点。节点被细分的次数称为节点/译码树的深度。在某些情况下,划分的块可以包括在编码单元(coding unit,CU)中。例如,CU可以是CTU的子部分,包括亮度块、红差色度(Cr)块和蓝差色度(Cb)块以及CU的对应语法指令。所述划分模式可以包括二叉树(binary tree,BT)、三叉树(triple tree,TT)和四叉树(quad tree,QT),用于根据所采用的划分模式,分别将节点分割为不同形状的两个、三个或四个子节点。将经分割的视频信号201转发给通用编码器控制组件211、变换缩放和量化组件213、帧内估计组件215、滤波器控制分析组件227和运动估计组件221进行压缩。
[0066] 通用译码器控制组件211用于根据应用约束做出与将视频序列的图像编码到码流中相关的决策。例如,通用编码器控制组件211管理码率/码流大小相对于重建质量的优化。可以根据存储空间/带宽可用性和图像分辨率请求做出此类决策。通用编码器控制组件211还根据传输速度管理缓冲器利用率,以缓解缓存欠载和超载问题。为了解决这些问题,通用编码器控制组件211管理由其它组件进行的分割、预测和滤波。例如,通用编码器控制组件
211可以动态地提高压缩复杂度以提高分辨率和增加带宽利用率,或者降低压缩复杂度以降低分辨率和带宽利用率。因此,通用编码器控制组件211控制编解码系统200的其它组件来平衡视频信号重建质量与码率问题。通用编码器控制组件211创建控制数据,这些控制数据控制其它组件的操作。还将所述控制数据转发给标头格式化和CABAC组件231,以在码流中进行编码,从而指示用于在解码器中解码的参数。
[0067] 还将经分割的视频信号201发送到运动估计组件221和运动补偿组件219进行帧间预测。可以将经分割的视频信号201的帧或条带分成多个视频块。运动估计组件221和运动补偿组件219相对于一个或多个参考帧中的一个或多个块对所接收视频块进行帧间预测译码以提供时间预测。编解码系统200可以执行多个译码过程,以便为每个视频数据块选择适当的译码模式等等。
[0068] 运动估计组件221和运动补偿组件219可以高度集成,但出于概念目的进行单独说明。运动估计组件221执行的运动估计是生成运动矢量的过程,其中,这些运动矢量用于估计视频块的运动。例如,运动矢量可以指示编码对象相对于预测块的位移。预测块是被发现在像素差异方面与待编码块高度匹配的块。预测块也可以称为参考块。此类像素差异可以通过绝对差异和(sum of absolute difference,SAD)、平方差异和(sum of square difference,SSD)或其它差异度量来确定。HEVC采用若干编码对象,包括CTU、译码树块(coding tree block,CTB)和CU。例如,可以将CTU分成多个CTB,然后可以将CTB划分为多个CB包括在CU中。可以将CU编码为包括预测数据的预测单元(prediction unit,PU)和/或包括CU的变化残差数据的变换单元(transform unit,TU)。运动估计组件221使用率失真分析作为率失真优化过程的一部分来生成运动矢量、PU和TU。例如,运动估计组件221可以确定当前块/帧的多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重建的质量(例如,压缩造成的数据丢失量)和译码效率(例如,最终编码的大小)。
[0069] 在一些示例中,编解码系统200可以计算存储在解码图像缓冲器组件223中的参考图像的子整数像素位置的值。例如,视频编解码系统200可以内插参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计组件221可以执行相对于全像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件221通过将PU的位置与参考图像的预测块的位置进行比较来计算帧间编码条带中视频块的PU的运动矢量。运动估计组件221将计算的运动矢量作为运动数据输出到标头格式化和CABAC组件231以进行编码,并将运动输出到运动补偿组件219。
[0070] 运动补偿组件219执行的运动补偿可以涉及根据运动估计组件221所确定的运动矢量获取或生成预测块。另外,在一些示例中,运动估计组件221和运动补偿组件219可以在功能上集成。在接收当前视频块的PU的运动矢量之后,运动补偿组件219可以定位运动矢量指向的预测块。然后,从所编码的当前视频块的像素值中减去预测块的像素值,从而形成像素差值,如此形成残差视频块。通常,运动估计组件221相对于亮度分量执行运动估计,运动补偿组件219将根据亮度分量计算的运动矢量用于色度分量和亮度分量。将预测块和残差块转发给变换缩放和量化组件213。
[0071] 还将经分割的视频信号201发送到帧内估计组件215和帧内预测组件217。如同运动估计组件221和运动补偿组件219,帧内估计组件215和帧内预测组件217可以高度集成,但出于概念目的进行单独说明。帧内估计组件215和帧内预测组件217相对于当前帧中的块对当前块进行帧内预测,以替代如上所述的由运动估计组件221和运动补偿组件219在各帧之间执行的帧间预测。具体地,帧内估计组件215确定帧内预测模式来用于对当前块进行编码。在一些示例中,帧内估计组件215从多个测试的帧内预测模式中选择适当的帧内预测模式来对当前块进行编码。然后,将所选择的帧内预测模式转发给标头格式化和CABAC组件231进行编码。
[0072] 例如,帧内估计组件215使用对各种测试的帧内预测模式的率失真分析来计算率失真值,并在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码块与经编码以产生编码块的原始未编码块之间的失真(或误差)量,以及用于产生编码块的码率(例如,比特数)。帧内估计组件215根据各种编码块的失真和速率计算比率,以确定哪种帧内预测模式表现出块的最佳率失真值。此外,帧内估计组件215可用于基于率失真优化(rate‑distortion optimization,RDO),使用深度建模模式(depth modeling mode,DMM)对深度图的深度块进行编码。
[0073] 当在编码器上实现时,帧内预测组件217可以基于由帧内估计组件215确定的所选帧内预测模式从预测块生成残差块,或者当在解码器上实现时,从码流读取残差块。所述残差块包括预测块与原始块之间的值差,表示为矩阵。然后,将残差块转发给变换缩放和量化组件213。帧内估计组件215和帧内预测组件217可以对亮度分量和色度分量进行操作。
[0074] 变换缩放和量化组件213用于进一步压缩残差块。变换缩放和量化组件213对残差块应用变换,如离散余弦变换(discrete cosine transform,DCT)、离散正弦变换(discrete sine transform,DST)或概念上类似的变换,从而产生包括残差变换系数值的视频块。还可以使用小波变换、整数变换、子带变换或其它类型的变换。变换可以将残差信息从像素值域转化到变换域,如频域。变换缩放和量化组件213还用于根据频率等对变换的残差信息进行缩放。这种缩放涉及对残差信息应用缩放因子,以便在不同粒度下量化不同的频率信息,这可能会影响重建视频的最终视觉质量。变换缩放和量化组件213还用于量化变换系数以进一步降低码率。量化过程可以降低与一些或全部系数有关的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化组件213随后可以对包括量化变换系数的矩阵进行扫描。将量化变换系数转发给标头格式化和CABAC组件231,以在码流中编码。
[0075] 缩放和逆变换组件229应用变换缩放和量化组件213的逆操作以支持运动估计。缩放和逆变换组件229使用逆缩放、逆变换和/或反量化以重建像素域中的残差块,例如,用于以后用作参考块,所述参考块可成为另一当前块的预测块。运动估计组件221和/或运动补偿组件219可以通过将残差块添加回对应的预测块来计算参考块,以用于后续块/帧的运动估计。将滤波器应用于重建参考块,以减少在缩放、量化和变换期间产生的伪影。当预测后续块时,此类伪影可能导致不准确的预测(并产生其它伪影)。
[0076] 滤波器控制分析组件227和环内滤波器组件225将滤波器应用于残差块和/或重建图像块。例如,可以将缩放和逆变换组件229的变换残差块与帧内预测组件217和/或运动补偿组件219的对应预测块合并以重建原始图像块。然后,可以将滤波器应用于重建图像块。在一些示例中,滤波器可以转而应用于残差块。如同图2中的其它组件,滤波器控制分析组件227和环内滤波器组件225高度集成,可以一起实施,但出于概念目的进行单独描述。应用于重建参考块的滤波器应用于特定空间区域,包括多个参数以调整应用此类滤波器的方式。滤波器控制分析组件227对重建参考块进行分析,以确定应该应用此类滤波器的位置并设置对应的参数。将此类数据作为滤波器控制数据转发给标头格式化和CABAC组件231进行编码。环内滤波器组件225根据滤波器控制数据应用此类滤波器。所述滤波器可以包括去块效应滤波器、噪声抑制滤波器、SAO滤波器和自适应环路滤波器。此类滤波器可以根据示例应用于空间域/像素域(例如,针对重建像素块)或频域中。
[0077] 当作为编码器操作时,将经滤波的重建图像块、残差块和/或预测块存储在解码图像缓冲器组件223中,以供以后用于运动估计,如上所述。当作为解码器操作时,解码图像缓冲器组件223存储经重建和经滤波的块并将其作为输出视频信号的一部分向显示器转发。解码图像缓冲器组件223可以是能够存储预测块、残差块和/或重建图像块的任何存储器设备。
[0078] 标头格式化和CABAC组件231从编解码系统200的各组件接收数据并将此类数据编码到经编码码流中以向解码器发送。具体地,标头格式化和CABAC组件231生成各种标头以对控制数据(如一般控制数据和滤波器控制数据)进行编码。此外,预测数据(包括帧内预测)和运动数据,以及量化变换系数数据形式的残差数据均在码流中进行编码。最终码流包括解码器重建原始的经分割的视频信号201所需要的所有信息。此类信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能的帧内预测模式的指示、分割信息的指示等。此类数据可以采用熵编码进行编码。例如,可以采用上下文自适应可变长度编码(context adaptive variable length coding,CAVLC)、CABAC、基于语法的上下文自适应二进制算术编码(syntax‑based context‑adaptive binary arithmetic coding,SBAC)、概率区间分割熵(probability interval partitioning entropy,PIPE)编码或另一种熵编码技术对信息进行编码。在熵编码之后,可以将经编码码流传输到另一设备(例如,视频解码器)或存档以用于后续传输或检索。
[0079] 图3为示例性视频编码器300的框图。视频编码器300可用于实现编解码系统200的编码功能和/或实现操作方法100的步骤101、103、105、107和/或109。编码器300对输入视频信号进行分割,从而产生经分割的视频信号301,其中,所述经分割的视频信号301实质上类似于经分割的视频信号201。然后,通过编码器300的组件压缩经分割的视频信号301并编码到码流中。
[0080] 具体地,将经分割的视频信号301转发给帧内预测组件317进行帧内预测。帧内预测组件317可以基本上类似于帧内估计组件215和帧内预测组件217。还将经分割的视频信号301转发给运动补偿组件321,以根据解码图像缓冲器组件323中的参考块进行帧间预测。运动补偿组件321可以实质上类似于运动估计组件221和运动补偿组件219。将帧内预测组件317和运动补偿组件321的预测块和残差块转发给变换和量化组件313以对残差块进行变换和量化。变换和量化组件313可以基本上类似于变换缩放和量化组件213。将经变换和量化的残差块和对应的预测块(连同相关控制数据)转发给熵编码组件331以编码到码流中。
熵编码组件331可以基本上类似于标头格式化和CABAC组件231。
[0081] 也将经变换和量化的残差块和/或对应的预测块从变换和量化组件313转发给逆变换和量化组件329以重建成参考块供运动补偿组件321使用。逆变换和量化组件329可以实质上类似于缩放和逆变换组件229。根据示例,也将环内滤波器组件325中的环内滤波器应用于残差块和/或重建参考块。环内滤波器组件325可以基本上类似于滤波器控制分析组件227和环内滤波器组件225。环内滤波器组件325可以包括多个滤波器,如环内滤波器组件225所描述的。然后,将滤波块存储在解码图像缓冲器组件323中,以供运动补偿组件321用作参考块。解码图像缓冲器组件323可以基本上类似于解码图像缓冲器组件223。
[0082] 图4为示例性视频解码器400的框图。视频解码器400可用于实现编解码系统200的解码功能和/或实现操作方法100的步骤111、113、115和/或117。例如,解码器400从编码器300接收码流,并根据所述码流生成重建的输出视频信号,向终端用户显示。
[0083] 所述码流由熵解码组件433接收。熵解码组件433用于实现熵解码方案,如CAVLC、CABAC、SBAC、PIPE编码或其它熵编码技术。例如,熵解码组件433可以使用标头信息来提供上下文以解释在码流中编码为码字的其它数据。解码信息包括对视频信号进行解码所需的任何信息,如总体控制数据、滤波器控制数据、分割信息、运动数据、预测数据和残差块中的量化变换系数。将量化变换系数转发给逆变换和量化组件429以重建成残差块。逆变换和量化组件429可以类似于逆变换和量化组件329。
[0084] 将重建残差块和/或预测块转发给帧内预测组件417,以根据帧内预测操作重建成图像块。帧内预测组件417可以类似于帧内估计组件215和帧内预测组件217。具体地,帧内预测组件417采用预测模式来定位帧中的参考块,并将残差块应用于结果以重建帧内预测图像块。重建的帧内预测图像块和/或残差块以及对应的帧间预测数据通过环内滤波器组件425转发给解码图像缓冲器组件423。解码图像缓冲器组件423和环内滤波器组件425可以分别基本上类似于解码图像缓冲器组件223和环内滤波器组件225。环内滤波器组件425对重建图像块、残差块和/或预测块进行滤波,并且将此类信息存储在解码图像缓冲器组件423中。将来自解码图像缓冲器组件423的重建图像块转发给运动补偿组件421进行帧间预测。运动补偿组件421可以基本上类似于运动估计组件221和/或运动补偿组件219。具体地,运动补偿组件421采用来自参考块的运动矢量来生成预测块,并将残差块应用于结果以重建图像块。还可以通过环内滤波器组件425将所得重建块转发给解码图像缓冲器组件423。
解码图像缓冲器组件423继续存储附加重建图像块,这些重建图像块可以通过分割信息重建成帧。也可以此类帧可以位于序列中。将所述序列作为重建的视频信号向显示器输出。
[0085] 图5为包括经编码视频序列的示例性码流500的示意图。例如,码流500可以由编解码系统200和/或编码器300生成,用于由编解码系统200和/或解码器400解码。在另一示例中,码流500可以由方法100的步骤109中的编码器生成,以供步骤111中的解码器使用。
[0086] 码流500包括序列参数集(sequence parameter set,SPS)510、多个图像参数集(picture parameter set,PPS)512、分块组头514和图像数据520。SPS 510包括码流500的视频序列中所有图像共用的序列数据。此类数据可以包括图像大小、位深度、译码工具参数、码率限制等。PPS 512包含一个或多个相应图像的特定参数。因此,视频序列中的每个图像可以指代一个PPS 512。PPS 512可以表示可用于对应图像中的分块的译码工具、量化参数、偏移、图像特定的译码工具参数(例如,滤波器控件)等。分块组头514包含图像中每个分块组的特定参数。因此,视频序列中的每个分块组都可以有一个分块组头514。分块组头514可以包括分块组信息、图像顺序编号(picture order count,POC)、参考图像列表、预测权重、分块入口点、去块参数等。需要注意的是,有些系统将分块组头514称为条带头,并使用这些信息来描述条带而不是分块组。
[0087] 图像数据520包括根据帧间预测和/或帧内预测编码的视频数据以及相应的经变换量化的残差数据。根据编码前用于对图像进行分割的分割方法,整理所述图像数据520。例如,将图像数据520中的图像划分为一个或多个分块组521。每个分块组521包括一个或多个分块523。分块523又进一步划分为译码树单元(coding tree unit,CTU)。可以使用译码树将CTU进一步划分成译码块。然后可以根据预测机制对译码块进行编码/解码。一个图像可以包含一个或多个分块组521和一个或多个分块523。
[0088] 分块组521是可以单独提取和译码的相关分块523的集合,例如,以支持感兴趣区域的显示和/或支持并行处理。一个图像可以包含一个或多个分块组521。每个分块组521参考对应的分块组头514中的译码工具。因此,通过改变对应的分块组头514中的数据,可以使用与其他分块组521不同的译码工具对当前分块组521进行译码。分块组521可以按照用于将分块523分配给分块组521的机制来描述。包括以光栅扫描顺序分配的分块523的分块组521可以称为光栅扫描分块组。包括用于划分矩形(或方形)的分块523的分块组521可称为矩形分块组。图6‑7分别包括了光栅扫描分块组和矩形分块组的示例,下文将进行更详细的讨论。
[0089] 分块523是由水平和垂直边界划分的图像的分割部分。分块523可以是矩形和/或方形。图像可以分割成分块523的行和列。分块523的行是一组以水平相邻的方式放置的分块523,从图像的左边界划到右边界的连续线(反之亦然)。分块523的列是一组以垂直相邻方式放置的分块523,从图像的上边界划到下边界的连续线(反之亦然)。分块523可以允许也可以不允许根据其他分块523进行预测,具体情况取决于实际示例。例如,分块组521可包括一组指定为MCTS的分块523。MCTS中的分块523可以通过MCTS中的其他分块523的预测来译码,但不能通过MCTS外部的分块523来编码。分块523可以进一步分割成CTU。可以使用译码树将CTU分割成译码块,译码块可以根据帧内预测或帧间预测进行译码。
[0090] 每个分块523可以在图像中具有唯一的分块索引524。分块索引524是按照流程选择的数字标识,可用于将一个分块523与另一个分块523区分开。例如,分块索引524可以按光栅扫描顺序以数字方式增加。光栅扫描顺序为从左到右,从上到下。需要注意的是,在一些示例中,也可以为分块523分配分块标识(identifier,ID)。分块ID是可以用于区分一个分块523与另一个分块523而分配的标识。在一些示例中,可以使用分块ID而非分块索引524进行计算。此外,在一些示例中,可以为分块ID分配与分块索引524相同的值。在一些示例中,可以指示分块索引524和/或分块ID来表示包括分块523的分块组521的边界。此外,可以使用分块索引524和/或分块ID将与分块523相关联的图像数据520映射到用于显示的适当位置。
[0091] 如上所述,分块组521可以为光栅扫描分块组或矩形分块组。本发明包括允许编解码器支持这两种分块组521类型的指示机制,以提高译码效率并降低复杂度。分块组标志531为数据单元,可以用于指示对应的分块组521是光栅扫描分块组还是矩形分块组。可以在SPS510或PPS 512中指示分块组标志531,具体情况取决于实际示例。通过表示码流500中的第一分块532和最后一个分块533,可以指示分配给分块组521的分块523。例如,第一分块
532可包括分块组521中第一位置处的分块索引524或分块523的分块ID。第一位置为矩形分块组的左上角,以及光栅扫描分块组中最小的索引/ID。另外,最后一个分块533可包括分块组521中最后一个位置处的分块索引524或分块523的分块ID。最后一个位置为矩形分块组的右下角,以及光栅扫描分块组中最大的索引/ID。
[0092] 分块组标志531、第一分块532和最后一个分块533提供足够的信息,从而解码器确定分块组521中的分块523。例如,光栅扫描机制可以根据第一分块532和最后一个分块533,确定光栅扫描分块组中的分块523。另外,矩形机制可以根据第一分块532和最后一个分块533,确定矩形分块组中的分块523。码流500中可以省略对应的分块组521中的其他分块523的分块索引524,减小了码流500的大小,从而提高了译码效率。因此,分块组标志531提供足够的信息,从而解码器确定采用何种机制来确定将哪些分块523分配给分块组521。
[0093] 因此,编码器可以确定是否要对码流500或其子部分使用光栅扫描分块组或矩形分块组。然后,编码器可以设置分块组标志531。编码器还可以将分块523分配给分块组521,并将第一分块532和最后一个分块533包括在码流500中。然后,编码器处的假设参考解码(hypothetical reference decoder,HRD)可以根据分块组标志531、第一分块532和最后一个分块533来确定分块组521中分块523的分配情况。HRD是一组编码端模块,用于预测解码端的解码结果,作为RDO过程中选择最佳译码方法的一部分。解码器还可以接收码流500,并根据分块组标志531、第一分块532和最后一个分块533来确定分块组521的分配情况。具体地,无论是编码器还是解码器处的HRD,都可以根据分块组标志531选择使用光栅扫描机制或矩形机制。然后,解码器处的HRD可以使用所选择的机制,以根据第一分块532和最后一个分块533来确定分块组521中分块523的分配情况。
[0094] 下面是上述机制的一个具体示例。
[0095]
[0096]
[0097] 在此示例中,标为rectangular_tile_group_flag的分块组标志531可用于选择使用矩形机制(例如,if语句)或光栅扫描机制(例如,else语句)。矩形机制确定分块组的第一个分块与最后一个分块之间的增量值。通过将增量值除以图像中若干个分块列的数量再加一,可以确定若干个分块组行的数量。通过将图像中分块列数加一的增量值取模,可以确定若干个分块组列的数量。然后,可以根据所述若干个分块组行的数量和若干个分块组列的数量(例如,if语句中的for循环)确定分块的分配情况。同时,光栅扫描机制确定分块组的第一个分块与最后一个分块之间的若干个分块的数量。由于分块的索引是按照光栅扫描的顺序,因此,光栅扫描机制可以随后按照光栅扫描顺序(例如,else语句中的for循环)将确定数量的分块添加到分块组中。
[0098] 图6为分割成光栅扫描分块组621的示例性图像600的示意图。例如,图像600可以使用编解码系统200、编码器300和/或解码器400等,在码流500中编码和从码流500中解码。此外,可以根据方法100对图像600进行分割来进行编解码。
[0099] 图像600包括分配给光栅扫描分块组621、624和625的分块623,分块623和这些分块组分别与分块523和分块组521基本类似。以分块623为基础,按光栅扫描顺序将分块623分配给光栅扫描分块组621、624和625。为了清楚地描述光栅扫描分块组621、624和625之间的边界,每个分块组用加粗线表示。此外,还利用阴影来描述分块组621,以进一步区分分块组边界。还需注意的是,图像600可以划分为任意数量的光栅扫描分块组621、624和625。为了清楚讨论,以下描述涉及光栅扫描分块组621。然而,分块623以类似于光栅扫描分块组621中的分配方式,分配给光栅扫描分块组624和625。
[0100] 如图所示,按照光栅扫描顺序,将第一分块623a、最后一个分块623b以及第一分块623a和最后一个分块623b之间的所有阴影分块分配给分块组621。如图所示,按照光栅扫描顺序的机制(例如,在处理器上的操作方法)将第一分块623a分配给分块组621,然后继续将每个分块623分配给分块组621(按照从左到右的顺序),直到到达图像600的右边界(除非到达最后一个分块623b)。然后,光栅扫描顺序前进到下一行的分块623(例如,从顶行前进到底行)。在当前情况下,第一分块623a在第一行上,因此下一行为第二行。具体地,光栅扫描顺序前进到图像600的左边界处第二行的第一分块,然后从左向右穿过第二行,直到到达图像600的右边界。接着,光栅扫描向下一行移动,即此情况下的第三行,并且从图像600左边界处第三行的第一分块继续进行分配。然后,光栅扫描穿过第三行。按照此顺序继续,直到到达最后一个分块623b。至此,分块组621分配完成。分块组621下方和/或右侧的附加分块
623可以以类似方式,按照光栅扫描顺序分配给分块组625。分块组621上方和/或左侧的分块623也以以此类方式分配给分块组624。
[0101] 图7为分割成矩形分块组721的示例性图像700的示意图。例如,图像700可以利用例如编解码系统200、编码器300和/或解码器400,在码流500中编码和从码流500中解码。此外,可以根据方法100对图像700进行分割来进行编解码。
[0102] 图像700包括分配给矩形分块组721的分块723,分块723和矩形分块组721分别与分块523和分块组521基本相似。在图7中,分配给矩形分块组721的块723用加粗体线表示。此外,将所选的矩形分块组721涂上阴影,以清楚地描绘矩形分块组721之间的划分。如图所示,矩形分块组721包括一组形成矩形形状的分块723。需要注意的是,矩形分块组721也可以为方形,因为方形是矩形的一种特殊情况。如图所示,矩形具有四个边,其中每个边以直角(例如,90度角)与另外两个边连接。矩形分块组721a包括第一分块723a和最后一个分块
723b。第一分块723a位于矩形分块组721a的左上角,而最后一个分块位于矩形分块组721a的右下角。以分块为基础,将包括第一分块723a和最后一个分块723b的行和列之中或之间的分块723也分配给矩形分块组721a。如图所示,此方案与光栅扫描不同。例如,分块723c在光栅扫描顺序中位于第一分块723a和最后一个分块723b之间,但没有被包括在同一矩形分块组721a中。由于涉及到几何,矩形分块组721可能比光栅扫描分块组621在计算上更为复杂。然而,矩形分块组721却更灵活。例如,矩形分块组721a可以包括来自不同行的分块723,而不包括第一分块723与图像700的右边界之间的各分块(例如,分块723c)。矩形分块组
721a也可以不包括图像左边界和最后一个分块723b之间的选定分块。例如,可以从分块组
721a中排除分块723d。
[0103] 因此,矩形分块组721和光栅扫描分块组621各自具有不同的优点,并因此对于不同的使用情形,它们各自可以更为优化。例如,当需要显示整个图像600时,光栅扫描分块组621可能更有效,而当仅需显示子图像时,矩形分块组721可能更有效。然而,当码流中仅指示第一分块索引和最后一个分块索引时,可以采用上述不同的机制来确定分配哪些分块给分块组。因此,解码器或HRD可以使用用于指示分块组类型的标志,来选择适当的光栅扫描或矩形机制。然后,可以通过使用分块组中的第一个分块和最后一个分块来确定对分块组的分块分配。
[0104] 采用上述方法可以改进视频译码系统。因此,本发明描述了视频译码中对分块分组的各种改进方法。更具体地,本发明描述了指示和推导过程,以支持两个不同的分块组概念,即基于光栅扫描的分块组和矩形分块组。在一个示例中,在参数集中使用标志,该参数集由对应的分块组直接或间接引用。该标志指定使用何种分块组方法。该标志可以在诸如序列参数集、图像参数集或由分块组直接或间接引用的其他类型的参数集等中指示。在一个具体示例中,该标志可以是rectangular_tile_group_flag。在一些示例中,可以在参数集中定义和指示具有两个或两个以上比特的表示,该参数集由对应的分块组直接或间接引用。该表示可以指定使用何种分块组方法。使用此类表示可以支持两个或两个以上的分块组方法。指示此类表示的比特数取决于要支持的分块组方法的数量。在一些示例中,可以在分块组头中指示此类标志或表示。
[0105] 指示用于表示分块组中包括的第一个分块和最后一个分块的信息,足以表示光栅扫描分块组或矩形分块组中包含哪些分块。推导包括在分块组中的分块可以取决于所使用的分块组方法(可以通过标志或表示来指示)、分块组中的第一个分块的信息以及分块组中最后一个分块的信息。用于标识特定分块的信息可以是分块索引、分块ID(如果不同于分块索引)、分块中包含的CTU(例如,包括在所述分块中的所述第一CTU),或包括在分块中的亮度像素(例如,包括在所述分块中的所述第一亮度像素)中的任意一个。
[0106] 下面是上述机制的一个具体实施例。图像参数集的RBSP语法可以为如下所示:
[0107]
[0108]
[0109] tile_id_len_minus1加1表示用于PPS中的语法元素tile_id_val[i][j](如果存在)以及引用PPS的分块组头中的语法元素first_tile_id和last_tile_id的比特数。其中,tile_id_len_minus1的取值可以在Ceil(Log2)NumTilesInPic)到15之间(包括Ceil(Log2(NumTilesInPic)和15)。当rectangular_tile_group_flag设置为等于1时,可以表示引用PPS的分块组中构成图像的矩形区域的一个或多个分块。当rectangular_tile_group_flag设置为等于0时,可以表示引用PPS的分块组包括一个或多个分块,所述分块按照图像的光栅扫描顺序连续排列。
[0110] 分块组头的语法可以为如下所示:
[0111]
[0112] 当single_tile_in_tile_group_flag设置为等于1时,可以表示分块组中仅存在一个分块。当single_tile_in_tile_group_flag设置为等于0时,可以表示分块组中存在多个分块。first_tile_id可以表示分块组中第一个分块的分块ID。其中,first_tile_id的长度可以为tile_id_len_minus1+1个比特。first_tile_id的值可以不等于同一经编码图像中任何其他经译码分块组的first_tile_id的值。当图像中存在不止一个分块组时,该图像中分块组的解码顺序可以按first_tile_id的值的递增顺序。last_tile_id可以表示分块组中最后一个分块的分块ID。其中,last_tile_id的长度可以为tile_id_len_minus1+1个比特。当last_tile_id不存在时,可以推断last_tile_id的值等于first_tile_id。
[0113] 变量NumTileInTileGroup表示该分块组中的分块数量,TgTileIdx[i]表示该分块组中第i个分块的分块索引。可推导如下:
[0114]
[0115]
[0116] 通用的分块组数据语法可以为如下所示:
[0117]
[0118] 图8为示例性视频译码设备800的示意图。视频译码设备800适合于实现如本文所公开的示例/实施例。视频译码设备800包括下行端口820、上行端口850和/或收发单元(Tx/Rx)810,其中,所述收发单元810包括用于通过网络上行和/或下行传送数据的发送器和/或接收器。视频译码设备800还包括处理器830,其中,该处理器830包括用于处理数据的逻辑单元和/或中央处理器(CPU),以及用于存储数据的存储器832。视频编码设备800还可包括电组件、光电(optical‑to‑electrical,OE)组件、电光(electrical‑to‑optical,EO)组件、和/或耦合到上行端口850和/或下行端口820的无线通信组件,其中,该无线通信组件用于通过电、光或无线通信网络传送数据。视频译码设备800还可以包括向用户和从用户发送数据的输入和/或输出(input/output,I/O)设备860。I/O设备860可以包括输出设备,例如用于显示视频数据的显示器、用于输出音频数据的扬声器等。I/O设备860还可以包括输入设备,例如键盘、鼠标、轨迹球等,和/或用于与此类输出设备交互的对应接口。
[0119] 处理器830由硬件和软件实现。处理器830可以实现为一个或多个CPU芯片、核心(例如,作为多核处理器)、现场可编程门阵列(field‑programmable gate array,FPGA)、专用集成电路(application‑specific integrated circuit,ASIC)和数字信号处理器(digital signal processor,DSP)。处理器830与下行端口820、Tx/Rx 810、上行端口850和存储器832通信。处理器830包括译码模块814。该译码模块814实现本文所公开的实施例,例如方法100、900和1000,其中可以使用码流500、图像600和/或图像700。译码模块814还可以实现本文所述的任何其他方法/机制。进一步地,译码模块814可以实现编解码系统200、编码器300和/或解码器400。例如,译码模块814可以将图像分割为分块组和/或分块,将分块分割为CTU,将CTU分割为块,并在作为编码器时对块进行编码。此外,译码模块814可以选择光栅扫描分块组或矩形分块组,并在码流中发送该选择。译码模块814还可以发送第一分块和最后一个分块,以支持确定分块组的分块分配情况。当作为解码器或HRD时,译码模块814可以确定所使用的分块组类型,并且根据第一分块和最后一个分块确定分配给分块组的分块。因此,译码模块814使视频译码设备800在分割和译码视频数据时,提供其它功能和/或保证译码效率。因此,译码模块814改进了视频译码设备800的功能,并解决了视频译码技术特有的问题。译码模块814还实现了视频译码设备800到不同状态的变换。或者,译码模块814可以实现为存储在存储器832中并由处理器830执行的指令(例如,实现为存储在非瞬时性介质中的计算机程序产品)。
[0120] 存储器832包括一种或多种类型的存储器,例如磁盘、磁带驱动器、固态驱动器、只读存储器(read‑only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content‑addressable memory,TCAM)、静态随机存取存储器(static random‑access memory,SRAM)等。存储器832可用作溢出数据存储设备,以在选择程序执行时存储这些程序,以及存储程序执行期间读取的指令和数据。
[0121] 图9为将图像(例如图像600和/或700)编码为码流(例如码流500)的示例性方法900的流程图。方法900可以由编码器,例如编解码系统200、编码器300和/或视频编码设备
800在执行方法100时采用。
[0122] 方法900可以在编码器根据例如用户输入,接收包括多个图像的视频序列,并确定将视频序列编码到码流中时开始。在编码之前,将视频序列分割成图像/帧以进行进一步分割。在步骤901中,将图像分割成多个分块。进一步地,将所述分块分配给多个分块组,因此,分块的子集也分配给了分块组。在一些示例中,所述分块组为光栅扫描分块组。在其他示例中,所述分块组为矩形分块组。
[0123] 在步骤903中,将标志编码到码流中。当所述分块组为光栅扫描分块组时,所述标志可以设置为第一值,当所述分块组为矩形分块组时,所述标志可以设置为第二值。可以将所述标志编码到码流的参数集合中。例如,所述标志编码到的参数集可以为序列参数集或图像参数集。在一些示例中,所述标志为矩形分块组标志。
[0124] 在步骤905中,在码流中编码所述分块组的第一个分块的标识和最后一个分块的标识。所述分块组的第一个分块和最后一个分块可以用于指示分配给分块组的分块。在一些示例中,所述分块组的第一个分块的标识和最后一个分块的标识编码到所述码流中的分块组头中。
[0125] 解码器和/或所述编码器处的HRD可以使用所述标志、所述分块组的第一个分块和最后一个分块,以确定所述分块组的分块分配情况。当所述分块组为光栅扫描分块组时,如标志所表示,可以按如下方式确定所述分块组的分块分配情况。可以将所述分块组的第一个分块与最后一个分块之间的若干个分块的数量确定为所述分块组中的若干个分块的数量。然后,根据分块组中的若干个分块的数量,可以确定分块分配情况。当所述分块组为矩形分块组时,如标志所表示,可以按如下方式确定所述分块组的分块分配情况。可以确定所述分块组的第一个分块与最后一个分块之间的增量值。根据所述图像中的增量值和若干个分块列的数量,可以确定若干个分块组行的数量。根据所述图像中的增量值和若干个分块列的数量,也可以确定若干个分块组列的数量。然后,根据若干个分块组行的数量和若干个分块组列的数量,可以确定分块的分配。
[0126] 在步骤907中,根据分块的分配情况,将所述分块编码到码流中。在步骤909中,可以存储码流,用于与解码器通信。
[0127] 图10为从码流(例如码流500)中解码图像(例如图像600和/或700)的示例性方法1000的流程图。方法1000可以由解码器,例如编解码系统200、解码器400和/或视频编码设备800在执行方法100时采用。例如,方法1000可以在方法900之后使用。
[0128] 例如作为方法900的结果,方法1000可以在解码器开始接收表示视频序列的经译码数据的码流时开始。在步骤1001中,在解码器处接收码流。所述码流包括被分割成多个分块的图像。将所述分块分配给多个分块组,因此,分块的子集也分配给了分块组。在一些示例中,所述分块组为光栅扫描分块组。在其他示例中,所述分块组为矩形分块组。
[0129] 在步骤1003中,从码流的参数集中获取标志。当所述标志设置为第一值时,确定所述分块组为光栅扫描分块组。当所述标志设置为第二值时,确定所述分块组为矩形分块组。例如,包括了标志的参数可以为序列参数集或图像参数集。在一些示例中,所述标志为矩形分块组标志。
[0130] 在步骤1005中,获取所述分块组的第一个分块的标识和最后一个分块的标识,以支持确定分配给所述分块组的分块。在一些示例中,所述码流中的分块组头中获取所述分块组的第一个分块的标识和最后一个分块的标识。
[0131] 在步骤1007中,根据所述分块组为光栅扫描分块组或矩形分块组,确定所述分块组的分块分配情况。例如,所述标志、所述分块组的第一个分块和最后一个分块可以用于确定所述分块组的分块分配情况。当所述分块组为光栅扫描分块组时,如标志所表示,可以按如下方式确定所述分块组的分块分配情况。可以将所述分块组的第一个分块与最后一个分块之间的若干个分块的数量确定为所述分块组中的若干个分块的数量。然后,根据分块组中的若干个分块的数量,可以确定分块分配情况。当所述分块组为矩形分块组时,如标志所表示,可以按如下方式确定所述分块组的分块分配情况。可以确定所述分块组的第一个分块与最后一个分块之间的增量值。根据所述图像中的增量值和若干个分块列的数量,可以确定若干个分块组行的数量。根据所述图像中的增量值和若干个分块列的数量,也可以确定若干个分块组列的数量。然后,根据若干个分块组行的数量和若干个分块组列的数量,可以确定分块的分配。
[0132] 在步骤1009中,根据所述分块组的分块分配情况,对所述分块进行解码,以生成经解码分块。也可以根据经解码分块,生成用于显示的重建视频序列。
[0133] 图11为对码流(例如码流500)中图像(例如图像600和/或700)的视频序列进行译码的示例性系统1100的示意图。系统1100可以由编码器和解码器实现,例如编解码系统200、编码器300、解码器400和/或视频编码设备800。此外,当实现方法100、900和/或1000时,可以使用系统1100。
[0134] 系统1100包括视频编码器1102。视频编码器1102包括分割模块1101,用于将图像分割成多个分块。视频编码器1102还包括包括模块1103,用于将多个分块包括在分块组中。视频编码器1102还包括编码模块1105,用于:当所述分块组为光栅扫描分块组时,将标志编码为第一值,当所述分块组为矩形分块组时,将标志编码为第二值,其中,所述标志编码到码流的参数集中,并根据所述分块组将所述分块编码到所述码流中。视频编码器1102还包括存储模块1107,用于存储用于与解码器通信的码流。视频编码器1102还包括传输模块
1109,用于传输码流,以支持确定所使用的分块组的类型和分块组中所包括的分块。视频编码器1102还可以用于执行方法900中的任一步骤。
[0135] 系统1100还包括视频解码器1110。视频解码器1110包括接收模块1111,用于接收码流,所述码流包括分割成多个分块的图像,其中,若干个分块包括在一个分块组中。视频解码器1110还包括获取模块1113,用于从所述码流的参数集中获取标志。视频解码器1110还包括确定模块1115,用于:当所述标志设置为第一值时,确定所述分块组为光栅扫描分块组,当所述标志设置为第二值时,确定所述分块组为矩形分块组,并根据所述分块组为光栅扫描分块组或矩形分块组,确定所述分块组的分块包含关系。视频解码器1110还包括解码模块1117,用于根据所述分块组对所述分块进行解码,以生成经解码分块。视频解码器1110还包括生成模块1119,用于根据所述经解码分块生成用于显示的重建视频序列。视频解码器1110还可以用于执行方法1000中的任一步骤。
[0136] 当第一组件与第二组件之间除了线、迹线或其它介质之外没有中间组件时,所述第一组件与所述第二组件直接耦合。当第一组件与第二组件之间除了线、迹线或其它介质之外还有中间组件时,第一组件与第二组件间接耦合。术语“耦合”及其变型包括直接耦合和间接耦合。除非另有说明,否则使用术语“约”意指包括后续数字±10%的范围。
[0137] 还应理解,本文中阐述的示例性方法的步骤不需要一定按照所描述的顺序执行,并且这些方法的步骤顺序仅仅是示例性的。同样地,在与本发明各种实施例相一致的方法中,这些方法可以包括附加步骤,并且可以省略或组合某些步骤。
[0138] 虽然本发明中已提供若干实施例,但可以理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以以许多其它特定形式来体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的细节。例如,可以在另一系统中结合或集成各种元件或组件,或者可以省略或不实施某些特征。
[0139] 此外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、组件、技术或方法进行组合或集成。变化、替换和变更的其它实例可由本领域技术人员确定,并可在不脱离本文公开的精神和范围的情况下举例。