Partager via


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é.

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
Wmcodecdsp.h
DLL
Resampledmo.dll

Voir aussi

Processeurs de signal numériques