Windows 10: Neuerungen für Audiotreiber
Dieses Thema enthält eine allgemeine Zusammenfassung der Neuerungen für Audio für Windows 10.
Zusammenfassung der Funktionen
Hier sind die neuen Audiofeatures in Windows 10.
Verbesserungen bei Audio mit geringer Latenz
Die Audiolatenz ist die Verzögerung zwischen der Entstehung des Tons und dem Zeitpunkt, zu dem er gehört wird. Eine niedrige Audiolatenz ist für mehrere Schlüsselszenarien, wie zum Beispiel die folgenden, sehr wichtig.
- Pro Audio
- Musikerstellung und -mischung
- Kommunikation wie Skype
- Virtual und Augmented Reality
- Spiele
Die Gesamtlatenz eines Geräts ist die Summe der Latenzen der folgenden Komponenten:
- Betriebssystem
- Audioverarbeitungsobjekte
- Audiotreiber
- Audiohardware
In Windows 10 wurde daran gearbeitet, die Latenz im Betriebssystem zu reduzieren. Ohne Treiberänderungen erfahren Anwendungen in Windows 10 eine um 4,5–16 ms geringere Latenz. Wenn der Treiber außerdem aktualisiert wurde, um die neuen DDIs mit geringer Latenz zu nutzen, die kleine Puffer zur Verarbeitung von Audiodaten verwenden, wird die Latenz noch weiter reduziert. Wenn ein Treiber 3-ms-Audiopuffer unterstützt, beträgt die Roundtrip-Latenz etwa 10 ms.
Der Audiostapel unterstützt mehrere Paketgrößen und dynamische Paketgrößenanpassungen, um den Kompromiss zwischen Latenz und Leistung basierend auf dem Szenario des Benutzers zu optimieren. Darüber hinaus werden Streams priorisiert, um sicherzustellen, dass Streams mit hoher Priorität (z. B. Telefonanrufe) über dedizierte Ressourcen verfügen.
Damit Audiotreiber eine niedrige Latenz unterstützen, bietet Windows 10 die folgenden drei neuen Funktionen:
- [Verpflichtend] Deklarieren Sie die minimale Puffergröße, die in jedem Modus unterstützt wird.
- [Optional, aber empfohlen] Verbessern Sie die Koordination für den Datenfluss zwischen dem Treiber und dem Betriebssystem.
- [Optional, aber empfohlen] Registrieren Sie die Treiberressourcen (Interrupts, Threads), damit sie im Betriebssystem in Szenarien mit geringer Latenz geschützt werden können. Weitere Informationen finden Sie unter Audio mit niedriger Latenz.
Signalverarbeitungsmodi und Audiokategorien
Signalverarbeitungsmodi
Treiber deklarieren die unterstützten Audiosignalverarbeitungsmodi für jedes Gerät.
Audiokategorien (ausgewählt nach Anwendungen) werden Audiomodi zugeordnet (definiert durch Treiber). Windows definiert sieben Audiosignalverarbeitungsmodi. OEMs und IHVs können bestimmen, welche Modi implementiert werden sollen. Diese Modi werden in der nachstehenden Tabelle zusammengefasst.
Mode | Rendern/Erfassen | Beschreibung |
---|---|---|
Raw | Beides | Der unformatierte Modus gibt an, dass keine Signalverarbeitung auf den Datenstrom angewendet werden soll. Eine Anwendung kann einen Rohdatenstrom anfordern, der völlig unberührt ist und eine eigene Signalverarbeitung durchführt. |
Standard | Beides | Dieser Modus definiert die Standardaudioverarbeitung. |
Filme* | Rendern | Audiowiedergabe von Filmen |
Medien* | Beides | Audiowiedergabe von Musik (Standard für die meisten Mediendatenströme) |
Speech* | Capture | Menschliche Spracherfassung (z. B. Eingabe für Cortana) |
Kommunikationen* | Beides | VOIP-Rendern und Erfassen (z. B. Skype, Lync) |
Benachrichtigung* | Rendern | Klingeltöne, Alarme, Warnungen usw. |
Audiogerätetreiber müssen mindestens den unformatierten oder Standardmodus unterstützen. Die Unterstützung zusätzlicher Modi ist optional.
Dedizierte Modi für Sprache, Film, Musik und Kommunikation. Audiotreiber können je nach Streamtyp unterschiedliche Audioformate und -verarbeitungen definieren.
Audiokategorien
In der folgenden Tabelle sind die Audiokategorien in Windows 10 aufgeführt.
Um das System über die Verwendung eines Audiodatenstroms zu informieren, haben Anwendungen die Möglichkeit, den Datenstrom mit einer bestimmten Audiodatenstromkategorie zu kategorisieren. In Windows 10 gibt es neun Audiodatenstromkategorien.
Category | Beschreibung |
---|---|
Film* | Filme, Video mit Dialogfeld (Ersetzt ForegroundOnlyMedia) |
Medien* | Standardkategorie für die Medienwiedergabe (Ersetzt BackgroundCapableMedia) |
Game Chat* | In-Game-Kommunikation zwischen Benutzern (neue Kategorie in Windows 10) |
Speech* | Spracheingabe (z. B. persönlicher Assistent) und Ausgabe (z. B. Navigations-Apps) (Neue Kategorie in Windows 10) |
Kommunikation | VOIP, Echtzeitchat |
Alerts | Alarm, Klingelton, Benachrichtigungen |
Soundeffekte | Signaltöne, Dings usw. |
Spielemedien | Musik aus dem Spiel |
Spieleffekte | Aufprallende Bälle, Motorgeräusche, Projektile, usw. |
Andere | Nicht kategorisierte Datenströme |
*Neu in Windows 10.
Weitere Informationen finden Sie unter Audiosignalverarbeitungsmodi und Audioverarbeitungsobjektarchitektur.
Hardware-ausgelagerte APO-Effekte
Windows 10 unterstützt Hardware-ausgelagerte APO-Effekte. APOs können über dem Auslagerungs-Pin geladen werden. Dies ermöglicht es, dass die Audioverarbeitung sowohl in Software als auch in der Hardware erfolgen kann. Darüber hinaus kann sich die Verarbeitung dynamisch ändern. Ein Teil oder die gesamte Verarbeitung kann vom Software-APO zum DSP verlagert werden, wenn genügend Hardwareressourcen vorhanden sind, und dann zurück zum Software-APO verlagert werden, wenn die Auslastung des DSP zunimmt.
Weitere Informationen finden Sie unter Implementieren von Hardware-ausgelagerten APO-Effekten.
Cortana-Sprachaktivierung – Wake on Voice
Cortana, die Technologie des persönlichen Assistenten wurde erstmals auf der Microsoft BUILD Developer Conference im Jahr 2013 demonstriert. Die Sprachaktivierung ist ein Feature, mit dem Benutzer ein Spracherkennungsmodul aus verschiedenen Geräteleistungszuständen aufrufen können, indem sie einen bestimmten Ausdruck sagen: „Hey Cortana“. Mit der Sprachaktivierungsfunktion „Hey Cortana“ (VA) können Benutzer eine Erfahrung (z. B. Cortana) außerhalb ihres aktiven Kontexts (d. h. was derzeit auf dem Bildschirm ist) mithilfe ihrer Stimme schnell einbinden. Die Funktion ist für Szenarien gedacht, in denen der Bildschirm ausgeschaltet, inaktiv oder vollständig aktiv ist. Wenn die Hardware Pufferung unterstützt, können Benutzer den Schlüsselausdruck und Befehlsausdruck miteinander verketten. Dies verbessert das End-to-End-Wake-on-Voice-Erlebnis für den Benutzer. Weitere Informationen finden Sie unter Sprachaktivierung.
Windows Universal Drivers für Audio
Windows 10 unterstützt ein Treibermodell, das für PCs und 2:1 funktioniert, und Windows 10 für Telefone und Tablets mit kleinem Bildschirm. Dies bedeutet, dass IHVs ihre Treiber auf einer Plattform entwickeln können und dass der Treiber auf allen Geräten (Desktops, Laptops, Tablets, Telefone) funktioniert. Das Ergebnis ist eine geringere Entwicklungszeit und -kosten.
Um universelle Audiotreiber zu entwickeln, verwenden Sie die folgenden Tools:
- Visual Studio 2015: Neue Treibereinstellungen ermöglichen die Einstellung der „Zielplattform“ auf „Universal“, um einen Multiplattform-Treiber zu erstellen.
- APIValidator: Dabei handelt es sich um ein WDK-Tool, das prüft, ob der Treiber universell ist, und Aufrufe hervorhebt, die aktualisiert werden müssen.
- Audiobeispiele in GitHub: Sysvad und SwapAPO wurden in universelle Treiber konvertiert. Weitere Informationen und Zeiger auf GitHub-Beispielcode finden Sie unter Universal Windows Drivers für Audio.
Ressourcenverwaltung für Audiotreiber
Eine Herausforderung beim Erstellen eines guten Audioerlebnisses auf einem kostengünstigen Mobilgerät besteht darin, dass für einige Geräte verschiedene Einschränkungen hinsichtlich der Parallelität gelten. Beispielsweise ist es möglich, dass das Gerät nur bis zu sechs Audiostreams gleichzeitig abspielen kann und nur zwei Auslagerungsstreams unterstützt. Bei einem aktiven Telefongespräch auf einem Mobilgerät kann es sein, dass das Gerät nur zwei Audiostreams unterstützt. Wenn das Gerät Audio erfasst, kann das Gerät nur bis zu vier Audiostreams wiedergeben.
Windows 10 verfügt über einen Mechanismus zum Ausdrücken von Parallelitätsbeschränkungen, um sicherzustellen, dass Audiostreams mit hoher Priorität und Mobiltelefonanrufe abgespielt werden können. Wenn das System nicht über genügend Ressourcen verfügt, werden Streams mit niedriger Priorität beendet. Dieser Mechanismus ist nur auf Smartphones und Tablets verfügbar, nicht auf Desktops oder Laptops.
Weitere Informationen finden Sie unter Ressourcenverwaltung für Audiohardware.
PNP-Ausgleich für Audiotreiber
Der PNP-Ausgleich wird in bestimmten PCI-Szenarien verwendet, in denen Speicherressourcen neu zugeordnet werden müssen. In diesem Fall werden einige Treiber entladen und dann an anderen Speicherorten neu geladen, um freien zusammenhängenden Speicherplatz zu schaffen. Der Ausgleich kann in zwei Standardszenarien ausgelöst werden:
- PCI-Hotplug: Ein Benutzer schließt ein Gerät an und der PCI-Bus verfügt nicht über genügend Ressourcen, um den Treiber für das neue Gerät zu laden. Einige Beispiele für Geräte, die in diese Kategorie fallen, sind Thunderbolt, USB-C und NVME Storage. In diesem Szenario müssen die Speicherressourcen neu angeordnet und konsolidiert (ausgeglichen) werden, um die zusätzlich hinzugefügten Geräte zu unterstützen.
- In der Größe veränderbare PCI-BARs: Nachdem ein Treiber für ein Gerät erfolgreich in den Speicher geladen wurde, fordert es zusätzliche Ressourcen an. Einige Beispiele für Geräte sind High-End-Grafikkarten und Speichergeräte. Weitere Informationen finden Sie unter Implementieren des PnP-Ausgleichs für PortCls-Audiotreiber.