SBC (codec)

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 (A2DP).[1] 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.[2] 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.[1][3] 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.[1]

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.

DesignEdit

SBC supports mono and stereo streams, certain sampling frequencies 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.[1] Frans de Bont has based the SBC audio codec on his earlier work,[4] 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.[5] 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.

VariantsEdit

OverviewEdit

SBC[1][6] SBC profiles[1] FastStream[7] Audio CD
Middle Quality High Quality
main stream back stream (for reference)
misc. Launch May 2003 March 2008[8]
Related patents EP 0400755B1 [5] (expired) US 9398620B1 [9] (expired)
Free implementations BlueZ libsbc PulseAudio, PipeWire patches for PulseAudio[10]
Proprietary implementations multiple hardware implementations hardware implementation in Qualcomm chips
Audio
Encoding
Channels Mono (1)
Joint Stereo (2)

Joint Stereo (2)

Joint Stereo (2)
Mono (1)
 

Stereo (2)
Sampling rate 16 kHz
32 kHz
44.1 kHz
48 kHz 


44.1 kHz
48 kHz 


44.1 kHz
48 kHz 
16 kHz


 


44.1 kHz
 
Bit rate up to 510 kbit/s (@ 44.1 kHz)
up to 507 kbit/s (@ 48 kHz)
229 kbit/s (@ 44.1 kHz)
237 kbit/s (@ 48 kHz)
328 kbit/s (@ 44.1 kHz)
345 kbit/s (@ 48 kHz)
212 kbit/s (@ 48 kHz) 72 kbit/s (@ 16 kHz) 1411 kbit/s (@ 44.1 kHz)
Subbands 4 or 8 8 ?
Bitpool 2 - 86 (@ 44.1 kHz)
2 - 78 (@ 48 kHz)
35 (@ 44.1 kHz)
33 (@ 48 kHz)
53 (@ 44.1 kHz)
51 (@ 48 kHz)
29 32 ?

Middle and High QualityEdit

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.[7]

Higher quality variantsEdit

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.[11] With higher bit rate, audio quality is comparable to aptX HD (529 kbit/s).[12]

FastStreamEdit

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.[7][10]

ImplementationsEdit

The A2DP test specification (V1.0) contains a reference implementation of the encoder and decoder for the SBC codec. A Linux implementation is available at BlueZ - The Linux Bluetooth stack.

See alsoEdit

ReferencesEdit

  1. ^ a b c d e f 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
  2. ^ C. Hoene, F. de Bont, "RTP Payload Format for Bluetooth's SBC audio codec", IETF draft, work in progress, Dec. 2010, https://tools.ietf.org/html/draft-ietf-avt-rtp-sbc-01
  3. ^ Stephen Wray (26 June 2008). "Bluetooth: Sufficient fidelity even for average listeners?". EDN Network. Retrieved 4 January 2012.
  4. ^ F. de Bont, M. Groenewegen and W. Oomen, "A High Quality Audio-Coding System at 128 kb/s", 98th AES Convention, Febr. 25-28, 1995.
  5. ^ a b 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
  6. ^ ValdikSS. "Bluetooth A2DP SBC Codec Bitrate Calculator". ValdikSS. Retrieved 6 April 2021.
  7. ^ a b c ValdikSS (18 June 2019). "Audio over Bluetooth: most detailed information about profiles, codecs, and devices". Habr. Retrieved 6 April 2021.
  8. ^ CSR. "CSR presents handset makers with revolutionary audio processing technology". CSR. Retrieved 9 May 2008.
  9. ^ J.J. Lazzeroni, M.K. Carevich, J.D. Vertz, P.E.H. Hauser, S.J. Kingston, "Simultaneous voice and audio traffic between two devices on a wireless personal-area network", Publication number: US9398620 (B1)
  10. ^ a b Pali Rohár (2 June 2019). "[PATCH v11 07/11] bluetooth: Add A2DP FastStream codec support". pulseaudio-discuss mailing list. Retrieved 6 April 2021.
  11. ^ ValdikSS (6 July 2019). "Bluetooth SBC Dual Channel HD audio mode". Lineage OS. Retrieved 6 April 2021.
  12. ^ Serge Smirnoff (29 June 2019). "Audio quality of SBC XQ Bluetooth audio codec". SoundExpert. Retrieved 6 April 2021.