# TTA

True Audio Codec (TTA) és un còdec d'àudio simple sense pèrdues en temps real. Està basat en pronòstics de filtres adaptatius els quals han mostrat resultats satisfactoris comparats amb la majoria dels seus anàlegs moderns. TTA ofereix nivells de compressió elevats, mantenint la rapidesa d'operació.

## Prestacions

* Algorismes de codificació i decodificació a temps real.
* Fins a un 30% de compressió sense pèrdues.
* Alta velocitat d'operació i requeriments mínims del sistema.
* Compilat i executat en diferents sistemes operatius.
* Codi i software lliures.
* Suport hardware.
El còdec d'àudio TTA realitza una compressió multicanal de 8, 16 i 24 bits de dades d'arxius d'àudio WAV. Aquests còdecs sense pèrdues comprimeixen sobre un 2:1 o un 4:1. Més o menys 3 minuts d'àudio es pot comprimir en 18 MB. Segons el tipus de música que comprimim tindrem coeficients de compressió al voltant del 30%-70%. Permet l'emmagatzemament de fins a 20 Cd's d'àudio en un DVD-R (aprox. 4GB) mantenint la qualitat d'àudio original.

## Format

El format de dades del True Audio Codec té una estructura senzilla.

### Capçalera

L'arxiu de capçalera conté l'identificador del format seguit de dos blocs de dades. El primer bloc conté les dades necessàries per recuperar el senyal original (nombre de canals, bits per mostra, etc.) i el segon bloc conté una taula de punters. Aquest bloc deu tenir el mateix nombre de punters que de mostres per trama. Cada punter utilitza 4 bytes i conté la longitud en bytes de la mostra a la que apunta. Cada bloc de dades acaba amb un CRC de 32 bits (Algorisme de control d'errors).
Les mostres comprimides de cada canal es guarden seqüencialment, tal com es fa en el format PCM.

### Trama

A continuació de la capçalera tenim la trama de dades: La durada d'una mostra en TTA s'ha fixat en un segon aproximadament. Així doncs, cada trama en una seqüència té el mateix nombre de mostres, excepte l'última trama.

## Teoria de compressió

És difícil comprimir dades d'entrada arbitràries, com és el cas de l'àudio, sense tenir cap pèrdua. Per obtenir un alt nivell de compressió per dades d'àudio s'haurà d'utilitzar un algorisme on es compti amb les dades més característiques de l'arxiu de dades. El còdec TTA es fa servir per a la compressió d'àudio sense pèrdues (còdec sense pèrdua) de 8, 16 i 24 bits de dades multicanal que s'emmagatzemaran en arxius WAV.
Gairebé tots els compressors de dades sense pèrdues utilitzen variants de l'algorisme Lempel-Ziv. Però aquest no dona bons resultats per a la compressió de dades multimèdia. En aquests tipus d'algorismes no es té en compte la gran dependència entre mostres veïnes que tenen els arxius d'àudio, també és difícil trobar mostres del senyal repetides en àudio i, per tant, la relació de compressió serà prou baixa. Així doncs, el que es fa per a dades multimèdia és afegir dues etapes preliminars: una etapa de decorrelació intra-canal i altra de pronòstic de modelació del senyal.
El compressor d'àudio TTA, com els compressors d'àudio sense pèrdues, inclou quatre etapes. Després de la descomposició per blocs, les dades passen a ser analitzades per la decorrelació entre canals. Un cop fet, les motres passen a l'etapa de predicció del senyal on s'utilitzen mètodes lineals de predicció (LPC). A continuació, la diferència entre el senyal original i el senyal pronòstic es transfereix al codificador de l'entropia per eliminar redundàncies.

### Descomposició del senyal per blocs

La mida òptima dels blocs depèn de l'algoritme escollit. Generalment, la reducció de la mida del bloc contribueix a augmentar la quantitat de trames capçalera, cosa que fa que es redueixi el nivell de compressió. Per la compressió de dades d'àudio TTA s'utilitzen trames amb una durada aproximada d'1 segon.

### Decorrelació intra- canal

Les dades d'entrada multicanal utilitzen la decorrelació intra-canal. Però, en què consisteix aquesta decorrelació? Per exemple, si tenim dos canals d'entrada aquestos es transformen en dos canals diferents: el canal diferència i el canal mitja. Aquests seguirien les següents fórmules:
diferencia=primer-segon mitja= (primer+segon)/2
Però, per evitar pèrdues de dades, el TTA utilitza les següents fórmules per a aquests nous canals:
diferencia=primer-segon mitja= (primer+diferencia)/2
Per a arxius d'àudio multicanal amb bona correlació entre canals veïns, aquest procediment ajuda a ampliar la taxa de compressió.

### Pronòstic del senyal

L'objectiu clau per modelar el compressor TTA és minimitzar la diferència entre el senyal obtingut del compressor i el senyal original (anomenat error o residu). El métode que s'ha utilitzat per construir el compressor és el que modela amb filtres adaptatius. Aquest mètode utilitza filtres IIR on els paràmetres van canviant durant els procés de treball segons les característiques del senyal. El TTA es diferencia una mica de l'algorisme general d'aquest tipus de filtres. Té un primer nivell on es fa servir un predictor de nivell zero, així el senyal error serà el següent:
e[n]=x[n]-k*x[n-1] on k és proper a 0
I l'etapa final de filtratge es compon d'un sistema de filtres d'amplada de banda diferents segons les característiques del senyal. Aquesta tècnica és la més eficient per la precisió de predicció i la velocitat del procés.

### Codificació entròpica

La codificació entròpica es fa servir per eliminar la redundància que pugui haver-hi en el senyal obtés e[n]. Aquest procés és important perquè ens permetrà comprimir les dades amb una major taxa. És important recalcar que, atès que estem en codificació sense pèrdues, no hi ha pèrdua d'informació en aquest procés.

## Enllaços externs

* TTA - Lloc web oficial
* http://tta.sourceforge.net/