So verwenden Sie das dynamische Bereichssteuerprogramm

Der dynamische Bereich eines Audioinhalts ist im Grunde der Unterschied zwischen der niedrigsten und der maximalen Lautstärke. Wenn der dynamische Bereich des Inhalts zu hoch ist, können Benutzer das Volume während der Wiedergabe wiederholt anpassen. Filme haben z. B. häufig einen hohen dynamischen Bereich. Wenn die Lautstärke so angepasst wird, dass der Dialog während stiller Szenen verstanden werden kann, sind andere Teile des Films mit Musik- oder Soundeffekten häufig lauter als gewünscht.

Die Windows Media Audio 9 Professional und Windows Media Audio 9 Lossless-Codecs unterstützen ein Feature namens dynamische Bereichssteuerung. Zur Codierungszeit berechnet der Codec die Spitzen- und durchschnittlichen Amplitudenwerte im Inhalt, und das Writer-Objekt speichert diese Werte in den Metadaten für den Stream, wenn die Codierung abgeschlossen ist. Optional kann eine Anwendung auch "Zielwerte" als Metadaten schreiben, die Playeranwendungen und der Decoder bei der Wiedergabe der Datei als Hinweise verwenden können. Zur Wiedergabezeit kann eine Anwendung die Ebene der dynamischen Bereichssteuerung angeben, die auf den Audiostream angewendet werden soll.

Windows Media Player implementiert dynamische Bereichssteuerung als Funktion für den stillen Modus.

Verwendung des dynamischen Bereichssteuerbereichs

Dynamische Bereichssteuerung kann den Sound des Inhalts ändern. Aus diesem Grund sollten Sie Ihre Anwendung nicht so konfigurieren, dass die dynamische Bereichssteuerung automatisch verwendet wird. Stellen Sie benutzern stattdessen die Möglichkeit zur Verfügung, die dynamische Bereichssteuerung bei Bedarf zu aktivieren oder zu deaktivieren.

Verwenden der dynamischen Bereichssteuerung

Zur Wiedergabezeit wird die dynamische Bereichssteuerung mithilfe der Ausgabeeinstellung g _ wszDynamicRangeControl aktiviert. Verwenden Sie IWMReaderAdvanced2::SetOutputSetting, um die Einstellung zu konfigurieren. Der Wert 0 (Standard) gibt an, dass der dynamische Bereich nicht geändert werden soll. Der Wert 1 oder 2 signalisiert dem Codec, eine dynamische Bereichssteuerung durchzuführen, wobei 1 eine mittlere Stufe der dynamischen Bereichskomprimierung und 2 ein hohes Maß an dynamischer Bereichskomprimierung ist.

Zur Codierungszeit oder Wiedergabezeit können Sie dem Codec PCM-Zielwerte für die Spitzen- und Durchschnittswerte geben, indem Sie die Attribute WM/WMADRCPeakTarget bzw. WM/WMADRCAverageTarget festlegen. Diese Werte werden als Metadatenattribute gespeichert und sollten mithilfe der Methoden der IWMHeaderInfo3-Schnittstelle aufgerufen werden. Wenn Sie einen Audiostream mit dem professionellen oder verlustlosen Codec codieren, werden die Attribute WM/WMADRCPeakReference und WM/WMADRCAverageReference automatisch auf die Spitzen- und Durchschnittswerte des ursprünglichen Inhalts festgelegt. Die Zielwerte werden standardmäßig auf die gleichen Werte wie die Verweise festgelegt.

Der Decoder zur Wiedergabezeit berechnet den dynamischen Bereich basierend auf der ausgewählten Ebene der dynamischen Bereichssteuerung und den Zielwerten (sofern angegeben). Die möglichen Bereiche sind in der folgenden Tabelle aufgeführt.

Einstellungen Bereich der übermittelten Audiodaten
g _ wszDynamicRangeControl = 0 (Beliebige Zielwerte) Der gleiche Bereich wie der ursprüngliche Inhalt.
g _ wszDynamicRangeControl = 1 (Zielwerte gleich Verweiswerten) Die durchschnittliche Ebene wird beibehalten, und Die Spitzenwerte sind auf den Durchschnitt von +12 dB beschränkt.
g _ wszDynamicRangeControl = 2 (Zielwerte gleich Verweiswerten) Die durchschnittliche Ebene wird beibehalten, und Die Spitzenwerte sind auf den Durchschnitt von +6 dB beschränkt.
g _ wszDynamicRangeControl = 1 (Angegebene Zielwerte) Average level set to the target average value and peaks eingeschränkt auf den Zielspitzenwert.
g _ wszDynamicRangeControl = 2 (Angegebene Zielwerte) Die durchschnittliche Ebene wird auf den durchschnittlichen Zielwert und die Spitzenwerte festgelegt, die auf den Median des Zieldurchschnitts und der Zielspitzenwerte beschränkt sind.

Beachten Sie, dass das dynamische Bereichssteuerelemente nur eine Funktion der Decodierung ist und nur als Metadaten in der Datei selbst vorhanden ist. Diese Einstellungen haben keine Auswirkungen auf den in der Datei gespeicherten Inhalt, es sei denn, Sie weisen den Decoder ausdrücklich an, sie zu verwenden. Das Windows Media Format SDK bietet keine Methoden zum Ändern des dynamischen Bereichs der Audiodaten zur Codierungszeit.

Erweiterte Themen