SBC, or low-complexity subband codec, is an audio
subband codec specified by the
Bluetooth Special Interest Group (SIG) for the
Advanced Audio Distribution Profile
In order to use Bluetooth, a device must be compatible with the subset of Bluetooth ''profiles'' (often called services or functions) necessary to use the desired services. A Bluetooth profile is a specification regarding an aspect of Bluetooth-b ...
(A2DP).
[Bluetooth SIG, Specification of the Bluetooth System, Profiles, Advanced Audio Distribution Profile version 1.3. https://www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=260859&vId=290074] 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 with Bluetooth bandwidth limitations and processing power in mind to obtain a reasonably good audio quality at medium bit rates with low computational complexity.
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, and certain
sampling frequencies
In signal processing, sampling is the reduction of a continuous-time signal to a discrete-time signal. A common example is the conversion of a sound wave to a sequence of "samples".
A sample is a value of the signal at a point in time and/or s ...
up to 48 kHz. Maximum bitrate required to be supported by decoders is 320 kbit/s for mono and 512 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
MPEG-1 Audio Layer II or MPEG-2 Audio Layer II (MP2, sometimes incorrectly called Musicam or MUSICAM) is a lossy audio compression format defined by ISO/IEC 11172-3 alongside MPEG-1 Audio Layer I and MPEG-1 Audio Layer III (MP3). While MP3 is m ...
standard. In addition, the SBC is based on the algorithms described in the EP-0400755B1.
[J.B. Rault, Y.F. Dehery, J.Y. Roudaut, A.A.M. Bruekers, R.N.J. Veldhuis, "Digital transmission system using subband coding of a digital signal", Publication number: EP0400755 (B1), Priority number(s): EP19900201369 19900530; EP19890201408 19890602] 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.
Variants
Overview
Middle and High Quality
A2DP recommends encoders to support Middle Quality and High Quality presets as specified in the above table. As a result, most operating systems are using the High Quality profile as the default or even the only one supported encoding profile.
Higher quality variants
However, A2DP requires decoders to support higher quality streams, up to 512 kbit/s, and there are some experimental encoders that use this feature: for example, SBC XQ, used by
Lineage OS and
PipeWire
PipeWire is a server for handling audio, video streams, and hardware on Linux. It was created by Wim Taymans at Red Hat. It handles multimedia routing and pipeline processing.
History
In 2015, Taymans started work on PipeWire. It was based on ...
. With higher bit rate, audio quality is comparable to
aptX HD (529 kbit/s).
FastStream
While A2DP officially supports only one-way audio streams,
CSR has found a way to send a voice-back stream opposite to the main stereo stream, making it possible to use A2DP in headsets with microphones. It was implemented in the FastStream codec, which is the SBC codec with set parameters and the voice-back stream added.
Implementations
The A2DP test specification (V1.0) contains a
reference implementation
In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation o ...
of the encoder and decoder for the SBC codec. A Linux implementation is available at
BlueZ
A Bluetooth stack is software that is an implementation of the Bluetooth protocol stack.
Bluetooth stacks can be roughly divided into two distinct categories:
# ''General-purpose'' implementations that are written with emphasis on feature-richn ...
- The Linux Bluetooth stack.
See also
*
Audio codec
An audio codec is a device or computer program capable of encoding or decoding a digital data stream (a codec) that encodes or decodes audio. In software, an audio codec is a computer program implementing an algorithm that compresses and decompres ...
*
aptX
aptX (''apt'' stands for ''audio processing technology'') is a family of proprietary audio codec compression algorithms owned by Qualcomm, with a heavy emphasis on wireless audio applications.
History
The original aptX algorithm was developed ...
*
Bluetooth profile
In order to use Bluetooth, a device must be compatible with the subset of Bluetooth ''profiles'' (often called services or functions) necessary to use the desired services. A Bluetooth profile is a specification regarding an aspect of Bluetooth-b ...
*
Adaptive differential pulse-code modulation
Adaptive differential pulse-code modulation (ADPCM) is a variant of differential pulse-code modulation (DPCM) that varies the size of the quantization step, to allow further reduction of the required data bandwidth for a given signal-to-noise rati ...
*
List of codecs
References
{{reflist
Audio codecs
Bluetooth