蓝牙SBC开发笔记(一)
一、SBC简介
- SBC(subband codec)次频带编码,也称作子带编码。其基本原理是把信号的频率分为若干子带,然后对每个子带进行编码,并根据每个子带的重要性及特点分配不同的位数(采样深度)来表示数据。
- 在蓝牙A2DP协议中,SBC是一种音频编码系统,专门为蓝牙AV应用程序设计,以获得中等比特率的高质量音频,具有较低的计算复杂度,是需要默认支持的。
二、SBC编解码过程
2.1、编解码所需的算法参数
- sampling_frequency:采样频率。常用的是16KHz,32KHz,44.1KHz和48KHz
- channel mode:通道模式。可以是单声道,双声道,立体声和联合立体声
- block length:块长度。可以是4,8,12,16
- subbands:子带数量。可以是4或8
- allocation method:分配方式。可以是SNR或Loudness
- bitpool:比特池。范围是2-250。此值越大,编码产生的数据越长
2.2、编解码过程所用的术语
- Analysis Filter
- 其目的是为了把时间序列变换到频域,使用的方法是多相滤波器组。子频段的个数可以是4个或8个,对应不同的多相滤波器组。
- Scale Factors计算
- 每一个子频段的幅值的范围是不同的,取每一个子频