[Speex-dev] speex on TI C5x fixed-point DSP
Jamey Hicks
jamey.hicks at hp.com
Tue Nov 2 18:42:20 PST 2004
Jean-Marc Valin wrote:
>>It took all of the DSP at that speed. The C5509 will go up to 200MHz,
>>so I guess it's 2/3 of the DSP. We're going to profile the code to see
>>if we can speed it up.
>>
>>
>
>I would think it's possible to make it much faster. The first thing I'd
>look is the fixed-point macros, like MUL16_16 and make sure they don't
>do something much more complicated than what they're supposed to do
>(e.g. compute on 32 bit operands), because there's no way to tell C to
>do things like "multiply two 16-bit values that will have a result in 32
>bits".
>
I have most of these right. TI's C compiler generates a 16x16=>32
multiply from the following idiom:
int32_t z = (int32_t)(int16_t)x * (int32_t)(int16_t)y;
But I see there are still some calls to the 32x32 multiply routine in
one of the filters. It looks like the 16x32 multiplies to which you
refer below.
>Also, Speex uses lots of 16x32 multiplications, which your DSP
>may do more efficiently in other ways. Of course, after that, I can also
>point out several routines that would benefit the most from
>optimizations (mainly the filters).
>
>
That would be helpful, if there are some key ones to start on.
Jamey
More information about the Speex-dev
mailing list