图像编码设备和方法以及图像解码设备和方法与流程

文档序号:11524685阅读:157来源:国知局
图像编码设备和方法以及图像解码设备和方法与流程

(本申请是申请日为2012年10月23日、申请号为201280054789.8、发明名称为“图像编码设备、图像编码方法、图像解码设备、图像解码方法及存储介质”的申请的分案申请。)

本发明涉及一种图像编码设备、图像编码方法、图像解码设备、图像解码方法和存储介质。更具体地,本发明涉及一种图像中的量化矩阵的编码/解码方法。



背景技术:

作为运动图像的压缩记录标准,已知h.264/mpeg-4avc(以下称为h.264)。对于(itu-th.264(03/2010)用于通用视听服务的高级视频编码)h.264,通过编码缩放比例列表信息,可以将量化矩阵的各元素改变成任意值。根据h.264的章7.3.2.1.1.1,通过与作为元素与其前一元素之间的差值的德尔塔缩放比例(deltascale)相加,量化矩阵的各元素可以取任意值。

对于h.264,在从二维量化矩阵的左上角的与低频成分相对应的元素向着右下角的与高频成分相对应的元素的方向上,对量化矩阵的各元素进行扫描。例如,在对图6a所示的二维量化矩阵进行编码时,使用图13a所示的称为折线扫描的扫描方法。根据该处理,将量化矩阵配置成图6b所示的一维矩阵。然后,计算矩阵中要编码的元素与其前一元素之间的差,并且获得图6d所示的差值的矩阵。此外,通过图5a所示的称为有符号的指数哥伦布编码的方法,将差值编码为德尔塔缩放比例。例如,如果矩阵中的元素与其前一元素之间的差为0,则编码为二值码1。如果差为-2,则编码为二值码00101。

然而,对于h.264中所使用的折线扫描,由于在对角方向上扫描量化矩阵的各元素,因而量化矩阵的代码量根据量化矩阵的特性而增大。



技术实现要素:

本发明旨在通过在量化矩阵的编码中引入诸如水平/垂直扫描等的单向扫描方法来实现量化矩阵的高效编码/解码。

根据本发明的一个方面,一种图像编码设备包括:块分割部件,用于将输入图像分割成多个块;预测部件,用于基于已编码的像素来进行预测,以生成预测误差;变换部件,用于对所述预测误差进行正交变换,以生成变换系数;量化矩阵生成部件,用于生成对所述变换系数进行量化所使用的量化矩阵;量化矩阵编码部件,用于通过扫描所述量化矩阵来计算差值,并且对所述差值进行编码;量化部件,用于通过使用所述量化矩阵对所生成的所述变换系数进行量化,来生成量化系数;以及系数编码部件,用于对所述量化系数进行编码,其中,所述量化矩阵编码部件以单方向的方式扫描所述量化矩阵的系数,以计算所述差值。

根据本发明的典型实施例,可以降低编码量化矩阵时所需的代码量,并且可以进行高效编码/解码。

通过以下参考附图对典型实施例的详细说明,本发明的其它特征和方面将变得明显。

附图说明

包含在说明书中并构成说明书一部分的附图示出了本发明的典型实施例、特征和方面,并且与说明书一起用来解释本发明的原理。

图1是示出根据本发明第一、第五和第七典型实施例的图像编码设备的结构的框图。

图2是示出根据本发明第二、第六和第八典型实施例的图像解码设备的结构的框图。

图3是示出根据本发明第三典型实施例的图像编码设备的结构的框图。

图4是示出根据本发明第四典型实施例的图像解码设备的结构的框图。

图5a示出正负对称的编码表的例子。

图5b示出正负不对称的编码表的例子。

图6a示出量化矩阵的例子。

图6b示出量化矩阵的例子。

图6c示出量化矩阵的例子。

图6d示出差分矩阵的例子。

图6e示出差分矩阵的例子。

图7示出量化矩阵的编码例子。

图8a示出比特流结构的例子。

图8b示出比特流结构的例子。

图9是示出根据第一、第五和第七典型实施例的图像编码设备的图像编码处理的流程图。

图10是示出根据第二、第六和第八典型实施例的图像解码设备的图像解码处理的流程图。

图11是示出根据第三典型实施例的图像编码设备的图像编码处理的流程图。

图12是示出根据第四典型实施例的图像解码设备的图像解码处理的流程图。

图13a示出量化矩阵的系数的扫描方法和差计算方法的例子。

图13b示出量化矩阵的系数的扫描方法和差计算方法的例子。

图13c示出量化矩阵的系数的扫描方法和差计算方法的例子。

图13d示出量化矩阵的系数的扫描方法和差计算方法的例子。

图13e示出量化矩阵的系数的扫描方法和差计算方法的例子。

图14是示出可应用于根据本发明典型实施例的图像编码设备和解码设备的计算机的硬件的结构示例的框图。

图15示出根据第五和第六典型实施例的量化矩阵的编码例子。

图16a示出根据第五和第六典型实施例的量化矩阵的系数的扫描方法和差计算方法的例子。

图16b示出根据第五和第六典型实施例的量化矩阵的系数的扫描方法和差计算方法的例子。

图16c示出根据第五和第六典型实施例的量化矩阵的系数的扫描方法和差计算方法的例子。

图17a示出根据第五和第六典型实施例的量化矩阵的例子。

图17b示出根据第五和第六典型实施例的差分矩阵的例子。

图17c示出根据第五和第六典型实施例的差分矩阵的例子。

图18a示出根据第七和第八典型实施例的量化矩阵的系数的扫描方法的例子。

图18b示出根据第七和第八典型实施例的量化矩阵的系数的扫描方法的例子。

图18c示出根据第七和第八典型实施例的量化矩阵的系数的扫描方法的例子。

图19a示出根据第七和第八典型实施例的量化矩阵的例子。

图19b示出根据第七和第八典型实施例的差分矩阵的例子。

图20a示出根据第七和第八典型实施例的量化矩阵的系数的扫描方法的例子。

图20b示出根据第七和第八典型实施例的量化矩阵的系数的扫描方法的例子。

图20c示出根据第七和第八典型实施例的量化矩阵的系数的扫描方法的例子。

