Estudio de compresión WebP

Introducción

Realizamos 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áciles de repetir con herramientas disponibles públicamente y comparar la compresión de imágenes que alcanzan WebP y JPEG.

Nuestro estudio comparativo anterior de WebP se enfocaba en evaluar una gran cantidad de imágenes y se llevó a cabo en fuentes JPEG que se rastreaban desde la Web. JPEG es un formato de compresión con pérdida y presenta artefactos de compresión al origen. Además, inicialmente usamos la relación señal/ruido máxima o PSNR como métrica de calidad. La PSNR tiene algunas desventajas cuando se usa como una métrica de calidad de imágenes. En función de los comentarios de la comunidad, realizamos los experimentos en 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 para este estudio. SSIM se considera una mejor métrica de calidad visual.

Metodología

Describimos dos tipos de evaluaciones. En el primer caso, estudiamos la compresión adicional que logra WebP en el mismo nivel de calidad de 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 gráficos de SSIM frente a bits por píxel (bpp) para WebP y JPEG. Estos gráficos muestran la compensación de distorsión de velocidad para WebP y JPEG.

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

Cada experimento consiste en ejecutar un conjunto de comandos. Solo se usan herramientas de línea de comandos disponibles públicamente a fin de que los experimentos sean razonablemente reproductivos para otras personas. Las herramientas de línea de comandos que se usan para este experimento son las siguientes:

  • 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 la conversión entre formatos PNG y PPM. Usamos identify para extraer la información de ancho y alto 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. Usamos 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 de codificación y decodificación predeterminados 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 imágenes JPEG. Usamos cjpeg con la marca -optimize para optimizar el tamaño del archivo. Establecemos todos los demás parámetros en sus valores predeterminados.

La calidad de una imagen se midió con SSIM. Como se señaló antes, por lo general, SSIM se acepta como una métrica de mejor calidad que PSNR. Para el procesamiento del índice SSIM, usamos una implementación disponible al público 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 para un conjunto grande de imágenes. La siguiente lista contiene los conjuntos de datos que se usaron en los experimentos.

  1. Lenna: Es una imagen muy utilizada de Lenna (512 x 512 píxeles).

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

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

  4. Image_crawl: Para probar una gran cantidad de imágenes, recopilamos una muestra aleatoria de imágenes 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 en las colecciones de prueba estándar son como fotografías, en lugar de imágenes generadas por computadora. Para que este conjunto de datos sea similar a los conjuntos de pruebas estándar, ejecutamos un algoritmo de detección de rostro en estas imágenes PNG y consideramos solo esas imágenes (alrededor de 11,000) para este experimento que aprobaron esta prueba de detección.

Experimento 1: comparación entre WebP y JPEG con el mismo índice SSIM

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

  1. Comprime la imagen PNG de origen en JPEG con un parámetro de calidad Q fijo 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 el SSIM registrado 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 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 Q de JPEG. Los parámetros de calidad 50 y 95 representan la compresión de imágenes en tasas de bits bajas y altas, respectivamente. También incluimos el parámetro de calidad JPEG 75, ya que suele ser el nivel de calidad recomendado para las imágenes JPEG.

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

Lenna Kodak Técnik Rastreo de imagen
WebP: tamaño promedio del archivo
(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 de archivo promedio
(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 promedio del archivo WebP y JPEG para el mismo índice SSIM que corresponda a JPEG Q=75

Lenna Kodak Técnik Rastreo de imagen
WebP: tamaño promedio del archivo
(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 de archivo promedio
(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 promedio del archivo WebP y JPEG para el mismo índice SSIM que corresponde a JPEG Q=95

Lenna Kodak Técnik Rastreo de imagen
WebP: tamaño promedio del archivo
(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 de archivo promedio
(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 adicionales de compresión del 25% al 34% en comparación con JPEG con un índice SSIM igual o levemente mejor.

Experimento 2: Comparación entre SSIM y BPA para WebP y JPEG

Analizamos la compensación de distorsión de velocidad de JPEG y WebP. En particular, estudiamos los gráficos de SSIM frente a bits por píxel (bpp) para JPEG y WebP. Tomamos la imagen PNG de origen, la comprimemos en JPEG y WebP con todos los valores de calidad posibles (0-100). Luego, para cada valor de calidad, trazamos el SSIM y el bpp alcanzados para JPEG y WebP. En las siguientes figuras, se muestran los gráficos de SSIM y 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 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 de los gráficos de SSIM y bpp para los conjuntos de datos de Konk y Tecnick. Para trazar el comportamiento promedio, comprimemos todas las imágenes en un conjunto de datos con WebP y JPEG a 100 valores de calidad diferentes. Luego, representamos 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 para esta agregación de datos. En los siguientes diagramas, 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

ssim vs. bpp para el conjunto de datos de Tecnick

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

Conclusión

El estudio evaluó la compresión WebP en comparación con JPEG. Observamos que el tamaño promedio del archivo WebP es entre un 25% y un 34% más pequeño en comparación con el tamaño del archivo JPEG que tiene un índice SSIM equivalente. Los trazados de SSIM frente a bpp mostraron que WebP requería constantemente menos bits por píxel que JPEG para el mismo índice SSIM. Estos resultados indican que WebP puede proporcionar mejoras de compresión significativas sobre JPEG.


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

2 Z. Wang, A. C. Bovik, H. R. Sheikh y E. P. Simoncelli, "Evaluación de la calidad de la imagen: de la medición de errores a la similitud estructural", Procesamiento de imágenes, Transacciones de IEEE, Volumen 13, Problema 4, 600-612, 2004.