图像编码装置和方法以及图像解码装置和方法与流程

文档序号:11139321阅读:614来源:国知局
图像编码装置和方法以及图像解码装置和方法与制造工艺

技术领域

本发明涉及图像编码装置、图像编码方法和程序以及图像解码装置、图像解码方法和程序。特别地,本发明涉及与图像编码中的图像质量参数的计算和代码的插入有关的图像质量参数编码方法和解码方法。



背景技术:

作为运动图像的压缩记录方法,以下称为H.264的H.264/运动图片专家组(MPEG)-4先进视频编码(AVC)已经是已知的。H.264被广泛用于一段(one segment)数字地面广播和其它的应用中。H.264的特征是:除了常规的编码方案以外,还通过以4×4像素为单位使用整数变换,提供多个内部预测能力(参见ISO/IEC 14496-10:2004Information technology--Coding of audio-visual objects--Part 10:Advanced Video Coding,ITU-T H.264Advanced video coding for generic audiovisual services)。

以MPEG-2和H.264为代表的使用正交变换和量化(quantization)的编码方案对预定的块图像执行正交变换和量化,以产生量化系数数据。对于图像质量控制,通过使用称为量化参数的图像质量控制参数执行量化。具体地,使用小量化参数值的量化造成提高的图像质量,但是具有大量的代码。具有大量化参数值的量化以减少的代码量造成低的图像质量。根据目标代码量选择最佳的量化参数值用于编码。这种控制被称为比率(rate)控制。已讨论了各种比率控制方法,包括TM5。在量化之后,量化系数数据经受可变长度编码,以产生编码的系数数据。

量化参数也被编码以产生量化参数代码。例如,H.264使用用于将目标块前的块量化的量化参数与用于将目标块量化的量化参数之间的差值。该差值被称为量化参数Δ(QP_DELTA)。计算的QP_DELTA通过Golomb编码或算术编码被编码成QP_DELTA代码。例如,即使差值为0,利用Golomb编码的QP_DELTA代码编解码器(codec)也产生一位的代码。由此产生的编码的系数数据和量化参数代码被传送到解码器。解码器将编码的系数数据和量化参数代码解码,以产生量化系数数据和量化参数。解码器然后通过使用量化参数对量化系数数据执行逆(inverse)量化和逆正交变换,由此产生解码的图像。

在MPEG-2和H.264中单个处理单位被称为宏块(macroblock)。宏块是以格子(lattice)图案将图像分割成的16×16像素的格子块。就像素而言,在MPEG-2中将被正交变换的块具有8×8像素的尺寸,并且H.264具有8×8像素或4×4像素的尺寸。即,单个的宏块包含多个正交变换块。MPEG-2和H.264可以以宏块为单位对量化参数进行控制(比率控制)。包含于同一宏块中的正交变换块用相同的量化参数被量化。根据H.264的改进技术,以格子图案将图像分割成称为最大编码树块(LCTB)的格子块。LCTB具有64×64像素的尺寸。LCTB通过使用区域四叉树结构被分割成称为编码树块(CTB)的更小尺寸的块。为了搜索或者输入/输出树结构数据,需要规定扫描次序。CTB包含称为变换单位(TU)的正交变换块。TU也可通过使用区域四叉树结构被分割成更小的尺寸。各单位具有分割标记。分割标记为真(true)的块被构建为包含高度和宽度的尺寸为1/2的四个分割块。分割标记为假(false)的块不包含分割块,而包含块上的实际数据。换句话说,只有未分割的TU包含图像块上的系数数据。LCTB(格子块)包含不同正交变换尺寸的多个分级(hierarchically)构建块。可通过各种方法确定是否分割块。在日本专利申请公开No.2005-191706中讨论了确定方法中的一种,其包括使用Lagrange乘子(multiplier)以计算块成本(cost)并选择较低成本的块分割方法。

假定图像编码方法包含以按照格子图案将图像分割成的格子块为单位将图像编码。如果格子块的尺寸大并且以格子块为单位执行图像质量控制,那么不同的图像质量的块之间的边界可能变得引人注意。

不管图像质量参数是否改变,图像质量参数都被编码和传送。如果将格子块再分(subdivide)成更小的单位以用于图像质量控制,那么存在由图像质量参数代码导致的开销(overhead)的问题。



技术实现要素:

本发明针对使得能够以适当的块为单位进行图像质量控制并且可使得块边界较小以产生边界较不引人注意的图像的图像编码装置。

根据本发明的一个方面,图像编码装置被配置为将图像分割成多个尺寸的分割块、并且在以分割块为单位根据参数值控制图像质量的同时对图像执行编码,所述图像编码装置包括:被配置为获取要被编码的目标块的块尺寸的单元;被配置为获取用于控制参数值的最小块尺寸的单元;被配置为获取目标块的分割状态的单元;被配置为获取参数值的单元;被配置为根据目标块的分割状态确定目标块是否被分割的单元;被配置为确定目标块的块尺寸是否大于或等于最小块尺寸的单元;被配置为确定目标块的块尺寸是否等于最小块尺寸的单元;以及被配置为将获取的参数值编码的单元。

根据本发明的示例性实施例,可以以适当的块为单位控制图像质量并使得块边界较小以产生边界较不引人注意的图像。由于不需要将图像质量控制参数代码插入所有的正交变换的块中,因此量化参数代码的量将不会超出所需地增加。

从参照附图对示例性实施例的以下详细描述,本发明的进一步的特征和方面将变得明显。

附图说明

并入说明书中并构成其一部分的附图示出本发明的示例性实施例、特征和方面,并与描述一起用于解释本发明的原理。

图1是示出根据本发明的第一示例性实施例的图像质量参数的编码方法的流程图。

图2是示出根据本发明的第二示例性实施例的图像质量参数的解码方法的流程图。

图3是示出根据本发明的第三示例性实施例的图像质量参数的编码方法的流程图。

图4是示出根据本发明的第四示例性实施例的图像质量参数的解码方法的流程图。

图5是示出根据本发明的第五示例性实施例的图像质量参数的编码方法的流程图。

图6是示出根据本发明的第六示例性实施例的图像质量参数的解码方法的流程图。

图7是示出分割的格子块的例子的示图。

图8A是示出格子块的分割和分割标记的例子的示图。

图8B是示出格子块的分割和分割标记的例子的示图。

图8C是示出格子块的分割和分割标记的例子的示图。

图8D是示出格子块的分割和分割标记的例子的示图。

图9是示出用于执行根据本发明示例性实施例的编码方法和解码方法的硬件配置的例子的示图。

图10是示出用于执行根据本发明示例性实施例的编码方法的硬件配置的例子的示图。

图11是示出用于执行根据本发明示例性实施例的解码方法的硬件配置的例子的示图。

图12A是示出对分割块的图像质量控制的例子的示图。

图12B是示出对分割块的图像质量控制的例子的示图。

图12C是示出对分割块的图像质量控制的例子的示图。

图13是示出对帧的编码处理方法的流程图。

图14是示出对帧的解码处理方法的流程图。

图15是示出编码的帧的数据结构的示图。

图16是示出格子块上的编码数据的数据结构的示图。

图17是示出分割块的编码方法的细节的流程图。

图18是示出分割块的解码方法的细节的流程图。

图19是示出根据第一示例性实施例的图像质量参数的计算方法的流程图。

图20是示出将被伴随有量化参数的分割块的示图。

图21A是示出简档(profile)、级别(level)和图像质量控制最小块尺寸之间的关系的示图。

图21B是示出简档、级别和图像质量控制最小块尺寸之间的关系的示图。

图22是示出用于计算图像质量控制最小块尺寸的过程的流程图。

图23A是示出序列(sequence)的编码数据的结构的示图。

图23B是示出序列的编码数据的结构的示图。

图24是示出根据本发明的第七示例性实施例的图像编码方法的流程图。

图25是示出根据本发明的第八示例性实施例的图像解码方法的流程图。

具体实施方式

以下将参照附图详细描述本发明的各种示例性实施例、特征和方面。

参照图1、图9、图13、图17和图19描述根据本发明的第一示例性实施例的分割块的编码方法。

图9示出用于执行包含根据本示例性实施例的编码方法的编码程序的配置。编码程序被记录于硬盘装置(以下,简写为HDD)903上。编码程序在起动时被加载到随机存取存储器(RAM)902中。中央处理单元(CPU)901执行下面将描述的步骤以执行图像编码处理。在本示例性实施例中,输入的图像数据被存储于HDD 903中并且从HDD 903被读取。输出的数据被记录于HDD 903上。

将描述以上配置的编码操作。图13是示出用于将整个帧编码的过程的流程图。本示例性实施例涉及画面各以格子图案被分割成64×64像素的格子块并以格子块为单位被依次处理的情况。画面内的格子块以光栅(raster)扫描次序被处理。应当注意,格子块尺寸不限于64。

在步骤S1301中,CPU 901设定图像质量控制最小块尺寸。在步骤S1302中,CPU 901将图像质量控制最小块尺寸编码。在步骤S1303中,CPU 901将帧标题(header)信息编码。在步骤S1304中,CPU 901将画面左上的第一格子块设为目标格子块。在步骤S1305中,CPU 901对目标格子块执行预测处理,以产生残差(residual)数据。在步骤S1306中,CPU 901对目标格子块执行用于将残差数据编码的过程。在步骤S1307中,CPU 901确定帧中的所有格子块是否都被处理。在步骤S1308中,CPU 901将下一格子块设为目标格子块。

以下将描述所述步骤的过程。在步骤S1301中,CPU 901设定称为图像质量控制最小块尺寸的参数。本示例性实施例的描述将假定通过用于将正交变换系数量化的量化参数控制图像质量。图像质量控制最小块尺寸是16×16像素,使得图像质量控制最小块尺寸信息具有的值为16。但是,该值不限于16。程序开发人员可在程序中嵌入固定值。用户可经由程序的用户界面规定值。程序自身可计算并设定最佳值。程序可取决于输入图像计算最佳值。例如,如果输入图像比640×480像素大,那么程序可将图像质量控制最小块尺寸设为如16那样大的值。如果分辨率低于或等于640×480像素,那么程序可将图像质量控制最小块尺寸设为如8那样小的值。

在步骤S1302中,CPU 901将在步骤S1301中设定的图像质量控制最小块尺寸编码,以产生图像质量控制最小块尺寸代码。例如,CPU 901可提供将图像质量控制最小块尺寸信息64表达为“0”、并且类似地将32、16和8分别表达为“1”、“2”和“3”的指数(index)。然后,CPU 901可产生代表该指数的固定长度代码。

在步骤S1303中,CPU 901产生帧标题信息并将其编码。CPU 901包含在步骤S1302中产生的图像质量控制最小块尺寸代码作为帧标题信息的一部分。注意,虽然本示例性实施例涉及在帧标题中包含图像质量控制最小块尺寸代码的情况,但是这不是限制性的。图像质量控制最小块尺寸代码可包含于最高分级级别的序列、图片、片(slice)或块中。

在步骤S1304中,CPU 901将画面左上的格子块设为要被处理的第一目标格子块。

在步骤S1305中,CPU 901通过使用帧内预测和运动补偿预测产生预测的图像,并且从目标格子块的像素产生残差数据。帧内预测包含通过参照目标格子块的附近产生预测的图像。运动补偿预测包含通过参照其它帧中的像素产生预测的图像。例子包括在前面提到的H.264编码方案中采用的内部预测和运动补偿预测。CPU 901将产生的帧内预测模式和/或运动矢量编码,并且将得到的结果作为格子块标题信息代码输出到输出缓冲器。

在步骤S1306中,CPU 901对目标格子块执行将结合图17描述的用于将块中的残差数据编码的过程。将在下面详细描述图17。

在步骤S1307中,CPU 901确定帧中的所有格子块是否都被处理。如果所有的格子块都被处理(在步骤S1307中为是),那么CPU 901结束对整个帧的编码处理。如果不是所有的格子块都已被处理(在步骤S1307中为否),那么CPU 901执行步骤S1308。

在步骤S1308中,CPU 901以光栅扫描次序将下一格子块设为目标格子块,并且返回到步骤S1305。

图17是步骤S1306的详细的流程图。在步骤S1306中,CPU 901将不同尺寸的多个分级构建的正交变换块编码,以产生包含图像质量控制参数代码的编码数据。具体而言,CPU 901基于图像质量控制最小块尺寸、块尺寸数据和块上的残差数据执行块分割、正交变换和量化。流程图还示出用于将分割块编码以产生块分割标记代码、编码的系数数据、以及与图像质量参数的更新有关的QP_DELTA代码的处理。本示例性实施例使用用于分级构建的区域四叉树结构。最高分级级别处的块是64×64像素的格子块。随着级别通过分割处理下降,可处理32×32像素、16×16像素、以及如8×8像素那样小的块。基于区域四叉树的块分割结构可通过嵌入流中的块分割标记被传送到解码器侧。

在步骤S1700中,CPU 901计算目标块被分割时和不被分割时的成本。在步骤S1701中,CPU 901确定是否分割目标块。在步骤S1702中,CPU 901将设为假的块分割标记编码并输出得到的结果。在步骤S1703中,CPU 901执行用于计算图像质量参数的过程。在步骤S1704中,CPU 901执行正交变换、量化和可变长度编码。在步骤S1705中,CPU 901执行用于将图像质量参数编码的过程。在步骤S1706中,CPU 901将编码的数据分类(sort),并且将得到的结果输出到输出缓冲器。在步骤S1707中,CPU 901将设为真的块分割标记编码并且输出得到的结果。在步骤S1708中,CPU 901执行用于计算图像质量参数的过程。在步骤S1709中,CPU 901执行用于将图像质量参数编码的过程。在步骤S1710中,CPU 901处理包含的分割块。

以下将描述所述步骤的过程。在步骤S1700中,CPU 901计算块被分割时和不被分割时的成本。可通过使用上述的Lagrange乘子计算成本,以及图像特性、统计和预测的代码长度。

在步骤S1701中,CPU 901比较在步骤S1700中计算的具有和没有分割的成本。如果具有块分割的成本比没有块分割的成本低(在步骤S1701中为是),那么CPU 901确定比较为真。如果不是(在步骤S1701中为否),那么CPU 901确定比较为假。如果步骤S1701中的确定结果为假(在步骤S1701中为否),那么CPU 901执行步骤S1702至S1706。如果步骤S1701中的确定结果为真(在步骤S1701中为是),那么CPU 901执行步骤S1707至S1710。

将首先描述没有块分割成本较低的情况。在步骤1702中,CPU 901将设为假的块分割标记编码。CPU 901通常分配和编码一位的值0,但不限于此。

在步骤S1703中,CPU 901执行图19所示的图像质量参数计算过程以计算图像质量参数。将在下面详细描述图19。

在步骤S1704中,CPU 901对残差数据执行正交变换、量化和可变长度编码,以产生编码的系数数据。通过离散余弦变换(DCT)实施正交变换。通过使用在步骤S1703中计算的图像质量参数执行量化。如果不通过将在下面描述的图19所示的图像质量参数计算过程计算新的图像质量参数,那么CPU 901通过使用与用于前面的量化的图像质量参数值相同的图像质量参数值执行量化。对于可变长度编码,CPU 901可使用Huffman编码和算术编码。可通过使用与前面提到的H.264的方法类似的方法实现这样的编码技术。

在步骤S1705中,CPU 901执行图像质量参数编码过程。将在下面参照图1详细描述图像质量参数编码过程。

在步骤S1706中,CPU 901将块分割标记代码、QP_DELTA代码和编码的系数数据分类,并且将得到的结果依次输出到输出缓冲器。如果不存在要输出的编码数据,那么CPU 901仅分类和输出现有的编码数据。图16示出代码次序的例子。

现在,将描述具有块分割成本较低的情况。在步骤S1707中,CPU 901将设为真的块分割标记编码。CPU 901通常分配和编码一位的值1,但不限于此。

在步骤S1708中,CPU 901执行将在下面描述的图19所示的图像质量参数计算过程,由此计算图像质量参数。

在步骤S1709中,CPU 901如步骤S1705中那样执行图像质量参数编码过程。将在下面参照图1详细描述图像质量参数编码过程。

在步骤S1710中,CPU 901对包含的所有分割块、即包含于在分级上随后的级别中的四个分割块(左上、右上、左下和右下)递归地执行本过程。每个分割块在高度和宽度方面都具有原目标块的1/2的尺寸。目标块尺寸在一次次的分割之后减小。递归处理可被执行直到如8×8像素那样小的块尺寸。通过这种递归处理,格子块被顺次分割成区域四叉树结构。例如,假定如图7所示的那样分割格子块。用于指示块分割的有无的分割标记在相应的块被分割时将由1表示,并且在不被分割时将由0表示。然后,如图8A、图8B、图8C和图8D所示的那样表达各分割块上的分割标记。图8A、图8B、图8C和图8D分别示出64×64像素、32×32像素、16×16像素和8×8像素的级别和块。数值表示分割标记。“-”表示不需要标记。带括号的数值表示结构次序。在本示例性实施例中,就块而言,结构次序指的是左上、右上、左下和右下的次序。就级别而言,结构次序指的是区域四叉树结构的扫描的向前次序。以结构次序存储分割标记代码、QP_DELTA代码和编码的系数数据的组。不对8×8像素的块设定分割标记,因为这样的块将不被进一步分割。具有分割标记1的块自身不包含系数数据,因为这样的块被再分成包含系数数据的更小尺寸的分割块。如将在下面描述的图16所示,流具有数据结构,使得以结构次序布置关于各分割块的编码信息。关于每一个分割块的编码信息包含关于该分割块的分割标记代码、QP_DELTA代码、和/或系数数据的组。

图1是在步骤S1705和S1709中执行的图像质量参数编码过程的详细流程图。在步骤S101中,CPU 901获取目标块尺寸。在步骤S102中,CPU 901获取图像质量控制最小块尺寸。在步骤S103中,CPU 901获取块的分割状态。在步骤S104中,CPU 901确定目标块是否被分割。在步骤S105中,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。在步骤S106中,CPU 901确定目标块尺寸是否等于图像质量控制最小块尺寸。在步骤S107中,CPU 901获取图像质量参数。在步骤S108中,CPU 901将图像质量参数编码。

以下将描述所述步骤的过程。在步骤S101中,CPU 901获取目标块尺寸。紧接在从图17的过程调用本过程之后,要被处理的目标块是格子块自身。目标块尺寸的值由此是64。随着区域四叉树结构的级别随后由于递归调用而下降时,尺寸值变为32、16和8。

在步骤S102中,CPU 901获取从外面设定的图像质量控制最小块尺寸。在本示例性实施例中,图像质量控制最小块尺寸的值为16。用于编码的目标块是否被分割已在图17的步骤S1700和S1701中被确定。在步骤S103中,CPU 901获取指示分割确定结果的分割状态信息。

在步骤S104中,CPU 901参照获取的目标块的分割状态,并且确定目标块是否被分割。如果目标块被分割(在步骤S104中为是),那么CPU 901执行步骤S106。如果目标块不被分割(在步骤S104中为否),那么CPU 901执行步骤S105。

在步骤S105中,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。如果目标块尺寸被确定为大于或等于(在步骤S105中为是),那么CPU 901执行步骤S107和随后的步骤。如果不是(在步骤S105为否),那么CPU 901结束图像质量参数编码处理。

在步骤S106中,CPU 901确定目标块尺寸是否等于图像质量控制最小块尺寸。如果目标块尺寸被确定为等于图像质量控制最小块尺寸(在步骤S106中为是),那么CPU 901执行步骤S107和S108。如果不是(在步骤S108中为否),那么CPU 901结束图像质量参数编码处理。

在步骤S107中,CPU 901获取图像质量参数。图像质量参数是在图17的步骤S1703或S1708中确定的一个。在步骤S108中,CPU 901将图像质量参数编码。在本示例性实施例中,CPU 901确定用于将前面的块编码的图像质量参数与在步骤S107中获取的图像质量参数之间的差值作为QP_DELTA值。CPU 901通过Golomb编码将确定的QP_DELTA值编码为作为图像质量参数代码的QP_DELTA代码。在本示例性实施例中,QP_DELTA通过Golomb编码被编码。但是,这不是限制性的。QP_DELTA可通过算术编码或其它的可变长度编码被编码。图像质量参数被用于计算下一QP_DELTA值。

图19是在步骤S1703和S1708中执行的图像质量参数计算过程的详细流程图。

在步骤S1901中,CPU 901获取目标块尺寸。在步骤S1902中,CPU 901获取图像质量控制最小块尺寸。在步骤S1903中,CPU 901获取块的分割状态。在步骤S1904中,CPU 901确定目标块是否被分割。在步骤S1905中,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。在步骤S1906中,CPU 901确定目标块尺寸是否等于图像质量控制最小块尺寸。在步骤S1907中,CPU 901计算图像质量参数。

以下将描述所述步骤的过程。在步骤S1901中,CPU 901获取目标块尺寸。紧接在从图17的过程调用本过程之后,要被处理的目标块是格子块自身。目标块尺寸的值由此是64。随着区域四叉树结构的级别随后由于递归调用而下降,尺寸值变为32、16和8。

在步骤S1902中,CPU 901获取从外面设定的图像质量控制最小块尺寸。在本示例性实施例中,图像质量控制最小块尺寸的值是16。

用于编码的目标块是否被分割已在图17的步骤S1700和S1701中被确定。在步骤S1903中,CPU 901获取指示分割确定结果的分割状态信息。

在步骤S1904中,CPU 901参照获取的目标块的分割状态,并且确定目标块是否被分割。如果目标块被分割(在步骤S1904中为是),那么CPU 901执行步骤S1906。如果目标块不被分割(在步骤S1904中为否),那么CPU 901执行步骤S1905。

在步骤S1905中,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。如果目标块尺寸被确定为大于或等于(在步骤S1905中为是),那么CPU 901执行步骤S1907。如果不是(在步骤S1905中为否),那么CPU 901结束图像质量参数计算处理。

在步骤S1906中,CPU 901确定目标块尺寸是否等于图像质量控制最小块尺寸。如果目标块尺寸被确定为等于图像质量控制最小块尺寸(在步骤S1906中为是),那么CPU 901执行步骤S1907。如果不是(在步骤S1906中为否),那么CPU 901结束图像质量参数计算处理。

在步骤S1907中,CPU 901执行比率控制处理,以计算用于将目标块编码的图像质量参数。例如,如TM5那样,CPU 901预测目标块的代码量,并且计算最佳量化参数。如果目标块被分割,那么包含的所有分割块经受比率控制。用同一图像质量参数将包含的分割块编码。

根据本示例性实施例的编码方法被用于输出具有图15和图16所示的数据结构的数据。参照图15,帧标题信息包含在图13的步骤S1303中嵌入的图像质量控制最小块尺寸的代码。帧内的所有格子块处于该代码的控制下。参照图16,格子块或64×64像素的块上的分割标记被随后级别中的32×32像素的左上块上的分割标记跟随。如果32×32像素的块不被分割,那么该块的图像质量参数代码或QP_DELTA代码跟随,伴随有关于32×32像素的残差的系数数据的代码。跟随下来的是32×32像素的右上块上的分割标记。如前所述,如果32×32像素的块被分割成16×16像素的块,那么分割标记跟随以指示分割状态。如果块不被进一步分割,那么QP_DELTA代码和系数数据代码跟随。图像质量控制最小块尺寸为16。如果块被分割成小于16×16像素的块,那么分割标记和系数数据代码跟随,而没有添加到更小的块的QP_DELTA代码。