图20d示出根据第七和第八典型实施例的量化矩阵的系数的扫描方法的例子。

具体实施方式

下面参考附图详细说明本发明的各种典型实施例、特征和方面。

在本说明书的上下文中,将图13b所示的用于二维矩阵的扫描方法称为水平扫描,并且将图13d所示的用于二维矩阵的扫描方法称为垂直扫描。

图1是示出根据本发明第一典型实施例的图像编码设备的框图。

在图1中,块分割单元101将输入图像分割成多个块。

预测单元102以块为单位对块分割单元101分割得到的各块进行预测,确定预测方法,根据所确定的预测方法计算差值,并且还计算预测误差。如果要处理运动图像或者静止图像的帧内帧,则进行帧内预测。如果要处理运动图像的帧间帧,则除帧内预测以外,还进行运动补偿预测。在根据周围像素的数据计算预测值时,通常通过从多个方法中选择最佳预测方法来实现帧内预测。

变换单元103对各块的预测误差进行正交变换。变换单元103以块为单位进行正交变换以计算变换系数。块的大小是输入块的大小或者通过进一步分割输入块所获得的大小。在下面的说明中,将要通过正交变换进行变换的块称为变换块。尽管正交变换的方法没有限制,但是可以使用离散余弦变换或哈达玛变换(hadamardtransform)。此外,根据本实施例,对8×8像素的块单位的预测误差进行纵横2分割,并且在正交变换时使用由此得到的4×4像素的变换块以简化说明。然而,变换块的大小和形状不局限于这一例子。例如,可以通过使用相同块大小的变换块、或者通过使用将块分割成比对块进行纵横2分割时获得的部分更小的部分而获得的变换块,来进行正交变换。

量化矩阵存储单元106生成和存储量化矩阵。存储在量化矩阵存储单元106中的量化矩阵的生成方法没有限制。因此,量化矩阵可以是用户所输入的量化矩阵、根据输入图像的特性所计算出的量化矩阵、或者作为初始值预先所指定的量化矩阵。根据本实施例,生成并存储图6a所示的与4×4像素的变换块相对应的二维量化矩阵。

量化单元104使用存储在量化矩阵存储单元106中的量化矩阵来对变换系数进行量化。通过该量化处理获得了量化系数。

系数编码单元105对以该方式所获得的量化系数进行编码,并且生成量化系数编码数据。尽管该编码方法没有限制,但是可以使用诸如霍夫曼编码和算术编码等的编码。

量化矩阵扫描单元109扫描存储在量化矩阵存储单元106中的二维量化矩阵,计算各元素的差,并且将其配置成一维矩阵。根据本典型实施例,将配置成该一维矩阵的差称为差分矩阵。

量化矩阵编码单元107对量化矩阵扫描单元109所配置的差分矩阵(一维矩阵)进行编码,并且生成量化矩阵编码数据。整合编码单元108生成头信息、以及与预测或变换相关联的代码,并且还整合系数编码单元105所生成的量化系数编码数据和量化矩阵编码单元107所生成的量化矩阵编码数据。与预测或变换相关联的代码例如是与预测方法的选择或变换块的分割相关联的代码。

现说明通过上述图像编码设备所进行的图像的编码操作。根据本实施例,尽管以帧为单位输入运动图像数据,但是还可以输入一帧的静止图像数据。此外,根据本实施例,为了简化说明,仅说明帧内预测编码的处理。然而,本发明还可应用于帧间预测编码的处理。根据本实施例,尽管块分割单元101将输入图像分割成8×8像素的块,但是块的大小不局限于这一例子。

接着,在图像的编码之前,进行量化矩阵的元素的编码。首先,量化矩阵存储单元106生成量化矩阵。根据编码的块的大小来确定量化矩阵。量化矩阵的元素的确定方法没有限制。例如,可以使用预定初始值,或者可以使用个别设置的值。此外,可以根据图像的特性来生成和设置该值。

将以该方式所生成的量化矩阵存储在量化矩阵存储单元106中。图6a示出与4×4像素的变换块相对应的量化矩阵的例子。粗框600表示量化矩阵。为了简化说明,量化矩阵具有与4×4像素的变换块相对应的16个像素的大小,并且矩阵的各单元表示元素。根据本实施例,尽管以二维矩阵存储图6a所示的量化矩阵,但是量化矩阵中的元素不局限于这一例子。例如,如果除本实施例的块大小以外、还要使用8×8像素的变换块,则需要存储与8×8像素的变换块相对应的不同的量化矩阵。

量化矩阵扫描单元109依次读出存储在量化矩阵存储单元106中的二维量化矩阵,扫描各元素,计算差,并且将这些元素配置成一维矩阵。根据本实施例,使用图13d所示的垂直扫描,并且针对每一元素计算该元素与按照扫描顺序在其之前的元素之间的差。然而,扫描方法和差的计算方法不局限于这一例子。可以使用图13b所示的水平扫描作为扫描方法,并且可以针对各元素计算该元素与按照扫描顺序在其之前的元素之间的差。此外,在使用图13b所示的扫描方法的同时,可以通过如图13c所示获得上方元素之间的差,来计算相对于左端的元素的差。因此,除左端的元素以外,如图13b中所进行的一样,计算元素与其前一元素之间的差。此外,在使用图13d所示的扫描方法的同时,可以通过如图13e所示获得左侧元素之间的差,来计算相对于上方的元素的差。因此,除上方的元素以外,如图13d中所进行的一样,计算元素与其前一元素之间的差。根据本实施例,使用图13d所示的垂直扫描来扫描图6a所示的二维量化矩阵,计算各元素与其前一元素之间的差,并且生成图6e所示的差分矩阵。此外,通过计算第一个元素的值和预定初始值之间的差来获得与矩阵的第一个元素相对应的差值。根据本实施例,尽管将初始值设置成8,但是可以使用任意值作为初始值,或者可以编码第一个元素自身的值。

量化矩阵编码单元107从量化矩阵扫描单元109依次读出差分矩阵,对差分矩阵进行编码,并且生成量化矩阵编码数据。根据本实施例,通过使用图5a所示的编码表来编码差分矩阵。然而,编码表不局限于这一例子,例如,可以使用图5b所示的编码表。

