Ulike typer redundans. Lempel-Ziv-koding. Universell koding. INF 2310 Digital bildebehandling. Kompresjon og koding Del II

Like dokumenter
Ulike typer redundans. Et annet eksempel. Kodingsredundans et eksempel. INF 2310 Digital bildebehandling. Kompresjon og koding Del II

Ulike typer redundans. Lempel-Ziv-koding. Universell koding. INF 2310 Digital bildebehandling

INF 1040 Kompresjon og koding. Noen begreper. Litt om de tre stegene i kompresjon. Kompresjon. Dekompresjonsalgoritme. Kompresjonsalgoritme

Lempel-Ziv-koding. Lempel-Ziv-koding. Eksempel på Lempel-Ziv. INF 2310 Digital bildebehandling. Kompresjon og koding Del II

da INF 2310 Digital bildebehandling

INF 1040 Kompresjon og koding. Noen begreper. De tre stegene i kompresjon. Kompresjon. Dekompresjonsalgoritme. Kompresjonsalgoritme

INF 1040 Kompresjon og koding. Noen begreper. De tre stegene i kompresjon. Kompresjon. Dekompresjonsalgoritme. Kompresjonsalgoritme

Kompresjon. Noen begreper. Plass og tid. Kompresjon. Digitale data kan ta stor plass. Eksemper : Overføring av data tar tid: Dekompresjonsalgoritme

Repetisjon: Kompresjon

INF 1040 Digital video digital bildeanalyse. Noen begreper. Kompresjon. Kompresjon. Dekompresjonsalgoritme. Kompresjonsalgoritme

INF2310 Digital bildebehandling

Repetisjon: Kompresjon

Repetisjon: Kompresjon

FORELESNING 12. KOMPRESJON OG KODING II Andreas Kleppe

INF2310 Digital bildebehandling

Repetisjon: Kompresjon

Eneboerspillet. Håvard Johnsbråten

2-komplements representasjon. Binær addisjon. 2-komplements representasjon (forts.) Dagens temaer

! Dekoder: En av 2 n output linjer er høy, avhengig av verdien på n inputlinjer. ! Positive tall: Som før

INF 1040 Kompresjon og koding

x 1, x 2,..., x n. En lineær funksjon i n variable er en funksjon f(x 1, x 2,..., x n ) = a 1 x 1 + a 2 x a n x n,

INF 1040 Kompresjon og koding

Anvendelser. Noen begreper. Kompresjon

Anvendelser. Noen begreper. Kompresjon. INF 2310 Digital bildebehandling

DEL 1 Uten hjelpemidler

Anvendelser. Kompresjon. Noen begreper. INF 2310 Digital bildebehandling

S1 kapittel 8 Eksamenstrening Løsninger til oppgavene i læreboka

TFE4101 Krets- og Digitalteknikk Vår 2016

INF 1040 Kompresjon og koding

FORELESNING 11. KOMPRESJON OG KODING I Andreas Kleppe. Tre steg i kompresjon Redundanser Transformer Koding og entropi Shannon-Fano og Huffman

5: Algebra. Oppgaver Innhold Dato

Løsningsforslag til Obligatorisk oppgave 2

Kapittel 15 ANDREGRADSLIGNINGER. Arealet av det ytre kvadratet skal være dobbelt så stort som arealet av bassenget. x =?

DEL 1 Uten hjelpemidler

S1 kapittel 4 Logaritmer Løsninger til oppgavene i boka

Løsningsforslag Eksamen 30. mai 2007 FY2045 Kvantefysikk

1 Tallregning og algebra

Løsning av øvingsoppgaver, INF2310, 2005, kompresjon og koding

STATISTIKK, KOMBINATORIKK OG SANNSYNLIGHET

Kapittel 4 Tall og algebra Mer øving

2 Symboler i matematikken

FY2045/TFY4250 Kvantemekanikk I, løsning øving 10 1 LØSNING ØVING 10

Eksamen våren 2018 Løsninger

Bioberegninger - notat 3: Anvendelser av Newton s metode

Temahefte nr. 1. Hvordan du regner med hele tall

Løsningsforslag til obligatorisk oppgave i ECON 2130

MAT 100a - LAB 4. Før vi gjør dette, skal vi for ordens skyld gjennomgå Maple-kommandoene for integrasjon (cf. GswM kap. 12).

Sem 1 ECON 1410 Halvor Teslo

Eksempeloppgaver 2014 Løsninger

R1 kapittel 1 Algebra

1 Mandag 25. januar 2010

S1 kapittel 6 Derivasjon Løsninger til oppgavene i boka

DELPRØVE 2 (35 poeng)

Løsningsforslag til avsluttende eksamen i HUMIT1750 høsten 2003.

Microsoft PowerPoint MER ENN KULEPUNKTER

Numerisk Integrasjon

Faktorisering. 1 Hva er faktorisering? 2 Hvorfor skal vi faktorisere? Per G. Østerlie Senter for IKT i utdanningen 11.

Oppgave 2 Betydningen til hvert enkelt siffer er bestemt av sifferets plassering eller posisjon. Tallet 4321 betyr

Brøkregning og likninger med teskje

1T kapittel 3 Funksjoner Løsninger til oppgavene i læreboka

Eksamen høsten 2015 Løsninger

Andre funksjoner som NAND, NOR, XOR og XNOR avledes fra AND, To funksjoner er ekvivalente hvis de for alle input-kombinasjoner gir

Numerisk derivasjon og integrasjon utledning av feilestimater

75045 Dynamiske systemer 3. juni 1997 Løsningsforslag

PLASS og TID IN 106, V-2001 KOMPRESJON OG KODING 30/ Fritz Albregtsen METODER ANVENDELSER

UNIVERSITETET I OSLO

Hva er tvang og makt? Tvang og makt. Subjektive forhold. Objektive forhold. Omfanget av tvangsbruk. Noen eksempler på inngripende tiltak

Integralregning. Mål. for opplæringen er at eleven skal kunne

6 Brøk. Matematisk innhold Brøk i praktiske situasjoner Brøk som del av en mengde. Utstyr Eventuelt ulike konkreter, som brikker og knapper

Fasit. Oppgavebok. Kapittel 5. Bokmål

PLASS og TID INF Fritz Albregtsen. Tema: komprimering av bilder ANVENDELSER METODER

Del 5 Måleusikkerhet 5.2 Type A og type B usikkerhetsbidrag

3.7 Pythagoras på mange måter

1 Mandag 18. januar 2010

Oppgave 1 Diagrammet nedenfor viser hvordan karakteren var fordelt på en norskprøve.

Årsprøve trinn Del 1. Navn: Informasjon for del 1

Numerisk kvadratur. PROBLEM STILLING: Approksimér. f(x)dx. I(f) = hvor f : R R. Numerisk sett, integralet I(f) = b. f(x)dx approksimeres med en summe

INF 1040 Løsningsforslag til kapittel

2 Tallregning og algebra

Nøtterøy videregående skole

LØSNINGSFORSLAG(Sensor) I TMA4140 og MA0302

... JULEPRØVE 9. trinn...

Mer øving til kapittel 3

Løsningsforslag, Ukeoppgaver 9 INF2310, våren kompresjon og koding del I

Årsprøve trinn Del 2

Integrasjon. et supplement til Kalkulus. Harald Hanche-Olsen 14. november 2016

! Brukes for å beskrive funksjoner i digitale kretser. ! Tre grunnleggende funksjoner: AND, OR og NOT

1 Algebra. 1 Skriv disse uttrykkene så enkelt som mulig: a) 2(a + 3) (3 + 3a) b) 2(1 a) + a(2 + a) c) 1 + 2(1 3a) + 5a d) 4a 3ab 2(a 5b) + 3(ab 2b)

Basisoppgaver til Tall i arbeid P kap. 1 Tall og algebra

Numerisk matematikk. Fra Matematikk 3MX (2002) Side

FY2045/TFY4250 Kvantemekanikk I, øving 10 1 ØVING 10

M2, vår 2008 Funksjonslære Integrasjon

INF2310 Digital bildebehandling

Montering av Grand Star leddporter

DEL 1 Uten hjelpemidler

UNIVERSITETET I OSLO

1P kapittel 3 Funksjoner

DEL 1 Uten hjelpemidler

MIK 200 Anvendt signalbehandling, 2012.

Transkript:

Ulike typer redundns INF 230 Digitl ildeehndling Kompresjon og koding Del II LZW-koding Aritmetisk koding JPEG-kompresjon v gråtoneilder JPEG-kompresjon v frgeilder Rekonstruksjonsfeil i ilder Tpsfri prediktiv koding F2 22.04.0 INF 230 Psykovisuell redundns Det finnes informsjon vi ikke kn se. D kn vi su-smple, eller redusere ntll it per piksel. Interilde redundns Det er en viss likhet mellom no-ilder i en tids-sekvens Vi koder noen ilder i sekvensen, og deretter re differnser. Intersmpel redundns No-piksler ligner på hverndre eller er like. Hver linje i ildet kn run-length trnsformeres. Kodings-redundns Gjennomsnittlig kodelengde minus et teoretisk minimum. Velg en metode som er grei å ruke, med liten redundns. F2 22.04.0 INF 230 2 Universell koding Lempel-Ziv-koding Huffmn-koding ygger på t mn finner ntll forekomster v hvert symol i teksten, og lger kodene fr dette. Kodene må lges fr gng til gng, og kodeoken må også oversendes. Er det mulig å finne en universell kode for hvor mnge gnger et symol forekommer? Vi kn f.eks. se på forekomster v ulike okstver i norsk eller engelsk tekst. e forekommer oftest, z, x og q er sjeldne Eller vi kn ygge opp kodestrenger etterhvert som vi ser gjenttte mønstere. Lempel-Ziv koding er et eksempel på universell koding v symoler (f.eks. en itsekvens). Premierer mønstre i dtene, ser på smforekomster v symoler. Bygger opp en symolstreng-liste åde under kompresjon og dekompresjon. Denne listen skl ikke lgres eller sendes, for mottkeren kn ygge opp listen ved hjelp v den symolstrengen hn mottr. Det eneste mn trenger er et stndrd lfet (f.eks ASCII). F2 22.04.0 INF 230 3 F2 22.04.0 INF 230 4

Lempel-Ziv-koding Mottker kjenner re lfetet, og lgrer nye frser ved å tnest siste streng pluss første symol i sist tilsendte streng, inntil listen er full (det er en prktisk grense her!). En ulempe er t mn v og til lger kodeord som mn ikke får ruk for. Finnes i Unix compress siden 96. Ble en del v GIF-formtet i 97. Er en opsjon i TIFF-formtet. Finnes i Aoe Acrot. Komprimerer typisk tekst-filer med c fktor 2. F2 22.04.0 INF 230 5 Eksempel på Lempel-Ziv Ant t lfetet er, og c som tilordnes kodene, 2 og 3. L dtene være c ( tegn) sender: ny frse = sendt streng pluss neste usendte symol mottker: ny frse = nest siste streng pluss første symol i sist tilsendte streng Ser c Sender 2 4 3 5 Senders liste =,=2,c=3 =4 =5 c=6 c=7 = =9 Mottr Vi mottr en kode som ikke finnes i listen. Kode le lget som +?, og nå sendes kode. Altså må vi h? = => = + =. F2 22.04.0 INF 230 6 2 4 3 5 Tolker c Mottkers liste =, =2, c=3 =4 =5 c=6 c=7 Eksempel på Lempel-Ziv - II Ser c Sender 2 4 3 5 0 0 Senders liste =,=2,c=3 =4 =5 c=6 c=7 = =9 =0 = =2 Mottr = =9 =0 = =2 Kode 0 le lget idet = le sendt, som 0 +?. Så sendes 0. D må vi h 0= + =. Istedenfor tegn er det sendt 0 koder. 5 v 2 koder le ikke rukt. F2 22.04.0 INF 230 7 2 4 3 5 0 0 Tolker c Mottkers liste =, =2, c=3 =4 =5 c=6 c=7 Et eksempel fr ok Dt : (6 piksler med gråtoner =39 og =26) sender: ny frse = sendt streng pluss neste usendte symol mottker: ny frse = nest siste streng pluss første symol i sist tilsendte streng ser sender 39 39 26 26 256 25 260 259 257 26 liste =256 =257 =25 =259 =260 =26 =262 =263 =264 mottr 39 39 26 26 256 25 260 259 257 26 Listen utvides fr til 9 iter Kompresjonsrte C= (6x)/(0x9) =.42 tolker liste 256= 257= 25= 259= 260= 26= 262= 263= 264= F2 22.04.0 INF 230

Aritmetisk koding Aritmetisk koding er en metode for tpsfri kompresjon. Det er en vriel lengde entropi-kode. Metoden produserer ikke kode-ord for enkelt-symoler. Metoden koder en sekvens v symoler til et tll n (0.0 n <.0). Dermed kn mn få en mer optiml koding enn med Huffmn-koding, fordi mn ikke lenger er egrenset til et heltlls ntll iter per tegn i sekvensen. Produserer nær optiml kode for et gitt sett v symoler og snnsynligheter. Jo edre smsvr det er mellom modellen og de virkelige forekomstene i sekvensen, desto nærmere optimlitet kommer mn. Aritmetisk koding - 2 Vi plsserer symol-snnsynlighetene etter hverndre på tllinjen fr 0 til. Får et estemt del-intervll mellom 0 og som tilsvrer hvert tegn. Hr vi to tegn etter hverndre, så lir det delintervllet som representerer dette tegnpret et delintervll v intervllet til det første tegnet, osv. Et kodeord for en lengre sekvens v tegn vil d eskrive et hlvåpent delintervll v det hlvåpne enhetsintervllet [0, ), og kodeordet må inneholde kkurt tilstrekkelig mnge iter til å gi en entydig peker til det riktige delintervllet. F2 22.04.0 INF 230 9 F2 22.04.0 INF 230 0 Algoritme Algoritmen kn eskrives i pros : Vi strter med et current intervl = [0,). For hvert nytt tegn gjør vi to ting: Vi deler opp current intervl i nye delintervller, der størrelsen på hvert delintervll er proporsjonl med snnsynligheten for vedkommende tegn. Vi velger det delintervllet v current intervl som svrer til det tegnet vi fktisk hr truffet på, og gjør dette til vårt nye current intervl. Til slutt ruker vi så mnge iter til å representere det endelige intervllet t det entydig skiller dette intervllet fr lle ndre mulige intervller. Sttisk modell Ant t vi hr følgende enkle sttiske snnsynlighets-modell: 60% snnsynlighet for symolet A 20% snnsynlighet for symolet B 0% snnsynlighet for symolet C 0% snnsynlighet for symol END-OF-DATA. Siden EOD ts med i modellen, får vi en intern terminering. Dette er gnske vnlig i prktisk dt-kompresjon. F2 22.04.0 INF 230 F2 22.04.0 INF 230 2

Koding Kodingen deler current intervl opp i su-intervller Hvert su-intervll hr en redde som er proporsjonl med snnsynligheten til et gitt symol i current context. Det intervllet som svrer til det neste symolet i sekvensen lir current intervl i neste steg. Eksempel: for den 4-tegns modellen vi hr: intervllet for A er [0.0, 0.6) intervllet for B er [0.6, 0.) intervllet for C er [0., 0.9) intervllet for EOD er [0.9, ). Et kodings-eksempel Ant t vi hr et lfet {,,c} med snnsynligheter {0.6,0.2,0.2}. Hvilket intervll mellom 0 og vil entydig representere teksten c? ligger i intervllet [0, 0.6). Current intervl hr nå en redde på 0.6. c ligger i intervllet [0+0.6*0., 0+0.6*) = [0.4, 0.6). Intervllredden er nå 0.2. c ligger i intervllet [0.4+0.2*0, 0.4+0.2*0.6) = [0.4, 0.552). Intervllredden er 0.072. c ligger i intervllet [0.4+0.072*0.6, 0.4+0.072*0.) = [0.5232, 0.5376). Intervllredden er 0.044. c er i [0.5232+0.044*0, 0.5232+0.044*0.6) = [0.5232, 0.534). Intervllredden er nå 0.0064 (= produktet 0.6*0.2*0.6*0.2*0.6). Et tll i intervllet, f.eks. 0.534, vil entydig representere teksten c, forutstt t mottkeren hr den smme modellen. F2 22.04.0 INF 230 3 F2 22.04.0 INF 230 4 Eksempel på dekoding Ant t vi skl dekode tllet 0.53 Vi strter med intervllet [0,) som current intervl. Vi ruker modellen med EOD, og deler opp i 4 su-intervller Vårt tll 0.53 ligger i su-intervllet for A, [0, 0.6): => Første tegn er A. Så deler vi opp intervllet [0, 0.6) for å finne neste tegn: intervllet for A er [0, 0.36) redde 60% v [0, 0.6) intervllet for B er [0.36, 0.4) redde 20% v [0, 0.6) intervllet for C er [0.4, 0.54) redde 0% v [0, 0.6) intervllet for EOD er [0.54, 0.6) redde 0% of [0, 0.6) Vårt tll.53 er i intervllet [0.4, 0.54): => Neste tegn må være C. Vi deler opp intervllet [0.4, 0.54): intervllet for A er [0.4, 0.56) intervllet for B er [0.56, 0.52) intervllet for C er [0.52, 0.534) intervllet for EOD er [0.534, 0.540). Tllet.53 ligger i intervllet for EOD: => Dekodingen er ferdig. Representsjon v desimltll Vi sender ikke desimltll, men et itmønster. Hvor mnge iter trenger vi for å gi en entydig representsjon v et intervll? Vi kn skrive tllet N i intervllet [0,) som en veiet sum v negtive toerpotenser N 0 = c *2 - + c 2 *2-2 + c 3 *2-3 + + c n *2 -n + Rekken v koeffisienter c c 2 c 3 c 4 utgjør d itmønsteret i den inære representsjonen v tllet. Det er dette vi mener når vi skriver desimltllet N som N=0.c c 2 c 3 c 4... 2 F2 22.04.0 INF 230 5 F2 22.04.0 INF 230 6

Desimltll som it-sekvens For å konvertere et desimltll i titllsystemet til et inært tll kn vi ruke suksessive multipliksjoner med 2 :. Vi multipliserer egge sider v ligningen nedenfor med 2: N 0 = c *2 - + c 2 *2-2 + c 3 *2-3 + + c n *2 -n + Heltllsdelen v resulttet er d lik c fordi 2N = c +R, der R = c 2 *2 - + c 3 *2-2 + + c n *2 -(n-) + Hvis resten er 0 er vi ferdige. 2. Multipliser resten R med 2. Heltllsdelen v resulttet er neste it. 3. Hvis resten er 0 er vi ferdige. Ellers går vi til 2. Representsjon v intervll - I Vi kn ruke intervllet [0.534, 0.540) som eksempel. 0.5390625 0 er et desimltll i dette intervllet. 2*0.5390625 =.0725 -> c =, rest =0.0725 2*0.0725 = 0.5625 -> c 2 = 0, rest =0.5625 2*0.5625 = 0.325 -> c 3 = 0, rest =0.325 2*0.325 = 0.625 -> c 4 = 0, rest =0.625 2*0.625 =.25 -> c 5 =, rest =0.25 2*0.25 = 0.50 -> c 6 = 0, rest = 0.5 2*0.5 =.0 -> c 7 =, rest = 0. Vi kn kode intervllet vårt med det inære desimltllet.0000 (ekvivlent med 0.5390625 desimlt) med re 7 iter. F2 22.04.0 INF 230 7 F2 22.04.0 INF 230 Representsjon v intervll - II Finn kortest mulig N=0.c c 2 c 3... innenfor [0.6, 0.7). Husk t i totll-systemet gjelder følgende : c k *2 -k + + c n *2 -n < c k- *2 -(k-) Ergo: N = 0. => 0.5 N < N = 0.0 => 0.5 N < 0.75 N = 0.00 => 0.5 N < 0.625 N = 0.0 => 0.625 N < 0.75 N = 0.00 => 0.625 N < 0.675 Vi kn kode intervllet vårt med det inære desimltllet.00 (ekvivlent med 0.625 desimlt) med re 4 iter. Prolemer og løsninger Den stdige krympingen v current intervl krever ritmetikk med stdig økende presisjon etter hvert som teksten lir lengre. Metoden gir ingen output før hele sekvensen er ehndlet. Løsning: Send den mest signifiknte iten strks den er entydig kjent, og så dole lengden på current intervl, slik t det re inneholder den ukjente delen v det endelige intervllet. Det finnes flere prktiske implementsjoner v dette, lle er gnske regnetunge de ller fleste er elgt med ptenter. F2 22.04.0 INF 230 9 F2 22.04.0 INF 230 20

Sttistiske modeller Sttiske histogrm-serte modeller er ikke optimle. Høyere ordens modeller endrer estimtet v snnsynligheten for et tegn (og dermed del-intervllet) sert på foregående tegn (context). I en modell for engelsk tekst vil intervllredden for u øke hvis u kommer etter Q eller q. Modellen kn også være dptiv, slik t den kontinuerlig endres ved en tilpsning til den fktiske dtstrømmen. Dekoderen må h den smme modellen som koderen! JPEG-koding (tpsfri) JPEG (Joint Photogrphic Expert Group) er et v de vnligste ildeformtene med kompresjon. JPEG-stndrden hr vrinter åde for tpsfri og ikke-tpsfri kompresjon. JPEG kn ruke enten Huffmn-koding eller ritmetisk koding. Prediktiv koding rukes for å predikere t neste piksel hr lignende verdi som forrige piksel å predikere t en piksel hr lignende verdi som pikselen på linjen over å predikere t neste piksel på linjen hr lignende verdi som de tre nærmest pikslene Typen koding estemmes fr ilde til ilde F2 22.04.0 INF 230 2 F2 22.04.0 INF 230 22 Ikke-tpsfri (lossy) kompresjon For å få høye kompresjonsrter, er det ofte nødvendig med ikke-tpsfri kompresjon. Ulempen er t mn ikke kn rekonstruere det originle ildet, fordi et informsjonstp hr skjedd. Enkle metoder for ikke-tpsfri kompresjon er rekvntisering til færre ntll gråtoner, eller resmpling til dårligere romlig oppløsning. Andre enkle metoder er filtering der f.eks. 3 3 piksler ersttter med ett nytt piksel som er enten middelverdien eller medinverdien v de opprinnelige pikselverdiene. F2 22.04.0 INF 230 23 Lossy JPEG-kompresjon v ilde Bildet deles opp i lokker på x piksler, og hver lokk kodes seprt. Trekk fr 2 fr lle pikselverdiene. Hver lokk trnsformeres med DCT (Diskret Cosinus Trnsform): F( u, v) 2 MN N M = πu πv forξ = 0 c( x) c( y)cos ( 2x + ) cos ( 2 y + ) f ( x, y), c( ξ ) = 2 = 0 2N 2M ellers x= 0 y DCT trnsform Informsjonen i de 64 pikslene smles i en liten del v de 64 koeffisientene Mest i øverste venstre hjørne F2 22.04.0 INF 230 24

Lossy JPEG-kompresjon 2 Trnsformkoeffisientene skleres med en vektmtrise kvntiseres til heltll. Lossy JPEG-kompresjon 3 Sikk-skk-scnning ordner koeffisientene i D-rekkefølge. divideres med Avrundes til F2 22.04.0 INF 230 25 Koeffisientene vil d stort sett vt i verdi utover i rekk Mnge koeffisienter er rundet v til null. Løpelengde-trnsform v koeffisientene Huffmn-koding v løpelengdene. Huffmn-koden og kodeoken sendes til mottker / lger. Gjents for lle lokker i lle knler. F2 22.04.0 INF 230 26 Aritmetisk koding v DC-koeff. JPEG dekompresjon - DC-koeffisientene fr lle lokkene legges etter hverndre. Disse er korrelerte og ør differnse-trnsformeres. Kjenner snnsynligheten for hvert symol i lfetet. Deler opp intervllet [0,) etter snnsynlighetene Velger intervllet som svrer til første tegn Deler intervllet i del-intervller Velger del-intervllet som svrer til ndre tegn Osv. En symolsekvens gir et tll i et intervll!!! Bruker så mnge iter t vi får en entydig eskrivelse. Huffmn-koden for en lokk er reversiel og gir løpelengdene. Løpelengdetrnsformen er reversiel, gir kvntiserte DCT-koeffisienter. Sikk-skk trnsformen er reversiel, og gir en heltllsmtrise. Denne mtrisen multipliseres med vektmtrisen. multipliseres med Dette gir F2 22.04.0 INF 230 27 F2 22.04.0 INF 230 2

JPEG dekompresjon - 2 JPEG dekompresjon 3 Dette er IKKE helt likt koeffisientene etter forlengs DCT-trnsformsjon. Så gjør vi en invers DCT, og får en rekonstruert piksels ildelokk. Men de store trekkene er evrt: De største tllene ligger i øvre venstre hjørne De fleste tllene i mtrisen er lik 0. invers DCT trnsform F2 22.04.0 INF 230 29 F2 22.04.0 INF 230 30 JPEG dekompresjon 4 Differnsene fr den originle lokken er små! - = 3 0 - -2 - -2-0 0 - - 0 2 2 0 5 3 3 3 3 3 3 3 0 0 2 3 4 4 4 4-3 -3-0 2 0 - -2 2 3 2 0 2 2-4 2 3 3-3 0 0-2 - 2 2 JPEG-kompresjon v frgeilde Vi skifter frgerom slik t vi seprerer lysintensitet fr kromsi (perseptuell redundns, sprer plss). Bildet deles opp i lokker på x piksler, og hver lokk kodes seprt. Vi skifter frgerom for hvert ildepln Kompresjon / dekompresjon lokk for lokk gir lokk-effekter i ildet. Hver lokk trnsformeres med DCT. Forskjellige vektmtriser for intensitet og kromtisitet.... resten er som for gråtoneilder... F2 22.04.0 INF 230 3 F2 22.04.0 INF 230 32

JPEG dekompresjon v frgeilde Alle dekomprimerte x-lokker i hvert ildepln smles til et ilde. Bildeplnene smles til et YIQ frgeilde Vi skifter frgerom fr YIQ til RGB for fremvisning, CMYK for utskrift. Rekonstruksjons-feil i gråtoneilder DCT kn gi piksels lokk-rtefkter, sløring og doelt-konturer. Avhengig v vektmtrise ntll koeffisienter for hvert ildepln smle ildeplnene Vi skifter frgerom Vi hr redusert oppløsning i Y og Q, men full oppløsning i RGB: Gir lokkeffekt i intensitet 6 6 piksels lokkeffekt i frgene i RGB F2 22.04.0 INF 230 33 F2 22.04.0 INF 230 34 Blokk-rtefkter Blokk-rtefktene øker med kompresjonsrten. Sklering v vekt-mtrisen Vi hr rukt vektmtrisen Z: Øverst: kompresjonsrte = 25 Nederst: kompresjonsrte = 52 Sklerer vi Z med, 2, 4, 6, 32 får vi C = 2, 9, 30 49, 5, 2 F2 22.04.0 INF 230 35 F2 22.04.0 INF 230 36

Rekonstruksjons-feil i frgeilder 24 iters RGB komprimert til.5-2 iter per piksel (pp) 0.5 0.75 pp gir god/meget god kvlitet 0.25 0.5 pp gir noen feil Frgefeil i mkrolokk JPEG gir lokkeffekt JPEG 2000 uten lokker: Høyere kompresjon Mye edre kvlitet Hvorfor DCT? Den implisitte N-punkts periodisiteten i Fouriertrnsformen vil introdusere høye frekvenser, og gir krftige lokk-rtefkter. DCT hr en implisitt 2N-punkts periodisitet, og unngår denne effekten. F2 22.04.0 INF 230 37 F2 22.04.0 INF 230 3 Blokkstørrelse Kompresjon og kompleksitet øker med lokkstørrelsen, men rekonstruksjonsfeilen vtr. Eksperiment: Del opp ildet i nxn piksels lokker Trnsformer Behold 25% v koeffisientene Gjør invers trnsform og eregn rms-feil Blokk-rtefkter vtr med økende lokkstørrelse. Tpsfri prediktiv koding Istedenfor å kode pikselverdiene f(x,y) kn vi kode e(x,y) = f(x,y) - g(x,y) der g er predikert fr m noer. En -D lineær prediktor v orden m: En første-ordens lineær prediktor: g( x, y) = round [ α f ( x, y) ] Hvilken trnsform er dette? Lik-lengde koding krever ekstr it Bruker entropi-koding Mx kompresjon er gitt ved: Biter per piksel i originl Entropien til prediksjonsfeilen Her lir mx C 2. m g( x, y) = round αi f ( x i, y) i= F2 22.04.0 INF 230 39 F2 22.04.0 INF 230 40

Tpsfri koding v ildesekvenser Prediksjon kn utvides til tids-sekvenser: Enklest mulig: første ordens lineær: Differnse-entropien er lv: H=2.59 Mx kompresjon: C /2.59 3 Bevegelses-deteksjon og evegelses-kompenssjon innenfor 6x6 mkro-lokker er nødvendig for å få høy kompresjon. m g( x, y, t) = round αi f ( x, y, t i) i= [ α f ( x, y, ) ] g( x, y, t) = round t Digitl video Koding v digitle ildesekvenser eller digitl video er sert på differnsekoding. Områder uten interilde evegelse kodes ikke flere gnger, kun koding i områder der endringer skjer. Med 50-60 ilder i sekundet er det mye å spre på dette. MPEG (Motion Picture Expert Group) stndrd for videokompresjon. MPEG historie: MPEG- video og udio (992) MPEG-2 Digitl TV og DVD (994) MPEG-4: Multimedi nvendelser (99) MPEG-7: Multimedi søking og filtering (200) MPEG-2: Multimedi uvhengig v plttform. F2 22.04.0 INF 230 4 F2 22.04.0 INF 230 42 Oppsummering - kompresjon Hensikten med kompresjon er mer kompkt lgring eller rsk oversending v informsjon. Kompresjon er sert på informsjonsteori. Antll it. pr. smpel er sentrlt, og vrierer med kompresjonsmetodene og dtene. Sentrle metoder: Før koding: løpelengde-trnsform og differnsetrnsform. Prediktiv koding: differnse i rom eller tid. Huffmn-koding lg snnsynlighetstell, send kokeok Universell koding (f.eks. Lempel Ziv) utnytter mønstre, sender ikke kokeok. Aritmetisk koding koder sekvenser til tll i et intervll. F2 22.04.0 INF 230 43