FLAC 1.4.0 llega con pequeñas mejoras, pero bastante importantes
Nueve años después de la publicación del último hilo importante, la comunidad Xiph.Org ha presentado una nueva versión del códec FLAC 1.4.0 que proporciona codificación de audio sin pérdidas.
Para quienes desconocen de FLAC, deben saber que este es un formato de transmisión completamente abierto, lo que implica no solo la apertura de las bibliotecas con la implementación de funciones de codificación y decodificación, sino también la ausencia de restricciones en el uso de especificaciones y la creación de versiones derivadas del código de la biblioteca.
FLAC está diseñado para comprimir audio. Debido a ello, los archivos resultantes son reproducibles y útiles, además de ser más pequeños que si se hubiera aplicado directamente al archivo PCM un algoritmo de compresión estadística (como ZIP).
FLAC se ha convertido en uno de los formatos preferidos para la venta de música por Internet, al igual que Monkey’s Audio que funciona idénticamente bien. Además, es usado en el intercambio de canciones por la red, como alternativa al MP3, cuando se desea obtener una mayor reducción del tamaño que en un archivo WAV-PCM, y no perder calidad de sonido. Al mismo tiempo, los métodos de compresión sin pérdida utilizados permiten reducir el tamaño del flujo de audio original en un 50-60 %.
Principales novedades de FLAC 1.4.0
En la nueva versión que se presenta del codec, se destaca que se agregó soporte para codificar y decodificar con una profundidad de bits de cuantificación de 32 bits por muestra.
Otra de las novedades que acompaña al lanzamiento de esta nueva versión, es que se ha mejorado la eficiencia de compresión en los niveles 3 a 8 a costa de una ligera reducción en la velocidad de codificación debido a la precisión de cálculo de autocorrelación mejorada.
Ademas de ello, tambien se destaca que la biblioteca libFLAC y la utilidad flac, en esta nueva versión brindan la capacidad de limitar la tasa de bits mínima para los archivos FLAC, hasta un bit por muestra (puede ser útil al organizar transmisiones en vivo).
Tambien se ha logrado una mayor velocidad de codificación para los niveles 0, 1 y 2, junto con una compresión ligeramente mejorada en los niveles 1 a 4 al cambiar la heurística adaptativa, ademas de que se hizo posible codificar archivos con frecuencias de muestreo de hasta 1048575 Hz.
Por otra parte, tambien se destaca que la velocidad de compresión fue significativamente mejorada en procesadores ARMv8 de 64 bits, gracias al uso de instrucciones NEON. Rendimiento mejorado en procesadores x86_64 que admiten el conjunto de instrucciones FMA.
De los demás cambios que se destacan de esta nueva versión:
- Se han cambiado la API y la ABI de las bibliotecas libFLAC y libFLAC++ (la actualización a la versión 1.4 requiere la reconstrucción de las aplicaciones).
- Obsoleto y se eliminará en la próxima versión del complemento para XMMS.
- La utilidad flac tiene nuevas opciones «–limit-min-bitrate» y «–keep-foreign-metadata-if-present».
- La compresión de los ajustes preestablecidos -1 y -4 se mejoró ligeramente en cierto material al cambiar la heurística adaptativa del lado medio
- Se integraron aceleraciones dirigidas específicamente a dispositivos ARMv8 de 64 bits que usan NEON (Ronen Gvili, Martijn van Beurden)
- Se agregan aceleraciones para CPU x86_64 que tienen la extensión del conjunto de instrucciones FMA
- Ahora es posible codificar y decodificar PCM de 32 bits
- Se solucionó un problema al usar la función de análisis que causaba que el primer cuadro tuviera un tamaño y desplazamiento incorrectos
- Se han eliminado los archivos del sistema de compilación MSVC y Makefile.lite. La construcción con MSVC (Visual Studio) se puede hacer usando CMake
- Adición de un nuevo decodificador fuzzer, agregando cobertura de código de búsqueda
- La advertencia devuelta por el manejo de metadatos externos ahora es más clara en caso de que un usuario intente restaurar metadatos externos del tipo incorrecto, por ejemplo, decodificando un archivo FLAC que contiene metadatos externos AIFF en un archivo WAV.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.