JPEG XL e a fronteira de Pareto
- Lançamento da versão 0.10 do libjxl: foi lançada uma nova versão do libjxl, a implementação de referência do JPEG XL. A principal melhoria desta versão é a implementação completa da API de "codificação em streaming".
- API de codificação em streaming: permite codificar imagens grandes em "pedaços". Em vez de processar a imagem inteira de uma vez, isso possibilita um processamento mais amigável à memória.
Sem perdas: grandes melhorias no uso de memória e na velocidade
- Melhorias em relação ao libjxl 0.9: na versão anterior, a codificação sem perdas em JPEG XL exigia muita memória e levava bastante tempo. Isso podia causar problemas sérios ao codificar imagens grandes.
- Exemplo da imagem noturna da Terra da NASA: para comprimir uma imagem de 13500×6750, o libjxl 0.9 precisava de cerca de 8 GB de RAM e mais de 2 minutos. Após a atualização para o libjxl 0.10, a compressão passou a ser possível com 0,7 GB de RAM e em apenas 30 segundos.
- Resultados com diferentes configurações de esforço: a tabela mostra uma comparação de uso de memória, tempo e tamanho comprimido para várias configurações de esforço (e1~e9). À medida que o nível de esforço aumenta, a compressão melhora, mas de forma não linear.
Fronteira de Pareto
- Comparação de tecnologias de compressão: não importa apenas o tamanho do arquivo comprimido, mas também a velocidade de codificação. É preciso considerar duas dimensões: densidade de compressão e velocidade de codificação.
- Ótimo de Pareto: quando não há outro método capaz de atingir a mesma densidade de compressão em menos tempo. Um método Pareto-ótimo oferece o menor arquivo possível para um determinado orçamento de tempo.
- Visualização da fronteira de Pareto: representada em gráficos que mostram velocidade de codificação e densidade de compressão. São usados vários conjuntos de imagens para comparar velocidade média e densidade de compressão.
Imagens não fotográficas
- Importância da escolha das imagens de teste: quando a maioria das imagens é fotográfica, o ruído natural torna a compressão mais difícil.
- No caso de imagens de quadrinhos: imagens não fotográficas comprimem muito melhor do que fotos. Imagens de quadrinhos podem ser comprimidas para cerca de 4 bpp.
- Melhorias no libjxl: a nova versão do libjxl é muito mais rápida do que a anterior e também oferece melhor taxa de compressão.
Sobre compressão com perdas
- Benchmark de compressão com perdas: apenas tamanho comprimido e velocidade importam. A qualidade da imagem deve ser considerada como uma terceira dimensão.
- Desempenho de codecs e codificadores de imagem com perdas: eles podem se comportar de forma diferente em diferentes pontos de qualidade. Um codificador que funciona bem em codificação de alta qualidade não necessariamente terá bom desempenho em baixa qualidade.
Fronteira de Pareto com perdas
- Codificadores testados: foram testadas as versões mais recentes de vários codificadores, incluindo libjpeg-turbo, sjpeg, mozjpeg, jpegli, libavif / libaom, libjxl, libwebp e libheif.
- Qualidade intermediária: resultados em configurações correspondentes a uma pontuação SSIMULACRA2 de 60. Isso é mais relevante quando reduzir o peso da página é mais importante do que a fidelidade da imagem.
- Qualidade média-alta e alta: resultados em configurações correspondentes a pontuações SSIMULACRA2 de 70 e 85. Nos pontos de alta qualidade, o JPEG XL ocupa majoritariamente a fronteira de Pareto.
Conclusão
- Melhorias na versão 0.10 do libjxl: o consumo de memória caiu drasticamente e a velocidade da codificação sem perdas, especialmente com multithreading, melhorou.
- Consolidação da posição do JPEG XL: confirmou-se como Pareto-ótimo em várias configurações de velocidade, desde alta qualidade até qualidade visualmente sem perdas.
- A atratividade contínua do JPEG: o novo codificador jpegli traz melhorias em velocidade e compressão. Quando é necessário codificar muito rápido, ele ainda pode ser a melhor escolha.
- Contribuição da Cloudinary: participação ativa em oferecer a melhor experiência ao usuário por meio da aplicação das técnicas e insights mais recentes na área de compressão de imagens.
Opinião do GN⁺
- O lançamento do libjxl 0.10 representa um avanço importante na tecnologia de compressão de imagens. Em especial, a grande melhora no uso de memória e na velocidade de codificação ao processar imagens grandes deve trazer benefícios relevantes aos usuários.
- Destacar que o JPEG XL é Pareto-ótimo em diferentes níveis de qualidade e velocidade é útil porque ajuda os usuários a encontrar o melhor equilíbrio entre qualidade de imagem e tamanho de arquivo.
- Sob uma visão crítica, a adoção de novas tecnologias como o libjxl pode gerar problemas de compatibilidade com a infraestrutura existente. Por isso, é necessária uma introdução gradual levando em conta a integração com os sistemas atuais.
- Ao escolher uma tecnologia de compressão de imagens, é preciso considerar vários fatores, como velocidade de codificação e decodificação, tamanho do arquivo e plataformas e dispositivos compatíveis. O JPEG XL é uma opção atraente para compressão de imagens de alta qualidade, mas ainda não conta com amplo suporte em todos os usuários e sistemas.
- Os benefícios dessa adoção incluem menor uso de memória, maior velocidade de codificação e redução do tamanho dos arquivos; os custos podem ser problemas de compatibilidade com sistemas existentes e a curva de aprendizado de uma nova tecnologia.
2 comentários
O encoder jpegli está mais uma vez prolongando a vida do jpg, depois do mozjpeg...
Embora tenha sido criado pelo lado do JXL, ironicamente pode acabar atrapalhando a disseminação do próprio JXL...
Comentários do Hacker News
O desempenho da compressão sem perdas do formato WebP é excelente
Avaliação da capacidade do JPEG de preservar detalhes em configurações de baixa qualidade
Dificuldade dos usuários em encontrar informações detalhadas sobre o formato JPEG XL
Questionamento sobre um artigo focado na velocidade de codificação
Avaliação da qualidade e da capacidade de compressão do JPEG XL
Nova biblioteca de processamento paralelo desenvolvida por causa do projeto JPEG XL
Reação à inclusão do formato QOI
Nova versão do libjxl reduz significativamente o consumo de memória
Vantagens de recomprimir arquivos JPEG antigos usando JPEG XL
Menção à possibilidade de economia adicional com AVIF sem perdas