如上所述,将目标块尺寸与图像质量控制最小块尺寸相比较,并且,取决于比较结果控制是否将QP_DELTA值编码。提供这种机制使得能够实现以按格子图案将图像分割成的块为单位的图像质量控制。与以格子块为单位嵌入QP_DELTA代码的常规情况(图12A)相比,可以以更细微的单位执行图像质量控制(图12C)。这可使不同的图像质量的块之间的边界变窄,并使得图像质量的差异较不引人注意。在另一常规的情况下,以正交变换块为单位执行图像质量控制并嵌入QP_DELTA代码(图12B)。与这种情况不同,由于可以选择图像质量控制的单位并且不需要在每个正交变换块中嵌入QP_DELTA代码,因此,代码量将不超出所需地增加。只有当与插入图像质量参数的条件相同的条件成立时,才执行图像质量参数计算过程。由此还防止图像质量参数的计算超出所需地增加。

在本示例性实施例中,块被定义为正方形的块。将理解,块可以是长方形的,诸如8×4像素。虽然通过使用递归处理扫描区域四叉树结构,但是,可使用环路(loop)结构以实现扫描。

如图10所示,可通过包括诸如正交变换器1003、量化器1004和可变长度编码器1005的专用硬件的配置,执行根据本示例性实施例的编码方法。CPU 1001将不执行正交变换、量化和可变长度编码步骤,而是使得前述的单元执行处理的各部分。在其它的方面,过程与图17所示的过程相同。

本示例性实施例涉及在HDD 903上记录编码数据的情况。但是,这不是限制性的。可在硬盘装置903以外的记录介质上记录编码数据。将理解,编码数据可经由通信接口905被传送到通信电路。外部记录装置可在便携介质上与记录编码数据连接。

本示例性实施例还涉及在硬盘装置903上记录软件应用的情况。但是,这不是限制性的。软件应用可记录于诸如只读存储器(ROM)的硬件上。将理解,软件应用可记录于诸如存储卡和盘的便携介质上。

本示例性实施例还涉及分割次数被编码以产生指示图像质量控制最小块的尺寸的代码的情况。但是,这不是限制性的。由于最大块尺寸是格子块的尺寸,因此,图像质量控制最小块的尺寸可由6位固定长度代码表达。图像质量控制最小块不限于正方形配置。可分别地提供用于水平和垂直配置的图像质量控制最小块。例如,水平或垂直邻接的块可被分组在一起,并且,可以块组为单位控制图像质量参数。在这种情况下,可分别地对于水平和垂直配置有效地设定图像质量控制最小块的尺寸。

将参照图2、图9、图14和图18描述根据本发明的第二示例性实施例的图像解码方法。

图9示出用于执行包含根据本示例性实施例的解码方法的解码程序的配置。记录程序记录于HDD 903上。解码程序被加载到RAM 902中,并且,CPU 901执行将在下面描述的用于解码处理的过程的步骤。从HDD 903读取输入的编码数据。解码图像经由设置在视频RAM(VRAM)904中的图像输出缓冲器被输出到显示器。CPU 901逐个块地执行解码处理。每个块被解码,以产生该块的解码图像,该解码图像在被输出到图像输出缓冲器时被复制到帧中的适当位置。当完成对如单个帧那样多的块的解码处理时,图像的帧被输出到输出缓冲器。将假定输入的编码数据是在第一示例性实施例中产生的编码数据而给出以下描述。

图14示出用于解码输入的编码数据的过程。格子块以光栅扫描次序被解码。在步骤S1401中,CPU 901解码并获取帧标题信息。本示例性实施例涉及帧标题信息包含图像质量控制最小块尺寸的情况。但是,这不是限制性的。根据预定的数据格式,可从最高分级级别的序列、图片、片或块上的标题信息获取图像质量控制最小块尺寸。在步骤S1402中,CPU 901解码并获取图像质量控制最小块尺寸。在步骤S1403中,CPU 901进行设置,使得编码数据的解码结果首先存储于第一目标格子块中。在步骤S1404中,CPU 901解码目标格子块的预测模式,并根据预测模式产生预测的图像。在步骤S1405中,CPU 901对目标格子块执行分割块解码过程。在步骤S1406中,CPU 901将目标格子块的预测图像数据和残差数据相加(add),并且将得到的结果输出到图像输出缓冲器。在步骤S1407中,CPU 901确定帧中的所有格子块是否都被处理。在步骤S1408中,CPU 901将下一格子块设为目标格子块。

下面将描述所述步骤的过程。在步骤S1401中,CPU 901从就序列、图片、帧、片和分级结构而言最上位(highest order)的块的标题信息获取称为图像质量控制最小块尺寸的参数。

在步骤S1402中,CPU 901解码并获取图像质量控制最小块尺寸。根据第一示例性实施例,图像质量控制最小块尺寸被编码为指数。图像质量控制最小块尺寸是16。在步骤S1403中,CPU 901将画面左上的格子块设为目标格子块。

在步骤S1404中,CPU 901解码目标格子块的编码数据。CPU 901由此解码在第一示例性实施例中产生的帧内预测模式和/或运动矢量。对于内部编码,CPU 901基于解码的帧内预测模式,参照相邻的解码像素,并且产生预测的图像数据。对于交互(inter)编码,CPU 901基于运动矢量执行运动补偿以产生预测的图像数据。

在步骤S1405中,CPU 901对格子块执行将在下面结合图18描述的分割块解码过程。由于分割块的解码被分级构建,因此,CPU 901解码块上的分割标记,并在执行解码的同时确定分割块的状态。CPU 901由此产生图像质量参数和关于预测的残差数据。

在步骤S1406中,CPU 901将步骤S1404中产生的预测图像数据和步骤S1405中产生的残差数据相加,以产生目标格子块的解码图像。CPU 901将解码的图像输出到图像输出缓冲器。

在步骤S1407中,CPU 901确定是否帧中的所有格子块都被处理以解码。例如,CPU 901计数解码的格子块的数量。如果不是所有的格子块都被处理以解码(在步骤S1407中为否),那么CPU 901前进到步骤S1408。如果所有的格子块都被解码(在步骤S1407中为是),那么CPU 901结束帧的解码处理。

在步骤S1408中,CPU 901将以光栅扫描次序下一个到来的解码的结果设为下一目标格子块。

图18是步骤S1405的详细流程图,示出用于解码不同尺寸的多个分级构建的正交变换块的过程。具体而言,图18示出用于基于块分割标记代码和QP_DELTA代码对可变长度编码系数数据执行可变长度解码、逆正交变换和逆量化以产生残差数据的过程。本示例性实施例使用用于分级构建的区域四叉树结构。最高级别处的块(要被处理的第一目标块)是64×64像素的格子块。

在步骤S1801中,CPU 901解码目标块的块分割标记。在步骤S1802中,CPU 901执行图像质量参数解码过程。在步骤S1803中,CPU 901确定用于解码的目标块是否被分割。在步骤S1804中,CPU 901执行可变长度解码、逆量化和逆正交变换。在步骤S1805中,CPU 901对包含的分割块递归地执行解码处理。

下面将描述所述步骤的过程。在步骤S1801中,CPU 901解码诸如图16所示的块分割标记的块分割标记,以获取关于目标块是否被再分的信息。根据四叉树分级结构执行解码。CPU 901可由此获取块的分割状态。

在步骤S1802中,CPU 901执行将在下面结合图2描述的图像质量参数解码过程。CPU 901由此解码在用于解码目标块的逆量化中使用的图像质量参数。

在步骤S1803中,CPU 901参照解码的块分割标记以确定目标块是否被分割。如果目标块被确定为不被分割(在步骤S1803中为否),那么CPU 901执行步骤S1804。如果目标块被确定为被分割(在步骤S1803中为是),那么CPU 901执行步骤S1805。

