Dicionário

O que é um processo de codificação?

Processo de codificação é o nome do método que um arquivo JPEG usou para comprimir seus dados de imagem, como baseline ou progressivo. Ele é lido a partir dos próprios dados da imagem.

encoding-process

Um processo de codificação é o método que transforma uma imagem em dados de imagem compactados. Em um relatório de metadados, Processo de codificação nomeia o método que um arquivo JPG usou, por exemplo Baseline DCT, Huffman coding.

O valor tem 2 partes. A primeira parte indica como os dados da imagem foram compactados. A segunda parte indica como o resultado foi empacotado em bits.

Quais arquivos o carregam

Processo de codificação é um campo JPEG, e toda imagem JPEG o possui. O padrão JPEG coloca essa informação em um cabeçalho curto que vem antes dos dados de imagem compactados.

De onde vem o valor

Nenhuma câmera ou programa grava Processo de codificação como uma tag separada. Um leitor como o ExifTool deduz o valor a partir do marcador Start of Frame, que abre esse cabeçalho. O padrão JPEG define um marcador diferente para cada processo de codificação.

O mesmo cabeçalho também armazena a largura e a altura da imagem, os bits por amostra e o número de componentes de cor. O ExifTool também deduz a subamostragem de croma a partir desse cabeçalho.

Como o valor descreve como os dados da imagem são armazenados, você não pode editá-lo como uma tag normal. O Processo de codificação só muda quando um programa salva a imagem novamente com outras configurações.

Como são os valores

O ExifTool mostra um de 13 valores. Segundo a Library of Congress, os mais comuns são baseline e progressive.

  • Baseline DCT, Huffman coding
  • Extended sequential DCT, Huffman coding
  • Progressive DCT, Huffman coding
  • Lossless, Huffman coding
  • Sequential DCT, differential Huffman coding
  • Progressive DCT, differential Huffman coding
  • Lossless, Differential Huffman coding
  • Extended sequential DCT, arithmetic coding
  • Progressive DCT, arithmetic coding
  • Lossless, arithmetic coding
  • Sequential DCT, differential arithmetic coding
  • Progressive DCT, differential arithmetic coding
  • Lossless, differential arithmetic coding

O que cada parte do valor significa

  • DCT significa discrete cosine transform. Os processos JPEG baseados em DCT são com perda: eles descartam alguns detalhes para deixar o arquivo menor.
  • Baseline é o processo DCT básico. Ele usa 8 bits por amostra e codificação Huffman.
  • Sequential significa que cada componente de cor é armazenado em uma única varredura.
  • Extended sequential funciona como baseline, mas também permite 12 bits por amostra e codificação aritmética.
  • Progressive armazena a imagem em várias varreduras. Cada varredura geralmente melhora a qualidade, então um visualizador pode mostrar primeiro uma imagem aproximada e depois deixá-la mais nítida.
  • Lossless não usa DCT. A imagem decodificada é idêntica ao original.
  • differential pertence ao modo hierárquico. Aqui cada quadro posterior armazena apenas as diferenças em relação ao quadro anterior.
  • Huffman coding e arithmetic coding são 2 maneiras sem perda de empacotar os dados em menos bits.

Por que isso é importante para o seu arquivo

O padrão JPEG não exige que todo programa seja compatível com todos os processos. Todo decodificador DCT deve ser compatível com baseline, então um arquivo baseline é a opção mais segura quando a imagem precisa abrir em qualquer lugar.

Outros processos podem falhar ao abrir em alguns programas. Segundo a Library of Congress, o processo original sem perda não era amplamente compatível em aplicativos. Uma variante sem perda com codificação Huffman é usada na versão 1.1 do formato raw DNG da Adobe.

Um valor com DCT mostra que alguns detalhes foram descartados quando a imagem foi salva. Salvar o arquivo novamente não recupera esses detalhes. O campo apenas descreve como a imagem é armazenada e não contém informações pessoais.