Tehnologii de Compresie Audio Mpeg

Capitolul I

Transformarea sunetului analog în valori discrete și prezentarea principalelor metode de codare audio

1.1 Prezentarea sunetului analog și a celui digital

Compresia este procesul prin care se urmărește codificarea datelor cu scopul de a prezerva cât mai mult spațiu de stocare, dar și pentru a îmbunătății viteza de transmitere a acestora prin intermediul rețelelor.

Deși datele sunt deja codificate digital pentru procesarea computerizată, ele pot fi codificate mult mai eficient folosind mai puțini biți, însă mai întâi trebuie subliniată diferența dintre un program de compresie și un arhivator.

Un arhivator lucrează cu mai multe fișiere pe care le compreseaza și în final produce un singur fișier numit arhivă; exemple de arhivatori sunt zip, rar, arj. Un program de compresie creează câte o arhivă pentru fiecare fișier care este compresat, exemple din aceste programe fiind compress, freeze, gzip, yabba. Când se compresează mai multe fișiere similare, este de preferat ca fișierele să fie grupate într-o arhivă și apoi să fie compresate, deoarece majoritatea algoritmilor de compresie își construiesc tabele de codare bazate pe datele introduse curent, după care aplică aceleași tabele datelor ulterioare. Datorită acestei tehnici, datele sunt compresate mult mai eficient.

Arhiva reprezintă, de regulă, unul sau mai multe fișiere separate, împreună cu informațiile care permit dezarhivarea de către un program special. Arhivele sunt create de obicei pentru distribuție software sau pentru înmagazinarea datelor.

Pentru a micșora mărimea fișierelor care conțin muzică se poate folosi un compresor de date în genul compresoarelor clasice rar, zip, arj, însă rezultatele vor fi mai mult decât nesatisfăcătoare deoarece acestea au fost concepute pentru informații de tip text în marea lor majoritate. Aceste compresoare tratează datele în așa fel încât la decompresare structura acestora să fie identică cu cea de dinaintea compresiei. De aceea, pentru compresia semnalului audio este nevoie de un algoritm avansat care să știe ce părți ale sunetului nu sunt auzite de urechea umană și sunt practic redundante. Astfel, acest algoritm trebuie să recunoască părțile importante ale semnalului audio și să le deosebească de cele mai puțin importante.

Principalul deziderat al compresiei audio rămâne identificarea frecvențelor componenete ale sunetului, pentru ca cele inaudibile să fie mult mai ușor recunoscute și eliminate din spectrul auditiv.

După cum se știe, sunetul este reprezentat de undele sonore din mediul înconjurător care se deplasează și, atingând o anumită suprafață, o fac să vibreze. Această suprafață poate fi timpanul uman, un microfon sau chiar o membrană (învelișul de pe o tobă).

În momentul în care aerul atinge membrana, acesta nu o face doar o dată, ci de foarte multe ori, într-un interval de timp extrem de scurt. Dacă aerul lovește timpanul la o rată constantă, urechea umană percepe un ton constant. Cu cât aerul lovește mai repede timpanul, cu atât tonul este mai înalt, având o frecvență de câteva mii de bătăi pe secundă; dacă aerul lovește timpanul foarte lent, tonul va fi mai jos, ca un sunet bass, cu o frecvență de aproximativ 50 de ori pe secundă. De asemenea, cu cât aerul lovește mai puternic membrana, sunetul rezultat este mai puternic și se aude mai tare.

În fizică acest fenomen de atingere a membranei care vibrează are o unitate de măsură numită Herz, prescurtat Hz, care măsoară practic numărul de atingeri pe secundă și kiloherzi, prescurtat kHz, care măsoară de câte mii de ori undele ating timpanul.

Sistemul auditiv uman împarte domeniul de frecvențe din mediul înconjurător în 25 de benzi de frecvență, denumite benzi critice, acestea nefiind însă împărțite egal. În momentul în care auzim un sunet, creierul nostru, pe baza informațiilor primite de la sistemul auditiv, maschează anumite frecvențe pe care nu le putem auzi. Acesta surpinde un sound window (clișeu de sunet) care este de aproximativ 1/100 dintr-o secundă și apoi analizează frecvențele din acest clișeu. Bazat pe puterea componentelor de frecvență, creierul decide automat ce sunete sunt mascate, după care asignează prioritățile componentelor de sunet, respectiv cele mai puternice primind o atenție mai mare și automat având alocate mai mulți biți pentru reprezentare.

În continuare este prezentat procedeul prin care sunetul este captat cu un microfon, instrument oarecum asemănător timpanului uman.

Microfonul este compus dintr-o diafragmă subțire care acționează întocmai ca timpanul. În timp ce este înregistrat un sunet, această diafragmă este împinsă de către undele de aer. Cu cât această diafragmă interacționează mai mult cu vibrațiile aerului, acesta transmite mai multe modulații electrice către instrumentul de înregistrare folosit. Dar dacă intrumentul este un computer ? Computerele utilizează în calculele interne doar numere discrete, cunoscute sub numele de informații digitale, dar calculul modulațiilor microfonului este informație de tip analog.

Deoarece este imposibil pentru noi să înregistrăm un semnal audio compus din șiruri de 0 și 1, computerul utilizează un instrument numit ADC (Analog to Digital Converter). Acest instrument nu încearcă să înregistreze cât mai fidel semnalul, ci verifică de câte ori diafragma microfonului este deformată de aer într-un interval de o secundă.

Intervalul de timp la care este verificată diafragma se numește sampling rate (rată de eșantionare). Dacă diafragma este 100% deformată, i se atribuie numărul 64.000, dacă nu este deloc deformată are 0. Pentru o deformare intermediară, aceasta primește un număr cuprins în intervalul 0-64.000, în funcție de cât de tare este acea deformare. Aceste valori poartă numele de samples (eșantioane).

Teorema lui Nyquist spune că, atâta timp cât rata de eșantionare este dublul frecvenței celui mai înalt ton pe care îl auzim, putem reproduce cu acuratețe acel sunet. Deoarece oamenii nu percep sunetele mai înalte de 22 kHz, frecvența de 44.100 Hz (standardul pentru înregistrari CD) este suficientă.

Această frecvență de 44.100 Hz reprezintă faptul că deformării membranei microfonului îi corespunde un număr între 0-65.536, folosind șaisprezece de unu sau de zero (biți) pentru fiecare eșantion în parte. În acest fel se poate spune că pistele pentru CD au o rezoluție de eșantionare de 16 biți.

Toate aceste date ocupă un spațiu de stocare foarte mare. Dacă eșantionăm canalul stâng și cel drept pentru un sunet stereo cu o frecvență de eșantionare de 44.1 kHz, folosind 16 biți pentru fiecare eșantion, ar însemna 1.4 milioane de biți pentru fiecare secundă de muzică. Pentru a transmite aceste informații prin intermediul Internetului cu un modem de 28.8 bps, ar trebui 50 de secunde de timp real pentru o secundă de informație muzicală. De aceea, scopul declarat al cercetătorilor în domeniul informației audio este micșorarea numărului de biți necesari transmiterii acestor informații.

Datorită proprietăților tonale ale sunetului, în cazul unei înregistrări se pot micșora foarte mult datele descriptive prin înregistrarea înălțimii sunetului (nota) și durata acestei note. În acest fel sunt înlocuite foarte multe numere cu doar două numere descriptive. Dacă aceste tonalități nu se pot schimba foarte repede, frecvențele se schimbă mult mai des. Un alt deziderat al compresiei audio este identificarea frecvențelor componenete ale sunetului, pentru ca cele inaudibile să fie mult mai ușor recunoscute și eliminate.

Puterea sunetului este exprimată în beli, după numele celui care a inventat telefonul, Alexander Graham Bell. Dacă un sunet este de zece ori mai puternic decât un altul, se spune că este mai puternic cu un bel. Dacă este de o sută de ori mai puternic, are doi beli față de sunetul cu care a fost comparat. Practic, un bel corespunde numărului de zerouri de după prima cifră. În mod tradițional, se folosește ca etalon decibelul (dB), care înseamnă zece beli. Urechea umană poate suporta până la 12 dB față de cel mai încet sunet pe care îl percepem.

Matematicianul Joseph Fourier a inventat în secolul 19 o metodă de descriere a sunetului foarte eficientă, numită DFT (Discrete Fourier Transform). Aceasta avea rolul de a transforma o secvență de eșantioane reprezentând datele semnalului transmise de microfon în numere discrete. Astfel, sunetul nu mai este reprezentat ca o sinusoidă, ci într-un mod mult mai descriptiv: “este prezent în semnal o notă Mi minor foarte puternică, după care urmează un Sol major mai încet etc.” Acest grup de eșantioane care este analizat de DFT se numește input window.

Această metodă are însă avantaje și dezavantaje. Dacă avem un input window lung, putem recunoaște cu precizie ce note muzicale au fost cântate și cât de tare fiecare dintre ele; dacă avem un input window prea scurt, computerul nu poate distinge fiecare sunet cu o acuratețe prea mare. În acest caz se spune că avem o rezoluție de frecvență nesatisfăcătoare.

Pe de altă parte, dacă luăm un input window scurt, prin metoda de apropiere putem determina foarte exact momentul în care o anumită notă a început sau s-a terminat. Dacă avem input window prea mare, nu vom putea determina foarte exact momentul în care apare acea notă, ci doar cât de puternic a fost emisă. În acest caz se spune că avem o rezoluție temporală slabă.

Rezoluția de frecvență și rezoluția temporală sunt două fenomene opuse: cu cât vrem mai mult să aflăm ce notă a fost auzită, cu atât mai puține informații avem despre momentul apariției acelei note și invers. De aceea, în cazul DFT prioritară rămâne găsirea unui echilibru între acestea.

Un exemplu real este reprezentat de codecul Microsoft Audio 4, care folosește ferestre de input foarte lungi. Sunetul rezultat este foarte clar și luminos, dar în cazul instrumentelor care emit note scurte (instrumente de percuție) acestea sună nesatisfăcător. Acest tip de sunete sunt denumite transients (trecătoare).

În anul 1965, programatorii J. Turkey și J. Cooley au inventat o nouă metodă pentru transformările Fourier mult mai rapidă. Acest algoritm se numește FFT (Fast Fourier Transform).

1.2 Metode de codare audio obsolete

În cazul compresiei audio, algoritmii de compresie se împart în două mari clase: lossy algorithms (algoritmi cu pierderi) și lossless algorithms (algoritmi fără pierderi). În cazul utilizării algoritmilor lossy, se reduce cantitatea de date introduse și nu doar numărul de biți folosiți la reprezentarea informației; informația pierdută este, de regulă, mai puțin importantă pentru calitatea datelor (audio sau video) și poate fi recuperată rezonabil prin interpolare. Exemple ale acestei tehnici sunt MPEG și JPEG.

Algoritmul de compresie lossless păstrează datele intacte, permițând recuperarea lor integrală cu ajutorul decompresiei. Compresoarele UNIX și GNU zip utilizează tehnica de compresie lossless.

Algoritmii lossless nu funcționează bine în cazul compresiei audio, de aceea au fost folosiți, ca și în cazul compresiei video, algoritmi lossy. Majoritatea algoritmilor de compresie folosiți la început au avut rate de compresie modeste, printre acestea numărându-se silence compression, LPC (Linear Predictive Coding), CELP (Code Excited Linear Predictor ).

Cel mai simplu mod de reprezentare a semnalului audio este metoda PCM (Pulse Code Modulation) care este folosit la CD-uri audio, înregistrări DAT etc.Această metodă nu compresează deloc semnalul, scopul ei fiind să reprezinte cât mai fidel acest semnal folosind frecvențe de eșantionare și rezoluții de biți cât mai înalte, atât pentru fidelitatea sunetului cât și pentru descrierea amplitudinii. Metoda PCM poate utiliza diverse combinații ale frecvențelor de eșnationare și de rezoluții de biți, însă cea mai des întâlnită este cea de 44.1 kHz cu o rezoluție de 16 biți. Combinația cu 48 kHz și 16 biți este utilizată pentru DAT (Digital Audio Tape), în vreme ce combinația cu 32 kHz și 16 biți este foarte des întâlnită în aplicațiile gen traehnici sunt MPEG și JPEG.

Algoritmul de compresie lossless păstrează datele intacte, permițând recuperarea lor integrală cu ajutorul decompresiei. Compresoarele UNIX și GNU zip utilizează tehnica de compresie lossless.

Algoritmii lossless nu funcționează bine în cazul compresiei audio, de aceea au fost folosiți, ca și în cazul compresiei video, algoritmi lossy. Majoritatea algoritmilor de compresie folosiți la început au avut rate de compresie modeste, printre acestea numărându-se silence compression, LPC (Linear Predictive Coding), CELP (Code Excited Linear Predictor ).

Cel mai simplu mod de reprezentare a semnalului audio este metoda PCM (Pulse Code Modulation) care este folosit la CD-uri audio, înregistrări DAT etc.Această metodă nu compresează deloc semnalul, scopul ei fiind să reprezinte cât mai fidel acest semnal folosind frecvențe de eșantionare și rezoluții de biți cât mai înalte, atât pentru fidelitatea sunetului cât și pentru descrierea amplitudinii. Metoda PCM poate utiliza diverse combinații ale frecvențelor de eșnationare și de rezoluții de biți, însă cea mai des întâlnită este cea de 44.1 kHz cu o rezoluție de 16 biți. Combinația cu 48 kHz și 16 biți este utilizată pentru DAT (Digital Audio Tape), în vreme ce combinația cu 32 kHz și 16 biți este foarte des întâlnită în aplicațiile gen transmisie. Fișierele PCM cu extensia .WAV ocupă loc foarte mult pe mediile de stocare, atât din cauza lipsei unui algoritm de compresie valabil, cât și a redundanței de date din interiorul standardului, acesta fiind deschis pentru eventuale adăugări. Singura metodă de compresie existentă pentru PCM este următoarea: fiecare eșantion al semnalului este analizat și comparat cu cel de dinainte, după care este stocată doar valoarea cea nouă (ex: avem un șir 001; este analizat primul eșantion 0, se compară cu următorul care este tot 0 și apoi se compară cu 1, valoare care este stocată deoarece diferă de valoarea 0). Această metodă de reprezentare a sunetului a fost inventată în anul 1937 de către A.H. Reeves. Spre deosebire de această metodă, DPCM (Differential Pulse Code Modulation) înregistrează diferența dintre cele două valori.

O metodă mai avansată, bazată pe PCM, este non-linear PCM; avantajul acestei metode este că reduce numărul de biți folosiți. Algoritmul cel mai des folosit în cazul acestei metode este mu-law encoding (denumită astfel după curba perceptuală a i auditoriului). Algoritmul este similar lui PCM, dar lucrează pe o scală algoritmică, efectul rezultat fiind un zgomot de fond proporțional cu puterea semnalului inițial. Formatul audio au. dezvoltat de compania Sun este exemplul cel mai popular al algoritmului mu-law encoding. Folosind algoritmul mu-law encoding pe 8 biți, se va reduce rata de biți până la aproximativ 350 kilobiți /secundă, dar calitatea sunetului va fi apropiată de cea a semnalului original.

Algoritmul silence compresion detectează porțiunile nule din semnal și compresează fișierul audio similar cu algoritnul run – length encoding.

Algoritmul ADPCM, folosit la CD-I, codifică diferența dintre două semnale consecutive și folosește un multiplicator, astfel încât având o valoare mai mică a acestui multiplicator, sunt folosiți mai puțini biți. Acest algoritm compreseaza la vitezele de 16 sau 32 Kilobiți/ secundă și nu necesită o putere de calcul foarte mare.

Algoritmul LPC compară semnalul cu un model de voce (speech model) și apoi transmite parametrii noului model, semnalul rezultat seamănând cu vocea de robot.. Acest algoritm compresează la 2.4 Kilobiți/ secundă.

Algoritmul CELP funcționează exact ca si LPC, dar transmite și factorul de eroare; acest algoritm este potrivit pentru audio conferencing și compresează la 4.8 Kilobiți/ secundă.

1.3. Algoritmi de compresie audio bazați pe metoda FDC

Algoritmii de compresie avansați se numesc frequency domain coders (encodere bazate pe domenii de frecvențe). Din clasa acestor algoritmi de codare pe domenii de frecvență fac parte SBC ( subband coding) , ATC (adaptive transform coding) și HC (hybrid coding). În cazul acestor algoritmi, caracteristicile spectrale ale semnalului sursă și proprietățile de mascare ale urechii umane (masking properties) sunt exploatate pentru a reduce rata de transmitere a datelor. Algoritmii oferă o metodă directă pentru modelarea sunetului și suprimarea componentelor frecvențiale ce nu trebuie transmise. Astfel, spectrul sursei de sunet este împărțit în benzi de frecvență; fiecare componentă de frecvență este cuantizată separat, în timp ce zgomotul de cuantificare asociat fiecărei benzi de frecvență este conținut în interiorul benzii respective.

Numărul de biți necesari la codarea fiecărei componente de frecvență variază, componentele considerate subiectiv ca fiind mai importante sunt cuantificate mult mai atent, acestora fiindu-le alocați mai mulți biți. De aceea, o alocare dinamică la nivel de bit controlată de un înveliș spectral al semnalului-sursă este necesară, împreună cu informația de alocare a biților care trebuie transmisă decodorului ca o informație suplimentară.

Un fenomen important în codarea pe domenii de frecvență este apariția pre-ecourilor (pre-echoes). Acestea pot fi evitate prin utilizarea de blocuri de semnal cât mai scurte.

Algoritmul SBC (subband coding) este o metodă generală foarte puternică de compresie a semnalului audio într-un mod cât mai eficient. Spre deosebire de alți algoritmi, cum ar fi LPC, care compresează numai semnal de tip voce, SBC poate compresa orice tip de semnal, provenit din orice sursă, fiind ideal pentru înregistrări audio de muzică, coloane sonore ale filmelor etc. Cele mai cunoscute compresoare bazate pe SBC sunt MPEG Audio și PASC (Precision Adaptive Subband Coding), folosit în DDC.

SBC se bazează pe un fenomen specific sistemului auditiv uman numit mascare (masking).Urechea umană este sensibilă la o arie extinsă de frecvențe, însă atunci când un semnal foarte puternic este prezent pe o anumită frecvență, urechea nu mai poate distinge semnalele mai slabe aflate pe frecvențe apropiate. In aceste situații se spune că frecvența cu amplitudine mai mare maschează frecvența cu amplitudinea mai mică, iar frecvența cu amplitudinea mai mare se numește masker.

Fenomenul de mascare este de mai multe feluri: mascare tonală, mascare de zgomot și mascare temporală.

În cazul mascării tonale, există următoarea teoremă: cu cât sunetele din semnal sunt mai depărtate din punct de vedere tonal (reprezentarea lor în gama muzicală să fie cât mai depărtată), cu atât ele se maschează reciproc mai puțin. Cu cât un ton este mai puternic, cu atât mai mult el va masca frecvențele apropiate lui. În cazul mascării de zgomot, se cunoaște deja faptul că zgomotul de fond are capacitatea de a masca mult mai tare frecvențele alăturate decât un zgomot normal cu aceeași intensitate.

În cazul mascării temporale, aceste efecte apar înainte sau după apariția unui sunet puternic. Astfel, dacă un sunet este mascat după această apariție, fenomenul se numește post-masking; dacă el este mascat înainte, se numește pre-masking.

Ideea de bază în cazul acestui procedeu este economisirea lățimii de bandă destinată transmiterii semnalului prin renunțarea la informațiile privitoare la frecvențele mascate, neesențiale. Semnalul rezultat nu va fi identic cu cel original, dar dacă computarea este făcută corect, urechea umană nu poate percepe diferențele. În continuare sunt prezentate schemele de codare și decodare ale algoritmului SBC.

Majoritatea metodelor de codare bazate pe SBC folosesc o structură asemănătoare acesteia. Mai întâi, are loc aplicarea frecvență/ timp (FFT), procedeu în urma căruia are loc transformarea semnalului în valori discrete. Modelul psihoacustic analizează subbenzile precum și semnalul inițial și determină nivelele de masking folosind informația psihoacustică. Folosind aceste nivele de submasking, fiecare porțiune de semnal împărțit pe aceste subbenzi este cuantizată și apoi codată pentru a menține sunetul obținut după cuantizare sub limita de masking. Pasul final este asamblarea acestor porțiuni de semnal în secvențe de semnal, pe care decodorul le poate interpreta fără probleme.

Decodarea semnalului este mult mai simplă, deoarece nu este nevoie de un model psihoacustic. Pașii decodării sunt următorii:

secvențele de semnal sunt desfăcute;

porțiunile de semnal sunt decodate;

ansamblul de filtre reconstruiește, cu ajutorul informațiilor, semnalul inițial;

Aceasta este o schemă simplificată de funcționare a metodei SBC, în care nu au fost prezentate procedeele de computare, necesare în codarea real-time a unui semnal audio.

Procedeul transform coding (codare prin transformare) este relativ mai dificil; pașii acestei metode fiind următorii:

un grup de porțiuni din semnal este transformat liniar printr-o modificare discretă într-un set de coeficienți de transformare;

acești coeficienți sunt cuantizați și apoi transmiși într-o formă digitală către decodor;

în interiorul decodorului are loc o transformare inversă care transpune semnalul în domeniul temporal;

Aceste transformări discrete sunt de tip Fourier sau transformări discrete de cosinus; ele pot fi privite ca ansamblele de filtre de la codarea SBC.

Procedeul transform coding câștigă signifiant în performanță dacă se crește numărului de biți destinați fiecărui cuantizator al coeficienților de transformare, adaptându-se spectrului short-term.

Exemple ale acestei metode se regăsesc în algoritmii destinați codării de tip Dolby-AC 2 și codării perceptuale udio PAC, dezvoltată de AT&T.

O altă metodă de codare este procedeul hybrid coding (subband/transform coding). Această metodă combină subband coding cu transform coding, astfel obținându-se diferite rezoluții de frecvență într-un mod cât mai flexibil, cu ajutorul unei cascade de filtre și o transformare liniară (hybrid filterbank). După ce semnalul a fost împărțit pe frecvențe de către ansamblul de filtre, trnsformarea discretă reîmparte fiecare subbandă rezultată în mai multe frecvențe pentru a obține o rezoluție de frecvențe maximă.

Un exemplu ale acestei metode este ATRAC. În anii ’90, Sony a decis că este nevoie de un sistem audio digital pentru înregistrări, dar care să fie portabil. Rezultatul a fost sistemul MiniDisc în anul 1992, care folosea algoritmul ATRAC (Adaptive Transform Acoustic Coding), care opera exclusiv pe 16 biți, la o frecvență de eșantionare de 44.1 kHz, cu o rată de compresie de 1:5. Algoritmul este următorul: sunetul este divizat în trei benzi de frecvență, între 0-5.5125 kHz, 5.5125 kHz-11.025 kHz și 11.025 kHz-22.05 kHz. După aceea, acestea sunt transformate în domenii de frecvențe, folosind MDCT. Ca și în cazul algoritmului MPEG Layer 3, ATRAC folosește lungimea de bloc customizabilă pentru eliminarea pre-ecourilor din semnale tranziente. Un bloc lung are mărimea de 11.6 ms și unul scurt de 1.45 ms sau 2.9 ms, acest lucru depinzând de banda de frecvență. Banda de frecvențe înalte folosește blocuri de 1.45 ms, în timp ce benzile de frecvențe joase pe cele de 2.9 ms. Spre deosebire de algoritmul lui MPEG Layer 3, mărimea blocurilor poate fi selectată independent pentru fiecare bandă. După aplicarea MDCT, valorile spectrale produse sunt cuantificate și salvate pentru procesul de alocare la nivel de bit. Un algoritm destul de nou din clasa algoritmilor de codare pe domenii de frecvență este codarea semnalelor audio multicanal (multichannel audio signals). Acesta exploatează la maxim redundanțele și porțiunile irelevante din semnal pentru a reduce în ansamblu rata de biți utilizați. În cadrul acestor redundanțe apar dependențele intercanal (interchannel dependencies), efectele de masking intercanal (interchannel masking effects), precum și componentele stereo irelevante ale semnalului multicanal, care nu contribuie la localizarea surselor sunetului, ce pot fi identificate și reproduse într-un format monofonic. Exemple ale aplicațiilor acestei metode sunt MPEG-2 Multichannel Coding și Dolby AC-3 Coding, algoritm introdus de Dolby în anul 1990 și care a moștenit multe caracteristici din predecesorul sau apărut în 1989, Dolby AC-2. Sistemele Dolby sunt foarte des întălnite în cinematografe, dar a fost adoptat și de HDTV și este folosit mai nou și în cazul DVD.

În viitor, se preconizează dezvoltarea tehnicilor de compresie bazate pe percepția binaurală, reprezentare îmbunătățită multicanal, folosindu-se corelațiile intercanal și efectele de masking intercanal, reprezentarea tri-dimensională a imaginilor acustice etc.

Capitolul II

Descrierea algoritmului de compresie audio MPEG

Standardul audio MPEG

În anul 1988 a fost înființată organizația “Motion Picture Experts Group”- MPEG, organizație afiliată cu drepturi depline la ISO (Organization For Standardization) și la IEC (International Electrotechnical Commission).

Scopul înființării acestei organizații este de a stabili standardele privitoare la compresia digitală video și audio, urmărindu-se atingerea unei fidelități cât mai mari.

Datorită abundenței de metode ineficiente de codare existente pe piață în anii ’90 , se impunea existența unei comisii de monitorizare a acestor standarde calitative. Deși la momentul înființării MPEG nu avea foarte mulți specialiști în domeniul audiovizual, numărul lor atinge astăzi aproximativ 500 de persoane.

Standardele acuale MPEG sunt rezultatele multor ani de cercetare și muncă asiduă, ele fiind recunoscute pe plan mondial în anul 1992, când MPEG a devenit oficial etalonul pentru metodele de compresie video și audio dezvoltate ulterior.

Deși standardele de compresie digitală elaborate de MPEG se potrivesc perfect aplicațiilor audio, ele sunt doar a treia parte dintr-un sistem de standarde de compresie, celelalte componente fiind standardele compresiei video și standardele compresiei sistemelor.

Standardul MPEG este oarecum rigid, însă numai acolo unde nu este necesară existența interoperativității. Standardul manipulează bitstream-ul codat, definește pașii procesului de decodare și asigură testele de compatibilitate pentru a se atinge acuratețea impusă decodorului.

Aceste teste de standard garantează, indiferent de originea decodorului, că orice decodor audio care se încadrează în standardele MPEG este apt de a decoda orice bitstream audio MPEG, cu rezultate previzibile.

După impunerea la nivel mondial a standardului MPEG a fost permisă omologarea metodelor de codare perfect compatibile MPEG. Astfel, MPEG definește sintaxa pentru bitrate-ul cât mai mic audio și video, precum și comportarea decodoarelor compatibile, dar și diferite metode pentru codare-sincronizare audio/video în bitstream comun, descrieri de metode de testare a bitstream-urilor și a coderelor.

Cu toate că algoritmul de compresie audio MPEG este de tip lossy, de multe ori acesta poate procesa semnalul audio într-un mod “transparent”, fără pierderi perceptuale, atingând rate de compresie de până la 6:1. Specificul acestui algoritm este că se bazează pe exploatarea proprietăților perceptuale ale sistemului auditiv uman, deci fără a face presupuneri asupra sursei semnalului audio. De aceea, o mare parte a compresiei rezultă din înlăturarea părților perceptual irelevante din conținutul semnalului audio. Înlăturarea acestor părți din semnal duce la apariția unor distorsiuni imperceptibile de către sistemul auditiv uman, deci algoritmul MPEG poate coda orice semnal audibil de către urechea umană.

Algoritmul de compresie audio MPEG este primul standard internațional pentru compresia digitală de înaltă calitate a semnalului audio. Alți algoritmi de compresie audio se adresează aplicațiilor ce prelucrează semnal speech-only (semnal reprezentat doar de voce) și care ating performanțe de compresie cu o fidelitate medie. Exemple dintre acești algoritmi sunt CELP (Code Excited Liniar Prediction), mu-law sau ADPCM (Adaptive Differential Pulse Code Modulation).

2.1.1. Descrierea modurilor de compresie audio MPEG

Algoritmul audio MPEG permite alegerea de către utilizator a modurilor de compresie, printre care se numără sampling rate-ul (rata de eșantionare), numărul de canale audio, bitrate-ul, layerele (nivelele de compresie) etc.

Astfel, la nivelul algoritmului de compresie audio MPEG există următoarele facilități:

sampling rate-ul poate fi de 32, 44.1 sau 48 kHz;

bitstream-ul compresat suportă unul sau două canale audio în următoarele patru moduri posibile:

un mod monofonic pentru un singur canal audio

un mod dual-monofonic pentru două canale audio independente (acest mod este identic din punct de vedere funcțional cu modul stereo)

un mod stereo pentru canale stereo, cu o utilizare în comun a biților de către ambele canale, dar fără codare stereo comună (joint stereo)

un mod de codare stereo comună, care profită fie de avantajele corelației dintre canalele stereo, fie de irelevanțele diferențelor de fază dintre canale, fie de ambele.

șirul de biți compresat poate avea una sau mai multe rate de biți predefinite, variind între 32 și 224 kbiți/sec pe fiecare canal audio; în funcție de rata de eșantionare audio, pot exista factori de compresie variind între 2.7 și 24. Pe lângă acestea, standardul furnizează un mod liber de stabilire a bitrate-ului;

standardul audio MPEG oferă trei nivele (layers) de compresie; acest lucru permite diferite compromisuri între complexitatea codecului și calitatea semnalului audio compresat:

layer I este cel mai simplu și este recomandat pentru bitrate-uri mai mari de 128 kbiți/sec pentru fiecare canal audio; un bun exemplu este DCC (Phillips Digital Compact Cassette) care folosește compresia layer I la o rată de 192 kbiți/sec pentru fiecare canal audio

layer II are o complexitate intermediară și se adresează aplicațiilor cu bitrate de aproximativ 128 kbiți/sec pentru fiecare canal audio; între aplicațiile care utilizează acest layer sunt DAB (Digital Audio Broadcasting), aplicații ce stochează secvențe audio/video sincronizate pe CD-ROM, precum și extensii full-motion pentru Interactive-CD, Video-CD

layer III este cel mai complex, dar oferă cea mai bună calitate audio, în special pentru bitrate-uri de 64 kbiți/sec pentru fiecare canal audio; acest layer este cel mai potrivit pentru transmisii audio pe ISDN.

Toate cele trei layere sunt destul de simple pentru a permite implementarea unor cipuri de decodare real-time.

bitstream-ul prelucrat suportă un cod opțional de detecție a erorii CRC (Cyclic Redundancy Check);

standardul audio MPEG pune la dispoziția utilizatorului un set de metode pentru includerea datelor ajutătoare în conținutul bitstream-ului.

Alături de aceste opțiuni, standardul audio MPEG facilitează accesul aleator, derulare rapidă, precum și opțiune de auto-reverse aplicabile semnalului rezultat.

Cheia compresiei audio MPEG este cuantificarea; deși acest procedeu face parte din seria algoritmilor de tip lossy (cu pierderi), se poate obține o compresie “transparentă”, de tip perceptually lossless (fără pierderi perceptibile). Comisia audio MPEG a rulat extensiv teste audio în perioada elaborării standardului; testele au arătat că, în cazul unei rate de compresie de 6:1 (semnal stereo, eșantioane de 16 biți, eșantionare pe 64 kbiți/sec comprimată la 256 kbiți/sec) experții care au participat la teste nu au făcut o distincție de importanță statistică între semnalul original și cel compresat.

În figura 3 este prezentată o schemă generală a unui codor audio MPEG. Semnalul audio inițial trece printr-o FFT, apoi semnalul trece simultan printr-un model psihoacustic care determină rata de energie a semnalului înscris în limita de mascare pe fiecare subbandă de frecvență.

Ansamblul de cuantificare a biților sau a zgomotului folosește ratele zgomot/mascare pentru a determina distribuirea numărului total de biți ce vor fi folosiți la cuantificarea semnalelor împărțite pe subbenzi cu scopul de a minimiza nivelul zgomotului de cuantificare (zgomot de fond). Apoi, ultimul sistem al codorului analizează reprezentarea eșantioanelor cuantificate pe fiecare subbandă de frecvență și formatează datele și informațiile adunate într-un bitstream codat. Simultan, datele auxiliare opționale pot fi inserate în interiorul acestui bitstream codat.

În figura 4 este prezentat principiul de decodare audio MPEG: decodorul descifrează bitstream-ul, restaurează valorile cuantificate pe subbenzi de frecvență și reconstruiește semnalul audio din valorile acestor subbenzi.

Descrierea sistemului filtrelor de polifază

Sistemul filtrelor de polifază este elementul-cheie comun tuturor layerelor de compresie audio MPEG. Acest sistem de filtre divide semnalul audio în 32 de subbenzi de frecvență, lățimea de bandă fiind egală pentru toate. Acest ansamblu de filtre este relativ simplu și furnizează o bună rezoluție a timpului, coroborată cu o rezoluție de frecvență rezonabilă. Designul acestui sistem de filtre este un compromis, însă cu trei concesii notabile.

În primul rând, această egalitate a lățimii subbenzilor nu reflectă exact comportamentul în funcție de frecvență al sistemului auditiv uman; doar lățimea unei așa-numite “benzi critice”, ca funcție de frecvență, poate fi un bun indicator al acestui comportament. Multe dintre efectele psihoacustice sunt rezultate dintr-o scalare de frecvență a unei “benzi critice”. De exemplu, intensitatea perceptibilă și nivelul de audibilitate al unui semnal audio aflat în prezența unui semnal de mascare, sunt diferite pentru semnalele conținute într-o singură bandă critică sau semnalele care se extind pe mai mult de o singură bandă critică.

Pentru frecvențele joase o singură subbandă acoperă mai multe benzi critice. În aceste condiții, numărul biților folosiți la cuantificare nu poate fi estimat pentru zgomotul de mascare care aparține fiecărei benzi critice. În aceste condiții, banda critică cu zgomotul de mascare cel mai mic dictează numărul biților necesari cuantificării pentru întreaga subbandă.

Trebuie știut faptul că ansamblul de filtre, folosit atât la codare, cât și la decodare, nu folosește un algoritm de tip lossless (fără pierderi). Chiar și fără cuantificare, transformarea inversă nu poate recupera perfect semnalul original. Oricum, eroarea introdusă de ansamblul de filtre este foarte mică și practic inaudibilă.

Benzile de filtre adiacente prezintă însă anumite încălecări (overlaps) ale frecvențelor. Un semnal cu o singură frecvență poate afecta două ieșiri ale filtrelor adiacente.

Pentru o înțelegere cât mai bună a sistemului de filtre pentru polifază, standardul audio ISO MPEG decrie o procedură de estimare analitică a ieșirilor sistemului de filtre pentru polifază care este similară cu metoda descrisă anterior de către Rothweiler. Pașii unui algoritm MPEG, utilizabil în cazul unui sistem de filtre destinate codării semnalului sunt următorii:

se transferă 32 de eșantioane din semnalul audio într-un buffer FIFO cu o capacitate de 512 puncte (xi);

se face vizualizarea eșantioanelor (for i = 0 to 511 do z = ci * xi);

are loc calculul parțial (for i = 0 to 63 do yi = i+64j);

se calculează 32 de eșantioane prin matriciere ( si = i * m i,k);

ies din ansamblul de filtre eșantioanele pe cele 32 de subbenzi;

Urmărind pașii acestui algoritm, corelat cu ecuațiile aferente, se poate deduce o formulă pentru ieșirile sistemului de filtre audio MPEG. Această formulă este:

st[i] = M[i][k] * (C[k+64j] * x[k+64j]) (1)

unde:

i este indexul de subbandă, care variază între 0 și 31;

st[i] reprezintă eșantionul ce iese din filtre, pentru subbanda i la momentul t, unde t este un întreg multiplu de 32 de intervale audio ale eșantionului;

C[n] este unul dintre cei 512 coeficienți ai ferestrei de analiză definiți în standard;

x[n] este un eșantion al semnalului ce intră în sistemul de filtre, citit dintr-un buffer cu capacitate de 512 eșantioane;

M[i][k] = cos[] reprezintă coeficienții de analiză matricială;

Această ecuație este parțial optimizată pentru a reduce numărul de computații. Deoarece funcția din interiorul parantezelor este independentă de valoarea lui i și M[i][k] este independent de valoarea lui j, cele 32 de ieșiri ale filtrelor au nevoie doar de 512+32*64=2560 de multiplicări și de 64*7+32*63=2464 adăugări, adică aproximativ 80 de multiplicări și adăugări pentru fiecare ieșire. Există totuși posibilitatea de reducere a numărului acestor operații, prin procedeele DCT (Discrete Cosine Transform) sau prin implementarea algoritmului de transformare Fourier. Oricum, implementarea actuală a ansamblului de filtre produce pentru fiecare 32 eșantioane de semnal care intră 32 de eșantioane care ies; prelucrarea prin filtrele de subbandă rezultă într-un singur eșantion la fiecare 32 de eșantioane de semnal prelucrate. Această ecuație poate fi simplificată la forma următoare:

st[i] = [t-n] * Hi[n] (2)

unde:

x[t] este un eșantion audio la momentul t;

Hi[n] = h[n] * cos[;

h[n] este –C[n] dacă parte întreagă de (n/64) este impar sau h[n] este C[n] pentru parte întreagă de (n/64) pară, pentru orice n cuprins între 0 și 511;

În această formă, fiecare subbandă înregistrează propriul răspuns la trecerea prin sistemul de filtre H[i]. Deși această formulă este mai ușor de analizat, ea nu reprezintă o soluție eficientă, deoarece o implementare directă a acestei ecuații necesită 32*512 = 16384 de multiplicatori și 32*511 = 16352 de adăugări pentru a calcula ieșirile a 32 de filtre.

Coeficienții h[n] corespund filtrelor-prototip de frecvențe joase din cadrul sistemului de filtre destinate polifazei. Coeficientul C[n] folosit în ecuția (1) șterge fiecare grup impar format din 64 de coeficienți ai lui h[n] pentru a compensa cu coeficenții lui M[k]. Termenul cosinus al lui M[k] variază doar de la k = 0 până la k = 63 și acoperă un număr impar de semi-cicluri, pe când termenul cosinus al lui Hi[n] variază pentru n = 0 până la 511 și acoperă de 8 ori mai multe semi-cicluri.

Ecuația lui Hi[n] arată clar că există o modulație a răspunsului-prototip cu un termen cosinus care mută ieșirile de frecvențe joase către frecvența cea mai apropiată, acestea fiind așa-numitele filtre de polifază. Aceste filtre au frecvențele de mijloc la un multiplicator impar de /(64T), unde T este perioada de eșantionare audio, fiecare având o lățime de bandă de /(32T). Astfel, atunci când ieșirile filtrelor sunt sub-eșantionate cu un factor de 32, se produce efectul de aliasing. Designul filtrului-prototip, precum și includerea unei modulări potrivite a fazei, calculată în termeni de cosinus, rezultă în anularea totală a efectului de aliasing la ieșirile sistemului de filtre al decoderului. O altă consecință a utilizării filtrelor cu lățime de bandă mai mare decât cea nominală este o încălecare în domeniile de frecvență a filtrelor de polifază. Acest efect acționează în detrimentul eficienței compresiei audio deoarece energia semnalului de lângă marginile subbenzilor nominale va apărea în două ieșiri adiacente ale filtrelor de polifază.

Deși ansamblul filtrelor de polifază nu atinge standardele compresiei lossless, orice eroare consecventă este infimă, considerându-se că, din punctul de vedere al calității compresiei, reprezintă o metodă viabilă.

2.1.3. Modelul psihoacustic din cadrul standardului audio MPEG

Algoritmul audio MPEG compresează datele în mare parte prin îndepărtarea părților acustic irelevante din cadrul semnalului audio, profitând de inabilitatea sistemului auditiv uman de a auzi zgomotul de cuantificare în condițiile de mascare. Fenomenul de mascare este mai degrabă o proprietate a sistemului auditiv uman, care se manifestă în condițiile în care prezența unui semnal audio foarte puternic se află în vecinătatea temporală sau spectrală a unor semnale audio mult mai slabe, aproape imperceptibile.

Rezultatele empirice ale testelor arată că sistemul auditiv uman are o rezoluție limitată, dependentă de frecvență. Această dependență de frecvență poate fi observată în condițiile în care lățimea de bandă critică este cuprinsă în intervalul de 100 Hz pentru frecvența cea mai joasă, dar audibilă, și aproximativ 4 kHz pentru cea mai înaltă frecvență. Sistemul auditiv uman estompează unele componente ale semnalului cuprins în interiorul unei benzi critice; cu toate acestea, selectivitatea de frecvențe a sistemul auditiv uman este mult mai fină decât intervalul unei benzi critice.

Din cauza strânsei legături dintre frecvență și sistemul auditiv uman, limita de mascare a sunetului pentru orice frecvență este dependentă de energia semnalului aflat în vecinătatea de aproximativ o lățime de bandă față de acea frecvnță.

Algoritmul audio MPEG divide semnalul în subbenzi de frecvență care aproximează benzile critice și apoi cuantifică fiecare subbandă în funcție de audibilitatea sunetului cuantificat din acea bandă. Pentru a se obține cea mai eficientă compresie, fiecare bandă trebuie să fie cuantificată fără a se utiliza mai multe nivele decât este necesar, pentru a face zgomotul cuantificat inaudibil.

Modelul psihoacustic analizează semnalul audio și calculează cantitatea de mascare disponibil a sunetului ca o funcție de frecvență. Abilitatea de mascare a unei componente de semnal audio dat depinde de poziția frecvenței sale și de tăria sa. Encoderul folosește aceste informații pentru a decide cea mai bună metodă de a reprezenta semnalul audio în limita numărului de biți de cod disponibili.

Standardul audio MPEG permite o implementare extrem de liberă a modelului psihoacustic. Acuratețea necesară a modelului este dependentă de factorul de compresie dorit, precum și de aplicație. Pentru nivele mai joase de compresie, unde există o cantitate foarte mare de biți de cod, o evitare completă a modelului psihoacustic este adecvată pentru utilizarea de către utilizatori. În acest caz, procesul de alocare la nivel de bit poate atribui iterativ biți subbenzii cu cel mai mic coeficent semnal-zgomot. În cazul arhivării fișierelor de muzică, utilizarea modelului psihoacustic este mult mai stringentă. Mai jos sunt prezentați pașii de bază ai calculațiilor pentru modelul psihoacustic:

alinierea temporală a datelor audio; aici există o evaluare psihoacustică pentru fiecare secvență. Datele audio trimise către către modelul psihoacustic trebuie să concure cu datele audio ce trebuiesc codate. Modelul psihoacustic trebuie să calculeze pentru ambele delay-ul datelor audio ce trec prin modelul psihoacustic și offsetul datelor, astfel încât datele relevante să fie centrate în fereastra de analiză a modelului.

conversia datelor audio într-o reprezentare pe domenii de frecvență; modelul psihoacustic ar trebui să folosească o reprezentare timp/frecvență independentă, separată, în loc de sistemul de filtre de polifază, deoarece modelul are nevoie de o rezoluție de frecvență mult mai fină pentru o calculare exactă a limitelor de mascare. Modelul psihoacustic folosește o transformare Fourier pentru această reprezentare.

procesarea valorilor spectrale în grupuri legate de lățimea de bandă critică; pentru a ușura calculele psihoacustice, modelul procesează valorile de frecvență într-un cuantum perceptual.

separarea valorilor spectrale în componente tonale și non-tonale; modelul psihoacustic identifică și separă componentele tonale și componentele asemănătoare sunetului din cadrul semnalului audio deoarece capabilitățile de mascare ale semnalelor sunt diferite. În cadrul acestei etape, modelul psihoacustic poate acționa în mai multe feluri:

Modelul psihocustic identifică componentele tonale bazate pe punctele critice locale din spectrul audio. După procesarea componentelor tonale, modelul însumează valorile spectrale rămase într-o singură componentă non-tonală pentru fiecare bandă critică. Indexul de frecvență ale acestor componente non-tonale concentrate reprezintă valoarea cea mai apropiată de locul geometric al aglomerării benzilor critice.

Modelul psihoacustic nu mai separă componentele tonale și non-tonale. De fapt, acesta calculează un index de tonalitate ca o funcție de frecvență. Acest index dă indicii dacă componenta curent analizată este de tip ton sau mai degrabă este de tip zgomot. Modelul folosește indexul în continuare pentru a interpola valori între ton-mascare-zgomot și zgomot-mascare-ton. Acest index se bazează pe măsurarea predictibilității. Așadar, modelul folosește datele din ultimele două analize pentru a prezice, prin extrapolare liniară, valorile componentelor din fereastra de analiză curentă. Componentele tonale sunt mai ușor de prezis, astfel înregistrându-se mai des indici de tonalitate. Deoarece acest proces se bazează pe o cantitate mai mare de date, este de preferat folosirea primei metode pentru a se face diferența dintre componentele tonale și non-tonale.

aplicarea unei funcții de acoperire; abilitatea de mascare a unui semnal se răspândește în benzile critice din jurul său. Modelul determină deci limitele de mascare ale zgomotului ori prin aplicarea unei mascări determinate empiric, ori prin funcția de împrăștiere a componentelor de semnal.

se setează o limită mai joasă pentru valorile de prag; modelul psihoacustic include un prag determinat absolut empiric, un prag de “liniște”. Acest prag este cea mai joasă limită a audibilității unui sunet.

găsirea limitei de mascare pentru fiecare subbandă; modelul psihoacustic calculează limita de mascare cu o rezoluție de frecvență mai mare decât cea oferită de ansamblul filtrelor de polifază. Astfel, se derivă o valoare a limitei de subbandă din multitudinea de limite de mascare calculate pentru frecvențele conținute în acea subbandă. Și în această etapă există posibilitatea abordării ei prin mai multe metode:

Modelul selectează limita minimă de mascare din fiecare subbandă. În timp ce această metodă este bună pentru subbenzile de frecvențe joase, unde subbanda este relativ aproape de o bandă critică, ea poate fi inexactă pentru subbenzile de frecvențe mai înalte deoarece benzile critice pentru acest tip de frecvențe variază pe un interval ce cuprinde mai multe subbenzi. Aceste inexactități apar deoarece modelul concentrează toate componentele non-tonale în interiorul fiecărei benzi critice într-o singură valoare la o singură frecvență. În schimb, modelul convertește toate componentele non-tonale în componente tonale. O subbandă conținută într-o bandă critică, dar situată mai departe de componentele non-tonale, nu va obține o mascare non-tonală prea exactă. Această metodă este un compromis pentru a reduce supraîncărcările de calcule.

Modelul psihoacustic selectează minimul limitelor de mascare acoperite de subbenzi doar acolo unde banda este oarecum în vecinătate relativă cu banda critică din acea regiune de frecvență. În continuare, modelul folosește valorile medii ale limitelor de mascare acoperite de subbenzile unde banda este în vecinătatea relativă a unei benzi critice.Totuși, nici această metodă nu atinge o acuratețe deosebită în cazul subbenzilor de frecvențe înalte deoarece nu concentrează componentele non-tonale.

calculează rata semnal/mascare; modelul psihoacustic calculează rata semnal/mascare ca pe o rată a energiei semnalului din subbandă ce tinde către limita minimă de mascare pentru acea subbandă. După acest pas, modelul transmite această valoare către sectorul de alocare a biților (sau a zgomotului) din encoder.

2.1.4. Alocarea la nivel de bit pentru compresia audio MPEG

Procesul de alocare la nivel de bit determină numărul de biți de cod ce vor fi alocați fiecărei subbenzi, bazându-se pe informațiile furnizate de modelul psihoacustic. Pentru layerele I și II, acest proces începe prin calcularea ratei mask-zgomot cu ajutorul formulei următoare:

MNRdB = SNRdB – SMRdB

unde:

MNRdB este rata de mask-zgomot;

SNRdB este rata semnal-zgomot;

SMRdB este rata semnal-mask de la modelul psihoacustic. Trebuie avut în vedere că toate valorile acestei ecuații sunt exprimate în decibeli.

Standardul audio MPEG furnizează tabele care oferă date estimative despre ratele de semnal-zgomot, rezultate din cuantificarea pentru un anumit număr de nivele; astfel programatorii sunt liberi să încerce alte metode de a atinge rate de semnal-zgomot diferite.

În momentul în care alocarea la nivel de bit a calculat ratele de mask-semnal pentru toate subbenzile, aceasta caută subbanda cu cea mai mică rată mask-zgomot și îi alocă biți de cod . Atunci când o subbandă primește mai mulți biți de cod, ansamblul de alocare la nivel de bit caută să estimeze noua rată de semnal-zgomot și recalculează rata de mask-sunet a acelei subbenzi. Acest proces se repetă până când nu mai pot fi alocați alți biți de cod.

Pentru layer III encoderul folosește altă metodă, alocarea de zgomot. Encoderul variază iterativ cuantificarea într-un mod ordonat, apoi cuantifică valorile spectrale, calculează numărul de biți de cod Huffman necesari pentru codarea datelor audio și apoi calculează zgomotul rezultant. Dacă după cuantificare există încă benzi cu un nivel de distorsiune mai mare decât cel stabilit anterior de standard, encoderul amplifică valorile din acele benzi și efectiv scade mărimea pasului de cuantificare pentru acele benzi. Procesul se repetă și se oprește la una dintre cele trei condiții de stop:

1. Nici o bandă nu are un nivel de distorsiune mai mare de cel specificat.

2. Următoarea iterație va cauza depășirea valorii admise a nivelului amplificării oricăreia dintre benzi.

3. Următoarea iterație ar necesita ca toate benzile de frecvență să fie amplificate.

De remarcat este faptul că encoderele real-time includ o opțiune de limită de timp pentru a opri acest proces.

2.1.5. Codarea audio prin folosirea redundanței stereo

Algoritmul de compresie audio MPEG suportă două tipuri de codare folosind redundanța stereo: codarea stereo intensivă și codare stereo Middle/Side (MS). Toate layerele folosesc codarea stereo intensivă, cu specificarea că layer III poate utiliza și MS.

Ambele forme de redundanță stereo exploatează altă proprietate audio perceptuală a sistemului auditiv uman. Rezultatele testelor psihoacustice arată că la frecvențe peste 2kHz, în cadrul fiecărei benzi critice, percepția imaginii stereo de către sistemul auditiv uman se bazează mai mult pe înfășurarea temporală a semnalului decât pe structura sa temporală.

În cazul codării stereo intensive encoderul codeză unele ieșiri ale subbenzilor de frecvențe mai înalte prin intermediul unui singur semnal, în loc să trimită codurile canalelor stâng și drept într-un mod independent pentru fiecare din cele 32 de ieșiri ale subbenzilor. Decoderul care folosește algoritmul stereo intensiv reconstruiește canalele stâng și drept doar cu ajutorul unui singur semnal însumat, dar și cu factorii de scară ai canalelor stâng și drept luate independent. Prin codarea stereo intensivă, forma spectrală a canalelor stâng și drept este aceeași pentru orice subbandă codată prin acest procedeu, doar magnitudinea fiind diferită.

În cazul utilizării metodei MS, se codează semnalul din canalele stâng și drept în diferitele limite de frecvență, care sunt de fapt middle (suma semnalelor de pe canalele stâng și drept) și side (diferenșele dintre canalele stâng și drept). În acest mod, encoderul folosește valori ale limitelor special concepute pentru a compresa mult mai puternic semnalul din canalul side.

Capitolul III

Descrierea standardelor audio MPEG-1, MPEG-2, MPEG-4 și MPEG-7

Descrierea standardului MPEG-1

De la apariția sa în anul 1992, standardul audio MPEG-1 a devenit un preferat atât pentru sectorul de piață al profesioniștilor, cât și al home-user-ilor. Totodată, au fost identificate patru domenii de aplicații acoperite de MPEG-1: transmisii prin intermediul rețelelor de televiziune sau radio, domeniul multimedia, stocarea informațiilor și telecomunicațiile.

Acest lucru este posibil datorită flexibilității în alegerea bitrate-ului, dar și a configurațiilor numeroase permise în standardul audio MPEG-1. Printre cele mai importante aplicații se numără:

Înregistrările consumatorilor (DCC)

Stocarea pe disc (CD-i, CD-Video)

DVD

Editarea pe disc, automatizarea transmisiilor stațiilor radio și TV

Televiziunea prin cablu (DVB, USSB, DirecTV, EchoStar)

Radiofonia prin cablu

Transmisiile audio digitale (ADR, DAB, US-Digital Radio, Worldspace Radio)

Radio pe Internet

Multimedia din domeniul computerelor

Link-uri de distribuire și contribuție

Link-uri ISDN

Sisteme electronice de informații de tip stand-alone

MPEG-1 audio standardizează trei scheme de codare diferite pentru fișierele WAV digitizate, numite layer I, layer II și layer III. Acesta nu standardizează encoderul, mai degrabă standardizează tipul de informație pe care encoderul o produce și o scrie conform unui bitstream MPEG, precum și modul în care decoderul descrie, decompresează și resintetizează aceste informații pentru recuperarea sunetului original.

Bitstream-ul sunetului encodat poate fi stocat sau transmis alături de un bitstream codat al unui semnal video, precum și cu alte bitstream-uri, formând un așa-numit șir de sistem MPEG-1.

MPEG-1 audio se adresează oricărui tip de semnal, nefiind destinat doar semnalului de tip voce. MPEG-1 atinge rate de compresie foarte bune mai degrabă prin intermediul codării audio perceptuale, decât prin codare de tip lossless. În codarea lossless redundanța din semnalul audio este eliminată pentru a se atinge compresia, semnalul decodat ulterior nefiind diferit de semnalul original. Spre deosebire de acesta, un algoritm de codare audio perceptuală nu urmărește să recupereze după decodare un semnal identic, ci mai degrabă să se asigure că semnalul rezultat este identic cu cel original pentru un ascultător oarecare; acest lucru se face prin eliminarea părților din semnal care sunt considerate irelevante pentru sistemul auditiv uman, care practic nu sunt auzite.

În mare, un codor audio MPEG-1 transformă semnalul original în domenii de frecvență, elimină acele componente de frecvență care sunt mascate de componente de o frecvență mai puternică (care nu pot fi auzite), după care semnalul rezultat este analizat conform standardelor de bitstream audio MPEG-1.

Primul efect psihoacustic pe care codorul audio perceptual MPEG-1 îl folosește se numește auditory masking, în cadrul căruia părțile din semnal care sunt inaudibile datorită proprietăților funcționale ale sistemului auditiv uman sunt depistate. De exemplu, dacă există un sunet care consistă în mare parte dintr-o singură frecvență, toate celelalte sunete care consistă din frecvențe alăturate, dar care sunt la un nivel de sonor mai mic, vor fi inudibile din cauza semnalului mai puternic.

Părțile din semnal care sunt mascate se numesc irelevanțe, spre deosebire de părțile de semnal care sunt eliminate printr-o operațiune de codare de tip lossless, care se numesc redundanțe.

Pentru înlăturarea acestor irelevanțe, encoderul conține un model psihoacustic. Acest model psihoacustic analizează semnalul de input din eșantioanele consecutive pentru a determina pentru fiecare în parte componentele spectrale prin aplicarea unei transformări de frecvență. După aceea, urmează o modelare a proprietăților de mascare ale sistemului auditiv uman și estimarea nivelului de zgomot de fond sesizabil pentru fiecare bandă de frecvență, numit de obicei limită de mascare. În paralel, semnalul indus este trecut printr-o model de reprezentare timp/frecvență, după care sunt determinate componentele spectrale pentru codarea sub-secvențelor.

În cadrul cuantificării și al codării propriu-zise encoderul încearcă să aloce numărul de biți disponibili în așa fel încât să corespundă atât bitrate-ului, cât și necesităților demascare, în care sunt incluse și calculele limitei de mascare. Informațiile despre distribuția biților în cadrul spectrului sunt conținute în bitstream și în informațiile adiționale.

Decodorul este mult mai simplu de realizat, deoarece nu necesită un model psihoacustic și nici procedura de alocare la nivel de bit. Singura sa funcție este de a reconstrui semnalul audio din componentele spectrale codate și din informațiile adiționale atașate.

Algoritmul MPEG-1 este capabil să lucreze cu semnale audio pe unul sau două canale audio. O metodă numită joint stereo poate fi folosită pentru a se exploata unele redundanțe dintre canalele stâng și drept ale semnalului audio stereo. MPEG-1 audio pune la dispoziția utilizatorului patru moduri de reprezentare a semnalului audio: mono, stereo, joint stereo (intensity stereo) și modul dual-channel (două canale stereo pentru două limbaje – ex. română și engleză). Din punct de vedere al complexității codorului MPEG, acesta se împarte în trei nivele, cunoscute sub numele de layere.

Complexitatea codorului și a decodorului MPEG, rata de delay, precum și eficiența codării semnalului cresc de la layer I spre layer II și layer III.

Layer I are cea mai mică complexitate și este potrivit în special pentru aplicațiile unde complexitatea codorului joacă și ea un rol important.

Layer II are nevoie de un encoder mai performant, dar și de un decoder ceva mai complex, fiind destinat în special aplicațiilor de tip 1-n (ex. un encoder pentru mai multe decodere). În comparație cu layer I, layer II poate extrage o cantitate mai mare de redundanțe din cadrul semnalului audio, aplicând totodată mai bine limita de mascare și modelul psihoacustic.

Layer III este și mai complex decăt layer II, adresându-se aplicațiilor cu un bitrate mic, datorită eliminării într-o măsură mai mare a redundanțelor adiționale și a irelevanțelor extrase din semnal prin metode bazate pe rezoluții de frecvență și codare Huffman.

Datorită faptului că modulele funcționale ale layerelor mai mici sunt folosite pentru layerele mai avansate, există o strânsă corelație între acestea. De exemplu, sistemul de filtre de subbandă folosit la layer I este folosit cu succes și la layer II și layer III, însă acestuia îi sunt aduse diferite modificări pentru îmbunătățirea eficienței codării informațiilor adiacente.

Cele trei layere au fost definite pentru a fi compatibile în modul ierarhic. Astfel, un decoder perfect compatibil de tip layer n este capabil să decodeze bitstream-uri codate cu layer n, dar și cu orice layer sub nivelul n.

Există și decodoare audio MPEG care nu pot decoda un anumit layer, acestea nefiind layer de tip full-n.

Special pentru combinarea codorului și decodorului MPEG-1 a fost creată o extensie de fișier numită .mp3, special concepută pentru platforma Windows. Oricum, după standardizarea lui MPEG-2, fișierele de muzică codate cu rată de eșantionare mai mică de MPEG-2 se numesc tot .mp3. Deseori se face o confuzie între MP3 și MPEG-3.

Pentru a fi aplicabil unui număr de aplicații cât mai mare, MPEG-1 suportă o varietate destul de mare de bitrate-uri, care variază de la 32 kbiți/s la 320 kbiți/s. Oricum, există o extensie de coborâre a bitrate-ului până la 8 kbiți/s numită LSF (Low Sampling Frequency).

Pentru layer I și layer II, posibilitatea setării unui bitrate variabil (VBR) nu este obligatorie. Deși în practică majoritatea decodoarelor suportă VBR, există și decodere care nu suportă aceste setări.

Pentru layer III, situația este diferită. Layer III suportă VBR, bitrate-ul mediu fiind specificat în headerul secvenței din layer III; datorită distribuirii biților pe mai multe secvențe, acest lucru implică efectiv folosirea VBR.

3.2. Descrierea standardului MPEG-2

La sfârșitul anului 1994 a fost creat standardul audio MPEG-2, considerându-se că MPEG-1, deși oferea soluții de codare mono/stereo, la frecvențe de eșantionare (sampling rates) de 32, 44.1 și 48 kHz, putea fi îmbunătățit semnificativ.

În primul rând trebuie specificat faptul că MPEG-2 se bazează pe pe aceleași tehnologii care au stat la baza MPEG-1, acest lucru asigurând interoperabilitatea dintre cele două standarde.

Pentru MPEG-2 au fost adăugate frecvențe de eșantionare de 16, 22.5 și 24 kHz, asigurând o calitatea sunetului identică cu MPEG-1, dar cu o distribuire mai mică de biți pentru fiecare canal audio (sub 64 kbiți/s pentru un canal mono).

A doua îmbunătățire majoră a fost introducerea opțiunii de multichannel sound. MPEG-2 are 5 canale de sunet și unul pentru frecvențele joase; acest standard se numește 5.1. Această îmbunătățire a fost implementată în versiunea MPEG-2 AAC, finalizată în 1997.

Domeniul de aplicație cel mai important pentru MPEG-2 este televiziunea digitală, unde sunt produse aplicații a căror calitate este necesară în HDTV. Datorită faptului că MPEG-2 suportă aplicațiile pentru MPEG-1, extinzând eficacitatea acestuia prin bitrate-uri mai mici și suport pentru mai mult de două canale audio, MPEG-2 își dovedește din plin eficiența.

Deoarece bitstream-ul MPEG-2 este bazat pe MPEG-1, există o compatibilitate maximă între ele. În cadrul MPEG-2 există două substandarde, numite MPEG-2 BC (Backward Compatible-compatibil cu MPEG-1) și MPEG-2 AAC (Advanced Audio Coding- incompatibil cu MPEG-1). Dezavantajul MPEG-2 BC este că trebuie să se evite la codare transferul a două bitstream-uri separate, numit simulcast (unul pentru cele două canale stereo și unul pentru canalul multichannel), din cauza scăderii eficienței la codare.

MPEG-2 AAC are în componență trei profile, care reprezintă diferite configurații ale decodorului, cu complexitate și performanțe diferite pentru fiecare.

În anul 1995, standardul MPEG-2 BC a fost îmbunătățit prin apariția unui Second Edition, deoarece anumite funcții și combinații nu funcționau corect. Deși aceste combinații erau foarte rare, MPEG a hotărât publicarea acestei revizii, cu îmbunătățirile de rigoare. Aceste combinații se refereau la fenomenul de dynamic crosstalk și la diferite predicții ale algoritmului. De asemenea, s-a renunțat la un filtru low-pass ce trebuia aplicat sunetului surround monofonic, acest lucru simplificând foarte mult munca decodorului.

Alte îmbunătățiri au fost descrierea explicită a modulului LFE (Low Frequency Extension), îmbunătățirea calității la redare și a clarității sunetului.

De asemenea, a fost introdus conceptul de MPEG-2.5. Acesta este o extensie de MPEG-1/2 Layer III și este proprietatea Fraunhofer Institute for Integrated Circuits (FhG IIS) din Germania. Acest standard permite codarea la frecvențe de eșantionare și mai mici (între 8-12 kHz).

3.2.1 Descrierea layer III din cadrul MPEG-1 și MPEG-2

În anul 1997 IIS a început lucrul la o tehnică de codare perceptuală în cadrul proiectului Eureka EU147 numită DAB (Digital Audio Broadcasting). În conlucrare cu Universitatea Erlangen, IIS a creat în cele din urmă un algoritm foarte puternic care a fost standardizat sub numele de ISO-MPEG Audio Layer-3 (IS 13818-3).

Fără reduceri de date, semnalele audio digitale constă în eșantioane de 16 biți înregistrate la o rată de eșantionare dublă față de actuala lățime de bandă audio (44.1 kHz pentru Compact Disc). Asfel, se ajunge la 1.4 Mb care reprezintă doar o secundă de muzică stereo de calitate CD.

Folosind codarea audio MPEG, se poate reduce cantitatea de date originale a sunetului de pe un CD cu un factor de 1:12, fără pierderi calitative.

Factori de 24 și chiar mai mult se pot atinge fără pierderi calitative semnificative, folosindu-se tehnicile de codare perceptuală.

În cazul lui layer III se pot atinge factori de la 1:10 până la 1:12 pentru un semnal audio stereo de la 112 la 128 kbiți/s.

Exploatând efectele stereofoniei și limitând lățimea de bandă audio, schemele de codare pot obține o calitate acceptabilă la bitrate-uri foarte mici.

MPEG Layer III obține pentru un coeficent de calitate a sunetului cel mai scăzut bitrate sau pentru un bitrate dat obține cea mai bună calitate a sunetului.

Ansamblul de filtre folosit în MPEG-2 layer III este un hibrid care constă într-un ansamblu de filtre de polifază și un MDCT. A fost aleasă această variantă pentru o compatibilitate cât mai mare cu layer I și layer II.

Modelul perceptual din cadrul layer III determină practic calitatea coderului. Acesta folosește ori un ansamblu de filtre ori combină sistemul principal de filtre cu calculațiile valorilor de mascare. Codarea de tip joint stereo profită de faptul că ambele canale ale unui semnal stereo conțin în mare aceeași informație. Aceste irelevanțe stereofonice și redundanțe sunt exploatate pentru a reduce bitrate-ul total. Joint stereo este folosit doar când sunt posibile doar bitrate-uri mici, dar se dorește semnal stereo.

Cuantificarea pentru layer III este făcută cu un cuantificator de tip power-law. În acest fel, valorile mai mari sunt automat codate cu o mai mică acuratețe, astfel că deja este introdus în procesul de cuantificare o modelare a sunetului.

Valorile de cuantificare sunt codate cu un cod Huffman. Ca orice metodă specifică pentru codarea entropiei, codarea Huffman este de tip lossless. De aceea, se spune că layer III beneficiază de o codare noisesless (fără zgomot de fond), deoarece nu este adăugat în procesul de codare nici un zgomot de fond semnalului audio.

3.2.2. Descrierea standardului MPEG-2 AAC

Cooperarea tehnologică dintre Fraunhofer Institute și companii importante, ca AT&T, Dolby sau Sony, a rezultat într-una dintre cele mai sofisticate și eficiente metode de codare audio, MPEG-2 AAC, fiind standardizată de MPEG la sfârșitul lui aprilie 1997.

Scopul declarat al celor de la Fraunhofer Institute era de a dezvolta o metodă eficientă de codare pentru semnalele surround, cum ar fi semnalele pe cinci canale (stânga-L, dreapta-R, centru-C, surround stânga-LS, surround dreapta-RS) care sunt folosite astăzi în sălile de cinema. Acești algoritmi existau în MPEG-2, dar eficiența optimă nu putea fi atinsă din cauza motivelor tehnice. De aceea, scopul principal era reducerea bitrate-ului.

Astfel, în urma colaborării intensive cu alți parteneri din străinătate, s-a ajuns la MPEG-2 AAC Layer III, un standard dezvoltat la Universitatea din Erlangen.

Acest standard încorporează o eficiență extrem de ridicată a codării, dar și o flexibilitate extraordinară. Având frecvențe de eșantionare între 8-96 kHz, pe un număr de până la 48 de canale, această metodă oferă noi soluții pentru dezvoltarea ulterioară în acest domeniu. În comparație cu clasicul MPEG-2 Layer II, MPEG-2 AAC atinge performanțe identice cu bitrate-uri la jumătate.

Ca toate schemele de codare perceptuală, MPEG-2 AAC se folosește de proprietățile de mascare pe care la prezintă urechea umană, pentru a reduce cantitatea de date. În acest fel, zgomotul de cuantificare este distribuit pe benzile de frecvențe în așa fel încât acesta să fie mascat pe ansamblu de semnal, devenind inaudibil.

Deși structura de bază a acestei metode de codare diferă foarte puțin de la coder la coder, la MPEG-2 AAC se pot observa anumite îmbunătățiri mai importante.

În cadrul ansamblului de filtre, în contrast cu ansamblul-hibrid de filtre prezentat la Layer III, MPEG-2 AAC folosește un filtru de tip MDTC (Modified Discrete Cosine Transform); alături de creșterea mărimii ferestrei de transformare de la 1152 la 2048 de linii pe transformare, MDCT este mult mai performantă decât metoda ansamblului de filtre.

O altă îmbunătățire este reprezentată de introducerea moduluilui de modelare temporală a sunetului de tip TNS. Acesta reprezintă o noutate în domeniul schemelor de codare timp/frecvență, având rolul de a determina distribuția zgomotului de cuantificare în timp conform predicției din domeniul de frecvență. O creștere considerabilă a calității prezintă semnalele care conțin voce.

O altă noutate este sistemul de predicție, o tehnică ce și-a demonstrat utilitatea în cazul semnalelor de voce, datorită faptului că anumite tipuri de semnal sunt ușor de prezis.

Există îmbunătățiri și în cadrul tehnicii de cuantificare, deoarece printr-un control foarte fin al rezoluției de cuantificare, se obțin bitrate-uri mult mai eficiente.

Alături de aceste îmbunătățiri, s-a perfecționat formatul bitstream-ului. Astfel, informația ce urmează a fi transmisă este analizată cu o tehnică de codare a entropiei, pentru a menține redundanța la un nivel cât mai mic.

Datorită eficienței sale, MPEG-2 AAC este primul candidat pentru orice sistem de transmisie digitală. Autoritățile japoneze au fost primele care au decis folosirea AAC în toate schemele de transmisie audio digitală. Serviciile bazate pe AAC au fost pornite la începutul lui 2000, cipurile de decodare hardware fiind deja existente pe piață.

De asemenea, AAC este prezent și în următoarele domenii: Internet audio, codare audio digitală pentru televiziune și radio, echipamente portabile de tip MP3 Player etc.

Există mari șanse ca AAC să înlocuiască standardul MP3. Acesta reprezintă prima opțiune pentru reprezentarea calității digitale audio cât mai apropiată de calitatea CD, însă AAC pare candidatul ideal să înlocuiască MP3 deoarece oferă aceeași calitate a sunetului cu o rată de compresie mult mai mare; acesta oferă o codare mai eficentă, redare cu o fidelitate mai mare de până la 96 kHz.

3.3 Descrierea standardului MPEG-4

MPEG-4 este un standard ISO/IEC produs de MPEG, fiind rezultatul unui efort internațional care a inclus munca a sute de cercetători și ingineri din toată lumea. Standardul MPEG-4, numit formal ISO/IEC 14496, a fost finalizat în octombrie 1998 și a devenit un standard internațional în primele luni ale lui 1999. La ora actuală, MPEG lucrează la o extensie BC denumită MPEG-4 Version 2.

Succesul MPEG-4 s-a manifestat în următoarele domenii:

Televiziunea digitală;

Aplicații interactive grafice cu conținut sintetic;

Multimedia interactivă (World Wide Web).

Standardul MPEG-4 conține un set de tehnologii care adresează unei arii cât mai mari de utilizatori.

Astfel, pentru producători MPEG-4 oferă, pe lîngă avantajele menționate anterior, posibilități de inserție digitală destinate reprezentării drepturilor de autor.

Pentru serviciile internet se oferă transparentizarea informațiilor, care pot fi interpretate și traduse în mesaje de semnalare native pentru fiecare rețea, cu ajutorul comitetelor standard.

Pentru utilizatorii obișnuiți, MPEG oferă nivele mai avansate de interactivitate cu conținutul, în cadrul limitelor specificate de autori. De asemenea, introduce capabilități multimedia noi rețelelor, incluzând bitrate-uri cât mai mici, aplicații de transmisie multimedia și aplicații noi în domeniul telefoniei mobile.

MPEG-4 a introdus conceptul de obiecte audio. Pentru codarea acestor obiecte audio sunt puse la dispoziția utilizatorului instrumente pentru reprezentarea sunetelor naturale (voce sau muzică) sau pentru sunete sintetizate, bazate pe descriere structurată. Descrierea acestor sunete sintetizate poate fi derivată din date de tip text sau din instrumente de descriere, care pun la dispoziția utilizatorului efecte de reverb sau spațializare. Reprezentarea oferă compresie și alte funcțiuni, cum ar fi scalabilitatea și procesarea de efecte.

Sunetele naturale în reprezentarea MPEG-4

MPEG-4 standardizează codarea audio naturală la bitrate-uri variind între 2 kbiți/s și 64 kbiți/s. Atunci când rata de codare variabilă este permisă, se pot atinge bit-rate-uri de mai puțin de 2 kbiți/s (în jur de 1.2 kbiți/s). De asemenea, prezența standardului MPEG-2 AAC în instrumentele ce compun MPEG-4 conferă compresia generală audio și pentru bitrate-uri mai mari.

Pentru a atinge cea mai înaltă calitate audio într-o gamă cât mai largă de bit-rate-uri și în același timp să ofere și alte funcții precum codarea vocii sau alte tehnici generale de codare audio, aceste sunt integrate într-o schemă a domeniilor de codare.

Pentru codarea vocii la bitrate-uri între 2-24 kbiți/s este folosit HVXC (Harmonic Vector eXcitation Coding), în timp ce pentru bitrate-uri cuprinse între 4-24 kbiți/s se folosește codarea CELP (Code Excited Linear Predictive). În cadrul codării CELP, două rate de eșantionare de 8 și 16 kHz sunt folosite pentru suportul NB (Narrowband) și WB (Wideband) al semnalului de tip voce.

Pentru codarea audio generală la bitrate-uri de peste 6 kbiți/s se folosesc tehnicile TwinVQ și AAC.

3.3.2. Descrierea tehnicilor de codare a sunetului sintetizat

MPEG-4 definește decodere pentru generarea de sunete bazate pe diferite tipuri de inputuri structurate. Inputul de tip text este convertit în semnal de tip voce în cadrul deocodorului Text-To-Speech, în timp ce sunetele mai generale, în care este inclusă și muzica, pot fi sintetizate normativ. Muzica sintetizată poate fi reprezentată la bitrate-uri foarte mici, descriind în continuare un semnal foarte exact.

În cazul codoarelor TTS, bitrate-ul poate varia de la 200 biți/s la 1.2 kbiți/s, lucru ce permite ca un text cu parametrii ( pitch contour, phoneme duration) să genereze un semnal voce inteligibil. Standardul permite generarea parametrilor care pot fi folosiți la sincronizarea cu animațiile faciale, limbi de circulație internațională pentru text și simbolurile fonetice internaționale.

Instrumentele audio structurate decodează datele din input și produc la output sunetele. Această decodare este condusă de un limbaj special de sistetizare numit SAOL (Structured Audio Orchestra Languge) care este standardizat în cadrul MPEG-4.

Acest limbaj este folosit pentru definirea unei “orchestre” compusă din instrumente care crează și procesează datele de control. Un instrument este de fapt o rețea foarte restrânsă de primitive care procesează semnalul și care pot emula anumite sunete specifice cum ar fi cele ale instrumentelor muzicale acustice. Rețeaua de procesare a semnalului poate fi implementată hardware sau software și include atât generarea, cât și procesarea sunetelor și manipularea sunetelor generate anterior.

MPEG-4 nu standardizează o singură metodă de sintetizare, mai degrabă un mod de descriere a metodelor de sinteză. Asfel, orice metodă de sintetizare curentă sau viitoare va putea fi descrisă în SAOL, aici incluzând wavetable, FM, additive metod, modelarea fizică, sintetizare granulară, precum și alte metode-hibrid derivate din acestea.

Controlul sintezei este făcut prin download de scripturi în bitstream. Un script este un set de comenzi într-o secvență temporală care invocă diferite instrumente la timpi specifici pentru a contribui cu outputul lor la generarea de sunete sau efecte. Descrierea scriptului, downloadat într-un limbaj numit SASL (Structured Audio Score Language), poate fi folosită la crearea de noi sunete și include informații adiționale de control pentru modificarea sunetelor existente. Acest lucru permite un control mai fin asupra sunetului de sinteză. Pentru procesele de sinteză care nu au nevoie cest control extrem de fin poate fi folosit protocolul MIDI.

Controlul foarte fin, în conjunctură cu definirea instrumentelor customizate, permite generarea de sunete variind de la efecte audio simple, cum ar fi zgomote de pași sau de uși care se închid, la simulări ale sunetelor naturale, cum ar fi cascadele sau muzica interpretată de instrumentele convenționale sau chiar sunete complet sintetizate pentru efecte audio extrem de complexe sau muzică futuristă.

Pentru terminalele cu o funcționalitatea redusă, dar și pentru aplicațiile care nu au nevoie de o sinteză sofisticată, un format special de “wavetable bank” este de asemenea standardizat. Folosind acest format eșantioanele de sunet pentru folosirea în cadrul wavetable pot fi și ele downloadate, printre acestea numărându-se efecte de reverb, chorus și diferite filtre. În acest caz, complexitatea calculelor pentru procesul de decodare pot fi determinate exact din analiza bitstream-ului, lucru care nu este posibil în cazul folosirii SAOL.

Printre cele mai importante aplicații pentru MPEG-4 se numără:

interpretarea obiectelor audio N:1; aceasta se face prin transmiterea a cinci semnale audio cu proprietăți multichannel (obiecte audio) care reprezintă cinci instrumente din orchestră (un cvintet). Această aplicație este folositoare în cadrul unei sesiuni de tip karaoke, atunci când ascultătorul poate selecta la un nivel audibil doar patru canale pentru acompaniament.

proprietățile multilimbaj; este posibilă transmiterea semnalului video, alături de mai multe canale audio pe care sunt codate semnalele audio în mai multe limbi. Fiecare televiziune își selectează canalul audio cu limba dorită. Această capabilitate apare și în cadrul MPEG-2 AAC sau BC.

reprezentarea sunetului la cinematograf; aici sunt incluse reprezentarea fonică a conversațiilor, zgomotelor de background etc.

3.3.3. Definirea obiectelor audio de tip “real-world”

Un obiect audio de tip “real-world” este definit ca o entitate semantică audibilă (vocea unui sau a mai multor vorbitori, unul sau mai multe instrumente muzicale etc.). Acesta poate fi înregistrat cu un microfon în cazul unei înregistrări mono sau cu mai multe microfoane, în poziții diferite, în cazul înregistrării multichannel. Obiectele audio pot fi grupate sau mixate împreună, dar nu pot fi sparte prea ușor în sub-obiecte.

Un singur obiect audio poate fi reprezentat pe mai mult de un canal audio, dacă se definesc canalele audio ca informații specifice pentru poziția difuzoarelor. De exemplu, un bitstream audio MPEG-1 va fi reprezentarea codată a unui obiect în MPEG-4. Acest obiect conține fie un canal audio (mono), fie două canale (dual, stereo sau joint stereo).

3.3.4 Versiunea 2 a standardului MPEG-4

Deoarece timpul nu a permis o dezvoltare mai puternică a unor funcțiuni din cadrul MPEG-4, acestea au fost introduse în cea de-a doua versiune a standardului. Printre acestea se numără:

instrumente pentru error-resilence; aceste instrumente furnizează o performanță sporită în cazul erorilor de transmisie pe canale audio.

instrumente pentru codare audio cu delay cât mai mic; suport pentru transmisiile semnalelor audio generale în cadrul aplicațiilor care necesită un delay minim, cum ar fi comunicațiile real-time bidirecționale.

instrumente pentru scalabilitate cu pas mic; aceste instrumente oferă codare cu granulație extrem de fină, cu pași de bitrate foarte mici.

instrumente pentru codare audio parametrică; acestea combină bitrate-uri foarte mici cu posibilitatea modificării vitezei de play-back sau a înălțimii sunetului din timpul decodării fără a avea nevoie de o unitate de procesare a efectelor.

instrumentele de spațializare în mediu; acestea pot compune o scenă audio cu o modelare mai naturală a sursei de sunet, dar și a mediului de propagare a sunetului.

3.4 Descrierea standardului MPEG-7

Dacă MPEG-1 și MPEG-2 s-au concentrat mai mult pe compresia propriu-zisă, MPEG-4 a avansat pe un nivel mai înalt de abstractizare a codării obiectelor audio-video și prin folosirea unor tehnici specifice fiecărui conținut.

MPEG-7 avansează pe un nivel și mai înalt în cadrul acestei abstractizări, utilizând o tehnică de codare cognitivă. În principiu, MPEG-1, MPEG-2 și MPEG-4 sunt proiectate pentru a reprezenta informția în sine, în timp ce MPEG-7 este proiectat pentru a reprezenta informații despre informația propriu-zisă.

MPEG-7 este oficial numit “Multimedia Content Description Interface” (Interfață de descriere a conținutului multimedia). Standardul MPEG-7 urmărește descrierea explicită a două instrumente de lucru:

standardizarea unui limbaj pentru specificarea descrierilor datelor multimedia (Definition Language-DDL)

standardizarea unui set de componente de descriere necesare datelor multimedia, așa-numiți descriptori (Ds), dar și a schemelor de descriere (DSs).

MPEG-7 nu standardizează algoritmii de extracție, axându-se mai mult pe specificații ce trebuiesc îndeplinite de produsul rezultat din utilizarea algoritmilor. Oricum, pentru dezvoltarea ulterioară a standardului, MPEG dezvoltă anumite

instrumente pentru crearea de descrieri, instrumente ce demonstrează eficiența lor în cazul algoritmilor de extragere. Oricum, aceste instrumente nu fac parte, oficial, din standard.

Scopul declarat al standardului MPEG-7 este de a găsi o modalitate prin care conținutului multimedia din cadrul Internetului să poată fi accesat cât mai ușor. Astfel, vor fi accesibile publicului arhive de date multimedia de mari dimensiuni, de tip TV, radio sau arhive pentru filme.

Capitolul IV

Prezentarea aplicației informatice mp3Coder

4.1. Prezentarea meniurilor și a opțiunilor programului mp3Coder

Programul mp3Coder este destinat compresiei fișierelor audio de tip .WAV, cu scopul reducerii spațiului ocupat de acestea pe suporturile de memorie fără pierderi calitative. Acesta este realizat cu un algoritm perceptual care, prin procedee de compresie, elimină frecvențele inaudibile și redundanțele stereofonice, acest lucru ducând la micșorarea spațiului ocupat pe hard-disk. Programul atinge o rată de compresie variind între 1:4 și 1:15, acest lucru depinzând de bitrate-ul selectat și de calitatea compresiei, dar și de structura fișierului .WAV. Fișierele rezultate în urma compresiei sunt fișiere de tip MPEG Layer 3 cu extensia .MP3. Aceste fișiere sunt cele mai potrivite pentru stocarea semnalului audio și permit, ca și fișierele .WAV introducerea unor date suplimentare în header, date care sunt citite de cele mai populare playere MP3, cum ar fi WinAmp, produs de firma Nullsoft sau Sonique.

Algoritmul de compresie este aprobat ISO și distribuția sa nu contravine legilor de copyright existente, folosind o metodă freeware.

Acest program poate fi folosit cu succes în cazul compresiei audio în vederea stocării, a transmiterii pe Internet sau pentru formarea de colecții multimedia în posturi de radio, televiziune, pentru enciclopedii sau pentru biblioteci.

Programul mp3Coder a fost scris în limbajul C++ și pentru construirea formelor, a meniurilor și pentru compilare a fost folosit Borland C Builder 5.0. Acest mediu de programare profesional extrem de flexibil și intuitiv a permis construirea programului foarte ușor, deoarece compilatoarele Borland întrunesc specificațiile ANSI.

Printre facilitățile oferite de program se numără: fișierele de tip .WAV pot avea o rată de eșantionare de 32, 44.1 și 48 kHz, pot fi selectate individual bitrate-ul, VBR, calitatea compresiei, alegerea canalelor de compresie, setarea unor biți rezervați din headerul MPEG, cum ar fi private bit, CRC, copyright, emphasys etc.

Programul oferă posibilitatea de a seta prioritatea sa în cazul multi-tasking, pentru a nu ocupa prea mult resursele sistemului. Alte facilități sunt posibilitatea editării tagurilor (programul este compliant ID3 v.1), importarea fișierelor .WAV și salvarea lor în listă independentă, percum și ascultarea acestora.

Programul nu lucrează cu fișiere .WAV cu o rată de eșantionare de 22.050 Hz, deoarece acestea nu sunt acceptate de standardul MPEG. De asemenea, pentru setarea canalelor mono, fișierul .WAV inițial trebuie să fie mono.

În continuare sunt prezentate meniurile și interfața programului mp3Coder.

Programul informatic are în componență trei meniuri, fiecare cu submeniurile sale, precum și zece pictograme care au rol de shortcut. Alături de acestea, programul mai are o serie de facilități, cum ar fi informațiile despre strucutra fișierelor .WAV ce vor fi prelucrate sau tagurile adiționale. În cadrul acestora apar câmpurile care conțin numele autorului piesei muzicale, albumul din care face parte, anul în care a fost realizat acel album, comentarii suplimentare și o casetă tip listă derulantă care conține tipul de muzică din care face parte melodia codată. Aceste informații, precum și cele referitoare la bitrate, headerul Xing sau tipul de MPEG folosit pot fi citite de majoritatea playerelor de MP3 existente, cum ar fi WinAmp, Media Player 7.0 etc. O altă opțiune este redarea fișierelor .WAV ce urmează a fi encodate, programul dispunând de trei butoane de control, pentru redare, pauză și stop. De asemenea, majoritatea opțiunilor prezente în meniuri au un corespondent pe bara de instrumente sub forma unor icoane.

Meniul Program conține mai multe submeniuri, printre care sunt cele pentru deschiderea unui fișier ce va fi adăugat la lista batch de codare (shortcut pentru acesta este combinația de taste Ctrl+O), deschiderea unei liste de fișiere ce urmează a fi codate, lista fiind salvată anterior, opțiunea de salvare sub formă de listă a fișierelor aflate în batch și opțiunea de ieșire din program.

Meniul pentru deschiderea fișierelor permite utilizatorilor căutare gen explorer pentru încărcarea fișierului dorit. Pentru a nu se importa alt gen de fișiere ci doar cele de tip .WAV, meniul vizualizează doar fișierele specificate (în acest caz *.wav). La depistarea fișierului dorit, se selectează cu ajutorul mouse-ului și se deschide prin intermediul butonului Open sau cu un click dublu de mouse. În cazul în care se renunță la încărcarea fișierului, se apasă butonul Cancel.

Meniul pentru deschiderea listei de fișiere salvate anterior este foarte asemănător celui pentru deschiderea fișierelor .WAV, însă acesta caută fișierele cu extensia .WLST (wavelist). Deschiderea se face la fel ca și în cazul .WAV.

Meniul de salvare a listei este foarte important și folositor, deoarece aici se pot salva toate fișierele care au făcut parte din batch. Pentru o codare ulterioară, după ce am importat fișierele .WAV pe care dorim să le encodăm, acestea nu mai trebuie să fie re-căutate pe hard-disk dacă au fost salvate sub formă de listă. Dacă din întâmplare am șters anumite fișiere .WAV după ce lista a fost salvată, la încărcarea acesteia programul va afișa un mesaj de eroare în cazul fișierelor care lipsesc, după care va trece la încărcarea următorului fișier.

Meniul Operații are în componență submeniurile de configurare și comanda de encodare. Meniul de configurare este practic componenta cea mai importantă a programului, aici fiind setate toate caracteristicile de codare ale batchului, în timp ce comanda de codare începe codarea propriu-zisă.

Meniul de configurare controlează cei mai importanți parametrii ai encoderului.

Meniul de configurare conține setările pentru bitrate, opțiuni pentru bitrate variabil, calitatea pentru acest bitrate variabil, salvarea cu header Xing, opțiuni cu privire la canalele pe care este reprezentat sunetul, tipul de MPEG selectat, prioritatea aplicației în procesele multi-tasking, precum și directorul de dumping pentru fișierele MP3 codate.

Opțiunile pentru bitrate cuprind setările standard MPEG, care include o listă de bitrate-uri în conformitate cu standardul. Practic, acest bitrate reprezintă puterea compresiei. Cu cât bitrate-ul este mai mare, cu atât fidelitatea sunetului este mai mare, sunetul se aude mai bine și mai clar, însă rata de compresie scade până la 1:3, acest lucru depinzând de fișierul sursă. Pentru un bitrate mai mic, calitatea sunetului poate scădea dramatic, însă rata de compresie crește proporțional, atingând pentru un bitrate minim o rată de compresie de 1:15.

Opțiunea de bitrate variabil este destinată codării alternative. Dacă fișierul .WAV este compus din pasaje muzicale care nu au aceeași structură instrumentală sau există pasaje în interiorul lor care nu necesită un bitrate foarte ridicat ca în restul fișierului, bitrate-ul variabil aplică o compresie mai mare. Oricum, bitrate-ul variabil trebuie să fie mai mare decât bitrate-ul setat.

Calitatea bitrate-ului ia valori între 0 și 9, conform standardului Xing, valoarea 0 fiind cea mai bună, iar 9 cea mai slabă. Aici intervine frecvența alternanțelor de bitrate.

Pentru a nu crea anumite încetiniri ale sistemului, conflicte cu alte programe care rulează în multi-tasking sau chiar o epuizare a resurselor, programul are o opțiune care se referă la prioritatea sa față de celelate programe. Dacă nu se dorește o încetinire a sistemului și se lucrează suplimentar și cu alte programe, pentru a nu se aglomera procesorul, există diferite trepte ale priorității programului. Alegerea canalelor se poate face între stereo, joint-stereo, dual-stereo și mono, doar pentru fișiere .WAV mono.

Diferența dintre stereo și joint-stereo este aceea că modul joint-stereo se folosește de redundanța stereofonică a sunetelor joase, iar modul dual-stereo procesează un canal mono în două canale stereo, care însă conțin aceleași date.

Programul mai are și o opțiune de setare a directorului-destinație a fișierelor MP3, care poate fi configurată. Pe lângă aceste opțiuni, mai există și cele de tag.

Aici de regăsesc opțiuni cu privire la bitul privat (private bit), bitul care conține drepturile de autor, informații cu privire la originalitatea materialului, un CRC, o opțiune de accentuare a frecvențelor înalte, dar și una pentru o fidelitate cât mai înaltă. De menționat este faptul că prin setarea acestor biți mărimea fișierului nu crește, aceștia fiind cu toții biți rezervați.

Înainte de codarea propriu-zisă, după ce au fost importate fișierele .WAV, programul afișează în niște câmpuri informative diferiți parametri. Printre aceștia se află numele fișierului, mărimea sa în Kb, rezoluția și rata de eșantionare, precum și calea sa.

Programul suportă de asemenea importarea fișierelor .WAV prin click drepta de mouse, moment în care este afișat un meniu care cuprinde adaugare și eliminare din listă, precum și editarea titlului piesei în tag.

În momentul în care lista a fost definitivată și sunt setați toți parametri, programul începe codarea unuia sau a mai multor fișiere, depinzând câte sunt în lista batch.

Fereastra de codare cuprinde numele fișierului care este codat în acel moment, poziția sa în listă, bitrate-ul selectat, modul de canale și procentajul activitățiide codare. Fereastra mai conține și un buton de renunțare la codare.

După ce toate elementele din listă au fost codate, este afișată o altă fereastră care confirmă corectitudinea procesului de compresie.

Pentru a rula în condiții optime, programul are nevoie de o configurație cât mai stabilă:

Computer care utilizează sistemul Microsoft Windows 9x

Procesor clasă Pentium

32 Mb RAM

HDD 4.3 Gb

Placă de sunet compatibilă Sound Blaster pe 16 biți

BIBLIOGRAFIE

The ISO/MPEG Audio Codec: A Generic Standard for Coding of High Quality Digital Audio (K. Brandenburg, G. Stoll) Viena ,1992

Digital Compact Cassette: Audio Coding Tehnique (G. C. Wirtz) New York, 1991

A Versatile High Quality Radio System for the Future Embracing Audio and Other Applications (G. Plenge) Berlin, 1994

Subjective Assessments of Low Bit-Rate Audio Codecs (C. Grewin, T.Ryden) Londra, 1991

Polyphase Quadrature Filters – A New Subband Coding Technique (J. H. Rothweiller) Boston, 1983

Coding of Moving Pictures and Associated Audio for Digital Storage (ISO/IEC International Standard 1993)

A Tutorial of MPEG Audio Compression (IEEE Multimedia Vol. 2)

MPEG Digital Audio Coding (P. Noll) Signal Processing Magazine, 1997

Subjective Evaluation of State-of-the-Art Two Channel Audio Codecs (G. A. Soulodre) 1998

Everything You Wanted To Know About MPEG-7 (F. Nack, A. Lindsay) IEEE Multimedia, 1999

A Mathematical Theory of Communication (C. E. Shannon) New York ,1948

A Method for the Construction of Minimum Redundancy Codes (D. A. Huffman) 1952

Text Compression (T. C. Bell, J. G. Cleary, I. H. Witten) 1992

Analysis of Arithmetic Coding for Data Compression (P. G. Howard, J. S. Witter) 1992

Audio Engineering Handbook (K. Blair, A. McGraw) 1988

Data Compression Using Adaptive Coding and Partial String Matching (J. G. Cleary, I. H. Witten) 1984

Audio Compression for Network Transmission (M. Dietz, A. Popp) New York, 1995

Improved MPEG-2 Audio Multi-Channel Encoding (J. Grill, J. Herre) Amsterdam, 1994

Layer-III, a Flexible Coding Standard (H. Eberlein, A. Popp) New York, 1993

Cochlear Mechanics (S.T. Neely) 1989

Low-Bitrate Audio Coding : A Comparision (Thomas Gleerup) 1997

Similar Posts

  • Analiza Sistemului Informational Existent

    Introducere Devenind o importantă resursă în dezvoltarea societăților, informația a evoluat mult în plan politic, economic, social și spiritual. Dinamismul și complexitatea acestor societăți antrenează o creștere continuă a volumului și diversității informațiilor. Informația economică că rezultat al muncii sociale poate fi considerată un serviciu productiv, consumat în activitatea informațională a organismelor economice. În procesul…

  • Baza de Date cu Anunturi Publicitare

    CUPRINS Capitolul I. Introducere Capitolul II. Limbaje utilizat 2.1.Servere si limbaje 2.1.1.Apache 2.1.1.1.Caracteristici 2.1.1.2.Opțiuni de configurare 2.1.1.3.Securitate 2.1.2.MySQL 2.1.2.1.Caracteristici 2.1.2.2. Arhitectura bazelor de date 2.1.3.PHP 2.1.3.1.Caracteristici 2.1.3.2.Editarea programelor PHP 2.1.3.3.Tipuri de date 2.1.3.4.Variabile si constante 2.1.3.6. Puncte forte ale limbajului PHP 2.1.3.7.Operatori 2.1.3.7.1. Operatori aritmetici 2.1.3.7.2. Operatori de atribuire combinați 2.1.3.7.3. Operatori de comparare 2.1.3.7.4….

  • Intranetul Si Extranetul

    CAP. I INTRANETUL SI EXTRANETUL NOTIUNI GENERALE I.1 Eficientizarea comunicarii si aparitia Intranetului si Extranetului “Prin Intranet se intelege utilizarea tehnologiilor Internet in vederea legarii intr-un tot unitar a resurselor informationale ale unei organizatii: de la teze la baze de date vechi la fluxul de munca si gestiunea documentelor.” (John Desborough) Definitia de mai sus…

  • Proprietatea Intelectuala Si Criminalitatea Informatica

    CUPRINS 1.Introducere 2.Latura penală a proprietății intelectuale 2.1.Faptele care constituie infracțiuni împotriva titularilor de drepturi de proprietate intelectuală, în legătură cu domeniul informaticii și jurisprudența națională 2.2.Pedeapsa amenzii în lumina noului cod penal 3.Elementele constitutive ale infracțiunii prevăzută de art. 139^9 din Legea nr. 8/1996, în domeniul programelor pentru calculator Introducere Dezvoltarea industrială depinde în…

  • Rassberry Pi,model B+

    CAPITOLUL 2. FUNDAMENTE TEORETICE 2.1. 2.1.1. Prezentare Geneală Piața microcomputerelor este în plină dezvoltare, deși initial nimeni nu a considerat microcomputerele o afacere profitabilă și nici de viitor. Dintre microcomputerele existente pe piață, cel mai celebru și , se pare cu cele mai mari vânzări , datorită utilizărilor pe care le are, este versiunea Raspberry…

  • Scheme de Codare ale Canalului Utran

    Scheme de codare ale canalului UTRAN (Universal Terrestial Radio Access Network) UMTS (Universal Mobile Telecommunications Systems) este un sistem de telefonie mobila 3G (Third Generation) si face parte din familia IMT-2000 (International Mobile Telecommunication 2000) a standardelor de comunicatii mobile de generatia a treia. Cele trei standarde special definite pentru 3G sunt: UMTS sau W-CDMA…