在步骤S1804中,CPU 901对目标块的编码系数数据执行可变长度解码、逆量化和逆正交变换,由此产生残差数据。对于可变长度解码,CPU 901根据在第一示例性实施例中使用的编码方案执行解码。CPU 901由此获取包含于块中的量化系数数据。对于逆量化,CPU 901使用在步骤S1802中解码的图像质量参数。如果在S1802中新的图像质量参数不被解码,那么CPU 901通过简单地使用先前解码的图像质量参数执行逆量化。CPU 901对从逆量化得到的系数数据执行逆正交变换,由此产生残差数据。

在步骤S1805中,只要解码的块分割标记指示在分级上随后的级别的存在,CPU 901就递归地执行步骤S1801至S1805中的处理。CPU 901由此恢复(restore)残差数据,直到达到最小分割块尺寸。

现在,将参照图2详细描述意在用于解码图像质量参数的步骤S1802。

图2示出用于解码不同尺寸的多个分级构建的正交变换块的图像质量参数的过程。在步骤S201中,CPU 901获取目标块尺寸。在步骤S202中,CPU 901获取图像质量控制最小块尺寸。在步骤S203中,CPU 901获取块的分割状态。在步骤S204中,CPU 901确定目标块是否被分割。在步骤S205中,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。在步骤S206中,CPU 901确定目标块尺寸是否等于图像质量控制最小块尺寸。在步骤S207中,CPU 901解码图像质量参数。

下面将描述所述步骤的过程。在步骤S201中,CPU 901获取目标块尺寸。紧接在从图18的过程调用本过程之后,要被处理的目标块是格子块自身。目标块尺寸的值由此是64。随着分割标记随后被解码,尺寸值相应地变为32、16和8。

在步骤S202中,CPU 901获取图像质量控制最小块尺寸。在本示例性实施例中,CPU 901获取在图14的步骤S1402中解码的图像质量控制最小块尺寸。在步骤S203中,CPU 901获取块的分割状态。在本示例性实施例中,CPU 901获取在图18的步骤S1801中解码的块分割标记。

在步骤S204中,CPU 901确定块分割标记的值。通过使用与在第一示例性实施例中描述的代码分配相同的代码分配,具有值“0”的块分割标记指示块不被分割。具有值“1”的块分割标记指示块被分割。如果块分割标记的值是“0”(在步骤S204中为否),那么CPU 901执行步骤S205。如果该值是“1”(在步骤S204中为是),那么CPU 901执行步骤S206。

在步骤S205中,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。如果目标块尺寸大于或等于图像质量控制最小块尺寸(在步骤S205中为是),那么CPU 901执行步骤S207。如果不是(在步骤S205中为否),那么CPU 901结束处理。

在步骤S206中,CPU 901确定目标块尺寸是否等于图像质量控制最小块尺寸。如果目标块尺寸等于图像质量控制最小块尺寸(在步骤S206中为是),那么CPU 901执行步骤S207。如果不是(在步骤S206中为否),那么CPU 901结束处理。

在步骤S207中,CPU 901解码图像质量参数代码。在本示例性实施例中,CPU 901通过Golomb解码将QP_DELTA代码解码成QP_DELTA值。在本示例性实施例中,QP_DELTA通过Golomb解码被解码。但是,这不是限制性的。可取决于预定的数据格式通过算术解码或其它的可变长度解码将QP_DELTA解码。CPU 901然后将QP_DELTA值加到用于将前面的块编码的图像质量参数上,由此产生图像质量参数。

在本示例性实施例中,取决于与用于比较其中图像质量参数被编码的目标块尺寸与图像质量控制最小块尺寸的条件相同的条件,控制是否将图像质量参数解码。这使得能够解码由在第一示例性实施例中描述的编码方法产生的流。

如图11所示,可通过包括诸如逆正交变换器1103、逆量化器1104和可变长度解码器1105的专用硬件的配置,而不是图9所示的配置,执行根据本示例性实施例的解码方法。CPU 1101将不执行逆正交变换、逆量化和可变长度解码步骤,而是使得前述的单元执行处理的各部分。在其它的方面,该过程与图18所示的过程相同。

本示例性实施例涉及在硬盘装置903上记录编码数据的情况。但是,这不是限制性的。可经由通信接口1006从通信电路接收编码数据。外部记录装置可与来自便携介质的输入编码数据连接。

本示例性实施例还涉及在硬盘装置903上记录软件应用的情况。但是,这不是限制性的。可在诸如只读存储器(ROM)的硬件上记录软件应用。将理解,软件应用可记录于诸如存储卡和盘的便携介质上。

将参照图3描述根据本发明的第三示例性实施例的图像质量参数的编码方法。除非另外规定,否则,用于执行编码方法的配置和步骤的操作与第一示例性实施例中相同。在本示例性实施例中,包含目标块并具有与图像质量控制最小块尺寸相同的尺寸的块将被定义为图像质量控制最小块。指示是否在图像质量控制最小块中编码图像质量参数的信息将被定义为图像质量参数编码状态信息。图像质量参数编码状态信息等同于指示图像质量控制最小块中的第一分割块的图像质量参数是否被编码的信息。

图3示出用于将图像质量参数编码的过程。图3是要在图17的步骤S1705和S1709中执行的图像质量参数编码过程的详细流程图。执行该过程,而不是图1所示的图像质量参数编码过程。在步骤S301中,CPU 901获取图像质量参数编码状态信息。在步骤S302中,CPU 901参照图像质量参数编码状态信息,并且确定图像质量参数是否已在图像质量控制最小块中被编码。

下面将描述所述步骤的过程。在步骤S104中,如同第一示例性实施例那样,CPU 901参照获取的目标块的分割状态,即,目标块是否通过四叉树被进一步分割。如果目标块被确定为被分割(在步骤S104中为是),那么与第一示例性实施例不同,CPU 901结束处理。如果目标块被确定为不被分割(在步骤S104中为否),那么,如同第一示例性实施例那样,CPU 901执行步骤S105。

在步骤S105中,如同第一示例性实施例那样,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。如果目标块尺寸被确定为大于或等于(在步骤S105中为是),那么,如同第一示例性实施例那样,CPU 901执行步骤S107和S108。如果不是(在步骤S105中为否),那么CPU 901执行步骤S301和S302的处理。

在步骤S301中,CPU 901获取图像质量参数编码状态信息。在本示例性实施例中,图像质量控制最小块尺寸为16。如果目标块是8×8像素的左上块,那么因而断定CPU 901获取图像质量参数不被编码的信息。如果目标块是8×8像素的右上块、左下块或右下块,那么图像质量参数已在8×8像素的左上块中被编码。在这种情况下,CPU 901获取图像质量参数被编码的信息。

在步骤S302中,CPU 901参照图像质量参数编码状态信息,并且确定图像质量参数是否已在图像质量控制最小块中被编码。如果图像质量参数被确定为尚未被编码(在步骤S302中为否),那么CPU 901执行步骤S107和S108。如果图像质量参数被确定为已被编码(在步骤S302中为是),那么CPU 901结束图像质量参数编码处理。

将描述本示例性实施例与第一示例性实施例之间的差异。在第一示例性实施例中,如果“目标块被分割并且目标块尺寸等于图像质量控制最小块尺寸”,那么嵌入QP_DELTA代码作为伴随目标块(分割块的组)的数据。在本示例性实施例中,如果“目标块被分割并且目标块尺寸等于图像质量控制最小块尺寸”,那么QP_DELTA代码被加到作为目标块中的第一块的左上块上。在本示例性实施例中,图像质量控制最小块尺寸是16。假定如图20所示的那样分割的块构成流。在这种情况下,紧挨在与带阴影的块No.0、1、7、5、6、8、9、13、14和15对应的可变长度编码系数数据之前插入QP_DELTA代码。换句话说,QP_DELTA代码伴随16×16像素或更大的块。如果16×16像素的块被分割,那么QP_DELTA代码伴随8×8像素的左上块,即16×16像素的块的第一再分块。

因此,本示例性实施例可提供与第一示例性实施例相同的效果,而过程和数据结构具有不同的概念。在另一可能的配置中,除非量化系数具有非零值,否则图像质量参数不被编码。如果目标块中的左上块不包含非零值的量化系数,那么图像质量参数被附于其中量化系数具有非零值的在结构上随后的第一分割块。在本示例性实施例的步骤S301中,CPU 901根据用于编码的目标块的尺寸和位置计算并获取图像质量参数编码状态信息。但是,这不是限制性的。例如,可以提供指示是否在图像质量控制最小块尺寸内将图像质量参数编码的标记。每当分割图像质量控制最小块的处理被执行时,标记被复位,并且,每当图像质量参数被编码时,标记被设定。为了获取图像质量参数编码状态信息,CPU 901参照该标记。如果该标记被复位,那么CPU 901获取图像质量参数不被编码的信息。如果该标记被设定,那么CPU 901获取图像质量参数被编码的信息。

将参照图4描述根据本发明的第四示例性实施例的图像质量参数的解码方法。除非另外规定,否则,用于执行解码方法的配置和步骤的操作与第二示例性实施例中相同。在本示例性实施例中,包含目标块并具有与图像质量控制最小块尺寸相同的尺寸的块将被定义为图像质量控制最小块。指示是否在图像质量控制最小块中解码图像质量参数的信息将被定义为图像质量参数解码状态信息。

图4示出用于将图像质量参数解码的过程。图4是要在图18的步骤S1802中执行的图像质量参数解码过程的详细流程图。执行该过程而不是图2所示的图像质量参数解码过程。在步骤S401中,CPU 901获取图像质量参数解码状态信息。在步骤S402中,CPU 901参照图像质量参数解码状态信息,并且确定图像质量参数是否已在图像质量控制最小块中被解码。

下面将描述所述步骤的过程。在步骤S204中,CPU 901确定块分割标记的值。如果块分割标记的值是指示块不被分割的“0”(在步骤S204中为否),那么,如同第二示例性实施例那样,CPU 901执行步骤S205。如果块分割标记的值是指示块被分割的“1”(在步骤S204中为是),那么,与第二示例性实施例不同,CPU 901结束图像质量参数解码处理。

在步骤S205中,如同第二示例性实施例那样,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。如果目标块尺寸被确定为大于或等于(在步骤S205中为是),那么,CPU 901前进到步骤S207。在步骤S207中,如同第二示例性实施例那样,CPU 901将图像质量参数解码。如果不是(在步骤S205中为否),那么CPU 901执行步骤S401和S402。

在步骤S401中,CPU 901获取图像质量参数解码状态信息。在本示例性实施例中,图像质量控制最小块尺寸为16。如果目标块是8×8像素的左上块,那么因而断定CPU 901获取图像质量参数不被解码的信息。如果目标块是8×8像素的右上块、左下块或右下块,那么图像质量参数已在8×8像素的左上块中被解码。在这种情况下,CPU 901获取图像质量参数被解码的信息。

在步骤S402中,CPU 901参照图像质量参数解码状态信息,并且确定图像质量参数是否已在图像质量控制最小块中被解码。如果图像质量参数尚未被解码(在步骤S402中为否),那么CPU 901执行步骤S207。如果图像质量参数已被解码(在步骤S402中为是),那么CPU 901结束图像质量参数解码处理。

在本示例性实施例中,基于用于比较在其处图像质量参数被编码的目标块尺寸与图像质量控制最小块尺寸的条件、以及用于确定图像质量参数是否已在图像质量控制最小块中被解码的确定条件,控制是否实际上将图像质量参数解码。这种模式使得能够解码由在第三示例性实施例中描述的编码方法产生的流。编码方法可采用使得除非量化系数具有非零值否则图像质量参数不被编码的配置。在这种情况下,解码方法可采用类似的配置。如果目标块中的左上块不包含非零值的量化系数,那么在其中量化系数具有非零值的在结构上随后的第一分割块中将图像质量参数解码。

在根据本示例性实施例的图4的步骤S401中,CPU 901根据用于解码的目标块的尺寸和位置计算并获取图像质量参数解码状态信息。但是,这不是限制性的。例如,可提供指示是否在图像质量控制最小块尺寸内将图像质量参数解码的标记。每当分割图像质量控制最小块的处理被执行时,该标记被复位,并且,每当图像质量参数被解码时,该标记被设定。为了获取图像质量参数解码状态信息,CPU 901参照该标记。如果该标记被复位,那么CPU 901获取图像质量参数不被解码的信息。如果该标记被设定,那么CPU 901获取图像质量参数被解码的信息。

将参照图5描述用于将块中的残差数据编码的过程。该过程与根据本发明的第五示例性实施例的图像质量参数的编码方法有关。除非另外规定,否则,用于执行编码方法的配置和步骤的操作与第一示例性实施例中相同。

图5示出用于将图像质量参数编码并将残差数据编码的过程。该过程实现图17和图1所示的处理。从图13的步骤S1306调用该过程。在步骤S501中,CPU 901获取目标块尺寸。在步骤S502中,CPU 901获取图像质量控制最小块尺寸。在步骤S503中,CPU 901分别计算目标块被分割时和不被分割时的成本。在步骤S504中,CPU 901确定是否分割目标块。在步骤S505中,CPU 901输出设为假的块分割标记。在步骤S506中,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。在步骤S507中,CPU 901计算图像质量参数。在步骤S508中,CPU 901执行用于将图像质量参数编码的过程。在步骤S509中,CPU 901执行预测并且执行正交变换、量化和可变长度编码。在步骤S510中,CPU 901输出设为真的块分割标记。在步骤S511中,CPU 901确定目标块尺寸是否等于图像质量控制最小块尺寸。在步骤S512中,CPU 901计算图像质量参数。在步骤S513中,CPU 901将图像质量参数编码。在步骤S514中,CPU 901处理包含的分割块。

下面将具体描述处理过程。在步骤S501中,CPU 901获取目标块尺寸。紧接在从图13的过程调用本过程之后,要被处理的目标块是格子块自身。在本示例性实施例中,目标块尺寸的值是64,但不限于它。随着区域四叉树结构的级别随后由于递归调用而下降,尺寸值变为32、16和8。注意,级别数不限于此。

在步骤S502中,CPU 901获取从外面设定的图像质量控制最小块尺寸。在本示例性实施例中,图像质量控制最小块尺寸的值是16,但不限于它。

在步骤S503中,CPU 901分别计算块被分割时和不被分割时的成本。通过使用上述的Lagrange乘子计算成本,以及图像特性、统计和预测的代码长度。

在步骤S504中,CPU 901比较在步骤S503中计算的具有分割和不具有分割的成本。如果具有块分割的成本比没有块分割的成本低(在步骤S504中为是),那么CPU 901执行步骤S510至S514。如果不是(在步骤S504中为否),那么CPU 901执行步骤S505至S509。

在步骤S505中,CPU 901输出设为假的块分割标记。在步骤S506中,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。如果目标块尺寸大于或等于(在步骤S506中为是),那么CPU 901执行步骤S507至S509。如果不是(在步骤S506中为否),那么CPU 901执行步骤S509,而不执行步骤S507和S508。

在步骤S507中,CPU 901对目标块执行比率控制,以计算图像质量参数。在步骤S508中,CPU 901将在步骤S507中计算的图像质量参数编码。在本示例性实施例中,CPU 901确定在前面的块中使用的图像质量参数与在步骤S507中计算的图像质量参数之间的差值作为QP_DELTA值。CPU 901通过Golomb编码将确定的QP_DELTA值编码为作为图像质量参数代码的QP_DELTA代码。

在步骤S509中,CPU 901对残差数据执行正交变换、量化和可变长度编码,以产生编码的系数数据。CPU 901通过使用在步骤S507中计算的图像质量参数执行量化。如果在步骤S506中目标块尺寸被确定为小于图像质量控制最小块尺寸(在步骤S506中为否),那么CPU 901使用与用于前面的量化的图像质量参数相同的图像质量参数。

