[Speex-dev] Major internal changes, TI DSP build change
Jean-Marc Valin
Jean-Marc.Valin at USherbrooke.ca
Sun Apr 23 16:32:48 PDT 2006
> I do not have a build environment for a PC. I have been using the 6-second
> test file male.wav from the Speex site for my simulations, if someone else
> wants to run the audio through the encoder and decoder at 8kbps, complexity
> 1. I might be able to get a coworker to do this, but not any time soon.
Could you send me (don't post on the list) the male.wav as encoder at
quality 8, complexity 3 and the decoded version?
> No, I have done no assembly work on any of these DSPs. It has been a few
> years since I did assembly work on any DSP, and it does not look like I will
> need to for my applications. I just found the above instruction in the
> instruction set reference manual, and it seems perfect for 16x32 multiplies.
> When I look at the assembler output for filter.c, I do not see this
> instruction used, probably because there is always some shift in the result
> (like MULT_16_32_Q15, which takes 6 instructions to implement: two
> multiplies, two adds, a shift, and a store). So, never mind.
If the TI compiler supports gcc-like inline assembly (i.e. with
constraints), then it would be possible to get a performance boost
simply by defining MULT_16_32_Q15 and the like to use these
instructions. See fixed_arm5e.h to see what I mean.
> Once again, I spoke to soon. I saw the library calls when I first tested
> the C54x last year, but I do not see them now. I am using a later version
> of the TI compiler, and there could be some different compile options.
The definition of MULT16_16 was changed at some point to make it clear
that the operands are 16-bit. Seems like it solved the problem.
> There was a post from Jerry Trantow on 4-Feb that he had cut the C6x MIPs
> about in half with some assembly optimization (do you know if he planned to
> submit these?).
Don't know. Jerry, any news?
> Because this is a very parallel machine, it is not an
> assembly language for the faint of heart.
Well, I'll be attending a workshop on C6x programming, so we'll see how
ugly (or not) it is. The Blackfin has a similar long instruction word
architecture and the assembly was rather easy to use.
Jean-Marc
More information about the Speex-dev
mailing list