利用多帧缓冲器在解码动态影像过程中的错误隐藏方法

文档序号:7613804阅读:147来源:国知局
专利名称:利用多帧缓冲器在解码动态影像过程中的错误隐藏方法
技术领域
本发明是关于利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法。具体地说,就是关于在对MPEG-4(Motion Picture Experts Group-4)动态影像解码时的错误隐藏方法。利用依据本发明的MPEG-4(Motion PictureExperts Group-4)动态影像解码时的错误隐藏方法,在对通过数据网或者是线路网的MPEG-4(Motion Picture Experts Group-4)比特流信息进行传输时,就可以有效防止发生因网络错误而引起的在对MPEG-4(Motion Picture ExpertsGroup-4)进行解码时出现的影像质量下降的问题。
背景技术
对于将数字多媒体数据进行压缩后再进行传输或者进行编码处理的系统来说,例如在H.263或者MPEG4的情况下,在对动态影像进行压缩并进行编码时,就将数字影像的数据以模块(macro block)为单位进行处理。在对其进行编码(encoding)的时候,它包括以下过程即对动作的测定及修正;计算余弦的变化(DCT),DCT系数的量子化处理,以及对可变长度进行编码(VLC)的过程。在对其进行解码(decoding)的时候,所要经历的过程就是上述进行编码的逆过程,即它包括以下的过程逆量子化处理,逆DCT,对动作的修正及测定等过程。如上所述,对于对数字影像信号进行传送和接收的系统来说,可以对由信道环境而产生的错误进行检测。然后,对发生这种错误时受到损伤的模块进行修正。同时,为了提高复原(接收)影像的画面质量而利用错误检测和错误隐藏的方法。
例如对于以模块为单位对数字影像信号进行传送和接收的系统来说,在对错误进行检测的时候要利用编码语法(syntax)信息。在数据脱离语法(syntax)信息的情况下,就视其发生了错误。对于发生错误的模块来说,可以利用时间或者空间的隐藏方法再对其加以修正。这样,就可以大大提高接收影像的画面质量了。
如上所述,对于利用语法信息的错误检测方法来说,它适用于以下几种情况。例如当以模块为单位对数字影像信号进行处理时,在移动矢量脱离特定的范围的情况下,或者是当可变长度脱离编码(VLC)表格的情况下,或者是余弦变化(DCT)系数脱离特定的范围的情况下,以及当一个模块内的DCT系数的个数超过特定的个数的情况下等。
图1是表示依据传统技术的错误对应MPEG-4解码器的普通结构组件图。
参照图1可以看出,依据传统技术的错误对应MPEG-4解码器(decoder)在对输入的比特流信息进行VLD(Variable Length Decoding)时,要经过错误检测和对应的过程,而其余的过程就是要经过与对已有的动态影像进行解码的过程相同的过程。
一般情况下,对于MPEG-4解码器来说,它在对发生错误的模块进行检测时要使用错误隐藏(error concealment)的方法。
在对经编码处理后而传输的动态影像信号进行解码时,一般来说,它所使用的错误隐藏方法大致可以分为2种。即利用空间类似性的错误隐藏方法(Spatial Error Concealment)和利用时间相关关系的错误隐藏方法(TemporalError concealment)。
对于以模块为单位进行数字影像信号处理的系统来说,上述2种方法是在假定(特征)影像信号的相邻模块之间具有较大的相关性,或者是在相邻时间段内的画面之间具有较大的关联性的情况下而使用的方法。
图2a和图2b是分别表示对利用空间类似性的错误隐藏方法(SpatialError Concealment)和利用时间相关关系的错误隐藏方法(Temporal ErrorConcealment)进行说明的示意图。
参照图2可以看出,首先,图2a对将发生错误而受损伤的模块利用其周边相邻的未受到损伤的模块的值进行插补的方法进行了说明。也就是说,上述利用空间类似性的错误隐藏方法(Spatial Error Concealment)是表示在一个影像信号内利用空间的类似性的方法,它是利用其周边的正常的宏模块(macro block)的信息而对发生错误的宏模块(macro block)进行隐藏的方法。
在这里,上述宏模块(macro block)意味着它是与一帧的16*16画素相当的部分。
另外,图示2b对将发生错误而受损伤的模块利用以前画面相应位置的模块进行填补的方法进行了说明。也就是说,上述利用时间相关关系的错误隐藏方法(Temporal Error Concealment)是表示利用从以前影像开始的时间上的类似性的方法,它是表示在当前影像状态下,如果发生了错误,就利用从以前的影像开始的规定的信息对所发生的错误进行隐藏的方法。
在这种情况下,为了利用从上述以前的影像开始的规定的信息,而利用宏模块(macro block)的移动矢量(MV)的值将移动矢量(Motion Vector,MV)的值进行推断。然后,利用与从以前影像开始推断的移动矢量的值相对应的宏模块(macro block)的数据对错误进行隐藏。
换句话说,上述利用时间相关关系的错误隐藏方法(Temporal ErrorConcealment)利用了移动矢量(MV),也就是说,如果当前画面的规定移动矢量(MV)发生了错误,它就利用以前画面的相同位置的移动矢量(MV)信息而对错误进行隐藏。
在这里,上述利用空间类似性的错误隐藏方法(Spatial ErrorConcealment)主要利用I-frame(Intra frame)。也就是说,仅通过当前影像的比特流信息内的数据而可以进行解码的画面来说,上述利用空间类似性的错误隐藏方法(Spatial Error Concealment)在这种情况下画面发生错误时是适用的。而上述利用时间相关关系的错误隐藏方法(Temporal ErrorConcealment)主要利用P-frame(Predictive frame)。也就是说,对于参照以前的影像而进行解码的画面来说,上述利用时间相关关系的错误隐藏方法(Temporal Error Concealment)在这种情况下画面发生错误时是适用的。
但是,如上所述,如果通过依据传统技术的错误隐藏方法而对错误进行隐藏处理,那么,由于所参照的原来的数据可能存在受到损害的情况。因此,所参照的模块就会产生错误传播。这是它所存在的问题。
图3是表示依据传统的技术对影像的移动动作进行修正时参照以前发生错误模块的错误传播现象的示意图。
参照图3可以看出,在依据本发明的第1实施例中,在连续地出现P-frame的情况下,在对影像信息进行解码的过程中,就对错误进行检测,并对发生错误的宏模块(macro block)进行错误隐藏。然后,当其之后的画面的比特流信息都正常地出现的情况下,即使正常地进行解码,由于对所参照的影像中经过错误隐藏处理的宏模块(macro block)进行了参照,因此,就会存储继续进行错误传播(error propagation)的可能性。
如果发生了这种错误传播现象,收信方的影像质量就会相当糟糕。这是它所存在的问题。
因此,就迫切需要有一种错误隐藏方法,就是在当错误发生的时候,不仅可以对错误进行隐藏,而且可以有效地防止对这种错误的传播现象的发生。