在步骤S510中,CPU 901将设为真的块分割标记编码。在步骤S511中,CPU 901确定目标块尺寸是否等于图像质量控制最小块尺寸。如果目标块尺寸等于图像质量控制最小块尺寸(在步骤S511中为是),那么CPU 901执行步骤S512至S514。如果不是(在步骤S511中为否),那么CPU 901执行步骤S514,而不执行步骤S512和S513。

在步骤S512中,CPU 901执行比率控制处理,以计算用于将目标块编码的图像质量参数。包含的所有分割块经受比率控制。包含的分割块用同一图像质量参数被编码。

在步骤S513中,CPU 901执行与步骤S508中相同的操作,以将在步骤S512中计算的图像质量参数编码。在步骤S514中,CPU 901对在分级上随后的级别中包含的四个分割块(左上、右上、左下和右下)递归地执行本过程。每个分割块在高度和宽度方面都具有原目标块的1/2的尺寸。目标块尺寸在一次次的分割之后减小。这种递归处理可被执行直至如8×8像素那样小的块尺寸。通过递归处理,如图16所示,各分割块上的分割标记代码、QP_DELTA代码和系数数据按结构次序作为流被输出。

如上所述,比率控制处理和图像质量参数编码处理可相互一体化。即使这种配置也使得能够如同在第三示例性实施例中描述的图像质量参数的编码方法那样以较细微的单位实现图像质量控制。

将参照图6描述根据本发明的第六示例性实施例的图像质量参数的解码方法。

图6示出图像质量参数的解码过程。该过程适用于图14的步骤S1405。在步骤S601中,CPU 901获取用于解码的目标块的尺寸。在步骤S602中,CPU 901获取图像质量控制最小块尺寸。在步骤S603中,CPU 901将块分割标记解码。在步骤S604中,CPU 901确定用于解码的目标块是否被分割。在步骤S605中,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。在步骤S606中,CPU 901将图像质量参数解码。在步骤S607中,CPU 901执行可变长度解码、逆量化和逆正交变换。在步骤S608中,CPU 901确定目标块尺寸是否等于图像质量控制最小块尺寸。在步骤S609中,CPU 901将图像质量参数解码。在步骤S610中,CPU 901以包含的分割块为对象递归地调用本过程以用于解码。

下面将具体描述所述步骤的过程。在步骤S601中,CPU 901获取用于解码的目标块的尺寸。紧接在从图14的过程调用本过程之后,要被处理的目标块是格子块自身。在本示例性实施例中,格子块具有尺寸值64,但不限于它。随着区域四叉树结构的级别随后由于递归调用而下降,尺寸值变为32、16和8。注意,级别数不限于此。

在步骤S602中,CPU 901获取图像质量控制最小块尺寸。在本示例性实施例中,CPU 901获取嵌入在帧标题信息中的图像质量控制最小块尺寸。

在步骤S603中,CPU 901获取块的分割状态。在本示例性实施例中,CPU 901参照在图18的步骤S1801中解码的块分割标记的值。

在步骤S604中,CPU 901确定块分割标记的值是真还是假。如果为假(在步骤S604中为否),那么CPU 901执行步骤S605至S607。如果为真(在步骤S604中为是),那么CPU 901执行步骤S608至S610。

在步骤S605中,CPU 901确定目标块尺寸是否大于或等于图像质量控制最小块尺寸。如果目标块尺寸大于或等于图像质量控制最小块尺寸(在步骤S605中为是),那么CPU 901执行步骤S606和S607。如果不是(在步骤S605中为否),那么CPU 901执行步骤S607,而不执行步骤S606。

在步骤S606中,CPU 901将图像质量参数代码解码。在本示例性实施例中,CPU 901通过Golomb解码将QP_DELTA代码解码成QP_DELTA值。CPU 901然后将QP_DELTA值加到在前面的逆量化中使用的图像质量参数上,由此产生图像质量参数。

在步骤S607中,CPU 901执行可变长度解码、逆量化和逆正交变换。对于逆量化,CPU 901使用在步骤S606中解码的图像质量参数。如果目标块尺寸小于图像质量控制最小块尺寸(在步骤S608中为否),那么CPU 901使用用于将前面的目标块逆量化的图像质量参数。随后,CPU 901结束目标块的解码。

在步骤S608中,CPU 901确定目标块尺寸是否等于图像质量控制最小块尺寸。如果目标块尺寸等于图像质量控制最小块尺寸(在步骤S608中为是),那么CPU 901执行步骤S609。如果不是(在步骤S608中为否),那么CPU 901前进到步骤S610,而不执行步骤S609。

在步骤S609中,CPU 901如步骤S606中那样将图像质量参数代码解码。在步骤S610中,CPU 901对在分级上随后的级别中包含的四个分割块(左上、右上、左下和右下)递归地执行本过程。每个分割块在高度和宽度方面都具有原目标块的1/2的尺寸。目标块尺寸在一次次的分割之后减小。通过这种递归处理,如图16所示,CPU 901按区域四叉树结构的次序将每个分割块上的分割标记代码、QP_DELTA代码和系数数据解码。

如上所述,用于扫描区域四叉树结构的递归处理和图像质量参数解码处理可相互一体化。即使这种配置也可将通过根据第一示例性实施例或第五示例性实施例的编码方法编码的流解码。

本发明的第七示例性实施例涉及分割块编码方法。通过使用图9所示的配置实现根据本示例性实施例的分割块编码方法。

在编码之前,CPU 901设定简档和级别。简档描述要在本示例性实施例中产生的流的特性。级别是取决于解码器的处理性能所允许的参数组。由于处理性能主要取决于图像尺寸,因此,对于各图像尺寸定义级别。但是,级别定义的单位不限于图像尺寸。例如,可根据要被处理的格子块的数量设定级别,因为处理性能取决于该数量。在本示例性实施例中,图像质量控制最小块尺寸被设定为每个级别中的最小值。图21A和图21B示出定义由简档并且由级别限定的图像质量控制最小块尺寸的表。

本示例性实施例涉及简档包含仅使用基本工具(tool)的基线简档和使用其它工具的主简档的情况。但是,简档不限于此。

图21A示出表示基线简档中的图像质量控制最小块尺寸的极限和级别的表。图21B示出表示主简档中的图像质量控制最小块尺寸的极限和级别的表。

在本示例性实施例中,级别通过包含于帧中的格子块(64×64像素)的最大数量被分类。具体而言,级别1意在用于诸如640×480像素的相对小的图像。级别2意在用于1920×1080像素的中等尺寸的图像。级别3意在用于4096×2160像素的大图像。应当注意,级别数和级别分类不限制本发明的要旨。

将描述图21A所示的基线简档。级别1示出图像质量控制最小块尺寸的最小值是8,并且可在8至64的范围中设定图像质量控制最小块尺寸。级别2示出图像质量控制最小块尺寸的最小值是16,并且可在16至64的范围中设定图像质量控制最小块尺寸。级别3示出图像质量控制最小块尺寸的最小值是32,并且可在32至64的范围中设定图像质量控制最小块尺寸。图21B所示的主简档示出:不管级别如何,图像质量控制最小块尺寸都被控制在8至64的范围内。

CPU 901取决于诸如工具和存储器容量的编码方法或装置的条件、并且/或者考虑解码方法或装置的条件,确定简档和级别。但是,确定简档和级别的方法不被特别限制。未示出的用户可设定简档和级别。确定的简档和级别可被编码,被包含于描述关于整个运动图像的信息的序列标题中,并且从通信接口905被输出。这种简档和级别可记录于HDD 903上。

接下来,将描述用于将帧编码的过程。在图13的步骤S1301中,如同第一示例性实施例那样,CPU 901首先设定图像质量控制最小块尺寸的参数。图22是示出图像质量控制最小块尺寸的计算方法的流程图。在步骤S2201中,CPU 901确定简档类型。如果简档类型是基线简档(步骤S2202中为基线简档),那么CPU 901执行步骤S2204和随后的步骤。如果简档类型是主简档(步骤S2202中为主简档),那么CPU 901执行步骤S2203。

