DSP de rééchantillonnage audio
Le rééchantillonleur audio effectue l’une des actions suivantes ou les deux sur un flux audio.
- Modifiez le taux d’échantillonnage.
- Modifiez le nombre de canaux.
CLSID
CLSID_CResamplerMediaObject
Interfaces
Formats
Virgule flottante PCM ou IEEE
Le type de média doit spécifier un format audio PCM ou à virgule flottante non compressé.
- Pour l’interface IMFTransform , initialisez le type de média comme décrit dans Types de médias audio non compressés.
- Pour l’interface IMediaObject , le type de média doit être un type FORMAT_WaveFormatEx . Pour plus d’informations, consultez DMO_MEDIA_TYPE.
Propriétés
Attributs requis
Le rééchantillonleur nécessite que les attributs suivants soient définis sur celui-ci :
Mappage de canal personnalisé
Le rééchantillonleur audio mappe les canaux audio d’entrée aux canaux audio de sortie, en fonction des informations suivantes :
- Le nombre de canaux. Cela est indiqué dans l’attribut MF_MT_AUDIO_NUM_CHANNELS du type de média, ou le membre nChannels de la structure WAVEFORMATEX .
- Masque de canal, qui affecte les canaux à la position de l’orateur. Le masque de canal est fourni dans l’attribut MF_MT_AUDIO_CHANNEL_MASK du type de média, ou dans le membre dwChannelMask de la structure WAVEFORMATEXTENSIBLE .
- Matrice de pondérations de mappage.
La matrice contient une série de pondérations, de sorte que chaque canal de sortie soit une moyenne pondérée des canaux d’entrée.
Vous pouvez spécifier une matrice personnalisée pour le mappage de canal en appelant IWMResamplerProps::SetUserChannelMtx ou en définissant la propriété MFPKEY_WMRESAMP_CHANNELMTX . Si aucune matrice personnalisée n’est fournie, le rééchantillonleur audio utilise un ensemble de matrices par défaut.
Mappage de canal par défaut
Si vous ne spécifiez pas de matrice personnalisée, le DSP Audio Resampler utilise des valeurs par défaut pour le mappage de canal.
Dans les tableaux qui suivent, les canaux sont abrégés :
- L : Gauche
- R : Droite
- C : Centre
- LFE: Low Frequence Effects
- BL : Arrière gauche
- BR : Retour à droite
- SL : Entourer à gauche
- SR : Entourer à droite
Le tableau suivant présente les coefficients par défaut pour le mappage de 6 canaux (masque 0x3F) à 2 canaux.
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 |
Le tableau suivant présente les coefficients par défaut pour le mappage de 6 canaux (masque 0x60F) à 2 canaux.
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 |
Le tableau suivant présente les coefficients par défaut pour le mappage de 6 canaux (masque 0x3F ou 0x60F) à 1 canal.
L | R | C | LFE | BL(SL) | BR(SR) | |
---|---|---|---|---|---|---|
C | 0.192 | 0.192 | 0.192 | 0.038 | 0.192 | 0.192 |
Le tableau suivant montre les coefficients par défaut pour le mappage de 8 canaux (masque 0x63F) à 2 canaux.
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 |
Le tableau suivant montre les coefficients par défaut pour le mappage de 8 canaux (masque 0x63F) à 1 canal.
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 |
Le tableau suivant montre les coefficients par défaut pour le mappage de 8 canaux (masque 0x63F) à 6 canaux (masque 0x3F).
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 |
Le tableau suivant montre les coefficients par défaut pour le mappage de 8 canaux (masque 0x63F) à 6 canaux (masque 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 |
Pour comprendre comment interpréter les tables de coefficients, considérez le premier tableau, qui mappe 6 canaux à 2. La première ligne de la table (0,314, 0, 0,222, 0,031, 0,268, 0,164) est un vecteur de pondérations qui spécifie la façon dont chaque canal d’entrée contribue au canal gauche de la sortie. La deuxième ligne de la table (0, 0,314, 0,222, 0,031, 0,164, 0,268) est un vecteur de pondérations qui spécifie la façon dont chaque canal d’entrée contribue au canal droit de la sortie.
Les formules suivantes montrent comment les canaux de sortie sont calculés.
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
Notes
Si vous utilisez le DSP Audio Resampler pour augmenter le nombre de canaux, les canaux ajoutés se verront attribuer des valeurs de 0.
Qualité de sortie
Vous pouvez spécifier la qualité de sortie du DSP de resampler audio en appelant IWMResamplerProps::SetHalfFilterLength ou en définissant la propriété MFPKEY_WMRESAMP_FILTERQUALITY . Si vous ne spécifiez pas la qualité de sortie, le DSP Audio Resampler utilise une valeur de qualité par défaut de 30.
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows Server 2008 [applications de bureau uniquement] |
En-tête |
|
DLL |
|