[Speex-dev] SSE Resampler

Thorvald Natvig thorvald at natvig.com
Fri Apr 4 11:33:02 PDT 2008


The attached patch includes a fully working patch for the resampler, 
including manual SSE optimizations for the single target.

I've tested up and downsampling, changing the filter quality on the fly, 
changing sampling speed on the fly, multichannel resampling, _float and 
_int versions in both floating and fixed point and resetting the 
resampler. They all give the same results as the original one.

The next step would be SSE2 optimization for quality >= 9 (using double 
instead of float); but I think I've done enough for now.

On a sidenote; I'm missing a speex_resampler_clone(), which would create 
a clone of an existing sampler state. This is very handy when you add 
and remove channels on the fly (in my case; add/remove VoIP users); they 
all need the exact same resampler parameters, and cloning a resampler 
state would be a lot faster than creating a new one (which recomputes 
the filter).

-------------- next part --------------
A non-text attachment was scrubbed...
Name: resample-rc1.patch
Type: text/x-diff
Size: 28299 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/speex-dev/attachments/20080404/2388157d/attachment-0001.patch 

More information about the Speex-dev mailing list