Studio comparativo

Studio comparativo di WebP, JPEG e JPEG 2000, settembre 2010

Nota: abbiamo condotto questo studio iniziale con la prima versione di WebP rilasciata, che utilizzava la libreria libvpx. Inoltre, le immagini di origine erano immagini JPEG di cui abbiamo eseguito la scansione dal Web. In base al feedback della community, abbiamo intrapreso un nuovo studio con la versione 0.1.2 di libwebp, che inizia con immagini senza perdita di dati come PNG. Il nuovo studio prevale su questo.

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 dell'immagine e compressione.

Tre metodi di compressione, WebP, JPEG 2000 e Re-JPEG, sono stati applicati alle 900.000 immagini JPEG contenute nel set di dati. Le immagini JPEG sono state ricomprimete con Re-JPEG in modo che ciascuna fosse il più vicino possibile a un valore target di rapporto segnale-rumore (PSNR). L'analisi del team è stata effettuata sulle immagini dopo averle compresse.

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

Conclusioni

WebP raggiunge una compressione complessivamente più elevata rispetto a JPEG o JPEG 2000. I miglioramenti relativi alla riduzione delle dimensioni dei file sono particolarmente elevati per le immagini più piccole, che sono quelle più comuni trovate sul Web.

Set di dati

Il set di dati utilizzato nello studio è una raccolta di 1 milione di immagini campionate casualmente da un repository di immagini sottoposte a scansione dal Web. La seguente tabella mostra la distribuzione di diversi tipi di immagini nel set di dati.

Tipo Conteggio
JPEG ~900.000
PNG ~47.000
GIF ~47.000
Altro ~6K

Progettazione dell'esperimento

Gli esperimenti sono stati eseguiti in due fasi:

  1. Il team ha eseguito WebP sulle immagini con un PSNR target di 42. Ha sintonizzato il parametro di qualità (QP) per il codificatore WebP fino a quando non ha ottenuto un risultato che era il più vicino possibile a 42 per un'immagine specifica. Il PSNR effettivo ottenuto per ogni immagine, pertanto, non era necessariamente esattamente 42.

  2. Il team ha utilizzato il valore PSNR per le immagini compresse su WebP come PSNR target per le immagini JPEG 2000 e Re-JPEG. Inoltre, ha eseguito una ricerca riga sui parametri di qualità delle immagini JPEG 2000 e JPEG in modo che si avvicini 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 prodotto i seguenti risultati per un aumento di compressione negativo e non negativo:

Guadagno di compressione non negativo

Il team non ha penalizzato un metodo se quest'ultimo ha aumentato le dimensioni dell'immagine dopo la compressione. In altre parole, la compressione_percentage è stata considerata pari a 0 quando zip_image.length era superiore all'originale_image.length.

Guadagno della compressione negativa

Il team ha consentito risultati percentuali di compressione negativa per comprendere meglio i vari tipi di compressori.

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

Tipo PSNR medio ottenuto % compressione media
(aumento della compressione non negativo)
% di compressione media
(aumento della compressione negativo)
WebP 39,38 41,30 39,80
JPEG 2000 39,49 27,67 9,71
Re-JPEG 39,36 22,37 14,62

Quando era consentito un aumento della compressione negativo, le prestazioni medie di JPEG 2000 erano inferiori rispetto a quelle di JPEG. Ciò può essere dovuto agli artefatti ad alta frequenza presenti nelle immagini JPEG; questi elementi possono contribuire a una situazione di compressione non ottimale.

L'implementazione di Kakadu utilizzata nell'esperimento per la conversione in 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 più basso.

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

Figura 1: Distribuzione della popolazione per le dimensioni delle immagini

Il grafico mostra che la maggior parte delle immagini erano piccole. La frequenza delle immagini con dimensione superiore 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 delle immagini compresse con WebP ha ottenuto una compressione migliore rispetto a re-jpeg e jpeg 2000. Inoltre, le immagini compresse con WebP hanno ottenuto una compressione più positiva delle altre.

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

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