首先将描述主简档的情况。在步骤S2203中,CPU 901将图像质量控制最小块尺寸设为8。CPU 901然后结束处理。

接下来,将描述基线简档的情况。在步骤S2204中,CPU 901获取级别值。在本示例性实施例中,根据输入的图像尺寸计算级别值。级别值指示可将输入的图像尺寸的流解码的最小级别。

在步骤S2205中,CPU 901确定级别值是否为1。如果确定为真(在步骤S2205中为是),那么CPU 901执行步骤S2206。如果确定为假(在步骤S2205中为否),那么CPU 901执行步骤S2207。在步骤S2206中,CPU 901将图像质量控制最小块尺寸设为8。在步骤S2207中,CPU 901确定级别值是否为2。如果确定为真(在步骤S2207中为是),那么CPU 901执行步骤S2208。如果确定为假(在步骤S2207中为否),那么CPU 901执行步骤S2209。在步骤S2208中,CPU 901将图像质量控制最小块尺寸设为16。在步骤S2209中,CPU 901将图像质量控制最小块尺寸设为32。

然后,CPU 901返回到图13所示的处理。在步骤S1302中,如同第一示例性实施例那样,CPU 901将图像质量控制最小块尺寸编码。在步骤S1303中,CPU 901产生包含编码数据的帧标题信息。图23A示出产生的位流。序列标题包含关于简档和级别的编码数据,跟随有指示图像尺寸的代码。每条帧数据中的帧标题包含图像质量控制最小块尺寸代码,尺寸设定大于或等于在图21A中定义的图像质量控制最小块尺寸的最小值。

图24是示出整个过程的流程图。在步骤S2401中,CPU 901输入要被编码的图像的尺寸。在步骤S2402中,CPU 901选择简档。CPU 901还根据图21A或21B选择级别。在步骤S2403中,CPU 901根据选择的级别获取图像质量控制最小块尺寸的最小值。在步骤S2404中,CPU 901将选择的简档和级别编码。在步骤S2405中,CPU 901产生包含关于简档和级别的编码数据的序列标题。在步骤S2406中,CPU 901以帧为单位执行编码。每个帧中的图像质量控制最小块的可能尺寸大于或等于前述的图像质量控制最小块尺寸的最小值。在步骤S2407中,CPU 901确定是否所有的帧都被编码。如果不是所有的帧都被编码(在步骤S2407中为否),那么CPU 901前进到步骤S2406以将下一帧编码。如果所有的帧都被编码(在步骤S2407中为是),那么CPU 901结束编码处理。

提供简档和级别并限制图像质量控制最小块尺寸使得能够取决于图像尺寸确定图像质量控制最小块尺寸。因此,可以在省略较小的块中的操作的同时将图像编码,而不导致图像质量的降低。这允许设计用于所意图的装置的最佳电路并设计用于抑制一定功耗的配置。例如,可对于移动通信使用基线简档,使得可鉴于电池运行时间对编码操作施加严格的负载限制。可对于无电池固定装置使用主简档,由此,对操作负载施加较宽松的限制。就软件而言,可省略用于执行比图像质量控制最小块尺寸小的块中的量化控制的操作时间,以用于加速。

将理解,如同本示例性实施例的基于简档和级别的编码方法可被应用于第三和第五示例性实施例。

图21A和图21B所示的对于各级别确定的图像质量控制最小块尺寸的最小值可总是被用于各级别中。在这种情况下,要包含于每个帧中的图像质量控制最小块尺寸代码可被省略。图23B示出这种位流。图23B所示的位流与图23A所示的位流的不同在于,帧标题不包含图像质量控制最小块尺寸代码。序列中的图像质量控制最小块尺寸被固定于针对简档和级别限定的图像质量控制最小块尺寸的最小值。这提供了去除冗余代码以提高编码效率的效果。

用于存储比图像质量控制最小块尺寸小的量化矩阵的存储器容量和用于更新这种量化矩阵的处理也可被省略。

本发明的第八示例性实施例涉及用于解码在第七示例性实施例中产生的位流的图像解码方法。通过使用图9所示的配置实现根据本示例性实施例的图像解码方法。

在将帧解码之前,CPU 901输入并解码序列标题。CPU 901根据图23A将与简档和级别有关的代码解码。CPU 901还将图像宽度代码和图像高度代码解码。如果解码的简档是基线简档,那么CPU 901参照图21A的表。CPU 901进一步选择和确定与级别对应的图像质量控制最小块尺寸的最小值。如果解码的简档是主简档,那么CPU 901参照图21B的表,并且将图像质量控制最小块尺寸的最小值设为8。

在该时间点,CPU 901保留RAM 902上的其它必要的存储器和缓冲器。例如,对于级别2中的基线简档,将不在8×8像素的块尺寸中执行图像质量控制。在这种情况下,用于以8×8和4×4像素块为单位存储图像质量参数的存储器区域可被省略。

CPU 901根据已在第二示例性实施例中描述的图14的流程图将帧解码。在步骤S1402中,CPU 901将包含于帧标题中的图像质量控制最小块尺寸解码。在步骤S1405中,CPU 901以格子块为目标块执行分级解码。在第二示例性实施例中描述的图18的步骤S1805中,CPU 901根据分级级别执行递归处理,由此将图像质量控制参数解码,直至图像质量控制最小块尺寸的块。

图25是示出整个过程的流程图。在步骤S2501中,CPU 901输入序列标题。在步骤S2502中,CPU 901将关于简档和级别的编码数据解码,由此获取简档和级别。在步骤S2503中,CPU 901根据选择的级别获取图像质量控制最小块尺寸的最小值。在步骤S2504中,CPU 901以帧为单位执行解码。这确保每个帧中的图像质量控制最小块的可能尺寸大于或等于前述的图像质量控制最小块尺寸的最小值。在步骤S2505中,CPU 901确定是否所有的帧都被解码。如果不是所有的帧都被解码(在步骤S2505中为否),那么CPU 901前进到步骤S2504以将下一帧解码。如果所有的帧都被解码(在步骤S2505中为是),那么CPU 901结束解码处理。

提供简档和级别并限制图像质量控制最小块尺寸使得能够取决于图像尺寸确定图像质量控制最小块尺寸。因此,可以在省略较小的块中的操作的同时将图像解码,而不导致图像质量的降低。确定图像质量控制最小块尺寸可减少递归处理的次数,由此,可抑制用于以格子块为单位执行解码的时间变动。

因此,可以设计用于所意图的装置的最佳电路,并设计用于抑制一定功耗的配置。例如,可对于移动通信使用基线简档,使得可鉴于电池运行时间对编码操作施加严格的负载限制。可对于无电池固定装置使用主简档,由此,对操作负载施加较宽松的限制。就软件而言,可省略用于执行比图像质量控制最小块尺寸小的块中的量化控制的操作时间,以用于加速。

将理解,CPU 901可根据图23B将与简档和级别有关的代码解码。如前述描述中那样,CPU 901输入和解码序列标题。根据得到的简档和级别,CPU 901如上面描述的那样确定图像质量控制最小块尺寸。当将帧解码时,CPU 901跳过步骤S1402,并使用图像质量控制最小块尺寸。

根据简档和级别唯一地确定图像质量控制最小块尺寸使得在没有每个帧标题中的图像质量控制最小块尺寸代码的情况下图像解码变为可能。

CPU 901可比较解码的图像质量控制最小块尺寸与由简档和级别确定的图像质量控制最小块尺寸。如果后者比前者大,那么CPU 901可检测位流的错误。

虽然已参照示例性实施例描述了本发明,但要理解的是,本发明不限于公开的示例性实施例。以下的权利要求的范围要被赋予最宽的解释,以包含所有的修改、等同的结构和功能。

本申请要求2011年1月13日提交的日本专利申请No.2011-004648的优先权,在这里通过引用并入其全部内容。

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