[Speex-dev] RE: Speex-dev Digest, Vol 27, Issue 18

Ashhar Farhan farhan at phonestack.com
Sat Aug 19 02:22:54 PDT 2006


I have been putting speex into wifi devices for the last two years. If
there is one codec that is suited for wifi, it is speex.

Your issues:
*	Code size must be extremely small
The Speex compiled codec size is about 60kb, that is less than the
smallest sized RAM that you can buy. Speex will even run on the really
low powered devices like the Atmel ARMs. 

*	Data working set must also be extremely small
The Data working set has little to do with implementation. The current
implementation of speex is majorily written by desktop oriented
programmers for desktop enviroments. It does a remarkable job of being
able to compile itself even on the Symbian devices. However, there is
nothing to stop you from writing a small, mono-bit-rate version that
will work through a register file of a typical DSP.

*	Use very few MHz of a DSP
You mean, a few Megaflops. It is difficult to find a DSP that does less
than a few tens of megaflops. Rather than taking a retrograde step of
implementing a lower complexity codec, it makes sense to demand slightly
higher performance from the hardware and expect moore's law to take

*	Needs packet loss concealment (I believe Speex has this)
If course it does.

His recommendation was that because packet overhead alone was in the 24
kbps range, there is nothing wrong with having a 16 KHz wideband stream
that uses 24 kbps so long as it meets the above embedded criteria.  He
said that the VBR support and ultra low bandwidth capability wasn't
really useful.
Speex has no 'packet overhead' those issues are best thrown and Henning
Schulzrine and company who designed the RTP. I run speex on a single
slot (13 kbps total throughput) on our mobile clients without a
problem.Even the 10kpbs wideband codec is quite impressive. As for
things that are not 'really useful' leave them out. 

What we need is something that would meet the lowest common denominator
in hardware yet deliver a wideband stream in less than 24 kbps for the
payload. Can someone comment on this?
There is always a complexity/bandwidth trade-off. If you want to crunch
speech into a smaller bandwidth, you pay with CPU, that is the
fundamental law of dsp (within limits, ofcourse). However, I fail to see
why asking for a CPU running at 100MHz is really a problem. They cost
about five bucks each. And if you are really looking at lower processing
rates, I suggest that you just run G.711 or or GSM 6.10 at 16khz

- farhan

George Ou

Speex-dev mailing list
Speex-dev at xiph.org http://lists.xiph.org/mailman/listinfo/speex-dev

More information about the Speex-dev mailing list