有限脉冲响应滤波与欠采样相结合的方法

文档序号:7508628阅读:510来源:国知局
专利名称:有限脉冲响应滤波与欠采样相结合的方法
技术领域
本发明涉及一种有限脉冲响应(Finite Impulse Response,FIR)滤波与欠采样相结合的方法,具体地说,涉及在图像缩小领域中应用的一种节约存储单元的欠采样FIR数字滤波器的实现方法。
背景技术
为了避免在欠采样后出现频域混叠现象,通常应先对被采样的信号进行低通滤波,压缩其频带到Nyqiust频率以下,再进行欠采样。低通滤波器的频带越窄,滤波器的阶数(即FIR抽头系数的个数)越多。所以,当使用相同的FIR滤波器核函数时,FIR滤波器抽头系数个数与欠采样倍数成正比。
目前采用的一种FIR滤波器结构如图1所示。参阅图1,这种结构下,对输入数据进行移位寄存,因而输入数据流与相应抽头系数相乘后累加得到一个滤波输出结果。另一种FIR滤波器结构如图2所示。参阅图2,这种结构下,当一个输入数据到达时,与所有的抽头系数相乘,乘积分别加入各个累加器中,因此进行移位寄存的是累加的中间结果,移位寄存器的最后一级输出即为所需要的当前滤波器输出。
对于一个长度为N的FIR滤波器,在这两种结构都需要(N-1)个存储单元;此外,对于每个一个滤波的输入,都需要进行(N+1)次乘法和N次加法。在欠采样过程中,有些滤波器输出结果是不需要的,所以采用这两种结构都会造成很多无用的计算量。
图像数据传输通常是以行的形式传输的,图像缩小算法通常采取行缩小以行的形式传输的输入数据,经过一个行FIR低通滤波器平滑后,进行欠采样。
列缩小以行的形式传输的经过行缩小的数据,经过一个列FIR低通滤波器平滑后,进行欠采样。
因为图像数据通常是以行的形式传输,若FIR滤波器的长度为N,进行列缩小处理时,产生当前输出的滤波运算需将前(N-1)行的图像数据储存下来。存储一行图像数据的存储器我们称之为行存储器,行存储器耗费了大量的硬件资源,所以图像处理中要极力减少行存储器的个数。在列缩小FIR中减少一个存储单元,就是减少一条行存储器,所以设计良好的欠采样FIR滤波器结构就是图像压缩的关键。
进一步,当使用相同的FIR滤波器核函数时,FIR滤波器抽头系数个数与图像缩小倍数成正比。所以当要支持不同的缩小倍数,所需的行存储器也就正比于图像缩小倍数。
已有的系统通常采用多级逐渐缩小的方法来实现较大的缩小倍数,如对于缩小倍数8,可分三级,每级缩小2倍。其每级都需要一定的行存储器。

发明内容
本发明的目的在于,提供一种有限脉冲响应滤波与欠采样相结合的方法,克服目前的图像缩小中需要大量的行存储器和大量运算,耗费大量硬件资源的技术问题。
为了达到上述目的,本发明的技术方案如下一种FIR滤波与欠采样相结合方法,设N=Ak+B,0<B≤k,其中N、k、A、B均为自然数,N为滤波器系数个数值,k为缩小倍数值;该方法包括如下步骤将滤波器系数分为k组;输入数据根据其在序列中的位置,乘以相应的一组滤波器系数,然后将该组乘积分别累加;每处理k个输入数据,将上述累加结果通过移位寄存器移位一次;经过N次数据输入后,输出数据;然后每经过k次数据输入后,输出数据。
采用上述方法,一个长度为N的FIR滤波器,仅需要A个或A+1个移位寄存器,与现有FIR滤波器相比,移位寄存器数量仅为一般算法的1/k或略多,而相对于每一个滤波的输入,仅需要进行A次或A+1次乘法和加法,所需的运算量为一般算法的1/k或略多。从而简化结构,降低成本,同时降低运算量。当FIR滤波器的核函数一定时,(N正比与k,则A大体保持不变),使用相同数量的运算单元,可在一级完成不同倍数的图像缩小操作。
B=1时,移位寄存器为A个;否则移位寄存器为A+1个。
每组滤波器系数连接一个多路选择器的输入端。
B=1时,所述多路选择器为A个。
B≠1时,所述多路选择器为A+1个。
所述多路选择器为k路。
所述多路选择器中的最后一个多路选择器有k-B个端口置零。
乘法器、加法器为A个。


