一种确定对应宏块的方法和系统的制作方法

文档序号:7666315阅读:91来源:国知局

专利名称::一种确定对应宏块的方法和系统的制作方法
技术领域
:本发明涉及视频编解码技术,特别涉及一种确定对应宏块的方法和系统。
背景技术
:在目前普遍采用的混合编码技术中,广泛采用了帧内预测、帧间预测、宏块划分、运动估计、运动补偿、频域变换、环路滤波、量化和熵编码等技术,用于去除视频中的冗余信息,达到视频压缩的效果。在目前联合视频编码组(JVT)正在制定的多视点编码(MVC)标准中,运动信息跳过模式是利用视点间运动信息描述,减少编码的信息量,提高编码效率的技术之一。运动信息跳过模式利用相邻视点中,同一个物体运动的高度相似性,将相邻视点中的运动信息作为当前视点的运动信息,也就是说,对于编码的当前编码宏块,需要在已编码的参考图像中确定与该当前编码宏块的运动信息最相似的对应宏块,将该对应宏块的运动信息作为当前编码宏块的运动信息,用作后续的运动补偿,即计算出当前编码宏块与该运动信息的残差,并计算使用该运动模式的开销是否小于其它宏块模式开销,如果是,说明运动信息跳过模式是该宏块最优的编码模式,则确定运动信息跳过模式为该宏块的最终编码模式。采用这种方式在编码时,只需编码各宏块采用的模式信息和计算出的残差,而不必编码宏块的运动信息,从而提高MVC的压缩效率。可见,在运动模式跳过信息中,确定对应宏块是很重要的一个过程。现有技术中确定对应宏块是利用全局视点差(GDV)进行的。全局视点差为当前编码图像与参考图像之间的全局视点差。图1为现有技术中确定对应宏块的示意图,现有技术中确定对应宏块是以16x16划分块为基本单元的,具体方法包括计算图像A和B的GDV。该图像A和B为锚定帧,即计算锚定帧A和锚定帧B的全局视点差GD^和GD^;-使用求出的锚定帧的GDV确定当前编码图像Cur的全局视点差GZ)L,该当前编码图像Cur为非锚定帧,该(^^_=(^^+麼-—麼"x-⑨。其中,尸(9Ca、尸(9Ce和/^C。ur分别为一组多视点视频中与锚定帧A、锚定帧B和非锚定帧Cur具有相同时间坐标的所有图像的图像序列号;根据该求得的GD^,可以确定非锚定帧Cur中当前编码宏块MB,在参考图像中的对应宏块MB^,该GZ)F,所指向的当前图像Cur的参考图像中的宏块即为对应宏块MB^。确定到该对应宏块MB^后,使用该对应宏块MB^的运动信息作为当前编码宏块MB,的运动信息,用于后续的运动补偿。但是,由于现有技术中确定的对应宏块是由GDV确定的,但GDV仅能够近似反映当前编码图像中占主导区域的视点差,并不能准确的反映当前编码图像中每一个宏块的视点差,也就是说,有些宏块的视点差与GDV的差别是很大的,这就必然使得GDV指向的对应宏块并不是最优的匹配宏块,将该对应宏块的运动信息作为当前编码宏块的运动信息时,会导致编码效率大大降低。
发明内容本发明实施例提供了一种确定对应宏块的方法和系统,以便于提高图像编码效率。一种确定对应宏块的方法,该方法包4舌确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差;根据所述当前编码宏块所在区域的视点差,确定参考图像中的对应宏块。一种确定对应宏块的系统,该系统包括区域i见点差确定单元和对应宏块确定单元;区域视点差确定单元,用于确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差;对应宏块确定单元,用于根据所述区域视点差确定单元确定的当前编码宏块所在区域的视点差,确定参考图像中的对应宏块。由以上技术方案可以看出,本发明实施例提供的方法和系统,通过确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差,根据编码宏块所在区域的视点差确定参考图像中的对应宏块。也就是说,将编码图像按照视点差划分为多个区域,以当前编码宏块所在区域的视点差来确定对应宏块,而不是采用参考图像的全局视点差来确定对应宏块,使得求得的视点差更加准确,在参考视点中找到的对应宏块也更加精确,将该对应宏块的运动信息作为当前编码宏块的运动信息作后续的运动补偿时,能够获取更小的补偿残差,从而提高图像编码效率。图1为现有技术中确定对应宏块的示意图;图2为本发明实施例提供方法的主要流程图;图3为本发明实施例提供的一种划分区域的方法;图4为本发明实施例提供的当前编码宏块所在区域视点差的确定方法流程图5为本发明实施例提供的系统结构图6为本发明实施例提供的另一种系统结构图。具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。图2为本发明实施例提供方法的主要流程图,如图1所示,该方法主要包括步骤201:确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差。步骤202:根据当前编码宏块所在区域的视点差确定参考图像中的对应宏块。上述流程中,根据编码图像中各宏块所在区域的视点差确定参考图像中的对应宏块,这样只需要利用前面已解码的宏块的视点差信息推导各宏块所在的区域信息,而不需要分别在码流中传递各宏块的视点差信息,从而节省码流。其中,对于步骤201可以有不同的划分区域的方法,可以预先根据各宏块的视点差,将编码图像分成不同的区域。此时确定对应宏块的方法具体为可以将图像首先进行预编码,获取各宏块的视点差;根据获取的各宏块的视点差,将编码图像分成不同的区域,各区域中各宏块的^f见点差与该区域的视点差的差值绝对值在设定的范围内,记录各宏块所在的区域标识和区域视点差;在编码每个宏块时,根据该宏块所在区域的标识,用其所在区域的视点差在参考图像中找到对应宏块。步骤201也可以按照编码顺序,逐一确定当前编码宏块所属的区域范围,该方法可以如图3所示。图3为本发明实施例提供的一种划分区域的方法,如图3所示,该方法可以包括以下步骤步骤301:设置当前区域视点差。在进行编码图像的第一个宏块的编码前,需要初始化设置当前区域视点差,本步骤可以在一个编码图像开始进行编码前进行初始化设置;也可以在编码图像进行过程中,利用已知的初始化区域视点差进行设置。当前编码宏块不是该编码图像的第一个宏块时,设置当前区域视点差为上一个视图间预测编码宏块所在区域的视点差。其中,初始化设置的区域视点差可以根据图像采集设备的实际性能进行设置,通常为一个经验值,也可以初始设置为0。图像采集设备可以是摄像机等。在本步骤中,还可以进一步初始设置当前区域视点差统计计数值,通常初始设置为o,用于统计各宏块在其所在区域中的序号,可以用于后续步骤中当前编码宏块所在区域的视点差计算。步骤302:确定当前编码宏块的前一个利用视图间预测编码的宏块的视点差。为了描述方便,以下将前一个利用视图间预测编码的宏块简称为前一个宏块。如果前一个宏块是利用视图间预测技术进行编码的,则视图间预测编码计算得到的视点差是足够准确的,并且下一个编码宏块也有一个和它相似的视点差,因此,该两个宏块很可能属于同一个区域。前一个利用^L图间预测编码的宏块的^L点差可以4艮据该宏块的不同编码划分模式来进行确定,例如,当该前一个宏块是按16x16划分块划分的,则该前一个宏块的视点差可以为该16x16划分块的视点差;当该前一个宏块是按16x8划分块划分的,则该前一个宏块的视点差可以将该两个属于同一^L图的16x8划分块的;f见点差进行求平均处理,生成该前一个宏块的^L点差,其中,进行求平均处理可以采用将该两个块的视点差求代数平均值或求中值的方法得到该前一个宏块的视点差;当该前一个宏块是按8x16、8x8、8x4、4x8、4x4划分块等模式划分时,也可以利用将该属于同一视图的多个块的视点差进行合成的方式,确定该前一个宏块的^L点差。步骤303:利用确定的前一个宏块的视点差与当前的区域视点差之间的差异来确定当前编码宏块所在的区域视点差。步骤304:利用确定的当前编码宏块所在的区域视点差,在参考图像中确定该确定的区域视点差所指向的宏块为对应宏块。本步骤中,确定的对应宏块既可以是参考图像中已解码的编码宏块,也可以是参考图像中已解码的编码宏块的合成宏块。另外,本步骤中,确定了区域视点差所指向的宏块后,可以在该指向的宏块为中心的一定区域内进行搜索,查找使得编码效率最优的宏块作为对应宏块。其中,所述编码效率最优可以为率失真最优(RDO)。在一定区域范围内搜索编码效率最优的宏块是现有技术,在此不再赘述。上述步骤303中当前编码宏块所在的区域视点差确定方法可以如图4所示,可以包括如下步骤步骤401:判断前一个宏块的视点差和当前的区域视点差之间的差值绝对值是否大于设定阈值,如果是,执行步骤402;如果否,则执行步骤403。步骤402:将当前的区域视点差更新为该前一个宏块的视点差,执行步骤404。当前一个宏块的视点差和当前的区域视点差之间的差值绝对值大于设定阈值时,说明前一个宏块的的视点差和当前的区域的视点差差异比较大,当前的区域视点差并不能够准确反映当前的区域视点差,因此,需要更新当前的区域视点差,并重新进行该区域视点差统计计数值的计数。该步骤还可以包括将当前区域-现点差统计计数值归零。步骤403:将当前的区域视点差与该前一个宏块的-见点差求平均处理,求得的平均值作为更新后的当前的区域视点差,执行步骤404。本步骤中进行求平均处理的方法可以为取当前区域一见点差和前一个宏块的视点差的中值,也可以利用当前区域视点差统计计数值,对当前的区域视点差和前一个宏块的视点差进行加权平均,也可以采用代数求平均等求平均的处理方法。其中,加权平均的算法可以为将当前的区域视点差与当前区域视点差统计计数值的乘积,加上前一个宏块的视点差的和,除以当前区域^L点差统计计数值与1的和。即RDV=(DVxdvNum+mbDV)/(dvNum+1)其中,RDV为更新后的当前区域视点差,DV为当前区域视点差,dvNum为当前区域视点差统计计数值,mbDV为前一个宏块的视点差。具体计算时,可以对各视点差进行分别进行水平分量和垂直分量上的计算。也可以根据不同的计算精度,将计算结果进行四舍五入等处理。该步骤还包括将当前区域视点差统计计数值进行连续计数。步骤404:利用更新后的当前的区域视点差作为当前编码宏块所在的区域视点差。另外,再步骤404之前,还可以判断更新后的区域-见点差是否为0,如果为0,则可以将求得的更新后的区域视点差加上设定的偏移量。该偏移量可以根据视频采集设备的性能设定。上述图4所示的流程可以用伪代码的形式表示如下if(前一个宏块的视点差mbDV和当前的区域视点差DV的绝对值大于阈值DV—THRESH)更新当前区域3见点差(DV):DV.set(mbDV.getHor(),mbDV.getVer());dvNum=0;else更新当前区域视点差(DV)的水平分量设tempValue为当前区域视点差DV7jc平分量和区域视点差计数值dvNum的乘积与当前宏块视点差mbDV水平分量的和tempValue=(DV.getHor()*dvNum+mbDV.getHor());设置rem为tempValue的绝对值除以(dvNum+l)的余数;如果tempValue非负值则sgn取1否则取-1;if(rem大于(dvNum+1)的一半)设tempO为tempValue/(dvNum+1)+sgn;elsetempO=tempValue/(dvNum+1);设DV的水平分量值为temp0;同理可以求得当前区域视点差(DV)的垂直分量;if(当前区域视点差(DV)的水平和垂直分量都等于O)设DV为mbDV加上一定的偏移dvNum计数力口1上述伪代码中,mbDV.getHor()代表前一个宏块的视点差水平分量,mbDV.getVer()代表前一个宏块的视点差垂直分量,DV.getHor()代表当前区域视点差水平分量。无论采用上述哪种区域划分方法,在确定了当前编码宏块所在的区域后,标记当前编码宏块所在区域,在条带头上传输各区域的区域视点差,利用当前编码宏块所在区域的视点差,在参考图像中找到对应宏块,将该对应宏块的运动信息作为当前编码宏块的运动信息,用作后续的运动补偿。根据上述方法,不再需要在码流中传输原有的GDV,原有的条带级语法如表l所示,采用上述确定对应宏块的方法后,现有条带级语法可以如表2所示。表1<table>tableseeoriginaldocumentpage14</column></row><table>表2<table>tableseeoriginaldocumentpage14</column></row><table>下面对本发明实施例提供的确定对应宏块的系统进行详细描述,图5为本发明实施例提供的系统结构图,如图5所示,该系统可以包括区域视点差确定单元500和对应宏块确定单元510。区域视点差确定单元500,用于确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差。对应宏块确定单元510,用于根据区域视点差确定单元500确定的当前编码宏块所在区域的视点差,确定参考图像中的对应宏块。该系统还可以包括参考图像存储单元520,用于存储参考图像。对应宏块确定单元510根据当前编码宏块所在区域的视点差,确定参考图像存储单元520中存储的参考图像中当前编码宏块的对应宏块。其中,区域视点差确定单元500可以包括预编码单元501、区域划分单元502、记录单元503和第一确定单元504。预编码单元501,用于将编码图像进行预编码,获取编码图像中各宏块的视点差。区域划分单元502,用于根据预编码单元501获取的各宏块的视点差,将编码图像中的各宏块划分到不同的区域,使各宏块的视点差与其所在区域的视点差的差值绝对值在设定的范围内。记录单元503,用于记录区域划分单元502的划分结果,记录各宏块所在的区域标识和区域浮见点差。第一确定单元504,用于才艮据当前编码宏块所在的区域标识,在记录单元503中查找当前编码宏块所在区域的视点差。这种区域视点差确定单元500的结构可以用于预先划分编码图像各区域的方法,当采用按照编码顺序,逐一确定当前编码宏块所属的区域范围的方法时,可以采用如图6所示的结构,此时,区域-現点差确定单元500可以包括前宏块^L点差确定单元601、差异获取单元602和第二确定单元603。前宏块视点差确定单元601,用于确定当前编码宏块的前一个利用视图间预测编码的宏块的视点差。差异获取单元602,用于确定前宏块视点差确定单元601确定的视点差与设置的当前区域视点差之间的差值绝对值。第二确定单元603,用于根据差异获取单元602确定的差值绝对值,确定当前编码宏块所在的区域视点差。其中,第二确定单元603可以包括判断单元6031、平均值处理单元6032和第三确定单元6033。判断单元6031,用于判断差异获取单元602确定的差值绝对值是否大于设定阈值,如果是,则向第三确定单元6033发送确定通知,如果否,则向平均值处理单元6032发送处理通知。平均值处理单元6032,用于在接收到判断单元6031的处理通知时,将当前的区域视点差与前一个利用视图间预测编码的宏块的视点差进行求平均处理,并将求得的平均值发送给第三确定单元6033。其中,平均值处理单元6032进行的求平均处理可以为求代数平均值,求中值,求加权平均值,或其它求平均处理的方式。第三确定单元6033,用于接收到判断单元6031的确定通知时,将当前的区域视点差更新设置为前宏块视点差确定单元601确定的前一个利用视图间预测编码的宏块的视点差;接收到平均值处理单元6032提供的平均值时,将当前的区域视点差更新设置为该平均值。其中,对应宏块确定单元510可以包括指向宏块确定单元511和搜索单元512。指向宏块确定单元511,用于确定当前编码宏块所在区域的视点差在参考图像中所指向的宏块。搜索单元512,用于在指向宏块确定单元511所确定的宏块为中心的设定区域内,搜索使得编码效率最优的宏块作为所述对应宏块。由以上描述可以看出,本发明实施例提供的方法和系统,通过确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差,根据编码宏块所在区域的视点差确定参考图像中的对应宏块。也就是说,将编码图像按照视点差划分为多个区域,以当前编码宏块所在区域的视点差来确定对应宏块,而不是采用参考图像的全局视点差来确定对应宏块,使得求得的视点差更加准确,在参考视点中找到的对应宏块也更加精确,将该对应宏块的运动信息作为当前编码宏块的运动信息作后续的运动补偿时,能够获取更小的补偿残差,从而提高图像编码效率。另外,本发明实施例中确定编码宏块所在区域的视点差时,可以根据编码图像内的前一个宏块的视点差来确定,而不需要向现有技术一样必须使用编码图像间的视点差信息,也就不需要在码流中传输图像间的视点差信息,使得抗误码性能也大大提高。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。权利要求1、一种确定对应宏块的方法,其特征在于,该方法包括确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差;根据所述当前编码宏块所在区域的视点差,确定参考图像中的对应宏块。2、根据权利要求1所述的方法,其特征在于,所述确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差包括将编码图像进行预编码,获取各宏块的视点差;预先根据各宏块的视点差,将编码图像中的各宏块划分到不同的区域,使各宏块的视点差与其所在区域的视点差的差值绝对值在设定的范围内,记录各宏块所在的区域标识和区域视点差;根据当前编码宏块所在的区域标识,确定当前编码宏块所在区域的视点差。3、根据权利要求1所述的方法,其特征在于,所述确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差包括确定当前编码宏块的前一个利用视图间预测编码的宏块的视点差;利用确定的所述前一个利用视图间预测编码的宏块的视点差与设置的当前区域视点差之间的差异,确定当前编码宏块所在的区域-f见点差。4、根据权利要求3所述的方法,其特征在于,当所述前一个利用视点间预测编码的宏块采用除了16x16划分块的其它编码划分^f莫式时,将所述前一个利用视点间预测编码的宏块的一个以上划分块的视点差进行求平均处理后得到的视点差确定为所述当前编码宏块的前一个利用视图间预测编码的宏块的视点差。5、根据权利要求3所述的方法,其特征在于,所述设置的当前区域视点差是根据采集所述编码图像的图像采集设备性能进行设置的;或者,是上一个利用视图间预测编码宏块所在区域的视点差。6、根据权利要求3所述的方法,其特征在于,所述利用确定的所述前一个利用视图间预测编码的宏块的视点差与设置的当前区域^f见点差之间的差异,确定当前编码宏块所在的区域视点差包括判断前一个利用视图间预测编码的宏块的视点差和当前的区域视点差之间的差值绝对值是否大于设定阈值,如果是,将当前的区域视点差更新设置为所述前一个利用视图间预测编码的宏块的视点差;如果否,则将当前的区域视点差与该前一个利用视图间预测编码的宏块的视点差进行求平均处理,将当前的区域视点差更新设置为所述求平均处理之后得到的平均值。7、根据权利要求6所述的方法,其特征在于,该方法还包括初始化设置当前区域视点差统计计数值;在所述判断前一个利用视图间预测编码的宏块的视点差和当前区域视点差之间的差值绝对值大于设定阈值时,设置当前区域一见点差统计计数值为0;在所述判断前一个利用视图间预测编码的宏块的视点差和当前区域视点差之间的差值绝对值小于设定阈值时,所述将当前的区&好见点差与当前编码宏块的前一个利用视图间预测编码的宏块的视点差求平均包括将所述当前的区域视点差与当前区域视点差统计计数值的乘积,加上前一个利用视图间预测编码宏块的视点差的和,除以当前区域视点差统计计数值与1的和;该方法还包括将当前区域视点差统计计数值累加1;8、根据权利要求1所述的方法,其特征在于,所述根据所述当前编码宏块所在区域的视点差,确定参考图像中的对应宏块包括将所述当前编码宏块所在区域的视点差在参考图像中所指向的宏块确定为对应宏块;或者,确定所述当前编码宏块所在区域的视点差在参考图像中所指向的宏块,在以该指向的宏块为中心的设定区域内,搜索使得编码效率最优的宏块作为所述对应宏块。9、根据权利要求8所述的方法,其特征在于,所述确定的对应宏块是参考图像中已解码的编码宏块,或者,参考图像中已解码的编码宏块的合成宏块。10、一种确定对应宏块的系统,其特征在于,该系统包括区域^L点差确定单元和对应宏块确定单元;区域视点差确定单元,用于确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差;对应宏块确定单元,用于根据所述区域视点差确定单元确定的当前编码宏块所在区域的视点差,确定参考图像中的对应宏块。11、根据权利要求IO所述的系统,其特征在于,该系统还包括参考图像存储单元,用于存储参考图像。12、根据权利要求IO所述的系统,其特征在于,所述区域视点差确定单元包括预编码单元、区域划分单元、记录单元和第一确定单元;预编码单元,用于将编码图像进行预编码,获取编码图像中各宏块的视点差;区域划分单元,用于根据所述预编码单元获取的各宏块的视点差,将编码图像中的各宏块划分到不同的区域,使各宏块的视点差与其所在区域的视点差的差值绝对值在设定的范围内;记录单元,用于记录所述区域划分单元的划分结果,记录各宏块所在的区域标识和区域-现点差;第一确定单元,用于根据当前编码宏块所在的区域标识,在所述记录单元中查找当前编码宏块所在区域的视点差。13、根据权利要求IO所述的系统,其特征在于,所述区域视点差确定单元包括前宏块^L点差确定单元、差异获取单元和第二确定单元;前宏块视点差确定单元,用于确定当前编码宏块的前一个利用视图间预测编码的宏块的视点差;差异获取单元,用于确定所述前宏块视点差确定单元确定的视点差与"^殳置的当前区域视点差之间的差值绝对值;第二确定单元,用于冲艮据所述差异获^i单元确定的差值绝对值,确定当前编码宏块所在的区域视点差。14、根据权利要求13所述的系统,其特征在于,所述第二确定单元包括判断单元、平均值处理单元和第三确定单元;判断单元,用于判断所述差异获取单元确定的差值绝对值是否大于设定阈值,如果是,则向第三确定单元发送确定通知,如果否,则向所述平均值处理单元发送处理通知;平均值处理单元,用于在接收到所述判断单元的处理通知时,将当前的区域视点差与所述前一个利用视图间预测编码的宏块的视点差进行求平均处理,并将求得的平均值发送给第三确定单元;第三确定单元,用于接收到所迷判断单元的确定通知时,将当前的区域视点差更新设置为所述前宏块3见点差确定单元确定的前一个利用一见图间预测编码的宏块的视点差;接收到所述平均值处理单元提供的平均值时,将当前的区域视点差更新设置为所述平均值。15、根据权利要求IO所述的系统,其特征在于,所述对应宏块确定单元包括指向宏块确定单元和搜索单元;指向宏块确定单元,用于确定所述当前编码宏块所在区域的视点差在参考图像中所指向的宏块;搜索单元,用于在所述指向宏块确定单元所确定的宏块为中心的设定区域内,搜索使得编码效率最优的宏块作为所述对应宏块。全文摘要本发明提供了一种确定对应宏块的方法和系统,其中,方法包括确定将编码图像按照各宏块的视点差划分的一个以上区域中,当前编码宏块所在区域的视点差,根据编码宏块所在区域的视点差确定参考图像中的对应宏块。本发明将编码图像按照视点差划分为多个区域,以当前编码宏块所在区域的视点差来确定对应宏块,使得求得的视点差更加准确,在参考图像中找到的对应宏块也更加精确,将该对应宏块的运动信息作为当前编码宏块的运动信息作后续的运动补偿时,能够获取更小的补偿残差,从而提高图像编码效率。文档编号H04N7/32GK101415116SQ20071018183公开日2009年4月22日申请日期2007年10月15日优先权日2007年10月15日发明者傅佳莉,刘盈嘉,周建同,张晓森,林四新,熊联欢,谢清鹏,山高申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1