[Speex-dev] Performance and Optimization

Greger Burman greger at mobile-robotics.com
Mon Jun 15 02:17:08 PDT 2009


I have a question about the overall performance of Speex and what I can do
to improve it. I'm running Speex Windows x86, Visual C++ EE compiler. I will
say right away that I've only compiled debug so far and used no compiler
optimizations at all.
I use the uwb-mode, preprocessing, denoising and echo cancellation.
I've noticed that speex consumes a lot of cpu resources. When I run this on
a Celeron 2,6GHz I have to disable EC in order to not overload the cpu. Am I
correct to assume that there are massive floating point calculations
happening?
I did a quick profile with CodeAnalyst and identified the most expensive
functions as (in order):
CPU Clocks, Function
4657, kiss_fft_stride
4456, speex_echo_cancellation
2494, split_cb_search_shape_sign
1490, fir_mem16
1419, speex_preprocess_run
I'm looking for advise on how to boost the performance with as little code
rewrite as possible. The architecture for release build will be SSE/SSE2
capable.
1) Compiler optimizations: Recommended options?
2) SIMD. Is Speex written to take advantage of SIMD architectures? What must
I do to take advantage of this?
-- 
Greger Burman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20090615/b0fbc690/attachment.htm 


More information about the Speex-dev mailing list