Re: Coreaudio-api Digest, Vol 4, Issue 32
Re: Coreaudio-api Digest, Vol 4, Issue 32
- Subject: Re: Coreaudio-api Digest, Vol 4, Issue 32
- From: Ian Ollmann <email@hidden>
- Date: Fri, 2 Feb 2007 10:16:21 -0800
On Feb 2, 2007, at 9:58 AM, email@hidden wrote:
I would like to implement a very long FIR filter for a room
correction application (about 10.000 taps).
I know the PowerPC chips has the Altivec module to do this kind of
tasks efficiently.
But I have an Intel Mac.
How can I write this FIR filter such that it is most efficiently
handled on a Intel mac and
preferable also efficient on a PowerPC mac?
vDSP_vconv in Accelerate.framework is a good first thing to try. I
don't know if it necessarily will handle one of that size (especially
on the older Intel Core machines), but give it a shot. It should be
running somewhere in the ball park of the peak machine efficiency*
for that operation, so if that can't hack it, you'll probably need to
do something very different.
For filters that size, your best bet is a convolution using FFT,
which has something around 10Nlog2(N) cost rather than N**2 cost.
Convolution by FFT is a well known algorithm, but unfortunately not
something I've done. vDSP_vconv should probably be doing that behind
the scenes for sufficiently large filters, but alas it is not
something we've had time to do yet. File a feature request bug report
if this is important to you.
Then there is the video card, a bit of a wild card in this game. The
horsepower is certainly there. However one worries about whether real
time delivery is possible on a piece of hardware without preemption.
This is again something I haven't looked into thoroughly.
Ian
*Well, at least >50% anyway. PowerPC is more like 95% -- the
advantage of 32 registers and free register access.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden