Introduction#
Recently, when using LinkBuds to connect to my computer, I found an SBC-XQ encoder in the audio options. I was curious and decided to look it up. I came across this detailed article on SoundExpert from June 2019, so I decided to translate it into Chinese.
This translation was assisted by ChatGPT and is for learning purposes only. All rights belong to the original author.
Original article: http://soundexpert.org/articles/-/blogs/audio-quality-of-sbc-xq-bluetooth-audio-codec
Main Text#
SBC XQ is not just a new Bluetooth audio codec, it is a lifehack.
The standard SBC is mandatory in all Bluetooth stereo audio devices [1][2]. It can work at any high bitrate, but the Bluetooth documentation recommends using 328 kbit/s (44.1kHz/16bits) in high-quality mode. According to SE ratings, this mode only provides acceptable audio quality. To improve the quality of Bluetooth audio transmission:
- CSR, a multinational semiconductor company, acquired APT Licensing Ltd. and introduced aptX, followed by aptX HD. Later, Qualcomm acquired all these companies and further introduced aptX Low Latency and aptX Adaptive.
- Sony introduced its proprietary Hi-Res LDAC.
- Samsung introduced three new Bluetooth audio codecs: HD/Scalable/UHQ-BT.
- Huawei introduced the HWA LHDC audio codec.
- Apple uses AAC in its products.
- ValdikSS wrote a patch for Android, and Pali Rohár wrote a patch for Linux, which unlocks higher bitrates for SBC.
It turns out that almost all modern Bluetooth wireless headphones, speakers, receivers, etc., support SBC bitrates up to 730 kbit/s out of the box, and this patch (SBC XQ) can help encode Bluetooth audio at the following bitrates in the Android environment:
- BT EDR 2 - 44.1/16bits 452.0 kbit/s, 48/16 492.0 kbit/s
- BT EDR 3 - 44.1/16bits 551.2 kbit/s, 48/16 600.0 kbit/s
These bitrate choices seem to be a reasonable compromise between audio quality, compatibility, and Bluetooth connection stability [3][4].
The results of SBC XQ at 44.1kHz/16bit have been added to our listening tests:
SBC XQ CBR@452.0 (Bluetooth)** - Subband codec for Bluetooth A2DP profile, CBR, 452.0 kbit/s FBR
CODER: SBC Encoder LIB Version 1.5 (Philips)
- usage: sbc_encoder -v -p -r453000 -oout.sbc ref.wav
- SBC XQ default setting for BT EDR2
- 44100 Hz, Dual Channel
- bitpool: 38, bands: 8, blk_len: 16, allocation method: Loudness
DECODER: SBC Decoder LIB Version 1.5 (Philips)
SBC XQ CBR@551.2 (Bluetooth)** - Subband codec for Bluetooth A2DP profile, CBR, 551.2 kbit/s FBR
CODER: SBC Encoder LIB Version 1.5 (Philips)
- usage: sbc_encoder -v -p -r552000 -oout.sbc ref.wav
- SBC XQ default setting for BT EDR3
- 44100 Hz, Dual Channel
- bitpool: 47, bands: 8, blk_len: 16, allocation method: Loudness
DECODER: SBC Decoder LIB Version 1.5 (Philips)
This page provides information on early ratings (currently not accurate). You can participate in SE listening tests for more accurate results on the Encoders 320+ kbit/s page, where there is a brief explanation below.
Measurement of Distortion Factors in SBC XQ under Music Signal#
If the following paragraph seems confusing, please refer to the previous article - Audio quality of Bluetooth aptX and aptX HD
Once again, it should be noted that the evaluation of perceived sound quality through any objective measurement means should be done with great caution. In distortion factor measurements, we have a standard that defines whether the measurement can serve as a basis for such evaluations. This standard is the similarity between the sound characteristics or distortion characteristics of the tested devices. If their distortion characteristics are close enough, then their measurement results can correspond well to the perceived sound quality scores.
To make the results more objective, we will compare the artifact signatures of SBC XQ @ 452.0 and SBC XQ @ 551.2 with SBC @ 201 (low quality), SBC229 (medium quality), SBC @ 328 (high quality), aptX @ 352, aptX HD @ 529, ADPCM IMA @ 354, AAC @ 256. As in the previous article, we will use Pink Floyd's album "The Dark Side of The Moon" as the test signal.
Figure 1 shows how different Bluetooth audio codecs are associated with each other based on their characteristic signatures. The shorter the connection line between two codecs, the more similar their characteristic signatures are. A rank correlation coefficient of 0.1 is crucial for the relationship between distortion factors and subjective ratings.
We can see that SBC and aptX codecs have similar artifact signatures (distance < 0.1), so their distortion factor measurements are indicative of their perceived sound quality.
Figure 2 shows the histograms of distortion factor sequences for the tested codecs, displaying the median and 25/75 percentiles. The median of the distortion factor is an estimate of the average waveform degradation. The shape of the histogram is related to the characteristics/types (artifact features) of waveform degradation.
Based on the median of the distortion factor, we can confidently conclude that the audio quality of SBC-XQ is comparable to aptX HD, and for devices using BT EDR3, SBC XQ has a slight advantage and is difficult to distinguish in blind listening tests. SBC uses a basic acoustic model for encoding, while aptX does not use this model at all, so their perceived audio quality is mainly determined by the bitrate. A comparison of different SBC settings, including SBC XQ, with aptX and aptX HD can be made using the Bluetooth A2DP SBC/aptX online encoder [5].
Currently, the Android branches of LineageOS, Resurrection Remix, and crDroid already include the required patches. The Linux PulseAudio patch from Pali Rohár not only supports SBC XQ but also adds support for aptX, aptX HD, and FastStream codecs [6]. This additional audio quality improvement is completely free, and it is difficult to think of any reason to oppose including this option in all Bluetooth protocol stacks and major Android branches. You can request this feature in your operating system:
- Android: https://issuetracker.google.com/issues/new?component=190923&template=845103
- Linux (PulseAudio): https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Community/
- macOS and iOS: https://www.apple.com/feedback/
- Windows:
- Win10 - Use Feedback app on the Start Menu
- Toshiba Bluetooth Stack - https://www.webcom.toshiba.co.jp/us/voice/
- IVT BlueSoleil (1000Moons) - http://www.bluesoleil.com/life/254.html
- Broadcom WIDCOMM BT Stack - https://www.broadcom.com/company/contact-us/feedback-and-comments and https://community.broadcom.com/ideation/allideas (requires registration)
Translator's note: Initially, LineageOS did support SBC-XQ, but later removed this patch for unknown reasons.
References:#
[1] Bluetooth SIG, Specification of the Bluetooth System, Profiles, Advanced Audio Distribution Profile, v1.3.2, 2019-01-21, https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=457083
[2] Christian Hoene, Mansoor Hyder, "Considering Bluetooth’s Subband Codec (SBC) for Wideband Speech and Audio on the Internet", Technical Report WSI-2009-3, 2009-10, https://pdfs.semanticscholar.org/1f19/561d03bc88b67728375566c95bbf77e730d5.pdf
[3] ValdikSS, "Bluetooth stack modifications to improve audio quality on headphones without AAC, aptX, or LDAC codecs", 2019-06-18, https://habr.com/en/post/456476/
[4] ValdikSS, "Improve Bluetooth audio quality on headphones without aptX or LDAC", since 2018-08-22, https://forum.xda-developers.com/android/software-hacking/improve-bluetooth-audio-quality-t3832615
[5] Bluetooth A2DP SBC/aptX online encoder, https://btcodecs.valdikss.org.ru/sbc-encoder/
[6] Pali Rohár, New API for Bluetooth A2DP codecs, since 2019-01-12, https://patchwork.freedesktop.org/series/55117/