Objektarchitektur der Audioverarbeitung

Audioverarbeitungsobjekte (Audio Processing Objects, APOs) bieten anpassbare softwarebasierte digitale Signalverarbeitung für Windows-Audiostreams.

Übersicht über Audioverarbeitungsobjekte

Windows ermöglicht ES OEMs und Drittanbietern von Audiohardware, benutzerdefinierte digitale Signalverarbeitungseffekte als Teil der Mehrwertfunktionen ihres Audiotreibers einzuschließen. Diese Effekte werden als Benutzermodus-Systemeffekt-Audioverarbeitungsobjekte (APOs) verpackt.

Audioverarbeitungsobjekte (Audio Processing Objects, APOs) bieten softwarebasierte digitale Signalverarbeitung für Windows-Audiostreams. Ein APO ist ein COM-Hostobjekt, das einen Algorithmus enthält, der geschrieben wird, um einen bestimmten DSP-Effekt (Digital Signal Processing) bereitzustellen. Diese Funktion wird informell als "Audioeffekt" bezeichnet. Beispiele für APOs sind grafische Equalizer, Hall, Tremolo, Akustische Echounterdrückung (AEC) und Automatic Gain Control (AGC). APOs sind COM-basierte Echtzeitobjekte in Prozessen.

Hinweis Die Beschreibungen und Terminologie in dieser Dokumentation beziehen sich hauptsächlich auf Ausgabegeräte, z. B. Lautsprecher. Die Technologie ist jedoch symmetrisch und funktioniert im Wesentlichen umgekehrt für Eingabegeräte.

Software-APOs im Vergleich zu Hardware-DSP

Ein Hardware-Digital-Signalprozessor (DSP) ist ein spezialisierter Mikroprozessor (oder ein SIP-Block), dessen Architektur für die betrieblichen Anforderungen der digitalen Signalverarbeitung optimiert ist. Die Implementierung der Audioverarbeitung in speziell entwickelter Hardware kann erhebliche Vorteile gegenüber der Verwendung eines Software-APO haben. Ein Vorteil ist, dass die CPU-Auslastung und der zugehörige Stromverbrauch bei einem hardwarebasierten DSP geringer sein können.

Es gibt weitere Vor- und Nachteile, die Sie berücksichtigen sollten, spezifisch für Ihre Projektziele und Einschränkungen, die Sie vor der Implementierung eines softwarebasierten APO berücksichtigen sollten.

Softwarebasierte Effekte werden bei der Streaminitialisierung in die Softwaregerätepipe eingefügt. Diese Lösungen erledigen alle ihre Auswirkungen auf die Standard CPU und verlassen sich nicht auf externe Hardware. Diese Art von Lösung eignet sich am besten für herkömmliche Windows-Audiolösungen wie HDAudio-, USB- und Bluetooth-Geräte, wenn Treiber und Hardware nur raw-Verarbeitung unterstützen. Weitere Informationen zur RAW-Verarbeitung finden Sie unter Verarbeitungsmodi für Audiosignale.

Proxy-APO für Hardware-DSP

Alle Effekte, die in Hardware-DSP angewendet werden, müssen über einen Proxy-APO angekündigt werden. Microsoft stellt einen Standardproxy-APO (MsApoFxProxy.dll) bereit. Um den von Microsoft bereitgestellten APO verwenden zu können, müssen dieser Eigenschaftssatz und diese Eigenschaft unterstützt werden.

Optional können Sie Ihren eigenen Proxy-APO implementieren.

Windows-bereitgestellte APOs (System)-APOs

Windows installiert einen Standardsatz von APOs, die eine Reihe verschiedener Audioeffekte bieten. Eine Liste der vom System bereitgestellten APO-Effekte finden Sie unter Audiosignalverarbeitungsmodi.

OEMs können alle vom System bereitgestellten APOs enthalten oder einige oder alle durch benutzerdefinierte APOs ersetzen.

Benutzerdefinierte APOs

Es ist möglich, benutzerdefinierte APOs zu erstellen, um die Windows-Audioumgebung durch Hinzufügen zusätzlicher Audioeffekte zu verbessern.

Der OEM kann beim Versand von Windows eine beliebige Kombination der bereitgestellten Windows-APOs und benutzerdefinierten APOs enthalten.

Ein benutzerdefiniertes APO kann von einem OEM oder einem Drittanbieter installiert werden, um das Audioerlebnis nach dem Erwerb des Geräts zu verbessern. Wenn Benutzer einen Audiogerätetreiber mithilfe der Standard-INF-Datei installieren, haben sie automatisch Zugriff auf die APOs des Systems. Unabhängige Hardwareanbieter (IHVs) und Erstgerätehersteller (OEMs) können zusätzliche benutzerdefinierte Systemeffekte bereitstellen, während sie weiterhin die Microsoft-Klassentreiber verwenden. Dazu packen sie ihre DSP-Algorithmen als APOs und ändern die Standard-INF-Datei, um ihre APOs in das Signalverarbeitungsdiagramm der Audio-Engine einzufügen.

Weitere Informationen zum Erstellen benutzerdefinierter APOs finden Sie unter Implementieren von Audioverarbeitungsobjekten.

Benutzerdefinierte APO-Support-App

Damit der Benutzer Einstellungen konfigurieren kann, die Ihrem benutzerdefinierten APO zugeordnet sind, empfiehlt es sich, eine Hardwareunterstützungs-App zu erstellen. Weitere Informationen finden Sie unter Hardwareunterstützungs-App (HSA): Schritte für Treiberentwickler.

Benutzerdefinierte APO-Tests und Anforderungen

Das Microsoft HLK stellt Tests bereit, die mit APOs verwendet werden können. Weitere Informationen zu Audiotests finden Sie unter Device.Audio Testing und Device.Audio Tests.

Diese beiden Tests können besonders nützlich sein, wenn Sie mit APOs arbeiten.

Überprüfen von AudioeffektenErmittlung (manuell) – Zertifizierung

SysFX-Test

Informationen zu Audioanforderungen zur Unterstützung von APOs finden Sie unter Geräte.Audioanforderungen.

Benutzerdefinierte APO-Tools und -Hilfsprogramme

Sie können das Beispiel "Audio effects Discovery Sample" verwenden, um die verfügbaren Audioeffekte zu untersuchen. In diesem Beispiel wird veranschaulicht, wie Audioeffekte auf Render- und Aufzeichnungsgeräten abfragt und wie Änderungen mit den Audioeffekten überwacht werden. Es ist als Teil der SDK-Beispiele enthalten und kann über diesen Link heruntergeladen werden:

Beispiel für die Ermittlung von Audioeffekten

Wahrnehmung von Anwendungsaudioeffekten

Anwendungen können APIs aufrufen, um zu bestimmen, welche Audioeffekte derzeit auf dem System aktiv sind. Weitere Informationen zu den Audioeffekterkennungs-APIs finden Sie unter AudioRenderEffectsManager-Klasse.

Architektur von Audioverarbeitungsobjekten

Platzierung von Audioeffekten

Es gibt drei verschiedene Speicherorte für Audioeffekte, die als APOs implementiert werden. Sie befinden sich in Stream-Effekten (SFX), Moduseffekte (MFX) und Endpunkteffekten (EFX).

Streameffekt (SFX)

Ein Streameffekt-APO weist für jeden Stream eine instance des Effekts auf. Streameffekte befinden sich vor dem Mix (Rendern) oder nach dem Abschlag (Aufzeichnung) für einen bestimmten Modus und können zum Ändern der Kanalanzahl vor dem Mixer verwendet werden. Streameffekte werden nicht für Rohdatenströme verwendet.

Einige Versionen von Windows laden als Optimierung keine SFX- oder MFX-APOs im RAW-Modus.

  • Windows 8.1 lädt keine RAW-SFX- oder RAW-MFX-Instanz.
  • Windows 10 lädt RAW MFX, aber nicht RAW SFX

Moduseffekt (MFX)

Moduseffekte (MFX) werden auf alle Datenströme angewendet, die demselben Modus zugeordnet sind. Moduseffekte werden nach dem Mix (Rendern) oder vor dem Abschlag (Capture) für einen bestimmten Modus, aber vor dem Mix (Rendern) oder nach dem Abschlag (Capture) aller Modi angewendet. Alle szenariospezifischen Effekte oder Effekte, die nicht die Besonderheiten des Streameffekts benötigen, sollten hier platziert werden. Es ist energieeffizienter, einen Moduseffekt zu verwenden, da es einen instance für mehrere Datenströme gibt, die die gleichen Merkmale wie Periodizität und Format aufweisen.

Endpunkteffekt (EFX)

Endpunkteffekt (Endpoint Effect, EFX) werden auf alle Datenströme angewendet, die denselben Endpunkt verwenden. Ein Endpunkteffekt wird immer angewendet, auch auf Rohdatenströme. Das heißt, es ist nach dem Mischen (Rendern) oder vor dem Abschlag (Capture) aller Modi. Die Endpunkteffekte sollten mit Bedacht verwendet werden, und im Zweifelsfall sollte ein Effekt im Bereich Modus platziert werden. Einige Effekte, die im Endpunktbereich platziert werden sollten, sind Sprecherschutz und Sprecherkompensation.

Dieses Diagramm zeigt die möglichen Speicherorte für Die Effekte Stream (SFX), Modus (MFX) und Endpunkte (EFX) für Windows 10.

Diagramm, das die Platzierung von Stream-, Modus- und Endpunkteffekten in Windows 10 veranschaulicht.

Mehrere benutzerdefinierte APO-Effekte

Es ist möglich, mehrere APO-basierte Effekte für die Verwendung mit verschiedenen Anwendungen zu konfigurieren.

Dieses Diagramm veranschaulicht, wie mehrere Anwendungen auf mehrere Kombinationen von Stream-, Modus- und Endpunkt-APO-Effekten zugreifen können. Alle APOs sind COM-basiert und werden im Benutzermodus ausgeführt. In diesem Szenario wird keiner der Effekte auf Hardware oder im Kernelmodus ausgeführt.

Diagramm, das zeigt, wie mehrere Anwendungen auf verschiedene Kombinationen von Stream-, Modus- und Endpunkt-APO-Effekten zugreifen können.

Hinweis Sie können die Bildlaufleiste ganz unten auf dieser Seite verwenden, um das gesamte Diagramm anzuzeigen.

Softwaremoduseffekte und Hardwareendpunkteffekte für Rendern und Erfassen

Dieses Diagramm veranschaulicht Softwaremoduseffekte und Hardwareendpunkte für Rendern und Erfassen.

Diagramm mit Softwaremoduseffekten und Hardwareendpunkteffekten für Render- und Aufzeichnungsprozesse

DSP-ausgerüstetes System mit Hardwareeffekten

Dieses Diagramm veranschaulicht ein mit DSP ausgestattetes System, das Effekte in der Hardware implementiert. In diesem Szenario sollte ein Proxy-APO erstellt werden, um die Apps über die Auswirkungen zu informieren, die in der Hardware implementiert sind.

Diagramm eines mit DSP ausgestatteten Systems, das Effekte in Hardware implementiert.

Windows-Audioverarbeitungsobjekte

Hardwareabgeladene Audiotreiberimplementierung