How Opus Audio Codec Merges SILK and CELT

This article explains how the Opus audio format achieves its industry-leading versatility by combining the SILK and CELT codecs. We explore how Opus seamlessly merges Skype’s speech-optimized SILK technology with Xiph.Org’s high-fidelity CELT technology, allowing it to adapt dynamically to different bitrates, bandwidths, and audio types.

To understand the merger, it is essential to look at the two parent technologies. SILK was developed by Skype specifically for voice transmission, utilizing Linear Predictive Coding (LPC) to compress human speech highly efficiently at low bitrates. Conversely, CELT was created by the Xiph.Org Foundation for high-quality music transmission with ultra-low latency, using the Modified Discrete Cosine Transform (MDCT) to capture complex audio waveforms.

Opus integrates these two distinct architectures into a single codec by defining three operating modes: SILK-only, CELT-only, and Hybrid. Depending on the audio content and available network bandwidth, Opus automatically selects the optimal mode. For low-bitrate speech, it runs purely on SILK. For high-fidelity music, it runs purely on CELT.

In Hybrid mode, Opus utilizes both codecs simultaneously to compress full-band audio. The encoder splits the incoming audio signal into two frequency bands. The lower band (typically below 8 kHz), containing the crucial characteristics of human speech, is encoded using SILK. The upper band (above 8 kHz), containing the high-frequency details, is encoded using CELT. The decoder then recombines these bands into a single, cohesive audio stream.

A key technical achievement of the Opus merger is its ability to transition between SILK, CELT, and Hybrid modes seamlessly. The codec can change its mode, bandwidth, and frame size on a frame-by-frame basis (ranging from 2.5 to 60 milliseconds) without causing audible clicks, pops, or drops in the audio stream. This dynamic adaptation makes Opus uniquely suited for real-time internet communication, where network conditions fluctuate constantly.