图像中的噪声滤波 【技术领域】
本发明涉及一种时间递归滤波器单元,用于对一串输入图像进行噪声滤波,产生一串输出图像,包括:
装置,用于根据该串输入图像的一个输入图像的第一像素的第一值与该串输出图像的第一输出图像的第二像素的第二值之间的差异,确定加权因数值;以及
一个加法单元,用于通过将加权因数值与第一像素的第一值的第一乘积与加权因数值的补码与第二像素的第二值的乘积相加,计算该串输出图像的第二输出图像地第三像素的第三值。
本发明还涉及用于对一串输入图像进行噪声滤波,产生一串输出图像的方法,包括:
一个加权因数确定步骤,用于根据该串输入图像的一个输入图像的第一像素的第一值与该串输出图像的第一输出图像的第二像素的第二值之间的差异,确定加权因数值;以及
一个相加步骤,用于通过将加权因数值与第一像素的第一值的第一乘积与加权因数值的补码与第二像素的第二值的乘积相加,计算该串输出图像的第二输出图像的第三像素的第三值
本发明还涉及一种图像处理设备,该设备包括:
接收装置,用于接收一串输入图像;以及
这样一个时间递归滤波器单元,用于对该串输入图像进行噪声滤波,产生一串输出图像。
背景技术
根据序列号为6115502的美国专利已知在开头段落中描述的这种单元。在该专利中描述了按照k∶(1-k)的比例将新输入的信号与前面经过滤波的信号结合,其中,k取决于局部运动量。如此,在出现运动时,力图避免由对来自彼此不同的瞬间的信号求平均值而得到的拖影,而在没有运动时充分进行噪声滤波。变量k可以被看作确定多少新输入直接影响滤波器输出的因数。用所谓的运动检测器确定变量k。该变量基于输入图像与输出图像的像素之间的亮度差异。假设输入与输出之间的亮度差异是运动量的量度。作为亮度差异的函数的变量k的值是单调的:像素之间的亮度差异越大,变量k的值越低。k值的典型范围为零到一。通常小差异被看作是噪声,因此,k值将接近于零,产生很强的滤波。输入与输出之间的较大差异通常表示场景运动,并且导致较大的k值,因此尽可能多地保留图像细节。
在开头段落中描述的那种单元的定点运算实现中,内部计算比表示输入和输出图像需要更高的精度,即,字大小。因此,在单元输出之前,必须降低信号的精度。在直接实现中,将内部信号舍入,并且舍去不使用的位。例如,将12位的中间值舍入为8位。首先,将固定点4位符号中的值0.5加上。然后,通过舍去删除4个最不重要的位。这种基于定点算法的滤波器单元具有由滤波器单元的递归属性引起的已知假象。在输入信号突然变化之后,由递归滤波器单元提供的输出像素的值通常将达不到需要的值。这个假象称为“长时脏窗效应”。例如,当输入信号从画面变黑时,在显示器上留下了原始输入信号的模糊的剩余图像。
发明概述
本发明的一个目的是提供在开头段落中描述的那种滤波器单元,其中,几乎不出现以上描述过的假象。本发明的该目是这样实现的,其中在用于确定加权因数的装置被设计为提供加权因数值,该加权因素大于在所述第一值与所述第二值之间的差低于预定阈值的情况下加权因素的另一个值,其中该加权因数的另一个值属于其它像素的其它值的其它差异,其中所述其它差异高于预定阈值。在像素之间差异很小的情况下,不是应用低加权因数值,而是应用相对高的值。例如,如果加权因数值的范围为[0,1],如果像素值之间的差异小于预定阈值,则将加权因数值设置为0.5。由于假设像素值之间的差异很小表示没有或者几乎没有任何运动并且因而应该施加很强的滤波,因此这不是显而易见的。或者换句话说,主要由前面输出的像素值确定新输出的像素值,而很少根据输入像素。但是,按照本发明,在输出像素值与输入像素值之间的差异低于预定阈值的情况下,滤波量应该很低。通过施加较小的滤波,使输入像素值对输出像素值的影响增加并且因此使输出像素值收敛于需要的值。
在按照本发明的时间递归滤波器单元的实施例中,预定阈值取决于时间递归滤波器单元的计算精度。典型的情况是,利用定点算法实现滤波器单元。如以上描述的需要通过舍去将由N位数表示的像素转换为M位数。在舍去之前,添加移位。典型情况下,该移位等于M位表示中的最不重要位的值的0.5倍。预定阈值与所用的移位的大小有关。换句话说,预定阈值与用于表示图像的位数有关。例如,见图1和图2。
按照本发明的时间递归滤波器单元的一个实施例包括一个误差扩散单元,用于扩散由将中间图像变换为第二输出图像而产生的舍去误差。误差扩散是处理“长时脏窗效应”的另一个方法。通过在具有误差扩散单元的时间递归滤波器单元中应用本发明,改进了到需要的输出值的收敛。
按照本发明的时间递归滤波器单元的一个实施例包括一个运动补偿单元,用于使第一像素与第二像素匹配。在按照本发明的时间递归滤波器单元中应用结合运动补偿的运动估算是有利的。利用它可以使连续图像的对应像素一致。
时间递归滤波器单元的修改及其变化可以与对所描述的方法和所描述的图像处理设备的修改及其变化一致。
【附图说明】
根据以下描述的具体实施方式和实施例并且参照附图,将阐明按照本发明的时间递归滤波器单元、方法和图像处理设备并且使其变得更加清楚,其中:
图1图示出了按照本发明的时间递归滤波器单元的实施例;
图2图示出了包括误差扩散单元的时间递归滤波器单元的实施例;
图3图示出了包括运动补偿单元的时间递归滤波器单元的实施例;
图4图示出了时间递归滤波器单元的实施例的另一个实施方式;
图5A图示出了按照现有技术的,作为像素之间的差异的函数的加权因数值;
图5B图示出了按照本发明的,作为像素之间的差异的函数的加权因数值;并且
图6图示出了按照本发明的图像处理设备的实施例。
在所有附图中,对应的标号具有相同的含义。
【具体实施方式】
图1图示出了按照本发明的时间递归滤波器单元100的实施例。时间递归滤波器单元100包括:
装置102,用于根据一串输入图像中的一个输入图像的第一像素的第一值C(x,n)与一串输出图像中的第一输出图像的第二像素的第二值P(x,n-1)之间的差异,确定用于该第一值和该第二值的加权因数值α(x,n);
加法单元104,用于通过将加权因数值α(x,n)与第一像素的第一值C(x,n)的第一乘积和加权因数值α(x,n)的补码1-α(x,n)与第二像素的第二值P(x,n-1)的第二乘积相加,计算该串输出图像中的第二输出图像的第三像素的第三值P(x,n);以及
一个存储器单元106,用于存储第一输出图像。这是引入延迟所需要的。
索引n表示图像号码,矢量x对应于像素的坐标。在输入连接器108,提供该串输入图像。在其输出连接器110,时间递归滤波器单元100提供该串输出图像。用于确定加权因数值α(x,n)的装置102被设计为根据对输入图像和输出图像的像素进行的比较确定该值。这可以是通过仅考虑两个像素,即一个来自当前输入图像的像素和一个来自前面的经过滤波的输出图像的像素。但是,最好考虑这些像素周围的若干像素。在序列号为6115502的美国专利中,详细说明了计算加权因数k的例子。可以将它重新写为公式1:
α(x‾,n‾)=LUT(Σn2=N2(abs(Σn1=N1C(x‾+n‾1+n‾2,n)-P(x‾+n‾1+n‾2,n-1)))---(1)]]>
其中,C(x,n)为图像n在位置x的输入像素值,P(x,n-1)为图像n-1在位置x的输出像素值,而N1和N2为当前像素周围的像素。LUT表示查表函数。
时间递归滤波器单元100的传递函数可以用公式2表示:
P(x,n)=α(x,n)C(x,n)+(1-α(x,n))P(x,n-1) (2)
以下将通过例子说明按照本发明的时间递归滤波器单元是如何工作的。该例子示出了当输入像素值C(x,n)从C(x,0)=100变为C(x,1)=10时,递归滤波器的输出像素值P(x,n)是如何变化的。该例子包括3部分:
在表格1中,将说明在利用有限的字大小而使滤波器单元不受限制的情况下,输出像素值P(x,n)收敛于需要的值。这意味着不应用舍去。
在表格2中,将说明在其中应用了舍去的滤波器单元的情况下,输出像素值P(x,n)不收敛于需要的值。
-在表格3中,将说明在其中应用了舍去并且其中应用了本发明的滤波器单元的情况下,输出像素值P(x,n)收敛于需要的值:按照本发明的时间递归滤波器单元的实施例。
表格1:在具有最大精度的滤波器单元中的分步响应 n C(x,n) α(x,n) P(x,n) -1 100 0 100 1 100 1 10 14 21.25 2 10 1 20.54688 3 10 1 19.8877 4 10 1 19.26971 5 10 1 18.69036 6 10 1 18.14721 7 10 1 17.63801 8 10 1 17.16063 ... ... ... ... 93 10 1 10.02968 94 10 1 10.02783 95 10 1 10.02609 96 10 1 10.02446
利用公式3计算表格1中的值P(x,n):
P(x,n)=(α(x,n)C(x,n)+(16-α(x,n))P(x,n-1))/16 (3)
加权因数值α(x,n)的范围为[1,16],并且当n=1时加权因数值α(x,n)被设置为14而当n=0,2,3,4,...时加权因数值α(x,n)被设置为1。加权因数值α(x,n)取决于P(x,n-1)与C(x,n)之间的差异。在表格1中可以看出,值P(x,n-1)非常慢地向需要的值10收敛:当n=96时,值P(x,n-1)=10.02446。
表格2:在按照现有技术的滤波器单元中的分步响应。n C(x,n) α(x,n) P(x,n)-1 1000 100 1 1001 10 14 212 10 1 203 10 1 194 10 1 185 10 1 186 10 1 187 10 1 188 10 1 189 10 1 18
利用公式4计算表格2中的值P(x,n):
P(x,n)=truncate((α(x,n)C(x,n)+(16-α(x,n))P(x,n-1)+8)/16) (4)
这与用8位表示输入和输出数据的定点表示一致。在舍去之前,添加了8/16的位移。在表格2中可以看出达不到需要的值10。在舍去之前,值P(x,n-1)不会变得小于18。
表格3:在按照本发明的滤波器单元中的分步响应 n C(x,n) α(x,n) P(n,n) -1 100 0 100 9 100 1 10 14 21 2 10 1 20 3 10 1 19 4 10 1 18 5 10 9 14 6 10 9 12 7 10 9 11 8 10 9 10 9 10 9 10
利用公式4计算表格3中的值P(x,n)。与表格2的不同在于当n=0,5,6,7,...时,加权因数值α(x,n)被设置为9。加权因数值α(x,n)取决于P(x,n-1)与C(x,n)之间的差异。在表格3中可以看出达到了需要的值10。这是由于对于P(x,n-1)与C(x,n)之间的小差异,加权因数值α(x,n)被设置为较高的值。
图2图示出了包括误差扩散单元202的时间递归滤波器单元200的实施例。通过添加常数位移0.5来代替固定舍入,按照本发明的时间递归滤波器单元200的误差扩散单元202保持了为像素产生的舍去误差并且将其用作用于后续像素的可变“位移”。注意,可以应用空间误差扩散。标准舍去按照公式5表示的工作:
Output(i)=truncate(Input(i)+0.5) (5)
具有变量i。误差扩散单元202按照公式6表示的工作:
Output(i)=truncate(Input(i)+rest(余数)) (6)
其中,
rest=Input(i-1)-truncate(Input(i-1)) (7)
将公式7代入公式6得到:
Output(i)=truncate((Input(i)+(Input(i-1)-truncate(Input(i-1))) (8)
表格4给出了具有按照公式5的具有固定位移0.5的标准舍去的例子,表格5给出了基于按照公式8的误差扩散的舍去的例子。
表格4:标准舍去 i Input(i) 位移 Output(i) 1 20.3 0.5 20 2 19.6 0.5 20 3 17.4 0.5 17 4 16.7 0.5 17
表格5:基于误差扩散的舍去 i Input(i) rest Output(i) 0 0.4 1 20.3 0.3 20 2 19.6 0.6 19 3 17.4 0.4 18 4 16.7 0.7 17
以下将通过例子说明按照本发明的时间递归滤波器单元200是如何工作的。该例子示出了当输入像素值C(x,n)从C(x,0)=100变到C(x,1)=10时,递归滤波器的输出像素值P(x,n)是如何变化的。该例子包括两部分:
在表格6中,说明了在按照现有技术的其中应用了误差扩散的滤波器单元的情况下,输出像素值P(x,n)非常慢地收敛于需要的值。
在表格7中,说明了在按照本发明的其中应用了误差扩散的滤波器单元的情况下,输出像素值P(x,n)很快收敛于需要的值。
表格6:在按照现有技术的具有误差扩散单元的滤波器单元中的分步响应 n C(x,n) α(x,n) rest P(x,n) -1 100 0 100 1 14 100 1 10 14 1 21 2 10 1 8 20 3 10 1 12 20 4 10 1 7 19 5 10 1 12 19 6 10 1 3 18 7 10 1 10 18 8 10 1 2 17 9 10 1 5 16 10 10 1 9 16 11 10 1 13 16 12 10 1 4 15 13 10 1 15 15 14 10 1 4 14 15 10 1 8 14 16 10 1 15 14 17 10 1 1 13
利用公式9计算表格6中的值P(x,n):
P(x,n)=truncate((α(x,n)C(x,n)+(16-α(x,n)P(x,n-1)+rest)/16)(9)
其中,rest的范围为[0,15],按照公式7中的表示计算。加权因数值α(x,n)的范围为[1,16],当n=1时被设置为14,当n=0,2,3,4,...时被设置为1。加权因数值α(x,n)取决于P(x,n-1)与C(x,n)之间的差异。输出像素值P(x,n)很慢地收敛于需要的值。
表格7:在按照本发明的具有误差扩散单元的滤波器单元中的分步响应 n C(x,n) α(x,n) rest P(x,n) -1 100 0 100 8 14 100 1 10 14 1 21 2 10 1 8 20 3 10 1 12 20 4 10 1 7 19 5 10 1 12 19 6 10 1 3 18 7 10 8 10 14 8 10 8 2 12 9 10 8 5 11 10 10 8 9 11 11 10 8 13 11 12 10 8 4 10 13 10 8 15 10
利用公式9计算表格7中的值P(x,n),其中,rest的范围为[0,15],并按照公式7中的表示计算。加权因数值α(x,n)的范围为[1,16],当n=1时被设置为14,当n=2,3,...,6时被设置为1,当n=0,7,8,9,...时被设置为8。加权因数值α(x,n)取决于P(x,n-1)与C(x,n)之间的差异。输出像素值P(x,n)很快收敛于需要的值。
图3图示出了包括运动补偿单元302的时间递归滤波器单元300的实施例。由于捕捉了场景中的运动,因此来自连续图像的具有彼此相等的坐标的像素将与场景中的目标的相同部分不一致。为了使对应的像素匹配,需要进行运动估算,从而导致了包括一系列运动矢量的运动矢量场。运动补偿单元302用于根据估算的运动矢量使对应的像素匹配。
图4图示出了按照本发明的时间递归滤波器单元400的实施例的另一个实施方式。时间递归滤波器单元400的性能与结合图1中描述的时间递归滤波器单元100一致。本实施方式的优点在于仅需要一个乘法单元406。但注意减法单元404、乘法单元406和加法单元408的布置产生加权因数值α(x,n)和第一像素的第一值C(x,n)的第一乘积与加权因数值α(x,n)的补码1-α(x,n)和第二像素的第二值P(x,n-1)的第二乘积的和。
在时间递归滤波器单元100、200、300或400中的任何一个中,用于存储输出图像的存储器单元106的大小可以是这样的,即,可以用与用于显示在输出连接器110提供的输出图像所使用的每个像素的位数相同的位数存储一个输出图像。以任意方式嵌入的压缩可以被应用于减小存储器单元的大小。它没有在图1到4中的任何一个图中示出。尤其在有损压缩的情况下,应用本发明是非常有利的。
图5A图示出了按照现有技术的,作为像素之间的差异的函数的加权因数值α。X轴502对应于基于输入图像的像素值与输出图像的像素值之间的差异的测量值。Y轴504对应于加权因数值α。该函数单调增加。在其它现有技术中,例如序列号为5119195的美国专利,也提供了表示作为运动的函数的变量k的值的曲线。这些曲线具有相似的形状:不降低。运动,即输入与输出图像之间的差异,越强,变量k的值越高。
图5B图示出了按照本发明的,作为像素之间的差异的函数的加权因数值α。X轴502对应于基于输入图像的像素值与输出图像的像素值之间的差异的测量值。Y轴504对应于加权因数值α。绘出了两条副曲线:一条低于预定阈值506,一条高于预定阈值506。与属于高于预定阈值的副曲线的加权因数值α相比,低于预定阈值506的加权因数值α相对较高。对于像素值之间的较大差异,高于预定阈值506的加权因数值α增加。因此,对应于低于预定阈值的差异的第一值508比对应于高于预定阈值的差异的第二值510高。
低于预定阈值的加权因数值α等于0.5。这仅是一个举例值。除此之外,可以有多个低于预定阈值的值,例如,具有阶梯形状的加权因数值α的函数。
图6图示出了按照本发明的图像处理设备600的实施例,包括:
接收装置602,用于接收一串输入图像。接收的信号可以是通过天线或电缆接收的广播信号,也可以是来自存储设备如VCR(盒式录像机)或者数字多用盘(DVD)的信号。在输入连接器608提供信号。
一个时间递归滤波器单元604,用于对一串输入图像进行噪声滤波,产生一串如结合图1到4中的任何一个描述的输出图像。
显示装置606,用于显示该串输出图像。
图像处理装置600可以是电视机。
应该注意,上述实施例是说明而不是限制本发明的,并且本领域技术人员应该能够在不脱离所附权利要求的情况下设计其它实施例。在权利要求中,位于括号之间的标号应该不构成对权利要求的限制。词“包括”不排除出现没有列在权利要求中的要素和步骤。要素之前的词“一个”不排除出现多个这样的要素。可以利用包括若干分立元件的硬件并且利用经过适当编程的计算机来实现本发明。在单元权利要求中,可以利用一个相同的硬件条款来实施列举的若干装置、这些装置中的若干项。