Adaptive Transform Acoustic Coding

De Viquipèdia
Dreceres ràpides: navegació, cerca

Adaptive Transform Acoustic Coding (ATRAC) és un algorisme de codificació (còdec d'àudio) desenvolupat per Sony basat en principis psicoacústics que ofereix diferents nivells de compressió depenen de la qualitat de so desitjada. Actualment, s'usa per a guardar informació de senyals d'àudio en MiniDisc i altres productes reproductors d'àudio de la mateixa marca Sony. Tanmateix, altres fabricants com Sharp i Panasonic tenen també les seves pròpies versions del còdec.

Evolució[modifica | modifica el codi]

La primera versió d'aquest còdec ATRAC-1 es va desenvolupar el 1992 i aconseguia comprimir la informació d'àudio aproximadament 1/5 de la taxa de dades d'un CD. Tanmateix, aquesta tecnologia no ha deixat d'evolucionar i les seves versions més recents ATRAC3 i ATRAC3plus que van aparèixer l'any 1999 i el 2002 ofereixen compressions majors, d'aproximadament 1/10 i 1/20 de la taxa de dades d'un CD, respectivament. El fet de poder reduir la mida de les dades d'àudio mantenint una qualitat prou bona ha permès enregistrar més temes en els diferents suports d'emmagatzematge i reproducció, canviant la manera en què escoltem la música.

EVOLUCIÓ DIFERENTS VERSIONS
PCM ATRAC1 ATRAC3 ATRAC3plus
Bitrate 1411 kbps 292 kbps 132 kbps 64 kbps
Mida Dades

(cançó de 4 minuts)

42,33 MB 8,77 MB 3,97 MB 1,94 MB
Nombre de cançons grabades

en CD-R (700 MB)

16 79 176 360

Tecnologia[modifica | modifica el codi]

L'ATRAC utilitza el que s'anomena codificació perceptual. La codificació perceptual es basa en la psicoacústica i aprofita les imperfeccions de l'orella humana per evitar digitalitzar els sons que aquesta difícilment percebrà.

D'aquesta manera, i com molts altres còdecs com ara MP3 o ePAC (enhanced Perceptual Audio Coder) intenten codificar aquells sons que queden per sobre del llindar d'emmascarament (sons audibles). És per això, que ATRAC elimina las freqüències que l'orella humana no és capaç de reconèixer, quedant-se només amb les audiofreqüencies (20 a 20 000 Hz).

ATRAC1[modifica | modifica el codi]

ATRAC1 va ser el format utilitzat per Sony en el seu sistema SDDS als anys noranta. Aquest sistema multicanal utilitza 8 canals codificats mitjançant aquesta codificació, obtenint un bitrate global de tots els canals de 1168 kbit/s. És per això, que podríem dir que és un dels principals competidors de Dolby Digital (AC-3) i altres sistemes com el DTS.

Diagrama de blocs[modifica | modifica el codi]

Diagrama de blocs

Anàlisi temporal- freqüencial[modifica | modifica el codi]

ATRAC1 divideix el senyal en tres parts o bandes:

  • 1. Inferior a 5,5 kHz
  • 2. Entre 5,5 i 11 kHz
  • 3. Més de 11 kHz

Cada una d'aquestes tres parts s'obté a partir de Quadrature Mirror Filters (QMF). El senyal d'entrada queda dividit en altes i baixes freqüències pel primer d'aquests filtres i seguidament un altre QMF divideix les baixes freqüències per a obtenir les tres bandes anteriorment mencionades. La utilització dels QMF assegura que el possible aliasing en domini temporal produït per la descomposició en bandes es cancel·li durant la reconstrucció. Cada una d'aquestes bandes és analitzada i filtrada independentment, utilitzant la transformada directa del cosinus modificada (MDTC). La MDTC permet una superposició de les finestres en domini temporal de fins a un 50% permetent millorar la resolució freqüencial tot mantenint el mostreig crític (perquè no es produeixi aliasing). D'aquesta forma el senyal és analitzat d'acord amb els principis de la psicoacústica. Aquest anàlisi indica quines parts del senyal o unitats són crítiques i han de ser codificades amb gran precisió per no perdre informació del senyal rellevant i quines poden tolerar que es quantifiqui soroll sense degradar el senyal ni la percepció de la qualitat de so d'aquest (menys precisió). Basant-se amb aquesta informació els bits per a la quantificació disponibles són assignats a les unitats o parts freqüencials i temporals. Els coeficients espectrals obtinguts en cada unitat són llavors quantificats d'acord amb els bits assignats. Posteriorment, al descodificador, l'espectre quantificat es reconstrueix d'acord amb l'assignació de bits i després se sintetitza en senyal d'àudio. A part d'aquest procés que solen realitzar la gran majoria de còdecs d'àudio ATRAC usa la psicoacústica i conceptes com el llindar d'emmascarament no només en l'algorisme d'assignació de bits, sinó que l'aplica en la separació de les parts temporal-freqüencial en què divideix el senyal. D'aquesta manera, el senyal d'entrada s'analitza en divisions freqüencials no uniformes que emfatitzen les regions freqüencials més sensibles de l'orella humana(d'acord amb proves experimentals realitzades i les corbes isofòniques), al voltant dels 4 kHz. A més, ATRAC utilitza un bloc en la seva codificació que permet adaptar la llargada de les finestres que utilitza, segons el senyal d'entrada. D'aquesta manera, s'assegura no malbaratar bits en codificar passatges de transició o silencis.


Aquest bloc de llargada adaptativa escull la llargada de les finestres d'acord amb les característiques del senyal. Hi ha dos modes:

  • 1. Mode curt (short mode) : Usa finestres 1.45 ms en la banda d'alta freqüència i 2.9 ms en les altres.
  • 2. Mode llarg (long mode) : Usa finestres 11.6 ms. Aquest mode normalment s'usa per proporcionar bones resolucions freqüencials.

Tanmateix, el fet d'usar finestres de llargada adaptativa no fa immune el sistema del que s'anomena pre-eco i que resulta ser un dels principals problemes en la majoria dels còdecs d'àudio. El pre-eco és fruit de transicions abruptes d'àudio, com ara el soroll d'un vas trencant-se, això crea un soroll que s'estén per totes les mostres de la finestra. Tanmateix, si la llargada de la finestra és prou petita, l'emmascarament temporal pot enfosquir el soroll afegit abans i després de la transició. Els efectes de l'eco són més preocupants abans de la transició, ja que els efectes de l'emmascarament temporal afecten molt més les zones posteriors al to que les anteriors.

Com soluciona ATRAC aquest problema?[modifica | modifica el codi]

Per prevenir el pre-eco ATRAC canvia a mode curt de finestra (short mode) quan detecta un senyal d'atac (transició abrupta). Així, només hi ha un petit segment de soroll abans de l'atac i la resta s'emmascara gràcies al post-emmascarament temporal. Tanmateix, si el canvi de finestra no es dugués a terme a causa d'un error del bloc adaptatiu i seguíssim en mode llarg l'emmascarament temporal posterior (post-emmascarament) no tindria els efectes desitjats perquè el soroll quedaria emmascarat durant un període de temps molt petit i força inferior a la llargària de la finestra.

Quantificació espectral[modifica | modifica el codi]

Per últim ATRAC emmagatzema tota la informació necessària per reconstruir el senyal d'àudio. Els valors espectrals són quantificats utilitzant dos paràmetres : llargada de paraula i factor d'escalat. El factor d'escalat defineix el rang total d'escalat de la quantificació. Mentre que, la llargada de la paraula (wordlength) defineix la precisió dins de l'escala. Cada unitat té la mateixa llargada de paraula i factor d'escalat, reflectint una similaritat psicoacústica de les freqüències agrupades. El factor d'escalat s'escull d'una llista fixa de possibilitats i reflecteix la magnitud dels coeficients espectrals de cada unitat. La llargada de paraula es determina amb l'algorisme d'assignació de bits. Per cada quadre de so (corresponent a 512 mostres del senyal d'entrada), s'emmagatzema la següent informació:

  • 1. MDCT llargada de finestra (curta o llarga).
  • 2. Llargada de paraula de cada unitat.
  • 3. Factor d'escalat de cada unitat.
  • 4. Coeficients espectrals quantificats.

Per garantir la correcta reconstrucció del senyal la informació més rellevant es guarda de forma redundant. Com també s'emmagatzema la quantitat de dades redundants.

Assignació de bits[modifica | modifica el codi]

L'algorisme d'assignació de bits divideix els bits disponibles entre les diferents unitats. Les unitats amb un alt nombre de bits, tindran menys quantificació de soroll. Per contra, aquelles amb pocs o cap bit en tindran prou.

Cal dir, que aquest algorisme ha d'assegurar que les unitats crítiques o rellevants tinguin prou bits i, alhora, que el soroll en les unitats no tant rellevants no sigui perceptualment significant. És important mencionar que ATRAC usa codificació entròpica atorgant menys bits als valors més redundants, de forma que reduirem considerablement la mida del fitxer.

