<div>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. <br clear="all">
</div><div></div><div>I use the uwb-mode, preprocessing, denoising and echo cancellation.</div><div>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?</div>
<div></div><div>I did a quick profile with CodeAnalyst and identified the most expensive functions as (in order):</div><div>CPU Clocks, Function</div><div>4657, kiss_fft_stride</div><div>4456, speex_echo_cancellation</div>
<div>2494, split_cb_search_shape_sign</div><div>1490, fir_mem16</div><div>1419, speex_preprocess_run</div><div></div><div>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.</div>
<div></div><div>1) Compiler optimizations: Recommended options? </div><div>2) SIMD. Is Speex written to take advantage of SIMD architectures? What must I do to take advantage of this?</div><div></div><div>-- <br></div>Greger Burman<br>
<br>