Coffee Time Chilling

いらっしゃいませ。お立ち寄り頂きありがとうございます

Windows7のオーディオカーネル(Kernel Streaming技術)

WASAPI - Wikipedia
 Windows7及びVistaはDirectSoundに変わるWindows Audio Session API(WASAPI)というのが採用されている。
それに伴いDirectSoundの機能の内DirectSound3Dは廃止されている。これは知らないユーザも多いだろうね。
 Vista以前のWindowsXP等はK-Mixer(OS標準のミキサー)は各ソフトウェアのサウンドデータをミキシングし、リサンプル後サウンドデバイスにデータを送っている。これにより、複数のソフトウェアのサウンド入出力を実現しているが規格が古い(AC'97)せいも有り、単一のソフトで音楽を楽しむには余計なリサンプル(48kHz16bit固定出力)や、データ送信中におけるCPU割り込み処理におけるレイテンシ(発信遅延)等、もはや害にしかならない。
WindowsXPでは特殊なドライバやASIOドライバを通さないとK-Mixer(OS標準のミキサー)を通しての出力となりここで先ほどの処理がされ音質が低下してしまう。
Windows7及びVistaWASAPI共有モードが相当の機能を持つ、将来的にはXBOXと共通化してXaudioに置き換わるんだろうなぁ。
 話を戻すとそれではせっかくのONKYO SE-200PCI LTDの真価が発揮できない。
ASIO4ALLを使う事で疑似ASIO化し、K-Mixer(OS標準のミキサー)を通さずにできるが、いかんせん長時間再生には不安定でかつCPUリソースの無駄遣い。
WindowsVista以降採用されたWASAPIを「排他モード」で使うことでオーディオストリームをダイレクトにデバイスに送る(Kernel Streaming)ことができる。
フォーマット上、サウンドデバイスが対応していればいいのでPCMのみならずDSDデータすら再生可能だと思われる。
送信先と送信元でバイナリが一致する上、CPUを介さないDMA転送されるので余計な割り込み処理は無くレイテンシ(発信遅延)も最小ですむ。


 ただ欠点としては誤ってサウンドデバイスが対応していないデータを送ってノイズが出る場合や、OSを含むその他のサウンド機能が使えない事。
VistaだとSP1以降でないとバグで実質使いものにならないなどがある。


 ちなみにWindows7はさらに改良されたWASAPIが採用されている。
僕がOSを乗り換えた理由の一つでもあるね。


確認したプレイヤーはFOOBAR2000またはulilith
OSそのものの機能なのでサウンドカードは例えオンボードでも恩恵に預かれるWMAや他のプレイヤーでも対応している可能性有り。(共有モードでならありそうだ)
ついでにAC'97は今現在はHD Audio(High Definition Audio)へと更新されている。


High Definition Audio - Wikipedia