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.
- Per l'interfaccia FMTransform inizializzare il tipo di supporto come descritto in Tipi di supporti audio non compressi.
- Per l'interfaccia IMediaObject , il tipo di supporto deve essere un tipo di FORMAT_WaveFormatEx . Per altre informazioni, vedere DMO_MEDIA_TYPE.
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 |
|
DLL |
|