OPUS

INTERACTIVE SPEECH and AUDIO CODEC

The Opus interactive speech and audio codec is a flexible compression algorithm that can be used in a wide variety of interactive audio applications including Voice Over IP (VoIP), videoconferencing, in-game chat, and even live, distributed music performances. 

Adaptive Digital’s Opus codec delivers high-quality, low-latency audio for  real-time communication applications across a wide range of bitrates.

Platforms

Availability

Platforms
Arm ® Devices – Armv7-A Cortex-A8 / A9 / A15 || Armv7-M Cortex-M4/M7 / Armv8-M || Armv8-A Cortex-A53 / A72 || Armv9-A
TI TMS320C7000 C7x | 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.

Features

  • 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

Description

Opus Audio Codec

Adaptive Digital’s Opus Codec is a high-performance audio codec designed for real-time voice and audio communications over IP networks. Developed for interactive Internet applications, Opus delivers exceptional audio quality across a wide range of bitrates while maintaining ultra-low latency, making it ideal for VoIP, video conferencing, WebRTC, unified communications, online collaboration, and streaming applications.

Opus combines the strengths of SILK speech coding and CELT low-latency audio coding technologies, allowing it to seamlessly adapt between speech and full-band audio. This flexible architecture enables efficient compression at both low and high bitrates while maintaining clear, natural-sounding voice and audio quality.

With a default algorithmic delay as low as 22.5 ms, Opus supports real-time, two-way communication with minimal latency, helping to create more natural conversations and improved user experiences in interactive applications.

Key Benefits

  • Industry-standard Opus audio codec
  • Ultra-low latency audio processing
  • Excellent voice and audio quality across a wide bitrate range
  • Combines SILK and CELT coding technologies
  • Optimized for real-time IP communications
  • Supports speech, music, and mixed audio content
  • Ideal for VoIP, WebRTC, and video conferencing
  • Efficient bandwidth utilization
  • Available for DSP, ARM, and embedded platforms

Specification Tables

Spec Tables

Opus Armv9-A

CPU Utilization
Frame SizeMIPs
OPUS WB – Wideband1030
OPUS WB 518
OPUS WB 313
OPUS NB – Narrow Band1017.4
OPUS NB 511.5
OPUS NB 39

OPUS Armv9A – No ASM, intrinsics enabled

Opus Armv7-A 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 Armv7-A Cortex-A8/A9/A15

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 Armv7-M / Armv8-M Wideband (WB)

CPU Utilization and Memory Requirements
FunctionMIPSProgram MemData Mem (Channel + Scratch)
Encode – CELT Mode Only, Complexity 10, 32 kbps rate52110k bytes25k bytes

Opus Armv7-M / Armv8-M Wideband (WB)

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

Opus Opus Armv7-M / Armv8-M 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 Armv8-A Cortex-A35, A53, A57, A72 || Armv9-A

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 Armv8-A Cortex-A35, A53, A57, A72 || Armv9-A

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+ | C7x

CPU Utilization
FunctionPeak MIPS
Bit RateNBMBWBSWBFB
Encode/Decode11.9315.7918.0820.1842.81

Opus C64x+ | C7x

Memory requirements in units of byte.
FunctionProgram MemData MemStack MemTotal Memory
Encode/Decode259.63k94.41k3k357.04k

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

API Functions

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 »