再聊聊Android 5 SRC问题
农步祥 于 2015.08.22 07:04:04 | 源自: | 版权:原创 | 平均/总评分:09.59/470

在2013年底,Soomal曾乐观地预计SRC将不再成为Android系统的一个短板[《炒冷饭:再说SRC 》[作者:夏昆冈 ] ]。这样的结论,是基于当时大量涌现的国产Android手机多已经实现采样率识别和自动切换。 但随着今年各类新硬件配置和预装Android 5系统的国产手机上市,甚至事关Android形象的“亲儿子”Nexus系列的多款新品,纷纷出现了SRC的问题。

Android SRC问题我们讲了很多年,关注的人不少,甚至触动了厂商,因为无论市场上有多少音质比手机好得多的“国砖”,也远远远不是能和智能手机庞大的数量能比的,手机听音乐已经是绝大多数消费者的选择,自然就不乏对手机音质提出要求的客户。要真正打入移动HiFi市场,解决SRC是第一关。我们的观点也直接或间接对包括高通在内的相关企业造成了影响,促使其对Android音频架构存在的问题作出改进。

有个很好的栗子,在高通APQ8064架构推出以前,除了Android操作系统存在SRC,几年前采用高通处理器的手机还存在硬件SRC问题[《Qualcomm 高通芯片组与Android音频系统缺陷测评分析 》[作者:赵宇为 ] ]。也正是由于Soomal发现并对此进行了介绍和科普,引起了厂商的重视[和相关企业技术人员交流时证实],并得到解决,在此之后无论是各种主流高通处理器产品还是使用最低端处理器的Nokia X,再也没有出现类似问题,彻底解决了“Android+高通=音质悲剧”。

而国产手机在一年前能避免,则是由vivo等厂商在三年前起步,从系统层面解决了Android SRC并获得了技术专利。之后与联发科、高通的合作中相互影响,处理器厂商在通用的硬件、操作、驱动一揽子“交钥匙”[联发科称为Turnkey,高通称为QRD参考设计]方案中改进。得益于成熟的高通QRD、联发科Turnkey被大量国产手机厂商采用,Android SRC也得到了普遍的解决,外加上硬件设计的进步,诞生了MX4、K920等一批音质表现终于拿得出手的常规架构设计中的精品。而要求更高的高端独立DAC+运放扩流的方案,也有了很大的进步,从vivo X1到X5Max、MX4Pro等,声音品质已不可同日而语。

为什么一年前能解决的问题,在今天又会突显?这里要从硬件和操作系统两层面进行分析。在硬件上,骁龙800、600系列处理器库存清理完毕后,主流价位的Android手机统一被高通骁龙615处理器所取代。而再次出现系统SRC问题的中兴Nubia Z9 mini、联想VIBE Shot这两款产品正是用了骁龙615方案。参考对比一下这些品牌在2014的产品例如Nubia Z7/Z7 mini、K920等,在处理器性能和音质上都是退步。而从山寨机起步就解决了SRC的联发科,居然在最新的处理器平台MT6795[Helio X10]上的产品,乐视Le1上也出现问题了。这些手机不以音质为卖点,手机品牌厂商或许没有自行修改的动力。问题可能出现在这些新一代移动处理器的QRD或Turnkey的打包方案上。

无论国产品牌们将自己的系统改成什么名字,其底层仍是Google Android,底层核心系统和驱动由处理器厂商提供[俗称底包],厂商修改系统界面风格等上层要素。一年前普遍的Android 4.X已经变成了现在的5.0甚至5.1,以谷歌原生的Nexus系列和开源Android项目CyanogenMod系统为参考,Nexus 9、Nexus 6就存在系统SRC问题。随着处理器性能的进步,Android 5采用了精度更高的采样率转换算法,一定程度改善了音质严重劣化的问题。而性能太差手机就对高精度重采样算法无能为力了,例如使用联芯LC1860的红米2A。由于高通新处理器和Android新版本结合带来的QRD方案,也使得基于高通骁龙810方案的一加One Plus2也存在系统SRC。

操作系统的变化使得过去的针对Android 4的改进不再有用,既然高通提供的QRD就有系统SRC,就得依靠手机厂商自己解决了。因此同为骁龙615平台,HTC和vivo就压力不大,这些首批解决Android SRC的厂商有自己的解决方式[同为HTC设计生产,完全采用标准谷歌系统的Nexus 9就有SRC]。三星Galaxy S6使用自家处理器和自己的技术标准,自然也不存在相关问题;而同样自用处理器的华为也表示压力不大,反正荣耀硬件音频架构设计基础就较差。最后问问中兴,说好的相关技术专利呢?

而联发科的情况就有点特殊,MT6795和MX4使用的MT6595在硬件音频架构上没什么变化,但两款平台的系统底层驱动差异很大,联发科进行了大幅度修改,很可能因此出现了系统SRC。如果有条件,我会在未来单独对此进行科普[坑]。作为联发科与高通骁龙615系列分庭抗礼的平台,采用MT6795方案的手机也会大量上市,希望个人的推测[脑补]不会变成现实。

正如在[《聊聊Android 5的音频延迟和SRC问题 》[作者:农步祥 ] ]中所说,原生的标准Android 5系统是存在SRC问题的,手机厂商需要发挥自己主观能动性在技术上解决。尤其是以音质为卖点的各类采用独立DAC+运放“变态设计”的手机产品,更需要注意避免此问题。

既然可以用更高精度的非整倍数SRC采样率转换,为何还要花大力气去避免?这里要对大家特别特别强调的是,Android手机并不是只有在播放音乐的时候才会SRC,Android SRC转换是存在于操作系统的各类音频处理之中强制执行,包括游戏视频、系统音效、语音通信等使用,它运行任何应用播放声音都将无法避免[除了砸]。高精度重采样的代价是更大的处理器资源和电池消耗,最直观的感受是Nexus 9等机型在播放音乐时就开始发烫、Nexus 6的Google音乐卡顿严重等现象,这肯定不是因为有着发烧级音质,而是高精度SRC带来的大量处理器运算所致,也会降低系统响应速度。而如果能正确识别切换音频采样率播放,就能完全避免这些无谓的损耗,提升用户体验和电池续航能力。

Android是开源系统,除了手机厂商,用户能否自己解决此问题?很遗憾,原生Andorid 5的系统采样率设置是固化的,和耳机驱动力等参数不一样,是不可修改的项目,只能通过自行修改构建编译源代码完成,或许在知名Android爱好者网站XDA上有“大神”可以做出一两款机型的修改和调整,但其需要付出的精力和对技术的要求远超过业余普通爱好者的能力范围。对产品细节的重视不仅是厂商的技术能力体现,也是一种态度。而且对Android进行开发和推广的谷歌,在Android L发布会上就大力宣扬音频系统的进步,如高采样率,高清音频支持、更好的音频延迟响应等,至Android M都未能兑现,既然是有良心的企业,就不该光吹牛不做事。