热度 15
2009-12-7 02:35
8480 次阅读|
3 个评论
无线你的音乐:蓝牙立体声A2DP的音质测试 音乐 虽然美妙,但是有线不爽。M8的体积和重量都不可能像现在袖珍的 MP3 播放 器一样方便携带。最近给M8配了个iTech R35,打 电话 ,听音乐两相宜。夹领式,可更换普通3.5mm耳塞的设计保证了最大的自由度。在使用中发现了一些 问题 ,查了很多资料,但是有些问题并没有人研究过。最后做了很多测试,终于明确了一些问题,于是有了这篇文章。 ———————————————————————— 科普前言:什么是A2DP 就个人概括如下:一开始 蓝牙 耳机 是为了电话的通话而生的,在蓝牙1.0时代,蓝牙传输的速率很慢,蓝牙耳机的音质也定的比较低:8K采样,8bit量化。这个参数用来听说话也就是刚好,用来放音乐已经不是“惨不忍睹”所能形容。当蓝牙步入1.2,甚至2.0时代,传输速率增高了,人们对于音质的要求也高了,这时候就有了A2DP也就是蓝牙立体声协议:44.1/48K采样,16位量化,仅就参数而言,已经完全达到了“高保真”的目的。(当然实际上差强人意) —— A2DP全名是Advanced Audio Distribution Profile 蓝牙音频传输模型协定! A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的 高清 晰度。有A2DP的耳机就是蓝牙立体声耳机。声音能达到44.1kHz,一般的耳机只能达到8kHz。如果 手机 支持蓝牙,只要装载A2DP协议,就能使用A2DP耳机了。 —— A2DP协议可以运行于蓝牙1.2,2.0版本上。我的R35是新版的,算是支持2.0(没有发现从什么地方可以检测出来版本,网上传说如此) 因为非压缩的音频 信号 数据量太大,显然不可能直接传送给耳塞,于是就要进行某种方式的编码。A2DP协议下最基本的音频编码方式是SBC(Sub-Band Codec),当然也可以支持MP3,AAC编码,不过采用这两种编码的A2DP耳机现在就像大熊猫一样稀少。作为最基本的SBC编码方式,也采用了和MP3相类似的频域变换,削减人耳不敏感频率来达到压缩体积的目的。 但是SBC编码效率远逊于MP3.在低码率下的效果差异非常明显。 —— 经过测试,手边的新版R35只支持SBC编码方式的播放,于是以下测试均基于SBC。 ———————————————————————————————— 本次测试的的由来在于在用M8接上蓝牙听音乐的时候,虽然连接过程很顺利,AVRCP 功能 也运作完美,但是听起来总有点类似于破音的不好精确描述的感觉。处于对自己耳朵的不自信,架设了一个测试平台对于蓝牙播放的效果做了一个客观测试。这个测试又衍生出来一些问题,对于这些问题又做了测试。对于蓝牙A2DP的看法也在测试中多次转变,最终才真正对蓝牙A2DP有了一点点了解,也就是这篇文章。 —— AVRCP全名是Audio Video Remote Cortrol Profile音频/ 视频 远程控制配置 文件 。AVRCP 设计用于提供控制 TV、Hi-fi 设备等的标准接口。此配置文件用于许可单个远程控制设备(或其它设备)控制所有用户可以接入的 A/V 设备。AVRCP 定义了如何控制流媒体的特征。包括暂停、停止、启动重放、音量控制及其它类型的远程控制操作 ———————————————————————————————— 首先一个测试就是针对A2DP的播放质量的。使用了2台手机,M8和nokia的5610XM。分别使用蓝牙播放和直接的耳机播放来测试。手机连接R35的测试中使用R35接3.5转双莲花头接入USB声卡录音。 测试声卡使用创新的外置USB声卡的双莲花头line in。(从线路测试上可以看出来这个line in的录音品质还是不错的) 电脑 声卡的输出用来监听USB声卡的line-in,方便监控RMAA测试进度。后面进行电脑蓝牙音乐播放的时候还有蓝牙的虚拟声卡(也就是电脑上有3出5进的音频通道——USB声卡有3对独立输入通道,mic,line,SPDIF)。另外,5610XM的输出时2.5mm的,使用了原配的线控兼转换头转成3.5mm再接USB声卡。 RMAA 软件 测试结果如下: ———————————————————————————————— 分别是频率响应测试。IMD测试和THD(谐波失真)测试。 白色线就是M8使用蓝牙播放的测试结果,M代表的是M8使用耳机输出的测试结果。N表示的是nokia5610XM使用蓝牙输出播放的实验结果。NL表示nokia使用耳机输出的测试结果。 —— 从频率响应和IMD测试中可以明显发现以下事实: 1:M8的耳机输出质量是很不错的,频率响应更宽广(不过信噪比稍低一些) 2:M8的蓝牙编码输出存在一定问题。不管是形状奇怪的频响曲线(我重做过几次,确定不是测试本身的问题)还是IMD THD测试里面都证明了M8蓝牙播放音质不仅远远不如线路输出,而且相比5610XM也有差距。(两机均使用内置播放器)应属软件问题,期待在下个 固件 中修正。 3:不管是M8还是5610的蓝牙输出,都无法真正满足“稍高”的音乐欣赏要求:在3-5KHZ的地方就开始下降(好在-3dB的地方比较接近20K了)这是不是R35本身的频响范围有限呢?当然不是。后面的电脑端测试可以证明R35本身输出的质量,至少在频响上还是很达标的。 4:在测试中发现M8播放48K采样的WAV时,高音衰减过于明显,应该算是个bug。 —— 接下来是蓝牙耳机连接电脑的测试。 首先要说明的一点:电脑端的蓝牙驱动使用的是IVT(虽然我的蓝牙附带了widcomm的正版授权,但是widcomm不能调整音质级别,和windows紧密整合的 界面 也不太符合我的要求)默认状态下,实际听感比M8要好,和5610XM的差别比较难以判断优劣。按照google来的方法,修改了IVT驱动配置文件里面的SBC字段,加大了码率参数之后,不管是客观测试还是主观听感都有很明显的提升(只修改了高音质选项下的参数,中音质下未作改动)。高音质下的发送码率从200K多上升到400K多(在蓝牙高质量音频的连接属性里面可以看到发送字节数信息)。 上面两个是 设置 为高音质和中等音质下的测试结果对比(中等音质下大约有120K左右发送码率) 可以看到即使是中等音质下的频响曲线哦IMD曲线也已经超过5610XM。高音质下面的频响延伸接近线路输出的效果。IMD失真也控制在不可查的范围内了。 ———————————————————— 测试结论: 1:蓝牙A2DP在手机上的表现还难以令人满意。 2:M8蓝牙输出部分存在软件上的 BUG ,期待工程师进行修正。 3:电脑上蓝牙输出音质较好。 4:通过提高输出码率可以进一步挖掘A2DP的音质潜力,不过即使400多K码率下面还是比不上MP3的高码率(赢128-192Kmp3应该还可以的),如果优化得当,效果仍属不错。 ———————————————————— 附:IVT驱动下面修改SBC码率参数的方法 打开目录下的btav.ini 找到 字段( 建议 只修改高音质,因为不是所有蓝牙耳机都能在高码率下正常工作,否则驱动里面也不会设置得这样低了) MAXBITPOOL=32 MINBITPOOL=32 为默认值,可以修改为50-60.