Una amistosa introdución a la codificación de vídeo, parte 3: sonido con pérdida

Ángel Ortega

Por Mark Pilgrim, traducción de Ángel Ortega. Artículo original: http://diveintomark.org/archives/2008/12/30/give-part-3-lossy-audio-codecs

[Estas notas se convertirán en una charla técnica sobre codificación de vídeo]

A no ser que nos limitemos a películas hechas antes de 1927 o así, lo más probable es que nos haga falta una pista de sonido. Un artículo futuro hablará de cómo elegir bien el «codec» correcto, pero de momento sólo quiero introducir el concepto (esta información quedará obsoleta pronto; los lectores del futuro deben tener en cuenta que esto se escribió en diciembre de 2008).

Como los «codecs» de vídeo, los «codecs» de audio son algoritmos mediante los cuales se codifica un flujo de sonido. El artículo de hoy sólo habla de «codecs» de sonido con pérdida. En realidad, está aún más restringido que eso, ya que hay varias categorías de sonido con pérdida. El sonido se usa en muchos sitios donde no hay vídeo (telefonía, por ejemplo), y hay una categoría completa de «codecs» especializados en comprimir texto hablado. Nadie convertiría un CD de música usando uno de estos «codecs», ya que acabarían sonando como un niño de 4 años tarareando con un micrófono. Pero se usarían en un PBX Asterisk, porque el ancho de banda es valioso y estos «codecs» comprimen la voz humana mucho más de lo que lo harían los de propósito general.

Y eso es todo lo que tengo que decir acerca de la compresión de voz humana. Sigamos...

Como dije en la segunda parte, cuando «ves un vídeo», se hacen varias cosas a la vez:

El «codec» de audio se refiere al tercer punto: cómo decodificar el flujo de sonido para convertirlo en formas de onda digitales que los altavoces convertirán en sonido. Como en el vídeo, hay todo tipo de trucos para hacer que la información almacenada en la pista de sonido ocupe lo menos posible. Y como estamos hablando de sonido con pérdida, se pierde información en el proceso de grabación -> codificación -> decodificación -> escucha. Cada algoritmo desprecia partes diferentes del sonido, pero todos pretenden lo mismo: engañar al oído de forma que no note las partes que faltan.

Un concepto que el sonido tiene y que el vídeo no son los canales. El sonido se envía a los altavoces, ¿verdad? ¿Cuántos altavoces tienes? Si estás ante tu ordenador, quizá sólo tienes dos: uno a la izquierda y el otro a la derecha. Mi escritorio tiene tres: izquierda, derecha y uno en el suelo. El llamado sonido «surround» puede tener seis o más altavoces, situados estratégicamente por toda la sala. A cada altavoz se le envía un canal de la grabación original en particular. La teoría es que puedes estar sentado en el centro de los seis altavoces, rodeado literalmente de seis canales de sonido, y tu cerebro sintetiza la sensación de estar en la mitad de la acción. ¿Funciona? Una industria de miles de millones de dolares piensa que sí.

Hay montones de «codecs» de audio. ¿Dije que había montones de «codecs» de vídeo? Olvidemos eso. Hay una puta tonelada métrica de «codecs» de audio. Estos son los importantes:

MPEG-1 Audio Layer 3

Coloquialmente conocido como «MP3». Si no has oído hablar del MP3, no sé qué hacer contigo. Walmart vende reproductores portátiles y los llama «MP3s». Walmart. De cualquier forma...

Los MP3 pueden contener hasta 2 canales de sonido. Pueden ir codificados a diferentes tasas de bits: 64 kbps, 128 kbps, 192 kbps y otros más entre 32 y 320. Cuanto más alta sea la tasa, mayor calidad tendrá la salida, aunque su incremento no es lineal (los de 128 tienen el doble de calidad que los de 64, pero los de 256 no suenan el doble de bien que los de 128). Además, el formato MP3 permite codificación de tasa variable, lo que significa que algunas partes del sonido están más comprimidas que otras. Por ejemplo, el silencio entre pistas puede estar muy comprimido, o la tasa incrementarse en un pico en el que muchos instrumentos estén tocando un acorde complejo. Los MP3 también pueden ir comprimidos a una tasa constante, lo que como era de esperar se llama codificación de tasa constante.

El estándar MP3 no define con exactitud cómo codificar los MP3 (aunque sí define exactamente cómo decodificarlos); cada codificador usa diferentes modelos psicoacústicos con resultados dispares, pero que todos son decodificables por los mismos reproductores. El codificador «Open Source» proyecto LAME es el mejor codificador libre, y discutiblemente el mejor codificador para todas excepto las tasas más bajas, punto.

El formato MP3 se estandarizó en 1991 y está cubierto por patentes, lo que explica que Linux apeste no pueda tocar MP3 tal cual se instala. Prácticamente todos los reproductores portátiles tocan MP3, y pueden ir incluidos en cualquier contenedor. El Adobe Flash puede reproducir ficheros MP3 y flujos MP3 en contenedores de vídeo MP4.

Advanced Audio Coding

Conocido como «AAC» para los amigos. Estandarizado en 1997, llegó a la fama por ser el elegido por Apple para la tienda iTunes. Originalmente, todos los ficheros «comprados» ahí estaban cifrados con un sistema propietario de Apple, denominado FairPlay. Muchas canciones de la tienda iTunes están ahora disponibles como AAC desprotegidos, lo que Apple llama «iTunes Plus» porque suena mucho mejor que que «iTunes Minus». El formato AAC está cubierto por patentes. Las tarifas para licenciarlo se pueden conseguir en línea.

AAC se diseñó para proporcionar mejor calidad que el MP3 a las mismas tasas de bits, y puede codificar a cualquier tasa (no como MP3, que está limitado a unas tasas concretas con un límite superior de 320 kbps). AAC puede codificar hasta 48 canales de sonido, aunque en la práctica nadie hace eso. El formato AAC también se diferencia del MP3 en que está separado en perfiles, de igual forma que el H.264, y por las mismas razones. El perfil de «baja complejidad» está diseñado para ser reproducido en tiempo real en dispositivos con poca potencia de CPU, mientras que los perfiles altos ofrecen mejor calidad a la misma tasa de bits a expensas de tardar más en codificar y decodificar.

Todos los dispositivos de Apple, incluyendo iPods, AppleTV y QuickTime soportan ciertos perfiles de AAC en ficheros de sonido y en pistas de audio en contenedores de vídeo MP4. Adobe Flash soporta todos los perfiles de AAC en MP4, igual que los reproductores «Open Source» mplayer y VLC. Para codificar, la opción de software libre es la librería FAAC. Los programas mencoder y ffmpeg tienen soporte para esta librería como opciones en tiempo de compilación (exploraré estas herramientas en un artículo futuro).

Windows Media Audio

También conocido como «WMA». Como se puede adivinar por el nombre, Windows Media Audio fue desarrollado por Microsoft. El acrónimo «WMA» se ha usado históricamente para referirse a muchas cosas diferentes: un «codec» de audio sin pérdida («WMA Lossless»), un «codec» optimizado para voz humana («WMA Voice») y varios «codecs» con pérdida («WMA 1», «WMA 2», «WMA 7», «WMA 8», «WMA 9» y «WMA Pro»). También se usa (incorrectamente) para referirse al Advanced Systems Format, ya que algunos flujos de audio WMA están habitualmente incluidos en un contenedor ASF. A grandes rasgos, los «codecs» con pérdida (WMA 1 a 9) compiten contra el MP3 y el AAC de baja complejidad; WMA Lossless compiten contra Apple Lossless y FLAC, y WMA Pro contra el ACC de alta complejidad, Vorbis, AC-3 y DTS.

Todos los «codecs» de la marca «WMA» son reproducibles con el Windows Media Player, que viene instalado en todas las máquinas con Microsoft Windows XP y Vista. Los dispositivos portables como el Zune y los irónicamente llamados «PlayForSure» (SeguroQueSuena) puede tocar WMA de 1 a 9; las tiendas que permiten comprarlos generalmente los cifran con un esquema propietario de Microsoft. El proyecto «Open Source» ffmpeg puede reproducir WMA 1 a 9 y Flip4Mac ofrece un componente comercial para QuickTime para codificar y decodificar sonido WMA en MacOS X.

WMA de 1 a 9 suporta hasta 2 canales de sonido. WMA Pro hasta 8 canales de sonido. Todos los formatos WMA están cubiertos por patentes. Microsoft proporciona información sobre cómo licenciarlos.

Vorbis

