sâmbătă, 7 iulie 2007

Ce este un format mp3?

MP3 (MPEG Layer 3) este un format audio multimedia, având la bază comprimarea sunetului cu pierdere de calitate. Dezvoltat de Institutul Fraunhofer din Germania, el a fost a treia reuşită a acestuia, după MPEG Layer 1 (folosit pentru casetele digitale Philips DCC) şi MPEG Layer 2 (utilizat la sonorul Video CD-urilor). Avantajul său principal a fost (şi este în continuare) spaţiul redus ocupat, însă calitatea sunetului are de suferit în timpul comprimării.

Încă din 1987, institutul Fraunhofer din Germania a început să lucreze la un proiect destinat compresiei audio cu pierdere de calitate, bazat pe tehnica perceptual coding. Este vorba de un algoritm care exploatează slăbiciunile urechii umane, oferindu-i un sunet cât mai apropiat de cel original.

Formatul MPEG Layer 1 (MP1), prima reuşită a institutului, a fost folosit doar pentru casetele digitale Philips DCC (Digital Compact Casette, un competitor al lui MiniDisc-urilor Sony) între anii 1992 şi 1996. Urmaşul său, MPEG Layer 2 (MP2), a fost utilizat pentru sonorul Video CD-urilor şi a altor dispozitive multimedia, fiind relativ răspândit şi astăzi în domeniul video. A treia versiune a standardului, MPEG Audio Layer 3, are avantajul unei calităţi ridicate la bitrate-uri scăzute, ceea ce i-a adus o popularitate foarte mare. Odată cu răspândirea Internet-ului şi implicit a reţelelor de tip peer-to-peer (începând cu Napster), fenomenul MP3 a luat amploare, devenind un mijloc eficient de transfer şi stocare a muzicii pe calculator.

Perceptual coding este o tehnică ce permite eliminarea cu o acurateţe destul de mare a sunetelor pe care urechea noastră nu le poate distinge, bazându-se pe un model psihoacustic, adică modul în care urechea umană percepe undele sonore. În principiu, se caută crearea unui astfel de model care să ducă la înmagazinarea sunetului folosind cât mai puţini biţi; nu se exclude posibilitatea unui sunet total diferit din punct de vedere matematic (eşantioane cu valori depărtate de original) în condiţiile în care urechea umană nu observă nici o diferenţă.

Scăderea calităţii sunetului este datorată apariţiei de „goluri” în cazul frecvenţelor înalte, ducând la apariţia a două fenomene nedorite: aliasing-ul şi ringing-ul. Pentru a evita acest lucru, aceste frecvenţe sunt pur şi simplu eliminate din pasajul muzical, sunetul rezultat fiind „închis”, foarte asemănător cu cazul downsampling-ului. Cu alte cuvinte, downsampling-ul elimină prin natura sa frecvenţele înalte, pe când la compresia MP3 această eliminare este necesară pentru păstrarea calităţii sunetului în limite decente. În plus, chiar dacă aliasing-ul nu este supărător într-un caz particular, frecvenţele joase şi medii sunt cele mai evidente într-un pasaj muzical, deci avem un motiv în plus pentru a nu ocupa relativ inutil biţii (şi aşa puţini) cu frecvenţele înalte.

Tehnic vorbind, este vorba de o combinaţie dintre doi algoritmi: subband şi transform. În cazul unui codec de tip subband, informaţia audio este separată în funcţie de frecvenţe, segmentele fiind procesate independent, folosindu-se o acurateţe variabilă, potrivită modului de percepţie al urechii. Pentru reţinerea unui sunet de calitate este însă necesar un bitrate mare. Pentru un codec de tip transform, sunetul suferă o transformare cosinus (MDCT = Modified Discrete Cosine Transform). Această combinaţie mai mult sau mai puţin fericită duce la inferioritatea lui MP3 în faţa multor alte formate subband, precum MPEG Layer 1 şi MPEG Layer 2, dar numai la bitrate-uri mari, adică exact în situaţiile în care urechea umană nu (prea) mai face diferenţa. MP3 moşteneşte de la ambii algoritmi punctele slabe: calitatea slabă la bitrate-uri foarte mici, sub 128 kbps - de la subband, şi imposibilitatea atingerii unei calităţi foarte bune la bitrate-uri mari - de la transform (materializată în problema pre-echo). El nu este altceva decât un compromis de calitate creat pentru necesităţile anilor '90

LAME (Lame Ain't an MP3 Encoder), un encoder open-source, este pentru moment encoder-ul ce oferă calitate maximă în cazul comprimării sunetului folosind algoritmul MP3.

Începuturile lui LAME datează din 1998, când 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 îmbunătăţit de numeroşi programatori, codul fiind rescris şi adăugându-i-se facilităţi deosebite, precum tehnica VBR. În anul 2000, el a depăşit din punct de vedere al calităţii concurentul direct sub acest aspect, FhG, în diversele sale variante, majoritatea comerciale. Chiar dacă lucrul la LAME nu a încetat, versiunile noi apar rar şi sunt mai mult experimentale, ultimele îmbunătăţiri majore fiind realizate în anul 2001.

Setările recomandate constau în folosirea unor preset-uri, care conferă o configuraţie optimă a parametrilor, determinând obţinerea calităţii maxime la un anumit bitrate. Aceste preset-uri sunt --alt-preset standard, --alt-preset extreme şi --alt-preset insane, ele generând un bitrate de aproximativ 192, 256 şi respectiv exact 320 kbps. În general, nu este folosită direct aplicaţia Lame, ci se apelează la frontend-uri, ce au rolul de a uşura operaţia de comprimare şi care deseori sunt însoţite de o funcţie de ripping a pieselor muzicale de pe CD-urile audio.

Niciun comentariu: