具体实施方式
下面,参考附图对本发明的图像编码装置进行说明。
(实施方式)
图1是本实施方式的图像编码装置10的结构示意框图。如图1中所示,本实施方式的图像编码装置10是根据预测残差、进而根据编码条件和运动预测信息中的至少任一项预测发生编码量,进行编码控制的装置,该装置从输入图像11生成编码图像15。该图像编码装置10包括编码器12、帧内预测器16、帧间预测器17、预测残差发生编码量评价值生成部20、编码条件发生编码量评价值生成部21、运动矢量信息发生编码量评价值生成部22、发生编码量预测器18以及编码控制器19。而且,编码器12包括帧内预测器13、帧间预测器14及编码部23。其中,帧内预测器13、帧间预测器14、帧内预测器16以及帧间预测器17相当于权利项中所说的“预测残差计算单元,用于对输入图像实施预测处理,计算以输入图像和预测图像之间的像素值差分表示的预测残差”,发生编码量预测器18相当于权利项中所说的“发生编码量预测单元,用于根据计算出的所述预测残差、进而根据表示输入图像编码条件的控制信息即编码条件和表示参考图像和输入图像之间运动的运动预测信息中的至少任一信息值或数据量,预测对输入图像编码时的发生编码量”,编码控制器19和编码部23相当于“编码单元,用于根据所预测的所述发生编码量,编码输入图像”。而且,编码部23相当于权利项中所说的“可变长编码部,用于对二进制化的预测残差、编码条件以及运动矢量信息进行算术编码”。进而,编码控制器19相当于权利项中所说的“所述编码单元,当所预测的所述发生编码量超过第一阈值时,将量化所述预测残差时的量化步长值设为较大值,当所预测的所述发生编码量为第二阈值以下时,将所述量化步长的值设为较小值,其中,所述第二阈值小于所述第一阈值”。
帧内预测器13是进行输入图像的帧内预测(画面内预测)的处理部,输出进行帧内预测时的预测残差及编码条件。帧间预测器14是进行输入图像的帧间预测(画面间预测)的处理部,输出进行帧间预测时的预测残差、编码条件以及运动矢量信息。编码部23对从帧内预测器13和帧间预测器14输入的预测残差实施正交变换处理、量化处理以及可变长编码处理。并且,对从帧内预测器13和帧间预测器14输入的编码条件以及从帧间预测器14输入的运动矢量信息,实施可变长编码处理,并将可变长编码的编码条件和运动矢量信息与可变长编码的预测残差合成,输出编码图像15。其中,正交变换处理是指,对所输入的数据实施离散余弦变换(DCT,DiscreteCosine Transform)或高速傅立叶变换等正交变换,并将其值变换为正交变换系数的处理。量化处理是指,对所输入的正交变换系数除以量化步长,再进行取整处理,从而变成整数的处理。可变长编码处理是指,对通过量化处理所得到的量化值进行二进制化,并进行CABAC等算术编码的处理。编码器12按照从编码控制器19输入的发生编码量控制参数来变更编码部23的量化处理中的量化步长。并且,编码部23按照块、宏块条和图片等编码处理单位,将编码图像15的实际发生编码量输出给发生编码量预测器18。编码控制器19在发生编码量预测器18中所预测的发生编码量超过第一阈值时,将编码部23的量化处理中的量化步长变更为大一级的步长,在所预测的发生编码量为第二阈值((第二阈值)<(第一阈值))以下时,将编码部23的量化处理中的量化步长变更为小一级的步长。
图2是图1所示的帧内预测器16、帧间预测器17、预测残差发生编码量评价值生成部20、编码条件发生编码量评价值生成部21和运动矢量信息发生编码量评价值生成部22的较详细结构的示意框图。帧内预测器16是用于对进行帧内预测(画面内预测)时的输入图像生成其评价值的处理部,可以使用比编码器12内的帧内预测器13少的像素数进行预测,也可以从帧内预测器13只接收预测残差和编码条件的数据。该帧内预测器16包括预测残差计算部31和编码条件生成部32,将当作预测结果得到的预测残差和编码条件输出给发生编码量预测器18(图中省略信号线)。评价值是指,用于评价对输入图像进行编码时所发生的发生编码量的值,实际上是指表示评价值和发生编码量之间关系的预测函数或拟合曲线的变量。预测残差计算部31对输入图像进行帧内预测,计算成为评价值的预测残差。编码条件生成部32生成编码条件,该编码条件表示进行帧内预测时编码的条件即块大小、预测方向、图片类型等信息。帧间预测器17是用于对进行帧间预测(画面间预测)时的输入图像生成其评价值的处理部,可以使用比编码器12内的帧间预测器14少的像素数进行预测,也可以从帧间预测器14只接收预测残差、编码条件和运动矢量信息的数据。该帧间预测器17包括预测残差计算部33、编码条件生成部34和运动矢量信息生成部35,将当作预测结果得到的预测残差、编码条件和运动矢量信息输出给发生编码量预测器18(图中省略信号线)。预测残差计算部33对输入图像进行帧间预测,计算成为评价值的预测残差。编码条件生成部34生成编码条件,该编码条件表示进行帧间预测时编码的条件,例如块大小、进行运动搜索和运动补偿的块大小、直接模式和跳过模式等编码模式、图片类型等。运动矢量信息生成部35按编码对象块搜索参考图片,检测出表示与编码对象块之间的预测误差最小的预测图像的运动矢量,并生成表示所检测出的运动矢量的运动矢量信息。
预测残差发生编码量评价值生成部20是对由预测图像与输入图像之间的差分即预测残差所发生的发生编码量生成其评价值的处理部,包括正交变换部36、量化部37和系数信息二进制化部38。正交变换部36对输入到预测残差发生编码量评价值生成部20的预测残差实施正交变换,将预测残差的值变换为正交变换系数值。而且,正交变换部36将通过正交变换得到的系数值作为评价值输出给发生编码量预测器18。在此,正交变换部36也可以采用从编码器12的编码部23只接收数据的结构。量化部37对从正交变换部36输入的系数值进行量化处理,并将所得到的量化值输出给系数信息二进制化部38。而且,量化部37将通过量化处理得到的量化值作为评价值输出给发生编码量预测器18。在此,量化部37可以采用从编码器12的编码部23只接收量化值数据的结构,也可以是以固定量化步长进行量化的处理部。系数信息二进制化部38对从量化部37输入的量化值进行二进制化,将所得到的二进制化数据作为评价值输出给发生编码量预测器18。
编码条件发生编码量评价值生成部21是生成基于编码条件的评价值的处理部,包括编码条件比特量计算部39和编码条件二进制化部40。编码条件比特量计算部39计算从帧内预测器16的编码条件生成部32和帧间预测器17的编码条件生成部34输入的编码条件的比特量,将计算出的比特量作为评价值输出给发生编码量预测器18。编码条件二进制化部40对从编码条件生成部32和编码条件生成部34输入的编码条件进行二进制化,将以二进制表示的编码条件作为评价值输出给发生编码量控制器18。
运动矢量信息发生编码量评价值生成部22是对由预测图像生成时求出的运动矢量和参考帧的信息所发生的发生编码量生成其评价值的处理部,包括运动矢量信息比特量计算部41和运动矢量信息二进制化部42。运动矢量信息比特量计算部41计算从运动矢量信息生成部35输入的运动矢量信息的比特量,并将所计算出的比特量作为评价值输出给发生编码量预测器18。运动矢量信息二进制化部42对从运动矢量信息生成部35输入的运动矢量信息进行二进制化,将以二进制表示的运动矢量信息作为评价值输出给发生编码量预测器18。
图3是图1所示的发生编码量预测器18的较详细结构的示意框图。发生编码量预测器18包括评价值计算部43、编码量计算部44、预测函数切换部45、记录存储部46和预测函数生成部47。评价值计算部43将从图2所示的帧内预测器16、帧间预测器17、预测残差发生编码量评价值生成部22的各处理部输入的评价值,与从编码器12输入到记录存储部46的编码对象图片的每个块、宏块条和图片的实际编码量一一对应地存储到记录存储部46。而且,根据编码对象块的发生编码量利用与哪个评价值的组合对应的预测函数来进行预测,生成成为变量的评价值,并输出给编码计算部44。例如,在帧内预测中,使用正交变换部36所输出的系数作为帧内预测器16的预测残差时,通过对从正交变换部36输入的评价值和从编码条件生成部32输入的编码条件的评价值进行相加,计算出作为预测函数变量的评价值。
预测残差、编码条件和运动矢量信息中的任意数据的值能够成为评价值是因为预测残差、编码条件和运动矢量信息中的任意内容用数值所表示。如果是值大的数值,则用于表示该数值的比特量变大,如果是值小的数值,则用于表示该数值的比特量变小。因而,也可以认为表示预测残差、编码条件和运动矢量信息内容的值本身表示数据量。而且,正交变换系数和量化值等中间阶段的数据也是数值,可以认为对应于由编码发生的发生编码量。于是,正交变换系数和量化值等中间阶段的数据是帧内预测器16或帧间预测器17之后的处理结果,也可以认为比从帧内预测器16或帧间预测器17输出的预测残差、编码条件和运动矢量信息,与发生编码量更密切关联。进而,在将量化的预测残差、编码条件和运动矢量信息二进制化的数据中,更容易将这些数据量和发生编码量之间的关系一一对应起来。因而,在这里将编码条件和运动矢量信息中的任意数据值本身以及二进制化的数据本身,当作表示编码条件和运动矢量信息的比特量的数据。
并且,例如在帧间预测时,评价值计算部43当使用量化值的比特量作为预测残差的评价值时,计算从量化部37输入的量化值的比特量,并对计算出的比特量、从编码条件比特量计算部39输入的比特量和从运动矢量信息比特量计算部41输入的比特量进行相加,计算成为预测函数变量的评价值。
进而,例如在帧内预测时,评价值计算部43当使用从系数信息二进制化部38输入的评价值作为预测残差的评价值时,与从编码条件生成部32经过编码条件二进制化部40输入的评价值进行相加,计算成为预测函数变量的评价值。
编码量计算部44将从评价值计算部43输入的评价值代入存储在记录存储部46中的预测函数中,按照编码对象的块、宏块条或图片中的任意一种计算发生编码量。
预测函数切换部45参考从帧内预测器16或帧间预测器17输入的编码条件,根据预先设定的编码条件切换预测函数。在切换预测函数时,可以根据情况预先生成多种预测函数并存储在记录存储部46中,也可以在每次切换时重新生成预测函数。作为切换时机的例子,在以场结构进行编码时,预测函数切换部45根据编码对象场为第一(1st)场还是第二(2nd)场来切换预测函数。在其他例子中,每切换I、P、B等图片类型时切换预测函数。进而,例如根据帧内预测情况和帧间预测情况来切换预测函数。
记录存储部46将从图2所示的帧内预测器16、帧间预测器17、预测残差发生编码量评价值生成部20、编码条件发生编码量评价值生成部21和运动矢量信息发生编码量评价值生成部22的各部输入的评价值,与编码同图片时所发生的实际编码量对应地存储记录。该实际编码量是从编码器12输入。并且,记录存储部46存储由预测函数生成部47以所存储的记录为基础而生成的预测函数。
预测函数生成部47从存储在记录存储部46的评价值和实际编码量的组,根据最小二乘法生成预测函数(回归直线)。此时,当帧内预测时,预测函数生成部47将表示预测残差的数据值或数据量与表示编码条件的数据值或数据量之和作为评价值,从评价值和实际编码量的组生成预测函数。而当帧间预测时,将表示预测残差的数据值或数据量与表示编码条件的数据值或数据量与表示运动矢量信息的数据值或数据量之和作为评价值,从评价值和实际编码量的组生成预测函数。而且,在帧间预测的跳过模式中,将表示预测残差的数据值或数据量设为例如“0”,计算表示预测残差的数据值或数据量与表示编码条件的数据值或数据量与表示运动矢量信息的数据值或数据量之和作为评价值,从评价值和实际编码量的组生成预测函数。在帧间预测的直接模式中,预测函数生成部47将表示运动矢量信息的数据值或数据量设为例如“0”,计算评价值,生成预测函数。
另外,实际编码量和评价值的多个组的平均值和编码对象图像的评价值有大的差异时,预测函数可以不采用回归直线,而是采用实际编码量和评价值的多个组的平均值与原点相连的直线。
图4是表示由图3所示的预测函数生成部47所生成的预测函数(回归直线)一例的图。图4中所画出的5个点表示例如最近5个图片的评价值和实际发生的编码量即实际编码量的组(下面称“样本点”)。例如,当帧内预测时,使用从系数信息二进制化部38输入的评价值作为预测残差的评价值时,与从编码条件生成部32经过编码条件二进制化部40输入的评价值进行相加,计算出成为预测函数变量的评价值。对于最近5个图片,如上计算出的评价值和对这些图片进行编码所发生的实测编码量的组即样本点用5个点所表示。预测函数生成部47对这5个点应用最小二乘法,确定从任意点都具有等距离的回归直线作为预测函数。对于从此进行帧内预测的编码对象图片,如果评价值计算部43按照如上方法计算出的评价值为X,则编码量计算部44将X值代入预测函数的变量得到Y值,并将该Y作为预测发生编码量输出给编码控制器19。
另外,在图4中,说明了预测函数生成部47从最近5个图片的样本点生成预测函数的情况,但也可以当每变为下一个编码对象图片时,增加样本点来生成预测函数。按照编码对象图像(块、宏块条或图片中的任意一个)计算样本点生成预测函数时也一样。而且,预测函数生成部47也可以在每切换编码对象图像时不增加样本点,而是从最新的一定数目的样本点制作新的预测函数。例如,也可以总是从最新的最近5个图片的样本点生成预测函数。
图5是根据编码对象图片到参考图片的时间距离切换预测函数的方法说明图。在此,预测函数生成部47相当于权利项中所说的“所述预测函数生成单元,对于运动预测时的编码对象图片和参考图片的时间距离相同的编码对象块,存储所述评价值和与其对应的实际发生编码量的记录,参考图片和编码对象图片的时间距离不同时生成预测函数”,编码量计算部44相当于权利项中所说的“所述发生编码量预测单元,根据参考图片和编码对象图片之间的所述时间距离切换应用所述预测函数”。
下面,以IBBP结构进行编码的情况为例进行说明。在该图5中按照显示顺序表示帧。在该图5中,假设在帧间预测器17中的运动矢量检测中,IBBP结构中的第二张B2,可以参考前方的I/P、B1和后方的P。这些限制依赖于编码标准,在这里所示出的只是一个例子。
在该图5中,B2(No.9)和B1(No.8)之间的时间距离表示为“1”,B2(No.9)和P(No.7)之间的时间距离表示为“2”。同样,B2(No.9)和P(No.10)之间的时间距离表示为“-1”。
假设粗框的B2(No.9)参考B1(No.8)时,使用用于时间距离“1”的预测函数,参考P(No.7)时,使用用于时间距离“2”的预测函数,参考P(No.10)时,使用用于时间距离“-1”的预测函数,从而推测编码量。
在此,在该图5中由于粗框的B2(No.9)参考前方的B1(No.8),所以使用用于时间距离“1”的预测函数。该用于时间距离“1”的预测函数在预测的帧(编码对象帧)之前,从参考时间距离“1”的参考图片而帧间预测编码的帧的评价值和实际编码量(实际编码的编码量)生成。此时的预测函数利用表示评价值和实际编码量之间关系的回归式等。图5中,在No.9的编码对象图片之前,具有粗线箭头的图片(No.2、No.5、No.6、No.8)参考时间距离“1”的参考图片。因而,将满足这些图片的样本点(评价值、实际编码量)关系的如回归直线当作预测函数来推测编码量。
图6是编码对象图片以场(field)结构编码时,根据编码对象图片是否为第一(1st)场还是第二(2nd)场来切换预测函数的方法说明图。在该图6中,按照编码顺序表示场结构。假设粗框的2nd场为开始要进行编码量推测的场。
在进行场编码时,1st场的编码量推测中,使用用于1st场的预测函数,2nd场的编码量推测中,使用用于2nd场的预测函数,对编码量进行推测。在此,预测函数生成部47相当于请求项中所说的“所述预测函数生成单元,当编码对象图片以隔行扫描(interlace)方式编码时,按第一场或第二场存储所述评价值和与其对应的实际发生编码量的记录,生成各自的预测函数”,编码量计算部44相当于权利项中所说的“所述发生编码量预测单元,根据编码对象图片是第一场还是第二场来切换应用所述预测函数”。
用于1st场的预测函数利用表示预测的场之前编码的1st场的评价值和实际编码量(实际编码的编码量)之间关系的回归式等。在该图6中,2nd场的编码对象场之前,4个场的2nd场已完成编码。预测函数生成部47生成例如表示该4个场的样本点(评价值、实际编码量)关系的预测函数。此时,预测函数可以是对数拟合等的曲线拟合,也可以是由多个直线式构成的折线拟合。
图7是对每个编码对象宏块(MB)根据帧内预测的MB还是帧间预测的MB来切换预测函数的方法说明图。在此,预测函数生成部47相当于权利项中所说的“所述预测函数生成单元,分别对编码对象图片进行帧内预测编码的情况和进行帧间预测编码的情况,存储所述评价值和与其对应的实际发生编码量的记录,生成各自的预测函数”,编码量计算部44相当于权利项中所说的“所述发生编码量预测单元,根据编码对象图片为帧内预测还是帧间预测来切换应用所述预测函数”。
在该图7中,以编码对象MB为单位切换帧内预测和帧间预测来进行编码的图片,按照编码顺序排列表示。在此,各图片用图片号表示,如图片1、图片2、图片3、......图片(N-2)、图片(N-1)、图片N。图7中所示的图片N中,黑色块表示帧内预测编码的MB(帧内MB),除此之外的块表示帧间预测编码的MB(帧间MB)。
记录存储部46在将这样的图片的评价值和实际编码量作为记录进行管理时,对帧内MB的合计值和帧间MB的合计值在不同的储存区域中进行管理。而且,将其按照各图片号进行管理。
相对与此,评价值计算部43在编码对象MB为帧内MB时,只合计图片N的帧内MB的数据值或数据量,作为评价值进行计算。预测函数生成部47将样本点的回归式作为用于帧内MB的预测函数,该样本点的回归式只将图片1、图片2、图片3、......图片(N-2)、图片(N-1)中各个图片的帧内MB的合计评价值和合计实际编码量作为样本点。编码量计算部44将评价值计算部43计算出的图片N的帧内MB的合计评价值代入该预测函数,计算图片N的帧内MB的预测发生编码量。
进而,同样对帧间MB也求出预测发生编码量。具体来讲,评价值计算部43只合计图片N的帧间MB的数据值或数据量,作为评价值进行计算。预测函数生成部47将样本点的回归式作为用于帧间MB的预测函数,该样本点的回归式只将图片N之前编码的各个帧的帧间MB的合计评价值和合计实际编码量作为样本点。编码量计算部44将通过仅合计评价值计算部43计算出的图片N的帧间MB的数据值或数据量而得到的合计评价值,代入用于帧间MB的预测函数,计算图片N的帧间MB的预测发生编码量。编码量计算部44通过对图片N的帧间MB的预测发生编码量和图片N的帧内MB的预测发生编码量进行相加,计算图片N的预测发生编码量。
如上所述,利用两个预测函数分别计算图片N的帧内MB的推测编码量和帧间MB的推测编码量,从而能够分别反映出帧内MB的样本倾向和帧间MB的样本倾向,因此具有能够提高编码量推测性能的效果。
图8是根据用I、B、P表示的图片类型切换预测函数,计算预测发生编码量的方法示意图。以下,对输入图像(VIN被编码图像)以IBBP结构编码的情况为例进行说明。在该图8中,以显示顺序示出帧。在此,预测函数生成部47相当于权利项中所说的“所述预测函数生成单元,按编码对象图片的图片类型(I/P/B)或者宏块条类型(I/P/B),存储所述评价值和与其对应的实际的发生编码量的记录,生成各自的预测函数”,编码量计算部44相当于权利项中所说的“所述发生编码量预测单元,根据图片类型和宏块条类型之中的至少一项切换应用所述预测函数”。
编码量计算部44在I帧中使用用于I帧的预测函数,在P帧中使用用于P帧的预测函数,在B帧中使用用于B帧的预测函数,从而计算预测编码量。
用于P帧的预测函数利用表示预测的帧之前已编码的P帧的评价值和实际编码量(实际编码的编码量)之间关系的回归式。为了推测图8中的P帧(No.10)的编码量,利用表示No.7和No.4的P帧的样本点(评价值、实际编码量)关系的式作为预测函数。同样的,为了推测B2(No.9)的编码量,利用表示No.8、No.6、No.5、No.3、No.2的B帧的样本关系的式作为预测函数。另外,在B帧中也可以区别B1和B2计算预测函数。
图9(a)及图9(b)是根据图片内的宏块条的位置切换预测函数,计算预测发生编码量的方法示意图。图9(a)示出按照编码顺序排列的图片和各图片内的宏块条的位置。以下,设图片N为开始要推测编码量的图片,并从已编码、已计算出评价值和实际编码量的图片(N-1)、图片(N-2)、......图片(N-5),计算图片N的发生编码量。在此,预测函数生成部47相当于权利项中所说的“所述预测函数生成单元,按图片内的宏块条存储所述评价值和与其对应的实际的发生编码量的记录,生成预测函数”,编码量计算部44相当于权利项中所说的“所述发生编码量预测单元,根据图片内的宏块条位置切换应用所述预测函数”。
首先,编码量计算部44从表示图片(N-1)、图片(N-2)、......图片(N-5)的宏块条1的评价值和实际编码量关系的用于宏块条1的预测函数,计算图片N的宏块条1的推测编码量。
记录存储部46按照图片分为4分之1的各宏块条的位置,在储存区域管理各宏块条的评价值和实际编码量的组(样本点)。例如,推测图片N的宏块条1的编码量时,将表示图的评价值和实际编码量关系的回归式作为用于宏块条1的预测函数。
在图9(b)中,预测函数使用宏块条M的图片号为1到(N-1)的样本点(评价值、实际编码量)的回归直线。在这里,假设为回归直线,但也可以是省略截距的拟合直线、对数拟合曲线等。而且,样本点可以使用宏块条M之前已编码的图片号为1到N-1的所有图片,也可以是任意样本的组合。作为一个例子,利用最近的5个样本(图片号=N-1、N-2、N-3、N-4、N-5),通过最小二乘法计算出回归直线。在此,从最近的5个样本求出的回归直线即宏块条1的预测函数表示为S1(v)等。它表示将评价值v作为参数的函数。
设图片N的宏块条1的评价值为x1,推测编码量为p1,则开始要推测编码量的图片N的宏块条1的推测编码量如下。
p1=S1(x1)
同样,图片N的宏块条m(m=1,2,3,4)的推测编码量如下。
pm=Sm(xm)
同样,编码量计算部44从表示图片(N-1)、图片(N-2)、......图片(N-5)的宏块条2、宏块条3以及宏块条4的评价值和实际编码量关系的用于宏块条2、宏块条3以及宏块条4的预测函数,分别计算出图片N的宏块条2、宏块条3以及宏块条4的推测编码量。通过对所计算出的宏块条1的预测发生编码量、宏块条2的预测发生编码量、宏块条3的预测发生编码量以及宏块条4的预测发生编码量进行相加,能够计算出图片N的发生编码量。
图片是指帧或场,表示要编码的一张图像区域。宏块条表示将图片分割为若干个的区域。进而,宏块条是由宏块的集合构成。宏块表示通常编码中的几像素×几像素的区域。
将如上所述的图片按照编码顺序将图片号记为图片1、图片2、......图片N。并且,从图片的上面开始按顺序表示为宏块条1、宏块条2......宏块条N。从宏块条的左端开始按顺序表示为宏块1、宏块2......宏块N。
图10(a)、(b)和图10(c)是存储在记录存储部46中的二进制数据量和实际编码量的样本点记录的示意图。图10(a)表示以图片为单位计算样本点的一个例子。图10(b)表示以宏块条为单位计算样本点的一个例子。图10(c)表示以宏块为单位计算样本点的一个例子。在此,系数信息二进制化部38、编码条件二进制化部40以及运动矢量信息比特量计算部41相当于权利项中所说的“二进制化部,以图片、宏块条和宏块中的任意一个为单位,对所述预测残差,进而对所述编码条件和所述运动预测信息中的至少任一值进行二进制化”,预测函数生成部47相当于“所述预测函数生成单元,将二进制化的所述任意数据量作为所述评价值,存储所述评价值和与其对应的实际发生编码量的记录,生成预测函数”,编码量计算部44相当于“所述发生编码量预测单元,根据二进制化的所述任意的数据量切换应用所述预测函数”。
如该图10(a)、(b)和(c)所示,将各图片的二进制数据量和实际编码量作为样本点,可以按图片、宏块条和宏块生成预测函数。例如,预测图片N的发生编码量时,也可以利用图10(a)的样本点,计算表示图片(N-1)、图片(N-2)、......图片1的二进制数据量和实际编码量关系的预测函数,利用所计算出的预测函数以图片单位预测发生编码量。而且,也可以利用图10(b)的样本点,计算表示宏块条(M-1)、宏块条(M-2)、......宏块条1的二进制数据量和实际编码量关系的预测函数,利用所计算出的预测函数以宏块条单位预测发生编码量。同样,也可以利用图10(c)的样本点,计算表示宏块(L-1)、宏块(L-2)、......宏块1的二进制数据量和实际编码量关系的预测函数,利用所计算出的预测函数以宏块单位预测发生编码量。
当例如以图片单位预测发生编码量时,预测函数利用图片号为1到N-1的样本点(二进制数据量、实际编码量)的回归直线。当例如以宏块条单位预测发生编码量时,预测函数利用宏块条号为1到M-1的样本点(二进制数据量、实际编码量)的回归直线。当例如以宏块单位预测发生编码量时,预测函数利用宏块号为1到L-1的样本点(二进制数据量、实际编码量)的回归直线。而且,在这里利用的是回归直线,但也可以利用省略截距的拟合直线、对数拟合曲线等。还有,样本点可以利用图片号为1到N-1的全部图片,但也可以利用任意样本的组合。作为一个例子,可以利用对图片N最近的5个样本(图片号N-1、N-2、N-3、N-4、N-5),通过最小二乘法计算出回归直线。而且,以宏块条单位预测发生编码量时和以宏块单位预测发生编码量时也一样。
另外,作为样本的选择方法,通过只利用与推测编码量的图片相同图片类型的样本来计算预测函数,从而能够提高预测精度。在P图片的编码量推测中,从图片号为1到N-1的样本中挑选图片类型为P图片的样本。然后计算出所挑选的样本的回归直线。在此,系数信息二进制化部38、编码条件二进制化部40和运动矢量信息比特量计算部41相当于请求项中所说的“二进制化单元,以图片为单位进行二进制化”,预测函数生成部47相当于“所述预测函数生成单元,将二进制化的属于相同图片类型的已编码图片的数据量作为所述评价值,从所述评价值和与其对应的实际编码量的多个记录,生成以所述评价值的平均值和所述发生编码量的平均值的组所表示的坐标上的点与原点相连的直线作为所述预测函数”。
并且,也可以对宏块条、宏块同样计算出预测函数。对于宏块条,可以利用同一图片内的样本的方法,也可以利用属于不同图片的样本的方法。在时间方向上相关性高时,若利用不同图片的样本,则提高推测精度。而且,在空间方向上相关性高时,若利用同一图片内的样本制作预测函数,则提高推测精度。在宏块中也有同样的效果。
进而,如果发生如场景变化、闪光这样的急剧的亮度变化,则二进制数据量会有大的变动。在这种情况下,会发生从过去的图片样本倾向偏离的情况,推测精度会大幅度恶化。尤其利用前面示例的对图片N最近的5个样本时会成为问题。在这种情况下,从其他样本中搜索二进制数据量相近的样本,并仅从这些样本计算预测函数,这样相比前述方法,能够提高推测精度。此时,预测函数利用二进制数据量和实际编码量之比。通过对要推测编码量的图片N的二进制数据量乘以前面所述的比,求出推测编码量。编码量相近的样本可以是1个样本,也可以是多个样本。利用多个样本时,也可以利用多个样本的二进制数据量和实际编码量之比的平均、回归直线等。
而且,编码开始之后和场景切换之后紧接的数个图片中,即使利用评价值和与其对应的实际发生编码量的多个记录,但由于没有充分量的记录,因此也存在不表示过去倾向的情况。并且,在除此之外的情况中,在预测函数的制作中,不利用或不能利用评价值和与其对应的实际发生编码量的多个记录时,可以使用利用预先通过编码仿真求出的统计信息所制作的预测函数。此时,通过利用编码开始前所求出的预测函数,能够改善编码量推测性能。而且,通过该方法,在缺乏运算资源的情况等中能够省略预测函数的制作。特别是有利于受硬件安装上限制和软件处理量限制的情况。
具体的预测函数制作方法是,事先进行编码仿真,从仿真结果即评价值和与其对应的实际发生编码量的多个记录,制作出预测函数。将制作出的预测函数存储在ROM等的储存区域,根据需要读出。在此,评价值计算部43相当于权利项中所说的“评价值计算单元,将所述预测残差、进而将所述编码条件和所述运动预测信息中的至少任一值或所述数据量作为评价值进行计算”,预测函数生成部47、记录存储部46以及ROM等储存区域相当于权利项中所说的“预测函数生成单元,利用预先通过编码仿真求出的统计信息,生成表示所述评价值和所述发生编码量之间关系的预测函数并保持”,发生编码量预测器18相当于权利项中所说的“所述发生编码量预测单元,对开始要编码的块计算出的所述评价值,应用编码开始前生成的所述预测函数,预测输入图像的发生编码量”。
这里所说的编码仿真是指,利用多个输入图像,实际在图像编码装置中进行编码,采集实验数据的过程。然后,从事先进行编码仿真的结果即评价值和与其对应的实际发生编码量的多个记录,计算出评价值与发生编码量之比(以下称为发生编码量比)。在这里,作为预测函数利用发生编码量比。
(推测编码量)=(发生编码量比)×(评价值)......预测函数式
如上式所示,通过计算该发生编码量比和要编码的块的评价值的乘积,能够求出推测编码量。由于按编码条件求出该发生编码量比,因此在利用编码开始前求出的预测函数的情况下,也能够进行较合适的编码量推测。在此,预测函数生成部47相当于请求项中所述的“所述预测函数生成单元,利用所述统计信息,按编码条件生成表示所述评价值和所述发生编码量之间关系的预测函数并保持”,发生编码量预测器18相当于权利项中所说的“所述发生编码量预测单元,对于开始要编码的块的编码条件,将编码开始前生成的对应于所述编码条件的预测函数应用到所述评价值,预测输入图像的发生编码量”。
下面示出编码条件的一个例子。在这里,说明对量化步长编码条件事先求出发生编码量比,利用预测残差值与编码条件值与运动信息值之和作为评价值的情况。
[表1]
编码条件(量化步长) |
平均发生编码量比 |
10 |
0.5 |
15 |
0.6 |
20 |
0.7 |
25 |
0.8 |
35 |
0.9 |
40 |
1 |
上述表表示事先进行编码仿真而统计求出的量化步长值和平均发生编码量比的关系。下面,将该表称为“发生编码量比表”。发生编码量比表的第一行表示将量化步长设为“10”进行编码仿真时,仿真结果,发生编码量比的平均值为“0.5”。
假设开始要编码的块的量化步长为“20”且该块的评价值为“1000”时,按照如下方法求出推测编码量。
(1)从发生编码量比表的量化步长“20”对应的储存区域中,读出预测函数式的发生编码量比的值。(发生编码量比表存储在ROM等中)
(2)计算读出的值和评价值的乘积。
(根据该例,量化步长“20”对应的发生编码量比为“0.7”)
推测编码量=0.7×1000=700[bit]
(3)将700bit作为推测编码量返回给速率控制部。
另外,在这里,在发生编码量比表中,给出了量化步长对应的发生编码量比,但也可以为量化参数对应的发生编码量比,也可以利用其他多个编码条件的组合。多个编码条件组合的例子,可以举例帧内预测/帧间预测且量化步长等。量化步长值和平均发生编码量比之间的关系分为帧内预测和帧间预测来合计,并按照不同预测方式将发生编码量比和评价值的乘积作为推测编码量。这样,通过以编码条件对预测函数进行分类,能够提高发生编码量的推测精度。
另外,在这里利用发生编码量比说明了预测函数,但预测函数并不限于发生编码量比,也可以利用其他预测函数。
另外,框图(图1,2,3等)的各功能块典型地能够用集成电路LSI实现。这些功能块可以分别地单芯片化,也可以将部分或全部功能块单芯片化。(例如,可以将存储器之外的功能块单芯片化。)
在此,所述的LSI根据集成度的不同,也可以被称为IC、系统LSI、超级LSI、顶级LSI。
并且,集成电路化的方法不限于LSI,可以用专用电路或通用处理器来实现。LSI制造后,也可以利用可编程的FPGA(Field Programmable GateArray)、可重构LSI内部电路单元的连接和设置的可重构处理器。
进而,如果随着半导体技术的发展或派生的其他技术产生能够替换LSI的集成电路化技术,当然也可以利用该技术进行功能块的集成化。生物技术的应用等也有可能性。
并且,在各功能块中,不限于只对用于存储编码或解码对象数据的单元进行单芯片化,也可以采用其他结构。
本发明的图像编码装置可以作为具有通信功能的个人电脑、PDA、数字广播的广播电台和手机等中所具有的图像编码装置有用。