Il formato WebP di Google e il movimento anti-JPEG

Nota: questo post è un esercizio per spiegare concetti complessi con parole semplici.

Nella sua crociata per velocizzare il Web, Google sta operando su diversi fronti, evangelizzando le masse, fornendo strumenti per ottenere siti web più reattivi e investendo in nuove tecnologie che promettono un Web più veloce e più facilmente fruibile.

Una delle nuove tecnologie sviluppate è il formato per immagini WebP, che nelle intenzioni di Google mira a sostituire l’ormai anziano formato JPEG. Per ragioni inspiegabili, Google ci informa che la pronuncia di “WebP” è “weppy”.

Visto che le tecnologie che stanno dietro il formato JPEG (e agli algoritmi di compressione in genere) sono una mia passione, ne approfitto per raccontare un po’ le caratteristiche del JPEG e quello che si prospetta un possibile futuro.

I ferri del mestiere

Cubo di metallo compressoPer introdurre il magico mondo della compressione mi limiterò ad indicare due semplici nozioni di base:

  • le ripetizioni di elementi simili sono più facilmente comprimibili rispetto ad elementi apparentemente casuali. Per esempio, molti algoritmi di compressione riescono a comprimere la stringa di caratteri “aaaaaaaa” più facilmente della stringa “*c_f9)Ql”.
  • alcuni algoritmi di compressione hanno l’obiettivo di riprodurre, in fase di decompressione, esattamente le informazioni originarie;
    altri algoritmi di compressione hanno invece l’obiettivo di riprodurre, in fase di decompressione, informazioni simili a quelle originarie (simili per l’occhio umano quando si tratta di immagini o video, simili all’orecchio quando si tratta di informazioni audio). Accettare una parziale perdita delle informazioni originarie consente di comprimere di più.

Il formato JPEG

Il formato JPEG è nato per comprimere le immagini accettendo una parziale perdita delle informazioni originarie (compressione detta lossy), compromesso che consente di ottenere compressioni maggiori a scapito della qualità dell’immagine decompressa, che non combacia più esattamente con l’immagine di partenza.

Tutti i formati di compressione che prevedono una perdita parziale delle informazioni originarie devono fare i conti con un aspetto critico della progettazione dell’algoritmo: decidere quali informazioni originarie vanno sacrificate e quali vanno mantenute.

Per la compressione delle immagini, questa decisione viene solitamente presa tenendo conto delle caratteristiche dell’occhio umano e della sua capacità di percepire luminosità e colori. L’idea di fondo è quella di accettare di perdere maggiori informazioni su quegli elementi visuali verso i quali l’occhio umano è meno sensibile.

Per esempio, nel formato JPEG:

  • essendo l’occhio umano più sensibile ai dettagli della luminosità rispetto ai dettagli del colore, le componenti di luminosità e di colore dell’immagine vengono separate. La componente della luminosità viene mantenuta inalterata mentre la componente del colore viene ridotta, per esempio prendendo la componente colore di quattro pixel adiacenti e conservando una loro semplice media. In questo modo la componente del colore è stata ridotta ad un quarto della quantità originaria.
  • essendo l’occhio umano in grado di notare più facilmente i piccoli dettagli su sfondi uniformi rispetto a molti piccoli dettagli contigui e accorpati, dei blocchetti rettangolari di pixel vengono scomposti con una formula matematica in grado di separare le informazioni sulle variazioni infrequenti (di luminosità o colore) dalle informazioni sulle variazioni frequenti, che sono più simili a semplice “rumore di fondo”. Queste ultime vengono poi divise per delle costanti in modo che alla fine si ottengano valori molti bassi: serie di zeri o di piccoli numeri interi che, come spiegato in “i ferri del mestiere”, essendo ripetizioni sono più facilmente comprimibili.

Una volta scartate le informazioni meno strategiche, i dati rimanenti vengono compressi con una variante di un classico algoritmo senza perdita di (ulteriori) informazioni, quello di Huffman.

E’ importante specificare che il formato JPEG permette di modificare diversi parametri del processo di compressione e che quanto descritto sopra è semplicemente un esempio di uno scenario tipico, non l’esatto e immutabile iter che la compressione deve seguire.

Limiti e futuro del formato JPEG

Col passare degli anni il formato JPEG ha risentito dell’età, in primo luogo perché sono nati algoritmi di compressione migliori e più sofisticati ed in secondo luogo perché ci si è accorti che se alcune piccole accortezze fossero state prese durante la progettazione del formato JPEG, l’algoritmo stesso avrebbe potuto conseguire risultati di compressione ben maggiori.

Queste accortezze non possono essere “aggiunte a forza” oggi nel formato JPEG, perché, come tutti i formati esistenti, ha dei limiti alla capacità di essere esteso senza perdere la compatibilità col passato.

Per esempio, grandi miglioramenti della compressione potrebbero essere ottenuti semplicemente sostituendo l’algoritmo Huffman con altri più moderni. Ma farlo significherebbe produrre file JPEG che non potrebbero essere decompressi (e quindi visualizzati) da tutti i software vecchi, in grado di gestire solo i file JPEG nei quali viene usato l’Huffman.

Dopo il JPEG sono nati decine di formati immagine in grado di garantire compressioni e qualità maggiori; uno di questi formati, il JPEG 2000, è stato progettato dalla stessa organizzazione che progettò il JPEG. Nessuno di questi nuovi formati si è diffuso fino al punto di riuscire a scalzare il JPEG.

La situazione, per riassumere, è che oggi possediamo tecnologie e algoritmi di compressione di gran lunga superiori rispetto a quelli che esistevano quando il formato JPEG è nato e che se fosse possibile sostituire magicamente tutte le JPEG sul Web in formati più moderni, otterremmo un Web più veloce e reattivo.