Tal com podem veure al diagrama de blocs d'aquest còdec el descodificador és totalment independent de l'algorisme d'assignació de bits, cosa que permet fer evolucionar el sistema sense haver de canviar els dispositius reproductors. D'aquesta forma, Sony presentava múltiples possibilitats per a aquesta assignació que analitzarem en les noves versions que ha presentat.

ATRAC3[modifica | modifica el codi]

Aquesta nova versió segueix els mateixos principis de funcionament que l'anterior, tot introduint noves millores. D'aquesta forma, duplica la capacitat de compressió d'ATRAC sense gairebé produir pèrdues en la qualitat del so resultant (1/10 de la taxa de bits d'un CD).

Divideix el senyal en 4 parts:

  • 1. Inferior a 2.75625 kHz
  • 2. De 2.75625 a 5.5125 kHz
  • 3. De 5.5125 a 11.025 kHz
  • 4. Superior a 11.025 kHz dins de les audiofreqüències
Anàlisi del senyal d'àudio en 4 bandes

Alhora, classifica el so de forma més eficient que l'anterior versió permetent diferenciar tons purs, com ara els violins i els sons d'alt nivell de pressió sonora, de la resta del senyal. Aquest fet, és similar al comentat anteriorment on es parlava d'unitats crítiques i no crítiques.


Classificació dels sons

A més, utilitza un algorisme d'assignació que permet reduir força el nombre de bits utilitzats en la codificació reduint la mida del fitxer d'àudio (codificació entròpica). Tanmateix, cal tenir present que la informació rellevant o de més intensitat s'haurà de codificar amb més bits per tal que no es quantifiqui el soroll. És per això que a l'11, senyal de molta intensitat, li assigna 111 (més bits) i al 00 , senyal d'àudio de poc nivell o poc rellevant, se li assigna un únic bit.

Assignació de bits


Presenta dos modes: LP2 i LP4

  • 1. LP2: Aquest mode utilitza un taxa de bits de 132 kbit/s obtenint una qualitat similar al MP3 codificat al mateix bitrate.
  • 2. LP4 : Aquest mode redueix la taxa de bits a la meitat de LP2 (66 kbit/s), gràcies al fet d'utilitzar principis similars a la codificació joint stereo o un filtre pas baix al voltant dels 13,5 kHz.

Ambdues tècniques permeten minimitzar l'efecte de pre-eco amb millors resultats que en l'anterior versió.

Com soluciona ATRAC3 el problema del pre-eco?[modifica | modifica el codi]

El filtre pas baix eliminarà les transicions abruptes a partir d'una certa freqüència. Alhora, el fet de utilitzar codificacions similars al joint stereo permet sumar el canal dret i esquerra per sobre d'una certa freqüència, guardar la diferència entre els dos canals i durant la descodificació reconstruir la informació d'alta freqüència del canal dret i esquerra recombinant la informació comuna de cada canal.

D'aquesta manera, evitem quantitzar soroll i que se'ns propagui al llarg d'una finestra sencera.

Aplicacions[modifica | modifica el codi]

RealAudio 8

ATRAC3plus[modifica | modifica el codi]

Millores que presenta:

  • 1. Divideix el senyal d'àudio en 16 bandes obtenint una millor resolució i més precisió.
  • 2. Presenta més opcions de llargada de finestra dins del bloc adaptatiu, permetent usar finestres més llargues de fins a 4096 mostres.
  • 3. Presenta nous algorismes d'assignació de bits permeten millorar un dels dèficits que presentaven les antigues versions per determinats passatges musicals o de veu on la qualitat final variava depenen del tipus de senyal d'àudio.

Assignació de bits[modifica | modifica el codi]

Presenta dos regles apropiades per determinats tipus de senyals d'àudio.

Regla A:

00 → 0 | 01 → 10 | 10 → 110 | 11 → 111 |

Regla B:

00 → 0 | 01 → 110 | 10 → 111 | 11 → 10 |


Observem que la regla A és apropiada per senyals que aprofitin tot el rang dinàmic i que tinguin una probabilitat d'ocurrència alta de valors amb un alt nivell de pressió sonora elevada.

Per contra, la regla B és apropiada per senyals d'àudio amb relativament pocs valors o mostres amb un alt nivell de pressió sonora.

Amb la utilització de tots aquests aspectes aconseguim reduir la taxa de dades, bitrate, de forma considerable aconseguint factors de compressió d'aproximadament 1/20 la taxa de dades d'un CD (PCM lineal).

Aplicacions[modifica | modifica el codi]