专利名称:信号自适应滤波方法,信号自适应滤波器的制作方法
技术领域:
本发明涉及数据滤波,尤其涉及减少分块效应(blocking effect)和振铃噪声的信号自适应滤波方法、信号自适应滤波器和存储其程序的计算机可读介质。
背景技术:
通常,图像编码标准诸如国际标准化组织(ISO)的MPEG和由国际电信联盟(ITU)推荐的H.263采用基于块的运动估计及离散余弦变换(DCT)块。当一图像被高度压缩时,基于块的编码可能引起公知的分块效应。一种典型的分块效应是均匀区域中的网格噪声(grid noise),该均匀区域中相邻像素具有相对类似的像素值。另一个分块效应是阶梯噪声(staircase noise),该阶梯噪声具有阶梯形状,并且沿着图像的边缘产生。此外,振铃噪声是当量化DCT的系数以便高度压缩该图像时,由舍余产生的典型Gibb(吉伯斯)现象。
当压缩数据在恢复后显示在屏幕上时,网格噪声在块之间的边缘处表现出基于块处理的痕迹。于是,人们能够识别块之间的边缘。此外,阶梯噪声在图像的边缘具有阶梯形状,使得人们能够注意到图像上的凹凸不平的边缘。此外,人们能够注意到由于振铃噪声具有预定间隔的图像叠加。
为了减少当执行基于块的编码时产生的分块效应和振铃噪声,已经提出了几种方法。按照H.261编码,将简单的3×3低通滤波器(LPF)用作环路滤波器,以减少分块效应[“以P×62kbit/s的音视频服务的视频编解码器(VideoCodec for Audiovisual Services at P×62kbits/s),CCITT推荐书H.261,1990年12月14日”]。此外,已经提出了一种简单的边缘环路滤波器,以减少分块效应和蚊式噪声[GBjontegaard的“减少分块和蚊式噪声的简单边缘环路滤波器(a simple Edge Loop Filter to reduce Blocking and MosquitoNoise)”,ISO/IEC JEC1/Sc29/WG11 MPEG96/0617,1996年1月,及“减少分块和蚊式噪声的简单边缘环路滤波器(a simple Edge Loop Filter to reduceBlocking and Mosquito Noise”,ITU SC15 LBC专家组ITU-LBC-96-032,1996年1月]。边缘环路滤波器产生与块边缘相邻的两个像素的线性值,并且由线性化的值替换两个像素值。这种边缘环路滤波器能够减少分块效应,但不能减少振铃噪声。为了减少振铃噪声,已建议使用二进制索引(index)的非线性滤波器[Y.Itoh的“使用二进制索引的细节保持非线性滤波器(Detail PreservingNonlinear Filter using Binary Index)”,ISO/IEC JTC1/SC29/WG11MPEG95/0357,1995年11月]。但是,非线性滤波器不能减少分块效应。
发明内容
为了解决上述问题,本发明的目的是提供一种减少高度压缩编码中的分块效应和振铃噪声的信号自适应滤波方法,及提供一种信号自适应滤波器和计算机可读介质。
按照本发明的一个方面,提供了一种信号自适应滤波方法,当一帧由预定大小的块组成时,该方法能够减少图像数据的分块效应和振铃噪声,该方法包括下列步骤(a)当分解用于逆量化的位流图像数据获得的帧是一帧内(intraframe)时,从数据块的上和左边界区域的预定像素的系数,产生用于减少分块效应的分块信息和用于减少振铃噪声的振铃信息;和(b)按照产生的分块信息和振铃信息,自适应滤波经过逆量化和逆离散余弦变换的图像数据。
最好是,步骤(a)还包括步骤如果该帧是帧间(interframe),将对应于一运动矢量的先前帧的分块信息和振铃信息设定为当前帧的分块信息和振铃信息,并且如果逆量化的当前块的残留信号存在,将振铃信息设定到“1”,这表示需要对图像数据进行滤波,并且按照位于该块左上角的像素A、位于像素A右边的像素B、位于像素A下面的像素C的系数,确定分块信息和振铃信息。
最好是,分块信息由水平分块信息和垂直分块信息组成,并且当仅像素A的系数不等于“0”或该块的左边界区域的像素的任何系数不等于“0”时,水平分块信息设定到“1”,这表示需要对该图像数据进行滤波,并且当仅像素A的系数不等于“0”或该块的上边界区域的像素的任何系数不等于“0”时,垂直分块信息设定到“1”,这表示需要对该图像数据进行滤波,以及当该块的除像素A、B和C以外的像素的任何系数不等于“0”时,振铃信息设定到“1”,这表示需要对该图像数据进行滤波。
最好是,分块信息由水平分块信息和垂直分块信息组成,并且当该块的像素A、B和C的所有系数不等于“0”或该块的左边界区域的像素的任何系数不等于“0”时,水平分块信息设定到“1”,这表示需要对该图像数据进行滤波,而当像素A、B和C的所有系数不等于“0”或该块的上边界区域的像素的任何系数不等于“0”时,垂直分块信息设定到“1”,这表示需要对该图像数据进行滤波,以及当该块的除像素A、B和C以外的像素的任何系数不等于“0”时,振铃信息设定到“1”,这表示需要对该图像数据进行滤波。
最好是,为了减少分块效应,在步骤(b)中,当该块的水平(或垂直)分块信息等于“1”并且振铃信息等于“0”时,使用具有预定加权值的加权滤波器,执行水平(或垂直)滤波,并且当该块的水平(或垂直)分块信息不等于“1”或振铃信息不等于“0”时,将相邻像素之间差值的绝对值和用作量化该块的被除数的Q值进行比较,然后按照比较结果,用预定值执行滤波。
按照本发明的另一个方面,提供了一种信号自适应滤波器,当一帧由预定大小的块组成时,该滤波器能够减少图像数据的分块效应和振铃噪声,该方法包括模式标志检验单元,用于检验一标志,以确定当分解用于逆量化的位流图像数据时,一帧是帧内还是帧间;内滤波(intra filtering)信息产生器,当该帧由模式标志检验单元确定为帧内时,从该数据块的上和左边界区域的预定像素的系数,产生用于减少分块效应的分块信息和用于减少振铃噪声的振铃信息;间滤波(inter filtering)信息产生器,如果该帧是帧间,则将对应于一运动矢量的先前帧的分块信息和振铃信息设定为当前帧的分块信息和振铃信息,并且如果逆量化的当前块的残留信号存在,则设定振铃信息为“1”;及自适应滤波器,用于按照由内滤波信息产生器和间滤波信息产生器产生的分块信息和振铃信息,自适应滤波经过逆量化器和逆离散余弦变换器的图像数据。
本发明可以在一般用途数字计算机中实施,该一般用途数字计算机运行来自计算机可用介质的程序,该计算机可用介质包括但不限于诸如磁存储介质(例如,ROM、磁盘、硬盘等)、光可读介质(例如CD-ROM、DVD等)和载波(例如,经因特网的传输)的存储介质。因此,本发明可以作为计算机可用介质被实施。
按照本发明的另一方面,提供了一种计算机可读介质,在该介质上具有一信号自适应滤波的计算机程序,当一帧由预定大小的块组成时,该信号自适应滤波能够减少图像数据的分块效应和振铃噪声,其中信号自适应滤波包括下列步骤(a)当分解用于逆量化的位流图像数据获得的帧是一帧内时,从数据块的上和左边界区域的预定像素的系数,产生用于减少分块效应的分块信息和用于减少振铃噪声的振铃信息;(b)如果该帧是帧间,则将对应于一运动矢量的先前帧的分块信息和振铃信息设定为当前帧的分块信息和振铃信息,并且如果逆量化的当前块的残留信号存在,则设定振铃信息为“1”,这表示需要对该图像数据进行滤波;和(c)按照产生的分块信息和振铃信息,自适应滤波基于块的、经过逆量化和逆离散余弦变换的图像数据。
此外,提供了一种计算机可读介质,在该介质上包括一计算机程序,该计算机程序用于滤波当解码基于块的压缩图像数据时引起的振铃噪声的方法,其中该振铃噪声滤波方法包括下列步骤(a)使用预定的一维水平和垂直梯度算子,对经过逆量化和逆离散余弦变换的块执行梯度运算;(b)使用一个像素的梯度运算值和相邻像素的值之间的差值的绝对值,和用作量化该块的被除数的Q值,产生表示每个像素是否是边缘像素的二进制边缘映射(map);和(c)通过将预定滤波器窗应用到所产生的二进制边缘映射,执行滤波。
图1是按照本发明的、用于减少分块效应和振铃噪声的信号自适应滤波器的方框图;图2是按照本发明优选实施例的、信号自适应滤波方法的流程图;图3示出了具有8×8像素的逆量化块;图4是产生用来对帧内滤波的信息的步骤流程图;图5是产生用来对帧间滤波的信息的步骤流程图;图6示出了与块边界相邻的像素的位置,用于图示减少分块效应的滤波;和图7示出了要在当前块中处理的像素的位置。
具体实施例方式
在图1中,按照本发明的用于减少分块效应和振铃噪声的信号自适应滤波器包括模式标志检验单元120、内滤波信息产生器130、间滤波信息产生器140和自适应滤波器单元150。当分解用于逆量化的位流图像数据时,模式标志检验单元120检验该帧是帧内还是帧间。当该帧由模式标志检验单元120确定为帧内时,滤波信息产生器130从数据块的上和左边界区域的预定像素的系数,产生用于减少分块效应的分块信息和振铃信息。当模式标志检验单元120确定该帧为帧间时,间滤波信息产生器140产生对应于一运动矢量的先前帧的分块信息和振铃信息,作为当前帧的分块信息和振铃信息。如果逆量化的当前块的残留信号存在,则振铃信息设定为“1”。按照由内滤波信息产生器130和间滤波信息产生器140产生的分块信息和振铃信息,自适应地对已经经过逆量化器(Q-1)100和逆离散余弦变换器(DCT-1)110的该块的图像数据进行滤波。
同时,将描述按照本发明优选实施例的信号自适应滤波方法。图2是按照本发明的信号自适应滤波方法的流程图。由编码器编码的位流图像数据由解码器解码以被再现。为此,该位流数据由逆量化器100分解,然后量化(步骤200)。在此,图像数据由多个帧构成,并且每个帧由多个块组成。图3示出了形成帧的具有8×8像素的逆量化块。
在滤波用离散余弦变换(IDCT)的帧数据之前,检验一标志,以便确定该帧是帧内还是帧间(步骤210)。如果该帧是帧内(步骤220),产生用来滤波该帧内的信息(步骤230)。如果该帧是帧间,则产生用来滤波该帧间的信息(步骤240)。然后,按照产生的滤波信息,自适应滤波已经通过IDCT 110的帧数据,由此消除分块效应和振铃噪声(步骤250)。
图4是产生用来对帧内滤波的信息的详细步骤流程图。如图4所示,如果该帧由模式标志检验单元120确定为帧内,则检验图3的像素A的系数(步骤400)。如果只有像素A的系数不等于“0”,则水平分块信息(HBI)和垂直分块信息(VBI)设定为“1”(步骤410)。如果属于图3所示块的上边界区域300的像素(包括像素A和B的8个像素)的任何系数不等于“0”(步骤420),则VBI设定到“1”(步骤430)。否则,VBI设定到“0”(步骤440)。此外,如果属于图3所示块的左边界区域310的像素(包括像素A和C的8个像素)的任何系数不等于“0”(步骤450),则HBI设定到“1”(步骤460)。否则,HBI设定到“0”(步骤470)。
设定HBI和VBI之后,产生用来对振铃噪声滤波的振铃信息(RI)。即,如果示于图3的块的除像素A、B和C以外的像素的任何系数不等于“0”(步骤480),则RI设定到“1”(步骤490)。否则,RI设定到“0”(步骤495)。在此,当只有像素A的系数不等于“0”时,HBI和VBI设定到“1”(步骤400)。然而,若即使当像素A、B和C的所有系数不等于“0”仍设定HBI和VBI为“1”,则当后面执行信号自适应滤波时,也能够获得一定程度上的有利效应。
图5是产生用来对帧间滤波的信息的步骤流程图。如果该帧由模式标志检验单元120确定为帧间,则按照运动矢量,帧内的HBI、VBI和RI转换成帧间的HBI、VBI和RI(步骤500)。此外,如果运动补偿之后存在残留信号(步骤510),则更新RI(步骤520)。
当如上所述产生用于滤波的分块信息和振铃信息时,按照该信息自适应地执行滤波。首先,将描述用于减少分块效应的滤波方法。减少分块效应的滤波分类为水平滤波和垂直滤波。在此,将解释水平滤波。图6示出了与块边界相邻的像素的位置,用于图示减少块效应的滤波。确定图6的块I和J的HBI和RI是否等于“0”。如果图6的块I和J的HBI和RI等于“0”,则使用7抽头(1,1,1,2,1,1,1)低通滤波器(LPT),对图6的像素A、B、C、D、E和F执行加权滤波。
如果图6的块I和J的HBI或R不等于“0”,则使用下列算法对像素B、C、D和E执行滤波。
<pre listing-type="program-listing"> d=D-C; If(ABS(d)≤Q){ D=D-(d/2);C=C+(d/2); d=E-D; if(ABS(d)≤Q)E=E-(d/4); d=C-B; if(ABS(d)≤Q)B=B+(d/4); } else{ if(ABS(d/2)≤2Q); If(d>0){ D=D-(Q-ABS(d/2)); C=C+(Q-ABS(d/2)); }<!-- SIPO <DP n="6"> --><dp n="d6"/> else{ D=D+(Q-ABS(d/2)); C=C+(Q-ABS(d/2)); } d=E-D; if(ABS(d)≤Q)E=E-(d/4); d=C-B; if(ABS(d)≤Q)B=B-(d/4); } }</pre>在上述算法中,ABS表示绝对值,Q表示当构成帧的块被量化时,使用的被除数。
详细地说,像素D和C之间的差值(d)的绝对值(ABS(d))等于或小于Q,通过从当前像素值减去d/2来设定像素D的当前像素值,并且通过向当前像素值加上d/2来设定像素C的当前像素值。此外,像素E和D之间的差值(d)的绝对值(ABS(d))等于或小于Q,通过从当前像素值减去d/4来设定各像素的当前像素值。此外,像素C和B之间的差值(d)的绝对值(ABS(d))等于或小于Q,则通过从当前像素值减去d/4设定像素B的当前像素值。用与上述相同的方式,按照除上述算法以外的其它算法,设定像素B、C、D和E的像素值,这些其它算法对本领域技术人员是熟知的,所以略去对其解释。此外,按照与水平滤波相同的原理执行垂直滤波。
下面,将描述用于减少振铃噪声的滤波方法。首先,检验产生的振铃信息。如果振铃信息设定到“1”,则执行滤波。否则,不执行滤波。为此,确定已经经过逆量化和IDCT的块的边缘像素。为了确定边缘像素,使用一维水平和垂直梯度算子,对已经经过逆量化和IDCT的块执行梯度运算。
然后,采用一个梯度运算像素值和相邻像素值之间的差值的绝对值、当量化该块时作为被除数的Q值,来产生表示每个像素的边缘的二进制边缘映射。在此,该块具有8×8像素,并且二进制边缘映射的大小被表示为二维阵列边缘[10][10],如图7所示。
为了产生二进制边缘映射,执行垂直边缘检测和水平边缘检测。用于垂直边缘和水平边缘检测的算法如下
<pre listing-type="program-listing"> /*Vertical edge detection(垂直边缘检测)*/ A1=ABS(PtrImage
-PtrImage[1]); A2=ABS(Ptrlmage
-PtrImage[-1]); if(((A1>Th)&amp;&amp;(A2>Th))‖(A1>5*Th/2)‖(A2)>5*Th/2)) Edge[m][n]=1;/*edge(边缘)*/ else {/*Horizontal edge detection(水平边缘检测)*/ A′1=ABS(PtrImage
-PtrImage[width(宽度)]); A′2=(ABS(PtrImage
-PtrImage[-width]); if(((A′1>Th)&amp;&amp;(A′2>Th))‖(A′1>5*Th/2)‖(A′2)>5*Th/2)) Edge[m][n]=1;/*edge*/ }</pre>对于垂直边缘检测,计算像素(PtrImage
)的梯度运算结果和像素(PtrImage
)的右边像素(PtrImage[1])之间差值的绝对值(A1),其中对该像素是否是该块的边缘进行确定。然后计算PtrImage
的梯度运算结果和像素(PtrImage
)的左边像素(PtrImage[-1])之间差值的绝对值(A2)。然后按照绝对值A1和A2与预定阈值Th比较之后获得的逻辑值,进行对该像素是否是边缘的确定,然后对该块的所有像素执行上述处理。按照(A1>Th)&&(A2>Th)‖(A1>5*Th/2)‖(A2)>5*Th/2)的逻辑公式,执行垂直边缘检测。如果该逻辑公式为真,则该像素被确定为垂直边缘。否则,该像素被确定为不是垂直边缘。
按照与水平边缘检测相同的原理,执行水平边缘检测。首先,计算像素(PtrImage
)的梯度运算结果和像素(PtrImage
)下面的像素(PtrImage[width])之间差值的绝对值(A’1),其中对该像素是否是该块的边缘进行确定。然后计算像素PtrImage
的梯度运算结果和像素(PtrImage
)上面的像素(PtrImage[-width])之间差值的绝对值(A’2)。然后按照绝对值A’1和A’2与预定阈值Th比较之后获得的逻辑值,进行对该像素是否是边缘的确定,然后对该块的所有像素执行上述处理。按照(A’1>Th)&&(A’2>Th)‖(A’1>5*Th/2)‖(A’2)>5*Th/2)的逻辑公式,执行水平边缘检测。如果该逻辑公式为真,则该像素被确定为水平边缘。否则,该像素被确定为不是水平边缘。在此,‘&&’表示逻辑“与”,而‘‖’表示逻辑“或”。
下面,通过将预定滤波器窗应用到产生的二进制边缘映射,执行滤波。可通过应用具有预定大小的滤波器窗的通常滤波方法,来执行滤波。然而,在此实施例中,如果滤波窗的中心像素是边缘,则不执行滤波,而如果中心像素不是边缘,则执行滤波。滤波器窗可以是通常的滤波器窗。在此实施例中,使用图7所示的具有五个像素的4连通(4-connectivity)滤波器窗,该五个像素排列在以一个中心像素为中心的十字形中。在图7中,X表示边缘像素,不是具有“X”区域的其它区域表示非边缘像素。
此外,如果滤波器窗没有边缘像素,则执行普通滤波,而如果存在边缘像素,则执行加权滤波。在图7中示出了加权滤波的例子。在图7中,“<<”表示向左移动,并且“>>”表示向右移动。
本发明可以在一般用途数字计算机中实施,该一般用途数字计算机运行来自计算机可用介质的程序,该计算机可用介质包括但不限于诸如磁存储介质(例如,ROM、磁盘、硬盘等)、光可读介质(例如CD-ROM、DVD等)和载波(例如,经互联网的传输)的存储介质。因此,本发明可以体现为计算机可用介质,该计算机可用介质具有用于信号自适应滤波的包括于其中的计算机可读程序代码单元,在计算机可用介质中的计算机可读程序代码装置例如包括当分解用于逆量化的位流图像数据获得的帧是一帧内时,使计算机从数据块的上和左边界区域的预定像素的系数,产生用于减少分块效应的分块信息和用于减少振铃噪声的振铃信息的计算机可读程序代码装置;如果该帧是帧间,则使计算机将对应于一运动矢量的先前帧的分块信息和振铃信息设定为当前帧的分块信息和振铃信息,并且如果逆量化的当前块的残留信号存在,则设定振铃信息为需要对该图像数据进行滤波的“1”的计算机可读程序代码装置;用于使计算机按照产生的分块信息和振铃信息,自适应滤波基于块的、经过逆量化和逆离散余弦变换的图像数据的计算机可读程序代码装置。由熟练的计算机程序员从所包含的本发明的描述中,可以导出用来实现本发明的操作程序、代码和代码段。
工业应用性如上所述,本发明能够从由基于块压缩的图像恢复的图像中去除分块噪声和振铃噪声,由此改善从压缩恢复的图像。
权利要求
1.一种用于消除每一帧按预定大小的块编码的图像数据恢复时所产生的分块效应及干扰的图像数据的过滤方法,包括步骤由位流数据判断并产生构成所述帧的块为内模式还是间模式的标志信息;根据所述标志信息产生该数据块的过滤信息;根据所述过滤信息对由位流数据经逆量化、逆离散余弦变换的所述数据块进行过滤,其中,当所述过滤信息产生步骤中标志信息为内模式时,由所述数据块相邻的边界区域的像素产生该数据块的过滤信息;当所述过滤信息产生步骤中标志信息为间模式时,利用所述数据块的运动矢量及残留信号产生该数据块的过滤信息。
2.如权利要求1所述的方法,其特征在于由所述数据块相邻的边界区域的像素产生该数据块的过滤信息。
3.如权利要求1所述的方法,其特征在于由所述数据块的运动矢量及残留信号产生该数据块的过滤信息。
4.一种用于消除每一帧按预定大小的块编码的图像数据恢复时所产生的分块效应及干扰的图像数据的过滤装置,包括模式标志检验单元,用于由位流数据判断并产生构成所述帧的块为内模式还是间模式的标志信息;过滤信息产生单元,用于根据所述标志信息产生该数据块的过滤信息;自适应过滤单元,用于根据所述过滤信息对由位流数据经逆量化、逆离散余弦变换的所述数据块进行过滤;其中,所述过滤信息产生单元进一步包含用于数据块为内模式时的内过滤信息产生器以及用于数据块为间模式时的间过滤信息产生器。
5.如权利要求4所述的装置,其特征在于所述的内过滤信息产生器是由所述数据块相邻的边界区域的像素(Pixels)产生该数据块的过滤信息。
6.如权利要求4所述的装置,其特征在于所述的间过滤信息产生器是由所述数据块的运动矢量及残留信号产生该数据块的过滤信息。
全文摘要
一种减少分块效应和振铃噪声的信号自适应滤波方法,及信号自适应滤波器和计算机可读介质。当一帧由预定大小的块组成时,该信号自适应滤波方法能够减少图像数据的块效应和振铃噪声,该方法包括下列步骤(a)当分解用于逆量化的位流图像数据获得的帧是一帧内时,从数据块的上和左边界区域的预定像素的系数,产生用于减少分块效应的分块信息和用于减少振铃噪声的振铃信息;和(b)按照产生的分块信息和振铃信息,自适应滤波经过逆量化和逆离散余弦变换的图像数据。因此,能够从由基于块的图像恢复的图像消除分块效应和振铃噪声,由此改善从压缩恢复的图像。
文档编号G06T9/00GK1525400SQ200410005360
公开日2004年9月1日 申请日期1998年6月18日 优先权日1997年7月16日
发明者李英烈, 朴玄旭 申请人:三星电子株式会社