Google ha presentado una nueva biblioteca abierta jpegli que implementa un codificador y decodificador de imágenes en formato JPEG. La biblioteca incluye optimizaciones adicionales para mejorar la eficiencia de codificación, permitiendo un aumento del 35% en la tasa de compresión de imágenes de alta calidad en comparación con los códecs JPEG tradicionales. En comparación con libjpeg-turbo, la biblioteca jpegli logra un nivel de calidad similar mientras reduce el bitrate en un 32%. A nivel de API y ABI, la biblioteca es completamente compatible con libjpeg62 y puede ser utilizada como un reemplazo transparente. El código de la biblioteca está escrito en C++ y se distribuye bajo la licencia BSD.

El aumento del nivel de compresión se logra mediante el uso de tecnologías avanzadas para reducir el ruido en la imagen y mejorar la calidad, aplicando métodos de modelado psicovisual más eficaces para disminuir los artefactos que se generan. En particular, jpegli utiliza una heurística de cuantificación adaptativa, empleada por el proyecto JPEG XL, así como algoritmos mejorados para la selección de matrices de cuantificación y el cálculo de resultados intermedios.
La biblioteca jpegli permite codificar imágenes utilizando 10 o más bits por componente de color. A su vez, el resultado de los nuevos algoritmos de codificación se adapta al modelo tradicional del formato JPEG, que solo permite el uso de 8 bits por componente de color. Esta característica permite mantener la compatibilidad con los decodificadores existentes diseñados para la representación de color de 8 bits.
Las imágenes codificadas con jpegli cumplen completamente con el estándar JPEG, no requieren decodificadores específicos y pueden ser visualizadas en los visualizadores JPEG existentes y en navegadores web. El uso de un decodificador propio para descomprimir imágenes comprimidas con jpegli permite lograr una reducción adicional de artefactos. La velocidad de codificación con jpegli es comparable a las bibliotecas libjpeg-turbo y MozJPEG.
Fuente: opennet.ru
