[Speex-dev] new assembler port
Jim Crichton
jim.crichton at comcast.net
Tue May 16 07:25:23 PDT 2006
> I'm trying to use speex for implementing a VoIP demo application using
> linphone
> on an embedded system. At the moment I'm not really able to do real time
> encoding,
> and thinking about making an assembler port for speex to the AVR32
> architecture.
> The AVR32 is a new hybrid MCU/DSP fixed point processor running at 120Mhz
> in
> my application.
> Does anyone have experiences/info about the computational power
> requirements, e.g.
> what quality/bitrate and complexity of encoding seem to be realistic as
> target operating
> modes. I've run some tests with speexenc, encoding a 1minute 16bit PCM
> 8khz speech
> file, which took 3m53s to encode at 11kbps CBR/complexity 3.
> For finding a starting point for the assembler port I did some analysis of
> the encoding with
> valgrind-callgrind. Perhaps some of you have already done similar work and
> could share
> a bit of their experience?
> To loose some words about myself, I'm a student of information
> technologies/rf electronics
> and generally interested in everything that has to do with embedded system
> running Linux,
> though I'm normally doing more of the hardware design stuff ;-)
I suggest that you start by looking at 8kbps, complexity 0. I (and others)
are running that on a TI C55xx DSP, and it runs a little under 30 MIPs when
I last checked, with no assembly optimizations. I have not tried to profile
other rates, but I did run a test at 15kbps, complexity 3, and that was 66
MIPs.
People ask about guidelines for assembly optimization, and if you do some
searching, you will find some tips from Jean-Marc on where to start. Also,
if you look in the source tree for references to Blackfin or bfin, you will
find an example port done by Jean-Marc.
You should make sure that you run the latest code from Subversion, which has
some speed improvements from 1.1.12.
Regards,
Jim Crichton
More information about the Speex-dev
mailing list