Google ha presentato una nuova libreria open source chiamata jpegli, con implementazione di codificatori e decodificatori per immagini in formato JPEG. La libreria include ottimizzazioni aggiuntive per migliorare l'efficienza della codifica, consentendo di aumentare del 35% il tasso di compressione delle immagini di alta qualità, rispetto ai tradizionali codec JPEG. Rispetto a libjpeg-turbo, jpegli consente di ottenere un livello di qualità simile riducendo il bitrate del 32%. A livello di API e ABI, la libreria è completamente compatibile con libjpeg62 e può essere utilizzata come sua sostituzione trasparente. Il codice della libreria è scritto in C++ ed è distribuito con licenza BSD.

L'aumento del livello di compressione viene raggiunto attraverso l'applicazione di tecnologie avanzate per ridurre i rumori delle immagini e aumentare la qualità, utilizzando metodi di modellazione psicovisiva più efficienti per ridurre gli artefatti generati. In particolare, jpegli utilizza un'euristica di quantizzazione adattiva, impiegata nel progetto JPEG XL, oltre a algoritmi migliorati per la selezione delle matrici di quantizzazione e il calcolo dei risultati intermedi.
La libreria jpegli consente di codificare immagini con una profondità di 10 o più bit per componente di colore. Il risultato delle nuove tecniche di codifica si adatta al modello tradizionale del formato JPEG, che consente l'uso di soli 8 bit per componente di colore. Questa caratteristica permette di mantenere la compatibilità con i decoder esistenti, progettati per rappresentazioni a 8 bit dei componenti cromatici.
Le immagini codificate con jpegli sono completamente conformi allo standard JPEG, non richiedono decoder specifici e possono essere visualizzate con visualizzatori JPEG e browser web esistenti. L'uso di un proprio decoder per il decompressione delle immagini compresse con jpegli consente di ridurre ulteriormente gli artefatti. La velocità di codifica con jpegli è comparabile a quella delle librerie libjpeg-turbo e MozJPEG.
Fonte: opennet.ru
