运动图像的预测编码装置和译码装置

申请号 CN200510070071.X 申请日 1998-01-27 公开(公告)号 CN1728830A 公开(公告)日 2006-02-01
申请人 日本电信电话株式会社; 发明人 如泽裕尚; 清水淳; 上仓一人; 渡边裕;
摘要 一种具有全局 运动补偿 和局部运动补偿这2种预测模式的运动图像的预测编码方法,将不需要的代码字MCSEL即使是1位也削减,提高压缩效率。 编码器 在输出表示有无宏 块 类型和2个色差 信号 的DCT系数的代码字MCBPC后,只要不是 帧 内编码块时,就输出表示现在的宏块是利用全局运动补偿进行预测的还是利用局部运动补偿进行预测的代码字MCSEL。
权利要求

1.一种视频数据的预测编码设备,有选择地执行预测全体帧的全局运动的全局运动补偿处理和预测各的局部的运动的局部运动补偿处理,所述预测编码设备包括:代码字产生器,用于产生表示预测模式的代码字,所述代码字表示选择了所述全局运动补偿处理和所述局部运动补偿处理中的哪一种用来预测当前块;和代码字插入部件,用于接收所述代码字;如果将要处理的当前块为帧间编码块,则将所述代码字插入所述当前块的编码数据串中,并且是插入在表示所述当前块的编码方式的另一个代码字之后;在其它情况下,则不将表示所述预测模式的所述代码字插入所述数据串中。
2.按权利要求1所述的预测编码设备,其特征在于:在所述当前处理块为块跳跃时,总是选择所述全局运动补偿处理,同时在跳过的块中省略所述预测模式选择代码字。
3.一种将用预测编码设备编码的数据串进行译码的译码设备,其中,有选择地执行预测帧全体的全局运动的全局运动补偿处理和预测各块的局部运动的局部运动补偿处理,所述预测编码设备包括:代码字产生器,用于产生表示预测模式的代码字,所述代码字表示选择了所述全局运动补偿处理和所述局部运动补偿处理中的哪一种用来预测当前块;和代码字插入部件,用于接收所述代码字;如果将要处理的当前块为帧间编码块,则将所述代码字插入所述当前块的编码数据串中,并且插入在表示所述当前块的编码方式的另一个代码字之后;在其它情况下,所述译码设备包括:代码字提取部件,如果所述当前块已进行帧间编码,则从所述数据串中提取表示所述预测模式的所述代码字,而在其他情况下则不提取表示所述预测模式的所述代码字;和译码器,用于执行采用指示的预测方法的操作。
4.一种将用预测编码设备编码的数据串进行译码的译码设备,其中,有选择地执行预测帧全体的全局运动的全局运动补偿处理和预测各块的局部运动的局部运动补偿处理,所述预测编码设备包括:代码字产生器,用于产生表示预测模式的代码字,所述代码字表示选择了所述全局运动补偿处理和所述局部运动补偿处理中的哪一种用来预测当前块;和代码字插入部件,用于接收所述代码字;如果将要处理的当前块为帧间编码块,则将所述代码字插入所述当前块的编码数据串中,并且插入在表示所述当前块的编码方式的另一个代码字之后;在其它情况下,在其它情况下,则不将表示所述预测模式的所述代码字插入所述数据串中;其中在所述当前块是块跳跃时,总是选择所述全局运动补偿,在跳过的块中,省略表示所述预测方式的所述代码字,所述译码设备包括:代码字提取部件,在所述当前块已进行了块跳跃时,不提取表示所述预测模式的所述代码字;和译码器,用于执行与所述全局运动补偿处理对应的操作。
5.按权利要求1所述的预测编码设备,其特征在于:在所述当前块进行块跳跃时,将表示所述预测模式的所述代码字插入到所述编码数据串中,并且是插入在表示所述当前块有无块跳跃的代码字以后。
6.一种将用预测编码设备编码的数据串进行译码的译码设备,其中有选择地执行预测帧全体的全局运动的全局运动补偿处理和预测各块的局部运动的局部运动补偿处理,所述预测编码设备包括:代码字产生器,用于产生表示预测模式的代码字,所述代码字表示选择了所述全局运动补偿处理和所述局部运动补偿处理中的哪一种用来预测当前块;和代码字插入部件,用于接收所述代码字;如果将要处理的当前块为帧间编码块,则将所述代码字插入所述当前块的编码数据串中,并且插入在表示所述当前块的编码方式的另一个代码字之后;在其它情况下,在其它情况下,则不将表示所述预测模式的所述代码字插入所述数据串中;其中在所述当前块是块跳跃时,将表示所述预测模式的所述代码字插入到所述编码数据串中,并且是插入在表示所述当前块有/无块跳跃的代码字之后,所述译码设备包括:代码字提取部件,用于从所述编码数据串中提取表示所述预测模式的所述代码字;和译码器,用于根据表示的所述预测模式执行操作。

说明书全文

运动图像的预测编码装置和译码装置

申请是下述申请的分案申请:发明名称:运动图像的预测编码方法和译码方法;申请号:98804162.6;申请日:1998年1月27日。

技术领域

本发明涉及运动图像信号的编码方法和译码方法。

背景技术

在ITU-T推荐H.261、H.263及ISO/IEC11172-2(MPEG-1)、ISO/IEC 13818-2(MPEG-2)等现有的图像编码标准中,作为抑制运动图像的实际冗长性的手段,是使用运动补偿间预测。另外,对于推进现在产业的ISO/IEC 14496-2(MPEG-4)的检验模型,也采用同样的运动补偿方法。
运动补偿预测编码中,通常是将编码对象图像(当前帧)划分为16像素×16行的(以后,称为宏块),检测各宏块相对于参照图像(参照帧)的运动量(运动矢量:设平分量(运动量)为tx、垂直分量(运动量)为ty),对使与参照图像中当前帧的宏块对应的块偏移1个运动矢量的量而生成的预测图像与当前帧之间的帧间差分进行编码。
具体而言,就是与当前帧的坐标(x,y)的图像数据最匹配的图像,使用上述运动矢量(tx,ty)按下式那样对应而作为参照帧中的预测图像数据的坐标(x’,y’)。
X’=X+txY’=Y+ty即,不是参照帧中的相同位置(x,y)的像素值,通过将使其偏移1个运动矢量(tx,ty)的量的位置的像素值作为预测值,可以大幅度地提高帧间预测效率。
另一方面,已提案了预测由于摄像机的摇动、倾斜及变焦引起的整个画面的运动的全局运动补偿(H.Jozawa(如泽),“Coreexperimenton global motion compensation(P1)Version 5.0”,Descriptionof Core Experiments on Efficient Coding in MPEG-4 Video,December,1996)。下面,根据图3和图4简单地说明使用全局运动补偿的编码器、译码器的结构和处理流程。
开始,编码对象图像(数据)1(输入图像1)和参照图像(数据)3输入到全局运动检测部4,在此求对整个画面的全局运动参量5。作为这里所使用的运动模型的例子,有影射变换、双一次变换和仿射变换等。如泽等人的方式,不论对哪种运动模型都可以实施,不管运动模型的种类如何,下面,简单地说明这些典型的运动模型。
设当前帧的任意点的坐标为(x,y)、参照帧中所预测的对应点的坐标为(x’,y’)时,影射变换可以表示为下式x’=(ax+by+tx)/(px+qy+s)y’=(cx+dy+tx)/(px+qy+s)……(1)其中,a~d、p、q、s是常数。影射变换是2维变换的一般表现形式,通常,在式(1)中,多数称取s=1的为影射变换。另外,取p=q=0、s=1的是仿射变换。
其次,将双一次变换的公式表示如下x’=gxy+ax+by+txy’=hxy+cx+dy+ty……(2)其中,a~d、g、h是常数,即使取g=h=0,也可以如以下式(3)所示的那样成为仿射变换。
x’=ax+by+txy’=cx+dy+ty……(3)在以上的式中,tx、ty分别表示水平、垂直方向的平行运动量。参量a表示水平方向的放大/缩小或反相,参量d表示垂直方向的放大/缩小或反相。另外,参量b表示水平方向的剪断,参量c表示垂直方向的剪断。此外,a=cosθ、b=sinθ、c=-sinθ、d=cosθ时,表示度θ的旋转。a=d=1并且b=c=0时,牷与先有的平行运动模型等价。
如上所述,通过对运动模型使用仿射变换,可以表现平行运动、放大/缩小、反相、剪断、旋转等各种运动以及它们的自由的组合。在参量数更多的影射变换和双一次变换中,可以表现更复杂的运动。
由全局运动检测部4求出的全局运动参量5与存储器2存储的参照图像3一起输入到全局运动补偿部6。在全局运动补偿部6中,使根据全局运动参量5求出的各像素的运动矢量作用于参照图像3,生成全局运动补偿预测图像(数据)7。
另一方面,帧存储器2存储的参照图像3与输入图像1一起输入到局部运动检测部8。在局部运动检测部8中,对各16像素×16行的宏块检测输入图像1与参照图像3之间的运动矢量9。在局部运动补偿部10中,根据各宏块的运动矢量9和参照图像3生成局部运动补偿预测图像(数据)11。这就是在先有的MPEG等中使用的运动补偿方法。
其次,在预测模式选择部12中,在全局运动补偿预测图像7和局部运动补偿预测图像11中对各宏块选择关于输入图像1的误差小的一方。由预测模式选择部12所选择的预测图像13输入到减法器14,输入图像1与预测图像13间的差分图像15由DCT(离散余弦变换)部16变换为DCT系数17。从DCT部16得到的DCT系数17,由量化部18变换为量化指数19。量化指数19、全局运动参量5、运动矢量9、以及从预测模式选择部12输出的预测模式选择信息26由编码部101~104分别进行编码后,由复用部27’进行复用处理而成为编码器输出(编码位串)28’。
另外,在编码器和译码器中为了使参照图像一致,量化指数19由逆量化部20恢复为量化代表值21,再由逆DCT部22逆变换为差分图像23。差分图像23和预测图像13在加法器24中进行加法运算,成为局部译码图像25。该局部译码图像25存储到帧存储器2中,在下一个帧的编码时作为参照图像使用。
在译码器(图4)中,先由分离器29’将所接受的编码位串28’分离为已编码的量化指数19、预测模式选择信息26和运动矢量9和全局运动参量5这4个量,然后由译码部201~204分别进行译码。其次,帧存储器33存储的参照图像3(与图3所示的参照图像3相同)与译码后的全局运动参量5一起输入全局运动补偿部34。在全局运动补偿部34中,使全局运动参量5作用于参照图像3,生成和图3相同的全局运动补偿预测图像7。另一方面,参照图像3也输入局部运动补偿部35。在局部运动补偿部35中,使运动矢量9作用于参照图像3,生成和图3相同的局部运动补偿预测图像11。
然后,全局运动补偿预测图像7和局部运动补偿预测图像11输入预测模式选择部36。在预测模式选择部36中,根据译码后的预测模式选择信息26选择全局运动补偿预测图像7或局部运动补偿预测图像11,并将其作为预测图像13。
另一方面,译码后的量化指数19由逆量化部30恢复为量化代表值21,进而由逆DCT部31逆变换为差分图像23。差分图像23和预测图像13在加法器32中进行加法运算,成为局部译码图像25。该局部译码图像25存储到帧存储器33中,在下一个帧的译码时作为参照图像使用。
上述先有技术的全局运动补偿预测方法,在全局运动补偿的预测图像和局部运动补偿的预测图像中对各宏块选择预测误差小的一方,可以提高帧全体的预测效率。为了实现这一点,使用全局运动补偿或局部运动补偿向译码器指示各块是否已进行了预测,所以,必须将表示使用哪个预测方法的代码字插入到编码数据串中。因此,在发明者对现在标准化作业中的MPEG-4的提案中,宏块的编码数据结构(语法)如以下表1所示。表1使用模拟C代码描述编码数据串的并列,也表示出了编码器及译码器的运动作。另外,图5是示意性地表示表1的数据结构(位流结构)的图,按D1~D8所示的代码字、运动矢量、DCT系数信息(量化指数)的顺序构成数据。
【表1】
在MPEG-4中,先有的帧称为图像·目标·平面(VOP)。VOP的类型有以下表2所示的4种。
【表2】
I-、P-、B-VOP与MPEG-1及MPEG-2中的I-、P-、B-图像相同。SPRITE-VOP是在MPEG-4中新加的概念,是根据运动图像序列中的1个图像限幅全体的背景图像(静的子画面)及通过全局运动补偿而得到的运动的子画面所预测的VOP。在表1的语法中,为了简单起见,省略了I-VOP和B-VOP部分。另外,在MPEG-4中,为了将任意形状的图像目标进行编码,还记载了形状信息,但是,此处为了简单起见,也省略了。
在与表1对应的全局运动补偿预测编码器中,首先在VOP类型为SPRITE时,作为预测模式选择信息26牷输出MCSEL这样的1位的代码字(D1)。MCSEL是表示现在的宏块是利用全局运动补偿进行预测的还是利用局部运动补偿进行预测的标志。在是全局运动补偿时,就输出MCSEL=1;在是局部运动补偿时,就输出MCSEL=0。
其次,在VOP类型为P或SPRITE时,就输出COD这样的1位的代码字(D2)。COD是表示是否跳跃过现在的宏块的标志,在不跳跃而进行编码时,就输出COD=0;在进行跳跃时就输出COD=1。宏块跳跃适用于宏块类型为INTER、并且运动矢量为(0,0)而DCT系数全部为0的情况。由于不必将宏块类型、运动矢量信息和DCT系数全部进行编码,所以,可以大幅度地压缩。在COD=0时,进入以下的处理,在COD=1时,跳跃过以下全部的处理,而进入下一个宏块的处理。
然后,编码器输出称为MCBPC的可变长代码字(D3)。MCBPC是表示有无宏块类型和2个色差信号块的DCT系数的代码字。宏块类型(模式)有以下表3所示的5种类型。
【表3】
其次,在宏块类型为帧内编码模式即INTRA或INTRA+Q时,就输出Acpred-flag这样的代码字(D4)。Acpred-flag是表示在现在的宏块中是否进行了DCT的交流(AC)系数预测的标志,在进行了AC系数预测时,就输出Acpred-flag=1,在尚未进行时,就输出Acpred-flag=0。
然后,编码器输出称为CBPY这样的可变长代码字(D5)。CBPY表示是否存在4个亮度信号块的DCT系数。另外,在宏块类型为INTER+Q或INTRA+Q时,就输出量化步长信息DQUANT(可变长代码字:D6)。
其次,在宏块类型不是帧内编码模式时,即既不是INTRA也不是INTRA+Q时,就输出运动矢量信息(D7)。但是,在VOP类型为SPRITE时,则仅在MCSEL=0即使用局部运动补偿时输出运动矢量信息(D7),而在MCSEL=1即使用全局运动补偿时则不输出运动矢量信息。
最后,将包含在16×16的宏块中的各8×8块的DCT系数信息作为量化指数19(D8)而输出。
但是,在以上说明的语法中,在宏块类型为帧内编码模式(INTRA或INTRA+Q)时,也输出MCSEL。在帧内编码模式时,由于既不使用全局运动补偿也不使用局部运动补偿,所以,MCSEL的指定没有意义。因此,这时,就存在对1宏块附加了1位不需要的信息的问题。
此外,在全局运动补偿有效的图像中,在全局运动补偿时几乎都有宏块跳跃,而在局部运动补偿时则几乎不发生宏块跳跃。因此,在宏块跳跃时实际上MCSEL是不需要的,这时,也存在对1宏块附加了1位的信息的问题。
然而,在高传输速率的情况时,在全部数据中辅助操作信息所占的比例很少,不是什么问题。但是,近年来随着因特网的普及,对低速率的图像传输的需要提高了。在低传输速率的图像信息的编码中,辅助操作信息所占的比例必然增大,从而削减辅助操作信息的必要性就提高了。
具体而言,就是MCSEL对1宏块虽然是1位,但是,在352像素×288行的CIF(Common Intermediate Format)图像中,每1帧就需要396位的位数,在176像素×144行的QCIF(Quarter CIF)图像中就需要99位的位数。MCSEL的代码量是固定的,与编码速率无关,在低速率编码时,在全体代码量中所占的比例增大,从而成为大的负担。例如,在QCIF中,将10帧/秒的图像以20kbit/秒进行编码时,MCSEL成为99×10≈1kbit/秒的信息量,占全部数据速率的5%的比例。
发明的公开本发明者着眼于上述需要,试图解决存在的问题。即,本发明的目的旨在在具有全局运动补偿模式和局部运动补偿模式的2种预测模式的运动图像的预测编码方法中,提供将不需要的MCSEL即使是1位也大多削减从而提高压缩效率的运动图像的预测编码方法和与其对应的运动图像的译码方法。
为了达到上述目的,本发明在有选择地执行全局运动补偿阶段和局部运动补偿阶段的运动图像的预测编码方法中,将在处理块为帧间编码块时把表示是否使用上述全局运动补偿阶段或上述局部运动补偿阶段预测了上述处理块的预测模式选择代码字插入到将该处理块编码后的数据串中表示该块的编码模式的代码字以后而在其他情况时就不将上述预测模式选择代码字插入到上述数据串中的方法作为第1方法而提供。
另外,在上述方法中,将在上述处理块为块跳跃时就一定选择上述全局运动补偿阶段同时在跳跃后的块中省略上述预测模式选择代码字的方法作为第2方法而提供。
其次,本发明是将用上述第1方法编码后的数据串进行译码的译码方法,提供在上述处理块为进行帧间编码时从编码数据串中读入上述预测模式选择代码字并使用所选择的预测方法进行译码而在其他情况时则不读入该预测模式选择代码字的方法。
另外,本发明是将用上述第2方法编码后的数据串进行译码的译码方法,提供在上述处理块进行块跳跃时就不读入上述预测模式选择代码字而进行与上述全局运动补偿阶段对应的译码处理的方法。
如上所述,在宏块类型为帧内编码模式即INTRA或INTRA+Q时,由于既不使用全局运动补偿也不使用局部运动补偿,所以,本来就不需要表示各宏块使用哪个预测方法的标志(MCSEL)。但是,在先有的预测编码方法中,由于MCSEL位于表示宏块类型的代码字(MCBPC)之前,所以,在译码器中在得出MCBPC之前不能判断是否需要MCSEL,即使宏块类型是帧内编码模式,对所有的宏块都必须附加MCSEL。
与此相反,按照本发明的上述第1方法,MCSEL是位于MCBPC之后。这样,在译码器中在读入宏块类型后就可以判断是否有MCSEL。因此,在帧内编码模式的情况时,可以不附加MCSEL,从而可以削减不需要的辅助操作信息。
另外,如上所述,在全局运动补偿有效的图像中,进行宏块跳跃的几乎都时全局运动补偿的情况,在局部运动补偿的情况时几乎不发生宏块跳跃。因此,在宏块跳跃的情况时实际上也不需要MCSEL。
按照本发明的上述第2方法,由于将宏块跳跃限定为全局运动补偿的情况,可以消除宏块跳跃时的MCSEL,所以,可以进一步削减多余的辅助操作信息。
即,按照本发明的运动图像的预测编码方法和译码方法,即使是1位也可以大量削减不需要的MCSEL,从而可以削减多余的辅助操作信息而提高压缩效率。编码速率越低,本发明的效果越大。
另外,本发明提供记录用于使计算机执行上述某一方法的程序的记录媒体和记录利用上述某一编码方法编码后的数据的计算机可以读取的记录媒体。
附图的简单说明图1是表示本发明的一个实施例的编码器的结构的图。
图2是表示与图1的编码器对应的译码器的结构例的图。
图3是表示编码器的先有例的结构的图。
图4是表示与图3的编码器对应的译码器的结构例的图。
图5是示意性地表示表1的数据结构(位流结构)的图。
图6是示意性地表示表4的数据结构(位流结构)的图。
图7是示意性地表示表5的数据结构(位流结构)的图。
图8是运动图像的预测编码程序全体的流程图(之一)。
图9是运动图像的预测编码程序全体的流程图(之二)。
图10是表示先有的宏块层复用处理例的流程图(之一)。
图11是表示先有的宏块层复用处理例的流程图(之二)。
图12是表示利用本发明的(第1)方法的宏块层复用处理例的流程图(之一)。
图13是表示利用本发明的(第1)方法的宏块层复用处理例的流程图(之二)。
图14是表示利用本发明的(第2)方法的宏块层复用处理例的流程图(之一)。
图15是表示利用本发明的(第2)方法的宏块层复用处理例的流程图(之二)。
图16是运动图像的预测译码程序全体的流程图。
图17是表示先有的宏块层分离和译码处理例的流程图(之一)。
图18是表示先有的宏块层分离和译码处理例的流程图(之二)。
图19是表示利用上述第1方法进行复用处理的宏块层的分离和译码处理例的流程图(之一)。
图20是表示利用上述第1方法进行复用处理的宏块层的分离和译码处理例的流程图(之二)。
图21是表示利用上述第2方法进行复用处理的宏块层的分离和译码处理例的流程图(之一)。
图22是表示利用上述第2方法进行复用处理的宏块层的分离和译码处理例的流程图(之二)。
实施发明的最佳形式下面,参照附图说明本发明的实施例。
图1是表示本发明的一个实施例的编码器的结构的图。该编码器与图3所示的先有的编码器只是复用部27的处理不同。这就是本发明的编码器和译码器的结构要素及处理流程与先有的实施例相同的缘故。但是,由于编码数据串的结构不同,所以,下面将本发明的编码数据结构(语法)示于表4进行说明。另外,图6是示意性地表示表4的数据结构(位流结构)的图,按D11~D19所示的代码字、运动矢量、DCT系数信息(量化步长)的顺序构成数据。
【表4】
如表4所示,在本实施例中,首先在VOP类型为P或SPRITE时输出上述1位的代码字COD(D11)。宏块跳跃与先有例一样,适用于宏块类型为INTER并且运动矢量为(0,0)而DCT系数全部为0的情况。但是,由于需要表示使用的是全局运动补偿和局部运动补偿中的哪一个的信息,所以,在COD=1时也限于VOP类型为SPRITE的情况,并输出MCSEL(预测模式选择信息)26(D12)。在使用全局运动补偿时,输出MCSEL=1,在使用局部运动补偿时输出MCSEL=0。
在COD=1时,全跳跃过以后的处理,进入下一个宏块的处理。这时,可以不必将宏块类型、移动矢量信息9、DCT系数的量化指数19全进行编码,所以,可以大幅度地进行压缩。
其次,编码器输出上述可变长代码字MCBPC(D13)。
然后,在VOP类型为SPRITE并且宏块类型为INTER或INTER+Q时,在MCBPC之后输出上述MCSEL26(D14)。
全局运动补偿或局部运动补偿的模式选择,和先有情况一样由预测模式选择部12进行。选择的方法是自由的。可以选择预测误差小的一方,也可以考虑预测误差和发生代码量的两方面的情况进行决定。
其次,在宏块类型为帧内编码模式(INTRA或INTRA+Q)时,就输出上述代码字Acpred-flag(D15)。
然后,编码器输出上述可变长代码字CBPY(D16)。其次,在宏块类型为INTER+Q或INTRA+Q时,就输出上述量化步长信息DQUANT(可变长代码字:D17)。
然后,在宏块类型不是帧内编码模式即既不是INTRA也不是INTRA+Q时,就输出运动矢量9(D18)。但是,VOP类型为SPRITE时,在MCSEL=1即在使用全局运动补偿时不输出运动矢量9。仅在MCSEL=0即使用局部运动补偿时输出运动矢量9。
最后,将包含在16×16的宏块中的各8×8块的DCT系数信息作为量化步长19(D19)而输出。
DCT系数的量化指数19、预测模式选择信息(MCSEL)26、运动矢量9和全局运动参量5分别由编码部101~104进行编码,复用部27按照上述规则将这些编码数据进行复用处理,并输出编码器输出28。这里,全局运动参量5可以各VOP有1组,所以,不包含在宏块层的语法(表4)中。另外,在表4的语法中,为了简单起见,省略了I-VOP和B-VOP的部分。另外,在MPEG-4中,如上所述,为了将任意形状的图像目标进行编码,还记载了形状信息,但是为了简单起见,也省略了。
图2是与图1的编码器对应的译码器的结构图。与图4的先有的译码器只是分离部29的处理不同。
下面,根据图2、图4和图6说明该译码器的处理。
如表4所示,在本实施例的译码器中,首先,在VOP类型为P或SPRITE时,就读出代码字COD(D11)。在COD=1并且VOP类型为SPRITE时,接着就读出MCSEL(D12)。
MCSEL使切换器36运动作,在MCSEL=1时,就将根据参照图像3和全局运动参量5得到的全局运动补偿预测图像7作为预测图像13。在MCSEL=0时,由于运动矢量为(0,0),所以,就直接将参照图像3作为预测图像13。在COD=1时,由于DCT系数全部为0,所以,直接将所得到的预测图像13作为现在的宏块的译码图像25而输出。
在COD=0时,接着就读出可变长代码字MCBPC(D13)。并且,根据MCBPC可以得到关于有无宏块类型和2个色差信号的DCT系数的译码信息。
其次,在VOP类型为SPRITE并且宏块类型为INTER或INTER+Q时,就在MCBPC之后读出MCSEL(D14)。
然后,在宏块类型为INTRA或INTRA+Q时,就读出代码字Acpred-flag(D15)。
接着,就读出CBPY(D16),得到有无亮度信号的DCT系数的译码信息。然后,在宏块类型为INTER+Q或INTRA+Q时,就读出可变长代码字的量化步长信息DQUANT(D17)。
其次,在宏块类型既不是INTRA也不是INTRA+Q时,就读出运动矢量9(D18)。但是,在VOP类型为SPRITE时,在MCSEL=1即使用全局运动补偿时,由于不存在运动矢量信息,所以,不进行读出。仅在MCSEL=0即使用局部运动补偿时才读出运动矢量9。MCSEL使切换器36运动作,在MCSEL=1时,将根据参照图像3和全局运动参量5得到的全局运动补偿预测图像7作为预测图像13。在MCSEL=0时,将根据参照图像3和运动矢量9得到的局部运动补偿预测图像11作为预测图像13。
然后,读出包含在宏块中的各8×8块的DCT系数信息(D19)即量化指数19。量化指数19由逆量化部30恢复为量化代表值21,并进而由逆DCT部31逆变换为差分图像23。差分图像23和预测图像13在加法器32中进行加法运算,成为译码图像25。该译码图像25存储到帧存储器33中,在下一帧的译码时作为参照图像使用。
下面,使用图1和下表5说明在宏块跳跃时削减多余的辅助操作信息的预测编码方法。另外,图7是示意性地表示表5的数据结构(位流结构)的图,按D21~D28所示的代码字、运动矢量和DCT系数信息的顺序构成数据。
【表5】
在表5中,首先,在VOP类型为P或SPRITE时,就输出代码字COD(D21)。由COD所示的宏块跳跃适用于使用全局运动补偿的情况并且DCT系数全部为0的情况,不适用于局部运动补偿的情况。因此,表4中的MCSEL在表5中就删除了。在宏块跳跃的情况时,就全部跳跃过以后的处理,进入下一个宏块的处理,所以,可以不必将该宏块的宏块类型和DCT系数进行编码。因此,可以大幅度地进行压缩。
其次,编码器输出可变长代码字MCBPC(D22)。
然后,在VOP类型为SPRITE并且宏块为INTER或INTER+Q时,在MCBPC之后就输出MCSEL(D23)。由预测模式选择部12进行的运动补偿模式的选择方法是自由的,可以选择预测误差小的一方,也可以考虑预测误差和发生代码量两方面的因素进行决定。
另外,在宏块类型为帧内编码模式即INTRA或INTRA+Q时,就输出代码字Acpred-glag(D24)。
然后,编码器输出可变长代码字CBPY(D25)。接着,在宏块类型为INTER+Q或INTRA+Q时,就输出可变长代码字的量化步长信息DQUANT(D26)。
其次,在宏块类型不是帧内编码模式即既不是INTRA也不是INTRA+Q时,就输出运动矢量9(D27)。但是,在VOP类型为SPRITE时,在MCSEL=1即使用全局运动补偿时,就不输出运动矢量信息,仅在MCSEL=0即使用局部运动补偿时才输出运动矢量。
最后,输出包含在宏块中的各8×8块的DCT系数信息(D28)。
复用部27按照以上说明的规则将输出的量化指数19、预测模式选择信息(MCSEL)26、运动矢量9和全局运动参量5进行复用处理,并输出编码器输出28。这里,全局运动参量5和表4一样,也不包含在表5的宏块层的语法中。
在表5的语法中,为了简单起见,省略了I-VOP和B-VOP的部分。另外,对关于上述MPEG-4的形状信息的描述,这里也省略了。
下面,参照图2、表5和图7说明与以上所述的预测编码方法对应的译码器的处理。
在表5所示的译码方法中,首先,在VOP类型为P或SPRITE时,就读出代码字COD(D21)。在COD=1时,将根据参照图像3和全局运动参量5得到的全局运动补偿预测图像7作为预测图像13。在COD=1时,由于DCT系数全部为0,所以,就将所得到的预测图像13直接作为现在的宏块译码图像25而输出。
在COD=0时,接着就读出可变长代码字MCBPC(D22),得到关于有无宏块类型和2个色差信号的DCT系数的译码信息。
其次,在VOP类型为SPRITE并且宏块类型为INTER或INTER+Q时,就在MCBPC之后读出MCSEL(D23)。
然后,在宏块类型为INTRA或INTRA+Q时,就读出代码字Acpred-flag(D24)。
接着,读出CBPY(D25),得到有无亮度信号的DCT系数的译码信息。其次,在宏块类型为INTER+Q或INTRA+Q时,就读出可变长代码字的量化步长信息DQUANT(D26)。
然后,在宏块类型既不是INTRA也不是INTRA+Q时,就读出运动矢量9(D27)。但是,在VOP类型为SPRITE时,在MCSEL=1即使用全局运动补偿时,由于不存在运动矢量9,所以,就不进行读出。仅在MCSEL=0即使用局部运动补偿时才读出运动矢量9。MCSEL使切换器36运动作,在MCSEL=1时,将根据参照图像3和全局运动参量5得到的全局运动补偿预测图像7作为预测图像13。在MCSEL=0时,将根据参照图像3和运动矢量9得到的局部运动补偿预测图像11作为预测图像13。
接着,读出包含在宏块中的各8×8块的DCT系数信息(D28)即量化指数19。量化指数19由逆量化部30恢复为量化代表值21,进而由逆DCT部31逆变换为差分图像23。差分图像23和预测图像13在加法器32中计算加法运算,成为译码图像25。该译码图像25存储到帧存储器33中,在下一帧的译码时作为参照图像使用。
对于以上说明的本发明的方法的实施例,将执行程序的流程图进行了归纳并予以图示。另外,为了进行比较也列举出了先有方法的执行程序的流程图。
在以下的流程图中,VOP类型的设定和宏块类型的设定或判断(选择效率最好的宏块类型)处理等,省略了在本发明的说明上认为不是特别需要的先有技术部分。
图8和图9是运动图像的预测编码程序全体的流程图,图8中的①接在图9中的①的流程之后,图9中的②接在图8中的②的流程之后。在图9中用双重框包围的宏块层的复用处理块是关于本发明的特征的部分。
图10和图11是表示先有的宏块层复用处理例的流程图,图10中的①和②分别接在图11中的①和②的流程之后。
图12和图13是表示利用参照表4和图6说明的本发明的(第1)方法进行的宏块层复用处理例的流程图,图12中的①和②分别接在图13中的①和②的流程之后。
图14和图15是表示利用参照表5和图7说明的本发明的(第2)方法进行的宏块层复用处理例的流程图,图14中的①和②分别接在图15中的①和②的流程之后。
图16是运动图像的预测译码程序全体的流程图,图中用双重框包围的宏块层的分离和译码处理块是关于本发明的特征的部分。
图17和图18是表示先有的宏块层分离和译码处理例的流程图,图17中的①和②分别接在图18中的①和②的流程之后。
图19和图20是表示利用上述第1方法进行复用处理后的宏块层的分离和译码处理例的流程图,图19中的①和②分别接在图20中的①和②的流程之后。
图21和图22是表示利用上述第2方法进行复用处理后的宏块层的分离和译码处理例的流程图,图21中的①和②分别接在图22中的①和②的流程之后。
如图19、图20和图21、图22所示,根据编码时决定的数据的结构可以知道译码处理的内容。
QQ群二维码
意见反馈