边界强制分区的改进的制作方法

文档序号:29306342发布日期:2022-03-19 17:44阅读:128来源:国知局
边界强制分区的改进的制作方法
边界强制分区的改进
1.本发明涉及图像和/或视频编码和解码,特别涉及将图像分割成编码单元。


背景技术:

2.基于当前块的混合视频编解码器采用预测编码。将视频序列的图片细分为像素块,再对这些块进行编码。不是逐像素地对块进行编码,而是通过与所述块在空间或时间上邻近的已经编码的像素,对整个块进行预测。编码器仅对所述块与对所述块的预测之间的差异作进一步的处理。所述进一步的处理通常包括将所述块的像素变换为变换域中的系数。然后,可以对所述系数作进一步的压缩(例如,通过量化)和进一步的压紧(例如,通过熵编码)以形成码流。所述码流还可以包括使解码器能够对已经编码的视频进行解码的任何信令信息。例如,所述信令可以包括与编码器设置相关的设置,例如输入图片的尺寸、帧速率、量化步长指示、应用于对图片的块的预测等。
3.块与对其的预测之间的差异称为块的残差。更具体地,所述块的每个像素都具有残差,即该像素的强度级别与预测的强度级别之间的差值。像素的强度级别称为像素值或像素的值。块的所有像素的残差统称为块的残差。换言之,所述块具有残差,所述残差是由所述块的所有像素的残差组成的集合或矩阵。然后,将残差进行变换、量化,并与信令信息一起进行编码。编码可能包括固定长度和可变长度编码的各种形式,包括算术编码或其它熵编码类型。
4.在基于块的混合视频编码过程中,将每个图片分割为样本块,并将图片中的多个块聚合在一起,以形成作为独立的可解码实体的条带。应用预测和/或变换的块称为编码单元(coding unit,简称cu)或编码块(coding block,简称cb)。编码单元的尺寸可能不同。
5.例如,在高效视频编码(high-efficiency video coding,简称hevc,也称为h.265)中,视频帧被细分为编码树单元(coding tree unit,简称ctu,也称为编码树块,coding tree block,简称ctb)。ctb都是尺寸相同的不相交的方形块,例如64x64样本。每个ctb都是块分区四叉树结构(即编码树)的根。ctb可以沿着编码树的结构进一步地细分为编码块。对于编码块,可以确定预测类型。编码块可以进一步地分割成更小的变换块,所述变换块可应用转换和量化。
6.关于hevc中的分区细节可参见由v.sze等人编写,并于2014年由施普林格出版社发行的《高效视频编码(hevc):算法与架构》第3章第2节。
7.此外,wo 2016/090568示出了二叉树结构,可通过四叉树加二叉树结构将一个单元分区为多个较小的单元。相应地,先通过四叉树结构对根单元进行分区,然后通过二叉树结构对所述四叉树的叶节点进行进一步地分区。


技术实现要素:

8.在hevc标准中,将位于条带或图片边界上的ctu和cu通过四叉树分割强制分割,直到叶子节点的右下角样本位于条带或图片边界中。只要分割规则是固定的(预定义的),所述强制四叉树分割不需要在码流中发送。强制分区的目的是使编码器和解码器能够处理图
片和条带,这些图片和条带的水平和/或垂直尺寸不是ctu各自水平和/或垂直尺寸的整数倍。
9.在hevc和wo 2016/090568中,强制分区过程通过四叉树方法对帧边界上的ctu和cu进行分层地分区,而无需进行速率失真(rate-distortion,简称rc)优化,直到整个当前cu位于条带或图片边界内。这些强制分区不需要在所述码流中发送。然而,分割成非常小的编码单元可能会进一步地引入与较小编码单元的单独进一步处理(编码、解码))有关的复杂性和信令需求。
10.根据本发明,强制分区至少在最深的分区分层等级中应用二叉树分割,或者至少在除最深的分区分层等级之外的分区等级中应用二叉树分割,在所述除最深的分区分层等级之外的分区等级中,编码单元不完全位于边界部分内。
11.这种分割更加高效,因为它导致的最深分层等级中的编码单元的数量更少。
12.根据本发明的一个方面,提供了一种用于将图像部分分割为编码单元的装置,该装置包括处理电路。该处理电路在操作中:将所述图像部分细分为具有在先确定尺寸的整数个编码树单元和在至少第一方向上尺寸小于所述在先确定尺寸的边界部分,其中所述第一方向为水平或垂直方向;并将所述边界部分分层地分区成编码单元,包括在各自水平和垂直方向上尺寸不同的最深编码单元,所述最深编码单元的尺寸在所述第一方向上较小。
13.这种方法的优点是避免所述图片边界上存在太多较小cu,也从而提高了所述边界部分的编码效率。
14.根据示例,所述处理电路用于至少在最深分区等级中通过二叉树分割来对所述边界部分进行分区。
15.作为对所述二叉树分割的补充或替代,所述处理电路可用于也通过四叉树分割来对边界部分分区。
16.根据一个示例,所述处理电路在操作中,在n个最浅等级中通过四叉树分割对所述边界部分进行分区,所述n是大于或等于零且小于分区分层等级的数量的整数;并在剩余分区分层等级中通过二叉树分割对所述边界部分进行分区。
17.这种方法使配置更为灵活,并且还通过避免大量的较小方形边界cu来确保有效地对所述边界进行编码。
18.在一种实施方式中,所述处理电路在操作中对所述边界部分进行分区,直到所述最深等级的编码单元完全位于所述边界部分之内。
19.在一种实施方式中所述处理电路在操作中通过二叉树分割在水平和垂直方向上对所述边界部分进行分区。
20.此外或可选地,所述处理电路在操作中通过四叉树分割在每个分层等级中对所述边界部分的角落部分进行分区。
21.除了对所述边界部分的ctu混合使用四叉树和二叉树分割,所述处理电路还可以用于通过二叉树分割在所有分区等级中对边界部分进行分区。
22.根据本发明的一个方面,提供了一种用于对视频序列的图像进行编码的装置,所述装置包括:根据上述示例和实施方式中的任意一种所述的用于将图像部分分割成编码单元的装置;图像编码单元,用于对所述编码单元进行编码;以及码流形成单元,用于生成包括所述已经编码的编码单元和指示如何对所述编码树单元进行分区的分区信息的码流。
23.例如,所述编码器还包括速率失真优化单元,用于根据除所述最深等级之外的任意分区等级的速率失真优化来确定所述边界部分的分层分割。
24.本发明的另一方面包括用于解码视频序列的图像的装置,该装置包括:根据上述示例和实施方式中的任意一种所述的用于确定将待解码的图像部分分割成编码单元的装置;码流解析器,用于基于所述图像部分已确定的分割,解析包括已编码的编码单元和指示所述编码树单元如何被分区的分区信息的码流;和图像解码单元,用于解码所述已编码的编码单元。
25.根据一种示例性的实施方式,将所述边界部分分割为编码单元为预定义的分割,所述分区信息与对所述边界部分的分割无关。
26.用于解码的所述装置和/或用于编码的所述装置的所述处理电路,可以用于:在n个最浅等级中通过四叉树分割对边界部分进行分区,所述n为大于或等于零且小于分区分层等级的数量的整数;并在剩余分区分层等级中通过二叉树分割来对边界部分进行分区。此外,在示例性的实施方式中,所述分区信息包括所述n,或n可基于应用于对正在处理的图像进行编码的预测类型来推导。可以基于边界部分的尺寸来推导所述n,所述边界部分的所述尺寸在水平或垂直方向上小于在先确定尺寸。
27.根据本发明的一个方面,提供了一种用于将图像部分分割成编码单元的方法,所述方法包括以下步骤:将所述图像部分细分为具有在先确定尺寸的整数个编码树单元和在至少第一方向上尺寸小于所述在先确定尺寸的边界部分,所述第一方向为水平或垂直方向;并将所述边界部分分层地分区为编码单元,包括在各自水平和垂直方向上具有不同尺寸的最深编码单元,所述最深编码单元的尺寸在所述第一方向上较小。
28.在一个示例性的实施例中,对所述边界部分的分区还包括以下步骤:从作为最浅的分区等级的当前分区等级开始;将所述边界部分依次分割为所述当前分区等级的编码单元,直至所述当前分区等级的边界编码单元完全落入所述边界部分;当所述当前分区等级的所述编码单元不落入所述边界部分内,则增加所述分区等级并进一步地对所述编码单元进行分区,其中,四叉树分割用于n个最浅分区等级,否则使用二叉树分割,所述n为大于或等于零且小于分区分层等级的数量的整数。
29.根据本发明的另一方面,提供了一种用于对视频序列的图像进行编码的方法,该方法包括以下步骤:根据上述方法中的任意一种方法将图像部分分割成编码单元;对所述编码单元进行编码;以及生成包括已编码的编码单元和指示如何对所述编码树单元进行分区的分区信息的码流。
30.根据本发明的另一方面,一种用于解码视频序列的图像的方法,包括:根据上述方法的任意一种方法所述的确定将待解码的图像部分分割为编码单元;基于所述图像部分已确定的分割,解析包括所述已编码的编码单元和指示如何对所述编码树单元进行分区的分区信息的码流;解码已编码的编码单元。
31.根据一个示例,所述分区步骤至少在所述最深的分区等级中通过二叉树分割对所述边界部分进行分区。
32.作为所述二叉树分割的补充或替代方法,所述分区步骤也可以通过四叉树分割来对所述边界部分进行分区。
33.根据一个示例,所述分区步骤在n个最浅等级中通过四叉树分割来对所述边界部
分进行分区,所述n是大于或等于零且小于所述分区分层等级的数量的整数;并在剩余分区分层等级中通过二叉树分割来对所述边界部分进行分区。
34.在一种实施方式中,所述分区步骤对所述边界部分进行分区,直到所述最深等级的编码单元完全位于所述边界部分内。
35.在一种实施方式中,在操作中,处理电路通过二叉树分割在水平和垂直方向上来对所述边界部分进行分区。
36.另外,或可替代地,所述处理步骤,通过四叉树分割在每个分层等级中对所述边界部分的角落部分进行分区。
37.作为对所述边界部分ctu混合使用四叉树和二叉树分割的替代,所述分区步骤可以通过二叉树分割来对所有分区等级中的边界部分进行分区。
38.根据本发明的另一方面,提供了一种计算机可读介质,用于存储指令,当所述指令被处理器执行时,所述指令使得所述处理器执行上述方面和示例中的任意一种方法。
附图说明
39.下文将参考以下附图详细描述示例性实施例:
40.图1是示出视频编码器示例性结构的框图;
41.图2是示出视频解码器示例性结构的框图;
42.图3是说明hevc采用的四叉树分割的示例示意图;
43.图4是说明四叉树/二叉树分割的示例示意图;
44.图5是说明边界部分的强制性四叉树分割的示意图;
45.图6是说明一种装置示例的框图,所述装置可以用作编码器或解码器中的分割单元;
46.图7是说明边界部分分割的示意图
47.图8是示出垂直边界的强制性二叉树分割示例的示意图;
48.图9是说明在垂直、水平和组合边界上进行分区的示例的示意图;
49.图10是示出了示例性分区句法决定的流程图。具体实施方式细节
50.本发明涉及将图像分割成更小的单元以进行进一步的处理。这种分割可以有利地使用于对静态图像或视频图像的编码和解码中。以下描述了一种示例性的视频编码器和解码器,可以实现根据本发明所述的分割。
51.图1示出了编码器100,其包括用于接收视频流的帧或图像的输入块的输入端和用于提供已编码的视频码流的输出端。本发明中的术语“帧”用作图片的同义词。然而,需要说明的是,本发明也适用于应用了隔行扫描的领域。通常,图像包括m乘n个像素。这些与图像样本相对应,并且每个图像样本可以包括一个或多个颜色分量。简明起见,下面的描述是指像素,即亮度的样本。然而,应注意的是,本发明所述的分割方法可应用于包括色度或如rgb等颜色空间分量的任何颜色分量。另一方面,仅对一个分量进行分割并将已确定的分割应用于剩余多个(或全部)分量可能是有益的。所述编码器100用于对所述视频流进行分区、预测、变换、量化和熵编码。
52.在分割单元110中,在编码之前进一步地对所述输入视频帧进行分割。待编码的块
不一定在分割单元110中,在编码之前进一步地对所述输入视频帧进行分割。待编码的块不一定具有相同的尺寸。一幅图片可以包括不同尺寸的块,视频序列的不同图片的块栅格也可能不同。特别是,每个视频图像(图片)先被细分为相同固定尺寸的ctu。例如在一个标准中,ctu的尺寸可以是固定且预定义的。在hevc中,可使用64
×
64的尺寸。然而,本发明不限于标准化和固定的尺寸。提供ctu尺寸可能是有利的,该ctu尺寸可以设置于所述编码器处并作为所述码流中的信令参数来提供。例如,不同的ctu尺寸可能有益于各个不同的图片尺寸和/或内容类型。所述ctu的尺寸可以在任意信令等级中发送,例如,所述ctu的尺寸可能对于整个视频序列或视频序列的部分((即多个图像)或单独每个图片都通用。相应地,例如,所述ctu的尺寸可以从当前编解码器(h.264/avc、h.265/hevc)或类似参数集中已知的图片参数集(picture parameter set,简称pps)、序列参数集(sequence parameter set,简称sps)或视频参数集(video parameter set,简称vps)内发送。或者,所述ctu的尺寸可以在条带头或其它任意等级中指定。所述ctu的尺寸可以取不同于64
×
64的值。例如,可以如128
×
128样本一样大。通常,为了通过四叉树的二叉树进行分层地分割,提供两个幂的ctu尺寸可能是有益的,即,以2^n的格式,所述n为大于2的整数。
53.如图3所示的将图片分区为ctu并将ctu分区为cu的方法来自2014年由施普林格出版社发行的《高效视频编码((hevc):算法与架构》。所述分区遵循四叉树结构,以适应各种本地特点。在左手侧,图3示出了按照右手侧的四叉树结构分层地分割的ctu。具体地,编码树定义了句法,所述句法规定将ctu细分为cu。类似于ctu,cu由方形样本块和与这些样本块相关联的句法而组成。因此,从所述ctu(分层深度为0)开始分层地执行分区,所述ctu可以但不必细分为四个(在四叉树中)分层深度为1的cu。在图3中,将所述ctu分割为第一分层深度(等级)的cu 8和16,不再对其进一步地分割,从而形成所述四叉树的叶以及另外两个cu,进一步地将其分割为分层深度为2(2深度cu)的cu。具体地,左上1深度cu可进一步地细分为2深度cu 1、2、7,以形成四叉树树叶和另一个cu,该cu可以进一步地细分为均为树叶的3深度cu 3、4、5、6。类似地,左下1深度cu可进一步地分割为2深度cu 13、14、15,其也是所述四叉树的叶和剩余的cu,该cu可进一步地分割为均为树叶的3深度cu 9、10、11、12,因此不再对其分割。
54.在hevc中,所述四叉树分割的示例性句法如表1所示。
表1:ctu分割标志语法
55.特别是在ctu级,码流中包含一个名为split_cu_flag的标志,指示完整的ctu是否构成cu,或者是否被分割为与方形样本块对应的四个尺寸相等的块。如果对ctu进行分割,对于每个结果块,传输另一个split_cu_flag,指定该块是否代表cu或者是否进一步分割为四个尺寸相等的块。继续如此分层细分,直到没有可进一步细分的块为止。最小的cu尺寸在
序列参数集中发送,范围从8
×
8亮度采样到ctu的尺寸(两端值包含在内)。当在分级细分过程中达到最小cu尺寸时,不会为相应的块发送分割标志;相反,可以推断这些块不会进一步分割。在典型的hevc编码器设置中,利用所支持的cu尺寸的最大范围,可以使用8
×
8到64
×
64样本的cu。ctu内部的cu按照深度优先的顺序编码。该编码顺序也称为z扫描。能够确保对于每个cu,除了位于条带的上边界或左边界的cu,cu上方和左边的所有样本都已经编码,从而相应的样本可以用于帧内预测,相关的编码参数可以用于预测当前cu的编码参数。
56.换换言之,split_cu_flag[x0][y0]指定一个编码单元是否被分割为半水平和垂直尺寸的编码单元。阵列索引x0和y0指定所考虑的编码块的左上亮度样本相对于图片的左上亮度样本的位置(x0,y0)。当split_cu_flag[x0][y0]不存在时,在解码器处应用如下内容:-如果log2cbsize(指定编码块尺寸的参数)大于mincblog2sizey(指定最小可配置编码单元尺寸的参数),则推断split_cu_flag[x0][y0]的值等于1。-否则(log2cbsize等于mincblog2sizey),则推断split_cu_flag[x0][y0]的值等于0。
[0057]
阵列ctdepth[x][y]指定覆盖位置(x,y)的亮度编码块的编码树深度。当split_cu_flag[x0][y0]等于0时,若x=x0..x0+ncbs

1且y=y0..y0+ncbs

1时,可推断ctdepth[x][y]等于cqtdepth。
[0058]
图4示出了混合四叉树和二叉树分割。四叉树分割用实线表示,而二叉树分割用虚线表示。表示所述二叉树进一步分割的编码单元的节点上的标签1或0分别指示所述二叉分割是垂直应用的还是水平应用的。
[0059]
视频图片的水平和垂直尺寸,必须是序列参数集合中传输的在亮度样本中的最小cu的尺寸的整数倍,而不需要是ctu尺寸的整数倍。如果所述视频图片的水平或垂直尺寸不表示所述ctu尺寸的整数倍,则推断所述边界处的所述ctu被分割,直到所述结果块的边界与所述图片边界重合。对于这种强制分割,不传输分割标志,但是可以使用上述四叉树语法进一步分割得到的块。图片区域外的cu不编码。
[0060]
该分割如图5所示。具体地,图5示出了帧边界,其上方的56条线(128个样本长度)是条带或图像的边界部分。所述帧边界下方的所述ctu的一部分可以属于另一个条带,或者根本不存在,例如,如果所述帧边界是底部画面边界。可见,强制四叉树分割应用于128
×
56的样本。
[0061]
色度ctb的细分总是在hevc中与相应亮度ctb的细分对齐。需要说明的是,本发明可以以相同的方式处理色度分量,但不限于此。不同颜色分量也可以有独立的分割。
[0062]
分割单元110中进行图像分割后,所述变换、量化和熵编码分别由变换单元130、量化单元140和熵编码单元150执行,以生成所述编码的视频码流作为输出。
[0063]
所述视频流可能包括多个帧。例如,视频流的第一帧的块通过帧内预测单元190进行帧内编码。帧内只使用来自该帧的信息进行编码,以便能够独立于其他帧进行解码。因此,帧内可以提供码流中的入口点,例如,用于随机接入。视频流的其它帧的多个块由帧间预测单元195进行帧间编码:一个帧间编码帧的每一个块都是由另一个帧((参考帧))中的一个块来预测的,例如,一个先前编码的帧。模式选择单元180用于选择帧的块是进行帧内预测还是帧间预测,即帧内预测单元190还是帧间预测单元195将对其进行处理。模式选择
单元180还控制帧内或帧间预测的参数。为了实现图像信息的刷新,帧间编码帧不仅可以包括帧间编码块,还可以包括一个或多个帧内编码块。相比之下,帧内编码帧只包含帧内编码块且无帧间编码块。可以在视频序列中插入(例如,定时插入,即每次插入一定数量的帧间编码帧后插入)帧内编码帧,以便提供解码的入口点,即解码器可以在不使用先前帧的信息的情况下开始解码的入口点。
[0064]
所述帧内预测单元190为块预测单元。对于进行空间或时间预测,编码的块还可以由逆量化单元145和逆变换单元135进行处理。在由重建器125重建块之后,可以应用环路滤波单元160来进一步提高解码图像的质量。重建器125将解码后的残差加到预测器中,得到重建块。然后,所述过滤块形成随后存储在帧缓冲器170中的参考帧。编码器侧的这种解码环路(解码器)提供了产生与解码器侧重建的参考图像相同的参考帧的优点。相应地,编码器和解码器侧也遵循相应的工作方式。这里的术语“重建”是指将解码残差块加入到预测块中,得到重建块。
[0065]
帧间预测单元195从帧缓冲器170接收要进行帧间编码的当前帧或图片的块以及一个或几个参考帧或图片作为输入。帧间预测单元195执行运动估计和运动补偿。用运动估计来获得运动向量和参考帧,例如基于成本函数进行。然后,运动补偿针对参考帧的参考块到当前帧的平移(即通过运动矢量)来描述当前帧的当前块。所述帧间预测单元195从所述一个或多个参考帧中的候选块组(即候选预测器)中选择所述当前块的预测块(即预测器),使得所述预测块最小化成本函数。换句话说,成本函数最小的候选块将被用作当前块的预测块。
[0066]
例如,成本函数可以是当前块和候选块之间的差值的测量结果,即当前块相对于候选块的残差的测量结果。例如,成本函数可以是当前块的所有像素(样本)与候选参考图片中候选块的所有像素之间的绝对差和(sad)。但是,一般情况下,可以采用任何相似度量,例如均方误差(mse)或结构相似度量(ssim)。
[0067]
然而,成本函数也可以是编码这种块间和/或由这种编码引起的失真所必需的比特数。因此,速率失真优化过程可以用于决定运动矢量的选择和/或通常决定编码参数,例如对于块是使用帧间还是帧内预测以及使用哪些设置。
[0068]
所述帧内预测单元190接收待帧内编码的当前帧或图像的块以及来自当前帧的已重建区域的一个或几个参考样本作为输入。然后,帧内预测针对当前帧的参考样本的函数来描述当前帧的当前块的像素。所述帧内预测单元190针对当前块输出预测块,其中所述预测块有利地将待编码的当前块与其预测块之间的差值最小化,即最小化残差块。所述残差块的最小化可以基于例如速率失真优化过程。特别是所述预测块作为所述参考样本的定向插值得到。所述方向可以通过所述速率失真优化和/或通过计算如上所述的与帧间预测相关的相似性度量来确定。
[0069]
当前块与预测块之间的差值,即残差块,然后由变换单元130进行变换。变换系数由量化单元140量化,并由熵编码单元150进行熵编码。由此产生的编码视频码流包括帧内编码块和帧间编码块以及相应的信令(如模式指示、运动矢量指示和/或帧内预测方向)。所述变换单元130可以应用线性变换,例如离散傅里叶变换(discrete fourier transformation,简称dft)或离散余弦变换(discrete cosine transformation,简称dct)。向空间频域的这种变换提供了以下优点:即得到的系数在较低的频率中通常具有较
高的值。因此,在进行有效系数扫描(如zig-zag)和量化之后,所得值序列在开始时通常具有一些较大的值并以一串0结尾。这使得编码更加有效。量化单元140通过降低系数值的分辨率来进行有损压缩。然后,熵编码单元150将二进制码字分配给系数值。将所述码字写入称作编码码流的码流中。所述熵编码器还对所述信令信息(图1中未示出)进行编码,可以包括根据上文所示的分割标志语法进行编码。
[0070]
图2示出了视频解码器200的示例。所述视频解码器200具体包括参考图片缓冲器270和帧内预测单元290,所述帧内预测单元是块预测单元。参考图片缓冲器270用于存储从编码后的视频码流的编码视频码流中重建的至少一个参考帧。所述帧内预测单元290用于生成预测块,所述预测块为待解码块的估计值。所述帧内预测单元290用于基于从所述参考图片缓冲器270获取的参考样本生成所述预测。所述解码器200用于对所述视频编码器100生成的所述编码视频码流进行解码,并且优选地,所述编码器100和所述解码器200为所述待编码/解码的各个块生成相同的预测。所述参考图片缓冲器270和所述帧内预测单元290的特征与图1中所述参考图片缓冲器170和所述帧内预测单元190的特征类似。
[0071]
所述视频解码器200包括还存在于所述视频编码器100中的其他单元,例如,逆量化单元240、逆变换单元230和环路滤波单元260,分别对应所述视频编码器100的所述逆量化单元140、所述逆变换单元150和所述环路滤波单元160。
[0072]
码流解析、熵解码和分割单元250,用于对接收到的编码视频码流进行解析和解码,得到量化后的残差变换系数和信令信息。将量化后的残差变换系数馈送到所述逆量化单元240和所述逆变换单元230以生成残差块。将残差块添加到重建器中225的预测块,并且将得到的和馈送到所述环路滤波单元260以获得解码的视频块。所述解码视频的帧可以存储在所述参考图片缓冲器270中,并作为帧间预测的参考帧。从码流中解析和解码的信令信息通常可以包括与帧分区相关的控制信息。为了进一步正确地解析和解码图像,所述控制信息用于将图像分割恢复为编码单元,以便正确地将以下解码数据分配给各自的编码单元。
[0073]
通常,图1和图2中的帧内预测单元190和290可以使用来自已经编码的区域的参考样本来生成针对需要被编码或需要被解码的块的预测信号。码流解析、熵解码和分割单元250接收编码码流作为其输入。可以首先解析码流,即,从码流中提取信令参数和残差。码流的语法和语义可以由标准定义,以使得编码器和解码器能够以可互操作的方式工作。本发明提出了一种基于块的混合视频编码中边界强制分区的新方法。具体地,通过使用二叉树(bt)结构至少部分地执行边界强制分区。由于根据发明者的观察,大多数边界块可以使用相同的预测模式,帧边界上ctu的强制四叉树(qt)分区并不总是必需的。代替强制qt分区,在一个实施例中,引入用于底部边界部分的强制水平bt和/或用于右侧边界部分的强制垂直bt(假设已经按照ctu处理顺序从左到右和从上到下重建了左邻部分)。具体如图6所示,根据一实施例,一种用于将图像部分分割610成编码单元的装置600(其可在上述的单元110、250中实现)包括处理电路。在操作中,所述处理电路将所述图像部分细分为具有在先确定尺寸的整数个编码树单元和在至少第一方向上尺寸小于所述在先确定尺寸的边界部分,其中所述第一方向为水平或垂直方向。此外,在操作中,所述处理电路将所述边界部分分层地分区630为编码单元,包括在各自水平和垂直方向上具有不同尺寸的最深编码单元,所述最深编码单元的尺寸在所述第一方向上较小。通过帧分割610获得的ctu可以进一步分
层地分区620。这种分区可以以任何方式执行,如图3和图4所示,并结合上述内容进行描述。
[0074]
图6示出了装置600的电路的内部结构。该电路可以是具有功能单元610、620和630的任何类型的硬件和软件,用于将帧分别分割为ctu、ctu的分区以及边界部分的分区。例如,这些单元可以在单个处理器上实现。然而,本发明不限于此类应用,这些单元也可以由单独的硬件部件实现。
[0075]
边界部分可以仅位于垂直边界(如果垂直方向的图片的尺寸不是垂直ctu尺寸的整数倍),或者仅位于水平边界(如果水平方向的图片的尺寸不是水平ctu尺寸的整数倍),或者同时位于垂直和水平边界(如果水平和垂直方向的图片的尺寸不是相应水平和垂直ctu尺寸的整数倍)。
[0076]
通常需要编码的图片尺寸为ctu的倍数。图7可视化了底部图片边界700和对应的边界部分710(阴影)的示例。部分750以ctu的整数倍尺寸水平和垂直示出图像的剩余部分。具体地,ctu的垂直尺寸表示为770v,而ctu的水平尺寸表示为770h。如图7所示,该示例中的边界部分是水平方向上ctu尺寸770h的整数倍。但是,在垂直方向上,边界部分710的尺寸为将垂直图片尺寸除以垂直ctu尺寸770v后的余数。部分720仅为虚拟,示出了边界部分的高度与ctu尺寸之间的差值。需要说明的是,在当前实现方式中,ctu为正方形,使得尺寸770h和770v相同。但是,本发明不限于此,ctu的垂直和水平尺寸可能有所不同。为了对边界部分进行编码(并相应地进行解码),图7中的边界部分710被分割为不完整的ctu,即被分割为水平尺寸为ctu 770h且垂直尺寸小于ctu尺寸770v的部分。如图8所示,进一步强制分区这些不完整的ctu。
[0077]
图8示出了边界部分位于水平边界的示例,使得分割在垂直方向上发生。具体地,在图7的左手侧,示出了与ctu的宽度相对应的边界部分(在本示例中,为128个样本),但其高度小于ctu的高度(仅为56个样本)。所述垂直边界通过二叉树分割来强制分区。具体地,适合56个样本长度的最大单位尺寸是32个样本尺寸的深度2单位,因为具有64个样本的深度1单位不适合56个样本高的边界部分。剩余24个样本以16个样本尺寸的深度3单位中进一步分割,8个样本的剩余部分(对应深度4的cu尺寸)到达图片边界处,因此不需要进一步分割。在本示例中,在水平边界上未进行分割。综上所述,在一个方向上具有ctu尺寸而在另一个方向上具有更小尺寸的边界部分单位通过二叉树分割来分区,即通过将边界部分单位分级地分成两个部分,其中一个部分具有适合于更小尺寸的下一个最浅的cu的尺寸,剩余部分则进一步分割直到最深的cu到达帧边界。这个128
×
56大的ctu部分的分区在这里产生了3个边界部分编码单元,尺寸分别是128
×
32、128
×
16和128
×
8。
[0078]
总之,根据一种实现方式,所述处理电路用于通过二叉树分割来分区所有分区级别中的边界部分。
[0079]
图8的右手侧示出了分区的示例,其中首先在分层深度1(分层深度0与ct尺寸相对应)中应用四叉树分割,从而产生尺寸为64
×
56的两个cu,这两个cu进一步被二叉树分割成分别为64
×
32、64
×
16和64
×
8大的cu对。
[0080]
图8中的示例示出了底部边界的分区。然而,本发明同样适用于任何其他边界的分割,如右边界。如果从左到右和从上到下执行将图片细分为ctu,则边界部分将位于图片的底部和/或右侧。然而,也可以从下到上和从右到左进行分区,在这种情况下,需要分割上边界和左边界,其可能与结合图8所描述的方式相同。类似地,以上示例示出了从此类ctu的顶
部开始的不完整ctu的分区。然而,一般而言,也可能可以从图片(帧)的边界到顶部来分割不完整的ctu。
[0081]
如图8右侧所示,不完整ctu分割可以是qt和bt的混合分割。所述处理电路可用于至少在最深的分区等级中通过二叉树分割对边界部分进行分区。这样做有一个优点,即不必将与帧边界同时存在的较大边界分割成最小的单元。帧边界上有太多太小的单元会导致更高的编码复杂度以及更大的码流。需要说明的是,在本实施例中,只要最深的cu的一边比另一边大(即二叉树分割的结果),剩余的深度层级可以以任何方式确定,不需要以预定义的方式强制。相反,所述分区可以通过rd优化完成,并伴随有相应的控制信息,使得所述解码器能够恢复相同的分区。分区还可以是部分强制且部分可用于rd优化。
[0082]
换言之,所述处理电路也可用于通过四叉树分割对所述边界部分进行分区。因此,可能存在针对标准定义的每个深度预定义的强制qt或bt分区,或者由包括在码流中的控制信息可配置的强制qt或bt分区。
[0083]
例如,强制bt分区只在一定数量的强制qt级别后进行。这可以通过以下方式实现:所述处理电路用于在n个最浅分层等级中通过四叉树分割来划分边界部分,所述n为大于或等于零且小于所述分区分层等级的数量的整数。所述处理电路还用于在剩余分区分层等级中通过二叉树分割来对边界部分进行分区。参见图8,左侧没有qt分割。
[0084]
因此,所述码流中的控制信息可以包括qt/bt指示符,该指示符指定是否应用qt,如果可以,则qt分割的级别为多少。如果不应用qt分割(如图8左手侧所示)和n对应的值,则这种qt/bt指示符可对应地取多个值,例如0值。无论应用qt、bt还是不分区,这种信令都比针对每个级别中的每个cu的信令要短。但是,本发明可以使用任何类型的信令。
[0085]
或者结合控制信令,可以根据时间id或条带类型自适应地选择强制qt的级别。这种方法具有不需要显式信令(或显式信令的数量较小)的优点。然而,强制分区至少可以针对预测类型自适应地设置。
[0086]
hevc指定时间标识符(id),其指示分层时间预测结构中的级别(帧间预测帧之间的依赖关系)。条带类型可以是帧内预测条带、仅应用基于一个参考图片的预测的帧间预测条带、应用双向预测的帧间预测条带等。
[0087]
例如,如果时间标识为0(表示i图片)或者条带类型为帧内预测条,则分区需要比更大时间id(帧间预测图片)或者p/b条带(帧间预测条带)的分区更准确。
[0088]
以上参数的时间id或条带类型仅是示例性的。通常,可以应用其它和/或不同的编码参数。此外,相邻ctu中cu的预测模式而非条带类型可用于基于ctu(不完整边界ctu)确定边界部分的分区。
[0089]
另一方面,发送分区可以更自由地选择合适的分割,从而提高整体编码效率。例如,可以通过优化成本函数(例如通过rd优化)调整分区,并在码流中发送分区以指示解码器使用多少级强制qt(即,发送qt是否使用还是如上所述的发送n)。
[0090]
或者,边界(不完整)ctu首先通过rd优化进行分区,直到倒数第二个分层等级(深度)或直到发送的分层等级m。位于帧边界上的剩余最深等级的块然后使用强制bt分区或强制qt和强制bt的组合分区。
[0091]
图9示出了至少部分强制边界分区的三个示例。
[0092]
当ctu/cu位于底部边界时,可以递归地使用水平强制bt分区,而不进行rd优化,也
不发送分割标志(通过分割垂直边界)。当叶节点的右下样本位于条带/图片底部边界内时,强制水平bt分区终止。在强制水平bt分区之后,来自边界ctu的强制分区的cu可能基于编码器的rd成本被进一步分割,并且可以从编码器向解码器发送其它分割标志。图9(a)部分示出了由强制水平bt(即垂直边界分割)分区的128
×
56样本尺寸的底部边界的示例。
[0093]
类似地,对于位于右边界的ctu/cu,可能可以递归地使用垂直强制bt分区,无需rd成本校验,且不会发送分割标志,直到叶节点的右下样本位于条带/图片右边界内。在强制水平bt分区之后,来自边界ctu的强制分区的cu可能按编码器的rd成本进一步分割,并且可以从编码器向解码器发送其它分割标志。图9(b)部分示出了由强制水平bt分区的56
×
128样本长的右边界的示例。
[0094]
根据另一示例,对于位于ctu/cu的右下角边界,首先递归地使用强制分层qt分区,而不使用任何信令。当所述当前cu的右下样本位于所述底部边界或右边界时,强制水平或垂直bt分区进一步被递归操作,直到所述叶节点的右下样本位于所述条带/图片边界的内部。否则,当所述当前cu的右下样本仍位于所述角落边界时,将使用进一步的强制qt分区,直到所述叶节点的右下样本位于所述条带/图片帧内。在通过从边界ctu分割而获得的强制分区的cu可能在编码器处通过rd优化被进一步分割,并且可以从编码器向解码器发送其它分割标志。图9(c)部分示出了由强制qt和bt分区的56
×
56样本尺寸的右下角边界的示例。
[0095]
具体地,在图9的(c)部分中,示出了56
×
56个样本的不完整角落边界ctu。qt分割后的64
×
64样本的第一深度等级不在边界部分内。qt后的第二深度等级的32
×
32样本在边界部分内,但留下了水平部分(32
×
24样本的左下cu)、垂直部分(24
×
32样本的右上cu)和另一角落部分(24
×
24样本的右下cu)待进一步分割。
[0096]
在该示例中,水平边界cu和垂直边界cu进一步进行二叉树分割,使得最深等级单位沿着图片/条带边界具有较长的边。所述角落部分还可以按照针对上文所述的高等级角落部分相同的方式进行分割,即通过四叉树分割。
[0097]
换言之,在操作中,所述处理电路通过二叉树分割在水平和垂直方向上分区边界部分。当边界部分沿图片/条带边界垂直地和水平地延伸且包括角落部分时,则尤其如此。
[0098]
另外,当出现角落时,所述处理电路在操作中,通过四叉树分割在每个分层等级中对边界部分的角落部分分区。例如,在图9(c)部分中,两边的角落尺寸为56个样本,对于角落边界cu 960,需要四个等级的强制qt(qt分割128
×
128ctu得到四个64
×
64cu,其中左上角cu包括56
×
56的角;qt分割64
×
64的左上角cu得到四个32
×
32cu,其中右下角cu包括24
×
24角;qt分割32
×
32右下角cu得到四个16
×
16cu,其中右下角cu包括8
×
8的角落以及将右下的16
×
16不完整cu进行qt分割得到四个8
×
8cu的最后步骤,即最小尺寸分区,其中左上方的分区位于图片中,而其他分区则不在)。
[0099]
另一方面,对于底部边界cu 950,需要两个等级的强制qt和之后两个等级的强制bt(qt分割128
×
128ctu,qt分割左上的64
×
64cu,二叉分割包括32
×
24边界部分的32
×
32cu为两个底部边界处32
×
16cu;以及将底部的32
×
16cu进行bt分割为两个32
×
8cu的最后一步,其中只有上面的cu在图像边界内)。
[0100]
对于角落cu 960,将不考虑设置的qt级别n,并且角落cu将在所有分层等级中被qt强制分割。特别是,在角落情况下,如果叶节点的右下样本(不完整cu,意为部分位于边界部分内)位于右边界和底部边界之外,则当前不完整cu将被识别为b角(图10,步骤1050,“是”)。如果当前cu的b角为真,则将使用强制qt进一步分割当前cu。当由于分割而产生的叶节点完全位于边界部分内,或者如果角落部分变为底部或右边界的情况下(bbottom,bright,则意味着当前cu的右下边界仅位于边界部分即图像或条带的底部或右边界之外),则所述分区结束。
[0101]
在该示例中,如果n=0或1或2,则强制qt分割方案将是相同的,因为cu960始终需要强制qt,并且无论如何cu 950都将在前两个等级进行qt分割。这是因为深度0(ctu)的cu、深度1(64
×
64样本)的cu仍然是角落cu。只有在对64
×
64的cu进行分割后,在深度2中,才有4个cu,其中一个cu完全不是边界cu(左上),两个cu为底部边界和右边界cu,只有一个cu为角落cu。
[0102]
如果n=3,则需要另外一次强制qt,然后针对cu 950将改变强制分割方案,使得左下的32
×
32cu被进一步qt分割,而不是bt分割。cu 960的分割保持不变。
[0103]
根据本发明,可按照上述简要讨论过的方式使用强制qt和强制bt的组合。特别是,对于边界上的某些复杂纹理或运动,详细的分区可能有益于图像质量。因此,还提供了qt和bt的组合强制分区。尤其在强制qt和强制bt实现的一种组合中,强制bt分区仅在一定数量的强制qt等级之后应用。如果在其他设置下,bt分区后允许qt分区,则强制bt分区后可以进行强制qt分区。
[0104]
在强制bt和强制qt的组合实现中,有几种方式可以定义强制qt等级的个数。如果使用预定义的强制qt等级,则首先使用相同的qtbt结构强制分区所有边界ctu,基于rd优化可以进一步分区。图8右手侧示出了不完整的128
×
128ctu中128
×
56样本的底部边界的一级qt和三级bt分区的示例。
[0105]
所述强制qt的等级可以根据诸如时间id或条带类型的编码器参数自适应地选择。某些条带类型或较小的时间id可能需要更详细的分区。此外,可以通过速率失真优化来调整强制qt的等级,并在码流中发送信号以指示使用了多少级强制qt。ctu等级中的等级数量信令可以用来指示ctu已经使用了多少级的强制qt。另外,条带头中的等级数量信令可以用于指示当前条带已经使用了多少级的强制qt。sps中的等级数量信令可用于指示已将多少级强制qt用于编码视频序列。pps中的等级数量信令可以用来指示已经将多少级强制qt用于编码图片。
[0106]
也可以基于任何其他方法来确定强制qt等级的数量。例如,可以使用条带/帧/边界区域内的原始样本的熵。通过在i上求和p_i*log2(p_i)项来计算熵,其中,p_i是在特定区域中样本强度值i的概率。符号“*”表示乘法,“log2”表示以2为底的对数。熵越高,在条带/帧/边界区域中可能存在的结构越多,因此,较小的cu可能适用。然而,这些只是示例,原则上,本发明不限于确定强制qt等级数量的任何特定方式。可以使用任何其他方法,例如边缘存在的变化。
[0107]
在一种实现方式中,所述处理电路在操作中对所述边界部分进行分区,直到所述最深层编码单元完全保持在所述边界部分内。在操作中,所述处理电路对所述边界部分进行分区,直到最深等级的编码单元完全在所述边界部分内。
[0108]
根据本发明,提供了一种将图像部分分割为编码单元的方法。所述方法包括将图像部分细分为具有在先确定尺寸的整数个编码树单元和至少在第一方向上尺寸小于所述在先确定尺寸的边界部分,所述第一方向为水平或垂直方向。然后将边界部分分层地分区
为编码单元,包括在各自水平和垂直方向上不同尺寸的最深编码单元,所述最深编码单元在第一个方向上较小。
[0109]
在一个实现方式中,对所述边界部分的分区还包括以下步骤:从作为最浅分区等级的当前分区等级开始;将所述边界部分依次分割为所述当前分区等级的编码单元,只要所述当前分区等级的编码单元未到达所述边界部分即可;当所述当前分区等级的编码单元不落入所述边界部分内时,则增加所述分区等级并进一步分区所述编码单元,其中,四叉树分割用于n个最浅分区等级,否则使用二叉树分割。
[0110]
顺序分割是指从最浅层到最深层进行分割。尤其对于位于边界上的编码单元(边界cu),在每个分层等级中执行强制分割,这意味着这种cu包括图片/条带边界(边界部分)内和位于图片/条带边界之外的部分的样本。此处,术语cu指的是具有分区所致的尺寸的cu,然而,该cu不完整,因为其包含的样本少于其尺寸给出的样本,即其部分位于分区的图片/条带之外。
[0111]
因此,强制分割是为了将边界部分大致从最大cu分割到最小cu,使得整个边界部分被分割。如上所述,强制分割不需要分区信息,可以预定义。如果存在强制的qt等级,则n可以是发送的或预定义的。例如,所述预定义的n表示编码器和解码器都知道所述n,其可由标准定义。
[0112]
但是,在进行强制分割后,还可以对强制分割的边界部分cu进行进一步的分区。可以基于速率失真优化来执行,因此也可以在码流中进行发送。尤其对于边界部分中大于最小cu尺寸的cu,可以发送一个或多个分割标志,指示该cu是否要进一步分割以及如何进行进一步分割。
[0113]
需要说明的是,所述码流中包含的分区信息可以包括qt分割标志和/或bt分割标志。qt和bt分割也可以是混合的,只要可以通过信令发送或推导出采用这两种分割中的哪一种。在解码器侧,在强制分割之后,基于诸如qt_split_cu_flag和bt_split_cu_flag等解码的分区信息进行进一步分割。图10示出了边界分区的详细示例性实现方式,尤其是强制bt以及强制qt与强制bt组合的实现方式。图中使用的变量具有以下含义:-bbottom指示当前ctu或cu的右下样本是否位于底部边界之外。-bright指示当前ctu或cu的右下样本是否位于右边界之外。-bcorner指示当前ctu或cu的右下样本是否位于右下角边界之外。-fqt_lv表示执行强制bt前的强制qt的等级(对应于上述n)。-uidepth表示当前分区的分层等级。
[0114]
如上所述,强制qt的等级可以预定义,或基于诸如条带类型/时间id等编码器参数或基于rd成本自适应地选择。
[0115]
具体地,在步骤1010中,分区从边界部分ctu(等级0)开始。如果在步骤1020中ctu是位于底部或右边界(但不是角落边界)的ctu,如果uidepth不大于fqt_lv-1,则在步骤1040中ctu被强制bt分割。否则,应用强制qt分区步骤1060。所述分割通过进一步分割所述边界部分cu继续进行。例如,在图8(b)的例子中,ctu(等级1)fqt_lv等于1。由于uidepth=0等于fqt_lv-1=0,因此在步骤1030中,将按照步骤1060中的qt强制分割不完整的ctu,从而生成需要进一步分割的两个cu(左上和右上)。这些cu中的每一个都将被进一步递归分区。左上cu(等级1)仍然不完整,因此是边界部分cu。作为步骤1020中的底部边界cu,且由于在
步骤1030中uidepth=1大于fqt_lv-1=0,在步骤1040中强制bt应用于左上cu。右上cu将以相同的方式进行分区。
[0116]
在步骤1040中,边界部分(不完整)cu(64
×
24)将在等级2中由bt进一步分割。等级3中的剩余64
×
8cu将到达图片边界,从而导致步骤1020和1050中的“否”。在步骤1070中,尺寸为8的分区作为最小分区不会进一步分割,而是会导致步骤1080中的“是”,从而在步骤1090中停止分区。第二个64
×
24cu将以相同的方式进行分割。
[0117]
另一方面,图9中(c)部分的56
×
56ctu是角落ctu。在步骤1020(等级0)中,ctu传到步骤1050,并且作为角落cu将在步骤1060中由qt进行分区。在等级1中,左上56
×
56cu将以相同的方式处理,从而形成三个边界cu(左下、右上和角落)。当假设fqt_lv=0意味着bbottom和bright的cu没有强制进行qt分割时,在步骤1040中左下和右上的cu将被bt强制分割(在步骤1020中的“是”和步骤1030中的“否”之后)。所述角落24
×
24cu(等级2)经过步骤1020传到步骤1050,并在步骤1060中被qt分区,从而再次分区为三个边界cu,尺寸为16
×
8、8
×
8和8
×
16,其不需要进一步被分割,并且按照“否”经过步骤1020、按照“否”经过步骤1050并经过步骤1070传到停止条件1080和结束1090。例如,停止条件可能是最小尺寸,在本示例中等于8。
[0118]
在下面表2中示出了能够为正常(非边界)cu发送qt分割标志的示例性语法。此外,可以为除了边界部分cu之外的cu发送bt分割标志。编码四叉树的语法是递归的,即分区是分层的。如果以下条件为真,则执行分区:x0+cuwidth《=pic_width_in_luma_samples且y0+cuhight《=pi_height_in_luma_samples
[0119]
换句话说,只要当前cu(即,当前通过分割处理的cu)的右下角在图片内,就可以通过四叉树或二叉树来分割ctu/cu。应注意的是,该语法仅为示例性,并且本发明也可应用于其他情况,例如,仅使用qt或仅使用bt情况,或者可以为完全在图片/条带中的ctu选择其它的分区类型。语法中使用的值cuminbtsiz、cumaxbtsize和cumaxbtdepth是预定义的值。
[0120]
在上述条件下,x0和y0指定当前cu的左上角样本位置,cuwidth和cuhight指定水平和垂直cu的尺寸,参数pic_width_in_luma_sample和pic_height_in_luma_sample指定水平和垂直图片尺寸。应注意,在本示例中,对整个图片进行分区。然而,相同的方法适用于独立可解码图像部分,例如条带、编码区块或任何其他具有边界的图像部分。
[0121]
与hevc标准类似,当qt_split_cu_flag[x0][y0]不存在时(边界情况),如下(在编码器和解码器处)适用:-如果cuwidth(当前等级的cu的宽度)大于minqtsize(最小qt尺寸,此处为8)并且cuheight(当前等级的cu的高度)大于minqtsize,则推断qt_split_cu_flag[x0][y0]的值等于1。换句话说,边界被强制分割。-否则(log2cbsize等于mincblog2sizey),则推断qt_split_cu_flag[x0][y0]的值等于0。换言之,如果当前cu具有最小允许尺寸mincblog2sizey,则解码器假设cu不再被分割。
[0122]
与上面表1类似。
表2:基于表1中所示语法的强制bt和强制qt+强制bt实现的示例性语法(灰色阴影表示强调)
[0123]
可见,可以发送bt_split_cu_flag。当为不在边界上的ctu/cu配置ctu的bt分割时,会发送此标志(参见条件if(!(bbboundary||brboundary)))。出现边界的情况下,强制分割不需要额外的标志,因为该标志的值是推导出的。尤其当bt_split_cu_flag[x0][y0]不存在(边界情况)时,如下适用:-如果bbboundary(表示当前cu/ctu处于底部边界)为真,同时cuwidth大于minbtsize或cuhight大于minbtsize(当前cu/ctu没有最小尺寸,因此原则上可以进一步分割),则推断bt_split_cu_flag[x0][y0]的值等于1(表示进行进一步分割,即执行二叉分割,其会导致所述分割cu的较长一边与底部即水平边界平行/一致)。-brboundary(表示当前cu/ctu处于右边界)为真,而cuwidth大于minbtsize或cuhight大于minbtsize,则推断bt_split_cu_flag[x0][y0]的值等于2(表示进行进一步二叉分割,即二叉树分割,其会导致分割的cu的较长一边与右边即垂直边界平行/一致)。-否则,推断bt_split_cu_flag[x0][y0]的值等于0,即不再进行二叉分割。
[0124]
在边界上意味着在当前分区分层等级中没有cu,或者在当前cu和边界之间更低的分层等级中没有cu,也就是说,当前cu属于当前分层等级的边界部分(对应于bbboundary为真或brboundary为真)。如果不强制qt(cqtdepth》fqt_lv-1),则使用bt分割,如果当前cu不是边界cu,则bt标志包含在码流中。
[0125]
实现jem的示例性值为具有值4的帧间预测帧的cuminbtsize、值为128的帧间预测帧的cumaxbtsize和值为3的cumaxbtdepth。然而,本发明不限于这些尺寸,并且适用于所选择的任何值。
[0126]
需要说明的是,上述语法仅是示例性,并假定知道变量fqt_lv,该变量指示强制qt分割等级的数量。如果fqt_lv的值为零,则不存在强制qt等级,整个强制边界分割是通过二叉树分割进行的。可以在不脱离本发明的情况下以不同的方式实现语法和语义。
[0127]
基于jem软件(jem 5和6)的另一种方案可以指定以下语义。当不存在qt_split_cu_flag[x0][y0](边界情况)时,则推断qt_split_cu_flag[x0][y0]的值等于1,这意味着在角落cu或强制qt情况下进一步qt分割(如果cqtdepth《=fqt_lv-1)。
[0128]
尤其当bt_split_cu_flag[x0][y0]不存在(边界情况)时,如下适用:

如果bbboundary为真,则推断bt_split_cu_flag[x0][y0]的值等于1,这意味着底部边界cu在垂直方向上通过二叉分割来分割,即形成两个水平cu(即,cu在水平方向上比在垂直方向上长)。

如果brboundary为真,则推断bt_split_cu_flag[x0][y0]的值等于2,即底部边界cu在水平方向上通过二叉分割来分割,即形成两个垂直cu(即,cu在垂直方向上比在水平
方向上长)。
[0129]
以上例子显示了强制分割,参数定义了应用bt分割前强制qt的等级数量。语义规则定义了在不存在分割标志的情况下(即在边界处)要采用的分割。然而,本发明不限于这种方法。
[0130]
或者,边界(不完整)ctu可以首先通过rd优化进行分区,并且位于帧边界上的剩余块然后可以使用强制bt分区或者强制qt和强制bt分区的组合。通过rd优化进行分区意味着在码流中为对应的cu发送分割标志。通过rd分区可以(即在标准中,或者通过图片或图片序列通用的信令)被指定为qt,或者被指定为bt,从而不必为每个cu发送在bt和qt之间做的选择。另一方面,可以扩展分割标志,不仅指示给定的cu是否被分区,还指示该cu是被qt还是bt分割。
[0131]
在解码器侧,将在边界ctu/cu上进行强制分区。对于强制bt分区,将在位于底部边界的ctu/cu上使用强制水平bt(沿垂直方向分割以形成水平分区),直到叶节点的右下部样本位于条带/图片底部边界内。强制垂直bt将在位于右边界的ctu/cu上使用,直到叶子节点的右下样本位于条带/图片右边界内。将使用强制qt对右下角ctu/cu进行分区,直到叶节点的右下样本位于条带/图片边界内或叶节点变为右/底部边界的情况。如上面参考语法所描述的,根据是否存在定义的多个强制qt分区等级,基于解码分割标志(可以是qt或bt分割标志)来进一步划分。如上文所述,所述语法元素由编码器生成并由解码器处理。
[0132]
对于强制qt和强制bt的组合,边界ctu的强制qt等级数量(对应于参数fqt_lv)可以根据时间id/条带类型自适应地选择,或者从码流中解码。解码后的强制qt等级可以从条带头、sps或pps中提取。边界ctu/cu仅在强制qt分区后进行强制bt分区。当叶节点的右下样本在边界内时,强制分割将被终止。基于解码后的分割标志进行进一步的分区。
[0133]
换言之,根据第一种实现方式,在解码器处,如果ctu位于条带/图片边界上,则进行二叉树分割,而无需指示二叉树分割(标志)和/或指示二叉树分割类型(指示是否要执行bt或qt)。当所述叶节点的所述右下样本位于所述条带/图片边界内(即不跨越所述图片边界)时,所述二叉分区被终止。
[0134]
因此,引入边界ctu的强制bt而不是强制qt边界分区。实现了底部边界强制水平bt和右边界强制垂直bt。对于右下角边界,将使用强制qt,直到当前cu不再需要被强制分区(因为达到了最小尺寸),或者当前cu位于底部或右边界。
[0135]
在本发明的另一种实现方式中,强制qt和强制bt分区的组合也是可能的。因此,强制bt分区只在一定数量的强制qt等级后进行。对于强制qt和强制bt分区的组合,强制qt的等级可以根据时间id或条带类型自适应选择。或者,强制qt的等级可以通过成本进行调整并包括在码流中,以指示在解码器中使用了多少级的强制qt。
[0136]
当边界ctu首先通过rd优化进行分区时,甚至能实现更高的灵活性,并且仅位于帧边界上的剩余块(即,部分位于图片内且部分位于图片外的不完整cu)可以使用上述的强制bt分区或强制qt和强制bt分区的组合。
[0137]
如前所述的分区可以用于静态图像或视频编码。具体地,所述分区可分别用于图1和图2所示的编码器和解码器、分割单元110和分割单元250中。
[0138]
相应地,本发明还提供了一种用于编码视频序列图像的装置,包括:根据上述示例中的任一种所述的用于将图像部分分割成编码单元的装置(分割单元)110;图像编码单元
120

145、160

195,用于对编码单元进行编码;以及码流形成单元150,用于生成包括所述已编码的编码单元和指示如何对述编码树单元进行分区的分区信息的码流。
[0139]
所述编码器还可以包括速率失真优化单元(图1中未示出),用于根据对除所述最深等级之外的任意分区等级的速率失真优化确定对所述边界部分进行分层地分区。所述rd优化单元可以使用与分割相关的不同编码器设置来进行编码,并选择所述设置,从而生成最小成本函数。成本函数可以是给定失真级别的最小速率或预测值与待编码的原始块之间的相似性等。
[0140]
此外,提供一种解码视频序列图像的装置,包括:装置250,用于确定要解码成编码单元的图像部分的分割,如上所述;码流解析器250,用于基于所述图像部分的已确定的分割,对包括已编码的编码单元和指示如何对编码树单元进行分区的分区信息的码流进行解析;以及图像解码单元225

240、260

295,用于解码所述已编码的编码单元。
[0141]
需要说明的是,分割和解析是一起递归进行的。所述解析包括:从所述当前cu的码流中分离所需的控制信息,并利用所述解析后的信息和/或语义知识来推导出所述cu的位置、尺寸和数据。具体地,所述解析器可以下发所述分割标志,并且基于所述分割标志,所述分割器可以进一步分割所述当前cu或者维持其尺寸。根据所述分割标志,所述解析器还可以进一步解析针对进一步深度的cu的分割信息,或者解析针对相同深度的其他cu的分割信息,或者解析针对cu的待解码数据。此外,分割器用于根据强制分区规则,即使没有进一步的码流信令,也对如上所述的边界部分进行分区。
[0142]
换言之,编码器和/或解码器都可以将边界部分分割成编码单元作为预定义的分割。然后,码流中的分区信息与边界部分的分割完全无关。这是当边界以预定义方式分割时的情况,其中,在所述预定义方式中还可以包括基于诸如图片类型/时间id/条带类型等其他编码器设置进行的推导和分割。
[0143]
或者,所述编码器和/或解码器还可以用于将边界部分在n个最浅等级中通过四叉树分割,n为大于或等于零且小于所述分区分层等级的数量的整数;以及在剩余的分区分层等级中通过二叉树分割来对所述边界部分进行分区,所述分区信息包括n的指示。所述分区信息还可以包括分割标志,用于指示是否要分割边界部分ctu/cu,和/或采用哪种类型的分区(可以包括二叉树或四叉树和/或其他选项)。可以为所有分区(简称cu)或仅为不在其分层等级的边界上的分区发送分割标志。
[0144]
编码器和/或解码器可以在芯片上(嵌入式)或通过软件实现。然而,编码器和/或解码器也可以在多个硬件和软件组件上实现。
[0145]
以上主要讨论了两种分割:四叉树分割和二叉树分割。然而,本发明提供的基于成本的或预定义的边界强制分区也适用于其他强制分区结构,而不仅仅是强制qt或强制bt。
[0146]
上面已经描述了大多数情况,其中边界部分的强制分割中的最深cu是矩形而不是方形cu,即一边长于另一边的cu。
[0147]
但是,通常而言,边界部分可以至少一个分区等级中通过二叉树分割来分区。在所述分区等级中,边界编码单元不完全位于边界部分内。换言之,根据本发明的一个方面,提供了一种用于将图像部分分割成编码单元的装置,包括处理电路。所述处理电路在操作中将所述图像部分细分为具有在先确定尺寸的整数个编码树单元和在至少第一方向上尺寸小于所述在先确定尺寸的边界部分,其中所述第一方向为水平或垂直方向;以及将所述边
界部分分层地分区为编码单元,包括在各自水平和垂直方向上不同尺寸的最深编码单元,其中,最深编码单元的尺寸在所述第一方向上较小。具体地,二叉树分割可以用于任何边界cu。
[0148]
需要说明的是,图7所示的边界部分包括若干个ctu。上述示例性实施例和实现方式的描述用于一个ctu的分区。这是因为,即使如上所述,边界部分中的只有一个(不完整)ctu被分区,其也可能是有利的,并且在编码效率和/或复杂度方面实现更好的结果。但是,边界部分的多个ctu可以如上所述进行分区。分区可以依次逐ctu进行。在一些实施方式中,并行对不同的ctu进行分区可能是有益的。如果编码器/解码器分别采用并行处理,则可降低编码/解码延迟。
[0149]
换言之,将上述分区应用于边界部分的所有ctu可能是有利的。另一方面,本发明不限于此,所述分区可以应用于一个或多个边界ctu。剩余ctu可以通过任何其他分区方式例如纯qt等进行分割。
[0150]
也提供了相应的分区方法。还提供了相应的采用这种分区的编解码装置和方法。
[0151]
本发明可以在装置中实现。这种装置可以是软件和硬件的组合。例如,帧内预测和去块效应滤波可以由通用处理器、数字信号处理器(digital signal processor,简称dsp)、现场可编程门阵列(field programmable gate array,简称fpga)等芯片进行。但是,本发明不限于在可编程硬件上实现。其可以在专用集成电路(application-specific integrated circuit,简称asic)上实现,也可以通过上述硬件组件的组合实现。
[0152]
所述帧内预测和去块效应滤波的确定也可以通过存储在计算机可读介质上的程序指令来实现,所述程序指令在由计算机执行时,所述计算机执行如程序指令在由计算机执行时,所述计算机执行如上所述的方法的步骤。所述计算机可读介质可以是存储所述程序的任何介质,例如dvd、cd、usb(闪存)驱动器、硬盘、通过网络可用的服务器存储器等。
[0153]
编码器和/或解码器可以在各种设备中实现,包括电视机、机顶盒、pc、平板电脑、智能手机等。可以是实现上述方法步骤的软件、应用。
[0154]
总的来说,本发明涉及图像或图像条带的分区。尤其涉及,将图像或图像条带在垂直和水平方向上分割为整数个编码树单元。然后,剩余边界部分至少部分强制分割,使得所述最深分区等级是二叉分区的结果,即包括一边比另一边长的编码单元。所述较长边与所述图像或图像条带边界并行或一致。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1