2、音频编解码器基础:SBC、AAC、LDAC、aptX 编解码器原理与对比

做蓝牙音频驱动这些年,我接触最多的就是编解码器。说白了,它就是决定你耳机音质好坏的核心。很多刚入行的朋友问我:「为什么同样的耳机,连不同的手机声音差那么多?」答案往往就在编解码器上。

今天咱们就把主流的四种编解码器——SBC、AAC、LDAC、aptX 挨个捋一遍。我会结合自己踩过的坑,给你讲讲它们到底是怎么回事。

2.1 SBC:蓝牙音频的「保底」方案

SBC(Subband Coding)是蓝牙 A2DP 协议强制要求的基础编解码器。什么意思?就是所有支持蓝牙音频的设备,都必须支持它。你可以把它理解成「最后的退路」。

原理上,SBC 把音频信号分成 4 个或 8 个子带,然后对每个子带独立量化编码。它用的是自适应比特分配算法——说白了就是根据信号复杂度动态调整每个子带的比特数。

我记得有一次调试一个兼容性问题,某款老手机死活连不上新耳机。查了半天,发现是耳机端的 SBC 实现有个小 bug,在 8 子带模式下比特分配算错了。嗯,这种底层问题最头疼。

SBC 关键参数:

  • 比特率:通常 328 kbps(实际范围 192-345 kbps)
  • 采样率:44.1 kHz 或 48 kHz
  • 子带数:4 或 8
  • 块数:4、8、12、16

说实话,SBC 的音质上限不高。328 kbps 的码率对于 16-bit/44.1kHz 的 CD 音质来说,压缩比大概在 4:1 左右。你想想看,这么高的压缩比,细节丢失是必然的。我个人的听感是:SBC 在高频部分有明显的「毛刺感」,低频也偏散。

我的建议:做产品兼容性测试时,一定要把 SBC 作为必测项。因为它是所有设备的「最大公约数」。我曾经遇到过一款耳机,SBC 模式下有 200ms 的延迟,用户反馈「音画不同步」——最后发现是编码缓冲区设置太大了。

2.2 AAC:苹果生态的「宠儿」

AAC(Advanced Audio Coding)大家应该不陌生。iPhone 用户应该注意到了,连蓝牙耳机时默认就是 AAC。为什么?因为苹果在 AAC 上做了大量优化。

原理上,AAC 比 SBC 先进不少。它用了改进的 MDCT(改进型离散余弦变换),频率分辨率更高。简单说就是:同样的码率下,AAC 能保留更多细节。

我实际测试过,AAC 在 256 kbps 下的主观听感,基本能打平 SBC 在 328 kbps 下的表现。这意味着什么?同样的带宽,AAC 能传更高质量的声音。

但这里有个坑——AAC 的编码复杂度比 SBC 高很多。手机端编码还好,但耳机端解码也需要一定的算力。我遇到过一款低端芯片,解码 AAC 时 CPU 占用率飙到 60%,直接导致其他任务卡顿。

注意:AAC 在 Android 设备上的表现参差不齐。因为 Android 的 AAC 编码器实现来自不同厂商,质量差异很大。我建议你在 Android 端做 AAC 测试时,至少覆盖高通、联发科、三星三种平台。

2.3 LDAC:索尼的「高码率」王牌

LDAC 是索尼搞出来的,最大特点就是码率高——最高能到 990 kbps。什么概念?接近无损了。对于 24-bit/96kHz 的高解析度音频,LDAC 基本能完整传输。

原理上,LDAC 用了更高效的编码算法和更大的编码缓冲区。它有三种模式:

模式 码率 适用场景
质量优先 990 kbps 听无损音乐
标准 660 kbps 日常使用
连接优先 330 kbps 信号差时

我个人最喜欢 LDAC 的质量优先模式。但说实话,这个模式对射频环境要求极高。我曾经在办公室测试,周围有 20 多个蓝牙设备,LDAC 990 kbps 模式下频繁断连,最后只能降到 660 kbps。

为什么会这样?因为蓝牙的带宽是共享的。990 kbps 几乎占满了 A2DP 的可用带宽,稍微有点干扰就扛不住了。嗯,这是 LDAC 最大的痛点。

避坑指南:做 LDAC 产品时,一定要做射频共存测试。我曾经有一款耳机,在 WiFi 2.4G 开启时 LDAC 直接罢工——后来发现是天线隔离度不够,重新设计了天线布局才解决。

2.4 aptX:高通的「低延迟」利器

aptX 是高通(原 CSR)的技术。它最大的卖点不是码率高,而是延迟低。标准 aptX 的延迟能做到 40ms 左右,而 aptX Low Latency 更是能压到 32ms 以下。

原理上,aptX 用了 ADPCM(自适应差分脉冲编码调制)技术。它不直接编码音频样本,而是编码样本之间的差值。这样做的优点是计算量小、延迟低。

aptX 家族有好几个版本:

  • aptX:基础版,352 kbps,16-bit/44.1kHz
  • aptX HD:高音质版,576 kbps,24-bit/48kHz
  • aptX Adaptive:自适应版,动态调整码率(279-420 kbps)
  • aptX Lossless:无损版,最高 1.2 Mbps(需要骁龙 Sound 平台)

我做过一个游戏耳机的项目,客户要求延迟低于 50ms。最后选了 aptX Low Latency,实测延迟 35ms,用户反馈「基本感觉不到延迟」。相比之下,SBC 的延迟通常在 150-200ms,差距很明显。

我的经验:如果你做的是游戏耳机或直播耳机,aptX 是首选。但要注意,aptX 是高通专利技术,需要交授权费。有些厂商为了省钱,只用 SBC 和 AAC,结果延迟问题被用户骂惨了。

2.5 四大编解码器横向对比

说了这么多,咱们直接上对比表,一目了然:

特性 SBC AAC LDAC aptX
最大码率 345 kbps 320 kbps 990 kbps 352 kbps(基础)
采样率 48 kHz 48 kHz 96 kHz 48 kHz
位深 16-bit 16-bit 24-bit 16/24-bit
延迟 150-200ms 100-150ms 100-200ms 30-50ms
编码复杂度 中高
授权费用 免费 需授权 需授权 需授权
音质(主观) ★★☆☆☆ ★★★☆☆ ★★★★★ ★★★★☆

你可能会问:「那我该选哪个?」我的建议是:

  • 追求兼容性:SBC 保底,AAC 优先(尤其 iOS 端)
  • 追求音质:LDAC 990 kbps 模式(前提是射频环境好)
  • 追求低延迟:aptX 系列(游戏、直播场景首选)
  • 追求平衡:aptX Adaptive 或 LDAC 660 kbps 模式

最后提醒一句:编解码器只是音质链路的一环。我曾经见过一款产品,用了 LDAC 990 kbps,但 DAC 芯片用的是低端货,最终听感还不如 SBC + 好 DAC 的组合。所以,别只看编解码器,整个音频链路都要优化。

好了,这一章的内容就到这里。下一章咱们聊聊蓝牙音频的时序问题——那个才是真正让驱动工程师头疼的东西。