图像编码装置、方法及计算机程序的制作方法

文档序号:7970891阅读:98来源:国知局
专利名称:图像编码装置、方法及计算机程序的制作方法
技术领域
本发明涉及编码运动画面数据的图像编码装置,更具体地说,涉及一种根据H.264/AVC标准的编码装置。
背景技术
随着数字技术的发展,编码图像的技术也进步并发展起来。然而,图像数据(特别是运动画面数据)的数据量很大。因此,当数字图像数据被编码然后被广播或者通过诸如DVD之类的介质传输时,数据量变得相当大。特别是近来已经使用的高清晰度(HD)广播,但是比起常规标准清晰度(SD)图像,HD图像的数据量要大6倍。
随着数字图像技术的发展,为了解决数据量增加的问题,已经把数据压缩技术用于数字图像数据并为数字图像数据发展了数据压缩技术。发展技术的一个例子是压缩技术,特别是利用图像数据的特性压缩图像数据的技术。此外,由于近来计算机和其它设备的数据处理能力有了进步,在压缩技术中已经使用了一些复杂的算术运算,所以图像数据的压缩率已经显著增加了。例如,MPEG-2标准是一种卫星和陆地数字HD广播中所使用的压缩技术。在卫星数字HD广播中,使用MPEG-2方法可以把图像数据压缩为大约1∶30。
AVC/H.264标准是一种进一步开发出来的图像压缩技术。AVC/H.264标准可以实现比MPEG-2标准高2倍的压缩率。AVC/H.264使用并结合了各种压缩技术来实现了这样一个高的压缩率。结果,算术运算量也显著增加了。
AVC/H.264标准中使用的一种压缩技术是熵编码(可变长编码)。作为熵编码来说,有2种不同的方法,分别称作基于上下文的自适应可变长编码(CAVLC)和基于上下文的自适应二进制算术编码(CABAC)。根据CAVLC方法,在编码DCT系数时,参照各可变长编码表,在与扫描方向相反的方向上分别编码表示连续0的长度的Run符号和Level符号。
另一方面,CABAC是一种根据一个编码的出现概率来对该编码进行编码的方法。出现概率是随时间改变的,从而自适应地改变出现概率的设置。这样的方法通常称作算术编码。在CABAC中,除这种普通的算术编码外,还使用另一种技术来把各个上下文分配给各个编码并改变各个上下文的出现概率。
CABAC包括两个主要过程。第一过程称作二值化,通过二值化把将要编码的多值数据(语法)转换为二值数据。第二过程为计算转换后的二值数据的上下文,然后根据计算的上下文对二值数据进行算术编码。
在算术编码中,计算编码中将要使用的二值数据的每一比特的出现概率,并同时更新该出现概率。由于每一比特都进行该过程,因此运算速度通常为每时钟一比特。此外,由于每一比特的出现概率都是自适应改变的,并且取决于该比特的值而更新该出现概率,因此在编码之前,难以知道输出编码数据的准确量。
另外,在AVC/H.264标准中,在格式为4-2-0和比特深度为8时,一个宏块的最大编码量被限定为3200比特。当编码一个宏块并且得到的编码量大于3200比特时,必须修改编码该宏块的条件并在该修改的条件下再次编码该宏块。因此,有另外一种方法,该方法把宏块类型(mb_type)当作I_PCM并存储为比特流,I_PCM数据代替编码数据。这里,在实际对数据进行编码并且输出编码数据之前,同样难以准确地知道由CABAC获得的输出编码量。因此,在CABAC之后,需要判断编码是否满足宏块的最大编码量的限制。
另一方面,例如还有在日本未决专利申请No.2004-135251中公开的另外一种方法。利用该方法,监测输入给算术编码电路的数据量。然后,如果每一定部分的输入数据量超过预定量,则不编码该输入数据,但是把以不同的参数编码的数据或非压缩的数据当作输入数据。
图1为示出常规图像编码装置的功能结构的框图。
图1中示出的图像编码装置50为编码输入的图像数据并把编码数据以比特流输出的常规图像编码装置的一个例子。下面说明图像编码装置50执行的处理。
需要注意,该图像数据是运动画面数据,其中包括实质性数据,例如运动画面中包含的宏块的数据;控制信息,例如宏块类型(mb_type);其它属性信息,等等。
在接收到将要编码的运动画面的数据时,把数据传递给运动预测单元51、画面内预测单元52和I_PCM数据缓冲器53。运动预测单元51从另一幅画面检测与将要编码的块类似的块,然后获取该将要编码的块和该检测到的块之间的差分图像,并输出该差分图像和运动矢量。画面内预测单元52使用相邻块的图像预测该画面内将要编码的块的图像,然后获取该将要编码的块和该预测块之间的差分图像,并输出该差分图像和表示预测方法的信息。另外,I_PCM数据缓冲器53是存储I_PCM数据的缓冲器。I_PCM数据是输入运动画面图像的原始数据。
输入选择单元54选择来自运动预测单元51的输出或来自画面内预测单元52的输出,并把选择的数据传给正交变换单元55。正交变换单元55执行为一种正交变换的离散余弦变换(DCT)。正交变换单元55对获取的数据进行DCT并把获得的DCT系数提供给量化DCT系数的量化单元56。量化后的DCT系数被传递给二值化器57。在二值化器57中,量化后的DCT系数被转换为二值数据,然后由CABAC编码器59编码。编码数据通过输出缓冲器60被传递给输出选择单元61。
这里,I_PCM判定单元58监测上述处理中从二值化器57输出的数据量,并且能够根据二值化数据的量判定将要被以比特流输出的数据将是由CABAC编码器59编码的数据,还是I_PCM数据缓冲器53中存储的I_PCM数据。可选地,I_PCM判定单元58监测从CABAC编码器59输出的数据量,并且能够根据作为实际的编码数据量的该编码量是否超过3200比特来判定将要被以比特流输出的数据将是I_PCM数据还是编码数据。输出选择单元61根据I_PCM判定单元58的判定结果输出编码数据或I_PCM数据。
这里,根据AVC/H.264,目标宏块之前的宏块的数据被用于画面内预测、运动预测,等等。这样,与上述常规技术相同,在CABAC之后判断宏块是否满足最大编码量限制时,直到完成该宏块的CABAC,才能开始下一宏块的画面内预测和运动预测。

发明内容
为了解决上述问题,本发明的一个目的是提供一种图像编码装置,该装置对二值化后的数据进行熵编码,从而以更高速度处理图像数据。
根据本发明的一种图像编码装置,包括对图像数据进行编码的图像编码单元;二值化所述编码的图像数据并对所述二值化数据进行熵编码的熵编码单元;预测单元,该预测单元获取一预测值,该预测值对应于在预定数据单位基础上假定对该图像数据进行了熵编码后的该图像数据的预测编码量,该预测单元在没有进行实际二值化的情况下,并且基于从该图像编码单元获取的关于该图像数据的信息来获取该预测值;判定单元,该判定单元把该预测值与预定阈值比较,并且当该预测值大于该阈值时,判定输出I_PCM数据,所述I_PCM数据为没有被该熵编码单元熵编码的图像数据;输出单元,该输出单元在该判定单元判定输出I_PCM数据时输出所述I_PCM数据,并且在该判定单元判定不输出I_PCM数据时输出被熵编码的数据。
利用上述结构,该图像编码装置在预定数据单位基础上,在二值化将被编码的数据之前,判定将被输出的数据是否将是I_PCM数据。也就是说,在有关熵编码的处理之前进行上述判定,因而有可能加速图像数据的处理。
根据本发明,在熵编码的二值化之前,做出是否将要输出I_PCM数据的判定。从而,可以加速图像数据的处理。例如,在该预定数据单位为一个宏块时,可以在当前宏块的正交变换和量化之后,立即进行下一宏块的画面内预测和运动预测。如此,一个宏块一个宏块的流水线处理变得容易了并且可以加速该处理。
在此,将2005年12月9日递交的日本专利申请2005-357039的公开内容,包括说明书、附图和权利要求,整个合并进来作为参考。


本发明的这些和其它目标、优点和特征将从下面结合示出本发明的具体实施例的附图的本发明的说明中变得明白。附图中图1为示出常规图像编码装置的功能结构的框图;图2为示出根据本发明实施方式的图像编码装置的基本功能结构的示意性框图;图3为示出图1中示出的图像编码装置的基本功能结构的另一例子的示意性框图;图4为示出根据本发明实施方式的图像编码装置的功能结构的第一实施例的框图;图5为示出根据本发明实施方式的图像编码装置的功能结构的第二实施例的框图;图6为把量化的系数值转换为比特数中所使用的转换表的一个例子;图7为示出根据本发明实施方式的图像编码装置的功能结构的第三实施例的框图;图8为示出根据本发明实施方式的图像编码装置的功能结构的第四实施例的框图;图9为示出根据本发明实施方式的图像编码装置的功能结构的第五实施例的框图;图10为示出根据本发明实施方式的图像编码装置的功能结构的第六实施例的框图;图11为示出根据本发明实施方式的图像编码装置的功能结构的第七实施例的框图;图12为示出根据本发明实施方式的图像编码装置的功能结构的第八实施例的框图;图13为示出根据本发明实施方式的图像编码装置的功能结构的第九实施例的示意性框图;图14A、14B和14C为说明将被编码宏块的运动预测处理效率的一个例子的图;和图15为包括mvd计算的处理的时间图。
具体实施例方式
下面参照附图描述根据本发明的实施方式。
图2为示出根据本发明实施方式的图像编码装置的功能结构的示意性框图。首先,将参照图2和图3说明根据本发明实施方式的图像编码装置的基本结构和基本处理。然后,将参照从图4开始的其它

