Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Algoritmul MPEG 1 Layer 3
Standardizari. Comprimarea fisierelor sunet
MPEG (Moving Picture Experts Group) impreuna cu Comitetul International pentru Comprimare Audio de Inalta Fidelitate, a adoptat la sfarsitul anului 1992 un algoritm MPEG Audio, ca parte a standardului general de comprimare audio-video sincronizat. El urmareste defmirea procesului de codificare/decodificare, la o rata medie de transfer de 1.5 Mbits/sec, stabilind o plaja larga de incadrare in parametri, a producatorilor de codificatoare/decodificatoare de semnal audio.
MPEG Audio nu restrictioneaza gama surselor audio. Sunt utilizate tehnici de compresie pe diferite tipuri de semnale audio, asigurand in acelasi timp si facilitatile de direct access, reverse si fast forward.
Retele de esantionare sunt cuprinse intre valorile de 32.44 - 48 KHz, si lucreaza cu unul sau doua canale, astfel:
Monofonic pe un singur canal;
Monofonic pe doua canale independente, realizand o functionalitate comparabila cu modul stereo;
Stereo pe canale stereo ce partajeaza semnalul, dar nu codifica stereo simultan;
Stereo simultan.
Se poate lucra cu rate de transfer predefinite, intre 32 si 224 KB/sec/canal cu un factor de comprimare intre 2.7 si 24, dar si cu rata de transfer libera. Pentru comprimare se pot utiliza trei nivele independente de comprimare, ce permit o corelare mai stransa intre complexitata codificarii si calitatea semnalului comprimat. Toate nivelele sunt implementate pe un singur chip, cu decodificare in timp real si pot utiliza optional detectia erorilor.
Activitatile de standardizare pentru codarea audio Hi-Fi
In acest capitol va fi descris algoritmul de codare pentru semnalele audio pentru standarul international ISO/IEC. Au fost stabiliti trei algoritmi standard pentru a fi utilizati in functie de numarul de canale si de frecventa de esantionare: MPEG-1 audio, MPEG-2 si MPEG-2 LSF. In functie de complexitatea si de calitatea realizata fiecare este clasificat in Leyer I/II bazat pe codarea pe sub-benzi si Leyer III bazat pe o combinatie intre codarea pe sub-benzi si codarea adaptiva a transformatei.
Transmisia eficienta si stocarea semnalelor audio sunt importante pentru citeva aplicatii cum ar fi audio digital, radiodifuziunea digitala prin satelit (DSB - Digital Satellite Broadcasting), stocarea semnalelor audio, conferinta la distanta si multimedia. ISO/IEC JTC 1/SC 29/WG 11 (the International Organization for Standardization/the International Electrotechnical Commission, 1st Joint Technical Committee, 29th Subcommittee, 11th Working Group) a studiat caile pentru proiectarea unui standard international pentru compresia semnalelor audio impreuna cu semnalele video sub 1,5 Mb/s. Rezultatul studiului, pentru doua canale de semnal cu frecventa de esantionare intre 32 kHz si 48 kHz, au fost publicate de ISO/IEC pe 1 august 1993 dupa aprobarea prin vot de tarile participante.
Acesta
este cunoscut ca MPEG/audio faza 1, sau
MPEG-1/audio. O parte a standardului MPEG-
Structura algoritmului MPEG audio
Algoritmul MPEG audio este constituit din trei
algoritmi diferiti: Layer I, Layer II si Layer III. Complexitatea creste de
Partea comuna intre
Layer I/II si Layer III este aceea ca algoritmii lor au la baza codarea pe
sub-benzi cu 32 de benzi. Numarul de canale este doi, iar frecventa de
esantionare este de 32, 44,1 sau 48 kHz. Aceste caracteristici reprezinta
algoritmul MPEG-1/audio care reprezinta baza pentru toate codurile. Plecind de
la algoritmul MPEG-1/audio, avind frecventele de esantionare 32, 44,1 si 48
kHz, a fost elaborat standardul MPEG-2 LSF care foloseste frecventele 16, 22,05 si 24 kHz. Crescind numarul de canale la 5 si prin imbunatatirea
canalului de joasa frecventa a fost elaborat standardul MPEG-2 MC. Numarul de
canale care pot fi manipulate de standardul MPEG-2/audio este denumit uneori
5,1, considerind ca imbunatatirea canalului este 0,1. Cind se compara
MPEG-2/audio cu MPEG-1/audio ca standard, MPEG-1/audio ar putea fi numit MPEG-2
In Fig. 3.2 este data schema bloc care descrie algoritmul MPEG-1/audio. Algoritmul se bazeaza pe codarea pe sub-benzi, iar impartirea pe sub-benzi este obtinuta cu ajutorul unui banc de filtrare polifazat (PFB - polyphase filter bank) cu un filtru in cuadratura in oglinada (QMF - quadrature mirror filter). Un semnal de intrare cuantizat liniar PCM pe 16 biti este translatat in domeniul frecventa in 32 de benzi. In acelasi timp limitele benzilor (denumite nivele de mascare) sunt calculate printr-o analiza psihoacustica pentru a obtine eroarea de cuantizare permisa. Semnalul divizat in sub-benzi este cuantizat si codat conform schemei de alocare a bitilor bazata pe modelul psihoacustic, este constituite in cadre, impreuna cu date auxiliare (ancillary data). Aceste date suplimentare nu sunt folosite pentru operatia codare si decodare, utilizatorul le poate folosi in alte scopuri. Pentru decodare, intii sunt separate datele suplimentare si apoi este dezasamblat cadrul.
Apoi este efectuata decodarea si decuatizarea pe bzaa bitilor alocati pentru informatie. Este refacut apoi semnalul temporal prine reunirea benzilor. In practica au fost definite trei tipuri de algoritmi, Layer I, Layer II si Layer III, pe baza structurii din Fig. 3.2 (vezi Fig. 3.3). Codarea pe sub-benzi, ponderarea psyhoacustica, alocarea bitilor si intensitatea stereo este folosita de toati algoritmii. Layer III foloseste in plus codarea transformatei cu lungime adaptiva a blocului, codarea Huffman imbunatatirea calitatii codarii pentru stereo.
Calitatea
sunetului depinde nu numai de nivelul algoritmului ci si de rata de bit
folosita. Au fost specificate 14 feluri de rate de bit de la 32 kb/s pina la
448 kb/s, 384 kb/s si 320 kb/s, pentru Layer I pina
Tabelul 3.1
Layer |
Target Bitrate (kb/s) |
I |
128, 192 |
II |
96, 128 |
III |
64, 96, 128 |
Algoritmul MPEG-1 audio
Formatul MP3
Inca din
1987, institutul Fraunhofer din
Formatul MPEG
Layer (MP1), prima
reusita a institutului, a fost folosit doar pentru casetele digitale
Philips DCC (Digital Compact Casette, un competitor al lui
MiniDisc-urilor Sony) intre anii 1992 si 1996. Urmasul sau, MPEG Layer 2 (MP2), a fost utilizat pentru
sonorul Video CD-urilor si a altor dispozitive multimedia, fiind relativ
raspandit si astazi in domeniul video. A treia versiune a standardului, MPEG Audio Layer , are avantajul unei calitati
ridicate la bitrate-uri scazute, ceea ce i-a adus o popularitate foarte
mare. Odata cu raspandirea Internet-ului si implicit a
retelelor de tip peer-to-peer (incepand cu Napster), fenomenul MP3
a luat amploare, devenind un mijloc eficient de transfer si stocare a
muzicii pe calculator. Perceptual coding este o
tehnica ce permite eliminarea cu o acuratete destul de mare a
sunetelor pe care urechea noastra nu le poate distinge, bazandu-se pe un model
psihoacustic, adica modul in care urechea umana percepe undele
sonore. In principiu, se cauta crearea unui astfel de model care sa
duca la inmagazinarea sunetului folosind cat mai putini biti; nu
se exclude posibilitatea unui sunet total diferit din punct de vedere matematic
(esantioane cu valori departate de original) in conditiile in
care urechea umana nu observa nici o diferenta. Am
retinut din capitolul anterior faptul ca, pe masura ce
punctele ce descriu functia sinusoidala a sunetului sunt mai
numeroase, curba devine mai precisa. Downsampling-ul reprezinta
eliminarea unui numar de esantioane sonore, in cazul scaderii de
doua ori a ratei de esantionare urmand sa fie eliminate
jumatate din sample-uri, din 2 in 2; curba rezultata are o precizie
mai redusa iar calitatea sunetului este in mod constant mai
scazuta. In schimb, in cazul compresiei MP3, sunt pastrate toate
aceste puncte, dar ele sunt puternic modificate fata de valorile
initiale, generandu-se un sunet apropiat de original, dar nu identic,
totul relativ la numarul de biti alocati. Pentru 128.000
biti (128 Kb) pe secunda se obtine o calitate multumitoare
a sunetului, pentru 8 Kb/s se obtine o calitate mai slaba decat cea
oferita de receptorul unui telefon. Altfel spus, aproximarea curbei
este determinata de un algoritm logic, creat special pentru urechea
omului, nu de o taiere barbara a esantioanelor.
Prin encoder intelegem un program (eventual un modul dintr-o suita de programe) care transforma (codeaza) un fisier necomprimat intr-unul comprimat, folosindu-se de un algoritm particular, care se supune unui standard (in cazul de fata MP3). Cu cat algoritmul de compresie este mai bun, cu atat sunetul rezultat va fi mai de calitate. Un encoder capabil va sti sa mascheze detaliile sonore nesemnificative si sa evidentieze tocmai ce urechea umana asteapta, si anume un sunet foarte apropiat de original, aparent identic; totul se reduce in principal la modelul psihoacustic implementat in encoder.
Sa vedem in
ce consta scaderea calitatii datorata compresiei MP3.
Ea genereaza aparitia de "goluri" in cazul frecventelor inalte,
ducand la aparitia a doua fenomene nedorite: aliasing-ul
si ringing-ul. Pentru a evita acest lucru, aceste frecvente
sunt pur si simplu eliminate din pasajul muzical, sunetul rezultat fiind
"inchis", foarte asemanator cu cazul downsampling-ului. Cu alte
cuvinte, downsampling-ul elimina prin natura sa frecventele inalte,
pe cand la compresia MP3 aceasta eliminare este necesara pentru
pastrarea calitatii sunetului in limite decente. In plus, chiar
daca aliasing-ul nu este suparator intr-un caz particular,
frecventele joase si medii sunt cele mai evidente intr-un pasaj
muzical, deci avem un motiv in plus pentru a nu ocupa relativ inutil bitii
(si asa putini) cu frecventele inalte. Aliasing-ul
este cauzat de faptul ca, prin compresia MP3, sunetele mai slabe sunt
eliminate, lasand locul celor mai puternice, pe care ascultatorul le
aude mai bine. Insa, de la un anumit prag, mai exact in momentul folosirii
unui bitrate prea scazut (deci encoder-ului ii este impus un numar de
biti pe care sa ii utilizeze), sunt eliminate si sunete mai
importante, pe care ascultatorul le aude in mod normal. Insa in
pasajul urmator (prin pasaj intelegem segmente de ordinul zecimilor
de secunda), sunt "extrase" alte sunete importante, ele fiind, in mod
evident, diferite fata de primul caz. Daca primul pasaj
contine o vioara solo, al doilea o vioara impreuna cu un
pian iar al treilea din nou vioara solo, in primul si al treilea se va
auzi clar vioara, iar in al doilea numai pianul pentru ca intensitatea
sonora a acestuia ii este superioara viorii. Drept urmare, vioara se
va auzi intrerupt in piesa cu pricina. Ringing-ul este un caz extrem al
aliasing-ului, obtinut la bitrate-uri foarte mici; diferenta de
intensitate de la un pasaj la altul fiind foarte mare, unda
Daca in cazul downsampling-ului si al conversiei de la 16 la 8 biti, calitatea oricarei bucati muzicale era cu aproximatie aceeasi fata de original, pe tot parcursul piesei muzicale, in cazul lui MP3 lucrurile stau altfel: in functie de numarul de instrumente care intra in ecuatie, de tipul lor sau, mai general, de genul muzical ascultat, compresia MP3 poate oferi o calitate excelenta sau poate "zgaria" urechile ascultatorului. O sonata pentru pian de Chopin nu are nevoie de prea multi biti, pe cand o orchestra intreaga, unde se suprapun zeci de instrumente, genereaza un sunet complex si greu de codat. Efectele compresiei le putem imparti in doua categorii: cele care modifica sunetul fara a oferi un sunet deranjant (prin schimbarea timbrului instrumentelor, prin eliminarea anumitor detalii muzicale sau prin taierea frecventelor inalte) si cele care distrug piesa muzicala, facand-o greu sau imposibil de ascultat din cauza imperfectiunilor mai mult decat evidente. Taierea frecventelor poate, teoretic vorbind, sa estompeze la nesfarsit scaderea calitatii datorate compresiei, insa sub un anumit prag muzica nu mai poate fi numita muzica, ci un amalgam de frecvente joase fara prea multa noima. De aceea, encoder-ul va realiza automat un compromis intre scaderea de calitate si scaderea benzii de frecvente. Derivat din aliasing este "umezirea" percutiei, instrumentele care o compun oferind la lovire un sunet asemanator cu cel perceput atunci cand aruncam un obiect usor in apa, asa cum putem observa si din acest exemplu (fenomenul este cunoscut sub numele de pre-echo). De asemenea, literele "s", "s" si "t" din vocea umana, instrumentele cu coarde dar si de suflat, aplauzele, precum si instrumentele care genereaza ecouri lungi si sunt combinate cu alte instrumente sau voci, sufera cel mai mult de pe urma compresiei.
O extensie a formatelor MPEG Layer 2 si Layer o reprezinta MPEG 2 si MPEG 2.5 (a nu se confunda cu layer-ele , 2 si ). MPEG (sau 1.0), versiunea clasica, este folosita pentru ratele de sampling de 32, 44 si 48 KHz, pe cand MPEG 2 (sau 2.0) pentru 16, 22 si 24 KHz, iar MPEG 2.5 pentru 8, 11 si 12 KHz. Pentru a simplifica lucrurile, un MP3 obisnuit, obtinut din copierea unei piese de pe un CD audio (operatie numita ripping) este un MPEG 1.0 Layer . Variantele 2.0 si 2.5 nu se pot obtine decat la rate de esantionare mai mici, neuzuale pentru muzica.
Algoritmul MPEG-1 Layer III
In Layer III au fost incorporate multe idei noi
pentru a imbunatati calitatea codarii fata de Layer I/II. In fig. 3.9 este prezentata schema bloc
pentru Layer III. Comparativ cu Layer I/II, Layer III foloseste transformata
cosinus modificata cu lungime adaptiva a blocului (MDCT), fluturele pentru
reducerea distorsiunii de aliere (alias distortion reduction butterfly),
cuantizarea neliniara si codarea cu lungime variabila (codarea Huffman). Toate
acestea contribuie la imbunatatirea rezolutiei in frecventa si la reducerea
redundantei. In rest procedura de baza se desfasoara ca
Semnalul cuantizat liniar PCM este impartit in 32 de benzi cu PFB si fiecare banda este in continuareste transformata in linii spectrale de banda ingusta cu MDCT pe blocuri de lungime adaptiva pentru reducerea ecoului. Blocurile de lungime 18 sau 6x3 sunt determinate pe baza analizei psihoaustice. Folosirea bancului de filtre hibride mareste rezolutia in frecventa de 32 de ori, la 32x18=576. Semnalul obtinut este prelucrat pentru reducerea distorsiunii de aliere si este apoi cuantizat liniar. Cascada formata din bancul de filtre, MDCT si reducerea distorsiunii de aliere este denumita banc de filtre hibrid (Hybrid Filter Bank - HFB). Cuanizarea eset insotita de o bucla iterativa pentru alocarea bitilor. Rata de bit a fiecarui cadru este variabila. Semnalul cuantizat este codat Huffman si organizat apoi intr-un cadru. La decodare este dezasamblat intii primul cadru, este decodat indexul tabloului Huffman si factorii de scala. Semnalul temporal este reconstruit pe baza semnalului cuantizat cu bancuri de filtre hibride.
Analiza psihoacustica
Analiza psihoacustica este executata pentru a gasi nivelele de mascare pentru fiecare componenta MDCT si pentru a determina lungimea blocurilor pentru MDCT. Se recomanda folosirea versiunii modificate a modelului psihoacustic II pentru Layer II.
Lungimea blocului este selectata pe baza entropiei psihoacustice, folosind teoria impredictibilitatii. Impredictibilitatea se masoara comparind spectrele cadrului temporal curent si anterior. In vecinatatea atacului unde se produce pre-ecoul forma spectrului difera intre doua cadre si entropia psihoacustica creste. Cind entropia depaseste o valoare predeterminata sistemul o evalueaza ca un nou atac si comuta MDCT pentru micsorarea blocurilor.
Sunt calculate nivelele de mascare schimbind parametrii interni in functie de lungimea blocului. Pentru reducerea complexitatii de calcul se foloseste FFT cu lungime 256 pentru blocurile scurte si 1024 pentru cele lungi.
MDCT cu lungime adaptiva a blocului si forma ferestrei
Pentru blocuri lungi este executata MDCT in 36 de puncte. 18 esantioane ale unei sub-benzi din granula cuernta sunt combinate cu 18 esantioane din granula precedenta. Datorita simetriei coeficientilor, numarul de iesiri distincte ale MDCT sunt 36/2=18. Pentru blocuri scurte numarul de esantioane de intrare ale MDCT este redus la 12 si intr-om granula se aplica de trei ori mai multe MDCT. Primele 6 esantioane sunt combinate cu ultimele 6 esantioane din granula anterioara. Numarul de iesiri independente pentru MDCT pe blocuri scurte este 18, la fel ca in cazul MDCT pentru blocuri lungi.
Sunt folosite patru feluri de functii fereastra: fereastra normala (Normal Window), fereastra de inceput (Start Window), fereastra de sfirsit (Stop Window) si fereastra scurta (Short Window). Pentru primele trei ferestre se aplica o MDCT in 36 puncte, iar pentru ultima se aplica o MDCT in 12 puncte. Pentru a obtine o transforamre fara zgomot fereastra de start trebuie plasata inaintea ferestrei scurte, iar fereastra de stop dupa fereastra scurta. In fog. 3.10 este prezentat modul de folosire a functiilor fereastra.
Reducerea distorsiunii de aliere in domeniul frecventa
Coeficientii MDCT pentru blocurile lungi sunt prelucrati cu un circuit de tip fluture (butterfly) pentru reducerea distorsiunii de aliere ca in Fig. 3.11. Aceasta operatie este executata pe 32 de sub-benzi mutual adiacente, folosind 8 benzi de esantioane din vecinatatile benzii. Coefiicentii circuitului fluture sunt dati de relatiile:
(10)
(11)
Valoarea lui ci este detrminata astfel incit ea devine mai mica cu cit distanta coeficientilor MDCT folositi devine mai mare.
Cuantizarea
In Layer III este folosita cuantizarea neliniara in locul celei liniare folosita in Layer I/II. Relatia dintre coeficientul invers cuantizat MDCT, x, codul i si factorul de scala este data de relatia
(12)
Formarea sirului de biti
Formatul sirului de biti in Layer III este aproximativ la fel ca in Layer II, iar dimensiunea cadrului este la fel. Fiecare cadru de 1152 esantioane este impartit in doua granule de 576 esantioane. Dupa antetul cadrului urmeaza informatia care este comuna ambelor granule si apoi informatia proprie fiecarei granule.
Dupa cum a fost aratat, psiho-entropia creste la cadrul care contine atacuri, iar cadrul necesita un numar mai mare de biti. In acest scop a fost introdusa o tehnologie denumita "rezervor de biti". Aceasta tehnologie foloseste volumul de informatii care este produs de fiecare cadru. Cind entropia creste intr-un cadru care contine un atac, sistemul foloseste bitii de rezerva ca o completare la bitii normali si apoi incepe stocarea unui numar mic de biti in cadrul urmator si ii pastreaza pina cind volumul ajunge aproape de nivelul maxim de stocare.
Codarea stereo
In standard, codarea stereo a fost specificata ca o optiune. Reducerea ratei de bit folosind corelatia intre canalul din stinga si din dreapta este realizata in modul "joint stereo". Acest mod este indicat in tabelul 3.4, corespunzator fiecarui nivel. Layer I/II au numai intensitate stereo, iar Layer III combina intensitatea stereo cu MS.
Tabelul 3.4
Layer |
Available stereo coding mode |
|
Layer I/II |
Intensity stereo |
|
Layer III |
Combined (intensity and MS) stereo |
|
Intensitatea stereo foloseste aceeasi forma insa date cu amplitudini diferite in sub-benzi intre semnalele stinga si dreapta, in locul semnalelor originale pe cele doua canale. Sunt pregatite patru moduri pentru a schimba sub-benzile pentru folosirea ca intensitate stereo, respectiv 4-31, 8-31, 12-31, 16-31. Sub-benzile dinaintea lor, cum sunt 0-3, 0-7, 0-11 si 0-15 sunt codte independent pentru fiecare canal.
MS stereo este cea mai simpla transformare ortogonala in doua puncte este folosita suma diferentei a doua semnale in locul semnalelor originale. Atunci cind corelatia intre ambele canale este mare este de asteptat un efect de compresie datorita distributiei neuniforme a energiei. In cazul stereo-ului combinat sistemul aduna suma totala a fiecarei FFT a ambelor canale, si o multiplica cu o constanta de valoare mare. Daca valoarea rezultata este mai mare decit diferenta puterii spectrale a celor doua canale, atunci sistemul selecteaza MS stereo. , si daca nu este sistemul selecteaza modul intensity stereo si executa codarea; de exemplu, cind raportul dintre semnalul suma anterior si semnalul diferenta este mai mare decit valoarea de prag prestabilita, sistemul selecteaza modul MS stereo.
Tehnici de imbunatatire a
formatului MP3 (VBR, Joint-Stereo)
VBR constituie prescurtarea de la variable bitrate. Pentru a intelege mecanismul bitrate-ului variabil trebuie descrisa structura unui fisier MP3. Frame-ul este unitatea indivizibila, prezenta in majoritatea formatelor ce stocheaza date, fie ele de sunet, film sau imagine. Un frame contine, in cazul formatelor lossy, informatiile cele mai reprezentative din unitatea de timp (in cazul sunetului) sau de spatiu vizual (pentru imagini). El poate avea dimensiune fixa sau variabila, in primul caz tehnica fiind numita CBR (constant bitrate), in al doilea caz VBR. La CBR, bitrate-ul este specificat de utilizator la inceputul codarii si toate frame-urile vor contine acelasi numar de biti, indiferent de nevoile reale. VBR detine avantajul modelarii numarului de biti in functie de necesitati; daca algoritmul "simte" ca sunt necesari mai multi biti pentru un frame, va genera un bitrate local mai mare sau mai mic. Cu alte cuvinte, CBR inseamna bitrate constant, calitate variabila, iar VBR inseamna bitrate variabil, calitate constanta. Pentru un MP3, exista cateva dimensiuni clasice ale frame-ului, indiferent ca este aleasa optiunea CBR sau VBR, cele mai reprezentative fiind de 96, 112, 128, 160, 192, 224, 256 si 320, si indiferent de nevoile reale sau de preferinta utilizatorului nu poate fi ales un bitrate intermediar. Exista cateva optiuni disponibile la codarea MP3 VBR. In primul rand, poate fi specificat un bitrate minim si unul maxim; astfel, indiferent de "dorinta" algoritmului, nu se va cobori sub valoarea minima si nu se va depasi valoarea maxima. Optiunea este utila in caz ca anumite pasaje sunt codate la un bitrate mic, algoritmul putandu-se insela in privinta nevoii de bitrate mic/mare. In al doilea rand, exista posibilitatea specificarii unui bitrate mediu dorit (ABR = average bitrate). Chiar daca bucata muzicala nu necesita acel numar de biti, se incearca, pe cat posibil, atingerea bitrate-ului specificat, ceea ce duce la o calitate mai scazuta decat in cazul VBR. Avantajul principal al lui ABR: se cunoaste de dinainte de codare dimensiunea (aproximativa) a fisierului rezultat, spre deosebire de VBR, care aloca mai eficient bitii dar da nastere unui fisier de dimensiune impredictibila. Joint Stereo (JS) este numele generic atribuit unor tehnici de codare prin care informatia stereo este prelucrata diferit fata de metoda clasica (stocarea independenta a celor doua canale). Aceasta ori prin indepartarea de informatie (in locul acesteia, bitii ramasi liberi fiind folositi pentru a stoca informatii legate de sunetul propriu-zis), ori printr-o codare alternativa, mai eficienta. Tehnica se foloseste de faptul ca, in majoritatea cazurilor, diferentele dintre cele doua canale nu sunt foarte mari. Intr-un caz extrem, in care fisierul codat contine doua canale (aproape) identice, aplicandu-se modul stereo simplu s-ar risipi inutil multi biti pretiosi. Metoda clasica de JS este denumita Intensity Stereo (IS), care uneste cele doua canale in domeniul frecventelor inalte, ducand per total la o senzatie intermediara dintre sunetul stereo si mono. Frecventele inalte sunt mai greu de perceput de catre om si de aceea in cazul lor este neglijata stereofonia. Metoda nu este recomandata decat atunci cand aceasta pierdere este mai convenabila decat o calitate foarte scazuta a sunetului, cu alte cuvinte in cazul bitrate-urilor mici. In general, e de preferat chiar si un sunet mono decat un aliasing sau ringing care practic distruge sunetul.
Mid/Side Stereo este o alta metoda de tip Joint Stereo (s-a incetatenit aceasta denumire desi M/S Stereo nu are nici o legatura cu unirea canalelor pe care o anunta cuvantul "joint") prin care encoder-ul transforma coordonatele "stanga" si "dreapta" in unele de tip "mijloc" si "lateral". Logica este bazata pe matematica de clasa a cincea: daca notam stanga cu L (left) si dreapta cu R (right), iar L si R au valorile a si b, aceste valori pot fi deduse din relatiile a' = (L+R)/2 (mijloc) si b' = (L-R)/2 (lateral), care devin variabilele principale. Asadar, in loc ca fisierul MP3 sa contina a-uri si b-uri, va contine a'-uri si b'-uri, informatia finala fiind refacuta intr-un mod similar. In realitate, formula depinde de la encoder la encoder, Lame folosind, spre exemplu, relatia (L+/-R)/sqrt(2) (sqrt = radical). Compresia este realizata ca si cum cele doua canale originale ar fi cel de mijloc si cel lateral. Avantajul consta in faptul ca avem de-a face cu o metoda alternativa de codare, care este selectata de la caz la caz. Daca stanga si dreapta sunt identice sau foarte apropiate, canalul lateral va fi zero sau aproape zero, numarul de biti alocati lui fiind foarte redus. Daca stanga si dreapta difera foarte mult, este mai eficienta folosirea modului stereo simplu, iar acest lucru il decide encoder-ul pentru fiecare frame. De retinut faptul ca M/S Stereo nu determina cresterea calitatii sunetului decat in modurile CBR si ABR, cand encoder-ul este limitat la un numar (maxim) de biti. In cazul lui VBR, folosirea sa doar va scadea dimensiunea fisierului final (bitrate-ul mediu va fi mai mic).
Lame, cel mai bun encoder MP3, lucreaza exclusiv cu modurile Mid/Side Stereo si Stereo "normal". Utilizarea lui M/S Stereo este recomandata la orice bitrate pentru ca, in cel mai nefericit caz (imposibil de intalnit in practica), calitatea M/S Stereo va fi similara modului stereo simplu. Totusi, prima varianta (IS) - neimplementata in Lame, desi elimina multa informatie stereo, salveaza mai multi biti decat M/S Stereo, folosirea ei fiind destinata bitrate-urilor foarte mici (de 96 kbps sau mai putin). Exista si alte tipuri de JS, numite Narrowing of Stereo Image si Simple Stereo, care elimina aproape complet informatia stereo, utilizarea lor nefiind recomandata decat in situatii speciale. In cealalta directie se afla modul Dual Channel (nici o legatura cu controller-ele de memorie). Cea mai simpla explicatie rezulta dintr-un exemplu: avem un MP3 stereo (JS sau Stereo). Pentru canalul din stanga, care contine o informatie audio mai simpla, este alocat un procent de doar 40% din numarul de biti, pentru cel din dreapta ramanand disponibili 60%. Prin Dual Channel, ambele canale vor primi exact jumatate din numarul de biti, indiferent de diferentele de complexitate, rezultand, evident, o calitate mai scazuta decat in cazul stereo normal. Folosirea acestei optiuni nu are sens decat daca cele doua canale sunt total diferite (canale de sunet ale unui film in limbi diferite).
Evolutia lui MP3 si encoder-ele existente
Desi a fost dezvoltat initial de catre institutul Fraunhofer si a patruns pe piata in 1994 (prima versiune dateaza din 13 iulie 1994), specificatiile formatului au iesit la lumina si au permis crearea de diverse encodere care se supun standardului (deci fisierele create pot fi decodate de orice player care cunoaste formatul MP3). Programul L3ENC, dezvoltat de institut si avand o interfata la nivel de linie de comanda DOS, a intrat in istorie pentru o calitate exceptionala a codarii si o viteza foarte slaba. Ulterior, firma Xing Technology a lansat un program comercial, Xing Audio Catalyst, ce oferea posibilitatea extragerii pieselor muzicale de pe CD direct in format MP3. Succesul sau a fost foarte mare datorita vitezei impresionante, insa s-a pierdut din vedere calitatea audio, inferioara lui Fraunhofer (pe numele complet Fraunhofer-Gesellschaft, de unde si prescurtarea FhG). Mai mult, au aparut pe piata encodere foarte slabe calitativ, precum Blade sau Plugger+, dezvoltate cu scopul de a oferi o alternativa freeware la programele comerciale si putem spune ca ele si-au indeplinit scopul. Cine dorea calitate, platea pentru Fraunhofer, cine dorea viteza opta pentru Xing, cine era interesat de ceva gratuit avea de asemenea de unde alege. Totul pana cand Lame (Lame Ain't an MP3 Encoder), un encoder open-source, a depasit FhG din punct de vedere al calitatii si s-a apropiat de Xing ca viteza, aducand toate agumentele in favoarea sa. Dezvoltandu-se permanent si fiind gratuit, el a fost adoptat de multe software-uri, in acest moment fiind liderul incontestabil in ceea ce priveste codarea MP3.
Inceputurile lui
Lame dateaza din 1998, cand un anume Mike Cheng a modificat
surselele standard de codare MP3, primele versiuni de Lame fiind simple patch-uri
aplicate codului original. Cu timpul, Lame a fost imbunatatit de
numerosi programatori, codul fiind rescris si adaugandu-i-se
facilitati deosebite, precum tehnica VBR. In anul 2000, el a
depasit din punct de vedere al calitatii concurentul direct
sub acest aspect, FhG, in diversele sale variante, majoritatea comerciale.
Chiar daca lucrul la Lame nu a incetat, versiunile noi apar rar si
sunt mai mult experimentale, ultimele imbunatatiri majore fiind
realizate in anul 2001.
Singurul punct slab al lui Lame este absenta
tehnicii Intensity Stereo (IS), detaliata anterior, tehnica ce
ofera posibilitatea diverselor versiuni de FhG care o au implementata
sa surclaseze Lame-ul la bitrate-uri foarte scazute (de ordinul a 64
kbps).
Initiatorul lui Lame a preferat sa se axeze pe formatul MP2, initiand proiectul tooLame, care nu a avut succes mare, calitate foarte buna, superioara lui MP3, fiind obtinuta doar la bitrate-uri foarte mari. Totusi, el are cateva avantaje clare fata de encoder-ele clasice MPEG Layer 2, precum suportul VBR si calitatea aproape de maximul care se poate obtine folosind acest format.
Dupa cum
spuneam anterior, formatul MP3 se afla spre finalul dezvoltarii sale,
cresteri semnificative de calitate nemaiputand avea loc. Desi
maturitatea a fost desavarsita de Lame, versiunea
initiala nu se afla departe de maximul atins ulterior. In schimb,
diversele encodere gratuite dar de calitate indoielnica au crescut
popularitatea formatului si au impanzit piata. De exemplu, multe
reviste si site-uri declarau encoder-ul de la Xing castigator,
pornind pe ideea ca utilizatorul este interesat in cea mai mare
masura de viteza, calitatea fiind "tot pe acolo". Si
intr-adevar, pentru cei mai multi consumatori de muzica
(adica cei cu boxe cat
- 96 kbps - Near CD-Quality, good choice for portable MP3 Players
- 112 kbps - CD-Quality, best choice for portable MP3 Players
- 128 kbps - CD-Quality, best choice for most users
- 160 - 192 kbps - Archival quality for high-end stereos
- 224 - 320 kbps - Archival quality for highest-end
stereos
Personal, detin un sistem audio extrem de departe de pretentiile unuia high-end, fara a mai vorbi de acel "highest-end", si totusi un MP3 la 160 kbps generat de acest encoder imi pare a avea o calitate sub limita acceptabilului. Mai departe, citim in help-ul acestui software: "MPEG files are smaller than other digital multimedia formats, so they use less disk space while maintaining the quality of the original source." La prima vedere, orice necunoscator isi va imagina o compresie fara pierdere de calitate, bazata pe un algoritm senzational care reduce spatiul ocupat de orice melodie la 9% din original. Nimic mai fals.
Sa trecem la urmatorul "inculpat", Blade Encoder. Homepage-ul sau este https://bladeenc.mp3.no, unde aflam ca encoder-ul nu mai este dezvoltat. Mai departe gasim urmatoarea fraza: "BladeEnc is a very different mp3 encoder (compared to Fraunhofer, LAME etc) with a very unique approach to mp3 encoding." De asemenea, sunt criticate encoder-ele Xing si Gogo (o versiune veche de Lame care a cunoscut o dezvoltare separata, oferind o calitate destul de buna), despre care se mentioneaza ca au o calitate scazuta tocmai din cauza vitezei mari de codare: "The fastest encoders like Xing and Gogo are still much faster than BladeEnc, but they have to some extent compromised quality for speed." Orice test, si folosind nu sisteme audio hi-fi ci boxe de cativa dolari, va dovedi faptul ca fisierele codate cu BladeEnc au o calitate extrem de slaba chiar si la 320 kbps, mult sub Gogo, Xing si alte encodere, singurul concurent cunoscut fiind probabil Plugger+, despre care nu am gasit prea multe informatii dar care oricum nu este prea raspandit. Dar inutil, citam dintr-un review al lui BladeEnc: "Rock solid with high bit rates and excellent quality" Pentru cine vrea sa se convinga, am ales un exemplu poate putin exagerat, folosind bitrate-ul de 96 kbps, dar foarte edificator: Lame 96, Blade 96. Iar pentru cei cu urechi mai sensibile, avem alt exemplu: Lame 128 vs. Blade 320. Sunetul este foarte apropiat, dar putem sesiza in cazul lui Blade percutia mai "uda" decat in cazul lui Lame, desi bitrate-ul celui dintai este de 2,5 ori mai mare. Daca tineti cu orice pret, puteti asculta si un Blade la 128. Mai amintim de 8Hz-MP3, CannaMP3, M3E, SCMPX, Uzura, SoloH, X-Codec si lista probabil ca este mult mai mare. Toate aceste encodere au avut o raspandire restransa, o calitate si eventual o viteza nesatisfacatoare, dezvoltarea lor fiind oprita de obicei din motive legale, Fraunhofer avand o politica de licentiere menita sa descurajeze astfel de incercari.
Encoder-ele se prezinta ori sub forma de program in linia de comanda, ori ca plugin (de obicei constand intr-un fisier DLL), utilizat de audio grabbere (programe care extrag de pe CD-uri piesele muzicale) precum CDex sau EAC (Exact Audio Copy), sau pur si simplu de frontend-uri (aplicatie special dedicata usurarii utilizarii alteia, oferind o interfata grafica user-friendly). De asemenea, soft-uri de scriere a CD-urilor, precum Nero, contin module de compresie/decompresie audio, ce permit comprimarea pieselor, respectiv scrierea directa pe CD a fisierelor comprimate (fara a fi necesara o decompresie care ar consuma timp si spatiu pe hard disk).
Setari recomandate pentru codarea MP3
Indiscutabil, cel mai bun encoder MP3 este Lame. De aceea, ne vom referi in continuare doar la acesta, orice alt produs neaducand vreun avantaj major pentru a se justifica utilizarea sa, decat cel mult anumite versiuni de FhG la bitrate-uri foarte mici. Versiunile recomandate a encoder-ului Lame sunt 3.90. si 3.96. , care pot fi descarcate de aici. A doua este mai rapida si ofera imbunatatiri de calitate in unele situatii, in schimb prima este cea mai testata si ofera siguranta deplina unui sunet bun, desi uneori nu cel mai bun. Pentru extragerea pieselor muzicale de pe CD (audio-grabbing) si convertirea lor in MP3 se recomanda EAC (Exact Audio Copy), care are avantajul de a oferi siguranta unei copieri lipsite de erori, aceasta daca sunt folosite setarile recomandate. Unele utilitare asemanatoare, de exemplu CDex, necesita un fisier DLL, inclus in arhiva Lame, si care va fi apelat pe parcursul codarii.
Pentru inceput va trebui sa va hotarati asupra dimensiunii alocate fisierului comprimat. Cu alte cuvinte sa alegeti bitrate-ul, in functie de "finetea" urechii, calitatea placii de sunet, a boxelor sau a castilor la care ascultati muzica precum si de spatiul pe care vi-l puteti permite pe disc. Tineti cont ca in viitor este posibil ca pretentiile sa va creasca, eventual odata cu un upgrade hardware, iar prietenii carora le veti imparti MP3-urile este la fel de posibil sa prefere un bitrate mai ridicat, fiind mai pretentiosi. Comanda corecta pentru compresia cu Lame (pe care o veti introduce in optiunile lui EAC sau, daca doriti, o veti executa de la prompt-ul DOS) este Lame fisier_input.wav [fisier_output.mp3] (ultimul parametru este optional). Daca aveti un hard disk de minim 120 GB pe care intentionati sa il folositi in mare parte pentru stocarea muzicii, puteti folosi fara probleme bitrate-ul constant de 320 kbps oferit de Lame care, impreuna cu setarea Joint Stereo, ofera calitatea maxima care poate fi obtinuta cu ajutorul formatului MP3, foarte apropiata de cea a CD-ului audio. Daca aceasta calitate nu va satisface, nu va ramana decat optarea pentru alt format de compresie, eventual pentru unul lossless. Parametrul pentru acest tip de codare este --alt-preset insane. De fapt, acest preset reprezinta o combinatie intreaga de parametri, insa pentru simplificare s-au creat cateva standarde de calitate, printre care este si cel "insane". Daca doriti o dimensiune mai mica a fisierelor, aveti optiunea --alt-preset extreme, din care rezulta MP3-uri la un bitrate de aproximativ 220-270 kbps, fiind folosita tehnica VBR. Pentru cei mai putin pretentiosi si/sau care tin la spatiul ocupat, exista optiunea --alt-preset standard, care ofera, de la caz la caz, un bitrate mediu de 180-220 kbps, in functie de piesa codata. Daca doriti sa specificati un anume bitrate mediu, puteti folosi tehnica ABR, sub forma parametrilor --alt-preset 240 (sau orice alt bitrate) dar calitatea va fi mai scazuta decat in cazul VBR. Exista, de asemenea, o setare special conceputa pentru player-ele portabile, si anume --alt-preset standard -Y, care limiteaza spectrul de frecvente la aproximativ 16 KHz, oferind un bitrate de circa 160 kbps; frecventele mai inalte sunt practic insesizabile in medii zgomotoase, adica cele in care MP3 player-ele sunt adesea purtate. Cresterea maxima de calitate este inregistrata pana la 192 kbps, dupa care pentru un plus de cateva procente de acuratete poate fi necesar un spatiu mult mai mare. Totusi, cei mai pretentiosi vor opta probabil pentru preset-ul "extreme", care reprezinta un compromis foarte bun intre calitate (excelenta, de altfel) si spatiu ocupat. Ca o paranteza, parametrii sub forma de cuvinte sunt precedati de doua liniute iar cele care constau intr-o litera au nevoie de una singura. Regula este preluata din lumea Linux-ului.
Tehnica VBR
detine avantajul faptului ca nu detine vreo limitare in
privinta bitrate-ului (decat la cel de 320, prevazut de standardul MP3), ci doar o recomandare
vaga. Pentru un fragment de pian solo, in cazul preset-ului "extreme", va
rezulta un bitrate din zona lui 220; in schimb, o combinatie de
instrumente complet diferite (cu coarde, de percutie, de suflat), eventual
impreuna cu vocea umana, va produce bitrate-uri mai apropiate de 270
kbps (si fara a fi limitate la acest numar, care este
orientativ). In schimb, optiunea ABR 240 de exemplu, va produce
bitrate-uri medii foarte apropiate de valoarea 240, cu plus sau minus maxim 10
kbps. Cu alte cuvinte, o piesa greu de codat va avea o calitate mai
scazuta decat una usor de codat, chiar daca ambele sunt
cantate de aceeasi formatie si se afla pe acelasi
album.
Nu se recomanda folosirea de bitrate-uri sub 192
(decat cel mult ca VBR, in jur de 170-180). Daca ar fi sa facem o
statistica privind proportia de fisiere MP3 din toata lumea
la bitrate de 128, vom afla ca procentul lor este peste jumatate,
poate trei sferturi din numarul total. Totusi, lumea muzicii digitale
a progresat odata cu progresul tehnicii de calcul, in zilele noastre
placile de sunet de calitate (incluzand chiar si "amaratul" de
AC '97, integrat pe placile de baza) fiind mult mai numeroase decat
in trecut. Acelasi lucru se poate spune si despre boxe, 20-30$
cheltuiti pe acestea intr-un sistem de minim 400$ nu creeaza o
gaura in buzunar. Toate aceste dispozitive fac ca sunetul sa fie
redat mai fidel, iar in aceste conditii un MP3 la 128 kbps isi
dovedeste rapid limitarea in privinta calitatii, mult mai
evident decat cu cativa ani in urma, cand el era ascultat pe o
placa de sunet cu un chip antic ESS si pe o pereche de boxe de
dimensiuni foarte mici. Daca inca nu v-ati convins,
incercati sa socotiti spatiul pierdut in cazul in care
veti recurge la un bitrate de 192 in locul celui de 128. Presupunand
ca aveti un hard disk plin cu fisiere MP3 la 192 kbps, aceeasi
cantitate de muzica obtinuta la 128 kbps cu un HDD de 80 GB o
puteti avea prin inlocuirea acestuia cu unul de 120 GB. Care este
diferenta de pret?
Bitrate-urile mai
mici de 128 nu sunt utile decat cel mult pentru MP3 player-ele portabile, in
caz ca tineti cu orice pret sa inghesuiti pe ele
mai multe ore de muzica. Insa alte formate ofera o calitate mult
mai buna in acest caz, singura problema fiind suportul oferit din
partea player-ului. Mai mentionam posibilitatea crearii de
fisiere MP3 la bitrate-uri mai mari de 320 cu ajutorul optiunii
--freeformat bitrate de care dispune encoder-ul Lame. Dezavantaje:
incompatibilitate cu majoritatea player-elor (in cazul lui Winamp, doar plugin-ul MAD este capabil sa le
decodeze), calitate nu cu mult crescuta fata de MP3 320, in timp
ce bitrate-ul poate atinge maxim 640 kbps, zona in care formatele lossless
ofera o calitate superioara. Concluzionand, free format MP3 a
fost un experiment si nimic mai mult.
Performanta standardului MPEG-1/audio
A fost facuta evaluarea subiectiva folosind
hardware-ul pentru fiecare nivel, pentru 128, 96 si 64 kb/s, in mai 1991
Tabelul 3.5
Score |
Quality |
5.0 |
Imperceptible |
4.0 |
Perceptible, but not annoying |
3.0 |
Silightly annoying |
2.0 |
Annoying |
1.0 |
Very annoying |
Activitati viitoare de standardizare
Activitatile de standardizare MPEG ((Motion Picture Experts Group, rom: grupul expertilor in filme) au condus la obtinerea unei transmisii/stocari audio transparente de 96-128 kbps/canal. Numarul de canale suportate este 6. Aceste tehnologii sunt acum prezente pe piata. De exemplu el este folosit in inregistrarile video pe CD-ROM si in transmisiunile audio intre statiile de radiodifuziune. Dar piata continua sa evolueze. In consecinta cerintele pentru algoritmi de compresie de mare eficienta se mentin si in continuare. In acest scop MPEG dezvolta in prezent MPEG-2/AAC si MPEG-4 cu obiectivul obtinerii unei codari transparente la 32kbps/canal.
Bibliografie:
Andrew S. Tanenbaum - Retele de calculatoare Ed. a-IV-a.
Curs-Algoritmi si tehnologii multimedia - sursa :
Curs- Tehnici multimedia- sursa:
Copyright © 2024 - Toate drepturile rezervate