Estudio de compresión de WebP

Introducción

Hacemos una evaluación comparativa de la compresión de imágenes WebP y JPEG según el nuevo codificador que lanzamos en libwebp. El objetivo es ejecutar un conjunto de experimentos fácilmente repetibles con herramientas disponibles públicamente y comparar la compresión de imágenes que se logra con WebP y JPEG.

Nuestro estudio comparativo de WebP anterior se centró en evaluar una gran cantidad de imágenes y se llevó a cabo en fuentes JPEG que se rastrearon desde la Web. JPEG es un formato de compresión con pérdida y presenta artefactos de compresión en la fuente. Además, inicialmente usamos la relación señal-ruido máximo o PSNR como métrica de calidad. La PSNR tiene algunas desventajas cuando se usa como métrica de calidad de las imágenes. En función de los comentarios de la comunidad, realizamos los experimentos con imágenes PNG, incluidas las imágenes disponibles en algunos paquetes de pruebas estándar. En este estudio, usamos la Similitud estructural o SSIM como métrica de calidad. Se considera que SSIM es una métrica de mejor calidad visual.

Metodología

Describimos dos tipos de evaluaciones. En el primer caso, estudiamos la compresión adicional que logra WebP al mismo nivel de calidad que JPEG. En particular, generamos imágenes WebP de la misma calidad (según el índice SSIM) que las imágenes JPEG y, luego, comparamos los tamaños de archivo de las imágenes WebP y JPEG. En el segundo caso, analizamos los diagramas de SSIM frente a bits por píxel (bpp) para WebP y JPEG. Estos gráficos muestran la compensación entre la velocidad y la distorsión de los formatos WebP y JPEG.

Los conjuntos de datos para los experimentos constan de imágenes en formato PNG. Estas imágenes se obtuvieron de paquetes de imágenes de prueba estándar de acceso público, así como una gran colección de imágenes en formato PNG que se rastreó desde la Web.

Cada experimento consiste en ejecutar un conjunto de comandos. A fin de mantener los experimentos razonablemente reproductivos para otros, solo se usan las herramientas de línea de comandos disponibles públicamente. Las herramientas de línea de comandos que se usan para este experimento son:

  • identify y convert son herramientas de línea de comandos que forman parte de ImageMagick. Usamos la versión 6.5.7 para este análisis. Usamos convert para realizar la conversión entre los formatos PNG y PPM. Usamos identify para extraer información sobre el ancho y la altura de una imagen.

  • cwebp y dwebp son herramientas de línea de comandos que forman parte de la biblioteca libwebp que lanzamos en el primer trimestre de 2011. Utilizamos la versión 0.1.2 de la biblioteca. Usamos cwebp y dwebp para codificar y decodificar las imágenes WebP. Usamos los parámetros predeterminados de codificación y decodificación de estas herramientas.

  • cjpeg y djpeg son herramientas de línea de comandos que forman parte de la biblioteca libjpeg. Usamos la versión 6b de la biblioteca. Usamos cjpeg y djpeg para codificar y decodificar la imagen JPEG. Usamos cjpeg con la marca -optimize para optimizar el tamaño del archivo. Configuramos el resto de los parámetros en sus valores predeterminados.

La calidad de una imagen se midió con SSIM. Como se señaló con anterioridad, SSIM se acepta, en general, como una métrica de mejor calidad que PSNR. Para el cálculo del índice SSIM, usamos una implementación pública en C++. El lector puede descargar las secuencias de comandos de Python que usamos en los experimentos desde el repositorio de código como referencia.

Conjuntos de datos de imágenes

Elegimos los conjuntos de datos para evaluar las colecciones de imágenes de prueba estándar, así como en un gran conjunto de imágenes. A continuación, se incluye una lista de los conjuntos de datos que se usaron en los experimentos.

  1. Lenna: Es la imagen de Lenna más utilizada (512 x 512 píxeles).

  2. Kodak: 24 imágenes del paquete de imágenes de Kodak en color verdadero

  3. Técnick: 100 imágenes de la colección disponible en Tecnick.com. Usamos las 100 imágenes en color RGB en tamaño original.

  4. Image_crawl: Para probar una gran cantidad de imágenes, recopilamos una muestra aleatoria de imágenes con formato PNG de la base de datos de rastreo web de la Búsqueda de imágenes de Google. La mayoría de las imágenes PNG rastreadas son íconos, gráficos, gráficos, documentos escaneados, etc. Sin embargo, la mayoría de las imágenes de las colecciones de prueba estándar son como fotografías, en lugar de imágenes generadas por computadora. Para hacer que este conjunto de datos sea similar en naturaleza a los paquetes de pruebas estándar, ejecutamos un algoritmo de detección de rostro sobre estas imágenes PNG y consideramos solo aquellas imágenes (alrededor de 11,000) que pasaron la prueba de detección para este experimento.

Experimento 1: WebP frente a JPEG con un índice SSIM igual

En este experimento, generamos imágenes JPEG y WebP con valores de SSIM comparables y medimos la proporción entre los tamaños de los archivos. Los pasos del experimento son los siguientes:

  1. Comprime la imagen PNG de origen a JPEG con un parámetro de calidad fijo Q y registra el SSIM entre la imagen PNG de origen y la imagen JPEG comprimida.

  2. Comprime la misma imagen de origen en WebP con un parámetro de calidad que logre los SSIM registrados anteriormente lo más cerca posible.

Ejecutamos los dos pasos anteriores en todas las imágenes de un conjunto de datos y, luego, medimos el tamaño promedio del archivo y el SSIM para las imágenes JPEG y WebP.

