Opus

INTERACTIVE AUDIO VOCODER

The Opus format is based on the low-latency CELT format and the speech-oriented SILK format

Background2a

Features List

  • Bit-rates from 6 kb/s to 510 kb/s
  • Frame sizes from 2.5 ms to 60 ms
  • Support for both constant bit-rate (CBR) and variable bit-rate (VBR)
  • Audio bandwidth from narrowband to fullband
  • Support for speech and music
  • Dynamically adjustable bitrate, audio bandwidth, and frame size
  • Good loss robustness and packet loss concealment (PLC)
  • Floating point and fixed-point implementation

Availability

Platforms
Arm ® Devices – Armv7-A Cortex-A8 / A9 / A15 || Armv7-M Cortex-M4 / M7 || Armv8-A (32bit) Cortex-A53 / A72
TI TMS320C6000 – C64x+ / C674x / C66x – contact Sales for current specs 610-825-0182 x120

ADT Opus is available on the above Platforms: Other configurations are available upon request.

Specifications

NOTE: We specify MIPS (Millions of Instructions Per Second) as MCPS (Millions of Instruction Cycles Per Second). Unless otherwise specified, peak MIPS are indicated.

Opus Arm Cortex-A8/A9/A15

Memory requirements in units of byte.
FunctionProgram MemData MemScratch MemChannel Data Mem
EncodeMax: 100000 or call function OPUS_ADT_getEncScratchSize()41062 (1 channel)
45764 (2 channels)
DecodeMax: 100000 or call function
OPUS_ADT_getDecScratchSize()
17964 (1 channel)
26684 (2 channels)
Encode/Decode311K25K

Opus Arm Cortex-A8/A9/A15

CPU Utilization
FunctionVBRFECDTXComplexityBit Rate
(kbps)
Frame Size
(ms)
Sampling Rate
(kHz)
MIPS*
Wideband Silk EncoderoffOnoff325101638
Wideband Silk EncoderOnOnoff3
25
101626
Fullband Celt Decoderoffoffoff36410Input: 48 Output: 1611
Fullband Hybridoffoffoff36410Input: 48 Output: 1615

Opus Arm Cortex-M4/M7

Memory requirements in units of byte.
FunctionProgram MemData Mem
Encode/Decode311K25K

Opus ARM Cortex-M4/M7 Super Wideband (SWB)

CPU Utilization*
VBRComplexityBit Rate (kbps)Frame Size (ms)MIPS*
SWB CELT Encoderoff0 – 10481031-57
SWB CELT Decoderoff0 – 10481023
SWB CELT Encoderoff0 – 10641033-59
SWB CELT Decoderoff0 – 10641023

Opus ARM Cortex-M4/M7 Wideband (WB)

CPU Utilization*
VBRComplexityBit Rate (kbps)Frame Size (ms)MIPS*
WB CELT Encoderoff0 – 10241026-48
WB CELT Decoderoff0 – 10241021
WB CELT Encoderoff0 – 10481027-49
WB CELT Decoderoff0 – 10481021
WB CELT Encoderoff0 – 10641028-49
WB CELT Decoderoff0 – 10641021

Opus Arm Cortex-A53/A72 (32-bit)

Memory requirements in units of byte.
FunctionProgram MemData MemScratch MemChannel Data Mem
EncodeMax: 100000 or call function OPUS_ADT_getEncScratchSize()41062 (1 channel)
45764 (2 channels)
DecodeMax: 100000 or call function
OPUS_ADT_getDecScratchSize()
17964 (1 channel)
26684 (2 channels)
Encode/Decode311K25K

Opus Arm Cortex-A53/A72 (32-bit)

CPU Utilization
FunctionVBRFECDTXComplexityBit Rate
(kbps)
Frame Size
(ms)
Sampling Rate
(kHz)
MIPS*
Wideband Silk EncoderoffOnoff325101638
Wideband Silk EncoderOnOnoff325101626
Fullband Celt Decoderoffoffoff36410Input: 48 Output: 1611
Fullband Hybridoffoffoff36410Input: 48 Output: 1615

Opus C64x+

CPU Utilization
FunctionPeak MIPS
Bit RateNBMBWBSWBFB
Encode/Decode11.9315.7918.0820.1842.81

Opus C64x+

Memory requirements in units of byte.
FunctionProgram MemData MemStack MemTotal Memory
Encode/Decode259.6394.413357.04

NB -Narrow Band
MB -Medium Band
WB -Wide Band
SWB -Super Wide Band
FB Full Band

OPUS coding algorithm for speech/music signals sampled at either 48kHz, 24 kHz, 16 kHz, 12 kHz or 8 kHz.

Operates on variable frame sizes of 2.5ms, 5ms, 10ms, 20ms, 40ms, and 60ms.

Supports bit rates ranging from 6 kbps to 510kbps

Description

Opus is a lossy audio coding format developed by the Internet Engineering Task Force (IETF) that is particularly suitable for interactive real-time applications over the Internet.

Opus incorporates technology from two other audio coding formats: the speech-oriented SILK and the low-latency Constrained Energy Lapped Transform (CELT) codec. Opus can be adjusted seamlessly between high and low , and internally, it transitions between linear predictive coding at lower bitrates and transform coding at higher bitrates (as well as a hybrid for a short overlap). Opus has a very low algorithmic delay (22.5 ms by default), which is a necessity for use as part of a low audio latency communication link, which permits natural conversation.

Function APIs

API function call summary

Opus_ADT_initEncoder()

Opus_ADT_initDecoder()

Opus_ADT_encode()

Opus_ADT_decode()

Opus_ADT_deleteEncoder()

Opus_ADT_deleteDecoder()

Opus_ADT_getStatus()

Translate »