图1为一种现有FIR滤波器的结构示意图;图2为另一种现有FIR滤波器的结构示意图;图3为以缩小率等于2,长度为8为例FIR滤波器的结构示意图;图4为以缩小率等于3,长度为12为例FIR滤波器的结构示意图;图5为以缩小率等于2,长度为9为例FIR滤波器的结构示意图。
具体实施例方式
为了便于更好地理解本发明的结构和功能,下面结合图3至图5进行详细说明。
为了解释清楚本发明的有限脉冲响应滤波与欠采样相结合方法的原理,现在建立一个简单模型N=Ak+B,0<B≤k,其中N、k、A、B均为自然数,N为滤波器系数个数值,k为缩小倍数值;该方法包括如下步骤将滤波器系数分为k组;输入数据根据其在序列中的位置,乘以相应的一组滤波器系数,然后将该组乘积分别累加;每处理k个输入数据,将上述累加结果通过移位寄存器移位一次;经过N次数据输入后,输出数据;然后每经过k次数据输入后,输出数据。
因为某些滤波输出结果在做欠采样时被丢掉,所以采用此种结构的滤波器后,这部分不需要的计算量可以省去。
下面根据上述发明原理,举出3个具体实施例进行说明。
实施例一N=8,k=2参阅图3,以缩小系数等于2为例,假设输入数据为a0,a1,a2,a3......,滤波器抽头系数为h0,h1,h2,h3,h4,h5,h6,h7。考虑欠采样,即滤波之后的结果每两个取一个,则y(t)=h0*a(2t)+h1*a(2t+1)+h2*a(2t+2)+h3*a(2t+3)+h4*a(2t+4)+h5*a(2t+5)+h6*a(2t+6)+h7*a(2t+7)y0=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6+h7*a7y1=h0*a2+h1*a3+h2*a4+h3*a5+h4*a6+h5*a7+h6*a8+h7*a9y2=h0*a4+h1*a5+h2*a6+h3*a7+h4*a8+h5*a9+h6*a10+h7*a11y3=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10+h5*a11+h6*a12+h7*a13y4=h0*a8+h1*a9+h2*a10+h3*a11+h4*a12+h5*a13+h6*a14+h7*a15以下s0,s1,s2,s3表示用于移位寄存器的存储单元。
t=0时,a0到达s0=h0*a0s1=0s2=0s3=0t=1时,a1到达s0=s0+h1*a1=h0*a0+h1*a1s1=0s2=0s3=0t=2时,a2到达s0=h0*a2s1=s0+h2*a2=h0*a0+h1*a1+h2*a2s2=0s3=0t=3时,a3到达s0=s0+h1*a3=h0*a2+h1*a3s1=s1+h3*a3=h0*a0+h1*a1+h2*a2+h3*a3s2=0s3=0
t=4时,a4到达s0=h0*a4s1=s0+h2*a4=h0*a2+h1*a3+h2*a4s2=s1+h4*a4=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4s3=0t=5时,a5到达s0=s0+h1*a5=h0*a4+h1*a5s1=s1+h3*a5=h0*a2+h1*a3+h2*a4+h3*a5s2=s2+h5*a5=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5s3=0t=6时,a6到达s0=h0*a6s1=s0+h2*a6=h0*a4+h1*a5+h2*a6s2=s1+h4*a6=h0*a2+h1*a3+h2*a4+h3*a5+h4*a6s3=s2+h6*a6=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6t=7时,a7到达s0=s0+h1*a7=h0*a6+h1*a7s1=s1+h3*a7=h0*a4+h1*a5+h2*a6+h3*a7s2=s2+h5*a7=h0*a2+h1*a3+h2*a4+h3*a5+h4*a6+h5*a7s3=s3+h7*a7=0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6+h7*a7同时,输出y0=s3t=8时,a8到达s0=h0*a8s1=s0+h2*a8=h0*a6+h1*a7+h2*a8s2=s1+h4*a8=h0*a4+h1*a5+h2*a6+h3*a7+h4*a8s3=s2+h6*a8=h0*a2+h1*a3+h2*a4+h3*a5+h4*a6+h5*a7+h6*a8t=9时,a9到达s0=s0+h1*a9=h0*a8+h1*a9s1=s1+h3*a9=h0*a6+h1*a7+h2*a8+h3*a9s2=s2+h5*a9=h0*a4+h1*a5+h2*a6+h3*a7+h4*a8+h5*a9
s3=s3+h7*a9=h0*a2+h1*a3+h2*a4+h3*a5+h4*a6+h5*a7+h6*a8+h7*a9同时,输出y1=s3t=10时,a10到达s0=h0*a10s1=s0+h2*a10=h0*a8+h1*a9+h2*a10s2=s1+h4*a10=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10s3=s2+h6*a10=h0*a4+h1*a5+h2*a6+h3*a7+h4*a8+h5*a9+h6*a10t=11时,a11到达s0=s0+h1*a11=h0*a10+h1*a11s1=s1+h3*a11=h0*a8+h1*a9+h2*a10+h3*a11s2=s2+h5*a11=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10+h5*a11s3=s3+h7*a11=h0*a4+h1*a5+h2*a6+h3*a7+h4*a8+h5*a9+h6*a10+h7*a11同时,输出y2=s3……t=2n时,a(t)到达s0=h0*a(t)s1=s0+h2*a(t)=h0*a(t-2)+h1*a(t-1)+h2*a(t)s2=s1+h4*a(t)=h0*a(t-4)+h1*a(t-3)+h2*a(t-2)+h3*a(t-1)+h4*a(t)s3=s2+h6*a(t)=h0*a(t-6)+h1*a(t-5)+h2*a(t-4)+h3*a(t-3)+h4*a(t-2)+h5*a(t-1)+h6*a(t)t=2n+1时,a(t)到达s0=s0+h1*a(t)=h0*a(t-1)+h1*a(t)s1=s1+h2*a(t)=h0*a(t-3)+h1*a(t-2)+h2*a(t-1)+h3*a(t)s2=s2+h5*a(t)=h0*a(t-5)+h1*a(t-4)+h2*a(t-3)+h3*a(t-2)+h4*a(t-1)+h5*a(t)s3=s3+h7*a(t)=h0*a(t-7)+h1*a(t-6)+h2*a(t-5)+h3*a(t-4)+h4*a(t-3)+h5*a(t-2)+h6*a(t-1)+h7*a(t)同时,输出
y((t-7)/2)=s3=h0*a(t-7)+h1*a(t-6)+h2*a(t-5)+h3*a(t-4)+h4*a(t-3)+h5*a(t-2)+h6*a(t-1)+h7*a(t)根据我们采用的滤波器实现结构,我们可以将滤波器抽头系数分为两组,[h0h2h4h6]和[h1h3h5h7]。输入的数据根据在其在序列中的位置,乘以相应的一组滤波器系数,然后将这组乘积分别加入相应累加器。累加寄存器在这种缩小系数为2的情况下,每处理两个输入数据移位一次。最后一级移位寄存器的输出即为经过滤波及欠采样的结果。由于不需要输出的滤波结果就不做计算,且只需要4条行存储器,因此这种实现方法即节省了运算量,也节省了存储单元。
实施例二N=12,k=3参阅图4,以缩小系数等于3为例,假设输入数据为a0,a1,a2,a3......,滤波器抽头系数为h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11。考虑欠采样,即滤波之后的结果每三个取一个。滤波器系数分为三组[h0 h3 h6 h9],[h1 h4 h7h10],[h2 h5 h8 h11]。每次选择一组滤波器系数用于计算,而累加寄存器的移位,每处理三个输入数据移位一次。由上面的分析,可知此处也只需要4个乘法器和4个行存储器。
实施例三N=9,k=2参阅图5,以缩小系数等于2为例,假设输入数据为a0,a1,a2,a3......,滤波器抽头系数为h0,h1,h2,h3,h4,h5,h6,h7,h8。我们可以将滤波器抽头系数分为两组,[h0 h2 h4 h6]和[h1 h3 h5 h7]。输入的数据根据在其在序列中的位置,乘以相应的一组滤波器系数,然后将这组乘积分别加入相应累加器。累加寄存器在这种缩小系数为2的情况下,每处理两个输入数据移位一次。此种情况为缩小系数为2,且只需要4条行存储器的极限情况,此处需要5个乘法器,h8连接最后一个乘法器。例如当a8输入时,a8*h8的结果加上寄存器s3中的值之后即可输出,而a8*h6的结果加上寄存器s2中的值恰好可存入寄存器s3。由于不需要输出的滤波结果就不做计算,且只需要4条行存储器,因此这种实现方法即节省了运算量,也节省了存储单元。
如果在其他情况下,若分组后多余2个以上的抽头系数,即B>1,则可以增加一个多路选择器,多余的多路选择器输入口可以置零。
虽然本发明的实施例已经举例说明并被显示和描述,但应当理解,熟知本领域的人员对本发明做出的各种修改或者替代,都不脱离本发明的保护范围。例如,对滤波器系数作移位,而某个输出对应的中间结果始终存放在一个存储器中。
权利要求
1.一种有限脉冲响应滤波与欠采样相结合的方法,设N=Ak+B,0<B≤k,其中N、k、A、B均为自然数,N为滤波器系数个数值,k为缩小倍数值;该方法包括如下步骤将滤波器系数分为k组;输入数据根据其在序列中的位置,乘以相应的一组滤波器系数,然后将该组乘积分别累加;每处理k个输入数据,将上述累加结果通过移位寄存器移位一次;经过N次数据输入后,输出数据;然后每经过k次数据输入后,输出数据。
2.如权利要求1所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,B=1时,移位寄存器为A个;否则移位寄存器为A+1个。
3.如权利要求1或2所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,每组滤波器系数连接一个多路选择器的输入端。
4.如权利要求3所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,B=1时,所述多路选择器为A个。
5.如权利要求3所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,B≠1时,所述多路选择器为A+1个。
6.如权利要求5所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,所述多路选择器为k路。
7.如权利要求6所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,所述多路选择器中的最后一个多路选择器有k-B个端口置零。
8.如权利要求1所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,乘法器为A个。
9.如权利要求1所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,加法器为A个。
全文摘要
本发明提供了一种有限脉冲响应滤波与欠采样相结合的方法,设N=Ak+B,0<B≤k,其中N、k、A、B均为自然数,N为滤波器系数个数值,k为缩小倍数值;该方法包括如下步骤将滤波器系数分为k组;输入数据根据其在序列中位置,乘以相应的一组滤波器系数,然后将该组乘积分别累加;每处理k个输入数据,将上述累加结果通过移位寄存器移位一次;经过N次数据输入后,输出数据;然后每经过k次数据输入后,输出数据。采用上述方法,一个长度为N的FIR滤波器,仅需要A个或A+1个移位寄存器,与现有FIR滤波器相比,移位寄存器数量仅为一般算法的1/k或略多,而相对于每一个滤波的输入,仅需要进行A次或A+1次乘法和加法,所需的运算量为一般算法的1/k或略多。
文档编号H03H17/02GK1787368SQ200510025189
公开日2006年6月14日 申请日期2005年4月19日 优先权日2005年4月19日
发明者林豪, 蔡天佑 申请人:展讯通信(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1