Références |
SMPTE-429-10-2008 - DCP - Stereoscopic Picture Track File SMPTE 422-2014 - MXF - Mapping JPEG2000 Codestreams into the MXF Generic Container SMPTE 429-4-2006 - DCP - MXF JPEG2000 Application SMPTE 429-3-2007 - DCP - Sound And Pictures Track File 1 SMPTE 377-1-2011 - MXF - File Format Specification - RGBA Essence Descriptor (p148) SMPTE 384M-2005 - MXF - Mapping of Uncompressed Pictures into the Generic Container |
Modèle KLV |
Data Item (MXF non-chiffré) Variable-Length Pack (MXF chiffré) |
Universal Label |
060e2b34.01020101.0d010301.15010801 - Picture Essence, non-chiffré
060e2b34.02040101.0d010301.027e0100 - Encrypted Essence (SMPTE)
060e2b34.02040107.0d010301.027e0100 - Encrypted Essence (Interop)
060e2b34.02530101.0d010101.01012900 - RGBA Essence Descriptor
060e2b34.02530101.0d010101.01015a00 - JPEG2000 Picture Sub-Descriptor
060e2b34.0253010c.0d010101.01016300 - Stereoscopic Picture Sub-Descriptor (v0c)
060e2b34.02530101.0d010101.01016300 - Stereoscopic Picture Sub-Descriptor (v01)
|
En dehors des métadonnées, la principale différence entre un MXF 2D et 3D est juste sur le nombre de frames et comment on va lire chaque frame.
Un MXF stéréoscopique intègre les images pour l'oeil gauche et les images pour l'oeil droit dans le même MXF, une image sur deux sera pour un oeil spécifique.
Si vous avez déjà lu le chapitre MXF Picture, vous savez que nous avons des KLV spécifiques pour l'image : RGBA Essence Descriptor et JPEG2000 Picture Sub-Descriptor.
Dans le cadre d'un MXF stéréoscopique, nous aurons un KLV supplémentaire : le KLV Stereoscopic Picture Sub-Descriptor.
Ce dernier sera défini et lié au RGBA Essence Descriptor sur l'item Descriptors & Sub-Descriptors.
Voici les métadonnées de ce KLV :
LocalTag | Nom de l'item | Valeur possible / Exemple |
---|---|---|
3C0A |
Instance ID | cc14ab0b.a02c41d6.9712d3df.23611ff3 |
0102 |
(optionel) |
Oui, ce KLV est vide. Il ne sert qu'à indiquer que c'est un MXF stéréoscopique.
Et voici les modifications des items dans les KLV pour un MXF en 24 images par seconde pour chaque oeil (donc 48 images par seconde en tout) :
Nom du KLV modifié | Nom de l'item modifié | Nouvelle valeur |
---|---|---|
Timecode Component | (1502) Rounded Timecode Base |
48 |
RGBA Essence Descriptor | (3001) Sample Rate |
48/1 |
Timeline Track | (4B01) Edit Rate |
24/1 |
Index Table Segment | (3F0B) Index Edit Rate |
24/1 |
Il y aura au minimum deux KLV Picture Essence (ou Encrypted Picture Essence dans le cadre d'un MXF chiffré).
La première frame (donc le premier KLV) est la frame qui servira pour l'oeil gauche :
Vous pouvez avoir 3D et High Frame Rate (HFR), mais attention au bitrate maximal de 250 Mb/s (500 Mb/s pour le HFR et le HDR) : Plus vous mettez de frames par seconde - si en plus les images sont grandes (4K) et qu'elles sont peu compressées - vous irez taper sur la limite du bitrate, ce qui va provoquer quelques petits soucis : votre DCP peut être rejeté par les players DCI en salle de cinéma.
Un MXF 3D étant le même qu'un MXF 2D - hormis d'avoir 2 fois plus de frames et quelques paramètres différents (voir ci-dessus), pour la lecture et l'extraction, on utilise la même procédure que dans la version 2D, lisible dans le chapitre MXF : KLV : Types : Picture.
Il n'est même pas nécessaire de lire le KLV Stereoscopic Picture Sub-Descriptor.
La définition d'un DCP avec Stéréoscopie 3D est visible dans la CPL, les MainPicture
deviennent simplement des MainStereoscopicPicture
.
En supplément, AnnotationText
et ContentTitle
auront la mention "3D
" et du nombre d'image par secondes - pour respecter la convention de nommage (non obligatoire, c'est juste une convention, pas une norme).
L'élément MainStereoscopicPicture
et tous ses sous-éléments (Id, Duration, KeyId, FrameRate, etc...) sont exactement les mêmes que ceux de l'élément standard et bien connu MainPicture
. A une seule différence, le FrameRate est à 48 1
(sauf en cas de HFR)
Un exemple d'un MainStereoscopicPicture
3D en 24 fps par oeil (donc 48 fps projetées) :
<MainStereoscopicPicture xmlns=”http://www.smpte-ra.org/schemas/429-10/2008/Main-Stereo-Picture-CPL”>
<Id>urn:uuid:7e427ee5-434a-c142-b845-6aa67e1e97ff</Id>
<AnnotationText>Stereoscopic Picture for Reel #1 of The Stereoscopic Feature</AnnotationText>
<EditRate>24 1</EditRate>
<IntrinsicDuration>3800</IntrinsicDuration>
<EntryPoint>100</EntryPoint>
<Duration>3600</Duration>
<KeyId>urn:uuid:1f894844-e1d8-8643-a48d-341b96659499</KeyId>
<FrameRate>48 1</FrameRate>
<ScreenAspectRatio>185 100</ScreenAspectRatio>
</MainStereoscopicPicture>
Vous retrouverez d'autres informations nécessaires à ce sujet dans le chapitre CPL Picture - Paragraphe Stéréoscopie.
Et oui, c'est possible.
C'est un peu tricky, mais cela a été testé pour Gemini Man de Ang Lee qui se devait d'avoir une projection en 3D avec du HFR en 120 images par oeil, donc 240 fps en tout. Ce qui n'est (n'était ?) pas supporté (officiellement) par les players et projecteurs en salle de cinéma.
Pour contourner ce problème, on génère deux DCP 2D en HFR 120 FPS, l'un avec les frames paires, l'autre avec les frames impaires. Et on les projette séparément depuis deux players/projecteurs différents, un pour chaque oeil.
Les deux DCP seront des DCP classiques avec des MXF classiques (donc sans KLV Stereoscopic Picture Sub-Descriptor) et les CPL intégrent les MainPicture
habituels - avec un EditRate
et FrameRate
en 120 FPS.
Chaque player va se charger de lire un DCP pour chaque oeil :
Gemini_HFR_Right_Eye
Gemini_HFR_Left_Eye
La synchronisation des deux projections permet ainsi d'avoir de la 3D en HFR et en 120 FPS avec deux DCP classiques 2D.
Vous avez un exemple des deux DCP de tests pour le film Gemini Man (partiel, sans les MXF) ici
Il est possible de faire de la 3D en HFR mais limité à 60 FPS (60 images par secondes mais 120 images par secondes en lecture effective).
Le seul moyen (pour l'instant) de faire de la 3D-HFR > 60 FPS, c'est d'utiliser la méthode décrite au dessus "Faire de la stéréoscopie sans utiliser ce workflow"