Standardul de compresie JPEG [613522]

Standardul de compresie JPEG
Caracteristici generale
Standardul JPEG a fost dezvoltat de un grup de experți cunoscut sub numele Joint
Photographic Experts Group și este înregistrat sub numărul ISO 10918. Practic,
standardul definește o familie de tehnici de compresie pentru imagini statice în ton
continuu (p e scară de gri sau color). Datorită cantității mari de date implicate și
redundanței psihovizuale, JPEG utilizează o schemă de compresie cu pierderi bazată pe
codarea cu transformare.
JPEG furnizează mai multe moduri de operare: secvențial (de bază), iera rhic, progresiv și
fără pierderi. Fiecare mod de operare este indicat pentru utilizare în domenii particulare
de aplicație.
Principalele caracteristici ale standardului JPEG pot fi rezumate după cum urmează:
Independența rezoluției . Standardul admite tr atarea semnalelor provenite de la
surse cu rezoluții diferite. Imaginile ale căror dimensiuni nu sunt bazate pe multiplii de 8,
sunt ajustate intern la dimensiuni multiplu de 8 pentru operarea în moduri de lucru
bazate pe transformarea cosinus discretă (DC T).
Precizia . Modurile de lucru bazate pe DCT sunt restricționate la precizii de 8 sau
12 biți/eșantion. Pentru codarea fără pierderi, precizia poate varia de la 2 la 16
biți/eșantion.
Fără țintă specifică a ratei de bit . Rata de bit, implicit calitate a compresiei, este
controlată primar de către matricea de cuantizare.
Separabilitate între luminanță și crominanță . Este posibilă recuperarea doar a
semnalului de luminanță din imaginile codate sub formă de semnal complet
luminanță -crominanță, fără a fi întotdeauna necesară decodarea crominanței.
Extensibilitate . Nu există limite în ceea ce privește numărul de etape în codarea
progresivă, sau de etape de joasă -rezoluție în cazul codării ierarhice.
JPEG nu reprezintă o arhitectură completă pentru realiz area schimbului de imagini între
diverse surse. Șirul de date structurate JPEG este definit sub aspectul cerințelor pe care
le impune un decodor JPEG pentru a realiza decompresia. Ca parte a standardului nu
este definită nici o formă de fișier, rezoluție s pațială sau model de spațiu al culorilor.
Totuși, JPEG include un format minimal recomandat de fișier, cunoscut sub denumirea
de JFIF (JPEG File Interchange Format) , care permite ca șirurile de date JPEG să fie
interschimbate între o mare diversitate de pl atforme și aplicații. O serie de alte formate
de fișiere pentru imagini sunt de asemenea compatibile JPEG, de exemplu TIFF (Tag
Image File Format) . Este important de specificat faptul că, pentru a fi considerat JPEG
compatibil , un produs sau sistem trebuie să accepte cel puțin modul de lucru de bază
prevăzut de standardul JPEG.

Algoritmul de bază pentru codare
Algoritmul de bază pe care îl vom prezenta în continuare definește modul de lucru de
bază sau modul secvențial . Acest mod de lucru defineș te compresia imaginilor digitale
monocromatice sau color așa cum sunt ele utilizate în aplicațiile de comunicații
multimedia. Acest mod de lucru implică parcurgerea a cinci pași: partiția imaginii ,
transformata cosinus directă (DCT) , cuantizarea , codarea e ntropiei și construcția cadrului
JPEG . În Figura 6.2. este prezentată schema bloc a codării JPEG care implică acești pași,
fiecare pas urmând să fie discutat separat.

Partiția imaginii
Sursa de imagine este în general formată din una sau mai multe matri ci bidimensionale.
În cazul unei imagini monocrome în tonuri continue, este necesară o singură matrice
bidimensională pentru memorarea setului de valori ale nivelurilor de gri reprezentate pe
8 biți care caracterizează imaginea. În mod similar, pentru o im agine color, dacă se
utilizează o memorie LUT (Look -up table), atunci este necesară o singură matrice de
valori.

Alternativ, dacă imaginea este reprezentată î n format R, G, B, sunt necesare trei matrici,
câte una pentru valorile cuantizate R, G și B. Pentru imaginile color se poate utiliza și
reprezentarea prin semnale diferență de culoare Y, CR și CB, cu avantajul că semnalele
de crominanță CR și CB necesită d oar jumătate din lărgimea de bandă a semnalului de
luminanță Y. Din acest motiv, cele două matrici care conțin componentele digitale de
crominanță sunt de dimensiuni mai mici decât matricea Y, ceea ce conduce la o reducere
față de reprezentarea clasică R, G, B.
Figura 6.3 ilustrează procesul de partiție a imaginii , prezentând cele patru alternative
pentru reprezentarea imaginii sursă și aranjarea acestora într -o matrice a valorilor care
trebuie compresate. Acesta este blocul prezentat în Fig. 6.2 sub denum irea pregătire
imagine . După alegerea formei de reprezentare a imaginii, valorile cuprinse în matrice
vor trebui comprimate prin utilizarea transformatei cosinus discrete (DCT). Înainte însă
de a realiza această prelucrare mai este necesar un pas, cunoscut sub denumirea de
pregătire blocuri . Acesta este necesar deoarece calculul transformatei cosinus pentru
fiecare poziție din matrice implică cunoașterea valorilor tuturor blocurilor care urmează
a fi prelucrate. Deoarece timpul necesar pentru calculul DCT p entru toată matricea
într-un singur pas ar fi mult prea mare, matricea este mai întâi divizată pe submatrici de
dimensiuni 8×8, care poartă denumirea de blocuri . Ca urmare, transformarea DCT se
poate efectua pe blocuri, prin aducerea secvențială a acestora la intrarea procesorului
de calcul a transformatei.

Transformarea cosinus discretă DCT
După cum s -a precizat anterior, pentru scurtarea timpului total de calcul a transformatei
directe DCT, este necesară operarea la nivel de blocuri de 8×8 valori. Ordinea în care
sunt prezentate blocurile constituite la intrarea procesorului de calcul DCT este
prezentată în Figura 6.4.

Principiile codării cu transformare au fost prezentate anterior, în paragraful 3.5. În mod
normal fiecare valoare de pixel este cuantizată pe 8 biți, ceea ce conduce la un domeniu
de variație a valorilor luminanței și crominanței (semnalele Y, R, G și B) s ituat între 0 și
255, respectiv un domeniu de variație a valorilor semnalelor diferență de culoare (CR și
CB) situat între -128 și +127. Pentru a realiza calculul transformatei cosinus discrete
directe, toate valorile pixelilor trebuiie mai întâi centrate pe zero, prin scăderea valorii
128 din fiecare valoare de luminanță sau crominanță. În continuare, dacă notăm cu
P(x,y) valorile elementelor din matricea bidimensională de intrare și cu F(i,j) valorile
elementelor matricii transformate, atunci expresia de calcul a transformatei cosinus
discrete directe DCT pentru fiecare bloc de 8×8 pixeli este :

Prin interpretarea expresiei (6.1) se pot trage câteva concluzii cu privire la complex itatea
de calcul a tranformatei DCT:

 Toate cele 64 valori ale matricii de intrare P(x,y) contribuie la fiecare din intrările
matricii transformate F(i,j)
 Pentru i=j=0 , cei doi termeni în cosinus (prin urmare coeficienții frecvențelor
orizontale ș i verticale) sunt ambii 0. De asemenea, deoarece cos(0)=1, valoarea
locației F(0,0) a matricii transformatei este o simplă sumare a tuturor valorilor din
matricea de intrare. În ultimă instanță, coeficientul F(0,0) reprezintă media
tuturor celor 64 valori din matricea de intrare, fiind cunoscut și sub denumirea de
coeficient DC (componentă continuă) .
 Deoarece valorile din toate celelalte locații ale matricii transformatei au un
coeficient al frecvenței asociat – fie orizontal (x=1÷7 pentru y=0), fie vert ical
(y=1÷7 pentru x= 0), fie ambii (x=1÷7 pentru y=1÷7) – ele sunt cunoscute sub
denumirea de coeficienți AC (componentă alternativă) .
 Pentru j=0, sunt prezenți doar coeficienții frecvențelor orizontale, ei crescând în
frecvență pentru i=1÷7 .
 Pentru i=0, sunt prezenți doar coeficienții frecvențelor verticale, ei crescând în
frecvență pentru j=1÷7 .
 În toate celelalte locații ale matricii transformate sunt prezenți atât coeficienți ai
