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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Update on using Speex on Windows Mobile, FYI.


---------- Forwarded message ----------
From: Benny Prijono <bennylp@xxxxxxxxx>
Date: Fri, May 23, 2008 at 2:11 PM
Subject: Re: [Speex-dev] Speex realtime encoding/decoding "Real world"
usage for Windows Mobile / Symbian device
To: "Fabio Pietrosanti (naif)" <lists at infosecurity.ch>
Cc: speex-dev at xiph.org


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
software.

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.

Cheers
 Benny



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux