一种数字信号的重采样方法技术

技术编号:2947823 阅读:663 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种数字信号的重采样方法,用于将输入的长度为W1的象素序列O降采样,输出长度为W2的象素序列R,W1>W2,其特征在于,重采样时,逐步输入序列O中的W1个象素时,有X1次对S1个象素取平均作为输出序列R的一个象素,有X2次对S2个象素取平均作为输出序列R的一个象素,得到象素序列R,其中X1=W1%W1%W2,X2=(W2-X1),S1=Ceil(W1/W2),S2=Floor(W1/W2),Ceil()表示向上取整运算,Floor()表示向下取整运算,“%”表示求余运算,W1=S1*X1+S2*X2。采用本发明专利技术方法,可以减少计算量和存储量,灵活地实现数字信号的重采样。

【技术实现步骤摘要】

本专利技术涉及数字信号处理,尤其涉及。
技术介绍
现有技术中的图像缩放技术一般都通过滤波器来实现。从数字象素处理理论上来讲,把长度为W1的象素序列O重新采样为长度W2的象素序列R要求有以下操作1把长度为W1的象素进行插0处理变为长度为W的象素S。W为W1和W2的最小公倍数,W/W1=N1,W/W2=N2。此操作要求在每个原始象素前(或后)插入N1-1个0值。2对S进行滤波处理F之后得到S’。滤波器F的带宽为2π/N,N=max(N1,N2)3对S’进行抽取操作得到R,即每隔N2个点抽取一个点。在步骤2时采用的滤波器一般为FIR滤波器,相对IIR滤波器可以带来内存和稳定度上的优势。假设F为FIR滤波器,其长度为L,由于F为一个低通滤波器,为了满足其带宽条件,L一般为大于等于2N的整数。采用FIR滤波器来实现图像的重采样时,有以下几个问题1W1和W2在实际运用中经常是不断变化的,因此重采样率是不断变化的。为了保证重采样后的图像质量,往往需要根据重采样率的不同设计不同的FIR滤波器,并且保存FIR滤波器系数。当需要支持很多不同的重采样率时,存储FIR滤波器系数需要占很大的存储量。2采用FIR滤波器时,在FIR滤波过程中,需要保存当前象素O以前的象素O,O...理论上如果FIR滤波器的阶数为L,那么最多需要保留Ceil(L/N1)个以前的象素。这在实际运用中可能会造成较大的存储量需求。3FIR滤波过程需要乘加运算,使用L阶的FIR滤波器把象素序列O(长度为W1)重采样为R(长度为W2)时,需要的乘加操作个数约为W2*L/N1次。
技术实现思路
本专利技术要解决的技术问题是提供,可以减少计算量和存储量,灵活地实现数字信号的重采样。为了解决上述技术问题,本专利技术提供,用于将输入的长度为W1的象素序列O降采样,输出长度为W2的象素序列R,W1>W2,其特征在于,重采样时,逐步输入序列O中的W1个象素时,有X1次对S1个象素取平均作为输出序列R的一个象素,有X2次对S2个象素取平均作为输出序列R的一个象素,得到象素序列R,其中X1=W1%W2,X2=(W2-X1),S1=Ceil(W1/W2),S2=Floor(W1/W2),Ceil()表示向上取整运算,Floor()表示向下取整运算,“%”表示求余运算,W1=S1*X1+S2*X2。进一步地,上述方法还可具有以下特点在重采样过程中,还要将按S1个象素取平均的操作和按S2个象素取平均的操作平均地分散开。进一步地,上述方法还可具有以下特点是通过以下步骤来实现将S1个象素取平均的操作和按S2个象素取平均的操作平均地分散开的,逐步输入的象素序列O的各象素点表示为O,0<=I<W1,逐步输出的象素序列R的各象素点表示为R,0<=J<W2(a)初始化变量D为任意小于W2且大于等于0的整数,A=0,C=0,I=J=0;(b)如果I大于等于W1,已得到要输出的象素序列R,结束;否则执行下一步;(c)输入新的象素O,令I=I+1,A=A+O,D=D+W2;C=C+1;(d)如果D<W1,返回步骤(b),否则执行下一步;(e)令R=A/C,C=0,J=J+1,D=D-W1,A=0,返回步骤(b)。进一步地,上述方法还可具有以下特点是通过以下步骤来实现将S1个象素取平均的操作和按S2个象素取平均的操作平均地分散开的,逐步输入的象素序列O的各象素点表示为O,0<=I<W1,逐步输出的象素序列R的各象素点表示为R,0<=J<W2(g)计算出S1=Ceil(W1/W2),S2=Floor(W1/W2),增量deta=W1%W2,初始化LT=S2(或S1),循环变量J=0,任意小于W2且大于等于0的一整数D;(h)从序列O中取出LT个象素,对该LT象素取均值,作为要输出的象素序列R的象素点R,然后令J=J+1;(i)判断J是否等于W2,如果是,已得到要输出的象素序列R,结束,否则,执行下一步;(j)令D=D+deta,判断D是否大于等于W2,如果是,执行步骤(k),否则,执行步骤(1);(k)令D=D-W2,LT=S1,返回步骤(h);(l)令LT=S2,返回步骤(h)。本专利技术还提供,用于将输入的长度为W1的象素序列O升采样,输出长度为W2的象素序列R,W1<W2,其特征在于,重采样时,逐步输入序列O中的W1个象素时,有X1次将序列O的一个象素复制为S1个输出序列R的象素,有X2次将序列O的一个象素复制为S2个输出序列R的象素,从而得到象素序列R,其中X1=W2%W1,X2=(W1-X1),S1=Ceil(W2/W1),S2=Floor(W2/W1),Ceil()表示向上取整运算,Floor()表示向下取整运算,“%”表示求余运算,W2=S1*X1+S2*X2。进一步地,上述方法还可具有以下特点在重采样过程中,还要将X1次将序列O一个象素复制为S1个输出序列R象素的操作和X2次将序列O一个象素复制为S2个输出序列R象素的操作平均地分散开。进一步地,上述方法还可具有以下特点是通过以下步骤来实现将X1次将序列O一个象素复制为S1个输出序列R象素的操作和X2次将序列O一个象素复制为S2个输出序列R象素的操作平均地分散开,设逐步输入的象素序列O的各象素点表示为O,0<=I<W1,逐步输出的象素序列R的各象素点表示为R,0<=J<W2(A)初始化变量D=任意小于W1的整数,I=J=0;(B)如果I大于等于W1,已得到要输出的象素序列R,结束;否则,执行下一步;(C)从序列O输入新的象素O,令I=I+1;(D)令R=O,J=J+1;D=D+W1;(E)如果D<W2,返回步骤(D),否则,令D=D-W2,返回步骤(B)。进一步地,上述方法还可具有以下特点是通过以下步骤来实现将X1次将序列O一个象素复制为S1个输出序列R象素的操作和X2次将序列O一个象素复制为S2个输出序列R象素的操作平均地分散开,设逐步输入的象素序列O的各象素点表示为O,0<=I<W1,逐步输出的象素序列R的各象素点表示为R,0<=J<W2(H)计算出S1=Ceil(W2/W1),S2=Floor(W2/W1),初始化变量deta=W2%W1,D为任意小于W1且大于等于0的整数,LT=S2(或S1),I=J=0;(I),如果I>=W1,已得到要输出的象素序列R,结束,否则执行下一步;(J),从序列W1中输入新的象素O,令I=I+1;(K),O=R,J=J+1;且重复此操作LT次;(L),令D=D+deta,如果D>=W1,则令D=D-W1,LT=S1,返回步骤(I);否则令LT=S2,返回步骤(I)。综上所述,本专利技术提供了,克服了现有技术中所需内存过多和实现可变重采样率比较复杂的问题,特别适合于简单易行且灵活地实现一个图像序列向任意长度图像序列的重采样。附图说明图1为本专利技术第一实施例一种降采样方法的流程图;图2为本专利技术第二实施例一种升采样方法的流程图。具体实施例方式以下以数字图像信号为例对本专利技术进行说明,但本专利技术也可以应用于其它的数字信号重采样中。第一实施例在本实施例中,要把长度为W1的象素序列O重新采样为长度W2的象素序列R,设该重采样为降采样,即W2<W1。设S1=Ceil(W1/W2),S2=Floor(W1/W2),其中Ceil本文档来自技高网...

【技术保护点】
一种数字信号的重采样方法,用于将输入的长度为W1的象素序列O降采样,输出长度为W2的象素序列R,W1>W2,其特征在于,重采样时,逐步输入序列O中的W1个象素时,有X1次对S1个象素取平均作为输出序列R的一个象素,有X2次对S2个象素取平均作为输出序列R的一个象素,得到象素序列R,其中X1=W1%W2,X2=(W2-X1),S1=Ceil(W1/W2),S2=Floor(W1/W2),Ceil()表示向上取整运算,Floor()表示向下取整运算,“%”表示求余运算,W1=S1*X1+S2*X2。

【技术特征摘要】

【专利技术属性】
技术研发人员:林中松王浩
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1