Cómo funciona el formato de compresión FLAC

Conversion CDs a FLAC

Cualquier apasionado de las grabaciones de calidad sabe que los formatos con pérdidas como MP3 son cuestionados por su cierta pérdida de calidad, como ya comentamos en “Cómo funciona la compresión MP3”.

Cuando se trata de buscar formatos de compresión sin pérdida de información, es decir, que reduzcan el espacio en disco de la canción original sin perder ni un ápice de la calidad, FLAC es uno de los más populares. A continuación vamos a intentar descifrar qué es y cómo funciona.

Qué es el formato FLAC

FLAC (Free Lossless Audio Codec) es un formato para compresión de audio que consigue reducciones de hasta el 40-50% del tamaño del archivo sin compresión (CD, Wav, etc) sin perdida de la calidad. Su código es libre, lo que quiere decir que no es un sistema propietario como sí lo es por ejemplo el formato sin pérdidas ALAC de Apple, por lo que puede implementarlo cualquier software o equipo hardware.

El formato es muy versátil, permitiendo comprimir audio proveniente desde un original de calidad de CD hasta de alta definición a 32 bits y 655.350Hz con un máximo de 8 canales.

¿Cómo comprime FLAC el sonido?

Fragmentos para codificacion FLAC

Al igual que algunos otros métodos de compresión de audio, lo primero que hace FLAC para comprimir un archivo es dividirlo en pequeños fragmentos o bloques cortos (de 0,1 segs por defecto), y a continuación realiza los siguientes pasos con cada uno de ellos:

1. Codificación de los canales estéreo

En la música humana la mayor parte de la información en los dos canales estéreo es muy similar, diferenciándose sólo en algunos pasajes concretos, efectos o instrumentos.  Aprovechando ese principio, la codificación FLAC simplifica el almacenamiento de los canales estéreo L y R, sustituyéndolos por dos nuevos canales, resultado de operar con los L y R originales de la siguiente manera:

Medium = (L + R) / 2                               Side = L – R

El nuevo canal Medium contiene la suma de los dos canales originales del estéreo, y el canal Side contiene la resta, que será igual a 0 en todo aquel momento en que los dos canales de la canción original eran iguales. Lo que ocurrirá en gran parte del archivo que estamos comprimiendo.

Los dos canales originales L y R del original quedan ahora convertidos en un canal que contiene la información de los dos (Medium), y otro que será 0 gran parte del tiempo (Side) y que por tanto vamos a poder codificar ocupando menos bits.

En el momento de la reproducción, el reproductor FLAC se encargará de reconstruir L y R exactos a los originales mediante una simple operación inversa a la que se había aplicado para convertirlos en Medium y Side.

2. Modelización de la señal

El siguiente paso que realiza la codificación es analizar el sonido del fragmento, para intentar aproximarlo a una función matemática (mediante técnicas denominadas LPC o Linear Predictive Coding). El objetivo es sustituir la señal del fragmento por una función matemática, y así almacenar sólo la función y no todo el fragmento.

Este tipo de aproximación matemática funciona bastante bién, ya que estará basada en el principio de que la música humana es siempre bastante similar y no suele ser aleatoria como lo es el ruido, por lo que dos muestras consecutivas no son aleatorias entre si, sino que con probabilidad cada una será un valor similar al anterior. No obstante, esta aproximación no será siempre cierta, y de ahí viene el siguiente punto…

3. Codificación del resíduo o error

Una vez tenemos la aproximación matemática del fragmento, falta saber cuánto se parece al original. Para ello se realizará la resta del original menos la aproximación. Si la aproximación es buena (como suele ser para musica humana), el resultado de esta resta será una pequeña señal de error o de diferencia del original respecto a la aproximación. Y como esta señal de error será pequeña, se podrá codificar con pocos bits.

4. Resultado final y empaquetamiento

De esta manera, en lugar de conservar todos los bits que tenía el micro-fragmento original, lo hemos reducido a solo unos cuantos bits representando la función matemática de aproximación del fragmento, y otros pocos representando el error de esta aproximación. De manera que tendremos la misma información, pero ocupando menos bits que en el fragmento original.

Una vez se han repetido las operaciones anteriores con todos los fragmentos del archivo original, cada uno de los nuevos fragmentos reducidos se empaquetará con una cabecera y una cola añadiendo la información mínima necesaria para la decodificación a la hora de la reproducción: tasa de bits, frecuencia de muestreo, control de errores, posición del fragmento, etc… Es gracias a esto que el formato FLAC además de almacenarse, también puede transmitirse en streaming.

La reconstrucción del original en el reproductor FLAC

Reproductor movil FLAC

A la hora de la lectura del archivo FLAC y su reproducción, el reproductor solo tendrá que reconstruir cada uno de los fragmentos originales a partir de las funciones matemáticas de los fragmentos comprimidos y sumarles los errores para obtener la señal original. Finalmente reconstruirá los canales estéreo, y por último ya sólo quedará concatenar todos los fragmentos reconstruidos en orden para montar la réplica exacta de la grabación original y reproducirla.

¿Por qué no hay un ratio de compresión FLAC concreto?

No se puede saber lo que ocupará un archivo una vez comprimido como ocurre con otros codecs con un flujo de bits constante, como MP3. En FLAC dependerá de cómo es de predecible el audio a comprimir. Para comprimir algo tan aleatorio y poco predecible como el ruido, no se reducirá el tamaño en absoluto. Si comprimimos el silencio, entonces la tasa de reducción sería casi del 100%.

Los fragmentos de música simple como solos de instrumentos, se reducirán con ratios altos. Los fragmentos de música muy variable y con gran densidad armónica como puede ser la música eléctronica, orquestal, etc, se verán menos reducidos tras la codificación.

¿Qué codificación es mejor, MP3 o FLAC?

MP3 y otros algoritmos con pérdidas siempre van a lograr ratios de compresión mejores que FLAC. Pero en lo que respecta a la calidad de sonido, por muy buena calidad que se obtenga en MP3 con altos bitrates, FLAC siempre será más fiel al original, ya que no pierde ni un ápice de la información. El debate que se abre aquí es ¿hasta qué punto seríamos capaces de diferenciar un MP3 a máxima calidad de un FLAC?

¿Por que no se usa a nivel profesional?

Flac en estudios de sonido

Una de las razones por las que FLAC no es un formato de uso extendido a nivel profesional, es porque no puede almacenar sus datos digitales en un formato denominado coma flotante, que permite ahorrar CPU para hacer procesamiento de muchas señales simultáneamente y de alta calidad en los estudios de sonido, donde la CPU es un recurso a valorar.

¿Qué equipos y reproductores son compatibles con FLAC?

Equipos reproductores de FLAC

La web oficial de la fundación que mantiene el codec ofrece un listado de los equipos y sistema compatibles hoy en día con el formato FLAC. Aparecen tanto equipos Hardware, incluyendo equipos de home audio, portátiles, móviles y car audio; como Software compatible para crear archivos FLAC o reproducirlos.

 ¿Tiene futuro el formato FLAC?

Muchos somos los que nos preguntamos porqué no ha sustituido ya al MP3 como formato musical, siendo que se trata de un formato libre que puede adoptar cualquier fabricante.

Es cierto que su tasa de compresión de en torno al 60% es menor que la que ofrecen otros formatos con pérdidas, pero es extraño que hoy en día siga siendo un factor tan importante cuando el precio del almacenamiento se ha reducido tanto que es factible almacenar incluso los archivos en .wav sin compresión alguna.

Sea como sea, aunque parece que la mayoría de usuarios sigue conformándose con la calidad máxima del MP3, se vislumbra un cierto movimiento de formatos y servicios de streaming en alta resolución que esperemos que cale entre los usuarios más exigentes y la industria apueste definitivamente por ellos. Sin duda, si los fabricantes apuestan por formatos libres como FLAC, el despegue será mucho más probable!

Share on Facebook0Tweet about this on TwitterShare on Google+0Share on LinkedIn0Share on Reddit0Email this to someone

Acerca de Diego Ena

Desde siempre he tenido un gran interés por los fundamentos y curiosidades del sonido. Durante mis estudios tuve la suerte de poder hacer una especialización sobre audio, y aunque no me dedico profesionalmente a ello, a día de hoy sigo siendo un gran aficionado. Con este blog espero aportar mi granito de arena a la afición por el interesante mundo del sonido.

4 comentarios en “Cómo funciona el formato de compresión FLAC

  1. Uso desde hace tiempo el formato FLAC para mis archivos de audio. Hasta ahora, mi hardware me imponía un límite dee 192k/ 24 bits. Sin embargo, lo he renovado y dispongo de un dac externo que descodifica tanto DSD ( en sus tres resoluciones) como PCMddesde mp3 hasta 358k24 bits. Mui pregunta es: puede el FLAC codificar los formatos superiores? Hay tiendas on-line que ofreecen ( cen WAV, AIFF, ALAC y FLAC)álbumes para descargar al disco duro álbumes en esos formatos, a elegir (HDtracks, Linn Records, 2L, HD TT…)?.
    Gracias y un sakudo.

    1. Hola Ventura,

      Segun especificaciones de FLAC, como algoritmo se pueden codificar muestras de hasta 32 bits y frecuencias de muestreo de hasta 655350Hz, siempre hablando de audio que esté en formato PCM. Imagino que luego las capacidades de nuestro reproductor FLAC concreto habrá que contrastarlas, una cosa es el codec, y otra cosa podría ser la posibilidad de implementarlo del reproductor que utilicemos, por lo que imagino que hay que verificarlo bien si queremos reproducir este tipo de FLACs. Pero según el codec, técnicamente está preparado.

      Tienes los detalles de la de resolución de FLAC en su página: https://xiph.org/flac/faq.html#general__samples

      Un saludo!

  2. Hola, buenas tardes:
    utilizo con frecuencia el programa XLD para comprimir y descomprimir archivos. Tengo una duda: al pasar archivos a flac, ¿que nivel de compresión debo utilizar?, ya que si lo coloco en bajo el archivo ocupa demasiado espacio (u a´álbum en torno a 800 mb).
    Gracias de antemano

    1. Buenas Antonio,

      En principio la compresion FLAC tiene un bajo ratio de compresion, como comento en el articulo. Incluso diria que no es posible obtener diferentes ratios, como ocurre con otros tipos de compresiones con perdidas, donde el codec te permite perder más o menos informacion. En el caso de FLAC no pierdes nada de informacion, por lo que el algoritmo tiene siempre un nivel fijo de compresión para cada archivo a comprimir (una misma cancion comprimida a FLAC siempre ocupará lo mismo, aunque cada cancion diferente ocupará diferente espacio).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *