Jpegli est une nouvelle bibliothèque de codage JPEG conçue pour être plus rapide, plus efficace et plus agréable visuellement que le JPEG traditionnel. Elle utilise un certain nombre de nouvelles techniques pour atteindre ces objectifs, notamment :
- Elle fournit à la fois un encodeur et un décodeur entièrement interopérables conformes à la norme JPEG originale et à son formalisme 8 bits le plus conventionnel, ainsi qu'une compatibilité API/ABI avec libjpeg-turbo et MozJPEG.
- Des résultats de haute qualité. Lorsque les images sont compressées ou décompressées par Jpegli, des calculs plus précis et plus efficaces sur le plan psychovisuel sont effectués et les images paraîtront plus claires et présenteront moins d'artefacts observables.
- Rapide. Tout en améliorant le rapport qualité d'image/densité de compression, la vitesse de codage de Jpegli est comparable aux approches traditionnelles, telles que libjpeg-turbo et MozJPEG. Cela signifie que les développeurs web peuvent intégrer Jpegli sans effort dans leurs flux de travail existants sans sacrifier la vitesse de codage, les performances ou l'utilisation de la mémoire.
- Plus de 10 bits. Jpegli peut être codé avec plus de 10 bits par composant. Les solutions de codage JPEG traditionnelles n'offrent que 8 bits par dynamique de composant, ce qui provoque des artefacts visibles dans les gradients lents. Le codage 10+ bits de Jpegli se fait dans le formalisme 8 bits original et les images résultantes sont entièrement interopérables avec les visionneuses 8 bits. La dynamique 10+ bits est disponible en tant qu'extension de l'API et des modifications du code de l'application sont nécessaires pour en bénéficier.
- Plus dense : Jpegli compresse les images plus efficacement que les codecs JPEG traditionnels, ce qui permet d'économiser de la bande passante et de l'espace de stockage, et d'accélérer les pages web.
Comment fonctionne Jpegli
Jpegli utilise un certain nombre de nouvelles techniques pour réduire le bruit et améliorer la qualité de l'image ; principalement l'heuristique de quantification adaptative de l'implémentation de référence JPEG XL, la sélection améliorée de la matrice de quantification, le calcul précis des résultats intermédiaires et la possibilité d'utiliser un espace colorimétrique plus avancé. Toutes les nouvelles méthodes ont été soigneusement conçues pour utiliser le formalisme JPEG 8 bits traditionnel, de sorte que les images nouvellement compressées sont compatibles avec les visionneurs JPEG existants, tels que les navigateurs, les logiciels de traitement d'images et autres.
Heuristique de quantification adaptative
Jpegli utilise la quantification adaptative pour réduire le bruit et améliorer la qualité de l'image. Pour ce faire, la zone morte de la quantification est modulée dans l'espace sur la base d'une modélisation psychovisuelle. L'utilisation de l'heuristique de quantification adaptative que Google a développée à l'origine pour le JPEG XL permet d'améliorer la qualité de l'image et de réduire la taille du fichier. Ces heuristiques sont beaucoup plus rapides qu'une approche similaire utilisée à l'origine dans guetzli.
Amélioration de la sélection des matrices de quantification
Jpegli utilise également un ensemble de matrices de quantification qui ont été sélectionnées en optimisant un ensemble de mesures de la qualité psychovisuelle. Des résultats intermédiaires précis dans Jpegli améliorent la qualité de l'image, et tant le codage que le décodage produisent des résultats de meilleure qualité. Jpegli peut utiliser l'espace colorimétrique XYB de JPEG XL pour améliorer encore la qualité et la densité.
Un score ELO plus élevé indique une meilleure performance globale dans l'étude des évaluateurs. Nous pouvons observer que jpegli à 2,8 BPP a reçu une note ELO plus élevée que libjpeg-turbo à 3,7 BPP, un débit binaire 32 % plus élevé que celui de Jpegli.
Test de Jpegli
Afin de quantifier l'amélioration de la qualité d'image apportée par Jpegli, Google a fait appel à des évaluateurs du crowdsourcing pour comparer des paires d'images issues du Cloudinary Image Dataset '22, encodées à l'aide de trois codecs : Jpegli, libjpeg-turbo et MozJPEG, à plusieurs débits.
Dans cette comparaison, Google s'est limité à comparer l'encodage, le décodage étant toujours effectué à l'aide de libjpeg-turbo. L'étude a été réalisée avec le profil de couleur XYB ICC désactivé, car c'est ainsi que la plupart des utilisateurs devraient utiliser Jpegli dans un premier temps. Pour simplifier la comparaison des résultats entre les codecs et les paramètres, toutes les décisions des évaluateurs ont été regroupées en utilisant des classements d'échecs inspirés des scores ELO.
Résultats
Les résultats montrent que Jpegli peut compresser des images de haute qualité 35 % de plus que les codecs JPEG traditionnels. Jpegli est une nouvelle technologie prometteuse qui a le potentiel de rendre l'internet plus rapide et plus beau.
Source : "Introducing Jpegli: A New JPEG Coding Library" (Google)
Et vous ?
Que pensez-vous de Jpegli et de ses capacités ?
Pensez-vous que Jpegli a le potentiel de rendre l'internet plus rapide ?
Voir aussi :
Google présente son algorithme de compression JPEG baptisé Guetzli, qui promet des réductions de taille de 35 % sans trop perdre en qualité
La décision de Google d'abandonner le format JPEG-XL en faveur de son propre format AVIF souligne la nécessité d'un choix de navigateur et de formats libres, d'après la Free Software Foundation