Audio Resampler DSP

Il resampler audio esegue una o entrambe le azioni seguenti in un flusso audio.

  • Modificare la frequenza di campionamento.
  • Modificare il numero di canali.

CLSID

CLSID_CResamplerMediaObject

Interfacce

Formati

PCM o IEEE a virgola mobile

Il tipo di supporto deve specificare un formato audio PCM non compresso o a virgola mobile.

Proprietà

Attributi obbligatori

Il resampler richiede che gli attributi seguenti siano impostati su di esso:

Mapping del canale personalizzato

Il resampler audio esegue il mapping dei canali audio di input ai canali audio di output, in base alle informazioni seguenti:

  • Il numero di canali. Viene specificato nell'attributo MF_MT_AUDIO_NUM_CHANNELS del tipo di supporto o nel membro nChannels della struttura WAVEFORMATEX .
  • Maschera del canale, che assegna i canali alla posizione dell'altoparlante. La maschera del canale viene specificata nell'attributo MF_MT_AUDIO_CHANNEL_MASK del tipo di supporto o nel membro dwChannelMask della struttura WAVEFORMATEXTENSIBLE .
  • Matrice di pesi di mapping.

La matrice contiene una serie di pesi, in modo che ogni canale di output sia una media ponderata dei canali di input.

È possibile specificare una matrice personalizzata per il mapping dei canali chiamando IWMResamplerProps::SetUserChannelMtx o impostando la proprietà MFPKEY_WMRESAMP_CHANNELMTX . Se non viene fornita una matrice personalizzata, il resampler audio usa un set di matrici predefinite.

Mapping del canale predefinito

Se non si specifica una matrice personalizzata, il DSP di resampler audio usa i valori predefiniti per il mapping dei canali.

Nelle tabelle seguenti i canali sono abbreviati:

  • L: Sinistra
  • R: Destra
  • C: Centro
  • LFE: effetti di bassa frequence
  • BL: Indietro sinistra
  • BR: Indietro destra
  • SL: Circondato a sinistra
  • SR: Circondato da destra

La tabella seguente mostra i coefficienti predefiniti per il mapping di 6 canali (maschera 0x3F) a 2 canali.

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

La tabella seguente mostra i coefficienti predefiniti per il mapping di 6 canali (maschera 0x60F) a 2 canali.

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

La tabella seguente mostra i coefficienti predefiniti per il mapping di 6 (maschera 0x3F o 0x60F) canali a 1 canale.

L R C LFE BL(SL) BR(SR)
C 0.192 0.192 0.192 0.038 0.192 0.192

La tabella seguente mostra i coefficienti predefiniti per il mapping di 8 canali (maschera 0x63F) a 2 canali.

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

La tabella seguente mostra i coefficienti predefiniti per il mapping di 8 canali (maschera 0x63F) a 1 canale.

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

La tabella seguente mostra i coefficienti predefiniti per il mapping di 8 canali (maschera 0x63F) a 6 canali (maschera 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

La tabella seguente illustra i coefficienti predefiniti per il mapping di 8 canali (maschera 0x63F) a 6 canali (maschera 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
SUOR 0 0 0 0 0.124 0.429 0 0.447

Per comprendere come interpretare le tabelle dei coefficienti, considerare la prima tabella, che esegue il mapping di 6 canali a 2. La prima riga della tabella (0.314, 0, 0.222, 0.031, 0.268, 0.164) è un vettore di pesi che specifica quanto pesantemente ogni canale di input contribuisce al canale sinistro dell'output. La seconda riga della tabella (0, 0.314, 0.222, 0.031, 0.164, 0.268) è un vettore di pesi che specifica quanto pesantemente ogni canale di input contribuisce al canale destro dell'output.

Le formule seguenti illustrano come vengono calcolati i canali di output.

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

Nota

Se si usa il provider di servizi di distribuzione audio per aumentare il numero di canali, ai canali aggiunti verranno assegnati valori pari a 0.

Qualità output

È possibile specificare la qualità di output del DSP Audio Resampler chiamando IWMResamplerProps::SetHalfFilterLength o impostando la proprietà MFPKEY_WMRESAMP_FILTERQUALITY . Se non si specifica la qualità dell'output, il DSP Audio Resampler usa un valore di qualità predefinito pari a 30.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista [solo app desktop]
Server minimo supportato
Windows Server 2008 [solo app desktop]
Intestazione
Wmcodecdsp.h
DLL
Resampledmo.dll

Vedi anche

Processori di segnali digitali