580 likes | 687 Views
UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE. Transmisia datelor multimedia in retele de calculatoare JPEG. Conf. Dr. Ing . Costin-Anton Boiangiu < Costin.Boiangiu@CS.PUB.RO >. Compresia prin utilizarea transformarilor.
E N D
UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE Transmisiadatelor multimedia in retele de calculatoareJPEG Conf. Dr. Ing. Costin-Anton Boiangiu <Costin.Boiangiu@CS.PUB.RO>
Compresia prin utilizarea transformarilor • Compresia prin codarea transformarii este o tehnica foarte populara pentru compresia imaginilor si a surselor video • Scopul aplicarii unei transformari este de a decorela continutul imaginii din acelasi cadru sau din cadre alaturate, si de a coda coeficientii transformarii, in loc de pixelii originali ai imaginii • In acelasi timp se doreste micsorarea dependentei statistice dintre coeficienti, astfel incat sa se reduca numarul de biti necesari pentru transmiterea coeficientilor ramasi • Termenul de transformare a imaginii se foloseste pentru a descrie o clasa de matrici utilizate in reprezentarea imaginilor. • Daca un semnal 1-D poate fi reprezentat printr-o serie ortogonala de functii de baza, la fel o imagine poate fi reprezentata in functie de o multime discreta de functii 2D, numite si functii de baza
Compresia prin utilizarea transformarilor • Ideea de baza a metodelor de tip transformateeste de a descompune o imagine intr-o sumaponderata a unorimagini de baza, asa cum se prezinta in figura de maijos • Criteriile de optimalitate se refera la compactareaenergiei (un set mic de imagini de bazasuntsuficientepentrureprerzentareaimaginii) sidecorelare (coeficientiipentruimaginile de bazasuntrdecorelate) • TranformataKarhunen-Loeve (KLT) esteoptimalapentru a matrice de covarianta data a semnaluluiconsiderat • Transformatacosinus discrete (DCT) esteapropiata de KLT pentruimaginice pot fireprezentate ca procese Markov de ordinulintai (pixeliicurentidepoindnumai de pixeliianteriori).
Compresia prin utilizarea transformarilor • Primul bloc realizeazareducereagameidinamice a semnalului (imagine) in vedereaeliminariiinformatieiredundantesirealizeazaimpartireaimaginii in sub-blocuriacceptabilepentrurealizareaeficienta a operatieiurmatoare, o transformare • Transformarea se aplicapentruobtinereauneireprezentarice se poate coda maieficient • Blocul de cuantizareexistanumai in metodele de compresie cu pierdere de informatie, intructprincuantizarenumarul de simboluricetrebuiecodat se reduce • Ultimul bloc, codareaentropica, presupunefolosireaunortehnici de codare tip Huffman saucodarearitmetica in vedereaobtineriiuneieficienteaproape de entropieisurseice are ca simboluricoeficientiicuantizati
Compresia prin utilizarea transformarilor • In general, imaginea de intrare este impartita (divizata) in blocuri disjuncte, de marime NxN • Transformarea poate fi reprezentata ca o operatie matriciala utilizand o matrice de transformare A, in vederea obtinerii celor NxN coeficienti de transformare, folosind o transformare liniara, separabila si de norma unitara de tipul: • Transformarea este reversibila pentru ca blocul de pixeli original, poate fi reconstruit utilizand o transformare inversa unitara, unde inversa matricii A este identica cu matricea transpusa, deci A-1 =AT, astfel incat:
Compresia prin utilizarea transformarilor • Transformarea insasi nu face nici o compresie • Scopul transformarii este de a decorela semnalul de intrare ceea ce duce la re-distributia energiei semnalului peste un numar mic de coeficienti, coeficientii transformarii • Intrucat energia semnalului se conserva rezulta ca u are loc pierdere de energie si de informatie • In acest fel multi coeficienti pot fi neglijati dupa cuantizare si inaintea codarii • In plus, prin considerarea si includerea unui model al aparatului vizual, in speta a functiei de sensibilitate la constrast, in procesul de cuantizare a coeficientilor rezulta – de asemenea – o marire a eficientei compresiei
Compresia prin utilizarea transformarilor • O transformare se numeste uni-dimensionala (1D) daca este aplicata intr-o singura directie (dimensiune) a unei imagini, adica pe linie sau pe coloana • O trasnformare bi-dimensionala (2D) este aplicata unui bloc 2D de pixeli • O transformare este separabila daca nucleul transformarii poate fi descompus in doua nuclee 1D pentru operatiile efectuate pe verticala si pe orizontala • Astfel o transformare separabila aplicata unui bloc de NxN pixeli poate fi efectuata in doi pasi • Mai intai se aplica o transformare 1D in N puncte pe orizontala, deci pe fiecare linie a blocului, si apoi o alta trasformare 1D pe coloanele blocului • Prin transformata 1D in N puncte se intelege o transformare 1D efectuata pe N pixeli
Compresia prin utilizarea transformarilor • In alegerea tipului de transformare se are in vedere gradul de decorelare a imaginii, functiile de baza dupa acre se face descompunerea, numarul de operatii necesar pentru realizarea transformarii, rapiditatea implementarilor • Cele mai folosite transformari sunt: • Transformata Fourier Discreta (DFT) • Trasformata Karhunen-Loeve (KLT) • Transformata cosinus discreta (DCT) • Trasformata Walsh-Hadamard (WHT)
Transformata cosinus discreta (DCT) • Cea mai folosita transformare este DCT aplicata unor blocuri de marime mica, 8x8 pixeli • Explicatia consta in puterea de decorelare si in existenta unor algoritmi pentru implementari de timp real • DCT este apropiata de transformata Fourier discreta si trebuie retinut ca coeficientii acesteia (DCT) pot fi interpretati in domeniul frecventa • Coeficienti DCT mici arata/corespund unor frecvente spatiale mici in blocurile de imagine considerate • Coeficienti DCT mari corespund frecventelor mari
Transformata cosinus discreta (DCT) • Pentru aplicarea transformarii, se esantioneaza o imagine la intervale regulate, se analizeaza componentele spectrale prezente in esantionae, se inlatura acele frecvente care nu afecteaza imaginea din punctual de vedere al ochiului uman • Aceasta metoda este baza pentru standardele JPEG, MPEG, (CCCIT)H.261 si H.263 • A fost dezvoltata de Ahmed, Natarajan, and Rao [1974] • S-a folosit prima oara in compresia imaginilor de Chen and Pratt [1984]
Transformata cosinus discreta (DCT) • Pentru o matrices de dimensiunenxn, DCT 2D se calculeazasimplu: • DCT 1D se aplicapentrufiecarelinie a luis • apoifiecareicoloane a rezultatului • Relatiile de calculsunt:
Transformata cosinus discreta (DCT) • In notatiematriciala: • Refacereainformatieioriginaleinseamna:
Transformata cosinus discreta (DCT) • Ca si in cazuluni-dimensional, fiecare element S(u,v) al transformariiesteprodusul intern intreintraresifunctiabaza, unde – in acestcaz – functiile de bazasuntmatrici de dimensiunenxn • Fiecarematrice de bazaesteprodusul a doivectori de baza • Fiecarematrice de bazapoateficonsiderata ca o imagine
Transformata cosinus discreta (DCT) • Fiecarematrice de bazaestecaracterizata de o frecventaspatiala, orizontalasiverticala • Matricile din figurasuntaranjate de la stanga la dreaptasi de sus in jos in ordineacrescatoare a frecventelor • Fiecare pixel din imaginea DCT descriepondereafiecareimatrici de baza in semnalul (imagine) de la intrare • Pixeliisuntaranjati, in ordineacrescatoare a frecventelor de la stanga la dreaptasi de sus in jos • Celmaistralucitor pixel din coltul din dreaptasusestecunoscut ca termenul de current continuu, saucomponentamedie, cu frecventa {0,0} • El este media pixelilor de la intarre, sieste – tipic – celmai mare coefficient in DCT al imaginilornaturale
Modelareastatistica a coeficientilor DCT • Coeficientii DCT urmaresc o functiedensitate de probabilitate de tip gaussianageneralizata cu medie de forma: unde • Functia este o functie de scalareastfelincatsi p este un parametru de forma
Modelareastatistica a coeficientilor DCT • Functia gamma estedefinitaprin: • In raport cu usiv, care suntindiciicoeficietilor DCT din cadrulunui bloc, marimile de maisussuntconstantepentru un coeficient, sicontroleaza forma sivarianta • Dacaparametrul de forma, p, este 1 atuncidistribuitagaussianageneralizatadevinedistributie Laplace • Dacaparametrul de forma are valoarea 2 se obtinedistributiagaussiana.
Modelareastatistica a coeficientilor DCT • Functiadensitate de probabilitategaussianageneralizata, cu diferitevalori ale parametrului de forma
Exemplu - Litera A (8x8 pixel) si coeficientii DCT • Se considera problema compresiei unei imagini, ce reprezinta litera A
Exemplu - Litera A refacuta pentru numar diferit de coeficienti Selectarea numarului de coeficienti se bazeaza pe faptul ca cele mai mari valori se gasesc in jurul frecventelor joase (cel putin pentru imagini naturale)
Compresia unei imagini prin DCT - raportul de compresie este 4
Compresia unei imagini prin DCT • In primul caz s-au retinut 101 coeficienti si in al doilea caz s-au retinut 3677 coeficienti • Raportul de compresie este: unde: • nc este numarul de coloane • nl este numarul de linii • n_bit_per_pixel este numarul de biti pentru reprezentarea intensitatii unui pixel • n_coef este numarul de coeficienti considerati in transformare • n_bit_per_coef este numarul de simboluri binare pentru reprezentarea unui coeficient • Exemplu: pentru imagini cu nivele de gri: n_bit_per_pixel = 8 si n_bit_per_coef = 32
Standardului JPEG • In standardul de compresie JPEG (Joint Photographic Experts Group)), fiecare coefficient DCT este normalizat (ponderat) cu valori ale unei matrici de normalizare, care este fixa pentru toate blocurile • Obiectivul ponderarii este evidentierea importantei coeficeintilor in raport cu importanta perceptuala a fiecarui coeficient • Dupa normalizare coeficientii sunt rotunjiti la cel mai aproape intreg • Pentru varianta de baza a standardului JPEG se pot folosi 4 matrici de normalizare, in raport cu luminanta si componentele de crominanta ale imaginii • Fiecare componenta a ariei de normalizare Q(u,v) este un intreg reprezentat pe 8 biti care – in efect – determina marimea pasului de cuantizare • JPEG lucreaza cu 24 de biti pentru culoare, (16.7 milioane de culori), indiferent de numarul de culori din imagine
Standardului JPEG • In general, frecventele spatiale de ordin mare sunt mai putin vizibile ochiului uman in comparatie cu frecventele joase • Astfel, intervalele de cuantizare sunt alese mai mari pentru frecvente mari • Urmatoarea matrice de cuantizare este folosita intens pentru imaginile monco-crome si pentru componenta de luminanta a imaginiii color • Ea se folosteste in compresia JPEG si este determinata din masurarea pragului de vizibilitate al coeficientului DCT • Alte aplicatii pot folosi alte valori ale matrii de ponderare
Standardului JPEG • Vizualizand matricea de luminanta, QL, si matricea de crominanta, QC, pe o scara a nivelelor de gri se vede dependenta factorilor de cuantizare de frecventa, prin cresterea intensitatii incepand din coltul stanga sus inspre coltul dreapta jos (0 = negru si 121 = alb)
Standardului JPEG • La efectuarea compresiei, se transforma matricea in blocuri si se cuantizeaza fiecare bloc • La de-compresie se inmulteste fiecare bloc cu matricea de cuantizare si se obtine imaginea reconstruita • Cuantizarea inseamna rotunjira la cel mai apropiat intreg
Standardului JPEG • Prin normalizare si cuantizare se obtin multe valori de 0 pentru coeficientii DCT • Inainte de codare entropica, coeficientii DCT sunt reformatati in format 1D prin scanare in zig-zag dupa urmatoarea configuratie (sau tabel de citire), in vederea gruparii celulelor care sunt corelate si a indepartarii acestei redundante prin codare entropica • Aceasta arie este determinata de proprietatile sistemului olfactiv uman, care este mai putin sensibil la frecvente inalte, si permite folosirea corelatiilor celulelor invecinate • S =
Standardului JPEG • Fiecare componenta din aria de normalizare este un intreg pe 8 biti si este transferata receptorului ca parte a informatiei de antet • Se pot specifica pana la 4 arii de normalizare, de exemplu arii diferite pentru componentele de luminanta si crominanta ale unei imagini color • Fiecare componenta de culoare este codata independent • De exemplu, o imagine reprezentata in spatiul YIQ este codata ca trei imagini separate
Observatii • Inainte de afectuareatransformariiblocului imagine are loc o deplasare a valoriipixelilor in jos cu jumatate din gamadinamicafolosita la reprezentare • De exemplu, daca se folosestegama [0 255] atunci se vascadeavaloarea 128, inainte de aplicareatransformarii • Pentrudecuantizare, de folosesteregulapunctului de mijloc la refacereacoeficientilor DCT, deci la mijloculintervalului de cuantizare • Acest tip de reconstructiearfi optimal dacasinumaidacafunctiadensitate de probabilitate a coeficientilor DCT arfiuniforma • In realitateesesteneuniforma, astfelincatpentru a minimizavaloareapatraticamedie se alege ca valoareestimatacoordonatacentroiduluiintervalui de cuantizare
Observatii • In contextuldetectieiprezenteiuneiinformatiiascunseintereseazaposibilitatile de determinare a modificariifunctieidensiatte de probabilitate • Coeficientii DCT au fdp de tip Laplace, ceeacecorespundevalorii 1 a parametrului de forma in expresiafunctieigaussienegeneralizate • Se consideraexpresia undexreprezintavalorilecoeficientilor DCT
Observatii • DacareprezntavalorilecuantizatesiQestepasul de cuantizareatuncivaloareareconstituitavafi in intervalul: • Valoarea optima a esantionuluirefacut, pesteintervalul anterior, este: • undeoffsetul se determina din statisticaimaginiioriginalasau a imaginiirefacute
Exemplu • Sa se facacompresiaimaginiisprinmetodacodariitransformarii cu pierdere de informatie:
Exemplu • Matriceatransformariicosinus discrete este: • Transformatacosinusdiscretaaplicataimaginiiseste:
Exemplu • Se alegematricea de cuantizare de forma: • Tranformatacuantizata:
Exemplu • Neglijandcoeficientiimaimici de 1, 2.5 si 5 din maximumulcoeficientilor AC se obtintransformateleponderatereduse:
Exemplu • In vedereacodariicoeficientii se parcurg in zigzag coeficientiitransformarii, dupatraiectoria: T = [S(1,1), S(1,2), S(2,1), S(3,1), S(2,2), S(1,3), S(1,4), S(2,3), S(3,2), S(4,1), S(4,2), S(3,3), S(2,4), S(3,4), S(4,3), S(4,4)]
Exemplu • Pentru prima matrice, Scr1, se obtine: T1= [ 32, 0, -9, -4, 0 ,7, 0, -3, 0, 0, 0, -2, 0, 0, 0, 0, EOB] • Primulcoeficientestecodatdiferential, cu referire la valoareacoeficientului din blocul anterior • Ceilaltidefinescsimbolurile de codare de forma [run,level]: T1= {(1,-9),(0,-4), (1 ,7), (1, -3), (3, -2), (3, 0), EOB}
Exemplu • Simbolurileastfelobtinute se codeazadupa un tabel de codare Huffman definit a priori, de obicei • Pentrucazul de fata se vaconsidera ca RLC binaraplecand de la o reprezentarepe 8 biti a numerelorintregi cu semn • Pentrubitul de semn, se considera 0 pentrunumerepozitive • Pentrucaracterul EOB (End Of Block) se consideravaloarea -127, foarteputinprobabilasaapara in ultimapozitie • Rezultafluxulbinar: T1bin= {0100.000, 0000.0000, 1001.0001, 1000.1001, 0000.0000, 0000.1111, 0000.0000, 1000.0011, 0000.0000, 0000.0000, 0000.0000, 1000.0010, 0000.0000, 0000.0000, 000.0000, 1111.1111}
Exemplu • Princodare RLC se obtine: T1Comprimat= {0, 1, 0*13, 1, 0*2, 1, 0*3, 1*2, 0*3, ,0*2, 1, 0*12, 1*5, 0*5, 1*2, 0*24, 1 ,0*5, 1, 0*25, 1*8} • Impunand un numar maxim de 128 de repetari (maxim 7 biti) pentruceledouasimboluri (0 si 1) , rezultanumarul de bitinecesarpentruaceastareprezentare: n = 1+1+8+1+8+1+8+8+8+8+1+8+8+8+8+8+1+8+1+8+8 = 119 • Raportul de compresieeste:
Exemplu • In cazulrefaceriiimaginilor, dupadeponderaresitransformareinversa:
Exemplu • Compresia imaginii „cameraman” cu algoritmul JPEG si blocuri de marime 8x8 • S-au considerat mai multe variante in care numarul de coeficienti considerati ai transformarii sunt 4, 9 si 16 • Raportul de compresie este: unde nl este numarul de linii nc este numarul de coloane np este numarul de pixeli nb_per_pixel este numarul de biti pentru un pixel n_blocuri este numarul de blocuri in care se descompune imaginea (blocuri de dimensiune 8x8) n_coef este numarul de coeficienti ai transformarii ce sunt memorati, n_bit_per_coef este numarul de biti pentru reprezentarea unui coeficient
Exemplu • Este interesant de observat ca aceste valori ale raportului de compresie s-au obtinut fara a se considera si codarea entropica la care este supusa imaginea dupa normalizare si scanare in zig-zag • Numarul de variabil de coeficienti se obtine prin modificarea matricii de ponderare