CATEGORII DOCUMENTE |
COMPRESIA AUDIO
Compresia audio
Compresia in general
Inca din anii '80, la scurt timp de la aparitia primului PC, s-a constatat faptul ca spatiul disponibil pe orice mediu ce poate stoca date (hard disk, discheta, streamer, unitate optica) devine insuficient intr-un timp relativ scurt. Obtinerea unui dispozitiv de stocare de capacitate mai mare nu reprezinta mereu o solutie pentru ca implica niste costuri mari sau o manevrare greoaie (mai ales in cazul dischetelor), fara a mai vorbi de faptul ca nu toate mediile sunt sigure - dischetele, spre exemplu, avand sanse majore sa se defecteze dupa un timp oarecare. Asa s-a nascut ideea de comprimare (compresie) a datelor, informatiile putand fi arhivate, ocupand un spatiu mai mic decat cel initial. Nu vom face o istorie a programelor care au inlesnit aceasta operatie, vom mentiona doar faptul ca PKZIP si ARJ au dominat perioada de sfarsit a anilor '80 si cea de inceput a anilor '90, urmand ca apoi, dupa 1995, sa apara doua noi soft-uri dedicate acestui scop, cu performante superioare celor doua amintite anterior: RAR si ACE.
Odata cu aparitia
Internet-ului, a aparut o noua utilitate a compresiei:
viteza liniei telefonice (sau a oricarei alte modalitati uzuale de transmitere
din anii '90) era foarte mica, incompatibila cu volumul de date dorit a se
descarca din reteaua mondiala. In prezent, un program ce ocupa 20 MB va
necesita o durata de transfer de circa o ora pe o conexiune obisnuita dial-up,
timpul fiind injumatatit in cazul in care el este comprimat. Se
economisesc astfel bani si timp. Chiar si modemurile realizeaza intern
compresie, dar ea este departe de performatele lui
WinRAR sau WinACE, spre exemplu.
Desigur, in cazul comprimarii software este necesara decomprimarea ulterioara, operatie care
necesita timp. Exista in schimb posibilitatea comprimarii transparente, datele
fiind supuse acestei operatii fara ca utilizatorul sa
stie acest lucru. Cu alte cuvinte, datele sunt comprimate si decomprimate
automat - evident, cu o scadere mai mult sau mai putin observabila a vitezei de
lucru, dar avantajul este clar: utilizatorul nu mai trebuie sa-si bata capul cu
compresia, pur si simplu ruleaza programul de compresie si acesta face totul
pentru el. Acest mod de comprimare a datelor se numeste comprimare in timp
real.
Pornind
de la aceasta idee, comprimarea in timp real poate fi totala sau partiala.
Cel mai bun exemplu de comprimare totala in timp real o reprezinta compresia
unei partitii, utilizandu-se un software precum
DoubleSpace, DriveSpace, Stacker etc. Dezavantajele sunt
majore si constau in posibilitatea redusa de control si riscul mare de pierdere
a datelor. Probabil ca autorii acestor soft-uri nu au considerat
necesara dezvoltarea lor la un nivel de calitate
ridicat, astfel ca ele au disparut de cativa ani buni.
Compresia partiala in timp real poate fi
exemplificata prin sistemul de comprimare furnizat de Windows 2000/XP, sistemul
de operare oferind posibilitatea micsorarii spatiului pe care datele il ocupa,
prin intermediul sistemului de fisiere NTFS, aceasta cu pretul scaderii (de
obicei nesemnificative) a vitezei de lucru.
Comprimarea poate fi realizata la nivel de fisier, deci daca aveti
pe hard disk date folosite rar puteti opta pentru aceasta solutie.
Tot comprimare partiala putem numi cazul in care un fisier este comprimat initial, el urmand
sa fie decomprimat automat la apelare. Programul decodor,
care decomprima automat informatiile, lucreaza perfect transparent,
utilizatorul neluand la cunostinta faptul ca datele sale nu sunt in forma pura
ci codificate printr-un algoritm de compresie. Astfel de exemple sunt
formatele imagine (JPG, GIF, PNG), video (AVI, MPG, MOV) si de sunet (MP3, MPC,
OGG etc).
Cum se realizeaza compresia datelor?
Sa presupunem ca
avem un fisier ce contine sirul de caractere "AAABBBBBCCCDDDDEFF".
O metoda de comprimare a sa o reprezinta alaturarea
numarului de repetitii cu litera in cauza, rezultand "3A5B3C4D1E2F". Am economisit 6 bytes, adica 50% din spatiul ocupat.
Desigur, exemplul este banal, comprimarea decurgand pe
baza unor algoritmi mult mai complecsi si mai eficienti (Huffman, Lempel-Ziv si
altele - daca sunteti interesati puteti gasi informatii utilizand motorul
de cautare Google).
Sa luam alt exemplu: sirul "AAABBBBCCCDDDEEFFFGGG".
Observam ca fiecare litera este repetata de trei ori, cu exceptia lui "B" si
"E", care au factorul de repetitie 4 si respectiv 2. In cazul in care factorul
ar fi tot 3 am obtine, dupa un algoritm banal "3(ABCDEFG)"
in loc de "3A4B3C3D2E3F3G", economisind mai mult spatiu. Problema se
pune daca ne putem lipsi de informatia legata de exceptia de la "regula celor
3", obtinand o compresie cu pierdere, fisierul decomprimat ulterior nefiind
identic cu cel original. In cazul programelor, acest lucru este imposibil, un
singur bit modificat ducand in general la imposibilitatea programului de a rula
sau eventual la un comportament anormal; cum ar fi daca unele din literele care
compun cuvintele din meniul unei aplicatii sa fie schimbate sau in cadrul unui
program dedicat matematicienilor numarul pi sa aiba o valoare "usor" schimbata,
de exemplu 3.10 sau 3.25? In cazul fisierelor ce
contin date de tipul filmelor, imaginilor sau sunetului, lipsa unor informatii
poate fi trecuta cu vederea (sau cu auzul, dupa caz). Exemple
clasice sunt formatele de compresie video si audio cu pierdere de calitate - lossy,
precum JPG, MPG, MP3. Prin opozitie, comprimarea fara
pierdere poarta numele de lossless.
Ratele de compresie variaza de la fisier la fisier. Spre exemplu, un BMP complet alb va fi comprimat la mai putin de 1% (fisierul-arhiva va avea o dimensiune de minim 100 de ori mai mica decat cel initial). Un program executabil va avea o rata de circa 50% iar un text de circa 30%. Un fisier deja comprimat nu mai poate fi redus inca o data - decat cu foarte putin si doar in unele cazuri - rezultand deci o compresie de 95-100% sau, mai grav, de peste 100%. Ceea ce inseamna ca aplicarea algoritmului de compresie a determinat cresterea si nu scaderea dimensiunilor, caz in care programul de arhivare sesizeaza acest lucru si aplica metoda store, adica fisierul respectiv este inclus in arhiva in forma sa initiala, necomprimata.
Reprezentarea digitala a sunetului. Primele formate de compresie audio
Comprimarea unui WAV
folosind un algoritm lossless clasic este o operatie
destul de ineficienta. Prin WAV ne referim la un
fisier cu extensia WAV, ce contine muzica, o copie fidela a unui CD audio. Pentru o mai buna intelegere a fenomenului, vom reda in continuare
elementele principale ale stocarii muzicii in format digital.
Un fisier WAV contine un
numar imens de esantioane (sample-uri), fiecare fiind codificat pe 2
bytes (16 biti). Intre aceste sample-uri se poate trasa o functie sinusoidala,
care reprezinta unda
Explicatia pentru cele 44100 de esantioane pe secunda
sta in faptul ca omul poate percepe, in cel mai bun caz, frecvente de pana la
22 KHz. Pentru functia sinusoidala necesara formarii sunetului trebuie sa avem un numar suficient de puncte descriptive, care
reprezinta niste maxime si minime locale. Strictul necesar (dar nu si
suficient) pentru ca functia sa poata fi reconstituita
este un numar de sample-uri egal cu dublul frecventei dorite (cate un sample
pentru minim si cate unul pentru maxim). Sa luam exemplul unui ton perfect,
care este redat grafic printr-o functie sinus
perfecta.
Imaginea reprezinta un ton cu frecventa de 22050 Hz la o rata de esantionare de 44100 Hz. Scaderea cu 1 Hz a esantionarii duce la imposibilitatea pastrarii sunetului la frecventa dorita, fiind redate doar cele inferioare (inexistente in acest exemplu). Regula descrisa anterior poarta numele de Legea lui Nyquist.
44 KHz 6 KHz
Am exemplificat in imaginile de mai sus o secventa audio complexa, reprezentata in 44 KHz si respectiv 6 KHz. Numarul de esantioane fiind mult mai mic in cel de-al doilea caz, sunetul este puternic denaturat, fiind pastrate doar frecventele joase. Prin upsampling (cresterea fortata a ratei de esantionare) se poate obtine, prin interpolare, un sunet mai bun, dar totusi departe de original deoarece o mare parte din informatia audio este pierduta iremediabil. Aceasta intrucat curba rezultata este foarte aproximativa, cu mai putine "urcusuri" si "coborasuri", mai aproape de reprezentarea unei functii trigonometrice simple.
44 KHz -> 6 KHz -> 44 KHz
Putem face o
analogie intre rezolutia unei imagini si rata de esantionare a unui sunet: la o
rezolutie mare, exista un numar mai mare de pixeli
care descriu imaginea, deci nivelul de detaliere este mai ridicat.
Pentru a intelege mai bine
efectul, puteti asculta cele patru secvente audio, la 44, 22, 11 si 6 KHz.
Alta caracteristica
a unui fisier WAV este rezolutia sa. Ca si in cazul
adancimii de culoare a imaginilor, unde mai multe
culori inseamna o imagine mai aproape de realitate, mai multi biti alocati unui
sample inseamna un sunet mai "precis". In cazul uzual, sunt folositi 16 biti (2
bytes); pentru domeniul Hi-Fi este folosita rata de 24
sau chiar si 32 de biti (3, respecitiv 4 bytes). In trecut era utilizata
rezolutia de 8 biti, deci fiecarui esantion ii era alocat un
singur byte.
Daca in cazul trecerii de la 16 la 24 sau 32 de biti
diferentele nu se observa asa de usor, odata cu scaderea la 8 biti va aparea un
zgomot de fond suparator, asa cum puteti vedea in aceste exemple: original, 8
biti. Cu alte cuvinte, un sample poate lua 65536 de
valori (2 la puterea 16) in cazul rezolutiei de 16 biti si doar 256 de valori
in cazul al doilea.
O metoda de a imbunatati calitatea slaba datorata acestei scaderi de
rezolutie este dithering-ul,
adica generarea unui alt zgomot de fond, care sa "niveleze" sunetul; chiar daca
zgomotul final va fi mai puternic, el va fi constant, oferind senzatia ca
exista doua surse sonore: sunetul propriu zis si generatorul de zgomot. In primul caz, fara dithering, apare des senzatia unui sunet
neclar, fenomen de multe ori mai suparator decat dithering-ul.
Nivelul de dithering poate fi ales dupa necesitati, un nivel prea mare crescand zgomotul de fond, ceea ce
evident ca nu este de dorit.
Putem afirma ca, din anumite puncte de vedere, scaderea ratei de esantionare
sau a rezolutiei reprezinta o compresie a sunetului cu pierdere de calitate
pentru ca sunt eliminate o serie de aspecte ale sunetului astfel incat
rezultatul final nu difera in mod fundamental de original. Cine doreste sa pastreze doar informatia redata de vocea umana, poate
seta fara grija 8 KHz cu 8 biti si mesajul transmis va fi inteles fara
probleme.
Spatiul ocupat de un WAV
necomprimat intr-o secunda este calculat astfel (in paranteza am trecut
valorile standard in cazul unui CD audio): sampling rate (44100) * numarul de
biti (16) * numar de canale (2 = stereo). Avem, astfel, 1.411.200 biti (sau
176.400 bytes) pentru muzica de pe un CD audio, ceea
ce inseamna 1378,125 kilobiti/s. Am ajuns aici pentru a defini unitatea de
masura acceptata in compresia audio: numarul de kilobiti pe secunda (kbps),
numit si bitrate. Asa se explica bitrate-ul 14H
afisat de player-ul Winamp in timpul redarii majoritatea fisierelor WAV (H
fiind considerat multiplicatorul de 1000).
O metoda de
compresie larg raspandita in trecut in telefonie era oferita de algoritmii A-Law
(folosit in
16 biti 8 biti μ-Law
Desigur, metoda este excelenta pentru telefonie sau alte domenii unde e nevoie de un algoritm de procesare cat mai simplu, dar solutia nu este viabila pentru muzica din simplul motiv ca nu este obtinuta o calitate satisfacatoare pentru aceasta.
ADPCM (Adaptive
Differential Pulse Code Modulation) este un
algoritm superior, conceput tot pentru domeniul telecomunicatiilor. Stramosul sau, DPCM, se baza pe faptul ca diferentele
dintre doua esantioane succesive sunt in general mici si pot fi reprezentate pe
mai putini biti. ADPCM este o imbunatatire a
acestuia, ce foloseste un algoritm mai complex pentru predictia esantioanelor
urmatoare, minimalizand astfel scaderea calitatii. La volum redus, unde
diferentele dintre sample-uri sunt mici, calitatea este
foarte apropiata
de original; in schimb, cand volumul creste, apar automat si diferente mai mari
intre acestea si rezulta un zgomot de fond insotit de un fenomen sonor
neplacut, de forma unor paraituri fine.
Cele doua standarde larg raspandite provin de la
Microsoft (MS-ADPCM) si International Multimedia Association (IMA-ADPCM),
versiunea MS oferind o calitate ceva mai buna. In mod standard sunt folositi 4
biti pentru compresie, dar aplicatii precum CoolEdit permit utilizarea a
2, 3, 4 sau 5 biti, rezultand o calitate corespunzatoare; in cazul setarii pe 4
biti, calitatea este comparabila cu cea oferita de
A-Law si μ-Law, dar spatiul ocupat este de doua ori mai mic. Unii
utilizatori cu pretentii modeste de calitate ar putea accepta formatele pe 4
sau 5 biti pentru muzica, insa spatiul mare ocupat (bitrate de ordinul a
300-400 kbps) nu justifica acest lucru din moment ce exista alternative mult
mai bune.
Pentru o comparatie intre algoritmii mentionati pana acum, aveti la dispozitie o secventa audio comprimata cu fiecare dintre ei (original, μ-Law, IMA-ADPCM pe 2 biti)
Formatul MP3
Inca din 1987,
institutul Fraunhofer din
Formatul MPEG Layer 1 (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
3, 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
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
Asadar, pentru a evita aceste
efecte nedorite (dar cu pastrarea dimensiunii mici a fisierului rezultat),
singura posibilitate (pe langa folosirea unui alt encoder - dar nu am
ajuns cu discutia in acel punct) consta in eliminarea, uneori masiva, a
frecventelor inalte, aceasta ori prin introducerea unui filtru, ori prin
scaderea ratei de esantionare. Astfel, frecventele respective nu mai sunt
deteriorate, ci eliminate pe de o parte, iar pe de alta parte,
in cazul codarii CBR sau ABR (vom vedea in paragrafele urmatoare ce inseamna)
sunt salvati biti importanti care pot fi refolositi pentru frecventele mai
joase, care compun sunetul propriu-zis.
Omul, dupa cum se stie, aude sunete
pana in zona a 16-20 KHz (a nu se confunda cu rata de esantionare, care se
masoara tot in KHz), aceasta acuitate scazand odata cu varsta. Un filtru acceptabil este cel care elimina frecventele de
peste 16 KHz, o valoare mai scazuta fiind de neacceptat pentru auditie de
calitate.
Iata doua exemple de aliasing si
ringing, obtinute prin pastrarea fortata a frecventelor inalte si a ratei de
sampling de 44.1 KHz in cazul unui bitrate de 80 si respectiv 40. La
aceleasi bitrate-uri dar cu aplicarea filtrelor la 11 si respectiv 6 KHz am
obtinut rezultatele urmatoare: fara aliasing, fara ringing.
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 3 o reprezinta MPEG 2 si MPEG 2.5 (a nu se confunda cu layer-ele 1, 2 si 3). MPEG 1 (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 3. Variantele 2.0 si 2.5 nu se pot obtine decat la rate de esantionare mai mici, neuzuale pentru muzica.
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
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
Iata ce ne spune Xing Audio Catalyst despre fiecare bitrate in parte:
- 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.3 si 3.96.1, 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.
Bibliografie:
T. H. Cormen, C. E. Leisserson, R. R. Rivest, Introducere in algoritmi, Computer Libris Agora, Cluj Napoca, 2000
A. S. Tanenbaum, Retele de calculatoare, editia a patra, Byblos, Bucuresti, 2003
J. A. Storer, An Introduction to Data Structures and Algorithms, Springer, 2002
http//:www.datacompression.info/
http//:www.researchindex.com/
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 3971
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved