动影像解码时的错误隐蔽方法

文档序号:7625391阅读:160来源:国知局
专利名称:动影像解码时的错误隐蔽方法
技术领域
本发明是有关动影像解码时的错误隐蔽方法相关的发明,特别是利用这样的计算的动影像解码时的错误隐蔽方法,即通过信息包或电网传输动影像位流时,为了应付网络错误而导致的动影像位流错误,使其根据情况选择动影像解码时的错误隐蔽方法,防止图像品质低下的绝对差值之和SAD(Sum of AbsoluteDifference,简称SAD)计算。
背景技术
作为压缩和传输数码多媒体数据,并进行编码的系统,举个例来说,如压缩和编码H.263或MPEG4动影像时,根据宏块(macro block)处理数码图像数据,以编码为例,包括动向推测和修补及离散余弦变换(DCT)、DCT系数的量子化、可变长度编码(VLC)过程;以解码为例,是上述编码的反过程,包括反量子化、反DCT、动向修补和推测过程。
如上所述,在传输和接收数码图像信号的系统,检测信道环境导致的错误发生,需要修补这一错误发生时受损宏块的系统为了提高接收图像的画质,使用错误的检测和隐蔽方法。
比如,以宏块为单位传输和接收数码图像信号的系统检测错误时,利用编码语法(syntax)信息,把数据脱离语法信息的情况视为错误,对发生错误的宏块,利用时间性或空间性隐蔽方法进行纠正,使其能够提高接收图像的画质。
上述说明的利用语法信息的错误检测有,处理以宏块为单位的数码图像信号时,运动矢量脱离特定范围的情况,或脱离可变长度编码平台的情况,或离散余弦变换系数脱离特定范围的情况及一个宏块内的DCT系数的数量脱离特定数量的情况。
图1是表示现有技术的错误应对MPEG-4解码器普通结构的整合图。
若参照图1说明,现有的错误应对MPEG-4解码器对输入的位流,进行可变长解码VLD(Variable Length Decoding)时,进行错误检测和对应过程,其它过程是与此前的动影像解码器的过程相同。
一般来说,对检测出错误的宏块,MPEG-4解码器使用错误隐蔽(errorconcealment)方法。
对编码后传输的动影像信号进行解码时,一般使用的错误隐蔽方法大致分为两种,有利用空间相关性的错误隐蔽方法(Spatial Error Concealment)和利用时间相关性的错误隐蔽方法(Temporal Error Concealment)。
上述两种方法在处理以宏块为单位的数码图像信号的系统,是假设这样为前提形成的方法,即图像信号的相邻宏块之间的相关性较高,并且相邻时间段的帧之间的相关性较高。
图2a和图2b是分别说明利用空间相关性的错误隐蔽方法和利用时间相关性的错误隐蔽方法的示意图。
首先,图2a是说明利用周边相邻的没受损的宏块值修补发生错误而受损宏块的方法。即,利用空间相关性的错误隐蔽方法是在一个图像内利用空间类似性的方法,移动周边正常的宏块信息,隐蔽发生错误的宏块的方法。
在这里,上述宏块是指相当于一个帧16*16像素的部份。
此外,图2b是说明移动此前帧相应位置上的宏块,添加发生错误受损宏块的方法。即,上述利用时间相关性的错误隐蔽方法是利用与此前图像的时间类似性的方法,现在图像发生错误时,为了隐蔽这些,从此前图像移动一定信息的方法。
这时,为了从上述此前图像移动一定信息,利用周边宏块的运动矢量(Motion Vector,MV)值推测其运动矢量后,从此前图像移动推测的运动矢量值相应的宏块数据,隐蔽错误。
也就是说,上述利用时间相关性的错误隐蔽方法是利用运动矢量,若现在帧的一定运动矢量具有错误,就移动与此前帧相同位置的运动矢量信息。
在这里,上述利用空间相关性的错误隐蔽方法是主要适用于内部帧I-frame(即Intra frame),即仅以对现在图像的位流内的数据可进行解码的画面发生错误时适用,上述利用时间相关性的错误隐蔽方法是主要适用于前帧P-frame(Predictive frame),即参照此前图像进行解码的画面发生错误时适用。
即,适用于现有MPEG-4解码器的错误隐蔽方法是如上所述,在I-frame运行利用空间相关性的错误隐蔽方法,在P-frame运行利用时间相关性的错误隐蔽方法。
图3是说明现有动影像错误隐蔽运行时发生的问题的示意图。
即,这是说明,在P-frame发生错误的情况下,若为了隐蔽错误,运行利用时间相关性的错误隐蔽方法,参照帧的图像和现在帧正常解码的图像存在较大差距,画面分为两部份显示的情况;运行利用时间相关性的错误隐蔽方法时,通过推测的运动矢量值参照的此前图像的宏块与现在帧正常解码的部份存在较大差距时,可能发生如图3所示的情况。
运行错误隐蔽后,若出现图3所示的图像,就只能发生接收方的图像品质低下的问题。
因此,在这样的情况下,也需要有效运行错误隐蔽的方法。

发明内容本发明的目的在于提供这样的动影像解码时的错误隐蔽方法,即运行错误隐蔽时,计算对现在输入的动影像帧内发生错误的宏块的周边宏块和将要参照宏块的图像差距进行数值化的SAD,使其在P-frame或I-frame有选择性地使用利用空间相关性的错误隐蔽方法和利用时间相关性的错误隐蔽方法,最终可以期待图像品质提高的动影像解码时的错误隐蔽方法。
为了实现上述目的,本发明的动影像解码时的错误隐蔽方法包括如下步骤构成为特点判断现在输入的动影像位流的帧内是否发生错误的步骤;若上述现在输入的动影像帧内的特定宏块发生错误,就确认上述发生错误的宏块是否属于上述现在输入的动影像帧的第一个宏块的步骤;上述确认结果,如果发生错误的宏块不属于上述帧的第一个宏块,就为了得到此前图像帧旨在参照的宏块,推测运动矢量值的步骤;为了适用绝对误差和绝对差值之和SAD(Sum ofAbsolute Difference)值,选择上述发生错误的宏块周边的宏块的步骤;对上述选择的周边宏块与上述此前图像帧的参照宏块计算SAD值,并根据其计算结果,选择错误隐蔽方法的步骤;根据上述选择的错误隐蔽方法,运行错误隐蔽的步骤。
此外,上述确认结果,如果发生错误的宏块属于上述帧的第一个宏块,还包括根据上述帧的类型,即属于I-frame或P-frame与否,决定错误隐蔽方法的步骤,上述现在输入的帧属于I-frame时,选择利用空间相关性的错误隐蔽方法,上述现在输入的帧属于P-frame时,选择利用时间相关性的错误隐蔽方法为特点。
在这里,上述周边宏块是上述发生错误的宏块相同帧内的其此前宏块为特点。
此外,上述计算的SAD值是与一定的临界值做比较,通过上述比较,如果SAD值大于上述一定的临界值,就选择利用空间相关性的错误隐蔽方法,相反,上述SAD值小于上述临界值时,选择利用时间相关性的错误隐蔽方法,上述SAD计算方法和上述临界值是根据各个动影像编码器为选择宏块模式的计算法决定为特点。
另外,上述发生错误的宏块属于除了现在输入的动影像帧的第一个宏块以外的第一行的宏块时,作为上述周边宏块,选择发生错误宏块的前一个宏块为特点。
另外,上述发生错误的宏块属于除了现在输入的动影像帧的第一个宏块以外的第一列的宏块时,作为上述周边宏块,选择发生错误宏块的上一个宏块为特点。
另外,上述发生错误的宏块属于现在输入的动影像帧内部的宏块时,选择与上述发生错误的宏块相邻的宏块,分别与此前图像帧将参照的宏块计算SAD,并求出平均值,通过这些决定错误隐蔽方法为特点。
现有技术动影像解码器的错误隐蔽方法是如上所述,I-frame时运行利用空间相关性的错误隐蔽方法,P-frame时运行利用时间相关性的错误隐蔽方法。
与此相比,本发明是在上述动影像解码器运行错误隐蔽时,与帧的类型无关,计算发生错误的宏块周边的宏块与将要参照的帧内宏块的SAD值,并通过上述SAD值,选择利用空间相关性的错误隐蔽方法或利用时间相关性的错误隐蔽方法之一,运行错误隐蔽为其内容。
在这里,上述SAD是排除两个图像像素的绝对值的累计值,是表示两个图像差距程度的值。
于是,如果上述SAD值较大,此前图像帧将要参照的宏块和现在图像的宏块间的差距较大,因此不参照此前图像帧,而是运行根据周边图像运行错误隐蔽的利用空间相关性的错误隐蔽方法;上述SAD值较小时,此前图像帧和现在图像帧的各个宏块差距不大,因此有选择性地适用利用时间相关性的错误隐蔽方法对提高错误隐蔽性能,相当有利。本发明的目的在于充分利用这些。
根据上述本发明的动影像解码时的错误隐蔽方法,具有这样的长处,即计算对发生错误宏块的此前宏块和将要参照的宏块的图像差距进行数值化的SAD,使其在P-frame或I-frame也有选择性地使用利用空间相关性的错误隐蔽方法和利用时间相关性的错误隐蔽方法,在发生错误的网络情况下,动影像解码器动作过程中,可以防止错误隐蔽运行时的画面分离现象,可以提高接收方的图像品质。

图1是表示现有技术的错误应对MPEG-4解码器普通结构的整合图。
图2a和图2b是分别说明利用空间相关性的错误隐蔽方法和利用时间相关性的错误隐蔽方法的示意图,图3是说明现有动影像错误隐蔽运行时发生问题的示意图。
图4是说明本发明的动影像解码错误隐蔽方法的顺序图。
图5是说明从现在帧选择的周边宏块和此前参照帧的宏块间的SAD计算的示意图。
图6是根据发生错误的宏块位置,说明为了与此前图像帧将要参照的宏块做比较而可能选择的周边宏块的示意图。
具体实施方式下面将参照附图对本发明的实施例进行详细说明。
图4是说明本发明的动影像解码错误隐蔽方法的顺序图。
下面,将参照图4,说明根据本发明进行动影像解码时的错误隐蔽方法,即通过信息包或电路网传输动影像位流时,为防止信道错误而导致的解码图像品质低下的动影像解码时的错误隐蔽方法。
首先,对输入的位流,查询现在输入的动影像位流的帧内是否发生错误步骤ST400。
即,对进行编码后传输,输入到解码器的位流,通过上述解码器上的错误查询部查询解码过程中,上述现在输入的动影像位流帧内是否发生错误。
这时,上述错误的查询是查询一个帧内发生错误的部份,即发生错误的特定宏块的位置信息等。
之后,如果上述现在输入的动影像帧内的特定宏块发生错误,就确认上述发生错误的宏块是否属于上述现在输入的动影像帧的第一个宏块步骤ST410。上述确认结果,若发生错误的宏块不属于上述帧的第一个宏块,为了得到此前图像帧将要参照的宏块,推测运动矢量值步骤ST420。
这时,上述现在帧为I-frame时,把上述运动矢量值设为(0、0),上述现在帧为P-frame时,利用对周边宏块的运动矢量值,推测求出运动矢量值。上述推测运动矢量值的方法是根据使用何种时间隐藏(Temporal Concealment)方法,可能发生变化。
此外,确认结果,如果上述发生错误的宏块属于上述帧的第一个宏块,就根据上述帧的类型,即属于I-frame或P-frame与否,决定错误隐蔽方法步骤ST430。即上述现在输入的帧属于I-frame时,选择利用空间相关性的错误隐蔽方法,上述现在输入的帧属于P-frame时,选择利用时间相关性的错误隐蔽方法(步骤ST470、步骤ST480)。
之后,为了SAD值的适用,选择上述发生错误的宏块周边的宏块步骤ST440。
这时,上述发生错误的宏块周边的宏块是同一个帧内的上述发生错误的宏块之前宏块为特点。
这样,如果选择发生错误的宏块周边的宏块,就对上述选择的周边宏块和之前求出的此前图像帧的参照宏块计算SAD值步骤ST450。图5是说明从现在帧选择的周边宏块和此前参照帧的宏块间的SAD计算的示意图,这样,现在帧发生特定宏块的错误,就选择其周边宏块,运行与上述帧的宏块间的SAD计算。
对上述周边宏块被选择的方法,将通过图6更详细地说明。
之后,上述计算的SAD值是与一定临界值做比较,通过上述比较,如果SAD值大于上述一定的临界值,就判断为此前图像帧将要参照的宏块和现在图像的宏块的差距较大,不会参照此前图像帧,运行从周边图像运行错误隐蔽的利用空间相关性的错误隐蔽方法;相反,若上述SAD值小于上述临界值,就判断为此前图像帧和现在图像帧的各个宏块差距不大,运行利用时间相关性的错误隐蔽方法(步骤ST460、步骤ST470、步骤ST80)。
这时,上述SAD计算方法和上述临界值是取决于各个动影像编码器旨在选择宏块模式的计算法。
图6是说明,根据发生错误的宏块位置,为了与此前图像帧将要参照的宏块做比较而可能选择的周边宏块的示意图。
首先,图6a是一个画面,即现在输入的动影像帧600的第一个宏块610发生错误时,说明对此的错误隐蔽的示意图。这时,能够参照的宏块不在现在输入的帧内存在,因此根据上述帧600的类型,即属于I-frame或P-frame与否,决定错误隐蔽方法。
即,上述现在输入的帧600属于I-frame时,选择利用空间相关性的错误隐蔽方法,属于P-frame时,选择利用时间相关性的错误隐蔽方法。
之后,图6b说明,除了现在输入的动影像帧600的第一个宏块以外的第一行宏块620发生错误时,对此的错误隐蔽。这时,可以选择发生错误的宏块620前一个宏块622。即,如图所示,为了与此前图像帧将要参照的宏块间的SAD计算,选择与A位置相应的宏块(A MB)622。
之后,图6c是表示,除了现在输入的动影像帧600的第一个宏块以外的第一列宏块630发生错误时,对此的错误隐蔽。这时,可以选择发生错误的宏块630上一个宏块632。
即,如图所示,为了与此前图像帧将要参照的宏块间的SAD计算,选择与B位置相应的宏块(B MB)632。
最后,图6d是说明,现在输入的动影像帧600内部宏块640发生错误时,对此的错误隐蔽。这时,可以参照多个宏块,作为一个例,选择此前宏块(A MB)642和其上一个宏块(B MB)644,分别与此前图像帧将要参照的宏块进行SAD计算,求出其平均值,并通过这些,决定错误隐蔽方法。
权利要求
1.动影像解码时的错误隐蔽方法,包括查询现在输入的动影像位流的帧内是否发生错误;若上述现在输入的动影像帧内的特定宏块发生错误,就确认上述发生错误的宏块是否属于上述现在输入的动影像帧的第一个宏块;确认上述结果,如果发生错误的宏块不属于上述帧的第一个宏块,就推测运动矢量值以得到此前图像帧旨在参照的宏块;为了绝对误差和矢量值的适用,选择上述发生错误的宏块周边的宏块;对上述选择的周边宏块与上述此前图像帧的参照宏块计算绝对差值之和值,并根据计算结果,选择错误隐蔽方法;根据上述选择的错误隐蔽方法,运行错误隐蔽。
2.如权利要求项1所述的动影像解码时的错误隐蔽方法,其特征在于,所述方法还包括上述确认结果的步骤中,如果发生错误的宏块属于上述帧的第一个宏块,就根据上述帧属于内部帧(I-frame)或前帧(P-frame)的类型,决定错误隐蔽方法。
3.如权利要求项2所述的动影像解码时的错误隐蔽方法,其特征在于,若上述现在输入的帧属于内部帧(I-frame),选择利用空间相关性的错误隐蔽方法,若上述现在输入的帧属于前帧(P-frame),选择利用时间相关性的错误隐蔽方法。
4.如权利要求项1所述的动影像解码时的错误隐蔽方法,其特征在于,所述方法还包括上述周边宏块是与上述发生错误的宏块属于相同帧的之前宏块。
5.如权利要求项1所述的动影像解码时的错误隐蔽方法,其特征在于,所述方法还包括上述计算的绝对差值之和值是与一定临界值做比较,通过上述比较,如果绝对差值之和值大于上述一定的临界值,就选择利用空间相关性的错误隐蔽方法,相反,上述绝对差值之和值小于上述临界值,就选择利用时间相关性的错误隐蔽方法。
6.如权利要求项1所述的动影像解码时的错误隐蔽方法,其特征在于,上述绝对差值之和计算方法和上述临界值是取决于各个动影像编码器旨在选择宏块模式的计算法。
7.如权利要求项1所述的动影像解码时的错误隐蔽方法,其特征在于,上述发生错误的宏块属于除了现在输入的动影像帧的第一个宏块以外的第一行宏块,作为上述周边宏块,选择发生错误的宏块的前一个宏块。
8.如权利要求项1所述的动影像解码时的错误隐蔽方法,其特征在于,如果上述发生错误的宏块属于除了现在输入的动影像帧的第一个宏块以外的第一列的宏块时,作为上述周边宏块,选择发生错误宏块的上一个宏块。
9.如权利要求项1所述的动影像解码时的错误隐蔽方法,其特征在于,上述发生错误的宏块属于现在输入的动影像帧内部的宏块时,选择与上述发生错误的宏块相邻的宏块,分别与此前图像帧将参照的宏块计算绝对差值之和,并得到平均值,通过这些决定错误隐蔽方法。
全文摘要
本发明的动影像解码时的错误隐蔽方法,包括判断现在输入的动影像位流的帧内是否发生错误;若上述现在输入的动影像帧内的特定宏块发生错误,就确认上述发生错误的宏块是否属于上述现在输入的动影像帧的第一个宏块;上述确认结果,如果发生错误的宏块不属于上述帧的第一个宏块,就为了得到此前图像帧旨在参照的宏块,推测运动矢量MV值;为了适用绝对误差和绝对值之和(Sum of Absolute Difference,简称SAD)值,选择上述发生错误的宏块周边宏块;对上述选择的周边宏块与上述此前图像帧的参照宏块计算SAD值,并根据计算结果,选择错误隐蔽方法;根据上述选择的错误隐蔽方法,运行错误隐蔽。
文档编号H04N7/50GK1964497SQ200510110149
公开日2007年5月16日 申请日期2005年11月9日 优先权日2005年11月9日
发明者韩承熹 申请人:上海乐金广电电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1