当前位置:首页 > 智能手机 > Android手机 > 技巧
Android音频进化之路
  • 2013-12-10 16:02:40
  • 类型:原创
  • 来源:电脑报
  • 报纸编辑:黄益甲
  • 作者:
【电脑报在线】对于采用Android的智能手机、平板、以及高清盒子来说,多媒体功能是非常重要的,除了视频处理能力外,良好的音频输出效果也是必须的。所以,越来越多的智能手机厂商开始关注手机的音乐功能,这也是除了拍照外,Android智能手机做出差异化的另一个突破点。目前在这方面走在前面的有诺基亚、HTC、VIVO等厂商,特别是VIVO旗下的X系列手机,主打手机Hi-Fi功能,在用户中有不错的口碑。


  对于采用Android的智能手机、平板、以及高清盒子来说,多媒体功能是非常重要的,除了视频处理能力外,良好的音频输出效果也是必须的。所以,越来越多的智能手机厂商开始关注手机的音乐功能,这也是除了拍照外,Android智能手机做出差异化的另一个突破点。目前在这方面走在前面的有诺基亚、HTC、VIVO等厂商,特别是VIVO旗下的X系列手机,主打手机Hi-Fi功能,在用户中有不错的口碑。不过,Android系统一开始在音频方面可没这么出彩,甚至可以说相当糟糕,到底这一路走来它发生了什么变化呢?让我们来看看。


SRC:Android音频的毒药


基于Linux的ALSA音频架构
    

    首先,我们需要先了解一下Android系统的音频架构……不过,在此之前,得先从Linux的音频架构讲起,毕竟Android是基于Linux而来的。Linux自2.6版核心之后,采用的是ALSA音频架构(Advanced Linux Sound Architecture),在这版本之前则采用的是OSS(Open Sound System,开放音频系统)。

 

    ALSA包含了大量的音频设备开源驱动,提供了核心层API来与ALSA的库进行通信,ALSA库则是应用程序调用音频硬件的中间层,开发者可以不用考虑各种硬件之间的差异来进行开发,简化了开发过程。ALSA可以兼容之前的OSS,而OSS则被完全取代。
    早期的Android继承了这个体系,例如在2.2版之前,Android的系统文件夹里都能找到一个LibAudioALSA.so文件,它就是ALSA库,应用程序调用它就能与声卡设备进行数据通信。不过,由于ALSA是来自桌面版的Linux,为了兼容多种声卡,设置了一个SRC(Sample Rate Converter,采样频率转换)的环节,它的作用就是将音频文件采样率强制转化为48kHz来输出(这个SRC就是造成早期Android音频输出质量始终不如人意的罪魁祸首,后面会详细讲解)。Android在这个基础上进行了改进,加入了一个AudioFinger,我们可以简单地把它理解为Android ALSA音频子系统标准化插件模块,它包含AudioMixer(混音器)、AudioResampler(重采样)等子模块,而这个重采样子模块就是前面所说的SRC,稍微有点不同的就是,Android改变了重采样的默认频率,将Linux使用的48kHz改为了44.1kHz。
    到了Android2.3,谷歌启用了一个新的音频架构,放弃了原有的ALSA架构,最明显的标志就是文件系统中再也找不到LibAudioALSA.so这个文件了。虽然谷歌在新的架构中针对内部代码进行了优化,提升了系统的效率,但SRC所带来的音质劣化问题依然存在,在播放
96kHz、192kHz高清音频的时候,Android会将它们强制转化为44.1kHz的频率(如果音频源文件本来就是44.1kHz则不会进行转化,也就不会有失真的问题),失真是很明显的,而且大量来自蓝光碟片的高清影片的音频多采用48kHz采样率,经过SRC之后自然也是失真,音质大打折扣。
    既然只是系统的问题,那么通过软件肯定可以解决。没错,理论上软件SRC可以通过使用更优化的算法来实现音质的提升,但对于Android设备来说,ARM处理器的浮点性能有限,如果让处理器来进行运算,必然会耗费更多的性能和电力,影响设备的使用体验与续航。
    相比之下,封闭的iOS系统在这方面表现就很好,毕竟它不用面对多种硬件配置,自然也不用去为了兼容它们而强制某种输出频率了。
    其实,SRC的问题一直到Android 4.X都还存在,不少较老型号的智能手机都有这样的问题。但是,Android是一个开放系统,手机厂商可以对它进行修改,因此,比较新一些的主流四核Android手机其实已经解决了这个问题。


第三方厂商改善Android音质的手段
    VRS(vivo signal-Retrieval System)技术由步步高旗下的VIVO实验室研发,它可以说是针对Android音频系统48kHz与44.1kHz频率切换进行改善而且行之有效的方案。
    我们知道,对于高品质的96kHz、192kHz高品质音频来说,将它们转换为48kHz的频率是整数倍的转化,不会改变原有波形,但要是转换为44.1kHz的频率,非整数倍重采样就会改变原有的波形,也就是失真了。当然,对于大多数Android手机来讲,只是要听音乐的话,把SRC定为44.1kHz并没有问题,但它们在应付具有48kHz音频的视频时表现就不会完美;而对于面向视频多媒体应用的Android盒子,如果把SRC设置为48kHz(实际上不少采用专用系统的盒子就是这么干的),看视频时的音频效果没问题了,但听音乐的时候又不完美了。那么VRS的出现,就是为了解决这个问题,从测试来看,具备VRS的Android手机在播放48kHz采样的音频时,就不会出现劣质的SRC问题了,音质得到明显改善。除此外,在较新的旗舰级Android手机中,采用Tegra3的HTC One X随后也解决了SRC的问题,接下来还有华为的D1 XL、魅族MX2、三星S3等等,而更新的旗舰机型则已经全部解决了这个问题。
     既然说到Android SRC,就不得不提早期高通SoC在44.1kHz上的SRC问题。由于Android本身限制,只能在44.1kHz和48kHz中选择一个采样频率,而早期的高通SoC在播放采样率为44.1kHz的音频文件也表现欠佳,这就让Android+高通的组合在音频方面的表现比较尴尬——两头不讨好。当然,即便如此,高通的SRC问题还是比Android本身的SRC好多了,只要不是追求完美,音质表现也是可以接受的。不过,在最新的高通四核骁龙机型上,这个问题已经彻底解决,只是采用双核的机型依然可能会有这样的问题,比如一些WP8的机型,这就与Android无关了。
    当然,SRC虽然是个明显的问题,但解决起来并不困难,只要厂商重视,可以很轻易地解决掉。我们也可以预见,将来智能手机在音频播放这一方面,还会有长足的进步,真正要达到高保真的水平,也是完全可以做到的。 
本文出自2013-12-09出版的《电脑报》2013年第48期 D.智能手机
(网站编辑:pcw2013)


我来说两句(0人参与讨论)
发表给力评论!看新闻,说两句。
匿名 ctrl+enter快捷提交