¿Qué es un archivo MPO?

Un archivo Multi-Picture Object almacena varias imágenes JPEG en un solo contenedor. Las imágenes suelen representar vistas separadas de una fotografía estereoscópica, aunque el contenedor puede incluir otras imágenes relacionadas.

Cómo funcionan los archivos MPO

MPO es la forma de archivo del Multi-Picture Format, estándar DC-007 de la Camera and Imaging Products Association (CIPA), publicado por primera vez en 2009 y revisado desde entonces. El archivo comienza como un JPEG común. Su primera imagen contiene un segmento de aplicación APP2 identificado por MPF, que incluye un índice en forma de directorio TIFF: el número de imágenes y, para cada una, un tipo, un tamaño en bytes y un desplazamiento de datos. Las imágenes restantes son flujos JPEG completos añadidos después de la primera, donde un lector que solo admite JPEG únicamente ve datos al final. Por eso, los visores que desconocen el formato muestran una imagen plausible e ignoran las demás. El formato se conoce principalmente por las cámaras 3D, cuyos archivos contienen una imagen por punto de vista, pero el índice también clasifica imágenes como miniaturas grandes o como fotogramas de un panorama o un conjunto de múltiples ángulos.

Datos clave

  1. Para encontrar las imágenes integradas, lee el índice en lugar de buscar marcadores JPEG. El segmento APP2 MPF enumera la cantidad de imágenes y una entrada por imagen con su tamaño y desplazamiento. Pillow, por ejemplo, calcula cada desplazamiento con respecto al inicio de la cabecera MPF dentro de ese segmento, no al inicio del archivo, y considera que la primera imagen tiene el desplazamiento 0. Se necesitan todos los valores del índice para dividir el archivo de forma segura, ya que cada imagen puede contener sus propias miniaturas integradas.
  2. La conversión mediante una ruta de código que solo admite JPEG elimina las imágenes adicionales sin generar un error. ExifTool las describe como datos almacenados al final del JPEG, después de la primera imagen. Pillow solo carga la imagen principal al abrir un MPO y accede a las demás mediante seek. Al escribir un archivo MPO, save conserva solo el primer fotograma, a menos que se establezca save_all o se proporcione append_images. Una salida JPEG simple contiene una imagen, por lo que conservar ambas vistas de un par estereoscópico como JPEG requiere escribir cada vista en su propio archivo.
  3. El sufijo no es fiable en ninguno de los dos sentidos. Pillow informa del formato MPO para cualquier JPEG cuyo índice MPF enumere más de una imagen, lo que ha sorprendido a usuarios cuyos archivos .jpg de cámara incluyen una imagen adicional de miniatura grande; los responsables del mantenimiento cerraron ese reporte porque el archivo era un MPO válido. El código que se bifurca al detectar el formato JPEG debe prever MPO para esos archivos. Pillow hace una excepción y mantiene los archivos Ultra HDR como JPEG simples.
  4. Las imágenes integradas no son vistas intercambiables, así que lee el tipo de cada entrada antes de extraerla o descartarla. Los tipos incluyen la imagen principal, miniaturas grandes de varios tamaños, imágenes de panorama de varios fotogramas, de disparidad y de múltiples ángulos, y un mapa de ganancia. Un tipo también puede estar sin definir, por lo que un tipo no reconocido no significa que una imagen sea prescindible. El formato Ultra HDR de Android almacena su mapa de ganancia como una imagen MPF adicional, pero la biblioteca libultrahdr de Google escribe esa entrada con un tipo sin definir, y la especificación de Android localiza el mapa de ganancia mediante metadatos XMP. Un mapa de ganancia no es una fotografía: registra cuánto se debe aumentar el brillo de cada píxel de la imagen principal para una pantalla HDR. Conservar solo la imagen principal mantiene la imagen de rango dinámico estándar y elimina la versión HDR. Cada imagen es un JPEG completo que puede contener sus propios datos Exif, así que aplica la orientación y los demás metadatos a cada imagen fotográfica. El mapa de ganancia es la excepción: la especificación de Android exige que coincida con la orientación de la imagen principal e ignora la orientación Exif y el perfil de color del propio mapa.

Cuándo son importantes los archivos MPO

Detecta la estructura de múltiples imágenes al importar fotografías de cámaras 3D u otros dispositivos que almacenan imágenes vinculadas, y extrae todas las imágenes cuando se necesiten todas, porque el software que solo admite JPEG únicamente permite acceder a la primera. Comprueba también si esa estructura está presente en los archivos llamados .jpg: la misma estructura se utiliza para vistas previas grandes integradas y para el mapa de ganancia de las fotos Ultra HDR.

Fuentes

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis