视频解码装置的制作方法

文档序号:13623236阅读:162来源:国知局
视频解码装置的制作方法

技术领域

本发明涉及一种使用可变尺寸宏块对图像进行编码/解码的装置和方法。更具体地,本发明涉及一种使用可变尺寸的块对高分辨率图像进行有效的编码和解码的装置和方法。



背景技术:

本部分中的陈述仅提供与本发明有关的背景信息,不构成现有技术。

用于压缩视频数据的技术包括H.261、H.263、H.264、MPEG-2、MPEG-4等。根据这些视频压缩标准,每个图像被划分且编码成固定尺寸的宏块,这些宏块由具有像素尺寸为16×16的亮度成分和像素尺寸为8×8的色度成分的矩形区域形成。对各个宏块的全部亮度成分和全部色度成分进行空间预测或时间预测,然后预测的残值经历变换、量化和熵编码并最终被发送。

最近颁布的H.264/AVC标准规定编码装置针对固定的宏块尺寸使用16×16的像素块并且将各宏块细分成实现帧内预测(intra prediction)或帧间预测(inter prediction)的更小块。在实现帧内预测编码时,可以将各宏块划分为16×16、8×8或4×4的尺寸,并且按照四种预测模式中的一种对尺寸为16×16的块进行帧内预测,按照九种预测模式中的一种对8×8和4×4的块进行帧内预测。在帧间预测的情况下,可以将宏块细分成尺寸为16×16、16×8、8×16、8×8、8×4、4×8或4×4的块,然后通过运动补偿用于帧间预测。以尺寸为8×8或4×4的块为单位执行变换,并且用于变换系数的量化是标量量化。

然而,可以认为16×16的宏块对于常规的QCIF(四分之一通用中间格式)和CIF(通用中间格式)类的小图像是适当的,但是它不是压缩诸如4K×2K图像的高分辨率图像的正确宏块尺寸。另外,由于一般的视频压缩技术在对图像进行编码时使用固定尺寸的宏块(即使H.264/AVC也将宏块细分并编码为更小的块单元,但是宏块的尺寸是固定的),因此对高分辨率图像进行编码难以实现足够的编码效率。



技术实现要素:

技术问题

因此,本发明的实施方式寻求通过提供一种用于确定与图像特性匹配的块类型的方法和在将尺寸超过16×16的较大像素块用于作为编码和/或解码单位的宏块的情况下有效地进行编码/解码的方法和装置来有效地解决上述问题。

解决问题的技术方案

本公开的一个方面提供了一种视频编码/解码装置,该装置包括:视频编码器,其配置用于使用可变尺寸宏块对图像进行编码的块类型候选,使用各个块类型候选对输入的图像进行编码,基于各个块类型候选的编码成本来确定块类型,并且生成包含按照确定的块类型编码的图像数据和关于确定的块类型的信息的比特流;以及视频解码器,其用于从所述比特流中提取用于使用可变尺寸宏块对所述图像进行编码的关于块类型的信息以及编码的图像数据,并且根据由所述关于块类型的信息标识的块类型对编码的图像数据进行解码而生成重建的图像。

本公开的另一个方面提供了一种视频编码装置,该装置包括:候选块类型配置单元,其配置用于使用可变尺寸宏块对图像进行编码的块类型候选;视频编码器,其使用各个块类型候选对输入的图像进行编码;以及块类型确定器,其基于所述块类型候选的编码成本来确定块类型,并且生成包含确定的块类型编码的图像数据和关于确定的块类型的信息的比特流。

本公开的又一个方面提供了一种视频解码装置,该装置包括:视频解码器,其从比特流中提取用于使用可变尺寸宏块对图像进行编码的关于块类型的信息以及编码的图像数据,并且根据由所述关于块类型的信息标识的块类型对编码的图像数据进行解码而生成重建的图像。

本公开的又一个方面提供了一种编码/解码方法,该方法包括以下步骤:设置用于使用可变尺寸宏块对图像进行编码的块类型候选,使用各个块类型候选对输入的图像进行编码,基于各个块类型候选的编码成本来确定块类型,并且生成包含按照确定的块类型编码的图像数据和关于确定的块类型的信息的比特流;以及从所述比特流中提取用于使用可变尺寸宏块对所述图像进行编码的关于块类型的信息以及编码的图像数据,并且根据由所述关于块类型的信息标识的所述块类型对编码的图像数据进行解码而生成重建的图像。

本公开的又一个方面提供了一种视频编码方法,该方法包括以下步骤:配置用于使用可变尺寸宏块对图像进行编码的块类型候选;使用各个块类型候选对输入的图像进行编码;基于各个块类型候选的编码成本来确定块类型;以及生成包含按照确定的块类型编码的图像数据以及关于确定的块类型的信息的比特流。

所述块类型可以包括与编码单位和/或解码单位相对应的宏块尺寸、最小子块尺寸以及子块模式组合中的一个或更多个。

所述配置所述块类型候选的步骤可以配置输入的块类型候选,或者根据输入的图像的特性确定并配置块类型候选。

当所述块类型成为宏块尺寸或最小子块尺寸时,可以根据输入的图像的长宽比来确定并配置所述块类型候选。

当所述块类型是子块模式组合时,可以根据帧内预测或帧间预测来差异地配置所述块类型候选。

所述生成所述比特流的步骤将关于确定的块类型的信息包含在所述比特流中一次或包含在输入的图像的每一图片中。

可以基于输入的图像的分辨率或图像特性而可变地选择宏块尺寸,可以基于宏块尺寸可变地选择最小子块尺寸,并且可以基于宏块尺寸和最小子块尺寸可变地选择宏块内的子块模式组合。

可以以序列、图片、切片或宏块为单位向视频解码装置发送宏块尺寸。

可以设置参考宏块尺寸,并且对每个输入的图像的各个图片、切片或宏块头部,可以将指示是否使用所述参考宏块尺寸的标记编码并发送到视频解码装置。

当所述标记指示不使用所述参考宏块尺寸时,可以将选择的宏块尺寸编码。

当所述标记指示使用所述参考宏块尺寸时,可以选择具有与所述参考宏块尺寸相等的尺寸的块作为当前宏块。

当所述标记指示不使用所述参考宏块尺寸时,可以选择具有相对于所述参考宏块尺寸按照预定例放大或缩小的尺寸的块作为当前宏块。

在将选择的宏块尺寸编码之后,可以将指示是否从下一个图片开始使用前一图片的宏块尺寸的标记编码并且在不使用所述前一图片的所述宏块尺寸的情况下将当前图片的宏块尺寸编码。

在序列头部中,按照使帧内图片的宏块尺寸与帧间图片的宏块尺寸不同的方式,可以将帧内图片的宏块尺寸与帧间图片的宏块尺寸编码。

可以省略对指示是否发送最小子块尺寸的信息的标记的编码,并且可以在各个序列、图片、切片或宏块头部中将所述最小子块尺寸发送到视频解码装置。

可以设置参考最小子块尺寸,并且对各个图片、切片或宏块头部,可以将指示是否使用所述参考最小子块尺寸的标记编码。

可以设置参考最小子块尺寸,并且对各个图片、切片或最小子块头部,可以将指示是否使用所述参考最小子块尺寸的标记编码。

当所述标记指示使用所述所述参考最小子块尺寸时,选择具有与所述参考最小子块尺寸相等的尺寸的块作为当前最小子块。

当所述标记指示不使用所述参考最小子块尺寸时,可以选择具有相对于所述参考最小子块尺寸按照预定比例放大或缩小的尺寸的块作为当前最小子块。

在将选择的最小子块尺寸编码之后,可以将指示是否从下一图片开始使用前一图片的最小子块尺寸的标记编码并且在不使用所述前一图片的所述最小子块尺寸的情况下将当前图片的最小子块尺寸编码。

在序列头部中,按照使帧内图片的最小子块尺寸与帧间图片的最小子块尺寸不同的方式,对帧内图片的最小子块尺寸和帧间图片的最小子块尺寸进行编码。

将指示是否发送用于预测或变换的可用子块模式的信息的标记包含在序列头部或各个图片的头部中。

本公开的又一个方面提供了一种解码方法,该方法包括以下步骤:从比特流中提取用于使用可变尺寸宏块对图像进行编码的关于块类型的信息以及编码的图像数据;以及根据使用所述关于块类型的信息标识的所述块类型对编码的图像数据进行解码而生成重建的图像。

所述块类型可以包括与编码单位和/或解码单位相对应的宏块尺寸、最小子块尺寸以及子块模式组合中的一个或更多个。

所述提取步骤可以从所述比特流中提取关于确定的块类型的信息一次或从输入的图像的每一个图片中提取关于确定的块类型的信息。

当所述比特流中包含指示是否发送宏块尺寸的信息的标记时,可以在序列头部、各图片的头部或切片头部的安排的位置中将指示是否发送所述宏块尺寸的信息的所述标记解码。

可以设置与编码器一致的参考宏块尺寸,并且可以从各图片、切片或者宏块头部中解码出指示是否使用所述参考宏块尺寸的标记。

在从所述比特流中提取出指示是否使用参考宏块尺寸的标记和/或指示相对于所述参考宏块尺寸按照预定比例进行放大或缩小的额外信息之后,通过使用提取的标记和/或提取的额外信息,可以确定当前宏块尺寸。

另外,在将宏块尺寸信息解码之后,通过使用解码的宏块尺寸信息,可以获得第一个图片的解码所需要的宏块尺寸。

通过从所述比特流内与编码器一致的位置分别提取出帧内图片的宏块尺寸和帧间图片的宏块尺寸,可以设置与图片类型相对应的宏块尺寸。

当所述比特流中包含指示是否发送最小子块尺寸的信息的标记时,可以在序列头部、各图片的头部或切片头部的安排的位置中将指示是否发送关于所述最小子块尺寸的信息的所述标记解码。

可以将与编码器一致的尺寸设置为参考最小子块尺寸,并且可以从各图片、切片或最小子块头部中将指示是否使用所述参考最小子块尺寸的标记解码。

在从所述比特流中提取出指示是否使用参考最小子块尺寸的标记和/或指示相对于所述参考最小子块尺寸按照预定比例进行放大或缩小的额外信息之后,可以使用所述信息来提取当前最小子块尺寸。

在第一图片中,当没有使用指示是否使用参考最小子块尺寸的标记和所述参考最小子块尺寸时,可以将最小子块尺寸信息解码,并可以接着使用解码的最小子块尺寸信息来获得第一图片解码所需要的最小子块尺寸。

另外,通过从所述比特流内的与编码器一致的位置中分别提取帧内图片的最小子块尺寸和帧间图片的最小子块尺寸,可以设置与图片类型相对应的最小子块尺寸。

此外,可以在序列头部或各图片的头部中将指示是否选择并且使用用于预测或变换的子块的组合的标记解码,并且当解码的标记的值指示不选择和使用所述子块组合时,可以在预测或变换时使用与编码器一致的基本子块组合模式。

有益效果

根据如上所述的本发明,确定与图像特性匹配的块类型使得能够实现诸如大块尺寸和宏块尺寸、最小子块尺寸、可用的可划分的块类型、宏块内的预测模式类型等多种模式的组合以获得高分辨率图像的更加有效的编码和解码。

附图说明

图1到图3是用于例示根据本发明的优选实施方式的以M×N个像素为单位的宏块的示例性图;

图4和图5是例示根据本发明的优选实施方式的各种子块模式的示例性图;

图6是例示根据本发明优选实施方式的视频编码装置的示意性框图;

图7是例示根据本发明优选实施方式的视频解码装置的示意性框图;

图8是例示根据本发明优选实施方式的视频编码装置的第一种实现的框图;

图9是例示根据本发明优选实施方式的视频编码方法的第一种实现的流程图;

图10是例示根据本发明优选实施方式的视频编码装置的第二种实现的框图;

图11和图12是例示取决于最小子块尺寸的宏块的子块模式的示例性图;

图13是例示根据本发明的优选实施方式的视频编码方法的第二种实现的流程图;

图14是例示根据本发明的优选实施方式的视频编码装置的第三种实现的框图;

图15和图16是子块模式的组合的示例性图;

图17是例示根据本发明的优选实施方式的视频编码方法的第三种实现的流程图;

图18是例示根据又一个实施方式的视频编码装置的示例的流程图;

图19是例示根据又一个实施方式的视频编码方法的示例的流程图;

图20和图21是例示根据本发明的优选实施方式的帧内图片的编码方法的流程图;

图22和图23是例示根据本发明的优选实施方式的帧间图片的编码方法的流程图;

图24是例示根据本发明的优选实施方式的视频解码装置的第一种实现的框图;

图25是例示根据本发明的优选实施方式的视频解码装置的第二种实现的框图;以及

图26是例示根据本发明的优选实施方式的视频解码装置的第三种实现的框图。

具体实施方式

在下文中,将参考附图详细地描述本发明的各个方面。在下述描述中,相同的组件将由相同的附图标记标明,尽管它们在不同的附图中示出。此外,在本发明的下述描述中,如果对本文中包含的已知功能和配置的详细描述使得本发明的主题变得不清楚,则将略去对这些已知功能和配置的详细描述。

另外,在描述本发明的部件时,可以使用如第一、第二、A、B、(a)和(b)的术语。这些术语只是出于将这些部件相互区分开来的目的,而不是暗示或建议这些部件的本质、次序或顺序。如果将一部件描述为‘连接’到另一部件,则可能意味着这些部件不仅直接‘相连’,而且还经由第三部件间接地‘相连’。

将在下述描述中讨论的视频编码装置和视频解码装置可以是个人计算机(PC)、笔记本计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、掌上游戏机(PSP)以及移动通信终端,并且可以是指包括用于执行与各种设备或有线/无线的通信网络的通信的诸如通信调制解调器的通信装置、用于存储对视频进行编码和解码的各种程序和数据的存储器以及用于执行程序以进行操作和控制的微处理器的各种装置。

此外,被视频编码装置编码为比特流的视频通过有线/无线的通信网络(诸如因特网、近场通信网、无线LAN(局域网)、WiBro(无线宽带)网以及移动通信网)或者通过通信接口(诸如电缆或通用串行总线(USB))实时或非实时地发送到视频解码装置并在视频解码装置中被解码,被如此解码的视频可以重建并再现为视频。

通常,视频包括一系列图片并且每个图片都被划分为如宏块的预定区域,这些区域是对图像进行编码和解码的参考单位。根据宏块解码方法,可以将宏块分类为帧内宏块和帧间宏块。帧内宏块是指使用帧内预测编码进行编码的宏块。帧内预测编码与以下方案相对应:通过使用当前被执行编码的当前图片内的之前编码和解码的重建块的像素来预测当前块像素而生成预测块,并且将生成的预测块与当前块像素之间的差值编码。帧间宏块是指使用帧间预测编码进行编码的宏块。帧间预测编码与以下方案相对应:通过参考一个或更多个过去图片或将来图片来预测当前图片内的当前块而生成预测块,并且将生成的预测块与当前块之间的差值编码。这里,在对当前图片进行编码或解码时参照的图片被称为参考图片。

在下文中,采用例示的方式描述通过以宏块为单位使用固定尺寸的宏块对视频进行编码和解码的装置。这里,宏块是指尺寸为M×N的像素块(然而,M和N是整数,其中M是宏块的横向尺寸而N是宏块的纵向尺寸,因而0<M<输入图像的横向尺寸并且0<N<输入图像的纵向尺寸),并且与编码和解码的单位相对应。然而,以宏块为单位对视频进行编码和解码只是示例,并且可以以限定的区域或未限定的区域为单位,而不是宏块的形式,对视频进行编码和解码。然而,将在下述描述中讨论的编码/解码装置可以使用具有一定尺寸的宏块,但是编码器和解码器使用在编码器和解码器之间约定的宏块尺寸、可用子块类型和模式以及最小子块尺寸对图像进行编码/解码。

图1到图3是示出根据本发明优选实施方式的以M×N个像素为单位的宏块的示例图。

图1示出了在具有某一尺寸的输入图像的一部分中表示的以M×N个像素为单位的宏块(在下文中,称为M×N尺寸的宏块)作为示例。图2示出了包括396个16×16尺寸的宏块的CIF图像作为示例,并且图3示出了包括54个64×32尺寸的宏块的CIF图像作为示例。

在常规的视频压缩技术中,图像被划分为16×16的固定尺寸的宏块,然后被编码和解码,如图2所示。然而,在本发明的实施方式中,可以使用64×32尺寸的宏块(不仅可使用64×32尺寸的宏块,而且可使用诸如64×64及32×64的M×N尺寸(大于16×16尺寸))对图像进行编码和解码,如图3所示。

