Window10中音频驱动的相关更新

"Windows音频驱动"翻译系列总目录: https://blog.csdn.net/danteLiujie/article/details/102530417

目录

1. 功能总结

2. 音频低时延性能改善

3. 信号处理模式和音频分类

3.1. 信号处理模式

3.2. 音频类型

4. 硬件分担 (hardware offloaded) APO音效

5. Cortana语音激活-语音唤醒

6. Windows 音频通用驱动 (Universal Drivers)

7. 音频驱动程序的资源管理

8. 音频驱动的PNP 重平衡


本文简单总结了Windows 10里面有些什么新内容.

1. 功能总结

以下是Windows 10里面的新音频特性.

2. 音频低时延性能改善

音频时延是从声音生成到被听到之间的间隔. 在以下关键场景中, 做到低时延是非常重要的:

  • 专业音频
  • 音乐制作和混音
  • 通信, 比如Skype
  • VR和AR(虚拟现实和现实增强, Virtual and Augmented Reality)
  • 游戏Games

设备总时延是以下组件时延的总和:

  • 操作系统
  • APO(Audio Processing Objects)
  • 音频驱动(Audio Driver)
  • 音频驱动(Audio Hardware)

Windows 10中改善了OS造成的时延. 在不更改驱动的情况下, Windows 10的应用程序的时延是4.5~16ms. 如果更新驱动来使用新的低时延DDI(Device Driver Interface, 设备驱动接口)来处理音频数据, 时延会降的更低. 如果驱动支持3ms音频buffer, 那么往返时延(roundtrip latency)大概是10ms.

音频堆栈支持多种数据包大小和动态调整数据包大小,以便根据用户的情况优化延迟和功耗之间的权衡。另外,将对流进行优先级管理,让高优先级流(例如电话)占有专用资源。

为了使音频驱动程序支持低时延,Windows 10提供了以下3个新特性:

  1. [必须] 声明每种模式支持的最小缓冲区大小。
  2. [可选,但推荐] 改善驱动程序和OS之间的数据流协作。
  3. [可选,但建议使用] 注册驱动程序资源(中断,线程),以便在低延迟情况下可由OS保护它们。有关更多信息,请参见低延迟音频

 

3. 信号处理模式和音频分类

3.1. 信号处理模式

驱动程序声明每个设备支持的音频信号处理模式。

音频类别(由应用程序选择)映射到音频模式(由驱动程序定义)。Windows定义了七个音频信号处理模式。OEM和IHV可以确定要实施的模式。下表中汇总了这些模式。

模式

渲染/捕获

描述

原始(Raw)

Both

原始模式下不应对流应用任何信号处理。

应用程序可以请求完全未经处理的原始流,并执行自己的信号处理。

默认(Default)

Both

此模式定义默认的音频处理

电影(Movies)*

渲染

电影音频播放

媒体(Media) *

Both

音乐音频播放(大多数媒体流的默认设置)

语音 (Speech)*

Capture

人声抓取(例如: 输入到Cortana)

通信(Communication)*

Both

VOIP渲染和捕获(例如: Skype,Lync)

通知(Notification)*

Render

铃声,警报,警报等

音频设备驱动程序需要至少支持Raw或Default模式。 支持其他模式是可选的。

为语音,电影,音乐和通讯分配了专用模式。 音频驱动程序将能够根据流类型定义不同的音频格式和处理类型。

3.2. 音频类型

下表显示了Windows 10中的音频类别。

为了通知系统音频流的使用,应用程序可以选择用特定的音频流类别标记该流。在Windows 10中,有九种音频流类别。

类别

描述

电影(Movie)*

带有对话框的电影,视频(替换ForegroundOnlyMedia)

媒体(Media)*

媒体播放的默认类别(替换BackgroundCapableMedia)

游戏聊天(Game Chat)*

游戏内用户之间的通信(Windows 10中的新类别)

语音(Speech)*

语音输入(例如个人助理)和输出(例如导航应用程序)(Windows 10中的新类别)

通讯(Communications)

VOIP,实时聊天

警报(Alerts)

闹钟,铃声,通知

声音特效(Sound Effects)

哔声,叮当声等

游戏媒体(Game Media)

在游戏音乐中

游戏特效(Game Effects)

球弹跳,汽车发动机声音,子弹等。

其他

未分类的流

* Windows 10的新功能.

更多信息请参考音频信号处理模式 和APO框架.

4. 硬件分担 (hardware offloaded) APO音效

Windows 10支持硬件分担APO音效。可以将APO加载到分担引脚(offload pin)的顶部。这样可以在软件和硬件中完成音频处理。另外,处理可以动态地改变。当硬件资源足够时,可以将部分或全部处理从软件APO移到DSP,然后在DSP的负载增加时移回软件APO

有关更多信息,请参见实现硬件卸载的APO效果

5. Cortana语音激活-语音唤醒

个人助理技术Cortana首次在2013年的Microsoft BUILD开发者大会上演示。语音激活是一项使用户可以通过说出特定的短语"Hey Cortana"来在各种设备电源状态调用语音识别引擎的功能。"Hey Cortana"语音激活(VA)功能允许用户通过使用他或她的声音在他或她的活动场景(即当前在屏幕上显示的内容)中获得更好的体验(例如Cortana)。该功能适用于屏幕关闭,空闲或完全激活时的情况。如果硬件支持缓冲,则用户可以将关键字短语和命令短语链接在一起。这为用户改善了端到端的语音体验。有关更多信息,请参阅语音激活

6. Windows 音频通用驱动 (Universal Drivers)

Windows 10支持一种驱动程序模型, 适用于PC2合一PC (2:1’s, 译注: 同时具有平板电脑和笔记本电脑功能的便携式计算机) ,以及手机和小屏幕平板电脑. 这意味着IHV可以在一个平台上开发其驱动程序,并且该驱动程序可以在所有设备(台式机,笔记本电脑,平板电脑,电话)中使用。结果是减少了开发时间和成本

为了开发通用音频驱动程序,请使用以下工具

In order to develop Universal Audio Drivers, use the following tools:

  1. Visual Studio 2015:新的驱动程序设置允许将“目标平台”设置为“通用”以创建多平台驱动程序。
  2. APIValidator:这是WDK工具,用于检查驱动程序是否通用,并突出显示需要更新的调用。
  3. GitHub中的音频示例:sysvad和SwapAPO已转换为通用驱动程序。有关更多信息和GitHub示例代码的指针,请参见Universal Windows Drivers for Audio

7. 音频驱动程序的资源管理

在低成本移动设备上创建良好音频体验的, 一个挑战是某些设备具有各种并发限制。例如,设备可能最多只能同时播放6个音频流,并且仅支持2个分担(offload)流。当移动设备上有正在进行的电话通话时,该设备可能仅支持2个音频流。设备正在捕获音频时,设备最多只能播放4个音频流。

Windows 10包含一种机制来表达并发约束,以确保能够播放高优先级的音频流和电话。如果系统没有足够的资源,则终止低优先级流。该机制只在电话和平板上有效, 在台式机或笔记本电脑上无效。

有关更多信息,请参见音频硬件资源管理

 

8. 音频驱动的PNP 重平衡

在需要重新分配内存资源的某些PCI方案中使用PNP重新平衡。在这种情况下,某些驱动程序将被卸载(unloaded),然后在不同的内存位置重新加载,以创建可用的连续内存空间。在两种主要情况下会触发重新平衡:

  1. PCI热插拔:用户插入设备,并且PCI总线没有足够的资源来为新设备加载驱动程序。属于此类的设备的一些示例包括ThunderboltUSB-CNVME存储。在这种情况下,内存资源需要重新排列和合并(重新平衡)以支持添加的其他设备。
  2. PCI可调整大小的BAR:将设备驱动程序成功加载到内存后,它会请求额外的资源。比如高端图形卡和存储设备。有关更多信息,请参见为PortCls音频驱动程序实现PnP重新平衡

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值