JPEG
În informatică, JPEG (pronunțată "gei-peg"; IPA: /ˈdʒeɪpɛg/) este o metodă foarte des utilizată de compresie a imaginilor fotografice. Fișierele conținând imagini compresate grație acestei metode poartă în general extensia ".jpg". Scopul formatului JPEG a fost de a reduce dimensiunea fișierelor ce conțin imagini grafice de tip fotografic, naturale și cu un număr mare de culori fără a afecta calitatea imaginii.
Introducere
modificareJPEG este acronimul organizației Joint Photographic Experts Group. Este vorba despre un comitet de experți care edictează normele pentru compresia numerică a imaginilor fixe. Norma numită JPEG, cunoscută și sub denumirea ISO/IEC IS 10918-1 | ITU-T Recommendation T.81, este rezultatul unor proiecte de cercetare care au început în anii 1980 odată cu primele încercări în laborator ale tehnicilor de compresie a imaginilor.
Grupul JPEG, care a reunit cîteva zeci de experți internaționali, a publicat această normă încă din 1991. Versiunea oficială și definitivă n-a fost adoptată decît în 1992. Din punctul de vedere al proprietății intelectuale, doar partea referitoare la codajul aritmetic este brevetată, deținătorul brevetului fiind IBM.
Norma JPEG nu fixează decât algoritmul și formatul de decodare. Procesul de codare este lăsat la latitudinea utilizatorilor acestei tehnologii, singura cerință fiind ca imaginea compresată să poată fi tratată de către un decodor JPEG standard. Norma propune un ansamblu de fișiere de test numite fișiere de conformanță care permit verificarea conformității unui codor cu norma JPEG. Un codor este declarat conform dacă este capabil să codeze corect toate fișierele de conformanță.
JPEG definește două clase de compresie :
- cu pierderi sau compresie ireversibilă. Este vorba de JPEG-ul « clasic ». Acesta permite rate de compresie importante, în general de ordinul a 60 sau 80, păstrând totuși o foarte bună calitate a imaginii.
- fără pierderi sau compresie reversibilă. Nu au loc pierderi de informație și este în consecință posibilă reproducerea exactă a imaginii originale. Rata compreisiei posibilă cu această tehnică este mult mai modestă, în general aproape de 2.
Compresia JPEG
modificarePutem descrie compresia și decompresia JPEG în 6 etape conform acestei organigrame :
Figure 1 : Organigrama compresiei. Această imagine nu reprezintă un ciclu ! |
---|
Decuparea imaginii în blocuri
modificareAlgoritmul JPEG, după cum procedează în general toți algoritmii de compresie cu pierderi, începe prin a decupa imaginea în blocuri rectangulare de 64 (8x8) sau 256 (16x16) pixeli.
Transformata cromatică
modificareJPEG este capabil să opereze în orice spațiu cromatic, totodată cele mai bune rate de compresie sunt obținute utilizând codajele cromatice de tip luminanță/crominanță ca de exemplu YUV sau YCbCr, ținând cont de faptul că sistemul vizual uman este mai sensibil la componenta luminanță decât la componenta crominanță.
Sub-eșantionare
modificareMetoda cea mai simplă de a profita de slaba sensibilitate a vederii pentru crominanță este sub-eșantionarea semnalelor de crominanță. In general se face apel la o sub-eșantionare de tip 2h1v sau 2h2v. In primul caz (cel mai uzitat) se implementează o sub-eșantionare verticală 2:1 fără sub-eșantionare orizontală, iar în al doilea caz se realizează o dublă sub-eșantionare 2:1 orizontală și verticală. Aceste sub-eșantionări nu sunt aplicate decât componentelor de crominanță, luminanța nefiind niciodată sub-eșantionată.
Transformata DCT
modificareTransformata DCT (Discrete Cosine Transform în engleză), este o transformată numerică care este aplicată fiecărui bloc din fiecare componentă cromatică.
Fiecărui bloc de pixeli sunt asociate frecvențe spațiale.
Transformata DCT poate fi exprimată matematic în felul următor :
Ecuația 1 : Transformata DCT directă. |
---|
Transformata DCT inversă poate fi exprimată astfel :
Ecuația 2 : Transformata DCT inversă. |
---|
In ambele cazuri constanta are valuarea următoare :
Ecuația 3 : Definiția constantei C de normalizare. |
---|
Reproduce
Ecuația 4 : Matrice de origine. |
---|
Efectuând DCT obținem matricea de frecvențe următoare :
Ecuația 5 : Matricea rezultat a transformatei DCT. |
---|
Note
modificareCalculul numeric al unei DCT are o complexitate O(N*log(N)), fiind etapa cea mai costisitoare din punctul de vedere al timpului de calcul și a resurselor necesare pentru compresia sau decompresia JPEG, dar este probabil etapa cea mai importantă deoarece permite separarea elementelor de joasă fecvență de cele de înaltă frecvență prezente într-o imagine.
Puterea de calcul disponibilă în procesoarele moderne, în alianță cu algoritmi de tip FFT foarte eficace, permite reducerea timpului de calcul la nivele acceptabile pentru utilizatorul normal, sau chiar imperceptibile pe mașinile cele mai puternice.
Cuantizare
modificareCodaj, compresie RLE și Huffman
modificare<TODO>
Decompresia JPEG
modificare<TODO>
Note
modificare<TODO>
JPEG, codaj fără pierderi
modificare<TODO>
Punctele tari și punctele slabe
modificareDezavantajele compresiei JPEG ar trebui să includă apariția unor artefacte caracteristice asupra imaginilor reconstruite la rapoarte de compresie ridicate: imaginea este împrăștiată în blocuri de 8x8 pixeli (acest efect este deosebit de vizibil în zone ale imaginii cu modificări netede ale luminozității), în zone cu o frecvență spațială mare (de exemplu, pe contururile de contrast și marginile imaginii). Trebuie remarcat faptul că standardul JPEG (ISO / IEC 10918-1, anexa K, § K.8) prevede utilizarea unor filtre speciale pentru a suprima artefactele bloc, însă în practică asemenea filtre, în ciuda eficienței lor înalte, nu sunt practic utilizate.
Cu toate acestea, în ciuda neajunsurilor, JPEG a fost utilizat pe scară largă din cauza raportului relativ ridicat (comparativ cu existența la momentul apariției acestuia), a raportului de comprimare, a suportului pentru comprimarea imaginilor color și a complexității computaționale relativ scăzute.