图7示出通过使用图13a和13d中的扫描方法计算图6a所示的量化矩阵的差分矩阵、并且使用图5a所示的编码表对该差分矩阵进行编码所获得的结果的例子。图7中的元素的列表示通过扫描图6a所示的量化矩阵中的各元素所获得的结果,并且差值的列表示元素与预定初始值8或者前一元素之间的差值。折线扫描的代码的列表示在使用图13a所示的传统方法的折线扫描的情况下的代码,并且总共需要68位。另一方面,垂直扫描的代码的列表示在使用图13d所示的垂直扫描的情况下的代码,并且总共需要60位。因此,通过采用垂直扫描,可以利用较少的代码量来编码相同的量化矩阵。将以这一方式所生成的量化矩阵的编码数据输入给整合编码单元108。整合编码单元108对在编码图像数据时所需的头信息进行编码,并且整合量化矩阵的编码数据。

接着进行图像数据的编码。当将一帧的图像数据输入给块分割单元101时,将其分割成8×8像素的块单位。将分割后的图像数据输入给预测单元102。

预测单元102进行以块为单位的预测以生成预测误差。变换单元103将预测单元102所生成的预测误差分割成变换块大小的块,并且进行正交变换以获得变换系数。然后,将所获得的变换系数输入给量化单元104。根据本实施例,将8×8像素的块单位的预测误差分割成4×4像素的变换块单位以进行正交变换。

再次返回参考图1,量化单元104通过使用存储在量化矩阵存储单元106中的量化矩阵来对从变换单元103输出的变换系数进行量化,并且生成量化系数。将所生成的量化系数输入给系数编码单元105。

系数编码单元105对量化单元104所生成的量化系数进行编码,生成量化系数编码数据,并且将所生成的量化系数编码数据输出给整合编码单元108。整合编码单元108生成与以块单位的预测和变换相关联的代码,将以块为单位的代码和系数编码单元105所生成的量化系数编码数据与头的编码数据整合在一起,并且生成比特流。然后,整合编码单元108输出所生成的比特流。

图8a示出根据第一典型实施例所输出的比特流的例子。序列头包括量化矩阵的编码数据,因而包括各元素的编码结果。然而,编码数据的位置不局限于这一例子。例如,可以将编码数据包括在图片头部分或者其它头部分中。此外,如果在一个序列中要进行量化矩阵的改变,则可以通过重新对量化矩阵进行编码来更新量化矩阵。在这种情况下,可以重写整个量化矩阵。此外,如果指定了要重写的量化矩阵的扫描方法和变换块大小,则可以根据该指定来改变量化矩阵的一部分。

图9是示出根据第一典型实施例的图像编码设备所进行的图像编码处理的流程图。在步骤s901,量化矩阵存储单元106生成量化矩阵。

在步骤s902,量化矩阵扫描单元109扫描步骤s901所生成的量化矩阵,计算元素之间的差,并且生成差分矩阵。根据本实施例,使用图13d所示的扫描方法来扫描图6a所示的量化矩阵,并且生成图6e所示的差分矩阵。然而,量化矩阵和扫描方法不局限于这些例子。

在步骤s903,量化矩阵编码单元107对步骤s902所生成的差分矩阵进行编码。根据本实施例,量化矩阵编码单元107使用图5a所示的编码表来编码图6e所示的差分矩阵。然而,编码表不局限于这一表。

在步骤s904,整合编码单元108编码并输出比特流的头部分。在步骤s905,块分割单元101将以帧为单位的输入图像分割成以块为单位。在步骤s906,预测单元102进行以块为单位的预测,并且生成预测误差。

在步骤s907,变换单元103将步骤s906所生成的预测误差分割成变换块大小的块,进行正交变换,并且生成变换系数。在步骤s908,量化单元104通过使用步骤s901所生成的存储在量化矩阵存储单元106中的量化矩阵来量化步骤s907所生成的变换系数,来生成量化系数。

在步骤s909,系数编码单元105对步骤s908所生成的量化系数进行编码,并且生成量化系数编码数据。在步骤s910,图像编码设备判断是否完成了块中的所有变换块的编码。如果完成了所有变换块的编码(步骤s910为“是”),则处理进入步骤s911。如果尚未完成所有变换块的编码(步骤s910为“否”),则处理返回到步骤s907,并且处理下一变换块。

在步骤s911,图像编码设备判断是否完成了所有块的编码。如果完成了所有块的编码(步骤s911为“是”),则图像编码设备停止所有操作,然后结束该处理。如果尚未完成所有块的编码(步骤s911为“否”),则处理返回到步骤s905,并且处理下一个块。

根据上述结构和操作,尤其通过在步骤s902利用量化矩阵的单向扫描计算差分矩阵的处理,可以生成量化矩阵的包括较少代码量的比特流。

根据本实施例,尽管说明了仅使用帧内预测的帧,但是显而易见,本发明可应用于可以使用帧间预测的帧。

此外,根据本实施例,尽管使用8×8像素的块和4×4像素的变换块,但是本发明不局限于这些例子。例如,块大小可以是16×16像素或者32×32像素。此外,块的形状不局限于正方形,例如也可以使用16×8像素的矩形。

此外,在本实施例中,尽管变换块大小在纵向和横向上是块大小的一半,但是变换块大小也可以与块大小相同,或者可以在纵向和横向上比块的大小的一半更小。

此外,根据本实施例,生成差分矩阵、然后进行编码。然而,量化矩阵编码单元107可以使用预定扫描方法、根据量化矩阵直接计算差值,并且对差值进行编码。在这种情况下,不需要量化矩阵扫描单元109。

此外,如果根据变换系数的扫描方法要使用不同的量化矩阵,则可以根据变换系数的扫描方法来确定量化矩阵的各元素的扫描方法。

此外,根据本实施例,尽管说明了仅具有一个量化矩阵的情况,但是量化矩阵不一定是一个。例如,在针对亮度/色度设置不同的量化矩阵的情况下,可以使用共通的量化矩阵扫描方法,或者可以提供不同的扫描方法。

图2是示出根据本发明第二典型实施例的图像解码设备的结构的框图。根据本实施例,将说明针对第一典型实施例所生成的比特流的解码。

