O que é um arquivo MPO?

Um arquivo Multi-Picture Object armazena várias imagens JPEG em um único contêiner. As imagens geralmente representam vistas distintas de uma fotografia estereoscópica, embora o contêiner possa conter outras imagens relacionadas.

Como funcionam os arquivos MPO

MPO é a forma de arquivo do Multi-Picture Format, norma DC-007 da Camera and Imaging Products Association (CIPA), publicada pela primeira vez em 2009 e revisada desde então. O arquivo começa como um JPEG comum. Sua primeira imagem contém um segmento de aplicação APP2 identificado por MPF, que armazena um índice em formato de diretório TIFF: o número de imagens e, para cada uma, um tipo, um tamanho em bytes e um deslocamento de dados. As demais imagens são fluxos JPEG completos anexados após a primeira, onde um leitor compatível apenas com JPEG vê somente dados finais. Por isso, visualizadores que desconhecem o formato exibem uma imagem plausível e ignoram o restante. O formato é mais conhecido pelas câmeras 3D, cujos arquivos contêm uma imagem por ponto de vista, mas o índice também classifica imagens como miniaturas grandes ou como quadros de um panorama ou de um conjunto de múltiplos ângulos.

Informações essenciais

  1. Para encontrar as imagens incorporadas, leia o índice em vez de procurar marcadores JPEG. O segmento APP2 MPF lista a quantidade de imagens e uma entrada por imagem com seu tamanho e deslocamento. O Pillow, por exemplo, calcula cada deslocamento em relação ao início do cabeçalho MPF dentro desse segmento, não ao início do arquivo, e trata a primeira imagem como tendo deslocamento 0. Todos os valores do índice são necessários para dividir o arquivo com segurança, pois cada imagem pode conter suas próprias miniaturas incorporadas.
  2. A conversão por um caminho de código compatível apenas com JPEG descarta as imagens adicionais sem gerar erro. O ExifTool as descreve como dados armazenados na parte final do JPEG, após a primeira imagem. O Pillow carrega apenas a imagem principal quando um MPO é aberto e acessa as demais por meio de seek. Ao gravar um arquivo MPO, save mantém apenas o primeiro quadro, a menos que save_all seja definido ou append_images seja fornecido. Uma saída JPEG simples contém uma imagem, portanto manter ambas as vistas de um par estereoscópico como JPEG significa gravar cada vista em seu próprio arquivo.
  3. O sufixo não é confiável em nenhum dos dois sentidos. O Pillow informa o formato MPO para qualquer JPEG cujo índice MPF liste mais de uma imagem, o que surpreendeu usuários cujos arquivos .jpg de câmera contêm uma imagem adicional de miniatura grande; os mantenedores encerraram esse relato porque o arquivo era um MPO válido. O código que usa o formato detectado JPEG como condição deve esperar MPO para esses arquivos. O Pillow faz uma exceção e mantém os arquivos Ultra HDR como JPEG simples.
  4. As imagens incorporadas não são vistas intercambiáveis, portanto leia o tipo de cada entrada antes de extraí-la ou descartá-la. Os tipos incluem a imagem principal, miniaturas grandes em vários tamanhos, panorama de múltiplos quadros, imagens de disparidade e de múltiplos ângulos e um mapa de ganho. Um tipo também pode ser Undefined, portanto um tipo não reconhecido não torna uma imagem descartável. O formato Ultra HDR do Android armazena seu mapa de ganho como uma imagem MPF adicional, mas a biblioteca libultrahdr do Google grava essa entrada com um tipo indefinido, e a especificação do Android localiza o mapa de ganho por meio de metadados XMP. Um mapa de ganho não é uma fotografia: ele registra quanto aumentar o brilho de cada pixel da imagem principal para uma tela HDR. Manter apenas a imagem principal preserva a imagem de faixa dinâmica padrão e descarta a versão HDR. Cada imagem é um JPEG completo que pode conter seus próprios dados Exif, portanto aplique a orientação e os demais metadados por imagem fotográfica. Um mapa de ganho é a exceção: a especificação do Android exige que ele corresponda à orientação da imagem principal e ignora a orientação Exif e o perfil de cores do próprio mapa.

Quando os arquivos MPO são relevantes

Detecte a estrutura de múltiplas imagens ao importar fotografias de câmeras 3D ou de outros dispositivos que armazenam imagens vinculadas e extraia cada imagem quando todas forem necessárias, pois softwares compatíveis apenas com JPEG expõem somente a primeira. Verifique essa estrutura também em arquivos com nome .jpg: a mesma estrutura é usada para prévias grandes incorporadas e para o mapa de ganho de fotos Ultra HDR.

Fontes

Transforme conhecimento sobre mídia em um pipeline funcional

Conecte uploads, processamento, IA, armazenamento e entrega por meio de uma única API declarativa, com o stack de codificação, o ajuste de escala e as constantes mudanças de formatos gerenciados para você.

Experimente a Transloadit gratuitamente