[maemo-developers] DSP SBC debugging

From: Brad Midgley bmidgley at gmail.com
Date: Thu Jun 12 22:06:15 EEST 2008
Simon

> Right, well goodish news, the dsp sbc encoder appears to work. It can be
> used with mplayer to play ~1s of audio, then it all goes quiet.

this is how it was when trying the floating point version on an
emulated fpu. There's no way it could keep up.

> though as I understood that the code could run in real-time on a 200MHz
> StrongARM chip, I'd thought the DSP would be able to also run it without any
> tweaks?

the dsp is not going to perform well on general-purpose code. There
are a few matrix ops that need to be rewritten first probably.

sbc_analyze_{four,eight} are the main culprits. These have been
optimized to combine & remove multiplications whenever unnecessary,
but to preserve symmetry on a dsp you'll undo that to get it optimal.

> Anyway, what I'm saying is that at first glance I can't really see a faster
> way of transferring the data across (though I will do some testing to see
> what the cold hard figures say), but if anyone spots a mistake or two in my
> logic please pipe up.

I'm not sure how this impacts you but the soft codec could benefit
from zero copy. We'd need to change the internal representation to
match host-endian stereo audio and only copy it if the incoming data
is not in that format. There is a complication in that the codec has
some state from previous encode calls, so we'd need to rework things
so a buffer we refer to isn't changed by the client between calls.

-- 
Brad

More information about the maemo-developers mailing list