O que é um arquivo PFM?

Um arquivo Portable FloatMap armazena amostras raster em escala de cinza ou RGB como valores de ponto flutuante. Essas amostras podem representar valores fora do intervalo de inteiros normalmente usado em imagens para exibição.

Como funcionam os arquivos PFM

PFM coloca um cabeçalho textual de três linhas antes de uma matriz de pixels sem compressão, composta por amostras de ponto flutuante IEEE 754 de 32 bits: um identificador que distingue imagens de um canal das de três canais, a largura e a altura e um número com sinal que indica a ordem dos bytes. O formato não tem uma especificação oficial. A documentação do Netpbm diz que vários formatos semelhantes compartilham o nome e que ela descreve um formato deduzido de softwares existentes; a página de Paul Debevec descreve a mesma estrutura. Em um pipeline de mídia, PFM costuma ser uma representação de trabalho ou de intercâmbio entre etapas de processamento numérico, não um arquivo final para a web ou impressão.

Informações essenciais

  1. Identifique um arquivo PFM pela primeira linha: PF significa três amostras por pixel (RGB) e Pf significa uma (escala de cinza). A segunda linha contém a largura e a altura, a terceira contém um número com sinal e a matriz de pixels vem logo em seguida. Cada amostra é um valor de ponto flutuante IEEE 754 de 4 bytes, sem compressão, então a matriz ocupa largura × altura × 4 bytes para escala de cinza e três vezes isso para cor. O cabeçalho não tem outros campos, e a descrição de Debevec não permite comentários, então o espaço de cor e as unidades precisam ser acordados fora do arquivo.
  2. O sinal do terceiro valor do cabeçalho define a ordem dos bytes das amostras: negativo significa little-endian, positivo significa big-endian. O Netpbm também interpreta o valor absoluto como um fator de escala, a ser combinado com informações de unidade compreendidas separadamente, enquanto a descrição de Debevec usa o número apenas para a ordem dos bytes. Um leitor que presume a ordem de bytes nativa da máquina produz dados sem sentido para arquivos escritos na ordem oposta, e um leitor que descarta a magnitude pode interpretar incorretamente a intensidade absoluta se o programa de escrita tiver se baseado nela.
  3. As linhas seguem de baixo para cima nas descrições de Debevec e do Netpbm, o oposto dos próprios formatos PGM e PPM do Netpbm. O Netpbm documenta que a variante que o Adobe Photoshop chama de PFM ordena as linhas de cima para baixo, então arquivos trocados entre as duas convenções ficam invertidos verticalmente sem nenhum erro. O FFmpeg lia e escrevia PFM espelhado até uma correção no fim de 2022. Verifique a orientação com uma imagem de teste assimétrica sempre que uma nova ferramenta entrar no pipeline.

Quando os arquivos PFM são importantes

Escolha PFM para dados intermediários de visão computacional, profundidade, aplicações científicas ou alta faixa dinâmica quando a precisão de ponto flutuante for importante. O suporte limitado em aplicativos e o tratamento da ordem dos bytes podem complicar o intercâmbio.

Como a Transloadit ajuda com arquivos PFM

A tabela de formatos de imagem da Transloadit, que abrange seus Robots baseados em ImageMagick, como /image/resize, lista PFM como um formato que esses Robots podem ler e escrever.

A tabela registra apenas o suporte à leitura e escrita do formato. Ela não informa como a ordem das linhas, o valor de escala ou as amostras de ponto flutuante fora do intervalo exibível são tratados na conversão para um formato de valores inteiros, como PNG ou JPEG. Por isso, processe um arquivo representativo na sua Assembly e verifique a orientação e o brilho.

Explore os formatos de arquivo e os recursos de compressão da Transloadit

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