专利名称:运动图像的编码方法、解码方法、编码装置及解码装置的制作方法
技术领域:
本发明涉及,运动图像的编码方法、解码方法、编码装置及解码装置,特别是涉及运动矢量的编码及解码技术。
背景技术:
对运动图像的编码·解码处理的概要进行说明。运动图像的编码一般是由图13的编码装置来进行。成为编码对象的运动图像的1帧,如图3所示那样,由1个亮度信号(Y信号61)和2个色差信号(Cr62,Cb信号63)构成,色差信号的图像大小纵横都为亮度信号的1/2。在一般的视频标准中,将运动图像的各帧分割成小块,以被称为宏块的块为单位进行再现处理。
上述宏块,如图5所示那样,由16×16像素的1个Y信号块30、在空间上与其一致的8×8像素的Cr信号块31以及Cb信号块31构成。图像信号的编码以上述宏块为单位进行处理。在编码中大致分为帧内编码(帧内方式intra coding)和预测编码(帧间方式inter coding)。
在图13的图像信号的编码装置中,在帧内编码的情况下,编码对象的输入宏块图像201被分割成DCT编码块并由DCT变换器203直接进行DCT203,被变换成DCT系数。各变换系数由量化器204进行量化,由多路化器206进行编码。
DCT编码块大小在以往的编码方式中一般为8×8像素,但最近在MPEG-4 Part10(Advanced Video Coding)等中也研讨了利用4×4像素大小的DCT变换。
如图6所示那样,各宏块被分割成24个4×4像素块,由DCT变换器203分别变换成16个DCT系数。被量化的DCT系数其一部分,由局部解码器220的反量化器207和反DCT器208被解码成输入宏块,并合成到帧存储器210中。局部解码器220制成与后述的解码装置同样的解码图像。存储在帧存储器210中的图像被用于后述的时间方向的预测。此帧内编码被配置于没有与前面帧相似的部分的宏块(也包含第1编码帧),或欲消除伴随DCT的存储运算误差的部分等。
在帧间(预测编码)编码的情况下,输入宏块图像201和存储在帧存储器210中的已编码帧的解码图像(参照帧)间的运动补偿处理,由运动补偿器211来进行。运动补偿是指从参照帧检索出与对象宏块的内容相似的部分(一般是选择块内的预测误差信号的绝对值和或者平方误差和较小的部分),并对其运动量(运动矢量)进行编码的时间方向的压缩技术。
图4中示出运动补偿的处理构造。图4是表示关于用粗框包围的当前帧71的亮度信号块72的,前面帧73(参照帧)上的预测块75和运动矢量76的图。运动矢量76表示从对于当前帧的粗框块在空间上相当于同一位置的前面帧上的块(虚线)74到当前帧上的预测块75区域的移动量(将色差信号用的运动矢量长度,设为亮度信号的一半,不进行编码)。检测出的运动矢量,在与从MV预测器215得到的预测运动矢量(从邻接块的运动矢量来预测)之间进行了差分处理后,由多路化器206进行编码。通过运动补偿从前面帧抽取出的预测宏块图像213,与当前帧的输入宏块图像201之间由差分器202进行差分处理,并生成差分宏块图像。
差分宏块图像,如图6所示那样,被分割成24个4×4像素块,由DCT变换器203分别变换成16个DCT系数。各DCT系数由量化器204进行量化,由多路化器206进行编码。在帧间编码的情况下也是由局部解码器220的反量化器207和反DCT器208将量化DCT系数,解码成差分宏块图像,在由加法器209与预测宏块图像进行了相加后,合成到帧存储器210中。此外,在这里将在1个宏块中进行编码的运动矢量的数目设为1个,但一般是将宏块进一步分割成小块,对每个小块计算出运动矢量进行编码的方法。例如,在MPEG-4Part10(Advanced Video Coding)中,将进行运动补偿时的宏块分割类型(亮度成分)设为图7来考虑。基本上是类型51~类型54的4种。类型54分别对4个8×8块54-0~54-3,进一步从类型54a、54b、54c、54d和帧内编码5种中进行选择。
进而,作为预测编码的运动补偿方法,被分成使用在时间上过去的帧的信息进行运动补偿的前向预测编码,和使用在时间上过去和未来的帧的信息进行运动补偿的双向预测编码。在上述前向预测编码的运动补偿中,仅进行前向预测,但在双向编码的运动补偿中,除了前向预测以外,还处理后向预测、双向预测以及利用在时间上未来的帧中的运动矢量信息从双向进行预测的直接预测。
运动矢量的编码精度,一般处理到整数像素或其以下的精度。例如,在MPEG-4Part2的Advanced Simple Profile中,可对每个位数据选择1/2像素精度和1/4像素精度。关于整数像素精度或其以下的预测值的计算方法,省去说明,在1/2像素精度中依照像素位置适应地使用2抽头的线性过滤器,在1/4像素精度中依照像素位置适应地使用8抽头过滤器和2抽头过滤器。另外,在MPEG-4Part10中也研讨了以1/4像素精度来表达运动矢量,使用6抽头过滤器和2抽头过滤器计算出预测值。这样,通过使用长抽头数的过滤器就使预测性能提高。
将对全部宏块适用了帧内编码得到的帧称为I-Picture,将由前向预测编码或者帧内编码所构成的帧称为P-Picture,将由双向编码或者帧内编码所构成的帧称为B-Picture。在P-Picture或者B-Picture中,由图13的INTRA/INTER判定器214,判定对各宏块以预测编码和帧内编码的哪个来进行,并由多路化器206对判定结果218进行编码。
运动图像的编码信号的解码,以与编码相反的步骤来进行。一般是由图14的解码装置来进行。
代码译解部501,对所输入的编码数据进行分析,将运动矢量关联信息和宏块类型信息分给MV预测器508,将量化DCT系数信息分给反量化器502。在宏块类型是帧内编码的情况下,在反量化器502和反DCT器503中,将已解码的量化DCT系数信息对每个4×4像素块进行反量化·反DCT处理,再现宏块图像。在宏块的预测方式是预测编码的情况下,由MV预测器508从解码差分运动矢量和预测运动矢量计算出解码运动矢量,并输入到运动补偿器504。在运动补偿器504中,按照运动量从存储着前面帧的解码图像的帧存储器507抽取出预测宏块图像。
接着,在反量化器502和反DCT器503中,将与预测误差信号有关的编码数据,对每个4×4像素块进行反量化·反DCT处理,再现差分宏块图像。然后,由加法器505对预测宏块图像和差分宏块图像进行相加处理,再现宏块图像。被再现的宏块图像由合成器506合成为解码帧图像。另外,解码帧图像为下一帧的预测用而被存储在帧存储器507中。
作为与本发明关联的文献,有专利公开公报(日本专利公开特开平11-46364号公报)。在此文献中记载有,在以块为单位进行编码·解码处理的运动图像的编码·解码方法中,准备数种运动矢量精度,以多个绑定在一起的块为单位切换运动矢量的编码精度的手段。
在以往公知的运动图像的运动补偿编码中,研讨了准备多种包含在块中运动矢量数,运动矢量的编码精度为1/8像素精度那样高的编码方式。但是,由于运动矢量的代码量的关系,即使在块中包含多个运动的情况下,也有选择以少的运动矢量数进行编码的方法的倾向。另外,在使用长抽头数的过滤器生成整数像素精度或其以下的预测像素的情况下,就产生为了生成1个预测块所用的参照图像内的像素数变大这样的存储器存取的问题。此问题,特别是在进行运动补偿时就成为问题。
从而,本发明的目的就是提供,能够削减运动矢量的代码量以及能够削减由编码块内的块数增大造成的预测误差信息的运动图像信号的编码方法、解码方法、编码装置以及解码装置。
本发明的其他目的就是,在编码装置以及解码装置中,降低运动补偿时存储器存取范围。
发明内容
本发明提供一种运动图像的编码方法,具有如下步骤,将图像分割成多个编码块,通过从邻接块的运动矢量来预测编码块的运动矢量,其中将该邻接块的运动矢量作为预测运动矢量,以块为单位对由应编码的运动矢量及其预测运动矢量计算出的差分运动矢量进行编码,其中通过在该邻接块的运动矢量加上差分运动矢量来作为编码块的运动矢量,其特征在于该方法还具有如下步骤,准备数种差分运动矢量的精度,对每个编码块选定差分运动矢量的精度,并对所选定的精度的信息以及该精度的差分运动矢量进行编码。
本发明提供一种运动图像的编码方法,具有如下步骤,将图像分割成多个编码块,通过从邻接块的运动矢量来预测编码块的运动矢量,其中将该邻接块的运动矢量作为预测运动矢量,以块为单位对由应编码的运动矢量及其预测运动矢量计算出的差分运动矢量进行编码,其中通过在该邻接块的运动矢量加上差分运动矢量来作为编码块的运动矢量,其特征在于该方法还具有如下步骤,准备数种运动矢量的精度,对每个编码块选定运动矢量的精度,并对上述所选定的精度的信息、以及由修正成上述所选定的精度的预测运动矢量和所选定的精度的运动矢量计算出的差分运动矢量进行编码。
本发明提供一种运动图像的解码方法,具有如下步骤,将图像分割成多个解码块,从邻接块的解码运动矢量来预测解码块的运动矢量,由解码差分运动矢量和预测运动矢量计算出解码运动矢量,其特征在于该方法还具有如下步骤,准备数种差分运动矢量的精度,对每个解码块解码差分运动矢量的精度信息和该精度的差分运动矢量,在将解码差分运动矢量的精度修正成与预测运动矢量相同的精度后,从已进行精度修正的解码差分运动矢量和预测运动矢量计算出解码块的运动矢量。
本发明提供一种运动图像的解码方法,具有如下步骤,将图像分割成多个解码块,从邻接块的解码运动矢量来预测解码块的运动矢量,由解码差分运动矢量和预测运动矢量计算出解码运动矢量,其特征在于还具有如下步骤准备数种运动矢量的精度,对每个解码块解码运动矢量的精度信息和该精度的差分运动矢量,在将预测运动矢量的精度修正成与解码精度信息相同的精度后,从解码差分运动矢量和已进行精度修正的预测运动矢量计算出解码块的运动矢量。
为了达到上述目的,本发明提供一种运动图像的编码方法,包括将图像分割成多个编码块,从邻接位置的运动矢量来预测编码块内的运动矢量,以块为单位对由应编码的运动矢量及其预测运动矢量计算出的差分运动矢量进行编码的步骤,对运动矢量进行编码,具有(1)准备数种差分运动矢量的精度,对每个编码块选定差分运动矢量的精度,并对所选定的精度的信息以及该精度的差分运动矢量进行编码的步骤;或者(2)准备数种运动矢量的精度,对每个编码块选定运动矢量的精度,并对所选定的精度的信息,以及由修正成所选定的精度的预测运动矢量和所选定的精度的运动矢量计算出的差分运动矢量进行编码的步骤。
这里,在上述(1)以及(2)的情况中,包含伴随差分运动矢量的编码的精度值(下面简称为mv_shift值)的决定以及编码处理,除了在全部的宏块中进行以外,还利用宏块的类型(例如,编码运动矢量的数目的大小)或周围的状况(例如,邻接宏块的状况),省略特定宏块的mv_shift值的编码的情况。
上述(2)的情况,也可以在运动矢量的水平成分和垂直成分上分配不同的精度,对于各成分对从所分配的精度的运动矢量计算出的差分矢量进行编码。
本发明的运动图像的解码,使用利用本发明的运动图像编码的代码,通过与编码的步骤相反的步骤,进行编码块的图像再现。即,准备多个运动矢量的精度,在运动矢量的水平成分和垂直成分上分配不同的精度,各成分修正成该被分配的精度,对从该修正预测运动矢量和所分配的精度的运动矢量计算出的差分运动矢量进行编码。
进而,在解码的情况下,mv_shift值的设定,对应解码的代码被编码的处理过程来进行。例如,在编码中宏块的类型或者周围的状况下mv_shift值未被编码的代码被再现时,解码宏块的类型或者周围的状况下决定、处理mv_shift值。
本发明的目的、特征、编码装置以及解码装置的结构通过伴随以下附图的实施例的说明将进一步得到明确。
图1是表示前向预测帧的数据语法的例子的图。
图2是表示双向预测帧的数据语法的例子的图。
图3是说明宏块分割的图。
图4是说明运动补偿的原理的图。
图5是表示在对包含在宏块中的有意义DCT系数的有无进行编码时所利用的块结构的图。
图6是示出表示进行DCT处理以及编码处理的块单位的宏块结构的图。
图7是示出表示进行运动补偿的块单位的亮度块的结构的图。
图8是说明预测运动矢量的生成的图。
图9是表示运动矢量精度的代码表的例子的图。
图10是说明运动矢量精度的预测方法的图。
图11是表示根据本发明的实施例的P-Picture中的宏块类型的代码表和8×8划分类型的代码表的图。
图12是表示根据本发明的实施例的B-Picture中的宏块类型的代码表和8×8划分类型的代码表的图。
图13是表示运动图像编码装置的一般结构的框图。
图14是表示本运动图像解码装置的一般结构的框图。
图15是说明以往方法中的宏块类型的代码表的例子的图。
图16是表示通用代码表的结构例子的图。
图17是表示域信号中的帧构造的宏块的结构例子的图。
图18是按块大小来切换运动矢量的编码精度的处理的流程图。
图19是按本发明的实施例中的运动矢量的成分来切换运动矢量的编码精度的处理的流程图。
图20是按本发明的实施例中的运动矢量的成分和宏块结构来切换运动矢量的编码精度的处理的流程图。
图21是按本发明的实施例中的块大小、运动矢量的成分和宏块结构来切换运动矢量的编码精度的处理的流程图。
图22是按本发明的实施例中的块大小、运动矢量的成分和宏块结构来切换运动矢量的编码精度的处理的流程图的别的例子。
图23是按本发明的实施例中的块大小和运动矢量的成分来切换运动矢量的编码精度的处理的流程图的例子。
图24是按本发明的实施例中的块大小和运动矢量的成分来切换运动矢量的编码精度的处理的流程图的别的例子。
图25是根据本发明的运动图像编码装置的运动矢量的编码部的图26是根据本发明的运动图像解码装置的运动矢量的解码部的图27是根据本发明的运动图像编码装置的运动矢量的编码部的图28是根据本发明的运动图像解码装置的运动矢量的解码部的图29是根据本发明的运动图像编码装置的运动矢量的编码部的图30是根据本发明的运动图像解码装置的运动矢量的解码部的图31是根据本发明的运动图像编码装置的运动矢量的编码部的图32是根据本发明的运动图像解码装置的运动矢量的解码部的图33是根据本发明的运动图像编码装置的运动矢量的编码部的图34是根据本发明的运动图像解码装置的运动矢量的解码部的图35是根据本发明的运动图像编码装置的运动矢量的编码部的图36是根据本发明的运动图像解码装置的运动矢量的解码部的图37是根据本发明的运动图像编码装置的运动矢量的编码部的图38是根据本发明的运动图像解码装置的运动矢量的解码部的图39是根据本发明的运动图像编码装置的运动矢量的编码部的图40是根据本发明的运动图像解码装置的运动矢量的解码部的图41是根据本发明的运动图像编码装置的运动矢量的编码部的图42是根据本发明的运动图像解码装置的运动矢量的解码部的实施例的结构图。
图43是根据本发明的运动图像编码装置的运动矢量的编码部的图44是根据本发明的运动图像解码装置的运动矢量的解码部的图45是根据本发明的运动图像编码装置的运动矢量的编码部的图46是根据本发明的运动图像解码装置的运动矢量的解码部的图47是根据本发明的运动图像编码装置的运动矢量的编码部的图48是根据本发明的运动图像解码装置的运动矢量的解码部的
具体实施例方式
在说明本发明的实施例之前,为了使以下的说明的理解容易,对由编码装置的多路化器所创建的代码数据的数据语法进行说明。
图1表示P-Picture的数据语法的一部分,图2表示B-Picture的数据语法的一部分(由于CBP15以后与图1相同故省略)。此外,在这里设数据(运动矢量精度信息)13,不出现在数据语法内进行说明。另外,关于I-Picture,由于不包含在本发明的特征中故省略说明。
在picture header10中包含图像大小、再现时刻等与帧的再现信息有关的数据。picture type11是帧类型信息,I-Picture、P-Picture、B-Picture的种类在此进行编码。从MB type12到Tcoeff chroma17对每个宏块数据,按帧内的宏块数进行反复。在MB type12中从图15的表95(P-Picture)或者表96(B-Picture)所示的宏块方式中对每个宏块选择一个方式进行编码。
SKIP方式意味着,从前面帧的解码图像分离出在空间上相当于同一位置的宏块图像进行拷贝。表内的IntraM×N的M、N表示进行空间预测时的小块大小。M×N表示进行运动补偿时的小块单位,分别对应图7的方式1~方式4。
Direct意味着直接预测。Blcok1以及Block2,识别图7的方式2或者方式3中的2个小块,表示各小块的预测方向是Forward(前向预测)、Backward(后向预测)、Bi-directional(双向预测)的哪一个。关于在MB type12中选择了8×8(split)的宏块,则8×8Partition18产生。在除此以外的宏块方式中,则8×8Partition18不产生。在8×8Partition18中,从图11的表92(P-Picture)或者图12的表94(B-Picture)所示的8×8划分方式对每个8×8划分选择一个方式,进行编码。表内的Intra表示空间预测。M×N表示进行运动补偿时的小块单位,分别对应图7的划分1~划分4。Direct意味着直接预测。
Prediction表示各小块的预测方向是Forward(前向预测)、Backward(后向预测)、Bi-directional(双向预测)的哪一个。MVD14表示P-Picture中的差分运动矢量的编码数据。从而,在MB type12是IntraM×N的情况下,则此数据不产生。在MB type12是M×N的情况下,MVD14按MB type和8×8Partition所示的矢量数反复进行编码。例如,在16×8的情况下,应编码的差分运动矢量数为2个,各运动矢量由水平、垂直的2成分构成,4个MVD连续被进行编码。MVDFW23和MVDBW24表示B-Picture中的差分运动矢量的编码数据。MVDFW23,在包含伴随MB type12和8×8Partition18所示的前向预测(也包含双向预测)的运动矢量的宏块的情况下产生。同样,MVDBW24,在包含伴随MB type12和8×8Partition18所示的后向预测(也包含双向预测)的运动矢量的宏块的情况下产生。从而,在MB type12为IntraM×N或者Direct的情况下,则此数据不产生。在MB type12为M×N,伴随前向预测(也包含双向预测)的运动矢量存在的情况下,MVDFW23,按伴随MB type和8×8Partition所示的前向预测(也包含双向预测)的矢量数(差分运动矢量数×2、水平·垂直乘方)反复进行编码。同样,在MB type12为M×N,伴随后向预测(也包含双向预测)的运动矢量存在的情况下,MVDBW24,按伴随MB type和8×8Partition所示的前向预测(也包含双向预测)的矢量数(差分运动矢量数×2、水平·垂直乘方)反复进行编码。
CBP15是表示,关于图6所示的24个DCT块,0以外的量化DCT系数(有意义系数)是否包含在16个系数中的编码数据。但是,由于若关于24个各DCT块分别对有意义系数的有无信息进行编码则附加信息将会增大,故在这里,如图6所示那样以汇总了4个DCT块的8×8块为单位对有意义系数的有无进行编码。
Tcoeff luma16表示亮度块40中的量化DCT系数的编码数据。编码是从4×4块40-0到4×4块40-15,按编号小的顺序分别对16个量化系数进行编码。但是,关于由CBP表示无有意义系数的8×8块,编码处理就被省略。
Tcoeff chroma17表示亮度块40中的量化DCT系数的编码数据。编码是按4×4块41-0、41-2、41-3、42-0、42-1、42-3的顺序分别对16个量化系数进行编码。但是,关于由CBP15表示无有意义系数的信号成分,编码处理就被省略。
关于图1和图2所示的宏块等级的编码数据的编码方法,考虑仅使用1种可变长度代码表的Universal VLC(UVLC)、组合了固定长度编码和可变长度编码(准备对各编码要素不同的代码表)的编码方法以及算术编码(例如,参照非专利文献1)等。图16的表83表示UVLC的结构,Xn的值为“0”或者“1”。在表84中表示实际的可变长度代码表的例子。作为算术编码的具体方法,考虑用数比特的二进制数据置换各代码的含意,对各位依照表示各0和1的产生概率的发生概率模型来进行编码的方法。此方法被称为CABAC(Context-basedAdaptive Binary Arithmetic Coding)(Witten et al.,“ArithmeticCoding for Data Compression”,Comm.of the ACM,30(6),1987,pp.520-541)。
本发明,特别是在运动矢量的编码部/解码部上具有特征。即,在按图1和图2的数据MVD语法MVD precision13部的处理、图13的编码装置的MV预测部215、运动补偿部211以及图14的解码装置的MV部508、运动补偿部504的结构以及信息处理方法上具有特征。其他部分的结构以及信号处理方法与以往的装置、方法在实质上相同,下面对本发明的特征部分的实施例进行说明。
<实施例1>
本实施例是在运动矢量的编码部,将图像分割成多个编码块,从邻接位置的运动矢量来预测上述编码块的图像信号和上述编码块内的运动矢量,以块为单位对由应编码的运动矢量及其预测运动矢量计算出的差分运动矢量进行编码的运动图像编码(下面简称为运动图像的运动补偿编码)中,准备数种差分运动矢量的精度,对每个解码块选定差分运动矢量的精度,并对所选定的精度的信息以及该精度信息的差分运动矢量进行编码的方法。
首先,使用图8来说明上述预测运动矢量的生成。这里,设对运动矢量进行编码的对象的小块为50。在小块50中,分别对运动矢量的水平·垂直成分,将位于邻接位置A、B、C的3块的运动矢量作为候补来计算其中间值,并将中间值的运动矢量设为预测运动矢量。但是,在编码顺序和宏块位置的关系中位置C的块为编码前的情况或者位于图像之外的情况下,将取代位置C而将位于位置D的块的运动矢量作为候补运动矢量之一来使用。此外,在位置A、B、C、D的块不具有运动矢量的情况下,将其运动矢量设为0矢量来进行预测处理。此时,在3个候补块之中2个不具有运动矢量的情况下,将剩余的一个候补运动矢量设为预测运动矢量。上述的预测方法,对图7的方式1(51)的块51-0、方式4(54)的小块54a-0、54b-0、54b-1、54c-0、54c-2以及54d-0~54d-3,使用相同的预测方法。
关于方式2(52)的2个小块(52-0、52-1)、方式3(53)的2个小块(53-0、53-1),将位于图8所示的箭头根处的块的运动矢量设为预测值。此外,在任一方式中,色差成分用的运动矢量都不被进行编码,将亮度成分的运动矢量除以2等进行使用。
在本实施例1中,首先设差分运动矢量的精度的候补为1/4像素精度、1/2像素精度、1像素精度3种。若设MV为将1/4像素精度表达的运动矢量成分设成4倍后的值,设PWV为将1/4像素精度表达的预测运动矢量成分设成4倍后的值,则在此表达中,对于各精度候补的MV的值如下面那样进行限制。
1像素精度宏块内的全部小块中的(MV-PMV)的值水平·垂直成分都为4的倍数的MV。
1/2像素精度宏块内的全部小块中的(MV-PMV)的值水平·垂直成分都为2的倍数的MV。
1/4像素精度宏块内的全部小块中的(MV-PMV)的值水平·垂直成分都为1的倍数的MV。
从而,为使本方式的效果反映于编码特征而在运动矢量推定中,准备在预测误差信号的绝对值或者平方误差和上加进了运动矢量的代码量的影响的评价函数。此时,对(MV-PMV)的各精度算出各小块的最优评价值,在宏块内的全部小块的运动矢量推定处理结束了以后,通过对各精度计算小块的平均值的加法值,将平均值的总和较小的精度决定为差分运动矢量的精度。进行编码的差分运动矢量MVD用公式(1)计算出。
MVD=(MV-PMV)>>mv_shift……(1)公式(1)中的mv_shift是图9的表81所示的值。公式(1)表示将从运动矢量成分MV减去预测运动矢量成分PMV后的值,按mv_shift所示的数向右进行了算术位移位后的值为差分运动矢量成分MVD。这里,从运动矢量成分MV减去预测运动矢量成分PMV得到的值是1<<mv_shift的倍数,进行了算术右位移位处理的差分运动矢量成分MVD就成为1的倍数的值。
在Picture type为P-Picture的情况下,mv_shift作为图1的数据MVD precision13所示的编码数据要素,MVD作为数据MVD14所示的编码要素被进行编码。在Picture type为B-Picture的情况下,mv_shift作为图2的数据MVD precision13所示的编码数据要素,MVD作为数据MVDFW23(在MVD为前向预测的差分运动矢量的情况下)或者数据MVDBW24(在MVD为后向预测的差分运动矢量的情况下)所示的编码数据要素来进行编码。此外,MVD precision的编码在差分运动矢量的编码数据(MVD14或者MVDFW23和MVDBW24)不产生的宏块中则被省略。具体来讲,就是P-PictureMB type为IntraM×N或者,MB type为8×8(split)4个小块的8×8partition全部为Intra的情况,B-PictureMB type为IntraM×N或者Direct的情况,进而MB type为8×8(split)4个小块的8×8 partition全部为Intra或者Direct的情况。
如以往例子所示那样,作为编码方法采用UVLC或算术编码等。图9的表81所示的方式是,使用了UVLC情况下的编码方式的例子。在算术编码的情况下,例如编码MB(图10的7C)的预测运动矢量的生成值,按照从紧靠左MB(图10的7A)和紧靠上MB(图10的7B)的mv_shift值计算出的产生概率表来进行编码。
在解码侧,从解码mv_shift值和解码MVD以及PMV,按照下面的公式,MV=(MVD<<mv_shift)+PMV……(2)进行各运动矢量成分的解码,即对MV值进行再现(解码)。公式(2)表示在将差分运动矢量成分MVD按mv_shift所示的数向左进行了算术位移位后的值上加上预测运动矢量成分PMV后的值成为解码运动矢量成分MV。通过此算术左位移位处理,被解码的差分运动矢量成分MVD就从1的倍数变成1<<mv_shift的倍数(对应于编码侧的MV-PMV)。通过在此值上加上PMV解码运动矢量成分MV就复原成原来的精度的值。
接着,对差分运动矢量的精度的候补为,1/8像素精度、1/4像素精度、1/2像素精度、1像素精度4种的情况进行叙述。若设MV为将1/8像素精度表达的运动矢量成分设成8倍后的值,设PWV为将1/8像素精度表达的预测运动矢量成分设成8倍后的值,则在此表达中,对于各精度候补的MV的值如下面那样进行限制。
1像素精度宏块内的全部小块中的(MV-PMV)的值水平·垂直成分都为8的倍数的MV。
1/2像素精度宏块内的全部小块中的(MV-PMV)的值水平·垂直成分都为4的倍数的MV。
1/4像素精度宏块内的全部小块中的(MV-PMV)的值水平·垂直成分都为2的倍数的MV。
1/8像素精度宏块内的全部小块中的(MV-PMV)的值水平·垂直成分都为1的倍数的MV。
关于运动推定的方法,由于与1/4像素精度、1/2像素精度、1像素精度3种的情况相同,故省略说明。差分运动矢量MVD用公式(1)计算出。这里,从运动矢量成分MV减去预测运动矢量成分PMV的值是1<<mv_shift的倍数,进行了算术右位移位处理的差分运动矢量成分MVD就成为1的倍数的值,用上述的公式(1)计算出。公式(1)中的mv_shift是图9的表82所示的值。
关于mv_shift和MVD的编码方法,由于与差分运动矢量的精度的候补为1/4像素精度、1/2像素精度、1像素精度3种的情况相同,故省略说明,使用了UVLC情况下的编码代码就按照表82而不是表81。
解码侧的处理也与差分运动矢量的精度的候补为1/4像素精度、1/2像素精度、1像素精度3种的情况相同,从解码mv_shift值和解码MVD以及PMV,按照上述的公式(2),各运动矢量成分的解码MV值被再现。公式(2)表示在将差分运动矢量成分MVD按mv_shift所示的数向左进行了算术位移位的值上加上预测运动矢量成分PMV的值成为解码运动矢量成分MV。通过此算术左位移位处理,被解码的差分运动矢量成分MVD就从1的倍数变成1<<mv_shift的倍数(对应于编码侧的MV-PMV)。通过在此值上加上PMV解码运动矢量成分MV就复原成原来的精度的值。
<实施例2>
本实施例2是在运动图像的运动补偿编码中,准备多种运动矢量的精度,对每个宏块选定运动矢量的精度,对所选定的精度信息,以及由修正成该选定了的精度的预测运动矢量和修正成该选定了的精度的编码运动矢量计算出的差分运动矢量进行编码的方法。
首先,设预测运动矢量和编码运动矢量的精度的候补为1/4像素精度、1/2像素精度、1像素精度3种。若设MV为将1/4像素精度表达的运动矢量成分设成4倍后的值,设PWV为将1/4像素精度表达的预测运动矢量成分设成4倍后的值,则在此表达中,对于各精度候补的MV的值如下面那样进行限制。
1像素精度宏块内的全部小块中的MV的值水平·垂直成分都为4的倍数的MV。
1/2像素精度宏块内的全部小块中的MV的值水平·垂直成分都为2的倍数的MV。
1/4像素精度宏块内的全部小块中的MV的值水平·垂直成分都为1的倍数的MV。
从而,为使本方式的效果反映于编码特征而在运动矢量推定中,准备在预测误差信号的绝对值或者平方误差和上加进了运动矢量的代码量的影响的评价函数。此时,对MV的各精度算出各小块的最优评价值,在宏块内的全部小块的运动矢量推定处理结束了以后,通过对各精度计算小块的平均值的加法值,就能够将平均值的总和较小的精度决定为差分运动矢量的精度。进行编码的差分运动矢量MVD用公式(3)计算出。
MVD=(MV-((PMV>>mv_shift)<<mv_shift))>>mv_shift……(3)公式(3)中的mv_shift是图9的表81所示的值。公式(3)表示对从运动矢量成分MV减去,将预测运动矢量成分PMV按mv_shift所示的数向右算术位移位后马上向左进行了算术位移位后的值,进一步按mv_shift所示的数实施了第2算术右位移位的值成为差分运动矢量成分MVD。这里,对于预测运动矢量成分的连续的右位移位处理以及左位移位处理,起到将预测运动矢量成分PMV的值与MV相同变换成1<<mv_shift的倍数的值的作用。另外,通过第2算术右位移位处理,差分运动矢量成分MVD就成为1的倍数的值。
这样,在切换编码运动矢量的精度的方法中,在运动推定时就不需要考虑PMV的精度,但在MVD的生成处理时,需要进行将PMV预测运动矢量的精度下降到mv_shift的精度的处理。但是,公式(3)通过如下述那样进行简化,就能够削减运算步数。在电路设计等的实现时就有效。在此公式中,将运动矢量成分MV和预测运动矢量成分PMV变换成1的倍数的值后实施差分处理。“将变换成1的倍数后的预测矢量成分设成1<<mv_shift倍的值”与上式中的“变换成1<<mv_shift倍的值的预测运动矢量成分”等同,另外由于运动矢量成分MV是1<<mv_shift的倍数,故使用下述公式所造成的信息的缺失就不会发生。
MVD=(MV>>mv_shift)-(PMV>>mv_shift)……(4)关于mv_shift与MVD的数据语法向图1和图2的分配和编码方法,由于与切换差分运动矢量的精度的方法相同故省略说明。
在解码侧,从解码mv_shift值和解码MVD以及PMV,按照下面的公式,MV=(MVD<<mv_shift)+((PMV>>mv_shift)<<mv_shift)……(5)对各运动矢量成分的解码MV值进行再现。此公式(5)表示,在将差分运动矢量成分MVD按mv_shift所示的数向左进行了算术位移位的后值上加上,将预测运动矢量成分PMV按mv_shift所示的数向右算术位移位后马上向左进行了算术位移位后的值成为解码运动矢量成分MV。这里,对于预测运动矢量成分的连续的右位移位处理以及左位移位处理,和将差分运动矢量成分MVD按mv_shift所示的数向左进行算术位移位的处理,起到将各成分变换成1<<mv_shift的倍数的值的作用。从而,解码运动矢量成分MV就成为原来的1<<mv_shift的倍数。此外,公式(5)通过如下述那样进行简化,就能够削减运算步数。在电路设计等的实现时就有效。在公式(5)中,表示对在已变换成1的倍数的值的预测运动矢量成分PMV上相加已解码的差分运动矢量DMV的值,按mv_shift所示的数实施了左算术位移位的值成为解码运动矢量成分MV。“将变换成1的倍数的预测矢量成分设成1<<mv_shift倍的值”与上式中的“变换成1<<mv_shift倍数的预测运动矢量成分”等同,另外由于差分运动矢量成分DMV是1的倍数,故使用下述公式(6)所造成的信息的缺失就不会发生。
MV=(MVD+(PMV>>mv_shift))<<mv_shift……(6)接着,对差分运动矢量的精度的候补为,1/8像素精度、1/4像素精度、1/2像素精度、1像素精度4种的情况进行叙述。若设MV为将1/8像素精度表达的运动矢量成分设成8倍后的值,设PWV为将1/8像素精度表达的预测运动矢量成分设成8倍后的值,则在此表达中,对于各精度候补的MV的值如下面那样进行限制。
1像素精度宏块内的全部小块中的MV的值水平·垂直成分都为8的倍数的MV。
1/2像素精度宏块内的全部小块中的MV的值水平·垂直成分都为4的倍数的MV。
1/4像素精度宏块内的全部小块中的MV的值水平·垂直成分都为2的倍数的MV。
1/8像素精度宏块内的全部小块中的MV的值水平·垂直成分都为1的倍数的MV。
关于运动推定的方法,由于与1/4像素精度、1/2像素精度、1像素精度3种的情况相同,故省略说明。进行编码的差分运动矢量MVD用下面的公式计算出。
MVD=(MV-((PMV>>mv_shift)<<mv_shift))>>mv_shift……(3)公式中的mv_shift是图9的表82所示的值。此公式表示对从运动矢量成分MV减去,将预测运动矢量成分PMV按mv_shift所示的数向右算术位移位后马上向左进行了算术位移位后的值,进一步按mv_shift所示的数实施了第2算术右位移位后的值成为差分运动矢量成分MVD。这里,对于预测运动矢量成分的连续的右位移位处理以及左位移位处理,起到将预测运动矢量成分PMV的值与MV相同变换成1<<mv_shift的倍数的值的作用。
另外,通过第2算术右位移位处理,差分运动矢量成分MVD就成为1的倍数的值。
关于mv_shift和MVD的编码方法,由于与差分运动矢量的精度的候补为1/4像素精度、1/2像素精度、1像素精度3种的情况相同,故省略说明,使用了UVLC情况下的编码代码就按照表82而不是表81。但是,上式通过如下述那样进行简化,就能够削减运算步数。在电路设计等的实现时就有效。在此公式中,将运动矢量成分MV和预测运动矢量成分PMV变换成1的倍数的值后实施差分处理。“将变换成1的倍数的预测矢量成分设成1<<mv_shift倍的值”与上式中的“变换成1<<mv_shift的倍数的预测运动矢量成分”等同,另外由于运动矢量成分MV是1<<mv_shift的倍数,故使用下述公式所造成的信息的缺失就不会发生。
MVD=(MV>>mv_shift)-(PMV>>mv_shift)……(4)解码侧的处理也与差分运动矢量的精度的候补为1/4像素精度、1/2像素精度、1像素精度3种的情况相同,从解码mv_shift值和解码MVD以及PMV,按照下面的公式,MV=(MVD<<mv_shift)+((PMV>>mv_shift)<<mv_shift)……(5)各运动矢量成分的解码MV值被再现。此公式表示,在将差分运动矢量成分MVD按mv_shift所示的数向左进行了算术位移位后的值上加上,将预测运动矢量成分PMV按mv_shift所示的数向右算术位移位后马上向左进行了算术位移位后的值成为解码运动矢量成分MV。这里,对于预测运动矢量成分的连续的右位移位处理以及左位移位处理,和将差分运动矢量成分MVD按mv_shift所示的数向左进行算术位移位的处理,起到将各成分变换成1<<mv_shift的倍数的值的作用。从而,解码运动矢量成分MV就成为原来的1<<mv_shift的倍数。此外,此公式通过如下述那样进行简化,就能够削减运算步数。在电路设计等的实现时就有效。在此公式中,表示对在已变换成1的倍数的值的预测运动矢量成分PMV上相加已解码的差分运动矢量DMV后的值,按mv_shift所示的数实施了左算术位移位后的值成为解码运动矢量成分MV。“将变换成1的倍数的预测矢量成分设成1<<mv_shift倍的值”与上式中的“变换成mv_shift倍数的预测运动矢量成分”等同,另外由于差分运动矢量成分DMV是1的倍数,故使用下述公式所造成的信息的缺失就不会发生。
MV=(MVD+(PMV>>mv_shift))<<mv_shift……(6)若比较上述实施例1和2,则由于实施例1实际上是调整进行编码的差分运动矢量的精度,故与实施例2相比较运算简单。相对于此,由于实施例2是调整应编码的运动矢量的精度,故已假定各精度的情况下的探索像素就不依赖于预测矢量。从而,在仅追求编码性能的情况下实施例1有效,但在后述的存储器存取削减方法中,实施例2有效。
<实施例3>
本实施例3是不极力进行mv_shift值的编码,而依照块方式预先决定好的编码方法和解码方法,防止在宏块的选择率高的区域中,mv_shift值的代码量增大的方法。即,在伴随宏块的运动矢量数少的方式中,以预先所规定的缺省的运动矢量精度进行差分运动矢量的编码以及解码处理。通过此处理,就省略运动矢量精度信息的编码以及解码处理。
例如,在编码侧和解码侧进行设定以使在MB type是16×16的宏块中,以1/4像素精度或者1/8像素精度进行编码以及解码处理,在这些方式的宏块中就省略精度信息的编码·解码处理。在这里,作为省略精度信息的编码·解码处理的方式仅设定MB type为16×16的宏块,但能够进一步扩展其对象。例如,在编码侧和解码侧进行设定使得以1/4像素精度或者1/8像素精度对MB type是16×16、16×8以及8×16的宏块进行编码以及解码处理也是有效的。另外,在P-Picture中,作为省略精度信息的编码·解码处理的方式仅设定MB type为16×16的宏块,在进行编码的运动矢量数多的B-Picture中,也可以作为省略精度信息的编码·解码处理的方式设定直至MB type为16×16、16×8以及8×16的宏块。
此外,上述运动矢量精度的default值,与mv_shift同样可在0-3(在1/4MC type时为0-2)的范围内进行设定,以位流单位或者帧单位进行切换。此时,设default值的代码,在位流单位的情况下包含在数据的起始的首标部,在帧单位的情况下包含在picture header数据中。此外,在位流单位的情况下,如果在编码侧和解码侧预先进行决定,则不需要包含在编码数据中。
进而,通过取代图15的表95和表96,准备规定了图11的表91和图12的表93所示的mv_shift值的宏块类型,就能够削减伴随mv_shift值的编码的附加信息。另外,在对mv_shift值进行算术编码时,通过基于在宏块中所包含的运动矢量数,适应地切换编码所用的概率模型,就能够使编码效率得以提高。此外,在这里,将mv_shift的切换单位设为宏块单位,但也考虑每8×8进行切换的情况。这样的处理,通过在MB_type中设置每8×8进行处理的方式和每16×16进行处理的方式就能够实现。另外,通过在表81或者表82中设置每8×8进行切换的方式,进而每8×8对4个mv_shift值进行编码的方法也能够实现。
另外更进一步,作为差分运动矢量或者运动矢量精度的选择切换单位,也可以在全体帧中设成固定或者在全体序列中设成固定。固定精度的选择切换单位,将会简化编码/解码处理。从而,在考虑了实现成本的简单的编码/解码方式中,以帧单位或序列单位固定精度的切换单位是有效的。
<实施例4>
本实施形式4是从周围的状况唯一地判定移位值的方法。即,通过从邻接宏块来预测编码对象宏块的mv_shift值,来削减mv_shift值的代码量。例如,从紧靠左的宏块(7A)、紧靠上的宏块(7B)的mv_shift值来预测编码对象宏块(图10的宏块7C)的mv_shift值。作为预测方法有从7A和7B的mv_shift值的加法值进行预测的方法。作为具体的利用手段,有在加法值为0,7C的MB type为16×16的情况下,省略mv_shift值(MVD precison)的编码并在编码·解码侧的双方作为规定值使用1/8像素精度或者1/4像素精度,在除此以外的加法值和MB type的组合的情况下,进行mv_shift值的编码的控制手段。此外,此具体例是一个例子,预测所用的邻接宏块的种类、预测方法、进行控制的MB type的种类、控制时的情况区分种类等的组合有多种。例如,通过将进行控制的MB type扩展到2个或2个以下的差分运动矢量,或者将加法值的控制点扩展到2或2以下,mv_shift值的代码量的削减量就增大。另外,还有通过运动矢量的预测这样的方法从邻接MB的mv_shift值预测当前MB的mv_shift值,对其差分值进行编码的方法等。
在上述实施例的运动矢量的编码精度切换手段中还包含下面那样的变形。
尽管在本实施例中,设运动矢量的编码精度的候补为1/8像素精度、1/4像素精度、1/2像素精度、1像素精度,但并不限定于此。例如直到1/16像素精度都包含的情况或者,设为1/2像素精度、1像素精度2种的情况。
另外,尽管在上述实施例中,以宏块为单位进行运动矢量的编码精度信息的编码,但也有对多个宏块组的每个切换运动矢量的编码精度信息的方法。
进而,尽管在上述实施例中,将宏块中的运动补偿块的分割方式设为图7所示的4种,但由于本说明书的运动矢量编码方法,即使运动补偿块的分割方式的种类和数目被变更也能够实施,故运动矢量的编码块结构不进行限定。
另外,尽管在上述实施例中,作为编码数据的编码方式说明了UVLC和算术编码,但本说明书的运动矢量编码方法,能够不限定于熵编码的种类进行实施。另外,UVLC的代码表的结构和算术编码/解码的结构方法也不限定于实施例的表。另外进而,尽管在本实施例中,关于16×16、16×8以及8×16方式,利用了mv_shift值的default值,但能够将此default值适用于8×8(split)的一部分的Partition方式。另外,尽管在实施例中,设default值的设定为位流单位或者帧单位,但关于各宏块单位也可以分配不同的值。例如有在16×16方式中将default值设定为1,在16×8和8×16方式中将default值设定为0的方法。如果概括地讲,则关于宏块方式和8×8Partition方式,以帧单位或者序列单位来规定各自适用的差分运动矢量(或者运动矢量)的编码精度,进行编码传送即可(在序列单位的情况下,如果预先在编码侧和解码侧决定各方式中的编码精度,则不需要进行精度信息的编码)。如上述那样,固定编码精度的选择切换单位,将会简化编码/解码处理。通过增加规定default值的方式,实现成本就进一步降低。在需要更简单的结构的编码/解码方式中,对于更多的方式,固定编码精度的切换单位是有效的。
上面对根据本发明的运动图像的编码方法以及解码方法的实施例进行了说明。根据本发明的运动图像的编码装置以及解码装置,关于实施例的方法图13的编码装置,首先在运动补偿器211中追加,依照MB type和8×8Partition的组合来开/关mv_shift值的编码的判定处理、考虑了mv_shift值的运动推定处理、伴随mv_shift的MVD、MVDFW、MVDBW的计算处理以及将mv_shift值传给多路化器206的处理。另外,在多路化器206中追加将mv_shift值作为MVDprecision进行编码的处理。关于图14的解码装置,在代码译解器501中设置,追加依照MB type和8×8Partition的解码值来开/关mv_shift值的解码的判定处理、将MVD precision作为mv_shift值进行解码的处理以及将mv_shift值传给MV预测器508的处理的处理部。另外,在MV预测器508中设置,将伴随mv_shift的MVD、MVDFW、MVDBW再现成MV的处理部。
图25、图27、图29、图31、图33、图35、图37、图39以及图41,都是表示根据本发明的运动图像的编码装置的实施例的主要部分(运动矢量的编码部)结构的框图。图26、图28、图30、图32、图34、图36、图38、图40以及图42表示分别对应于图25、图27、图29、图31、图33、图35、图37、图39以及图41的编码装置的、根据本发明的运动图像的编码装置的实施例的主要部分(运动矢量的解码部)结构的框图。
在各图中,对实质上相同功能块附加同一编号。各图的装置的结构、动作,通过上述实施例1至实施例4的说明,能够容易地实现,所以仅示出与上述各实施例的对应,详细的说明省略。
图25和图26的装置,分别由执行实施例1的公式(1)和(2)的电路所构成,移位(mv_shift)值的决定仅根据外部输入(在运动矢量检测时求出)来进行控制。MV预测部215利用存储了各块的运动矢量MV的存储器101,生成预测运动矢量PMV。减法器102取得它们的差分MV-PMV。右移位处理部103对MV-PMV进行右移位。在解码侧,由于进行编码侧的逆处理,故设置存储了运动矢量MV的存储器101、左移位处理部113以及加法器112。
图27和图28的装置,分别由执行实施例1的公式(1)和(2)的电路所构成,移位(mv_shift)值的决定根据外部输入(在运动矢量检测时求出)和宏块的类型等条件的某一个来进行决定、控制。在移位值选择部104选择了特定的块类型的情况下,选择mv_shift值,由控制电路105从来自该部的mv_shift值,用对应于块类型的mv_shift值来处理右移位处理部103。
图29和图30的装置,分别由执行实施例1的各个公式(1)和(2)的电路所构成,移位(mv_shift)值的决定仅根据宏块的类型等条件来进行决定、控制。
图31和图32的装置,分别由执行实施例2的公式(3)和(5)的电路所构成,移位(mv_shift)值的决定仅根据外部输入(在运动矢量检测时求出)来进行控制。精度修正处理部106,进行公式(3)的(PMV>>mv_shift)<<mv_shift的处理。
图33和图34的装置,分别由执行实施例2的公式(3)和(5)的电路所构成,移位(mv_shift)值的决定根据外部输入(在运动矢量检测时求出)和宏块的类型等条件的某一个来进行决定、控制。
图35和图36的装置,分别由执行实施例2的公式(3)和(5)的电路所构成,移位(mv_shift)值的决定仅根据宏块的类型等来进行控制。
图37和图38的装置,分别由执行实施例2的公式(4)和(6)的电路所构成,移位(mv_shift)值的决定仅根据外部输入(在运动矢量检测时求出)来进行控制。
图39和图40的装置,分别由执行实施例2的公式(4)和(6)的电路所构成,移位(mv_shift)值的决定根据外部输入(在运动矢量检测时求出)和宏块的类型等条件的某一个来进行决定、控制。
图41和图42的装置,分别由执行实施例2的各个公式(4)和(6)的电路所构成,移位(mv_shift)值的决定根据宏块的类型等条件的某一个来进行决定、控制。
<实施例5>
图18是实施例5的编码方法的处理流程图。
本实施例5是为了解决在使用了长抽头数的过滤器的运动补偿中存储器存取区域扩大的问题,而对编码运动矢量的精度进行切换的编码·解码方法。
使用长过滤器生成的预测值只是像素精度或其以下的预测像素。从而,通过将运动矢量的编码精度限定成整数像素,就能够削减存储器存取区域。但是,将运动矢量的编码精度限定成整数像素,将使预测性能降低。因此,在本实施例5中,依照存储器存取范围的扩大对装置实现或者软件实现影响的程度,来限制像素精度。特别是仅在运动补偿时的块大小较小的情况下,限制运动矢量的编码精度。
伴随存储器存取区域扩大的影响,块大小越小就变得越大。大小较小的块原本进行存取的像素数就少。为此,若比较大小较大的块和小的块,则对于原来的存取范围的扩大存取区域的比率,块大小越小则越大。
本实施例的编码装置方法,在对图7的块分割进行1/4像素精度的运动补偿的情况下,如图18那样,首先进行块大小判别(处理801),选择mv_shift值。在本实施例的情况下,在8×8Partition2(8×4)和8×8Partition3(4×8)中选择1/2像素精度(处理811)、在8×8Partition3(4×4)中选择整数像素精度(处理812)、在8×8像素以及在此以上大小较大的块中选择1/4像素精度(图18的处理813),并用所选择的mv_shift来驱动右移位处理部103进行运动补偿。在运动矢量的编码时,在8×4和4×8像素大小的块中设mv_shift为1,在4×4像素大小的块中设mv_shift为2,在除此以外的像素大小的块中设mv_shift为0。
另外,在使用P-picture和B-picture的方式中,也可以仅对B-picture适用上述精度切换,在P-picture中不管块大小如何都以1/4像素精度进行运动补偿。此外,尽管在这里,仅将以整数像素精度进行运动补偿的块大小设为4×4,但也可以将其扩展到8×4和4×8。在此情况下,在8×4、4×8和4×4像素大小的块中设mv_shift为2,在除此以外的像素大小的块中设mv_shift为0。
根据本实施例的运动图像的编码装置以及解码装置中的运动矢量的编码部及解码部,分别与上述图41和图42同样地进行构成。
<实施例6>
图19、图45以及图46,分别是本发明的实施例6的编码方法处理流程图、编码装置的主要部分结构图以及解码装置的主要部分结构图。
本实施例也为了解决在使用了长抽头数的过滤器的运动补偿中存储器存取区域扩大的问题,而通过以不同的编码精度对运动矢量的垂直·水平各成分进行编码,来限制存储器存取范围。
编码装置的移位选择部124,如图19那样,判断运动矢量是否是垂直成分(处理801),并选择mv_shift。类型适应部124,用所选择的mv_shift来驱动右移位处理部103进行运动补偿。在本实施例中,通过1/4像素精度的运动补偿,将运动矢量的垂直成分设为整数像素精度(处理812),将水平成分设为1/4像素精度(处理813),设对垂直成分进行编码/解码时的mv_shift为2,设对水平成分进行编码/解码时的mv_shift为0。
本实施例的对存储器存取范围扩大的影响较大的运动矢量的垂直成分的编码精度进行限制的方法效果很大。图像数据一般是从左上朝右下按光栅扫描的顺序保存在存储器中。为此,在从某像素开始对邻接像素扩大存取范围的情况下,水平方向的1个像素意味着1个像素程度,而垂直方向的1个像素则意味着1行程度。从而,伴随向垂直方向的存储器存取的工数,比水平方向的还要大。进而,在不是以byte单位(1个像素)而是以word单位(每2个像素)或者dword单位(每4个像素)来保存1个像素1byte的像素数据的实现方法中,由于向水平方向的存储器存取范围的扩大,以word单位或者dword单位发生,所以其影响不太大。相对于此,在垂直方向即使是1个像素程度的存取,存储器存取范围也必然扩大。从而,对垂直方向的运动矢量的编码精度进行限制的方法,以存储器存取范围缩小这样的观点来看是有效果的。
另外,也可以综合实施例5以及实施例6的方法,进行如图23那样的处理。即,移位选择部124,仅对8×4、4×8以及4×4像素大小的块,将运动矢量的垂直成分限制成整数像素。进而,依照块大小,切换对范围进行限制的矢量成分的手段也是有效的。
如上述那样,伴随存储器存取区域扩大的影响,块大小越小则越大,这也可说成块的纵横比率。也就是,在块的纵横大小的比率不同的情况下,大小越小的成分存取范围扩大的影响就变得越大。若用图7的块分割来考虑,则可以说对大小为4像素的成分施加限制是有效的。
<实施例7>
图24、图43以及图44,分别是本发明的实施例7的编码方法处理流程图、编码装置的主要部分结构图以及解码装置的主要部分结构图。
本实施例,编码装置(图43)、解码装置(图44)的移位值选择部124如图24的处理流程图所示那样,在块大小为8×4(纵×横)时将水平成分设为整数像素精度(mv_shift=2)将垂直成分设为1/4像素精度(mv_shift=0),在块大小为4×8(纵×横)时将水平成分设为1/4像素精度(mv_shift=0)将垂直成分设为整数像素精度(mv_shift=2),在块大小为4×4(纵×横)时将水平·垂直成分都设为整数像素精度(mv_shift=2)。此外,从预测性能的观点出发,也可以替换8×4和4×8方式的水平·垂直成分的处理。这起因于大小越小的成分精度高的预测方法越有效这样的概念。是适用哪个方法,则根据存储器存取限制的必要性、编码性能、位速率等应用来进行决定。
<实施例8>
图20、图47以及图48,分别是本发明的实施例8的编码方法处理流程图、编码装置的主要部分结构图以及解码装置的主要部分结构图。本实施例是在实施例7中,在输入图像为隔行信号,宏块为帧构造的情况下,将运动矢量的垂直成分限制成偶数像素精度的方法。
图17表示以帧构造对隔行信号进行编码/解码的情况下的宏块。图上的实线意味着奇数场(top field),虚线意味着偶数场(bottomfield)。由图17可知奇数值的运动矢量是,从参数图像上的偶数场生成奇数场上的预测值,从参数图像上的奇数场生成偶数场上的预测值。在隔行信号中,由于奇数场和偶数场显示时刻不同,故奇数值的垂直成分矢量,实际上不产生。
因此,在本实施例中,对输入图像为隔行信号,宏块为帧构造的情况,将运动矢量的垂直成分限制成偶数像素精度。在编码/解码装置中,设对垂直成分进行编码/解码时的mv_shift为3(图20的处理803、814),设对水平成分进行编码/解码时的mv_shift为0(图20的处理813)。即使在此隔行信号的帧构造情况下,也可以如图21和图22的流程图所示那样,与实施例7的方法进行组合,仅对8×4、4×8以及4×4像素大小的块(图21的处理801),将运动矢量的垂直成分限制成整数像素。进而,作为隔行信号的编码方式,有对每个宏块切换帧构造、场构造以及帧构造和场构造的适应方式,也可以依照该方法来改变运动矢量的编码精度的选定方法。例如,在处理隔行信号和渐进信号的编码规格中,有帧构造的编码方式不管信号扫描如何都相同的情况。在此情况下,也可以是在帧构造以及场构造中,对大小较小的块,将垂直方向的运动矢量的编码精度限定成整数像素精度进行编码/解码(图20和图21以及图22的处理812),在对每个宏块切换帧构造和场构造的适应方式中,对大小较小的块,在帧构造中将垂直方向的运动矢量的编码精度限定成偶数像素精度(图20和图21的处理814),在场构造中限定成整数像素精度进行编码/解码(图20和图21的处理812)这样的方法。此外,这时也可以是在帧构造中不管块的大小如何都将垂直方向的运动矢量的编码精度限定成偶数像素精度(图22的处理814),在场构造中对大小较小的块限定成整数像素精度进行编码/解码(图22的处理801和处理812)这样的方法。
在实施例7和8的存储器存取范围降低方式中,不需要mv_shift值的编码/解码处理。从而,就不需要图1、图2中的MVD Prediction13和图11、图12中的mv_shift。另外,在图13中就不需要将mv_shift值从运动补偿器211传给多路化器206的处理。进而,在图14中就不需要将mv_shift值从代码译解器501传给MV预测器508的处理。mv_shift值按照预测方式由MV预测器508来进行决定。
此外,本实施例8的存储器存取范围降低方式是,使用对编码运动矢量和预测编码运动矢量的精度进行切换的手段“依照块大小将运动矢量的编码精度限定成整数像素”,“将运动矢量的垂直成分的编码精度限定成整数像素或者偶数像素”,关于运动补偿的精度、准备的运动矢量编码精度的种类以及切换运动矢量的编码精度的块大小,并不限定于上述实施例。另外,在通过将运动矢量的精度限定成1/2像素精度使存储器存取范围降低的运动补偿方式中,不是将运动矢量限定成整数像素精度而是限定成1/2像素精度的方法也能够用本发明实现。
本发明在传送、存储、显示运动图像的装置、系统中,需要将图像信息编码成更少的代码量的数字信号的技术的产业上的领域中得以利用。
权利要求
1.一种运动图像的编码方法,具有如下步骤,将图像分割成多个编码块,通过从邻接块的运动矢量来预测编码块的运动矢量,其中将该邻接块的运动矢量作为预测运动矢量,以块为单位对由应编码的运动矢量及其预测运动矢量计算出的差分运动矢量进行编码,其中通过在该邻接块的运动矢量加上差分运动矢量来作为编码块的运动矢量,其特征在于该方法还具有如下步骤,准备数种差分运动矢量的精度,对每个编码块选定差分运动矢量的精度,并对所选定的精度的信息以及该精度的差分运动矢量进行编码。
2.根据权利要求1所述的运动图像的编码方法,其特征在于还具有如下步骤,准备多个块类型作为编码块的种类,并选定差分运动矢量的精度和编码块内的运动矢量数以及对应于它们的组合的块类型,其中块类型包含表示将差分运动矢量的精度作为附加信息进行编码还是规定成固定的精度的识别信息、并且在该多个块类型下应编码的运动矢量的数目不相同;在编码块的块类型表示将差分运动矢量的精度作为附加信息进行编码的情况下,对块类型和所选定的精度的信息以及该精度的差分运动矢量进行编码;在编码块的块类型表示以规定的精度对差分运动矢量进行编码的情况下,对块类型和规定精度的差分运动矢量进行编码。
3.根据权利要求1所述的运动图像的编码方法,其特征在于还具有如下步骤,准备在块内应编码的运动矢量的数目不同的多种小块形状,决定是否将上述差分运动矢量的精度、小块形状种类以及上述差分运动矢量的精度作为附加信息来进行编码,对每个块编码并输出依照上述决定唯一地确定的识别信息。
4.根据权利要求1所述的运动图像的编码方法,其特征在于还具有如下步骤,准备在块内应编码的运动矢量的数目不同的多种小块形状,对于各上述多种小块形状,规定将差分运动矢量精度用缺省值进行固定或者设为可变值,并决定是否将上述差分运动矢量的精度、小块形状种类以及差分运动矢量的精度作为附加信息来进行编码;以及对上述缺省值和依照上述决定唯一地确定的识别信息进行编码,并将上述编码后的识别信息包含在编码数据中进行输出。
5.一种运动图像的编码方法,具有如下步骤,将图像分割成多个编码块,通过从邻接块的运动矢量来预测编码块的运动矢量,其中将该邻接块的运动矢量作为预测运动矢量,以块为单位对由应编码的运动矢量及其预测运动矢量计算出的差分运动矢量进行编码,其中通过在该邻接块的运动矢量加上差分运动矢量来作为编码块的运动矢量,其特征在于该方法还具有如下步骤,准备数种运动矢量的精度,对每个编码块选定运动矢量的精度,并对上述所选定的精度的信息、以及由修正成上述所选定的精度的预测运动矢量和所选定的精度的运动矢量计算出的差分运动矢量进行编码。
6.根据权利要求5所述的运动图像的编码方法,其特征在于还具有如下步骤,准备多个块类型作为编码块的种类,并选定运动矢量的精度和编码块内的运动矢量数以及对应于它们的组合的块类型的步骤,其中块类型包含表示将运动矢量的精度作为附加信息进行编码或者规定成固定的精度的识别信息、并且在该多个块类型下应编码的运动矢量的数目不相同;在块类型表示将运动矢量的精度作为附加信息进行编码的情况下,对块类型、所选定的精度的信息、以及由修正成所选定的精度的预测运动矢量和所选定的精度的运动矢量计算出的差分运动矢量进行编码;在块类型表示以规定的精度对运动矢量进行编码的情况下,对块类型、以及由修正成规定精度的预测运动矢量和规定精度的运动矢量计算出的差分运动矢量进行编码。
7.根据权利要求5所述的运动图像的编码方法,其特征在于还具有如下步骤,准备在块内应编码的运动矢量的数目不同的多种小块形状,决定是否将上述运动矢量的精度、小块形状种类以及上述运动矢量的精度作为附加信息来进行编码;对各块在将运动矢量的精度作为附加信息进行编码的情况下,对依照上述决定唯一确定的识别信息、所选定的精度的信息以及由修正成所选定的精度的预测运动矢量和所选定的精度的运动矢量计算出的差分运动矢量进行编码并输出;在不将运动矢量的精度作为附加信息进行编码的情况下,对依照上述决定唯一确定的识别信息、由修正成与该识别信息相应的精度的预测运动矢量和该精度的运动矢量计算出的差分运动矢量进行编码并输出。
8.一种运动图像的解码方法,具有如下步骤,将图像分割成多个解码块,从邻接块的解码运动矢量来预测解码块的运动矢量,由解码差分运动矢量和预测运动矢量计算出解码运动矢量,其特征在于该方法还具有如下步骤,准备数种差分运动矢量的精度,对每个解码块解码差分运动矢量的精度信息和该精度的差分运动矢量,在将解码差分运动矢量的精度修正成与预测运动矢量相同的精度后,从已进行精度修正的解码差分运动矢量和预测运动矢量计算出解码块的运动矢量。
9.根据权利要求8所述的运动图像的解码方法,其特征在于还具有如下步骤,准备多个块类型作为解码块的种类,并将应解码的块的块类型进行解码,其中块类型包含表示将差分运动矢量的精度作为附加信息进行解码或者规定成固定的精度的识别信息、并且在该多个块类型下应解码的运动矢量的数目不相同;在解码块类型表示将差分运动矢量的精度作为附加信息进行解码的情况下,对精度的信息以及该精度的差分运动矢量进行解码;在解码块类型表示以规定的精度对差分运动矢量进行解码的情况下,对规定精度的差分运动矢量进行解码;在将解码差分运动矢量的精度修正成与预测运动矢量相同的精度后,从已进行精度修正的解码差分运动矢量和预测运动矢量计算出解码块的运动矢量。
10.一种运动图像的解码方法,具有如下步骤,将图像分割成多个解码块,从邻接块的解码运动矢量来预测解码块的运动矢量,由解码差分运动矢量和预测运动矢量计算出解码运动矢量,其特征在于还具有如下步骤准备数种运动矢量的精度,对每个解码块解码运动矢量的精度信息和该精度的差分运动矢量,在将预测运动矢量的精度修正成与解码精度信息相同的精度后,从解码差分运动矢量和已进行精度修正的预测运动矢量计算出解码块的运动矢量。
11.根据权利要求10所述的运动图像的解码方法,其特征在于还具有如下步骤,准备多个块类型作为解码块的种类,并将块类型进行解码,其中块类型包含表示将运动矢量的精度作为附加信息进行解码或者规定成固定的精度的识别信息、并且在该多个块类型下应解码的运动矢量的数目不相同;在解码块类型表示将运动矢量的精度作为附加信息进行解码的情况下,对精度的信息以及该精度的差分运动矢量进行解码;在解码块类型表示以规定的精度对运动矢量进行解码的情况下,对规定精度的差分运动矢量进行解码;从解码差分运动矢量和已进行精度修正的预测运动矢量计算出解码块的运动矢量。
全文摘要
一种运动图像的运动补偿编码/解码,在从邻接位置的运动矢量来预测编码块内的运动矢量,对由应编码的运动矢量及其预测运动矢量计算出的差分运动矢量进行编码的情况下,对每个块切换(1)差分运动矢量的编码精度或者(2)预测运动矢量和编码运动矢量的编码精度来进行编码。另外,在从通过上述编码所编码的差分运动矢量,对运动矢量进行解码的情况下,通过与编码相反的处理来进行。
文档编号H04N7/36GK1882100SQ20061009996
公开日2006年12月20日 申请日期2003年1月24日 优先权日2002年1月24日
发明者铃木芳典 申请人:株式会社日立制作所