Diccionari

Què és un procés de codificació?

Procés de codificació és el nom del mètode que un fitxer JPEG ha utilitzat per comprimir les seves dades d'imatge, com ara bàsic o progressiu. Es llegeix a partir de les pròpies dades de la imatge.

encoding-process

Un procés de codificació és el mètode que converteix una imatge en dades d’imatge comprimides. En un informe de metadades, Encoding Process indica el mètode que ha utilitzat un fitxer JPG, per exemple Baseline DCT, Huffman coding.

El valor té 2 parts. La primera part indica com s’han comprimit les dades de la imatge. La segona part indica com s’ha empaquetat el resultat en bits.

Quins fitxers ho porten

Encoding Process és un camp JPEG i totes les imatges JPEG el tenen. L’estàndard JPEG col·loca aquesta informació en una capçalera curta que apareix abans de les dades de la imatge comprimida.

D'on ve el valor

Cap càmera ni programa escriu Encoding Process com una etiqueta separada. Un lector com ExifTool dedueix el valor a partir del marcador Start of Frame, que obre aquesta capçalera. L’estàndard JPEG defineix un marcador diferent per a cada procés de codificació.

Aquesta mateixa capçalera també desa l’amplada i l’alçada de la imatge, els bits per mostra i el nombre de components de color. ExifTool també dedueix la submostra de croma a partir d’aquesta capçalera.

Com que el valor descriu com s’emmagatzemen les dades de la imatge, no el pots editar com una etiqueta normal. Encoding Process només canvia quan un programa desa la imatge de nou amb altres paràmetres.

Com són els valors

ExifTool mostra un de 13 valors. Segons la Library of Congress, els més habituals són baseline i 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

Què significa cada part del valor

  • DCT significa transformada cosinus discreta. Els processos JPEG basats en la DCT són amb pèrdua: descarten alguns detalls per fer el fitxer més petit.
  • Baseline és el procés DCT bàsic. Utilitza 8 bits per mostra i codificació Huffman.
  • Sequential vol dir que cada component de color s’emmagatzema en una sola passada.
  • Extended sequential funciona com baseline, però també permet 12 bits per mostra i codificació aritmètica.
  • Progressive desa la imatge en diverses passades. Cada passada sol millorar la qualitat, de manera que un visor pot mostrar primer una imatge aproximada i després afinar-la.
  • Lossless no utilitza la DCT. La imatge descodificada és idèntica a l’original.
  • differential pertany al mode jeràrquic. Aquí cada fotograma posterior només desa les diferències respecte del fotograma anterior.
  • Huffman coding i arithmetic coding són 2 maneres sense pèrdua d’empaquetar les dades en menys bits.

Per què és important per al teu fitxer

L’estàndard JPEG no exigeix que tots els programes admetin tots els processos. Cada descodificador DCT ha d’admetre baseline, així que un fitxer baseline és l’opció segura quan una imatge s’ha d’obrir a tot arreu.

Altres processos poden no obrir-se en alguns programes. Segons la Library of Congress, el procés original sense pèrdua no tenia gaire suport en les aplicacions. Una variant sense pèrdua amb codificació Huffman s’utilitza a la versió 1.1 del format raw DNG d’Adobe.

Un valor amb DCT t’indica que s’han perdut alguns detalls quan s’ha desat la imatge. Tornar a desar el fitxer no recupera aquests detalls. El camp només descriu com s’emmagatzema la imatge i no conté informació personal.