在图2中,解码/分离单元201对输入比特流的头信息进行解码,从该比特流分离所需的代码,并且将分离得到的代码输出至后段组件。解码/分离单元201进行通过图1所示的整合编码单元108所进行的操作的逆操作。量化矩阵解码单元206根据比特流的头信息来对量化矩阵编码数据进行解码,并且生成差分矩阵。

量化矩阵逆扫描单元208通过对量化矩阵解码单元206所生成的差分矩阵进行逆扫描,来再现量化矩阵。量化矩阵逆扫描单元208进行图1所示的量化矩阵扫描单元109所进行的操作的逆操作。量化矩阵存储单元207存储量化矩阵逆扫描单元208再现得到的量化矩阵。

另一方面,系数解码单元202根据解码/分离单元201分离得到的代码来对量化系数进行解码,并且再现量化系数。逆量化单元203通过使用存储在量化矩阵存储单元207中的量化矩阵,进行量化系数的逆量化,并且再现变换系数。逆变换单元204进行作为图1所示的变换单元103所进行操作的逆操作的逆正交变换,并且再现预测误差。预测重构单元205根据再现得到的预测误差和已解码的周围图像数据来再现块图像数据。

现在将说明根据上述图像解码设备的图像的解码操作。根据本实施例,尽管以帧为单位输入第一典型实施例所生成的运动图像的比特流,但是还可以输入一帧的静止图像的比特流。此外,根据本实施例,为了简化说明,仅说明帧内预测解码处理。然而,还可以将本发明应用于帧间预测解码处理。

对于图2的例示,将一帧的比特流输入至解码/分离单元201,并且对再现图像时所需的头信息进行解码。此外,从头信息分离并输出后段组件所使用的代码。将头信息中所包括的量化矩阵编码数据输入给量化矩阵解码单元206,并且再现一维差分矩阵。根据本实施例,通过使用图5a所示的解码表,对量化矩阵的各元素的差值进行解码,并且再现差分矩阵。然而,解码表不局限于图5a所示的表。将再现得到的差分矩阵输入给量化矩阵逆扫描单元208。

量化矩阵逆扫描单元208根据输入的差分矩阵中的各差值来计算量化矩阵的各元素,进行逆扫描,并且再现二维量化矩阵。将再现得到的量化矩阵输入并存储在量化矩阵存储单元207中。此外,在解码/分离单元201所分离得到的代码中,将量化系数编码数据输入给系数解码单元202。此外,系数解码单元202针对各变换块对量化系数编码数据进行解码,再现量化系数,并且将再现得到的量化系数输出给逆量化单元203。

逆量化单元203输入系数解码单元202再现得到的量化系数和存储在量化矩阵存储单元207中的量化矩阵。然后,逆量化单元203通过使用量化矩阵进行逆量化,再现变换系数,并且将再现得到的变换系数输出给逆变换单元204。逆变换单元204通过使用输入的变换系数进行作为图1所示的变换单元103所进行的操作的逆操作的逆正交变换,再现预测误差,并且将预测误差输出给预测重构单元205。预测重构单元205基于输入的预测误差并且使用已完成解码的周围像素的数据来进行预测,再现以块为单位的图像数据,并且输出图像数据。

图10是示出根据第二典型实施例的图像解码设备的图像解码处理的流程图。

在步骤s1001,解码/分离单元201解码头信息,并且分离要输出至后段组件的代码。在步骤s1002,量化矩阵解码单元206使用图5a所示的解码表来对头信息中所包括的量化矩阵编码数据进行解码,并且生成量化矩阵再现时所需的差分矩阵。在步骤s1003,量化矩阵逆扫描单元208根据步骤s1002所生成的差分矩阵来计算量化矩阵的各元素,进行逆扫描,并且再现二维量化矩阵。

在步骤s1004,系数解码单元202以变换块为单位对量化系数编码数据进行解码,并且再现量化系数。在步骤s1005,逆量化单元203通过使用步骤s1003所再现得到的量化矩阵对步骤s1004所再现得到的量化系数进行逆量化,并且再现变换系数。在步骤s1006,逆变换单元204对步骤s1005所再现得到的变换系数进行逆正交变换,并且再现预测误差。在步骤s1007,图像解码设备判断是否完成了块中的所有变换块的解码。如果完成了所有变换块的解码(步骤s1007为“是”),则处理进入步骤s1008。如果尚未完成所有变换块的解码(步骤s1007为“否”),则处理返回至步骤s1004,并且处理下一变换块。

在步骤s1008,预测重构单元205使用已解码的周围像素进行预测,将该结果与步骤s1006所再现得到的预测误差相加,并且再现块的解码图像。在步骤s1009,图像解码设备判断是否完成了所有块的解码。如果完成了所有块的解码(步骤s1009为“是”),则停止所有操作,并且结束该处理。如果尚未完成所有块的解码(步骤s1009为“否”),则处理返回至步骤s1003,并且处理下一个块。

根据上述处理,进行根据第一典型实施例所生成的量化矩阵的代码量较少的比特流的解码,并且可以获得再现图像。此外,如第一典型实施例所述,块的大小、变换块的大小和块的形状不局限于上述例子。

此外,根据本实施例,使用图5a所示的解码表来对量化矩阵的各元素的差值进行解码。然而,解码表不局限于这一例子。

此外,在比特流的一个序列包含若干量化矩阵编码数据的情况下,可以更新量化矩阵。在这种情况下,解码/分离单元201检测量化矩阵编码数据,通过量化矩阵解码单元206来对量化矩阵编码数据进行解码,并且生成差分矩阵。通过量化矩阵逆扫描单元208来逆扫描所生成的差分矩阵,并且再现量化矩阵。然后,通过量化矩阵的再现数据来重写存储在量化矩阵存储单元207中的量化矩阵的相应数据。在这种情况下,可以重写整个量化矩阵。可选地,通过确定要重写的部分,可以重写量化矩阵的一部分。

根据本实施例,尽管在累积了一帧的编码数据之后进行该处理,但是本发明不局限于这一例子。例如,可以以块为单位或者以片为单位来进行数据输入。片包括多个块。此外,代替块,可以输入被分割成固定长度的包的数据。

