Studio comparativo di WebP, JPEG e 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, la fonte
erano immagini JPEG che abbiamo scansionato dal Web. In base al feedback di
comunità, abbiamo intrapreso un'attività
nuovo studio con versione 0.1.2 di libwebp
che iniziano con immagini senza perdita di dati (PNG) come origine. Il nuovo studio ha la precedenza su questo
studio.
Il team di WebP ha condotto uno studio comparativo di tre metodi di compressione delle immagini. in 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 e compressione delle immagini.
Sono stati applicati tre metodi di compressione, WebP, JPEG 2000 e Re-JPEG, 900.000 immagini JPEG contenute nel set di dati. Le immagini JPEG sono state ricompresse con Re-JPEG in modo che ognuno di essi sia il più vicino possibile a un picco target il valore del rapporto segnale-rumore (PSNR). L'analisi del team è stata eseguita sulle immagini dopo che sono stati compressi.
Oltre allo studio su larga scala, il team ha ispezionato manualmente 100 e abbiamo scoperto che, nella maggior parte dei casi, WebP fornisce una qualità visiva accettabile.
Conclusioni
WebP ottiene complessivamente una compressione maggiore di JPEG o JPEG 2000. Guadagni minimizzazioni delle dimensioni dei file sono particolarmente elevate per le immagini più piccole, quelle più comuni trovate sul web.
Set di dati
Il set di dati utilizzato nello studio era una raccolta di 1 milione di immagini in modo casuale campionate da un repository di immagini sottoposte a scansione dal web. La tabella seguente mostra la distribuzione dei diversi tipi di immagini nel set di dati.
Tipo | Conteggio |
---|---|
JPEG | ~900.000 |
PN | ~47.000 |
GIF | ~47.000 |
Altro | ~6.000 |
Progettazione dell'esperimento
Gli esperimenti sono stati condotti in due fasi:
Il team ha eseguito WebP sulle immagini con un PSNR target pari a 42. Hanno ottimizzato il parametro di qualità (QP) del codificatore WebP finché non ha ottenuto un un valore molto simile a 42 per una determinata immagine. L'effettivo Il valore PSNR ottenuto per ogni immagine, pertanto, non era necessariamente esattamente 42.
Il team ha utilizzato il valore PSNR per le immagini compresse da WebP come target PSNR per le immagini JPEG 2000 e Re-JPEG. Ha anche cantato una linea cerca i parametri di qualità delle immagini JPEG 2000 e JPEG in per avvicinarsi il più possibile al PSNR di destinazione.
Il risultato effettivo della compressione è stato misurato in percentuale utilizzando quanto segue: formula:
compression_percentage = 100 * (original_image.length - compressed_image.length) / original_image.length
Risultati
I test hanno prodotto i seguenti risultati per negativi e non negativi aumento della compressione:
Guadagno a compressione non negativo
Il team non ha penalizzato un metodo se questo metodo ha aumentato le dimensioni dell'immagine dopo la compressione. Ciò significa che la percentuale di compressione è stata considerata pari a 0 quando compressi_image.length era maggiore di originali_image.length.
Guadagno a compressione negativo
Il team ha consentito i risultati con percentuale di compressione negativa per migliorare la comprensione dei vari compressori prestazioni non elaborate.
Di seguito sono riportate le percentuali medie di compressione ottenute da ciascuna uno dei tre metodi.
Tipo | PSNR medio ottenuto | % compressione media (aumento della compressione non negativo) |
% 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 è stato consentito un guadagno negativo della compressione, il rendimento medio di JPEG 2000 è inferiore a quello di JPEG. Ciò può essere dovuto a artefatti ad alta frequenza presente nelle immagini JPEG; questi artefatti possono contribuire una situazione di compressione non ottimale.
L'implementazione Kakadu utilizzata nell'esperimento per la conversione in JPEG 2000 non è riuscito a convertire circa 240.000 immagini.
JPEG 2000 aveva percentuali di compressione inferiori rispetto a Re-JPEG, principalmente perché il risultato di JPEG 2000 è risultato essere una compressione negativa di 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 delle dimensioni delle immagini
Il grafico mostra che la maggior parte delle immagini erano piccole. La frequenza 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 delle immagini compresse con WebP ha ricevuto una compressione migliore rispetto a re-jpeg e jpeg 2000. Inoltre, le immagini compresse mentre WebP ha avuto una compressione più positiva degli altri.
Figura 3: confronto tra dimensioni delle immagini e percentuale di compressione
Questo grafico mostra che WebP ottiene una compressione migliore rispetto agli altri formati, in particolare per le immagini più piccole.