发明内容因此,本发明就是为了解决上述问题而研发的。本发明的目的在于为用户提供一种利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法。依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法,不仅可以对当前的影像画面(n-frame)和其之前的影像画面(n-1_frame)进行存储,而且也可以对其之前的影像画面的以前的影像画面(n-2_frame)进行存储。然后,在对当前正常的影像画面进行解码时,在对参照画面(n-1_frame)中经过错误隐藏处理的部分进行参照的情况下,就利用多重画面缓冲区,对参照画面(n-1_frame)以前的画面(n-2_frame)的宏模块(macro block)进行参照。这样,就可以防止错误发生传播,并最终可以提高影像的质量。
为了实现上述目的,依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法具有由以下几个步骤构成的特征也就是说,对于依据本发明的对当前正常输入的当前影像画面(n_frame)的解码方法来说,它具有由以下几个步骤构成的特征,对上述当前影像画面(n_frame)的隐藏模块(inter macro)的移动进行修正的准备步骤;在对上述移动动作进行修正时,参照以前的影像画面(n-1_frame)的宏模块(macro block)以确认是否发生了错误的步骤;根据上述确认结果,在上述以前影像画面发生了错误的情况下,通过上述发生错误模块周围的宏模块(macro block)的移动矢量(MV)值而对规定的值进行计算的步骤;利用上述计算出来的规定的值从上述以前影像画面(n-1_frame)的以前影像画面(n-2_frame)中将可以作为参照的宏模块(macro block)读取出来,然后,利用上述宏模块(macro block)而对上述当前影像画面(n_frame)的移动进行修正的步骤。
在这里,依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法还具有以下特征即上述当前影像画面(n_frame)及其以前影像画面(n-1_frame)就是P-frame(Predictive-frame)。
另外,依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法还具有以下特征即上述以前影像画面(n-1_frame)的宏模块(macroblock)上发生的错误还包含上述以前影像画面(n-1_frame)中经过错误隐藏处理的部分。
另外,依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法还具有以下特征即上述规定的值就是相对上述错误发生的模块的相邻的4个宏模块(macro block)的移动矢量值并运用中通滤波器(即Medianfilter)而计算出来的中间值。
另外,依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法还具有以下特征,即它还包括以下的步骤即根据上述确认结果,在上述以前影像画面没有发生错误的情况下,利用上述以前影像画面的宏模块(macro block)对移动动作进行修正的步骤。
在MPEG-4的情况下,对于将动态影像进行压缩并进行编码的情况来说,将数字影像数据以宏模块(macro block)为单位进行处理,在进行编码(encoding)的情况下,就需要经过以下几个过程,即包括对移动动作进行推断及修正,计算余弦变化(DCT),DCT系数的量子化,以及对可变长度进行编码(VLC)的过程等。而在进行解码(decoding)的情况下,就需要经历与上述进行编码时的过程相反的过程,即包括逆量子化,逆DCT,对移动动作进行修正及推断的过程等。一般来说,这是比较普通的情况。
另外,对于接收这种数字影像信号的传送接收系统来说,对由网络信道环境而产生的错误情况进行检测,然后,再对发生这种错误的时候受到损伤的模块进行修正。在这种情况下,为了提高复原(接收)影像的画面质量,就需要利用错误的检测和隐藏方法。
如上所述,在上述错误隐藏方法中,利用时间相关关系的错误隐藏方法(Temporal Error Concealment)是利用从以前画面影像开始的时间上的类似性,在当前画面的影像发生错误的情况下,为了对所发生的错误进行隐藏,就要通过利用从以前画面影像开始的规定的信息的方法,在这种情况下,为了利用从以前画面影像开始的规定的信息,而需要利用其周围的宏模块(macroblock)移动矢量值而对当前的移动矢量(Motion Vector)进行推断。然后,就利用与从以前画面影像开始推断的移动矢量值相对应的宏模块(macroblock)的数据而对所发生的错误进行隐藏。
但是,在这种情况下,当与从以前画面影像开始推断的移动矢量值相对应的宏模块(macro block)的数据为错误模块的数据的情况下,那么,上述错误也就会向当前画面传播。从而就会发生错误传播(error propagation)现象。这是它所存在的问题。
依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法就是为克服上述问题而研发的。依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法具有以下特征即当对P-frame(Predictive-frame,参照以前影像而解码的画面)连续进行解码时,在对当前正常的影像画面(n_frame)进行解码时,在参照作为参照画面(reference frame)的以前画面(n-1_frame)中经过错误隐藏处理的部分进行参照的情况下,为了阻止经过错误隐藏处理的宏模块(macro block)将错误向其下一个画面进行传播的现象的发生,则将上述参照画面的以前画面,即将n-2_frame再次存储到画面缓冲器上,然后,对其进行利用。
在这里,上述所谓的参照画面(reference frame),就是在对移动动作进行修正时参照的影像画面,它是指相对当前影像画面以前的影像画面。
但是,在依据本发明的实施例的情况下,对于以前画面(n-1_frame)来说,它具有按照各个宏模块(macro block)而对是否发生错误的情况进行记录的隐藏图(conceal map)。在这里,假设上述n-2_frame中可以参照的宏模块(macro block)上没有连续性的错误。
如上所述,对于依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法来说,它利用了多重画面缓冲区,在对经过错误隐藏处理的部分进行参照的情况下,就可以对所参照画面的以前画面的宏模块(macroblock)进行参照,这样,就能够有效阻止错误进行传播,并最终提高影像的画面质量。这是依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法所具有优点。

图1是表示依据传统技术的错误对应MPEG-4解码器的普通结构组件图。
图2a和图2b是分别表示对Spatial Error Concealment和TemporalError Concealment进行说明的示意图。
图3是表示依据传统的技术对影像的移动动作进行修正时参照以前发生错误模块的错误传播现象的示意图。
图4是表示对依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法进行说明的顺序图。
图5是表示依据本发明对错误传播现象进行克服的示意图。
具体实施方式下面,将参照附图对依据本发明的理想实施例进行更加详细的说明。
图4是表示对依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法进行说明的顺序图。图5是表示依据本发明对错误传播现象进行克服的示意图。
不过,在这里,只是对从编码器中传输的数据进行MPEG-4解码的过程中,对移动动作进行修正的过程(错误隐藏过程)进行了说明。
也就是说,在这里,是对以下情况进行说明,即在对当前正常输入的影像画面(n_frame)进行解码的过程中,对于对Inter宏模块(macro block)进行移动动作的修正来说,当参照以前画面(n-1_frame)中发生错误的模块的情况下,为了防止错误进行传播(error propagation)而进行相应处理的过程。在这里,就是对上述过程进行说明的。
参照图4可以看出,首先,对于在对当前正常输入的当前影像画面(n_frame)进行解码的情况来说,要为对上述当前影像画面(n_frame)的inter宏模块(MB)的移动动作进行修正进行准备,步骤ST400。
在这里,依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法具有以下特征即上述当前正常输入的影像画面(n_frame)就是P-frame(Predictive-frame),也就是说,它是参照以前影像而解码的画面。
然后,在对上述移动动作进行修正时,对所参照的以前影像画面(n-1_frame)的宏模块(macro block)是否发生了错误的情况进行确认,步骤ST410。
在这里,上述以前影像画面(n-1_frame)或者是P-frame的作用就是作为上述当前影像画面(n_frame)的参照画面(reference frame)。
另外,上述以前影像画面(n-1_frame)的宏模块(macro block)上发生的错误中还包含上述以前影像画面(n-1_frame)中经过错误隐藏处理的部分。对此,可以利用隐藏图(conceal map)进行确认。
然后,根据上述通过隐藏图确认的结果,当上述以前影像画面中发生错误的情况下,则可以通过发生错误的模块的周围的宏模块(macro block)的移动矢量值(MV)对规定的值进行计算,步骤ST420。
如图5所示,在依据本发明的第一个实施例中,对于与发生错误的模块相邻的4个宏模块(macro block)的移动矢量值来说,可以运用中通滤波器(Median filter)而计算出其中间值。
然后,利用上述计算出来的规定值,从上述以前影像画面(n-1_frame)的以前影像画面(n-2_frame)中将可以作为参照的宏模块(macro block)读取出来,然后,利用上述宏模块(macro block)而对上述当前影像画面(n_frame)的移动进行修正,步骤ST430。
在这里,将上述计算出来的规定值作为计算出来的移动矢量的值,根据上述中通滤波器(Median filter)的适用范围可以获得其中间值。
另外,依据本发明的利用多重画面缓冲区对动态影像进行解码时的错误隐藏方法具有以下特征即上述以前影像画面(n-2_frame)就是P-frame或者I-frame。
但是,通过上述隐藏图而获得的确认结果,在上述以前影像画面没有发生错误的情况下,则与依据传统技术的一般情况相同,利用上述以前影像画面的宏模块(macro block)可以对移动动作进行修正,步骤ST440。
通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。
因此,本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利范围来确定其技术性范围。
权利要求
1.利用多帧缓冲器在解码动态影像过程中的错误隐藏方法,包括对于依据本发明的对当前正常输入的当前影像画面(n_frame)的解码方法来说,它具有由以下几个步骤构成的特征对上述当前影像画面(n_frame)的隐藏模块(inter macro)的移动进行修正的准备步骤;在对上述移动动作进行修正时,参照以前的影像画面(n-1_frame)的宏模块(macro block)以确认是否发生了错误的步骤;根据上述确认结果,在上述以前影像画面发生了错误的情况下,通过上述发生错误模块周围的宏模块(macro block)的移动矢量(MV)值而对规定的值进行计算的步骤;利用上述计算出来的规定的值从上述以前影像画面(n-1_frame)的以前影像画面(n-2_frame)中将可以作为参照的宏模块(macro block)读取出来,然后,利用上述宏模块(macro block)而对上述当前影像画面(n_frame)的移动进行修正的步骤。
2.如权利要求项1所述的利用多帧缓冲器在解码动态影像过程中的错误隐藏方法,其特征在于上述当前影像画面(n_frame)及其以前影像画面(n-1_frame)就是P-frame(Predictive-frame)。
3.如权利要求项1所述的利用多帧缓冲器在解码动态影像过程中的错误隐藏方法,其特征在于上述以前影像画面(n-1_frame)的宏模块(macro block)上发生的错误还包含上述以前影像画面(n-1_frame)中经过错误隐藏处理的部分。
4.如权利要求项1所述的利用多帧缓冲器在解码动态影像过程中的错误隐藏方法,其特征在于上述规定的值就是相对上述错误发生的模块的相邻的4个宏模块(macroblock)的移动矢量值并运用中通滤波器而计算出来的中间值。
5.如权利要求项1所述的利用多帧缓冲器在解码动态影像过程中的错误隐藏方法,其特征在于上述以前影像画面(n-2_帧)就是P-帧或者I-帧。
6.如权利要求项1所述的利用多帧缓冲器在解码动态影像过程中的错误隐藏方法,其特征在于,还包括即根据上述确认结果,在上述以前影像画面没有发生错误的情况下,利用上述以前影像画面的宏模块(macro block)对移动动作进行修正的步骤。
全文摘要
本发明是关于利用多帧缓冲器在解码动态影像过程中的错误隐藏方法。包括对于依据本发明的对当前正常输入的当前影像画面的解码方法来说,它具有由以下几个步骤构成的特征对上述当前影像画面的隐藏模块的移动进行修正的准备步骤;在对上述移动动作进行修正时,参照以前的影像画面的宏模块以确认是否发生了错误的步骤;根据上述确认结果,在上述以前影像画面发生了错误的情况下,通过上述发生错误模块周围的宏模块的移动矢量值而对规定的值进行计算的步骤;利用上述计算出来的规定的值从上述以前影像画面的以前影像画面中将可以作为参照的宏模块读取出来,然后,利用上述宏模块而对上述当前影像画面的移动进行修正的步骤。
文档编号H04N7/68GK1929617SQ20051002945
公开日2007年3月14日 申请日期2005年9月7日 优先权日2005年9月7日
发明者郑仁泓, 郑永安, 韩承熹 申请人:上海乐金广电电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1