SBC (codec)


SBC, or low-complexity subband codec, is an audio subband codec specified by the Bluetooth Special Interest Group for the Advanced Audio Distribution Profile. SBC is a digital audio encoder and decoder used to transfer data to Bluetooth audio output devices like headphones or loudspeakers. It can also be used on the Internet. It was designed to obtain a reasonably good audio quality at medium bit rates while keeping low computational complexity, having Bluetooth bandwidth limitations and processing power in mind. As of A2DP version 1.3, the Low Complexity Subband Coding remains the default codec and its implementation is mandatory for devices supporting that profile, but vendors are free to add their own codecs to match their needs.
At CES 2020 the Bluetooth SIG announced LC3 as the successor of SBC. LC3 is used in the LE Audio protocol based on the Bluetooth 5.2 Core Specification.

Design

SBC supports mono and stereo streams, certain sampling frequencies up to 48 kHz. The codec does not have bitrate limitations, although manufacturers usually use maximum bit rates of 342 kbit/s for mono and 345 kbit/s for stereo streams. It uses 4 or 8 subbands, an adaptive bit allocation algorithm in combination with an adaptive block PCM quantizer. Frans de Bont has based the SBC audio codec on his earlier work, and – in parts – on the MPEG-1 Audio Layer II standard. In addition, the SBC is based on the algorithms described in the EP-0400755B1. The patent owners wrote that they allow the free usage of SBC in Bluetooth applications with a goal of boosting the use of this technology.

Implementations

The A2DP test specification contains a reference implementation of the encoder and decoder for the SBC codec. A Linux implementation is available at - The Linux Bluetooth Stack.