En las siguientes tablas, se muestran los resultados de este experimento para tres valores diferentes (50, 75 y 95) del parámetro de calidad JPEG Q. Los parámetros de calidad 50 y 95 representan la compresión de imágenes a tasas de bits bajas y altas, respectivamente. También incluimos el parámetro de calidad JPEG 75, ya que es el nivel de calidad que generalmente se recomienda para las imágenes JPEG.

Tabla 1: Tamaño de archivo promedio para WebP y JPEG para el mismo índice SSIM correspondiente a JPEG Q=50

Lenna Kodak Técnik Image_crawl
WebP: tamaño promedio de los archivos
(SSIM promedio)
17.4 KB
(0.841)
31.0 KB
(0.898)
92.4 KB
(0.917)
6.5 KB
(0.901)
JPEG: tamaño promedio de los archivos
(SSIM promedio)
23.5 KB
(0.840)
42.7 KB
(0.897)
124.6 KB
(0.916)
9.9 KB
(0.899)
Proporción de tamaño de archivo WebP a JPEG 0.74 0.72 0.74 0.66

Tabla 2: Tamaño de archivo promedio para WebP y JPEG para el mismo índice SSIM correspondiente a JPEG Q=75

Lenna Kodak Técnik Image_crawl
WebP: tamaño promedio de los archivos
(SSIM promedio)
26.7 KB
(0.864)
46.5 KB
(0.932)
139.0 KB
(0.939)
9.9 KB
(0.930)
JPEG: tamaño promedio de los archivos
(SSIM promedio)
37.0 KB
(0.863)
66.0 KB
(0.931)
191.0 KB
(0.938)
14.4 KB
(0.929)
Proporción de tamaño de archivo WebP a JPEG 0.72 0.70 0.73 0.69

Tabla 3: Tamaño de archivo promedio para WebP y JPEG para el mismo índice SSIM correspondiente a JPEG Q=95

Lenna Kodak Técnik Image_crawl
WebP: tamaño promedio de los archivos
(SSIM promedio)
74.3 KB
(0.910)
118.0 KB
(0.978)
356.0 KB
(0.970)
23.4 KB
(0.969)
JPEG: tamaño promedio de los archivos
(SSIM promedio)
104 KB
(0.907)
162 KB
(0.976)
492 KB
(0.970)
31.3 KB
(0.968)
Proporción de tamaño de archivo WebP a JPEG 0.71 0.73 0.72 0.75

En las tablas anteriores, podemos observar que WebP proporciona ganancias de compresión adicionales del 25 al 34% en comparación con los JPEG con un índice SSIM igual o un poco mejor.

Experimento 2: Comparación entre diagramas de SSIM y BPP para WebP y JPEG

Estudiamos la compensación entre velocidad y distorsión de JPEG y WebP. En particular, estudiamos los diagramas de SSIM frente a bits por píxel (bpp) para JPEG y WebP. Tomamos la imagen PNG de origen y la comprimemos en JPEG y WebP con todos los valores de calidad posibles (de 0 a 100). Luego, para cada valor de calidad, trazamos el SSIM y el bpp alcanzados para JPEG y WebP. Las siguientes figuras muestran los diagramas de SSIM frente a bpp para las 3 imágenes elegidas de los 3 conjuntos de datos públicos que usamos.

Figura 1: SSIM frente a BPP para Lenna

ssim vs. bpp para Lenna

Figura 2: SSIM frente a BPP para kodim19.png del conjunto de datos de Kodak

ssim vs. bpp para Kodim19

Figura 3: SSIM frente a BPP para RGB_OR_1200x1200_061.png del conjunto de datos de Tecnick

ssim vs. bpp para RGB_OR_1200x1200

Además, estudiamos el comportamiento promedio del gráfico de SSIM en comparación con el diagrama de bpp para los conjuntos de datos de Kodak y Tecnick. Para trazar el comportamiento promedio, comprimemos todas las imágenes de un conjunto de datos con WebP y JPEG con 100 valores de calidad diferentes. Luego, graficamos el promedio de SSIM y bpp para cada valor de calidad. El conjunto de datos de rastreo de imágenes consta de imágenes heterogéneas que no se prestan a esta agregación de datos. En los siguientes gráficos, se muestra el comportamiento promedio de SSIM y bpp para los conjuntos de datos de Kodak y Tecnick, respectivamente.

Figura 4: SSIM frente a BPP para el conjunto de datos de Kodak

ssim vs. bpp para Kodak

Figura 5: SSIM frente a BPP para el conjunto de datos de Tecnick

Comparación entre ssim y bpp para el conjunto de datos de Tecnick

En general, a partir de los gráficos anteriores, podemos observar que WebP requiere constantemente menos bits por píxel que JPEG para lograr el mismo índice SSIM.

Conclusión

En el estudio, se evaluó la compresión WebP en comparación con JPEG. Observamos que el tamaño promedio de los archivos WebP es entre un 25% y un 34% menor en comparación con el tamaño del archivo JPEG con un índice SSIM equivalente. Los diagramas de SSIM frente a bpp mostraron que WebP requería menos bits por píxel de forma coherente que JPEG para el mismo índice SSIM. Estos resultados indican que WebP puede proporcionar mejoras de compresión significativas en comparación con JPEG.


1 Huynh-Thu, Q.; Ghanbari, M. (2008). "Alcance de la validez de la PSNR en la evaluación de calidad de la imagen o video". Electronics Letters 44: 800-801.doi:10.1049/el:20080522.

2 Z. Wang, A. C. Bovik, H. R. Sheikh y E. P. Simoncelli, “Image Quality Assessment: From error Measurement to structural similarity”, Image Processing, IEEE Transactions, Volume 13, Issue 4, pp. 600-612, 2004.