[opus] Using opus on ATMEL 32-bit RISC microcontroller

Jean-Marc Valin jmvalin at jmvalin.ca
Fri Aug 26 16:02:27 UTC 2016

On 26/08/16 11:40 AM, Daniele Barzotti wrote:
> You're right! I forgot to say that I need only the encoder side (and
> only for voice).

Then you can remove all of the decoder. As for the encoder, it depends
on the bitrate and sampling rate you want (more below).

> My application have to acquire a 16bit 8KHz PCM stream and save a
> compressed audio into a flash.

Sounds like a job for SILK-only mode. In which case you can strip away
all of CELT.

> (And here I have another little question...
> My flash size is 8Mb only and I have to be able to store in it 8 hours
> of voice, do you think opus shrink the stream enoguht?)

This is going to be a problem. Assuming you mean 8 mega*byte* (and not 8
megabit), that's still only 2 kilobit/second. Opus pretty much requires
8 kb/s, so 4 times what you have. The only codec I know that can do 2
kb/s with reasonable quality is codec2, and the implementation is
floating point.

> Since I'm using FIXED_POINT, I have to pass also --disable-float-api?

Yes. The normal API has calls with both int and float, so if you compile
with FIXED_POINT, the float calls do a conversion to int before using
int internally. If you disable the float API, these functions are not
compiled at all, saving a few bytes.



More information about the opus mailing list