On Wed, Oct 18, 2006 at 11:12:32 +0100, Dan Mills wrote:
--- Steve Harris <S.W.Harris(a)ecs.soton.ac.uk> wrote:
> But that puts potentially expensive gain
> calculations into the fast sr code, also I was
rather planning
on using
the impulse used for the upsampler to
provide the band limiting for free.
the gain calculations are relativly cheap, its
converting those gain
levels back into a gain coefficient on the output
that's expensive (from
what I remember).
But all that can still be done at 44.1/48, it is only
the final sample multiplication that needs its inputs
band limited and thus potentially needs the upsampler.
It's not that simple. The gain coefficient is not calculated for every
sample.
I dont think a
streaming resampler is more
challenging than a correct one
that runs on buffers. You just have to preserve
state with every call,
rather than at the buffer boundaries.
But that breaks the ability to use the vectorisation
capability of modern compilers and besides the call
and return overhead will end up costing as much as the
convolution!
The vectorisation point is right, but the call and return is taken care of
by inlining in modern compilers, it's quite cheap.
- Steve