Studio comparativo

Comparative study of WebP, JPEG and JPEG 2000, settembre 2010

Nota: avevamo condotto questo studio iniziale con la prima versione di WebP che abbiamo rilasciato, che utilizzava la libreria libvpx. Inoltre, le immagini di origine erano immagini JPEG che abbiamo scansionato dal web. In base al feedback della community, abbiamo intrapreso un nuovo studio con la versione 0.1.2 di libwebp che inizia con le immagini senza perdita di dati (PNG) come fonte. Il nuovo studio ha la precedenza.

Il team WebP ha eseguito uno studio comparativo di tre metodi di compressione delle immagini su un insieme casuale di 1 milione di immagini. L'obiettivo dello studio era misurare la compressione ottenuta con questi metodi e analizzare i compromessi tra dimensioni e compressione delle immagini.

Alle 900.000 immagini JPEG contenute nel set di dati sono stati applicati tre metodi di compressione, WebP, JPEG 2000 e Re-JPEG. Le immagini JPEG sono state ricompresse con Re-JPEG in modo che ciascuna fosse il più vicina possibile al valore del rapporto segnale/rumore di picco target (PSNR). L'analisi del team è stata condotta sulle immagini dopo che erano state compresse.

Oltre allo studio su larga scala, il team ha ispezionato manualmente 100 immagini casuali e ha scoperto che, nella maggior parte dei casi, WebP offre una qualità visiva accettabile.

Conclusioni

WebP raggiunge una compressione in generale maggiore rispetto a JPEG o JPEG 2000. I vantaggi nella minimizzazione delle dimensioni dei file sono particolarmente significativi per le immagini più piccole, che sono quelle più comuni sul web.

Set di dati

Il set di dati utilizzato nello studio era una raccolta di un milione di immagini campionate in modo casuale da un repository di immagini sottoposte a scansione dal web. La seguente tabella mostra la distribuzione dei diversi tipi di immagini nel set di dati.

Tipo Conteggio
JPEG ~900.000
PN ~47.000
GIF ~47.000
Altro ~6000

Progettazione degli esperimenti

Gli esperimenti sono stati condotti in due fasi:

  1. Il team ha eseguito WebP sulle immagini con un PSNR target pari a 42. Ha ottimizzato il parametro di qualità (QP) per il codificatore WebP fino a ottenere un risultato il più vicino possibile a 42 possibile per una determinata immagine. Il valore PSNR effettivo ottenuto per ogni immagine, pertanto, non era necessariamente esattamente 42.

  2. Il team ha utilizzato il valore PSNR per le immagini compresse WebP come PSNR target per le immagini JPEG 2000 e Re-JPEG. Ha anche eseguito una ricerca a riga sui parametri di qualità delle immagini JPEG 2000 e JPEG per avvicinarsi il più possibile al PSNR di destinazione.

Il risultato effettivo della compressione è stato misurato come percentuale utilizzando la seguente formula:

compression_percentage = 100 * (original_image.length - compressed_image.length) / original_image.length

Risultati

I test hanno restituito i seguenti risultati di guadagno di compressione negativo e non negativo:

Guadagno di compressione non negativo

Il team non ha penalizzato un metodo se aumentava le dimensioni dell'immagine dopo la compressione. In altre parole, il compressione_percentage è stato considerato pari a 0 quando compresso_image.length era maggiore di original_image.length.

Guadagno da compressione negativa

Il team ha consentito a risultati con percentuali di compressione negative di comprendere meglio le prestazioni non elaborate dei vari compressori.

Di seguito sono riportate le percentuali medie di compressione ottenute da ciascuno dei tre metodi.

Tipo PSNR medio ottenuto % compressione media
(guadagno compressione non negativo)
% compressione media
(guadagno compressione negativo)
WebP 39,38 41.30 39,80
JPEG 2000 39,49 27.67 9.71
ReJPEG 39,36 22.37 14.62

Quando è stato consentito un guadagno di compressione negativo, le prestazioni medie di JPEG 2000 erano inferiori a quelle di JPEG. Ciò potrebbe essere dovuto alla presenza di artefatti ad alta frequenza nelle immagini JPEG che possono contribuire a una situazione di compressione non ottimale.

L'implementazione di Kakadu utilizzata nell'esperimento per la conversione in formato JPEG 2000 non è riuscita a convertire circa 240.000 immagini.

JPEG 2000 aveva percentuali di compressione inferiori rispetto a Re-JPEG, principalmente perché il risultato di JPEG 2000 era una compressione negativa per molte immagini. Per questo motivo, le immagini JPEG hanno ottenuto un punteggio di compressione complessivo inferiore.

Le figure seguenti forniscono grafici di distribuzione per i tre metodi:

Figura 1: distribuzione della popolazione in base alle dimensioni delle immagini

Il grafico mostra che la maggior parte delle immagini erano piccole. La frequenza delle immagini con dimensioni superiori a 500 kB è generalmente inferiore a 100.

Figura 2: percentuali di compressione per immagini WebP, JPEG e JPEG 2000

Questo grafico mostra che il corpo di immagini compresse con WebP ha ottenuto una compressione migliore rispetto a re-jpeg e jpeg 2000. Inoltre, le immagini compresse con WebP hanno ricevuto una compressione più positiva rispetto alle altre.

Figura 3: confronto tra dimensioni delle immagini e percentuale di compressione

Questo grafico mostra che WebP raggiunge una compressione migliore rispetto agli altri formati, in particolare per le immagini più piccole.