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 ?