MXF : Sound : Configuration Audio & Multichannel Audio (MCA)

Références SMPTE 377-1-2019 - MXF - File Format Specification
SMPTE 429-3-2007 - DCP - Sound And Pictures Track File
SMPTE 429-2-2013 - DCP - DCP Operational Constraints
SMPTE 428-12-2013 - DCDM - Common Audio Channels and Soundfield Groups
SMPTE 377-4 - MXF Multichannel Audio Labeling Framework
SMPTE 382M-2007 - MXF - Mapping AES3 and Broadcast Wave Audio into the MXF Generic Container
SMPTE.RDD.0052-2020-D - Cinema Packaging-SMPTE DCP Bv2.1 Application Profile
Modèle KLV Soundfield Group Label Sub-Descriptor : Data Groups - Local Sets
Channel Label Sub-Descriptor : Data Groups - Local Sets
Universal Label KLV :
060e2b34.02530101.0d010101.01016c00 - Multichannel Audio (MCA) Soundfield Group Label Sub-Descriptor
060e2b34.02530101.0d010101.01016b00 - Multichannel Audio (MCA) Channel Label Sub-Descriptor

Channel Assignment dans Wave Audio Descriptor :
060e2b34.0401010b.04020210.03010100 - Channel Configuration 1 - Statique
060e2b34.0401010b.04020210.03010200 - Channel Configuration 2 - Statique
060e2b34.0401010b.04020210.03010300 - Channel Configuration 3 - Statique
060e2b34.0401010b.04020210.03010400 - Channel Configuration 4 - Statique / Dynamique
060e2b34.0401010b.04020210.03010500 - Channel Configuration 5 - Statique
060e2b34.0401010b.04020210.03020000 - MXF Multichannel Audio Framework (MCA) - Dynamique

SoundField Configuration dans Soundfield Group Label Sub-Descriptor :
060e2b34.0101010e.01030701.01000000 - (Item) Multichannel Audio (MCA) Label Dictionnary ID
060e2b34.0401010d.03020201.00000000 - Soundfield Group - 5.1 (L, C, R, Ls, Rs, LFE)
060e2b34.0401010d.03020202.00000000 - Soundfield Group - 7.1DS (L, C, R, Lss, Rss, Lrs, Rrs, LFE)
060e2b34.0401010d.03020203.00000000 - Soundfield Group - 7.1SDS (L, Lc, C, Rc, R, Ls, Rs, LFE)
060e2b34.0401010d.03020204.00000000 - Soundfield Group - 6.1 (L, R, C, Lss, Rss, Cs, LFE)
060e2b34.0401010d.03020205.00000000 - Soundfield Group - Mono

Audio Channel ID :
060e2b34.0401010d.03020101.00000000 - Audio Channel - Left (L)
060e2b34.0401010d.03020102.00000000 - Audio Channel - Right (C)
060e2b34.0401010d.03020103.00000000 - Audio Channel - Center (C)
060e2b34.0401010d.03020104.00000000 - Audio Channel - LFE (LFE)
060e2b34.0401010d.03020105.00000000 - Audio Channel - Left Surround (Ls)
060e2b34.0401010d.03020106.00000000 - Audio Channel - Right Surround (Rs)
060e2b34.0401010d.03020107.00000000 - Audio Channel - Left Side Surround (Lss)
060e2b34.0401010d.03020108.00000000 - Audio Channel - Right Side Surround (Rss)
060e2b34.0401010d.03020109.00000000 - Audio Channel - Left Rear Surround (Lrs)
060e2b34.0401010d.0302010a.00000000 - Audio Channel - Right Rear Surround (Rrs)
060e2b34.0401010d.0302010b.00000000 - Audio Channel - Left Center (Lc)
060e2b34.0401010d.0302010c.00000000 - Audio Channel - Right Center (Rc)
060e2b34.0401010d.0302010d.00000000 - Audio Channel - Center Surround (Cs)
060e2b34.0401010d.0302010e.00000000 - Audio Channel - Hearing Impaired (HI)
060e2b34.0401010d.0302010f.00000000 - Audio Channel - Visually Impaired-Narrative (VIN)

