[Speex-dev] speex frustration

michael Nikolaou michaelnikolaou at yahoo.com
Thu Aug 5 11:41:02 PDT 2010

Hi to group 

I want to use speex for an embedded device caryying  voice over rs485
.The controller i'm using is LPC2368. I recompiled the code written for 
stm32 . I used as per original file 8khz , narrowband,complexity 1 , quality
4 ,fixed point , generic model . Cpu speed is 72 MHZ .Running some benchmarks
for the codec i found out that i have almost 90% cpu utilisation.It was about 
19 ms every 20 ms frame .Reading other posts i understood i should be waiting 
60% with this core. After some research  i found the main bottleneck lies in 
 pitch calculation .
The routine void pitch_xcorr(....)runs for (144-17)times  and calls
corr[nb_pitch-1-i]=inner_prod(_x, _y+i, len);.
As i understood this is called len>>2=10 times .This function  is called 
every 5ms.As i found out only this function needs 12 ms per 20 ms!!!!. So how is
it possible to have a total utilisation of 60% with everything included.Am i
missing something or doing something wrong ?.
I haven't used armv4 optimizations but after examining the assembly code it
looks quite good. Are there any options i can use to shorten things .
Is there a source code example for lpc2000 architecture ?.Can somebody help ?


More information about the Speex-dev mailing list