hi, I am porting opus encoder to a low end device with 32K ram, 256K flash and 32MHz arm M3 mcu. But opus seems consume too much. To make it work , what I can think of 1, Only fixed point supported 2, Only mono voice application supported 3, Set complexity to zero 4, Support only one sample rate, like 16KHz 5, Silk mode only or Celt mode only My question is , before I start, Shall I choose silk mode or celt mode ? and beside I mention above, what else can I do to reduce the complexity (rom, ram, MCU), even compromise the voice quality... Thanks, jensenchen -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/opus/attachments/20151229/5164bfaa/attachment.htm
Hi, The specs you're listing are pretty low, but I *think* running Opus encoding should be achievable at 16 kHz. CELT should require less CPU for encoding than SILK, but for voice, you will need a higher bitrate with CELT than with SILK to achieve equivalent quality (e.g. 24-40 kb/s with CELT instead of 16-24 kb/s with SILK). Cheers, Jean-Marc On 12/28/2015 12:11 PM, jensenchen wrote:> hi, > I am porting opus encoder to a low end device with 32K ram, 256K > flash and 32MHz arm M3 mcu. > But opus seems consume too much. To make it work , what I can think of > 1, Only fixed point supported > 2, Only mono voice application supported > 3, Set complexity to zero > 4, Support only one sample rate, like 16KHz > 5, Silk mode only or Celt mode only > > My question is , before I start, Shall I choose silk mode or celt mode ? > and beside I mention above, what else can I do to reduce the > complexity (rom, ram, MCU), > even compromise the voice quality... > > Thanks, > > ------------------------------------------------------------------------ > jensenchen > > > _______________________________________________ > opus mailing list > opus at xiph.org > http://lists.xiph.org/mailman/listinfo/opus >
Andrew Lentvorski
2016-Jan-08 07:16 UTC
[opus] How to make opus work on a low end device ?
On 12/28/15 9:11 AM, jensenchen wrote:> hi, > I am porting opus encoder to a low end device with 32K ram, 256K > flash and 32MHz arm M3 mcu.Don't do this. The delta in cost between a 32K/256K/32MHz and a 128K/256K/100MHz processor borders on zero. Implementing Opus on the second is work but not excessive amounts of it. Implementing it on the first is nothing but pain. If you're stuck with this configuration because, say, you are stuck with a Nordic bluetooth chip, stop now. You will not be able to use Bluetooth and encode. There just aren't enough cycles. Overall, you will not be able to do anything other than move data in on SPI, encode it and move it out on SPI pretty much at any frequency below about 80MHz--64MHz if I'm being excessively charitable. And you better have DMA engines handling the SPI transfers. -a -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 481 bytes Desc: OpenPGP digital signature Url : http://lists.xiph.org/pipermail/opus/attachments/20160107/490d1fe0/attachment.pgp