用于降低阻塞效应的一维信号自适应滤波器及其滤波方法

文档序号:7576794阅读:229来源:国知局
专利名称:用于降低阻塞效应的一维信号自适应滤波器及其滤波方法
技术领域
本发明涉及一种数据滤波器,特别是涉及一种用于降低阻塞噪声(blockinq noise)的一维信号自适应滤波器,以及一种一维信号自适应滤波方法。
一般来说,象国际标准化组织(ISO)的MPEG和国际电信联盟(ITU)推荐的H.263一类的图像编码标准采用了基于数据块的运动估算和数据块的离散余弦变换(DCT)。如果图像是高度压缩的,基于数据块(block)的编码就可能造成公知的阻塞效应(blocking effect)。典型的阻塞效应是在一个相邻象素具有相对比较小的象素值的均匀区域内出现的网络噪声。另一种阻塞效应是沿着图像的边缘产生的一种具有阶梯形状的阶梯噪声。
当压缩的数据经过恢复之后被显示在屏幕上时,网络噪声显示出在数据块之间的边缘上基于数据块的进程的痕迹。这样,人们就会看到数据块之间的边缘。同样,图像边缘上的阶梯噪声具有阶梯的形状,从而会使人们注意到图像上崎岖不平的边缘。
为了减少在执行基于数据块的编码时产生的阻塞效应,已经有了几种建议的方法。按照H.261编码,采用一个简单的3×3低通滤波器(LPF)作为环路滤波器来减少阻塞效应。然而,在使用3×3LPF时,消除阻塞效应的能力是有限的,并且会增加所需的计算量。
为了解决上述问题,本发明的目的是提供一种在高度压缩编码中减少阻塞效应的一维信号自适应滤波方法以及供该方法使用的一种一维信号自适应滤波器,其中采用了一维滤波器窗口(filter window)和一维信号自适应滤波器(adaptive filter),可以大大减少在执行基于数据块的编码时造成的阻塞效应。
按照本发明的一个方面所提供的一维信号自适应滤波方法,能够在用预定大小的数据块构成一帧时减少图像数据的阻塞效应,该方法包括以下步骤(a)沿着数据块的边界提供一个预定大小的一维窗口,在此一维窗口内对象素执行预定的梯度运算;(b)在一维窗口内计算每个象素的门限值(T),它是由一个量化级(Q)中的预定函数来确定的;(c)将一维窗口内的每个象素的梯度运算结果与对应的计算门限值相比较,产生一个作为二进制边缘映像(edgemap)的比较结果;(d)为产生的二进制边缘映象提供一个预定大小的一维滤波器窗口,利用一维滤波器窗口内的二进制值(binary value)产生加权值;以及(e)用产生的加权值执行滤波,从而产生新的象素值。
执行梯度运算的步骤(a)的一维窗口最好是这样配置的,其中心象素被集中在数据块的边界附近,并且包括1×4一维水平窗口和4×1一维垂直窗口。
执行梯度运算的步骤(a)的一维窗口最好是这样配置的,其中心象素被集中在数据块的边界附近,并且包括1×6一维水平窗口和6×1一维垂直窗口。
在具有水平和垂直窗口的情况下,如果在步骤(c)中获得的二进制值在水平和垂直窗口之间是不同的,就将对应的象素确定为边缘象素,并且在量化器的量化级(Q)小于一个预定的值N1时不执行滤波。
在计算门限值(T)的步骤(b)中,假设从左侧和顶部分别用p0,p1,p2和p4表示水平(1×4)和垂直(4×1)一维窗口中的象素,如果需要滤波的一帧是一个帧内(intraframe),邻近数据块边界的左侧和顶部象素p1的门限值被设定为2Q-4,而其他象素p1,p2和p3的门限值被设定为Q+2,如果量化级(Q)大于预定值N1且小于预定值N2,就将门限值T设定为Q,如果需要滤波的帧是一个帧内,并且,当量化级(Q)等于或是大于预定值N2时,将门限值T设定为一个预定值N3。
同样,在计算门限值(T)的步骤(b)中,假设从左侧和顶部分别用p0,p1,p2,p3,p4和p5表示水平(1×6)和垂直(6×1)一维窗口中的象素,如果需要滤波的一帧是一个帧内,邻近数据块边界的左侧和顶部象素p2的门限值被设定为2Q-4,而其他象素p0,p1,p3,p4和p5的门限值被设定为Q+2,如果量化级(Q)大于预定值N1且小于预定值N2,就将门限值T设定为Q,如果需要滤波的帧是一个帧间,并且,当量化级Q等于或是大于预定值N2时,将门限值T设定为一个预定值N3。
假设从左侧起用p0,p1,p2和p3表示1×4一维水平窗口的四个象素,用a,b,c,和d表示对应的象素值,用p4表示象素p3右侧的象素,并且用e表示象素p4的对应象素值,象素p0的梯度运算(gradient operation)值等于|a-b|,象素p1的梯度运算值等于|b-c|象素p2的梯度运算值等于|c-d|,而象素p3的梯度运算值等于|d-e|,并且根据用于1×14一维水平窗口的同样原理来计算4×1一维垂直窗口内的各个象素梯度运算值。
假设从左侧起用p0,p1,p2,p3,p4和p5表示1×6一维水平窗口的六个象素,用a,b,c,d,e和f表示对应的象素值,用p6表示象素p5右侧的象素,并且用g表示象素p6的对应象素值,象素p0的梯度运算值等于|a-b|,象素p1的梯度运算值等于|b-c|,象素p2的梯度运算值等于|c-d|,象素p3的梯度运算值等于|d-e|,象素p4的梯度运算值等于|e-f|,而象素p5的梯度运算值等于|f-g|,并且根据用于1×6一维水平窗口的同样原理来计算6×1一维垂直窗口内的各个象素梯度运算值。
假设将一维滤波器窗口的四个象素表示成s0,s1,s2和s3,仅仅对象素s1和s2采用步骤(d)的一维滤波器窗口,并且将用于象素s1的滤波器窗口的基本加权值设定在(1,2,1,1),而将用于象素s2的滤波器窗口的基本加权值设定为(1,1,2,1),其中,如果象素s1是一个边缘象素,就不设定象素s1的滤波器窗口的加权值,如果象素s1和其他任何一个象素s0,s2,和s3都不是边缘象素,就将其设定为基本加权值(1,2,1,1),如果象素s0,s2,和s3是边缘象素,就将基本加权值中间的边缘象素的加权值设定为0,如果象素s2的加权值被设定在0,就将象素s3的加权值设定为0,并且按照用于象素s1的同样原理来设定象素s2的滤波器窗口的加权值。
假设用s0,s1,s2和s3,表示一维滤波器窗口的四个象素,仅仅对象素s1和s2采用步骤(d)的一维滤波器窗口,在步骤(d)中采用取决于一维滤波器窗口的各个象素边缘信息的预定的加权值组,并且在步骤(e)中执行移位运算,从而产生新的象素值。
象素s1的滤波器窗口的组成部分是s0,s1,s2和s3,并且使用其基本加权值(1,2,1,1),执行滤波,象素s2的滤波器窗口的组成部分是s1,s2,s3和s4,并且使用其基本加权值(1,2,1,1),执行滤波,象素s3的滤波器窗口的组成部分是s1,s2,s3,和s4,并且使用其基本加权值(1,1,2,1)执行滤波,象素s4的滤波器窗口的组成部分是s2,s3,s4和s5,并且使用其基本加权值(1,1,2,1)执行滤波,而用于象素s2,s3和s4的每个滤波器窗口的加权值是按照用于象素s1的相同原理来产生的。
按照本发明的另一方面所提供的一维信号自适应滤波器包括一个图像存储单元,用于暂存图像数据;一个门限值计算器,采用存储在图像存储单元中的量化级Q的预定函数来计算门限值(T);一个梯度运算单元,用于沿着构成存储在图像存储单元中的一个图像帧的预定大小的数据块的边界提供一个预定大小的一维窗口,并且对构成一维窗口的各个象素执行预定的梯度运算;一个门限值比较器,用于将梯度运算单元中获得的一维窗口的每个象素的结果与由门限值计算器算出的对应门限值(T)进行比较;一个二进制边缘图像发生器,用于产生门限比较器的结果,将其作为每个象素的二进制值;一个加权滤波值发生器,用于为二进制边缘图像发生器产生的二进制边缘图像提供一个预定大小的一维滤波器窗口,并且仅仅在属于一维滤波器窗口的边缘象素上产生一个加权值,并且在不是边缘象素的象素上不产生加权值;以及一个一维加权滤波器,采用加权滤波值发生器产生的加权值执行滤波,从而产生新的象素值。
通过以下结合附图对最佳实施例的详细说明可以进一步了解本发明的上述目标和优点,在附图中

图1是按照本发明的一个最佳实施例的一维信号自适应滤波器的框图;图2A表示按照本发明的一个实施例在将一帧图像划分成8×8(或是16×16)象素的数据块时的数据块和一个1×14一维窗口;图2B表示按照本发明的另一实施例在将一帧图像划分成8×8(或是16×16)象素的数据块时的数据块和一个1×6一维窗口;图3A是一个流程图,表示采用图2A窗口的一维信号自适应滤波方法;图3B是一个流程图,表示采用图2B窗口的一维信号自适应滤波方法;图4A和4B分别表示用于象素s1和s2的滤波器窗口的基本加权值;图5A至5C表示按照一维滤波器窗口象素信息的加权值和象素值;以及图6A至6E表示用于一维滤波器窗口的整数运算的象素加权值和象素值。
在图1中,按照本发明一个最佳实施例的一维信号自适应滤波器包括图像存储单元100,门限值计算器110,梯度运算单元120,门限值比较器130,二进制边缘映象发生器140,加权滤波值发生器150,以及一个一维加权滤波器160。图2A表示在按照本发明的一个最佳实施例将一帧图像划分成8×8(或是16×16)象素的数据块时的一个数据块200以及1×4的一维窗口210和220,而图2B表示在按照本发明的另一最佳实施例将一帧图像划分成8×8(或是16×16)象素的数据块时的一个数据块205以及1×6的一维窗口215和225。图3A表示采用图2A的窗口的信号自适应滤波方法,而图3B表示采用图2B的窗口的信号自适应滤波方法。
首先要说明用图2A所示的1×4一维窗口的信号自适应滤波方法。用图像存储单元100暂存带有阻塞效应的图像数据。门限值计算器110从图像存储单元100接收预定的量化级Q,用来计算一个门限值T。在本实施例中,在量化器的量化级Q小于4时不执行滤波。仅仅在量化级Q等于或是大于4时才执行信号自适应滤波(步300)。
另外,由门限值计算器110计算出的门限值T是不同的,这取决于需要滤波的帧是一个帧内(intraframe)还是一个帧间(interframe)。用这种方式来确定需要滤波的帧是帧内还是帧间(步305)。
假设属于1×4一维水平窗口210的四个象素用p0,p1,p2和p3来表示,其象素值是a,b,c和d,而象素p3右侧的象素用p4来表示,并且象素p4的象素值是e,如果需要滤波的帧是一个帧内,相对于邻近数据块边界的象素p1的门限值T1就被设定为2Q-4。另外,相对于其余象素p0,p2和p3的门限值T2被设定为Q+2(步310)。
此外,如果需要滤波的帧是一个帧间,就根据量化级Q是否小于19来作出决定(步315)。如果该量化级Q小于19,就将门限值T1(或是T2)设定为Q(步320)。然而,如果该量化级Q等于或大于19,就将门限值T1(或是T2)设定为19(步325)。
当图像存储单元100的图像帧被划分成具有预定大小的数据块时,梯度运算单元120就沿着数据块的边界提供一个例如1×4的预定大小的一维窗口,执行梯度运算,从中计算出构成一维窗口的相邻象素之间的差的绝对值(步330)。图2A表示将一帧图像划分成8×8(或是16×16)象素的数据块时的数据块200以及一维窗口210和220。一维窗210和220分别是1×4水平窗口和4×1垂直窗口,其中它们的中心象素b和c分别被集中在数据块200的边界230和240附近。
此外,对位于一维水平窗口210内部的各个象素的梯度运算是通过计算每个象素与其相邻象素之间的差的绝对值来执行的。也就是说,象素p0的梯度运算值等于|a-b|,象素p1的梯度运算值等于|b-c|,象素p2的梯度运算值等于|c-d|,象素p3的梯度运算值等于|d-e|。按照同样的方式,并且根据用于一维水平窗口210的同样原理来执行一维垂直窗口220的每个象素的梯度运算。此处仅仅对数据块200的左侧边界230和上部边界240执行梯度运算。对数据块200的右侧边界250和下部边界260的梯度运算是在右侧数据块270和下部数据块280中执行的。
门限值比较器130将梯度运算单元120计算的一维窗口内部每个象素的梯度运算值与门限值计算器110算出的门限值T进行比较,以确定该象素是不是边缘象素(步335)。接着,二进制边缘映像发生器140产生门限值比较器130的结果,将其作为每个象素的二进制值(步340)。
另一方面,如果用软件体现门限值比较器130和二进制边缘图像发生器140,比较器130二进制边缘映像发生器140就构成了一个模块。此处可以将这种模块称作二进制边缘映像发生部分170。
以下要详细说明门限值比较器130和二进制边缘映像发生器140工作原理。门限值比较器130将各个象素的梯度运算值与门限值计算器110算出的门限值T相比较。如果该梯度运算值大于门限值T,该象素就被确定为边缘象素,并且将第一象素p0的边缘信息边缘
设定为1。同时,如果梯度值小于门限值T,该象素就被确定为非边缘象素,并且将第一象素p0的边缘信息边缘
设定为0。按照同样的方式来计算象素p1,p2,和p3的二进制边缘映像信息边缘[1],边缘[2]和边缘[3]。这样,通过沿着数据块的边界采用一维窗口就能产生水平和垂直方向的二进制边缘映像信息。另一方面,如果水平和垂直方向上的二进制边缘映象信息是不同的,相应的象素就被确定为边缘象素,并且将其二进制边缘映像信息设定为1。
加权滤波值发生器150为二进制边缘映像发生器140产生的二进制边缘映像信息提供1×4的一维滤波器窗口,按照一维滤波器窗口内的二进制边缘映像信息产生加权值。
一维加权滤波器160采用加权滤波值发生器150产生的加权值对图像存储单元100的数据滤波,从中产生新的象素值。假设用s0,s1,s2和s3来表示属于一维滤波器窗口的四个象素,并且用w1,w2,w3和w4代表滤波器系数(或是加权值),滤波仅仅是对象素s1和s2来执行的。也就是说,一维加权滤波器160采用加权滤波值发生器150产生的加权值执行滤波,在象素s1和s2上产生新的象素值。也就是说,假设存储在图像存储单元100中的象素s1和s2的象素值分别是a2和a3,其象素值就被分别变成a′2和a′3。
以下要详细说明加权滤波值发生器150和一维加权滤波器160的工作方式。首先,如图4A所示,分别将提供给象素s1的滤波器窗口的基本加权值设定为(1,2,1,1),将提供给象素s2的滤波器窗口的基本加权值设定为(1,1,2,1)。
然后,为了确定象素s1上的滤波器窗口的加权值,需要确定象素s1是不是边缘象素(步345)。如果象素s1是一个边缘象素,就不产生加权值,并且不执行一维滤波(步360)。如果象素s1不是边缘象素,就根据其他象素s0,s2和s3的值设定一个适当的加权值(步350)。例如,如果象素s1不是边缘象素,而属于滤波器窗口的象素s0,s2和s3也不是边缘象素,就采用图4A的加权值执行滤波。假设象素s1不是边缘象素,而滤波器窗口内的象素s0,s2和s3中至少有一个是边缘象素,就需要检查象素s0和s1。如果象素s0是一个边缘象素,就如图5A所示将对应象素s0的加权值w1设定为0。如果象素s2是边缘象素,就如图5B所示将对应象素s2和s3的加权值w3和w4设定为0。如果象素s3是边缘象素,就如图5C所示将对应象素s3的加权值w4设定为0。另外,按照对待象素s1的相同方式来确定象素s2的一维滤波器窗口的加权值。
在按照上述方式设定了加权值之后,就执行加权滤波(步355)。以下是根据设定的加权值执行加权滤波的一个实例。如果一维滤波器窗口的原始象素值是a,b,c和d,在采用图5A的加权值时,象素s1的象素值a′2就变成(2b+c+d)/4+0.5的整数部分。在图5A至5C中,“int”表示用来提取顺序值的整数部分的函数。按照相同的方式,如果采用图5B的加权值,象素值a′2就变成(a+2b)/3+0.5的整数部分。另外,在采用图5C的加权值时,象素值a′2变成(a+2b+c)/4+0.5的整数部分。象素s2的象数值是采用与用于象素s1的相同的加权滤波来计算的。
另一方面,在参照图5A至5C所示的加权滤波方法中执行一种浮点运算,这种程序需要很长的时间。因此,可以在整数的基础上执行加权滤波。假设1×4一维窗口的象素是s0,s1,s2和s3,而这些象素的象素值分别是a,b,c和d。图6A表示象素s0是边缘象素时的加权值。阴影部分代表一个边缘象素,并且这一边缘象素的加权值等于0。按照(2b+c+d)>>2来计算象素s1的象素值a′2。此处的“>>”表示右移操作。按照相同的方式,图6B表示象素s2和s3是边缘象素时的加权值,而象素s1的象素值a′2是按照(6a+10b)>>4来计算的。图6C表示没有边缘象素时的加权值,而象素s1的象素值a′2是按照(a+4b+2c+d)>>3来计算的。图6D表示象素s3是边缘象素时的加权值,而象素s1的象素值a′2是按照(a+2b+c)>>2来计算的。图6E表示象素s0和s3是边缘象素时的加权值,而象素s1的象素值a′2是按照(10b+6c)>>4来计算的。此外,象素s2的象素值a′3是按照象素s1的象素值a′2采用的相同原理来计算的。
以下要说明按照本发明另一实施例的信号自适应滤波方法,其中采用一个数据块205和1×6的一维窗口215和225。图3B表示了按照本发明采用1×6的一维窗口215和225时的信号自适应滤波方法。
图像存储单元100和门限值计算器110的功能及其工作方式与第一实施例中的情况是相同的,象第一实施例中一样,在量化器的量化级Q小于4时不执行滤波。也就是说,信号自适应滤波仅仅是在量化级Q等于或是大于4时执行的。由门限计算器110算出的门限值T是不同的,运取决于需要滤波的帧是一个帧内还是一个帧间。这样就能确定需要滤波的帧是帧内还是帧间(步405)。假设从左侧起用p0,p1,p2,p3,p4和p5来表示属于1×6一维水平窗口210的六个象素,其象素值是a,b,c,d,e和f,用p6表示象素p5右侧的象素,并且象素p6的象素值是g,如果需要滤波的帧是一个帧内,邻接数据块边界的象素p2的梯度运算值|c-d|的门限值T1就被设定为2Q-4。另外,关于其他象素p0,p1,p4和p5的门限值T2被设定为Q+2(步410)。
此外,如果需要滤波的帧是一个帧间,就需要确定量化级Q是否小于19(步415)。如果量化级Q小于19,就将门限值T1(或T2)设定为Q(步420)。然而,如果量化级Q等于或大于19,就将门限值T1(或是T2)设定为19(步425)。
另一方面,当图像存储单元100的图像帧被划分成预定大小的数据块时,梯度运算单元120就沿着数据块的边界提供1×6的一维窗口,通过构成的一维窗口计算邻近象素之差的绝对值来执行梯度运算(步430)。此处的一维窗215和225分别是一个1×6水平窗口和一个6×1垂直窗口,其中心象素c和d分别集中在数据块205的边界235和245上。
还有,对位于一维水平窗口215内的每个象素的梯度运算是通过计算每个象素与其相邻象素之间的差的绝对值来执行的。也就是说,象素p0的梯度运算值等于|a-b|,象素p1的梯度运算值等于|b-c|,象素p2的梯度运算值等于|c-d|,象素p3的梯度运算值等于|d-e|,象素p4的的梯度运算值等于|e-f|,而象素p5的梯度运算值等于|f-g|。按照同样的方式,根据一维水平窗口215所采用的相同原理来执行6×1一维垂直窗口225的各个象素的梯度运算。此处的梯度运算是仅仅在块200左侧边界235和上部边界245上执行的。针对数据块205右侧边界255和下部边界265的梯度运算是在右侧数据块275和下部数据块285中执行的。
门限值比较器130将梯度运算单元120算出的一维窗口内象素的梯度运算值与门限计算器110算出的门限值T1(或T2)相比较,从中确定该象素是不是边缘象素(步435)。此外,二进制边缘映像发生器140产生门限值比较器130的结果,将其作为每个象素的二进制值(步440)。
另一方面,如果用软件来体现门限值比较器130和二进制边缘映像发生器140,门限值比较器130和二进制边缘映像发生器140就象第一实施例那样构成了一个模块。此处可以将这种模块称作二进制边缘映像发生部分170。
以下要详细说明门限值比较器130和二进制边缘映像发生器140的工作原理。门限值比较器130将各个象素的梯运算值与门限值计算器110算出的门限值T1(或T2)相比较。如果该梯度运算值大于门限值T1(或T2),该象素就被确定为边缘象素,并且将第一象素p0的边缘信息边缘
设定为1。同时,如果梯度值小于门限值T1(或T2),该象素就被确定为非边缘象素,并且将第一象素p0的边缘信息边缘
设定为0。按照同样的方式来计算象素p1,p2,p3,p4和p5的二进制边缘图像信息边缘[1],边缘[2],边缘[3],边缘[4]和边缘[5]。此处将门限值T2用于边缘信息边缘[2]。这样,通过沿着数据块边界采用一维窗口就能产生水平和垂直方向的二进制边缘映像信息。另一方面,如果水平和垂直方向上的二进制边缘映像信息是不同的,相应的象素就被确定为边缘象素,并且将其二进制边缘映像信息设定为1。
加权滤波值发生器150为二进制边缘映像发生器140产生的二进制边缘映像信息提供1×6的一维滤波器窗口,按照一维滤波器窗口内的二进制边缘映像信息产生加权值。一维滤波器窗口的大小并非仅限于1×6,这一点是本领域的技术人员所公知的。
一维加权滤波器160采用加权滤波值发生器150产生的加权值对图像存储单元100的数据滤波,从中产生新的象素值。假设用s0,s1,s2,s3,s4和s5来表示数据块边界上的水平或垂直方向的六个象素,并且用w0,w1,w2,w3,w4和w5代表与其对应的滤波器系数(或是加权值),滤波仅仅对象素s1,s2,s3和s4执行。也就是说,一维加权滤波器160采用加权滤波值发生器150产生的加权值执行滤波,在象素s1,s2,s3和s4上产生新的象素值。也就是说,假设存储在图像存储单元100中的象素s1,s2,s3和s4的象素值分别是a1,a2,a3和a4,其象素值就被分别变成a′1,a′2,a′3和a′4。
以下要详细说明加权滤波值发生器150和一维加权滤波器160的工作方式。首先,如图4A所示,分别将提供给象素s1和s2的滤波器窗口的基本加权值设定为(1,2,1,1),将提供给象素s3和s4的滤波器窗口的基本加权值设定为(1,1,2,1)。
然后,在象素s1的滤波器窗口是由象素s0,s1,s2和s3构成的情况下,为了确定象素s1上的滤波器窗口的加权值,需要确定象素s1是不是边缘象素(步445)。如果象素s1是一个边缘象素,就不产生加权值,并且不执行加权的一维滤波(步460)。也就是说,象素s1的象素值保持不变。如果象素s1不是边缘象素,就确定用象素s0,s1,s2和s3构成象素s1的滤波器窗口,并且确定其基本加权值(1,2,1,1)(步447),然后根据其他象素s0,s2和s3的值设定一个适当的加权值(步450)。具体地说,如果象素s1不是边缘象素,而属于该滤波器窗口的其他象素s0,s2和s3也不是边缘象素,就采用图4A的加权值执行滤波。假设象素s1不是边缘象素,而滤波器窗口内的象素s0,s2和s3中至少有一个是边缘象素,就需要检查象素s0和s1。如果象素s0是一个边缘象素,就如图5A所示将对应象素s0的加权值w0设定为0。如果象素s2是边缘象素,就如图5B所示将对应象素s2和s3的加权值w2和w3设定为0。如果象素s3是边缘象素,就如图5C所示将对应象素s3的加权值w3设定为0。
同样,为了确定象素s2的滤波器窗口的加权值,用象素s1,s2,s3和s4构成象素s2的滤波器窗口,用象素s2,s3,s4和s5构成象素s3的滤波器窗口,用象素s3,s4,s5和s6构成象素s4的滤波器窗口。此外,象素s2,s3和s4的一维滤波器窗口的加权值是按照用于象素s1的同样原理来确定的。如上所述,将(1,2,1,1)作为象素2的基本加权值,而将(1,1,2,1)作为象素s3和s4的基本加权值。
另一方面,步455和465与第一实施例的步355和365是相同的,因此省略了有关的说明。
上述的实施例可以采用环路滤波器充当编码器,并且也可以用于解码器,这一点对于本领域的技术人员是显而易见的。另外,如果在一个8×8数据块内采用上述滤波方式,还可以降低蚊式噪声,这也是本领域的技术人员显而易见的,因此无需进一步的解释。
如上所述,在按照本发明的使用一维信号自适应滤波器的一维信号自适应方法中,可以在从基于数据块的图像恢复出的图像中消除阻塞效应,从而提高了压缩图像的恢复能力。
权利要求
1.一种能够在用预定大小的数据块构成一帧时减少图像数据的阻塞效应的一维信号自适应滤波方法,该方法包括以下步骤(a)沿着数据块的边界提供一个预定大小的一维窗口,在此一维窗口内对每个象素执行预定的梯度运算;(b)在一维窗口内计算每个象素的门限值(T),它是由一个量化级Q中的预定函数来确定的;(c)将一维窗口内每个象素的梯度运算结果与对应的计算门限值相比较,产生一个作为二进制边缘映像的比较结果;(d)为产生的二进制边缘映像提供一个预定大小的一维滤波器窗口,利用属于一维滤波器窗口的二进制值产生加权值;以及(e)用产生的加权值执行滤波,从而产生新的象素值。
2.按照权利要求1的一维信号自适应滤波方法,其中,执行梯度运算的步骤(a)的一维窗口是这样配置的,其中心象素被集中在数据块边界附近,并且包括一个1×4一维水平窗口和一个4×1一维垂直窗口。
3.按照权利要求1的一维信号自适应滤波方法,其中,执行梯度运算的步骤(a)的一维窗口是这样配置的,其中心象素被集中在数据块边界附近,并且包括一个1×6一维水平窗口和一个6×1一维垂直窗口。
4.按照权利要求2或3的一维信号自适应滤波方法,其中,在采用水平和垂直窗口的情况下,如果在步骤(c)中获得的二进制值在水平和垂直窗口之间是不同的,就将对应的象素确定为边缘象素。
5.按照权利要求2或3的一维信号自适应滤波方法,其中,在量化器的量化级Q小于一个预定值N1时不执行滤波。
6.按照权利要求2的一维信号自适应滤波方法,其中,在计算门限值(T)的步骤(b)中,假设从左侧和顶部分别用p0,p1,p2和p4表示水平和垂直一维窗口中的象素,如果需要滤波的一帧是一个帧内,邻近数据块边界的左侧和顶部象素p1的门限值被设定为2Q-4,而其他象素p1,p2和p3的门限值被设定为Q+2,如果量化级Q大于预定值N1且小于预定值N2,就将门限值T设定为Q,如果需要滤波的帧是一个帧间,并且,当量化级Q等于或是大于预定值N2时,将门限值T设定为一个预定值N3。
7.按照权利要求3的一维信号自适应滤波方法,其中,在计算门限值(T)的步骤(b)中,假设从左侧和顶部分别用p0,p1,p2,p3,p4和p5表示水平和垂直一维窗口中的象素,如果需要滤波的一帧是一个帧内,邻近数据块边界的左侧和顶部象素p2的门限值被设定为2Q-4,而其他象素p0,p1,p3,p4和p5的门限值被设定为Q+2,如果量化级Q大于预定值N1且小于预定值N2,就将门限值T设定为Q,如果需要滤波的帧是一个帧间,并且,当量化级Q等于或是大于预定值N2时,将门限值T设定为一个预定值N3。
8.按照权利要求6或7的一维信号自适应滤波方法,其中,该预定值N1等于4,而预定值N2和N3都等于19。
9.按照权利要求2的一维信号自适应滤波方法,其中,步骤(a)中对一维窗口内的每个象素执行的梯度运算是计算一维窗口的每个象素与其相邻象素之间的差的绝对值。
10.按照权利要求9的一维信号自适应滤波方法,其中,假设从左侧起用P0,p1,p2和p3表示1×4一维水平窗口的四个象素,用a,b,c,和d表示对应的象素值,用p4表示象素p3右侧的象素,并且用e表示象素p4的对应象素值,象素p0的梯度运算值等于|a-b|,而象素p1梯度运算值等于|b-c|,象素p2的梯度运算值等于|c-d|,象素p3的梯度运算值等于|d-e|;并且从顶部起用P0,p1,p2和p3表示4×4一维垂直窗口的四个象素,用a,b,c,和d表示对应的象素值,用p4表示象素p3下面的象素,并且用e表示象素p4的对应象素值,象素p0的梯度运算值等于|a-b|,象素p1梯度运算值等于|b-c|,象素p2的梯度运算值等于|c-d|,而象素p3的梯度运算值等于|d-e|。
11.按照权利要求3的一维信号自适应滤波方法,其中,步骤(a)中对一维窗口内的每个象素执行的梯度运算是计算一维窗口的每个象素与其相邻象素之间的差的绝对值。
12.按照权利要求11的一维信号自适应滤波方法,其中,假设从左侧起用P0,p1,p2,p3,p4和p5表示1×6一维水平窗口的六个象素,用a,b,c,d,e和f表示对应的象素值,用p6表示象素p5右侧的象素,并且用g表示象素p6的对应象素值,象素p0的梯度运算值等于|a-b|,而象素p1的梯度运算值等于|b-c|,象素p2的梯度运算值等于|c-d|,象素p3的梯度运算值等于|d-e|;象素p4的梯度运算值等于|e-f|,而象素p5的梯度运算值等于|f-g|,并且假设从顶部起用P0,p1,p2,p3,p4和p5表示6×1一维垂直窗口的六个象素,用a,b,c,d,e和f表示对应的象素值,用p6表示象素p5下部的象素,并且用g表示象素p6的对应象素值,象素p0的梯度运算值等于|a-b|,而象素p1梯度运算值等于|b-c|,象素p2的梯度运算值等于|c-d|,象素p3的梯度运算值等于|d-e|;象素p4的梯度运算值等于|e-f|,而象素p5的梯度运算值等于|f-g|。
13.按照权利要求2的一维信号自适应滤波方法,其中,步骤(d)的一维滤波器窗口是一个1×4滤波器窗口。
14.按照权利要求13的一维信号自适应滤波方法,其中,假设将一维滤波器窗口的四个象素表示成s0,s1,s2和s3,仅仅对象素s1和s2采用步骤(d)的一维滤波器窗口,并且将用于象素s1的滤波器窗口的基本加权值设定在(1,2,1,1),而将用于象素s2的滤波器窗口的基本加权值设定为(1,1,2,1),其中,如果象素s1是一个边缘象素,就不设定象素s1的滤波器窗口的加权值,如果象素s1和其他任何一个象素s0,s2和s3都不是边缘象素,就将其设定为基本加权值(1,2,1,1),如果象素s0,s2,和s3是边缘象素,就将基本加权值中间的边缘象素的加权值设定为0,如果象素s2的加权值被设定在0,就将象素s3的加权值设定为0,并且如果象素s2是一个边缘象素,就不设定象素s2的滤波器窗口的加权值,如果象素s2和其他任何一个象素s0,s1和s3都不是边缘象素,就将其设定为基本加权值(1,1,2,1),如果象素s0,s1,和s3是边缘象素,就将基本加权值中间的边缘象素的加权值设定为0。
15.按照权利要求13的一维信号自适应滤波方法,其中,假设用s0,s1,s2和s3表示一维滤波器窗口的四个象素,仅仅对象素s1和s2采用步骤(d)的一维滤波器窗口,在步骤(d)中采用取决于一维滤波器窗口的各个象素边缘信息的预定的加权值组,并且在步骤(e)中执行移位运算,从而产生新的象素值。
16.按照权利要求3的一维信号自适应滤波方法,其中,步骤(d)的一维滤波器窗口包括1×4和4×1的滤波器窗口,并且假设分别用s0,s1,s2,s3,s4和s5来表示集中在数据块边界附近的水平和垂直方向的六个象素,步骤(e)的滤波是采用这一滤波器窗口针对象素s1,s2,s3和s4执行的。对步骤(c)中已经确定具有边缘信息的象素不执行滤波,滤波仅仅是针对不是边缘象素的象素来执行的。
17.按照权利要求16的一维信号自适应滤波方法,其中,象素s1的滤波器窗口的组成部分是s0,s1,s2和s3,并且使用其基本加权值(1,2,1,1)执行滤波,象素2的滤波器窗口的组成部分是s1,s2,s3和s4,并且使用其基本加权值(1,2,1,1)执行滤波,象素s3的滤波器窗口的组成部分是s1,s2,s3和s4,并且使用其基本加权值(1,1,2,1)执行滤波,象素s4的滤波器窗口的组成部分是s2,s3,s4和s5,并且使用其基本加权值(1,1,2,1)执行滤波。其中,如果象素s1是一个边缘象素,就不设定象素s1的滤波器窗口的加权值,如果象素s1和其他任何一个象素s0,s2和s3都不是边缘象素,就将其设定为基本加权值,如果象素s0,s2,和s3是边缘象素,就将基本加权值中间的边缘象素的加权值设定为0,如果象素s2的加权值被设定在0,就将象素s3的加权值设定为0;如果象素s2是一个边缘象素,就不设定象素s2的滤波器窗口的加权值,如果象素s2和其他象素s1,s3和s4都不是边缘象素,就将其设定为基本加权值,如果象素s1,s3和s4是边缘象素,就将基本加权值中间的边缘象素的加权值设定为0;如果象素s3是一个边缘象素,就不设定象素s3的滤波器窗口的加权值,如果象素s3和其他象素s1,s2和s4都不是边缘象素,就将其设定为基本加权值,如果象素s1,s2和s4是边缘象素,就将基本加权值中间的边缘象素的加权值设定为0;以及如果象素s4是一个边缘象素,就不设定象素s4的滤波器窗口的加权值,如果象素s4和其他象素s2,s3和s5都不是边缘象素,就将其设定为基本加权值,如果象素s2,s3和s5是边缘象素,就将基本加权值中间的边缘象素的加权值设定为0;
18.按照权利要求3的一维信号自适应滤波方法,其中,假设从左侧和顶部分别用s0,s1,s2,s3,s4和s5表示水平和垂直一维滤波器窗口的六个象素,采用一维滤波器窗口对象素s1,s2,s3和s4执行滤波,在步骤(d)中采用取决于一维滤波器窗口的各个象素边缘信息的预定的加权值组,并且在步骤(e)中执行移位运算,从而产生新的象素值。
19.一种一维信号自适应滤波器,包括一个图像存储单元,用于暂存图像数据;一个门限值计算器,采用存储在图像存储单元中的量化级(Q)的预定函数来计算门限值(T);一个梯度运算单元,用于沿着构成存储在图像存储单元中的一个图像帧的预定大小的数据块的边界提供一个预定大小的一维窗口,并且对构成一维窗口的各个象素执行预定的梯度运算;一个门限值比较器,用于将梯度运算单元中获得的一维窗口的每个象素的结果与门限值计算器算出的对应门限值(T)进行比较;一个二进制边缘映像发生器,用于产生门限比较器的结果,将其作为每个象素的二进制值;一个加权滤波值发生器,用于为二进制边缘映像发生器产生的二进制边缘映像提供一个预定大小的一维滤波器窗口,并且仅仅在属于一维滤波器窗口的边缘象素上产生一个加权值,而在不是边缘象素的象素上不产生加权值;以及一个一维加权滤波器,采用加权滤波值发生器产生的加权值执行滤波,从而产生新的象素值。
20.按照权利要求19的一维信号自适应滤波器,其中,梯度运算单元的一维窗口是这样配置的,其中心象素被集中在数据块的边界附近,并且包括一个1×4一维水平窗口和一个4×1一维垂直窗口。
21.按照权利要求19的一维信号自适应滤波器,其中,梯度运算单元的一维窗口是这样配置的,其中心象素被集中在数据块的边界附近,并且包括一个1×6一维水平窗口和一个6×1一维垂直窗口。
22.按照权利要求19的一维信号自适应滤波器,其中,一维加权滤波器的大小是1×4。
全文摘要
一种一维信号自适应滤波方法和一维信号自适应滤波器,该方法包括步骤:(a)沿着数据块边界提供一预定大小的一维窗口,在该窗口内对每个象素执行预定的梯度运算;(b)在一维窗口内计算每个象素的门限值(T);(c)将一维窗口内的每个象素的梯度运算结果与对应的计算门限值相比较,产生一个作为二进制边缘映像的比较结果;(d)为产生的二进制边缘图像提供一预定大小的一维滤波器窗口,利用一维滤波器窗口内的二进制值产生加权值;以及(e)用产生的加权值执行滤波,从而产生新的象素值。
文档编号H04N1/41GK1195829SQ9810543
公开日1998年10月14日 申请日期1998年3月9日 优先权日1997年3月10日
发明者李英烈 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1