Pre-eco
El pre-eco és un fenomen psicoacústic que es dona quan es produeix una transició d'àudio abrupta, com pot ser el so d'un vas trencant-se. Aquest eco es manifesta com un soroll coloritzat que precedeix i segueix la transició d'àudio.
Per exemple, si tenim un to fluix constant en el temps, i de cop apareix un to fort, aquest emmascara el to fluix. El to fort, tot i que pot ser molt sec, està format per diversos nivells, un nivell màxim i un nivell mínim; d'aquesta manera, conforma una corba de nivell en el temps. Aquesta corba ens serveix per veure de quin punt a quin punt, el to fort emmascara el to fluix. Llavors, tota la part de corba que va des de l'origen del so al pic més alt i pronunciat forma el pre-eco, i tot el que ve després del to màxim, és anomenat post-eco. Aquest emmascarament, es tradueix al to fluix com una distorsió, ja que tota la part que és emmascarada deixa de percebre's, de manera que es creen irregularitats que l'oïda no tolerarà. Així, aquesta distorsió es pot veure augmentada i es pot estendre en el temps a causa del fet que el pre-emmascarament temporal és molt més "fort" que el post-emmascarament. Així, aquesta distorsió es pot veure augmentada i es pot estendre en el temps a causa del fet que el pre-emmascarament temporal és molt més "fort" que el post-emmascarament.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Castanyueles.jpg/220px-Castanyueles.jpg)
Aquest efecte es pot veure molt clar en el so d'unes castanyoles(castañuelas), ja que tot i produir un so molt curt i sec, es pot sentir un petit so abans de l'esclat final. Si ho traslladem a un editor de so, com ara l'Adobe Audition o el Cool Edit, podem veure clarament un so abans del to màxim.
És un dels principals problemes que tenen els codificadors d'àudio amb pèrdues com ara MP3, AAC o Ogg Vorbis. La forma com es combat pot arribar a marcar la diferència entre uns i altres.
Per poder escoltar el so del pre-eco, s'adjunten un parell d'enllaços a pàgines web, on es pot escoltar o baixar-se un fragment d'unes castanyoles per tal veure un exemple clar. El pre-eco es pot escoltar com una mena de 'shhh', just abans de l'esclat principal:
- http://www.audiosparx.com/sa/archive/default/default/Castanets/192569
- http://www.compositiontoday.com/sound_bank/percussion/castanets.asp
- http://recursos.cnice.mec.es/bancoimagenes/sonidos/resultados.php?categoria=11&nreg=20&pag=7 Arxivat 2007-12-17 a Wayback Machine.
Pre-emmascarament
Podem dir, per tant, que el pre-eco serà el causant del pre-emmascarament: produint-se primer un estímul suau i posteriorment un to intens, aquest últim emmascararà igualment al de menor amplitud, sempre que estiguin separats en el temps per una diferència menor d'entre 5 i 10 ms. Atès que aquest fenomen es presenta encara abans que el to emmascarant aparegui, implica que sigui més problemàtic que el post-emmascarament.
L'explicació d'aquesta "anticipació", rau en el fet que la informació que arriba al còrtex auditiu del cervell humà es processa per ràfegues. Tanmateix, és sabut que els sons intensos són processats de forma més ràpida pel cervell que els sons suaus, facilitant d'aquesta manera el fenomen psicoacústic del pre-emmascarament.
Possibles solucions
El problema que sorgeix en el camp de la codificació d'àudio per culpa del pre-eco, és la quantificació del senyal per tal d'eliminar informació redundant. Al passar de la representació temporal a la freqüencial, el que fem és transformar el senyal continu en discret, representant els principals harmònics del senyal. Al fer-ho també quantificarem l'error causat pel pre-eco, de manera que al final, tindrem informació de distorsió afegida al senyal original. Com que la majoria de Codecs de compressió d'àudio, només codifiquen la informació que queda emmascarada pels tons més forts, tot l'error del pre-eco quedaria codificat, en canvi, la informació del to original que queda emmascarat no.
Per això, és molt important intentar reduir l'efecte del pre-eco, o eliminar-lo d'alguna manera. Existeixen diferents maneres de reduir o eliminar el fenomen del pre-eco, dues de les tècniques més esteses són:
- Usar filtres pas baix i eliminar les components d'alta freqüència, assegurant d'aquesta manera evitar el pre-eco. Eliminant pics d'alta freqüència, fem que el senyal original no tingui prou energia per poder provocar l'emmascarament de la resta de sons, per la qual cosa, l'efecte de pre-emmascarament no succeirà i per tant, el pre-eco tampoc es produirà. Tot i així, en eliminar els pics d'alta freqüència, s'elimina també informació útil i important per poder aconseguir la qualitat final desitjada. És per això que molts dels principals codificadors no utilitzen aquesta tècnica.
- Tot i així, es pot optar per una millora d'aquest procés, utilitzant un banc de filtres per a poder dividir el senyal en diferents bandes, de manera que es poden tractar per separat, podem seleccionar quina part del senyal conté imperfeccions com el pre-eco i així aplicar el filtre necessari per atenuar el seu efecte. Una cosa semblant és el que realitzen molts dels codificadors actuals, és l'anomenada la transformada directa del cosinus modificat(MDCT), la qual permet que, un cop dividit el senyal en bandes, es pot fer un mostreig d'aquestes mitjançant finestres de diferents longituds pel domini temporal i freqüencial. La MDC es caracteritza per la seva propietat de solapament de finestres, amb la qual cosa s'eviten els problemes originats a les fronteres de les finestres. Al solapar-se, no hi ha part de senyal sense codificar, per la qual cosa, en les parts on es detecten transicions abruptes, es pot escollir la longitud de finestra adequada per a mostrejar, de manera que es podrà codificar el pre-eco correctament reduint exponencialment el seu efecte.
- Tècniques tipus joint stereo, les quals es basen a combinar un rang de freqüències de múltiples canals de so junts, de manera que el resultat de la codificació preservi la informació d'aquest rang, no com un munt de canals separats, sinó com un sol corrent de dades homogeni. Aquest procés disminueix enormement la quantitat d'espai d'emmagatzemament necessari i, a més, és totalment irreversible. Alhora de realitzar la codificació, la tècnica de joint stereo actua segons el principi de la localització del so, és a dir, en com l'orella humana capta el so. Explotant la limitació de l'oïda, pot reduir la taxa de bit de dades del corrent, sense provocar una pèrdua significativa en la qualitat del so aparent.
Tanmateix, aquestes solucions afegeixen distorsió, però aquesta distorsió addicional és molt menys audible gràcies al post-emmascarament temporal.
Solucions d'alguns codificadors rellevants
ATRAC (Adaptive TRansform Acoustic Coding)
Algorisme de codificació d'àudio amb pèrdues desenvolupat per Sony, basat en principis psicoacústics, que ofereix diferents tasses de compressió, segons la qualitat del so. Actualment hi ha 3 versions al mercat: ATRAC1, ATRAC3 I ATRAC3plus. ATRAC1 utilitza codificació perceptual, la qual es basa en la psicoacústica i aprofita les imperfeccions de l'orella humana per evitar digitalitzar els sons que una persona no percebrà. Per fer-ho, divideix el senyal d'entrada en 3 bandes freqüencials:
- 1. Inferior a 5,5 kHz
- 2. Entre 5,5 i 11 kHz
- 3. Més d'11 kHz
Cada banda és analitzada i filtrada independentment, fent ús de la transformada directa del cosinus modificat (MDCT), la qual ens permetrà fer una superposició de finestres en domini temporal de fins a un 50%. Així, millorarem la resolució en freqüència i evitarem l'aliasing. Un mòdul o bloc en l'esquema de codificació ens permetrà escollir la longitud de les finestres per tal de poder comparar-les amb els paràmetres psicoacústics de l'orella. Dos modes a seleccionar:
- Mode curt (short mode): Finestres de 1.45 ms en la banda d'alta alta freqüència i 2.9 ms en la resta.
- Mode llarg (long mode): Finestres de 11.6 ms.
Per prevenir el pre-eco ATRAC canvia a mode curt (short mode) quan detecta un senyal d'atac (transició abrupta). Així, només hi ha un segment molt petit de soroll abans de l'atac i la resta queda dissimulat gràcies al post-emmascarament temporal.Tot i així, si el canvi de finestra no es du a terme a causa d'un error del bloc i continuéssim amb el mode llarg, l'emmascarament posterior no tindria els mateixos efectes, ja que el soroll quedaria emmascarat durant un temps molt petit i inferior a la longitud de la finestra.
ATRAC3, fa la mateixa codificació, però en comptes de dividir el senyal en 3 bandes, el divideix en 4, donant més èmfasi a les freqüències mitjanes.
MPEG-1 Audio Layer 3
Més conegut com a MP3, és una format d'àudio digital comprimit amb pèrdues desenvolupat pel Moving Picture Experts Group (MPEG) per formar part de la versió 1 (i posteriorment ampliada a la versió 2) del format de vídeo MPEG.
Aquesta capa, està implementat el banc de filtres híbrids, que fa que el seu disseny tingui una major complexitat en relació amb els seus predecessors(MPEG1 i MPEG2). Tot i així, aquesta millora de la resolució freqüencial, empitjora la resolució temporal, de manera que s'introdueixen problemes de pre-eco, els quals són predits i corregits.
El banc de filtres és conegut com a banc de filtres híbrids polifase/MDCT, de manera que utilitza un sistema semblant al de ATRAC per eliminat el pre-eco. El banc s'encarrega de fer el mapeig del domini temporal al domini freqüencial, tant en el codificador com en el de-codificador. Les mostres de sortida del banc són quantitzades i proporcionen una resolució en freqüència variable, 6x32 o 18x32 subbandes, ajustant-se molt millor a les bandes crítiques de les diferents freqüències. Fent servir 18 punts, el nombre màxim de components freqüencials és de: 32x18=576 de manera que la resolució freqüencial serà de: 24000/576=41,67 Hz (si fs=48 kHz). Si s'usen 6 línies de freqüència la resolució freqüencial és menor, però la temporal és major, i s'aplica en aquelles zones en les que s'espera efectes de pre-eco.
Ogg Vorbis
Vorbis és un còdec d'àudio lliure de compressió amb pèrdues. Forma part del projecte Ogg i s'anomena Ogg Vorbis.
Còdec perceptiu general, amb l'objectiu de permetre la màxima flexibilitat del codificador, de manera que aquest pugui generar una àmplia gamma de bitrates(taxa de bits). En l'escala de nivell qualitat/bitrate, és igual que MPEG-2 i comparable amb AAC en la majoria de bitrates. Pot codificar nivells de qualitat des de CD àudio(44.1 kbps) i DAT-rate estèreo, fins a 48 kbps sense baixar la freqüència de mostreig, tot i que Vorbis també pot treballar a baixes freqüències de mostreig des de la telefònica(8kHz) fins a alta definició (192 kHz).
Igualment que en els altres dos codificadors, Vorbis també es basa en la transformada directa del cosinus modificat (MDCT), d'aquesta manera pot passar les dades del domini temporal al freqüencial. Les dades resultants, són partides en soroll i residus de components i aquestes són quantitzades i codificades de manera entròpica fent servir un algorisme basat en un vector de quantització. La codificació per entropia és un esquema de compressió de dades sense pèrdues que és independent de les característiques específiques dels mitjans de comunicació. L'algorisme de vector de quantització ens servirà per quantitzar les dades seguint un model de densitat de probabilitat. Al fer la descodificació aquestes etapes són invertides.
D'aquesta manera, segons el bitrate que tingui, Vorbis codificarà d'una manera o altra les dades d'entrada, és a dir, si el bitrate és massa baix no caldrà codificar les dades, sinó que es farà la codificació entròpica i així no hi haurà pèrdues. Per tant, pel tractament donat a les dades, juntament amb la divisió del soroll, la codificació Vorbis dona un so molt característic, el qual molta gent prefereix abans que el so metàl·lic del format MP3.
El principal problema de Vorbis és doncs, el pre-eco, ja que en bitrates baixos no quedarà eliminat. El que fan la majoria de versions de Ogg Vorbis és intentar que el problema quedi resolt augmentant la qualitat del so en les zones de configuració de menys qualitat. D'aquesta manera, s'aconsegueix que la part on resideix el pre-eco quedi codificada de manera entròpica i així no hi haurà pèrdues.
MPEG-2 AAC
MPEG-2 AAC proporciona la qualitat més alta per als usos on MPEG-1 no pot donar total compatibilitat. Mentre que MPEG-2 BC proporciona una bona qualitat d'àudio per taxes de bit de 640-896 kbps per cinc canals de banda total, MPEG-2 AAC proporciona una qualitat molt bona en menys de la mitat de la taxa de bits. El diagrama de bloques d'un codificador AAC el podem veure en l'esquema que ve adjuntat. El primer que veiem és el control de guany, el qual divideix el senyal d'entrada en quatre bandes de freqüències igualment espaiades. Llavors es codifiquen flexiblement per tal de poder representar una gran varietat de taxes de mostreig. És en aquest pas on el codificador de tipus AAC actuarà per poder eliminar o atenuar l'efecte del pre-eco.
Fent ús del CMFB (Cosine Modulated Filter Bank), el codificador MPEG-2 AAC és capaç de seleccionar diferents longitud de finestres per tal que quan es faci el mostreig del senyal d'entrada, es pugui seleccionar una finestra suficientment petita com per poder detectar el fenomen del pre-eco(entre 1 i 4ms), ja que d'aquesta manera, el pre-eco quedarà emmascarat pel mateix efecte de pre-emmascarament que produeix l'orella humana.
Aquest sistema també l'usen altres codificadors, com ara MPEG capa 3, la codificació Dolby de AC-3 i de MPEG-4 T/F.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/EsquemaMPEG-2ACC_copy.jpg/220px-EsquemaMPEG-2ACC_copy.jpg)