Conocido por muchos como «Ogg Vorbis», aunque eso parece cabrear a los evangelistas de Ogg y Vorbis por alguna razón (técnicamente, Ogg es un contenedor, y los flujos de sonido Vorbis pueden ir incluidos en otros contenedores). Vorbis no está cubierto por ninguna patente conocida y por tanto está soportado por todas las distribuciones de Linux y por dispositivos portátiles que ejecuten el firmware «Open Source» Rockbox. Mozilla Firefox 3.1 soportará ficheros de sonido Vorbis en contenedores Ogg o vídeos Ogg con pistas de audio Vorbis. Los teléfonos móviles basados en Android también reproducen ficheros Vorbis. Las pistas de audio Vorbis suelen ir incluidas en contenedores Ogg, pero también pueden ir en MP4 ó MKV (y, con algo de trasteo, en AVI).

Existen codificadores y decodificadores «Open Source», incluyendo OggConvert (codificador), ffmpeg (decodificador), AoTuV (codificador), y libvorbis (decodificador). También hay componentes QuickTime para MacOS X y filtros DirectShow para Windows.

Vorbis soporta un número arbitrario de canales.

Dolby Digital

También conocido como «AC-3». AC-3 fue desarrollado por los laboratorios Dolby. AC-3 es conocido sobre todo por ser el formato obligatorio del estándar DVD; todos los reproductores DVD tienen que leer AC-3. Es también obligatorio para el Blu-Ray y muchas emisiones de televisión envían sonido AC-3. Soporta hasta 6 canales de sonido y hasta 640 kbps, aunque su especificación más extendida (la de los DVDs) está limitada oficialmente a los 448 kbps (los discos Blu-Ray pueden usar los 640 kbps).

Existen codificadores y decodificadores «Open Source» para AC-3, incluyendo liba52 (decodificación), AC3Filter, (decodificación) y Aften (codificación). ffmpeg incluye opcionalmente soporte para liba52, lo que permite a todos los reproductores y «plugins» basados en ffmpeg (como GStreamer) reproducir flujos AC-3. No obstante, el estándar está cubierto por patentes; las licencias las otorgan los laboratorios Dolby.

Es raro encontrar AC-3 en ficheros sólo de sonido; está diseñado para estar dentro de un contenedor de vídeo. Aparte de DVDs y Blu-Rays (que usan un contenedor de vídeo del que aún no he hablado), se puede incluir AC-3 en flujos MKV, AVI y (estandarizado recientemente, a principios de 2008) en ficheros MP4 (discusión). El AppleTV de Apple es el único aparato de salón que conozco que soporta AC-3 en MP4; se puede codificar AC3 en MP4 compatible con estos sistemas usando HandBrake, o insertar manualmente sonido AC-3 en ficheros MP4 existentes usando esta versión sólo para Windows de mp4creator.

Digital Theater System

También conocido como «DTS». Como se puede adivinar por el nombre, el formato DTS está diseñado para cines y salas. Como el WMA, «DTS» es una marca que abarca un amplio abanico de formatos. El «núcleo» de DTS soporta hasta seis canales; algunas extensiones posteriores como DTS-HD soportan hasta ocho canales. También existe el DTS-HD Master Audio, una versión sin pérdida de la misma compañía. Está diseñado para altas tasas de bits (hasta 1536 kbps, que es prácticamente indistinguible de estar ahí desde el primer momento). Las tasas de DTS-HD Master Audio pueden ir incluso más alto, pero hay puntos en los que hasta los audiófilos más recalcitrantes piensan que «para qué».

El núcleo de DTS no era parte original de la especificación DVD, por tanto algunos DVD antiguos no lo soportan. Los más modernos pueden decodificarlo o pasarlo en crudo a algún sistema externo que lo soporte, pero pocos discos DVD incluyen este tipo de pistas de sonido debido a restricciones de tamaño. El núcleo de DTS es parte obligatoria de la especificación Blu-Ray, y muchos discos de este tipo incluyen una pista de sonido DTS, a menudo exactamente lo mismo que llegó a las salas de cine. (DTS-HD Master Audio es una parte opcional de la especificación Blu-Ray, pero pocos discos lo incluyen debido a - lo adivinaste - restricciones de tamaño).

DTS está cubierto por patentes. Las licencias las otorga DTS, inc..

Y así en adelante...

Como todos los artículos de esta serie, apenas rascan la superficie (¡de verdad!). Si se quiere, se puede indagar más sobre otros formatos: ATRAC, Musepack, MP2, RealAudio, AMR, ADPCM, y muchos más. Wikipedia tiene un estudio comparativo, y wiki.multimedia.cx también es tu amigo.

En la siguiente entrega: ¡subtítulos!

http://diveintomark.org/archives/2008/12/30/give-part-3-lossy-audio-codecs