Desde hace tiempo, la velocidad de carga se ha co­n­ve­r­ti­do en uno de los ajustes más im­po­r­ta­n­tes a la hora de optimizar una página web. Los motores de búsqueda utilizan diversos criterios para la evalución de una web. En este sentido, no solo es relevante el número de usuarios que la visitian, sino que también se valora el tiempo que una página tarda en responder a la solicitud. Un código más pequeño y co­m­pri­mi­do o el uso de me­ca­ni­s­mos de caché se cuentan entre las so­lu­cio­nes probadas para una presencia web rápida tanto como el uso de imágenes co­m­pri­mi­das. Estas imágenes, como elemento creativo y de aco­m­pa­ña­mie­n­to que son, forman parte en abu­n­da­n­cia de los diversos proyectos que pueblan la red, pero su efecto en la velocidad de las páginas a menudo se subestima.

De este problema se ha ocupado, entre otros, el gigante de las búsquedas Google, quien con WebP presentó ya en 2010 su propio formato libre de imagen para páginas web más rápidas. Pero ¿qué hay realmente detrás del formato WebP, que deriva del códec de vídeo VP8? Y ¿cómo se comporta en co­m­pa­ra­ción con tamaños co­n­so­li­da­dos como JPEG?

¿Qué es WebP?

El 30 de se­p­tie­m­bre de 2010, Google anunció la pu­bli­ca­ción de un nuevo estándar abierto para la co­m­pre­sión con pérdida de gráficos de 24 bits en la web. El modelo para este estándar fue el formato de vídeo VP8, de­sa­rro­lla­do por la empresa On2 Te­ch­no­lo­gies y que Google había adquirido ese mismo año. A partir de entonces, Google amplió el formato WebP con ca­ra­c­te­rí­s­ti­cas tales como un modo de co­m­pre­sión sin pérdida, tra­n­s­pa­re­n­cia (canal alfa) y ani­ma­cio­nes. Chrome soporta el formato de co­m­pre­sión desde finales de 2010, pero hasta ahora, al igual que ha ocurrido con Opera, ha tenido que asumir que muchos na­ve­ga­do­res solo soporten WebP de forma ex­pe­ri­me­n­tal (como Safari y Firefox, cuyas ac­tua­li­za­cio­nes regulares siguen sin ofrecer soporte). Según sus propias de­cla­ra­cio­nes, Microsoft estaría tra­ba­ja­n­do ac­tua­l­me­n­te para darle soporte en su propio navegador Edge.

Nota

En­co­n­tra­rás in­fo­r­ma­ción ac­tua­li­za­da co­n­s­ta­n­te­me­n­te sobre el soporte del navegador de WebP en caniuse.com.

Todo el software para el pro­ce­sa­mie­n­to y la vi­sua­li­za­ción de WebP se encuentra por defecto bajo licencia BSD. Google, por ejemplo, utiliza este formato en la Chrome Web Store y en las apli­ca­cio­nes móviles de Google+.

¿Por qué se ca­ra­c­te­ri­za WebP?

