El formato AAC (Advanced Audio Coding ) es un códec con pérdida para audio creado por el grupo MPEG, grupo que incluye a diversas compañías como Dolby, el Instituto Técnológico Fraunhofer, AT&T , Sony y Nokia.. El fin del grupo MPEG era relevar al MPEG 1.0 audio, layer III (conocido coloquialmente como MP3) como códec estandar para el audio de consumo. A pesar de conseguir almacenar un archivo de audio de mayor calidad en menor espacio que el MP3, éste aún está mucho más extendido que AAC en el mercado de consumo. Sin embargo, esto está cambiando últimamente debido a que Apple Computer se decantó por utilizar AAC en lugar de MP3 tanto en su tienda online de venta de música Itunes (debido sobre todo a que AAC incorpora DRM para limitar la libre distribución de la música adquirida) como en su popular reproductor portátil Ipod.También es el formato de audio por defecto en muchos telefonós móviles de la compañía japonesa Sony y de la serie N de la finlandesa Nokia, en las consolas de nueva generación como PlayStation 3, PlayStation Portable(PSP) y Nintendo Wii, en muchos reproductores de audio portatil como el Microsoft Zune , toda la gama de Creative y toda la generación Walkman de Sony así como en PDA's() que trabajen bien con Windows Mobile bien con Palm OS. . Además, también es el formato que se usa en la Televisión Digital Terrestre(TDT,internacionalmente se conoce como Digital Video Broadcaste-Terrestrial(DVB-T)) en muchos paises
Otro factor (bastante controvertido) que está favoreciendo que numerosas compañías se decanten por AAC como códec de audio para sus productos es que incorpora DRM (Digital Rights Management), hecho que limita la distribución y copia de las obras con derechos de autor.
Además, aunque para distribuir contenidos en AAC no es necesaria licencia alguna (via radio por internet, por ejemplo) ésta si es necesaria para desarrollar códecs AAC. Para ello habría que pagar una patente. MP3 en cambio requiere una licencia para ambas cosas, pues distribuir contenidos en este formato puede hacerse libremente, lo cual lo sitúa en clara desventaja frente a AAC en el mundo digital actual.
AAC es un estándar en la industria desde 1997, en la que se estandarizó como la parte 7 del ya estándar MPEG-2 y posteriormente fue modificado en 1999 y estandarizado en el estándar MPEG-3 parte 3.
Como se dijo anteriormente, AAC vino a relevar al MP3 , por lo tanto, mejoró a este en varias cosas:
Para ver el efecto de los artefactos de compresión podemos ver las siguientes 2 imágenes:
A la izquierda se ve la fotografia original y a la derecha la misma fotografía codificada con JPEG de baja calidad. Se ha utilizado una imagen en lugar de un fichero de audio para ejemplificar las pérdidas por compresión por que es mucho más visible
Para llevar todo esto a la práctica AAC parte de 2 estrategias:
La codificación se basa en la transformada del coseno discreta a la que se le añaden unos códigos de control de errores(AAC Error Protection Toolkit y AAC Error Resilient. Además, por si aún asi se produjesen muestras erróneas se utiliza el algoritmo módulo N de Luhn (Luhn mod N algorithm)sobre cada conjunto de muestras.
Este algoritmo se usa cuando se quiere verificar la validez de una cadena de cualquier tipo de caracteres. En concreto, el algoritmo genera un caracter de verificación que esté dentro del mismo rango que los caracteres de la cadena de entrada (si este rango es a-z, el caracter de verificación estará en este rango). Este caracter de verificación no es asignado aleatoriamente si no que existe un mapeado entre cada caracter de entrada y el caracter de verificación asignado. Un posible mapeado podría ser:
a | b | c | d | e | f | g | h | i | j | k | l | m | n | |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
Donde se ha asignado a las 14 primeras letras minúsculas los números del 0 al 13, donde el N del nombre del algoritmo representa el número total de simbolos mapeados (N=14 en este caso). El mapeado podría haber sido cualquier otro. En resumen, lo que se hace es convertir cada caracter de entrada al caracter numérico al que está asociado, procesar los cálculos necesarios en módulo N y una vez hecho esto mapear inversamente para obtener la secuencia de salida correspondiente.
AAC tiene en cuenta la complejidad de el flujo de entrada para realizar la codificación. En concreto, ofrece poder seleccionar la frecuencia de muestreo entre 8 y 96KHz, el número de canales entre 1 y 48 y la longitud de la ventana de filtrado entre una de 1024 puntos u 8 de 128 puntos, que ofrecerá mayor resolución temporal. Además, existen varios perfiles de codificación que serán seleccionados en función de la complejidad de la señal de entrada. Aunque quien implemente el códec puede diseñar otros distintos, por defecto el estándar propone 4:
Además, para concluir, decir que a partir de AAC se han desarrollado otros dos formatos:
La versión actual (versión 2) incorpora Replicación de Banda Espectral (SBR, del inglés Spectral Band Replicacion) y Estéreo Paramétrico(del inglés Parametric Stereo). Gracias a SBR el códec sólo codificará las frecuencias bajas y medias mientras que las altas no se transmitirán (ni almacenarán) si no que serán obtenidas en el decodificador mediante la transposición de los armónicos de frecuencia baja/media haciendo uso además de cierta información adicional que también se transmite para que estás altas frecuencias puedan ser obtenidas. El que SBR no produzca una pérdida de calidad apreciable es debido a que el cerebro humano analiza con mucha mayor precisión las frecuencias bajas y medias que las altas. Por su parte, el estéreo paramétrico lo que hace es mezclar los 2 canales estéreo en un solo canal mono junto con una cierta información adicional(unos 3Kbps) para poder regenerar la distribución espacial del sonido.Gracias a esta información adicional el decodificador podrá darle la distribución espacial original al sonido (esto es, obtener de un canal mono 2 canales estéreo cada uno de ellos exactamente igual que los originales(idealmente)). Ésta técnica del estéreo paramétrico es especialmente importante para bajos bitrates, en los que sí se aumenta considerablemente la calidad de sonido.