La velocità di ca­ri­ca­men­to è già da tempo un elemento cardine nell’ot­ti­miz­za­zio­ne di un sito web. Non solo i vi­si­ta­to­ri ma anche i motori di ricerca con­si­de­ra­no fon­da­men­ta­le il tempo ne­ces­sa­rio a visitare una pagina. Un codice snello e compresso o l’uso di mec­ca­ni­smi di caching contano tra gli approcci ri­so­lu­ti­vi testati per garantire una rapida presenza web, così come l’uso di immagini compresse. Queste ultime, usate spesso come elementi creativi e di ac­com­pa­gna­men­to ai testi, sono presenti in grande quantità in tanti progetti sot­to­va­lu­tan­do però il loro impatto sul tempo di ca­ri­ca­men­to.

Google, il colosso dei motori di ricerca, si è già occupato di questo problema e con WebP ha pre­sen­ta­to nel 2010 un proprio formato d’immagine senza licenza per siti web più rapidi. Ma cosa si nasconde davvero dietro al formato web che risulta dal codec video VP8? E come si dif­fe­ren­zia dai formati con­so­li­da­ti come JPEG?

Cos’è WebP?

Il 30 settembre 2010 Google ha an­nun­cia­to il rilascio di un nuovo standard aperto per la com­pres­sio­ne con perdita di grafica di 24 bit sul web. Come modello per il formato con il nome WebP è stato impiegato il formato video VP8, svi­lup­pa­to dalla società On2 Tech­no­lo­gies e ac­qui­sta­to da Google lo stesso anno. In seguito, Google ha ampliato il formato WebP con ca­rat­te­ri­sti­che come una modalità per la com­pres­sio­ne senza perdita di dati, tra­spa­ren­za (canale alfa) e ani­ma­zio­ni. Chrome supporta il formato di com­pres­sio­ne già dalla fine del 2010 ma, ad oggi, insieme a Opera, si confronta con una varietà di browser che finora sup­por­ta­va­no WebP solo in via spe­ri­men­ta­le (come Safari e Firefox, i cui rilasci regolari non offrono alcun supporto). Microsoft ha di­chia­ra­to di lavorare at­tual­men­te a un proprio supporto per il browser Edge.

Consiglio

Sono di­spo­ni­bi­li in­for­ma­zio­ni sul browser per il supporto di WebP su caniuse.com.

Tutti i software per l’ela­bo­ra­zio­ne e la rap­pre­sen­ta­zio­ne di WebP sono inclusi di default nella licenza BSD. Google utilizza ad esempio il formato nel Chrome Web Store e nelle app di Google + per i di­spo­si­ti­vi mobili.

Quali ca­rat­te­ri­sti­che con­trad­di­stin­guo­no il formato WebP?

Fin dall’inizio, WebP ha puntato a ridurre il più possibile la di­men­sio­ne delle immagini nel web. Secondo in­for­ma­zio­ni ufficiali di Google, immagini e grafiche nel formato WebP sono circa il 30 % più piccole dei file PNG o JPEG a parità di qualità dell’immagine. Mentre questi due formati web classici puntano su metodi di com­pres­sio­ne dif­fe­ren­ti (PNG senza perdita di dati, JPEG con perdita di dati), WebP ammette entrambe le pos­si­bi­li­tà. Grazie a questa fles­si­bi­li­tà, il formato è adatto sia alle foto che a immagini e grafiche di piccole di­men­sio­ni. Le proprietà di com­pres­sio­ne e le altre ca­rat­te­ri­sti­che centrali del formato WebP si rias­su­mo­no come segue:

  • Com­pres­sio­ne (con perdita di dati): la com­pres­sio­ne con perdita di dati con WebP si basa sulla codifica di keyframe (in italiano: “fo­to­gram­mi chiave”) di VP8.
  • Com­pres­sio­ne (senza perdita di dati): la com­pres­sio­ne senza perdita con WebP si fonda su varie tecniche, che tra­sfor­ma­no parametri e dati di immagine. Viene impiegato l’algoritmo LZ77.
  • Tra­spa­ren­za: il canale alfa a 8 bit, offerto dal formato WebP, può essere uti­liz­za­to anche in caso di com­pres­sio­ne RGB con perdita di dati.
  • Metadati: WebP può contenere metadati EXIF e XMP generati ti­pi­ca­men­te dalle fo­to­ca­me­re.
  • Profilo di colore: il formato di Google può contenere profili ICC in­cor­po­ra­ti (set di dati che de­scri­vo­no lo spazio cromatico).
  • Ani­ma­zio­ni: il formato WebP consente la me­mo­riz­za­zio­ne di sequenze di immagini.

Come funziona la com­pres­sio­ne WebP con perdita di dati?

La com­pres­sio­ne con perdita di dati con WebP utilizza lo stesso metodo del codec VP8 basato su blocchi per calcolare in anticipo i frame, ossia le immagini singole. Ogni frame è suddiviso in segmenti più piccoli, de­no­mi­na­ti anche ma­cro­bloc­chi. All’interno di questi ma­cro­bloc­chi, il co­di­fi­ca­to­re può prevedere in­for­ma­zio­ni di movimento e colore ri­don­dan­ti e sottrarle dal blocco. Il risultato di questa com­pres­sio­ne pre­dit­ti­va si compone delle in­for­ma­zio­ni di blocco residue e delle in­for­ma­zio­ni separate ri­don­dan­ti (includono ti­pi­ca­men­te molti valori nulli). Viene quan­ti­fi­ca­to e co­di­fi­ca­to en­tro­pi­ca­men­te (rap­pre­sen­ta­zio­ne di caratteri secondo de­ter­mi­na­ti schemi di bit). Il passaggio di quan­ti­fi­ca­zio­ne è l’unico processo in cui i bit vengono ef­fet­ti­va­men­te scartati con perdite di dati.

N.B.

WebP attinge a un metodo di codifica arit­me­ti­co più efficace della codifica di Huffman, impiegata ad esempio nel formato JPEG. Per entrambi si tratta di forme di codifica en­tro­pi­che; il metodo di Huffman assegna a ogni carattere un numero intero di bit, mentre la codifica arit­me­ti­ca dell’intera sequenza assegna un unico codice bit più lungo. Pertanto, la com­ples­si­tà nella codifica arit­me­ti­ca è più elevata ma la for­ma­zio­ne di ri­don­dan­ze in termini di bit è esclusa (solo ri­don­dan­za di messaggi completi).

Fun­zio­na­men­to della com­pres­sio­ne senza perdita di dati con WebP

Nella com­pres­sio­ne WebP senza perdita di dati, la tra­sfor­ma­zio­ne dell’immagine ha la priorità ed è possibile ricorrere alle tecniche seguenti:

Tra­sfor­ma­zio­ne sulla base di pre­vi­sio­ni spaziali WebP si avvale di 13 diverse modalità di pre­vi­sio­ne sfrut­tan­do il fatto che i pixel vicini spesso si correlano tra loro. Il valore attuale del pixel viene previsto da pixel già de­co­di­fi­ca­ti e solo il valore residuo è co­di­fi­ca­to.
Tra­sfor­ma­zio­ne di colore L’obiettivo della tra­sfor­ma­zio­ne di colore è la de­cor­re­la­zio­ne dei valori RGB di ogni singolo pixel. L’immagine viene in­nan­zi­tut­to suddivisa in blocchi, prima che il rosso (R) sia tra­sfor­ma­to sulla base del verde (V) e il blu (B) sulla base di verde e rosso. Il valore verde rimane nel frattempo invariato.
Tra­sfor­ma­zio­ne mediante sot­tra­zio­ne di verde Oltre alla generale tra­sfor­ma­zio­ne di colore, è possibile una variante in cui i valori verdi vengono sottratti dai valori di rosso e blu di ciascun pixel.
Tra­sfor­ma­zio­ne sulla base dell’in­di­ciz­za­zio­ne del colore Se sono presenti troppo pochi valori di pixel univoci, il formato WebP offre anche la pos­si­bi­li­tà di tra­sfor­ma­zio­ne dell’in­di­ciz­za­zio­ne di colore. Il numero di valori ARGB univoci è rilevato nell’immagine e, in caso di cifre troppo ridotte, si ordinano tali valori. Questa con­fi­gu­ra­zio­ne viene uti­liz­za­ta per so­sti­tui­re i valori di pixel con il ri­spet­ti­vo indice.
Codifica di caching del colore La com­pres­sio­ne WebP senza perdita di dati può usare frammenti di immagine già visti per ri­co­strui­re nuovi pixel. Se non sono presenti risultati adeguati in merito, una cache di colore locale con gli ultimi 32 colori uti­liz­za­ti serve come punto di partenza. Questa viene ag­gior­na­ta con­ti­nua­men­te.

I parametri e i dati immagine tra­sfor­ma­ti vengono co­di­fi­ca­ti en­tro­pi­ca­men­te, per cui viene impiegata una variante dell’algoritmo LZ77. Questa utilizza valori piccoli per pixel vicini in termini di spazio.

Cosa con­trad­di­stin­gue un WebP animato?

Grazie al supporto di immagini animate, WebP co­sti­tui­sce un’in­te­res­san­te al­ter­na­ti­va a GIF o APNG. I suoi punti di forza sono la pro­fon­di­tà di colore a 24 Bit e il canale alfa a 8 bit ma anche il forte grado di com­pres­sio­ne. Il formato WebP, al contrario dei formati con­cor­ren­ti, consente sia la com­pres­sio­ne senza perdita di dati delle ani­ma­zio­ni che quella con perdita. Anche in termini di de­co­di­fi­ca, il WebP animato risulta con­vin­cen­te: dato che WebP memorizza i metadati se ciascun frame contiene valori alfa, non occorre che il de­co­di­fi­ca­to­re converta sin­go­lar­men­te ciascun frame per ottenere queste in­for­ma­zio­ni.

N.B.

Secondo Google, la tra­sfor­ma­zio­ne di GIF in WebP con perdita di dati riduce la di­men­sio­ne del file fino al 64% (19% in caso di WebP senza perdita di dati).

I punti di forza della tecnica keyframe già men­zio­na­ta del formato WebP si evincono in par­ti­co­la­re nelle ani­ma­zio­ni in cui i fo­to­gram­mi chiave ga­ran­ti­sco­no una qualità elevata. Pertanto il processo di de­co­di­fi­ca sfrutta mag­gior­men­te la CPU rispetto, ad esempio, a GIF.

Come è strut­tu­ra­to WebP?

I file WebP sono file con­te­ni­to­ri che si rifanno a RIFF (Resource Inter­chan­ge File Format), il formato con­te­ni­to­re svi­lup­pa­to da Microsoft e IBM. Un file con formato WebP si compone pertanto di un header RIFF e del cor­ri­spon­den­te contenuto WebP.

L’header RIFF/WebP consiste nelle seguenti tre sequenze a 4 byte:

  • FourCC (Four Character Code) “RIFF”: iden­ti­fi­ca­ti­vo del tipo dai 4 caratteri ASCII R, I, F e F, che indicano che si tratti di un file con­te­ni­to­re RIFF
  • File Size: in­di­ca­zio­ne dalla di­men­sio­ne del file
  • FourCCWEBP”: iden­ti­fi­ca­ti­vo del tipo dai 4 caratteri ASCII W, E, B e P, che indicano che il con­te­ni­to­re RIFF contiene un file WebP

L’in­te­sta­zio­ne è seguita dai blocchi di file WebP, de­no­mi­na­ti “chunk” anche nei con­te­ni­to­ri RIFF. Ogni chunk ha un proprio header, a cui seguono le ri­spet­ti­ve in­for­ma­zio­ni. Possibili blocchi di livello superiore sono “VP8” (WebP con perdita di dati), “VP8L” (WebP senza perdita di dati) e “VP8X” (WebP ampliato). Questi ultimi con­trad­di­stin­guo­no i file WebP con ulteriori in­for­ma­zio­ni come metadati EXIF (chunk EXIF) o un profilo di colore ICCP (chunck ICCP) e WebP animato (chunk ANIM).

La struttura completa dei file in formato WebP si presenta come segue:

WebP vs JPEG: un confronto

Come Google si è affermato nel mondo dei motori di ricerca, lo stesso vale per il JPEG o JPG per la pre­sen­ta­zio­ne di foto e grandi immagini nel World Wide Web. Anche dopo un quarto di secolo dal suo rilascio, questo formato di immagine è ancora im­pre­scin­di­bi­le sulla scena web. Il vantaggio maggiore rispetto ai formati come PNG, diffuso in modo omogeneo ma pre­va­len­te­men­te nelle immagini e nelle grafiche di di­men­sio­ni più ridotte, come loghi, icone, ecc., consiste in­dub­bia­men­te nel fatto che, grazie alla com­pres­sio­ne con perdita di dati, JPEG ga­ran­ti­sce un notevole risparmio di spazio.

In questo dettaglio decisivo, WebP si presenta tuttavia più ef­fi­cien­te e fles­si­bi­le: da un lato, il formato di Google, oltre al metodo di com­pres­sio­ne con perdita di dati, offre anche un metodo di com­pres­sio­ne senza perdita; dall’altro, il risparmio di memoria per le immagini in formato WebP supera quello per le immagini JPEG equi­va­len­ti. Il fatto che JPEG ammetta immagini con di­men­sio­ne massima fino a 65.535 x 65.535 pixel, mentre il limite di WebP è di 16.383 x 16.383 pixel, è tra­scu­ra­bi­le in con­si­de­ra­zio­ne dell’ambito di ap­pli­ca­zio­ne (web).

N.B.

Il vantaggio della com­pres­sio­ne di WebP rispetto a JPEG si perde in caso di una com­pres­sio­ne elevata (a partire circa da un livello di com­pres­sio­ne del 90%). Mentre le immagini JPEG compresse di questo tipo pre­sen­ta­no molti pixel, gli esemplari equi­va­len­ti in formato WebP di­mo­stra­no un certo valore aggiunto.

Simile al confronto WebP vs JPEG è anche il confronto WebP vs GIF, in cui il formato di Google presenta notevoli vantaggi in termini di qualità e com­pres­sio­ne. Il problema concerne tuttavia il mancato supporto di WebP da parte di browser come Firefox o Microsoft Edge. Ad oggi, gli utenti di questi browser non vi­sua­liz­za­no immagini e ani­ma­zio­ni in WebP, motivo per cui finora nessun gestore di siti web punta su questo formato.

Di seguito ri­por­tia­mo in una tabella una sintesi dei dati chiave sul confronto “WebP vs JPEG”:

WebP JPEG
Rilascio 2010 1992
Esten­sio­ne/i del file .webp .jpeg, .jpg
Ri­so­lu­zio­ne massima (in pixel) 16.383 x 16.383 65.535 x 65.535
Com­pres­sio­ne (senza perdita di dati) No
Com­pres­sio­ne (con perdita di dati)
Tra­spa­ren­za (canale alfa) No
Spazio cromatico RGB
Ani­ma­zio­ni possibili No
Supporto da parte delle ap­pli­ca­zio­ni limitato (tra cui Chrome, Opera, Gmail, IrfanView) uni­ver­sa­le

Come vengono aperti e con­ver­ti­ti i file WebP?

At­tual­men­te, non è ancora possibile aprire i file in formato WebP con i consueti programmi di vi­sua­liz­za­zio­ne di immagine di Windows, Linux e macOS. Se si desidera mostrare ani­ma­zio­ni o immagini co­di­fi­ca­te con WebP, sono di­spo­ni­bi­li varie pos­si­bi­li­tà.

Se Chrome o Opera sono in­stal­la­ti sul vostro sistema, il file in oggetto può essere sem­pli­ce­men­te tra­sci­na­to in una finestra aperta dei due browser. Dato che WebP si avvale di un supporto nativo, il contenuto viene vi­sua­liz­za­to senza la necessità di ulteriori software. Questa soluzione, però, non è molto comoda, in par­ti­co­la­re quando si de­si­de­ra­no vi­sua­liz­za­re più immagini o ani­ma­zio­ni. Chi non lavora con varie finestre browser e desidera passare da una all’altra, può accedere a IrfanView. Il vi­sua­liz­za­to­re di immagini freeware fornisce anche il supporto WebP dopo l’in­stal­la­zio­ne del pacchetto plug-in ufficiale. Tuttavia, il programma è di­spo­ni­bi­le solo per Windows.

N.B.

Se si desidera sfruttare il layer di com­pa­ti­bi­li­tà Wine, è possibile in­stal­la­re IrfanView anche in macOS o Linux per aprire i file WebP con il programma freeware.

Nella sezione ufficiale dedicata agli svi­lup­pa­to­ri di WebP Google mette a di­spo­si­zio­ne anche una serie di soluzioni proprie per il lavoro con WebP, in par­ti­co­la­re la libreria libwebp, che è possibile uti­liz­za­re per im­ple­men­ta­re la codifica e la de­co­di­fi­ca di WebP nei propri programmi. Inoltre, nella raccolta sca­ri­ca­bi­le gra­tui­ta­men­te sono contenuti i seguenti tool:

  • cwebp consente la com­pres­sio­ne di un file di immagine grazie a WebP. I formati possibili sono PNG, JPEG e TIFF. Nelle opzioni del tool è possibile definire se la com­pres­sio­ne debba essere eseguita con o senza perdita di dati.
  • dwebp è uno strumento che consente di tra­sfor­ma­re i file WebP esistenti in formati come PNG (opzione standard), BMP, TIFF o PGM.
  • Con vwebp, Google fornisce una propria soluzione alla vi­sua­liz­za­zio­ne di immagini e ani­ma­zio­ni WebP sulla base di OpenGL.
  • webpmux è lo strumento decisivo per il lavoro con WebP ampliato. Con il programma è possibile creare, ad esempio, ani­ma­zio­ni in formato WebP o ampliare i file di immagine con metadati e profili ICC.
  • gif2webp consente la con­ver­sio­ne dei file GIF esistenti in WebP. Come nella consueta com­pres­sio­ne di immagini, è possibile sia la codifica con perdita di dati che quella senza.
Consiglio

Su ezgif.com è di­spo­ni­bi­le una varietà di strumenti per la creazione e la con­ver­sio­ne di file WebP. Al contrario delle ap­pli­ca­zio­ni di Google, potete uti­liz­zar­li senza in­stal­lar­li, di­ret­ta­men­te dal browser.

Vai al menu prin­ci­pa­le