专利名称:影像解码时提高影像质量的方法
技术领域:
本发明是关于在解码影像时提高影像质量的方法,更为详细地说,就是关于通过判断影像解码时是否参照了区块来提高影像质量的方法的发明。
背景技术:
下面以压缩传送数字多媒体数据并将其解码的系统为例进行说明,H.263或MPGE4情况下,压缩解码时,数字影像数据以宏块为单位进行处理,其编码过程包括运动测定及补偿,离散余弦变换(DCT),DCT系数量化,可变长度编码等过程,其过程与上述编码过程相反,包括逆量化,逆DCT,运动补偿及测定等过程。
在MPGE-4编码器中首先进行内部帧(即I-Frame)编码,I-Frame编码时先将输入的影像进行离散余弦变换及量化后进行可变长度编码(VLC),然后为了创建测定输入影像的运动的参照影像再进行逆量化及逆变换,最后在影像储存器中储存重新构成的影像。
然后对输入的影像进行前帧(即P-Frame)编码,P-Frame编码时先决定内部/区间模块,根据结果决定是否对各区块进行预测,对区间宏块进行运动预测及补偿后对其差分信号进行与I-Frame编码相同方式的编码,对内部宏块没对当前影像值进行与I-Frame编码相同方式的编码,最后创建比特流。
内部/区间模块的决定是在运动测定时通过绝对差值之和(即SAD)计算来决定上述宏块的模块是内部宏块还是区间宏块。
经过上述MPGE-4编码器编码后得到的比特流,经过终端机即接收侧的MPGE-4解码器时进行与编码相反的过程,创建成当前画面并在显示器中显示出来。
在MPGE-4解码器中,对接收到的比特流的每个帧以宏块为单位进行编码,如果当前帧的宏码是区间宏码或是未编码的宏码,那么为了创建当前影像需要参照前一个影像。
但是比特流是通过网络传输的,所以在传输过程中比特流会发生错误。这时,如果在比特流中特定的宏块中发现错误,则通过错误隐藏方法用适当的区块代替错误的区块从而进行修理。我们称其为隐藏宏块。
但是,用上述错误隐藏方法处理的隐藏的区块有时也会出现变成明显错误影像的情况,这种情况在参照下一个帧的区间宏块或未编码宏块中的错误区块时经常会发生,我们称这种现象为错误传播现象。
图1是参照前一个错误区块时出现的错误传播现象的示意图。
以解码过程中探知到有错误发生后,对发生错误的宏块进行错误隐藏,如果其下一个帧的比特流全部正常,则虽然解码过程正常进行,由于参照了影像中进行了错误隐藏处理的宏块,所以还会继续传播错误。
如果出现了这种错误传播现象,则接收方的影像质量会大大降低。
因此,在发生错误时不仅需要隐藏错误的方法还需要防止错误传播现象的发生的隐藏方法。
发明内容通过本发明,在当前帧所定的宏块中出现错误时,可以在错误隐藏过程中,通过对当前宏块和其周围宏块间的SAD进行计算及对即将参照的宏块和其周围宏块间的SAD进行计算,检测是否参照了前一个宏块,在以后传送的帧中只参照没有了错误的隐藏信息,从而可以防止错误传播现象的发生,在影像解码时提高影像的质量。
为了实现上述目的,依据本发明的对影像进行解码时提高影像质量的方法由以下几个步骤组成第1步骤,开始对输入的影像的比特流的帧内的宏块进行解码;第2步骤,对当前输入的影像比特流帧内是否出现错误进行探知;第3步骤,当前输入的影像帧内特定宏块出现错误时,对发生错误的宏块进行错误隐藏;第4步骤,通过对上述隐藏了错误的宏块与周围宏块间的SAD值及将作为参照的前一个帧的宏块与其周围宏块间的SAD值进行计算,检测是否前一个一个帧的宏块作为参照,在以后传送的帧中只参照没有了错误的隐藏信息。
上述第4步骤由以下几个步骤构成;第1步骤,对上述隐藏错误的宏块与当前帧的上述宏块周围的宏块间的SAD值(SADc)进行计算;第2步骤,对上述隐藏错误的宏块与前一个帧的上述宏块周围的宏块间的SAD值(SADp)进行计算;第3步骤将SADc值与SADp值的差(SADc-SADp)与特定的临界值相比较,如果SADc-SADp的值比临界值大,则对上述错误隐藏了的宏块进行标记。利用时间关系的错误隐藏方法适用于该步骤,标记了的错误隐藏宏块在以后不再做为输入影像错误隐藏的参照宏块来使用。
上述临界值可以根据解码器的性能对其值进行变动或选择。
如上所述,通常在MPGE-4解码器中检测到有错误发生的区块时要对该区块使用错误隐藏算法。
上述错误隐藏算法大致分为两类,分别为利用空间相关性的错误隐藏算法和利用时间相关性的错误隐藏算法,上述算法是在假定数字影像信号处理系统中影像信号的相邻区块间的相关性高,而且相邻时间带的帧之间的相关性也非常高的情况下实现的。
利用空间相关性的错误隐藏算法是利用一个影像内的空间上的类似性的算法,是获取周围正常宏块的信息对出现错误的宏块进行隐藏的算法。
利用时间相关性的错误隐藏算法是利用与前一个影像的时间上的类似性的算法,是在当前影像出现错误时,为了隐藏当前错误而从前一个影像中获取特定的信息的算法。
这时,为了从前一个影像处获取特定的信息,需要利用周围宏块的运动矢量值推测出运动矢量的值,从前一个影像中获取与运动矢量值相应的宏块数据对错误进行隐藏。
也就是说,上述利用时间相关性的错误隐藏算法利用的是运动矢量,如果当前帧的特定运动矢量出现错误时则取前一个帧相同位置的运动矢量信息。
这里,利用空间相关性的错误隐藏算法主要在I帧(I-frame),即只有使用当前影像的比特流内的数据才能进行解码的画面中出现错误时使用,上述利用时间相关性的错误隐藏算法主要在P帧(P-frame),即参照前一个影像进行解码的画面中出现错误时使用。
传统的情况下,依靠利用时间相关性的错误隐藏算法对当前出现错误的宏块进行错误隐藏时,使用与上述出现错误的宏块相对应的前一个影像的一部分来代替当前出现错误的部分。
但是,上述获取的前一个影像的宏块可能与当前影像不符合,如果在下一个影像中将参照上述出现错误的区块,那么当前影像的错误就会传播到下一个影像中去,出现错误传播的问题。
本发明为了解决上述问题进行了研发,可以对上述代替的前一个影像的宏块与当前影像是否符合进行检测,如果代替的前一个影像的宏块与当前影像不符合,则对其做出标记,在下一个影像中不再将其作为参照部分。
即,本发明的目的是当前帧的特定的宏块中出现错误,对错误进行隐藏的过程中,通过对上述隐藏了错误的宏块与周围宏块间的SAD值及将作为参照的前一个帧的宏块与其周围宏块间的SAD值进行计算,检测是否前一个一个帧的宏块作为参照,在以后传送的帧中只参照没有了错误的隐藏信息。
上述SAD是加上两个影像的像素值之差的绝对值获取的值,通过SAD可以知道两个影像的差异程度。
依据这种方法,本发明对与从前一个帧的影像中推定的运动矢量值相当的宏块数据是否是错误区块进行判断(标记为错误区块),如果上述运动矢量包括了错误区块,则该宏块不再作为错误隐藏的对象来使用。
依据本发明,在后来接收的帧中只参照错误完全被隐藏了的信息,从而可以防止错误的传播,通过防止错误的传播改善影像的质量。
图1是参照前一个错误区块的错误传播现象示意图;图2是依据本发明的实施例的影像解码时提高影像质量方法的流程图;图3是图2中的影像质量提高方法的实施例的说明图。
具体实施方式下面将参照附图对本发明的实施例进行详细说明。
图2是依据本发明的实施例的影像解码时提高影像质量方法的流程图,图3是图2中的影像质量提高方法的实施例的说明图。
首先对当前输入的比特流的帧内的宏块进行解码,(步骤ST200)
即,对解码器内接收的已经被编码的比特流进行解码。
然后对当前输入的影像比特流的帧内是否出现错误进行探知。(步骤ST210)即,对解码器内接收的已经被编码的比特流进行解码的过程中,通过解码器内装置的错误探知器对上述当前输入的影像比特流的帧内是否出现错误进行探知。
上述错误探知是对一个帧内出现错误的部分,即出现错误的特定宏块的位置信息进行的探知。
然后,如果当前输入的影像帧内的特定的宏块出现错误时,对上述出现了错误的宏块30进行错误隐藏。(步骤ST220)虽然如上所述,错误隐藏办法有利用空间相关性的错误隐藏算法和利用时间相关性的错误隐藏算法,但在本发明中假定的是使用利用时间相关性的错误隐藏算法。
即,当前输入的影像帧的特定宏块中出现错误时使用的错误隐藏方法是从前一个影像中获取特定的信息进行错误隐藏的方法。
这时,为了从上述前一个影像中获取特定的信息,需要利用周围宏块的运动矢量值推测出运动矢量的值,从前一个影像中获取与运动矢量值相当的宏块32数据对错误进行隐藏。
如果对上述出现错误的当前帧的宏块进行了错误隐藏,则对上述进行了错误隐藏的宏块32和当前帧的上述宏块的周围宏块31,35之间的SAD值进行计算。(步骤ST230)这里进行了错误隐藏的宏块32是指从前一个影像获取的宏块,图3就是对上述进行了错误隐藏的宏块32与上述区块周围的当前帧的特定的宏块31,35之间的SAD值进行演算的图示。这时上述SAD值被称为当前SAD(Sum of Differencecurrent,简称SADc)。
上述SAD是加上两个影像的像素值之差的绝对值获取的值,通过SAD可以知道两个影像的差异程度。
然后对上述隐藏了错误的宏块与前一个帧的上述宏块周围的宏块34,36间的SAD值进行计算。(步骤ST240)即如图3所示,对上述进行了错误隐藏的宏块32与上述宏块周围的前一个帧的特定的宏块34,36之间的SAD((Sum of Difference)值进行演算。这时的SAD值被称为先前的SAD(Sum of Difference previous,简称SADp).
然后将计算出的SADc值与SADp值的差(SADc-SADp)与特定的临界值相比较,如果SADc-SADp的值比临界值大,则对上述错误隐藏了的宏块32进行标记。(步骤ST250,步骤ST260)上面的意思是虽然前一个影像与当前影像的帧具有同一宏块,但它们周围的宏块之间的差别却很大。这样做的目的是,因为在当前影像中隐藏了错误的宏块32以后出现错误的机率后变得很高,如果与隐藏错误的宏块的值的差别很大,则会对上述隐藏了错误的宏块做出标记或进行检测,标记了的错误隐藏宏块在以后不再作为下一个影像的参照宏块来使用。
上述临界值可以根据解码器的性能等进行变动或选择。
通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。
因此,本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利范围来确定其技术性范围。
权利要求
1.对影像进行解码时提高影像质量的方法,其特征在于,所述方法包括第1步骤,开始对输入的影像的比特流的帧内的宏块进行解码;第2步骤,对当前输入的影像比特流帧内是否出现错误进行探知;第3步骤,当前输入的影像帧内特定宏块出现错误时,对发生错误的宏块进行错误隐藏;第4步骤,通过对上述隐藏了错误的宏块与周围宏块间的绝对差值之和值及将作为参照的前一个帧的宏块与其周围宏块间的绝对差值之和值进行计算,检测是否前一个一个帧的宏块作为参照,在以后传送的帧中只参照没有了错误的隐藏信息。
2.如权利要求项1所述的对影像进行解码时提高影像质量的方法,其特征在于,所述第4步骤进一步包括第41步骤,对上述隐藏错误的宏块与当前帧的上述宏块周围的宏块间的绝对差值之和值(SADc)进行计算;第42步骤,对上述隐藏错误的宏块与前一个帧的上述宏块周围的宏块间的绝对差值之和值进行计算;第43步骤将当前帧的上述宏块周围的宏块间的绝对差值之和与前一个帧的上述宏块周围的宏块间的绝对差值之和的差值与特定的临界值相比较,如果所述差值比临界值大,则对上述错误隐藏了的宏块进行标记。
3.如权利要求项1所述的对影像进行解码时提高影像质量的方法,其特征在于,适用于错误隐藏的方法为利用时间关系的错误隐藏方法。
4.如权利要求项1所述的对影像进行解码时提高影像质量的方法,其特征在于,标记了的错误隐藏宏块在以不再做为输入的影像的错误隐藏的参照宏块来使用。
5.如权利要求项1所述的对影像进行解码时提高影像质量的方法,其特征在于,上述临界值可以根据解码器的性能等进行变动或选择。
全文摘要
本发明是关于在解码影像时如何提高影像效果的发明,本发明由以下几个步骤构成第1步骤,开始对输入影像的比特流的帧内宏块进行解码;第2步骤,对当前输入的影像比特流帧内是否出现错误进行探知;第3步骤,当前输入的影像帧内特定宏块出现错误时,对发生错误的宏块进行错误隐藏;第4步骤,通过对上述隐藏了错误的宏块与周围宏块间的SAD值及将作为参照的前一个帧的宏块与其周围宏块间的SAD值进行计算,检测是否将前一个帧的宏块作为了参照,在以后传送的帧中只参照没有了错误的隐藏信息。
文档编号H04N7/30GK1964499SQ200510110148
公开日2007年5月16日 申请日期2005年11月9日 优先权日2005年11月9日
发明者郑任宏 申请人:上海乐金广电电子有限公司