Estudio comparativo de WebP, JPEG y JPEG 2000, septiembre de 2010
Nota: Realizamos este estudio inicial con la primera versión de WebP que lanzamos, que usaba la biblioteca libvpx
. Además, las imágenes de origen eran imágenes JPEG que rastreamos desde la Web. En función de los comentarios de la comunidad, realizamos un nuevo estudio con la versión 0.1.2 de libwebp
, comenzando con imágenes sin pérdida (PNG) como fuente. El nuevo estudio reemplaza a este.
El equipo de WebP realizó un estudio comparativo de tres métodos de compresión de imágenes en un conjunto aleatorio de 1 millón de imágenes. Los objetivos del estudio eran medir la compresión que lograban esos métodos y analizar las compensaciones entre los tamaños de imagen y la compresión.
Se aplicaron tres métodos de compresión, WebP, JPEG 2000 y Re-JPEG, a las 900,000 imágenes JPEG contenidas en el conjunto de datos. Las imágenes JPEG se volvieron a comprimir con Re-JPEG para que cada una estuviera lo más cerca posible de un valor objetivo de relación señal a ruido (PSNR) máximo. El análisis del equipo se realizó en las imágenes después de que se comprimieron.
Además del estudio a gran escala, el equipo inspeccionó manualmente 100 imágenes al azar y descubrió que, en la mayoría de los casos, WebP proporciona una calidad visual aceptable.
Conclusiones
WebP logra una compresión general más alta que JPEG o JPEG 2000. Las ganancias en la reducción del tamaño de los archivos son particularmente altas para las imágenes más pequeñas, que son las más comunes que se encuentran en la Web.
Conjunto de datos
El conjunto de datos que se usó en el estudio fue una colección de 1 millón de imágenes muestreadas de forma aleatoria de un repositorio de imágenes rastreadas en la Web. En la siguiente tabla, se muestra la distribución de los diferentes tipos de imágenes en el conjunto de datos.
Tipo | Recuento |
---|---|
JPEG | ~900,000 |
PNG | ~47,000 |
GIF | ~47,000 |
Otro | ~6,000 |
Diseño del experimento
Los experimentos se ejecutaron en dos etapas:
El equipo ejecutó WebP en las imágenes con un PSNR objetivo de 42. Ajustaron el parámetro de calidad (QP) del codificador WebP hasta obtener un resultado lo más cercano posible a 42 para una imagen determinada. Por lo tanto, el PSNR real que se logró para cada imagen no fue necesariamente de 42.
El equipo usó el valor de PSNR de las imágenes comprimidas en WebP como el PSNR objetivo para las imágenes JPEG 2000 y Re-JPEG. También realizaron una búsqueda de líneas en los parámetros de calidad de las imágenes JPEG 2000 y JPEG para acercarse lo más posible al PSNR objetivo.
El resultado real de la compresión se midió como un porcentaje con la siguiente fórmula:
compression_percentage = 100 * (original_image.length - compressed_image.length) / original_image.length
Resultados
Las pruebas arrojaron los siguientes resultados para la ganancia de compresión negativa y no negativa:
Ganancia de compresión no negativa
El equipo no penalizó un método si aumentaba el tamaño de la imagen después de la compresión. Es decir, el valor de compression_percentage se consideró 0 cuando compressed_image.length era mayor que original_image.length.
Ganancia de compresión negativa
El equipo permitió resultados de porcentaje de compresión negativos para comprender mejor el rendimiento sin procesar de los distintos compresores.
A continuación, se muestran los porcentajes de compresión promedio que se lograron con cada uno de los tres métodos.
Tipo | PSNR promedio obtenido | Porcentaje de compresión promedio (ganancia de compresión no negativa) |
Porcentaje de compresión promedio (ganancia de compresión negativa) |
---|---|---|---|
WebP | 39.38 | 41.30 | 39.80 |
JPEG 2000 | 39.49 | 27.67 | 9.71 |
Re-JPEG | 39.36 | 22.37 | 14.62 |
Cuando se permitió la ganancia de compresión negativa, el rendimiento promedio de JPEG 2000 fue menor que el de JPEG. Esto puede deberse a artefactos de alta frecuencia presentes en las imágenes JPEG, que pueden contribuir a una situación de compresión poco ideal.
La implementación de Kakadu que se usó en el experimento para convertir a JPEG 2000 no pudo convertir aproximadamente 240,000 imágenes.
JPEG 2000 tuvo porcentajes de compresión más bajos que Re-JPEG, principalmente porque el resultado de JPEG 2000 fue una compresión negativa para muchas imágenes. Por esa razón, las imágenes JPEG obtuvieron una puntuación de compresión general más baja.
En las siguientes figuras, se proporcionan gráficos de distribución para los tres métodos:
Figura 1: Distribución de la población de tamaño de imagen
El gráfico muestra que la mayoría de las imágenes eran pequeñas. La frecuencia de las imágenes con un tamaño superior a 500,000 suele ser inferior a 100.
Figura 2: Porcentajes de compresión de imágenes WebP, JPEG y JPEG 2000
Este gráfico demuestra que el cuerpo de las imágenes comprimidas con WebP obtuvo una mejor compresión que re-jpeg y jpeg 2000. Además, las imágenes comprimidas con WebP obtuvieron una compresión más positiva que las otras.
Figura 3: Comparación de los tamaños de imagen y el porcentaje de compresión
Este gráfico muestra que WebP logra una mejor compresión que los otros formatos, en particular para imágenes más pequeñas.