frecvențelor orizontale cât și ai frecvențelor verticale, î n diferite proporții
În Figura 6.5. este prezentată în mod schematic structura matricilor inițială și
transformată, cu identificarea coeficienților DC și AC. De asemenea este prezentată
modalitatea de variație a frecvențelor spațiale orizontală ș i verticală, pentru a se
vedea care este ponderea diveriților coeficienți din matricea transformată.

Pentru a avea o mai bună imagine cu privire la valorile așteptate în mod tipic pentru
un bloc al transformatei DCT directe, vom considera o imagine tipică de 640 × 480
pixeli. Considerând că transformarea DCT se efectuează pe blocurile tipice de 8 × 8
pixeli, imaginea sursă va fi formată din 80 × 60, adică 4800 blocuri, fiecare din ele cu
dimensiunea de aproximativ 5 × 5 mm, pentru un ecran cu lățimea tipică de 40 cm.
De aceea, regiunile din imagine care au o culoare constantă vor genera un set de
blocuri ale transformatei având:
 același (sau foarte similar) coeficient DC;
 doar un numă r mic de coeficienți AC cu valori semnificative.
De aceea, doar acele zone ale imaginii care conțin tranziții de culoare vor genera
seturi de blocuri ale transformatei cu coeficienți DC diferiți și cu un număr mare de
coeficienți AC nenuli. Aceste caracte eristici sunt exploatate în continuare în faza de
codare a entropiei din cadrul algoritmului de compresie JPEG.
Cuantizarea
Teoretic, dacă se efectuează calculul transformatei DCT directe cu mare precizie prin
utilizarea unui procesor în virgulă mobilă, există o foarte mică pierdere de informație
pe durata fazei DCT. În practică apar mici pierderi, datorate de obicei utilizării unor
procesoare în virgulă fixă. Același tip de erori apare însă și pe durata fazelor de
cuantizare și de codare a entropiei.
În conformitate cu caracteristicile fiziologice ale vederii umane [Kunt, 85], ochiul va
răspunde în primul rând la coeficientul DC și la coeficienții frecvențelor spectrale
scăzute. De aceea, dacă amplitudinea unui anumit coeficient de frecvență înaltă este
sub un anumit prag, ochiul nu îl va detecta. Această proprietate este exploatată în
faza de cuantizare prin eliminarea – practic, prin setarea la zero – a acelor coeficienți

de frecvențe spațiale din matricea transformatei care se situează sub un anumit pr ag.
Trebuie specificat însă că, odată eliminați, acești coeficienți nu mai pot fi recuperați
în cursul procesului de decodare.
În afară de a determina dacă un anumit coeficient de frecvență spațială este sub un
prag predefinit, procesul de cuantizare real izează și reducerea dimensiunilor
coeficienților DC și AC, astfel încât să fie necesară cât mai puțină bandă pentru
transmiterea acestora. În loc de a compara fiecare coeficient cu valoarea definită a
pragului, se realizează o împărțire utilizând valoarea de prag drept divizor. Dacă
numărul întreg cel mai apropiat la care se rotunjește rezultatul este zero, atunci
coeficientul frecvenței spațiale este sub valoarea de prag. Dacă rezultatul nu este
zero, atunci valoarea întreagă care rotunjește câtul arată de câte ori este mai mare
coeficientul decât valoarea de prag, fără a caracteriza direct valoarea absolută a
acestuia. Astfel se realizează o reducere a cantității de informație care trebuie
transmisă. De exemplu, dacă pragul este definit la valoarea 16, atu nci vor fi
economisiți 4 biți față de cazul utilizării valorilor absolute. Desigur că această
reducere se face în contul preciziei utilizate pentru valoarea absolută, deoarece în
cursul procesului de decodare aceasta este determinată prin multiplicarea val orii
recepționate cu valoarea de prag corespunzătoare.
După cum s -a mai precizat anterior, sensibilitatea ochiului se modifică cu frecvența
spațială, prin urmare și valoarea de prag peste care ochiul detectează o anumită
frecvență spațială se modifică. Di n acest motiv, în practică, valoarea de prag utilizată
este diferită pentru fiecare din cei 64 coeficienți DCT. Aceste praguri sunt memorate
într-o matrice bidimensională, numită tabel de cuantizare .
Alegerea valorilor de prag este extrem de importantă, f iind în practică un compromis
între nivelul de compresie cerut și gradul de pierdere de informație care este
acceptabil. Standardul JPEG include două tabele de cuantizare cu valori prestabilite
ale pragurilor, unul pentru coeficienții de luminanță și celăl alt pentru cele două seturi
de coeficienți de crominanță. Standardul permite însă și definirea de către utilizator a
acestor praguri, care după utilizare în procesul de codare vor fi transmise împreună
cu imaginea comprimată.
În Figura 6.6 este prezentat un exemplu de tabel de cuantizare, împreună cu un set
de coeficienți DCT și cu rezultatul cuantizării acestora.

Din exemplul considerat se pot trage anumite concluzii privind caracterist icile
fazei de cuantizare:
Calculul coeficienților cuantizați implică rotunjirea câtului împărțirii la cea mai
apropiată valoare întreagă;
Valorile de prag utilizate cresc, în general, odată cu creșterea frecvenței spațiale;
 Coeficientul DC din matricea transformată este întotdeauna cel mai mare;
 mare parte din coeficienții corespunzători frecvențelor spațiale înalte sunt
egali cu zero.
Ultimele două proprietăți sunt utilizate pentru realizarea următoarei faze, cea de
coda re a entropiei.

Codarea entropiei
După cum s -a arătat, faza de codare a entropiei implică patru pași:
 Vectorizarea;
 Codarea diferențială;
 Codarea run -length;
 Codarea Huffman.
Vectorizarea
Diferiții algoritmi de codare a entropiei c are au fost prezentați în capitolul 2
operează cu șiruri unidimensionale de valori, adică cu vectori. După cum s -a văzut însă,
ieșirea fazei de cuantizare este constituită de o matrice de valori bidimensională. Prin
urmare, înainte de a aplica orice algori tm de codare a entropiei asupra setului de valori
din matrice, este necesară reprezentarea acestor valori sub forma unui vector
unidimensional. Această operație este cunoscută sub numele de vectorizare .
După cum s -a văzut din exemplul prezentat în Fig. 6. 6, ieșirea tipică a procesului de
cuantizare este constituită de o matrice bidimensională de coeficienți care sunt în marea
lor majoritate de valoare zero, cu excepția unui număr de valori nenule situate în colțul
din stânga sus al matricii. De aceea, dacă pentru a serializa valorile din matrice am utiliza
conceptul de scanare linie cu linie, am obține drept rezultat un șir mixt de valori nule și
nenule. Pentru a exploata în cursul procesului de compresie prezența unui număr mare
de coeficienți nuli este ne cesar ca aceștia să fie dispuși cât mai grupat în vectorul
unidimensional. De aceea, pentru obținerea șirului unidimensional 1 × 64 de coeficienți,
se utilizează o scanare în zig -zag a matricii bidimensionale.

În Figura 6.7 este reprezentat schematic pr incipiul scanării în zig -zag.

Cu această tehnică este scanat mai întâi coeficientul DC și apoi coeficienții AC de
frecvență scăzută (atât pe orizontală cât și pe verticală). Coef icienții de frecvență ridicată
sunt și ei scanați în ordine secvențială, astfel încât acest tip de reprezentare este mai
potrivit pentruu compresie. Pentru exemplul prezentat în Fig. 6.6 se obține vectorul
liniar de reprezentare din Figure 6.8.

Codarea diferențială
Codarea diferențială se aplică doar coeficientului DC obținut în urma fazei de cuantizare.
Acesta este o măsură medie a luminanței sau crominanței asociate fiecă rui bloc de 8 × 8
pixeli, fiind cel mai mare coeficient. Datorită importanței sale deosebite, rezoluția sa este
păstrată cât mai ridicată în cursul fazei de cuantizare. Pe de altă parte, datorită ariei
fizice relativ mici acoperite de fiecare bloc, coefici entul DC variază destul de puțin de la
un bloc la altul. După cum s -a arătat în capitolul 2, cea mai eficientă metodă de
compresie pentru acest tip de informație este codarea diferențială, deoarece aceasta
codează diferența dintre două valori dintr -un șir, și nu valoarea lor absolută. În cazul
considerat, se codează diferența dintre valoarea coeficientului DC dintr -un bloc și cea a
blocului anterior.

Codarea run -length
Codarea run -length se aplică celor 63 de coeficienți AC din matricea cuantizată. Datori tă
tehnicii de scanare în zig -zag, vectorul liniar va conține șiruri lungi de coeficienți nuli,
ceea ce face deosebit de convenabilă utilizarea codării run -length unidimensională,
descrisă în paragraful 2.6.
Codarea Huffman
Principiul codării Huffman a fost prezentat în paragraful 2.1.3, împreună cu alți algoritmi
de codare cu lungime variabilă sau de codare a entropiei. În cadrul algoritmului de
codare JPEG se utilizează codarea Huffman atât pentru ieșirea codării diferențiale a
coeficienților DC cât și pentru ieșirea codării run -length a coeficienților AC. În acest scop
poate fi utilizat un tabel de cuvinte de cod Huffman furnizat de algoritmul de codare
JPEG, fie tabele de cuvinte de cod care se transmit împreeună cu șirul de biți.
Construcția cadrulu i JPEG
Tipic, șirul de biți de ieșire furnizat de codorul JPEG este înmagazinat în memoria unui
calculator, fie cu scopul de a fi integrat într -o altă aplicație, fie pentru a fi accesat de un
alt calculator (eventual printr -o rețea). Pentru ca decodorul u nui calculator situat undeva
la distanță să poată interpreta diferitele câmpuri și tabele care alcătuiesc informația
corespunzătoare unui șir de biți JPEG este necesară delimitarea fiecărui câmp sau set de
tabele într -un mod bine definit. De aceea, standar dul JPEG include și o definire a
structurii unui șir total de biți pentru o anumită imagine. Această structură poartă
denumirea de cadru și are forma prezentată în Figura 6.9.
Rolul blocului Construcție cadru JPEG reprezentat anterior în Fig. 6.2 este ace la de a
asambla toate informațiile referitoare la o imagine codată în format JPEG. După cum se
observă, structura unui cadru este ierarhică. Pe nivelul superior, conținutul cadrului

(inclusiv header -ul) este asamblat între delimitatoarele de start cadru și de sfârșit cadru ,
care permit receptorului să determine începutul și sfârșitul grupului de informație
referitoare la o întreagă imagine.

Header -ul cadrului conține o serie de câ mpuri care dau informații despre:
 lățimea și înălțimea imaginii, exprimate în pixeli;
 numărul și tipul componentelor utilizate pentru reprezentarea imaginii (memorii
LUT; componente R, G, B sau componente Y, CB, CR);
 formatul utilizat pentru pentr u digitizarea imaginii.
Pe nivelul al doilea, un cadru conține un număr de componente denumite explorări .
Setul de explorări este de asemenea precedat de un header, care furnizează prin
câmpurile sale informații despre:
 identitatea componentelor (R, G, B, etc.);
 numărul de biți utilizați pentru digitizarea fiecărei componente;
 tabelul de cuantizare utilizat pentru codarea fiecărei componente.
Tipic, fiecare explorare conține unul sau mai multe segmente , fiecare putând conține un
grup de blocuri , precedate de un header.

Acesta conține tabelul Huffman utilizat pentru codarea fiecărui bloc din segment, în
cazul în care nu se utilizează tabelul furnizat din oficiu de către algoritmul JPEG. Astfel,
fiecare segment poate fi decodificat independent, c eea ce elimină posibilitatea
propagării erorilor către alte segmente. Deoarece fiecare cadru complet conține toate
informațiile necesare pentru ca decodorul să identifice câmpul recepționat, este posibilă
realizarea operațiunii de decodificare.
Decodorul JPEG
Structura unui decodor JPEG este prezentată în Figura 6.10. Se poate observa că
realizarea se bazează în linii mari pe utilizarea blocurilor similare celor folosite în
procesul de compresie. Prin urmare, timpul necesar pentru realizarea fu ncției de
decodare este similar cu timpul utilizat pentru realizarea codării.

La recepționarea șirului de biți codați JPEG, decodorul cadru identifică mai întâi
informația de con trol și tabelele cuprinse în diferitele headere. În continuare, conținutul
tabelelor recepționate este încărcat în tabelele corespunzătoare ale decodorului, iar
informația de control este transmisă către blocul de reconstrucție imagine . Șirul
comprimat de biți este transmis apoi la intrarea decodorului Huffman care realizează
operația de decompresie corespunzătoare în conformitate fie cu tabelul de cuvinte de
cod furnizat din oficiu de standardul JPEG, fie cu tabelul preîncărcat din șirul recepționat.
Șirur ile obținute de coeficienți DC, respectiv AC sunt furnizate la intrarea decodorului

