Publicado: 6 de octubre de 2026
Nos complace anunciar que, a partir de Chrome 155, se incluirá la compatibilidad con la decodificación del formato de imagen JPEG XL (.jxl). JPEG XL es un formato de imagen de próxima generación diseñado para satisfacer las necesidades de los desarrolladores web y fotógrafos modernos. Ofrece una compresión entre un 30% y un 50% mejor que JPEG, compresión sin pérdida, compatibilidad integrada con HDR, transcodificación JPEG sin pérdida y mucho más.
En general, te recomendamos que pruebes tanto AVIF como JPEG XL para obtener los mejores resultados. Esperamos que JPEG XL sea más útil para la compresión de alta fidelidad o sin pérdida, en especial para las imágenes fotográficas o en los casos en que se prefiera la decodificación progresiva detallada.
En esta publicación, compartimos por qué incorporamos JPEG XL a Chrome, cómo usamos Rust para garantizar la seguridad de la memoria primero, el trabajo de rendimiento exhaustivo que lo hace rápido y lo que el recorrido nos dice sobre los comentarios de los desarrolladores y el ecosistema de estándares web.
La seguridad es lo primero: Reimplementación del decodificador en Rust (jxl-rs)
Los decodificadores de imágenes son una de las superficies de ataque más importantes y específicas en cualquier navegador web moderno. Procesan estructuras binarias complejas y no confiables directamente desde la red y se ejecutan dentro del proceso de renderizador. Históricamente, los decodificadores escritos en lenguajes no seguros para la memoria, como C++, han sido propensos a vulnerabilidades, como lecturas fuera de límites, desbordamientos de montón y errores de usar después de liberar.
Nuestro modelo de seguridad se basa en el aislamiento de procesos y la defensa en profundidad, guiados por la regla de los dos.
Sin embargo, la zona de pruebas es una capa secundaria de defensa. Para eliminar estos riesgos de seguridad en la fuente, integramos jxl-rs, una implementación pura de Rust del decodificador JPEG XL.
Diseño para la velocidad, sin comprometer la seguridad
La seguridad de la memoria es fundamental, pero un decodificador seguro para la memoria que sea aproximadamente tan rápido como la mejor alternativa no segura para la memoria es una opción mucho más obvia que una opción con una pérdida de rendimiento significativa.
Una parte fundamental del rendimiento de los códecs modernos es el uso completo del hardware SIMD disponible en los dispositivos modernos. Para hacerlo de forma segura, se tuvo que estabilizar la función target_feature_11 de Rust, lo que permitió el uso de instrucciones SIMD sin necesidad de código unsafe.
El siguiente paso fue compilar una capa de abstracción SIMD (jxl_simd), inspirada en la biblioteca Highway de C++ (que se desarrolló originalmente para libjxl, la implementación de referencia de C++ de JPEG XL). En conjunto, esos desarrollos permitieron escribir una biblioteca multiplataforma que no compromete las optimizaciones de rendimiento de SIMD y, al mismo tiempo, restringe las operaciones no seguras a una pequeña cantidad de ubicaciones altamente verificadas.
Las optimizaciones del rendimiento en jxl-rs se basan en las de libjxl. Esto incluye una canalización de procesamiento genérica para los pasos que cruzan las fronteras regionales, a la vez que minimiza las copias de datos para maximizar el rendimiento del hardware. Realizamos un seguimiento del rendimiento de la reimplementación de Rust en diferentes plataformas de hardware en el panel de rendimiento de jxl-rs.
Verificamos la implementación de jxl-rs con varias técnicas de estado del arte, como fuzzing y revisión de IA del código, y no encontramos errores de seguridad de memoria en todo el historial de implementación, lo que proporciona otra validación de las enormes mejoras que Rust aporta a la seguridad de la memoria.
Comentarios de los desarrolladores y el Proyecto Interop
El equipo de Chrome tiene en cuenta los comentarios de los desarrolladores web de una amplia variedad de canales, como errores, encuestas, el Proyecto de Indicadores para Desarrolladores y el Proyecto Interop. Nuestra decisión de lanzar JPEG XL se basó en los comentarios y las solicitudes constantes de los desarrolladores web, que se hicieron más visibles en el proceso de interoperabilidad, donde fue una propuesta popular en 2026 y varios años antes.
Para garantizar que el formato sea interoperable en todos los navegadores, participamos en la investigación de Interop 2026 sobre JPEG XL para asegurarnos de que haya cobertura de pruebas para todas las funciones de JPEG XL en los navegadores y de que esas pruebas se aprueben en Chrome.
Probar
Con el lanzamiento oficial de JPEG XL en Chrome, la Web se vuelve más rápida, enriquecida y segura. Recomendamos a los desarrolladores, creadores de contenido y propietarios de plataformas que comiencen a usar imágenes y animaciones .jxl en sus canalizaciones.
Pruébalo, informa errores y ayúdanos a seguir creando una Web más rápida y segura para todos.
Agradecimientos
Queremos agradecer a todas las personas que contribuyeron a jxl-rs o a su integración en Chrome, y, en especial, a Helmut Januschka por sus importantes contribuciones tanto a la integración en Chrome como a jxl-rs, y a Martin Bruse, Zoltan Szabadka, Sami Boukortt y Wonwoo Choi por sus importantes contribuciones a jxl-rs.