Préface

Revenons aux bases avec quelques principes :

Dans un fichier sonore, vous avez une ou plusieurs pistes (track). Sur chaque piste, vous pouvez avoir un ou plusieurs canaux (channel). Chaque canal va être utile pour une sortie audio physique spécifique 1.

Exemple, dans un fichier sonore basique en stéréo :

Dans cette configuration, nous savons quel canal va vers quelle sortie. Mais quid quand nous avons plusieurs canaux allant jusqu'à 16 ?

Dans un MXF Audio, vous pouvez avoir jusqu'à 16 canaux différents mais comment définir quel canal va être utilisé pour quelle sortie ?

C'est là qu'arrive la configuration audio.

A l'aide de cette dernière, nous allons pouvoir mapper les différents channels.

Nous avons 2 grandes configurations audios :

Chaque configuration possède ses spécificités, nous allons étudier cela.

Channel Assignment : Le point d'entrée

Pour comprendre la configuration audio, revenons sur notre Wave Audio Essence Descriptor. Pour savoir comment vont être interprétés les différents canaux dans un MXF, il faut se reporter à son item Channel Assignment qui sera l'identifiant de notre configuration audio :

╓───────────────────────────────────────────────────────────────────────────────────────────────────────── ║ 3C0A - Instance UID ║ 789a21c7.7ff04185.b85f00f5.7bb5d7f73006 - Linked Track ID ║ 13001 - Sample Rate ║ 24/13002 - Container Duration ║ 243004 - Essence Container ║ 060e2b34.04010101.0d010301.02060100║ (Broadcast Wave audio - frame-based mapping)3D03 - Audio sampling rate ║ 48000/13D02 - Locked/Unlocked ║ False3D07 - ChannelCount ║ 63D01 - Quantization bits ║ 243D0A - Block Align ║ 183D09 - Average Bytes Per Second ║ 8640003D32 - Channel Assignment ║ 060e2b34.0401010b.04020210.03010100║ (SMPTE-429-2 Channel Configuration 1) ╙─────────────────────────────────────────────────────────────────────────────────────────────────────────

Channel Assignment va spécifier dans quelle configuration audio nous serons. Il en existe officiellement 6 : 5 statiques et 1 dynamique (Multichannel Audio (MCA)).

Universal Label Description Type
060e2b340401010b0402021003010100 Channel Configuration 1 Statique
060e2b340401010b0402021003010200 Channel Configuration 2 Statique
060e2b340401010b0402021003010300 Channel Configuration 3 Statique
060e2b340401010b0402021003010400 Channel Configuration 4 Statique / Dynamique
060e2b340401010b0402021003010500 Channel Configuration 5 Statique
060e2b340401010b0402021003020000 MXF Multichannel Audio Framework (MCA) Dynamique

Vous remarquerez que j'ai surligné officiellement pour une raison :

Dans les normes, il est indiqué que pour utiliser le Multichannel Audio Framework (MCA), le Channel Assignment doit être l'Universal Label du Multichannel Audio Framework. Or, dans les faits, quand nous rencontrons une configuration MCA, ils utilisent surtout ... la configuration 4.

D'où le fait que j'ai indiqué Statique/Dynamique car la configuration 4 est dite ouverte, elle n'a aucun canal désigné par avance mais reste tout de même considéré comme "Statique".

Dans la norme de base, il est indiqué que la configuration 4 doit être utilisé pour du test mais dans la norme pour les DCP v2.1, il est indiqué qu'on peut utiliser la configuration 4 pour plaquer aussi une configuration MCA. Ainsi, tout le monde s'est engouffré dans la brèche, et tout le monde utilise la configuration 4 pour faire du Multichannel Audio.

Notez qu'il peut arriver que le Channel Assignement soit absent. Dans ce cas, la valeur par défaut sera Channel Configuration 1. 2

Maintenant que nous savons comment déterminer

Démarrons notre excursion dans les différentes configurations statiques et dynamiques.

Les configurations statiques

Les règles des configurations statiques sont relativement simples, elles spécifient que tel canal sera désigné pour stocker tel type de sortie audio : Par exemple, pour la configuration 1 sur le canal 1, l'audio sera pour le Left.

Les normes SMPTE 429-2 spécifient 5 configurations statiques nommées simplement Channel Configuration 1 à 5.

Cependant, comme vu précédemment, seulement 4 sont réellement statiques : les configurations 1 à 3 et la configuration 5. Le Channel Configuration 4 étant à part, il ne sera donc pas étudié ici, nous le verrons dans la partie Configurations Dynamiques.

Nous avons 16 canaux maximum en tout, mais seulement 10 seront utilisés pour les configurations réellement statiques :

# Channel Config 1 Channel Config 2 Channel Config 3 Channel Config 4 Channel Config 5
1 Left Left Left CH1 Left
2 Right Right Right CH2 Right
3 Center Center Center CH3 Center
4 LFE LFE LFE CH4 LFE
5 Left Surround Left Surround Left Surround CH5 Left Side Surround
6 Right Surround Right Surround Right Surround CH6 Right Side Surround
7 HI Center Surround Left Center CH7 Left Rear Surround
8 VIN - Right Center CH8 Right Rear Surround
9 - HI HI CH9 HI
10 - VIN VIN CH10 VIN
11 - - - CH11 -
12 - - - CH12 -
13 - - - CH13 -
14 - - - CH14 -
15 - - - CH15 -
16 - - - CH16 -
UL 060e2b34
0401010b
04020210
03010100
060e2b34
0401010b
04020210
03010200
060e2b34
0401010b
04020210
03010300
060e2b34
0401010b
04020210
03010400
060e2b34
0401010b
04020210
03010500

Les quelques acronymes du tableau :

Code Nom Description
LFE Screen Low Frequency Effects Le caisson de basses
HI Hearing Impaired Piste dialogues prédominants
VIN Visually Impaired-Narrative Personne qui décrit ce qu'il se passe à l'écran
- Silence Intégrer seulement des zéros dans les données, ne pas produire de son durant la lecture

Voici en image, la configuration des différents éléments sonores dans une salle de cinéma :

Avec ce type de configuration, vous savez où vous mettez les pieds, vous savez directement où se situe les données sans avoir besoin d'étudier d'autres métadonnées. C'est pour cela que dans ce type de MXF, vous ne trouverez que le KLV Wave Audio Essence Descriptor, avec ou sans item Channel Assignment.

Les configurations dynamiques

Officiellement, il n'existe qu'une configuration dynamique, celle avec l'Universal Label Multichannel Audio Framework (MCA), cependant il existe une subtilité particulière avec deux configurations possibles :

Sauf qu'avec le temps, la configuration MCA n'a pas été utilisée (en tout cas, je n'en ai pas trouvé) et tout le monde s'est retournée vers la configuration 4 qui permettait de faire la même chose.

Donc si vous voyez dans Channel Assignement une de ses deux valeurs, vous aurez la configuration MCA active, mais vous verrez plus souvent Channel Assignement avec la Configuration 4 :

Universal Label Description Type
060e2b340401010b0402021003010400 Channel Configuration 4 Statique / Dynamique
060e2b340401010b0402021003020000 MXF Multichannel Audio Framework (MCA) 3 Dynamique

Reprenons notre tableau de tout à l'heure :

# Channel Config 1 Channel Config 2 Channel Config 3 Channel Config 4 Channel Config 5
1 L L L CH1 L
2 R R R CH2 R
3 C C C CH3 C
4 LFE LFE LFE CH4 LFE
5 Ls Ls Ls CH5 Ls
6 Rs Rs Rs CH6 Rs
7 HI Cs Lc CH7 Rls
8 VIN - Rc CH8 Rrs
9 - HI HI CH9 HI
10 - VIN VIN CH10 VIN
11 - - - CH11 -
12 - - - CH12 -
13 - - - CH13 -
14 - - - CH14 -
15 - - - CH15 -
16 - - - CH16 -

Comme vous le constatez, aucune information ne permet de distinguer à quoi vont servir les différents canaux.

Pour cela, nous allons devoir nous appuyer sur d'autres KLV de métadonnées, en intégrant un item que nous n'avons pas vu auparavant, l'item Descriptors & Sub-Descriptors.

Les Sub-Descriptors Audios : Préface

Wave Audio Essence Descriptor peut avoir un item Descriptors & Sub-Descriptors qui vont faire liens avec d'autres KLV de métadonnées.

Un exemple d'un Wave Audio Essence Descriptor avec l'item Descriptors & Sub-Descriptors :

060e2b34.02530101.0d010101.01014800 │ Wave Audio Essence Descriptor ╓────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ║ 3C0A - Instance UID ║ 67a4c301.85fd40c8.ad956f09.d8f9cab1 ║ FFF9 - Descriptors & Sub-Descriptors ║ 9 item(s): ║ ║ - 5d37f679.37a04bfb.bdc1c2e5.d732ad4b (Soundfield Group Label Sub-Descriptor) ║ ║ - 0e371c28.821d440f.83fc4ef7.f663561b (Audio Channel Label Sub-Descriptor) ║ ║ - c37ebbb8.9ebc418f.a98edd0c.726856a7 (Audio Channel Label Sub-Descriptor) ║ ║ - 8efec86a.db944dd8.9a40d86c.d4409d7e (Audio Channel Label Sub-Descriptor) ║ ║ - f49ac040.cba944c5.9c3ebc86.1f98ffe1 (Audio Channel Label Sub-Descriptor) ║ ║ - a34424b7.4d7440cd.916dad63.68411470 (Audio Channel Label Sub-Descriptor) ║ ║ - 62a637a9.74334bd9.b6613e96.0fd272d4 (Audio Channel Label Sub-Descriptor) ║ ║ - 828d7c89.e0674e70.808a8703.134bb15a (Audio Channel Label Sub-Descriptor) ║ (...) ║ ║ 3D32 - Channel Assignment ║ 060e2b34.0401010b.04020210.03010400 ║ ║ (SMPTE-429-2 Channel Configuration 4) ╙────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Chaque Descriptors va faire référence à d'autres KLV : le premier descriptor va se référer à un KLV nommé Soundfield Group Label Sub-Descriptor et les autres descriptors aux KLV Audio Channel Label Sub-Descriptor.

Voici la hiérarchie des métadonnées Sub-Descriptors :

Comme vous le voyez, vous aurez votre KLV Wave Audio Essence Descriptor et, attaché à lui, un KLV Soundfield Group Label Sub-Descriptor accompagné de plusieurs KLV spécifiques Audio Channel Label Sub-Descriptor :

Les Sub-Descriptors Audios : En détail

Le lien entre Wave Audio Essence Descriptor et ses descriptors s'effectue entre Instance UID

Enfin, depuis le KLV Soundfield Group Label Sub-Descriptor grâce à son item MCA Link Id, nous définissons un identifiant utilisé dans chaque KLV Audio Channel Label Sub-Descriptor et défini dans l'item SoundfieldGroup Link ID (d'où le nom... :)

Prenons maintenant les données interpréter d'un KLV Wave Audio Essence Descriptor et de l'ensemble de la configuration Multichannel Audio Framework (Soundfield et Audio Channel) :

