Universitat Oberta de Catalunya

WEBP, nuevo formato de imagen para la web

Recientemente, Google ha propuesto un nuevo formato para codificar imágenes llamado WEBP. Como se puede deducir de su nombre, está especialmente orientado para aplicarse a imágenes que se cuelguen en páginas web.

View English version

Introducción

Inicialmente, Google ha abierto el código del algoritmo que codifica y decodifica imágenes en este nuevo formato y ha puesto a disposición del público una aplicación para convertir imágenes al y desde él, aunque sólo para el sistema operativo linux; no obstante, y gracias a la liberación del código, terceras partes han desarrollado aplicaciones para Windows y versiones en javascript para navegadores compatibles con WEBM. Incluso ya ha habido aplicaciones, como pixelmator, que han adoptado el nuevo formato, permitiendo grabar y cargar imágenes WEBP.

El nuevo formato WEBP de Google es un formato comprimido con pérdidas que se basa en el codificador intraframe del compresor de vídeo VP8. En palabras más sencillas, se basa en el proceso que se utiliza en el VP8 para codificar una imagen independientemente del resto de imágenes. No se pretende dar una descripción técnica exhaustiva del formato; si se tiene interés, se puede consultar el siguiente link, que contiene más información.

El formato ha recibido alabanzas y críticas. Las primeras, por reducir el ancho de banda necesario para transmitir imágenes en un orden del 40%, al mismo tiempo que mejorar la calidad de las imágenes, respecto al JPEG; las segundas, por proponer un algoritmo con un desenfoque mucho mayor que el producido por el JPEG, consiguiendo, por ende, peor calidad. Pero no todo son discordancias, ya que parece ser que todas las partes están de acuerdo en que el codificador WEBP consume más recursos de cálculo que el asociado al formato JPEG. En este artículo se ha querido intentar esclarecer la anterior discordancia, que, si bien parece contradictoria, se puede adelantar que ambas partes llevan razón. A través de este artículo, se pretende ayudar a que el lector tenga una idea más clara de las ventajas y desventajas principales de este nuevo formato.

Análisis de Google

Google ofrece un análisis del nuevo formato WEBP en su web. Se trata de un análisis focalizado al estudio de la diferencia matemática entre las imágenes codificadas y las originales. Concretamente se analiza el PSNR (Peak Signal-to-Noise Ratio o relación señal-ruido) de las imágenes diferencias; cuanto menos distorsión introduce un codificador, mayor es el PSNR. Está demostrado que el hecho de aumentar el PSNR, no aumenta la calidad percibida [1], por lo que esta parte del análisis realizado por Google queda débilmente justificado. Por otro lado, en una escueta línea de texto, Google explicita que se ha realizado la inspección visual de 100 imágenes, pero no da, ni mucho menos, tantos detalles de este análisis como del efectuado con el PSNR.

Por otro lado, Google aporta ejemplos de imágenes codificadas con WEBP, comparándolas con su versión en JPEG. La calidad de estas imágenes es alta en ambos caso, con lo que es muy difícil de apreciar diferencias entre ambos formatos, transmitiendo indirectamente el mensaje de que las imágenes WEBP ocupan menos y se ven igual de bien que las JPEG. Un mensaje sencillo y directo, pero se echa en falta más ejemplos, sobretodo en casos límite para tener una idea más clara de cuándo utilizar WEBP y cuándo no.
En resumen, Google proporciona un análisis pobre y débilmente justificado sobre su nuevo formato, el cual no sirve para aplacar las críticas recibidas ni es suficiente para dar pie a las maravillas que se cuentan en noticias cortas y muchos blogs.

Análisis de Mosaic

El análisis realizado es totalmente subjetivo y no tiene valor científico, pero muestra ejemplos que se consideran suficientemente claros para que cada cuál haga su propia lectura, de forma similar a como se ha realizado aquí. El propósito es mostrar el comportamiento del formato WEBP a bajas y altas calidades de compresión, comparándolo con el formato JPEG. Para ello, se utiliza la imagen en color de 400×400 píxeles y 304 KB de peso mostrada en la figura 1.