图4和图5是例示根据本发明的优选实施方式的各种子块的示例性图,

图4示出了可用于32×32尺寸的宏块的子块模式,并且图5示出了可用于32×16尺寸的宏块的子块模式。

根据本发明的优选实施方式,可以将M×N尺寸的宏块划分成更小的块,也就是子块,如图5所示。图像的宏块可以按照宏块、子块或指定的预测为单位被帧内预测编码或帧间预测编码。

图6是例示根据本发明的优选实施方式的视频编码装置的示意性框图。根据本发明的视频编码装置与使用16×16尺寸或更大的宏块对图像进行编码和解码的装置相对应,并且可以包括:预测器610、编码器620、重建器630、筛选器640以及帧存储器650。这里,根据实现方式,重建器630、筛选器640以及帧存储器650可以省略或者选择性地包含在另一个组件中。

预测器610可以包括运动估计器612、运动补偿器614以及帧内预测器616,并且通过将宏块划分为更小的宏块然后对划分出的宏块进行帧内预测或帧间预测来预测输入图像的宏块。根据常规技术,在对一个宏块内的子块进行帧内编码时不能同时使用帧内预测和帧间预测。然而,根据本发明的优选实施方式,可以在对一个宏块内的子块进行帧内编码时可以同时使用帧内预测和帧间预测。

通过将期望编码的块与存储在帧存储器650中的参考图片进行比较并且估计相应块的运动,运动估计器612生成运动向量。

运动补偿器614参考由运动估计器612生成的运动向量,从存储在帧存储器650中的参考图片中取回与期望编码的块的尺寸相对应的块。被运动补偿器614取回的块变成为预测块,该预测块具有期望编码的块的预测值。

帧内预测器616对期望编码的块进行帧内预测。针对帧内预测,帧内预测器616利用已编码并解码的重建的相邻像素信息来生成参考块,并且将参考块与要编码的目标块进行比较,以确定帧内预测模式。然后,根据确定的帧内预测模式,帧内预测器606对块进行帧内预测。被帧内预测器616预测的块变为具有目标块的预测值的预测块。在帧内预测中可用的子块尺寸与(M/y)×(N/y)相对应,并且y是大于0且小于min{log2(M/4),log2(N/4)}的整数。例如,在64×32尺寸的宏块的情况下,可用于帧内预测的子块尺寸包括尺寸64×32、32×16、16×8和8×4。在32×32尺寸的宏块的情况下,可用于帧内预测的子块尺寸包括尺寸32×32、16×16、8×8和4×4。又例如,仅可以使用正方形的块。在宏块的尺寸为64×32的情况下,可用的子块尺寸包括尺寸32×32、16×16、8×8和4×4。

这里,针对16×16尺寸或更大的块(但是,块可以具有其它指定的尺寸而不是16×16的尺寸),从与H.264/AVC的四种帧内预测模式等同或相似的预测模式中选择出具有最佳编码效率的预测模式,并且将选择的帧内预测模式编码。此外,针对尺寸小于16×16的块,从与H.264/AVC的九种帧内预测模式等同或相似的预测模式中选择出具有最佳编码效率的预测模式,并且将选择的帧内预测模式编码。

在此情况下,根据宏块的类型和尺寸,可用的变换类型可以是不同的。当宏块是帧内宏块时,使用16×16或更大尺寸的帧内预测的块能够使用具有与预测块相等尺寸的变换以及针对残余块执行4×4变换并且对DC成分再次执行4×4变换的变换,并且通过比特流发送关于选择的变换类型的信息。此外,针对使用具有小于16×16尺寸的帧内预测的块,使用具有与预测块的尺寸相等的尺寸的变换。当宏块是帧间宏块时,16×16或更大尺寸的块使用4×4变换、8×8变换或者16×16变换,并且通过使用1个比特或2个比特来通过变换标记发送选择的变换类型。在其它情况下,以16×16尺寸的块为单位发送变换标记并且该16×16尺寸的块内的子块全部使用相同的变换。如果将16×16尺寸的块划分为两个8×16尺寸的块,则从4×4变换、8×8变换以及8×16变换中选出具有最小编码成本的变换。如果将16×16尺寸的块划分为两个16×8尺寸的块,则使用4×4变换、8×8变换以及8×16变换并且选择具有最小编码成本的变换。此外,通过使用1比特或2比特,通过变换标记来发送选择的变换类型。只有当把16×16尺寸的块划分为4个8×8的块时,才可以使用4×4变换或8×8变换,并且通过变换标记发送选择的变换类型。在其它情况下,不发送变换标记。

编码器620将残余的信号编码,该残余信号是要编码的目标宏块与预测宏块的像素值之间的差。具体而言,编码器620通过变换、量化和熵编码将残余信号编码。此外,当编码器620对要编码的目标宏块进行帧间预测时,编码器620能够对运动信息(如由运动估计器612生成的运动向量)和宏块模式信息(如宏块尺寸)进行编码。当编码器620对要编码的目标宏块进行帧内预测时,编码器620能够对预测模式信息(如帧内预测模式)和宏块模式信息(如宏块尺寸)进行编码。编码器620的编码方法包括各种可变尺寸的编码方法,诸如CAVLC、CABAC等。此外,作为关于执行的编码方法的信息,可以将编码器与解码器之间约定的标记或表的索引值包含在比特流的头部中并使用比特流的头部发送。

重建器630对经变换和量化的残余信号进行逆量化和逆变换,并且将残余信号和从预测器610输出的预测宏块相加以重建目标宏块。

筛选器640使用例如解块筛选器的筛选器对重建的目标宏块进行筛选。筛选后的重建宏块存储在帧存储器650中并用于在预测器610中对下一个宏块或下一个图片的宏块进行帧间预测。

在下文中,参考图20和图21描述将通过比特流发送的帧内图片和数据的编码方法。可以仅使用帧内预测对帧内图片进行编码,并且对宏块类型和帧内预测模式进行编码的顺序如图20和图21所示。然而,图20和图21的句法的名称和编码顺序仅是示例,并且可以使用与图20和图21的名称和编码顺序不同的名称和编码顺序。

在图20和图21中,针对16×16或更大尺寸的块,使用表1来编码M×N_Block_type。四种帧内预测模式可以用于16×16或更大尺寸的块,并且使用由use_large_transform_flag指示的变换对残余块进行变换。

[表1]

在块的尺寸是16×16或更大尺寸的情况下,当use_large_transform_flag指示不使用大尺寸变换(例如,use_large_transform_flag是“0”)时,执行4×4变换并且针对通过4×4变换而获得的变换系数的DC成分执行哈达玛变换(Hardamard transform)。当use_large_transform_flag指示使用大尺寸变换(例如,use_large_transform_flag是“1”)时,执行具有与当前块的尺寸相同的尺寸的变换。

在块的尺寸小于16×16尺寸的情况下,以16×16的块为单位将use_large_transform_flag编码一次。当use_large_transform_flag指示不使用大尺寸变换(例如,use_large_transform_flag是“0”)时,将16×16块划分为16个4×4块。各个4×4块执行4×4帧内预测并且残余块执行4×4变换。此外,当use_large_transform_flag指示使用大尺寸的变换(例如,use_large_transform_flag是“1”)时,将16×16块划分为4个8×8块。各个8×8块执行8×8帧内预测并且残余块执行8×8变换。另外,针对每一个(M/2)×(N/2)块,向亮度成分的量化变换系数的块分配1比特,并且通过分配的1比特示出在(M/2)×(N/2)块内是否存在不为“0”的系数。

在下文中,将参考图22和图23描述要通过比特流发送的帧间图片和数据的编码方法。帧间图片能够选择性地使用以宏块为单位的帧内预测或帧间预测,并且对包括帧间图片内的宏块类型的宏块数据的编码顺序如图22和图23所示。然而,图22和图23的句法的名称和编码顺序仅是示例,并且可以使用与图22和图23的名称和编码顺序不同的名称和编码顺序。

在等于或大于16×16尺寸的M×N块类型的情况下,可以使用使用表2对图片P进行编码,并且可以使用表3对图片B进行编码。

[表格2]

[表3]

图片P内的帧内宏块使用表1,其中帧内的M×N_block_type+5的值被分配给M×N_block_type的序号。也就是说,图片P内的模式I_M×N_0_0_0的值(对应于如下模式,指示块类型是帧内宏块,使用M×N帧内预测,预测模式值是“0”,并且不存在亮度成分和色度成分的变换系数)是“6”。

图片B内的宏块使用表1,其中帧内的M×N_block_type+23的值被分配给M×N_block_type的序号。

在等于或小于尺寸8×8的M×N块类型的情况下,可以使用表4对图片P进行编码,并且可以使用表5对图片B进行编码。

[表格4]

[表5]

图7是例示根据本发明的优选实施方式的视频解码装置的示意性框图。

根据本发明的优选实施方式的视频解码装置700可以包括:解码器710、预测器720、重建器730、筛选器740以及帧存储器750。解码器710从输入的比特流中提取出宏块解码所需要的三种类型的信息。

首先,解码器710对关于当前期望被解码的宏块是帧内宏块还是帧间宏块的宏块类型信息以及指示该宏块的子块模式的子块模式信息进行熵解码并且提取这些信息。

其次,解码器710对预测需要的信息进行熵解码并且提取所述信息。在此情况下,根据宏块类型,预测所需要的数据是不同的。当重建的模块是帧间宏块时,解码器710从比特流中提取对相应子块进行运动补偿所需要的参考图片信息以及关于运动(如运动向量)的信息,并且对提取出的信息进行解码。当重建的宏块是帧内宏块时,解码器710从比特流中提取亮度成分和色度成分的帧内预测模式的信息并且对提取出的信息进行解码。

最后,解码器710对残余信号解码所需要的信息进行解码。具体而言,解码器710首先对指示在各子块中是否存在不为“0”的变换系数的信息进行解码,然后对变换信息进行解码,所述变换信息指示所使用的变换的类型和用于变换系数不为“0”的块的量化变换系数。

在解码变换信息时,根据变换类型,对变换信息进行解码所需要的比特的数量不同,并且根据宏块类型和子块尺寸来确定变换类型。在存在三种可用变换类型的情况下,解码1个比特或2个比特,而在存在两种可用变换类型的情况下,仅解码1个比特。此外,当可用变换类型固定为一种类型的情况下,不对变换信息进行解码。

如果宏块是帧内宏块并且子块尺寸等于或大于16×16的尺寸时,则确定是使用尺寸与预测块的尺寸相等的变换还是使用将残余块4×4变换然后将DC成分4×4变换的变换。对于使用尺寸小于尺寸16×16的帧内预测的块,不对变换标记进行解码。在此情况下,使用尺寸与预测块的尺寸相等的变换。

当宏块是帧间宏块时,通过使用4×4变换、8×8变换以及16×16变换中的一种变换,通过熵解码从尺寸等于或大于尺寸16×16的每一个块中提取1个比特或2个比特。在其它情况下,以16×16块为单位对变换标记进行解码并且16×16块内的子块全部使用同一变换。当把16×16块划分为两个8×16尺寸的子块时,重建的变换标记与4×4变换、8×8变换以及8×16变换中的一个相对应。当把每一个16×16尺寸的块划分为两个16×8尺寸的子块时,重建的变换标记指示4×4变换、8×8变换以及16×8变换中的一个。此外,当将16×16块划分为四个8×8尺寸的子块时,通过对变换标记进行解码而提取出指示是使用4×4变换还是使用8×8变换的信息。在其它情况下,不对变换标记进行解码并且将变换类型设置为4×4变换。

预测器720预测当前期望解码的当前宏块,并且可以包括运动补偿器722和帧内预测器724。在当前宏块是帧间宏块时,通过在由解码器710解码出的重建的子块模式中将该宏块划分为子块并且通过使用由解码器710解码的各重建的子块的运动向量而从存储在帧存储器750中的参考图片中取回与当前宏块内的子块的尺寸相对应的像素,运动补偿器722生成预测宏块。在当前宏块是帧内宏块时,根据由解码器710解码的重建的帧内预测模式,帧内预测器724通过使用已解码的、重建的邻近像素信息预测当前宏块来生成预测宏块。

重建器730对由解码器710解码的量化变换系数进行逆量化并且通过使用从解码器710中提取出的变换类型对变换系数进行逆变换,生成残余信号。然后,通过将生成的残余信号与由预测器720生成的预测宏块相加,重建器730生成重建的宏块。生成的重建宏块在筛选器740中被筛选并且被存储在帧存储器750中,并且经筛选和存储的宏块用于重建下一个宏块或者下一个图片。如上所述,根据本发明的优选实施方式的视频编码装置600和视频解码装置700能够使用16×16或更大尺寸的宏块对图像进行编码和解码。

在下文中,将参考图20和图21描述通过比特流发送的帧内图片的数据和帧内图片的解码方法。在帧内图片的情况下,通过比特流发送的数据的类型和顺序如图20和图21所示。首先,通过熵解码获得M×N_Block_type的值,然后,确定是否使用表1将各个宏块划分为4个子块。

当重建的宏块的M×N_Block_type的值不为“0”时,以宏块为单位执行帧内预测并且能够通过M×N_Block_type的值掌握预测模式和CBP信息。此后,对色度成分的预测模式信息和变换类型、QP_delta、重建残余块所需的数据(如量化变换系数)进行解码。然而,仅在通过M×N_Block_type获得的CBP不为“0”的情况下(也就是说,仅在宏块中存在不为“0”的变换系数的情况下),才对与残余块解码相关的数据进行解码。

重建的模块的M×N_Block_type的值为“0”的情况表示将宏块划分为4个子块。当划分的子块的尺寸等于或大于16×16时,针对图20所示的每个子块,将图20中的数据顺序地解码。当划分的子块的尺寸小于16×16时,将图21中的数据顺序地解码。

在对变换信息进行解码的方法中,通过针对尺寸等于或大于16×16的块熵解码1个比特,设置了use_large_transform_flag的值。当设置的use_large_transform_flag的值指示没有使用大尺寸的变换(例如,值为“0”)时,使用4×4变换并且针对在逆变换中通过4×4变换获得的变换系数的DC成分使用哈达玛变换。当设置的use_large_transform_flag的值指示使用了大尺寸的变换(例如,值为“1”)时,使用尺寸与当前块的尺寸相等的变换。

在块的尺寸小于16×16的情况下,use_large_transform_flag指示在16×16块内的变换类型以及在预测中使用的子块尺寸。在此情况下,仅以16×16块为单位将use_large_transform_flag编码一次。当use_large_transform_flag指示没有使用大尺寸的变换(例如,值为“0”)时,将各个16×16块划分为16个4×4尺寸的块。对各个4×4块进行帧内预测并且对残余块进行4×4逆变换。此外,当use_large_transform_flag指示使用了大尺寸的变换(例如,值为“1”)时,将各个16×16块划分为4个尺寸为8×8的块。对各个8×8块进行帧内预测并且对残余块进行8×8逆变换。

在下文中,将参考图22和图21描述通过比特流发送的帧内图片的数据和帧内图片的解码方法。在帧内图片的情况下,通过比特流发送的数据的类型和顺序如图22和图21所示。在对等于或大于16×16尺寸的M×N_Block_Type的值进行解码的情况下,可以使用表1和表2对图片P进行解码,并且可以使用表1和表3对图片B进行解码。图片P内的帧间宏块使用表1,并且把通过将“5”与M×N_Block_Type的值相加而生成的值分配给索引值。例如,当图片P内的M×N_Block_Type的重建值为“6”时,以M×N块为单位执行帧内预测并且帧内预测模式值为“0”。此外,亮度成分和色度成分二者的变换系数在模式0中。按照相同的方式,图片B内的宏块使用表1和表3,并且分配了通过将“23”与M×N_Block_Type的值相加而生成的值。在M×N块类型等于或小于8×8尺寸的情况下,可以使用表4对图片P进行解码,并且可以使用表5对图片B进行解码。

在对图片P内的宏块进行解码的过程中,将指示宏块是否处于SKIP模式的标记(M×N_Skip_flag)解码,并且确定宏块是否处于SKIP模式。当宏块处于SKIP模式时,使用预测的运动向量来执行运动补偿,并且基于通过运动补偿获得的预测宏块是重建的宏块这一假设而完成当前宏块解码。然后,对下一个宏块数据进行熵解码。

在当前要解码的宏块不处于SKIP模式或者不是帧内宏块时,对M×N_Block_Type的值进行熵解码。

通过使用M×N_Block_Type的解码的值和表2,确定了宏块是否被划分为4个子块。也就是说,当解码的宏块的M×N_Block_Type的值不为“0”时,基于M×N_Block_Type的值根据表2来设置子块尺寸和模式,并且与子块的数量相等地解码参考图片信息和运动向量信息的量。此后,通过解码CBP,确定是否存在不为“0”的变换系数。当存在不为“0”的变换系数时,将指示变换类型的use_large_tranform_flag、QP_delta以及变换系数解码。解码的宏块的M×N_Block_Type的值为“0”的情况表示宏块被划分为4个子块。当划分的子块的尺寸等于或大于16×16时,针对每个子块顺序地解码图22中的数据。当划分的子块的尺寸小于16×16时,顺序地解码图23中的数据。

如下所述,取决于块类型和尺寸,对残余块解码所需要的变换数据进行熵解码并且提取在编码器中使用的变换类型的方法是不同的。

在16×16或更大尺寸的块的情况下,由编码器选择的变换类型是4×4变换,8×8变换以及16×16变换中的一种。在此情况下,当通过对1个比特进行熵解码而解码出的值指示没有使用大尺寸的变换时(例如,值为“0”),在逆变换中使用4×4变换作为对变换信息进行解码的方法。在被解码的比特值指示使用了大尺寸的变换的情况下(例如,值为“1”),如果通过对1个比特进行熵解码而解码出的第二个比特值指示没有使用大尺寸的变换时(例如,值为“0”),在逆变换中使用8×8变换。否则,在逆变换中使用16×16变换。

在16×16尺寸的块被划分为两个16×8尺寸的子块或两个8×16尺寸的子块的情况下,如果通过对1个比特进行熵解码而解码出的值指示没有使用大尺寸的变换,则使用4×4变换作为逆变换。在解码出的值指示使用了大尺寸的变换的情况下,如果通过对1个比特进行进一步熵解码而解码出的值指示没有使用大尺寸的变换,则使用8×8变换作为逆变换。在第二个解码出的比特值指示使用了大尺寸的变换的情况下,在子块尺寸为16×8的情况下使用尺寸为16×8的逆变换,而在子块尺寸为8×16的情况下使用尺寸为8×16的逆变换。

在下文中,作为本发明的另一个实施方式,将描述用于确定宏块尺寸以及可用子块类型和尺寸,然后根据确定对视频进行编码和解码以便于通过使用可变尺寸的宏块对视频进行有效地编码和解码的装置和方法。宏块是指尺寸为M×N的像素块(M和N是整数,其中M是宏块的横向尺寸而N是宏块的纵向尺寸,因而满足0<M<输入图像的横向尺寸并且0<N<输入图像的纵向尺寸),并且与编码和解码单元相对应。

根据本发明的优选实施方式的视频编码装置可以包括:候选块类型配置单元、视频编码器以及块类型确定器。

候选块类型配置单元配置用于使用具有某一尺寸的宏块对图像进行编码的块类型候选。块类型可以包括宏块尺寸、最小子块尺寸以及子块模式组合中的一个或更多个。也就是说,根据典型的视频压缩技术,由于宏块尺寸被固定为16×16,因此可以在将图像划分为具有固定尺寸的宏块之后对图像进行编码或解码。然而,根据本发明的优选实施方式和本发明的另一个实施方式,由于可以使用任意宏块尺寸,因此可以在以具有预定尺寸的宏块为单位对图像进行划分之后对图像进行编码和解码。此外,根据本发明的优选实施方式,针对每一个图片、切片或者宏块层,可以差异地选择作为编码/解码单元的宏块。

高分辨率图像可以以大块为单位有效地编码。然而,在使用最大的块对图像的全部区域(块、切片、图片等)进行编码时,并不总是提高编码效率。例如,在图像的一个图片的特性单调的情况下,以大尺寸的宏块为单位对图像进行编码可以是有效的。然而,在一个图片的特性复杂的情况下,以小尺寸的宏块为单位对图像进行编码可以是有效的。因此,在本发明的另一个实施方式中,确定能够对图像进行有效编码的宏块尺寸,以具有选择的尺寸的宏块为单位对图像进行编码,并且使用由比特流中包含的信息识别出的宏块尺寸对图像进行解码和重建。

同时,可以将一个宏块划分为多个子块以进行预测和变换。由于放大了宏块尺寸,所以可以改变最小子块尺寸。例如,根据典型的视频压缩技术,在16×16尺寸的宏块中,4×4尺寸的子块对应于进行预测和变换的最小子块。然而,在通过使用64×64尺寸的宏块对图像进行编码的情况下,如果使用4×4尺寸的子块执行预测和变换,则由于将过小的子块用于编码,取决于图像特性,编码效率可能会劣化。因此,将8×8或16×16尺寸的子块确定为最小子块尺寸可能是有效的。因此,在本发明的另一个实施方式中,确定了最小子块尺寸,按照该最小子块尺寸,可以通过预先对图像进行编码而对图像进行有效地编码,只使用尺寸等于或大于对应的确定尺寸的子块对图像进行编码,并且使用尺寸等于或大于使用比特流中包含的信息识别出的最小子块尺寸的子块对图像进行解码和重建。

此外,由于放大了宏块尺寸,因此将宏块划分成子块的块模式大大地多样化了,因而编码效率可能会劣化。例如,根据典型的视频压缩技术,16×16尺寸的宏块的子块模式可以包括16×16、16×8、8×16、8×8、8×4、4×8和4×4。然而,在使用64×64尺寸的宏块对图像进行编码的情况下,可以使用包括64×64、64×32、32×32、32×16、16×32、16×16等更多的子块模式,使得用于表达或编码关于从每个宏块划分出的子块的信息的比特的量扩大,因而编码效率可能会劣化。因此,根据整个图像的单位、图片的单位、帧内模式或者帧间模式来预先确定可用子块模式的组合并接着去除不使用的子块模式可以是有效的。

因此,在本发明的另一个实施方式中,确定了可以对图像进行有效地编码的子块模式组合,仅使用确定的子块模式组合内的子块模式对图像进行编码,并且仅使用由比特流中包含的信息识别出的子块模式组合内的子块模式对图像进行解码和重建。例如,当把整个图像的子块模式组合确定为32×16、16×16和16×8时,可以不将除了子块模式32×16、16×16和16×8之外的其它子块模式(例如,64×64、32×64、64×32、32×32、8×8、4×4等)包括在用于表达关于对应的区域或宏块的子块尺寸的信息的体系中,使得可以减少用于对关于子块模式的信息进行表达或编码的比特的量。例如,在表1到表5中,由于没有使用不必要的句法,因此尽管编码了相同含义的模式,但是基于宏块尺寸、最小子块尺寸和可用子块模式改变了分配的值或比特,并且去除了分配给这些句法的代码值。

块类型(诸如宏块尺寸、最小子块尺寸、子块模式组合等)按照图像的宏块、切片或图片为单位,或者按照图片组(GOP)或整个图像序列为单位确定,并且与这些块类型有关的信息可以包含在比特流头部中。例如,当以图片为单位确定宏块尺寸时,与宏块尺寸有关的信息可以包含在比特流的图片头部中。

根据宏块尺寸、最小子块尺寸以及子块模式组合,对宏块内的子块的类型进行编码/解码的方法可以是不同的。

根据宏块尺寸或最小子块尺寸,对宏块内的子块的类型进行编码/解码的方法可以是不同的。

在下文中,将描述根据本发明的对宏块尺寸进行编码的各种方法。下面将描述对宏块尺寸进行编码的第一种方法。

指示是否发送关于宏块尺寸的信息的标记(Set_MBsize_flag)可以包含在序列头部、每个图片的头部或者切片头部中。根据标记的值,可以发送或不发送宏块尺寸。在不发送宏块尺寸的情况下,使用具有预定尺寸的宏块(例如,16×16尺寸的块)作为宏块。

如果指定了宏块尺寸,则发送关于宏块尺寸的信息。在此情况下,可以使用具有特定尺寸的宏块,这些宏块的横向尺寸和纵向尺寸进行单独地设置。另选地,在使用正方形宏块的情况下,仅对关于该正方形宏块的一边的信息进行编码,然后将该信息发送到解码装置。

可以把要编码的宏块的尺寸值指定为实际的宏块尺寸,或者可以发送指示相对于预定尺寸放大或缩小宏块的倍数的值。此外,通过向宏块尺寸值应用对数函数而不是对宏块尺寸值进行直接编码,可以使用较少的比特来表示宏块尺寸值。例如,可以对log2(选择的MBsize/X)(X是作为2的倍数的某一正整数)进行编码。在该情况下,可以选择X的值作为可用最小宏块尺寸。例如,如果可用最小宏块尺寸是8×8,则优选地选择“8”作为X的值。在此情况下,在当前宏块是8×8尺寸的块的情况下,将“0”编码,并且在当前宏块是16×16尺寸的块的情况下,将“1”编码。如果可用最小宏块尺寸是16×16,则优选地选择“16”而不是“8”作为X的值。在此情况下,在当前宏块是16×16尺寸的块的情况下,将“0”编码,并且在当前宏块是32×32尺寸的块的情况下,将“1”编码。因此,与用于对诸如8、16或32的大数进行编码的比特相比,可以使用较少的比特来表示当前宏块尺寸。

此外,可以将横向尺寸和纵向尺寸的放大率单独地编码。

另选地,要编码的宏块的尺寸值可以是在编码器与解码器之间预先安排的表的索引值。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码(exponential(Exp)Golomb code)的各种二进制编码方法对要发送的宏块尺寸进行编码。

在下文中,为了便于描述,没有对单独设置横向尺寸与纵向尺寸进行描述,但是可应用于单独设置横向尺寸与纵向尺寸。此外,尽管示例了在序列头部和图片头部上对数据进行编码,但是也可以在切片头部或宏块头部上对数据进行编码。

根据对宏块尺寸进行编码的第一种方法的句法的示例如下。

Set_MBsize_Flag

if(Set_MBsize_Flag==1)

{

MBsize

}

or

Set_MBsize_Flag

if(Set_MBsize_Flag==1)

{

MBsize_width

MBsize_height

}

另选地,宏块尺寸可以在每一个序列、图片、切片或宏块头部中发送到视频解码装置,而无需将指示发送关于宏块尺寸的信息的标记(Set_MBsize_flag)编码。

在下文中,将描述对宏块尺寸进行编码的第二种方法。

根据第二种方法,将尺寸M×N设置为参考宏块尺寸,并且在每一图片、切片或宏块头部中编码指示是否使用该参考宏块尺寸的标记。在不使用该参考宏块尺寸时,将选择的宏块尺寸编码。另选地,当在序列头部中编码了指示是否设置参考宏块尺寸的标记之后,如果没有设置参考宏块尺寸,则使用预定尺寸(例如,16×16)作为参考宏块尺寸,如果设置了参考宏块尺寸,则可以在序列头部中编码并包括参考模块尺寸。

在对default_MBsize(指示参考宏块尺寸的信息)的值或者MB_size(指示当前宏块尺寸的信息)的值进行编码的方法中,可以指定实际的宏块尺寸,或者可以发送指示相对于预定尺寸将块放大或缩小宏的倍数的值。另选地,如上述第一种方法所述,通过向宏块尺寸值应用对数函数而不直接对宏块尺寸值进行编码,可以使用较少的比特来表示宏块尺寸值。

横向尺寸和纵向尺寸的放大率可以的的地编码。

另选地,要编码的宏块的尺寸值可以是在编码器与解码器之间预先安排的表的索引值。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对要发送的宏块尺寸进行编码。

根据对宏块尺寸进行编码的上述第二种方法的句法的示例如下。

序列、图片或切片头部Set_defaultMBsize_Flag

if(Set_MBsize_Flag==1)

{

default_MBsize

}

图片、切片或宏块头部

use_default_MBsize_flag

if(use_default_MBsize_flag==0)

{

MB_size

}

在下文中,将描述对宏块尺寸进行编码的第三种方法。

根据第三种方法,将尺寸M×N设置为参考宏块尺寸,并且在每一个宏块头部编码指示是否使用该参考宏块尺寸的标记,并且将其发送到视频解码装置。当标记指示使用参考宏块尺寸时,选择具有与参考宏块尺寸相同的尺寸的块作为当前宏块。然而,当标记指示不使用参考宏块尺寸时,选择具有相对于参考宏块尺寸按照预定比例放大或缩小的尺寸的块作为编码或解码过程中的当前宏块。例如,可以选择具有与参考宏块的横向尺寸与纵向尺寸相比放大或缩小了两倍的横向尺寸与纵向尺寸的块作为当前宏块。

在存在各种放大比例或缩小比例的情况下,可以通过将标记的长度设置为2个比特或更长来表示各种比例。另选地,除了指示是否使用参考宏块尺寸的标记之外,还可以编码指示放大比例或缩小比例的信息。

当标记指示没有使用参考宏块尺寸并且选择了具有相对于参考宏块尺寸被放大了的尺寸的块作为当前宏块时,参考宏块尺寸对应于可用于当前比特流编码或解码的最小宏块尺寸。相反,当标记指示没有使用参考宏块尺寸并且选择了具有相对于参考宏块尺寸缩小了的尺寸的块作为当前宏块时,参考宏块尺寸对应于可用于当前比特流编码或解码的最大宏块尺寸。

通过使用指示是否使用参考宏块尺寸的标记和/或指示相对于参考宏块尺寸按预定比例放大或缩小的额外信息,视频解码装置能够选择当前宏块尺寸。

根据本发明的优选实施方式,可以把指示是否设置参考宏块尺寸的标记包含在比特流的序列头部中。如果没有设置参考宏块尺寸,则可以预先布置以使用预定尺寸(例如,16×16)作为参考宏块尺寸。

在设置了参考宏块尺寸并接着以信号方式将设置的参考宏块尺寸发送至视频解码装置时,将指示参考宏块尺寸的信息编码并可以将其包含在序列头部等中。根据本发明的优选实施方式,视频编码装置能够将指示可用于当前比特流编码或解码的最大宏块尺寸的信息以信号方式发送到视频解码装置作为指示参考宏块尺寸的信息。根据本发明的优选实施方式,视频编码装置能够将指示可用于当前比特流编码或解码的最小宏块尺寸的信息以信号方式发送到视频解码装置作为指示参考宏块尺寸的信息。根据本发明的又一个实施方式,视频编码装置能够将指示可用于当前比特流编码或解码的最大宏块尺寸和最小宏块尺寸二者的信息以信号方式发送到视频解码装置作为指示参考宏块尺寸的信息。

在对作为指示参考宏块尺寸的信息的default_MBsize进行编码的方法中,可以指定实际的宏块尺寸,或者可以发送指示将宏块从预定尺寸放大或缩小的倍数的值。另选地,如上述第一种方法所述,通过向宏块尺寸值应用对数函数而不是直接对宏块尺寸值进行编码,可以使用较少的比特来表示宏块尺寸值。

更具体地,例如,当default_MBsize指示可用于当前比特流编码或解码的最大宏块尺寸时,可以将log2(X/default_MBsize)(X是作为2的倍数的某一正整数)的值编码。在此情况下,可以选择可用的最大宏块尺寸作为X的值。另选地,当default-MBsize指示可用于当前比特流编码或解码的最大宏块尺寸时,将log2(default_MBsize/X)(X是作为2的倍数的某一正整数)的值编码。在此情况下,可以选择可用的最小宏块尺寸作为X的值。

横向尺寸和纵向尺寸的放大率可以单独地编码。

另选地,要编码的宏块的尺寸值可以是在编码器与解码器之间预先安排的表的索引值。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对要发送的宏块尺寸进行编码。

在下文中,将描述对宏块尺寸进行编码的第四种方法。

根据第四种方法,当在第一图片中编码了指示是否使用参考宏块尺寸的标记并且在没有使用参考宏块尺寸的情况下编码了选择的宏块尺寸之后,可以从第二图片开始将指示是否使用前一图片的宏块尺寸的标记编码并且在没有使用前一图片的宏块的情况下将当前图片的宏块尺寸编码。

在编码default_MBsize(指示参考宏块尺寸的信息)的值和MB_size(指示当前宏块尺寸的信息)的值的方法中,可以指定实际的宏块尺寸并且可以发送指示把宏块从预定尺寸放大或缩小的倍数的值。另选地,如上述第一种方法所述,通过向宏块尺寸值应用对数函数而不直接对宏块尺寸值进行编码,可以使用较少的比特来表示宏块尺寸值。

此外,横向尺寸与纵向尺寸的放大率可以单独地编码。另选地,要编码的宏块的尺寸值可以是在编码器与解码器之间预先安排的表的索引值。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对要发送的宏块尺寸进行编码。

根据对宏块尺寸进行编码的上述第四种方法的句法的示例如下。

第一图片

use_default_MBsize_flag

if(use_default_MBsize_flag==0)

