Audio-Resampler-DSP
Der Audio resampler führt eine oder beide der folgenden Aktionen für einen Audiodatenstrom aus.
- Ändern Sie die Samplingrate.
- Ändern Sie die Anzahl der Kanäle.
CLSID
CLSID_CResamplerMediaObject
Schnittstellen
Formate
PCM oder IEEE-Gleitkomma
Der Medientyp muss ein unkomprimiertes PCM- oder Gleitkomma-Audioformat angeben.
- Initialisieren Sie für die IMFTransform-Schnittstelle den Medientyp, wie unter Unkomprimierte Audiomedientypen beschrieben.
- Für die IMediaObject-Schnittstelle muss der Medientyp ein FORMAT_WaveFormatEx Typ sein. Weitere Informationen finden Sie unter DMO_MEDIA_TYPE.
Eigenschaften
Erforderliche Attribute.
Für den Resampler müssen die folgenden Attribute festgelegt werden:
Benutzerdefinierte Kanalzuordnung
Der Audioresampler ordnet die Eingabeaudiokanäle den Ausgabeaudiokanälen zu, basierend auf den folgenden Informationen:
- Die Anzahl der Kanäle. Dies wird im MF_MT_AUDIO_NUM_CHANNELS-Attribut des Medientyps oder im nChannels-Member der WAVEFORMATEX-Struktur angegeben.
- Die Kanalmaske, die Kanäle der Sprecherposition zuweist. Die Kanalmaske wird im MF_MT_AUDIO_CHANNEL_MASK-Attribut des Medientyps oder im dwChannelMask-Element der WAVEFORMATEXTENSIBLE-Struktur angegeben.
- Eine Matrix mit Zuordnungsgewichten.
Die Matrix enthält eine Reihe von Gewichtungen, sodass jeder Ausgabekanal ein gewichteter Durchschnitt der Eingabekanäle ist.
Sie können eine benutzerdefinierte Matrix für die Kanalzuordnung angeben, indem Sie IWMResamplerProps::SetUserChannelMtx aufrufen oder die eigenschaft MFPKEY_WMRESAMP_CHANNELMTX festlegen. Wenn keine benutzerdefinierte Matrix bereitgestellt wird, verwendet der Audio resampler einen Satz von Standardmatrizen.
Standardkanalzuordnung
Wenn Sie keine benutzerdefinierte Matrix angeben, verwendet der DSP für Audio Resampler Standardwerte für die Kanalzuordnung.
In den folgenden Tabellen werden die Kanäle abgekürzt:
- L: Links
- R: Rechts
- C: Mitte
- LFE: Geringe Frequence-Effekte
- BL: Links hinten
- BR: Zurück rechts
- SL: Links einschließen
- SR: Rechts einschließen
Die folgende Tabelle zeigt die Standardkoeffizienten für die Zuordnung von 6 Kanälen (Maskierung 0x3F) zu 2 Kanälen.
L | R | C | LFE | BL | BR | |
---|---|---|---|---|---|---|
L | 0.314 | 0 | 0.222 | 0.031 | 0,268 | 0.164 |
R | 0 | 0.314 | 0.222 | 0.031 | 0.164 | 0,268 |
In der folgenden Tabelle sind die Standardkoeffizienten für die Zuordnung von 6 Kanälen (Maskierung 0x60F) zu 2 Kanälen aufgeführt.
L | R | C | LFE | SL | SR | |
---|---|---|---|---|---|---|
L | 0.320 | 0 | 0.226 | 0.032 | 0.292 | 0.130 |
R | 0 | 0.320 | 0.226 | 0.032 | 0.130 | 0.292 |
In der folgenden Tabelle sind die Standardkoeffizienten für die Zuordnung von 6 Kanälen (Maskierung 0x3F oder 0x60F) zu 1 Kanal aufgeführt.
L | R | C | LFE | BL(SL) | BR(SR) | |
---|---|---|---|---|---|---|
C | 0.192 | 0.192 | 0.192 | 0.038 | 0.192 | 0.192 |
Die folgende Tabelle zeigt die Standardkoeffizienten für die Zuordnung von 8 Kanälen (Maske 0x63F) zu 2 Kanälen.
L | R | C | LFE | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
L | 0.222 | 0 | 0.157 | 0,022 | 0,189 | 0,116 | 0.203 | 0.090 |
R | 0 | 0.222 | 0.157 | 0,022 | 0,116 | 0,189 | 0.090 | 0.203 |
Die folgende Tabelle zeigt die Standardkoeffizienten für die Zuordnung von 8 Kanälen (Maske 0x63F) zu 1 Kanal.
L | R | C | LFE | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
C | 0.139 | 0.139 | 0.139 | 0.028 | 0.139 | 0.139 | 0.139 | 0.139 |
In der folgenden Tabelle sind die Standardkoeffizienten für die Zuordnung von 8 Kanälen (Maskierung 0x63F) zu 6 Kanälen (Maskierung 0x3F) aufgeführt.
L | R | C | LFE | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
L | 0.518 | 0 | 0 | 0 | 0 | 0 | 0,189 | 0 |
R | 0 | 0.518 | 0 | 0 | 0 | 0 | 0 | 0,189 |
C | 0 | 0 | 0.518 | 0 | 0 | 0 | 0 | 0 |
LFE | 0 | 0 | 0 | 0.518 | 0 | 0 | 0 | 0 |
BL | 0 | 0 | 0 | 0 | 0.518 | 0 | 0.482 | 0 |
BR | 0 | 0 | 0 | 0 | 0 | 0.518 | 0 | 0.482 |
Die folgende Tabelle zeigt die Standardkoeffizienten für die Zuordnung von 8 Kanälen (Maske 0x63F) zu 6 Kanälen (Maskierung 0x60F).
L | R | C | LFE | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
L | 0.447 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
R | 0 | 0.447 | 0 | 0 | 0 | 0 | 0 | 0 |
C | 0 | 0 | 0.447 | 0 | 0 | 0 | 0 | 0 |
LFE | 0 | 0 | 0 | 0.447 | 0 | 0 | 0 | 0 |
SL | 0 | 0 | 0 | 0 | 0.429 | 0.124 | 0.447 | 0 |
SR | 0 | 0 | 0 | 0 | 0.124 | 0.429 | 0 | 0.447 |
Um zu verstehen, wie die Tabellen mit Koeffizienten interpretiert werden, betrachten Sie die erste Tabelle, in der 6 Kanäle 2 zugeordnet werden. Die erste Zeile der Tabelle (0,314, 0, 0,222, 0,031, 0,268, 0,164) ist ein Vektor von Gewichtungen, der angibt, wie stark jeder Eingabekanal zum linken Kanal der Ausgabe beiträgt. Die zweite Zeile der Tabelle (0, 0,314, 0,222, 0,031, 0,164, 0,268) ist ein Gewichtungsvektor, der angibt, wie stark jeder Eingabekanal zum richtigen Kanal der Ausgabe beiträgt.
Die folgenden Formeln zeigen, wie die Ausgabekanäle berechnet werden.
L_out = L*0.314 + C*0.222 + LFE*0.031 + BL*0.268 + BR*0.164
R_out = R*0.314 + C*0.222 + LFE*0.031 + BL*0.164 + BR*0.268
Hinweis
Wenn Sie den Audio Resampler-DSP verwenden, um die Anzahl der Kanäle zu erhöhen, werden den hinzugefügten Kanälen Werte von 0 zugewiesen.
Ausgabequalität
Sie können die Ausgabequalität des Audio Resampler-DSP angeben, indem Sie IWMResamplerProps::SetHalfFilterLength aufrufen oder die MFPKEY_WMRESAMP_FILTERQUALITY-Eigenschaft festlegen. Wenn Sie die Ausgabequalität nicht angeben, verwendet der Audio Resampler DSP den Standardwert 30.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2008 [nur Desktop-Apps] |
Header |
|
DLL |
|