JPEG – Standardul fotografiei digitale

by donpedro

În acest articol şi probabil în cele care vor urma, mi-am propus să tratez unele subiecte care se ocupă de imagine. Este cunoscut faptul că imaginile, aşa cum ne sunt ele oferite zi de zi, reprezintă entităţi de informaţie care, până a ajunge la noi, consumatorii de informaţie, suferă o mulţime de transformări. Aceste transformări îşi au rolul şi preţul lor. Unele transformări sunt mai simple, mai uşor de înţeles, altele sunt mai complexe şi necesită un aparat matematic destul de pretenţios. Scopul final al tuturor transformărilor este acela ca informaţia să rămână cât mai apropiată de cea originală, iar preţul acesteia să fie cât mai mic. Şi pentru că mulţi dintre dumneavoastră îşi doresc foarte mult un aparat de fotografiat numeric, pe care nu şi-l pot permite deocamdată datorită preţului încă ridicat, să ne mulţumim doar cu satisfacţia că citind acest articol vom şti probabil ceva mai mult ca până acum despre fotografiile numerice, iar atunci când vom fi posesorii unui aparat de fotografiat numeric, vom da explicaţii şi altora, nu fără oarecare mândrie, despre cum funcţionează acesta, ce mari secrete ascunde, etc.
Pentru a înţelege mai bine locul pe care îl ocupă standardul JPEG, care este de fapt subiectul acestui articol, vom face referire la figura 1, în care am prezentat într-un mod sintetic, cum se realizează o fotografie digitală. Deci trebuie să existe mai întâi un aparat de fotografiat, care după cum se ştie are un sistem optic, despre care nu vom vorbi în acest articol, iar în interiorul lui în loc de filmul clasic, pe care îl ştie toată lumea, se află de această dată altceva şi anume:

Figura 1

• un senzor de imagine, CCD, care are rolul de a prelua o imagine, la un moment dat. El ţine locul unei “poziţii” de pe filmul clasic, cu singura deosebire, esenţială, că după ce a preluat o imagine, o transferă altui element deoarece se pregăteşte pentru preluarea altei imagini. Calitatea de bază a acestui senzor de imagine de suprafaţă este rezoluţia acestuia, exprimată în pixeli, adică în puncte de imagine. Aceste rezoluţii sunt cuprinse între 640×480 pixeli pentru aparate de fotografiat modeste ca rezoluţie (cu preţul cuprins între 200 – 400 de dolari) şi 2560 x 1920 pixeli pentru aparate de fotografiat cu rezoluţie foarte bună (cu preţul trecut de 1000 de dolari). Marea majoritate a acestor senzori sunt color, senzori alb-negru, cu rezoluţie mare se mai produc doar pentru scopuri ştiinţifice sau pentru camere video la care preluarea imaginii se face cu trei senzori CCD, fiecare senzor preluând o culoare de bază, după selectarea acesteia din conţinutul imaginii;
• un circuit de codare JPEG, acesta fiind de obicei un circuit integrat foarte complex, care implementează algoritmul de codare JPEG. Rolul acestei codări este acela de a reduce cantitatea de informaţie, imensă pentru un senzor de rezoluţie mare, în vederea unei stocări eficiente sau unui transfer rapid către alte dispozitive. Având în vedere complexitatea acestuia, puţine firme din lume îl produc. De cele mai multe ori, numai proiectanţii acestor circuite ştiu cu adevărat ce conţin aceste circuite. Deşi standardul JPEG are o formulare generală, modul cum este el implementat reprezintă de obicei un secret de firmă pentru cei ce produc circuitele de codare. Un exemplu de asemenea circuit este codorul ZR36060 produs de firma Zoran şi care echipează unele aparate de fotografiat numerice;
• un mediu de stocare intern, acesta având rolul de a stoca o anumită cantitate de informaţie. De regulă, această memorie este de tip Flash, şi poate păstra informaţia chiar dacă aparatul nu mai are, dintr-un anumit motiv, alimentare. Această memorie nu este de mare capacitate şi mulţi comercianţi sau chiar producători “uită” să precizeze capacitatea acestei memorii precizând doar numărul de fotografii care pot fi stocate, ceea ce uneori este suficient. Transferul informaţiei din această memorie, către un calculator sau alt dispozitiv de prelucrare video, se face de regulă 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 având rolul de a stoca suplimentar imagini, a le transporta şi apoi a le transfera în calculator sau dispozitivele de prelucrare a imaginilor. De regulă, aceste memorii portabile sunt reprezentate de FlashCard-uri (CF), Memory Stick sau chiar hard discuri (MicroDrive). Aceste elemente sunt scumpe şi au capacităţi cuprinse între 16MB şi 1GB. Doar aparatele care costă peste 400 – 500 de dolari au acest tip de memorie portabilă.
Imaginea transmisă calculatorului sau dispozitivului de prelucrare video, pentru a fi percepută de ochiul uman, pe un monitor sau pentru a fi imprimată pe hârtie trebuie refăcută, adică adusă în starea în care era pe senzorul de imagine. Acest lucru se realizează prin decodare JPEG. Decodoarele pot fi realizate soft, adică sunt de fapt programe de calculator (de obicei în C++) sau pot fi realizate hard, prin intermediul unor circuite integrate complexe. Prima situaţie, de viteză mai mică, o întâlnim aproape în toate calculatoarele PC, iar a doua situaţie, de viteză mai mare, o întâlnim în echipamentele complexe de editare video.
Având o privire generală, sintetică, asupra unui proces de realizare a fotografiilor digitale, vom prezenta în continuarea acestui articol standardul JPEG, care guvernează transformările de informaţie cuprinsă într-o imagine.
Compresia JPEG (Joint Photographers Experts Group) folosită pentru compresia imaginilor statice, a fotografiilor, face parte din metodele de compresie cu pierdere de informaţie şi cu transformarea informaţiei primare din domeniul timp în domeniul frecvenţă. Este cunoscut faptul că imaginile sunt puternic corelate spaţial, adică un pixel de imagine conţine informaţii şi despre pixelii vecini. Corelaţia spaţială ce caracterizează imaginile reprezintă redundanţă din punct de vedere informaţional şi se rezolvă prin transformări matematice care au rolul de a concentra energia imaginii în cât mai puţine elemente. Transformările matematice din domeniul timp în domeniul frecvenţă nu reprezintă compresie de date. Abia operaţiunile ce urmează şi anume cuantizarea şi codarea entropică reprezintă compresie de date. Reducerea redundanţei spaţiale se face atât pentru imaginea sursei originale cât şi pentru eroarea reziduală, aşa cum se va vedea în cele ce urmează. La refacerea imaginilor, după ce acestea au fost comprimate JPEG, cantitatea de informaţie este mai mică decât cea iniţială, fără o afectare vizibilă a calităţii. Prin transformarea imaginii din domeniul timp, (pixeli), în domeniul frecvenţă se reţin doar componentele de joasă frecvenţă ale imaginii. Componentele de frecvenţă înaltă pot fi reduse, fără o afectare deranjantă a percepţiei vizuale a imaginii. Evident că acest lucru este determinat de gradul de compresie acceptat.
Prin eliminarea a circa 50% din biţii componentelor de înaltă frecvenţă ale imaginii, se pierde doar 5% din informaţia codificată.

Figura 2

În prezentarea acestei metode de compresie vom utiliza, pentru exemplificare, o porţiune din imaginea unei feţe umane, din care vom selecta trei zone semnificative şi anume: zona ochi-cu contrast mare, zona sprânceană-cu contrast mediu şi zona nas-cu contrast mic. Această imagine de analiză este prezentată în figura 2.
Aşa cum se arată în figura 2, compresia JPEG începe cu descompunerea imaginii în grupe de 8 x 8 pixeli, fiecare grup conţinând 64 pixeli. Trei dintre aceste 8 x 8 grupuri, indicate prin săgeţi, sunt transformate prin eşantionare în octeţi, cu valori cuprinse între 0 şi 255.

Figura 3

Conţinutul acestor grupări este reprezentat în cele 3 matrici din figura 3.
Algoritmul JPEG complet acceptă o gamă largă de biţi pe pixel, incluzând şi informaţiile de culoare. În exemplul analizat imaginea este alb-negru, fără componente de culoare, fiecare pixel este un octet şi anume o scală de gri cu valori între 0 şi 255. Aceste grupuri de 8 x 8 pixeli sunt tratate independent pe durata compresiei. Astfel, fiecare grup este iniţial reprezentat de 64 octeţi. După transformări şi eliminări de date, fiecare grup ajunge să fie reprezentat de 2 ÷ 20 octeţi. În timpul decompresiei transformarea inversă are loc de la 2 ÷ 20 octeţi pentru a crea o aproximare a grupului original de 8 x 8. Aceste grupuri aproximate sunt apoi aşezate (potrivite) împreună pentru a forma imaginea decodată. Gruparea 8 x 8 pixeli s-a bazat pe posibilităţile tehnologice ale circuitelor care manevrează informaţia numerică în lucrul cu octeţii, în momentul fundamentării teoretice şi implementării practice a algoritmului JPEG în circuite sau dispozitive hard mai complexe.
Mai multe transformări diferite au fost investigate, create sau cercetate pentru compresii de date, unele dintre acestea au fost inventate în mod special pentru acest scop.
De exemplu, transformarea Karhunen-Loeve oferă cea mai bună rată de compresie posibilă, dar este dificil de implementat. Transformata Fourier este uşor de utilizat, dar nu oferă o rată de compresie suficientă. După o lungă competiţie a ieşit învingătoare o metodă relativă între Transformata Fourier şi Transformata Cosinus Discretă (DCT).
Aşa cum transformata Fourier utilizează funcţiile sin şi cos pentru a reprezenta semnalul, transformata cosinus discretă utilizează numai funcţiile cos. Există câteva versiuni de transformări DCT, cu mici diferenţe în reprezentarea lor matematică.
Din momentul în care un semnalul în domeniul timp este forţat să fie simetric, partea imaginară a spectrului va conţine numai zerouri. Aceasta este şi esenţa transformatei cosinus discrete.
– va urma –

Ing. Toader Melinte
S.C.Seektron S.R.L
Tel. 0244-185920
Mobil: 744-650352
melin@xnet.ro
www.seektron.ro

S-ar putea să vă placă și