{

MB_size

}

从第二图片开始

use_prevPic_MBsize_flag

if(use_prevPic_MBsize_flag==0)

{

MB_size

}

在下文中,将描述对宏块尺寸进行编码的第五种方法。

根据第五种方法,不同的宏块尺寸用于帧内图片和帧间图片。也就是说,在序列头部中编码了用于帧内图片的宏块尺寸和用于帧间图片的宏块尺寸。另选地,根据图片类型的各宏块尺寸可以仅编码在第一帧内图片的头部和第一帧间图片的头部中。

对帧内图片的宏块尺寸和帧间图片的宏块尺寸的信息进行编码的方法可以与上述方法的组合地使用。

序列头部

Set_intraMBsize_Flag

Set_interMBsize_Flag

if(Set_interMBsize_Flag==1)

{

intraMBsize

}

if(Set_interMBsize_Flag==1)

{

interMBsize

}

在下文中,将描述根据本发明的对宏块尺寸进行解码的各种方法。

首先,将描述与对宏块尺寸进行编码的第一种方法相对应的解码方法。

当包含有指示是否发送宏块尺寸的信息的标记(Set_MBsize_flag)时,对在诸如序列头部、每个图片的头部、切片头部等安排好的位置中的指示是否发送宏块尺寸的信息的标记(Set_MBsize_flag)进行熵解码。当解码的标记的值指示不发送宏块尺寸时,使用具有与编码器一致的预定尺寸的宏块(例如,16×16的块)作为宏块。

当解码的宏块尺寸指定标记(Set_MBsize_flag)指示指定了宏块尺寸时,通过各种熵解码方法(诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码等)中与编码器一致的方法,对宏块尺寸进行熵解码并且提取宏块尺寸。

当单独地设置并发送宏块的横向尺寸与纵向尺寸时,通过对这些尺寸中的每一个尺寸进行熵解码,可以获得横向尺寸与纵向尺寸。另选地,如果使用了正方形宏块,则仅对指示正方形宏块的一边的信息进行熵解码。

可以将解码出的值指定为实际的宏块尺寸,或者可以发送指示宏块将从预定尺寸放大或缩小的倍数的值。此外,当编码器编码通过向宏块尺寸值应用对数函数而生成的值时,可以通过向熵解码出的值应用指数函数而设置宏块尺寸。例如,当编码器将y(y是log2(在编码器中选择的MBsize/X)(X是作为2的倍数的某一正整数)的值)编码时,解码器对y进行熵解码并且能够通过2y乘以X而获得在编码器中选择的宏块尺寸。这里,X对应于在编码器与解码器之间约定的值或在宏块尺寸解码之前从比特流中提取出的值。当选择并使用可用于X的最小宏块尺寸并且可用的最小宏块尺寸是8×8时,如果解码出的y的值为“0”,则将宏块尺寸设置为8×8,如果解码出的y的值为“1”,则将宏块尺寸设置为16×16。当可用的最小宏块尺寸是16×16时,使用“16”而不是“8”作为X,并且如果解码出的y的值为“0”,则将宏块尺寸设置为16×16。

当在编码器中单独解码了横向尺寸与纵向尺寸的比例时,通过对横向尺寸与纵向尺寸的比例单独地进行熵解码,可以获得宏块尺寸。

另外,当在编码器与解码器之间的预先安排的表的索引值被编码时,通过使用解码出的值作为表的索引值,可以获得宏块尺寸。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对要发送的宏块尺寸进行解码。在下文中,为了便于描述,没有对单独解码并提取横向尺寸与纵向尺寸进行描述,但是可以应用于单独提取横向尺寸与纵向尺寸。此外,尽管示例了在序列头部和图片头部上对数据进行解码,但是当编码器在切片头部或宏块头部中编码了宏块尺寸时,也可以在切片头部或宏块头部上对宏块尺寸进行解码。

在下文中,将描述与对宏块尺寸进行编码的第二种方法相对应的解码方法。

根据第二种方法,将与编码器一致的M×N尺寸设置为参考宏块尺寸,并且在每个图片的头部、切片头部和宏块头部中对指示是否使用参考宏块尺寸的标记进行熵解码。当解码出的标记的值指示不使用参考宏块尺寸时,通过对宏块尺寸信息进行熵解码而提取出与宏块相关的信息,并且设置宏块尺寸。被解码的标记的值指示使用了参考宏块尺寸的情况表示没有将宏块尺寸信息包含在比特流中,因此将预设的参考宏块尺寸设置为宏块尺寸并且执行一系列解码处理。

当参考宏块尺寸包含在序列头部中并且从编码器发送到解码器时,可以从比特流内的安排的位置(诸如序列头部等)提取出参考宏块尺寸。这里,参考宏块尺寸或当前宏块尺寸被分配了熵解码的值,并且宏块尺寸可以通过以熵解码值缩放(放大或缩小)预定尺寸来获得。另选地,如上述第一种解码方法所述,当编码器编码了通过向宏块尺寸值应用对数函数而生成的值时,可以通过使用指数函数来获得宏块尺寸的值。

当编码器将横向尺寸与纵向尺寸的比例单独地解码时,可以通过对横向尺寸与纵向尺寸的比例单独地进行熵解码而获得宏块尺寸。

另外,当编码器和解码器之间的预先布置的表格的索引值被编码时,通过使用被解码的值作为表的索引值,可以获得宏块尺寸。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对要发送的宏块尺寸进行解码。

在下文中,将描述与对宏块尺寸进行编码的第三种方法相对应的解码方法。

根据第三种方法,视频解码装置从比特流中提取出指示是否使用参考宏块尺寸的标记和/或指示相对于参考宏块尺寸按照预定比例放大或缩小的额外信息,并且可以接着使用上述信息提取宏块尺寸。

首先,将N×N尺寸设置为参考宏块尺寸,并且在每个图片的每一头部、切片头部和宏块头部中解码指示是否使用参考宏块尺寸的标记。当标记指示使用了参考宏块尺寸时,将当前宏块尺寸等同地设置为参考宏块尺寸,并且通过以宏块为单位使用设置的宏块尺寸执行解码。然而,当标记指示不使用参考宏块尺寸时,将按照与编码器一致的预定比例相对于参考宏块尺寸放大或缩小的值设置为当前宏块尺寸并且以宏块为单位执行解码。例如,可以将相对于参考宏块的横向尺寸与纵向尺寸放大或缩小两倍的尺寸设置为当前宏块尺寸。

当编码器使用各种放大比例或缩小比例,将选择的比例包含在比特流中并且将比特流编码时,解码器能够通过在标记熵解码过程中从比特流解码出与编码器一致的数量个比特而获得各种比例。

另选地,当在比特流中除了指示是否使用参考宏块尺寸的标记之外还包含并编码了指示放大比例或缩小比例的信息时,在将标记解码后,根据指示是否使用参考宏块尺寸的标记的值,可以将放大比例或缩小比例解码或者不将其解码。如果没有解码放大比例或缩小比例,则将参考宏块尺寸设置为当前宏块尺寸,然后执行解码处理。

当被解码的标记指示参考宏块尺寸与当前宏块尺寸不同并且被解码的比例是放大比例时,将参考宏块尺寸设置为可用于当前比特流编码或解码的最小宏块尺寸,然后将利用熵解码出的比例从参考宏块尺寸放大而来的尺寸设置为当前宏块尺寸。相反,当熵解码出的比例是缩小比例时,则将参考宏块尺寸设置为可用于当前比特流编码或解码的最大宏块尺寸,然后把按照熵解码比例相对于参考宏块尺寸缩小了的尺寸设置为当前宏块尺寸。

根据本发明的优选实施方式,当在比特流的序列头部中包含并发送指示是否设置参考宏块尺寸的标记时,解码器对来自序列头部中的标记进行熵解码。然后,当该标记指示设置了参考宏块尺寸时,解码器从比特流的安排的位置(如序列头部)提取出参考宏块尺寸信息并且使用提取出的信息设置参考宏块尺寸。当该标记指示没有设置参考宏块尺寸时,可以使用预先在编码器与解码器之间安排好的预定尺寸(例如,16×16)作为参考宏块尺寸。

根据本发明的优选实施方式,视频解码装置从比特流中提取出指示可用于当前比特流编码或解码的最大宏块尺寸的信息,并且能够在设置参考宏块尺寸时使用提取出的信息。根据本发明的优选实施方式,视频解码装置从比特流中提取出指示可用于当前比特流编码或解码的最小宏块尺寸的信息,并且能够在设置参考宏块尺寸时使用提取出的信息。根据本发明的又一个优选实施方式,视频解码装置从比特流中提取出指示可用于当前比特流编码或解码的最大宏块尺寸和最小宏块尺寸二者的信息,并且能够在设置参考宏块尺寸时使用提取出的信息。

在对default_MBsize(指示参考宏块尺寸的信息)进行解码的方法中,能够将熵解码值本身设置为参考宏块尺寸值,并且能够使用该熵解码值作为放大比例或缩小比例从预定尺寸进行放大或缩小来获得参考宏块尺寸。另选地,如上述第一种解码方法所述,当编码器编码了通过向宏块尺寸值应用对数函数而生成的值时,可以使用指数函数获得宏块尺寸值。

更具体而言,例如,当default_MBsize指示可用于当前比特流编码或解码的最大宏块尺寸并且编码器将y(y是log2(X/default_MBsize)的值,X是作为2的倍数的某一正整数)编码时,通过对y进行熵解码并且将X除以2y,解码器能够获得default_MBsize。在此情况下,X可以是编码器与解码器之间约定的值(如可用最大宏块尺寸)或者可以是将default_MBsize解码之前从比特流中提取出的值。

另选地,当default_MBsize指示可用于当前比特流编码或解码的最小宏块尺寸并且编码器将y(y是log2(default_MBsize/X)的值,X是作为2的倍数的某一正整数)编码时,解码器通过熵解码从比特流中提取出y。然后,解码器把通过使X与2y相乘而生成的值设置为default_MBsize。在此情况下,X可以是编码器与解码器之间约定的值(如可用最小宏块尺寸)或者是将default_MBsize解码之前从比特流中提取出的值。

此外,当在编码器中单独地解码横向尺寸的比例和纵向尺寸的比例时,可以通过对横向尺寸与纵向尺寸的比例单独地进行熵解码而获得参考宏块尺寸。

另外,当在编码器与解码器之间的预先安排的表的索引值被编码时,通过使用被解码的值作为表的索引值,可以获得宏块尺寸。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对参考宏块尺寸进行解码。

在下文中,将描述与对宏块尺寸进行编码的第四种方法相对应的解码方法。

根据第四种方法,在第一图片中解码了指示是否使用参考宏块尺寸的标记并且在不使用参考宏块尺寸的情况下解码了宏块尺寸信息之后,通过使用解码的宏块尺寸信息来获得第一图片解码所需要的宏块尺寸。

当指示是否使用参考宏块尺寸的标记表示使用参考宏块尺寸时,将宏块尺寸设置为与参考宏块尺寸的尺寸相同并接着将第一图片解码。

从第二图片开始,在解码了指示是否使用前一图片的宏块尺寸作为当前宏块尺寸的标记之后,当不使用前一图片的宏块尺寸时,把用于解码当前图片的宏块尺寸信息解码。在将前一图片的宏块尺寸用于解码当前图片时,将宏块尺寸设置为与前一图片的宏块尺寸相同并接着将第二图片解码。

在解码default_MBsize(指示参考宏块尺寸的信息)或者MB_size(指示当前图片的宏块尺寸的信息)的方法中,可以将熵解码的值用作宏块尺寸并且可以通过使用熵解码的值作为放大比例或缩小比例从预定尺寸进行放大或缩小而获得宏块尺寸。另选地,如上述第一种解码方法所述,当编码器编码了通过向宏块尺寸值应用对数函数而生成的值时,可以通过使用指数函数获得宏块尺寸值。

此外,当在编码器中分别解码横向尺寸的比例和纵向尺寸的比例时,可以通过对横向尺寸和纵向尺寸的比例单独地进行熵解码而获得宏块尺寸。

当在编码器与解码器之间的预先安排的表的索引值被编码时,通过使用解码的值作为表的索引值,可以获得宏块尺寸。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对参考宏块尺寸进行解码。

在下文中,将描述与对宏块尺寸进行编码的第五种方法相对应的解码方法。

根据第五种方法,分别从比特流内的编码器与解码器之间约定的位置提取帧内图片的宏块尺寸和帧间图片的宏块尺寸,并且根据图片类型设置宏块尺寸。

在序列头部或图片头部中分别重建指示是否解码帧内图片的宏块尺寸的标记和指示是否解码帧间图片的宏块尺寸的标记,然后通过比特流根据标记的值对用于帧内图片或帧间图片的宏块尺寸进行解码,或者使用安排的宏块尺寸重建图像。

对关于帧内图片的宏块尺寸和帧间图片的宏块尺寸的信息进行解码的方法可以结合与上述编码方法相对应的上述解码方法使用。

在下文中,将描述根据本发明的对选择的最小子块尺寸进行编码的各种方法。一个宏块可以被划分为多个子块以进行预测或变换。根据本发明的宏块可以具有可变的尺寸,并且可以使用上述多种方法对与宏块尺寸相关的信息进行编码。

首先描述对最小子块尺寸进行编码的第一种方法。可以将指示是否发送最小子块尺寸的标记(Set_minBlockSize_flag)包含在序列头部或每个图片的头部中。取决于标记的值,可以发送或不发送最小子块尺寸。如果不发送最小子块尺寸,则使用具有预定尺寸(例如,4×4块)的最小子块作为最小子块尺寸。

当指定了最小子块尺寸时,发送关于最小子块尺寸的信息。在此情况下,如果最小子块尺寸的横向尺寸和纵向尺寸被单独地设置,则可以使用具有特定尺寸的最小子块。另选地,当使用正方形作为最小子块时,仅将与正方形的一边相关的信息编码并接着将其发送到解码装置。

可以把要编码的最小子块尺寸值指定为实际的最小子块尺寸,并且可以发送指示将从预定尺寸放大或缩小宏块的倍数的值。此外,通过向最小子块尺寸值应用对数函数而不直接对最小子块尺寸值进行编码,可以使用较少的比特来表示最小子块尺寸值。例如,可以将log2(选择的最小子块尺寸/X)(X是作为2的倍数的某一正整数)的值编码。在该情况下,可以选择可用的最小子块尺寸作为X的值。例如,如果可用的最小宏块尺寸是4×4,则优选地选择“4”作为X的值。在此情况下,在当前最小子块尺寸是4×4时将“00”编码,并且在当前最小子块尺寸是8×8时将“1”编码。当可用的最小子块尺寸是8×8时,优选地选择“8”而不是“4”作为X的值。在此情况下,在当前最小子块尺寸是8×8时将“0”编码,并且在当前最小子块尺寸是4×4时将“1”编码。因此,与被用于编码诸如4、8或16的数的比特相比,可以使用较少的比特来表示当前宏块尺寸。

可以将横向尺寸和纵向尺寸的比例单独地编码。

在下文中,为了便于描述,没有描述单独设置横向尺寸与纵向尺寸,但是可应用于单独设置横向尺寸与纵向尺寸。此外,尽管示例了将数据编码在序列头部和图片头部上,但是也可以将数据编码在切片头部或宏块头部上。

根据对最小子块尺寸进行编码的上述第一种方法的句法的示例如下。

Set_minBlockSize_flag

If(Set_minBlockSize_flag==1)

{

minBlockSize

}

或者

Set_minBlockSize_flag

If(Set_minBlockSize_flag==1)

{

minBlockSize_Width

minBlockSize_height

}

另选地,在不编码指示是否发送关于最小子块尺寸的信息的标记(Set_MBsize_flag)的情况下,可以在每一个序列头部、图片头部、切片头部或宏块头部中向视频解码装置发送最小子块尺寸。

在下文中,将描述对最小子块尺寸进行编码的第二种方法。

根据第二种方法,在将M×N尺寸设置为参考最小子块尺寸时,将选择的最小子块尺寸编码,并且在每一个切片头部、宏块头部或每一个图片的头部中编码指示是否使用该参考最小子块尺寸的标记,并且没有使用参考最小子块尺寸。另选地,当在序列头部中编码了指示是否设置参考最小子块尺寸的标记之后,如果没有设置参考最小子块尺寸,则使用预定尺寸(例如,4×4)作为参考最小子块尺寸,并且如果设置了参考最小子块尺寸,则将参考模块尺寸编码并可以将其包含在序列头部中。

在编码default_minBlockSize(指示参考最小子块尺寸的信息)或minBlockSize(指示当前最小子块尺寸的信息)的方法中,可以指定实际的最小子块尺寸,并且可以发送指示将从预定尺寸进行宏块的放大或缩小的倍数的值。另选地,如上述第一种方法所述,通过向最小子块尺寸值应用对数函数而不直接对最小子块尺寸值进行编码,可以使用较少的比特来表示最小子块尺寸值。

可以将横向尺寸和纵向尺寸的放大率单独地编码。

另选地,最小子块尺寸值可以是在编码器与解码器之间预先安排的表的索引值。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对要发送的最小子块尺寸进行编码。

根据对最小子块尺寸进行编码的上述第二种方法的句法的示例如下。

序列头部、图片头部或切片头部

Set_defalut minBlockSize_Flag

if(Set_default minBlockSize_Flag==1)

{

Default_minBlockSize

}

图片头部、切片头部或宏块头部

use_default_minBlockSize_flag

if(use_default_minBlockSize_flag==0)

{

minBlockSize

}

在下文中,将描述对宏块尺寸进行编码的第三种方法。

根据第三种方法,将M×N尺寸设置为参考最小子块尺寸,并且在每一个图片的每一个头部、切片头部或者最小子块头部中编码指示是否使用参考最小子块尺寸的标记,并且将其发送到视频解码装置。当该标记指示使用参考最小子块尺寸时,选择具有与参考最小子块尺寸相同尺寸的块作为当前最小子块。然而,当该标记指示不使用参考最小子块尺寸时,选择具有相对于参考最小子块尺寸放大或缩小了预定比例的尺寸的块作为编码或解码过程中的当前最小子块。例如,可以选择具有比参考最小子块的横向尺寸和纵向尺寸大两倍或小两倍的横向尺寸与纵向尺寸的块作为当前最小子块。

在存在多种放大比例或缩小比例时,通过使标记的长度大于2个比特,可以表示多种比例。另选地,除了指示是否使用参考最小子块尺寸的标记之外,还可以另外地编码指示放大比例或缩小比例的信息。

当标记指示没有使用参考最小子块尺寸并且选择了具有从参考最小子块尺寸放大的尺寸的块作为当前最小子块时,参考最小子块尺寸对应于可用于当前比特流编码或解码的最小的最小子块尺寸。相反,当标记指示没有使用参考最小子块尺寸并且选择了具有相对于参考最小子块尺寸缩小了的尺寸的块作为当前最小子块时,参考最小子块尺寸对应于可用于当前比特流编码或解码的最大的最小子块尺寸。

通过使用指示是否使用参考最小子块尺寸的标记和/或指示相对于参考最小子块尺寸按照预定比例进行放大或缩小的额外信息,视频解码装置能够选择当前最小子块尺寸。

根据本发明的优选实施方式,可将指示是否设置参考最小子块尺寸的标记包含在序列头部中。如果没有设置参考最小子块尺寸,则可以预先安排以使用预定尺寸(例如,16×16)作为参考最小子块尺寸。

当设置了参考最小子块尺寸并以信号方式向视频解码装置发送该参考最小子块尺寸时,可以编码关于参考最小子块尺寸的信息并可以将其包含在序列头部中。根据本发明的优选实施方式,视频编码装置能够以信号的方式向视频解码装置发送指示可用于当前比特流编码或解码的最大的最小子块尺寸的信息作为关于参考最小子块尺寸的信息。根据本发明的优选实施方式,视频编码装置能够以信号的方式向视频解码装置发送指示可用于当前比特流编码或解码的最小的最小子块尺寸的信息作为关于参考最小子块尺寸的信息。根据本发明的又一个实施方式,视频编码装置以信号的方式能够向视频解码装置发送指示可用于当前比特流编码或解码的最大的最小子块尺寸和最小的最小子块尺寸二者的信息作为关于参考最小子块尺寸的信息。

在编码default_minBlockSize(关于参考最小子块尺寸的信息)的方法中,可以指定实际的最小子块尺寸,或者可以发送指示将子块从预定尺寸放大或缩小的倍数的值。另选地,如上述第一种方法所述,通过向最小子块尺寸值应用对数函数而不直接对最小子块尺寸值进行编码,可以使用较少的比特来表示最小子块尺寸值。

更具体而言,例如,当default_minBlockSize指示可用于当前比特流编码或解码的最大的最小子块尺寸时,可以将log2(X/default_minBlockSize)(X是作为2的倍数的某一正整数)的值编码。在此情况下,可以选择一个可用的最大的最小子块尺寸作为X的值。另选地,当default_minBlockSize指示可用于当前比特流编码或解码的最小的最小子块尺寸时,可以将log2(default_mimBlockSize/X)(X是作为2的倍数的某一正整数)的值编码。在此情况下,可以选择可用的最小的最小子块尺寸作为X的值。

可以将横向尺寸和纵向尺寸的放大率单独地编码。

另选地,最小子块尺寸值可以是在编码器与解码器之间预先安排的表的索引值。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对要发送的最小子块尺寸进行编码。

在下文中,将描述对最小子块尺寸进行编码的第四种方法。

根据第四种方法,当在第一图片中编码了指示是否使用参考最小子块尺寸的标记并且在没有使用参考最小子块尺寸的情况下编码了选择的最小子块尺寸之后,从第二图片开始,可以将指示是否使用前一图片的最小子块尺寸的标记并且在不使用前一图片的最小子块尺寸的情况下将当前图片的最小子块尺寸编码。

在编码default_minBlockSize(关于参考最小子块尺寸的信息)或minBlockSize(关于当前最小子块尺寸的信息)的方法中,可以指定实际的最小子块尺寸,并且可以发送指示将把子块从预定尺寸放大或缩小的倍数的值。另选地,如上述第一种方法所述,通过向最小子块尺寸值应用对数函数而不是直接对最小子块尺寸值进行编码,可以使用较少的比特来表示最小子块尺寸值。

可以将横向尺寸和纵向尺寸的比例单独地编码。另选地,最小子块尺寸值可以是在编码器与解码器之间的预先安排的表的索引值。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对要发送的最小子块尺寸进行编码。

根据对最小子块尺寸进行编码的上述第四种方法的句法的示例如下。

第一图片

use_default_minBlockSize_flag

if(use_default_minBlockSize_flag==0)

{

minBlockSize

}

从第二图片开始

use_prevPic_minBlockSize_flag

if(use_prevPic_minBlockSize e_flag==0)

{

minBlockSize

}

在下文中,将描述对最小子块尺寸进行编码的第五种方法。

根据第五种方法,将不同的最小子块尺寸用于帧内图片和帧间图片。也就是说,将帧内图片的最小子块尺寸和帧间图片的最小子块尺寸编码在序列头部中。另选地,可以仅分别在第一帧内图片头部和第一帧间图片头部中编码根据图片类型的最小子块尺寸。

将关于帧内图片的最小子块尺寸和帧间图片的最小子块尺寸的信息编码的方法可以与上述方法的组合使用。

序列头部

Set_intra minBlockSize_Flag

Set_inter minBlockSize_Flag

if(Set_intra minBlockSize_Flag==1)

{

intra minBlockSize

}

if(Set_inter minBlockSize_Flag==1)

{

inter minBlockSize

}

在下文中,将描述根据本发明的对最小子块尺寸进行解码的多种方法。

首先描述与对最小子块尺寸进行编码的第一种方法相对应的解码方法。

当包含了指示是否发送关于宏块尺寸的信息的标记(Set_minBlockSize_flag)时,在安排的位置(诸如序列头部、每一个图片的头部、切片头部)中对指示是否发送关于最小子块尺寸的信息的标记(Set_minBlockSize_flag)进行熵解码。当解码的标记的值指示没有发送最小子块尺寸时,使用具有与编码器一致的预定尺寸的最小子块(例如,4×4块)作为最小子块。

当解码的最小子块尺寸指定标记(Set_minBlockSize_flag)指示指定了最小子块尺寸时,通过多种熵解码方法(诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码等)中与编码器一致的方法,对最小子块尺寸进行熵解码并且提取最小子块尺寸。

当单独地设置并发送最小子块的横向尺寸与纵向尺寸时,通过对横向尺寸与纵向尺寸单独进行熵解码,可以获得横向尺寸与纵向尺寸。另选地,当使用了正方形最小子块时,仅将与正方形最小子块的一边相关的信息熵解码。

可以将解码的值指定为实际的最小子块尺寸,并且可以将通过使用与编码器一致的预定尺寸对解码的值进行放大或缩小而生成的值指定为最小子块尺寸。此外,当在编码器中编码了通过向最小子块尺寸应用对数函数而生成的值时,可以将通过向被熵解码的值应用指数函数而生成的值设置为最小子块尺寸。例如,当编码器将y的值(y是log2(在编码器中选择的最小子块尺寸/X)(X是作为2的倍数的某一正整数))编码时,通过对y进行熵解码并且将X乘以2y,解码器可以获得在编码器中选择的最小子块尺寸。这里,X是编码器与解码器之间约定的值或者是在解码最小子块尺寸之前从比特流中提取出的值。当选择并使用可用于X的最小的最小子块尺寸并且可用的最小的最小限度的最小子块尺寸是4×4时,如果解码出的y的值是“0”,则将最小子块尺寸设置为4×4,如果在解码的y的值是“1”,则将最小子块尺寸设置为8×8。当可用最小子块尺寸是尺寸8×8时,使用“8”而不是“4”作为X,并且在解码的y的值是“0”,则将最小子块尺寸设置为8×8。

当编码器将横向尺寸和纵向尺寸的比例单独解码时,可以通过对横向尺寸与纵向尺寸的比例单独地进行熵解码而获得最小子块尺寸。

在编码器与解码器之间的预先安排的表的索引值被编码,通过使用解码的值作为表的索引值,可以获得最小子块尺寸。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对要发送的最小子块尺寸进行解码。在下文中,为了便于描述,没有描述单独解码和提取横向尺寸和纵向尺寸,但是可应用于单独提取横向尺寸和纵向尺寸。尽管示例了在序列头部和图片头部上对数据进行解码,但是当编码器将最小子块尺寸编码在切片头部或最小子块头部中时,也可以在切片头部或最小子块头部上将最小子块尺寸解码。

在下文中,将描述与对最小子块尺寸进行编码的第二种方法相对应的解码方法。

根据第二种方法,将与编码器一致的M×N尺寸设置为参考最小子块尺寸,并且从最小子块头部中熵解码出指示是否使用参考最小子块尺寸的标记。当被解码的标记的值指示不使用参考最小子块尺寸时,通过对最小子块尺寸信息进行熵解码而提取出与最小子块有关的信息,并且设置最小子块尺寸。由于被解码的标记的值指示使用了参考最小子块尺寸的情况表示最小子块尺寸信息没有包含在比特流中,因此将预设的参考最小子块尺寸设置为最小子块尺寸并且执行一系列解码处理。

当参考最小子块尺寸包含在序列头部中并且从编码器发送到解码器时,可以从比特流内的安排的位置(如序列头部)中提取出参考最小子块尺寸。这里,可以将熵解码出的值分配给参考最小子块尺寸或当前最小子块尺寸,并且通过使用熵解码出的值对预定尺寸进行缩放(放大或缩小)而获得最小子块尺寸。另选地,如上述第一种解码方法所述,当编码器编码了通过向最小子块尺寸值应用对数函数而生成的值时,可以使用指数函数获得最小子块尺寸值。

当在编码器中单独地解码横向尺寸和纵向尺寸的比例时,可以通过对横向尺寸的比例和纵向尺寸的比例单独地进行熵解码而获得最小子块尺寸。

另外,当编码了在编码器与解码器之间的预先安排的表的索引值时,通过使用解码的值作为表的索引值,可以获得最小子块尺寸。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对要发送的最小子块尺寸进行解码。

在下文中,将描述与对最小子块尺寸进行编码的第三种方法相对应的解码方法。

根据第三种方法,视频解码装置从比特流中提取出指示是否使用参考最小子块尺寸的标记和/或指示相对于参考最小子块尺寸按照预定比例放大或缩小的额外信息,然后可以使用上述信息提取出当前最小子块尺寸。

首先,将N×N尺寸设置为参考最小子块尺寸,并且在每一个图片的每一个头部、切片头部和宏块头部中将指示是否使用参考最小块尺寸的标记解码。当标记指示使用参考最小子块尺寸时,将当前最小子块尺寸设置为与参考子块尺寸相同的尺寸,并且通过以最小子块为单位使用设置的最小子块尺寸执行解码。然而,当标记指示没有使用参考最小子块尺寸时,将相对于参考宏块尺寸按照与编码器一致预定比例放大或缩小的值设置为当前最小子块尺寸并且以最小子块为单位执行解码。例如,可以把从参考最小子块的横向尺寸与纵向尺寸放大或缩小了两倍的尺寸设置为当前最小子块尺寸。

当编码器使用各种放大比例或缩小比例,将选择的比例包含在比特流中,并且将比特流编码时,解码器可以通过在熵解码过程中从比例流中解码出与编码器一致的数量个比特相对应的标记而获得各种比例。

另选地,当比特流中除了指示是否使用参考最小子块尺寸的标记之外还包含并编码了指示放大比例或缩小比例的信息时,在将标记解码后,根据指示是否使用参考最小子块尺寸的标记的值,可以将或不将放大比例或缩小比例解码。如果不将放大比例或缩小比例解码,则将参考最小子块尺寸设置为当前最小子块尺寸并接着执行解码处理。

当解码的标记指示参考最小子块尺寸与当前最小子块尺寸不同并且解码的比例是放大比例时,将参考最小子块尺寸设置为可用于当前比特流编码或解码的最小的最小子块尺寸,并且接着把按照熵解码出的比例从参考最小子块尺寸放大的尺寸设置为当前最小子块尺寸。相反,当熵解码出的比例是缩小比例时,将参考最小子块尺寸设置为可用于当前比特流编码或解码的最大的最小子块尺寸,并且接着把相对于参考最小子块尺寸按照熵解码出的比例缩小的尺寸设置为当前最小子块尺寸。

根据本发明的优选实施方式,当指示是否设置参考最小子块尺寸的标记包含在比特流的序列头部中并且发送时,解码器从序列头部将标记熵解码。然后,当标记指示设置了参考最小子块尺寸时,解码器从比特流的安排的位置(如序列头部)提取参考最小子块尺寸信息并且使用提取的信息来设置参考最小子块。当标记指示没有设置参考最小子块尺寸时,可以使用预先在编码器与解码器之间安排的预定尺寸(例如,4×4)作为参考最小子块尺寸。

根据本发明的优选实施方式,视频解码装置从比特流中提取出指示可用于当前比特流编码或解码的最大的最小子块尺寸的信息,并且能够在设置参考最小子块尺寸时使用提取的信息。根据本发明的优选实施方式,视频解码装置从比特流中提取出指示可用于当前比特流编码或解码的最小的最小子块尺寸的信息,并且能够在设置参考最小子块尺寸时使用提取的信息。根据本发明的又一个优选实施方式,视频解码装置从比特流中提取出指示可用于当前比特流编码或解码的最大的最小子块尺寸和最小的最小块尺寸二者的信息,并且能够在设置参考最小子块尺寸时使用提取的信息。

在对default_minBlockSize(指示参考最小子块尺寸的信息)进行解码的方法中,能够将熵解码出的值自身设置为参考最小子块尺寸值,并且能够通过使用熵解码出的值作为放大比例或缩小比例从预定尺寸进行放大或缩小而获得参考最小子块尺寸。另选地,如上述第一种解码方法所述,当编码器编码了通过向最小子块尺寸值应用对数函数而生成的值时,可以使用指数函数获得最小子块尺寸值。

更具体而言,例如,当default_minBlockSize指示可用于当前比特流编码或解码的最大的最小宏块尺寸并且编码器将y(y是log2(X/default_minBlockSize)的值,X是作为2的倍数的某一正整数)编码时,通过对y进行熵解码并且用X除以2y,解码器能够获得default_minBlockSize。在此情况下,X可以是在编码器与解码器之间约定的值(如可用的最大的最小子块尺寸)或者是解码default_minBlockSize之前从比特流中提取出的值。

另选地,当default_minBlockSize指示可用于当前比特流编码或解码的最小的最小子块尺寸并且编码器将y(y是log2(default_minBlockSize/X)的值)(X是作为2的倍数的某一正整数)编码时,解码器通过熵解码从比特流中提取出y。然后,解码器将通过使用X乘以2y生成的值设置为default_minBlockSize。在此情况下,X可以是在编码器与解码器之间约定的值(如可用最小的最小子块尺寸)或者解码default_minBlockSize之前从比特流中提取出的值。

此外,当在编码器中对横向尺寸和纵向尺寸的比例单独地进行解码时,可以通过对横向尺寸和纵向尺寸的比例单独地进行熵解码而获得参考最小子块尺寸。

当在编码器与解码器之间的预先安排的表的索引值被编码时,通过使用解码的值作为表的索引值,可以获得最小子块尺寸。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对参考最小子块尺寸进行解码。

在下文中,将描述与对最小子块尺寸进行编码的第四种方法相对应的解码方法。

根据第四种方法,在第一图片中熵解码了指示是否使用参考最小子块尺寸的标记并且在不使用参考最小子块尺寸的情况下解码了最小子块尺寸信息之后,使用解码出的最小子块尺寸信息获得第一图片解码所需要的最小子块尺寸。

当指示是否使用参考最小子块尺寸的标记表示使用了参考最小子块尺寸时,将最小子块尺寸设置为与参考最小子块尺寸相同的尺寸并接着将第一图片解码。

从第二图片开始,在解码了指示是否使用前一图片的最小子块尺寸作为当前最小子块尺寸的标记之后,在不使用前一图片的最小子块尺寸的情况下,把用于当前图片解码的最小子块尺寸信息解码。在使用前一图片的最小子块尺寸来解码当前图片时,将最小子块尺寸设置为与前一图片的最小子块尺寸相同的尺寸并接着将第二图片解码。

在对default_minBlockSize(指示参考最小子块尺寸的信息)或minBlockSize(指示当前图片的最小子块尺寸的信息)进行解码的方法中,可以使用熵解码出的值作为最小子块尺寸,并且通过使用熵解码出的值作为放大比例或缩小比例从预定尺寸进行放大或缩小,可以获得最小子块尺寸。另选地,如上述第一种解码方法所述,当编码器编码了通过向最小子块尺寸值应用对数函数而生成的值进行时,可以使用指数函数获得最小子块尺寸值。

此外,当在编码器中对横向尺寸与纵向尺寸的比例单独地进行解码时,可以通过对横向尺寸与纵向尺寸的比例单独地进行熵解码而获得参考最小子块尺寸。

另外,当在编码器与解码器之间的预先安排的表的索引值被编码时,通过使用解码的值作为表的索引值,可以获得最小子块尺寸。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对参考最小子块尺寸进行解码。

在下文中,将描述与对最小子块尺寸进行编码的第五种方法相对应的解码方法。

根据第五种方法,从比特流内的在编码器与解码器之间约定的位置分别提取帧内图片和帧间图片的最小子块尺寸,并且设置与图片类型相对应的最小子块尺寸。

在序列头部或图片头部中分别重建指示是否解码帧内图片的最小子块尺寸的标记和指示是否解码帧间图片的最小子块尺寸的标记,并且接着通过比特流根据标记的值来解码帧内图片或帧间图片的最小子块尺寸,或者使用安排的最小子块尺寸重建图像。

解码与帧内图片的最小子块和帧间图片的最小子块尺寸有关的信息的方法可以与上述编码方法相对应的上述解码方法结合使用。

在下文中,将描述选择宏块内的可用子块模式的组合并且将选择的子块模式的组合中针对当前宏块编码而选择的子块模式编码的各种方法。

一个宏块可以被划分为多个子块以进行预测或变换。根据本发明的宏块尺寸和宏块内的最小子块尺寸可以对应于可变的尺寸,并且可以使用上述各种方法对宏块尺寸和最小子块尺寸的信息进行解码。

首先描述了对在预测中使用的可用子块模式组合和当前块模式进行编码的第一种方法。

指示是否发送与用于预测或变换的可用子块模式有关的信息的标记可以包含在序列头部或每一个图片的头部中。根据标记的值,可以发送或不发送可用块模式组合。如果不发送可用块模式组合,则在预测或变换中使用在编码器与解码器之间约定的基本子块组合,例如表1至表5中示出的全部子块模式。

如果指定了可用子块模式组合,则发送与多种块模式当中可用于当前序列编码、当前图片编码、当前切片编码或者当前宏块编码的块模式的组合有关的信息。要编码的与可用子块模式的组合有关的信息可以通过具有1比特长度的标记来表示。例如,当从尺寸为64×64、64×32、32×64、32×32、32×16、16×32、16×16、16×8、8×16、8×8、8×4、4×8以及4×4的子块中选择的子块模式时(该次序可以改变)是可用的子块模式时,将“1”编码,而当该子块模式不是可用的子块模式时,将“0”编码。例如,当使用与尺寸为64×64的像素块相对应宏块尺寸执行编码时,基于只有具有小于尺寸16×16的尺寸的正方形子块模式可用于帧内预测模式中的预测这一假设,在序列头部、图片头部或且切片头部中将“0、0、0、0、0、0、1、0、0、1、0、0、1”编码以作为标记值。

另选地,要编码的与可用子块模式的组合有关的信息可以是表的索引值。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对在预测或变换时可用的子块模式的组合有关的信息进行编码。

此外,根据帧内模式或帧间模式,可以对可用子块模式的组合进行不同地设置,并且可以将帧内模式的子块模式组合信息和帧间模式的子块模式组合信息编码。

在对为了当前块编码而选择的预测模式或变换类型信息进行编码时不能使用的块模式被从表中删除,并且索引仅被重新分配给可用的块模式。然后,将重新分配的表的索引值编码。例如,在帧间预测模式中可用于尺寸为64×64的宏块P的子块尺寸是16×16、16×8和4×4。在使用表2和表4对子块模式进行编码的情况下,可以通过表2和表4的组合将表2修订为表6。在此情况下,取决于M×N_Block_type的可出现的类型的数量,根据M×N_Block_type编码所需的比特的数量,M×N_Block_type编码所需的比特的数量是不同的。

[表6]

在下文中,为了便于描述,没有描述根据预测模式(帧内预测或帧间预测)单独设置用于预测或变换的可用子块模式的组合,但是可应用于根据预测模式单独设置可用子块模式的组合。此外,尽管示例了在序列头和图片头部上将数据编码,但是也可以在切片头部或宏块头部上将数据编码。

在下文中,描述了对在预测中使用的可用子块模式的组合和当前块模式进行编码的第二种方法。

根据第二种方法,可以在序列头部或每一个图片的头部中包含指示是否发送与可用于预测或变换的子块模式有关的信息的标记。根据标记的值,可以发送或者不发送与可用块模式的组合有关的信息。如果不发送信息,则可以将编码器与解码器之间约定的基本子块组合内的全部子块模式用于预测或变换。

如果指定了可用子块模式的组合,则将指示可用的块形状的类型的标记发送到序列头部或每一个图片的头部。例如,在64×64尺寸的宏块的情况下,use_M×Mblock_flag是指指示是否在预测或变换中使用尺寸为64×64、32×32、16×16、8×8和4×4的正方形块的标记,use_M×(M/2)block_flag是指指示是否在预测或变换中使用尺寸为64×32、32×16、16×8和8×4的纵向长的矩形块的标记,并且use_(M/2)×Mblock_flag是指指示是否在预测或变换中使用尺寸为32×64、16×32、8×16和4×8的横向长的矩形块的标记。当标记指示在对应的类型中使用的块形状可用于预测或变换时,对应的块形状中包含的各种尺寸的块全部可用。

另选地,当选择并使用了可用子块模式的组合时,将指示选择并使用的子块模式的标记编码到比特流中,将指示要使用的块形状的类型的标记编码并发送到解码器,并且将指示对应的类型中包含的相应子块可用于每个尺寸的标记编码。例如,当选择并使用了可用子块模式的组合并且可用于预测或变换的子块模式是64×64、16×16和8×8时,将“1”编码为use_M×Nblock_flag的值,并且将“0”编码为use_M×(M/2)block_flag和use_(M/2)×Mblock_flag的值,使得解码器被告知正方形子块可以用于预测或变换。此外,将指示正方形子块模式的组合中包含的尺寸为64×64、32×32、16×16、8×8和4×4的子块是否可用于预测或变换的标记编码。

另选地,要编码的关于可用子块模式的组合的信息可以是表的索引值。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对在预测或变换时可用的子块模式的组合有关的信息进行编码。

在对为了当前块编码而选择的预测模式或变换类型信息进行编码时不能使用的块模式被从表中删除,并且索引仅被重新分配给可用的块模式。然后,将重新分配的表的索引值编码。

在下文中,描述了对在预测中使用的可用子块模式的组合和当前块模式进行编码的第三种方法。

根据第三种方法,可以将指示是否发送与可用于预测或变换的子块模式有关的信息的标记包含在序列头部或每一个图片的头部中。可以发送或不发送与可用块模式的组合有关的信息。如果不发送可用块模式的组合,则在编码器与解码器之间约定的基本子块组合内的全部子块模式可以用于预测或变换。

如果指定了可用子块模式的组合,则将指示相应的组(针对各子块尺寸而确定)中包括的子块形状是否可用的标记发送到序列头部或每一个图片的头部,并且将针对可用子块组中的每一个子块形状的标记编码。例如,在32×32尺寸的宏块的情况下,use_larger_(M/2)×(N/2)blk_flag是指指示是否使用32×32、32×16、16×32和16×16的块形状的标记,use_larger_(M/4)×(N/4)blk_flag是指指示是否使用16×16、16×8、8×16和8×8的块的标记,并且use_larger_(M/8)×(N/8)blk_flag是指指示是否使用8×8、8×4、4×8和4×4的块模式的标记。

标记指示子块模式的组合可用于预测或变换的情况表示组中包含的全部子块全部可用。

另选地,当标记指示子块模式的组合可用于预测或变换时,可以额外地解码指示组中包含的相应各种子块是否可用的标记。

另选地,要编码的与可用子块模式的组合有关的信息可以是表的索引值。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法对在预测或变换时可用的子块模式的组合有关的信息进行编码。

在对为了当前块编码而选择的预测模式或变换类型信息进行编码时不能使用的块模式被从表中删除,并且索引仅被重新分配给可用的块模式。然后,将重新分配的表的索引值编码。

在下文中,将描述根据本发明的对在预测中使用的可用子块模式的组合和当前块模式进行解码的各种方法。

首先描述了与对在预测中使用的可用子块模式的组合和当前块模式进行编码的第一种方法相对应的解码方法。

在序列头部或每一个图片的头部中将指示是否选择并使用用于预测或变换的子块的组合的标记解码。当解码的标记值指示没有选择和使用子块的组合时,在预测或变换中使用在编码器与解码器之间约定的基本子块组合,例如,表1到表5中示出的全部子块模式。当解码的标记值指示选择和使用了子块的组合时,额外地熵解码针对每个子块模式的1个比特并且确定是否使用该1个比特。

此外,当在对与可用子块模式的组合有关的信息进行编码过程中编码了在编码器与解码器之间的预先安排的表的索引值时,将表中的索引值解码并且接着然后可以利用安排的表来设置相应子块模式是否可用。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法提取在预测或变换时可用的与子块模式的组合有关的信息。

另外,当安排了根据帧内模式或帧间模式对可用子块模式的组合进行不同地设置时,将帧内模式的子块模式组合信息和帧间模式的子块模式组合信息解码。

在提取了关于在预测或变换时可用的子块模式的信息之后,利用提取出的信息产生对预测模式或变换类型信息进行解码所需要的表。在此情况下,将不能使用的块模式从基本表中删除,并且仅对能够使用的块模式重新分配索引。根据可用子块模式的数量,确定用于对预测模式或变换信息进行熵解码的比特的数量,并且执行与确定的数量的比特相对应的熵解码。结果,从比特流中提取出预测模式或变换信息。在此情况下,使用经修改的表。

在下文中,为了便于描述,没有描述根据预测模式(帧内预测或帧间预测)从比特流中提取关于用于预测或变换的可用子块模式的组合有关的信息并根据设置的信息解码提取出的信息的方法。此外,尽管示例了在序列头部和图片头部上对数据进行解码,但是也可以在切片头部或宏块头部上对数据进行解码。

在下文中,描述了与对用于预测的可用子块模式的组合和当前块模式进行编码的第二种方法相对应的解码方法。

根据第二种方法,可以在序列头部或每一个图片的头部中将指示是否选择并使用用于预测或变换的子块的组合的标记解码。当解码的标记值指示没有选择和使用子块的组合时,在预测或变换中使用在编码器与解码器之间约定的基本子块组合中包含的全部子块模式。

当解码的标记值指示选择和使用了子块的组合时,从序列头部或每一个图片的头部中提取出指示可用的块形状的类型的标记。例如,use_M×Mblock_flag、use_M×(M/2)block_flag和use_(M/2)×Mblock_flag被熵解码1个比特。当解码的值指示可用于预测或变换时,进行设置以使得可用使用相应的块形状中包含的所有各种尺寸的块。

另选地,从序列头部或每一个图片的头部中提取出指示可用的块形状的类型的标记。当提取出的标记值指示可用于预测或变换时,还对指示可以将相应的类型中包含的各个子块用于各个尺寸的标记进行熵解码,并且可以确定可用的块模式组合。

此外,当编码器与解码器之间的预先安排的表的索引值在对关于可用子块模式的组合的信息进行编码过程中被编码时,将表中的索引值解码并接着利用安排的表来设置相应子块模式是否可用。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法提取在预测或变换时可用的与子块模式的组合有关的信息。

在提取出关于在预测或变换时可用的子块模式的信息之后,使用提取出的信息产生对预测模式或变换类型信息进行解码所需的表。在此情况下,将不能使用的块模式从基本表中删除,并且仅对能够使用的块模式重新分配索引。根据可用子块模式的数量,确定用于对预测模式或变换信息进行熵解码的比特的数量,并且执行与确定的数量个比特相对应的熵解码。结果,从比特流中提取出预测模式或变换信息。在此情况下,使用经修改的表格。

在下文中,描述与对用于预测的可用子块模式的组合和当前块模式进行编码的第三种方法相对应的解码方法。

根据第三种方法,可以在序列头部或每他个图片的头部中将指示是否选择和使用用于预测或变换的子块的组合的标记解码。当解码的标记值指示没有选择和使用子块的组合时,在预测或变换中使用在编码器与解码器之间约定的基本子块组合中包含的全部子块模式。

当解码的标记值指示选择和使用了子块的组合时,从序列头部或每一个图片的头部中提取出指示是否可以将子块用于各个尺寸或各个组的标记。例如,在32×32尺寸的宏块的情况下,use_larger_(M/2)×(N/2)blk_flag、use_larger_(M/4)×(N/4)blk_flag和use_larger_(M/8)×(N/8)blk_flag分别被熵解码1个比特以进行解码。当解码的值指示可用于预测或变换时,设置为使得能够使用相应的尺寸组中包含的所有各种尺寸的块。

另选地,从序列头部或每一个图片的头部中提取出包含可用子块的尺寸组的标记。当提取出的标记值指示可用于预测或变换时,还对指示能够使用相应的组中包含的各种子块形状的标记进行熵解码,并且可以确定可用的块模式组合。

此外,当编码器与解码器之间预先安排的表格的索引值在对关于可用子块模式的组合的信息进行编码的过程中被编码时,在将表的索引值解码后,可用使用安排的表来设置是否可以使用各个子块模式。

此外,当编码器与解码器之间预先安排的表的索引值在对关于可用子块模式的组合的信息进行编码的过程中被编码时,在将表的索引值解码后,可以基于安排的表来设置是否可以使用各个子块模式。

在此情况下,可以使用诸如一元代码、截断的一元代码、指数(Exp)哥伦布代码的各种二进制编码方法提取在预测或变换时可用的与子块模式的组合有关的信息。

在提取出关于在预测或变换时可用的子块模式的信息之后,使用提取出的信息产生对预测模式或变换类型信息进行解码所需的表。在此情况下,将不能使用的块模式从基本表中删除,并且仅向能够使用的块模式重新分配索引。根据可用子块模式的数量,确定用于对预测模式或变换信息进行熵解码的比特的数量,并且执行与确定的数量个比特相对应的熵解码。

候选块类型配置单元可以配置由用户输入的块类型的候选或者自己确定并配置块类型的候选。在此情况下,当块类型与宏块尺寸或最小子块尺寸相对应时,可以根据输入的图像的横向尺寸与纵向尺寸的比例来确定并配置块类型的候选。当块类型与子块模式组合对应时,可以根据宏块尺寸、帧内预测或帧间预测对块类型的候选进行差异地配置。

块类型确定器可以将确定的块类型的信息包含在比特流中一次或包含在输入的图像的每一个图片中。因此,根据本发明的优选实施方式的视频解码方法,根据本发明的优选实施方式的视频编码装置配置为了利用16×16或更大尺寸的宏块来编码图像而使用的块类型候选,针对各个块类型候选将输入的图像编码,基于各个块类型候选的编码成本来确定块类型,并且生成包含按照确定的块类型编码的图像数据以及关于确定的块类型的信息的比特流。

块类型可以是宏块尺寸、最小子块尺寸和子块模式组合中的一个,并且使用根据上述实施方式的编码方法对块类型进行编码。根据本发明的优选实施方式的视频编码装置可以配置输入的块类型候选,或可以在配置块类型候选时根据输入的图像的特性来确定并配置块类型候选。当块类型对应于宏块尺寸或最小子块尺寸时,根据输入的图像的横向尺寸与纵向尺寸的比例来确定并配置块类型候选。当块类型对应于子块模式组合时,根据帧内预测或帧间预测来差异地配置块类型候选。此外,在生成比特流时,根据本发明的优选实施方式的视频编码装置可以将确定的块类型的信息包含在比特流中一次或包含输入的图像的每一个图片中。

根据本发明的优选实施方式的视频解码装置可以包括视频解码器,该视频解码器用于从比特流中提取出用于使用16×16或更大尺寸的宏块对图像进行编码的块类型的信息和编码的图像数据,并且通过根据使用块类型的信息识别出的块类型对编码的图像数据进行解码而生成重建的图像。

块类型可以是宏块尺寸、最小子块尺寸和子块模式组合中的一个。根据本发明的优选实施方式的视频解码装置可以从比特流中提取块类型的信息一次或从输入的图像的每一个图片或每一个切片中提取块类型的信息。

因此,根据本发明的优选实施方式的视频解码方法,根据本发明的优选实施方式的视频解码装置从比特流中提取出用于使用16×16或更大尺寸的宏块对图像进行编码的块类型的信息以及编码的图像数据,并且通过根据使用块类型的信息识别出的块类型对编码的图像数据进行解码而生成重建的图像。

在下文中,将通过图8至图17来描述实现示例,在这些实现示例中,根据块类型实现根据本发明的优选实施方式的视频编码装置。

图8是例示根据本发明的优选实施方式视频编码装置的第一种实现的框图。

基于根据本发明的优选实施方式的视频编码装置的第一种实现,视频编码装置800可以包括候选宏块尺寸设置单元810、视频编码器820以及宏块尺寸确定器830。

候选宏块尺寸设置单元810对能够由根据本发明的优选实施方式的视频编码装置800使用的宏块尺寸候选进行设置。宏块尺寸候选由用户输入或根据图像特性确定。另选地,宏块尺寸候选可以是由另一个装置输入的设定的候选组(例如,尺寸64×64、32×32和16×16)。

在根据图像特性确定宏块尺寸候选的情况下,如果图像分辨率是4K×2K并且宽高比是16:9,则宏块尺寸候选可以包括128×128、128×64、64×128、64×64、64×32、32×64、32×32、32×16、16×32和16×16。

视频编码器820可以实现为根据本发明的实施方式的视频编码装置600。也就是说,视频编码器820针对由候选宏块尺寸设置单元810设置的各个宏块尺寸候选对图像进行编码并且生成各个宏块尺寸的图像数据。在此情况下,在各个宏块内部将各个宏块划分为子块(这里,被确定为子块的最小子块尺寸可以是以4×4个像素为单位的块)之后执行帧内编码或帧间编码,这些子块是比宏块小的块。

作为视频编码器820的另一种操作方法,使用尺寸为16×16和尺寸为32×32的宏块执行编码。作为编码的结果,当在使用32×32尺寸的宏块的情况下编码成本较高时,将16×16尺寸的宏块确定为宏块尺寸。当在使用32×32尺寸的宏块的情况下编码成本较低时,则再使用64×64尺寸的宏块执行编码,然后以同样的方式比较使用32×32尺寸的宏块的编码成本和64×64尺寸的宏块的编码成本。这样,可以确定宏块尺寸。

作为视频编码器820的另一种操作方法,使用尺寸16×16、32×16、16×32和32×32的宏块执行编码。作为编码的结果,选择具有最佳编码效率的宏块尺寸。然后,使用通过将选择的宏块的宽度、高度以及宽度与高度二者分别放大两倍而生成的像素块使用为宏块来执行编码。如果使用放大的宏块尺寸没有提高编码效率,则停止编码并且确定宏块尺寸。

宏块尺寸确定器830计算在视频编码器820针对各宏块尺寸对图像进行编码时产生的编码成本(即,针对各个宏块尺寸的图像数据的编码成本)并且比较各宏块尺寸的编码成本以确定宏块尺寸候选中的最佳宏块尺寸。这里,最佳宏块尺寸可以是任何宏块尺寸,只要在使用该宏块尺寸对图像进行编码时相应的宏块尺寸产生最低编码成本。然而,在使用编码成本的情况下,可以使用编码成本来确定各种最优宏块尺寸。

当确定了宏块尺寸时,宏块尺寸确定器830生成以相应的宏块尺寸编码的图像数据作为比特流。在此情况下,可以使用根据上述实施方式的编码宏块尺寸的方法对关于确定的宏块尺寸的信息进行编码,并且将该信息包含在比特流中。宏块尺寸的信息可以仅被包含在整个图像的比特流中一次,或者可以被包含在比特流中整个图像的每一个图片中。此外,根据本发明的优选实施方式,针对各个图片、切片或宏块层,可以差异地选择编码/解码单位中的宏块尺寸。

图9是例示根据本发明的优选实施方式的视频编码方法的第一种实现的流程图。

视频编码装置800在步骤S910中设置宏块尺寸候选,在步骤S920中针对各个宏块尺寸候选将输入的图像编码,在步骤S930中根据使用各个宏块尺寸候选编码的图像数据的编码成本确定宏块尺寸,在步骤S940中生成比特流,该比特流包含按照确定的宏块尺寸编码的图像数据和关于确定的宏块尺寸的信息。由于已经通过图8描述了视频编码装置800设置宏块尺寸候选,针对各个宏块尺寸候选对图像进行编码,并且根据使用各个宏块尺寸候选编码的图像数据的编码成本确定宏块尺寸,因此将省略详细描述。

图24是例示根据本发明的优选实施方式的视频解码装置的第一种实现的框图。

基于根据本发明的优选实施方式的视频解码装置的第一种实现,视频解码装置可以包括宏块尺寸设置单元和视频解码器。

在以宏块为单位执行解码之前,通过使用根据上述实施方式的解码宏块尺寸的方法,宏块尺寸设置单元从比特流中提取宏块尺寸信息,并且使用提取出的信息来设置宏块尺寸。

当编码器被配置为针对整个图像将宏块尺寸信息仅包含在比特流中一次时,仅针对整个图像比特流中将所述信息解码一次,并且可以使用针对整个图像解码而提取出的宏块尺寸来重建图像。当配置为在每一个图片中编码/解码宏块尺寸时,从比特流中针对各个图片地提取出宏块尺寸,并且可以使用各个图片的不同的宏块尺寸来重建图像。根据本发明的优选实施方式,针对各个图片、切片或宏块层提取宏块尺寸,并且可以使用选择的宏块尺寸来重构图像。

视频解码器可以实现为通过图7描述的根据本发明的实施方式的视频解码器。通过参考图20到图23描述的根据本发明的实施方式的方法,可以对宏块数据进行解码。如图20到图23所述,根据宏块尺寸,对宏块数据进行解码的方法是不同的。

图10是例示根据本发明的优选实施方式的视频编码装置的第二种实现的框图。

基于根据本发明的优选实施方式的视频编码装置1000的第二种实现,视频编码装置1000可以包括候选最小子块设置单元1010、视频编码器1020以及最小子块尺寸确定器1030。

候选最小子块尺寸设置单元1010设置最小子块尺寸候选,根据本发明的优选实施方式的视频编码装置800可以使用该最小子块尺寸候选。最小子块尺寸候选可以由用户输入或根据图像特性确定。另选地,最小子块尺寸候选可以是由另一个装置输入的设定的候选组(例如,尺寸4×4、8×8和16×16)。

当根据图像特性确定最小子块尺寸候选时,可以考虑图像尺寸和宽度与高度的比例来确定最小子块尺寸候选。例如,最小子块尺寸候选可以包括尺寸4×4、4×8、8×4、8×8、16×8、8×16和16×16。

参考例示了根据最小子块尺寸的宏块的子块模式的图11和图12,宏块如图11和图12所示那样被划分成较小的块,然后帧内预测编码或帧间预测编码可以使用划分的块来执行。图11示出了在宏块尺寸为64×64并且最小子块尺寸为4×8的情况下宏块的子块模式,并且图12例示了在宏块尺寸为64×64并且最小子块尺寸为8×8的情况下宏块的子块模式。

视频编码器1020可以实现为根据通过图6描述的本发明的实施方式的视频编码装置600。也就是说,通过仅使用尺寸比候选最小子块尺寸设置单元1010设置的各个最小子块尺寸候选的各个子块尺寸大的子块对图像进行编码,视频编码器1020生成针对相应的最小子块尺寸编码的图像数据。

最小子块尺寸确定器1030计算在视频编码器1020针对各个最小子块尺寸对图像进行编码时产生的编码成本(即,针对各个最小子块尺寸的图像数据的编码成本),并且比较针对各个最小子块尺寸编码的图像数据的编码成本以确定最小子块尺寸候选中的最佳的最小子块尺寸。这里,最优的最小子块尺寸可以是任何最小子块尺寸,只要使用最小子块尺寸候选中的最小子块尺寸对图像进行编码时,相应的最小子块尺寸产生最低编码成本。然而,在使用编码成本的情况下,可以使用编码成本来确定各种最佳最小子块尺寸。

此外,当确定了最小子块尺寸时,最小子块尺寸确定器1030生成以相应的最小子块尺寸编码的图像数据作为比特流。在此情况下,可以将与确定的最小子块尺寸有关的信息直接包含在比特流中,或者可以将其编码并接着包含在比特流中。与最小子块尺寸有关的信息可以仅包含在比特流中一次,或者可以在比特流中包含在整个图像的每一图片中。

图13是例示根据本发明优选实施方式的视频编码方法的第二种实现的流程图。

视频编码装置1000在步骤S1310中设置最小子块尺寸候选,在步骤S1320中针对各个最小子块尺寸候选对输入的图像进行编码,在步骤S1330中根据各个最小子块尺寸候选的图像数据的编码成本来确定最小子块尺寸,在步骤S1340中生成比特流,该比特流包含按照确定的最小子块尺寸编码的图像数据和关于确定的最小子块尺寸的信息。由于已通过图10描述了视频编码装置1000设置最小子块尺寸候选,针对各个最小子块尺寸候选对图像进行编码,并且根据针对各个最小子块尺寸候选编码的图像数据的编码成本确定最小子块尺寸,因此将省略详细描述。

图25是例示根据本发明的优选实施方式的视频解码装置的第二种实现的框图。

基于根据本发明的优选实施方式的视频解码装置的第二种实现,视频解码装置可以包括最小子块尺寸设置单元和视频解码器。

在以宏块为单位执行解码之前,通过使用根据上述实施方式对最小子块尺寸进行解码的方法,最小子块尺寸设置单元从比特流中提取出最小子块尺寸信息,并且使用提取出的信息来设置最小子块尺寸。

当编码器被配置为针对整个图像将最小子块尺寸信息仅包含在比特流中一次时,仅针对整个图像在比特流中将信息解码一次,并且可以使用针对整个图像解码而提取出的最小子块尺寸来重建图像。当配置为在每一图片中对最小子块尺寸进行编码/解码时,从比特流中针对各个图片地提取最小子块尺寸,并且可以使用各个图片的不同的最小子块尺寸来重建图像。根据本发明的优选实施方式,针对各个图片、切片或最小子块层提取最小子块尺寸并且可以使用选择的最小子块尺寸重建图像。

视频解码器可以实现为通过图7描述的根据本发明的实施方式的视频解码器。通过参考图20到图23描述的根据本发明的实施方式的方法,可以将宏块数据解码。如图20到图23所述,根据下面描述的最小子块尺寸,对宏块数据进行解码的方法是不同的。

例如,假设图片P的宏块尺寸是32×32,每一个宏块被划分为4个16×16的子块,并且使用表2和表4将宏块类型和子块类型编码。

在最小块尺寸为4×4的第一种情况下,在将宏块类型编码时,表2中的索引值“3被编码,然后在针对32×32尺寸的块内的尺寸为16×16的各个块将四个子块类型编码时,将表2中的索引值“0”编码。也就是说,编码的总数据对应于3、0、0、0、0。

在最小块尺寸为16×16的第二种情况下,在将宏块类型编码时,将表2中的索引值“3”编码。也就是说,编码的总数据对应于3。

类似地,参考解码器中的操作,在第一种情况下将宏块类型熵解码。通过将解码的宏块类型的值应用于表2,可以得出32×32尺寸的宏块被划分为4个16×16尺寸的块,并且由于可以将16×16尺寸的各个块划分为具有更小的尺寸的块(因为最小子块为4×4),因此应将16×16尺寸的块的子块类型解码。接着,由于被熵解码的子块类型的值为“0”,因此可以得出在16×16尺寸的第一块上执行16×16预测。此后,由于没有将16×16尺寸的第一块划分为具有更小尺寸的块,因此16×16尺寸的其余块的子块类型被等同地解码。

在第二种情况下,将宏块类型熵解码。通过将解码的宏块类型的值应用于表2,可以得出32×32尺寸的宏块被划分为4个16×16尺寸的块,并且由于不能将16×16尺寸的各个块划分为具有更小尺寸的块(因为最小子块为16×16),因此终止了当前宏块的宏块类型解码和子块类型解码。

图14是例示根据本发明的优选实施方式的视频编码装置的第三种实现的框图。

基于根据本发明的优选实施方式的视频编码装置的第三种实现,视频编码装置1400可以包括候选子块模式组合设置单元1410、视频编码器1420以及子块模式组合确定器1430。

候选子块模式组合设置单元1410设置子块模式组合候选,根据本发明的优选实施方式的视频编码装置1400可以使用该子块模式组合候选。子块模式组合候选可以由用户输入或根据诸如帧内预测或帧间预测的预测方案来确定。另选地,子块模式组合候选可以是由另一个装置输入的设定的候选组(例如,尺寸4×4与8×8的组合、尺寸16×16、32×32和64×64的组合等)。

参考例示了子块模式组合的图15和图16,可以不同地设置或确定针对64×64尺寸的宏块的子块模式组合,如图15和图16所示。图15示出了针对64×64尺寸的宏块将尺寸64×64、32×32、16×16和8×8的组合设置为子块模式组合的情况,并且图16示出了针对64×64尺寸的宏块将尺寸64×64、64×32、32×64、32×32、32×16、16×32、16×16、16×8、8×16、8×8、8×4、4×8和4×4设置为子块模式组合的情况。

视频编码器1420可以实现为根据通过图6描述的本发明的实施方式的视频编码装置600。也就是说,通过仅使用针对由候选子块模式组合设置单元1410设置的各个子块模式组合候选的各个子块模式组合内的子块对图像进行编码,视频编码器1420生成针对相应的子块模式组合编码的图像数据。

子块模式组合确定器1430计算在视频编码器1420针对各子块模式组合对图像进行编码时产生的编码成本(即,针对各子块模式组合的图像数据的编码成本)并且比较针对各个子块模式组合编码的图像数据的编码成本以确定子块模式组合候选中的最佳子块模式组合。这里,最佳子块模式组合可以是任何子块模式组合,只要在仅使用子块模式组合候选中对应的子块模式组合内的子块模式对图像进行编码时,子块模式组合产生最低编码成本。然而,在使用编码成本的情况下,可以使用编码成本来确定各种最优子块模式组合。

在确定了子块模式组合时,子块模式组合确定器1430生成以相应的子块模式组合编码的图像数据作为比特流。在此情况下,可以将关于确定的子块模式组合的信息直接包含在比特流中,或者可以将该信息编码然后再包含在比特流中。可以将关于子块模式组合的信息仅包含在比特流中一次,或者可以在比特流中将该信息包含在整个图像的每一个图片中。

图17是例示根据本发明的优选实施方式的视频编码方法的第三种实现的流程图。

视频编码装置1400在步骤S1710中设置子块模式组合候选,在步骤S1720中针对各个子块模式组合候选对输入图像进行编码,在步骤S1730中根据各个子块模式组合的图像数据的编码成本来确定子块模式组合,在步骤S1740中生成比特流,该比特流包含按照确定的子块模式组合编码的图像数据和关于确定的子块模式组合的信息。由于已通过图14描述了视频编码装置1400设置子块模式组合候选,针对各个子块模式组合候选对图像进行编码,并且根据各子块模式组合候选而编码的图像数据的编码成本来确定子块模式组合,因此将省略详细描述。

