Selecciona Edición
Entra en EL PAÍS
Conéctate ¿No estás registrado? Crea tu cuenta Suscríbete
ANÁLISIS

¿Qué hay en un fichero MP3?

Para explicar su contenido hay que mencionar a un buen número de personajes y de descubrimientos, porque la tecnología se apoya casi siempre en más de una invención

Reproductor MP3 Portátil en forma de bolígrafo.

Todos hemos descargado alguna vez ficheros de música en formato MP3 y los hemos pasado a nuestro reproductor o teléfono móvil, o los hemos escuchado en streaming desde una página web. Pero, ¿sabemos realmente qué contiene uno de estos ficheros?

Para explicarlo con claridad, debemos mencionar a un buen número de personajes y de descubrimientos, porque la tecnología se apoya casi siempre en más de una invención. El primero de ellos es el matemático francés Jean-Baptiste Joseph Fourier (1768-1830), quien demostró que toda función periódica se puede expresar como la suma de funciones sinusoidales de diferentes frecuencias y amplitudes, tal como se muestra en la figura. La aproximación es exacta si se dispone de infinitas frecuencias, aunque en las aplicaciones prácticas nos contentamos con un número finito de ellas. La transformada de Fourier, llamada así en su honor, es una transformación matemática que convierte una función periódica en otra función en el dominio de las frecuencias, que expresa para cada frecuencia la proporción con la que la sinusoidal correspondiente contribuye a la función original.

Para poder almacenar una señal de audio en un ordenador hay que convertirla previamente en números. Esto se hace mediante un muestreo: se toman las amplitudes de la señal a intervalos temporales regularmente espaciados y los voltajes resultantes se convierten a números en base dos

Los sonidos se pueden representar como funciones continuas en el dominio del tiempo. Un micrófono transforma el sonido en una señal eléctrica que varía en el tiempo (ver figura), llamada señal de audio. Para poder almacenar una señal de audio en un ordenador hay que convertirla previamente en números. Esto se hace mediante un muestreo: se toman las amplitudes de la señal a intervalos temporales regularmente espaciados y los voltajes resultantes se convierten a números en base dos. Cada muestra se almacena en 16 bits, lo que da una precisión desde cero a algo más de 65.000 para expresar cada voltaje.

Las frecuencias que el oído humano puede percibir varían en un rango de 20 a 20.000 hercios (un hercio es una vibración por segundo). Para no perder las frecuencias altas, el muestreo ha de hacerse a una frecuencia como mínimo el doble de la más alta que queramos registrar. Por ejemplo, un grabador/reproductor de CDs utiliza normalmente 44,1 KHz (kilohercios). Un sencillo cálculo nos dice que un solo segundo de música estéreo genera 44.100 muestras, por dos canales, por 16 bits, dando un total de 1,4 megabits por segundo. O bien, un minuto de música ocupa 10,6 megabytes en un CD, y una hora, más de 600 megabytes. Estos volúmenes son demasiado “pesados” para transmitirlos por la red. El éxito del formato MP3 se debe a que es capaz de dividir por 11 el volumen ocupado por las señales de sonido, sin perder apenas calidad al reproducirlas por un altavoz.

El siguiente invento es el algoritmo informático llamado transformada rápida de Fourier, o FFT en sus siglas en Inglés, debido a los matemáticos norteamericanos James Cooley y John Tukey en 1965. Es la versión discreta y eficiente de la transformada de Fourier: dado un conjunto de n muestras de amplitud de una señal, nos da las muestras de sus n frecuencias más representativas. La transformación es reversible: dadas las frecuencias, se pueden recuperar las muestras iniciales sin perder precisión. Para generar un fichero MP3 a partir de una señal de audio muestreada por ejemplo a 44,1 KHz, primero se convierte la señal al dominio de las frecuencias mediante la FFT.

