colore digitale blog

Il blog di Mauro Boscarol sulla gestione digitale del colore dal 1997

Nella serie Formati grafici

Il formato JPEG

JPEG (si pronuncia “geipeg”) è un formato standard di compressione dei file grafici raster. JPEG è la sigla di Joint Photographic Experts Group, il nome del comitato che ha scritto le specifiche. Il formato JPEG riguarda solo immagini statiche, ma esiste un altro standard correlato, MPEG, per i filmati (immagini in movimento).

JPEG è stato progettato per memorizzare immagini a colori o a grigi di scene fotografiche naturali in modo compresso e con profondità 8 bit. Funziona bene sulle fotografie, sui quadri naturalistici e simili; non funziona bene sui fumetti, disegni al tratto, logo, lettering.

JPEG usa una compressione di tipo “lossy“, il che significa che, per diminuire la dimensione dell’immagine,  alcuni pixel vengono eliminati, per poi essere ricostruiti (non esattamente uguali) in fase di decompressione e quindi l’immagine risultante non è più quella originale. Esistono anche tecniche di compressione “lossless‘, cioè senza perdita di pixel (un esempio è LZW) ma JPEG non ne fa uso.

JPEG tuttavia è stato progettato in modo tale che i pixel eliminati siano quelli meno percettibili all’occhio umano. L’occhio umano è meno sensibile alle piccole variazioni di colore che alle piccole variazioni di luminanza, e così JPEG se trova due pixel di minima variazione di luminanza li conserva, ma se trova due pixel di minima variazione di colore ne tiene uno solo.

Ne consegue che JPEG è adatto per comprimere immagini che sono destinate ad essere viste da esseri umani e non, per esempio, da computer.

JPEG tuttavia non usa un metodo fisso di compressione. La quantità di pixel eliminati può essere determinata dall’utente: più pixel si eliminano più piccolo diventa il file e peggiore diventala qualità  dell’immagine.

Nei primi anni del web (metà degli anni 90 del Novecento) i due principali formati per visualizzare immagini su web erano GIF e JPEG.

GIF supporta al massimo 256 colori indicizzati in 8 bit e supporta la trasparenza. JPEG supporta qualunque numero di colori RGB (ma esiste anche CMYK) a 8 bit per canale, dunque a 24 bit per pixel. Non supporta la trasparenza.

JPEG tuttavia non sostituisce interamente GIF. Su alcuni tipi di immagine, GIF funziona meglio sia per quanto riguarda le dimensioni del file che per la qualità dell’immagine.

Parlando in senso generale, JPEG è superiore a GIF se si tratta di memorizzare o trasmettere scene realistiche a colori o a grigi. E quindi fotografie, scansioni e simili. Le variazioni continue di colore e di grigio vengono rappresentate meglio e in meno spazio da JPEG che da GIF.

GIF è superiore a JPEG se si tratta di immagini con solo pochi colori (meno di 256), come disegni al tratto, logo, fumetti. In questi casi GIF non elimina pixel ed anzi li riproduce esattamente.

JPEG supporta solo 8 bit come profondità di colore, non supporta profondità superiori, come 16 bit.

Realizzare file di piccola dimensione è quasi obbligatorio se il file deve essere trasmesso online. Essere in grado di comprimere un file a colori di 2 Mbyte a, supponiamo, 100 Kbyte fa risparmiare un mucchio di tempo di trasmissione e di spazio di archiviazione. JPEG riesce a comprimere una foto a colori fino a 20 volte, mentre GIF arriva di solito a 4 volte.

Qui sotto ci sono esempi di compressione JPEG di una immagine a vari livelli di qualità.

L’originale è una immagine RGB di 230 x 360 pixel = 82.800 pixel. Ogni pixel è rappresentato con tre byte (uno per ognuno di R, G, B), quindi l’immagine è di 82.800 pixel x 3 byte = 248.400 byte = 243 Kbyte.

L’immagine è di 243 Kbyte, e memorizzata come TIFF non compresso occupa 257 Kbyte (106%) e come TIFF compresso LZW occupa 222 Kbyte (91%). Qui sotto la stessa immagine salvata in JPEG con qualità e dimensione descrescente:

Compressione 53%