diferențial , respectiv a decodorului run -length . Matricea rezultată este decuantizată prin
utilizarea tabelelor preîncărcate din șirul recepționat.
Fiecare dintre blocuri de coeficienți de frecvențe spațiale de dimensiune 8 × 8 rezultate
sunt transmise la intrarea blocului de transformare DCT inversă, care le readuce la forma
lor inițială prin utilizarea relației de calcul:

Blocul de reconstrucție a imaginii reface imaginea originală din aceste blocuri, prin
utilizarea informației de control recepționate.
Deși standardul de compresie JPEG este relativ complicat, datorită numărului mare de
etape pe care le implică, pot fi obținute rapoarte de compresie mai mari decât 20:1 în
condiții de păstrare a unei calități bune a imaginii de ieșire. Acest ordin de mărime al
compresiei se obține însă pentru imagini relativ simple, care implică relativ puține
tranziții de culoare. În cazul unor imagini complexe sunt mai uzuale rapoarte de
compresie de ordinul 10:1.
Mai trebuie precizat în legătură cu standardul JPEG faptul că acesta permite o codare și
refacere progresivă a imaginii, prin transmiterea inițial a u nei versiuni de rezoluție mică,
urmată de adăugarea a tot mai multe detalii. Această facilitate poate fi realizată în două
moduri:
 modul pregresiv , în care se transmite inițial coeficientul DC și coeficienții de
frecvență joasă din fiecare bloc;
 modu l ierarhic , în care se transmite inițial o imagine de joasă rezoluție (de
exemplu 320 × 240) și abia ulterior imaginea de rozoluție maximă.

JPEG 2000

Odată cu dezvoltarea tehnologiei informaționale și a aplicațiilor de imagistică s -a impus
dezvoltarea unui standard care să fie eficient din punct de vedere al compresiei și
calității imaginii, să prezinte un grad ridicat de scalabilitate și interoperabilitate între
diferitele rețele și medii. JPEG2000 este un standard care oferă o seri e de facilități noi
utilizatorilor permițându -le să dezvolte o serie largă de aplicații cum ar fi cele pentru
Internet, fotografii digitale, arhive și librării digitale, imagistică medicală, comerț
electronic și altele.
Cele mai importante caracteristici ale standardului JPEG2000 sunt:
 raport de compresie ridicat – pentru același raport de compresie, calitatea
imaginii comprimate este net superioară față de celelalte standarde
 compresia imaginilor binare și a celor cu nivele de gri – permite compresia
ambe lor tipuri de imagini, ceea ce nu era posibil la celelalte standarde
 compresia cu sau fără pierderi
 transmisie progresivă – permite ca imaginea să fie reconstruită la diferite
rezoluții.
 codarea ROI (Region Of Interest) – adeseori există zone din imagine c are au
importanță mai mare decât altele. Această caracteristică permite utilizatorului
să definească ROI în imagine astfel încât acestea să poată fi codate și
transmise la o calitate superioară celorlalte zone.
 securitatea imaginilor – standardul permite i ncluderea unei semnături digitale
care protejează în felul acesta folosirea abuzivă și neautorizată a imaginilor
digitale.

Codarea și decodarea JPEG2000
Schema bloc a unui codec JPEG2000 este prezentată în figura urmatoare :

Cuantizare Codare
entropică
DeCodare
entropică Transformare
inversă Transformare
DeCuantizare Imagine
sursă
Imagine
reconstruită Stocare/
Transmisie

Figura 6.11 Codorul/Decodorul JPEG2000

Dacă descriem pașii codării JPEG, putem să ne rezumăm la următoarele etape:
 descompunerea imaginii din componente RGB în format YUV, YC rCb
 planurile de imagine sunt împărțite în blocuri de imagine elementare (tiling).
Acest proces nu este obligatoriu
 se aplică transformata pe fiecare bloc elementar de imagine. Transformata
folosită în standardul JPEG2000 este transformata Wavelet discretă 2D
 subbenzile de coeficienți sunt cuantizate și grupate în „blocuri de codare”
 planurile de biți ale coeficienților dintr -un bloc de codare sunt codate entropic
 codarea poate fi implementată astfel încât să luăm în considerare ROI
 adăugarea elementelor de marcare suplimentare pentru r educerea erorilor la
