Android系统下高通WCD9310 CODEC简单研究和教程[小米2S手机]
农步祥 于 2013.05.14 04:52:33 | 源自:www.soomal.com | 版权:原创 | 平均/总评分:09.52/495

随着我们使用和研究了数款使用高通APQ8064芯片组的Android智能手机产品,在解决过去一直存在的44kHz SRC问题之后,发现这些手机产品的音质相比过去存在SRC问题的高通手机产品确实有了很大进步,但普遍存在耳机驱动力相对较弱,输出电平偏低的缺点。LG Nexus 4最大音量输出电平-17.6dB,小米2和小米2S更是只有-19dB,即使相比采用联发科芯片组通用方案的手机产品,驱动力也明显差了一大截,整体音质表现依然不尽人意,对普通人而言音量的感受要远比音质敏感和直观,无论是Nexus 4或者小米2的用户群中都出现了对耳机输出音量太小表示不满的用户。

我们手上的Xperia Z、Nexus 4和小米2S在使用过程中都有过固件更新,但音质表现并未有任何变化,这是否意味着WCD9310 Codec性能发挥已经到了极限?在我们研究联想K860声音失真原因的时候,能看出工程师绑定音效处理的原因很可能是为了“更大声”,只是他们努力的方向和结果都出现了低级失误。《探寻联想K860声音严重失真的原因 》[作者:农步祥 ] 既然K860的Codec耳机输出参数有调整的潜力,那么高通的WCD9310是否也存在改善的可能性?这些Codec均使用ALSA做为底层硬件音频驱动。我们在已经解锁并获得Root权限的Nexus 4和小米2S上使用同样的工具和方法进行研究和测试。

在安装ALSAMixer应用并进行了简单研究后,我们发现系统固件默认的驱动参数确实并非最佳状态,由于ALSA驱动设置太多,并且每个声道和混音通道都包含了大量的控制参数,我们只选择对耳机和外放扬声器输出有影响的设置进行简单介绍。

  • HPHL:耳机输出左声道音量,模拟输出增益参数,最大值12,默认值10。
    HPHR:耳机输出右声道音量,模拟输出增益参数,最大值12,默认值10。
    LINEOUT1:外放扬声器输出音量,最大值12,默认值10,对铃声也有影响。
    RX1 Digital:左声道数字输出音量,对耳机输出有影响,最大值124,默认值77。
    RX2 Digital:右声道数字输出音量,对耳机输出有影响,最大值124,默认值77。
    RX3 Digital:外放输出数字音量,对外放输出有影响,最大值124,默认值84.

不过,尽管这些参数在修改后对音量的变化确实非常明显,但并非越大声越好,Nexus 4无论修改数字音量或增益都会出现严重溢出,失去了调整的可能性,除非用户需要更大声而不在乎音质,否则不推荐对Nexus 4进行任何音频驱动参数的调整。

  • 通过测试,小米2S最适合的参数设置是HPHL:12,HPHR:12,LINEOUT1:12,RX1 Digital:85,RX2 Digital:85,此时小米2S的耳机输出电平达到了-8.1dB。

  • 测试项目 小米2S 小米2S[调整驱动参数]
    噪声水平, dB (A): -90.1 -91.2
    动态范围, dB (A): 90.6 92.1
    总谐波失真, %: 0.0020 0.0059
    互调失真, %: 0.0082 0.0090
    立体声分离度, dB: -90.2 -90.9
  • 参数调整后对RMAA测试整体成绩略有提升,谐波分布有轻微改变,谐波失真有提升,对整体音质影响不大。在主观听感上,改变是非常明显的,驱动力更好,意味着会有更好的控制力,声音更有活力,搭配头戴式耳机,也能获得让人满意的音量。LINEOUT的调整对外放音量同样有2-3dB的提升。

    由于Android的音频系统基于事件驱动,只能在播放音乐时通过ALSAMixer调整,停止播放后驱动参数就会重置为固件默认状态,无法保存,好处是一旦修改出现失误,只要重启手机即可恢复原样,不会对系统或硬件造成损害。我们也会做进一步深入研究,提供方便的修改程序或脚本下载以方便用户使用,当然最简单的方法还是由厂商在固件开发和更新中进行修正。 WCD9310的驱动参数调整是否只对小米2S有意义?随着未来接触的高通芯片组Android手机和平板电脑产品数量的增加,我们也会进行更多的验证。

    请评分
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    9050 为防止广告机贴垃圾,不得已而为之
    表情
    正文