[vorbis-dev] Problems on TI DSP c6701

Michael Smith msmith at xiph.org
Wed May 5 19:37:41 PDT 2004



On Thursday 06 May 2004 08:20, Monty wrote:
> On Sat, May 01, 2004 at 03:18:36AM +0800, Tony wrote:
> > Hi all:
> >
> > I am a newbie to vorbis, and I want to develop vorbis decoder onto
> > TI c6701 evm board.  And I try the tremor code and libvorbis and the
> > code from http://www.xiph.org/archives/tremor/200210/0001.html .
> > But all of them stll work good in MSVC but terrible in c6701.  I
> > dont know wher the problem is??Problem of code or problem of memory
> > allocation?? it decodes almost noise,....  When I trace the code I
> > found some fit_value[] between fit_value[0] and fit_value[1] were
> > wrong before /* unwrap positive values and reconsitute via linear
> > interpolation */ Then I found the wrong fit_value because of the
> > wrong dec_firsttable[lok] value So it seems tth codecsetup error
> > info ,is it ?? If it is, how can I trace deeply to fined the problem
> > ?? Or anyone has experience on TI DSP could kindly tell me where is
> > the problem??Any feedback would be very appreciated.
>
> All the TI processor families are very different.  I've coded for the
> c54xx series, but this likely will not help at all on the 6000 series.
>
> However, a common feature of TI DSP families is that 'byte and 'char'
> are both 16 bits; there is no 8 bit type on many of these processors,
> which the stock version of tremor requires.
>
> The c5416 version of Tremor changes the code substantially to use 16
> bit 'bytes' instead of 8 bit, but also makes heavy use of assembly
> that will not work on the 6000 series.
>
> There is a possibility of getting a C version of the 16 bit code in
> SVN, but it is a substantial fork of the original code and thus
> complicates code maintainence.  In addition, the TI C compilers (CCS)
> shipped for TI brand DSPs is an incredibly poor optimizer; on the
> 5416, my hand written assembly averages about 20x faster.  It will be
> unlikely that you'll acheive realtime performance using CCS; the TI
> processors generally encourage writing mostly in assembly.
>
> I know this is not very encouraging.  Hopefully someone with more
> c6000 series experience will be able to step up and say I'm wrong.
>

I have some c6xxx (though I was using a 6201, not a 6701 - the 6201 does NOT 
have an FPU) experience. I'll reiterate what Monty says: CCS is a terrible 
optimizer. It's ok to use it for non-performance-critical code like 
setup/teardown, but you almost certainly don't want to use it for the main 
decode loop, or at least not for all of it. I used CCS a while back - it may 
have become significantly better since.

The c6xxx family (it's a much more 'conventional' architecture from the point 
of view of a programmer used to non-DSP hardware than the other TI DSPs) does 
have 8 bit types, which makes much of this a lot easier - substantial changes 
will probably still be needed, but you won't have to do as much of a total 
rewrite. 

Mike

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list