A2DP全名是(Advanced Audio Distribution Profile) 蓝牙音频传输模型协议提供通过蓝牙连接传输音频流的能力,如手机播放音乐,蓝牙耳机通过蓝牙连接听歌曲。
mp3和flac音频编码都在PCM基于音频编码目的是减少文件体积。然后,在音频播放中 (playback) 时间,需要把mp3,flac编码格式的数据还原为PCM编码格式的数据,这个过程。然后通过数字模拟转换(DAC)变成模拟信号,最后通过放大电路驱动喇叭,播放声音。
A2DP主要有SBC、AAC、AptX、LDAC、LHDC下面分别介绍这些解码方法。
SBC全称Subband Codec,。,复杂度低,音频质量可以在中等比特率下实现。
1)SBC编码的基本原理是将信号的频率分为几个子带,然后编码每个子带,并根据每个子带的重要性和特性分配不同的位数(采样深度)来表示数据。 例如,在音频编码中,由于人耳对不同频率的敏感性不同,可以在对人耳敏感的子带(较大的采样深度)和对人耳不敏感的子带(较小的采样深度)中使用粗糙的量化,从而在不降低主观听觉效果的情况下达到更好的压缩效果。 例如,离散余弦的转换(DCT)语音和图像压缩是处理数字信号的一种方法。声音通过离散余弦变换(DCT)之后,其系数更多地集中在较低序号部分。变换后的高序号部分编码非常简单,可以用很小的采样深度编码。
? 上图为变换前的信号,下图为DCT变更后的序号适用于子带编码。 ?
2)SBC编码过程
? SBC编码的输入是PCM数据,即采样后的时间序列,输出为二进制流。分析后,将时间序列转换为频域信号,然后对频域信号进行分段编码。指定每个子频段scalfactor以及采样深度,以适应子频段的数据PCM编码(Adaptive Pulse Code Modulation)。然后打包各子频段编码的数据作为一帧数据,以二进制流的形式输出。
(1)Analysis Filter 其目的是将时间序列转换为频域,采用多相滤波器组。子频段的数量可以是4个或8个,对应于不同的多相滤波器组。 (2)Scale Factors计算 每个子频段的幅值范围不同,以每个子频段幅值的最大值为子频段scale factor。例如,子频段1的幅值分布在(0, 子频段2的幅值分布在128区间(0, 32)区间,然后自定子频段1scale factor为128, 子频段2的scale factor为32。 (3)Bit Allocation 每个子频段需要编码多个振幅值,每个振幅值需要用多个比特数表示。同一子频段中每个振幅值的比特数相同,不同子频段振幅值分布的比特数不同。每个子频段分配振幅值的过程称为bit allocation。 (4)APCM 根据每个子频段scale factor以及每个振幅值所需的比特数,编码每个子频段的过程。得到每个子频段的量化结果,即Quantized Subband。 (5)BItStream packing 结合各子频段编码后的结果,加上校验码、帧头信息等过程。
3)关于SBC编码的一些性质 SBC由于无线传输带宽有限,有损编码,SBC编码每个子频段时,进行损坏处理,以达到数据压缩的目的。SBC编解码后,PCM数据发生了变化。所以蓝牙设备的音质不是很好。 SBC支持的采样率包括44.1kHz、48kHz、32kHz、16kHz。SBC支持单声道(MONO CHANNEL)、双声道(DUAL CHANNEL)、立体声(stereo)、联合立体声(Joint Stereo)。
AAC全称Advanced Audio Coding,,基于1997年的诞生MPEG-2技术。2000年在MPEG-4基于更新。
作为mp3的后继者,AAC相较于MP3的改进包括:采样率选择更多(8 KHz至96 KHz,MP3为16 KHz至48 KHz);声道数上限较高(48,MP3在MPEG-1模式下最多双声道,MPEG-2模式下5.1声道);任意比特率和可变帧长。
AAC它是一种高压缩比的音频编码,主要采用两种策略:放弃与感知无关的信号组件,去除编码后信号的冗余部分。实际上,在128Kbps比特率低于,AAC杜比实验室认为编码效果最好:AAC格式在96Kbps比特率超过128Kbps的MP3格式;128Kbps,AAC格式音质明显好于MP3。
AAC256Kbps。但有一点,即使用了AAC蓝牙不能直接传输音频源的原始数据流,而是先驱AAC解码成PCM,然后编码成蓝牙支持AAC编码再传输。应用上,AAC编码最大的支持者是,iPhone、iPad和AirPods支持所有设备AAC,iTunes软件中的许多音乐也是基于AAC存储编码格式。
aptX原名叫apt-X,CSR将其收购改名为2010年aptX,而CSR于2015年被收购。
aptX基于自适应差异脉码调制的设计(ADPCM)心理声学或掩蔽效应技术不使用原理(mp3,SBC,AAC中使用)。,对比如下:
aptX四个版本各有所长。aptX是最基本的版本。aptX Low Latency简称aptX LL,特点是低延迟。事实上,人耳能感觉到的延迟极限是70ms,而达到40ms这意味着我们不会感到延迟。aptX HD以高清音频为主,传输速率大幅提高,信噪比高,失真少。而aptX Adaptive,就像它的名字一样,传输比特率和延迟可以根据需要自动调整。aptX Adaptive向下兼容aptX和aptX HD。
虽然使用aptX技术需要高通的专利授权和费用,但在高通的大力推广下,aptX在安卓手机和部分蓝牙耳机上都得到了支持。截至2019年5月,已有70多亿设备支持aptX,可以在http://www.aptx.com/product-listing查询所有支持aptX的设备。
LDAC是索尼开发的一种音频编码,实现了最高比特率通过蓝牙传输 24bit/96kHz 高分辨率音频(Hi-Res Audio)。高传输码率使高分析度的音频文件不会过度压缩,保证音质。
&nsp; 如下是来自索尼官网 http://www.sony.net /Products /LDAC的对比图,可以看到,Hi-Res音频通过LDAC编码传输,还可以较好的还原高音质,SBC则较差。
其实在上两幅对比图中,索尼有夸大LDAC技术之嫌,图片的右下角都标注了 "仅供展示使用"。图一,对于4.5Mbps的Hi-Res音频,要通过最高990Kbps的带宽传输,压缩率需要达到1:4.5,而目前最好的无损压缩率也只有1:2。实际上,,即使是最后在耳机端还原成了96KHz/24bit,4.5Mbps的音频,参数上与发送端一致,但是其内容也明显不如原来的好了。所以说,
LDAC提升传输速率的原理是增加了蓝牙通信的信道,这对蓝牙天线的要求也提高了。实际上,在信号较差,或者是受到干扰的时候,LDAC还会以660Kbps或330Kbps的比特率通信,保证连接性。
2017年,从安卓8.0开始, LDAC加入了安卓开放源代码项目,以后安卓用户也可以用上原本索尼专属的技术了,不过使用LADC解码器(耳机侧)还需要索尼的专利授权。
LHDC全称Low-Latency Hi-Definition Audio Codec,是一种高音质蓝牙编解码方案,由台湾厂商 盛微先进科技开发。
LHDC支持通过速度最高达的蓝牙连接传输 24bit/96kHz 的串流音频(也称高解析度音频)。与LDAC会先把原始音频进行升/降频到 24bit/96kHz不同,LHDC则可依照原始取样率输出,减少SRC过程的延迟。2019年9月,LHDC通过了JRS的Hi-Res Audio Wireless标准认证。
LHDC根据信号情况支持400/560/900 kbps的比特率。此外还有低延迟音频编解码器(LLAC)版本,也称为LHDC LL,端到端延迟约为30毫秒。
在应用上,从安卓10开始,LDAC加入了安卓开放源代码项目。
总的来说,从音质上,
SBC是蓝牙唯一强制支持的编码,编码方案较为简单,但是比特率较低,压缩率较高,损失了部分细节,音质一般。传输码率是328Kbps,44.1KHz。SBC的传输码率其实和高品质MP3是差不多的,但是因为蓝牙传输中间设备需要转码(压缩),所以同样规格的MP3文件在无线环境下要比有线环境损失更多细节,因此听感也就不如有线传输。早期人们对于蓝牙音频质量普遍不看好,其主要原因也是因为SBC技术自身的瓶颈所导致的
AAC的码率与SBC相当,但是得益于更好的编码技术,即使在同样的低码率下,AAC的听感也好于SBC和MP3。
Aptx的传输码率比之前两者略有所提升,同时更为高效的编码使得更多的音频细节能够得以保留,听感好于SBC以及AAC。aptX HD已经属于高清音频编码了。
LHDC和LDAC类似,都宣称可以传输高于CD音质的音频,传输比特率达900Kbps,是目前音质最好的蓝牙音频编码。
现在用得最多的就是aac,其次就是aptx,LDAC很少,LHDC就更少了。音质却是反着来的,LHDC最强,LDAC第二,aptx第三,aac第四,但是都比sbc要好
HFP(Hands-freeProfile)是免提配置文件,让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否 支持。
蓝牙通话过程的语音数据,这种音频对时效性有高要求,一般通过特殊的SCO或eSCO链路传输数据。编码方式有:CVSD、mSBC。最基础的编码方式为CVSD,免提蓝牙设备都需支持该编码方式,支持宽带语音的设备可选mSBC编码数据。
目前支持两种不同的采样率,分别是CVSD和mSBC,并且在SCO(Synochronous Connection Oriented,同步面向连接链路链路)和eSCO(Extended Synchronous Connection-Oriented )链路下也存在差异。SCO 和eSCO 是主设备对从设备的点对点的逻辑传输。同步逻辑传输用在对时间要求比较严格的场景中,比如音频和同步数据的传输。主设备通过保留的时隙维护逻辑传输中的同步。在eSCO逻辑传输中会利用保留的时隙构成一个重传窗口,eSCO有重传机制。其中CVSD是强制支持的,mSBC是可选项;但对于国内来讲,通话的语音采样均为8KHz,因此手机和蓝牙耳机之间即便采用16KHz的mSBC采样,音频也不会有太大改善。但是使用16KHz可以提高语音识别的正确率。
CVSD(Continuous Variable Slope Delta Modulation 连续可变斜率增量调制):该编码方式的数据传输使用 SCO 或 eSCO 链路。链路的选取是根据本端 Controller是否支持 Enhanced Setup Synchronous Connection指令来决定的,如果支持该命令则创建语音音频链路时使用 eSCO,否则创建 SCO 链路。
CVSD采用8KHz采样,分别为SCO链路下和eSCO链路下不同的配置情况。
这个链接可以看一下,可以深入一些了解CVSD:连续可变斜率增量调制(CVSD)浅析_NiceBT的博客-CSDN博客_cvsd编码
改良的子带编码技术(modified sub-bandcoding,mSBC):该编码方式的数据传输只能使用 eSCO 链路。
mSBC采用16KHz采样,使用mSBC需要在eSCO链路上传输。
参考资料:
蓝牙音频编码简介 - SBC、AAC、AptX、LDAC、LHDC_danteliujie的博客-CSDN博客_蓝牙音频编码
蓝牙协议中的SBC编码-汗血宝马
sbc,aac,aptx,ldac蓝牙编码简单介绍。_王俊洁、�的博客-CSDN博客_sbc编码
蓝牙耳机中LHDC、SBC、AAC、AptX、LDAC都是什么?
蓝牙电话之HFP-电话音频_坏小子VP的博客-CSDN博客_cvsd msbc
蓝牙基带 音频_Wireless_Link的博客-CSDN博客