Rockbox mail archiveSubject: Re: hello all
Re: hello all
From: Thom Johansen <thomj_at_pvv.ntnu.no>
Date: Mon, 23 May 2005 01:50:24 +0200
Pedro Vasconcelos wrote:
> Hello everyone,
> Now I have been looking at what could be done to optimize the codecs,
Excellent! I'm planning to start working on codec optimisations again
myself, once I have time.
> particularly Vorbis because all my portable music is in this format.
> Using vorbis2wav the unoptimzed Tremor is decoding at about 22% real
> time. I did some profiling (on another machine-- a x86 laptop-- just to get a rough idea).
> It seems like 20-40% of the decoding time is spent in mdct_backwards.
IMDCT is indeed a large part of this particular codec, optimizing it
will be important.
> The only optimization I've been able to do is write some asm functions
> to implement the 32x32 bit arithmetic using the Coldfire MAC
> instructions. That improved playbay speed slightly to about 24-25%. The
> other advantage is full 32 bit precision -- i.e. no need to use the
> lower accuracy mode.
I'm very curious as to how you performed these optimisations. Did you
implement them in assembler? Did you utilize the MAC instructions
with the parallell load? Is there some way I can see your code?
> BTW, I also tested commmenting out mdct_backwards: playback improves to
> 40-45%, so clearly something else must be optimized...
Have you tried putting essential data in IRAM? This often gives huge
performance boosts. As for other parts of the code to optimise, I
haven't looked much at Tremor yet, only thing I can think of off the
top of my head is that the windowing can be done faster using
the EMAC unit.
Feel free to pop by #rockbox on irc.freenode.net, if you've got any
questions or want to discuss your optimisation work. I'm the only person
involved with codec optimisations at the time, and go by the
nick 'preglow' there.
Received on 2005-05-23