Sunteți pe pagina 1din 16

Prelucrarea N umerica a

Numerica
Imaginilor
“Image processing holds the possibility of
developing the ultimate machine
that could perform the visual functions of all
living beings”
Jain, A. K.: Fundamentals
of Digital Image Processing, Prentice Hall,
Englewood
Cliffs NJ, 1989

Prelucrarea Imaginilor înglobeaza posibilitatea de a dezvolta masina totala


de viziune, capabila sa realizeze functiile vizuale ale oricarei vietuitoare

Curs 2 ( PNI ) – 2009


prodan@eed.usv.ro
http://apollo.eed.usv.ro/~remus
Curs 2. Tematica

•Tematica cursului
•Spatii de reprezentare a
culorilor ( spatii_culori.pdf )
•Stocarea imaginilor
•Standardul JPEG ( descriere )
•Studiu de caz ( studiu_jpeg.pdf )
Spatii de
reprezentare a
culorilor
• Documentul:
• spatii_culori.pdf
Stocarea imaginilor
formatul JPEG

• Cunoscut ca: JFIF, JFI, JPG, JPEG


• Numarul de biti de culoare: pana la 24-biti
• Compresie: JPEG
• Dimensiunea maxima a imaginii: 64Kx64K pixeli
• Format numeric: Sir indian
• Platforme accepate: Toate

• Cunoscut mai putin ca format grafic, mai mult ca metodă de


compresie a datelor, JPEG (Joint Photografic Experts
Group) se dovedeste a fi unul dintre cei mai eficineti
algoritmi de compresie a imaginilor fotografice.

• Acest algoritm a luat viată în anul 1987 după o muncă de mai


bine de un an, a unei echipe PEG (Photografic Experts
Group), echipă formată de ISO (echivalentul European al
ANSI, American National Standards Institute).

• Scopul acestei echipe consta în conceperea standarde pentru


transmiterea de imagini grafice pe retelele mari de
calculatoare.

• Dacă formatul TIFF este cunoscut ca fiind unul dintre cele


mai complicate structuri grafice, acelasi loc îl ocupă si JPEG
în clasa algoritmilor de compresie a datelor.
Stocarea imaginilor
formatul JPEG
CONSIDERATII GENERALE

• JPEG înregistrează pierderi de informatie, astfel că, între


imaginea originală si cea restaurată, există mici
diferente, neobservabile cu ochiul liber.

• Aceasta este de fapt principala caracteristică exploatată


de algoritm, datorită căreia fisierele JPEG au o lungime
asa de mică.

• Dacă se doreste ca imaginea originală să rămână


neschimbată, atunci algoritmul se va dovedi ineficient

• Specificatiile JPEG definesc patru moduri de arhivare a


imaginilor, după cum urmează:

– 1) Imaginea este arhivată după modelul stânga-dreapta,


sus-jos, întâlnit si la PCX-uri;

– 2) Arhivarea foloseste tehnica întreteserii, întâlnită la


formatul GIF;

– 3) O metodă care este mai putin folosită este aceea a


arhivării imaginii fără pierderi de informatie;

– 4) Se arhivează mai multe copii ale imaginii originale în


acelasi fisier, la rezolutii diferite.
Stocarea imaginilor
formatul JPEG
FAZELE ALGORITMULUI JPEG

• Pentru a putea fi comprimată, imaginea grafică este ruptă, mai


întâi, în bucăti de 8x8 puncte.

• Bucătile sunt analizate începând de la stânga la dreapta si de sus


în jos, până când întreaga imagine este parcursă.

• Următorul pas constă în transformarea valorilor punctelor în


frecvente

• I. TCD – Transformarea Cosinus Discretă

• În această fază, valorile intensitătii punctelor din imagine


sunt puse în corespondentă cu un set de 64 de frecvente,
frecvente ce reflectă schimbarea nuantei de la un punct
la altul.

• Prima frecventă este de fapt media valorilor punctelor


din blocul 8x8.

• Următoarele frecvente dau asa numitul spectru al


blocului.
Stocarea imaginilor
formatul JPEG

• Formula de calcul a frecventelor poartă denumirea de


Transformarea Cosinus Discretă.

• Interpretarea matematică a formulei este destul de


complicată si va fi prezentata in studiul de caz final.

• Oricum, după calcularea valorilor, multe dintre


frecventele obtinute vor avea valori apropiate de zero.
Acest lucru se întîmplă deoarece trecerea de la o nuantă la
alta, în majoritatea cazurilor, nu este bruscă - de acest
aspect se va profita în faza de cuantificare.

• Operatiunea inversă, calcularea intensitătilor punctelor pe


baza frecventelor, se numeste Transformarea Cosinus
Discretă Indirectă.

• Datorită rotunjirilor care apar în calculul celor două


transformări, imaginea pierde o parte din informatie,
această pierdere fiind nesemnificativă.

• Teoretic, prin aplicarea celor două formule ar trebui să se


obtină imaginea initială.
Stocarea imaginilor
formatul JPEG

• II. Prelucrarea în Zig-zag

• După calcularea frecventelor se va observa un lucru


foarte interesant si anume:
– dacă frecventele sunt puse într-o matrice de 8 pe 8, adică la fel ca si
blocul de puncte initial, se va observa că valorile cele mai mari ale
frecventelor se vor înregistra în coltul din stânga-sus, iar cele mai
mici în coltul dreapta-jos.

• Prin prelucrarea în zig-zag obtinem un sir de frecvente,


care sunt aranjate, relativ, într-o ordine descrescătoare,
prima frecventă având valoarea medie a intensitătii
blocului de puncte 8x8, ultimele frecvente avînd valori
apropiate sau chiar zero

• III. Cuantificarea

• În cadrul acestei faze, fiecare frecventă va fi cuantificată,


utilizînd un coeficient din tabelele JPEG de cuantificare.

• Aceste tabele JPEG au fost în asa fel elaborate încât,


dacă frecventele au valori apropiate ele să rămână
neschimbate.
Stocarea imaginilor
formatul JPEG

• Există un tabel de coeficienti pentru cuantificarea


luminozitătii si un altul pentru intensitate.

• Prin această operatie, anumite puncte ale imaginii, care


diferă substantial fată de cele înconjurătoare, îsi pierd
valoarea reală, ajungându-se ca, în urma decomprimării,
să avem diferente fată de imaginea reală.

• La acest pas apar cele mai semnificative diferente fată de


imaginea originală, însă felul în care se execută
cuantificarea face ca aceste diferente să nu fie
semnificative din punctul de vedere al utilizatorului.

• Dacă este important ca imaginea să fie intactă si după


dezarhivare, este indicată folosirea unui alt algoritm,
chiar dacă performantele nu sunt la fel de bune.

• IV. Codificarea Binară

• Ultimul pas care a mai rămas este acela al codificării


propriu-zise a datelor.
• Codificarea se poate face în două moduri: cu ajutorul
unui algoritm matematic sau cu algoritmul Huffman.
Stocarea imaginilor
formatul JPEG

• Algoritmul matematic poate fi foarte eficient în


anumite cazuri, dar este extrem de complex, astfel
încât majoritatea programelor care folosesc
arhivarea JPEG nici măcar nu l-au mai
implementat.

• În schimb algoritmul Huffman este folosit mai des,


codificarea făcându-se pe biti si nu pe octeti.

• Algoritmul de compresie Huffman se bazează pe


înlocuirea simbolurilor frecvent întâlnite cu bucăti
de cod mai scurte.

• Pentru a se face apel la specificul anumitor


imagini, în algoritmul de arhivare JPEG s-au
introdus mai multe tabele Huffman de compresie a
simbolurilor frecvent folosite.

• Lucrând la nivel de bit, algoritmul este extrem de


greu de implementat si verificat.

• Dar să ne reamintim că cele 64 de frecvente erau


ordonate, după prelucrarea în zig-zag, într-o ordine
descrescătoare relativă, iar după cuantificare multe
dintre frecvente au ajuns să aibă valoarea zero.
Stocarea imaginilor
formatul JPEG

• III.Anexa. Conversia RGB – YCbCr

• În descrierea procesului de cuantificare am specificat faptul


că există două tabele cu coeficienti de cuantificare:
– pentru luminozitate si
– pentru intensitatea culorilor.

• Acest lucru este valabil dacă imaginea originală foloseste


paleta YCbCr ( vezi standardele de culoare ).

• Această paletă, contine de fapt,


– o componentă de luminozitate (Y) si
– două componente de intensitate a culorilor Cb si Cr,

• Pornind de la aceasta formatul JPEG introduce două tabele


de cuantificare.

• În cazul codificării unor imagini RGB, diferentele care apar