La siguiente aportación es debida a la tesis doctoral del ingeniero y matemático alemán Karlheinz Brandenburg en 1989, que propuso un modelo de la percepción auditiva humana que permitía prescindir de muchas frecuencias debido a que eran enmascaradas por otras cercanas, dependiendo de sus volúmenes respectivos. Su trabajo fue la base del formato MP3 propuesto por el grupo MPEG (Moving Picture Experts Group) de la organización internacional de estandarización ISO en 1993. Tras la conversión de la señal de audio al dominio de las frecuencias, se seleccionan un número pequeño de ellas (menos de 600) para ser almacenadas en el fichero, sin perder calidad apreciable por ello. Además, se hace de un modo adaptado a la forma de la señal: en los tramos en que la señal es más simple, se almacena menos información y en los tramos más complejos (por ejemplo durante los sonidos de percusión), se almacena más. Esta selección es responsable de una parte de la compresión del fichero. Otra parte de la compresión tiene que ver con reducir el número de bits de las muestras cuando son de una amplitud parecida. En ese caso, se almacena una base común para un conjunto de muestras y luego las diferencias se codifican en unos pocos bits (usualmente 4). Esta fase se denomina cuantización. Otro “truco” consiste en almacenar los dos canales estéreo de una forma un tanto compleja, pero que da lugar a menos información. Si L es la señal izquierda y R la derecha, se almacena un canal con L+R (es decir, las muestras de L sumadas punto a punto con las de R) y otro con L-R (se restan las muestras de R a las de L). Dado que los dos canales llevan mucha información parecida, el canal L-R tiene muy poca información de frecuencias y se puede comprimir mucho más que el L+R.

El último truco se debe al algoritmo del estudiante del MIT (Massachusetts Institute of Technology) David Huffman en 1952. Es sabido que los caracteres de un texto se almacenan en el ordenador como uno o varios octetos, dependiendo de la codificación empleada. Supongamos a los efectos que cada uno emplea exactamente dos octetos, es decir, 16 bits. Sin embargo, en un texto se repiten más unos caracteres que otros. Por ejemplo, en español una E aparece muchas más veces que una X. Si en lugar de emplear una codificación fija de dos octetos, se asignan unos pocos bits a los caracteres más frecuentes y más bits a los menos frecuentes, se puede reducir el número total de bits y por tanto la longitud del fichero de texto. Huffman ideó un algoritmo para hacerlo de forma óptima supuestas conocidas las frecuencias exactas de los caracteres, lo cual siempre puede lograrse mediante un recorrido inicial del fichero. Cuanta más diferencia haya entre las frecuencias, más se comprimirá el fichero. Es frecuente que esta compresión divida la longitud total por dos o por tres. Además, no se pierde información, porque la transformación es reversible de forma exacta. Pues bien, el último paso de la compresión MP3 es aplicar el algoritmo de Huffman a las muestras de frecuencias obtenidas tras los pasos anteriores.

Un fichero MP3 se lee típicamente a una velocidad de 128 kilobits por segundo (es decir, contiene 1/11 de la información original muestreada a 1,4 megabits/seg), y durante la lectura se lleva a cabo su descodificación, la cual, por este orden, realiza los siguientes pasos: a) deshacer la codificación de Huffman; b) deshacer la cuantización para obtener muestras de 16 bits; c) rescatar los canales L y R a partir de las señales L+R y L-R; y d) realizar la transformada inversa de la FFT y recuperar las muestras temporales de amplitud. Estas son finalmente enviadas a la tarjeta de sonido del ordenador, que reconstruye la señal continua de audio y la envía al altavoz.

Ahora, cuando pulsemos el botón de nuestro reproductor MP3 ya sabremos todo lo que sucede tras las bambalinas. Una vez más, debemos inclinarnos ante los ingenieros y matemáticos que nos han precedido, porque no podríamos progresar sin los descubrimientos que hicieron otras personas antes que nosotros. Como ya afirmaba Isaac Newton en su época, realmente caminamos a hombros de gigantes.

Ricardo Peña Marí. Catedrático de la Universidad Complutense de Madrid del área de Lenguajes y Sistemas Informáticos

Crónicas del Intangible es un espacio de divulgación sobre las ciencias de la computación, coordinado por la sociedad académica SISTEDES (Sociedad de Ingeniería de Software y de Tecnologías de Desarrollo de Software). El intangible es la parte no material de los sistemas informáticos (es decir, el software), y aquí se relatan su historia y su devenir. Los autores son profesores de las universidades españolas, coordinados por Ricardo Peña Marí (catedrático de la Universidad Complutense de Madrid) y Macario Polo Usaola (profesor titular de la Universidad de Castilla-La Mancha).

Más información