Freigeben über


Übersicht über die DirectSound-Hardwarebeschleunigung

Eine Reihe von Audioadaptern bietet die DirectSound-Hardwarebeschleunigung, bei der Hardwaremischung für einen oder mehrere DirectSound-Streams durchgeführt werden kann. Die Hardwaremischung verbessert die Leistung, indem Audiomischvorgänge von der CPU ausgelagert und mit Hardwaregeschwindigkeiten ausgeführt werden. Zusätzlich zum Mischen führt die Hardware verwandte Vorgänge wie sample-rate conversion (SRC), Dämpfung und optional 3D-Verarbeitung durch, die andernfalls in Software ausgeführt werden müssten.

Alle WaveCyclic- oder WavePci-Renderinggeräte verfügen über einen oder mehrere Hardware-Pins zum Mischen von Audiostreams. Bei einem Single-Stream-Gerät wird der KMixer-Systemtreiber immer auf dem jeweils verfügbaren Hardwarerendering-Pin instanziiert.

Geräte mit DirectSound-Hardwarebeschleunigung bieten mehrere Hardwaremischstifte. Jeder zusätzliche Pin kann verwendet werden, um einen DirectSound-Stream zu mischen. DirectSound-Streams, die in Hardwaremixer-Pins eingespeist werden, umgehen KMixer und vermeiden die Latenz der Softwaremischung in KMixer. DirectSound verwendet alle verfügbaren hardwarebeschleunigten Mixer-Pins eines Audiogeräts, solange diese Pins über eine Topologie verfügen, die den Anforderungen der DirectSound-Knotenreihenfolge entspricht. DirectSound erfordert außerdem, dass die Pins das von KSDATAFORMAT_SPECIFIER_DSOUND angegebene DirectSound-Datenformat unterstützen (siehe DirectSound Stream Data Format).

Der SysAudio-Systemtreiber reserviert immer einen Hardware-Pin für KMixer, sodass nach der Zuordnung der anderen (nicht reservierten) Hardware-Pins alle zusätzlichen Datenströme von KMixer gemischt und in den reservierten Hardware-Pin eingespeist werden können.

Die Abbildung unter Rendern von Welleninhalten mithilfe von DirectSound-Software- und Hardwarepuffern veranschaulicht diese Konzepte.

Wenn ein Audiogerät eine ausreichende Anzahl von Hardwaremischpins bereitstellt, können alle Ausgabedatenströme einer DirectSound-Anwendung hardwarebeschleunigt werden. Andernfalls verfügt die DirectSound-Anwendung über mehrere Optionen:

  • Es kann die verfügbaren Hardwaremischungspins statisch den Streams zuordnen, die die niedrigsten Latenzen erfordern.

  • Es kann die verfügbaren Hardwaremischpins dynamisch den Streams zuordnen, wenn sie benötigt werden, indem die Pins als Pool freigegebener Ressourcen behandelt werden.

Weitere Informationen finden Sie in der Microsoft Windows SDK-Dokumentation zur Sprachverwaltung.

DirectSound kann zwei Arten von Hardwaremixer-Pins verwenden: 2D und 3D. Ein 2D-Pin führt SRC, Dämpfung und Mischen aus, aber keine 3D-Positionierung. DirectSound kann einen 2D-Pin verwenden, um die 3D-Positionierung durchzuführen, indem die erforderlichen Dämpfungs- und Frequenzberechnungen in Software durchgeführt und die Ergebnisse auf die entsprechenden Knoten auf dem 2D-Pin angewendet werden. Im Gegensatz dazu enthält ein 3D-Pin einen 3D-Knoten, der seine eigenen 3D-Effekte direkt aus den Eigenschaften 3D-Puffer und 3D-Listener berechnen kann, anstatt sich hierfür auf DirectSound zu verlassen. Eine Liste der Eigenschaften eines 3D-Knotens finden Sie unter KSNODETYPE_3D_EFFECTS. Weitere Informationen zu 2D- und 3D-Pins finden Sie unter Unterstützen der 2D-DirectSound-Beschleunigung in WDM-Audio und Unterstützen der 3D-DirectSound-Beschleunigung in WDM-Audio.