[Speex-dev] VisualDSP++ with enabled BFIN_ASM

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Fri Feb 22 03:28:40 PST 2008

> I'm currently 'translating' GNU assembly constraints to VDSP.
> I'm far from finished, but first attempts show no improvement over the C
> compiler.

Using a recent version?

> This is rather strange and would suggest memory bandwith limitation
> rather than code efficiency.
> I will investigate further by placing all in L1 SRAM.

Make sure your cache is set to write-back. Also, you might want to set
the complexity setting to 1. Using a lower bitrate (e.g. 20.6 kbps) is
also faster. Last thing, I suspect that when using the I1 as cache,
there are slowdowns due to *instructions* cache misses. That would be
even more important for wideband, which has larger code. Using the
entire instruction SRAM would help a lot with that.

> I'm using speex because of wide-band, and I'm pretty disapointed by
> performance considering it's slower than ADI's MP3 codec (10/20 MIPS for
> decoding/encoding of 44100 Hz @ 64 kbit/s).

No idea what MP3 really does. With a bit more optimisations (I didn't
really focus on wideband when optimising on bfin), I think wideband
should be possible in real-time using about 10-20% CPU. 5% might be
possible but would require very heavy tuning (which I'm sure your MP3
encoder had).


More information about the Speex-dev mailing list