此外,根据本实施例,尽管在生成了差分矩阵之后再现量化矩阵,但是量化矩阵解码单元206可以在对差值进行解码之后,通过使用预定扫描方法直接再现量化矩阵。在这种情况下,不需要量化矩阵逆扫描单元208。

此外,如果根据变换系数的扫描方法要使用不同的量化矩阵,则可以根据变换系数的扫描方法来确定量化矩阵的各元素的扫描方法。

图3是示出根据本发明第三典型实施例的图像编码设备的框图。在图3中,以相同附图标记表示与第一典型实施例的图1中的组件相同的组件,并且不再重复针对这些组件的说明。

扫描控制信息生成单元321生成作为各量化矩阵的扫描方法的信息的量化矩阵扫描方法信息。量化矩阵扫描单元309基于扫描控制信息生成单元321所生成的量化矩阵扫描方法信息来确定扫描方法,扫描存储在量化矩阵存储单元106中的量化矩阵,计算差值,并且生成差分矩阵。

如图1中的整合编码单元108所进行的一样,整合编码单元308生成头信息和与预测和变换相关联的代码。整合编码单元308与整合编码单元108的不同在于:整合编码单元308输入扫描控制信息生成单元321所生成量化矩阵扫描方法信息,并且对该信息进行编码。

现在将说明上述图像编码设备所进行的图像编码操作。

扫描控制信息生成单元321生成表示各量化矩阵的扫描方法和差值的计算方法的量化矩阵扫描方法信息。根据本实施例,如果量化矩阵扫描方法信息是0,则使用图13a所示的扫描方法来扫描量化矩阵。然后,针对所有元素计算各元素和按照扫描顺序在其之前的元素之间的差值,并且生成差分矩阵。此外,如果量化矩阵扫描方法信息是1,则使用图13b所示的扫描方法来扫描量化矩阵。然后,针对所有元素计算各元素和按照扫描顺序在其之前的元素之间的差值,并且生成差分矩阵。此外,如果量化矩阵扫描方法信息是2,则使用图13d所示的扫描方法来扫描量化矩阵。然后,针对所有元素计算各元素和按照扫描顺序在其之前的元素之间的差值,并且生成差分矩阵。量化矩阵的各元素的扫描方法和差计算方法不局限于上述例子,并且可以使用除参考图13a、13b和13d所述的方法以外的方法。例如,可以使用图13c和13e所示的差计算方法。此外,量化矩阵扫描方法信息和量化矩阵的扫描方法的组合不局限于上述例子。量化矩阵扫描方法信息的生成方法没有限制。因此,该信息可以是用户所输入的值、作为固定值所指定的值、或者根据存储在量化矩阵存储单元106中的量化矩阵的特性所计算出的值。将所生成的量化矩阵扫描方法信息输入给量化矩阵扫描单元309和整合编码单元308。

基于输入的量化矩阵扫描方法信息,量化矩阵扫描单元309扫描存储在量化矩阵存储单元106中的各量化矩阵,计算差值,生成差分矩阵,并且将差分矩阵输出给量化矩阵编码单元107。

整合编码单元308对扫描控制信息生成单元321所生成的量化矩阵扫描方法信息进行编码,生成量化矩阵扫描方法信息代码,并且通过将所生成的量化矩阵扫描方法信息代码实现在头信息中来输出该量化矩阵扫描方法信息代码。尽管编码方法没有限制,但是可以使用霍夫曼编码和算术编码。图8b示出包括量化矩阵扫描方法信息代码的比特流的例子。量化矩阵扫描方法信息代码可以包括在序列头或者图片头中。然而,量化矩阵扫描方法信息代码需要存在于各量化矩阵编码数据之前。

图11示出根据第三典型实施例的图像编码设备的图像编码处理的流程图。在图11中,以相同附图标记表示与第一典型实施例的图9所示的步骤相同的步骤,并且不再重复针对这些步骤的说明。

在步骤s1151,扫描控制信息生成单元321确定步骤s1152中要进行的量化矩阵扫描方法,并且生成量化矩阵扫描方法信息。在步骤s1152,量化矩阵扫描单元309通过使用步骤s1151所确定的量化矩阵扫描方法对步骤s901所生成的量化矩阵进行扫描,来计算差值,并且生成差分矩阵。在步骤s1153,量化矩阵编码单元107对步骤s1152所生成的差分矩阵进行编码。在步骤s1154,量化矩阵编码单元107对量化矩阵扫描方法信息进行编码,生成量化矩阵扫描方法信息代码,如实现其它代码一样将所生成的量化矩阵扫描方法信息代码实现在头部分中,并且输出该代码。

根据上述结构和操作,通过最佳扫描方法来扫描各量化矩阵,并且可以生成量化矩阵的代码量较少的比特流。此外,在根据变换系数的扫描方法要使用不同的量化矩阵的情况下,可以根据变换系数的扫描方法来确定量化矩阵的各元素的扫描方法。在要使用不同的扫描方法的情况下,可以对表示这一方法的标志和所要使用的量化矩阵扫描方法信息进行编码。

此外,根据本实施例,尽管说明了使用一个量化矩阵的情况,但是量化矩阵不一定是一个。例如,如果对于亮度/色度设置不同的量化矩阵,则可以使用量化矩阵扫描方法的共通的编码信息,或者可以设置、编码和使用不同的扫描方法。

此外,扫描控制信息生成单元321可以通过参考量化矩阵存储单元106所生成的量化矩阵来生成扫描方法。此外,如上所述,如果预先准备了多个扫描方法,则可以从这些扫描方法中选择想要的扫描方法,并且使用该方法作为量化矩阵扫描信息。此外,可以对所扫描的元素的顺序进行编码。对于图13a中的量化矩阵,可以编码并发送诸如1、2、6、7、3、5、8、13、4、9、12、14、10、11、15、16等的顺序。

图4是示出根据本发明第四典型实施例的图像解码设备的框图。在图4中,以相同附图标记表示与第二典型实施例的图2中的组件相同的组件,并且不再重复针对这些组件的说明。根据本实施例,将说明针对第三典型实施例中所生成的比特流的解码。

解码/分离单元401对所输入的比特流的头信息进行解码,从该比特流分离所需代码,并且将代码输出给后段组件。解码/分离单元401与图2所示的解码/分离单元201的不同在于:从比特流的头信息分离量化矩阵扫描方法信息代码,并且将其输出至后段组件。

扫描控制信息解码单元421对解码/分离单元401所分离得到的量化矩阵扫描方法信息代码进行解码,并且再现量化矩阵扫描方法信息。量化矩阵逆扫描单元408通过基于该量化矩阵扫描方法信息对量化矩阵解码单元206所生成的差分矩阵进行逆扫描,来再现量化矩阵。

现在将说明上述图像解码设备的图像解码操作。

在图4中,将所输入的一帧的比特流输入给解码/分离单元401,并且对再现图像时所需的头信息进行解码。此外,分离并输出后段组件所使用的代码。将头信息中所包括的量化矩阵扫描方法信息代码输入给扫描控制信息解码单元421,并且再现量化矩阵扫描方法信息。然后,将再现得到的量化矩阵扫描方法信息输入给量化矩阵逆扫描单元408。另一方面,将头信息中所包括的量化矩阵编码数据输入给量化矩阵解码单元206。

量化矩阵解码单元206对量化矩阵编码数据进行解码,并且再现差分矩阵。将再现得到的差分矩阵输入给量化矩阵逆扫描单元408。量化矩阵逆扫描单元408基于量化矩阵扫描方法信息,对从量化矩阵解码单元206所输入的差分矩阵进行逆扫描,以元素为单位相加差,并且再现量化矩阵。将再现得到的量化矩阵存储在量化矩阵存储单元207中。

图12是示出根据第四典型实施例的图像解码设备的图像解码处理的流程图。在图12中,以相同的附图标记表示与第二典型实施例的图10中的步骤相同的步骤,并且不再重复针对这些步骤的说明。

在步骤s1001,解码/分离单元401对头信息进行解码。在步骤s1251,扫描控制信息解码单元421对头信息中所包括的量化矩阵扫描方法信息代码进行解码,并且再现量化矩阵扫描方法信息。在步骤s1253,量化矩阵逆扫描单元408通过使用步骤s1251所再现得到的量化矩阵的扫描方法的信息,对步骤s1252所再现得到的差分矩阵进行逆扫描,并且再现量化矩阵。

根据上述结构和操作,通过最佳扫描方法扫描了根据第三典型实施例所生成的各量化矩阵,对量化矩阵的代码量较少的比特流进行了解码,并且获得了再现图像。

此外,如果根据正交变换系数的扫描方法要使用不同的量化矩阵,则可以根据变换系数的扫描方法来确定量化矩阵的各元素的扫描方法。如果要使用不同的扫描方法,则可以对表示这一方法的标志和所要使用的量化矩阵扫描方法信息进行编码。

根据本发明的第五典型实施例,图像编码设备的结构与图1所示的第一典型实施例的图像编码设备相同。然而,量化矩阵扫描单元109的操作有所不同。由于除量化矩阵扫描单元109的处理以外的处理与第一典型实施例的处理相同,因而不再重复对这些处理的说明。

量化矩阵扫描单元109从量化矩阵存储单元106依次读出二维形状的量化矩阵,计算各元素与其预测值之间的差,扫描所计算出的差,并且将所获得的结果配置成一维矩阵。该差的计算方法不同于第一典型实施例的量化矩阵扫描单元109所使用的方法。

根据本实施例,如图16c所示,通过参考左侧和上方的元素来计算预测值,并且通过图16a所示的水平扫描来扫描所计算出的预测值。然后,将所获得的结果配置成一维矩阵。关于预测值的计算方法,尽管根据本实施例使用左侧和上方元素中的具有较大值的元素作为预测值,但是本发明不局限于这一例子。例如,可以使用较小值作为预测值,或者可以使用这两个元素的平均值作为预测值。关于针对矩阵的第一行中的各元素的编码,考虑左侧的元素作为预测值。此外,关于针对矩阵的最左列中的各元素的编码,考虑上方的元素作为预测值。此外,通过计算第一个元素的值和预定初始值之间的差来获得与矩阵的第一个元素相对应的差值。根据本实施例,尽管将初始值设置为8,但是可以使用任意值,或者可以使用第一个元素自身的值。此外,扫描方法不局限于水平扫描。换句话说,可以使用诸如图16b所示的垂直扫描等的不同的扫描方法,只要其是单向扫描方法即可。

除步骤s902的操作以外,根据本实施例的图像编码处理的流程图与根据图9所示的第一典型实施例的流程图相同。由于除步骤s902所进行的操作以外的操作与第一典型实施例中所述的操作相同,因而不再重复针对这些操作的说明。

在步骤s902,量化矩阵扫描单元109计算步骤s901所生成的量化矩阵的各元素的差,扫描所计算出的差,并且生成差分矩阵。本实施例说明了在步骤s901中生成图17a所示的量化矩阵的情况。使用图16c示出的所生成的量化矩阵的上方和左侧的元素中的最大值作为预测值,计算出图17b所示的二维差值矩阵。然后,通过图16a所示的水平扫描来扫描所获得的差值矩阵,并且生成图17c所示的差分矩阵。在使用上方和左侧的元素的情况下,用于差值计算方法的值不局限于最大值,并且还可以使用最小值或者平均值。此外,扫描方法不局限于水平扫描,并且可以使用不同的扫描方法,只要其是单向扫描方法即可。

图15是通过如图16c所示使用上方和左侧的元素的最大值作为预测值来计算图17a所示的量化矩阵的差值、通过使用图16a所示的扫描方法来扫描该差值、并且使用图5a所示的编码表来对该差值进行编码所获得的表。图15中的差值的列示出了通过水平地扫描预测值和各元素之间的差值所获得的结果,其中,预测值是预定初始值(8)、或者左侧和上方的元素的最大值。该表中的值与图17c所示的差分矩阵的值相同。图15中的代码的列示出了通过使用图5a中的编码表来对差值进行编码所获得的代码,并且总共需要50位。这表示以小于图7所示的传统方法所需的68位的方式来编码量化矩阵。此外,这还小于第一典型实施例所需的60位。

根据上述结构和操作,可以生成对于量化矩阵需要较少位的比特流。

