特集:Vista買うのはまだ早い!(3)ゲームサウンド編

Vista買うのはまだ早い!(3)ゲームサウンド編

前のページへ 1 2 3 次のページへ

 

High Definition Audio CODECチップの例

 この状況を変えるべく登場したのが,Intelの提唱した「High Definition Audio」(以下HD Audio)だ。HD Audioでは,これまで“一方通行”だったサウンドデータの流れを変えるべく,「HD Audio Link」というバスが新たに設けられた。そして,これによってサウンドデバイスにあるCODEC(「COder/DECoder」の略でコーデックと読む。ここではサウンドデータをアナログ音声に変換したり,逆の処理をしたりするチップのこと)と通信を行えるようになり,CODECのスペックや,CODECの先にどんなデバイスが接続されているかをOSから知ることができるようになったのだ。

 

HD Audioのイメージ。前ページの図からWDMサウンドドライバ以降を抜粋して,「サウンドデバイス」を書き換えてある。データが一方通行でなくなったのがポイントだ

 

 このHD Audioをベースに,Microsoftが2003年頃定義したのが「UAA」(Universal Audio Architecture)である。
 UAAでは,最低限かつ汎用的な機能を提供する「クラスドライバ」(Class Driver)がMicrosoftによって用意されるため,UAA&HD Audio準拠のサウンドデバイスを採用したPCでは,別途ドライバソフトを用意しなくても,サウンドが出力されるようになる。USBフラッシュメモリをWindows XP搭載PCのUSBポートに接続したとき,たいていの場合,別途ドライバをインストールしなくても利用できるのと同じ理屈である。

 

Windows Vistaの「音量ミキサ」。アプリケーションごとの音量調節が行えるようになった

 また,(Windows XPなどが採用する)WDMベースのサウンドドライバはカーネルスペースで動作していたため,その不具合がWindowsの停止などに直結したが,UAAクラスドライバのおかげで,「カーネルスペースで動作するサードパーティ製のドライバによってWindowsが停止する」危険が減ったのも大きい。
 UAAにおいて,ユーザースペースで動作するサウンドドライバは,アプリケーションごとのサウンド入出力管理くらいしかしていないので,ここで問題が発生しても,カーネルスペースには何の問題もないというわけだ。
 ちなみに,Windows Vistaにおいて,アプリケーションごとに音量調節が行えるようになっているのは,UAAのユーザーモードドライバが各アプリケーションに紐付けされるよう,構造が変更されたためである。

 

Windows XPにおけるUAAのドライバ構造。特集第1回で示した,WDDMグラフィックスドライバとよく似た構造になっている。カーネルモードで動作するUAAクラスドライバは,Microsoftが提供するため,UAA準拠のサウンドデバイスは,このドライバを使うことで,追加ドライバを必要とせず,UAAの基本機能を利用可能だ

 

 また,HD Audio準拠のハードウェアをUAAで動作させると,サードパーティ製ドライバを使わずにサウンドデバイスを利用できるため,アプリケーションソフトとサードパーティ製ドライバの間をサウンドデータが通るとき,それを悪意あるユーザーが“横取り”するのを防ぎやすくなるというメリットもある。著作権保護されたサウンドデータを,安全なまま扱うことができるので,新しい世代のコピーコントロール技術に対応しやすいのだ。
 こういった事情で,Microsoftはサウンドデバイスの推奨ハードウェアとしてHD Audioを設定し,HD Audioを前提に,使い勝手と安定性の向上,著作権保護技術への対応が可能な新しい機構,UAAを定義したのである。

 

Windows XPのデバイスマネージャから,HD Audio CODECをチェックしてみた。「UAA Bus Driver」が組み込まれているのが分かる

 UAAそれ自体は,Windows XPですでに採用されていた。それこそHD Audio準拠のサウンドデバイス用ドライバは,すでにUAAベースとなっている。
 Windows Vistaでは,そんなUAAがMicrosoft推奨のサウンド入出力インタフェースとして位置づけられる。「UAAベースでなければ動作しない」わけではないが,UAAベースでないサウンドデバイスの場合,当然のことながら前述したUAAのメリットは享受できない。同時に,UAA準拠でなければWindows Vista互換ロゴマークを使用できないという縛りもあるため,事実上,Windows Vista用サウンドデバイスはUAAベースでなければならないと断じてよさそうだ。

 

 UAAを採用すると,サードパーティ製ドライバを利用しなくても“音が出る”ため,ユーザーからすると便利になる半面,サウンドデバイスごとの違いをアピールしづらくなるのでは? と思うかもしれない。
 実は,UAAクラスドライバには,サウンドやビデオなど,データ転送の遅れが問題になるメディア関連の処理を遅延なく行うドライバ「WaveRTポートドライバ」(WaveRT:Wave Real Time)が組み込まれている。そして,このドライバに向けて,サウンドデバイスが持つ固有の機能を伝える「WaveRTミニポートドライバ」を,サウンドデバイスのメーカーが用意できるようになっているのだ。WaveRTミニポートドライバはカーネルモード(カーネル/ユーザーモードに関しては,第1回で説明しているので参考にしてほしい)で動作するようになっているが,下の図に示したとおり,(WDMドライバで可能だったような)サウンドデータを“自力”でサウンドデバイスへ送る処理は許可されていない。サウンドデータのやり取りは,あくまでWaveRTポートドライバが行うのだ。これにより,カーネルスペースの安全を確保し,同時にデータの横取りを防ぎつつ,サウンドデバイスの固有機能を実現しようというわけである。

 

 なおUAAの仕様上は,ユーザーモードドライバに追加するプラグインのような形で,サウンドデバイスメーカー固有のフィルタを導入できるようにもなっている。今のところ,このフィルタが何を実現できるのかは明らかになっていないが,WaveRTミニポートドライバとフィルタによって,HD Audio/UAA準拠の製品でも,メーカーごとの差別化はできるという理屈だ。

 

Windows VistaにおけるUAAの実装を示した図。UAAクラスドライバに含まれるWaveRTポートドライバは,サウンドやビデオなど,データ転送遅延が問題になるメディア処理用に用意された新しいスケジューラ「MCSS」(Multimedia Class Scheduler Service)を利用して,データ転送遅延時間を最小に抑えるという仕組みが設けられている

 

前のページへ 1 2 3 次のページへ

 

タイトル Windows Vista
開発元 Microsoft 発売元 マイクロソフト
発売日 2007/01/30 価格 エディション,入手方法による
 
動作環境 N/A

(C)2007 Microsoft Corporation.