Rockbox mail archiveSubject: Re: Opus codec developments
Re: Opus codec developments
From: Nils Wallménius <nils.wallmenius_at_gmail.com>
Date: Wed, 2 Jan 2013 10:19:17 +0100
On Tue, Jan 1, 2013 at 11:42 AM, Jonas Wielicki
> On 01.01.2013 08:52, Mike Giacomelli wrote:
>>> Okay. A quick grep for iram_ showed that this is not used at all yet.
>> The actual defines are ICODE, ICONST, IBSS, and IDATA.
> I see -- I more thought about dynamic allocations as they are used in
> the vorbis codec, where iram_alloc is used if I recall correctly.
HI, i've done some of the optimization work on the opus codec in
rockbox. Iram is used for most of the hot buffers in the celt part of
the codec afaik. The way we did it was by profiling and looking at the
hot functions to see what buffers they were using and then of course
benchmarking. celt is slower than silk so we have been focusing on
that first. The part taking the most cycles in celt is the fft/imdct
at the moment. I have been contributing some patches with
optimizations in this area upstream and hope that soon we will be able
to merge in the upstream codec to rockbox. It also has some other
optimizations and other improvements that might help us.
Gcc doesn't handle the coldfire EMAC at all so you can only use the
special regs in asm, not bind them to c vars. Take a look at how this
is done in other functions, there are lots of them, an example is
MULT16_32_Q15 in the fixed_generic.h file you were editing.
Received on 2013-01-02