Qu’est-ce qu’un fichier MPO ?

Un fichier Multi-Picture Object stocke plusieurs images JPEG dans un même conteneur. Ces images représentent couramment des vues distinctes d’une photographie stéréoscopique, mais le conteneur peut aussi contenir d’autres images liées entre elles.

Fonctionnement des fichiers MPO

MPO est la forme fichier du Multi-Picture Format, défini par la norme DC-007 de la Camera and Imaging Products Association (CIPA), publiée pour la première fois en 2009 et révisée depuis. Le fichier commence comme un JPEG ordinaire. Sa première image contient un segment d’application APP2 identifié par MPF, qui contient un index sous forme de répertoire TIFF : le nombre d’images et, pour chacune, un type, une taille en octets et un décalage des données. Les images restantes sont des flux JPEG complets ajoutés après la première, là où un lecteur limité au JPEG ne voit que des données finales. C’est pourquoi les visionneuses qui ne reconnaissent pas ce format affichent une image plausible tout en ignorant le reste. Le format est surtout connu pour son utilisation dans les appareils photo 3D, dont les fichiers contiennent une image par point de vue, mais l’index permet aussi de typer les images comme de grandes vignettes ou comme des images d’un panorama ou d’un ensemble multiangle.

Points clés

  1. Pour trouver les images intégrées, lisez l’index au lieu de rechercher les marqueurs JPEG. Le segment APP2 MPF indique le nombre d’images et contient une entrée par image avec sa taille et son décalage. Pillow, par exemple, calcule chaque décalage par rapport au début de l’en-tête MPF dans ce segment, et non au début du fichier, et considère que la première image se trouve au décalage 0. Toutes les valeurs de l’index sont nécessaires pour scinder le fichier de manière sûre, car chaque image peut contenir ses propres vignettes intégrées.
  2. Une conversion passant par un chemin de code limité au JPEG supprime les images supplémentaires sans erreur. ExifTool les décrit comme des données stockées dans la partie finale du JPEG, après la première image. Pillow ne charge que l’image principale à l’ouverture d’un MPO et accède aux autres via seek. Lors de l’écriture d’un fichier MPO, save ne conserve que la première image, sauf si save_all est défini ou si append_images est fourni. Une sortie JPEG simple contient une seule image ; conserver les deux vues d’une paire stéréoscopique au format JPEG nécessite donc d’écrire chaque vue dans son propre fichier.
  3. Le suffixe n’est fiable dans aucun des deux sens. Pillow signale le format MPO pour tout JPEG dont l’index MPF répertorie plus d’une image, ce qui a surpris des utilisateurs dont les fichiers .jpg issus d’un appareil photo contiennent une grande vignette supplémentaire ; les responsables du projet ont clos ce signalement parce que le fichier était un MPO valide. Le code qui choisit un traitement selon la détection du format JPEG doit s’attendre à MPO pour de tels fichiers. Pillow fait une exception et conserve les fichiers Ultra HDR en tant que simples JPEG.
  4. Les images intégrées ne sont pas des vues interchangeables ; lisez donc le type de chaque entrée avant de l’extraire ou de la supprimer. Les types comprennent l’image principale, de grandes vignettes de plusieurs tailles, les images de panorama à plusieurs images, de disparité et multiangles, ainsi qu’une carte de gain. Un type peut aussi être indéfini ; un type non reconnu ne signifie donc pas qu’une image peut être supprimée. Le format Ultra HDR d’Android stocke sa carte de gain sous la forme d’une image MPF supplémentaire, mais la bibliothèque libultrahdr de Google écrit cette entrée avec un type indéfini, et la spécification d’Android localise plutôt la carte de gain à l’aide des métadonnées XMP. Une carte de gain n’est pas une photographie : elle indique de combien augmenter la luminosité de chaque pixel de l’image principale pour un affichage HDR. Conserver uniquement l’image principale préserve l’image à plage dynamique standard et supprime la déclinaison HDR. Chaque image est un JPEG complet pouvant contenir ses propres données Exif ; appliquez donc l’orientation et les autres métadonnées à chaque image photographique. La carte de gain fait exception : la spécification d’Android exige que son orientation corresponde à celle de l’image principale et ignore sa propre orientation Exif ainsi que son profil colorimétrique.

Quand les fichiers MPO sont utiles

Détectez la structure à plusieurs images lors de l’importation de photographies provenant d’appareils photo 3D ou d’autres appareils qui stockent des images liées, et extrayez chaque image lorsqu’elles sont toutes nécessaires, car les logiciels limités au JPEG ne donnent accès qu’à la première. Recherchez aussi cette structure dans les fichiers nommés .jpg : elle sert également aux grands aperçus intégrés et à la carte de gain des photos Ultra HDR.

Références

Transformer vos connaissances sur les médias en une chaîne de traitement opérationnelle

Reliez les téléversements, le traitement, l’IA, le stockage et la diffusion via une seule API déclarative — la pile d’encodage, la montée en charge et l’évolution constante des formats sont prises en charge pour vous.

Essayer Transloadit gratuitement