Imagem OpenEXR (.exr)

Academy Padrão

OpenEXR é um formato de imagem HDR profissional utilizado em fluxos de produção cinematográfica e efeitos visuais. Suporta píxeis de vírgula flutuante half de 16 bits e de 32 bits, com vários canais e camadas.

Inspeção e metadados

Sistemas operacionais e analisadores de arquivos identificam arquivos EXR pela sequência inicial de bytes:

Selecione ou solte os arquivos aqui

Privado - os arquivos nunca saem do seu dispositivo

ou colar Ctrl+V
Garantia de privacidade sem transmissão pela rede 0 bytes enviados a servidores externos. Todo o processamento ocorreu localmente no ambiente isolado do navegador.

Assinatura do arquivo em bytes (magic bytes)

Sistemas operacionais e analisadores de arquivos identificam arquivos EXR pela sequência inicial de bytes:

ASSINATURA HEXADECIMAL (DESLOCAMENTO 0):

76 2F 31 01

REPRESENTAÇÃO ASCII: v/1.

Padronização: Academy Software Foundation (ASWF) Open Standard

Especificações técnicas

Estrutura do contêinerContêiner extensível baseado em blocos, compatível com canais, partes e camadas de dados profundos arbitrários
CompressãoPIZ (wavelet), ZIP/ZIPS, RLE, B44/B44A, DWAA/DWAB (DCT com perdas) e sem compressão
Ordem dos bytes (endianness)Little-endian (Intel x86)
Espaços de corLinear ACEScg, ACES2065-1, Linear Rec.709, Coordenadas de cromaticidade arbitrárias
Canais e EstruturaNomes de canais arbitrários (R, G, B, A, profundidade Z, Normal, WorldPos, MotionVectors, Cryptomatte)
Dimensões MáximasPraticamente ilimitadas (compatível com zoom profundo em mosaico e imagens de vários gigapixels)
TransparênciaCanal alfa completo em ponto flutuante e matrizes volumétricas de amostras para composição profunda
Streaming e ProgressivoO processamento em fluxo por linhas de varredura ou blocos permite ler rapidamente partes do quadro e renderizar imagens proxy

Matriz de comparação técnica: EXR e formatos concorrentes

Atributo técnicoEXR (Atual)HDRTIFFPNG
Faixa dinâmicaPonto flutuante linear de meia precisão (16 bits) e de precisão simples (32 bits)Expoente compartilhado de 8 bits (RGBE)Inteiro de 8/16 bits ou ponto flutuante de 32 bitsInteiro padrão de 8 ou 16 bits
Passagens multicanalNúmero ilimitado de canais e partes com nomes arbitráriosApenas RGBSuporte a camadas limitadoApenas RGBA
Adoção pelo setorPadrão universal em VFX e computação gráfica 3D de HollywoodIluminação 3D e panoramas tradicionaisPré-impressão e fotografiaO suporte varia conforme o programa.
Gerenciamento de coresIntegração nativa com ACES e OpenColorIOGama/linear ad hocTags de perfil ICCTags sRGB/ICC

Modos comuns de corrupção e guia de recuperação com editor hexadecimal

A imagem fica completamente escura ou superexposta, com manchas brancas estouradas.

Causa principal: Ausência da transformação de exibição de linear para sRGB ou atribuição incorreta do espaço de cor ACES.

Recuperação: Aplique uma curva de tons ACEScg ou de linear para sRGB no visualizador HDR do File2File.app.

Análise de segurança e vetores de ataque a analisadores

Analisadores complexos do OpenEXR baseados em blocos devem validar estritamente as definições de canais e os limites dos mosaicos para evitar problemas de segurança de memória.

Vetores de ataque conhecidos

  • Estouro de inteiro no cálculo do passo do buffer multicanal na libopenexr.
  • Leitura fora dos limites do heap durante a descompressão de fluxos PIZ ou DWAA.
  • Negação de serviço causada pela recursão profunda em cabeçalhos de blocos multipartes.

Melhores práticas defensivas: Decodifique arquivos EXR em versões WebAssembly isoladas, com segurança de memória e limites rígidos para as dimensões dos blocos.

Origens históricas e marcos

2020O OpenEXR 3.0 é lançado sob a Academy Software Foundation, com melhorias no processamento multithread.
2013O OpenEXR 2.0 introduz a composição com dados profundos e estruturas de imagem multipartes.
2003A Industrial Light & Magic publica o código do OpenEXR sob uma licença BSD modificada, após usá-lo em Harry Potter.
1999Criado pelos engenheiros da ILM Florian Kainz, Rod Bogart e Drew Hess para substituir o Cineon/DPX de 8 bits.

Principais vantagens

  • O suporte nativo a ponto flutuante de meia precisão de 16 bits (FP16) e de 32 bits (FP32) preserva uma faixa de luminância extrema, da luz solar direta às sombras escuras.
  • A arquitetura multicanal permite incluir em um único arquivo todas as passagens de renderização 3D (beauty, diffuse, specular, depth, cryptomatte).
  • Os algoritmos de compressão DWAA/DWAB e PIZ, líderes do setor, reduzem bastante o tamanho dos arquivos sem perda visual.

Limitações técnicas e desvantagens

  • Arquivos muito grandes ao salvar, sem compressão, passagens de renderização 4K/8K em 32 bits e com várias camadas.
  • Alto consumo de CPU e memória ao descompactar vários canais em programas para o consumidor final.
  • Requer transformações de gerenciamento de cores (ACES ou OCIO) para ser exibido corretamente em monitores sRGB padrão.

Curiosidades técnicas

  • A Industrial Light & Magic criou o tipo de dado de ponto flutuante de 16 bits chamado "half" especificamente para o formato OpenEXR.
  • Os primeiros quatro bytes mágicos de cada arquivo EXR são 0x76 0x2F 0x31 0x01, que se traduzem em ASCII como 'v/1\x01'.
  • O OpenEXR é compatível com "Deep Data": um único pixel pode armazenar várias amostras de cor e profundidade em diferentes distâncias, como em fumaça e nuvens semitransparentes.

Perguntas técnicas frequentes

Porque é que o OpenEXR é utilizado em alguns fluxos de efeitos visuais?

Preserva dados HDR de imagem de alta precisão e suporta vários canais, partes e dados profundos para composição.

Qual é a diferença entre ponto flutuante de meia precisão e de precisão simples no EXR?

O ponto flutuante de meia precisão usa 16 bits por canal de cor. Ele oferece 30 stops de faixa dinâmica e gera arquivos com metade do tamanho dos arquivos em ponto flutuante de 32 bits, sendo o preferido do setor para renderizações beauty.

Como posso converter EXR para PNG ou JPG padrão?

Você pode converter arquivos EXR em imagens PNG ou JPG com mapeamento de tons diretamente no navegador, usando o File2File.app.