Sous ce terme barbare se cache un simple nom de code pour décrire le type de MXF que nous aurons à gérer : Tout comme chaque KLV va utiliser un modèle (ou template) pour ranger ses données, les MXF vont aussi utiliser et respecter un modèle parmi un panel de types disponibles qu'ils appellent "Operational Pattern"
Si vous voulez un exemple plus imagé, voyez cela comme des types d'arbre : Un arbre, c'est des racines, un tronc et des branches. Mais il existe plusieurs sortes d'arbres: des sapins, des chaînes, des cerisiers, etc... Chaque OP est un type d'arbre.
De base, il en existe neufs visibles appelés Generalized Operational Patterns :
Chaque case est un modèle d' Operational Pattern déjà prédéfini et normalisé : suivant le type de données et ce que vous voulez en faire, comment vous voulez lier les données entre elles, vous allez devoir faire un choix pour un modèle de MXF en particulier.
Chaque modèle de cette liste respecte des règles définies dans les docs SMPTE suivantes :
Le modèle d'Operational Pattern utilisé par le MXF DCP n'est pas l'un des 9 (1a à 3c) : il utilise le dernier de notre liste le "Specialized Pattern OP-Atom". 1
Fort heureusement, ce modèle est le plus simple : c'est un seul container avec un seul type de contenu. 2
Et en plus, il est de type Specialized Patterns, il y a donc des petites subtilités en plus, dont voici les principaux :
Des KLV métadonnées en nombres spécifiques 3 :
Un Index Table complet, obligatoire et placé dans la Partition Footer (et non éparpillé)
Jamais de Run-In 4
Une Partition Body (obligatoire) 5
Au moins une essence dans Partition Body (par exemple une seule frame JPEG2000) 6
Aucune limite dans le nombre d'essence dans Partition Body
Concrètement, pour les images d'un film, chacune sera stockée dans une suite de KLVs séparés et uniques pour chaque image. Nous n'aurons pas une mixité d'essence 7. Par exemple, nous n'aurons pas un KLV pour une image, suivi d'un KLV pour le son. C'est pour cela que, dans un DCP, vous aurez plusieurs fichiers MXF. Chacun spécifique à un type d'essence (un MXF pour les images, un autre pour le son, un autre pour les sous-titres, etc)
Les autres Operationals Patterns sont plus complexes et en dehors de notre scope DCP : ils nous permettraient de faire des playlists (suite de contenu dans un MXF) ou même du montage (permet de faire démarrer ou arrêter un contenu à un endroit particulier même si nous avons tout le contenu dans le MXF).
Les Operational Pattern sont identifiés via un Universal Label spécifique (voir chapitre suivant pour la syntaxe).
L'Universal Label d'un Operational Pattern pourra être retrouvé dans les KLV suivants :
Nom du KLV | UL du KLV |
---|---|
Partition Pack - Header | 060e2b34.02050101.0d010201.01020400 |
Preface | 060e2b34.02530101.0d010101.01012f00 |
Partition Pack - Body | 060e2b34.02050101.0d010201.01030400 |
Partition Pack - Footer | 060e2b34.02050101.0d010201.01040400 |
Pour les KLV de type Local Set (bébé KLV), nous aurons un Local Tag (clef sur 2 octets) spécifique pour l'Universal Label de notre Operational Pattern, et il sera 3B.09
.
Exemple avec Preface (Local Set) :
Il vous suffit de parser chaque item dans ces KLV et de trouver le bon Local Tag afin de récupérer l'Operational Pattern du MXF.
Les KLV Partition Pack sont des KLV Fixed-Data, il faudra trouver les informations au bon offset :
Pour un Operational Pattern OP-Atom - Specialized Pattern, son UL sera 060e2b34.04010102.0d010201.10000000
Réferences SMPTE 429-3-2007 - DCP - Sound And Pictures Track File : ↩
1. Scope - This document is an Application Specification for D-Cinema applications. It is based on the SMPTE 390M OP-ATOM standard.
4.1 General - D-Cinema Sound and Picture Track Files shall use the MXF file format [SMPTE 377M] in conjunction with the specialized Operation Pattern, OP-Atom [SMPTE 390M]. Unless otherwise specified, Track Files shall follow the normative provisions of SMPTE 377M, SMPTE 390M and SMPTE 379M (Generic Container) and their references, notably SMPTE 336M (KLV).
3. Overview - A D-Cinema Sound and Picture Track File is an indexed, randomly-accessible MXF container for a single clip of a single essence track.
Le concept de Single Essence Track peut être mal compris. Elle indique juste qu'il n'y aura qu'un type d'essence par MXF. Par exemple, que des images ou bien que des sons ou bien tout autre chose, mais jamais différents types dans un même MXF. D-Cinema Sound and Picture Track Files shall not contain interleaved, multiplexed, multi-scene or multi-format essence. -- SMPTE 429-3 - DCP - Sound And Pictures Track File ↩
Les KLV métadonnées : 7.3.1 Minimum implementation recommendation : (...) 1 Preface Set, 1 or more Identification Sets, 1 Content Storage Set, and 1 Essence Container Data Set. (...) One Material Package including: the sets for the time code track. (...) The sets required for the Index Table (...) The Essence Descriptor required to describe the essence. -- SMPTE 390 - MXF - Specialized Operational Pattern OP-Atom (Simplified Representation of a Single Item) ↩
Les Run-In sont des données présentes avant la Partition Header permettant d'avoir une synchronisation lors d'une lecture et utilisées dans des cas très précis. Nous ne rencontrerons jamais de Run-In dans un MXF de DCP. (Ref. SMPTE 377 - MXF Specifications — 6.5 Run-In Sequence) ↩
La norme SMPTE pour le MXF permet d'avoir plusieurs Partition Body : ↩
6.2.6 Body Partition - There shall be zero or more Body Partitions in an MXF file -- SMPTE 377-1-2009 - MXF - File Format Specification
Partition Kinds - Body Partitions : one or more partitions located in the file body. Multiple body partitions can be used to divide an essence container into a sequence of parts, provide for multiple essence containers or provide for multiple essence containers each of which are divided into a sequence of parts -- SMPTE 377-3-2013 - MXF Engineering Guideline
Cependant, la norme SMPTE 429-3-2007 - DCP - Sound And Pictures Track File impose une seule partition Body : 4.3.5 Partitions - A Track File shall have three partitions: Header, Body and Footer. The closed and complete Header Metadata shall be carried in the Header Partition, the Essence Container shall be contained in the single Body Partition. et dans SMPTE 390-2011 - MXF - Specialized Operational Pattern OP-Atom 9. Recommended Partitioning of OP-Atom Files, le terme Body Partition est au singulier.
Each Content Package of the Picture Track File's essence container shall contain one MXF GC Picture Item, each of which contains a single GC Picture Element. -- SMPTE 429-3 - DCP - Sound And Pictures Track File ↩
Fondamentalement, le MXF peut supporter d'avoir cette mixité d'essences, vous pouvez avoir un KLV d'une frame, puis un KLV d'une partie de son, puis une autre frame et ainsi de suite. Mais dans notre cas, le MXF DCP type OP-1a, nous aurons qu'une continuité d'un même type d'essence (que des KLV JPEG2000 par exemple). ↩