# Adaptive Transform Acoustic Coding

Adaptive Transform Acoustic Coding o ATRAC es un algoritmo de codificación (códec) de audio con pérdidas desarrollado por Sony, basado en principios psicoacústicos, que ofrece distintas tasas de compresión, según la calidad de sonido. Actualmente se utiliza para guardar información de señales de audio, en MiniDisc y otros reproductores de audio privativos de Sony.

## Evolución

La primera versión de este códec, ATRAC1 o simplemente ATRAC, se desarrolló en 1992 y conseguía comprimir la información de audio aproximadamente a la quinta parte de la tasa de datos de un CD. Asimismo, esta tecnología no ha dejado de evolucionar y sus versiones más recientes ATRAC3 y ATRAC3plus, que aparecieron en el año 1999 y en 2002, ofrecen compresiones mayores, llegando a codificar el audio al 5 y 10% de la tasa de datos de un CD, respectivamente.
El hecho de reducir el tamaño de los datos de audio, manteniendo una calidad suficientemente buena, ha permitido grabar más temas en los diferentes soportes de almacenamiento y reproducción, cambiando la manera como se escucha música.
Versiones :
| | PCM | ATRAC1 | ATRAC3 | ATRAC3plus |
| Tasa de bits | 1411 kbit/s | 292 kbit/s | 132 kbit/s | 64 kbit/s |
| Tamaño de datos (canción de 4 minutos) | 42,33 MB | 8,77 MB | 3,97 MB | 1,94 MB |
| N.º de canciones grabadas en CD-R (700 MB) | 16 | 79 | 176 | 360 |

## Tecnología

ATRAC utiliza codificación perceptual. La codificación perceptual se basa en la psicoacústica y aprovecha las imperfecciones del oído humano para evitar digitalizar los sonidos que una persona difícilmente percibirá.
Como muchos otros códecs, por ejemplo MP3 o ePAC, solamente se codifican los sonidos que quedan por encima del umbral de enmascaramiento (sonidos audibles). La mayoría de las personas no es capaz de distinguir sonidos que se encuentran a frecuencias próximas de tonos dominantes. Los sonidos enmascarados y difícilmente audibles son descartados en la codificación, permitiendo que se usen menos bits y realizando así la compresión. No obstante, algunos audiófilos podrían notar la pérdida de estos sonidos enmascarados para la mayoría.

## ATRAC1

ATRAC1 (conocido a menudo simplemente como ATRAC) fue el formato usado por Sony en su sistema SDDS en la década de 1990. Este sistema multicanal utiliza 8 canales codificados mediante esta codificación, obteniendo un bitrate global (de todos los canales) de 1168 kbit/s. Se podría decir que es uno de los principales competidores de Dolby Digital (AC-3) y otros sistemas como DTS.

### Análisis temporal-espectral

ATRAC1 divide la señal en tres partes o bandas:
* Inferior a 5,5 kHz
* Entre 5,5 y 11 kHz
* Más de 11 kHz
Cada una de estas tres partes se obtiene a partir de Quadrature Mirror Filters (QMF). La señal de entrada queda dividida en altas y bajas frecuencias por el primero de estos filtros y seguidamente otro QMF divide las bajas frecuencias para obtener las tres bandas anteriormente mencionadas. La utilización de los QMF asegura que el posible aliasing en dominio temporal, producido por la descomposición en bandas, se cancele durante la reconstrucción. Cada una de estas bandas es analizada y filtrada independientemente, utilizando la transformada directa coseno modificada (MDCT). La MDCT permite una superposición de las ventanas en dominio temporal de hasta un 50%, permitiendo mejorar la resolución en frecuencia, manteniendo el muestreo crítico, de tal forma que no se produzca aliasing. Una vez hecho esto, la señal es analizada de acuerdo con los principios de la psicoacústica. Este análisis indica qué partes de la señal son críticas y deben ser codificadas con gran precisión para no perder información de la señal relevante y cuáles pueden tolerar que se cuantifique ruido sin degradar la señal ni la percepción de la calidad de sonido de este (menos precisión). Basándose con esta información, los bits para la cuantificación disponibles son asignados ponderadamente a las unidades o partes frecuenciales y temporales según su importancia. Los coeficientes espectrales obtenidos en cada unidad son entonces cuantificados de acuerdo con los bits asignados. Posteriormente, en el decodificador, el espectro cuantificado se reconstruye siguiendo la asignación de bits y después se sintetiza en señal de audio.
Aparte de este proceso, que suelen realizar la gran mayoría de códecs de audio, ATRAC usa la psicoacústica y conceptos como el umbral de enmascaramiento no solo en el algoritmo de asignación de bits, sino que lo aplica en la separación de las partes temporal-espectral en que divide la señal. Así, la señal de entrada se analiza en divisiones espectrales no uniformes que enfatizan las regiones más sensibles en frecuencia del oído humano que, según pruebas experimentales y las curvas isofónicas, es alrededor de los 4 kHz. Además, ATRAC utiliza un bloque en su codificación que permite adaptar la longitud de las ventanas que utiliza, según la señal de entrada. De esta forma, se asegura no malgastar bits en codificar pasajes de transición o silencios.
Este bloque de longitud adaptable escoge la longitud de las ventanas de acuerdo con las características de la señal. Hay dos modos:
* Modo corto (short mode): Usa ventanas de 1,45 ms en la banda de alta frecuencia y 2,9 ms en las otras.
* Modo largo (long mode): Usa ventanas de 11,6 ms. Este modo normalmente se usa para proporcionar buenas resoluciones espectrales.
Sin embargo, el hecho de usar ventanas de longitud adaptable no hace inmune el sistema de lo que se denomina «pre-eco» y que resulta ser uno de los principales problemas en la mayoría de los códecs de audio con pérdidas. El pre-eco es fruto de transiciones abruptas de audio, como por ejemplo el ruido de un vaso rompiéndose, esto crea un ruido que se extiende por todas las muestras de la ventana. No obstante, si la longitud de la ventana es suficientemente pequeña, el enmascaramiento temporal puede oscurecer el ruido añadido antes y después de la transición. Los efectos del eco son más preocupantes antes de la transición ya que los efectos del enmascaramiento temporal afectan mucha más las zonas posteriores al tono que las anteriores.
Para prevenir el «pre-eco» ATRAC cambia a modo corto de ventana (short mode) cuando detecta una señal de ataque (transición abrupta). Así, solo hay un pequeño segmento de ruido antes del ataque y el resto se disimula gracias al post-enmascaramiento temporal. Sin embargo, si el cambio de ventana no se llevase a cabo a causa de un error del bloque adaptativo y se siguiera en modo largo, el enmascaramiento temporal posterior (post-enmascaramiento) no tendría los efectos deseados porque el ruido quedaría enmascarado durante un periodo de tiempo muy pequeño y bastante inferior a la longitud de la ventana.

### Cuantificación espectral

ATRAC almacena toda la información necesaria para reconstruir la señal de audio.
Los valores espectrales son cuantificados utilizando dos parámetros: longitud de palabra y factor de escala. El factor de escala define el rango total de escala de la cuantificación. Mientras que, la longitud de la palabra (wordlength) define la precisión dentro de la escala. Cada unidad tiene la misma longitud de palabra y factor de escalado, reflejando una similitud psicoacústica con las frecuencias agrupadas. El factor de escalado se escoge de una lista fija de posibilidades y refleja la magnitud de los coeficientes espectrales de cada unidad. La longitud de palabra se determina con el algoritmo de asignación de bits. Para cada trama de sonido (correspondiente a 512 muestras de la señal de entrada), se almacena la siguiente información:
* Longitud de la ventana MDCT (corta o larga).
* Longitud de palabra de cada unidad.
* Factor de escala de cada unidad.
* Coeficientes espectrales cuantificados.
Para garantizar la correcta reconstrucción de la señal, la información más relevante se guarda de forma redundante. Como también se guarda información sobre la cantidad de datos redundantes.

### Asignación de bits

El algoritmo de asignación de bits divide los bits disponibles entre las diferentes unidades. Las unidades con un alto nombre de bits tendrán menos ruido de cuantificación. Sin embargo, aquellas con pocos o ningún bit tendrán mucho error.
Es importante mencionar que este algoritmo tiene que asegurar que las unidades críticas o relevantes tengan suficientes bits y, a su vez, que el ruido en las unidades no tan relevantes no sea perceptualmente significativo. Cabe decir que ATRAC usa codificación entrópica, otorgando menos bits a los valores más redundantes, de forma que reduce considerablemente el tamaño del fichero de audio.
Tal y como podemos ver en el diagrama de bloques de este códec el decodificador es totalmente independiente del algoritmo de asignación de bits, cosa que permite hacer evolucionar el sistema sin tener que cambiar los dispositivos reproductores.

## ATRAC3

Esta nueva versión sigue los mismos principios de funcionamiento que el anterior, introduciendo nuevas mejoras. Así, duplica la capacidad de compresión de ATRAC sin apenas producir pérdidas en la calidad del sonido resultante (codificando el audio al 10% de la tasa de bits de un CD).
Divide la señal en cuatro partes:
* Inferior a 2,75625 kHz
* De 2.75625 a 5,5125 kHz
* De 5,5125 a 11,025 kHz
* Superior a 11,025 kHz dentro de las audiofrecuencias
A su vez, clasifica el sonido de forma más eficiente que la anterior versión, permitiendo diferenciar tonos puros, como los violines y sonidos de alto nivel de presión sonora, del resto de la señal. Este hecho, es similar al comentado anteriormente respecto a unidades críticas y no críticas.
Además, utiliza un algoritmo de asignación que permite reducir bastante el número de bits usados en la codificación, reduciendo el tamaño del fichero de audio (codificación entrópica). No obstante, hay que tener presente que la información relevante o de más intensidad se deberá codificar con más bits, con la finalidad de que no se cuantifique ruido perceptible.
ATRAC3 presenta dos modos:
* LP2: Este modo usa una tasa de bits de 132 kbit/s, obteniendo una calidad similar al MP3 codificado a la misma tasa.
* LP4: Este modo reduce la tasa de bits a la mitad de LP2 (66 kbit/s), al utilizar principios similares a la codificación joint stereo, o un filtro paso bajo alrededor de 13,5 kHz.
Ambas técnicas permiten minimizar el efecto del pre-eco con mejores resultados que en la anterior versión.
El filtro paso bajo elimina las transiciones abruptas a partir de una cierta frecuencia. Asimismo, el hecho de utilizar codificaciones similares al joint stereo permite sumar el canal derecho e izquierdo por encima de una cierta frecuencia, guardar la diferencia entre ambos canales y, durante la decodificación, reconstruir la información de alta frecuencia del canal derecho e izquierdo, recombinando la información comuna de cada canal.
De esta manera, se evita ruido de cuantificación y su propagación a lo largo de una ventana entera.

## ATRAC3plus

Mejoras que presenta:
* Divide la señal de audio en 16 bandas, obteniendo una mejor resolución y más precisión.
* Presenta más opciones de longitud de ventana dentro del bloque adaptativo, permitiendo usar ventanas más largas, de hasta 4096 muestras.
* Presenta nuevos algoritmos de asignación de bits, mejorando uno de los déficits que presentaban las antiguas versiones para determinados pasajes musicales o de voz, donde la calidad final variaba dependiendo del tipo de señal de audio.

### Asignación de bits

Presenta dos reglas apropiadas para determinados tipos de señales de audio:
Regla A:
00 → 0 |
01 → 10 | 10 → 110 | 11 → 111 |
Regla B:
00 → 0 | 01 → 110 | 10 → 111 | 11 → 10 |
Se observa que la regla A es apropiada para señales que aprovechan todo el rango dinámico, y que tengan una probabilidad de ocurrencia alta de valores con un alto nivel de presión sonora elevada.
Por el contrario, la regla B es apropiada para señales de audio con relativamente pocos valores, o muestras con un alto nivel de presión sonora.
Con la utilización de todos estos aspectos se consigue reducir la tasa de bits de forma considerable, consiguiendo factores de compresión de aproximadamente el 5%, comparándose con la tasa de datos de un CD (PCM lineal).

### Aplicaciones

* Reproductores Hi-MD ("Hi-LP" y "Hi-SP")
* Memorias Flash almacenaje y reproducción
* Consola PSP
Al principio, debido a la alta tasa de compresión del ATRAC, este no se utilizaba para operar con audio a nivel profesional. Con el tiempo, los codificadores ATRAC han mejorado considerablemente desde la primera generación, y actualmente se dispone de versiones ATRAC que generan señales de audio que se escuchan idénticas a la fuente original.
Esta codificación solo es utilizada prácticamente en los aparatos de audio portátil de Sony: lectores de CD (que incluyen un software para grabar CD con este formato) y Minidisc.

## Equivalencias

Según las pruebas efectuadas por Intertek Testing Services (Reino Unido) y TESTFactory (Alemania), por encargo de Sony, es posible establecer unas equivalencias aproximadas de calidad entre las diferentes evoluciones del formato ATRAC:
* ATRAC3plus 256 kbit/s es equivalente a la calidad CD. Con los codificadores anteriores no se consiguió especificación semejante.
* ATRAC3plus 64 kbit/s es equivalente a ATRAC3 132 kbit/s, y a ATRAC 292 kbit/s (calidad MD, Minidisc original). También es semejante a un archivo MP3 128 kbit/s.
* ATRAC3plus 48 kbit/s es equivalente a ATRAC3 66 kbit/s, y a una calidad de sonido similar a las emisoras FM.