SBC-XQ 蓝牙编码的音频质量

前言

前段时间在用 LinkBuds 连接电脑的时候发现音频选项中有一个 SBC-XQ 编码器，有点好奇就去查了一下，只翻到这篇 19 年 6 月发布在 SoundExpert 的文章，写的还挺详细的，遂将其翻译成中文。

该译文借助了 ChatGPT 进行辅助翻译，仅供学习，版权归原作者所有（

原文地址：http://soundexpert.org/articles/-/blogs/audio-quality-of-sbc-xq-bluetooth-audio-codec

正文

SBC XQ 不仅仅是一种新的蓝牙音频编解码器，它更是一种 Lifehack 。

标准的 SBC 被强制性地整合进所有的蓝牙立体声音频设备中 [1][2]。它可以在任意高的比特率下工作，但是 Bluetooth 的文档推荐在高质量模式下使用 328 kbit/s（44.1kHz/16bits）。根据 SE 的评级，这种模式仅仅提供了可接受的音频质量，为了提高蓝牙音频传输的质量：

CSR 公司，一家跨国半导体公司，收购了 APT Licensing Ltd. 并推出了 aptX ，接着推出了 aptX HD，然后是高通收购了所有这些公司，并进一步推出了 aptX Low Lattency 和 aptX Adaptive ；

Sony 推出了其专有的 Hi-Res LDAC；

三星推出了三种新的蓝牙音频编解码器 HD/Scalable/UHQ-BT ；

华为推出了 HWA LHDC 音频编解码器；

苹果在其产品中使用 AAC；

ValdikSS 为 Android 写了补丁，Pali Rohár 为 Linux 写了补丁，这些补丁可以解锁 SBC 的更高比特率。

事实证明，几乎所有现代的蓝牙无线耳机、扬声器、接收器... 出厂时支持的 SBC 比特率高达 730 kbit/s，而这个补丁（SBC XQ）则可以帮助在 Android 环境下对蓝牙音频进行如下比特率的编码：

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

这些比特率的选择看起来像是在音频质量、兼容性与蓝牙连接稳定性之间做了一个合理的妥协 [3][4]。

SBC XQ 在 44.1kHz/16bit 下的结果已经添加到了我们的听测中：

Copy
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)

此页面提供了早期评分（目前不够准确）的信息，您可以在 Encoders 320+ kbit/s 页面下方参加 SE 听觉测试以获得更准确的结果，在该页面下方有一份简短的说明。

SBC XQ 在音乐信号下的失真因子测量

如果下面的文段看起来有点混乱，请参考之前的文章 - Audio quality of Bluetooth aptX and aptX HD

再次强调，通过任何客观测量手段进行感知声音质量的评估都应该非常谨慎。在失真因子测量中，我们有一个标准，用于定义该测量是否可以作为此类评估的依据。这个标准是被测试设备的声音特征或者失真特征之间的相似性，如果它们的失真特征足够接近，那么它们的测量结果就能很好地与感知声音质量得分相对应。

为了更客观的判断结果，我们将比较 SBC XQ @ 452.0 和 SBC XQ @ 551.2 的伪影签名与 SBC @ 201（低质量）、SBC229（中等质量）、SBC @ 328（高质量）、aptX @ 352、aptX HD @ 529、ADPCM IMA @ 354、AAC @ 256。就像在之前的文章中一样，我们将使用 Pink Floyd 的专辑《The Dark Side of The Moon》作为测试信号。

图 1 显示了不同的蓝牙音频编解码器如何根据其特征标识相互关联。两个编解码器之间的连接线越短，它们的特征标识就越相似。秩相关系数 0.1 对于失真因子与主观评分之间的关系至关重要。

我们可以看到，SBC 和 aptX 具有类似的伪影特征（差距 < 0.1），因此它们的失真因子测量值可以指示它们的感知声音质量（？）。

实在是不知道这怎么翻译了，原句为：We can see that SBC and aptX codecs have similar artifact signatures (distance<0.1), so their df-measurements are indicative of their perceived sound quality. 如果您有更好的翻译，请在下面留言，谢谢。

图 2 为测试编解码器的失真因子序列的直方图，其显示了中位数与 25/75 百分位数。失真因子的中位数是平均波形退化的估计值。直方图的形状与波形退化的特征 / 类型（伪影特征）有关。

从失真因子的中位数来看，我们可以有把握地得出结论：SBC-XQ 的音频质量与 aptX HD 相当，而对于采用了 BT EDR3 的设备，SBC XQ 略胜一筹，在盲听测试中很难区分它们。 SBC 使用基本的声学模型进行编码，而 aptX 根本不使用该模型，因此它们的感知音频质量主要由比特率决定。可以借助 Bluetooth A2DP SBC/aptX 在线编码器对比不同 SBC 设置，包括 SBC XQ，与 aptX 和 aptX HD 进行听觉比较 [5]。

目前，LineageOS、Resurrection Remix 和 crDroid 的 Android 分支已经包含了所需的补丁。来自 Pali Rohár 的 Linux PulseAudio 补丁除了支持 SBC XQ，还添加了对 aptX、aptX HD 和 FastStream 编解码器的支持 [6]。这种额外的音频质量提升是完全免费的，很难想出会有任何反对将此选项包含在所有蓝牙协议栈和主要 Android 分支中的理由。您可以在您的操作系统中请求此功能：

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)

译注：LineageOS 起初的确有 SBC-XQ 的支持，不过后面又删除了这一补丁，原因未知。

参考文献：

[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/