[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.


More information about the Speex-dev mailing list