Windows 10: オーディオ ドライバーの新機能
このトピックでは、Windows 10 のオーディオの新機能の概要を説明します。
機能の概要
Windows 10 の新しいオーディオ機能は次のとおりです。
低遅延オーディオの改善
オーディオ遅延とは、サウンドが作成されてから聞こえるまでの遅延です。 オーディオ遅延を短くすることは、次のようないくつかの主要なシナリオにとって非常に重要です。
- プロオーディオ
- 音楽の作成とミキシング
- Skypeなどのコミュニケーション
- 仮想現実と拡張現実
- ゲーム
デバイスの合計遅延は、次のコンポーネントの遅延の合計です。
- オペレーティング システム
- オーディオ処理オブジェクト
- オーディオドライバー
- オーディオハードウェア
Windows 10 では、OS の遅延を短縮するための作業が行われました。 ドライバーを変更しないと、Windows 10 のアプリケーションの遅延は 4.5 ~ 16ms減少します。 さらに、小さなバッファを使用してオーディオ データを処理する新しい低遅延 DDI を活用するようにドライバーが更新されている場合、遅延はさらに短縮されます。 ドライバーが 3ms オーディオ バッファーをサポートしている場合、往復遅延は約 10ms になります。
オーディオ スタックは、ユーザーのシナリオに基づいて遅延と電力の間のトレードオフを最適化するために、複数のパケット サイズと動的なパケット サイズ変更をサポートします。 さらに、優先度の高いストリーム (電話など) に専用のリソースが確保されるように、ストリームに優先順位が付けられます。
オーディオ ドライバーが低遅延をサポートするために、Windows 10 では次の 3 つの新機能が提供されます:
- [必須] 各モードでサポートされる最小バッファ サイズを宣言します。
- [オプションですが推奨] ドライバーと OS の間のデータ フローの調整を改善します。
- [オプションですが推奨] ドライバー リソース (割り込み、スレッド) を登録して、低遅延シナリオで OS によって保護できるようにします。 詳細については、低遅延オーディオを参照してください。
信号処理モードとオーディオカテゴリ
信号処理モード
ドライバーは、各デバイスでサポートされているオーディオ信号処理モードを宣言します。
オーディオ カテゴリ (アプリケーションによって選択される) は、オーディオ モード (ドライバーによって定義される) にマッピングされます。 Windows では 7 つのオーディオ信号処理モードが定義されています。 OEM と IHV は、どのモードを実装するかを決定できます。 モードを以下の表にまとめます。
モード | レンダリング/キャプチャ | 説明 |
---|---|---|
直接 | 両方 | Raw モードは、ストリームに信号処理を適用しないことを指定します。 アプリケーションは、まったく変更されていない生のストリームを要求し、独自の信号処理を実行できます。 |
既定値 | 両方 | このモードはデフォルトのオーディオ処理を定義します。 |
映画* | レンダー | 映画音声の再生 |
メディア* | 両方 | 音楽オーディオ再生 (ほとんどのメディア ストリームのデフォルト) |
音声* | キャプチャ | 人間の音声キャプチャ (例: Cortana への入力) |
通信* | 両方 | VOIP のレンダリングとキャプチャ (Skype、Lync など) |
通知* | レンダー | 着信音、アラーム、アラートなど |
オーディオ デバイス ドライバーは、少なくとも Raw モードまたは Default モードをサポートする必要があります。 追加モードのサポートはオプションです。
音声、映画、音楽、通信の専用モード。 オーディオ ドライバーは、ストリームの種類に基づいて、さまざまな種類のオーディオ形式と処理を定義できます。
オーディオカテゴリ
次の表は、Windows 10 のオーディオ カテゴリを示しています。
オーディオ ストリームの使用状況をシステムに通知するために、アプリケーションには、ストリームに特定のオーディオ ストリーム カテゴリをタグ付けするオプションがあります。 Windows 10 には 9 つのオーディオ ストリーム カテゴリがあります。
カテゴリ | 説明 |
---|---|
映画* | 映画、ダイアログ付きビデオ (ForegroundOnlyMedia を置き換えます) |
メディア* | メディア再生のデフォルト カテゴリ (BackgroundCapableMedia を置き換えます) |
ゲームチャット* | ユーザー間のゲーム内コミュニケーション (Windows 10 の新しいカテゴリ) |
音声* | 音声入力 (例: パーソナル アシスタント) および出力 (例: ナビゲーション アプリ) (Windows 10 の新しいカテゴリ) |
通信 | VOIP、リアルタイムチャット |
警告 | アラーム、着信音、通知 |
音響効果 | ビープ音、カタカタ音など |
ゲームメディア | ゲームミュージックでは |
ゲーム効果 | ボールの跳ね返り、車のエンジン音、銃弾など。 |
その他 | 未分類のストリーム |
* Windows 10 の新機能。
詳細については、オーディオ信号処理モードおよびオーディオ処理オブジェクトのアーキテクチャを参照してください。
ハードウェアオフロードされた APO 効果
Windows 10 は、ハードウェア オフロードされた APO エフェクトをサポートしています。 APO はオフロード ピンの上にロードできます。 これにより、オーディオ処理をソフトウェアとハードウェアの両方で実行できるようになります。 さらに、処理は動的に変更できます。 十分なハードウェア リソースがある場合、処理の一部またはすべてをソフトウェア APO から DSP に移動し、DSP の負荷が増加した場合にソフトウェア APO に戻すことができます。
詳細については、ハードウェア オフロード APO 効果の実装を参照してください。
Cortana 音声アクティベーション - Wake on Voice
パーソナル アシスタント テクノロジである Cortana は、2013 年の Microsoft BUILD 開発者カンファレンスで初めてデモンストレーションが行われました。 音声アクティベーションは、ユーザーが「コルタナさん」という特定のフレーズを言うことによって、さまざまなデバイスの電源状態から音声認識エンジンを呼び出すことができる機能です。 「Hey Cortana」音声アクティベーション (VA) 機能を使用すると、ユーザーは音声を使用して、アクティブなコンテキスト (つまり、現在画面に表示されている内容) の外でエクスペリエンス (Cortana など) にすばやく参加できるようになります。 この機能は、画面がオフ、アイドル状態、または完全にアクティブになっているときのシナリオを対象としています。 ハードウェアがバッファリングをサポートしている場合、ユーザーはキー フレーズとコマンド フレーズを連鎖させることができます。 これにより、ユーザーの音声エクスペリエンスでのエンドツーエンドのウェイクアップが向上します。 詳細については、音声によるアクティブ化を参照してください。
オーディオ用 Windows ユニバーサル ドライバー
Windows 10 は、PC と 2:1 で動作する 1 つのドライバー モデルをサポートし、携帯電話と小さな画面のタブレットでは Windows 10 をサポートします。 これは、IHV が 1 つのプラットフォームでドライバーを開発でき、そのドライバーがすべてのデバイス (デスクトップ、ラップトップ、タブレット、電話) で動作することを意味します。 その結果、開発時間とコストが削減されます。
ユニバーサル オーディオ ドライバーを開発するには、次のツールを使用します。
- Visual Studio 2015: 新しいドライバー設定では、「ターゲット プラットフォーム」を「ユニバーサル」に設定してマルチプラットフォーム ドライバーを作成できます。
- APIValidator: これは、ドライバーがユニバーサルかどうかをチェックし、更新する必要がある呼び出しを強調表示する WDK ツールです。
- GitHub の音声サンプル:sysvad と SwapAPO はユニバーサル ドライバーに変換されました。 GitHub サンプル コードの詳細とポインターについては、オーディオ用ユニバーサル Windows ドライバーを参照してください。
オーディオドライバーのリソース管理
低コストのモバイル デバイスで優れたオーディオ エクスペリエンスを作成する際の課題の 1 つは、一部のデバイスにはさまざまな同時実行制約があることです。 たとえば、デバイスは同時に最大 6 つのオーディオ ストリームしか再生できず、2 つのオフロード ストリームのみをサポートする可能性があります。 モバイル デバイスでアクティブな通話が行われている場合、デバイスが 2 つのオーディオ ストリームのみをサポートしている可能性があります。 デバイスがオーディオをキャプチャしている場合、デバイスは最大 4 つのオーディオ ストリームのみを再生できます。
Windows 10 には、優先度の高いオーディオ ストリームと携帯電話の通話が確実に再生できるようにするための同時実行制約を表現するメカニズムが含まれています。 システムに十分なリソースがない場合、優先度の低いストリームは終了します。 このメカニズムは、デスクトップやラップトップではなく、携帯電話とタブレットでのみ利用できます。
詳細については、オーディオ ハードウェア リソース管理を参照してください。
オーディオドライバーの PNP リバランス
PNP リバランスは、メモリ リソースを再割り当てする必要がある特定の PCI シナリオで使用されます。 その場合、連続した空きメモリ領域を作成するために、一部のドライバがアンロードされ、別のメモリ位置に再ロードされます。 リバランスは、次の 2 つの主なシナリオでトリガーできます:
- PCIホットプラグ:ユーザーがデバイスを接続すると、PCI バスには新しいデバイスのドライバーをロードするための十分なリソースがありません。 このカテゴリに分類されるデバイスの例には、Thunderbolt、USB-C、NVME ストレージなどがあります。 このシナリオでは、追加されるデバイスをサポートするために、メモリ リソースを再配置および統合 (再バランス) する必要があります。
- PCI サイズ変更可能な BAR:デバイスのドライバーがメモリに正常に読み込まれると、追加のリソースが要求されます。 デバイスの例には、ハイエンドのグラフィック カードやストレージ デバイスなどがあります。 詳細については、PortCls オーディオ ドライバーの PnP 再調整の実装を参照してください。