根据本实施例,尽管通过使用左侧和上方的元素来计算预测值,但是可选地,还可以例如通过使用左上元素来计算预测值。此外,还可以使用除这些元素以外的元素。在这种情况下,除最大值、最小值和平均值以外,可选地,还可以使用中值。

根据本发明的第六典型实施例,图像解码设备具有与图2所示的第二典型实施例的图像解码设备相同的结构。然而,量化矩阵逆扫描单元208的操作有所不同。由于除量化矩阵逆扫描单元208所进行的操作以外,本实施例的处理与第二典型实施例的处理相同,因而不再重复针对相同处理的说明。根据本实施例,将说明针对根据第五典型实施例所生成的比特流的解码。

量化矩阵逆扫描单元208进行根据第五典型实施例的量化矩阵扫描单元109的逆操作。输入给量化矩阵逆扫描单元208的差分矩阵具有逆扫描的差值中的每一个,并且再现二维差值矩阵。此外,计算量化矩阵的各元素,并且再现二维量化矩阵。根据本实施例,使用图16a所示的水平扫描来逆扫描差分矩阵,并且再现二维差值矩阵。此外,根据图16c所示的左侧和上方的元素以及差值来计算量化矩阵的各元素,并且再现二维量化矩阵。逆扫描用的方法不局限于水平扫描,并且还可以使用图16b所示的垂直扫描。换句话说,可以使用任何扫描方法,只要其是单向扫描方法即可。对于量化矩阵的各元素的计算方法,根据本实施例,将左侧和上方的元素中具有较大值的元素确定为预测值,并且考虑预测值和差值的总和作为量化矩阵的各元素的值。然而,各元素的预测值不局限于这一值。例如,可以采用左侧和上方的元素中的较小值或者这两个元素的平均值作为预测值。然后,将预测值和差值的总和确定为量化矩阵的各元素的值。此外,对于矩阵的上端行的元素的再现,使用这些元素的左侧的元素作为预测值。此外,对于矩阵的左端的元素的再现,使用这些元素的上方的元素作为预测值。然后,将预测值和差值的总和确定为各元素的值。此外,对于矩阵的第一个元素的再现,使用预定初始值作为预测值。然后,将预测值和差值的总和确定为矩阵的第一个元素的值。根据本实施例,尽管将初始值设置为8,但是可以使用任意值作为初始值,或者可以对第一个元素自身的值进行编码。此外,扫描方法不局限于水平扫描。换句话说,可以使用诸如图16b所示的垂直扫描等的不同的扫描方法,只要其是单向扫描方法即可。

除步骤s1003的操作以外,根据本实施例的图像解码处理的流程图与图10所示的第二典型实施例的流程图相同。因此,除步骤s1003以外的操作与第二典型实施例的操作相同,并且不再重复针对这些操作的说明。

在步骤s1003,量化矩阵逆扫描单元208通过对根据步骤s1002所生成的差分矩阵所获得的各差值进行逆扫描,来再现二维差值矩阵。此外,通过计算量化矩阵的各元素来再现二维量化矩阵。根据本实施例,在说明该处理时,使用图17c所示的差分矩阵。通过图16a所示的水平扫描来逆扫描差分矩阵,并且计算出图17b所示的二维差值矩阵。然后,将上方和左侧的元素中的较大值确定为预测值。此外,将各预测值和各差值的总和设置为量化矩阵的各元素的值。逆扫描方法不局限于水平扫描,只要其是单向逆扫描方法即可。此外,可选地,在获得量化矩阵的各元素的再现所使用的各元素的值时,可以使用左侧和上方的元素中具有较小值的元素、或者元素的平均值作为预测值。

根据上述结构和操作,通过对根据第五典型实施例所生成的量化矩阵的代码量较少的比特流进行解码,可以获得再现图像

根据本实施例,尽管通过使用左侧和上方的元素来计算预测值,但是可选地,还可以例如通过使用左上的元素来计算预测值。此外,还可以使用除这些元素以外的元素。在这种情况下,除最大值、最小值和平均值外,可选地,还可以使用中值。

根据本发明的第七典型实施例,图像编码设备的结构与图1所示的第一典型实施例的图像编码设备相同。然而,量化矩阵扫描单元109的操作有所不同。由于除量化矩阵扫描单元109的处理以外的处理与第一典型实施例的处理相同,因而不再重复针对这些处理的说明。

量化矩阵扫描单元109从量化矩阵存储单元106依次读出二维形状的量化矩阵,计算各元素和预测值之间的差,扫描所计算出的差,并且将所获得的结果配置成一维矩阵。该差值的计算方法不同于第一典型实施例的量化矩阵扫描单元109所使用的方法。

根据本实施例,使用图18a所示的对角单向扫描,并且针对各元素计算该元素与按照扫描顺序在其之前的元素之间的差。然而,扫描方法不局限于这一例子。例如,可选地,还可以使用图18b所示的对角单向扫描。图18b中的扫描方向和图18a中的扫描方向对于对角线对称。换句话说,可以使用任何扫描方法,只要其是单向扫描方法即可。此外,在本实施例中附加地使用8×8像素的变换块大小的情况下,使用与图18c所示的8×8像素变换块相对应的对角方向的单向扫描。

除步骤s902的操作以外,根据本实施例的图像编码处理的流程图与图9所示的根据第一典型实施例的流程图相同。由于除步骤s902所进行的操作以外的操作与第一典型实施例中所述的操作相同,因而不再重复针对这些操作的说明。

在步骤s902,量化矩阵扫描单元109对步骤s901所生成的量化矩阵进行扫描。然后,计算各元素的差,并且生成差分矩阵。根据本实施例,通过图18a所示的扫描方法来扫描图19a所示的量化矩阵,并且生成图19b所示的差分矩阵。然而,量化矩阵和扫描方法不局限于这些例子。

根据上述结构和操作,对于代替图13a所示的折线扫描方法而使用图18a所示的对角扫描来对量化系数进行编码的视频编码方法,可以在通过共用扫描方法而节省所使用的存储器的同时,以相同效率或更高效率来生成比特流。