Figura 1. Imagen original de pruebas de 400×400 y 304KB de peso sin comprimir.

Esta imagen contiene información visual variada, ya que presenta un buen contraste y zonas planas, así como detalles y contornos en todas las direcciones.

Para las conversiones a WEBP se ha utilizado la aplicación suministrada por Google para linux, corriéndola bajo una máquina linux virtualizada bajo un iMAC. Para las conversiones a JPEG, se ha utilizado el algoritmo del mismo nombre bajo la plataforma MATLAB.

Compresión elevada

El algoritmo JPEG es capaz de comprimir la imagen original en 4KB, dando como resultado la imagen de la figura 2.

Figura 2. Imagen de prueba comprimida con JPEG a 4KB.

Por su parte, WEBP, comprimiendo la imagen a un tamaño también de 4KB, ofrece el resultado que se puede observar en la figura 3.

Figura 3. Imagen de prueba comprimida con WEBP a 4KB.

Como se puede ver, WEBP mantiene muy bien los contornos de los pétalos, hojas e, incluso, de algunos estambres, evitando el desagradable efecto mosaico que se puede observar en JPEG, el cual también presenta una gran distorsión en los contornos de los pétalos. Si se muestran las imágenes con una reducción de tamaño de visualización de la imagen (debida a, por ejemplo, ser visualizada en un dispositivo móvil, que poseen pantallas pequeñas, pero de alta densidad de píxel) resulta en algo parecido a ver las imágenes como en la figura 4.

Figura 4. Tres imágenes de prueba visualizadas a un tamaño menor. De izquierda a derecha: imagen original, comprimida con JPEG y comprimida con WEBP.

En la figura 4 se puede ver que la imagen WEBP es mucho más parecida a la original que la imagen JPEG, percibiéndose (la imagen WEBP) muy parecida a excepción de los estambres y algunos contornos de los pétalos, mientras que la imagen JPEG presenta serios distorsiones, sobre todo en el color y en los contornos (creando falsos y modificando los existentes).

Compresión baja

En este caso se utiliza un grado de compresión bajo, consiguiendo imágenes de 32KB. En el caso de JPEG se obtiene la imagen de la figura 5.

Figura 5. Imagen original comprimida en JPEG a 32KB.

Como se puede observar, la percepción de la imagen es la misma o casi la misma que con la original. En el caso de WEBP, la compresión de la imagen original a 32KB da como resultado la imagen de la figura 6.

Figura 6. Imagen de prueba comprimida en WEBP a 32KB.

En este caso también se aprecia muy poca (por no decir ninguna) diferencia entre esta imagen y la original. No obstante, si analizamos la imagen más de cerca en la figura 7, se puede comprobar como las variaciones más sutiles quedan enmascaradas en el formato WEBP.

Figura 7. Comparación del detalle de la imagen de prueba comprimida a 32KB en JPEG y WEBP. Se puede observar el difuminado del detalle de la imagen comprimida en WEBP.

El efecto es similar a un desenfoque, como apuntaba una de las criticas. Este efecto de desenfoque es selectivo, ya que los contornos de los pétalos e incluso los estambres quedan perfectamente definidos. Da la impresión que el formato WEBP elimina ciertos detalles de la imagen, pero muy sutiles y de cambios muy bruscos. Para estudiar mejor el efecto, en la figura 8 se muestran las imágenes diferencia entre cada formato y la original, además del contenido espectral de las mismas.

Figura 8. Análisis de la eliminación de detalles al comprimir en JPEG (columna izquierda) y WEBP (columna derecha). Diferencia entre la imagen de prueba y la imagen comprimida (fila superior) y análisis espectral de las mismas (fila inferior).

Como se puede ver en la figura 8, la imagen diferencia (fila superior) contiene la silueta de la flor y ciertas hojas de la imagen. Esto es lógico, puesto que los formatos de compresión de imágenes con pérdidas como JPEG y WEBP, eliminan información comenzando por los detalles, que se encuentran en los contornos, los cuales definen la silueta de los objetos. Se puede ver también que la imagen de WEBP contiene una especie de “niebla” aleatoria; esta “niebla” se traduce en diferencias entre la imagen WEBP y original que no aparecen (puesto que no aparece esta niebla) en la imagen diferencia entre la JPEG y la original.

La fila inferior muestra el contenido espectral de las dos imágenes diferencia. Estas imágenes contienen bajas frecuencias (asociadas a zonas planas o con poco detalle) en las esquinas y altas (asociadas a los detalles) en el centro. Esta imagen es prácticamente uniforme en el caso de JPEG, mientras que en caso de WEBP presenta un punto central destacado que indica contenido en altas frecuencias. Esto significa que la imagen diferencia entre WEBP y la original presenta pequeños detalles; estos detalles son los que precisamente faltan en la imagen WEBP, lo cual explicaría que la imagen WEBP aparezca difuminada en ciertas zonas concretas vistas de cerca, perdiendo ese detalle que sí aparece en la imagen JPEG (ver figura 7, para un ejemplo).

Discusión

A partir de las diferencias analizadas en los apartados anteriores, se puede interpretar que el formato WEBP ofrece mucha mejor calidad que el JPEG para compresiones extremas, mientras que para baja compresión, la calidad es un poco peor debido al efecto de difuminado en zonas pequeñas.

No obstante, si se revisan los objetivos de este formato, se puede ver que está orientado a la web. La mayoría de imágenes web se cuelgan con la máxima compresión posible, puesto que su objetivo no es mostrar imágenes muy grandes en alta calidad. Si este es el objetivo, existen formas más efectivas de compartirlas y/o publicarlas que la propia web (como los discos duros virtuales o los servidores de archivos).

Por otro lado, el difuminado de detalles que presenta el formato WEBP no lo habilita precisamente como el mejor formato para codificar imágenes de alta calidad, con lo que no sería adecuado para aplicaciones de cartelería, por ejemplo. De hecho, comparte esta característica con el JPEG y, en general, con todos los formatos de compresión con pérdidas.

Resumen

El formato WEBP se muestra como un formato orientado totalmente al uso de imágenes en web, ofreciendo prestaciones muy superiores a la del actual JPG, como alaba Google y muchas otras opiniones, pero teniendo en cuenta que estas prestaciones aparecen al utilizar las elevadas cotas de compresión de imágenes utilizadas en la propia web para reducir el peso de las imágenes lo máximo posible manteniendo una calidad visual mínima.

Si se desean aplicar niveles bajos de compresión, minimizando la pérdida de detalles (como, por ejemplo, en la captura de imágenes mediante una cámara digital), el formato WEBP también se puede usar para comprimir imágenes de alta calidad, pero el usuario ha de tener en cuenta que no estará usando el mejor codificador (como critican otras páginas web), y, de hecho, es posible que JPEG pudiera obtener mejores resultados en estos casos. No obstante, saberlo con certeza requeriría un estudio más exhaustivo, ya que las diferencias percibidas entre ambos no dejan claro de forma evidente cuál es el mejor.

Finalmente, si lo que se desea realmente es alta calidad sin perder detalles de la imagen, no se utilizará ningún formato de compresión con pérdidas, descartando así tanto WEBP como JPEG.

Referencias

[1]: Li, J., Chen, G., Chi, Z. y Lu, C. (2004). “Image Coding Quality Assessment Using Fuzzy Integrals With a Three-Component Image Model”. IEEE Transactions on Fuzzy Systems, 12(1), pp. 99–106. ISSN 1063-6706


Cita recomendada: MELENCHÓN MALDONADO, Javier. WEBP, nuevo formato de imagen para la web. Mosaic [en línea], noviembre 2010, no. 81. ISSN: 1696-3296. DOI: https://doi.org/10.7238/m.n81.1024.