DirectSound 硬體加速概觀
許多音訊配接器提供 DirectSound 硬體加速,這是一或多個 DirectSound 串流執行硬體混合的能力。 硬體混合可藉由從 CPU 卸載音訊混音作業,並以硬體速度執行它們,來改善效能。 除了混合之外,硬體還會執行相關作業,例如取樣率轉換 (SRC) 、衰減,以及選擇性地在軟體中執行的 3D 處理。
所有 WaveCyclic 或 WavePci 轉譯裝置都會提供一或多個硬體針腳來混合音訊串流。 如果是單一串流裝置, KMixer 系統驅動程式 一律會在一個可用的硬體轉譯針腳上具現化。
具有 DirectSound 硬體加速的裝置提供一個以上的硬體混合針腳。 每個額外的針腳都可以用來混合 DirectSound 資料流程。 饋送至硬體混音器針腳的 DirectSound 資料流程會略過 KMixer,並避免在 KMixer 中混合軟體的延遲。 只要這些接腳具有符合 DirectSound 節點排序需求的拓撲,DirectSound就會使用所有音訊裝置可用的硬體加速混音器針腳。 DirectSound 也需要針腳支援KSDATAFORMAT_SPECIFIER_DSOUND (指定的 DirectSound 資料格式,請參閱 DirectSound 資料流程資料格式) 。
SysAudio 系統驅動程式一律會為 KMixer 保留一個硬體針腳,如此一來,在其他 (未保留) 硬體針腳都已配置之後,KMixer 可以混合任何其他資料流程,並饋送至保留的硬體針腳。
使用 DirectSound 軟體和硬體緩衝區轉譯 Wave 內容中的圖表說明這些概念。
如果音訊裝置提供足夠的硬體混合針腳,則所有 DirectSound 應用程式的輸出資料流程都可以以硬體加速。 如果沒有,DirectSound 應用程式有幾個選項:
它可以以靜態方式將可用的硬體混合針腳配置至需要最低延遲的資料流程。
它可以藉由將針腳視為共用資源的集區,以動態方式將可用的硬體混合釘選配置至資料流程。
如需詳細資訊,請參閱Microsoft Windows SDK檔中的語音管理討論。
DirectSound 可以使用兩種類型的硬體混音器針腳:2D 和 3D。 2D 針腳會執行 SRC、衰減和混合,但不會執行 3D 定位。 DirectSound 可以使用 2D 針腳來執行 3D 定位,方法是在軟體中執行必要的衰減和頻率計算,並將結果套用至 2D 針腳上的適當節點。 相反地,3D 針腳包含 3D 節點,能夠直接從 3D 緩衝區和 3D 接聽程式屬性計算自己的 3D 效果,而不是依賴 DirectSound 來執行這項操作。 如需 3D 節點的屬性清單,請參閱 KSNODETYPE_3D_EFFECTS。 如需 2D 和 3D 針腳的詳細資訊,請參閱 在 WDM 音訊中支援 2D DirectSound 加速 ,以及在 WDM 音訊中支援 3D DirectSound 加速。