060e2b34.02530101.0d010101.01014800 │ Wave Audio Essence Descriptor ╓──────────────────────────────────────────────────────────────────────────────────────────── ║ 3C0A - Instance UID ║ 67a4c301.85fd40c8.ad956f09.d8f9cab1 ║ FFF9 - Descriptors & Sub-Descriptors ║ 9 item(s): ║ ║ - 5d37f679.37a04bfb.bdc1c2e5.d732ad4b (Soundfield Group Label Sub-Descriptor) ║ ║ - 0e371c28.821d440f.83fc4ef7.f663561b (Audio Channel Label Sub-Descriptor) ║ ║ - c37ebbb8.9ebc418f.a98edd0c.726856a7 (Audio Channel Label Sub-Descriptor) ║ ║ - 8efec86a.db944dd8.9a40d86c.d4409d7e (Audio Channel Label Sub-Descriptor) ║ ║ - f49ac040.cba944c5.9c3ebc86.1f98ffe1 (Audio Channel Label Sub-Descriptor) ║ ║ - a34424b7.4d7440cd.916dad63.68411470 (Audio Channel Label Sub-Descriptor) ║ ║ - 62a637a9.74334bd9.b6613e96.0fd272d4 (Audio Channel Label Sub-Descriptor) ║ ║ - 828d7c89.e0674e70.808a8703.134bb15a (Audio Channel Label Sub-Descriptor) ║ 3006 - Linked Track ID ║ 2 ║ 3001 - Sample Rate ║ 24/1 ║ 3002 - Container Duration ║ 3404 ║ 3004 - Essence Container ║ 060e2b34.04010101.0d010301.02060100 (Broadcast Wave audio - frame-based mapping) ║ 3D03 - Audio sampling rate ║ 48000/1 ║ 3D02 - Locked/Unlocked ║ False ║ 3D04 - Audio Ref Level ║ 0 ║ 3D07 - ChannelCount ║ 16 ║ 3D01 - Quantization bits ║ 24 ║ 3D0C - Dial Norm ║ 0 ║ 3D0A - Block Align ║ 48 ║ 3D0B - Sequence Offset ║ 0 ║ 3D09 - Average Bytes Per Second ║ 2304000 ║ 3D32 - Channel Assignment ║ 060e2b34.0401010b.04020210.03010400 (SMPTE-429-2 Channel Configuration 4) ╙────────────────────────────────────────────────────────────────────────────────────────────── 060e2b34.02530101.0d010101.01016c00 │ Soundfield Group Label Sub-Descriptor ╓────────────────────────────────────────────────────────────────────────────────────────────── ║ 3C0A - Instance UID ║ 5d37f679.37a04bfb.bdc1c2e5.d732ad4b ║ FFF8 - MCA Label Dictionnary ID ║ 060e2b34.0401010d.03020201.00000000 (Soundfield Group - 5.1 (L, C, R, Ls, Rs, LFE)) ║ FFF7 - MCA Link ID ║ d5757361.c2924faf.ae8f5b46.4809aa66 ║ FFF6 - MCA Tag Symbol ║ sg51 ║ FFF5 - MCA Tag Name ║ 5.1 ║ FFF4 - RFC 5646 Spoken Language ║ fr ║ FFF3 - MCA Title ║ ║ FFF2 - MCA Title Version ║ ║ FFF1 - MCA Audio Content Kind ║ ║ FFF0 - MCA Audio Element Kind ║ ╙───────────────────────────────────────────────────────────────────────────────────────────── 060e2b34.02530101.0d010101.01016b00 │ Audio Channel Label Sub-Descriptor ╓───────────────────────────────────────────────────────────────────────────────────────────── ║ 3C0A - Instance UID ║ 0e371c28.821d440f.83fc4ef7.f663561b ║ FFF8 - MCA Label Dictionnary ID ║ 060e2b34.0401010d.03020101.00000000 (Audio Channel - Left (L)) ║ FFF7 - MCA Link ID ║ f92da821.6326461c.a736e243.a0548fd4 ║ FFF6 - MCA Tag Symbol ║ chL ║ FFF5 - MCA Tag Name ║ Left ║ FFEF - MCA Channel ID ║ 1 ║ FFF4 - RFC 5646 Spoken Language ║ fr ║ FFEE - SoundfieldGroupLinkID ║ d5757361.c2924faf.ae8f5b46.4809aa66 ╙───────────────────────────────────────────────────────────────────────────────────────────── 060e2b34.02530101.0d010101.01016b00 │ Audio Channel Label Sub-Descriptor (Right) ╓────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ║ 3C0A - Instance UID ║ c37ebbb8.9ebc418f.a98edd0c.726856a7 ║ FFF8 - MCA Label Dictionnary ID ║ 060e2b34.0401010d.03020102.00000000 (Audio Channel - Right (R)) ║ FFF7 - MCA Link ID ║ dde4944c.f02748e1.ab2e84ed.161b8e65 ║ FFF6 - MCA Tag Symbol ║ chR ║ FFF5 - MCA Tag Name ║ Right ║ FFEF - MCA Channel ID ║ 2 ║ FFF4 - RFC 5646 Spoken Language ║ fr ║ FFEE - SoundfieldGroupLinkID ║ d5757361.c2924faf.ae8f5b46.4809aa66 ╙────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 060e2b34.02530101.0d010101.01016b00 │ Audio Channel Label Sub-Descriptor (Center) ╓────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ║ 3C0A - Instance UID ║ 8efec86a.db944dd8.9a40d86c.d4409d7e ║ FFF8 - MCA Label Dictionnary ID ║ 060e2b34.0401010d.03020103.00000000 (Audio Channel - Center (C)) ║ FFF7 - MCA Link ID ║ 21c8259d.fa6e4bc7.9ebfb14b.4c3ceb0a ║ FFF6 - MCA Tag Symbol ║ chC ║ FFF5 - MCA Tag Name ║ Center ║ FFEF - MCA Channel ID ║ 3 ║ FFF4 - RFC 5646 Spoken Language ║ fr ║ FFEE - SoundfieldGroupLinkID ║ d5757361.c2924faf.ae8f5b46.4809aa66 ╙────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 060e2b34.02530101.0d010101.01016b00 │ Audio Channel Label Sub-Descriptor (LFE) ╓─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ║ 3C0A - Instance UID ║ f49ac040.cba944c5.9c3ebc86.1f98ffe1 ║ FFF8 - MCA Label Dictionnary ID ║ 060e2b34.0401010d.03020104.00000000 (Audio Channel - LFE (LFE)) ║ FFF7 - MCA Link ID ║ 08262570.33b84c07.acbfc205.225a01a2 ║ FFF6 - MCA Tag Symbol ║ chLFE ║ FFF5 - MCA Tag Name ║ LFE ║ FFEF - MCA Channel ID ║ 4 ║ FFF4 - RFC 5646 Spoken Language ║ fr ║ FFEE - SoundfieldGroupLinkID ║ d5757361.c2924faf.ae8f5b46.4809aa66 ╙───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 060e2b34.02530101.0d010101.01016b00 │ Audio Channel Label Sub-Descriptor (Left Surround) ╓────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ║ 3C0A - Instance UID ║ a34424b7.4d7440cd.916dad63.68411470 ║ FFF8 - MCA Label Dictionnary ID ║ 060e2b34.0401010d.03020105.00000000 (Audio Channel - Left Surround (Ls)) ║ FFF7 - MCA Link ID ║ 52151320.014147fa.8dacc209.2583cdcc ║ FFF6 - MCA Tag Symbol ║ chLs ║ FFF5 - MCA Tag Name ║ Left Surround ║ FFEF - MCA Channel ID ║ 5 ║ FFF4 - RFC 5646 Spoken Language ║ fr ║ FFEE - SoundfieldGroupLinkID ║ d5757361.c2924faf.ae8f5b46.4809aa66 ╙────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 060e2b34.02530101.0d010101.01016b00 │ Audio Channel Label Sub-Descriptor (Right Surround) ╓────────────────────────────────────────────────────────────────────────────────────────────────--───────────────────── ║ 3C0A - Instance UID ║ 62a637a9.74334bd9.b6613e96.0fd272d4 ║ FFF8 - MCA Label Dictionnary ID ║ 060e2b34.0401010d.03020106.00000000 (Audio Channel - Right Surround (Rs)) ║ FFF7 - MCA Link ID ║ 1d500b9e.9a4c424c.b3f8eb2f.e950c51c ║ FFF6 - MCA Tag Symbol ║ chRs ║ FFF5 - MCA Tag Name ║ Right Surround ║ FFEF - MCA Channel ID ║ 6 ║ FFF4 - RFC 5646 Spoken Language ║ fr ║ FFEE - SoundfieldGroupLinkID ║ d5757361.c2924faf.ae8f5b46.4809aa66 ╙────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 060e2b34.02530101.0d010101.01016b00 │ Audio Channel Label Sub-Descriptor (Visually Impaired-Narrative) ╓────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ║ 3C0A - Instance UID ║ 828d7c89.e0674e70.808a8703.134bb15a ║ FFF8 - MCA Label Dictionnary ID ║ 060e2b34.0401010d.0302010f.00000000 (Audio Channel - Visually Impaired-Narrative (VIN)) ║ FFF7 - MCA Link ID ║ e104e863.56194948.91431863.a3623110 ║ FFF6 - MCA Tag Symbol ║ chVIN ║ FFF5 - MCA Tag Name ║ Visually Impaired-Narrative ║ FFEF - MCA Channel ID ║ 8 ║ FFF4 - RFC 5646 Spoken Language ║ fr ╙──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Ici, nous voyons que nous avons 8 items Descriptors & Sub-Descriptors :

Le premier sera le Soundfield Group Label Sub-Descriptor qui indique le type de disposition sonore (5.1) et va lier les différents Audio Channel Label Sub-Descriptors juste en dessous à son profil à l'aide de son MCA Id.

Nous avons un type de disposition sonore qui est le "5.1", donc les 5 prochains Audio Channel Label Sub-Descriptors seront les pistes sonores du 5.1 (Left, Right, Center, LFE, Left Surround, Right Surround).

Enfin, dans le dernier Audio Channel Label Sub-Descriptors, nous avons le canal spécifique pour le Visually Impaired Narrative.

Avec ces métadonnées, nous savons donc que les pistes de 1 à 6 seront pour notre 5.1. La piste 8 sera pour le VIN.

Avec le Multichannel Audio (MCA) Framework, tous les canaux de 1 à 16 sont configurables via le Soundfield Group Label et les multiples Audio Channel Label.

A l'aide du Multichannel Audio (MCA) Label Dictionnary ID vous pourrez déterminer le type de canal (en plus du Tag Name et Tag Symbol en complément). Cet identifiant permet de définir le type de canal audio :

Universal Label Canal Audio
060e2b340401010d0302010100000000
Audio Channel - Left (L)
060e2b340401010d0302010200000000
Audio Channel - Right (R)
060e2b340401010d0302010300000000
Audio Channel - Center (C)
060e2b340401010d0302010400000000
Audio Channel - LFE (LFE)
060e2b340401010d0302010500000000
Audio Channel - Left Surround (Ls)
060e2b340401010d0302010600000000
Audio Channel - Right Surround (Rs)
060e2b340401010d0302010700000000
Audio Channel - Left Side Surround (Lss)
060e2b340401010d0302010800000000
Audio Channel - Right Side Surround (Rss)
060e2b340401010d0302010900000000
Audio Channel - Left Rear Surround (Lrs)
060e2b340401010d0302010a00000000
Audio Channel - Right Rear Surround (Rrs)
060e2b340401010d0302010b00000000
Audio Channel - Left Center (Lc)
060e2b340401010d0302010c00000000
Audio Channel - Right Center (Rc)
060e2b340401010d0302010d00000000
Audio Channel - Center Surround (Cs)
060e2b340401010d0302010e00000000
Audio Channel - Hearing Impaired (HI)
060e2b340401010d0302010f00000000
Audio Channel - Visually Impaired-Narrative (VIN)

En résumé, dans votre essence, vous pouvez mettre vos différentes pistes audios dans l'ordre que vous souhaitez, puis avec plusieurs KLV Audio Channel Label, vous pouvez spécifier que tel ou tels canaux vont être pour le Left, le Right, le Center, les pistes spéciales pour les sourds et malentendants ou même les pistes utiles pour l'Immersive Audio ou DBOX.

Channel Layout / Soundfield Groups Configuration : le statique dynamique statique

Et là, vous vous dites que la configuration dynamique est géniale, on peut donc mettre le canal pour le LFE dans le channel 1, et le Surround sur les channels 11 et 12 ? Et bien non, enfin si, mais non, car il existe une règle où votre Configuration 4 qui est statique - mais utilisée pour du dynamique - possède quand même un mapping statique. Vous suivez ? 4

Selon certaines configurations sonores dans la Configuration 4, vous devrez appliquer un type de Channel Layout ou de Soundfield Groups Configuration.

Cette règle ne va pas s'appliquer à toutes les configurations sonores quand on va utiliser la Configuration 4. Vous avez le droit encore de définir vos canaux comme vous le voulez, mais c'est à vos risques et périls :) Dans les faits, personnes ne s'amusent à mapper les sorties audios comme bon lui semble, tout le monde respecte le layout utile pour son film.

