[linux-audio-dev] Realtime convolution - a threading problem?

Steve Harris S.W.Harris at ecs.soton.ac.uk
Thu Apr 7 07:47:09 UTC 2005


On Thu, Apr 07, 2005 at 01:33:01AM +0200, Florian Schmidt wrote:
> > 2: Another approach is to split the FIR in blocks of different sizes, as can 
> > be seen in the bottom figure of this page:
> > http://www.music.miami.edu/programs/mue/Research/jvandekieft/jvchapter2.htm
> > This approach has an obvious advantage in that it allows "zero" latency, 
> > while still retaining some of the computational efficiency of the 
> > high-latency FFT based method. As far as I can see, the complexity of this 
> > algorithm scales as (ln_2(N))^2 for zero-latency. This is not as good as the 
> > high latency efficiency of ln_2(N) - but still far better than using method 
> > 1. with low latency.
> > 
> > As far as I know, the programs I've come across so far (most notably 
> > BruteFIR and Jack_convolve) uses method 1. to get low latency. This leads to 
> > my first question:
> > Has anybody implemented method 2. in a jack application, or, more generally, 
> > under GPL?. If not, are there any reasons that I'm not aware of, why one 
> > should not choose algorithm 2 instead of 1?
> 
> I _heard_ that in the US the algorithm 2 is patented. I haven't really
> looked into it, since my time is limited ATM. If it is not, i might have
> a shot at it at some unspecified time in the future.

Its a while since I looked at it, but I think that the patented algorithm
has a bit more too it. Just splitting the ER and FFT should be fine.

Its known as the "Lake DSP Patent" FWIW.

- Steve 



More information about the Linux-audio-dev mailing list