transmisie și salvare
 obținerea șirului codat JPEG
Toți acești pași pot fi grupați în 3 etape mari:
 etapa de pre-procesare
 etapa de procesare de bază
 etapa de generare a șirului codat

Etapa de preprocesare

Prima etapă a preprocesării o reprezintă împărțirea imaginii în blocuri de imagine , care
vor fi comprimate independent, ca și cum ar fi imagini independente. Toate operațiile
care urmează, mixarea componentelor, transformata Wavelet, cuantizarea și codarea
entropică sunt realizate pe aceste blocuri elementare de imagine.
Această operațiun e de divizare a imaginii în blocuri elementare de imagine reduce
necesarul de memorie utilizată în procesul de compresie. Toate blocurile elementare au
aceeași dimensiune exceptând cele de la marginea imaginii. În funcție de dimensiunea
blocului elementar de imagine se pot obține rapoarte de compresie diferite și totodată
calitatea imaginii se modifică și anume cu cât blocul elementar este mai mare cu atât
calitatea este mai bună.
A doua etapă a preprocesării o reprezintă uniformizarea componentelor de imag ine
astfel încât acestea să aibă o valoare medie cât mai apropiată de zero. Pentru aceasta se
translatează nivelul DC al componentelor de imagine scăzând 2p-1, unde p reprezintă
numărul de biți/pixel.
Ultima etapă a preprocesării este transformarea compone ntelor de imagine. În general
componentele de imagine preluate de la orice dispozitiv de captură digitală sunt
furnizate în format RGB. Am văzut deja în cazul standardului JPEG care sunt avantajele
trecerii din acest format, care conține o serie de informa ții redundante, într -un format
de tipul YUV sau YC rCb.

Dep.
nivel DC Componentă de
imagine Împărțire pe blocuri de imagine DWT pe fiecare din componente
Codor entropic
Figura 6.12 Etapa de divizare, translație a niv elului DC și aplicare a DWT

Dacă pentru standardul JPEG se proceda la o operație de subeșantionare a
componentelor de crominanță C r, Cb acest lucru nu este recomandabil pentru JPEG2000.
Practic în JPEG2000 se realizează un prim pas al DWT pe componentele de crominanță.
Componentele LH, HL și HH se elimină și practic se obține o subeșantionare cu 2 atât în
plan vertical cât și în plan orizontal.

În figura 6.12 sunt prezentate câteva etape de prelucrare din algoritmul JPEG2000.

Etapa de prelucrare de bază

Un prim pas al prelucrării de bază îl constituie aplicarea transformatei Wavelet discrete.
Aspectele legate de DWT 2D au fost discutate în capitolul precedent.
Al doilea pas al prelucrării de bază îl reprezintă procesul de cuantizare. Se folosește o
cuantizare uniformă pentru fiecare bandă de coeficienț i DWT. Această etapă induce
pierderi în imaginea reconstruită. Fiecare coeficient ab(u,v) al subbenzii b este cuantizat
la valoarea qb(u,v) conform formulei:

,
,,b
bba u v
q u v semn a u vb
  .
Unde
b , reprezintă pasul de cuantizare pentru subbanda b. Codarea entropică
reprezintă ultima etapă a prelucrării de bază JPEG2000. Codarea entropică folosită în
cazul JPEG2000 este un algoritm de codare aritmetică.
Etapa de generare a șirului codat

După cuantizare fiecare subbandă este împărțită în blocuri de coeficienți. Se formează
apoi o grupare numi tă precinct , care conține câte un bloc din fiecare subbandă de pe
același nivel de descompunere DWT. Fiecare precinct este apoi împărțit în blocuri
elementare de codare . În cadrul fiecărei subbenzi, blocurile de codare elementare sunt
parcurse într -o ordin e specifică. Se pornește din colțul stânga sus și se „scanează” primii

patru biți din prima coloană. Se scanează apoi primii patru biți din a doua coloană și
procesul continuă până când se termină de parcurs un bloc elementar. Procesul se reia
cu citirea c elorlalți 4 biți din prima coloană, a doua etc.

Precinct Bloc
elementar
de codare

Figura 6.11 Divizarea în subbenzi, precinct și blocur i elementare de codare

După această scanare a blocurilor elementare de codare, fiecare bloc este codat
independent de ceilalți. În felul acesta, se elimină posibilitatea propagării erorilor în șirul
codat. De asemenea, se poate implementa:
 un proces de de codare paralelă care să micșoreze timpul de decodare
 un proces de acces aleator la informația spațială fără a fi nevoiți să decodăm
întreaga secvență.

Îmbunătățiri ale standardului JPEG2000

Standardul JPEG2000 oferă o serie de facilități noi față de cele lalte standarde de
compresie a imaginilor statice. Dintre acestea cele mai importante sunt:
 definirea ROI – Region Of Interest într -o imagine
 scalabilitatea spațială și după RSZ – Raportul Semnal Zgomot
 imunitate la erori
 posibilitatea de protejare după IP R – Intellectual Property Rights
Toate aceste caracteristici pot fi incluse în algoritmul de codare.
ROI
Această funcționalitate este importantă pentru aplicațiile în care diferite părți ale
imaginii au o importanță mai mare decât celelalte. În acest caz aceste regiuni trebuie să
fie codate cu o calitate mai mare decât zona de background (fundal).

Principiul metodei este de a translata coeficienții aflați în ROI în planuri de biți mai
importante decât cele asociate background -ului. Un astfel de proces este descris în
figura 6.14

Figura 6.12 Scalarea coeficienților ROI

În etapa de codare se vor coda mai întâi cele mai semnificative planuri de biți din ROI și
apoi planurile de biți asociate background -ului. În funcție de valoarea factorului de
translație, o parte din biții coeficienților ROI pot fi codați odată cu ceilalți coeficienți
nonROI.

Scalabilitatea
Scalabilitatea codării imaginilor statice reprezintă capacitatea de a coda o imagine
simultan la ma i multe nivele de rezoluție și calitate. Cele mai importante metode de
scalabilitate sunt:
 scalabilitatea după RSZ
 scalabilitatea spațială
Scalabilitatea RSZ se folosește pentru sisteme în care este nevoie de cel puțin două
versiuni ale imaginii la diferit e nivele de calitate. Scalabilitatea RSZ implică generarea a
cel puțin două versiuni ale imaginii originale la aceeași rezoluție spațială, dar având RSZ
diferite. Versiunea de calitate mai slabă va fi codată separat, reprezentând imaginea de
bază. Versiune a de calitate superioară este codată cu scopul de a îmbunătății
performanțele primei versiuni.
Scalabilitatea spațială se folosește pentru sisteme în care este nevoie de cel puțin două
versiuni ale imaginii la diferite rezoluții spațiale. Scalabilitatea spațială implică generarea
a cel puțin două versiuni ale imaginii originale la diferite rezoluții spațiale. Versiunea de
rezoluție mai mică va fi codată separat, reprezentând imaginea de bază. Versiunea de
rezoluție superioară este codată cu scopul de a îmbunătății performanțele primei
versiuni.

Imunitate la zgomot
Această caracteristică este extrem de importantă pentru aplicațiile pe sisteme mobile și
cele pe Internet. Pentru a îmbunătăț ii performanțele transmisiei imaginii codate se
folosesc o serie de artificii în procesul de obținere a șirului de biți codat. Practic există
două nivele care permit obținerea unei imunități la zgomot:
 la nivelul codorului entropic
o folosirea blocurilor de codare elementare
o folosirea terminatoarelor în procesul codării aritmetice
 la nivelul blocului de formare a șirului de biți
o folosirea pachetelor scurte
o folosirea marker -ilor de resincronizare

Concluzii:
Standardul Jpe g a proliferat datorita implementarii native in aplicatii precum Browsere
Web, in timp ce desi o alternativa aparent imbunatatita standardul Jpeg 2000 ramane in
obsc uritate din cauza neimplementarii atat de largi precum Jpeg. Teoretic desi o varianta
mai buna, in practica s -au observat diferente minore si deci nu a constituit barem de
schimbare a standardului Jpeg.

Bibliografie:
http://www.eed.usv.ro/~iulia/labs/Lab4_CSAVD
ctmtc.utcluj.ro:8080/… /JPEG200 0/Standardul%20de%20compresie
http://mihai.cm.upt.ro/discipline/cav/

Similar Posts