Windows Phone 8 音频架构初探

  • A+
所属分类:音频杂谈

很多读者关心Lumia 920/820的音质表现,测试我们已经做完,但在发布报告之前,我们觉得还是有必要先了解一下Windows Phone 8[下简称WP8]的音频架构。

WP8采用的是NT核心,但其音频架构会不会和桌面系统的有所不同?微软WP8正式发布之后更新了其技术文档,提到了其原生的音频APIs[Native audio APIs for Windows Phone 8]。其原生APIs由WASAPI 和XAudio2构成。

先说WASAPI,WASAPI最早出现于Windows Vista。Vista对音频架构做过一次重要的改动,几乎是颠覆性的修改,这也曾经导致了大量的声卡无法工作于Vista,这个架构被命名为UAA,即Universal Audio Architecture,意思为通用音频架构。

Windows Phone 8 音频架构初探
相关资料收藏此图相关图片
微软 Microsoft UAA 构架模型

UAA分为独占模式和共享模式,它最大程度的降低了音频设备驱动对系统稳定性的影响,而且还能够增加信号处理流程的透明度,处理环节可以得到控制,在理论上说,它可以实现更加优秀的音质,也能非常显著的提升系统响应速度,大幅减低延时,UAA架构受到了诸多的好评,PCHIFI爱好者的对其也赞赏有加,后来UAA一路沿用到了Win7、8当中。

而WASAPI是UAA引入的一套API,它全称为Windows Audio Session API,即音频会话API。它可以实现每个进程下的音频API请求都成为一组独立的对话,结果就是每个应用程序的音量是可以单独控制的,这是因为每个对话对应的都是独立的处理流程。

但WP8对WASAPI的支持不是全部的,IAudioSessionControl、IMMDevice两个API不被支持。IMMDevice用于调用多媒体设备,由于WP8的多媒体设备是相对固定的,而不像桌面系统那样多变,这个IMMDevice对于WP8来说确实意义不大。而IAudioSessionControl不被支持则显得有些令人不可理解,这个API用于获取会话的接口并配置会话。取消这个API可能是微软希望能够简化操作,如果出现一个类似于桌面版的控制界面确实也是头疼的事情。但微软有另外提供了4个API来完善控制,这4个API与桌面版的不兼容,只能用于WP8。可以认为,WP8支持WASAPI是WASAPI完整版的一个子集兼定制版。

XAudio2,我们很少提到它,但我们应该不陌生。还是回到UAA架构,Vista创建UAA架构对声卡行业有着巨大的冲击,其中一个重要的原因就是UAA架构不再支持DirectSound 3D[仅仅保留DirectSound],这是3D音效硬件加速的API集,这次改动,让声卡大厂Creative大伤元气,很久都没缓过神来。

DirectSound 3D和DirectSound又合称为DirectX Audio,而XAudio2则是用于取代DirectX Audio的。XAudio的X,代表的是XBOX,XAudio2的本意是实现Windows 平台、WP平台以及XBOX平台的音频API统一。支持XAudio2,意味着PC、XBOX平台的游戏可以更方便的移植到WP8平台。

通过这些技术资料,我们可以判断WP8沿用的就是Vista以来的UAA架构,虽然WP8版本略有不同。这个架构下,实现低延时的高清音频回放都是可以的,可以认为,WP8的音频架构本身具有很大潜力,这也为未来实现各种音频应用提供了良好的基础。

Windows 平台作为最优秀的影音娱乐平台的表现有目共睹,WP8能否继承衣钵?架构优秀,不等于WP8手机就一定优秀。这篇文章仅仅作为科普,留档存查。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: