Condividi tramite


Codificatore audio digitale Dolby

Il codificatore audio Dolby è una trasformazione di Media Foundation (MFT) che codifica audio mono o stereo in Dolby Digital, chiamata anche Dolby AC-3. Il codificatore non supporta l'input multicanale, ad esempio la configurazione del canale 5.1.

Importante

Per le versioni di Windows precedenti alla Windows 8, l'implementazione Microsoft della tecnologia Dolby Digital è limitata in termini di programma di licenza Dolby Digital da usare dalle applicazioni Microsoft.

 

Per altre informazioni sull'audio Dolby Digital, vedere Advanced Television Systems Committee (ATSC) documento Digital Audio Compression Standard (AC-3, E-AC-3) Revisione B.

Identificatore di classe

L'identificatore di classe (CLSID) del codificatore audio Dolby è CLSID_CMSDolbyDigitalEncMFT definito nel file di intestazione wmcodecdsp.h.

Tipi di output

Il tipo di output deve essere impostato prima del tipo di input. Nella tabella seguente sono elencati gli attributi obbligatori e facoltativi per il tipo di supporto di output.

Attributo Descrizione Osservazioni
MF_MT_MAJOR_TYPE Tipo principale. Obbligatorio. Deve essere MFMediaType_Audio.
MF_MT_SUBTYPE Sottotipo audio. Obbligatorio. Deve essere MFAudioFormat_Dolby_AC3.
MF_MT_AUDIO_SAMPLES_PER_SECOND Campioni al secondo. Obbligatorio. Sono supportati i valori seguenti:
  • 32000
  • 44100
  • 48000
MF_MT_AUDIO_NUM_CHANNELS Numero di canali. Obbligatorio. Deve essere 1 (mono) o 2 (stereo).
MF_MT_AUDIO_CHANNEL_MASK Specifica l'assegnazione di canali audio alle posizioni dell'altoparlante. Facoltativa. Se impostato, il valore deve essere 0x3 per stereo (canali front-sinistro e destro) o 0x4 per mono (canale centrale anteriore).
MF_MT_AUDIO_AVG_BYTES_PER_SECOND Velocità di bit del flusso AC-3 codificato, in byte al secondo. Facoltativa. Vedere Osservazioni per i valori validi. Se questo attributo non è impostato, il codificatore usa una frequenza di bit predefinita, come descritto in Osservazioni.

 

Se gli attributi facoltativi non sono impostati, il codificatore li aggiunge al tipo di supporto dopo l'impostazione del tipo.

Tipi di input

Nella tabella seguente sono elencati gli attributi obbligatori e facoltativi per il tipo di supporto di input.

Attributo Descrizione Osservazioni
MF_MT_MAJOR_TYPE Tipo principale. Obbligatorio. Deve essere MFMediaType_Audio.
MF_MT_SUBTYPE Sottotipo audio. Obbligatorio. Deve essere MFAudioFormat_PCM o MFAudioFormat_Float.
MF_MT_AUDIO_BITS_PER_SAMPLE Numero di bit per esempio audio. Obbligatorio. Il valore deve essere 16 se il sottotipo è MFAudioFormat_PCM o 32 se il sottotipo è MFAudioFormat_Float.
MF_MT_AUDIO_SAMPLES_PER_SECOND Campioni al secondo. Obbligatorio. Deve corrispondere al tipo di output.
MF_MT_AUDIO_NUM_CHANNELS Numero di canali. Obbligatorio. Deve corrispondere al tipo di output.
MF_MT_AUDIO_BLOCK_ALIGNMENT Allineamento blocchi, in byte. Obbligatorio. Calcolare il valore come indicato di seguito:
  • MFAudioFormat_PCM: numero di canali × 2.
  • MFAudioFormat_Float: numero di canali × 4.
MF_MT_AUDIO_AVG_BYTES_PER_SECOND Frequenza di bit del flusso AC3 codificato, in byte al secondo. Obbligatorio. Deve essere uguale all'allineamento a blocchi × campioni al secondo.
MF_MT_AUDIO_CHANNEL_MASK Specifica l'assegnazione di canali audio alle posizioni dell'altoparlante. Facoltativa. Se impostato, il valore deve corrispondere al tipo di output.
MF_MT_AUDIO_VALID_BITS_PER_SAMPLE Numero di bit validi di dati audio in ogni esempio audio. Facoltativa. Se impostato, il valore deve essere identico a MF_MT_AUDIO_BITS_PER_SAMPLE.

 

Il codificatore non supporta la conversione della frequenza di esempio o la conversione stereo/mono.

Commenti

Ogni frame audio Dolby AC-3 contiene 1536 campioni audio per canale. Tuttavia, ogni buffer di input al codificatore può contenere qualsiasi numero di esempi PCM. Le dimensioni di ogni buffer di input devono essere un multiplo dell'allineamento del blocco. Il codificatore memorizza nella cache gli esempi di input fino a quando non dispone di sufficienti per 1536 esempi audio per canale; a questo punto il codificatore restituisce un frame AC-3.

Ogni buffer di output contiene un frame AC-3 non elaborato. La durata equivale alla durata di 1536 campioni PCM alla frequenza di campionamento corrente (32 msec) a 48 kHz, a 34,83 msec a 44,1 kHz e a 48 msec a 32 kHz. Le dimensioni di ogni buffer di output dipendono dalla frequenza di bit e dalla frequenza di campionamento.

Per specificare la velocità di bit di codifica, impostare l'attributo MF_MT_AUDIO_AVG_BYTES_PER_SECOND nel tipo di output. Nella tabella seguente viene illustrata la relazione tra velocità di bit di codifica e MF_MT_AUDIO_AVG_BYTES_PER_SECOND.

Velocità bit (kbps) MF_MT_AUDIO_AVG_BYTES_PER_SECOND Commenti
64 8000 Solo Mono.
80 10000 Solo Mono.
96 12000 Solo Mono.
112 14000 Solo Mono.
128 16000 Mono o stereo.
160 20000 Mono o stereo.
192 24000 Mono o stereo. Questa è l'impostazione predefinita per mono.
224 28000 Mono o stereo.
256 32000 Mono o stereo. Questa è l'impostazione predefinita per stereo.
320 40000 Solo stereo.
384 48000 Solo stereo.
448 56000 Solo stereo.

 

La velocità di bit di codifica predefinita è impostata su 256 kbps per stereo e 192 kbps per mono. Le impostazioni predefinite vengono riflesse nei tipi di supporti restituiti dal metodo FMTransform::GetOutputAvailableType del codificatore.

Tipi di supporti di esempio

Ecco un esempio dei tipi di supporti necessari per codificare PCM a 16 bit, audio stereo a 48 kHz alla velocità di bit predefinita di 256 kbps.

Tipo di supporto di output:

Attributo Valore
MF_MT_MAJOR_TYPE MFMediaType_Audio
MF_MT_SUBTYPE MFAudioFormat_Dolby_AC3
MF_MT_AUDIO_SAMPLES_PER_SECOND 48000
MF_MT_AUDIO_NUM_CHANNELS 2

 

Tipo di supporto di input:

Attributo Valore
MF_MT_MAJOR_TYPE MFMediaType_Audio
MF_MT_SUBTYPE MFAudioFormat_PCM
MF_MT_AUDIO_BITS_PER_SAMPLE 16
MF_MT_AUDIO_SAMPLES_PER_SECOND 48000
MF_MT_AUDIO_NUM_CHANNELS 2
MF_MT_AUDIO_BLOCK_ALIGNMENT 4
MF_MT_AUDIO_AVG_BYTES_PER_SECOND 192000

 

Requisiti

Requisito Valore
Client minimo supportato
Windows 8 [app desktop | App UWP]
Server minimo supportato
Nessuno supportato
DLL
Msac3enc.dll

Vedi anche

Oggetti codec