Le Channel Layout ne va s'appliquer que dans quelques configurations sonores spécifiques : Mono, Stéréo, 5.1, 7.1 et Immersive Audio.

Pour savoir quelle configuration de Soundfield Groups, votre MXF appartient, il faut lire le KLV Soundfield Group Label Sub-Descriptor et l'item Label Dictionnary ID.

Et voici le mapping pour ce genre de configuration :

Channel Mono Stéréo 5.1 7.1 Immersive Audio
1 - Left Left Left -
2 - Right Right Right -
3 Center - Center Center -
4 - - LFE LFE -
5 - - Left Surround Left Side Surround -
6 - - Right Surround Right Side Surround -
7 Hearing Impaired (HI) Hearing Impaired (HI) Hearing Impaired (HI) Hearing Impaired (HI) Hearing Impaired (HI)
8 Visual Impaired Narrative (VIN) Visual Impaired Narrative (VIN) Visual Impaired Narrative (VIN) Visual Impaired Narrative (VIN) Visual Impaired Narrative (VIN)
9 - - - - -
10 - - - - -
11 - - - Left Rear Surround -
12 - - - Right Rear Surround -
13 Motion Data Motion Data Motion Data Motion Data Motion Data
14 - - - - Sync Signal
15 Sign Language Video Sign Language Video Sign Language Video Sign Language Video Sign Language Video
16 - - - - -

Vous remarquerez que pour l'Immersive Audio, le MXF sonore principal ne comporte quasiment rien hormis les canaux pour les éléments pour Sourds et Mal-Entendants (HI, VIN et SLV), le Motion Data qui sera utilisé par DBOX par exemple, le Sync Signal qui sert pour synchroniser avec le processeur audio externe (exemple avec le matériel Atmos).

Vous retrouverez ces informations dans :

Conclusion

Avec l'ensemble de ces informations, vous pourrez comprendre ce qui se trouve stocké dans les essences du MXF. Avec un seul KLV Wave Audio Essence Descriptor, vous pouvez déjà extraire et/ou lire les données audios de vos MXF. Avec les KLV de configuration audio, vous saurez maintenant à quoi ces données sont destinés.

Notez que vous pouvez retrouver un replica de ces données de configuration audio dans certaines CPL dans la partie CompositionMetadata.

Important, les pistes audios Atmos ne se trouvent pas dans ce MXF, mais dans un MXF spécifique utilisant la norme Immersive Audio Bitstream. Le seul élément Immersive Audio / Atmos que vous trouverez dans ce MXF sera le signal de synchronisation sur la piste 14.

Notes


  1. La différence entre Channel & Track: https://sound.stackexchange.com/a/35516 

  2. If the Channel Assignment property is not present, Channel Configuration 1 shall be assumed by the decoder. -- SMPTE 429-2 DCP Operational Constraints   +   MXF encoders should set the optional Channel Assignment property of the Wave Audio Essence Descriptor -- SMPTE 382M-2007 - MXF - Mapping Audio in MXF Generic Container. 

  3. Configurations using MXF Multichannel Audio Framework : When the Channel Assignment of the Wave Audio Essence Descriptor in a Sound Track File contains the UL defined in Table A.8 (aka 060e2b34.0401010b.04020210.03020000), the framework specified in [SMPTE ST 377-4] shall be used in conjunction with the constraints defined in Annexes A.2.2 and A2.3 to unambiguously identify the audio channels and soundfield group carried in the Sound Track File. -- SMPTE 429-2-2013 - DCP Operational Constraints 

  4. Pour vous montrer le niveau de bordel, la configuration 4 est même surnommée dans certaines documentations (comme ici ou encore ici) comme la "Wild Track Format" ... la WTF ;-).