Transmisia datelor multimedia in retele de calculatoare Standardul JPEG2000

65
Transmisia datelor multimedia in retele de calculatoare Standardul JPEG2000 Conf. Dr. Ing. Costin-Anton Boiangiu <[email protected]> UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE

description

UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE. Transmisia datelor multimedia in retele de calculatoare Standardul JPEG2000. Conf. Dr. Ing . Costin-Anton Boiangiu < [email protected] >. JPEG 2000. - PowerPoint PPT Presentation

Transcript of Transmisia datelor multimedia in retele de calculatoare Standardul JPEG2000

Transmisia datelor multimedia in retele de calculatoare Standardul JPEG2000

Transmisia datelor multimedia in retele de calculatoareStandardul JPEG2000

Conf. Dr. Ing. Costin-Anton Boiangiu

UNIVERSITY POLITEHNICA of BUCHARESTDEPARTMENT OF COMPUTER SCIENCEJPEG 2000Nou standard de compresie a imaginilor, bazat pe Wavelet-uri A aparut din nevoia de a depasi limitarile formatului JPEGJPEG folosete transformarea cosinus discret pe grupuri de pixeli de dimensiunea 8 x 8 => uneori o imagine este reconstruit eronat (n special cnd parametrii JPEG sunt setai la valori cu pierderi mari de informaie)Acceptat ca standard internaional de ctre ISO i ITU-T in Decembrie 2000 2AvantajeEficien mare a compresiei se ateapt rate de bii mai mici de 0.25 BPP pentru imagini foarte detaliate n tonuri de gri Posibilitatea aplicrii asupra imaginilor de dimensiuni mari, pn la 232 x 232 pixeli formatul original JPEG nu poate lucra cu imagini mai mari de 216 x 216Transmisia progresiv a imaginii standardul propus poate decomprima progresiv o imagine n funcie de mai muli factori, cum ar fi: raportul semnal-zgomotrezoluiacomponenta de culoareregiunile de interes

3AvantajeAcces rapid i facil la diferite puncte din fluxul de date comprimate Decodificatorul poate efectua operaii de pan/zoom asupra imaginii n timp ce decomprim doar pri ale acesteia Decodificatorul poate roti sau decupa imaginea n timp ce o decomprim Rezisten la erori Coduri de corectare a erorilor pot fi introduse n fluxul de date comprimate pentru a mbunti fiabilitatea transmisiei n medii cu un nivel ridicat de zgomot

4Comprim o dat, decomprim n mai multe moduriCodificatorul JPEG 2000 alege o valoare maxim pentru calitatea imaginii, notat Q, i o rezoluie maxim, R, apoi comprim imaginea folosind aceti parametriDecodificatorul poate:decomprima imaginea folosind orice valoare a calitii mai mic sau egal cu Q, i la orice rezoluie mai mic sau egal dect Rdecomprima pri din imagine (regiuni de interes) la rezoluie i/sau calitate maxim sau sczutextrage pri din fluxul de date comprimate i le poate asambla pentru a crea un nou flux comprimat, fr a executa operaii de decomprimare (se poate obine o imagine la o rezoluie sau calitate mai mic fr ca decodificatorul s fie nevoit sa efectueze operaii de decomprimare)Avantajele acestei abordri sunt scderea timpului i spaiului necesar i limitarea nivelului de zgomot prezent n imagine (acest nivel crete n momentul n care o imagine este comprimat i decomprimat cu pierderi n mod repetat)5Decuparea i transformarea imaginiiLa comprimarea iniial a imaginii se pot specifica anumite regiuni de interes (ROI - Regions Of Interest)Decodificatorul poate accesa datele comprimate aparinnd oricrei regiuni i le poate scrie ca un nou flux de date comprimateAceasta necesit o procesare special n zonele marginale ale regiunii, dar nu este nevoie s se decomprime ntreaga imagine i apoi s se recomprime doar regiunea n cauzRotirea imaginii cu 90, 180 sau 270 se poate face complet n fluxul de date comprimat fr a fi nevoie de o decomprimare6Decodificarea progresiv a imaginiiPe msur ce decodificatorul primete date din fluxul comprimat, acesta mbuntete calitatea imaginii afiate0.05 bii/pixel au fost procesai de ctre decodificator => imaginea devine usor de recunoscut0.25 bii/pixel au fost procesai de ctre decodificator => imaginea are un aspect uniform, prezentnd doar cteva efecte nedorite date de compresieCnd ncepe procesul, decodificatorul creeaz o variant redus ca dimensiune (thumbnail) a imaginiiPe msur ce proceseaz mai multe date, decodificatorul adaug pixeli la imaginea afiat, mrindu-i dimensiunea n mai muli paiFiecare pas dubleaz att lungimea ct i limea imaginii => rezoluia este crescuta progresiv7Decodificarea progresiv (rezolutie)Imagine: goldNivele de rezolutie: 58

Decodificarea progresiv (rezolutie)9

Decodificarea progresiv (rezolutie)10

Decodificarea progresiv (rezolutie)11

Decodificarea progresiv (rezolutie)12

Decodificarea progresiv (rezolutie)13

Decodificarea progresiv (calitate)Imagine: goldBitrates:0.0625 bpp0.125 bpp0.25 bpp0.5 bpp1.0 bpp2.0 bpp14

Decodificarea progresiv (calitate)15

0.0625 BPPDecodificarea progresiv (calitate)16

0.125 BPPDecodificarea progresiv (calitate)17

0.25 BPPDecodificarea progresiv (calitate)18

0.5 BPPDecodificarea progresiv (calitate)19

1.0 BPPDecodificarea progresiv (calitate)20

2.0 BPPDecodificarea progresiv a componentelorMajoritatea imaginilor au fie una sau trei componente de culoare, dar se pot ntlni imagini cu patru componente, cum ar fi cele n spaiul CMYKFormatul JPEG 2000 permite pn la 16K (16384) componente, aceste componente putnd fi straturi suplimentare ale imaginii ce conin text sau graficDac fluxul de date comprimate este pregtit pentru decomprimare progresiv pe componente, imaginea este iniial decodificat n nuane de gri, apoi n culori, iar apoi diferitele componente suplimentare sunt decomprimate i afiate pentru a aduga detalii21Descompunerea multi-rezolutie22

Descompunerea multi-rezolutie23

Descompunerea multi-rezolutie24

Descompunerea multi-rezolutie25

Algoritmul JPEG 2000Dac imaginea ce trebuie comprimat este n culori, aceasta este mprit n trei componenteFiecare component este partiionat n regiuni rectangulare, nesuprapuse, numite plci (tiles), ce sunt comprimate individualO plac este comprimat n patru pai:Calcularea unei Transformate Wavelet ce rezult n sub-benzi i coeficieni WaveletExist L+1 niveluri de rezoluie ale sub-benzilor, unde L reprezint un parametru determinat de codificatorCoeficienii Wavelet sunt cuantizai, dac utilizatorul specific o rat de bii doritCodificarea aritmetic a coeficienilor Wavelet folosind Codificatorul MQ Construirea fluxului de bii26Componente de culoarePrimul pas al codificatorului JPEG 2000 este transformarea componentelor folosind:o transformare reversibil a componentelor (TRC) sau o transformare ireversibil a componentelor (TIC)Fiecare component transformat este apoi comprimat individualTRC este o transformare de decorelare i poate fi folosit mpreun cu transformata Wavelet (care este reversibil)27Componente de culoareConsiderand valorile pixelilor fiecrei componente i a imaginii cu Ii(x,y) pentru i = 0,1 i 2, transformarea reversibil a componentelor produce noi valori Yi(x,y), date de relaiile: 28

Componente de culoareTransformarea ireversibil a componentelor este o transformare de decorelare definit de: 29

PlaciFiecare component de culoare, transformat folosind TRC sau TIC, este partiionat n plci rectangulare nesuprapuseDeoarece componentele de culoare:pot avea rezoluii diferitese pot folosi dimensiuni diferite ale plcilor, care pot ajunge la dimensiunea ntregii imaginiAceste plci sunt comprimate individual 30Transformata Wavelet Dou transformate Wavelet sunt specificate de standardul JPEG 2000Wavelet n virgul mobil (ireversibil) Wavelet n numere ntregi (reversibil)

Ambele transformate permit transmisia progresivNumai transformata n numere ntregi poate realiza compresie fr pierderi31Transformata Wavelet Fie un ir de pixeli aparinnd unei plci cu Pk, Pk+1, , PmTransformarea Wavelet n numere ntregi calculeaz coeficienii C(i) n doi pai: calculeaz valorile impare C(2i+1) pe care le folosete n calcularea valorilor pare C(2i):32

Transformata Wavelet Transformarea Wavelet n virgul mobil se realizeaz n ase pai (fiecare pas se realizeaz pe toi pixelii din plac nainte s se treac la urmtorul pas)Se aplica la fiecare pas transformarea tuturor pixelilor care satisfac conditiile: 33

