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

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

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

INF 1040 høsten 2009: Oppgavesett 13 Kompresjon og koding (løsningsforslag) (kapittel 18) Tenk selv -oppgaver

Løsningsforslag, Ukeoppgaver 10 INF2310, våren 2011 kompresjon og koding del II

INF 1040 høsten 2009: Oppgavesett 13 Kompresjon og koding (kapittel 18)

INF 1040 Løsningsforslag til kapittel

INF 1040 høsten 2009: Oppgavesett 11 Farger (kapittel 15) Løsningsforslag Flervalgsoppgaver

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF 1040 høsten 2008: Oppgavesett 11 Farger (kapittel 15)

UNIVERSITETET I OSLO

Løsningsforslag til kapittel 15 Fargerom og fargebilder

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1040 Digital representasjon Oppsummering 2008 del II

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF 1040 Kompresjon og koding

INF1040 Digital representasjon Oppsummering 2008 del II

INF 1040 Kompresjon og koding

INF 1040 Kompresjon og koding

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Midtveiseksamen Løsningsforslag

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Midtveiseksamen. INF Digital Bildebehandling

UNIVERSITETET I OSLO. Dette er et løsningsforslag

UNIVERSITETET I OSLO

INF2310 Digital bildebehandling

KOMPRESJON OG KODING

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF 1040 høsten 2009: Oppgavesett 12 Digital video og digital bildeanalyse (løsningsforslag) (kapittel 16 og 17) 13. Lagring av video på DVD

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Utkast med løsningshint inkludert UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

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

Objekt-bilde relasjonen. Vinkeloppløsnings-kriterier. Forstørrelse. INF 2310 Digital bildebehandling

Anvendelser. Noen begreper. Kompresjon

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

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

INF1040 Digital representasjon

da INF 2310 Digital bildebehandling

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

Repetisjon: Kompresjon

UNIVERSITETET I OSLO

Eksamen i INF 1040, 5. desember Det matematisk-naturvitenskapelige fakultet

Prøve- EKSAMEN med løsningsforslag

Eksamen i INF 1040, 5. desember Det matematisk-naturvitenskapelige fakultet. Ditt kandidatnr: DETTE ER ET LØSNINGSFORSLAG

IN Algoritmer og datastrukturer

Eksamen Løsningsforslag

Husk å registrer deg på emnets hjemmeside!

Temaer i dag. Repetisjon av histogrammer II. Repetisjon av histogrammer I. INF 2310 Digital bildebehandling FORELESNING 5.

UNIVERSITETET I OSLO

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

Anvendelser. Kompresjon. Noen begreper. INF 2310 Digital bildebehandling

INF 1040 løsningsforslag til kapittel 17

INF1040 Digital representasjon. Oppsummering. Glyfer og tegn. Den endelige løsning UNICODE og ISO bit ulike tegn!

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Anvendelser. Noen begreper. Kompresjon. INF 2310 Digital bildebehandling

Høgskoleni østfold EKSAMEN. ITD33506 Bildebehandling og monstergjenkjenning. Dato: Eksamenstid: kl 9.00 til kl 12.00

INF1020 Algoritmer og datastrukturer GRAFER

Repetisjon: Kompresjon

INF2310 Digital bildebehandling

Repetisjon: Kompresjon

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

ALGORITMER OG DATASTRUKTURER

Notater til INF2220 Eksamen

For J kvantiseringsnivåer er mean square feilen:

Repetisjon: Kompresjon

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

EKSAMEN. Bildebehandling og mønstergjenkjenning

Repetisjon av histogrammer

INF Algoritmer og datastrukturer

Fysisk Lag. Overføringskapasitet. Olav Lysne med bidrag fra Kjell Åge Bringsrud, Pål Spilling og Carsten Griwodz

UNIVERSITETET I OSLO

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

UNIVERSITETET I OSLO

Løsningsforslag Matematikk for ungdomstrinnet Del 1, Modul 1, 4MX130UM1-K

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Alle hele tall g > 1 kan være grunntall i et tallsystem.

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl

Obligatorisk oppgave 2 INF2310 Våren 2018

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Transkript:

Løsning av øvingsoppgaver, INF230, 2005,. Vi har gitt følgende bilde: kompresjon og koding 0 2 2 2 3 3 3 2 3 3 3 0 2 2 2 3 3 2 2 2 3 2 3 4 4 2 2 3 2 2 3 4 4 2 2 2 3 3 3 4 3 4 a. Finn Huffman-kodingen av dette bildet. Hvor mange bits blir det per piksel I gjennomsnitt etter koding hvis vi ser bort fra at vi trenger plass til å lagre kodeboken? Vi har følgende forekomster, først i rekkefølge etter symbolverdiene, deretter sortert. Slår sammen først 0 og 4, så dette med, så 3 og 2 sammen, så dette med resten, som vist i grafen nedenfor: 0 0: 2 2: 8 0 : 2 3: 6 2: 8 : 2 0 3: 6 4: 6 0 4: 6 0: 2 b. Ved differansetransform tar vi differansen mellom et piksel og dets nabo til venstre. Siden pikslene lengst til venstre i bildet ikke har noen venstre nabo, beholder vi pikselverdien her. Finn differanse-transformen av bildet ovenfor. Etter differansetransform vil bildet se slik ut: - 0 0 0 0 0 0-0 2 0 0-0 - 0 0 0 2-0 - - 0 2-0 0 2 0 0 0 0 - Merk: vi ikke har laget frekvenstabell bare brukt histogrammet. Huffman-kodene blir da (her er det flere mulige riktige løsninger!): 2: 00 3: 0 : 0 4: 0 0: Og det gjennomsnittlige antall bits pr piksel etter koding blir ((8+6+2)*2+8*3)/54 = (92+24)/54 = 6/54 =2.5 bits per piksel.

c. Finn så Huffman-koden for det differansetransformerte bildet, slik at du kan beregne det gjennomsnittlige antall bits per piksel for det differansetransformerte bildet. Vi har følgende forekomster, først i rekkefølge etter symbolverdiene, deretter sortert. Slår sammen først - og 2, så dette med, så dette med 0, som vist i grafen nedenfor: 2: 4 0: 2 : 20 : 20 0 0: 2 -: 9 0 0 -: 9 2: 4 Huffman-kodene blir da (her er det igjen flere mulige riktige løsninger!): 0: : 00 -: 00 2: 0 d. Entropien til bildet vi startet med er 2.06. Hvorfor ble det gjennomsnittlige antall biter per piksel større enn entropien i deloppgave a, men mindre enn 2.06 i deloppgave c? Entropien beregnet fra histogrammet til bildet er en nedre grense for hvor kompakt bildet kan kodes, hvis vi bare ser på ett piksel av gangen. Denne grensen er bare mulig å oppnå hvis alle sannsynlighetene i det normaliserte histogrammet er av typen /2k, der k er et heltall. Dette kravet er ikke oppfylt i det opprinnelige bildet. Derfor er ikke Huffman-transformen optimal, og vi får et gjennomsnittlig antall bits som er litt større enn entropien. I deloppgave c ser vi ikke bare på ett piksel av gangen, men på differansen mellom to og to piksler. Da kan vi kode mer kompakt enn det som er gitt av entropien for enkelt-piksler. Og det gjennomsnittlige antall bits pr piksel etter differansetransform og Huffman-koding blir (2+20*2+3*3)/54 = (2+40+39)/54 = 00/54 =.85 bits per piksel. Altså færre bits pr symbol ved å gjøre differansekoding først og så Huffman, enn med bare Huffman.

e. Hvis det bildet du fikk oppgitt i starten av oppgaven var det andre bildet i en bildesekvens, og det første var 2 2 2 3 3 3 2 2 2 3 3 3 2 2 2 3 3 3 2 2 2 3 3 3 4 4 4 2 2 2 3 3 3 4 4 4 2 2 2 3 3 3 4 4 4 Hvilke to bilder ville du da komprimere, og hvor mange biter vil du i gjennomsnitt trenge per piksel for hvert av de to bildene? Man ville først komprimere det bildet som kommer først (det rett ovenfor). Her er det forholdsvis greit å finne histogrammet og Huffman-koden: 2: ; 3: 00; : 00; 4: 0 : 9 2: 8 2: 8 3: 8 0 3: 8 : 9 0 0 4: 9 4: 9 Det gjennomsnittlige antall bits pr piksel blir (8*+8*2+9*3+9*3)/54 = 08/54 =2 bits per piksel. Og så ville man kode differansebildet, dvs det sist mottatte bildet minus det forrige, piksel for piksel. Det ser slik ut: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Dette er et binært bilde som bare trenger bit per piksel. 2. Anta at det er G=2 8 forskjellige gråtone-nivåer i hvert sample, og at når vi sorterer dem etter hvor ofte de forekommer i et bilde, så finner vi i et spesielt tilfellet at sannsynlighetene er ½, ¼, /8, /6,, /28, /256, /256. a) Hvor mange slike bilder kan vi overføre i parallell på en 64 kbits/s linje med Huffman-koding av amplitudene? Hint : Entropien er gitt ved G H = p i log2 ( p i ) i= 0 Dessuten: Og til slutt: log(teller/nevner) = log(teller) log(nevner) log 2(2 n ) = n Hint 2: Summen ½+2/4+3/8 +4/6+5/32 + konvergerer raskt mot 2. Her er det ikke nødvendig å finne Huffman-koden. Vi har terpet at en Huffman-koding der alle sannsynlighetene kan skrives som brøker der telleren er og nevneren er en toer-potens er optimal i den forstand at det gjennomsnittlige antall bits per sample er lik entropien til signalet. Entropien er her gitt ved H = - (½ log 2 (/2) +/4 log 2 (/4) + /8 log 2 (/8) + ) (se Hint ) = ½ + 2/4 + 3/8 + = 2 (som angitt i Hint 2 ovenfor). Det gjennomsnittlige antall bits per sampel blir altså bare 2 bits/sampel. Men for å kunne svare på spørsmålet må vi vite hvor mange sampler vi får fra hvert bilde pr tidsenhet. La oss si at samplingsfrekvensen er 8 khz. Da er antall bilder vi kan overføre i parallell: 64 000 bits/s /( 8 000 sampler/s * 2 bits/sampel) =4.

b) Et ark med tekst og enkle strektegninger skal sendes pr digital fax over en modemlinje med kapasitet på 4 800 biter/sekund. Vi bruker en standard fax med 728 fotosensorer per linje og 075 linjer per side. Faxmaskinen gjør en terskling av bildet av siden. Hvor lang tid tar det å overføre en side uten kompresjon? Etter terskling trenger vi selvsagt bit per piksel for å representere 0 og. bit/piksel * 728 piksler/linje * 075 linjer/side = 857 600 bits/side. 857 600 bits/side / 4 800 bits/sekund = 387 sekunder = 6 min 27 s. c) Anta at vi hadde kunnet gjøre tekstgjenkjenning på den delen av arket som inneholder tekst, og representert symboler og mellomrom med 7 bits ASCII. Anta at det maksimalt er 60 tegn pr linje og 50 linjer pr side. Anta også at vi kunne beskrevet strektegningene som maksimalt 500 rektangler per side, og at sidene på rektanglene er parallelle med kantene på siden. Gi et worst case estimat av hvor mange biter du vil trenge for å beskrive innholdet på siden med en oppløsning som svarer til faxens oppløsning, og hvor lang tid det vil ta å overføre dette over modemlinjen. For å representere et rektangel og dets plassering trengs følgende: en koordinat for et punkt på rektanglet, f eks øverste venstre hjørne rektanglets bredde og rektanglets høyde Kordinatene for øvre venstre hjørne til et rektangel vil ligge mellom (0,0) og (728,075). Det betyr at begge koordinatene krever biter (2048). Det samme gjelder høyde og bredde. Til sammen blir dette 4 * biter = 44 biter. Da blir regnestykket slik: 500 rektangler: 44 biter/rektangel* 500 rektangler = 22 000 biter 50*60 tegn: 3 000 tegn * 7 biter/tegn = 2 000 biter Worst case er altså at vi trenger 22 000 biter pr side. Med en overføringskapasitet på 4 800 bits/sekund tar dette t = 22 000 biter / 4 800 biter/s = 4,6 sekunder.

d) Vi vil gjerne undersøke hvor mye det er å spare på å separere ASCII-tegn fra alt annet i en fax, og sende 7 bits ASCII kode for hvert tegn, mens resten sendes ukomprimert uansett hva det er. Hvis halvparten av hver side i gjennomsnitt er ASCII-tegn, hvor mye sparer vi da i forhold til ordinær fax? (7 biter/tegn * 3000/2 tegn + bit/pixel *728*075/2 piksler)/(728*075) = (0 500 + 928 800) / 857 600 = 0,5056 Vi sparer altså 00%-50.56% = 49.43%. e) Utsnittet på 25 * 0 piksler av et binært bilde nedenfor kan representeres med 250 biter. Ser vi på runlengthrepresentasjonen av det samme utsnittet, finner vi at det består av 82 runs med lengder mellom og 8 piksler. Hvis vi bruker 3 biter på hver, blir dette 246 biter. Imidlertid er det mulig å gjøre dette litt mer kompakt ved å Huffman-kode de 82 løpelengdene. Ved løpelengdetransformasjon av binære bilder trenger vi ikke å lagre tallpar (gråtone, løpelengde) slik som for gråtonebilder. Vi trenger bare løpelengdene, for det er bare to mulige intensitetsverdier. Løpelengdene finnes i tabellen til høyre. 7 3 2 4 2 5 2 2 8 2 4 2 5 2 2 8 2 5 2 3 2 2 7 4 5 2 2 2 6 3 2 6 3 3 2 7 2 6 3 3 2 6 2 2 2 4 2 2 2 2 6 6 3 3 3 2 5 2 4 2 2 5 2 2 5 2 4 2 2 5 2 Finn Huffmann-koden til løpelengdene i tabellen til høyre over, og finn det totale antall biter etter koding av løpelengdene. Nedenfor har vi løpelengde, lengden på hvert kodeord, kodeordet, og antall forekomster av hver løpelengde. Og helt til høyre kodetreet. 2 36 3 00 0 3 3 0 0 0 5 3 0000 8 0 4 4 000 6 0 6 4 000 6 0 7 5 000 3 0 0 8 5 00 2 Og det totale antall bits etter koding blir 36*+2*3+20*4+5*5=936+63+80+25=204 biter.

3. Fargesystemet NTSC brukes for fjernsynsoverføring i USA. I dette systemet er farge separert fra luminans, slik at det samme signalet kan brukes både på farge- og gråtoneskjermer. Overgangen fra RGB er gitt ved enkle uttrykk der man bare kan sette inn RGB-verdier og få ut NTSC s YIQ-verdier. Luminans-komponenten (Y) er gitt ved Y= 0.299*R + 0.587*G +0.4*B Hue-komponenten (I) er gitt ved I = 0.596*R 0.274*G 0.322*B Metnings-komponenten (Q) er gitt ved Q = 0.2*R 0.523*B + 0.32*B a) Hva er NTSC luminansverdien (Y) for RGB svart (0,0,0) og RGB hvit (,,)? Summen av luminans-koeffisientene er 0.299+0.587+0.4 =.000. Derfor: RGB svart (0,0,0) gir NTSC Y=0. RGB hvit (,,) gir NTSC Y=. b) Hva blir NTSC farge-komponentene I og Q for en vilkårlig RGB gråtone? For en vilkårlig RGB gråtone g mellom 0 og har vi at R=G=B, slik at vi kan skrive denne gråtonen som (g,g,g) i RGB. Koeffisientene i begge ligningene summeres til 0. I NTSC får vi derfor alltid I = Q = 0 når R=G=B: I = g * ( 0.596 0.274 0.322) = g * 0 = 0 Q = g * (0.2 0.523 + 0.32) = g * 0 = 0. c) NTSC ble utviklet for å kunne sende farge-tv på et eksisterende nett for gråtone-tv uten å øke båndbredden. Båndbredden til I og Q er mye mindre enn for Y. Dette er typisk for mange systemer der enten geometrisk oppløsning er redusert i fargekomponentene, eller man spanderer færre biter på fargekomponentene, eller begge deler. Anta at vi har et 52*52 RGB bilde med 3*8 biter per piksel. Hvor stor kompresjonsrate oppnår vi ved å konvertere dette til YIQ og bruke 52*52 piksler med 64 mulige verdier på Y, 256*256 piksler med 28 mulige verdier på I, og 28*28 piksler og 6 mulige verdier per piksel på Q? I det opprinnelige bildet har vi 52*52*3*8 biter. Etter konvertering har vi 6 biter for Y i hvert piksel, 7 biter for I for ¼ så mange piksler, og 4 biter for Q for /6 så mange piksler. Kompresjonsraten er CR = i/c, der i er antall biter i det opprinnelige bildet, og c er antall biter i det komprimerte datasettet. I vårt tilfelle får vi CR = (52 * 52 *24)/ 52*52 (6 + ½*/2*7 + ¼*/4*4) = 24 / (6+7/4 +/4) = 24 * 4 / 32 = 3. Slik er det! Takk for oppmerksomheten!