背景技术
把活动图像的信号数字化以后,当记录或传送这种数字数据时,由于其数据量已变得很大,故须对这种数据进行编码(压缩)。作为一种有代表性的编码方式,有运动补偿预测编码。
图9示出运动补偿预测的原理。图9中,运动补偿预测编码利用图像信号在时间轴方向上的相关性。这种方法根据解码后重现的已知图像信号(以前帧的图像信号),预测当前输入的图像(当前帧的图像)。预测的方法是,对照信号的运动移动该解码后重现的已知图像信号(以前帧的图像信号),只传送这时的运动信息(运动矢量,MV)和这时的预测误差信息,因而压缩了编码时所需的信息量。
在上述运动补偿预测编码和解码方法中,有代表性的有所谓MPEG活动图像专家组)1方式。MPEG1是在所谓国际标准化组织(ISO)和国际电工技术委员会(IEC)的第1联合技术委员会(JTC)中第29分委员会(SC)的第11工作组(WG)上通过了的各种图像编码方式的通称。
虽然WPEG1有帧内和帧间编码处理两种,但是,上述运动补偿预测编码用于上述帧间编码处理。图10示出这时运动补偿预测的例子。在图10所示的运动补偿预测中,把一帧(图像)分割成很多个小块(象块,称为MB,每一个像块由16行×16个像素构成),以这样的小块为单位进行运动补偿预测编码。在图10的例子中,作为这种帧间编码处理情况下的运动补偿预测,示出了前向预测和后向预测,前向预测例如是在以前与当前帧之间进行,后向预测例如是在未来时间出现的某一未来帧与当前帧之间进行。
图11示出了这时运动补偿更加具体的例子。首先,作为处理的第一阶段,对相隔了几帧的图中以P表示的P图像,利用图中以Ⅰ表示的I图像或者其他P图像进行循环预测编码。其次,作为处理的第二阶段,对夹在上述P图像之间、Ⅰ图像之间、或者P图像与I图像之间的、图中以B表示的B图像,根据该B图像前后的P图像或者Ⅰ图像进行预测。另外,上述Ⅰ图像是帧内编码的图像,制作时未使用运动补偿。还有,图11中的箭头(除了指示时间t方向的那个箭头以外),指示运动预测的方向。
在上述MPEG1的运动补偿中,以像块为单位存在着下述四种方式,即:
第一种运动补偿方式是根据以前时间出现的某一帧进行预测的方式(前向预测方式);
第二种运动补偿方式是根据未来时间出现的某一帧进行预测的方式(后向预测方式);
第三种运动补偿方式是根据以前和未来帧进行线性预测的方式(双向预测方式)(即,计算来自以前帧的预测块与来自未来帧的预测块中每一个像素的平均值);
第四种运动补偿方式是无运动补偿的方式(即,帧内编码方式)。
在上述P图像中,以像块为单位从这四种运动补偿方式的第一种或者第四种运动补偿方式中选择出最佳方式。这时,存在着一个以前帧作为对当前帧图像进行运动补偿预测时的参考。在上述B图像中,以像块为单位,从上述第一种到第四种运动补偿方式中选择出最佳方式。这时,分别存在着一个以前帧和一个未来帧作为对当前帧图像进行运动补偿预测时的参考。
在上述P图像和B图像中,作为以前述像块为单位的运动矢量,在上述第一种运动补偿方式的预测中,存在着一个参考上述以前帧的运动矢量;在上述第二种运动补偿方式的预测中,存在着一个参考上述未来帧的运动矢量;在上述第三种运动补偿方式的预测中,分别存在着一个参考上述以前帧和未来帧的运动矢量。
在上述MPEG1中,以像块为单位给出的运动矢量具有很强的运动信息的空间相关性,利用这一特性由图12所示的差分单元求出运动矢量的差分,并且,加以传送。
具体地讲,在该差分单元中,由上述第一种运动补偿方式到第四种运动补偿方式这四种方式给出的运动补偿方式信号送到端子404上,当前输入的运动矢量信号送到端子401上。上述当前输入的运动矢量信号送到开关406的公共端子和差分电路405的加法输入端子上,上述运动补偿方式信号送到切换器403上。
上述开关406的被切换端子a与寄存器组402中以前帧参考矢量所用寄存器402a的输入端子相连,被切换端子b与寄存器组402中未来帧参考矢量所用寄存器402b的输入端子相连。该寄存器组402中以前帧参考矢量所用寄存器402a的输出端子与开关407的被切换端子a相连,上述未来帧参考矢量所用寄存器402b的输出端子与开关407的被切换端子b相连。开关406和407按照寄存器切换信号S401选择上述被切换端子a或b中的某一个,该切换信号S401从接受上述运动补偿方式信号的切换器403输出。上述开关407的输出送到上述差分电路405的减法输入端子上。
因此,在上述差分电路405中,按照从上述切换器403输出的寄存器切换信号S401,以从寄存器组402通过开关407读出的运动矢量信号S402为对象,求出与来自上述端子401的运动矢量信号的差分。差分电路405求出的差分,作为来自该差分单元的差分运动矢量信号从端子408输出。
上述当前的输入运动矢量信号通过上述开关406写入由寄存器切换信号S401指定的寄存器402a或者402b中,重新存储起来。
这样,在上述差分单元中,利用参考上述以前帧的运动矢量和参考上述未来帧的运动矢量,分别独立地求出了差分。
图13示出了上述差分单元工作的具体例子。图中,运动矢量(X,Y)中,X分量表示水平方向上的运动,Y分量表示垂直方向上的运动。而且,在空间向右和向下的运动给出正值;向左和向上的运动给出负值。给定求差分时的起始值为(0,0)。图中,FMV(前向运动矢量)表示参考以前帧的运动矢量,BMV(后向运动矢量)表示参考未来帧的运动矢量。图中,方式(1)表示前向预测的运动补偿方式,方式(2)表示后向预测的运动补偿方式,方式(3)表示双向预测的运动补偿方式。
即,图13中,例如,图左端像块的运动补偿方式为方式(3),以前帧参考运动矢量FMV为(10,10),未来帧参考运动矢量BNV为(8,8)时,假定在右面紧相邻的方式(1)像块中的运动矢量为(8,5),则差分运动矢量为(8,5)-(10,10),即(-2,-5);假定在下一个右面紧相邻的方式(1)像块中的运动矢量为(7,6),则差分运动矢量为(7,6)-(8,5),即(-1,-1)。另外,假定在下一个方式(2)像块中的运动矢量为(9,10),则差分运动矢量为(9,10)-(8,8),即(1,2);假定在下一个方式(3)像块中的输入运动矢量为(5,4)和(8,9),则差分运动矢量为(5,4)-(7,6)即(-2,-2)、和(8,9)-(9,10),即(-1,-1)。
图14示出反差分单元,其构成与图13所示的差分单元互补,用来从已差分的运动矢量重新构成运动矢量。
具体地讲,在该反差分单元中,由上述第一种运动补偿方式到第四种运动补偿方式这四种方式给出的运动补偿方式信号送到端子414上,当前输入的前述差分运动矢量信号送到端子408上。上述差分运动矢量信号送到加法电路409的一个加法输入端子上,上述运动补偿方式信号送到切换器413上。
还有,开关411的被切换端子a与寄存器组410中以前帧参考矢量所用寄存器410a的输出端子相连,被切换端子b与未来帧参考矢量所用寄存器410b相连。开关411按照寄存器切换信号S403选择上述被切换端子a或b中的某一个,该切换信号S403从输入了上述运动补偿方式信号的切换器413输出。开关411的公共端子与上述加法电路409的另一个加法输入端子相连。
因此,在上述加法电路409中,求出按照从上述切换器413输出的寄存器切换信号S403,从寄存器组410通过上述开关411读出的运动矢量信号S404、与来自上述端子408的差分运动矢量信号之和。加法电路409的和输出作为来自该反差分单元的重新构成的运动矢量信号从端子415输出。
来自上述加法电路409的重新构成的运动矢量信号还送到开关412的公共端子上。开关412按照上述寄存器切换信号S403选择被切换端子a或者b中的某一个,被切换端子a与上述寄存器组410中以前帧参考矢量所用寄存器410a相连,被切换端子b与未来帧参考矢量所用寄存器410b相连。
为此,上述重新构成的运动矢量信息通过上述开关412写入上述寄存器切换信号S403指定的寄存器410a或者410b中,重新存储起来。
但是,上述MPEG1是适合于不隔行扫描活动图像编码的方法,所以,不能说它也必然适合于所谓NTSC制或者PAL制等隔行扫描电视信号的编码,还是存在着问题的。
为此,近年来,在MPEG1的后继者MPEG2中考虑了对隔行扫描信号进行高效率运动补偿预测编码的方式,在这种方式中,正如图15所示那样,采用的方法是自适应地切换以帧还是以埸作为处理图像的单位。图15中,fr表示帧,fi表示埸,箭头FRP表示以帧为基础的预测,箭头FIP表示以埸为基础的预测。
这时,在上述MPEG2中,当图像结构为帧时,采用的方法是自适应地切换运动补偿预测是以以帧为基础的像块来进行、还是以以埸为基础的像块来进行。
还有,在上述MPEG2中,可以根据需要采用这样的方法,把像块分成上、下两个部分,每个部分为16个像素×8行,运动补偿预测在这两个部分中分开进行。
这时,以像块为单位给出的运动矢量,在前述第一种运动补偿方式的预测中,参考以前帧(或者埸)的运动矢量存在着1个以上;在前述第二种运动补偿方式的预测中,参考未来帧(或者埸)的运动矢量存在着1个以上;在上述第三种运动补偿方式的预测中,参考以前帧(或者埸)和未来帧(或者埸)的运动矢量分别存在着1个以上。而且,在各种运动补偿方式中运动矢量的个数以像块为单位而改变。
这样,可以认为,上述MPEG2中的运动补偿预测方法比前述MPEG1复杂,与此同时,MPEG2中运动矢量的个数比MPEG1也多,种类也多。在这样的情况下,在处理这些运动矢量时,存在着下述两个问题。
即,第一个问题是,在对运动矢量进行编码时,不能使用前述MPEG1中使用的方法。为此,提出了几个建议,这些建议在例如ISO-IEC/JTC1/SC29/WG11 MPEG93/225b Test Model 4(1993年2月公开)资料中第32、44、145、148页上被公开了。
但是,还不能说这些建议支持全部的运动补偿方式,所以,还是不够的。这些建议还有一个缺点,即,不能解决下述第二个问题。
第二个问题是,对跳跃像块的处理表示得不明确。
在这里,在前述MPEG1中的跳跃像块是具有下列特征的像块。即:
第一,在P图像中,跳跃像块的特征为:
没有应该传送的运动补偿误差信号(条件a-1e);
运动补偿方式为前向预测(条件a-2e);
运动矢量的值等于零(条件a-3e)。
第二,在B图像中,跳跃像块的特征为:
没有应该传送的运动补偿误差信号(条件b_1e);
运动补偿方式与刚刚传送的像块相同(条件b_2e);
利用前述图12所示差分单元求出的差运动矢量的值等于零(条件b_3e);
还有,在前述MPEG1的解码装置(解码器)中,对跳跃像块进行以下处理。即,在MPEG1中,
第1,P图像中,跳跃像块的处理:
认为已传送的运动补偿误差信号等于零(条件a_1d);
运动补偿方式为前向预测(条件a_2b);
运动矢量的值等于零(条件a_3b)。
第二,B图像中,跳跃像块的处理:
认为已传送的运动补偿误差信号等于零(条件b_1d);
复制刚刚接收的像块运动补偿方式(条件b_2d);
复制刚刚接收的像块运动矢量(条件b_3d)。
换句话说,简言之,在前述MPEG1中,P图像中跳跃像块的解码处理是从以前的图像来复制;B图像中跳跃像块的解码处理是从同一帧内刚刚解码的左方相邻块来复制。
如上所述,在前述MPEG1中,对于是跳跃像块的像块,编码装置什么数据也不传送。这样,在提高编码效率方面,跳跃像块是重要的编码技术。例如,即使是一系列动面,当其内容是把静止图像(或者是运动非常缓慢的图像)接连起来的埸景时,可以把几乎全部像块视为跳跃像块。在极端情况下,对第一帧可以不进行运动补偿,只在图像内进行编码和传送,从第二帧开始,有时,几乎把全部像块视为跳跃像块这时,可以预期编码效率大幅度提高。
因此,前述MPEG2的运动补偿预测中,运动矢量编码所采用的方法必须是,连跳跃像块的处理方法也考虑进去的方法。
但是,先有技术向MPEG2提出的运动矢量编码方法并未考虑跳跃像块的处理,因此,存在着不能处理跳跃像块的问题。
例如,下面将以图16中差分单元的构成为基础说明这个问题的一个例子。这是在前述资料ISO-IEC/JTC1/SC29/WG11 MPEG93/225bTest Model 4中描述的一种方法。
图16中,送到端子504上的信息有:作为运动补偿方式信号的前向、后向、或者双向预测的方式信息;作为后述预测类型信号的表示帧预测或者埸预测等的信息;作为图像结构信号的表示帧结构、或者埸结构、或者顺序的信息,此外,还送有:作为埸运动矢量奇偶性信号的表示第一埸(埸1,即,例如,奇数埸)、或者第二埸(埸2,即,例如,偶数埸)的信息;作为被预测埸奇偶性信号的同样地表示第一埸、或者第二埸的信息;作为图像编码类型信号的表示P图像、或者B图像等等的信息。另外,当前输入的运动矢量信号送到端子501上。
送到上述端子504上的信号,也送到切换器503上。上述当前输入的运动矢量信号通过比例变换器509送到开关506的公共端子和差分电路505的加法输入端子上,该比例变换器509按照来自上述切换器503的比例指令信号SCB对上述当前输入的运动矢量进行给定的比例变换B。
上述开关506具有被切换端子a~b,被切换端子a与后述存储运动矢量所用的寄存存储器组502中寄存存储器PMY1的输入端子相连,被切换端子b与寄存存储器组502中寄存存储器PMV2的输入端子相连,被切换端子C与寄存存储器PMV3的输入端子相连,被切换端子d与寄存存储器PMV4的输入端子相连。存储该运动矢量所用的寄存存储器组502中,寄存存储器PMV1的输出端子与开关507的被切换端子a相连,寄存存储器PMV2的输出端子与开关507的被切换端子b相连,寄存存储器PMV3的输出端子与开关507的被切换端子C相连,寄存存储器PNV4的输出端子与开关507的被切换端子d相连。开关506和507按照从上述切换器503输出的寄存器切换信号选择上述被切换端子a~d中的某一个。
上述开关507的输出通过比例变换器510送到上述差分电路505的减法输入端子上,该比例变换器510按照来自上述切换器503的比例指令信号SCB对该输出进行给定的比例变换A。在上述差分电路505中,以来自上述比例变换器510的信息为对象,求出与来自上述端子501的运动矢量信号的差分。差分电路505求出的差分,作为来自该差分单元的差分运动矢量信号从端子508输出。
还有,上述当前输入运动矢量的信息通过上述比例变换器509、进而通过上述开关506,写入由寄存器切换信号指定的寄存存储器PMV1~PMV4中的某一个里,重新存储起来。
这样,图16所示用来求出运动矢量差分的差分单元备有包括用来存储上述运动矢量信号的4个寄存存储器PMV1~PMV4的寄存存储器组502。
下面说明存储上述运动矢量所用的寄存存储器组502的动作。
ISO-IEC/JTC1/SC29/WG11 MPEG 93/225b Test Model 4中建议,在P图像中,按照下述方式使用图16中寄存存储器组502的各个寄存器PMV1~PMV4。
即,例如,在寄存器PMV1中存储着参考图像(参考图像为预测图像的基准)为第1埸、与之对应的被预测埸(即将要编码的埸)为第一埸的前向运动矢量的信息。寄存器PMV2中存储参考图像为第二埸、被预测埸为第一埸的前向运动矢量的信息,寄存存储器PMV3中存储参考图像为第一埸、被预测埸为第二埸的前向运动矢量的信息,寄存存储器PMV4中存储参考图像为第二埸、被预测埸为第二埸的前向运动矢量的信息。即,在P图像中,在哪个寄存存储器中存储运动矢量信号由参考图像与被预测埸的组合决定。
另一方面,ISO-IEC/JTC1/SC29/WG11 MPEG 93/225b Test Model4中建议,在B图像中,按照下述方式使用图16的各个寄存存储器PMV1~PMV4。
即,例如,备有两个寄存存储器PMV用于前向运动矢量,例如,寄存存储器PMV1中存储参考图像为第一埸的前向运动矢量的信息,寄存存储器PMV2中存储参考图像为第二埸的前向运动矢量的信息。另外,还备有两个寄存存储器PMV用于后向运动矢量,寄存存储器PMV3中存储参考图像为第一埸的后向运动矢量的信息,寄存存储器PMV4中存储参考图像为第二埸的后向运动矢量的信息。即,在B图像中,不管被预测埸是第一埸还是第二埸,参考图像和预测方向都相同的运动矢量信号存储在同一个寄存存储器中。
在图16所示的差分单元中,求上述当前输入的运动矢量的差分时,取出对应于该运动矢量的寄存存储器PMV(即,在该运动矢量用于P图像编码的情况下,是存储着具有与该运动矢量相同参考图像和被预测埸奇偶性的运动矢量的PMV。另外,在该运动矢量用于B图像编码的情况下,是存储着具有与该运动矢量相同参考图像奇偶性和预测方向的运动矢量的PMV)中的值,根据需要(根据比例指令信号SCA),利用比例变换器510对这个值进行给定的比例变换A以后,与上述当前输入的运动矢量利用差分电路505进行差分计算。而且,根据需要,利用比例变换器509对上述当前输入的运动矢量的值进行比例变换B以后,写入所选择的、在上述运动矢量差分时所参考的那一个寄存存储器中(虽然省略了图示),重新存储起来。这样来构成差分单元。
还有,图17为对应于图16中运动矢量差分单元的反差分单元。
在图17所示反差分单元中,运动补偿方式信号、预测类型信号、图像结构信号、埸运动矢量奇偶性信号、被预测埸奇偶性信号和图像编码类型信号送到端子524上。当前输入的前述差分运动矢量信号送到端子518上。
通过上述端子524的信息送到切换器523上,上述差分运动矢量送到加法电路519的一个加法输入端子上。
开关521的被切换端子a与存储运动矢量所用的寄存存储器组520中寄存存储器PMV1的输出端子相连,寄存存储器组520与上述图16中存储运动矢量所用的寄存存储器组520执行同样的存储功能;被切换端子b与寄存存储器PMV2的输出端子相连;被切换端子C与寄存存储器PMV3的输出端子相连;被切换端子d与寄存存储器PMV4的输出端子相连。开关521按照来自上述切换器523的寄存器切换信号选择上述被切换端子a~b中的某一个。开关521的公共端子通过比例变换器529与上述加法电路519的另一个加法输入端子相连,该比例变换器529按照来自上述切换器523的比例指令信号SCC对所提供的信号进行给定的比例变换C 。
因此,在上述加法电路519中,求出按从上述切换器523输出的寄存器切换信号从寄存存储器组520通过上述开关521,进而通过比例变换器529的运动矢量信号、与来自上述端子518的差分运动矢量信号之和。这个加法电路519的和输出作为来自该反差分单元的重新构成的运动矢量从端子525输出。
还有,来自上述加法电路519的重新构成的运动矢量信号还通过比例变换器530送到开关522的公共端子上,该比例变换器530按照来自上述切换器523的比例指令信号SCD对提供的信号进行给定的比例变换D。开关522按照上述寄存器切换信号选择被切换端子a~b中的某一个,被切换端子a与上述寄存存储器组520中寄存存储器PMV1的输入端子相连,被切换端子b与寄存存储器PMV2的输入端子相连,被切换端子C与寄存存储器PMV3的输入端子相连,被切换端子d与寄存存储器PMV4的输入端子相连。
为此,上述重新构成的运动矢量信息通过上述开关522写入由上述寄存器切换信号指定的寄存存储器PMV1~PMV4中的某一个里,重新存储起来。
即,图17所示反差分单元中,取出在对应于输入差分运动矢量。的寄存存储器PMV(即,当该差分运动矢量用于P图像的解码时,是存储着具有与该差分运动矢量相同参考图像和被预测埸奇偶性的重新构成运动矢量的PMV。另外,当该差分运动矢量用于B图像的解码时,是存储着具有与该差分运动矢量相同参考图像奇偶性和预测方向的重新构成运动矢量的PMV)中存储的值,根据需要,利用比例变换器529对这个值进行比例变换C以后,与上述输入差分运动矢量利用加法电路519进行加法计算,这样,重新构成运动矢量。而且,根据需要,利用比例变换器530对上述重新构成运动矢量之值进行比例变换D以后,写入所选择的、在上述运动矢量重新构成时所参考的寄存存储器PMV1~PMV4中的那一个里,重新存储起来。这样来构成反差分单元。
下面,利用图18说明在B图像时,上述图16差分单元中动作的例子。
图18中,假定像块MB1没有应该传送的预测误差信号(满足前述条件b_1e)。另外,假定像块MBO和像块MB1同样是前向预测方式(满足前述条件b_2e)。
这时,作为第一个例子,假定:图像的结构为埸结构,被预测埸的奇偶性为第一埸(被预测埸为第一埸)。预测类型为以16×8埸为基础的预测,即,对上部16个像素×8行的区域与下部16个像素×8行的区域分别进行预测。在图18的例子中,例如,像块MB0上部的运动矢量为(5,1)(1),像块MB0下部的运动矢量为(5,5)(2),像块MB1上部运动矢量为(5,5)(3),像块MB1下部的运动矢量为(5,5)(4),像块MB2上部的运动矢量为(5,5)(5),像块MB2下部的运动矢量为(5,5)(6)。
还假定:像块MB0和像块MB1的全部运动矢量参考同一个第一埸。这时,因为对全部运动矢量来说,参考图像的奇偶性和预测方向都是相同的,所以,运动矢量是把前述图16中寄存存储器PMV1里存储的运动矢量作为对象进行差分,并且,加以传送。还有,假定,在前述图16中寄存存储器PMV1里作为起始值存储的是(0,0)。
即,在图18的例子中,在像块MB0中,上部运动矢量(5,1)(1)与寄存存储器PMV1中的起始值(0,0)的差分为(5,1)(1)-PMV1=(5,1),把这个值作为MB0上部的差分运动矢量而输出。运动矢量(5,1)(1)存储到寄存存储器PMV1中。还有,下部运动矢量(5,5)(2)与寄存存储器PMV1中的值(5,1)的差分为(5,5)(2)-PMV1=(0,4),把这个值作为MB0下部的差分运动矢量而输出。运动矢量(5,5)(2)存储到寄存存储器PMV1中。下面,对于像块MB1来说,也同样地求出差分,借此,在该像块MB1中,差分运动矢量全部变为零(0,0)(满足前述条件b_3e)。
还有,作为第二个例子,正如前述那样,在条件b_1e和条件b_2e都满足时,假定:图像的结构为帧结构。假定:预测类型为以埸为基础的预测(被预测埸为第一埸和第二埸),即,把像块MB的第一埸和第二埸分开分别进行预测。假定:像块MB0第一埸的运动矢量为(5,1)(1),第二埸的运动矢量为(5,5)(2),像块MB1第一埸的运动矢量为(5,5)(3),第二埸的运动矢量为(5,5)(4),像块MB2第一埸的运动矢量为(5,5)(5),第二埸的运动矢量为(5,5)(6)。
进而假定:像块MB0和像块MB1的全部运动矢量参考同一个第一埸。这时,因为对全部运动矢量来说,参考图像的奇偶性和预测方向都是相同的,所以,运动矢量是把前述图16中寄存存储器PMV1里存储的运动矢量作为对象进行差分,并且,加以传送。因此,在这个例子中,求差分的方法也与图18相同,像块MB1中,差分运动矢量全部变为零(0,0)(满足条件b_3e)。
这样一来,在上述两个例子中,如果采用MPEG1中的规则,因为像块MB1满足前述条件b_1e、b_2e、b_3e,所以,假定:编码器把像块MB1作为跳跃像块处理。
然而在这种情况下,这些选择是错误的。其原因是,在解码装置方面,虽然前述条件b_1d和b_2d的处理执行得正确,但是,在条件b_3d的处理中,尽管像块MB0和像块MB1的运动矢量实际上已不相同,但是,还是执行了复制。即,把像块MB1一判定为跳跃像块时,在前一个例子中,尽管像块MB0上部的运动矢量(5,1)(1)与像块MB1上部的运动矢量(5,5)(3)不同[(5,1)(1)(5,5)(3)],但是,还是从像块MB0向像块MB1复制了运动矢量,故解码不能正确地进行。还有,在后一个例子中,尽管像块MB0的第一埸运动矢量(5,1)(1)与像块MB1的第一埸运动矢量(5,5)(3)实际上已不相同,但是,还是错误地执行了复制。
出现这个问题有一个原因,就是在先有技术的B图像中,求出同一像块内运动矢量的差分以后进行传送时,同一个寄存存储器使用了两次以上,更新了其内容。
还有,与同一像块内的运动矢量有关,同一个寄存存储器(PMV)使用了两次以上,在解码装置方面进一步引起下述问题。
图19示出与B图像有关的,从传送的差分运动矢量重新构成运动矢量的动作。还是在这个例子中,图像的结构为埸结构,假定:像块MB0、MB1、MB2是分别在上部16个像素×8行和下部16个像素×8行的区域内以前向预测方式进行编码的像块,而且,参考图像无论在上部16个像素×8行的区域还是在下部16个像素×8行的区域都是单一的第一埸。
在图19的例子中,因为上部区域和下部区域具有相同的参考图像奇偶性和相同的预测方向,所以,只使用一个寄存存储器,例如,只使用寄存存储器PMV1,在同一个像块内这个寄存存储器PMV1的内容发生了变化。为此,为了保持刚刚处理了的像块内的运动矢量,除了该寄存存储器PMV以外,还必须具有另外四个寄存存储器(前向矢量和后向矢量各用两个)。还有,如果保持着刚刚处理了的那个像块的运动矢量,在解码装置中也能够更好地进行误差校正。
即,图19中,假定:利用上述图18,作为差分运动矢量可以得到:像块MB0上部的差分运动矢量为(5,1)(1),像块MB0下部的差分运动矢量为(0,4)(2),像块MB1上部的差分运动矢量为(0,0)(3),像块MB1下部的差分运动矢量为(0,0)(4),像块MB2上部的差分运动矢量为(0,0)(5),像块MB2下部的差分运动矢量为(0,0)(6)。还假定:上述寄存存储器PMV1作为起始值存储的是(0,0)。
在这里,在图19的情况下,在像块MB0中,上部差分运动矢量(5,1)(1)与寄存存储器PMV1的起始值(0,0)相加,得到重新构成的运动矢量(5,1)(1)+PMV1=(5,1)A,把这个值存储到寄存存储器PMV1中。还有,在像块MB0下部,上述下部差分运动矢量(0,4)(2)与存储在上述寄存存储器PMV1的重新构成的运动矢量(5,1)A相加,得到再重新构成的运动矢量(0,4)(2)+PMV1=(5,5)B,把这个值存储到寄存存储器PMV1中。同样地,在像块MB1中,上部差分运动矢量(0,0)(3)与存储在上述寄存存储器PMV1中的重新构成的运动矢量(5,5)B相加,得到再重新构成的运动矢量(0,0)(3)+PMV1=(5,5)c,把这个值存储到寄存存储器PMV1中。还有,在像块MB1的下部,上述下部差分运动矢量(0,0)(4)与存储在上述寄存存储器PMV1的再重新构成的运动矢量(5,5)c相加,得到再一次重新构成运动矢量(0,0)(4)+PMV1=(5,5)D,把这个值存储到寄存存储器PMV1中。这样,因为把得到的重新构成的运动矢量依次写入寄存存储器PMV1中,所以,刚刚处理了像块的重新构成的运动矢量就消失了。
这样,在解码装置方面,为了保持在刚刚在像块中重新构成的运动矢量的值,与一个预测方向有关,必须具有另外两个寄存存储器PMV,用来存储例如,上述像块MB0中,上述运动矢量(5,1)A和(5,5)B的值;像块MB1中,上述运动矢量(5,5)C和(5,5)D的值。
如上所述,先有的向MPEG2建议的运动矢量编码方法中,未考虑跳跃像块的控制,为此,存在着不能控制跳跃像块的问题。
还有,在解码装置方面,为了保持刚刚处理了的像块运动矢量,除了寄存存储器PMV以外,还必须具有另外的寄存存储器,使矢量(差分运动矢量)的反差分单元的构成复杂化。
而且,在先有技术中,对矢量差分单元和反差分单元中寄存存储器的切换进行控制较为复杂,存在着寄存存储器PMV中切换器硬件规模大的问题。
用来实施本发明的最佳状态
首先,参考图1说明与本发明有关的活动图像编码装置(编码器)。
用来控制与本发明有关的编码装置基本动作的信息从图像编码控制信息输入部分30送入,存储到用于存储图像编码控制信息的存储器29中。这些信息包括图像帧的大小、编码信息输出的比特率等等。这些信息作为图像编码控制信号S25从上述存储器29输出。还有,图像结构信号S26(图像是帧结构、还是埸结构、还是逐行扫描信号的识别信号)来自上述图像编码控制信息输入部分30通过上述存储器29而输出,进而,图像编码类型信号S27(图像是1图像、还是P图像、还是B图像的识别信号)也从这里输出。
还有,来自图像输入端子10的输入图像信号送往埸存储器11。是输入图像同步信号的垂直同步信号S11从输入端子26送入,进而送到参考图像控制器23上。在参考图像控制器23上,还通过端子1送入上述图像编码控制信号S25、图像结构信号S26、图像编码类型信号S27。参考图像控制器23一接收上述垂直同步信号S11,就输出下述参考图像指令信号S10,把该指令信号S10送往埸存储器组11。
送到上述埸存储器组11上的图像信号的图像是当前编码的对象,与从埸存储器读出的图像头部同步地建立下述图像起始标志S22,标志S22通过端子2和端子9送到参考图像控制器24上。图像起始标志S22一建立,参考图像控制器24就输出下述参考图像指令信号S12和S13,把指令信号S12和S13送往埸存储器17上。图像起始标志S22还通过上述端子9送到输出图像控制器25上。上述图像起始标志S22一建立,输出图像控制器25就输出下述输出图像指令信号S14,把指令信号S14送往埸存储器组17上。图像编码控制信号S25、图像结构信号S26、图像编码类型信号S27通过端子30送到上述参考图像控制器24和输出图像控制器25上。
还有,把送到上述埸存储器组11上的图像信号送到运动预测电路12上,与此同时,把来自上述端子1的上述图像编码控制信号S25、图像结构信号S26、图像编码类型信号S27送到运动预测电路12上。运动预测电路12对于是当前编码对象的图像中的像素,参考以前图像和未来图像,相对于送往上述埸存储器组11的图像信号进行运动预测。上述运动预测是在上述当前编码对象的图像中块像素信号、与所参考的以前图像或者未来图像中块像素信号之间的块匹配,块的大小例如是16×16个像素、16×8个像素、8×8个像素。
这时的以前和未来参考图像,按照从参考图像控制器23输出的运动预测参考图像指令信号S10,从埸存储器组11中指定。运动预测电路12检出分别在各种可以选择的运动补偿方式下、在块匹配中预测误差最小的参考图像中块的位置,把对应于该位置的运动矢量作为运动矢量信号S7,送往运动补偿电路18。还有,能够选择哪种运动方式,由图像结构信号S26和图像编码类型信号S27决定。
上述运动预测电路12把预测类型信号S30、埸运动矢量参考奇偶性信号S31、副运动矢量信号S32、被预测埸的奇偶性信号S33作为上述运动矢量S7的附加信息也送往运动补偿电路18。
在这里,上述预测类型信号S30是,例如所谓运动预测是以帧为基础来进行、还是以埸为基础来进行,块匹配是以16×16个像素、16×8个像素、8×8个像素中哪一种来进行,运动预测是不是双元(dual-Prime)预测等信息。还有,有关8×8个像素的块预测和双元预测,因为在上述资料ISO-IEC/JTC1/SC29/WG11 MPEG 93/225bTest Model4中已作了详细描述,所以,在此,就不作说明了。
上述埸运动矢量参考奇偶性信号S31是,在运动预测以埸为基础进行的情况下,表示该运动矢量参考的埸是第一埸(埸1)、还是第二埸(埸2)的信号。
上述副运动矢量信号S32是,例如双元和8×8个像素块预测的矢量附属信号。
上述被预测奇偶性信号S33是,在运动预测以埸为基础进行的情况下,表示运动矢量预测的目标埸(被预测埸)是第一埸、还是第二埸的信号。
上述运动补偿电路18指示从存储着下述已解码、重现的图像的埸存储器组11中输出块图像信号S3,该块图像信号位于由运动矢量信号S7、预测类型信号S30、埸运动矢量参考奇偶性信号S31、副运动矢量信号S32和被预测埸奇偶性信号S33所指定的地址上。这时的参考图像按照从参考图像控制器24输出的运动补偿参考图像指令信号S12,从埸存储器组17中指定。
来自上述运动补偿电路18的块图像信号S3的输出能够自适应地工作,能够以像块为单位,切换到以下四种可选择的运动补偿方式中最佳的那一种上。
即,四种动作为:
第一种,来自以前重现图像的运动补偿方式(前向预测方式);
第二种,来自未来重现图像的运动补偿方式(后向预测方式);
第三种,来自以前和未来两个重现图像的运动补偿方式[对于来自以前重现图像的参考块和来自未来重现图像的参考块中的每一个像素进行线性运算(例如,计算平均值)](双向预测方式);
第四种,无运动补偿(即,帧内编码方式。在这种情况下,块图像信号S3的输出等于零)。可以从这四种可选方式中的任何一种切换到最佳的那一种上。
在切换上述运动补偿方式时,例如,可以选择上述四种方式中各自输出的块图像信号S3、与当前编码对象块图像信号S1之间的每一个像素差分绝对值的总和为最小的那一种方式。
这种被选择的方式作为运动补偿方式信号S9、这时的运动矢量信号S8、预测类型信号S40、埸运动矢量参考奇偶性信号S41、副运动矢量信号S42和被预测埸奇偶性信号S43,通过端子3送到各部分上。
从上述埸存储器组11中输出当前编码对象的像块图像信号S1,还与该像块图像信号S1输出同步地输出MB起始标志S300。MB计数器49与上述MB起始标志S300同步地计数该标志的个数。当通过端子48提供的上述图像起始标志S22一建立,就把MB计数器49清零。还把图像编码控制信号S25通过端子16送到该MB计数器49上。
当MB计数器的计数值一达到预定片长(构成该片的像块个数)的倍数,就建立从该MB计数器49通过端子45输出的片起始标志S301。所谓片就由按照图像扫描顺序连接起来的一个或多个像块构成的单元,为了即使在接收方面产生了误码的情况下也能够把数据恢复出来,在片的头部中,传送了表示起始像块在图像上位置的数据。使片的长度可以随比特流在传输路径上的误码状态而改变。一般,传输路径上的误码率越高,片长越短。把这时所指定的片长存储到上述存储器29中。
在减法器13中,计算上述块图像信号S1、与从运动补偿电路18提供的块图像信号S3之间每一个像素的差分值,所得的结果就是块差分信号S2。把块差分信号S2送到块信号编码部分14上,由此得到编码信号S4。把编码信号S4送到块信号解码部分15上,在这里,把它解码后变成块重现差分信号S5。
在这里,把通过端子7的前述图像编码控制信号S25和通过端子31、端子8的量化表信号S15也送到上述块信号编码部分14上。作为块信号编码部分的构成可以采用包括离散余弦变换(DCT)单元和量化器的构成,该量化器根据缓冲存储器21指定的上述量化表信号S15把输出系数量化。在此情况下,上述图像编码控制信号S25和量化信号S15也送到上述块信号解码部分15上,作为块信号解码部分15的构成可以采用包括反量化器和反DCT单元的构成,该反量化单元根据上述量化表信号S15把量化系数反量化,该反DCT单元对输出系数进行反DCT变换。
在加法器16中,把上述块重现的差分信号S5、与运动补偿电路18输出的块图像信号S3每一个像素地相加,所得的结果就是块重现信号S6。块重现信号S6存储到按照当前图像指令信号S13从埸存储器组17中指定的埸存储器里。在埸存储器组17中存储的重现图像里,从端子29输出按照前述输出图像指令信号S14指定的那个重现图像信号。
另一方面,块编码信号S4也送到,通过端子6送有前述图像编码控制信号S25的一维信号发生部分19上,在这里,把该编码信号S4存储到一维阵列中,变成为一维编码信号S16。一维信号发生部分19的构成包括扫描变换器,该扫描变换器以从低频到高频的顺序对于块量化的DCT系数进行锯齿形扫描。在可变字长编码单元(VLC)20中,对一维编码信号S16进行霍夫曼(Huffman)码等可变字长编码。
还有,运动矢量信号S8通过端子3和端子4送到矢量差单元27上,在这里,求出差分,变成差分运动矢量信号S50,在VLC中,进行霍夫曼码等可变字长编码。把MB起始标志S300、片起始标志S301、运动补偿方式信号S9、图像结构信号S26和预测类型信号S40也送到端子4上。
以图2为基础说明上述矢量差分单元27的细节。图2中,片起始标志S301输入到矢量差分单元27的端子77上,MB起始标志S300通过图1中端子47和端子4输入到端子71上,运动矢量信号S8通过图1中端子3和端子4输入到端子70上,运动补偿方式信号S9通过图1中端子3和端子4输入到端子72上,预测类型信号S40通过图1中端子3和端4输入到端子73上,以及,上述图像结构信号S26通过图1中端子4输入到端子74上。
根据上述图像结构信号S26和预测类型信号S40,可知像块内的前向运动矢量或者后向运动矢量的传送个数,这些由下面所示的表1、表2、表3的方式来决定。在本实施例中,前向运动矢量和后向运动矢量的最大传送个数分别为2,因此,在像块内,运动矢量最多可传送4个。而且,在像块内的前向或者后向运动矢量的传送个数为2的情况下,这两个运动矢量的传送顺序可以预定。例如,表1中,在以埸为基础预测的情况下,被预测埸为第一埸的运动矢量先传送,被预测埸为第二埸的运动矢量后传送。还有,表2中,在16×8以埸为基础预测的情况下,上部运动矢量先传送,下部运动矢量后传送。本实施例中的运动补偿电路18,以与这种传送顺序相同的顺序输出运动矢量S8。
表1.图像结构为帧(隔行扫描)图像的情况
预测类型 |
运动矢量的个数 |
运动矢量(MV)的格式 |
以埸为基础的预测 |
2 |
埸 |
以帧为基础的预测 |
1 |
埸 |
双元预测 |
1 |
埸 |
表2.图像结构为埸图像的情况
预测类型 |
运动矢量的个数 |
运动矢量(MV)的格式 |
16×16以埸为基础的预测 |
1 |
埸 |
16×8以埸为基础的预测 |
2 |
埸 |
双元预测 1 |
埸 |
表3.图像结构为逐行扫描图像的情况
预测类型 |
运动矢量的个数 |
运动矢量(MV)的格式 |
16×16以埸为基础的预测 |
1 |
帧 |
16×8以埸为基础的预测 |
2 |
帧 |
8×8以埸为基础的预测 |
1 |
帧 |
在本实施例中,图2矢量差分单元27中的寄存器组81,例如,如图3所示那样地构成。作为寄存器组81备有用来存储运动矢量的四个寄存存储器PMV1~PMV4。
而且,使前向运动矢量和后向运动矢量根据在像块内的传送顺序,分别与寄存存储器PMV1~PMV4 1∶1地对应起来。具体地讲,像块内第一传送的前向运动矢量存储在寄存存储器PMV1中。像块内第二传送的前向运动矢量存储在寄存存储器PMV2中。像块内第一传送的后向运动矢量存储在寄存存储器PMV3中。像块内第二传送的的后向运动矢量存储在寄存存储器PMV4中。这样,在本实施例中,各个运动矢量在像块内的传送顺序就成为表示该运动矢量存储在寄存存储器PMV1~PMV4中的哪一个寄存器内的标号了。
换句话说,在本实施例中,把标号“1”~“2”加到像块内前向运动矢量的传送顺序上、把标号“3”~“4”加到后向运动矢量的传送顺序上,使上述寄存存储器PMV1~PMV4与具有各个标号的运动矢量1∶1地对应起来。还有,图3中寄存存储器PMV1~PMV4的各个输入端子a~d与图2中开关80的对应被切换端子相连,输出端子e~h与图2中开关82的对应被切换端子相连。
表4示出运动矢量传送时比特流的语法。
表4
001 motion_vector()f/{bit stream·syntax of motion vector/
002 motion_horizontal_code;/horizontal component X of motion vector/
003 motion_vertical_code;/vertical component Y of motion vector/
004 }
005
006 forward_filed_motion_vector(){
007 motion_vertical_field_select;/field motion vector reference·parity/
008 motion_vector();
009 }
010
011 backward_field motion_vector(){
012 motion_vertical_field_select;/field motion vector reference·parity/
013 motion_vector();
014 }
015
016 forward_motion_vector(){/bit stream·syntax with respect to forward vector/
017 if(motion_vector_count==1){/when No.of motion vectors is 1/
018 if(mv_format==frame)(/case where mv_format is frame/
019 motion_vector();/Index_1(→PMV1),PWV2=PWV1/
020 } else(/case where mv_format is field/
021 forward_field_motion_vector();Index_1(→PMV1),PMV2=PMV1/
022 if(dmv==1)1/case of Dual_prime/
023 dmv_horizontal;sub motion vector/
024 dmv_vertical;/sub motion vector/
025 }
026 }
027 } else{/motion_vector_count==2;when No.of motion vectors is 2/
028 forward_field_motion_vector();/Index_1(→PMV1)/
029 forward_field_motion_vector();/Index_2(→PMV2)/
030 }
031 }
032
033 backward_motion_vector()(/bit stream·syntax with respect to backward vector/
034 if(motion_vector_count==1{/when No.of motion vectors is 1/
035 if(mv_format==frame)(/case where mv_format is frame/
036 motion_vector();/Index_3(→PMV3),PMV4=PMV3/
037 } else{/case where mv_format is field/
038 backward_field_motion_vector();Index_3(→PMV3),PMV4=PMV3/
039 if(dmv==1){/case of Dual_prime/
040 dmv_horizontal;/sub motion vector/
041 dmv_vertical;/sub motion vector/
042 }
043 }
044 } else(/motion_vector_count==2;when No,ofmotion vectors is 2/
045 backward_field motion_vector();/Index_3(→PMV3)/
046 backward_field_motion vector();/Index_4(→PMV4)/
047 }
048 }
表4中,函数""forward_motion_vector()""是与前向运动矢量有关的函数;函数"backward_motion_vector()"是与后向运动矢量有关的函数。"/*"和"*/"所包围的辞句是注释。如表4所示,使寄存存储器PHV分别与传送的各个运动矢量对应起来。在这里,虽然使用了所谓"mv_format、"motion_vector_count"等参数,但是,它们是以表1~表3为基础给出的。如表1、表2所示,"mv_format"有“帧"和“埸”两种类型。埸运动矢量参考的奇偶性基本加到“埸”类型的矢量上。如表1~表3所示,"motion_vecfor_count"是在一个像块中前向或后向矢量的传送个数。
下面说明"forward_motion_vector()"。首先,在"motion_vector_count"为1个(第017行)的情况下,把运动矢量的信息存入寄存存储器PHV1中。还有,在"motion_vector_count"为2个的情况下,把第一传送的运动矢量信息(028行)存入寄存存储器PMV1中,把第二传送的运动矢量信息(第029行)存入寄存存储器PMV2中。更详细地说,在运动矢量信息的传送个数为1个(第017行)的情况下,分支成两条路,即"mv_format"为“帧”的情况(第018行)和mv_format"为“埸”的情况(第020行)。在mv_format"为“埸”、且,”dmv==1"的情况下(第022行),"prediction_type"为"Dual_prime",传送"dmv_horizontal"和"dmv_vertical"。这些都是预测类型为"Dual_prime"时的副运动矢量。对于"backward_motion_vector()",情况是同样的。
再有,在前向运动矢量传送个数是一个的像块中,更新寄存存储器PMV1时,以相同的数值去更新寄存存储器PMV2。还有,在后向运动矢量传送数是一个的像块中,更新寄存存储器PMV3时,以相同的数值去更新寄存存储器PMV4。
下面,用上述图2的构成来说明上述表4所说明的比特流语法中的动作情况。
图2中,接收通过端子70输入的上述运动矢量信号S8以后,运动矢量信号标志发生器87输出运动矢量信号标志S86。该运动矢量信号标志S86在运动矢量计数器88中计数。还有,通过端子71的上述MB起始标志S300一建立,就把运动矢量计数器88清零。来自运动矢量计数器88的运动矢量计数信号S87输入到寄存器标号指定信号发生器89上。输入到寄存器标号指定信号发生器89上的还有:通过端子72、73、74的上述运动补偿方式信号S9、预测类型信号S40、以及图像结构信号S26。
根据上述图像结构信号S26和预测类型信号S40,可知在像块内前向运动矢量或者后向运动矢量的传送个数(motion_vector_count);进而,根据运动补偿方式信号S9可知在像块内传送的全部运动矢量的传送个数。例如,在"motion_vector_count"为2,运动补偿方式信号S9为双向预测方式的情况下,因为在像块内传送运动矢量的顺序为:两个前向运动矢量、两个后向运动矢量,所以,在像块内的全部运动矢量的传送个数为4个。
根据这一信息,寄存器标号指定信号发生器89,从运动矢量计数信号S87产生、并且输出寄存器标号指定信号S88。例如,在上述图3的例子中,运动矢量计数信号S87之值等于1时,在寄存器组81中指定寄存存储器PMV1;运动矢量计数信号S87之值等于2时,在寄存器组81中指定寄存存储器PMV2;运动矢量计数信号S87之值等于3小时,在寄存器组81中指定寄存存储器PNV3;运动矢量计数信号S87之值等于4时,在寄存器组81中指定寄存存储器PMV4。
还有,作为另一个例子,"motion_vector_count"为1、运动补偿方式信号S9为后向预测方式的情况下,因为像块内传送的全部运动矢量的传送个数为一个后向矢量,所以,当上述运动矢量计数信号S87之值等于1时,在寄存器组81中指定寄存存储器PMV3。
上述寄存器组81接收上述寄存器标号指定信号S88以后,把存储在指定寄存器中的运动矢量信号S82通过开关82而输出。
根据需要,在比例变换A的比例变换器84中,以来自端子75的预测类型信号S40为基础,按照从切换器85输出的比例指令信号S85(比例指令信号A)对寄存器输出的运动矢量信号S82进行比例变换以后,把它输入到差分电路86上,计算它与当前输入的运动矢量信号S8之差,这样,得到差分运动矢量信号S50,该差分运动矢量信号S50从端子76输出。
另一方面,根据需要,在比例变换B的比例变换器83中,按照从上述切换器85输出的比例指令信号S83(比例指令信号B)对当前输入的运动矢量信号S8进行比例变换以后(已比例变换的运动矢量信号S80),通过开关80写入由上述寄存器标号指定信号S88指定的寄存器中,重新存储起来。
还有,上述比例变换器84和比例变换器83被使用在计算以帧为参考的运动矢量与以埸为参考的运动矢量之间的差分运动矢量时的空间比例调整、或被使用在计算一直到参考埸的时间距离不同的运动矢量之间的差分矢量时由时间轴引起的比例调整等方面。
还有,该矢量差分单元27中寄存存储器PMV的清零在通过端子77的运动补偿方式信号S9为帧内编码方式的像块及来自同一端子77的片起始标志S301建立的像块中进行,这时,寄存器组81中的全部寄存器被清零。利用寄存器清零指令器78指示寄存器清零。
在本实施例中,如上所述那样地构成运动矢量的差分单元27。还有,在上述实施例中,虽然运动补偿电路18中运动矢量S8的输出顺序与预定的运动矢量传送顺序是相同的,如果二者不相同,也能够适用。但是,由于在这种情况下,差分运动矢量S50向VLC单元20输入的顺序最终必须与上述传送顺序相同,所以,必须有多余的结构,把被预测的埸奇偶性信号送到寄存器标号指定信号发生器89上,以变换差分运动矢量S50的输出顺序。
下面以图4为基础说明图1中跳跃像块判定单元28的构成。
在图4中,运动补偿预测误差信号S16送到跳跃像块判定单元28的端子96上。除了上述运动补偿预测误差信号S16以外,上述差分运动矢量信号S50、来自图1中端子4的运动矢量信号S8、运动补偿方式信号S9、图像结构信号S26、预测类型信号S40、来自图1中端子5的埸运动矢量参考奇偶性信号S41、副运动矢量信号S42、被预测埸的奇偶性信号S43和图像编码类型信号S27也送到该跳跃像块判定单元28上。即,运动矢量信号S8、差分运动矢量信号S50、运动补偿方式信号S9、预测类型信号S40、埸运动矢量参考的奇偶性信号S41、副运动矢量信号S42、被预测埸的奇偶性信号S43、图像编码类型信号S27和图像结构信号S26输入到图4中端子95上,把这些信号存储到用于存储当前像块参数的存储器91中。
在非零系数判定单元94中判定:在像块运动补偿预测误差信号S16中是否存在应该传送的信号。在判定单元94判定存在着应该传送的信号的情况下,就把这一事实通知给判定单元93,判定单元93收到该通知以后,把跳跃像块标志S90置位为“FALSE”(“错误”),并且将该标志S90输出。
另一方面,在不存在应该传送的预测误差信号的情况下(即,像块运动补偿预测误差信号S16的系数全部为零),判定单元94以“TRUE”(“正确”)信号通知判定单元93。这时,判定单元93进而对于存储以前像块参数的存储器92的内容与上述存储器91的内容进行比较判定。
在上述判定单元93中,图像编码类型信号S27为P图像的情况下,对下列条件进行比较判定:
第一,运动矢量信号S8为零;
第二,运动补偿方式信号S9为前向预测;
第三,在预测类型信号S40为埸预测的情况下,埸运动矢量参考的奇偶性信号S41与被预测埸的奇偶性相同;
第四,副运动矢量信号S42为零。
满足这些条件时,上述判定单元93把“TRUE”输出到跳跃像块标志S90上;当不满足这些条件时,跳跃像块标志S90为“FALSE”。跳跃像抉标志S90通过端子97输出,送到前述图1中VLC单元20上。
还有,在上述判定单元93中,图像编码类型信号S27为B图像的情况下,对下列条件进行比较判定:
第一,差分运动矢量信号S50为零;
第二,在存储器91和存储器92的内容中,运动补偿矢量信号S9、预测类型信号S40、埸运动矢量参考的奇偶性信号S41、副运动矢量信号S42、被预测埸奇偶性信号S43分别相同。
满足这些条件时,把“TRUE”输出到跳跃像块标志S90上;当不满足这些条件时,跳跃像块标志S90为“FALSE”。
再有,在片的头部和最终的像块中,即使在满足上述条件的情况下,也禁止跳跃像块。
在跳跃像块标志S90为“FALSE”的情况下,把存储器91的内容向存储器92复制。对跳跃像块标志S90为“TRUE”的像块来说,VLC单元20什么数据也不传送。
按照上述来构成跳跃像块判定单元28。
进而,与跳跃像块的判定有关,说明另一实施例。在另一实施例中,进而限定在上述实施例中P图像和B图像跳跃像块的成立条件如下。即,在图像结构为帧结构的情况下,假定预测类型只有帧预测(以帧为基础的预测)。在图像结构为埸结构的情况下,假定预测类型只有16×16的埸预测(16×16以埸为基础的预测)。即,B图像的预测类型也与前一个像块的预测类型无关了。
这时跳跃像块的成立条件总括如下。在非零判定单元94判定像块不存在应该传送的信号的情况下,判定单元93进而判定各像块是否满足上述成立条件。首先,在图像编码类型信号S27为P图像、图像结构信号S26为埸结构的情况下,成立条件如下:
第一,运动矢量信号S8为零;
第二,运动补偿方式信号S9为前向预测;
第三,预测类型信号S40为16×16的埸预测;
第四,埸运动矢量参考的奇偶性信号S41与被预测埸的奇偶性信号S43的奇偶性相同。
在图像编码类型信号S27为P图像、图像结构信号S26为帧结构的情况下,成立条件如下:
第一,运动矢量信号S8为零;
第二,运动补偿方式信号S9为前向预测;
第三,预测类型信号S40为帧预测。
在图像编码类型信号S27为B图像、图像结构信号S26为埸结构的情况下,成立条件如下:
第一,差分运动矢量信号S50为零;
第二,运动补偿方式信号S9与前一个像块相同;
第三,预测类型信号S40为16×16的埸预测;
第四,埸运动矢量参考的奇偶性信号S41与前一个像块相同;
第五,被预测埸的奇偶性信号S43与前一个像块相同。
还有,在图像编码类型信号S27为B图像、图像结构信号S26为帧的情况下,成立条件如下:
第一,差分运动矢量信号S50为零;
第二,运动补偿方式信号S9与前一个像块相同;
第三,预测类型信号S40为帧预测。
回到图1,在来自VLC单元20的输出存储到缓冲存储器21以后,比特流以一定的传送比特率从输出端子22输出。
按照上述来构成活动图像编码装置,它进行活动图像的编码、比特流的输出、编码图像的输出。
下面,以图5为基础说明具有本发明运动矢量反差分单元的活动图像解码装置(解码器)。
图5中,从输入端子50输入的比特流信号在存储到缓冲存储器51中以后,从这里送到反VLC单元52上。
反VLC单元52一检出解码图像的头部,就建立图像起始标志S102,把该图像起始标志S102送到参考图像控制器58上。该图像起始标志S102通过端子67和61送到上述参考控制器58上。图像起始标志S102一建立,上述参考图像控制器58就输出后述参考图像指令信号S58、S59,把这两个信号送往埸存储器组57。
反VLC单元52一检出解码片的头部,就建立片起始标志S211。
同样地,上述图像起始标志S102也送到输出图像控制器59上。在图像起始标志S102建立以后,输出图像控制器59就输出后述输出图像指令信号S60,把输出图像指令信号S60送往埸存储器组57。
从反VLC单元52得到的、用来控制本发明活动图像解码装置的控制信息存储到存储器201中。该控制信息作为控制信号S104输出。图像结构信号S201、图像编码类型信号S202从存储器201输出。把这些信号送到上述反VLC单元52上。
从反VLC单元52取出的编码像块信号S50送往二维信号发生部分53。MB起始标志S210与编码像块信号S50同步地从反VLC单元52输出。
在上述二维信号发生部分53中,上述编码像块信号S50变成二维块信号S51。把该二维块信号S51送往块信号解码部分54,在这里,进行解码,变成块重现差分信号S52。
作为上述块信号解码部分54的构成可以采用包括反量化单元和反离散余弦变换(DCT)单元的构成,该反量化单元根据从反VLC单元52取出的量化表信号S57对量化系数进行反量化,反DCT单元对该量化单元输出的系数进行反DCT变换。
作为二维信号发生部分53的构成可以采用包括反扫描变换器的构成,该反扫描变换器以从低频到高频的顺序对于上述编码信号S50进行反锯齿形扫描。
另一方面,附属于从反VLC单元52取出的、当前解码对象的像块上的差分运动矢量S90,在后述运动矢量反差分单元202中重新构成。来自反差分单元202的重新构成运动矢量信号S55、从上述反VLC单元52输出,通过存储器204的运动补偿方式信号S56、预测类型信号S91、埸运动矢量参考的奇偶性信号S92、副运动矢量信号S93以及被测埸的奇偶性信号S94等送往运动补偿器56。接收这些信号以后,该运动补偿器56指示从存储着已解码重现的图像的埸存储器组57中输出图像信号。
具体地讲,把利用前述参考图像指令信号S58从埸存储器组57中指定的重现图像识别为参考图像,指示输出位于由补偿方式信号S56、运动矢量信号S55、预测类型信号S91、埸运动矢量参考的奇偶性信号S92、副运动矢量信号S93和被预测埸奇偶性信号S94指定的参考图像中某一地址上的块图像信号。
上述运动补偿器56变成根据运动补偿方式信号S56而自适应地工作,以像块为单位进行以下四种工作。另外,块的大小例如是16×16个像素、16×8个像素、8×8个像素。
即,作为这种情况下的四种工作方式,有:
第一种,来自以前重现图像的运动补偿方式;
第二种,来自未来重现图像的运动补偿方式;
第三种,来自以前和未来两个重现图像的运动补偿方式[对于来自以前重现图像的参考块和来自未来重现图像的参考块中的每一个像素进行线性运算(例如,计算平均值)];
第四种,无运动补偿(即,帧内编码方式。在这种情况下,块图像信号S54的输出等于零)。
上述运动补偿器56根据运动补偿方式信号S56,选择这四种工作方式中的某一种。
在加法器55中,把来自上述块信号解码部分54的块重现差分信号S52、与从上述运动补偿器56输出的块图像信号S54每一个像素地相加,所得的结果就是块重现信号S53。块重现信号S53存储到由当前图像指令信号S59从埸存储器57中指定的埸存储器中。
按照上述那样地从比特流重新构成活动图像。
在埸存储器组57中存储的重现图像里,从端子60输出按照前述输出图像指令信号S60指定的那个重现图像。
再有,控制信号S104、图像结构信号S201和图像编码类型信号S202通过端子62送到上述运动补偿器56、参考图像控制器58和输出图像控制器59上。
下面以图6为基础说明前述运动矢量的反差分单元202。
图6中,在反差分装置202中重新构成通过端子311送来的上述差分运动矢量信号S90。把片起始标志S211、MB起始标志S210、差分运动矢量信号S90、运动补偿方式信号S56、预测类型信号S91以及图像结构信号S201输入到矢量反差分单元202上。即,上述MB起始标志S210送到端子312上、运动补偿方式信号S56送到端子313上、预测类型信号S91送到端子314及316上、图像结构信号S201送到端子315上。
根据上述图像结构信号S201和预测类型信号S91,可知像块内前向差分运动矢量或者后向差分运动矢量的接收个数这些由前述表1~表3的方式来决定。在本实施例中,前向差分运动矢量和后向差分运动矢量的最大接收个数分别为2,因此,在像块内,差分运动矢量最多可接收4个。
为此,在本实施例中,图6矢量反差分单元202中的寄存器组305如图3所示那样地构成。在这里,与前述同样地备有用来存储运动矢量的四个寄存存储器PMV1~PMV4。
而且,使前向差运动分矢量和后向差分运动矢量根据在像块内的接收顺序,分别与寄存存储器PMV1~PMV4 1∶1地对应起来。具体地讲,像块内第一接收的前向差分运动矢量与存储在寄存存储器PMV1中的重新构成运动矢量相加。像块内第二接收的前向差分运动矢量与存储在寄存存储器PMV2中的重新构成运动矢量相加。像块内第一接收的后向差分运动矢量与存储在寄存存储器PMV3中的重新构成运动矢量相加。还有,像块内第二接收的后向差分运动矢量与存储在寄存存储器PMV4中的重新构成运动矢量相加。这样,在本实施例中,各个运动矢量在像块内的接收顺序就成为表示各差分运动矢量与存储在寄存存储器PMV1~PMV4中哪一个寄存器里的重新构成运动矢量相加的标号了。
换句话说,在本实施例中,把标号“1”~“2”加到像块内前向差分运动矢量的接收顺序上、把标号“3”~“4”加到后向差分运动矢量的接收顺序上,使上述寄存存储器PMV与具有各个标号的运动矢量1∶1地对应起来。
运动矢量比特流的语法如前述表4所示,在这里,还是如表中所示,使寄存器PMV与传送的运动矢量分别对应起来。关于表4的说明,就是在编码装置那一节中所述的那样。
再有,在这里,在前向差分运动矢量接收个数是一个的像块中,更新寄存存储器PMV1时,以相同的数值去更新寄存存储器PMV2。还有,在后向差分运动矢量接收个数是1个的像块中,更新寄存存储器PMV3时,以相同的数值去更新寄存存储器PMV4。
利用图6说明上述寄存存储器PMV的切换动作。
图6中,接收通过端子311输入的上述差分运动矢量信号S90以后,差分运动矢量信号标志发生器308输出差分运动矢量信号标志S306。该差分运动矢量信号标志S306在差分运动矢量计数器309中计数。还有,上述MB起始标志S210一建立,就把差分运动矢量计数器309清零。来自运动矢量计数器309的运动矢量计数信号S307输入到寄存器标号指定信号发生器310上。输入到寄存器标号指定信号发生器310上的还有:上述运动补偿方式信号S56、预测类型信号S91、以及图像结构信号S201 。
根据上述图像结构信号S201和预测类型信号S91,可知在像块中前向差分运动矢量或者后向差分运动矢量的传送个数(motion_vecfor_count);进而,根据运动补偿方式信号S56,可知在像块内传送的全部运动矢量的传送个数。例如,在"motion_vector_count"为2个,运动补偿方式信号S56为双向预测方式的情况下,因为在像块内接收运动矢量的顺序为:两个前向差分运动矢量、两个后向差分运动矢量,所以,全部差分运动矢量的传送个数为4个。
根据这一信息,寄存器标号指定信号发生器310从上述运动矢量计数信号S307产生并且输出寄存器标号指定信号S308。如果根据寄存器标号指定信号S308,例如,在上述例子中,运动矢量计数信号S307之值等于1时,在寄存器组305中指定寄存存储器PMV1;运动矢量计数信号S307之值等于2时,在寄存器组305中指定寄存存储器PMV2;运动矢量计数信号S307之值等于3时,在寄存器组305中指定寄存存储器PMV3;运动矢量计数信号S307之值等于4时,在寄存器组305中指定寄存存储器PMV4。
作为另一个例子,在"motion_vector_count"为1个、运动补偿方式信号S56为后向预测方式的情况下,因为后向差分运动矢量为一个,所以,当运动矢量计数信号S307之值等于1时,像块内传送的全部差分运动矢量的传送个数,在寄存器组305中指定寄存存储器PMV3。
上述寄存器组305接收上述寄存器标号指定信号S308以后,把存储在指定寄存器中的运动矢量信号S302通过开关303而输出。
根据需要,在比例变换C的比例变换器302中,按照从切换器307(在切换器307上送有上述预测类型信号S91)输出的比例指令信号S304(比例指令信号C)对输出运动矢量信号S302进行比例变换以后,把这(已比例变换的输出运动矢量信号S302)输入到加法电路301上,在这里,计算它与当前输入的上述差分运动矢量信号S90之和,这样,重新构成运动矢量信号S55。该运动矢量信号S55作为重新构成的运动矢量,从端子317输出。
另一方面,根据需要,在比例变换D的比例变换器306中,按照从上述切换器307输出的比例指令信号S305(比例指令信号D)对当前重新构成的运动矢量信号S55进行比例变换以后,通过开关304写入由上述寄存器标号指定信号S308指定的寄存器组305的寄存器PMV中,重新存储起来。
再有,上述比例变换器302和比例变换器306被使用,在计算以帧为参考的运动矢量与以埸为参考的运动矢量之间的差分运动矢量时的空间比例调整、或被使用在计算一直到参考埸的时间中距离不同的运动矢量之间的差分矢量时由时间轴引起的比例调整等方面。
图6中,反差单元202中寄存存储器PMV的清零在运动补偿方式信号S56为帧内编码方式的像块及片起始标志S211建立的像块进行,这时,寄存器组305中的全部寄存器被清零。利用寄存器清零指令器318指示寄存器组305清零。通过图5中端子68和图6中端子319的片起始标志S211、运动补偿方式信号S56、通过图5中端子64和图6中端子319的图像编码类型信号S202和通过图5中端子63和图6中端子319的跳跃像块标志S95送到寄存器清零指令器318上。
按照上述那样来构成矢量反差分单元202。
下面回到图5,说明解码单元方面跳跃像块的控制。
图5中,接收了像块以后,该像块在图像上的地址可从像块的头部信息得到。即,把在上述反VLC单元5中得到的像块地址信号S94输入到像块地址比较器203中。
在该像块地址比较器203中,存储着前一个接收像块的地址,把这个地址与上述像块地址信号S94加以比较。其结果,如果像块地址是不连续的,即,其差为2以上时,可知存在着跳跃像块。该差值减掉1所得的数,就是跳跃像块的个数。而且,像块地址比较器203建立跳跃像块标志S95。
跳跃像块标志一建立,本实施例的解码单元就是进入跳跃像块处理。首先,上述跳跃像块标志S95一建立,前述反VLC单元52就把零作为上述编码块信号S50输出。因此,这时,前述块重现差分也变成零。
在这里,例如,在前述图像编码类型信号S202为P图像的情况下:
第一,寄存器清零指令器318把运动矢量的上述反差单元202中全部寄存器PMV清零;
第二,反差分单元202把零作为运动矢量信号的S55输出;
第三,反VLC单元52把前向预测作为运动补偿方式信号S56输出;
第四,反VLC单元52,在图像结构信号S201为帧结构的情况下,假定预测类型信号S91为"Frame based prediction";在图像结构信号S201为埸结构的情况下,假定预测类型信号S91为"16×16 Field based prediction";在图像结构信号逐行扫描的情况下,假定预测类型信号S91为"16×16 Frame based prediction"
第五,反VLC单元52使埸运动矢量参考的奇偶性信号S92与被预测埸的奇偶性信号S94相同;
第六,把零作为副运动矢量信号S93输出。
还有,例如,在图像编码类型信号S202为B图像的情况下:
第一,反差分单元202把存储在寄存存储器PMV中的值作为运动矢量信号输出;
第二,存储器204输出存储着的、刚刚解码的像块运动补偿方式信号S56,预测类型信号S91,埸运动矢量参考的奇偶性信号S92,副运动矢量信号S93和被预测埸奇偶性信号S94。
进而,在编码器方面,在利用另一个实施例判定了跳跃像块的情况下,解码单元的处理总括如下。首先,在图像编码类型信号S202为P图像、图像结构信号S201为埸结构的图像中,建立了跳跃像块标志S95的情况下:
第一,寄存器清零指令器78把运动矢量的上述反差分单元202中全部寄存器PMV清零;
第二,反差分单元202把零作为运动矢量信号S55输出到运动补偿器56上;
第三,反VLC单元52作为运动补偿方式S56指示运动补偿器56进行前向预测;
第四,反VLC单元52作为预测类型信号S91指示运动补偿器56进行16×16的埸预测;
第五,反VLC单元指令运动补偿器56把与预测埸的奇偶性信号S94相同的奇偶性作为运动矢量参考的奇偶性信号S92输出。
在图像编码类型信号S202为P图像、图像结构信号S201为帧结构的图像中,建立了跳跃像块标志S95的情况下:
第一,寄存器清零指令器78把运动矢量的上述反差分单元202中全部寄存器PMV清零;
第二,反差分单元202把零作为运动矢量信号S55输出到运动补偿器56上;
第三,反差单元52作为运动补偿方式S56指示运动补偿器56进行前向预测;
第四,反VLC单元52作为预测类型信号S91指示运动补偿器56进行帧预测;
在图像编码类型信号S202为B图像、图像结构信号S201为埸结构的图像中,建立了跳跃像块标志S95的情况下:
第一,反差分单元202把存储在寄存存储器PMV中的值作为运动矢量信号S55输出到运动补偿器56上;
第二,存储器204把存储着的、刚刚解码的像块运动补偿方式信号S56,埸运动矢量参考的奇偶性信号S92和被预测埸的奇偶性信号S94输出到运动补偿器56上;
第三,反VLC单元52作为预测类型信号S91指示运动补偿器56进行16×16的埸预测。
还有,在图像编码类型信号S202为B图像、图像结构信号S201为帧结构的图像中,建立了跳跃像块标志S95的情况下:
第一,反差分单元202把存储在寄存存储器PMV中的值作为运动矢量信号S55输出到运动补偿器56上;
第二,存储器204把存储着的、刚刚解码的像块运动补偿方式信号S56输出到运动补偿器56上;
第三,反VLC单元52作为预测类型信号S91指示运动补偿器56进行帧预测。
跳跃像块的处理按照上述来进行。这种处理只重复跳跃像块个数那样多次。解码装置以得到的信号为基础,进行与一般像块相同的解码。
当得到不是跳跃像块的像块时,即,在通过端子66送来的跳跃像块标志S95为“FALSE”的情况下,就以该像块的运动补偿方式信号S56、预测方式信号S91、埸运动矢量参考奇偶性信号S92、副运动矢量信号S93和被预测埸奇偶性信号S94去更新存储器204的内容。图像结构信号S201和图像编码类型信号S202也通过端子65送到存储器204上。
按照上述来构成活动图像解码装置,从比特流重现图像。
最后,说明有关本实施例的具体工作情况。
图7示出用本实施例实现前述先有技术编码器方面第一差分单元例子(图18)时的工作情况。
图7中,像块MB0上部的运动矢量为(5,1)(1),像块MB0下部的运动矢量为(5,5)(2),像块MB1上部的运动矢量为(5,5)(3),像块MB1下部的运动矢量为(5,5)(4),像块MB2上部的运动矢量为(5,5)(5),像块MB2下部的运动矢量为(5,5)(6)。还有,前述图2(或,图3)中寄存存储器PMV1和PMV2里作为起始值存储的是(0,0)。
在图7的情况下,在像块MB0中,上部运动矢量(5,1)(1)与寄存存储器PMV1中的起始值(0,0)的差分为(5,1)(1)-PMV1=(5,1),把这个值作为MB0上部的差分运动矢量而输出。运动矢量(5,1)(1)存储到寄存存储器PMV1中。还有,下部运动矢量(5,5)(2)与寄存存储器PMV2中的起始值(0,0)的差分为(5,5)(2)-PMV2=(5,5),把这个值作为MB0下部差分运动矢量而输出。下部运动矢量(5,5)(2)存储到寄存存储器PMV2中。像块MB1中,上部运动矢量(5,5)(3)与上述寄存存储器PMV1中的值(5,1)(1)的差分为(5,5)(3)-PMV=(0,4),把这个值作为MB1上部的差分运动矢量而输出。上部运动矢量(5,5)(3)存储到寄存存储器PMV1中。还有,像块NB1的下部运动矢量(5,5)(4)与上述寄存存储器PMV2中的值(5,5)(2)的差分为(5,5)(4)-PMV2=(0,0),把这个值作为MB1下部的差分运动矢量而输出。下部运动矢量(5,5)(4)存储到寄存存储器PMV2中。同样地,在像块MB2中,上部运动矢量(5,5)(5)与上述寄存存储器PMV1中的值(5,5)(3)的差分为(5,5)(5)-PMV1=(0,0),把这个值作为MB2上部的差分运动矢量而输出。上部运动矢量(5,5)(5)存储到寄存存储器PMV1中。还有,像块MB2的下部运动矢量(5,5)(6)与上述寄存存储器PMV2中的值(5,5)(4)的差分为(5,5)(6)-PMV2=(0,0),把这个值作为MB2下部的差分运动矢量而输出。下部运动矢量(5,5)(6)存储到寄存存储器PMV2中。
这样,像块MB2没有应该传送的预测误差信号,运动补偿方式等与刚出现的像块相同。在这种情况下,像块MB2变成为跳跃像块。即,在像块MB2变成跳跃像块的情况下,在解码器方面,便从刚出现的像块MB1来复制运动矢量。
还有,图8示出解码装置方面的工作情况。
即,图8中,假定:作为上述图7例子中的差分运动矢量可以得到:像块MB0上部的差分运动矢量为(5,1)(1),像块MB0下部的差分运动矢量为(5,5)(2),像块MB1上部的差分运动矢量为(0,4)(3)和像块MB1下部的差分运动矢量为(0,0)(4),假定像块MB2为跳跃像块。还假定:前述图6(或,图3)中,上述寄存存储器PMV1和PMV2里作为起始值存储的是(0,0)。
在图8例子的情况下,在像块MB0中,上部差分运动矢量(5,1)(1)与寄存存储器PMV1的起始值(0,0)相加,得到重新构成的运动矢量(5,1)(1)+PMV1=(5,1),把这个值送入寄存存储器PMV1中。还有,在像块MB0中,上述下部差分运动矢量(5,5)(2)与上述寄存存储器PMV2的起始值(0,0)相加,得到重新构成的运动矢量(5,5)(2)+PMV2=(5,5),把这个值送入寄存存储器PMV2中。同样地,在像块MB1中,上部差分运动矢量(0,4)(3)与上述寄存存储器PMV1中的重新构成运动矢量(5,1)相加,得到重新构成的运动矢量(0,4)(3)+PMV1=(5,5),把这个值送入寄存存储器PMV1中。还有,在像块MB1中,上述下部差分运动矢量(0,0)(4)与上述寄存存储器PMV2中的重新构成运动矢量(5,5)相加,得到重新构成运动矢量(0,0)(4)+PMV2=(5,5),把这个值送入寄存存储器PMV2中。进而,在像块MB2中,因为它是跳跃像块,所以,上部复制(5,5)(5),下部复制(5,5)(6)作为重新构成运动矢量。
即,在图8的例子中,因为像块MB2是跳跃像块,所以可从寄存存储器PMV复制运动矢量,运动补偿方式也从刚刚的像块MB1复制。这样,如根据本实施例,对跳跃像块也能够得到正确的重新构成运动矢量。
构成具有上述特征的活动图像编码和解码装置。