Transformata Wavelet unde cele cinci constante (coeficienii filtrului Wavelet) folosite de JPEG 2000 sunt: = -1.5861134342, = -0.052980118, = 0.0882911075, = 0.443506852, K = 1.230174105 34

Transformata Wavelet Transformri Wavelet unidimensionale:se aplic de L ori, unde L este un parametru (ce poate fi oferit de utilizator sau stabilit de codificator)sunt folosite la formarea de L nivele (sau rezoluii) ale sub-benzilor

Rezoluia L-1 reprezint imaginea iniial Rezoluia 0 este sub-banda cu cea mai mic frecven35Organizarea sub-benzilor n JPEG 2000 Sub-benzile pot fi organizate n trei moduri

36

CuantizareaFiecare sub-band poate avea o dimensiune diferit a pasului de cuantizareFiecare coeficient Wavelet din sub-band este mprit de dimensiunea pasului de cuantizare, iar rezultatul este trunchiatDimensiunea pasului de cuantizare poate fi determinat iterativ, pentru a obine o rat de bii dorit, sau pentru a obine un nivel predeterminat al calitii imaginiiDac se dorete o compresie fr pierderi, pasul cuantizrii este 137CuantizareaSe consider o plac a unei componente de culoarePixelii originali sunt transformai (Wavelet), rezultnd sub-benzi ce aparin nivelurilor de rezoluieExist trei sub-benzi n fiecare nivel de rezoluie, mai puin n cazul nivelului inferior, iar dimensiunea total a tuturor sub-benzilor este egal cu dimensiunea plciiO reea de dreptunghiuri, denumite precinct-uri, este suprapus pe ntreaga imagine38

CuantizareaOriginea retelei de precinct se afl n colul din stnga-sus al imaginiiDimensiunile precinct-ului (limea i lungimea) sunt puteri ale lui 2Graniele sub-benzilor nu sunt identice cu cele ale precinct-urilor

Examinnd cele trei sub-benzi ale unei anumite rezoluii, se aleg trei precinct-uri localizate n aceleai regiuni n cele trei sub-benziAceste trei precinct-uri se numesc partiii precinct

Reeaua de precinct-uri se mparte ntr-o reea mai fin, de blocuri de codificare (code-blocks), ce reprezint unitile de baz pentru codificarea aritmetic39CuantizareaPlcile, precinct-urile i blocurile de codificare pot fi privite ca fiind respectiv partiii brute, medii i fine ale imaginiiPartiionarea imaginii n uniti din ce n ce mai mici are ajut la:crearea implementrilor eficiente din punct de vedere al memoriei folositestreamingaccesarea uoar a diferitelor puncte din fluxul de bii40Codificarea entropicCoeficienii Wavelet ai unui bloc de codificare sunt codai aritmetic n funcie de planul de bii (bitplane)Codificarea se realizeaz de la cel mai semnificativ plan de bii (plan ce conine cei mai importani bii ai coeficienilor) pn la cel mai puin semnificativ plan de bii

Se determin un context pentru fiecare bitO probabilitate este estimat din contextBitul i aceast probabilitate sunt trimise ctre codificatorul aritmetic41Codificarea entropicCodificarea ncepe de la primul plan de bii care nu este complet egal cu 0Acest plan este codificat ntr-o singur trecere, o trecere de curare (cleanup pass)Restul de planuri de bii mai puin semnificative dect primul se codific n trei treceri, denumite:trecere de propagare a importanei (significance propagation pass)trecere de rafinare a magnitudinii (magnitude refinement pass)trecere de curare (cleanup pass)

Contextul unui bit se determin n mod diferit pentru fiecare trecere. 42Codificatorul aritmetic43Context modelUncompressed dataProbability estimatorArithmetic encoderDecision (D)Context (CX)QeMPS

Arithmetic decodercompressed dataProbability estimatorDecision (D)Context (CX)Uncompressed dataQeMPS

Context modelcompressed dataPachete/StraturiDup ce toi biii coeficienilor au fost codificai ntr-un scurt flux de bii, un header este adugat acelui flux de bii, transformndu-l n pachetHeader-ul conine toat informaia necesar pentru decodificarea pachetului

Un strat (layer) reprezint un set de pachete, i conine un pachet din fiecare partiie precinct a fiecrui nivel al rezoluiei (un increment al calitii pentru ntreaga imagine la rezoluie maxim)44Pachete/Straturi45

SOC: Start of code stream 0xFF4F

SOT: start of tile 0xFF90

SOD: start of data 0xFF93

EOC: end of code stream 0xFFD9Structura imaginii46ImageImage componentsTiles precinctlayersCode blockresolutionSub-bandpacket4LL3HL3LH3HH2HL1HL2HH1HH2LH1LHPachete/Straturi straturi, numerotate 1 . Fiecare strat este scalabil deoarece este compus din K,c pachete separate, pentru fiecare nivel de rezolutie , = 0,2,...,L si fiecare componenta de imagine, c

Single layer bit-stream organization

47

Regiuni de interesClientul poate decide s decodifice doar o parte a unei imagini, denumit i regiune de interesDecodificatorul poate identifica doar prile fluxului de bii ce corespund regiunii de interes i poate transmite doar acele priAceste regiuni de interes pot fi specificate n momentul codificrii, iar n acest caz codificatorul identific blocurile de codificare localizate n regiunea de interes i le scrie la nceput fluxului de biin multe cazuri, o regiune de interes poate fi specificat dup ce imaginea a fost comprimat, iar decodificatorul va folosi plcile pentru a identifica regiunea de interes48Exemplu (1)49

Exemplu (2)Imagine: goldROI: rectangularScalare: x4Bitrate: 2.0 bpp50

Exemplu (2)510.0625 BPP

Exemplu (2)520.125 BPP

Exemplu (2)530.25 BPP

Exemplu (2)540.5 BPP

Exemplu (2)551.0 BPP

Exemplu (2)562.0 BPP

JPEG vs. JPEG20000.125 bpp57

JPEG vs. JPEG20000.25 bpp58

JPEG vs. JPEG2000JPEG 0.125bppJPEG200059

JPEG vs. JPEG2000JPEG 0.25bppJPEG200060

ConcluziiFormatul JPEG 2000 ofer performane mai bune n comparaie cu JPEG, n special pentru imagini ce necesit rate de bii foarte sczute (factori mari de compresie), sau imagini unde este necesar o foarte bun calitatePentru compresii fr pierderi, sau aproape fr pierderi, JPEG 2000 ofer doar mbuntiri modeste fa de JPEGStandardul este potrivit pentru imagini de dimensiuni mari, cu o variaie lin a contrastului, cum ar fi imaginile medicaleAceste avantaje vin ns cu cerine mai mari din punct de vedere al memoriei i puterii de calcul necesare61Motion JPEG 2000Motion JPEG2000 (ISO/IEC 15444) - o extensie a formatului de imagine JPEG2000 Are ca scop stocarea de animaiiPrincipalul standard folosit n prezent n cinematografia digital

Un fiier Motion JPEG 2000 (cunoscut i ca MJ2) este compus dintr-o colecie de cadre, fiecare cadru fiind o imagine JPEG2000, compus din una sau mai multe componente (benzi sau canale de date)Componentele individuale ale cadrului pot fi alctuite din regiuni 62Motion JPEG 2000Similar cu Motion JPEG, folosind numai codare intra- cadru, fr aplicarea prediciilor de timp sau a compresiei inter- cadruFiecare cadru este codificat folosind:o variant cu pierderi a formatului JPEG2000 sau o varianta r pierderi a formatului JPEG2000

Pentru compresia audio, codarea LPCM (Linear Pulse Code Modulation) este suportat, precum i unele variante ale formatului MPEG-4 luate ca date complementare63AplicatiiIndustria cinematografic:stocaredistribuie prezentare

Folosind o variant fr pierderi a compresiei JPEG2000, ct i posibilitatea accesului granular (o animaie fiind alctuit din componente individuale sau regiuni, pe lng cadre ntregi) i codarea intra cadru, ce face fiecare cadru independent n timp, rezultatele aplicrii acestui format pentru stocare n tiin, cercetare i securitate sunt excelente 64AplicatiiApplicationProjection Electronic CinemaProductionHDTVProjectionDigital Cinema (NTT)ProductionDigital Cinema(35mm)Parameter1280x720YUV42216 Bit 24fps1920x1080YUV42220 Bit24fps4096x2048RGB44430 Bit24fps4096x3112RGB44436 Bit24fpsResulting datarate350 MBit/s995 MBit/s6040 MBit/s11000 GBit/sTypical compression ratio20:1=>17,5 MBit/s7:1=>140 MBit/s

450 MBit/s5:1=>2200 MBit/s65

Packet EMBED Equation.3

Body

Head

Packet EMBED Equation.3

Body

Head

Packet EMBED Equation.3

Body

Head

_979222980.unknown

_979222982.unknown

_979222978.unknown