图26是例示根据本发明的优选实施方式视频解码装置的第三种实现的框图。

基于根据本发明的优选实施方式的视频解码装置的第三种实现,视频解码装置可以包括子块模式设置单元、表生成器以及在预测或变换时可用的视频解码器。

在以宏块为单位执行解码之前,通过使用根据上述实施方式的在预测或变换时可用的对子块模式信息进行解码的方法,子块模式设置单元从比特流中提取出可用子块模式组合信息,并且使用提取出的信息来设置各个不同的子块模式是否可用。

当编码器被配置为针对整个图像仅将子块模式组合信息包含在比特流中一次时,针对整个图像仅在比特流中将该信息解码一次,并且可以使用针对整个图像解码而提取的宏块尺寸来重建图像。当配置为在每一个图片中对子块模式组合进行编码/解码时,从比特流中针对各个图片提取子块模式组合,并且可以使用针对各个图片的不同的子块模式组合来重建图像。根据本发明的优选实施方式,针对各个图片、切片或宏块层提取子块模式组合并且可以仅使用选择的子块模式组合来重建图像。

通过使用从子块模式设置单元中提取出的子块模式信息(可以在预测或变换时使用该信息),表生成器更新对宏块数据进行解码所需的表。从与编码器预先安排的基本表中删除不能使用的块模式,并且仅对能够使用的块模式重新分配索引。

视频解码器可以实现为通过图7描述的根据本发明的实施方式的视频解码器。然而,根据本发明的优选实施方式的视频解码装置通过将仅使用在子块模式设置单元中设定的、可在预测或变换时使用的子块模式编码的图像数据解码而生成重建的图像。特别地,在从重建器提取宏块数据时,通过根据可用子块模式的数量而差异设置的用于对预测模式或变换信息进行熵解码的多个比特将预测信息熵解码,并且使用在表生成器中更新的表来设置预测信息。

在下文中,将描述通过选择性地使用帧内预测或帧间预测对宏块内的子块进行编码或解码的方法作为本发明的另一个实施方式。

根据典型的视频压缩技术,基于相同的预测方法对帧间图片的具有固定尺寸的一个宏块的子块执行预测编码和预测解码。也就是说,对一个宏块内的全部子块执行帧间预测编码或帧内预测编码。然而,在本发明的另一个实施方式中,当使用尺寸为16×16或更大的宏块将图像编码时,宏块内的子块的尺寸也被放大,使得可以在宏块是帧间图片内的帧间宏块的情况下使用帧间预测或帧内预测选择性地编码或解码宏块内的相应子块。另选地,帧间图片的宏块类型分为三种类型,诸如帧内宏块、帧间宏块以及帧内/帧间宏块,并且编码或解码可以仅应用于帧内/帧间宏块。也就是说,帧内宏块内的相应子块全部被帧内预测编码,而帧间宏块的相应子块全部被帧间预测编码。在帧内/帧间宏块的情况下,使用帧间预测或帧内预测,可以将宏块内的相应子块选择性地编码。仅在使用帧内预测或帧间预测对宏块内的相应子块进行选择性编码时,才将关于是否将帧内预测模式或帧间预测模式用于各个块的信息编码。

根据本发明的优选实施方式的视频编码装置可以等同或相似地构造成通过图6描述的根据本发明实施方式的视频编码装置。然而,根据本发明的优选实施方式的视频编码装置对仅使用帧内预测时产生的编码成本、仅使用帧间预测时产生的编码成本以及使用帧间预测和帧内预测二者时产生的编码成本进行比较以确定宏块类型,并且根据选择的预测方案对相应子块进行预测编码以生成比特流。因此,根据本发明的优选实施方式,可以使用帧间预测对一个宏块内的全部子块进行预测编码,可以使用帧内预测对全部子块进行预测编码,并且可以对一些子块进行帧间预测编码而对其余子块进行帧内预测编码。

此外,根据本发明的优选实施方式的视频编码装置可以将关于帧间预测或帧内预测的信息(该信息指示是使用帧间预测或帧内预测对相应子块进行编码)直接包含在比特流中,或者当宏块内的相应子块对应于宏块类型(可以选择性地使用帧内预测或帧间预测)时将该信息编码并接着将编码的信息包含在比特流中。基于根据本发明的优选实施方式的视频编码装置,视频编码装置对仅使用帧内预测时产生的编码成本、仅使用帧间预测时产生的编码成本以及使用帧间预测和帧内预测二者时产生的编码成本进行比较,以确定宏块类型,并且根据选择的预测方案对相应子块进行预测编码以生成比特流。

根据本发明的优选实施方式的视频解码装置可以等同或相似地构造成根据本发明实施方式的视频解码装置。然而,根据本发明的优选实施方式的视频解码装置从比特流中解码出16×16尺寸的宏块的宏块类型并且重建解码的宏块类型。当重建的宏块类型对应于仅可以使用帧内预测的块时,与各个块的帧内预测模式有关的信息被提取、解码并且重建。当宏块类型对应于仅可以使用帧间预测的块时,与各个块有关的运动信息被提取、解码并且重建。当宏块类型对应于针对各子块可以选择性地使用帧内预测模式或帧间预测模式的块时,与针对16×16或更大尺寸的宏块内的相应子块选择的帧内预测或帧间预测有关的信息被提取、解码并且重建。此外,通过使用与帧间预测或帧内预测有关的重建信息对相应子块进行帧间预测或帧内预测,将宏块解码并重建。同时,如上所述,可以选择性地使用帧间预测或帧内预测来预测宏块内的相应子块,但是根据宏块尺寸,仅能够使用帧间预测和帧内预测中的一种或者选择性地使用帧间预测或帧内预测来执行预测编码。也就是说,根据宏块尺寸,可用的宏块类型是不同的。例如,可以通过选择性地使用帧间预测或帧内预测,可以对32×32尺寸的宏块内的相应子块执行预测编码,但是16×16尺寸的宏块可以选择性地使用以宏块为单位的帧内预测或帧间预测。

另选地,根据块尺寸,通过仅使用帧间预测和帧内预测中的一种或选择性地使用帧间预测或帧内预测,能够执行预测编码。例如,通过仅使用帧间预测或帧内预测中的一种,对帧间图片的帧间宏块内具有比尺寸8×8更大尺寸的子块执行预测编码,并且通过选择性地使用帧间预测或帧内预测,可以对8×8或更小尺寸的块执行预测编码,这是因为在帧内模式和帧间模式都可用的情况下,优选地在没有纹理(如背景)的区域中使用帧间模式,并且在这种情况下,块尺寸非常大。此外,由于子块尺寸在复杂的区域中非常小,因此优选地在复杂区域中使用帧内模式和帧间模式中的一种。因此,如果以宏块为单位选择性地使用帧间模式或帧内模式执行预测编码,则编码效率可能会劣化,这是因为在宏块内存在各种区域,如16×16或更大尺寸的宏块。

图18是例示根据本发明的又一个选实施方式的视频编码装置的示例的流程图。

根据本发明的又一个选实施方式的视频编码装置1800可以包括候选预测基本单位设置单元1810、视频编码器1820和预测基本单位确定器1830。

候选预测基本单位设置单元1810针对尺寸为16×16或更大的宏块设置预测基本单位候选。预测基本单位候选可以由用户输入或根据图像特性确定。另选地,预测基本单位候选可以是由另一个装置输入的设定的候选组(例如,16×16、32×32等)。当根据图像特性确定了预测基本单位候选时,考虑到图像尺寸、宽度与高度的比例等,可用确定16×16或更大尺寸的各种候选组。

这里,预测基本单位是指能够在宏块内选择帧间预测或帧内预测的块尺寸。也就是说,宏块是编码/解码处理的基本单位,并且预测基本单位是可以选择预测方案的单位。例如,当32×32尺寸的宏块的预测基本单位是16×16尺寸的块时,具有比尺寸16×16大的尺寸的块仅可以使用帧间预测,而16×16的块可以选择帧内预测或帧间预测。在此情况下,在将宏块划分为16×16或更小尺寸的块的情况下,以16×16尺寸的块为单位对与选择的预测模式有关的信息(指示预测模式是帧内预测还是帧间预测的信息)进行编码。也就是说,根据预测模式信息,16×16或更小尺寸的子块仅可以使用帧内预测或仅使用帧间预测。

视频编码器1820可以实现为根据通过图6描述的本发明实施方式的视频编码装置600。也就是说,针对由候选预测基本单位设置单元1810设置的各预测基本单位候选,视频编码器1820选择性地使用帧间预测或帧内预测作为对应的预测基本单位来执行编码,以生成针对各预测基本单位候选编码的图像数据。

预测基本单位确定器1830计算在视频编码器1820针对各预测基本单位候选对图像进行编码时产生的编码成本(即,针对各预测基本单位候选编码的图像数据的编码成本)并且比较针对各预测基本单位候选编码的图像数据的编码成本,以确定预测基本单位候选中的最优预测基本单位。这里,最优预测基本单位可以是预测基本单位候选中的任何预测基本单位,只要在使用预测基本单位对图像进行编码时,相应的预测基本单位产生最低的编码成本。然而,在使用编码成本的情况下,可以使用编码成本来确定各种最优预测基本单位。

当确定了预测基本单位时,预测基本单位确定器1830生成以相应的预测基本单位编码的图像数据作为比特流。在此情况下,可以将有关预测基本单位的信息直接包含在比特流中,或者可以将该信息编码并接着包含在比特流中。可以将关于预测基本单位的信息针对整个图像仅包含在比特流中一次,或者可以在比特流中包含在整个图像的每一个图片中。

在下文中,将描述确定预测基本单位的另一种方法(这里,不使用预测基本单位确定器)。

在视频编码器1820将针对宏块内的各个块使用帧内预测模式时产生的编码成本与针对宏块内的各个块使用帧间预测模式时产生的编码成本进行比较以确定各个块的最优预测模式之后,在宏块内的全部子块使用帧内预测模式时,视频编码器1820将宏块类型设置为指示帧内宏块的值并且将宏块类型编码,在宏块内的全部子块仅使用帧间预测模式时,视频编码器1820将宏块类型设置为指示帧间宏块的值并且将宏块类型编码。当宏块内存在使用帧内预测和帧间预测二者的块时,视频编码器1820将宏块类型设置为指示帧内/帧间宏块的值并且将宏块类型编码。然后,视频编码器1820设置选择帧内预测模式的子块的最大尺寸作为预测基本单位,并且将关于预测基本单位的信息和关于是选择帧内预测模式作为预测基本单位还是选择帧间预测模式作为预测基本单位的信息编码。

在下文中,将描述对选择的预测基本单位进行编码的方法。使用指示是否将预测基本单位尺寸发送到序列头部或每一个图片的头部的标记(Set_predBlockSize_flag),可以发送或不发送预测基本单位尺寸。当不发送预测基本单位时,使用16×16的尺寸作为预测基本单位。

当指定了预测基本单位时,发送关于预测基本单位的信息。在此情况下,可以使用具有单独设置的横向尺寸与纵向尺寸的特定尺寸的预测基本单位。此外,可以将特定值指定为预测基本单位,或者可以发送指示将把预测基本单位从预定尺寸放大的倍数的值。也就是说,编码了log2(选择的预测基本单位/16)的值。例如,在选择的预测基本单位是尺寸16×16时,编码了“0”,并且在选择的预测基本单位是尺寸32×32时,编码了“1”。在下文中,没有对单独设置横向尺寸与纵向尺寸进行描述,但是可以应用于单独设置横向尺寸与纵向尺寸。此外,尽管示例了将数据编码在序列头部和图片头部上,但是也可以将数据编码在切片头部上。此外,可以发送指示将把预测基本单位从预定尺寸缩小的倍数的值。

Set_predBlockSize_flag

if(Set_predBlockSize_flag==1)

{

predBlockSize

}

或者

Set_predBlockSize_flag

if(Set_predBlockSize_flag==1)

{

predBlockSize_Width

predBlockSize_height

}

在第二种方法中,在选择了尺寸16×16作为基本的预测单位时,将选择的基本的预测基本单位编码,在每一个图片头部中编码指示是否使用基本的预测基本单位的标记,并且不使用基本的预测基本单位。另选地,当在序列头部中编码了指示是否设置基本的预测基本单位的标记之后不设置基本的预测基本单位的情况下,使用尺寸16×16作为基本的预测基本单位。当设置了基本的预测基本单位时,可以将该基本的预测基本单位编码。

序列头部:

Set_default predBlockSize_Flag

if(Set_default predBlockSize_Flag==1)

{

default_predBlockSize

}

图片头部:

use_default_predBlockSize_flag

if(use_default_predBlockSize e_flag==0)

{

predBlockSize

}

在第三种方法中,当在第一图片中编码了指示是否使用基本的预测基本单位的标记并且在不使用基本的预测基本单位的情况下编码了选择的预测基本单位之后,可以从第二图片开始编码指示是否使用前一图片的预测基本单位的标记并且在不使用前一图片的预测基本单位的情况下编码当前图片的预测基本单位。

第一图片的图片头部

use_default_predBlockSize_flag

if(use_default_predBlockSize_flag==0)

{

predBlockSize

}

从第二图片开始

use_prevPic_predBlockSize_flag

if(use_prevPic_predBlockSize e_flag==0)

{

predBlockSize

}

图19是例示根据又一个实施方式的视频编码方法的示例的流程图。

视频编码装置1800在步骤S1910中设置预测基本单位候选,在步骤S1920中针对各个预测基本单位候选将输入的图像编码,在步骤S1930中基于各个预测基本单位候选的图像数据的编码成本来确定预测基本单位,在步骤S1940中生成比特流,该比特流包含针对宏块的各子块选择性地使用帧间预测或帧内预测而编码的图像数据和关于确定的预测基本单位的信息。由于已通过图10中描述了视频编码装置1000设置预测基本单位候选,针对各个预测基本单位候选将图像编码,并且基于各个预测基本单位候选的编码成本来确定预测基本单位,因此将省略详细描述。

根据本发明的又一个实施方式的视频解码装置等同地或相似地构造成通过图7描述的根据本发明实施方向的视频解码装置700。然而,根据本发明的又一个实施方式的视频解码装置不仅从比特流中提取图像数据,而且还从比特流中提取关于针对16×16或更大尺寸的宏块选择性地使用帧间预测或帧内预测的预测基本单位的信息,并且将针对具有等于或小于使用关于提取出的预测基本单位尺寸(或者必要时,通过解码关于提取出的预测基本单位的信息而识别出的预测基本单位)的宏块内的相应子块选择性地使用帧间预测或帧内预测而编码的图像数据解码。

在以上描述中,虽然已经将本公开的实施方式的所有组件描述为装配或者可操作地连接为单元,但是本公开并不旨在将其自身限于此类实施方式。相反,在本公开的目标范围内,可以选择性地和可操作性地组合任意数目的各个组件。组件中的每一个也可以单独在硬件中实现,而各个组件可以部分组合或者选择性地组合为一个整体,并且在具有用于执行硬件等同物的功能的程序模块的计算机程序中实现。本领域技术人员可以很容易地导出用于构造此类程序的代码或者代码分段。计算机程序可以存储在计算机可读介质中,该计算机可读介质可以在操作中实现本公开的方面。作为计算机可读介质,候选包括磁记录介质、光学记录介质和载波介质。

另外,类似于“包括”、“包含”和“具有”等的术语应当默认地解释为包括的或者开放的,而不是排他的或者封闭的,除非有明确的相反限定。技术、科学等的所有术语符合本领域技术人员所理解的意义,除非有明确的相反限定。词典中出现的公用术语在相关技术撰写的上下文中应当解释得既不能太理想也不能太不且实际,除非本公开明确地限定其如此。

虽然已经出于例性的目的而描述了本公开的示例性方面,但是本领域技术人员将可以理解,在不脱离本公开的实质特征的情况下,各种修改、附加和替换都是有可能的。因此,本公开的示例性方面不是为了限制性地目的而描述。因此,本公开的范围不由上述方面限定而是由权利要求及其等效项限定。

工业实用性

如上所述,通过基于图像特性确定块类型,凭借对大尺寸的块的使用,本发明对于视频压缩处理领域中的应用非常有用,产生了对高分辨率的图像进行有效编码和解码的效果。

相关申请的交叉引用

本申请要求于2009年10月1日提交的韩国专利申请No.10-2009-0093982和于2010年10月1日提交的韩国专利申请No.10-2010-0095905,在此通过引用的方式将其全部内容并入本文中。另外,出于相同原因,该非临时申请在除美国以外的国家要求基于上述韩国专利申请的优先权,在此通过引用的方式将其全部内容并入本文中。

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