marian.kechlibar@circletech.net
2006-Jan-27 06:03 UTC
[Speex-dev] Speex at ARM Devices (Symbian OS)
Hello, I am from a small Czech software company (circletech.net) working on software for mobile phones. We are currently starting a development of an Voice IP software, and consider using speex for voice compression and decompression. The software will be Symbian OS C++ program. Is there anyone who has actually used speex Symbian OS port for realtime voice compression and decompression on mobile devices? Or does someone know of such use? The basic question we ask is whether current mobile devices can compress and decompress voice data in realtime ... Thanks Marian Kechlibar
> Is there anyone who has actually used speex Symbian OS port for realtime > voice compression and decompression on mobile devices? Or does someone > know of such use?I know Speex has been used successfully under Symbian, but I've never used it.> The basic question we ask is whether current mobile devices can compress > and decompress voice data in realtime ...Depends on the CPU. With minimal complexity, the lowest speed for real-time is about 100 MHz for a slow ARM core. Jean-Marc
> > The basic question we ask is whether current mobile devices can compress > > and decompress voice data in realtime ... > > Depends on the CPU. With minimal complexity, the lowest speed for > real-time is about 100 MHz for a slow ARM core.what are you calling slow ARM core? I experimented voip with alaw and ?law on the ti omap 5912 board running at 192MHz and it basically sucks 80% of the cpu. As for speex i couldn't make it run correctly. I used gstreamer, so if you tell me you get good results on this kind of board with these codecs, maybe i have a major overhead in gstreamer which is something to investigate. I would appreciate if you could give me some insight. - Christophe> > Jean-Marc > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev >
I have a question on the normalize16() implementation. The DSP I am using implements a norm() instruction that returns the number of bits up to the first nonredundant sign bit. Values in the range [-2^m, 2^m -1) return 30-m as the norm. I am using this in an override of the normalize16() implementation. I'm running some test vectors and comparing my routine to the speex implementation. I think the default method is using the wrong shift for the positive power of 2 boundary case. This implements the following shifts Value shift expected +16383 0 0 -16384 0 0 +16384 0 1 Seems like a mistake. +16385 1 1 Notice this requires a shift, but previous didn't. -16385 1 1 I think the while (max_val>max_scale) comparison should be changed to >= and the NEG32(tmp) changed to NEG32(tmp+1). This would shift values according to the number of bits for the entire [-2^m,+2^m -1) range. Jerry J. Trantow Applied Signal Processing, Inc. jtrantow@ieee.org