[Speex-dev] Speex realtime encoding/decoding "Real world" usage for Windows Mobile / Symbian device

Benny Prijono bennylp at pjsip.org
Fri May 23 06:11:50 PDT 2008

On Thu, May 22, 2008 at 4:26 PM, Fabio Pietrosanti (naif)
<lists at infosecurity.ch> wrote:
> I got the feedback that Speex require too much computation power to run
> on Symbian OS and Windows Mobile devices doing encoding/decoding in
> realtime with all the Narrowband-enabled features.
> I crawled the mailing list archive and the internet and i was not able
> to find out a precise answer to my doubt.

I was once one of the people who are convinced that Speex is unable to
run on "mobile" platforms. But I was curious with this issue again
because of this thread so I decided to have it another go.

And my conclusion so far, yes it can (!). I can get good quality voice
call on my PDA (PocketPC 2003, Intel PXA270 312 MHz). Turns out that
this has been my mistake with setting both Speex quality/complexity
value and the compiler optimization settings. I apologize to Jean-Marc
and the speex community if speex got bad publication because of my

So my settings now (I use embeded Visual C++ 4 latest SP):
 - plain C (not ARM assembly), fixed point version of speex (r12832)
 - quality/complexity set to 5 (previously it was 0-1). 3-4 is also
okay, but obviously quality is not as good.
 - compiler set to optimize for maximum speed (/Oxt flag, previously
it was default, which is mapped to /O2).

(yeah I know those were silly mistakes)

I tried with narrowband only, and audio is good. I also tried with
adding compiler flags which I thought would be appropriate for my
processor ("/QRarch5T /QRdsp /QRxscale" options), but lacking a good
CPU monitor I don't how much improvement I got. My task manager showed
that the CPU usage for my app is 3%, obviously this is wrong.

If anyone else can share their optimization tips that would be great.
Then we can put all the info together in the wiki.


More information about the Speex-dev mailing list