[Speex-dev] fir_mem16,iir_mem16 and filter_mem16 optimisations

Василий Троцкий altersoft at mail.ru
Sat Aug 2 11:53:15 PDT 2008


-----Original Message-----
From: Jean-Marc Valin <jean-marc.valin at usherbrooke.ca>
To: Василий Троцкий <altersoft at mail.ru>
Date: Sat, 02 Aug 2008 07:54:34 -0400
Subject: Re: [Speex-dev] fir_mem16,iir_mem16 and filter_mem16 optimisations

> 
> Василий Троцкий a écrit :
> > I have some questions about that functions: fir_mem16, iir_mem16 and filter_mem16.
> > Filtering is very slow on TI DSP, and i want to optimise it. 
> > Can somebody give me formulas which discribe work of this filters?
> > Or any suggestions about how to transform code for better performance.
> > 
> > I going to implement this functions in assembler, but it is hard to do without full understanding how functions work.
> 
> These are direct-form II transposed filters. There's actually two ways
> to compute them. For an alternate way, have a look at the commented
> version of filter_mem2() completely at the bottom of filters_bfin.h. The
> only thing you won't need from that one are the shifts by SIG_SHIFT
> because the inputs and outputs of filter_mem16() are already 16 bits.
> 
> 	Jean-Marc
> 

I still in doubt.
You could tell in more detail about filter_mem16()? 
I can't find comments in filter_mem2().
I think, filter_mem16 is a IIR filter, and const spx_coef_t *num, const spx_coef_t *den is a input and output signal coefficients, but i am not sure... is it right?
But there is only one coefficients array in iir_mem, and logic is not clear for me.
I feel, fir_mem16() and iir_mem16() is a two parts of one IIR filter. fir_mem16 multiplies input signal, and iir_mem16 doing that with output...
So, if we call fir_mem16() and then iir_mem16() with corresponding parameters it will be equivalent to filter_mem16()?

I'm sorry for a stupid questions, i am newbie in digital filtering.
May be filter_mem2() will work better, but i am trying to understand approach.
For me is interesting not only result in better performance of code, but i want to get some aducational effect.

Thanks a lot )) 
If it is interesting for you, i can send you optimized functions after i shall finish with it.


More information about the Speex-dev mailing list