libjpeg-turbo es un códec de imágenes JPEG que utiliza instrucciones SIMD para acelerar la compresión y descompresión de imágenes JPEG en sistemas x86, x86-64, Arm, PowerPC y MIPS. En comparación con libjpeg, libjpeg-turbo es generalmente entre 2 y 6 veces más rápido en estos sistemas. Esto se debe a las rutinas de codificación Huffman altamente optimizadas que utiliza. Aunque la aceleración no es tan significativa en otras arquitecturas, libjpeg-turbo sigue siendo notablemente más rápido que libjpeg gracias a estas optimizaciones. En muchos casos, el rendimiento de libjpeg-turbo rivaliza con el de los códecs JPEG patentados de alta velocidad.
Una de las ventajas de libjpeg-turbo es que implementa tanto la API tradicional de libjpeg como la API TurboJPEG, que es menos potente pero más sencilla. Además, cuenta con extensiones de espacio de color que permiten comprimir y descomprimir imágenes en búferes de píxeles de 32 bits y big-endian (RGBX, XBGR, etc.), así como una interfaz Java completa.
Recientemente, libjpeg-turbo ha lanzado la versión 3.0, que trae consigo varias mejoras destacadas. Se ha agregado soporte para submuestreo de color 4:1:1, lo que permite convertir, recortar y rotar imágenes JPEG con ese submuestreo sin pérdida de calidad. También se ha acelerado significativamente el cálculo de tablas de Huffman óptimas, lo que reduce el tiempo de compresión en imágenes pequeñas. Otra adición importante es la capacidad de aplicar codificación de entropía aritmética a imágenes JPEG con representación de color de 12 bits por canal. Además, se han realizado cambios en la API de TurboJPEG para eliminar limitaciones existentes y aumentar la extensibilidad.
Es importante destacar que el autor de libjpeg-turbo tiene la intención de enfocarse en lanzar actualizaciones con correcciones de errores en el futuro. El desarrollo de la versión 3.1 dependerá de la obtención de financiamiento para el proyecto.
En cuanto a la distribución, libjpeg-turbo se ofrece bajo tres licencias tipo BSD IJG, modificadas por BSD y zlib. También se proporcionan binarios preparados para Linux, macOS y Windows.
libjpeg-turbo es un proyecto de código abierto e independiente que depende de patrocinios y financiamiento para mantener su independencia y continuar con su desarrollo. Para aquellos interesados en contribuir, pueden patrocinar el proyecto a través de GitHub. Todo el dinero recaudado se destina directamente a financiar el trabajo necesario para mantener libjpeg-turbo, brindar soporte a la comunidad de usuarios e implementar correcciones de errores y características estratégicas importantes.
Para obtener más información sobre libjpeg-turbo, se puede visitar su sitio web oficial en https://libjpeg-turbo.org.