所有配置基于个人工程经验整理。
搞蓝牙音箱开发的朋友可能有这样的体会:明明喇叭选得不错、箱体也调过了,但用户一听还是觉得"闷"、"不够通透"。问题往往不在硬件,而是蓝牙音频传输环节的编码格式。AAC作为一种更高效的编码,在同等码率下音质明显优于SBC,也是苹果设备的主要蓝牙编码。
本文将手把手指导如何在JL杰理AC696N开发板 上开启AAC支持,并介绍SBC码率调整的进阶技巧,解释如何在杰理蓝牙音频系列芯片开发 中实现更佳的音质表现。
一、AAC vs SBC
| 编码 | 特点 |
|---|---|
| SBC | 蓝牙音频的"保底"编码,所有设备都支持,通用性好,但压缩效率偏低,音质和延时表现一般 |
| AAC | 效率更高的进阶编码,苹果生态主流格式,相同码率下保留更多细节,音质通常优于SBC |
在实际体验中,AAC的音质会稍优于SBC,尤其在连接苹果设备时,苹果对AAC的适配优化后延迟表现也更好。AC696N系列芯片支持BT音频的SBC、AAC音频解码,为开发者提供了编码层面的优化空间。如果期望音质进一步提升,AAC开启后对扬声器、DSP调试的配合也十分关键。
二、在AC696N上开启AAC支持
在音箱SDK中,开启AAC需要做两步配置:
第一步:板级配置头文件
打开板级配置文件,找到对应项目的头文件,通常在apps\soundbox\board\<your_board>\board_ac696x_demo_cfg.h路径中。在其中添加或修改以下宏定义:
#define TCFG_BT_SUPPORT_AAC ENABLE_THIS_MOUDLE
这一步是通知蓝牙协议栈,设备在SDP(服务发现协议)协商阶段向手机上报支持AAC编码格式。需要注意的是,AC696N SDK 1.5.0及以上版本才支持AAC,开发前请确认SDK版本。
第二步:媒体库配置
打开lib_media_config.c文件,确保AAC解码器相关的宏和配置已经打开。这个文件控制着各种媒体格式的解码能力,AAC相关的选项如果没有开启,即使蓝牙协商成功也无法正常解码播放。
三、进阶技巧:SBC码率调整
在某些场景下,受限于设备兼容性或功耗考虑,仍然需要使用SBC编码。这时可以通过调整SBC的Bitpool参数来优化音质:
Bitpool是SBC编码器中一个关键参数,它决定了编码器每块可以使用的最大比特数,直接影响了最终输出的码率大小。
一个典型的对应关系参考如下:
- 低质量:Bitpool值较小,码率约229kbps,连接更稳定
- 高质量:Bitpool值较大,码率可达345kbps,音质提升明显
不同的SDK版本,修改Bitpool的接口可能会略有不同。可以通过在协议栈相关文件中模糊搜索"bitpool"来定位具体的配置入口进行自定义设置。
具体的Bitpool数值和码率的运算可以使用如下网站的工具:
Bluetooth A2DP SBC Bitrate Calculator(https://btcodecs.valdikss.org.ru/sbc-bitrate-calculator/)
四、一点小总结
总的来说,追求更好音质的开发者可以优先考虑开启AAC。在音箱喇叭、箱体等硬件调试配合下,开启AAC能充分发挥硬件潜力,显著改善蓝牙音频传输链路上的音质,同时给后续的DSP音效调试留出更多空间。对于仍在评估方案的开发者,手头没有合适测试环境或遇到瓶颈的话,拿一块JL杰理AC696N开发板 配合杰理AC6965E开发TWS音箱方案,基本就够把这条链路走通了。
关键词:JL杰理AC696N,AAC,SBC,蓝牙音质,编码格式,Bitpool