Mozilla activará por defecto el soporte para el formato de imagen JPEG XL en todas las plataformas a partir de Firefox 157, según anunció el desarrollador de Mozilla Timothy Nikkel en el grupo de noticias oficial dev.platform. La decisión supone el cierre de un largo proceso que comenzó con un soporte experimental en 2021 y que ahora, gracias a un decodificador escrito en Rust, cumple los requisitos de seguridad y rendimiento exigidos por la fundación.
JPEG XL es un estándar internacional desarrollado por ISO/IEC bajo la norma 18181, diseñado como sucesor moderno del venerable JPEG. A diferencia de este, ofrece compresión sin pérdida, renderizado progresivo y la posibilidad de recomprimir archivos JPEG existentes sin degradación de calidad. El navegador Safari de Apple fue pionero en incorporarlo en su versión 17.0, lanzada en 2023, aunque su implementación carecía de algunas prestaciones clave como el renderizado progresivo y las animaciones. Por su parte, Chrome mantiene su soporte detrás de una bandera experimental (#enable-jxl-image-format) y, según el anuncio, no tiene intención firme de activarlo por defecto todavía, aunque también utiliza la misma biblioteca jxl-rs.
El camino de Mozilla hasta este punto estuvo marcado por una decisión estratégica relevante. En 2021, cuando se añadió soporte experimental, Firefox utilizaba una biblioteca en C++ multihilo de aproximadamente 100.000 líneas de código. La superficie de ataque que esto suponía preocupó a los ingenieros de seguridad de Mozilla, que lanzaron un reto público al equipo de JPEG XL en Google Research: construir un decodificador seguro, compacto, compatible y con buen rendimiento escrito en Rust. El desafío fue aceptado y el resultado es jxl-rs, la biblioteca que ahora constituye el núcleo del soporte JPEG XL en Firefox.
El anuncio detalla que, tras la versión 0.6.0 de jxl-rs, que introdujo decodificación multihilo, las pruebas de rendimiento realizadas por Mozilla muestran resultados ligeramente superiores a los de Safari, que utiliza la biblioteca libjxl en C++. En comparación con otros decodificadores de imagen de Firefox, JPEG XL ofrece un rendimiento cercano en imágenes grandes, aunque presenta una brecha mayor en imágenes pequeñas.
En cuanto a funcionalidades, la implementación de Mozilla alcanza paridad con el resto de formatos de imagen del navegador y con la implementación de Blink en Chrome, incluyendo animaciones y renderizado progresivo. La única excepción es el HDR: las imágenes de alto rango dinámico se muestran como SDR, al igual que ocurre con todos los demás formatos soportados, aunque el mapeo de tonos de JPEG XL es significativamente superior al aplicado a otros formatos. Cabe destacar que Safari no ofrece renderizado progresivo ni animaciones.
Mozilla ha invertido además en una batería de pruebas exhaustiva. El directorio jpegxl de las pruebas de plataforma web (wpt) cubre la corrección de decodificación a través de distintas profundidades de bits, alfa, escala de grises, CMYK, gestión de color y herramientas de codificación, además de las formas en que una imagen se utiliza en HTML y CSS. A esto se suman alrededor de 30 pruebas gtest para decodificación fragmentada e incremental, recuento de fotogramas de animación, reducción de tamaño durante la decodificación y archivos corruptos, junto con mochitests para renderizado progresivo y telemetría, reftests y benchmarks de decodificación que reportan a Perfherder. El equipo de fuzzing también ha realizado pruebas sobre el decodificador antes de su activación definitiva.
Una de las prestaciones más destacadas del formato es el renderizado progresivo, que permite mostrar una imagen mientras se descarga. Como explica Jake Archibald en el blog de Mozilla Hacks, una imagen completa de 135 kB puede revelar su sujeto con apenas unos pocos kilobytes descargados, una funcionalidad especialmente útil en conexiones lentas o para imágenes de gran tamaño.
El anuncio plantea además un dilema práctico para desarrolladores web: ahora que los navegadores contarán con dos formatos de imagen modernos, ¿cuál elegir? AVIF, soportado por Firefox desde 2021, destaca en imágenes fotográficas de calidad web y en aquellas que combinan bordes nítidos con superficies planas. JPEG XL, por su parte, sobresale en imágenes sin pérdida, renderizado progresivo y recodificación de JPEGs sin pérdida de calidad. Los benchmarks publicados muestran que, aunque AVIF tiende a producir archivos más pequeños en calidad web, JPEG XL gana terreno en escenarios de alta calidad o sin pérdida, y ofrece mejor soporte para renderizado progresivo en imágenes de gran tamaño.
Firefox 157, que activará JPEG XL por defecto en todas las plataformas, se perfila como un paso importante hacia la estandarización del formato en la web, aunque la decisión final quedará en manos de los desarrolladores que deberán evaluar qué formato se adapta mejor a las necesidades de cada sitio y a las expectativas de sus usuarios.
