蓝牙A2DP协议概述
A2DP(Advanced Audio Distribution Profile)是蓝牙高音质音频传输协议,用
于传输单声道,双声道音乐(一般在 A2DP 中用于 stereo 双声道),典型应用为
蓝牙耳机。A2DP 不包括远程控制的功能,远程控制的功能参考协议 AVRCP
A2DP基于AVDTP协议
那么在 A2DP 协议中有以下Codec Type:
SBC MPEG-1,2 Audio MPEG-2,4 AAC ATRAC family
SBC codec
SBC 是蓝牙强制规定支持的协议,其中 Codec Specific Infomation Elements
定义如下:
Sampling Frequency:这部分是采样频率,Source 端强制要求 44.1KHz,48KHz支持一种,Sink 要求 44.1KHz,48Khz 都支持
Channel Mode:通道数,Sink 要求全支持,而 Source 只强制要求支持 Mono,其他可选
Block Length:块长度, 4 8 12 16块一帧
SBC 的块长度参数是音质、延迟和抗丢包能力之间的权衡点。长块(12-16)提供更高音质,适合静态环境下的音乐播放;短块(4-8)降低延迟和丢包影响,适合语音和实时场景。
Subbands
SBC 的子带数是平衡音质与效率的关键参数:
8 子带提供更高频率分辨率,适合音乐和高保真内容,但增加计算量和带宽需求。
4 子带适合语音和低功耗场景,牺牲部分高频细节换取更低延迟和资源消耗。
实际应用中,需结合块长度、比特分配模式等参数综合优化,以适应不同场景的需求。例如,音乐播放器可默认使用 8 子带 + 16 块配置,而视频通话应用则应选择 4 子带 + 8 块以减少延迟。
Allocation Method
SBC 的分配方法是优化蓝牙音频主观听感的关键参数:
Loudness 分配 更符合人耳感知特性,适合语音和流行音乐,尤其是需要突出人声的场景。
SNR 分配 更适合高动态范围的音乐和低码率场景,确保关键信号不被失真。
实际应用中,建议优先使用 Loudness 分配,除非遇到以下情况:
音频内容动态范围极大(如古典音乐)。
蓝牙带宽严重受限(如同时连接多个设备)。
设备计算资源有限(如低功耗耳机)。
Minimum Bitpool Value:
Maximum Bitpool Value:
以下为不同的 bitpool 的码率
A2DP media 封包格式为:
如果SBC帧被分片,则bitSet为1,否则设为0。
S bit - SBC帧分片的起始报文为1,否则为0。
L位- SBC分片帧的最后一个报文设为1,否则设为0
rfa -定义见1.3.2.1。
帧数(4位)-如果F位设置为0。该字段表示该报文中包含的帧数。如果F位设置为1,该字段表示剩余分片的数量,包括当前分片。因此,最后一个计数器值应为1。例如,如果有三个片段,那么计数器的值分别为3、2和1。该字段用4位UiMsbf表示。