近年来,来自iso/iec和itu-t的专家创立了jct-vc(视频编码联合组),以开发继h.264之后的新的国际视频编码标准。根据提交至jct-vc的投稿jctvc-j0150,报告了如下内容:通过采用相当于本实施例的方法的对角扫描方法进行量化矩阵的编码,确认了同等或略提高的效率。此外,由于在jct-vc的标准化下的高效视频编码(hevc)中不使用折线扫描,因而在该投稿中还报告了通过共用扫描方法的存储器节省效果。<http://phenix.int-evry.fr/jct/doc_end_user/documents/10_stockholm/wg11/>

此外,如图20a~20d所示,如果将量化矩阵分割成多个小矩阵,则可以通过单向扫描来扫描这些小矩阵。这样,可以将4×4量化矩阵的扫描方法应用于大小更大的量化矩阵,并且可以减少存储扫描顺序信息时所需的存储器。

根据本发明的第八典型实施例,图像解码设备具有与图2所示的第二典型实施例的图像解码设备相同的结构。然而,量化矩阵逆扫描单元208的操作有所不同。由于除量化矩阵逆扫描单元208所进行的操作以外,本实施例的处理与第二典型实施例的处理相同,因而不再重复针对相同处理的说明。根据本实施例,将说明针对根据第七典型实施例所生成的比特流的解码。

量化矩阵逆扫描单元208进行根据第七典型实施例的量化矩阵扫描单元109的逆操作。输入给量化矩阵逆扫描单元208的差分矩阵具有根据各差值所计算出的量化矩阵的各元素。然后,对所计算出的元素进行逆扫描,并且再现二维量化矩阵。

根据本实施例,根据差分矩阵的各差值来计算量化矩阵的各元素,并且使用图18a所示的扫描方法来逆扫描所获得的元素,以再现二维量化矩阵。逆扫描方法不局限于图18a所示的方法,并且可选地可以是图18b所示的对角单向扫描。图18b中的扫描方向和图18a中的扫描方向相对于对角线对称。换句话说,可以使用任何扫描方法,只要是单向扫描方法即可。

除步骤s1003的操作以外,根据本实施例的图像解码处理的流程图与图10所示的第二典型实施例的流程图相同。因此,除步骤s1003以外的操作与第二典型实施例的操作相同,并且不再重复针对这些操作的说明。

在步骤s1003,量化矩阵逆扫描单元208通过根据步骤s1002所生成的差分矩阵计算量化矩阵的各元素、并且对各元素进行逆扫描,来再现二维量化矩阵。根据本实施例,根据图19b所示的差分矩阵来计算量化矩阵的各元素,并且使用图18a所示的逆扫描方法来逆扫描所计算出的各元素。结果,再现了图19a所示的量化矩阵。差分矩阵和逆扫描方法不局限于这些例子。

根据上述结构和操作,可以通过进行在由于共用扫描方法而节省所使用存储器的同时以第七典型实施例的相同或略好的编码效率所生成的比特流的解码,来获得再现图像。

根据上述典型实施例,通过硬件组件实现图1~4所示的各处理单元。然而,可以通过计算机可执行程序进行图1~4所示的各处理单元所进行的处理。

图14是示出可用于根据上述典型实施例的图像处理设备的计算机的硬件结构的例子的框图。

中央处理单元(cpu)1401根据存储在随机存取存储器(ram)1402或只读存储器(rom)1403中的计算机程序或数据来控制计算机整体。此外,cpu1401执行根据上述典型实施例的图像处理设备所进行的上述处理。换句话说,cpu1401用作图1~4所示的各处理单元。

ram1402包括用于临时存储从外部存储装置1406所装载的计算机程序或数据、或者经由接口(i/f)1407从外部所获取的数据的区域。此外,ram1402包括cpu1401执行各种类型的处理时所使用的工作区域。换句话说,ram1402可被分配作为帧存储器,或者可以任意提供其它各种区域。

将计算机的设置数据和诸如引导程序等的程序存储在rom1403中。操作单元1404包括键盘或鼠标。计算机的用户通过操作操作单元1404,向cpu1401输入各种指示。输出单元1405输出cpu1401所执行的处理的结果。输出单元1405例如是诸如液晶显示器等的显示装置,并且能够显示该处理结果。

外部存储装置1406是以硬盘驱动器装置为代表的大容量信息存储单元。将cpu1401实现图1~4所示的各单元的功能时所使用的操作系统(os)和计算机程序存储在外部存储装置1406中。此外,可以将作为处理对象的各图像数据存储在外部存储装置1406中。

存储在外部存储装置1406中的计算机程序或数据根据cpu1401的控制而适当装载进ram1402中,并且由cpu1401进行处理。可以将诸如局域网(lan)或因特网等的网络以及诸如投影设备或显示装置等的其它设备连接至i/f1407,从而使得计算机可以经由i/f1407接收和发送各种信息。总线1408连接上述各单元。

主要通过cpu1401进行上述配置所实现的操作。通过cpu1401控制参考上述流程图所述的处理。

当将用于存储实现上述功能的计算机程序的代码的存储介质提供给系统、并且该系统读出并执行计算机程序的代码时,可以实现本发明。在这种情况下,从存储介质自身读出的程序代码实现了上述典型实施例的功能,并且用于存储程序代码的存储介质构成了本发明。此外,下面的情况也包括在本发明中:运行在计算机上的os等基于程序代码的指示执行部分或全部实际处理,从而实现上述典型实施例的功能。

此外,可以通过下面的配置实现本发明。具体地,将从存储介质读出的计算机程序代码写入设置在插入计算机的功能扩展卡或者与计算机连接的功能扩展单元中的存储器中,并且设置在功能扩展卡或者功能扩展单元中的cpu基于来自计算机程序代码的指示来进行整个或部分实际处理,以实现上述典型实施例的功能。上述配置也包括在本发明中。

当将本发明应用于上述存储介质时,将与上述流程图相对应的计算机程序的代码存储在存储介质中。

尽管已经参考典型实施例说明了本发明,但是应该理解,本发明不局限于所公开的典型实施例。所附权利要求书的范围符合最宽的解释,以包含所有修改、等同结构和功能。

本申请要求于2011年11月7日提交的日本专利申请2011-243942、2012年1月18日提交的日本专利申请2012-008199、2012年3月14日提交的日本专利申请2012-057424和2012年4月16日提交的日本专利申请2012-093113的优先权,上述所有专利申请的全部内容通过引用包含于此。

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