# LD-AAC

Low Delay Advanced Audio Coding (LD-AAC o AAC-LD) significa, en inglés, codificación de audio avanzada con retardo bajo.
Es el estándar de codificación de audio, dentro de MPEG-4, que ofrece una mejor relación entre calidad de audio y retardo de codificación. El algoritmo de codificación provoca un retardo de solo 20 ms (milisegundos), además que soporta cualquier tipo de audio: sonido del habla (en inglés “speech”), música y sonidos atmosféricos.

## Descripción

Hasta la aparición del Códec de audio LD-AAC no había modo de conseguir establecer comunicaciones bidireccionales (dúplex) de alta calidad y baja velocidad de datos (bitrate):
   * Por una lado, los codificadores de audio perceptible (que el oído humano puede detectar) como mp3 (MPEG Layer 3) ofrecen una buena calidad de audio para todo tipo de señales, incluidos música y habla, a unas velocidades menores que 16 kbps. Aun así, el retardo debido al algoritmo de codificación y decodificación puede exceder fácilmente los 100 ms, cosa que no es aceptable en comunicaciones dúplex.
   * Por otro lado, los codificadores de habla, como el G.722.2, introducen un retardo menor que los codificadores perceptibles y permiten ser aceptados para soportar comunicaciones dúplex. De todos modos, es importante decir que estos codificadores solo ofrecen buena calidad para señales de habla, ya que suelen fallar cuando se usan para codificar señales de música. Además, la calidad de sonido que ofrecen muchas veces no es suficiente en aplicaciones de alta calidad. Véase la figura siguiente:
Así que el MPEG-4 LD-AAC se ha diseñado para combinar las ventajas de la codificación de audio perceptible con un retardo suficientemente pequeño para satisfacer comunicaciones bidireccionales. Este codificador lo ha desarrollado la empresa alemana “Fraunhofer” y deriva del MPEG-4 LC-AAC (Low complexity AAC, AAC de baja complejidad).
Como se ha dicho, el codificador LD-AAC introduce un retardo de codificación de solo 20 ms. Por otro lado, ofrece una buena calidad de audio para todo tipo de señales (música, perceptible, sonidos atmosféricos, ...) y es soportable para comunicaciones bidireccionales. Además, puedo ser usado juntamente con las herramientas para combatir errores de MPEG-4 (MPEG-4 Error Resilience Tools) para disminuir el impacto, en la calidad del sonido, debido a los errores de transmisión.
Por último, es importante decir que, a diferencia de los codificadores de habla (en inglés, "speech codec"), la calidad del audio crece a medida que aumenta el bitrate. Con esto se puede conseguir una calidad máxima.

## Funcionamiento

La siguiente figura muestra el diagrama de bloques que sigue el codificador de LD-AAC:
La codificación consta de dos grandes bloques: Procesado del espectro y Cuantificación y codificación.
* Primero hace un procesado espectral de la señal que se quiere codificar:
   ** Se obtiene la transformada directa del coseno modificado (MDCT), para trabajar en el dominio transformado y no en el temporal.
   ** Se usa la técnica TNS (en inglés, Temporal Noise Shaping: ). Es una técnica de reducción de bits que consigue minimizar el impacto de los errores de cuantificación. Añade ruido incorrelado a la señal.
   ** Luego, la señal pasa por el bloque "intensidad/acoplamiento".
   ** Después, el bloque "PNS" (en inglés, Perceptual Noise Substitution: substitución del ruido perceptible).
   ** Y, por último, el bloque "Mid/side".
    Así se tiene toda la parte de tratamiento del espectro.
* Por otro lado, se tiene que cuantificar las muestras de señal para adaparlas al tipo de codificación:
   ** Primero, se deciden que factores de escala se van a usar.
   ** Con ellos, se cuantifican las muestras según los niveles escogidos por el bloque anterior (bloque "Quantization").
   ** Por último se codifican las muestras cuantificadas a usando el algoritmo de Huffman (codificación Huffman).
    Siempre controlando que el bitrate sea el deseado y que no se distorsione demasiado la señal (objetivo que controla el bloque "Bitrate/Distortion Controller").
Con este proceso, se obtiene el flujo de bits codificados.

## Características

   * Soporta cualquier tipo de sonido: música, habla y sonidos atmosférics.
   * Mejor calidad de audio, a misma velocidad de datos, que los ITU G.722, G.722.1-C y G.729.1 y que el famoso mp3.
   * Retardo del algoritmo de 20 ms.
   * Retardo menor que 30 ms en implementaciones a tiempo real en DSPs.
   * Permite ajustarse a múltiples velocidades, típicamente entre 32 y 128 kbps.
   * Permite complementarse de la corrección de errores de MPEG-4 ERT (Error Resilience Tools)
   * Complejidad de computación y almacenaje comparables con LC-AAC.

## Aplicaciones

Este codificador es una opción apta para cualquier aplicación que desee transportar audio de alta calidad con un retardo pequeño.
Se ha implantado en sistemas de telefonía y videoconferncia como los que desarrollan las empresas “Tandberg” y “Cisco”. Además, “Texas Instruments” lo ha usado por sus soluciones de VoIP-DSP y “Apple”, para su aplicación "iChat" basada en VoIP. También, ha sido estandarizado por el ETSI DECT como único codificador para su “NG DECT”.

## Enlaces relacionados

   * Empresa que ha desarrollado el códec.
   * Empresa que diseña implementaciones para DSP del códec LD-AAC.
   * MPEG