[opus] OPUS in embedded platform

van Bijleveld Christian (ST-CO/ENG1.3) Christian.vanBijleveld at nl.bosch.com
Tue May 14 04:28:27 PDT 2013


Hi, 


Thanks for your replies. 
I would narrow-down a little bit the specifications, in case someone have access to more accurate indicators. 

Let's say that I would like to use OPUS for a mono speech signal (1 channel) sampled at 48kHz (Full-Band), 64kbps bitrate, 10ms frame length (thus VoIP mode, using both speech and audio layers) and Complexity=10. 
Are there memory figures and/or clock cycles for this configuration (or similar)?


Where is most of the processing located: at the encoder or at the decoder?


I got some answers which points towards DSP platforms (TI mainly). Are there opportunities for ARM processors with DSP extension, such a Cortex-M4, or without DSP extension such as Cortex-M3?


One more question: does the in-built Packet Loss Concealment methods introduces much more complexity to the OPUS codec?



Met vriendelijke groeten | Best Regards, 
Christian van Bijleveld

 

-----Original Message-----
From: Jean-Marc Valin [mailto:jmvalin at jmvalin.ca] 
Sent: maandag 13 mei 2013 23:15
To: van Bijleveld Christian (ST-CO/ENG1.3)
Cc: opus at xiph.org
Subject: Re: [opus] OPUS in embedded platform

On 05/13/2013 08:57 AM, van Bijleveld Christian (ST-CO/ENG1.3) wrote:
> I am interested in porting OPUS to an embedded platform. The idea is
> that the encoder and decoder will run on different processors. In order
> to choose the proper platform, I need an estimate of the resources which
> are needed for OPUS.

It's very hard to provide estimates because the complexity varies by a
large amount depending on the fearures used and on the value of the
complexity setting being selected.

> I read the following in the OPUS wiki:
>  
> "The Opus code base is written in C89 and should run on the vast
> majority of recent (and not so recent) CPUs. A few of the platforms on
> which Opus has been tested and *is known to run include x86, x86-64,
> ARM, Itanium, Blackfin, and SPARC*."
> Are there, or is it known, figures regarding the resources needed for
> OPUS to run on an embedded platform such as DSP or microprocessor? If
> exact figures are not available, but if anyone can give an indication
> about which type of platform is required at least, I would appreciate
> very much. I can image that the amount of resources for the encoder and
> the decoder may be different.

The only hard requirement on the platform is that the chip must at least
be able to natively compute 16-bit multiplications with 32-bit
accumulation. That rules out most low-power micro-controllers.

> Another question: does OPUS need the support  of an Operating System or
> Real Time Kernel (ie; threads,...)?

The Opus code is very generic C89 code. It does not require anything
that isn't part of C89 and in fact, it makes it relatively easy to
remove the dependency on libc (mostly just a matter of changing the
malloc()/free() wrappers).

Cheers,

	Jean-Marc

> Met vriendelijke groeten | Best Regards,
> *Christian van Bijleveld
> 
> *Bosch Security Systems BV
> Bosch Communications Systems, BL Public Address and Conference Systems
> (ST-CO/ENG1.3)
> P.O. Box 80 002
> 5600 JB  Eindhoven
> The Netherlands
> _www.bosch__security.com_ <http://www.boschsecurity.com>
> T. +31 (0)40 257 7076
> F. +31 (0)40 257 7091
> _christian.vanbijleveld at nl.bosch.com_
> <mailto:christian.vanbijleveld at nl.bosch.com>
>  
>  
>  
> 
> 
> _______________________________________________
> opus mailing list
> opus at xiph.org
> http://lists.xiph.org/mailman/listinfo/opus
> 



More information about the opus mailing list