Envio de JPEG XL no Chrome

Publicado em: 6 de outubro de 2026

Temos o prazer de anunciar que o Chrome está lançando suporte à decodificação do formato de imagem JPEG XL (.jxl) a partir da versão 155. O JPEG XL é um formato de imagem de próxima geração criado para atender às necessidades de desenvolvedores da Web e fotógrafos modernos. Ele oferece uma compactação 30 a 50% melhor do que o JPEG, compactação sem perda, suporte HDR integrado, transcodificação JPEG sem perda e muito mais.

Em geral, recomendamos testar os dois formatos para ter os melhores resultados. Esperamos que o JPEG XL seja mais útil para compressão de alta fidelidade ou sem perdas, principalmente de imagens fotográficas ou em casos em que a decodificação progressiva refinada é preferida.

Nesta postagem, compartilhamos por que trouxemos o JPEG XL para o Chrome, como usamos o Rust para garantir a segurança da memória primeiro, o extenso trabalho de desempenho que o torna rápido e o que a jornada nos diz sobre o feedback dos desenvolvedores e o ecossistema de padrões da Web.

Segurança em primeiro lugar: reimplementação do decodificador em Rust (jxl-rs)

Os decodificadores de imagens são uma das superfícies de ataque mais críticas e de ataque direcionado em qualquer navegador da Web moderno. Eles processam estruturas binárias complexas e não confiáveis diretamente da rede e são executados no processo de renderização. Historicamente, decodificadores escritos em linguagens sem proteção de memória, como C++, eram propensos a vulnerabilidades como leituras fora dos limites, estouros de heap e bugs de uso após liberação.

Nosso modelo de segurança usa sandboxing e defesa em profundidade, seguindo a regra de dois. No entanto, o sandboxing é uma camada secundária de defesa. Para eliminar esses riscos de segurança na origem, integramos o jxl-rs, uma implementação pura em Rust do decodificador JPEG XL.

Projetar com foco em velocidade sem comprometer a segurança

A segurança de memória é crucial, mas um decodificador seguro para memória que seja aproximadamente tão rápido quanto a melhor alternativa não segura para memória é uma escolha muito mais óbvia do que uma opção com uma perda significativa de desempenho.

Uma parte fundamental do desempenho dos codecs modernos é o uso total do hardware SIMD disponível em dispositivos modernos. Para fazer isso com segurança, o recurso target_feature_11 do Rust precisou ser estabilizado, o que permitiu o uso de instruções SIMD sem exigir código unsafe.

A próxima etapa foi criar uma camada de abstração SIMD (jxl_simd), inspirada na biblioteca Highway do C++ (originalmente desenvolvida para libjxl, a implementação de referência em C++ do JPEG XL). Juntos, esses desenvolvimentos permitiram escrever uma biblioteca multiplataforma que não compromete as otimizações de desempenho do SIMD, restringindo operações não seguras a um pequeno número de locais altamente verificados.

As otimizações de performance no jxl-rs são baseadas nas do libjxl. Isso inclui um pipeline de processamento genérico para etapas que cruzam fronteiras regionais, minimizando cópias de dados para maximizar o desempenho do hardware. Estamos acompanhando o desempenho da reimplementação em Rust em diferentes plataformas de hardware no painel de desempenho jxl-rs.

Verificamos a implementação do jxl-rs com várias técnicas de última geração, incluindo fuzzing e revisão de IA do código. Não encontramos bugs de segurança de memória em todo o histórico de implementação, o que é mais uma validação das grandes melhorias que o Rust traz para a segurança de memória.

Feedback dos desenvolvedores e o Projeto de interoperabilidade

A equipe do Chrome considera o feedback dos desenvolvedores da Web de vários canais, como bugs, pesquisas, o Projeto de indicadores para desenvolvedores e o Projeto Interop. Nossa decisão de lançar o JPEG XL foi baseada em feedback e solicitações consistentes de desenvolvedores da Web, mais visíveis no processo Interop, em que foi uma proposta popular em 2026 e vários anos antes.

Para garantir que o formato seja interoperável em todos os navegadores, participamos da Investigação do JPEG XL do Interop 2026 (link em inglês) para garantir que haja cobertura de teste para todos os recursos do JPEG XL nos navegadores e que esses testes sejam aprovados no Chrome.

Faça um teste

Com a chegada oficial do JPEG XL ao Chrome, a Web fica mais rápida, rica e segura. Incentivamos desenvolvedores, criadores de conteúdo e proprietários de plataformas a começar a usar imagens e animações .jxl nos pipelines.

Faça um teste, envie bugs e nos ajude a continuar criando uma Web mais rápida e segura para todos.

Agradecimentos

Agradecemos a todas as pessoas que contribuíram para o jxl-rs ou a integração dele no Chrome, especialmente Helmut Januschka pelas contribuições significativas para a integração do Chrome e o jxl-rs, e Martin Bruse, Zoltan Szabadka, Sami Boukortt e Wonwoo Choi pelas contribuições significativas para o jxl-rs.