Compressione 53%, 113K

Compressione 81%

Compressione 81%, 47K

Compressione 86%

Compressione 86%, 35K

Compressione 90%

Compressione 90%, 24K

Il JPEG progressivo fa apparire l’immagine poco per volta mentre vengono trasmessi i dati. Photoshop permette di scegliere la progressività: a 3, a 4 o a 5 passi. Inoltre la progressività permette di comprimere ancora di più l’immagine.

Sarebbe bello se, una volta compressa una immagine in JPEG e salvata, si potesse riaprirla, decomprimerla e portarla alla situazione originale. Purtroppo non è così, perché i pixel persi nella prima compressione non si recuperano più, perché la compressione JPEG è di tipo lossy. Ma c’è di peggio. Quando riapro una immagine JPEG non riottengo l’immagine originale, OK. Ma è possibile manipolarla, editarla (per esempio togliere un bordo) e risalvarla in JPEG senza ulteriore perdita di pixel, a parte quella iniziale? Anche in questo caso, purtroppo non è così.

In generale, ricomprimendo un JPEG modificato si perdono ulteriori informazioni. Se si apre un JPEG e lo si modifica localmente e lo si salva con lo stesso livello di qualità con cui era stato salvato la prima volta, il degrado della immagine è piccolo o nullo. Verrà modificata solo la parte corretta.

Ma negli altri casi, compreso per esempio il taglio di un pezzo di immagine, l’algoritmo di compressione viene riapplicato e l’immagine perde ulteriori pixel.

Quindi JPEG è utile come mezzo di compressione di immagini fotografiche e non è utile come formato intermedio per una sequenza di passi di manipolazione. In tal caso serve un formato di compressione lossless come per esempio TIFF.

JPEG non supporta la trasparenza. Il metodo tradizionale per definire la trasparenza usato da GIF, consiste nello scegliere un colore tra i 256 disponibili e dire che quel colore è trasparente. Questo non si può fare in JPEG, perché JPEG perde i pixel: un pixel non necessariamente rimane dello stesso colore dopo aver decompresso l’immagine. Un altro approccio sarebbe di memorizzare un canale alfa (percentuale di trasparenza), ma questo aumenterebbe la dimensione dell’immagine. L’ideale sarebbe memorizzare l’immagine JPEG lossy più una maschera di trasprenza lossless usando un altro algoritmo.

JPEG è il principale formato standard in fotografia digitale (gli altri sono TIFF e Raw). La fotografia viene compressa e memorizzata in 8 bit. Questo è un vantaggio per la dimensione in Kbyte, ma uno svantaggio per la qualità. Per scatti di qualità è meglio utilizzare il formato Raw, se è supportato dalla fotocamera.

JPEG in realtà è il nome dell’algoritmo di compressione, non del formato.

Il formato grafico JPEG standard è il JFIF (JPEG File Interchange Format): comprende solo i pixel e quasi nient’altro in più. Questo è il formato JPEG di Photoshop: un formato standard riconosciuto da molte applicazioni.

Il formato PICT con compressione JPEG è un PICT/JPEG, non direttamente compatibile con alcune applicazioni (anche se è convertibile). Per esempio non è compatibile con Netscape ed Explorer, e quindi con il web.

Un altro formato che supporta la compressione JPEG è il  TIFF 6.

È disponibile anche il formato JPEG 2000, 8 o 16 bit, con compressione lossless o lossy a scelta, molto usato in ambito medico.

Torna all'indice di Formati grafici

Mauro Boscarol

19/10/2008 alle 01:40

Parole chiave ,

Visitato 5,260 volte, negli ultimi 7 giorni 3 visite

2 commenti

Abbonati ai commenti a questo post con RSS o TrackBack.

  1. Che cosa accade se salvo in TIFF una immagine che in origine è JPEG? Posso così evitare la perdita di dati nei successivi salvataggi?

    maria

    3/4/09 alle 10:43

  2. Certo. Salvando un JPEG in TIFF non compresso o con compressione lossless i dati rimangono gli stessi nei salvataggi successivi.

    Mauro Boscarol

    3/4/09 alle 14:00

Vuoi fare un commento a questo post?

Devi essere collegato per scrivere un commento.