具体实施方式
可以以各种方式来修改本发明,并且可以实现本发明的各个示例实施例;因此,本文档在附图中图示特定的示例实施例,并且将提供示例实施例的详细说明。
然而,这不意味着将本发明限于特定的示例实施例;而是,应当明白,它包括属于本发明的技术原理和范围的本发明的每种可能的修改、等同物或替代品。
诸如第一和第二等的词语可以用于描述各个部件,但是该部件不应当被该词语限制。该词语被引入来仅用于将一个部件与其他相区别。例如,在不偏离本发明的范围的情况下,第一部件可以被称为第二部件,并且反之亦然。词语“和/或”指示所描述的多个相关项目的组合或所描述的多个相关项目的任何一项。
如果说部件“链接”或“连接”到不同的部件,则部件可以直接地链接到或连接到不同的部件,但是第三部件可以存在以连接该两个部件内,即使可以直接连接这两个部件。另一方面,如果说部件“直接地链接”或“直接地连接”到另一个部件,则应当解释为,在这两个部件之间没有另一个部件。
在本文档中使用的词语已经被引入仅用来描述特定的示例实施例,而不意欲限制本发明的范围。单数表达应当被解释为包括多个表达,除非明确地另外说明。诸如“包括”或“具有”的词语意味着表示所包含的特性、数量、步骤、行为、部件、模块及其组合的存在,这应当被理解为事先不排除一个或多个特性、数目、步骤、行为、部件、模块及其组合的存在或添加的可能。
除非另外限定,在本文中使用的所有词语不论它们是否是技术或科学的都拥有可以被本发明所属的领域内的技术人员明白的相同含义。诸如在用于一般用途的词典中定义的那些之外的词语应当被解释为承载在现有技术中的相同的上下文含义,并且它们不应当被解释为拥有理想或过分正式的含义。
在随后的内容中,参考附图,将更详细地描述本发明的优选实施例。为了整体理解本发明的目的,附图的相同部件使用相同的附图标记,并且将省略对于相同部件的重复的描述。
在本发明的一个示例实施例中,通过使用递归代码化单元结构来执行编码和解码以适应于比HD(高清晰度)更高的分辨率的视频。
首先,为了描述递归代码化单元结构,假定每一个代码化单元(CU)是正方形的,并且每个代码化单元(CU)具有2N×2N的可变大小(其中,该大小单位是像素)。可以在CU基础上执行帧间预测、帧内预测、变换、量化和熵编码。
可以通过范围从8x8至64x64的2的幂来表示代码化单元(LCU)的大小。代码化单元(CU)包括最大代码化单元(LCU)和最小代码化单元(SCU);例如,LCU具有64x64的大小,而SCU具有8x8的大小。
代码化单元(CU)具有递归的树结构。例如,最大代码化单元CU0的一侧的大小2N0可以是64(N0=32),并且最大层等级或层深度可以是4。可以通过使用一系列标记来表示递归结构。例如,在代码化单元(CUk)的标记值是0并且代码化单元的层等级或层深度是k的情况下,对于当前层等级或深度执行用于代码化单元(CUk)的代码化。在标记值是1的情况下,其当前层等级或深度是k的代码化单元(CUk)被分区为四个独立的代码化单元(CUk+1)。被分区的代码化单元(CUk+1)的层等级或深度变为k+1,并且代码化单元(CUk+1)的大小变为(Nk+1)x(Nk+1)。在该情况下,可以将代码化单元(CUk+1)表示为代码化单元CUk的子代码化单元。递归地处理代码化单元(CUk+1),直到代码化单元(CUk+1)的层等级或深度达到最大可允许的层等级或深度。如果代码化单元(CUk+1)的层等级或深度与最大可允许层等级或深度相同,则不允许进一步的分区。
如果完成了如上所述的分级分割处理,则对于代码化单元分级树的终端节点执行帧间预测或帧内预测,而不进一步分割,其中,终端代码化单元被用作预测单元(PU),PU是用于帧间预测或帧内预测的基本单位。
终端代码化单元现在被分区以执行帧间预测或帧内预测。换句话说,对于预测单元执行分区。在此,预测单元(PU)表示用于帧间预测或帧内预测的基本单位。换句话说,在完成分级分割处理后,作为代码化单元分级树的终端结果获得预测单元;换句话说,预测单元的大小可以采用64x64、32x32、16x16和8x8。
用于执行帧间预测或帧内预测的一个代码化单元(CU)可以被分区为预测单元。更具体地,可以沿着水平或垂直方向来对称地分区2Nx2N代码化单元。
图1图示对称分区。图1假定代码化单元(CU)的大小是2Nx2N(其中,N是自然数,并且通过像素单位表示)。
参考图1,在预测模式是帧间预测的情况下,在水平方向上对称地分区2Nx2N代码化单元P01,以执行帧间预测,2Nx2N代码化单元P01被分区为:具有2NxN大小的分区PU0(P02b)和具有2NxN大小的分区PU1(P02a);或者,Nx2N的分区PU0(P03a)和Nx2N的分区PU1(P03b);或者,NxN分区PU0(P04a)、PU1、PU2和PU3。
图2图示不对称分区。图2假定代码化单元(CU)的大小是2Nx2N(其中,N是自然数,并且通过像素单位表示)。
参见图2,在预测模式是帧间预测的情况下,在水平方向上不对称地分区2Nx2N代码化单元以执行帧间预测,2Nx2N代码化单元被分区为:具有2NxnU(其中,nU是2Nx1/4)大小的分区PU0(P11a)和具有2NxnU(其中,nU是2Nx3/4)大小的分区PU1(P12a)。类似地,可以在垂直方向上不对称地分区2Nx2N代码化单元,2Nx2N代码化单元被分区为:具有nLx2N(其中,nL是2Nx1/4)大小的分区PU0(P13a)和具有nRx2N(其中,nR是2Nx3/4)大小的分区PU0(P23a);或者,具有nLx2N(其中,nL是2Nx3/4)大小的分区PU0(P14a)和具有NRx2N(其中,nR是2Nx1/4)大小的分区PU1(P24a)。
向作为用于帧间预测的基本单位的预测单元或解码器传送包括与帧间预测相关的运动参数(运动向量、运动向量的差值、参考画面索引和参考画面的列表等)的所有信息以用于被分区的预测单元的每一个。
在具有超过HD(高清晰度)的分辨率的视频的情况下,每一个画面的预测块(被分区或未被分区的预测单元)的数目增大;因此,如 果运动参数被传送到解码器以用于每一个预测块(被分区或未被分区的预测单元),则要传送的运动参数的数量变得显著地大,这对于代码化效率是不期望的,并且因此,需要用于改善代码化效率的方法。
为了解决如上所述的问题,可以通过使用块合并来执行帧间编码。块合并是意欲用于改善代码化效率的技术。在当前块之前编码的与当前块(或预测单元)相邻的块具有与当前块X的运动参数相同的运动参数(运动向量、运动向量的差值、参考画面索引和参考画面的列表等)的情况下,将具有与当前块X的运动参数相同的运动参数的相邻块与当前块合并。因为向解码器传送合并块的相同的运动参数,所以要向解码器传送的运动参数的数量可以被减小,而不单独传送当前块的运动参数,并且因此,可以改善代码化效率。
例如,在画面在分级中被分割为终端代码化单元,即,最小代码化单元(SCU),并且作为SCU的当前块(预测单元)X具有与先前编码的左侧相邻块A0和上侧相邻块B0相同的运动向量的情况下,块A0、B0和X被合并并且被传送到具有相同的运动参数的解码器。在此,运动参数包括运动向量、运动向量的差值、参考画面索引和参考画面的列表等。在该情况下,可以向解码器传送用于指示是否已经应用了块合并的合并标记。
图3图示在具有2Nx2N的大小的预测单元(PU)在垂直方向上被分区为两个Nx2N块的情况下的被分区的块的块合并。图4图示执行图3的两个被分区的块的块合并和编码(或解码)操作的处理。
参考图3,2Nx2N代码化单元(CU)被分区为具有2NxN大小的分区块PU0和具有2NxN大小的分区块PU1。
在随后的内容中,被分区的块表示充当预测单元的被分区的预测单元。下面,图3的PU0被称为第一预测单元,而图2的PU1被称为 第二预测单元。
下面,与分区块(预测单元)的左侧边界接界的相邻块被称为左侧相邻块。在图3的左手侧中,在第一预测单元PU0被填充斜线的情况下,A1属于左侧相邻块,而在图3的右手侧中,在第二预测单元PU1被填充斜线的情况下,A1属于左侧相邻块。对于在图3的左手侧中被画上斜线的第一预测单元PU0,A0是与相邻块A1的底侧边界接界的块,其被称为底侧延伸相邻块,而对于在图2的右手侧中被画上斜线的第二预测单元PU1,A0是与相邻块A1的底侧边界接界的块,其被称为底侧延伸相邻块。
与分区块(预测单元)的顶侧边界接界的相邻块被称为顶侧相邻块。对于在图3的左手侧中的被画上斜线的、第一预测单元PU0,B1属于顶侧相邻块,而对于被画上斜线的、在图3的右手侧中的第二预测单元PU1,B1属于顶侧相邻块。相对于在图3的左手侧中的被画上斜线的、第一预测单元PU0,B0被称为与顶侧相邻块B1的右手侧边界接界的右手侧延伸相邻块;同时,相对于在图3的右手侧中的被画上斜线的、第二预测单元PU1,B0被称为与顶侧相邻块B1的右手侧边界接界的右手侧延伸相邻块。
在图3的左手侧,在被画上斜线的、第一预测单元PU0的情况下,B2在第一预测单元PU0的左顶侧边缘上接界,并B2被称为左顶侧相邻块。
再一次参考图3,对于在图3的左手侧中的被画上斜线的第一预测单元PU0,将在图3的左手侧中所示的5个相邻块B2、B1、B0、A1和A0用作用于块合并的候选相邻块,同时,对于在图3的右手侧中的被画上斜线的第二预测单元PU1,将在图3的右手侧中所示的5个相邻块B2、B1、B0、A1和A0用作用于块合并的候选相邻块。
如在图3的右手侧中所示,在5个相邻块B2、B1、B0、A1和A0被相对于第二预测单元PU1用作用于块合并的候选相邻块的情况下,不能获得左手侧相邻块A1的运动参数,直到重构了第一预测单元PU0的运动参数。
因此,如图3中所示,首先执行用于构造用于第一预测单元PU0的块合并的合并候选块的列表的处理,并且执行第一预测单元的编码(或解码),并且,执行用于构造用于第二预测单元PU1的块合并的合并候选块的列表的处理,并且随后执行第二预测单元PU1的编码(或解码)。
结果,不可能执行构造用于第一预测单元PU0的块合并的合并候选块的列表的处理和构造用于第二预测单元PU1的块合并的合并候选块的列表的处理的并行处理。
在随后的内容中,将描述根据本发明的示例实施例的、用于对于不对称分区的预测单元执行块合并和编码(或解码)操作的并行处理的方法。
图5至7图示根据本发明的示例实施例的、使得能够并行处理不对称分区的预测单元PU0、PU1的公共合并候选块。图8图示执行以并行方式对两个被分区的块进行块合并和编码(或解码)操作的处理。
首先,参考图5和7,将2Nx2N代码化单元(CU)分割为由下述部分构成的分区:具有nLx2N(其中nL是2Nx1/4)大小的分区块PU0(预测单元);以及具有nRx2N(其中nR是2Nx3/4)大小的分区块PU1(预测单元)。在随后的内容中,图5至7的PU0被称为第一预测单元,而PU1被生成第二预测单元。在此,代码化单元(CU)的大小是2Nx2N(其中,N是正整数),并且N可以是2、4、8、16和32之一。利用公共合并候选块来使得能够并行处理不对称地分区的 预测单元PU0和PU1的技术可以被应用到所有的代码化单元,其中,N可以取2、4、8、16和32当中的值;或者,可以被应用到以下代码化单元,其中,N可以采用仅一个特定值——例如,来自2、4、8、15和32当中的一个。在最大代码化单元(LCU)是64x 64的情况下,代码化单元(CU)的大小越小,构造包括用于整个64x64块的公共合并候选块的公共合并块的列表的数目变得越大;在该情况下,如果对于代码化单元(CU)的大小小的情况而不是代码化单元(CU)的大小大的情况应用公共合并候选的列表,则可以显著地减少构造公共合并候选的列表的数目,由此降低复杂度。同时,如果通过应用公共合并列表的更多个来执行并行处理,则性能损失变大。因此,通过考虑性能损失和复杂度,如果预测单元(PU)的最小大小是例如4x4,则通过仅对于代码化单元(CU)的大小是8x8(从2、4、8、16和32的N值选择除了2之外的最小数目4)的情况采用公共合并候选块,可以大幅度降低复杂度,而不显著地牺牲性能。
同时,可以将最大代码化单元分割为多个不重叠运动估计区域(或合并估计区域);在最大代码化单元(LCU)内的运动估计区域当中,可以进行运动估计以依序执行,而可以使得在最大代码化单元(LCU)内的属于一个运动估计区域的所有预测单元(PU)以并行方式执行运动估计。在此,运动估计区域的大小小于LCU的大小,并且运动估计区域可以具有正方形。
取决于运动估计区域的大小,可以通过使用公共合并候选块确定是否允许在运动估计区域内的预测单元(PU)的并行处理。例如,假定最小预测单元的大小是4x4。如果运动估计区域的大小是4x4,则向在最大代码化单元(LCU)内的所有预测单元应用依序的合并操作。同时,可以使得仅当运动估计区域的大小是8x8或更大时对于在运动估计区域内的所有预测单元(PU)允许并行合并——一种使用公共合并候选块来使得能够进行并行处理的技术。
取决于如上所述的运动估计区域的大小,预定值可以被包括在PPS(画面参数集)中,并且从编码器被传送到解码器,以取决于运动估计区域的大小来指示并行合并的可能性。该预定值可以采用例如0、1、2、3和4之一;用于预定值0、1、2、3和4的每一个的运动估计区域的大小可以分别是4x4、8x8、16x16、32x32和64x64。
如果当前预测单元(PU)和相邻的预测单元(PU)属于同一运动估计区域(换句话说,在同一运动估计区域内),则将对应的相邻预测单元标注为非可用,而如果当前预测单元和相邻的预测单元属于彼此不同的运动估计区域,则将对应的相邻预测单元标注为可用;因此,可以确定用于运动向量估计的公共合并候选块的列表的可用性。在与具有8x8的大小的当前代码化单元(CU)相邻的公共合并候选块的一部分(相邻预测单元)不可用的情况下,可以通过使用可用的相邻的公共合并候选块来执行上述的合并操作。
对于根据本发明的示例实施例的、在图5至7中所示的不对称分区的第一PU0和第二预测单元PU1,通过使用公共合并候选块,对于第一PU0和第二预测单元PU1,以并行的方式来处理块合并和编码(或解码)操作。
参见图5,用于第一PU0530和第二预测单元PU1550的公共合并候选块可以包括LT、LB1、LB0、RT1、RT0、CT1和CT2块。换句话说,用于第一预测单元PU0530的合并候选块的列表包括LT、LB1、LB0、RT1、RT0、CT1和CT2块,而第二预测单元PU1550的合并候选块的列表包括LT、LB1、LB0、RT1、RT0、CT1和CT2块。
LT1块是第一预测单元PU 0530的左顶侧相邻块;LB1块是位于第一预测单元PU0的左手侧块的最下位置的最低左手侧块;LB0块是在位于第一预测单元的最低左手侧相邻块LB1的下侧边界上接界的下侧延伸相邻块。RT1块是位于第二预测单元PU1550的下侧相邻块 (CT2、…、RT1)的最右位置处的最右上侧相邻块;RT0块是在该最右上侧相邻块RT1的右侧边界上接界的右手侧延伸相邻块。在第一PU0和第二预测单元PU1的上侧相邻块当中,CT1和CT2块是位于当将上分区的预测单元PU在垂直方向上分成两半时形成的中线的延伸的左手侧和右手侧中的上侧的、中间相邻块。在此,作为上侧相邻块并且在左手侧在第一预测单元PU0和第二预测单元PU1之间的中线上接界的CT1块被定义为第一上侧中间相邻块,而作为上侧相邻块并且在右手侧在第一预测单元PU0和第二预测单元PU1之间的中线上接界的CT2块被定义为第二上侧中间相邻块。
第一预测单元PU0530的合并候选块的列表包括七个块:LT、LB 1、LB0、RT1、RT0、CT1和CT2。第二预测单元PU 1550的合并候选块的列表包括相同的七个块:LT、LB1、LB0、RT1、RT0、CT1和CT2。而且,在第二预测单元PU1550的合并候选块的列表中包括的LT、LB1、LB0、RT1、RT0、CT1和CT2块仅包括可以甚至在重构第一预测单元PU0的运动参数之前构造的相邻块。
而且,因为在公共合并候选块当中的LT、LB1、LB0、CT1和CT2块与图3的第一预测单元PU0的合并候选块重合,所以与应用第一预测单元PU0的块合并的情况作比较,可以实际上保证相同的性能。
因此,如图8中所示,不单独执行而是可以作为用于构造单个公共合并候选块的单个处理810执行第一处理和第二处理,第一处理构造用于第一预测单元PU0的块合并的合并候选块的列表(LT、LB1、LB0、RT1、RT0、CT1和CT2块),第二处理构造用于第二预测单元PU1的块合并的合并候选块的列表(LT、LB1、LB0、RT1、RT0、CT1和CT2块);并且,可以与用于第一预测单元PU1的编码(或解码)处理820并行地执行用于第二预测单元PU1的编码(或解码)处理830,由此显著地减少编码时间。
可以根据在编码器和解码器之间的规则来事先预先确定公共合并候选块;在该情况下,不必从编码器向解码器传送关于公共合并候选块的信息。
图6图示根据本发明的另一个示例实施例的、使得能够并行处理不对称分区的预测单元PU0、PU1的公共合并候选块。
如图6中所示,公共合并候选块的列表包括七个块LT 601、LB1611、LB0613、RT1607、RT0609、ET1603、ET2605。与图4不同,第一上侧中心相邻块CT1和第二上侧中心相邻块CT2在列表中;相反,在列表中新包括ET1和ET2,这与图5的示例实施例不同。
因为剩余的LT、LB1、LB0、RT1和RT0块与图5相同,所以将省略详细描述。
在第一预测单元PU0和第二预测单元PU1的上侧相邻块当中,ET1和ET2块是位于在第一预测单元PU0和第二预测单元PU1之间的边界线(其对应于将未分区的预测单元(PU)在垂直方向上划分为四分之一的线)的延伸线的左手和右手侧中的上侧中心相邻块。在此,作为上侧相邻块并且在左手侧上在第一预测单元PU0和第二预测单元PU1之间的边界线上接界的ET1块被定义为第一上侧边缘相邻块,而作为上侧相邻块并且在右手侧上在第一预测单元PU0和第二预测单元PU1之间的边界线上接界的ET2块被定义为第二上侧边缘相邻块。换句话说,ET1块是位于第一预测单元PU0的上侧相邻块(LT、…、ET1)当中的在最右位置处最右上侧相邻块,而ET2块是位于第二预测单元PU1的上侧相邻块(ET2、…、RT1)当中的在最左位置处最左上侧相邻块。
而且,在本发明的又一个示例实施例中,在垂直方向上将2Nx2N代码化单元(CU)分区为具有nLx2N(其中,nL是2Nx3/4)大小 的分区块PU0(预测单元)和具有nRx2N(其中,nR是2Nx1/4)大小的分区块PU1(预测单元)的情况下,可以如图7中所示来构造公共合并候选块。
参见图7,用于第一预测单元PU0730和第二预测单元PU1750的公共合并候选块可以包括LT、LB1、LB0、RT1、RT0、ET1和ET2块。换句话说,第一预测单元PU0730的合并候选块的列表包括LT、LB1、LB0、RT1、RT0、ET1和ET2块,而第二预测单元PU1750的合并候选块的列表包括LT、LB1、LB0、RT1、RT0、ET1和ET2块。
LT1块是第一预测单元PU0530的左顶侧相邻块;LB1块是位于第一预测单元PU0的左手侧块的最下位置处的最底左手侧块;LB0块是在第一预测单元的最底的左手侧相邻块LB1的下侧边界上接界的下侧延伸相邻块。RT1块是位于第二预测单元PU1750的下侧相邻块(ET2、…、RT1)的最右位置处的最右上侧相邻块;RT0块是在最右的上侧相邻块RT1的右手侧边界上接界的右手侧延伸相邻块。ET1和ET2块是位于在第一预测单元PU0和第二预测单元PU1的上侧相邻块当中的在第一预测单元PU0和第二预测单元PU1之间的边界线(其对应于将未分区的预测单元(PU)在垂直方向上划分为四分之三的线)的延伸线的左手和右手侧中的上侧中心相邻块。在此,作为在左手侧中在第一预测单元PU0和第二预测单元PU1之间的边界线上接界的上侧相邻块的ET1块被定义为第一上侧边缘相邻块,而作为在右手侧中在第一预测单元PU0和第二预测单元PU1之间的边界线上接界的上侧相邻块的ET2块被定义为第二上侧边缘相邻块。换句话说,ET1块是位于第一预测单元PU0的上侧相邻块(LT、…、ET1)当中的最右位置处的最右上侧相邻块,而ET2块是位于第二预测单元PU1的上侧相邻块(ET2、…、RT1)当中的最左位置处的最左上侧相邻块。
第一预测单元PU0730的合并候选块的列表包括七个块:LT、LB1、LB0、RT1、RT0、ET1和ET2。第二预测单元PU1750的合并 候选块的列表包括相同的七个块:LT、LB1、LB0、RT1、RT0、ET1和ET2。而且,在第二预测单元PU1750的合并候选块的列表中包括的LT、LB1、LB0、RT1、RT0、ET1和ET2块仅包括可以甚至在重构第一预测单元PU0的运动参数之前构造的相邻块。
因此,如图8中所示,不分别单独而是可以作为用于构造第一公共合并候选块的处理810执行第一处理和第二处理,第一处理构造用于第一预测单元PU0的块合并的合并候选块的列表(LT、LB1、LB0、RT1、RT0、ET1和ET2块),第二处理构造用于第二预测单元PU1的块合并的合并候选块的列表(LT、LB1、LB0、RT1、RT0、ET1和ET2块);并且,可以与用于第一预测单元PU0的编码(或解码)处理820并行地执行用于第二预测单元PU1的编码(或解码)处理830,由此显著地减少编码时间。
虽然在附图中未示出,但是在沿着垂直方向非对称分区为第一预测单元PU0和第二预测单元PU1的情况下,可以从七个公共合并候选块省略特定候选块(来自LB0、ET1、ET2、RT0和RT1当中的至少一个)。
虽然在图5至7中的公共合并候选块的列表包含七个块,但是在公共合并候选块的列表中包括的块的数目不限于上面的示例,并且可以仅用六个、五个或四个候选块来构造列表。
如上所述,在构造一组公共合并候选块的情况下,从合并候选块当中选择具有与当前块(预测单元)的运动参数类似的运动参数的块,并且,将所选择的合并候选块和当前块合并为一个。如果在当前块(预测单元)的运动参数和来自该一组合并候选块的合并候选块的每一个的运动参数之间的差小于预定阈值,则执行具有与当前块(预测单元)的运动参数类似的运动参数的块的选择。
相同的运动参数被应用到当前块和所选择的合并候选块,并且向解码器传送相同的运动参数。
在当前块与所选择的合并候选块合并的情况下,向解码器传送合并块的信息,而不向解码器传送当前块的运动参数,并且解码器可以通过使用合并块的信息和已经解码的合并块的运动参数来解码当前块。
如在上面的示例实施例中所述,在第一预测单元PU0和第二预测单元PU1包括作为空间合并候选块的第一预测单元PU0和第二预测单元PU1的相邻块的情况下,第一预测单元PU0和第二预测单元PU1可以包括用于所有可能的分区类型的公共空间合并候选块,而与具有预定大小的代码化单元的分区类型和索引无关。
在前一个示例实施例中,描述了公共合并候选块的列表包括由第一预测单元PU0和第二预测单元PU1的相邻块构成的空间合并候选块的示例;在本发明的另一个示例实施例中,可以将时间合并候选块进一步并入公共合并候选块的列表内。
在第一预测单元PU0和第二预测单元PU1包括作为公共合并候选块的时间合并候选块的情况下,代码化单元(CU)的第一预测单元PU0和第二预测单元PU1可以将在空间公共合并候选块当中的、在预定特定位置处的块的参考画面索引用作用于时间合并候选块的时间运动向量预测(MVP)的参考画面索引。在此,在时间运动向量预测的情况下,向解码器传送运动向量和参考画面索引。在此,可以使得能够通过使用先前编码的相邻块通过并行处理来执行在特定位置处的块,可以甚至在从在公共合并候选块的列表中包括的块当中重构第一预测单元PU0和第二预测单元PU1的运动参数之前构造该先前编码的相邻块。
而且,时间合并候选块可以进一步包括在公共合并候选列表中的在共同位置的块,该在共同位置的块被包括在当前画面的前一个画面中,并且对应于当前预测单元(PU)。
图9是根据本发明的一个示例实施例的、使用块合并的视频编码设备的框图。
参考图9,一种视频编码设备包括编码器530,并且编码器530包括帧间预测单元532、帧内预测单元535、减法器537、变换单元539、量化单元541、熵编码单元543、逆量化单元545、逆变换单元547、加法器549和帧缓冲器551。帧间预测单元532包括运动预测单元531和运动补偿单元533。
编码器530执行输入视频的编码。可以在预测单元(PU)基础上使用输入视频,以用于在帧间预测单元532中的帧间预测或者在帧内预测单元535中的帧内预测。
编码器530执行对于预测单元的编码。
帧间预测单元532通过使用分区方法将要编码的当前提供的预测单元划分为分区,并且通过在被分区的块的基础上估计运动来生成运动向量。
运动预测单元531通过使用分区方法将要编码的当前提供的预测单元划分为分区,并且对于每一个分区的块,通过下述方式来在块的基础上生成运动向量:对于位于在当前编码画面之前和/或之后的至少一个参考画面(其在完成编码后被存储在帧缓冲器中)搜索与当前编码分区的块类似的区域。在此,可以改变用于运动估计的块的大小。
运动补偿单元533生成通过使用从运动预测单元531生成的运动 向量和参考画面执行运动补偿而获得的预测块(或所预测的预测单元)。
帧间预测单元532通过执行上述的块合并来获得用于每一个合并块的运动参数。
换句话说,帧间预测单元532构造公共合并候选块的列表,该公共合并候选块的列表包括如上所述从与不对称地被分区为第一预测单元和第二预测单元的当前代码化单元相邻的块当中选择的预定数目的公共合并候选块;并且从公共合并候选块的列表选择至少一个候选块以用于第一预测单元和第二预测单元中的每一个。
帧间预测单元532通过使用所选择的至少一个公共合并候选块来获得与当前代码化单元合并的块的运动参数。用于通过执行上面的块合并而合并的每一个块的运动参数被传送到解码器。
帧内预测单元535通过使用在块之间的像素相关性来执行帧内预测编码。帧内预测单元535执行帧内预测,该帧内预测通过从在当前帧(或画面)内的块的预编码的像素值预测像素值来获得当前预测单元的预测块。
减法器537通过减去当前块(或当前预测单元)来从由运动补偿单元533提供的预测块(或所预测的预测单元)生成剩余部分;变换单元539和量化单元541向该剩余部分应用DCT(离散余弦变换),并且量化所变换的剩余部分。在此,变换单元539可以基于关于预测单元的大小的信息来执行变换;例如,变换单元539可以通过使用最大32x32或64x64的像素块来执行变换。而且,变换单元539可以独立于从预测单元确定单元510提供的预测单元大小信息在特定的变换单元(TU)基础上执行变换。例如,变换单元(TU)可以采用最小4x4的像素块至最大32x 32的像素块。而且,变换单元(TU)的最 大大小可以超过32x32像素块——例如,64x64像素块。变换单元大小信息可以被包括在关于变换单元的信息中,并且因此被传送到解码器。
熵编码单元543通过向包括量化的DCT系数、运动向量、确定的预测单元信息、分区信息和变换单元信息等的报头信息应用熵编码来生成比特流。
逆量化单元545逆量化通过量化单元541量化的数据,并且逆变换单元547逆变换该逆量化的数据。加法器549通过相加逆变换的数据和由运动补偿单元533提供的所预测的预测单元来重构视频,并且向帧缓冲器551提供重构的视频;帧缓冲器551存储重构的视频。
图10是根据本发明的一个示例实施例的使用块合并的视频编码方法的流程图。
参考图10,首先,如果向编码设备提供输入视频(步骤610),则通过使用分区方法将输入视频的代码化单元划分为分区;对于每一个被分区的块,通过对于位于当前编码画面之前和/或之后的至少一个参考画面(其在完成编码后被存储在帧缓冲器551中)搜索与当前编码分区块类似的区域来在块的基础上生成运动向量;通过经由使用所生成的运动向量和参考画面执行运动补偿来生成预测块(或所预测的预测单元)(步骤620)。
接下来,编码设备通过对于被分区的预测单元(PU)执行上述的块合并来生成用于合并块的每一个的运动参数(步骤630)。向解码器传送用于通过执行上述块合并而合并的相应块的运动参数。
编码设备获得在当前预测单元和所预测的预测单元之间的差,并且生成剩余部分(步骤640)。
接下来,编码设备变换所生成的剩余部分,并且量化所变换的剩余部分(步骤650);通过向包括量化的DCT系数和运动参数等的报头信息应用熵编码来生成比特流(步骤660)。
根据本发明的示例实施例的通过使用块合并的视频编码设备和视频编码方法仅传送一次用于通过块合并合并的整个块的运动参数,而不是传送用于不对称分区的块(预测单元)的每一个的相应运动参数。以这种方式,因为减小了用于运动参数的发送量,所以可以改善具有比HD或UHD(超高清晰度)分辨率大的分辨率的视频的编码效率。
根据本发明的示例实施例的通过使用块合并的视频解码设备和视频解码方法通过使用从上述的编码设备传送的块合并的块的运动参数来重构块合并的块的运动向量;运动预测单元在块的基础上生成运动向量,并且运动补偿单元通过使用由运动预测单元生成的运动向量和参考画面来执行运动补偿。
该视频解码设备包括解码器,并且该解码器包括帧间预测单元和帧内预测单元。解码器的剩余部件是公众公知的;因此,将省略其详细描述。帧间预测单元包括运动预测单元和运动补偿单元。
以与编码设备相同的方式,帧间预测单元构造公共合并候选块的列表,该公共合并候选块的列表包括从已经被不对称地分区为第一预测单元和第二预测单元的与当前代码化单元相邻的块选择的预定数目的公共合并候选块,帧间预测单元通过使用从公共合并候选块的列表选择的至少一个候选块以用于第一预测单元和第二预测单元的每一个来重构块合并的块的运动参数而在块的基础上生成运动向量,并且帧间预测单元通过使用所生成的运动向量和参考画面来执行运动补偿。
在使用块合并的视频解码设备和视频解码方法的情况下,代码化 单元(CU)的大小是2Nx2N(其中,N是正整数),并且N可以是2、4、8、16和32之一。利用公共合并候选块来使得能够进行处理不对称分区的预测单元PU0和PU1的技术可以被应用到N可以采用来自2、4、8、16和32当中的值的所有代码化单元,或者可以被应用到N可以仅采用一个特定值——例如,来自2、4、8、15和32当中的一个——的代码化单元。在最大代码化单元(LCU)是64x64的情况下,代码化单元(CU)的大小越小,则构造包括用于整个64x64块的公共合并候选块的公共合并块列表的数目变得越大;在该情况下,如果对于代码化单元(CU)的大小小的情况而不是代码化单元(CU)的大小大的情况应用公共合并候选列表,则可以显著地减少构造公共合并候选列表的数目,由此降低复杂度。同时,如果通过应用更多个公共合并列表来执行并行处理,则性能损失变大。因此,通过考虑性能损失和复杂度两者,如果预测单元(PU)的最小大小是例如4x4,则通过仅对于代码化单元(CU)的大小是8x8(从2、4、8、16和32的N值选择除了2之外的最小数目4)的情况采用公共合并候选块,可以大幅度降低复杂度,而不显著地牺牲性能。
取决于运动估计区域的大小,通过使用公共合并候选块确定是否允许在运动估计区域内的预测单元(PU)的并行处理。例如,假定最小预测单元的大小是4x4。如果运动估计区域的大小是4x4,则向在最大代码化单元(LCU)内的所有预测单元应用依序的合并操作。同时,可以使得仅当运动估计区域的大小是8x8或更大时,才允许对于在运动估计区域内的所有预测单元(PU)的并行合并——一种使用公共合并候选块来使得能够并行处理的技术。
如果当前预测单元(PU)和相邻的预测单元(PU)属于同一运动估计区域(换句话说,在同一运动估计区域内),则将对应的相邻预测单元标注为非可用,而如果当前预测单元和相邻的预测单元属于彼此不同的运动估计区域,则将对应的相邻预测单元标注为可用;因此,可以确定用于运动向量估计的公共合并候选块的列表的可用性。在与 具有8x8的大小的当前代码化单元(CU)相邻的公共合并候选块的一部分(相邻预测单元)不可用的情况下,可以通过使用可用的相邻的公共合并候选块来执行上述的合并操作。
如在上面的编码设备中所述,在第一预测单元PU0和第二预测单元PU1包括作为空间合并候选块的第一预测单元PU0和第二预测单元PU1的相邻块的情况下,第一预测单元PU0和第二预测单元PU1可以包括用于所有的可能分区类型的公共空间合并候选块,而与具有预定定大小的代码化单元的分区类型和索引无关。
以与编码设备相同的方式,公共合并候选块的列表包括由第一预测单元PU0和第二预测单元PU1的相邻块构成的空间合并候选块。另外,可以将时间合并候选块进一步并入公共合并候选块的列表内。
在第一预测单元PU0和第二预测单元PU1包括作为公共合并候选块的时间合并候选块的情况下,则代码化单元(CU)的第一预测单元PU0和第二预测单元PU1可以使用在空间公共合并候选块当中的、在预定特定位置处的块的参考画面索引来作为用于时间合并候选块的时间运动向量预测(MVP)的参考画面索引。在此,可以使得在所述预定特定位置处的所述块通过使用先前编码的相邻块通过并行处理可执行,可以甚至在从在所述公共合并候选块列表中包括的块当中重构第一预测单元PU0和第二预测单元PU1的运动参数之前构造所述先前编码的相邻块。