可变长度编码装置 【技术领域】
本发明涉及数据压缩处理时使用的可变长度编码装置。背景技术
作为先有的可变长度编码装置的典型用途,有动画数据的压缩处理。在作为动画压缩的国际标准的MPEG(Moving Picture ExpertsGroup)中,进行伴随DCT(离散余弦变换)、量化和动态补偿的差分处理。MPEG对由称之为宏块的纵16、横16的象素构成的单位进行相对基线的动态补偿,以谋求提高压缩率。
在MPEG中进行可变长度编码,但该可变长度编码因为是从概率上减少代码长度,所以不一定限于减少编码位的发生量,此外,根据图象数据、活动图象等图象的编码的困难程度,编码位发生量发生变化。
该位发生量的变化由译码器的缓冲方式决定。具体地说,在标准规定的理想的译码器中,存在输入缓冲器,对于实时译码器规定该输入缓冲器不能上下溢出。因此,编码器允许与译码器的输入缓冲器地容量相当的位发生量的变化。倒过来说,编码时必须使编码器遵守该限制。
这样,在MPEG中利用可变长度代码进行编码。但必须给出位发生量的限制。一般,将该方法称作速率控制。关于这样的速率控制,已知的有例如象特开平7-107947号公报公开的那样使通常量化时的步长变化的方法等。此外,在进行可变长度编码之后,作为控制位发生量的方法,已知的有特开平6-14314号公报等公开的方法。
但是,若采用加大量化步长的方法,可以预想编码位发生量会减少,但实际的编码位发生量要到编码时才能知道,这样,除了不能正确预测代码量之外,在量化步长控制方法中,还存在可靠性差的问题。这样,在先有的方法中,即使采用以宏块为单位改变量化步长的方法,估计其频度也非常低,因为必须可靠地确保编码位发生量在其上限之内,所以,即使对于通常本应该得到更高画面质量的数据,也存在画面质量变差的问题。特别,在实时系统中,要想参照编码的结果进行再编码处理以便得到最佳结果几乎是不可能的,所以,不得不采取这样的安全对策,从而招致画面质量变差。
若在进行可变长度编码之后进行控制,可以解决这些问题,但在特开平6-14314号公报公开的方法中,因必须把所有可变长度代码的长度存储起来,所以,增大了硬件的规模,此外,还会出现本机译码图象和译码器译码的图象发生偏差及连续几帧画面质量变差的状况。进而,画面质量变差会集中在特定的宏块中,存在画面质量明显变差的问题。发明的公开
本发明的目的在于提供一种可变长度编码装置,能解决上述问题,在实时处理中可靠地限制编码位发生量的上限值,使画面质量变差不太明显。
为达到上述目的,本发明的可变长度编码装置的特征在于,具有:按每一个处理单位对输入的数据进行可变长度编码的可变长度编码器;暂时存储上述已可变长度编码了的可变长度编码数据的缓冲器;代码置换处理装置,根据上述缓冲器存储的可变长度编码数据的每一个处理单位的代码发生量,用预先准备的比上述代码发生量短的代码进行置换。
根据上述构成,通过必要时用短代码去置换在可变长度编码的结果中出现的每一个处理单位的代码发生量多的代码,使每一个处理单位的代码量减少,能够可靠地限制代码发生量的上限值,能将代码发生量抑制在规定的范围内。
其次,上述可变长度编码装置具有设定上述输入数据的每一个处理单位的代码发生量的上限值的装置,上述代码置换处理装置最好具有:当上述缓冲器存储的可变长度编码数据的每一个处理单位的代码发生量超过上述上限值时用预先准备的短代码去进行置换处理的装置;当上述缓冲器存储的可变长度编码数据的每一个处理单位的代码发生量没有超过上述上限值时不进行置换处理的装置。
根据上述构成,可以软性设定每一个处理单位的代码发生量的上限值,通过用短代码去置换在可变长度编码的结果中出现的每一个处理单位的代码发生量超过上限值的代码,能够可靠地将每一个处理单位的代码量限制在上限值之内。
其次,上述输入是活动图象数据中的经帧内压缩处理或帧间压缩处理了的数据,上述处理单位最好是活动图象数据的每1个画面的数据。
根据上述构成,能够适用于活动图像数据的压缩处理过程中的可变长度编码处理,能够用来进行MPEG、H.261等活动图像压缩处理装置的可变长度编码处理。
其次,上述代码置换处理装置置换的预先准备的短代码最好是能得到与上述代码置换处理装置已处理完了的每一个处理单位的置换处理了的数据相同的译码结果的代码。
根据上述构成,因在对已置换的数据进行译码时已变成和已译码的图象相同的图象,故感觉不到画面质量的变差。
其次,当上述输入数据是双向预测编码图象画面时,作为上述置换的预先准备的短代码,上述代码置换处理装置最好选择能够得到与在时间序列上最接近前方的帧内编码图象画面、最接近前方的前方预测编码图象画面、最接近后方的帧内编码图象画面、最接近后方的前方预测编码图象画面中的任何一个相同的译码结果的数据。
根据上述构成,能够将有必要置换的双向预测编码图象画面数据置换成时间上接近的前后画面且代码发生量在规定范围之内的图象数据,作为活动图像能够得到没有译码后的不协调感的数据。
进而,当在上述选择中选择了后方图象画面时,最好将从上述输入数据到上述选择的后方图象画面之间的所有双向预测编码图象画面置换成能够得到与上述选择的后方图象画面相同的译码结果的数据。
根据上述构成,在双向预测编码图象画面数据的置换处理中,已置换的图象画面后面的图象画面在时间序列上并没有变成过去的数据,能够得到译码后图象的时间顺序没有颠倒的、没有不协调感觉的数据。
其次,当上述输入数据是前方预测编码图象画面时,作为上述置换的预先准备的短代码,上述代码置换处理装置最好选择能够得到与在时间序列上最接近前方的帧内编码图象画面、最接近前方的前方预测编码图象画面中的任何一个相同的译码结果的数据,在作为上述输入数据的前方预测编码图象画面后面的前方预测编码图象画面最好参照上述已选择的前方图象画面。
根据上述构成,能够将有必要置换的前方预测编码图象画面置换成接近的前方图象画面且代码发生量在规定范围之内的图象数据,作为活动图像能够得到没有译码后的不协调感的数据。此外,因在已置换的前方预测编码图象画面后面的前方预测编码图象画面的参照处理中是参照上述前方图象画面,故已进行了置换处理的前方预测编码图象画面在其它图象画面的参照处理中不被利用,不会发生不协调。附图的简单说明
图1是本发明的实施形态的MPEG编码装置的方框图。
图2是表示图1的编码部106的详细情况的方框图。
图3是控制部107的处理动作的流程图。
图4是表示数据写入外部存储器101的情况的图。
图5是说明置换方式1的图。
图6是说明置换方式2的图。
图7是说明另一个置换方式2的图。
图8是说明置换方式3的图。实施本发明的最佳形态
示出将本发明的可变长度编码装置用于MPEG编码器的实施形态。
图1是本发明的实施形态的MPEG编码装置的方框图。如图1所示,由外部存储器101和编码器102构成。
编码器102进而由外部存储器接口103、图象输入接口104、代码输出接口105、编码部106和控制部107构成。
编码部106相当于可变长度编码器,外部存储器101相当于缓冲器,如后面所述那样,代码置换处理装置根据控制部107的控制执行代码置换处理。此外,在本实施形态中,处理单位是图象画面,画面类型有I画面(帧内压缩编码图象)、P画面(前方预测编码图象)和B画面(双向预测编码图象)。
外部存储器101起缓冲用的缓冲器的作用,用来进行参照图象数据的保持和以一定的位速率输出已编码处理的位数据流。
外部存储器接口103协调从称为图象输入接口104、代码输出接口105和编码部106的多个方框的写入和读出的请求,执行对其它方框和外部存储器的数据的输入输出。
图象输入接口104接收从外部来的输入图象110,在进行了滤波等之后,经外部存储器接口103将输入图象数据110写入外部存储器101的规定的地址中。下面,将已写入的图象数据称作源图象数据。
编码部106从外部存储器101读入图象数据,进行编码处理,并将编码了的数据写入外部存储器101。这时,如后面所述,若控制部107判断已编码的数据的代码发生量在设定的上限值之上,则进行置换处理,将置换后的数据写入外部存储器101。详细动作将在后面叙述。
这里,写指针121是表示写入的数据在外部存储器101上的地址的指针,在编码处理中发生的代码量是多少,写指针121就增加多少。此外,如后面所述,编码处理开始前的些指针121是控制部107送过来的基指针124,此外,编码处理后的些指针121也由控制部107给出,用来判断写入外部存储器101的数据的发生代码量是否超过了上限值。
控制部107控制编码部106和代码输出接口105,此外,直接通过存储器接口103对外部存储器101进行数据的输入输出。将设定的发生代码量的上限值保存在上限值存储区125中,根据由编码部106编码处理后的发生代码量是否超过了设定的上限值判断是否进行置换处理,当超过时,按照图象数据的画面类型和考虑了其在时间序列上的位置的置换方式执行置换处理。再有,设定上限值可以与画面类型配合设定,B画面类型的图象数据的上限值是α1,P画面类型的图象数据的上限值是α2。基指针124是接受并存储编码处理执行前的编码部106的写指针121的初始值的指针。用来根据与编码处理后的写指针121的差算出编码处理的发生代码量。详细动作后面叙述。
代码输出接口105内部具有读指针122和基指针123,一边对该指针进行比较一边根据外部请求输出位数据流。这里,读指针122是用来存储已输出位数据流的外部存储器101的地址的指针,基指针122是用来存储已进行编码、置换处理并可以输出的数据在外部存储器101中的地址的指针。关于输出处理的详细动作将在后面叙述。
下面,叙述编码部106的构成,接着,详细说明要不要置换的判断处理、置换方式的判别处理、置换处理、经代码输出接口105的输出处理等。
首先,说明编码部106的构成。如图2所示,编码部106具有地址生成部221,生成用来与外部存储器101之间读写处理图象数据的地址。地址生成部221保存上述写指针121。编码部106进而具有活动检测部202、差分图象生成部213、DCT部206、量化部207、可变长度编码部208、反量化部209、反DCT部210和活动补偿部211。
宏块数据201是16×16象素的宏块数据。
活动检测部202将从外部存储器101读出的参照图象数据212作为探索区,试行参照图象数据212中的16×16象素的块数据和处理对象的宏块数据201的比较并求出最一致的块数据。接着,将用矢量表示的宏块数据201和求得的块数据的位置差作为活动矢量217输出到差分图象生成部213。
差分图象生成部213根据给出的活动矢量217,从存储在外部存储器101中的参照用图象数据212中的与输入的宏块数据201对应的图象数据中生成预测图象219。差分图象生成部213在内部压缩时将宏块数据201和预测图象219的差分作为差分图象204输出,在内部压缩时,实际上不取差分,而将和宏块数据201相同的数据作为差分图象204输出。这里,差分图象生成部213将判别处理方式是交互方式还是内部方式的信息和活动矢量217作为方式信息205输出。
DCT处理部206对差分图象204进行作为正交变换的离散余弦变换,并输出结果。
量化部207对DCT处理部206的输出进行量化,将其结果作为量化数据216输出。利用该量化将DCT处理结果的高频成分除去来压缩数据量。
可变长度编码部208根据方式信息205和和数据的出现几率对量化数据216进行可变长度编码并作为输出位数据流214输出。这里,包含活动矢量217的方式信息205被编码成位数据流214的一部分。当在后述的控制部107的要否置换判断中判断可变长度编码了的数据的发生代码量超过设定的上限值α1或α2时,利用控制部107进行置换处理,控制部107按照发行的置换方式信号230进行置换处理,将置换后的数据作为输出位数据流214输出。
编码部106在生成上述输出位数据流214的同时还应生成下面的编码处理参照用的帧图象数据220,并准备利用反量化部209、反DCT部210、活动补偿部211进行和译码器进行的译码处理同样的处理的数据。
反量化部209对量化数据216进行反量化。这里,虽然相当于量化的反变换,但因量化时信息量减少了故DCT部206的输出和反量化部209的输出不一致。
反DCT部210对反量化部209的输出进行反DCT处理。
活动补偿部211根据方式信息205和预测图象219进行活动补偿。活动补偿在方式信息205是内部方式时,直接输出DCT部210的结果,在方式205是交互方式时,输出预测图象219和反DCT部210的输出相加的和。这相当于差分图象生成部213的逆动作。活动补偿部211的输出作为参照图象数据220送往地址生成部221,经外部存储器接口103写入外部存储器101,用于下一级宏块数据201的编码处理。
如上所述,编码部106对源图象数据进行编码,必要时作成已置换处理了的位数据流,并进行将其结果写入外部存储器101的动作。
再有,在MPEG中,对于编码处理中的活动补偿与输入的帧图象的画面编码类型进行不同的处理。编码部106根据控制部107指定的3种画面编码类型(I画面、P画面、B画面)改变活动检测部202和活动补偿部212的动作。
在I画面编码时,不使用帧间信息和参照图象,不进行活动补偿和活动检测等,向外部存储器101写入本机译码图象。即,活动检测部202不输出活动矢量217,差分图象生成部213不使用参照图象212,始终以内部(不进行活动补偿)方式工作。
在P画面时,只利用1个时间序列上是前方的参照帧图象,利用对该参照图象的活动预测进行编码,向外部存储器101写入本机译码图象。
在B画面时,使用时间序列上相邻的2个参照图象,例如,使用前后的I画面或P画面的2帧作为参照图象。这种类型不向外部存储器101写入本机译码图象。即,地址生成部221不进行将参照图象数据220写入外部存储器101的动作。因B画面类型的图象不使用参照图象,故不必保存本机译码图象。反过来说,对B画面类型的数据变更操作对其它的帧图象完全没有影响。另一方面,I画面、P画面类型的数据变更操作对其它的帧图象有影响。
以上是编码部106的构成。
其次,说明使用了本实施形态的可变长度编码装置的MPEG编码处理的程序。图3是以控制部107的处理动作为中心的本发明的可变长度编码装置的处理流程图。图4是表示数据写入外部存储器101的样子的图。
输入图象110作为源图象,通过图象输入接口部104暂时写入外部存储器101。该动作独立于其它方框的动作。下面的说明假定源图象已写入外部存储器101。
开始,控制部107进行初始化处理(步骤301)。在初始化处理中,编码部106的些指针121、代码输出接口105的读指针122、基指针123、控制部107保存的基指针124分别置0。
其次,进行画面类型的决定(步骤302)。画面类型的序列在MPEG中由编码器决定,控制部107可以指定画面类型序列,例如按顺序重复出现I,B,B,B,P,B,B,B,I,…的序列。
其次,进行编码部106的起动处理(步骤303),进入等待编码部106的处理结束(步骤304)。在编码部106的起动时刻,如图4(a)所示,写指针121和基指针124一致。接着,编码部106从外部存储器101取入1个画面的图象数据进行编码处理,并将编码处理结果写入外部存储器101。编码部106的写指针121按照绘入的代码量往上增加(图4(b))。这时,代码输出指针105的基指针123的值还是前面的值不变,现在编码中的数据不向外部输出。
其次,当编码部106处理完1个画面的编码时,控制部107进行代码发生量的计算处理(步骤305)。该代码发生量的计算处理是通过控制部107读出编码部106的写指针121的值并与控制部107本身保存的基指针124的值进行比较来进行的。即,写指针在写入编码结果时跟随代码发生量增加,所以,通过计算指针的增加量就能够算出代码发生量。
其次,进行是否进行置换处理的判断(要否置换的判断)(步骤306)。在此,检查步骤305计算的编码位发生量是否超过上限值。若处理中的图象数据的画面类型是B画面,则与上限值α1比较,若处理中的图象数据的画面类型是P画面,则与上限值α2比较。若代码发生量在上限值以内,则进入步骤309,若代码发生量超过上限值,则进入步骤307的置换处理。在图4(b)所示的例子中,超过了设定的上限值(例如α1)。
在步骤306中,当编码位发生量超过上限值时,执行置换处理(步骤307、步骤308)。首先,在步骤307中,使控制部107的基指针124返回到编码部106的写指针121。因此,编码部106的写指针121回到编码结果写入前的原来的值(图4(C))。接着,在步骤308中,控制部107根据处理中的图象数据的画面类型在时间序列上的图象数据的位置判别置换方式,并将置换方式信号230送给编码部106。编码部106按照接收的置换方式信号230将由置换方式保存部231保存的置换方式指定的数据作为编码处理结束数据采用,并从已返回原来的值的写指针121所表示的地址开始往上写入外部存储器101。写指针121的值一直被更新,直到写在上面的置换数据的写入结束地点的地址为止(图4(d))。没有写在上面而留下的数据被忽略,下一个图象数据的处理从图4(d)的写指针的值开始继续进行,将下一个图象数据的处理结果写入。
置换方式保存部231保存的数据有下面2种。
(1)用前方预测方式、活动矢量0、差分数据0对整个宏块编码了的数据(能得到和前方的参照图象相同的译码结果的数据)
(2)用后方预测方式、活动矢量0、差分数据0对整个宏块编码了的数据(能得到和后方的参照图象相同的译码结果的数据)
这些短数据可以作为已确定的代码不必需要源图象而预先准备好,而且数据量很少。
再有,关于上述置换方式的判别处理将在后面详细叙述。
其次,控制部107进行用于输出处理的指针的更新(步骤309)。首先,将编码部的写指针的值代入基指针124和代码输出部105的基指针123。
经代码输出接口105的输出处理如下。代码输出接口105在有输出请求时读出编码位并作为输出位数据流111输出,直到读指针122和基指针123一致为止。即,
(1)当读指针122和基指针123不一致时,将读指针122指示的地址的数据从外部存储器101中读出并作为输出位数据流111向外部输出。然后,使读指针122的值加“1”。
(2)当读指针122和基指针123一致时,通知外部没有应输出的数据。
因代码输出接口105进行上述动作,故超过基指针123时读指针122不增加,基指针以后的数据不会向外部输出。
经过上述一连串的处理后,处理再转移到画面类型的确定(步骤302)。
再有,上述流程使用微代码在控制部107进行编程。
其次,叙述置换方式判别处理的详细情况。置换方式存在好几种方式。在本实施形态中,根据处理对象的图象数据的画面编码类型和该图象在时间序列上的位置来判别方式。在置换方式判别中,重要的点是以下2个法则。
(1)置换的数据是能够得到和时间上接近的参照图象相同的译码结果的数据。因此,置换后的图象数据的重放图象变成与前后图象在时间上接近的很少有不协调感的重放图象。
(2)置换后的图象数据与前后的图象数据在时间序列上不颠倒。因此,置换后的图象数据的重放图象变成时间顺序正确的没有不协调感的重放图象。
以上述2点为重点对各置换方式进行说明。
在方式1中,进行编码处理的图象是画面编码类型为B、与紧接前方参照图象(I或P图象)之后的图象相当的图象,而且,是作为该图象的编码结果的代码发生量超过α1的情况。该方式1是将该B画面的编码数据置换成能得到与前方参照图象相同的译码结果的数据的方式。图5示出一个例子。图5(a)示出时间上在置换处理前的图象数据的样子,图5(b)示出置换处理后的表示活动图象的样子。如图5(a)所示,画面类型的顺序是I、B、B、B、P,各图象的顺序是a、b、c、d、e。方式1与图象b的编码数据的代码发生量大于α1的情况相当。
在此,说明方式1的置换方式信号的生成和置换处理。编码处理的顺序按与I、P、B的顺序对应的a、e、b、c、d的顺序进行。当在图象b的编码处理后在步骤306的控制部107的要否置换的判断中判断为要进行置换时,因为画面类型是B,且紧接在前方参照图象之后,所以控制部107可以判断出是方式1,并指定能得到和置换方式保存部231保存的前方参照图象相同的译码结果的数据作为置换数据。译码结果和图象a相同。再有,根据步骤308的置换处理,重放图象变成a、a、c、d、e。即,连续显示图象a只有一瞬间,看起来很少有不协调的感觉。
其次,说明方式2。方式2进行编码处理的图象是画面编码类型为B、该图象的编码结果的代码发生量超过α1,该方式2是将该B画面的编码数据置换成能得到与后方参照图象相同的译码结果的数据的方式。特别是当作为处理对象的图象数据在时间序列上与后方的参照图象接近时或当直到前方参照图象为止的编码处理的代码发生量在规定的代码发生量之内的其它图象数据存在时的方式。图6示出一个例子。图6(a)示出时间上在置换处理前的图象数据的样子,图6(b)示出置换处理后的表示活动图象的样子。如图6(a)所示,画面类型的顺序是I、B、B、B、P,各图象的顺序是a、b、c、d、e。方式2与图象c和图象d的编码数据的代码发生量大于α1的情况相当。这里,假定图象c的代码发生量大于α1。
说明方式2的置换方式信号的生成和置换处理。与方式1的情况相同,编码处理的顺序按与I、P、B的顺序对应的a、e、b、c、d的顺序进行。当在图象c的编码处理后在步骤306的控制部107的要否置换的判断中判断为要进行置换时,因为画面类型是B,且与先头的参照图象a之间存在其它图象b,所以控制部107判断出是方式2,并发送置换方式信号“2”,指定能得到和置换方式保存部231保存的后方参照图象相同的译码结果的数据作为置换数据。该置换方式2对画面序列上直到后方参照图象e的所有图象指定与能得到和后方参照图象相同的译码结果的数据进行置换,将置换后的数据作为编码数据。因此,重放图象如图6(b)所示那样,由于步骤308的置换处理而变成a、b、e、e、e。即,连续显示图象e只有一瞬间,看起来很少有不协调的感觉。
再有,在该方式2中,如下面所述,可以规定另外的置换处理。下面,使用图7说明该另一个置换方式2。与上述置换方式2一样,编码处理的顺序按与I、P、B的顺序对应的a、e、b、c、d的顺序进行。置换方式保存部231一边将编码结果作为第3置换方式去更新B画面的图象,一边进行处理,直到出现代码发生量超过上限值α1的图象数据。这里,假定对图象C的代码发生量超过了α1。在图象c的编码处理之后,在步骤306的控制部107的要否置换的判断中判断为要进行置换,因为画面类型是B,且与先头的参照图象a之间存在其它图象b,所以控制部107判断出是方式2,并发送置换方式信号“3”。这里,方式信号“3”是指第3置换方式,即指定快到B画面的图象b的编码数据作为置换数据。因此,重放图象如图7(b)所示那样,由于步骤308的置换处理而变成a、b、b、d、e。
置换位数据流与相对图象b的B画面数据相同,在图象c的处理中,对所有宏块进行图图象b相同的双向预测,进行图象处理。置换的数据是快到B画面的编码数据,可以预先准备好,数据的作成非常快,可以实现实时处理。进而,译码结果变成与前方的b图象相同的图象。即,连续显示图象b只有一瞬间,看起来很少有不协调的感觉。
再有,在上述另一个方式2中,将先头的B画面的图象b的编码数据作为第3置换方式保存在置换方式保存部231中,但也可以构成为控制部107将已写入先头的B画面的图象b的编码数据的地址另外保存起来。即,当接下来的B画面的图象c的编码结果的编码位发生量超过α1时,控制部107将存储在另外保存的地址中的编码数据作为图象c的编码数据复制到下面的地址内。进而,若下一个B画面的代码发生量也很大,同样,也复制到下面的地址内。此外,当必需进行置换处理的B画面的图象连续时,也可以将图象b的编码数据归纳起来复制到连续的地址内。利用该另一个方式2的置换处理,连续的B画面的编码位发生量全部在上限值α1以内,连续显示相同图象的只有已置换的B画面那一瞬间,看起来很少有不协调的感觉。
其次说明方式3。在方式3中,进行编码处理的图象是画面编码类型P,该图象编码结果的代码发生量超过α2,该方式3是将该P画面的编码数据置换成能得到与前方参照图象相同的译码结果的数据的方式。在该方式3中,该P画面下面的P画面参照已置换的前方参照画面,使已被置换的P画面在其它图象数据的参照处理中不被使用。图8示出一个例子。图8(a)示出时间上在置换处理前的图象数据的样子,图8(b)示出置换处理后的表示活动图象的样子。如图8(a)所示,画面类型的顺序是I、B、B、P、P,各图象的顺序是a、b、c、d、e。方式3与P画面类型的图象d的编码数据的代码发生量大于α2的情况相当。
说明方式3的置换方式信号的生成和置换处理。与方式1的情况相同,编码处理的顺序按与I、P、B的顺序对应的a、d、e、b、c的顺序进行。当在图象d的编码处理后在步骤306的控制部107的要否置换的判断中判断为要进行置换时,因为画面类型是P,所以控制部107判断出是方式3,并发送置换方式信号“1”,指定能得到和前方参照图象相同的译码结果的数据作为置换数据。该置换方式3对画面序列上直到参照图象d的所有图象指定与能得到和前方参照图象相同的译码结果的数据进行置换,将置换后的数据作为编码数据。因此,重放图象如图8(b)所示那样,由于步骤308的置换处理而变成a、a、a、a、e。再有,后续的P画面的图象数据e作为前方参照图象是参照原来图象数据d的图象,但因图象数据d被置换成能得到和图象数据a相同的译码结果的数据,故最终将图象a作为前方参照图象使用。
置换位数据流与方式1相同,从前方的参照图象开始,用活动矢量0对所有的宏块进行预测,而且,预测和实际图象的差分是称为“0”的数据。即,在图2中,与使活动矢量217为“0”、方式信息205是交互方式且是前方预测、进而假定差分图象204全是“0”的情况对应,DCT的结果全是“0”,量化结果全是“0”,与对可变长度编码部208全是“0”的数据进行编码的情况相当。因此,因为是与输入图象和参照图象完全无关的代码,可以预先准备,数据的作成非常快,可以实现实时处理。进而,译码结果变成与前方的参照图象a相同的图象。即,连续显示图象a只有一瞬间,看起来很少有不协调的感觉。
上面说明了3个置换方式及其置换处理。这些方法可以任意组合,能灵活地控制代码发生量。
对于在进行了上述置换处理时输出的输出位数据流111,已被置换的图象的译码结果和与它最接近的图象的译码结果相同。即,这些置换处理不管译码结果如何只是置换成时间上非常接近的图象,此外,被控制成图象在时间上的顺序不会颠倒。因此,虽然在其附近有图象一瞬间冻结的感觉,但图象大体上不会乱,看上去也没有不协调的感觉。此外,置换的位数据流不是根据源图象数据编码的数据而是预先准备的数据,写入速度可以非常快能够以实时处理实现数据的置换。因此,能够在译码后将不协调感抑制到最小限度,而且能够可靠地控制编码位发生量。
再有,本实施形态是在全都以画面为单位(在帧结构中是以帧、场结构中是以场)进行置换处理的前提下进行说明的,但也适用于更大的范围或更小的范围,同样具有控制编码位发生量的效果。只是最好注意适用范围的边境的一致性,使看上去的不协调感尽可能小。
此外,图3所示的处理流程是使用微代码由控制部107编程,可以进行灵活的系统设计。
此外,在上述实施形态中,在图3的处理流程的步骤306的要否置换的判断中,把上限值作为阈值使用,与代码发生量进行比较,判断要不要进行置换处理,但进行是否执行置换处理的判断处理的方法并不限于将代码发生量和设定的上限值进行比较的方法。例如,也可以构成为设定量化步长和考虑了平均辉度值的阈值,将该阈值和量化步长与平均辉度进行比较,判断要不要进行置换处理。
再有,只要不离开上述发明的概念,本发明的可变长度编码装置可以对上述方法和装置进行各种各样的变更和变形。因此,有必要注意本发明并不限于上述实施形态。工业上利用的可能性
若按照本发明的可变长度编码装置,能够在实时处理中可靠地控制编码位发生量的上限,通过控制代码发生量能够实现速率控制。能够以很快的速度进行数据的置换处理,而且,进行了置换处理的数据的译码结果与邻近图象相同,看上去没有不协调的感觉。进而,为了能够可靠地控制数据量可以使量化步长小一些而不必担心速率控制会出现问题,所以,能够谋求普通图象的高质量的画面。
此外,若按照本发明的可变长度编码装置,因通过编码器的编码处理生成控制了代码发生量的编码数据,所以,编码器不需要特别的构成和安装,只要是标准相符的任何一种译码器,都能够对控制了代码发生量的数据进行译码,生成活动图象。