该结构和处理的具体实施例。
图2中示出的图像编码装置1是一种对图像数据进行编码并以比特流输出所获得的编码数据的装置。
如图2中所示,图像编码装置1具有图像编码单元10、I_PCM数据缓冲器4、输出选择单元8、输出单元9、编码量预测单元20、I_PCM判定单元30和熵编码单元40。
图像编码单元10是编码输入的图像数据的处理单元。图像编码单元10具有运动预测单元2、画面内预测单元3、输入选择单元5、正交变换单元6和量化单元7。
熵编码单元40是对从图像编码单元10获取的编码数据进行CABAC处理的处理单元。熵编码单元40具有二值化器41和CABAC编码器42。
需要注意,为了简化图,图2中没有示出图像编码装置原来就有的其它单元,如用于逆量化、逆正交变换等的单元。
在图像编码装置1接收将被编码的图像数据时,这些数据被传递给运动预测单元2、画面内预测单元3和I_PCM数据缓冲器4。这意味着I_PCM数据缓冲器4把画面的原始数据保存为I_PCM数据。输入选择单元5选择来自运动预测单元2的输出或来自画面内预测单元3的输出,并把选择的输出传递给进行DCT处理的正交变换单元6。正交变换单元6向获取的数据进行DCT并把获得的DCT系数提供给量化单元7。量化单元7量化DCT系数。
上述处理与描述的常规图像编码装置的处理相同。然而,根据本发明实施方式的图像编码装置1与常规图像编码装置的不同之处在于,编码量预测单元20在实际CABAC处理之前预测每个宏块的CABAC编码量。预测量的值在下文中称作“预测值”。利用图像编码单元10编码的数据的值,例如从量化单元7输出的量化的DCT系数,来计算预测值。
这里,提供给编码量预测单元20的数据不限于量化单元7的输出,而是可以为能够用来预测CABAC编码量的任何数据。
图3为示出图2中示出的图像编码装置1的基本功能结构的另一例子的示意性框图。
图3的图像编码装置与图2的图像编码装置的不同之处在于,提供给编码量预测单元20的数据不是量化单元7的输出,而是输入选择单元5的输出。这是因为,输入选择单元5的输出被正交变换单元6、然后是量化单元7转换为输入选择单元5所特有的数据,所有两种情况下的结果是相同的。然而,这里需要根据不同情况,换句话说,根据是提供输入选择单元5的输出或是提供量化单元7的输出,来改变编码量预测单元20的结构。
需要注意,输入选择单元5的输出也是根据本发明的图像编码装置编码的数据的一个例子。
参见图2,当然还要参见图3,I_PCM判定单元30保存着一个设置的关于编码量的阈值,并且把预测值与该阈值比较。下面将进一步详细地说明阈值和预测值的产生。
I_PCM判定单元30根据比较结果控制输出选择单元8。更具体地说,如果预测值大于阈值,I_PCM判定单元30指示输出选择单元8选择I_PCM数据缓冲器4中存储的I_PCM数据。另一方面,如果预测值等于或小于阈值,I_PCM判定单元30指示输出选择单元8选择从图像编码单元10输出的编码数据。
进一步地,IP_CM判定单元30把上述比较结果通知给运动预测单元2。在下面的第十和第十一实施例中将进一步说明运动预测单元2在接收到该通知后如何操作。
输出选择单元8接收到选择I_PCM数据的指示后,从I_PCM数据缓冲器4获取I_PCM数据并把获取的I_PCM数据传递给输出单元9。同时,输出选择单元8把指示“mb_type=I_PCM”的控制信息提供给熵编码单元40。
熵编码单元40使用二值化器41和CABAC编码器42仅对接收到的控制信息编码,并把获得的编码数据提供给输出单元9。
输出单元9把从输出选择单元8获取的I_PCM数据和从熵编码单元40获取的编码控制信息都以比特流向外输出。
另一方面,输出选择单元8接收到选择编码数据的指示后,从量化单元7获取量化的系数数据,并把获取的数据传递给熵编码单元40。
熵编码单元40使用二值化器41和CABAC编码器42对接收到的量化的系数数据编码,并把获得的编码数据提供给输出单元9。输出单元9把从熵编码单元40获取的编码数据以比特流向外输出。
这样,输出选择单元8和输出单元9可以基于I_PCM判定单元30的比较结果来输出数据,这是根据本发明的图像编码装置的特征功能。这个是否将以比特流输出I_PCM数据的判定在下文中称作“I_PCM判定”。
如上所述,根据本发明的图像编码装置1在熵编码之前,可以判定输出比特流将是I_PCM数据或者是被熵编码的编码数据。
因此,可以在较早的定时处进行这样的在一个宏块一个宏块上所做出的I_PCM判定。此外,在作为输入图像数据的原始数据的I_PCM数据被最终以比特流输出时,熵编码就不是必需的。因此,通过在较早定时处做出必需处理的判定可以提高处理速度。
下面对图像编码装置1的结构和处理的具体实施例的描述将集中于编码量预测单元20和I_PCM判定单元30。
(第一实施例)图4为示出图像编码装置1的功能结构的第一示例的框图。
如图4中所示,I_PCM判定单元30具有编码量比较单元31和阈值存储单元32。图4中示出的其它单元与图2中的单元相同。
阈值存储单元32是存储关于编码量的阈值的存储单元。该阈值是用于I_PCM判定的参考值。
编码量比较单元31是这样一个处理单元,它把(i)从编码量预测单元20接收到的每个宏块的编码量的预测值与(ii)阈值存储单元32中存储的阈值比较。作为比较结果,如果预测值大于阈值,那么编码量比较单元31指示输出选择单元8选择I_PCM数据。另一方面,如果预测值等于或小于阈值,则编码量比较单元31指示输出选择单元8选择从图像编码单元10获取的量化的系数和编码信息(下面将详细说明)。接下来对所选择的数据的处理与参照图2说明的处理相同。
需要注意,阈值存储单元32中存储的阈值例如为3200比特,该值是AVC/H.264标准定义的编码一个宏块可用的最大量(下文中称作“最大编码量”)。因此,如果在图像编码装置1中,一个宏块的编码量被预测为超过3200比特,那么以比特流输出I_PCM数据。
还需要注意,阈值存储单元32中存储的阈值不限于等于AVC/H.264标准所定义的一个宏块的最大编码量的值。为了改进判定的安全性,阈值可以为最大编码量减去预定容限值所获取的值。此外,不是必需要预先把最大编码量减去预定容限值所获取的值作为阈值存储在阈值存储单元32中。如下这样也是可以的,即阈值存储单元32具有最大编码量作为阈值,编码量比较单元31从最大编码量减去容限值,并且把计算的值与预测值比较。
还需要注意,I_PCM判定不是必需要在一个宏块一个宏块的基础上做出。数据单位可以比一个宏块大或者小。例如,可以根据熵编码的标准等来改变数据单位。
(第二实施例)图5为示出图像编码装置1的功能结构的第二实施例的框图。
如图5中所示,编码量预测单元20具有系数比特数转换单元21和加法器25。另外,运动预测单元2、画面内预测单元3和输入选择单元5形成图像编码装置1中的编码方法算术运算单元10a。而且还添加了合并单元11。
编码方法算术运算单元10a从输入图像数据产生编码信息和每个像素的差分数据,并分别输出这些数据。每个像素的差分数据被首先传递给正交变换单元6,然后是量化单元7和合并单元11。合并单元11把分别接收到的编码信息和量化的系数数据合并。
这里,编码信息是指关于宏块编码的信息。编码信息的例子包括将被编码宏块的运动矢量、mb_type、帧内预测方向等。
图5中示出的其它单元与图4中的单元相同。如上所述,I_PCM判定单元30具有编码量比较单元31和阈值存储单元32。
系数比特数转换单元21为根据本发明的图像编码装置中系数转换单元的一个例子。系数比特数转换单元21为这样一个处理单元,它把从量化单元7接收到的量化系数的值转换为假定该量化系数由二值化器41二值化的量化系数的比特的数目。下文中,比特的数目称作“比特数”。
更具体地说,系数比特数转换单元21具有图6中示出的转换表。利用该转换表,把量化系数的值转换为比特数。
图6为把量化系数的值转换为比特数中所使用的转换表的一个例子。如图6中所示,在给出量化系数的值时,就确定了与该值关联的比特数。
加法器25把系数比特数转换单元21输出的比特数在一个宏块一个宏块的基础上加起来,并把获得的值提供给I_PCM判定单元30。由加法器25产生的每个宏块的总比特数下文中称作“系数比特数”。也就是说,把系数比特数作为预测值提供给I_PCM判定单元30。
在I_PCM判定单元30中,阈值存储单元32保存用于进行I_PCM判定的阈值。利用从编码量预测单元20接收到的系数比特数计算阈值。换句话说,从编码量预测单元20输出的预测值不是(i)假定数据被进行CABAC的每个宏块数据的编码量的预测值,而是(ii)假定数据被二值化但是还没有被进行CABAC的每个宏块数据的比特数的预测值。因此,阈值存储单元32保存的是与比特数有关的阈值。
编码量比较单元31把(i)从编码量预测单元20接收到的系数比特数的预测值与(ii)阈值存储单元32中存储的阈值比较。如果预测值大于阈值,则编码量比较单元31指示输出选择单元8选择I_PCM数据。另一方面,如果预测值等于或小于阈值,则编码量比较单元31指示输出选择单元8选择从图像编码单元10输出的编码数据。接下来对所选择的数据的处理与参照图2说明的处理相同。
因此,在图5中示出的图像编码装置1中,可以把假定量化系数被二值化的将被编码宏块中的所有量化系数的比特数设置为预测值。另外,通过把阈值与预测值比较,在一个宏块一个宏块的基础上做出I_PCM判定。
需要注意,虽然已经说明了系数比特数转换单元21参照图6中示出的转换表把量化系数的值转换为比特数,但是,除了使用该转换表外,还可以使用其它方法进行该转换,例如,使用可以获取同样转换结果的数学函数。下文中,如上所述,使用转换表的任何转换当然都可以使用其它方法进行。
(第三实施例)图7为示出图像编码装置1的功能结构的第三实施例的框图。
图7的图像编码装置1的结构与图5的图像编码装置1的结构的不同之处在于,编码量预测单元20具有运动矢量比特数转换单元22和加法器27。
运动矢量比特数转换单元22为本发明的图像编码装置中运动转换单元的一个例子。运动矢量比特数转换单元22是这样一个处理单元,它从编码方法算术运算单元10a输出的编码信息中获取运动矢量,并把获取的运动矢量转换为假定运动矢量被二值化器41二值化的该运动矢量的比特数。该转换利用图6中示出的转换表进行。也就是说,运动矢量比特数转换单元22具有该转换表,在该转换表中,运动矢量的值与假定的二值数据的比特数相关联,并且如果给定某一运动矢量,就确定了与该运动矢量关联的比特数。利用该转换表,把运动矢量转换为假定该运动矢量被二值化器41二值化的该运动矢量的比特数。
加法器27把从运动矢量比特数转换单元22输出的比特数在一个宏块一个宏块的基础上加起来。由图7的加法器27产生的每个宏块的总比特数在下文中称作“运动矢量比特数”。另一方面,加法器25把从系数比特数转换单元21输出的比特数在一个宏块一个宏块的基础上加起来。然后,把来自加法器25的系数比特数和来自加法器27的运动矢量比特数的和输出给I_PCM判定单元30。也就是说,把系数比特数和运动矢量比特数的和作为预测值输出给I_PCM判定单元30。
在I_PCM判定单元30中,阈值存储单元32保存用于I_PCM判定中的阈值。利用系数比特数和运动矢量比特数的和来确定该阈值。换句话说,阈值存储单元32保存着一个阈值,该阈值对应于作为预测值的从编码量预测单元20输出的系数比特数和运动矢量比特数的和。
编码量比较单元31把(i)为从编码量预测单元20接收到的系数比特数和运动矢量比特数的和的预测值与(ii)阈值存储单元32中存储的阈值比较。如果预测值大于阈值,则编码量比较单元31指示输出选择单元8选择I_PCM数据。另一方面,如果预测值等于或小于阈值,则编码量比较单元31指示输出选择单元8选择从图像编码单元10输出的编码数据。接下来对所选择的数据的处理与参照图2说明的处理相同。
因此,在图7中示出的图像编码装置1中,可以把(i)假定量化系数被二值化的将被编码宏块中的所有量化系数的比特数与(ii)假定运动矢量被二值化的宏块中的所有运动矢量的比特数的和的值,设定为预测值。因此,与图5中示出的图像编码装置1相比,图7的图像编码装置1的预测值与宏块被实际二值化后的实际比特数更为接近。另外,通过把阈值与预测值比较,可以在一个宏块一个宏块的基础上做出I_PCM判定。
(第四实施例)图8为示出图像编码装置1的功能结构的第四实施例的框图。
图8的图像编码装置1的结构与图7的图像编码装置1的结构的不同之处在于,编码量预测单元20具有编码信息比特数转换单元23而不是运动矢量比特数转换单元22。
编码信息比特数转换单元23是这样一个处理单元,它从编码方法算术运算单元10a获取编码信息,然后把获得的编码信息转换为假定包括运动矢量的编码信息被二值化器41二值化的编码信息的比特数。换句话说,编码信息比特数转换单元23是这样一个处理单元,它输出(i)假定运动矢量被二值化的运动矢量的比特数,以及(ii)假定编码信息被二值化的、除去该运动矢量的编码信息的比特数。也就是说,编码信息比特数转换单元23也充当运动矢量比特数转换单元22。
需要注意,编码信息比特数转换单元23能够实现获得假定目标数据被二值化的该目标数据的比特数的功能,这也是根据本发明的图像编码装置的运动矢量转换单元和编码信息转换单元的功能。
该转换利用图6中示出的转换表进行。也就是说,编码信息比特数转换单元23具有该转换表,在该转换表中,每个编码信息的值与假定的二值数据的比特数关联,并且如果给定某一编码信息,就确定了与该编码信息关联的比特数。例如,该编码信息为运动矢量和mb_type。利用该转换表,把编码信息转换为假定该编码信息被二值化器41二值化的该编码信息的比特数。
加法器27把从编码信息比特数转换单元23输出的比特数在一个宏块一个宏块的基础上加起来。由图8的加法器27产生的每个宏块的总比特数在下文中称作“编码信息比特数”。另一方面,加法器25把从系数比特数转换单元21输出的比特数在一个宏块一个宏块的基础上加起来。
然后,把来自加法器25的系数比特数和来自加法器27的编码信息比特数的和输出给I_PCM判定单元30。也就是说,把系数比特数和编码信息比特数的和作为预测值提供给I_PCM判定单元30。
在图7的图像编码装置1中,预测值为假定系数和运动矢量被二值化的每个宏块系数的比特数和运动矢量的比特数之和。然而,在图8的图像编码装置1中,上述预测值被进一步加上假定编码信息被二值化的、诸如mb_type的除运动矢量之外的编码信息的比特数。
在I_PCM判定单元30中,阈值存储单元32保存用于I_PCM判定中的阈值。利用系数比特数和编码信息比特数的和来确定该阈值。也就是说,阈值存储单元32保存着阈值,该阈值对应于作为预测值的从编码量预测单元20输出的系数比特数和编码信息比特数的和。
编码量比较单元31把(i)为从编码量预测单元20接收到的系数比特数和编码信息比特数的和的预测值与(ii)阈值存储单元32中存储的阈值比较。如果预测值大于阈值,则编码量比较单元31指示输出选择单元8选择I_PCM数据。另一方面,如果预测值等于或小于阈值,则编码量比较单元31指示输出选择单元8选择从图像编码单元10输出的编码数据。接下来对所选择的数据的处理与参照图2说明的处理相同。
因此,在图8中示出的图像编码装置1中,可以把(i)假定量化系数被二值化的将被编码宏块中的所有量化系数的比特数,(ii)假定运动矢量被二值化的该宏块中的所有运动矢量的比特数,以及(iii)假定编码信息被二值化的该宏块中的、除运动矢量之外的所有编码信息的比特数的和的值,设定为预测值。因此,与图7中示出的图像编码装置1相比,图8的图像编码装置1的预测值与宏块被实际二值化后的实际比特数更为接近。另外,通过把阈值与预测值比较,可以在一个宏块一个宏块的基础上做出I_PCM判定。
(第五实施例)图9为示出图像编码装置1的功能结构的第五实施例的框图。
图9的图像编码装置1的结构与图5的图像编码装置1的结构的不同之处在于,编码量预测单元20具有系数编码量转换单元24而不是系数比特数转换单元21。
系数编码量转换单元24为本发明的图像编码装置中系数转换单元的一个例子。系数编码量转换单元24是这样一个处理单元,它把从量化单元7接收到的量化系数的值转换为假定该量化系数被二值化然后被CABAC编码器42进行CABAC的该量化系数的编码量。把所获得的转换值作为预测值输出。
也就是说,图9的编码量预测单元20与上述图5、图7和图8的编码量预测单元20的不同之处在于,预测值不是假定每个宏块的量化系数被二值化的比特数,而是假定每个宏块的量化系数被二值化然后被进行CABAC的编码量。
系数编码量转换单元24具有转换表、数学函数等,通过这些表、函数把量化系数的值与假定的二值数据的比特数关联起来,如果给定某一量化系数,就确定了与该量化系数关联的比特数。利用该转换表,把量化系数转换为假定该量化系数被进行CABAC的量化系数的比特数。这些转换表、数学函数等由实验值或理论值确定。运动矢量编码量转换单元26和编码信息编码量转换单元28也利用相同的转换表或函数把各个接收到的数据转换为各个编码量。运动矢量编码量转换单元26和编码信息编码量转换单元28将在下面参照图10和图11进一步详细说明。
加法器25把从系数编码量转换单元24接收到的编码量在一个宏块一个宏块的基础上加起来。由图9的加法器25产生的每宏块的总编码量在下文中称作“系数编码量”。也就是说,把系数编码量作为预测值提供给I_PCM判定单元30。
在I_PCM判定单元30中,阈值存储单元32保存用于I_PCM判定中的阈值。利用从编码量预测单元20输出的系数编码量来确定阈值。从编码量预测单元20输出的预测值是假定量化系数被进行CABAC的每个宏块的量化系数的编码量的预测值。阈值存储单元32保存对应于该预测值的门限值。例如,该阈值等于或小于3200比特,该值是如前面所述的由AVC/H.264标准定义的最大编码量。
编码量比较单元31把(i)为从编码量预测单元20接收到的系数编码量的预测值与(ii)阈值存储单元32中存储的阈值比较。如果预测值大于阈值,则编码量比较单元3 1指示输出选择单元8选择I_PCM数据。另一方面,如果预测值等于或小于阈值,则编码量比较单元31指示输出选择单元8选择从图像编码单元10输出的编码数据。接下来对所选择的数据的处理与参照图2说明的处理相同。
因此,在图9中示出的图像编码装置1中,可以把假定量化系数被二值化然后被进行CABAC的将被编码宏块中的所有量化系数的编码量,设置为预测值。另外,通过把阈值与预测值比较,可以在一个宏块一个宏块的基础上做出I_PCM判定。
(第六实施例)图10为示出图像编码装置1的功能结构的第六实施例的框图。
图10的图像编码装置1的结构与图9的图像编码装置1的结构的不同之处在于,编码量预测单元20进一步具有运动矢量编码量转换单元26和加法器27。
运动矢量编码量转换单元26为本发明的图像编码装置中运动转换单元的另一个例子。运动矢量编码量转换单元26是这样一个处理单元,它从编码方法算术运算单元10a输出的编码信息中获取运动矢量,并把获取的运动矢量转换为假定运动矢量被二值化然后被CABAC编码器42进行CABAC的运动矢量的编码量。该转换利用如之前所述的转换表或数学函数进行。
加法器27把运动矢量编码量转换单元26输出的编码量在一个宏块一个宏块的基础上加起来。由图10的加法器27产生的每宏块的总编码量在下文中称作“运动矢量编码量”。另一方面,加法器25把从系数编码量转换单元24输出的编码量在一个宏块一个宏块的基础上加起来。然后,把来自加法器25的系数编码量和来自加法器27的运动矢量编码量的和输出给I_PCM判定单元30。也就是说,把系数编码量和运动矢量编码量的和作为预测值提供给I_PCM判定单元30。
在I_PCM判定单元30中,阈值存储单元32保存用于I_PCM判定中的阈值。利用系数编码量和运动矢量编码量的和来确定该阈值。也就是说,阈值存储单元32保存着一个阈值,该阈值对应于作为预测值的从编码量预测单元20输出的系数编码量和运动矢量编码量的和。例如,该阈值等于或小于3200比特,该值是如前面所述的由AVC/H.264标准定义的最大编码量。
编码量比较单元31把(i)为从编码量预测单元20输出的系数编码量和运动矢量编码量的和的预测值与(ii)阈值存储单元32中存储的阈值比较。如果预测值大于阈值,则编码量比较单元31指示输出选择单元8选择I_PCM数据。另一方面,如果预测值等于或小于阈值,则编码量比较单元31指示输出选择单元8选择从图像编码单元10输出的编码数据。接下来对所选择的数据的处理与参照图2说明的处理相同。
因此,在图10中示出的图像编码装置1中,可以把(i)假定量化系数被二值化然后被进行CABAC的将被编码宏块中的所有量化系数的编码量与(ii)假定运动矢量被二值化然后被进行CABAC的宏块中的所有运动矢量的编码量的和的值,设定为预测值。因此,与图9中示出的图像编码装置1相比,图10的图像编码装置1的预测值与宏块被实际CABAC后的实际编码量更为接近。另外,通过把阈值与预测值比较,可以在一个宏块一个宏块的基础上做出I_PCM判定。
(第七实施例)图11为示出图像编码装置1的功能结构的第七实施例的框图。
图11的图像编码装置1的结构与图10的图像编码装置1的结构的不同之处在于,编码量预测单元20具有编码信息编码量转换单元28而不是运动矢量编码量转换单元26。
编码信息编码量转换单元28是这样一个处理单元,它获取从编码方法算术运算单元10a输出的编码信息,并把获取的包括运动矢量的编码信息转换为假定编码信息被二值化然后被CABAC编码器42进行CABAC的编码信息的编码量。换句话说,编码信息编码量转换单元28是这样一个处理单元,它输出(i)假定运动矢量被进行CABAC的该运动矢量的编码量,以及(ii)假定编码信息被进行CABAC的、除去该运动矢量之外的编码信息的编码量。也就是说,编码信息编码量转换单元28也充当图10中示出的运动矢量编码量转换单元26。
需要注意,编码信息编码量转换单元28能够实现获取假定目标数据被熵编码的该目标数据的编码量的功能,这也是根据本发明的图像编码装置的运动转换单元和编码信息转换单元的功能。
该转换利用如之前所述的转换表或数学函数进行。
加法器27把从编码信息编码量转换单元28输出的编码量在一个宏块一个宏块的基础上加起来。由图11的加法器27产生的每个宏块的总编码量在下文中称作“编码信息编码量”。另一方面,加法器25把从系数编码量转换单元24输出的编码量在一个宏块一个宏块的基础上加起来。然后,把来自加法器25的系数编码量与来自加法器27的编码信息编码量和运动矢量编码量的和输出给I_PCM判定单元30。也就是说,把系数编码量和编码信息编码量的和作为预测值提供给I_PCM判定单元30。
在图10的图像编码装置1中,预测值为假定系数和运动矢量被进行CABAC的每个宏块的系数和运动矢量的编码量之和。然而,在图11的图像编码装置1中,上述预测值被进一步加上假定编码信息被进行CABAC的、诸如mb_type的除运动矢量之外的编码信息的编码量。
在I_PCM判定单元30中,阈值存储单元32保存用于I_PCM判定中的阈值。利用系数编码量和编码信息编码量的和来确定该阈值。也就是说,阈值存储单元32保存着一个阈值,该阈值对应于作为预测值的从编码量预测单元20输出的系数编码量和编码信息编码量的和。
编码量比较单元31把(i)为从编码量预测单元20输出的系数编码量和编码信息编码量的和的预测值与(ii)阈值存储单元32中存储的阈值比较。如果预测值大于阈值,则编码量比较单元31指示输出选择单元8选择I_PCM数据。另一方面,如果预测值等于或小于阈值,则编码量比较单元31指示输出选择单元8选择从图像编码单元10输出的编码数据。接下来对所选择的数据的处理与参照图2说明的处理相同。
因此,在图11中示出的图像编码装置1中,可以把(i)假定量化系数被二值化然后被进行CABAC后的将被编码宏块中的所有量化系数的编码量,(ii)假定运动矢量被二值化然后被进行CABAC后的宏块中的所有运动矢量的编码量,以及(iii)假定编码信息被二值化然后被进行CABAC后的、宏块中的除运动矢量之外的编码信息的编码量的和的值,设定为预测值。因此,与图10中示出的图像编码装置1相比,图11的图像编码装置1的预测值与宏块被实际CABAC后的实际编码量更为接近。另外,通过把阈值与预测值比较,可以在一个宏块一个宏块的基础上做出I_PCM判定。
(第八实施例)图12为示出图像编码装置1的功能结构的第八实施例的框图。
图12的图像编码装置1的结构与图11的图像编码装置1的结构的不同之处在于,编码量预测单元20进一步具有值修改单元29。
值修改单元29是这样一个处理单元,它获取对将被编码宏块熵编码的编码条件,并且根据该编码条件修改从编码量预测单元20获取的预测值。
宏块编码条件的例子可以是包括该目标宏块的画面的类型(I,P或B)、mb_type、残余块(residual_block)的类型、量化参数、目标输出率,等等。CABAC之后的编码量取决于这些编码条件变化。因此,值修改单元29修改预测值来处理这种变化。
更具体地说,系数编码量转换单元24和编码信息编码量转换单元28保存各个转换表或数学函数来把输入信息转换为各个编码量。根据上述编码条件,值修改单元29重写转换表或数学函数。
例如,可以从画面信息或片信息获取这些编码条件,并且可以从片头、SPS或PPS获取画面信息或片信息。利用预定方法把画面信息或片信息提供给值修改单元29。另一方面,图像编码装置1的用户使用预定方法把目标输出率输入到图像编码装置1中。然后,把输出率的值传递给值修改单元29。
从而,根据将被编码宏块的编码条件修改从系数编码量转换单元24和编码信息编码量转换单元28输出的各个编码量。加法器27把从编码信息编码量转换单元28输出的编码量加起来以作为修改的编码信息编码量输出。另一方面,加法器25把从系数编码量转换单元24输出的编码量加起来以作为修改的系数编码量输出。然后,把系数编码量和编码信息编码量的和作为预测值提供给I_PCM判定单元30。
在I_PCM判定单元30中,阈值存储单元32保存用于I_PCM判定中的阈值。利用从编码量预测单元20输出的系数编码量和编码信息编码量的和来确定该阈值。例如,阈值为3200比特,该值是如前面所述的由AVC/H.264标准定义的最大编码量。
编码量比较单元31把(i)为从编码量预测单元20接收到的的系数编码量和编码信息编码量的和的预测值与(ii)阈值存储单元32中存储的阈值比较。如果预测值大于阈值,则编码量比较单元31指示输出选择单元8选择I_PCM数据。另一方面,如果预测值等于或小于阈值,则编码量比较单元31指示输出选择单元8选择从图像编码单元10输出的编码数据。接下来对所选择的数据的处理与参照图2说明的处理相同。
因此,在图12中示出的图像编码装置1中,与图11中示出的图像编码装置1相同,可以把(i)假定量化系数被二值化然后被CABAC后的将被编码宏块中的所有量化系数的编码量,(ii)假定运动矢量被二值化然后被CABAC后的宏块中的所有运动矢量的编码量,以及(iii)假定编码信息被二值化然后被CABAC后的、宏块中的除运动矢量之外的所有编码信息的编码量的和的值,设定为预测值。
在图12中示出的图像编码装置1中,当编码量预测单元20确定预测值时,还可以根据目标宏块的编码条件修改该预测值。这意味着编码量预测单元20可以输出更准确的每个宏块的编码量的预测值。另外,通过把阈值与预测值比较,可以在一个宏块一个宏块的基础上做出I_PCM判定。
(第九实施例)图13为示出图像编码装置1的功能结构的第九实施例的框图。
图13的图像编码装置1的结构与上述图像编码装置1的结构的不同之处在于,以本地解码图像缓冲器12代替I_PCM数据缓冲器4。需要注意,图像编码单元10进一步具有逆量化单元17和逆正交变换单元16。尽管图2-5和图7-12中没有示出逆量化单元17和逆正交变换单元16,但是如前面所述,图像编码装置1实质上在基本结构中具有这些单元。
在图13中示出的图像编码装置1中,从量化单元7输出的量化系数数据还被提供给逆量化单元17以被逆量化。然后,逆量化的数据被传递给逆正交变换单元16以被逆正交变换,从而变为本地解码图像。把该本地解码图像存储到本地解码图像缓冲器12中。存储的本地解码图像被画面内预测单元3获取并被用作下一宏块的画面内预测的参考图像。
需要注意,在图13中示出的图像编码装置1中,编码量预测单元20和I_PCM判定单元30的功能与所描述的图2到5以及7到12中示出的各个图像编码装置中的编码量预测单元20和I_PCM判定单元30的功能相同。也就是说,假定数据被二值化的每个宏块数据的预测值,或假定编码量被CABAC后的每个宏块的编码量的预测值,被从编码量预测单元20输出,并与阈值存储单元32中存储的阈值比较,从而进行在一个宏块一个宏块基础上的I_PCM判定。
然而,图13的图像编码装置1与各个上述图像编码装置1的不同之处在于,如果预测值大于阈值,则编码量比较单元31指示输出选择单元8选择本地解码图像缓冲器12中存储的本地解码图像,而不是输入运动画面数据的原始数据,作为I_PCM数据。
一般来说,当原始数据将被用作I_PCM数据时,下一宏块的画面内预测中将要使用的参考图像不是本地解码图像,而是原始数据。因此,在当前宏块的I_PCM判定之前下一宏块的画面内预测就已经开始了的情况下,需要停止该画面内预测并从开头重新开始。
另一方面,在具有图13中示出的结构的图像编码装置1中,本地解码图像被用作I_PCM数据。因此,下一宏块的画面内预测中用作参考图像的像素没有改变,所以不需要再次从头开始下一宏块的画面内预测。结果,提高了处理速度。
如上所述,在根据本发明实施方式的图像编码装置1中,可以在二值化将被编码的数据之前,在一个宏块一个宏块的基础上做出I_PCM判定。另外,可以利用每个宏块的各种信息或编码条件来更准确地做出判定。
这样,比起常规图像编码装置,可以在较早定时处进行I_PCM判定,从而提高处理速度。另外,还可以消除诸如二值化不会被以比特流输出的数据的不必要的处理,从而提高处理效率。
另外,在根据本发明实施方式的图像编码装置1中,由于上述判定的结果,对于定时比常规图像编码装置要早的之前宏块来说,可以更有效地进行将被编码宏块的运动预测处理。结果,可以提高图像编码装置1的总处理速度。
下面的第十实施例和第十一实施例说明将被编码宏块的运动预测的效率。
(第十实施例)图14A、14B和14C示出说明对将要被编码的宏块(下文中也称作“将被编码宏块”)的运动预测的有效处理的一个例子的图。
图14A为说明计算将被编码宏块的预测运动矢量中所使用的参考宏块的一个例子的图。在图14A中,每个部分表示一个宏块。
对于图14A中示出的将被编码宏块来说,与该将被编码宏块紧邻的左面的宏块(下文中称作“左宏块”)的运动矢量为mvLXA,与将被编码宏块紧邻的上面的宏块(下文中称作“上宏块”)的运动矢量为mvLXB,与将被编码宏块紧邻的右上的宏块(下文中称作“右上宏块”)的运动矢量为mvLXC。
以上述3个运动矢量mvLXA、mvLXB和mvLXC的中值来计算该将被编码宏块的预测运动矢量mvpLX。
图14B为图14A中的宏块被分配了各自编号的图。下文中,例如,[iv]表示图14B中被分配了罗马数字“iv”的宏块,[v]表示图14B中被分配了罗马数字“v”的宏块。假定,例如下述处理由图2中示出的图像编码装置1进行。需要注意,在任何一个其它图中示出的图像编码装置1中,I_PCM判定单元30都具有I_PCM判定单元30指示运动预测单元2实现下述处理的路径。
首先,假定已经利用运动预测编码了[iv]。
通过运动预测获取了[iv]的mvLX。[iv]的mvLX变为[v]的mvLXA,所以把[iv](左宏块)的mvLX用作mvLXA开始[v]的mvpLX计算和运动预测。
接下来,如果I_PCM判定单元30判定将以比特流输出[iv]的I_PCM,于是将改变[iv]的mvLX。这是因为[v]的mvLXA改变了,所以[v]的mvpLX计算需要重新进行。
图14C为运动预测处理的时间图。在图14C中,T0,T1,…表示各个预定的连续时间段。下面简要说明各个时间段中执行的各个处理。需要注意,预测运动矢量mvpLX下文中简称为“mvp”。还需要注意,在下面的处理中,运动预测处理由运动预测单元2进行,DCT系数计算由正交变换单元6进行,量化系数计算由量化单元7进行,I_PCM判定由I_PCM判定单元30进行。
T0中,对[iv]的处理开始进行mvp计算和运动预测。
T1中,计算[iv]的DCT系数和量化系数。同时,进行[v]的mvp计算和运动预测。
T2中,进行[iv]的I_PCM判定。同时,计算[v]的DCT系数和量化系数。
这里,作为对[iv]的I_PCM判定的结果,如果判定将以比特流输出[iv]的I_PCM数据,那么I_PCM判定单元30指示运动预测单元2取消[iv]的上述处理,并从mvp计算再次开始[iv]的处理。
T3中,从开始再次进行[v]的mvp计算和运动预测。同时,进行对[iv]的熵编码。
这里,在常规图像编码装置的情况下,在上述时间图中,[iv]的I_PCM判定在对[iv]的熵编码之后进行。因此,基于[iv]的I_PCM判定结果的对[v]的第二次运动预测最早在T4中进行。
然而,在本发明实施例的图像编码装置1中,在对[iv]的熵编码之前,更具体地说,是在对[iv]的二值化之前,进行I_PCM判定。因此,基于该I_PCM判定结果的对[v]的第二次运动预测可以从T3开始。另外,在mvp计算中,没有使用可能会被改变的[iv]的运动矢量,而是使用了[ii](上宏块)和[iii](右上宏块)的运动矢量。
下面详细说明上述内容。这里,当前宏块与下一宏块相邻。如果当前宏块的预测值大于阈值,则运动预测单元2修改与该下一宏块相邻的另一宏块的信息,并在对该下一宏块的mvp计算中使用修改的信息。在此情况下,例如,该当前宏块对应于[iv]并且该下一宏块对应于[v]。
这样,与常规图像编码装置相比,在较早的定时处做出I_PCM判定,以致如果判定将以比特流输出某一宏块的I_PCM数据,那么就可以在比常规图像编码装置更早的定时处,从开头再次开始下一个将被编码宏块的运动预测。这意味着可以高效率地进行运动预测。
结果,可以提高图像编码装置1的总处理速度。
(第十一实施例)在上面的第十实施例中,已经说明了该处理由于在比常规图像编码装置更早的定时处进行某一宏块的I_PCM判定,最终可以在比常规图像编码装置更早的定时处开始下一个宏块的第二次运动预测。
如图14C的时间图中示出的运动预测处理包括计算预测运动矢量(mvp)的mvp计算;从mvp和参考图像获取实际运动矢量(mv)的运动预测;计算mvp和mv之间的差的mvd计算。更具体地说,根据下列由AVC/H.264标准定义的公式进行mvd计算。
mvLX
=mvpLX
+mvd_IX[mbPartIdx][subMbPartIdx]
(公式1)mvLX[1]=mvpLX[1]+mvd_IX[mbPartIdx][subMbPartIdx][1](公式2)根据从上述公式变换的下列公式计算表示差mvd_IX。
mvd_IX[mbPartIdx][subMbPartIdx]
=mvLX
-mvpLX
(公式3)mvd_IX[mbPartIdx][subMbPartIdx][1]=mvLX[1]-mvpLX[1](公式4)需要注意,在公式1到4中,括号中的“0”表示矢量的X轴分量,“1”表示矢量的Y轴分量。还需要注意,“mbPartIdx”和“subMbPartIdx”是用来确定一个宏块的位置的数据。
也就是说,根据公式1到4,预测运动矢量(mvp)与mvp和实际运动矢量(mv)之间的差(mvd)形成下列公式。
mvd=mv-mvp(公式5)mvd被用作关于运动矢量的数据。mvd越小,实际编码的mvd的编码量就越小。换句话说,如公式5中所示,mv和mvp越接近,编码的mvd的编码量就变得越小。因此,在将被编码宏块的运动预测中,首先在参考图像中搜索mvp-mv差较小的像素块。
也就是说,如上所述,如果由于之前的宏块的I_PCM判定结果要重新开始将被编码宏块的mvp计算,那么将被编码宏块的mv通常由于重新计算的mvp而改变。
然而,根据本发明实施方式的图像编码装置1,在再次计算mvd时,不需要改变mv,而是把已经获取的mv与改变的mvp一起用于mvd的重新计算。从而,可以较早地完成运动预测处理。
图15为包括mvd计算的处理的时间图。在图15中,T0,T1,…表示各个预定的连续时间段。图15中的数字“iv”和“v”表示图14B中被分配以相同数字的同一宏块。下面简要说明各个时间段中执行的各个处理。还需要注意,在下面的处理中,运动预测处理由运动预测单元2进行,DCT系数计算由正交变换单元6进行,量化系数计算由量化单元7进行,I_PCM判定由I_PCM判定单元30进行。
T0中,[iv]的处理开始进行mvp计算和运动预测。
T1中,计算[iv]的DCT系数、量化系数和mvd。同时,进行[v]的mvp计算和运动预测。
T2中,进行对[iv]的I_PCM判定。同时,计算[v]的DCT系数、量化系数和mvd。这里,作为[iv]的I_PCM判定的结果,如果判定将以比特流输出[iv]的I_PCM数据,那么I_PCM判定单元30指示运动预测单元2在T3中重新计算[v]的mvd。
T3中,进行对[v]的I_PCM判定和mvd的重新计算。mvd的重新计算包括计算预测运动矢量mvp,然后计算mvp和mv之间的差。假定在T2中获取了mv。同时,进行[iv]的熵编码。
T4中,进行[v]的熵编码处理。
这样,在比常规图像编码装置更早的定时处进行I_PCM判定。因此,在判定将以比特流输出某一宏块的I_PCM数据时,下一宏块的第二次运动预测的定时可以比常规图像编码装置要早。
下面详细说明上述内容。这里,当前宏块与下一个将被编码宏块(下文中称作“下一宏块”)相邻,并且已经计算了该下一宏块的mvp、mv和mvd。如果当前宏块的预测值大于阈值,那么修改与该下一宏块相邻的另一宏块的信息,并且利用修改的信息重新计算该下一宏块的mvp。然后,使用重新计算的mvp和已经获取的mv重新计算该下一宏块的mvd。
换句话说,为了计算运动预测处理中的mvd,不需要重新获取mv,而是把已经获取的mv与改变的mvp一起使用。从而,可以较早地完成第二次运动预测。结果,可以提高图像编码装置1的总处理速度。
需要注意,已经说明了在对当前宏块的I_PCM判定之前,进行下一宏块的第一次mvd计算,当前宏块为下一宏块之前的紧邻的宏块,但是也可以在当前宏块的I_PCM判定之后进行下一宏块的第一次mvd计算。例如,在图15的时间图中,可以在T2中对[iv]的I_PCM判定之后,进行[v]的mvd计算。
在此情况下,在图15的时间图中,由于判定将以比特流输出[iv]的I_PCM数据,所以在T3中再次进行已经在T2中首先进行的对[v]的mvd计算。然而,如上所述,如果对[v]的第一次mvd计算在对[iv]的I_PCM判定之后进行,那么不管是否根据I_PCM判定改变了mvp,都可以利用当前获取的mvp计算[v]的mvd。
换句话说,在当前宏块与下一宏块相邻时,运动预测单元2计算该下一宏块的mvp和mv。然后,在对下一宏块的mvd计算之前把当前宏块的预测值与阈值比较。结果,如果预测值大于阈值,则运动预测单元2修改与该下一宏块相邻的另一宏块的信息,然后利用修改的信息重新计算下一宏块的mvp,并且利用重新计算的mvp和已经获取的mv计算该下一宏块的mvd。
从而,不管[iv]的I_PCM判定的结果怎样,只需要一次对[v]的mvd计算。
如上所述,在根据本发明实施方式的图像编码装置1中,在运动预测处理中,更具体地说,是在第十实施例中说明的mvp的重新计算中,更早地进行I_PCM判定。从而,可以快速地执行从mvp重新计算到mv重新搜索的处理。
需要注意,如第十一实施例所说明的,在包括mvd重新计算的运动预测中,即使mvp被改变了并且将被用于mvd的重新计算中,也不需要改变mv,并且已有的mv可以被直接用在mvd的重新计算中。从而,可以较早地完成运动预测。
还需要注意,由作为I_PCM判定结果的输出来触发mvp重新计算和mvd重新计算。因此,可以在比常规图像编码装置更早的定时处开始mvp重新计算和mvd重新计算。
因而,根据本发明实施方式的图像编码装置1是这样一种图像编码装置,其中二值化数据被熵编码,并且利用该图像编码装置可以高速地处理图像数据。
尽管上面只是已经详细地说明了本发明的示例性实施方式,但是本领域技术人员将很容易地理解,在不本质上背离本发明的新颖教导和优点的情况下,可以对示例性实施方式做出很多修改。因此,所有这样的修改都应被包括在本发明的范围之内。
工业适用性根据工业应用的一个例子,本发明可以被用作一种其中二值化数据被熵编码的图像编码装置。例如,本发明适合用作图像编码装置,通过图像编码装置使用根据AVC/H.264标准的数据压缩技术来编码数据,以输出高清晰度图像。
权利要求
1.一种图像编码装置,包括用于对图像数据进行编码的图像编码单元;用于二值化该编码的图像数据并对二值化的数据进行熵编码的熵编码单元;预测单元,其用于获取一预测值,该预测值对应于在预定数据单位基础上假定对该图像数据进行了熵编码后的该图像数据的预测编码量,该预测单元在没有进行实际二值化的情况下,并且基于从所述图像编码单元获取的关于该图像数据的信息来获取该预测值;判定单元,其用于把该预测值与预定阈值比较,并且当该预测值大于该阈值时判定输出I PCM数据,所述I PCM数据为没有被所述熵编码单元熵编码的图像数据;和输出单元,用于在所述判定单元判定输出I PCM数据时输出所述I PCM数据,并且在所述判定单元判定不输出I PCM数据时输出被熵编码的数据。
2.根据权利要求1所述的图像编码装置,其中该预定数据单位为一个宏块。
3.根据权利要求1所述的图像编码装置,其中该预定数据单位为一个宏块;所述图像编码单元包括正交变换单元,其用于对所述图像数据进行正交变换以获取一系数;和用于量化该系数的量化单元;所述预测单元包括系数转换单元,其用于把量化系数转换为假定该量化系数被二值化的该量化系数的比特数;和加法单元,其用于把每个宏块的由所述系数转换单元获取的比特数加起来以获取该预测值。
4.根据权利要求3所述的图像编码装置,其中所述图像编码单元进一步包括用于计算该宏块的运动矢量的算术运算单元;所述预测单元进一步包括运动转换单元,其用于把该运动矢量转换为假定该运动矢量被二值化的该运动矢量的比特数;并且所述加法单元用于将每个宏块的由所述系数转换单元获取的比特数与由所述运动转换单元获取的比特数相加,以获取该预测值。
5.根据权利要求4所述的图像编码装置,其中所述算术运算单元进一步用于计算该宏块的编码信息,其中该编码信息不包括该运动矢量;所述预测单元进一步包括编码信息转换单元,其用于把该编码信息转换为假定该编码信息被二值化的该编码信息的比特数;并且所述加法单元用于将每个宏块的由所述系数转换单元获取的比特数、由所述运动转换单元获取的比特数、以及由所述编码信息转换单元获取的比特数相加,以获取该预测值。
6.根据权利要求1所述的图像编码装置,其中该预定数据单位为一个宏块;所述图像编码单元包括正交变换单元,其用于对所述图像数据进行正交变换以获取一系数;和用于量化该系数的量化单元;所述预测单元包括系数转换单元,其用于把该量化系数转换为假定对该量化系数进行了熵编码后的该量化系数的编码量;和加法单元,其用于把每个宏块的由所述系数转换单元获取的编码量加起来,以获取该预测值。
7.根据权利要求6所述的图像编码装置,其中所述图像编码单元进一步包括用于计算该宏块的运动矢量的算术运算单元;所述预测单元进一步包括运动转换单元,其用于把该运动矢量转换为假定对该运动矢量进行了熵编码后的该运动矢量的编码量;并且所述加法单元用于将每个宏块的由所述系数转换单元获取的编码量与由所述运动转换单元获取的编码量相加,以获取该预测值。
8.根据权利要求7所述的图像编码装置,其中所述算术运算单元进一步用于计算该宏块的编码信息,其中该编码信息不包括该运动矢量;所述预测单元进一步包括编码信息转换单元,其用于把该编码信息转换为假定对该编码信息进行了熵编码后的该编码信息的编码量;并且所述加法单元用于将每个宏块的由所述系数转换单元获取的编码量、由所述运动转换单元获取的编码量、以及由所述编码信息转换单元获取的编码量相加,以获取该预测值。
9.根据权利要求1所述的图像编码装置,其中该预定数据单位为一个宏块;并且所述预测单元进一步包括修改单元,其用于获取对该宏块进行熵编码的编码条件并根据该编码条件修改由所述预测单元获取的预测值。
10.根据权利要求9所述的图像编码装置,其中所述图像编码单元包括正交变换单元,其用于对所述图像数据进行正交变换以获取一系数;和用于量化该系数的量化单元;并且该编码条件为下列中的至少一个包含该宏块的画面的类型;在所述量化单元的量化中使用的量化参数的值;从所述图像编码装置输出的数据的输出率的值;被熵编码的残余块residual block的类型。
11.根据权利要求1所述的图像编码装置,其中所述图像编码单元包括正交变换单元,其用于对所述图像数据进行正交变换以获取一系数;用于量化该系数的量化单元;用于逆量化该量化系数的逆量化单元;以及逆正交变换单元,其用于对从所述逆量化单元获取的值进行逆正交变换以获取本地解码图像;并且所述I PCM数据为该本地解码图像。
12.根据权利要求1所述的图像编码装置,其中所述I PCM数据为输入给所述图像编码装置的图像数据。
13.根据权利要求1所述的图像编码装置,其中该预定数据单位为一个宏块;所述图像编码单元包括运动预测单元,其用于利用与将被编码宏块相邻的宏块的信息来计算该将被编码宏块的预测运动矢量mvp;并且在当前宏块与下一将被编码宏块相邻并且所述判定单元判定该当前宏块的预测值大于该阈值时,所述运动预测单元用于修改与该当前宏块的下一将被编码宏块相邻的宏块的信息,并利用该修改的信息计算该下一将被编码宏块的预测运动矢量mvp。
14.根据权利要求1所述的图像编码装置,其中该预定数据单位为一个宏块;所述图像编码单元(1)利用与将被编码宏块相邻的宏块的信息来计算该将被编码宏块的预测运动矢量mvp;(2)利用该预测运动矢量mvp计算该将被编码宏块的运动矢量mv;和(3)包括用于计算该预测运动矢量mvp和该运动矢量mv之间的差mvd的运动预测单元;在该当前宏块与该下一将被编码宏块相邻时,所述运动预测单元用于根据(1)、(2)和(3)计算该当前宏块的下一将被编码宏块的预测运动矢量mvp、运动矢量mv和差mvd;并且在所述判定单元判定该当前宏块的预测值大于该阈值时,所述运动预测单元修改与该下一将被编码宏块相邻的宏块的信息,利用该修改的信息重新计算(1)中的该下一将被编码宏块的预测运动矢量mvp,并利用该重新计算的预测运动矢量mvp和(2)中获取的运动矢量mv来重新计算该下一将被编码宏块的差mvd。
15.根据权利要求1所述的图像编码装置,其中该预定数据单位为一个宏块;所述图像编码单元(1)利用与将被编码宏块相邻的宏块的信息来计算该将被编码宏块的预测运动矢量mvp;(2)利用该预测运动矢量mvp计算该将被编码宏块的运动矢量mv;和(3)包括用于计算该预测运动矢量mvp和该运动矢量mv之间的差mvd的运动预测单元;在当前宏块与下一将被编码宏块相邻时,所述运动预测单元根据(1)和(2)计算该当前宏块的下一将被编码宏块的预测运动矢量mvp和运动矢量mv;所述判定单元用于在(3)中所述运动预测单元计算该下一将被编码宏块的差mvd之前,进行对该当前宏块的判定;并且在所述判定单元指示该当前宏块的预测值大于该阈值时,所述运动预测单元进一步修改与该下一将被编码宏块相邻的宏块的信息,利用该修改的信息重新计算(1)中的该下一将被编码宏块的预测运动矢量mvp,并利用该重新计算的预测运动矢量mvp和(2)中获取的运动矢量mv来计算该下一将被编码宏块的差mvd。
16.根据权利要求1所述的图像编码装置,其中该预定数据单位为一个宏块;并且该阈值为AVC/H.264标准所定义的一个宏块的最大编码量。
17.根据权利要求1所述的图像编码装置,其中该预定数据单位为一个宏块;并且该阈值为通过从AVC/H.264标准所定义的一个宏块的最大编码量减去预定容限而获得的值。
18.根据权利要求1所述的图像编码装置,其中该熵编码为基于上下文的自适应二进制算术编码(CABAC)。
19.一种图像编码方法,包括对图像数据进行编码;二值化所述编码的图像数据并对所述二值化数据进行熵编码;获取一预测值,该预测值对应于在预定数据单位基础上假定对该图像数据进行了熵编码后的该图像数据的预测编码量,该预测值是在没有进行实际二值化的情况下,并基于在所述编码中获取的关于该图像数据的信息而获取的;比较该预测值与预定阈值;在该预测值大于该阈值时,判定输出I PCM数据,该I PCM数据为没有被熵编码的图像数据;和在判定将输出I PCM数据时输出所述I PCM数据,在判定不输出I PCM数据时输出被熵编码的数据。
20.一种计算机程序,用于在计算机上运行以进行图像编码,所述计算机程序包括程序代码,其用于使该计算机对图像数据进行编码;二值化所述编码的图像数据并对该二值化的数据进行熵编码;获取一预测值,该预测值对应于在预定数据单位基础上假定对该图像数据进行了熵编码后的该图像数据的预测编码量,该预测值是在没有进行实际二值化的情况下,并基于在该编码中获取的关于该图像数据的信息而获取的;比较该预测值与预定阈值;在该预测值大于该阈值时,判定输出I PCM数据,该I PCM数据为没有被熵编码的图像数据;和在判定将输出I PCM数据时输出所述I PCM数据,在判定不输出I PCM数据时输出被熵编码的数据。
21.一种集成电路,包括用于对图像数据进行编码的图像编码单元;用于二值化所述编码的图像数据并对该二值化的数据进行熵编码的熵编码单元;预测单元,其用于获取一预测值,该预测值对应于在预定数据单位基础上假定对该图像数据进行了熵编码后的该图像数据的预测编码量,该预测单元在没有进行实际二值化的情况下,并且基于从所述图像编码单元获取的关于所述图像数据的信息来获取该预测值;判定单元,其用于把该预测值与预定阈值比较,并且当该预测值大于该阈值时,判定输出I PCM数据,其中所述I PCM数据为没有被所述熵编码单元熵编码的图像数据;和输出单元,其用于在所述判定单元判定输出I PCM数据时输出所述I PCM数据,在该判定单元判定不输出I PCM数据时,输出被熵编码的数据。
22.根据权利要求20所述的计算机程序,其中所述计算机程序被存储在计算机可读介质上。
全文摘要
本发明提供一种图像编码装置,在该装置中对二值化的数据熵编码,从而以高速处理图像数据。该图像编码装置具有对图像数据进行编码的图像编码单元;二值化该编码的图像数据并对二值化的数据熵编码的熵编码单元;编码量预测单元,其基于从该图像编码单元获取的关于该图像数据的信息获取一预测值,该预测值对应于在预定数据单位基础上假定在被实际二值化之前对该图像数据熵编码后的该图像数据的编码量;编码量比较单元,其比较该预测值与预定阈值;I_PCM判定单元,其输出基于该比较结果选择的选择信号,该选择信号指示在预定数据单位基础上的图像数据或I_PCM数据;输出选择单元;和输出由该选择信号指示的被选择数据的输出单元。
文档编号H04N7/26GK1980393SQ200610145179
公开日2007年6月13日 申请日期2006年11月17日 优先权日2005年12月9日
发明者千叶琢麻, 田坂启 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1