la imaginea decodificată fată de imaginea originală sunt mult
mai evidente, deoarece coeficientii de cuantificare nu au
valorile necesare acestor tipuri de imagini.

• Astfel se pune problema conversiei lor în imagini YCbCr,


înainte de a aplica algoritmul JPEG.
Stocarea imaginilor
formatul JPEG

ORGANIZAREA FISIERULUI JPEG

• Fisierul JPEG este organizat pe blocuri de informatii.

• Primul bloc, numit si Începutul Imaginii, este alcătuit din


numai doi octeti ( FFh D8h ) si reprezintă identificatorul
de fisier.

• Următorii octeti sunt alocati antetului de fisier si sunt


prezentati în structura de mai jos:

• Antet: record
– IncepImag: array [0..1] of byte;
– APP0: array[0..1] of byte;
– LungimeAPP0: array[0..1] of byte;
– IdentificatorJFIF: string[4];
– Versiunea: string[2];
– UM: byte;
– RezolOriz: word;
– RezolVert: word;
– LatimeUnghie: byte;
– InaltimeUnghie: byte;
Stocarea imaginilor
formatul JPEG

• APP0 contine întodeauna valorile FFh si E0h si este un


marcator de aplicatie JPEG;

• LungimeAPP0 contine lungimea antetului împreună


cu Unghia ( o imagine în miniatură );

• Cunoscute si ca JFIF ( JPEG File Interchange Format)


dispun de un identificator, IdentificatorJFIF - ‘JFIF’;

• Versiunea fisierului o regăsim în cîmpul Versiunea,


cei doi octeti pe care-i posedă semnificînd 01h si 02h
pentru versiunea 1.02.

• UM, RezolOriz si RezolVert sunt folosite pentru a


specifica unitătile de măsură care se folosesc pentru
afisarea imaginii.
– UM poate avea valorile 01h pentru a specifica puncte per
inch sau 02 pentru puncte per centimetru,

• Imaginea arhivată poate contine si o copie a ei în


miniatură numită Unghie si care-si are dimensiunile în
LatimeUnghie si InaltimeUnghie.
– Unghia nu este arhivată deloc, este stocată întodeauna în
format RGB, iar mărimea ei nu poate depăsi 64K.
Stocarea imaginilor
formatul JPEG

• După antet pot exista unul sau mai multe segmente de


extensie JFIF optionale.

• Aceste segmente sunt folosite pentru a stoca informatii


aditionale la fisierul JPG si pot fi întâlnite numai
începând de la versiunea 1.02.

• Structura acestor segmente este următoarea:

JFIFExtensie
APP0: array[0..1] of byte;
{ contine valorile FFh E0h }
Lungime: word;
{ lungimea extensiei }
Identificator: string[4];
{ contine sirul ‘JFXX’ }
CodExtensie: byte;
{ codul extensiei 0x10/0x11/0x13}

• CodExtensie este folosit pentru a indica tipul de


informatie pe care o contine acest segment.
Stocarea imaginilor
formatul JPEG

• La versiunea 1.02 a fisierului regăsim doar următoarele


coduri:
– 10h (Unghia este codificată folosindu-se algoritmul JPEG);
– 11h (Unghia este stocată folosindu-se un octet pentru un
punct si este însotită de o paletă de culori);
– 13h (Unghia foloseste puncte pe 3 octeti RGB).

• Informatiile propriu-zise pe care le poartă segmentul, se


regăsesc imediat după structură.

• Programele care decodifică fisiere JPG trebuie să fie


pregătite pentru a ignora acele segmente din fisiere pe
care nu le recunosc. Dacă programul de citire a fisierului
întâlneste un asemenea bloc, el trebuie să citească
câmpul Lungime pentru a afla lungimea segmentului, si
să treacă la segmentul următor.

• Pentru a identifica codul JPEG al imaginii, trebuie căutat


segmentul care începe cu valorile FFh si D8h ( Începutul
Imaginii ).

• Pe lângă fisierul JFIF care contine numai imagini


codificate exclusiv cu algoritmul JPEG, mai există si alte
tipuri de fisiere care folosesc acest algoritm pentru a
stoca imagini.
Studiul de caz
• Documentul: studiu_jpeg.pdf

Bibliografie
http://en.wikipedia.org/wiki/JPEG
http://ro.wikipedia.org/wiki/JPEG

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