Códecs: una introducción (II) – MP3

Siguiendo con la serie de introducción a los códecs, y conmemorando la ocasión del décimo aniversario de MP3, revisaremos algunas de sus características. La idea sigue siendo hacer sólo una introducción y no llenar de conceptos técnicos, sino tener siempre en mente las aplicaciones prácticas, el uso común. Pero antes una distinción fundamental entre Bit Rate Constante (CBR) y Bit Rate Variable (VBR).

Dos maneras de asignar información: CBR y VBR

Recordemos que es posible tener una apreciación aproximada de la calidad de un archivo de audio (o también de video) en base a la cantidad de kilobits por segundo (kbps) con que ese archivo esté codificado —aunque, como afirmaba en el post anterior, hacer comparaciones teniendo en cuenta este único parámetro no es lo mejor. Podemos definir la medida de kbps como la cantidad de información que se asigna por cada segundo de audio o de video: si una canción está codificada a 256 kbps, significa que por cada segundo de audio se han asignado 256 kilobits de información (ojo, que estamos hablando de kilobits, no de kilobytes).

Para determinar cuánta información se va asignar a cada segundo, existen principalmente dos métodos: Bitrate Constante (CBR) y Bitrate Variable (VBR). Como sus nombres lo indican, en el primero la asignación de datos se hace en relación a una medida constante, es decir, si queremos obtener un archivo de audio a 320kbps, el códec asignará esta cantidad de datos a cada segundo de la canción, sin importar su nivel de complejidad (es distinto comprimir la información acústica de un pasaje en silencio o de uno con muchos instrumentos sonando simultáneamente). El método VBR funciona de otro modo: se prioriza la calidad, por lo que la cantidad de datos a asignar depende de la complejidad del trozo de canción que se está codificando. Por ejemplo, en una parte en que haya un silencio, se asignará menos información, mientras que en una parte que por ejemplo tenga sonidos de trompetas, violines, etc., la información asignada será mayor; por supuesto este rango está determinado por ciertos parámetros.

Existe un tercer método, “Average Bit Rate” (ABR, Bit Rate Promedio), que no es tanto un método distinto como más bien una mezcla de los dos anteriores: se fija un determinado Bit Rate (una cantidad determinada de kbps), el que vendría a ser el promedio del Bit Rate que se asignará a los fragmentos del archivo a procesar.

MP3: MPEG Audio Layer 3

Por muchas razones (y aún cuando puedan existir muchos argumentos en contra), MP3 es el rey de los compresores de audio con pérdida. Es tan ampliamente conocido que difícilmente necesita una introducción, lleva un montón de tiempo dando vueltas, y aunque muchos competidores (algunos de ellos muy buenos) le han salido al paso, su fin no se ve para nada cercano.

MP3 nació el año 1987, principalmente gracias a la investigación del Fraunhofer Institute for Integrated Circuits IIS. En 1995 los archivos generados con este códec comenzaron a llevar la extensión .mp3, nombre con que se popularizó esta especificación.

El auge de internet y de este formato fueron de la mano: la explosión de Napster y los programas de intercambio P2P durante la segunda mitad de los 90 pueden contarse como una de las causas más importantes para el desarrollo de la red.

A partir del 2002, comenzaron a surgir una serie de competidores, los que lentamente han provocado que este formato haya perdido algo de terreno frente a formatos como AAC y WMA (introducidos y respaldados por marcas como Apple y Microsoft, respectivamente), aunque se mantiene como el líder en presencia.

Pros:
  • Requiere de poco poder de procesamiento para su reproducción.
  • Es ampliamente conocido, por lo que existe una amplia oferta de decodificadores
  • Es un estándar ISO, parte de la especificación MPEG
  • Fácil ajuste de la calidad de compresión, existen varias opciones dependiendo si se decide privilegiar el tamaño resultante o la calidad del audio
  • La mayoría (¿todos?) de los computadores actuales vienen con software para reproducir MP3, así como también la amplia gama de reproductores portátiles
Contras:
  • Performance / eficacia más baja que códecs más modernos
  • No existen implementaciones para canales múltiples (no puede generar audio 5.1, por ejemplo)
  • El bitrate máximo (320kbps) a veces no es suficiente
  • Inutilizable para audio de alta definición
LAME: el mejor sabor de MP3

Existen varios codificadores que generan archivos MP3. Algunos, como el viejo codificador de Xing, pueden convertir un archivo de audio sin comprimir a MP3 muy rápidamente, pero con pésimos resultados. Otros, como los que vienen incluído en el WMP o en Winamp, son versiones mutiladas, con sólo un puñado de opciones, lo que también limita la calidad.

Por ello, entre todas las alternativas para producir MP3, la mejor es indiscutiblemente aquellas basadas en LAME, un encoder de código abierto, que incluso rivaliza con los sucesores tecnológicos de MP3 en calidad y velocidad.

LAME en sí no es un programa para crear MP3 (LAME Ain’t an MP3 Encoder, como dice su nombre), sino que generalmente es incluído en otro software, por ejemplo en rippeadores como CDex o EAC.

Mi característica preferida de LAME son sus presets, con los cuales es posible generar archivos de muy buena calidad sin preocuparse de ajustar muchas cosas (porque ya vienen todas ajustadas). Estos son los presets:

  1. --alt-preset standard genera archivos VBR alrededor de los 190kbps, la mejor relación entre calidad y tamaño
  2. --alt-preset fast standard lo mismo que el anterior, pero más rápido. La calidad podría disminuir un poco (aunque la diferencia es probablemente imperceptible)
  3. --alt-preset extreme genera archivos VBR alrededor de los 250kbps, ideales para equipos de audio de muy buena calidad
  4. --alt-preset fast extreme lo mismo que el anterior, pero más rápido. La calidad podría disminuir un poco (aunque la diferencia es probablemente imperceptible)
  5. --alt-preset insane genera archivos CBR de 320kbps, la calidad más alta disponible en MP3

Mi preferido es --alt-preset fast extreme (mis razones las explico acá)

A partir de la versión 3.95.1 de LAME, los presets cambiaron de nombre, quitándoles el "alt-", es decir, pasan a llamarse --preset standard, --preset extreme y --preset insane, respectivamente.

Fuentes: