Studio comparativo di WebP, JPEG e JPEG 2000, settembre 2010
Nota: abbiamo 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 sottoposte a scansione dal web. In base al feedback della community, abbiamo avviato un nuovo studio con la versione 0.1.2 di libwebp
, utilizzando come origine le immagini senza perdita di dati (PNG). Il nuovo studio sostituisce questo
studi.
Il team di WebP ha eseguito uno studio comparativo di tre metodi di compressione delle immagini su un insieme casuale di 1 milione di immagini. Gli obiettivi dello studio erano misurare la compressione ottenuta con questi metodi e analizzare i compromessi tra dimensioni delle immagini 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 ricompresse con Re-JPEG in modo che ciascuna fosse il più vicino possibile a un valore PSNR (Rapporto segnale/rumore) di picco target. L'analisi del team è stata eseguita sulle immagini dopo che erano state compresse.
Oltre allo studio su larga scala, il team ha esaminato manualmente 100 immagini random e ha scoperto che, nella maggior parte dei casi, WebP offre una qualità visiva accettabile.
Conclusioni
WebP raggiunge una compressione complessiva superiore rispetto a JPEG o JPEG 2000. I guadagni nella minimizzazione delle dimensioni dei file sono particolarmente elevati per le immagini più piccole, che sono quelle più comuni sul web.
Set di dati
Il set di dati utilizzato nello studio era costituito da una raccolta di 1 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 |
PNG. | Circa 47.000 |
GIF | Circa 47.000 |
Altro | Circa 6000 |
Progettazione dell'esperimento
Gli esperimenti sono stati eseguiti in due fasi:
Il team ha eseguito WebP sulle immagini con un PSNR target di 42. Hanno ottimizzato il parametro di qualità (QP) per l'encoder WebP fino a ottenere un risultato il più vicino possibile a 42 per una determinata immagine. Pertanto, il valore PSNR effettivo ottenuto per ogni immagine non era necessariamente esattamente 42.
Il team ha utilizzato il valore PSNR per le immagini compresse con WebP come PSNR target per le immagini JPEG 2000 e Re-JPEG. Inoltre, hanno eseguito una ricerca lineare tra i parametri di qualità delle immagini JPEG 2000 e JPEG per avvicinarsi il più possibile al PSNR target.
Il risultato effettivo della compressione è stato misurato in 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 il guadagno di compressione negativo e non negativo:
Guadagno di compressione non negativo
Il team non ha penalizzato un metodo se questo aumentava le dimensioni dell'immagine dopo la compressione. In altre parole, la percentuale di compressione veniva considerata pari a 0 quando la lunghezza di compressed_image era maggiore di quella di original_image.
Guadagno di compressione negativo
Il team ha consentito risultati in percentuale di compressione negativi per comprendere meglio il rendimento non elaborato dei vari compressori.
Di seguito sono riportate le percentuali di compressione medie raggiunte da ciascuno dei tre metodi.
Tipo | PSNR media ottenuta | % di compressione media (guadagno di compressione non negativo) |
% di compressione media (guadagno di 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 guadagno di compressione negativo, il rendimento medio del formato JPEG 2000 era inferiore a quello del formato JPEG. Ciò può essere dovuto ad artefatti ad alta frequenza presenti nelle immagini JPEG; questi artefatti 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 ha registrato percentuali di compressione inferiori rispetto a Re-JPEG, principalmente perché il risultato JPEG 2000 ha generato una compressione negativa per molte immagini. Per questo motivo, le immagini JPEG hanno ottenuto un punteggio di compressione complessivo inferiore.
Le seguenti figure mostrano i 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 era di piccole dimensioni. La frequenza delle immagini con dimensioni superiori a 500 KB è generalmente inferiore a 100.
Figura 2: percentuali di compressione per le immagini WebP, JPEG e JPEG 2000
Questo grafico dimostra 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 rispetto alle altre.
Figura 3: confronto delle dimensioni delle immagini e della percentuale di compressione
Questo grafico mostra che WebP raggiunge una compressione migliore rispetto agli altri formati, in particolare per le immagini più piccole.