Proprio prefiggendosi l’obiettivo di ottenere un Web meno pesante, tra le aziende che hanno proposto nuovi formati immagine sostitutivi del JPEG c’è anche Google, col suo formato WebP.

Il formato WebP di Google

Logo WebPLe cose stanno così: il formato WebP è stato fortemente criticato in quanto comprime le immagini scartando informazioni utili all’occhio umano per percepire un’immagine quanto più simile a quella originaria.

In altre parole, quelle stesse informazioni che il formato JPEG tende a preservare, nel formato WebP possono invece andare perse in buona parte ed il risultato è che le immagini ricostruite in fase di decompressione possono apparire più sfocate rispetto all’originale.

Da un lato, Google decanta le lodi del formato mostrando statistiche che lasciano intendere la sua superiorità rispetto al JPEG, dall’altro esiste una comunità di informatici (in particolare esperti del codec video H.264) che fanno notare che le statistiche di Google non hanno tenuto conto degli aspetti “psicovisuali” (le informazioni e i dettagli che agli occhi umani rendono l’immagine più naturale e simile all’originale) nello stimare la qualità ottenuta dal formato WebP rispetto al JPEG.

Per farvi un’opinione tutta vostra, possono esservi utili i due seguenti link:

  • una pagina di Google, nella quale vengono comparate alcune immagini JPEG con le corrispettive WebP. Si noti però che la comparazione si focalizza sulla maggiore capacità di compressione del WebP a parità di qualità dell’immagine risultante. Potete vedere le immagini WebP solo con Chrome o con l’ultima versione beta di Opera in quanto, nel momento in cui scrivo, sono gli unici browser che supportano il nuovo formato di Google.
  • una pagina in cui si fanno le pulci al formato WebP, comparando una sua immagine con la corrispondente JPEG e con quello che si potrebbe ottenere comprimendola con lo stesso algoritmo usato per il formato video H.264 (“concorrente” del formato video VP8 di Google, sul quale WebP si basa). Per vostra comodità linko direttamente i tre risultati, trasformati in normali immagini PNG in modo che siano visualizzabili con qualunque browser: compressione JPEG, compressione H.264 e compressione WebP.

Il formato WebP, come ci si aspetterebbe, esce vincitore dalla prima comparazione e bastonato dalla seconda.

La politica pesa più della qualità?

Nel chiedermi che cosa ci vorrebbe per riuscire a sostituire gradualmente il formato JPEG sul Web e per rendere la rete un po’ più veloce, mi risponderei: politica.

La storia dei formati e dei protocolli è ricca di episodi che dimostrano che le tecnologie che si diffondono di più non sono necessariamente le migliori. A volte la loro diffusione è semplice conseguenza di accordi commerciali o politici, nati per spingere sul mercato un prodotto a discapito di competitor più performanti ma meno agguerriti lato business.

La graduale sostituzione del formato JPEG con un formato in grado di comprimere di più è un obiettivo ambizioso che potrebbe essere raggiunto, paradossalmente, a prescindere da quanto sia migliore la qualità delle nuove immagini. Si tratta di una situazione nella quale marketing e accordi commerciali potrebbero essere gli unici concreti strumenti per indurre software house, siti web, organizzazioni ed aziende ad adottare in massa un nuovo formato, qualunque esso sia.

Logo di OperaE’ di pochi giorni fa la notizia che Opera ha adottato WebP come formato immagine per il proprio servizio Opera Turbo, sostituendo il formato JPEG. Opera Turbo non è altro che un servizio di proxy messo a disposizione degli utenti del browser Opera: la richiesta di una pagina web arriva ai server di Opera, che scaricano la risorsa e la rispediscono all’utente dopo aver compresso maggiormente tutte le immagini presenti nella pagina (con perdità di qualità rispetto alle immagini pubblicate). Il servizio è particolarmente utile a tutti gli utenti che possiedono connessioni lente.

Fino a pochi giorni fa per l’ulteriore compressione delle immagini veniva usato il formato JPEG stesso, adesso viene usato il formato WebP. Una nota interessante riguarda il fatto che proprio sulla pagina sopra linkata, che annuncia la novità, è presente una comparazione di un’immagine JPEG ricompressa a qualità minore e ricompressa con WebP. La versione WebP sembra globalmente più nitida ma vi faccio notare l’involontario “lifting” della fronte della persona ritratta, che è correlabile alla perdita di dettagli messa in luce dai critici del nuovo formato.

L’adozione del formato WebP da parte di Opera Turbo non deve però trarre in inganno e passare come un indice della maggiore qualità del formato in sé; bisogna tenere conto di quanto Opera cercava: un algoritmo in grado di comprimere più del formato JPEG presentando una qualità globale maggiore. Il che significa che fino a quando i byte sono meno e la nitidezza complessiva dell’immagine è maggiore, per Opera Turbo è accettabile fare il lifting alle persone ritratte in foto.

Se il formato WebP dovesse diffondersi ulteriormente e dovesse venire supportato dai principali browser, tante persone ritratte sul Web potrebbero essere contente di questo utile antirughe informatico. E senza dover pagare un grafico Photoshop! :)

2 Responses to Il formato WebP di Google e il movimento anti-JPEG

  1. RoJo scrive il 26 April 2011 at 09:47

    Mo provo a convertire una foto da 21Mpx della CANON 5D Mark II in webp, vediamo cosa esce fuori…

  2. Pingback: Zopfli: un nuovo algoritmo di compressione compatibile con deflate

Lascia un commento