WebP tuvo como principal objetivo, desde sus comienzos, reducir al máximo el tamaño de las imágenes en la web. Según Google, las imágenes y los gráficos en formato WebP son, más o menos, un 30 por ciento más pequeñas que los archivos PNG o JPEG y tienen la misma calidad de imagen. Mientras que estos formatos se basan en métodos de co­m­pre­sión distintos –PNG, sin pérdida, y JPG, con pérdida–, WebP permite ambas po­si­bi­li­da­des. Gracias a esta fle­xi­bi­li­dad, el formato es adecuado tanto para fo­to­gra­fías como para imágenes y gráficos pequeños. Las ca­ra­c­te­rí­s­ti­cas de co­m­pre­sión, así como otras pro­pie­da­des centrales del formato WebP, se pueden resumir de la siguiente manera:

  • Co­m­pre­sión (con pérdida): la co­m­pre­sión con pérdida de WebP se basa en la co­di­fi­ca­ción del fotograma clave de VP8.
  • Co­m­pre­sión (sin pérdida): la co­m­pre­sión sin pérdida de WebP se basa en distintas técnicas que tra­n­s­fo­r­man los pa­rá­me­tros y los datos de la imagen. En este caso, se utiliza el algoritmo LZ77, entre otros.
  • Tra­n­s­pa­re­n­cia: el canal alfa de 8 bits que ofrece el formato WebP también se puede utilizar para la co­m­pre­sión RGB con pérdida.
  • Metadatos: WebP puede incluir los metadatos EXIF y XMP que no­r­ma­l­me­n­te crean las cámaras fo­to­grá­fi­cas.
  • Perfil de colores: el formato de Google puede incluir perfiles ICC in­te­gra­dos (registros que describen el espacio de color).
  • Ani­ma­cio­nes: el formato WebP permite almacenar se­cue­n­cias de imágenes.

¿Cómo funciona la co­m­pre­sión con pérdida de WebP?

La co­m­pre­sión con pérdida de WebP utiliza el mismo método que el códec VP8, basado en bloques, para calcular los fo­to­gra­mas, es decir, las imágenes in­di­vi­dua­les. Cada fotograma se divide en segmentos más pequeños, también conocidos como ma­cro­blo­ques. Dentro de estos ma­cro­blo­ques, el co­di­fi­ca­dor puede predecir in­fo­r­ma­ción re­du­n­da­n­te sobre el mo­vi­mie­n­to y el color, y su­s­trae­r­la del bloque. El resultado de esta co­m­pre­sión pre­di­c­ti­va está compuesto por la in­fo­r­ma­ción de los bloques restantes y la in­fo­r­ma­ción separada y re­du­n­da­n­te (que no­r­ma­l­me­n­te contiene muchos ceros). Se cua­n­ti­fi­ca y se realiza una co­di­fi­ca­ción entrópica (re­pre­se­n­ta­ción de los ca­ra­c­te­res a través de un patrón de bits es­pe­cí­fi­co). El paso de cua­n­ti­fi­ca­ción es el único proceso en el que los bits realmente se desechan y se produce la pérdida.

Nota

WebP recurre a un método de co­di­fi­ca­ción ari­t­mé­ti­co que es más efectivo que la co­di­fi­ca­ción Huffman que, por ejemplo, se utiliza en JPEG. Ambos métodos son dos formas distintas de co­di­fi­ca­ción entrópica. El método Huffman asigna a cada caracter un número entero de bits, mientras que la co­di­fi­ca­ción ari­t­mé­ti­ca de toda la secuencia de ca­ra­c­te­res se asigna a un código de bits único y más largo. Por ese motivo, la co­m­ple­ji­dad de la co­di­fi­ca­ción ari­t­mé­ti­ca es mayor, pero se excluye la creación de re­du­n­da­n­cias de bits (solo re­du­n­da­n­cia en los mensajes completos).

Fu­n­cio­na­mie­n­to de la co­m­pre­sión sin pérdida con WebP

Para la co­m­pre­sión sin pérdida de WebP, el primer paso es la tra­n­s­fo­r­ma­ción de la imagen, donde se pueden utilizar las si­guie­n­tes técnicas:

Tra­n­s­fo­r­ma­cio­nes basadas en pre­di­c­cio­nes es­pa­cia­les WebP utiliza 13 modos de pre­di­c­ción di­fe­re­n­tes que apro­ve­chan el hecho de que los píxeles vecinos suelen estar co­rre­la­cio­na­dos. Para ello, se predice el valor real de los pixeles a partir de píxeles ya de­s­co­di­fi­ca­dos y se codifica solo el valor residual.
Tra­n­s­fo­r­ma­ción de colores El objetivo de la tra­n­s­fo­r­ma­ción de colores es la de­s­co­rre­la­ción de los valores RGB de cada uno de los píxeles. Para ello, en primer lugar la imagen se divide en bloques, antes de que el rojo (R) se tra­n­s­fo­r­me a partir del verde (G) y el azul (B) a partir del verde y del rojo. El único que mantiene su valor es el verde.
Tra­n­s­fo­r­ma­ción por su­s­tra­c­ción del verde Variante adicional para tra­n­s­fo­r­mar el color en la que el valor verde se extrae de los valores rojos y azul de cada píxel.
Tra­n­s­fo­r­ma­ción por color indexado Si hay pocos valores de píxel ine­quí­vo­cos, el formato WebP ofrece también la po­si­bi­li­dad de hacer una tra­n­s­fo­r­ma­ción por color indexado. En ese proceso, se determina el número de valores RGBA ine­quí­vo­cos y, si la cifra es demasiado baja, se crea una di­s­po­si­ción de estos colores. Dicha di­s­po­si­ción se utiliza para sustituir los valores de los píxeles por el índice co­rre­s­po­n­die­n­te.
Co­di­fi­ca­ción del color por memoria caché La co­m­pre­sión WebP sin pérdida puede utilizar incluso fra­g­me­n­tos de imagen ya vistos para re­co­n­s­truir nuevos píxeles. Si no tiene ningún resultado apropiado, se utiliza una memoria local caché de color con los 32 últimos colores uti­li­za­dos como punto de partida. Esta se actualiza co­n­ti­nua­me­n­te.

Los pa­rá­me­tros y datos de imagen tra­n­s­fo­r­ma­dos se codifican en­tró­pi­ca­me­n­te, para lo que se utiliza una variante del algoritmo LZ77. Esta utiliza pequeños valores para píxeles cercanos en el espacio.

¿Por qué se ca­ra­c­te­ri­za el WebP animado?

Gracias a que soporta ani­ma­cio­nes, WebP supone una al­te­r­na­ti­va in­te­re­sa­n­te a GIF o APNG. En este sentido, tiene algunos puntos fuertes como la pro­fu­n­di­dad de color de 24 bits y el canal alfa de 8 bits, pero también una gran capacidad de co­m­pre­sión. El formato WebP, a di­fe­re­n­cia de sus formatos co­m­pe­ti­do­res, permite tanto la co­m­pre­sión de las ani­ma­cio­nes sin pérdida como con pérdida. El WebP animado también convence en lo referido a la de­co­di­fi­ca­ción: puesto que WebP almacena metadatos sobre si cada fotograma contiene valores alfa, no es necesario que el de­co­di­fi­ca­dor convierta cada fotograma in­di­vi­dua­l­me­n­te para obtener esta in­fo­r­ma­ción.

Nota

Según Google, la co­n­ve­r­sión de GIF en WebP con pérdida reduce el tamaño del archivo hasta en un 64 por ciento. En el caso de WebP sin pérdida, es­ta­ría­mos hablando de un 19 por ciento.

La técnica del fotograma clave del formato WebP me­n­cio­na­da an­te­rio­r­me­n­te destaca es­pe­cia­l­me­n­te en las ani­ma­cio­nes, donde los fo­to­gra­mas clave ga­ra­n­ti­zan una calidad elevada. Por este motivo, el proceso de de­co­di­fi­ca­ción también requiere un uso de la CPU más intensivo que, por ejemplo, con GIF.

¿Cómo es la es­tru­c­tu­ra de WebP?

Los archivos WebP son archivos co­n­te­ne­do­res que recurren al formato co­n­te­ne­dor RIFF (Resource In­te­r­cha­n­ge File Format) de­sa­rro­lla­do por Microsoft e IBM. Por eso, un archivo en formato WebP se compone de una cabecera RIFF y de los co­rre­s­po­n­die­n­tes co­n­te­ni­dos WebP.

La cabecera RIFF/WebP está compuesta de las si­guie­n­tes tres se­cue­n­cias de 4 bytes:

  • FourCC (Código de cuatro ca­ra­c­te­res) RIFF: describe el tipo con los cuatro ca­ra­c­te­res ASCII R, I, F y F, que es­pe­ci­fi­can que se trata de un archivo co­n­te­ne­dor RIFF
  • Tamaño del archivo: es­pe­ci­fi­ca el tamaño del archivo
  • FourCC WEBP: describe el tipo con los cuatro ca­ra­c­te­res ASCII W, E, B y P, que indican que el co­n­te­ne­dor RIFF contiene un archivo WebP

Al final de la cabecera se en­cue­n­tran los bloques de archivo WebP, que en los co­n­te­ne­do­res RIFF también se conocen como “chunks”. Cada chunk tiene su propia cabecera, que incluye la in­fo­r­ma­ción co­rre­s­po­n­die­n­te. Algunos posibles bloques del nivel superior son VP8 (WebP con pérdida), VP8L (WebP sin pérdida) y VP8X (WebP ampliado). Los últimos de­te­r­mi­nan archivos WebP con in­fo­r­ma­ción adicional como los metadatos EXIF (chunk EXIF) o un perfil de color ICCP (chunk ICCP), así como WebP animado (chunk ANIM).

Por lo tanto, la es­tru­c­tu­ra completa de los archivos en formato WebP sería algo así:

WebP vs. JPEG: así se comporta WebP en co­m­pa­ra­ción con otros formatos de imagen

Lo que Google re­pre­se­n­ta en el mundo de los motores de búsqueda, lo es JPEG, también llamado JPG, en la pre­se­n­ta­ción de fo­to­gra­fías e imágenes de gran tamaño en la World Wide Web. Más o menos un cuarto de siglo tras su pu­bli­ca­ción, nos resulta difícil ima­gi­nar­nos una web sin este formato de imagen. Su mayor ventaja, en co­m­pa­ra­ción con formatos como PNG (también muy extendido pero utilizado, sobre todo, para pequeñas imágenes y gráficos como logos o iconos) es, sin ninguna duda, que JPEG permite ahorrar espacio de al­ma­ce­na­mie­n­to gracias a su co­m­pre­sión con pérdida.

En este detalle tan crucial, WebP también demuestra ser más eficiente y flexible: por un lado, el formato de Google ofrece, además de un método de co­m­pre­sión con pérdida, uno sin pérdida. Por otro lado, el ahorro en el espacio de al­ma­ce­na­mie­n­to en las imágenes con formato WebP supera al de las imágenes JPEG similares. Que JPEG admita imágenes de hasta 65 535 x 65 535 píxeles, mientras que el límite de WebP se encuentra en 16 383 x 16 383 no resulta relevante si tenemos en cuenta el campo de apli­ca­ción (web).

Nota

La ventaja de la co­m­pre­sión que tiene WebP en co­m­pa­ra­ción con JPEG se pierde cuando la co­m­pre­sión es elevada (apro­xi­ma­da­me­n­te, un 90 por ciento de co­m­pre­sión). No obstante, mientras que las imágenes co­m­pri­mi­das JPEG quedan muy pixeladas, las imágenes similares en formato WebP mantienen un cierto valor añadido.

Al igual que sucede con la co­m­pa­ra­ción de WebP y JPEG, parece que en la co­m­pa­ra­ción de WebP vs. GIF el formato de la casa Google también muestra ventajas co­n­vi­n­ce­n­tes en aspectos como la calidad y la co­m­pre­sión. El problema estaría en la falta de soporte para WebP de na­ve­ga­do­res como Firefox o Microsoft Edge. Hasta el momento, los usuarios de estos na­ve­ga­do­res web no pueden ver imágenes ni ani­ma­cio­nes WebP, ya que casi ningún operador de página web emplea el formato.

Datos clave de la co­m­pa­ra­ti­va WebP-JPEG:

WebP JPEG
Pu­bli­ca­ción 2010 1992
Extensión(es) del archivo .WebP .jpeg, .jpg
Máxima re­so­lu­ción (en píxeles) 16 383 x 16 383 65 535 x 65 535
Co­m­pre­sión (sin pérdida) Sí No
Co­m­pre­sión (con pérdida) Sí Sí
Tra­n­s­pa­re­n­cia (canal alfa) Sí No
Espacio de color RGB Sí Sí
Po­si­bi­li­dad de ani­ma­cio­nes Sí No
Apli­ca­cio­nes so­po­r­ta­das Limitado (p. ej. Chrome, Opera, Gmail, IrfanView) Universal

¿Cómo se pueden abrir y convertir los archivos WebP?

Los archivos en formato WebP todavía no se pueden abrir con los programas de vi­sua­li­za­ción de imágenes generales de Windows, Linux y macOS. Sin embargo, si quieres ver imágenes o ani­ma­cio­nes co­di­fi­ca­das en WebP, tienes varias opciones a tu alcance.

Si tienes instalado Chrome u Opera en tu sistema, arrastra si­m­ple­me­n­te el archivo en cuestión a una ventana abierta de cua­l­quie­ra de los dos na­ve­ga­do­res. Puesto que ambos na­ve­ga­do­res admiten de fábrica WebP, podrás ver el contenido en cuestión sin necesidad de ningún software adicional. Esta solución no es pre­ci­sa­me­n­te cómoda, sobre todo cuando quieres ver más de una imagen o animación. Aquellos que no trabajen con varias ventanas del navegador o no quieran estar cambiando entre ellas, deberían optar por IrfanView. Este visor de imágenes gratuito ofrece igua­l­me­n­te soporte para WebP una vez instalado el paquete oficial plugin. Sin embargo, el programa solo está di­s­po­ni­ble para Windows.

Nota

Si utilizas la capa de co­m­pa­ti­bi­li­dad Wine, podrás instalar IrfanView también en macOs o Linux para abrir archivos WebP con el programa gratuito.

En el área oficial para de­sa­rro­lla­do­res de WebP, Google ofrece una serie de so­lu­cio­nes propias para trabajar con WebP, es­pe­cia­l­me­n­te en la bi­blio­te­ca libWebP, que puedes utilizar para im­ple­me­n­tar la co­di­fi­ca­ción y de­co­di­fi­ca­ción WebP en tus propios programas. Asimismo, las si­guie­n­tes he­rra­mie­n­tas están incluidas en la colección de­s­ca­r­ga­ble de forma gratuita:

  • cWebP permite la co­m­pre­sión de un archivo de imagen con la ayuda de WebP. Algunos formatos de entrada posibles son, entre otros, PNG, JPEG y TIFF. En las opciones de la he­rra­mie­n­ta podrás definir si la imagen deberá co­m­pri­mi­r­se con pérdida o sin pérdida.
  • dWebP es una he­rra­mie­n­ta con la que puedes convertir los archivos WebP en otros formatos como PNG (opción pre­de­te­r­mi­na­da), BMP, TIFF o PGM.
  • Con vWebP, Google aporta su propia solución para la vi­sua­li­za­ción de imágenes y ani­ma­cio­nes WebP basándose en OpenGL.
  • WebPmux es la he­rra­mie­n­ta de­fi­ni­ti­va para trabajar con WebP ampliado. Con el programa podrás, por ejemplo, crear ani­ma­cio­nes con formato WebP o ampliar los metadatos y los perfiles ICC de los archivos de imagen.
  • Con gif2WebP podrás convertir los archivos GIF exi­s­te­n­tes en archivos WebP. Al igual que sucede con la co­m­pre­sión de imágenes normales, podrás co­di­fi­car­las tanto con pérdida como sin pérdida.
Consejo

En ezgif.com también en­co­n­tra­rás numerosas he­rra­mie­n­tas para crear y convertir archivos WebP. A di­fe­re­n­cia de las apli­ca­cio­nes de Google, podrás uti­li­zar­las di­re­c­ta­me­n­te en el navegador sin necesidad de in­s­ta­lar­las.

Ir al menú principal