Fabio Pietrosanti (naif)
2008-May-22 15:26 UTC
[Speex-dev] Speex realtime encoding/decoding "Real world" usage for Windows Mobile / Symbian device
Dear all, i am currently evaluating which codec to be used for a "very narrowband" voice communication system (using either VoIP either GSM CSD) on mobile devices running Windows Mobile and Symbian OS. I had experience in using AMR-NB 4.75 with VAD on Symbian OS and all worked very well. However, AMR it's not royalty free and if i need to use it on Windows Mobile i will need to pay a quite expensive royalty for each peace of software distributed (not sold, distributed!!!). So, i am evaluating other codes and the only real alternative capable of running on a 9.6kb/s link seems to be speex. Now, i discussed with several embedded VoIP implementators and some said that Speex simply does not work on mobile devices. 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 would like to ask for REAL WORLD experience in using Speex for encoding/decoding in realtime voice streams on mobile devices. Does exists a Symbian OS product doing encoding/decoding in realtime with speex? Does exists a Windows Mobile product doing encoding/decoding in realtime with speex? Does anyone had real world experience with such kind of codec? If not i understand that the speex code it's still not mature enough for Mobile environment VoIP and audio streaming. Waiting for answers, being positive or negative. I think that this thread would clarify the idea to a lot of programmer willing to evaluate the codec choice for their products. Kind Regards Fabio Pietrosanti
Jean-Marc Valin
2008-May-22 23:02 UTC
[Speex-dev] Speex realtime encoding/decoding "Real world" usage for Windows Mobile / Symbian device
Fabio Pietrosanti (naif) a ?crit :> However, AMR it's not royalty free and if i need to use it on Windows > Mobile i will need to pay a quite expensive royalty for each peace of > software distributed (not sold, distributed!!!).This is exactly why I wrote Speex!> So, i am evaluating other codes and the only real alternative capable of > running on a 9.6kb/s link seems to be speex.Correct.> Now, i discussed with several embedded VoIP implementators and some said > that Speex simply does not work on mobile devices.There's nothing magic about "mobile devices". Either the CPU is powerful enough or it isn't.> 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 remember several mentions on the mailing list of Speex running on Symbian and WinCE.> I would like to ask for REAL WORLD experience in using Speex for > encoding/decoding in realtime voice streams on mobile devices....as opposed to people with FAKE WORLD experience? ;-)> Does exists a Symbian OS product doing encoding/decoding in realtime > with speex? > Does exists a Windows Mobile product doing encoding/decoding in realtime > with speex? > Does anyone had real world experience with such kind of codec?Well, I know people who've used it on Symbian/ARM, TI C5X/C6X and I've personally ported it to the Blackfin DSP. It even runs on music players now with Rockbox and I've seen wifi phones that support it.> If not i understand that the speex code it's still not mature enough for > Mobile environment VoIP and audio streaming.You are free to understand what you like. Jean-Marc
Ashhar Farhan
2008-May-23 01:11 UTC
[Speex-dev] Speex realtime encoding/decoding "Real world" usage for Windows Mobile / Symbian device
hi all, I can claim that our hotfoon service has run millions of mobile voip minutes using speex on mobile and desktops. it works! earlier you needed more powerful cpus (until the integer port), however now the cpus are much faster and the code complexity is much lower. my only regret is of not being able to write some demo apps for speex on win mob. I will surely deliver it in june to settle this debate. - farhan On 5/23/08, Jean-Marc Valin <jean-marc.valin at usherbrooke.ca> wrote:> Fabio Pietrosanti (naif) a ?crit : >> However, AMR it's not royalty free and if i need to use it on Windows >> Mobile i will need to pay a quite expensive royalty for each peace of >> software distributed (not sold, distributed!!!). > > This is exactly why I wrote Speex! > >> So, i am evaluating other codes and the only real alternative capable of >> running on a 9.6kb/s link seems to be speex. > > Correct. > >> Now, i discussed with several embedded VoIP implementators and some said >> that Speex simply does not work on mobile devices. > > There's nothing magic about "mobile devices". Either the CPU is powerful > enough or it isn't. > >> 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 remember several mentions on the mailing list of Speex running on > Symbian and WinCE. > >> I would like to ask for REAL WORLD experience in using Speex for >> encoding/decoding in realtime voice streams on mobile devices. > > ...as opposed to people with FAKE WORLD experience? ;-) > >> Does exists a Symbian OS product doing encoding/decoding in realtime >> with speex? >> Does exists a Windows Mobile product doing encoding/decoding in realtime >> with speex? >> Does anyone had real world experience with such kind of codec? > > Well, I know people who've used it on Symbian/ARM, TI C5X/C6X and I've > personally ported it to the Blackfin DSP. It even runs on music players > now with Rockbox and I've seen wifi phones that support it. > >> If not i understand that the speex code it's still not mature enough for >> Mobile environment VoIP and audio streaming. > > You are free to understand what you like. > > Jean-Marc > > _______________________________________________ > Speex-dev mailing list > Speex-dev at xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev >
Benny Prijono
2008-May-23 13:11 UTC
[Speex-dev] Speex realtime encoding/decoding "Real world" usage for Windows Mobile / Symbian device
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
Jean-Marc Valin
2008-May-23 13:48 UTC
[Speex-dev] Speex realtime encoding/decoding "Real world" usage for Windows Mobile / Symbian device
Benny Prijono a ?crit :> 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).Complexity 5 is insane overkill. The default is 2 and should be left as it unless you really see a need to change it. Complexity 1 is fine if you're strapped for CPU and 3 can be OK if you can afford it. More than that is just plain silly for anything real-time. Jean-Marc
Apparently Analagous Threads
- Speex realtime encoding/decoding "Real world" usage for Windows Mobile / Symbian device
- Speex realtime encoding/decoding "Real world" usage for Windows Mobile / Symbian device
- Speex on Nokia Symbian S60 phones
- Speex realtime encoding/decoding "Real world" usage for Windows Mobile / Symbian device
- Speex on Nokia Symbian S60 phones