Sunteți pe pagina 1din 3

JPEG - Standardul fotografiei digitale

In acest articol si probabil in cele care vor urma, mi-am propus sa tratez unele subiecte care se ocupa de imagine. Este cunoscut faptul ca imaginile, asa cum ne sunt ele oferite zi de zi, reprezinta entitati de informatie care, pana a ajunge la noi, consumatorii de informatie, sufera o multime de transformari. Aceste transformari isi au rolul si pretul lor. Unele transformari sunt mai simple, mai usor de inteles, altele sunt mai complexe si necesita un aparat matematic destul de pretentios. Scopul final al tuturor transformarilor este acela ca informatia sa ramana cat mai apropiata de cea originala, iar pretul acesteia sa fie cat mai mic. Si pentru ca multi dintre dumneavoastra isi doresc foarte mult un aparat de fotografiat numeric, pe care nu si-l pot permite deocamdata datorita pretului inca ridicat, sa ne multumim doar cu satisfactia ca citind acest articol vom sti probabil ceva mai mult ca pana acum despre fotografiile numerice, iar atunci cand vom fi posesorii unui aparat de fotografiat numeric, vom da explicatii si altora, nu fara oarecare mandrie, despre cum functioneaza acesta, ce mari secrete ascunde, etc. Pentru a intelege mai bine locul pe care il ocupa standardul JPEG, care este de fapt subiectul acestui articol, vom face referire la figura 1, in care am prezentat intr-un mod sintetic, cum se realizeaza o fotografie digitala. Deci trebuie sa existe mai intai un aparat de fotografiat, care dupa cum se stie are un sistem optic, despre care nu vom vorbi in acest articol, iar in interiorul lui in loc de filmul clasic, pe care il stie toata lumea, se afla de aceasta data altceva si anume: - un senzor de imagine, CCD, care are rolul de a prelua o imagine, la un moment dat. El tine locul unei "pozitii" de pe filmul clasic, cu singura deosebire, esentiala, ca dupa ce a preluat o imagine, o transfera altui element deoarece se pregateste pentru preluarea altei imagini. Calitatea de baza a acestui senzor de imagine de suprafata este rezolutia acestuia, exprimata in pixeli, adica in puncte de imagine. Aceste rezolutii sunt cuprinse intre 640x480 pixeli pentru aparate de fotografiat modeste ca rezolutie (cu pretul cuprins intre 200 - 400 de dolari) si 2560 x 1920 pixeli pentru aparate de fotografiat cu rezolutie foarte buna (cu pretul trecut de 1000 de dolari). Marea majoritate a acestor senzori sunt color, senzori alb-negru, cu rezolutie mare se mai produc doar pentru scopuri stiintifice sau pentru camere video la care preluarea imaginii se face cu trei senzori CCD, fiecare senzor preluand o culoare de baza, dupa selectarea acesteia din continutul imaginii; - un circuit de codare JPEG, acesta fiind de obicei un circuit integrat foarte complex, care implementeaza algoritmul de codare JPEG. Rolul acestei codari este acela de a reduce cantitatea de informatie, imensa pentru un senzor de rezolutie mare, in vederea unei stocari eficiente sau unui transfer rapid catre alte dispozitive. Avand in vedere complexitatea acestuia, putine firme din lume il produc. De cele mai multe ori, numai proiectantii acestor circuite stiu cu adevarat ce contin aceste circuite. Desi standardul JPEG are o formulare generala, modul cum este el implementat reprezinta de obicei un secret de firma pentru cei ce produc circuitele de codare. Un exemplu de asemenea circuit este codorul ZR36060 produs de firma Zoran si care echipeaza unele aparate de fotografiat numerice;

- un mediu de stocare intern, acesta avand rolul de a stoca o anumita cantitate de informatie. De regula, aceasta memorie este de tip Flash, si poate pastra informatia chiar daca aparatul nu mai are, dintr-un anumit motiv, alimentare. Aceasta memorie nu este de mare capacitate si multi comercianti sau chiar producatori "uita" sa precizeze capacitatea acestei memorii precizand doar numarul de fotografii care pot fi stocate, ceea ce uneori este suficient. Transferul informatiei din aceasta memorie, catre un calculator sau alt dispozitiv de prelucrare video, se face de regula printr-un port USB (mai nou USB 2.0 cu viteza de transfer de 480MB/sec) sau un port FireWire; - un mediu de stocare portabil, acesta avand rolul de a stoca suplimentar imagini, a le transporta si apoi a le transfera in calculator sau dispozitivele de prelucrare a imaginilor. De regula, aceste memorii portabile sunt reprezentate de FlashCard-uri (CF), Memory Stick sau chiar hard discuri (MicroDrive). Aceste elemente sunt scumpe si au capacitati cuprinse intre 16MB i 1GB. Doar aparatele care costa peste 400 - 500 de dolari au acest tip de memorie portabila. Imaginea transmisa calculatorului sau dispozitivului de prelucrare video, pentru a fi perceputa de ochiul uman, pe un monitor sau pentru a fi imprimata pe hartie trebuie refacuta, adica adusa in starea in care era pe senzorul de imagine. Acest lucru se realizeaza prin decodare JPEG. Decodoarele pot fi realizate soft, adica sunt de fapt programe de calculator (de obicei in C++) sau pot fi realizate hard, prin intermediul unor circuite integrate complexe. Prima situatie, de viteza mai mica, o intalnim aproape in toate calculatoarele PC, iar a doua situatie, de viteza mai mare, o intalnim in echipamentele complexe de editare video. Avand o privire generala, sintetica, asupra unui proces de realizare a fotografiilor digitale, vom prezenta in continuarea acestui articol standardul JPEG, care guverneaza transformarile de informatie cuprinsa intr-o imagine. Compresia JPEG (Joint Photographers Experts Group) folosita pentru compresia imaginilor statice, a fotografiilor, face parte din metodele de compresie cu pierdere de informatie si cu transformarea informatiei primare din domeniul timp in domeniul frecventa. Este cunoscut faptul ca imaginile sunt puternic corelate spatial, adica un pixel de imagine contine informatii si despre pixelii vecini. Corelatia spatiala ce caracterizeaza imaginile reprezinta redundanta din punct de vedere informational si se rezolva prin transformari matematice care au rolul de a concentra energia imaginii in cat mai putine elemente. Transformarile matematice din domeniul timp in domeniul frecventa nu reprezinta compresie de date. Abia operatiunile ce urmeaza si anume cuantizarea si codarea entropica reprezinta compresie de date. Reducerea redundantei spatiale se face atat pentru imaginea sursei originale cat si pentru eroarea reziduala, asa cum se va vedea in cele ce urmeaza. La refacerea imaginilor, dupa ce acestea au fost comprimate JPEG, cantitatea de informatie este mai mica decat cea initiala, fara o afectare vizibila a calitatii. Prin transformarea imaginii din domeniul timp, (pixeli), in domeniul frecventa se retin doar componentele de joasa frecventa ale imaginii. Componentele de frecventa inalta pot fi reduse, fara o afectare deranjanta a perceptiei vizuale a imaginii. Evident ca acest lucru este determinat de gradul de compresie acceptat. Prin eliminarea a circa 50% din bitii componentelor de inalta frecventa ale imaginii, se pierde doar 5% din informatia codificata. In prezentarea acestei metode de compresie vom utiliza, pentru exemplificare, o portiune din imaginea unei fete umane, din care vom selecta trei zone semnificative si anume: zona ochicu contrast mare, zona spranceana-cu contrast mediu si zona nas-cu contrast mic. Aceasta imagine de analiza este prezentata in figura 2.

Asa cum se arata in figura 2, compresia JPEG incepe cu descompunerea imaginii in grupe de 8 x 8 pixeli, fiecare grup continand 64 pixeli. Trei dintre aceste 8 x 8 grupuri, indicate prin sageti, sunt transformate prin esantionare in octeti, cu valori cuprinse intre 0 si 255. Continutul acestor grupari este reprezentat in cele 3 matrici din figura 3. Algoritmul JPEG complet accepta o gama larga de biti pe pixel, incluzand si informatiile de culoare. In exemplul analizat imaginea este alb-negru, fara componente de culoare, fiecare pixel este un octet si anume o scala de gri cu valori intre 0 si 255. Aceste grupuri de 8 x 8 pixeli sunt tratate independent pe durata compresiei. Astfel, fiecare grup este initial reprezentat de 64 octeti. Dupa transformari si eliminari de date, fiecare grup ajunge sa fie reprezentat de 2 20 octeti. In timpul decompresiei transformarea inversa are loc de la 2 20 octeti pentru a crea o aproximare a grupului original de 8 x 8. Aceste grupuri aproximate sunt apoi asezate (potrivite) impreuna pentru a forma imaginea decodata. Gruparea 8 x 8 pixeli s-a bazat pe posibilitatile tehnologice ale circuitelor care manevreaza informatia numerica in lucrul cu octetii, in momentul fundamentarii teoretice si implementarii practice a algoritmului JPEG in circuite sau dispozitive hard mai complexe. Mai multe transformari diferite au fost investigate, create sau cercetate pentru compresii de date, unele dintre acestea au fost inventate in mod special pentru acest scop. De exemplu, transformarea Karhunen-Loeve ofera cea mai buna rata de compresie posibila, dar este dificil de implementat. Transformata Fourier este usor de utilizat, dar nu ofera o rata de compresie suficienta. Dupa o lunga competitie a iesit invingatoare o metoda relativa intre Transformata Fourier si Transformata Cosinus Discreta (DCT). Asa cum transformata Fourier utilizeaza functiile sin si cos pentru a reprezenta semnalul, transformata cosinus discreta utilizeaza numai functiile cos. Exista cateva versiuni de transformari DCT, cu mici diferente in reprezentarea lor matematica. Din momentul in care un semnalul in domeniul timp este fortat sa fie simetric, partea imaginara a spectrului va contine numai zerouri. Aceasta este si esenta transformatei cosinus discrete.