Anvendelser. Noen begreper. Kompresjon

Like dokumenter
Anvendelser. Kompresjon. Noen begreper. INF 2310 Digital bildebehandling

Anvendelser. Noen begreper. Kompresjon. INF 2310 Digital bildebehandling

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

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

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

INF2310 Digital bildebehandling

INF 1040 Kompresjon og koding

INF 1040 Kompresjon og koding

INF 1040 Kompresjon og koding

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

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

INF 1040 Løsningsforslag til kapittel

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

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

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

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

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

UNIVERSITETET I OSLO

Repetisjon: Kompresjon

Repetisjon: Kompresjon

INF2310 Digital bildebehandling

Repetisjon: Kompresjon

UNIVERSITETET I OSLO

KOMPRESJON OG KODING

UNIVERSITETET I OSLO

da INF 2310 Digital bildebehandling

INF1040 Digital representasjon

Repetisjon: Kompresjon

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO. Dette er et løsningsforslag

INF2810: Funksjonell Programmering. Huffman-koding

UNIVERSITETET I OSLO

INF2810: Funksjonell Programmering. Huffman-koding

UNIVERSITETET I OSLO

INF1040 Digital representasjon Oppsummering 2008 del II

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

INF2810: Funksjonell Programmering. Huffman-koding

Utkast med løsningshint inkludert UNIVERSITETET I OSLO

INF2810: Funksjonell Programmering. Huffmankoding

INF2310 Digital bildebehandling

INF1040 Digital representasjon Oppsummering 2008 del II

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

KONTINUASJONSEKSAMEN

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

UNIVERSITETET I OSLO

Informasjonsteori Skrevet av Joakim von Brandis,

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

UNIVERSITETET I OSLO

INF2310 Digital bildebehandling

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF Algoritmer og datastrukturer

INF2810: Funksjonell Programmering. Huffman-koding

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

INF2310 Digital bildebehandling

Filtrering i bildedomenet. Middelverdifilter (lavpass) Lavpassfiltre. INF2310 Digital bildebehandling FORELESNING 15 REPETISJON

UNIVERSITETET I OSLO

INF2310 Digital bildebehandling

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

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

Filtrering i bildedomenet. 2D-konvolusjons-eksempel. 2D-konvolusjons-eksempel. INF2310 Digital bildebehandling

FORELESNING 12. KOMPRESJON OG KODING II Andreas Kleppe

UNIVERSITETET I OSLO

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

Eksamen Løsningsforslag

UNIVERSITETET I OSLO

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

Notater til INF2220 Eksamen

For J kvantiseringsnivåer er mean square feilen:

INF1040 Oppgavesett 6: Lagring og overføring av data

Det fysiske laget, del 2

Løsningsforslag til kapittel 15 Fargerom og fargebilder

UNIVERSITETET I OSLO

IN2040: Funksjonell programmering. Trær, mengder og huffmankoding

INF2220: Time 4 - Heap, Huffmann

INF2810: Funksjonell Programmering. Huffman-koding

Tall. Ulike klasser tall. Læringsmål tall. To måter å representere tall. De naturlige tallene: N = { 1, 2, 3, }

IN Algoritmer og datastrukturer

INF1020 Algoritmer og datastrukturer GRAFER

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding

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

INF Algoritmer og datastrukturer

INF 1040 høsten 2008: Oppgavesett 9 Sampling og kvantisering av lyd (kapittel 11)

Sampling av bilder. Romlig oppløsning, eksempler. INF Ukens temaer. Hovedsakelig fra kap. 2.4 i DIP

UNIVERSITETET I OSLO

Komprimering av bilder

UNIVERSITETET I OSLO

Gråtonehistogrammer. Histogrammer. Hvordan endre kontrasten i et bilde? INF Hovedsakelig fra kap. 6.3 til 6.6

Transkript:

Anvendelser INF 30 Digital it ildeehandling dli 7.04.0 Kompresjon og koding Del I Tre steg i kompresjon Redundans Bildekvalitet Transformer Koding og entropi Shannon-Fano og Huffman GW: Kap. 8 unntatt 8..7, 8.., 8..6, 8..0, 8.3 INF 30 Kompresjon og koding enyttes for å redusere antall iter som skal til for å eskrive ildet (eller en god approksimasjon til ildet). En mengde anvendelser innen data-lagring og data-overføring Televideo-konferanser Fjernanalyse / meteorologi Overvåking / fjernkontroll Telemedisin / medisinske arkiver (PACS) Dokumenthåndtering / FAX Multimedia / nettverkskommunikasjon Moil kommunikasjon MP3-spillere, DAB-radio, digitalkameraer, Tidsforruket ved off-line kompresjon er ikke særlig viktig. Dekompresjons-tiden er langt viktigere. Ved sanntids data-overføring er tidsforruket kritisk. INF 30 Noen egreper Kompresjon Data Kompresjons -algoritme Kompresjon Lagring eller oversending Dekompresjons -algoritme Dekompresjon Data Kompresjon kan deles inn i tre steg: Transform -representer dataene mer kompakt. Kvantisering - avrunding av representasjonen. Koding - produksjon og ruk av kodeok. Bildekompresjon estår i å pakke informasjonsinnholdet i ildet på en så kompakt måte at redundant informasjon ikke lagres. Dataene komprimeres, deretter lagres de. Når de senere skal leses, må vi dekomprimere dem. Koding er en del av kompresjon, men vi koder for å lagre effektivt, ikke for å hemmeligholde eller skjule informasjon. INF 30 3 inndata transform kvantisering koding utdata Kompresjons kan gjøres Eksakt / tapsfri ( loss-less ) følg de grønne pilene Her kan vi rekonstruere den originale meldingen eksakt. Ikke-tapsfri ( lossy ) følg de røde pilene Her kan vi ikke rekonstruere meldingen eksakt. Resultatet kan likevel være godt nok. Det finnes en mengde ulike metoder for egge kategorier kompresjon. INF 30 4

De tre stegene i kompresjon Eksempler - plassehov inndata transform kvantisering koding utdata Mange kompresjons-metoder er asert på å representere dataene på en annen måte, altså transformer av original-dataene. Differansetransform løpelengder/run-length, Hvis vi kvantiserer original - dataene, så kan ikke dette reverseres. Koding ygger ofte på sannsynlighetsfordelinger, Estimert ved normaliserte histogrammer. Transformer og koding er alltid reversile. Kvantisering gir alltid et tap av presisjon. INF 30 5 SD timer video: 30 (ilder/s)x 740 x 480 x 3 (RGB) x 3600 x =.4 x 0 4 Tilsvarer 7 to-lags DVD-er ukomprimert Radar-ilde fra Radarsat- satellitten: 400MB, 300 km 300 km, 6 iter pr. piksel. Miljøovervåkning av havområder: Trenger 8 ilder for å dekke hele Middelhavet 3D-seismikk data fra 60.000 km i Nordsjøen 4 000 GB = 4 Terayte... INF 30 6 Plass og tid Digitale data kan ta stor plass Spesielt lyd, ilder og video Eksemper :. Digitalt ilde: 5 x 5 x 8 iter x 3 farger = 6 9 456 iter. Røntgenilde: 7 x 8636 x iter pr. piksel = 737 030 784 iter Overføring av data tar tid: Linje med 64 kit/sek:. ca. min. 38 s.. ca. 3 timer min. Linje med Mit/sek:. ca. 6 s.. ca. min. Overføringskapasitet og ps Filstørrelser er oftest gitt i inære enheter, gjerne i potenser av 04: Kiiyte (KiB = 0 yte = 04 yte), Meiyte (MiB = 0 yte = 048 576 yte), Giiyte (GiB = 30 yte = 073 74 84 yte) Overføringshastigheter og linjekapasitet angis alltid i titallsystemet, oftest som antall iter per sekund: kps = 000 ps = 0 3 iter per sekund. Mps = 000 kps = 0 6 iter per sekund. Gps = 000 Mps = 0 9 iter per sekund. Kapasitet for noen typer linjer: GSM-telefonlinje: 9.6 kps Analogt modem: f.eks. 56 kps ADSL (Asymmetric Digital Suscrier Line): - Mps INF 30 7 INF 30 8

Melding, data og informasjon Vi skiller mellom data og informasjon: Melding: teksten, ildet eller signalet som vi skal lagre. Data: strømmen av iter som lagres på fil eller sendes. Informasjon: Et matematisk egrep som kvantifiserer mengden overraskelse/uventethet i en melding. Et varierende signal har mer informasjon enn et monotont signal. I et ilde: kanter rundt ojekter har høyest informasjonsinnhold, spesielt kanter med mye krumning. Redundans Vi kan ruke ulike mengder data på samme melding. Et ilde av et 5-tall (50 x 50 piksler a 8 iter = 0 000 its) Teksten fem i 8 its ISO 8859- (4 iter) ISO 8859- tegnet 5 (8 iter) Et inært heltall 0 (3 iter) Redundans sier noe om hvor stor del av datamengden vi kan fjerne uten at vi mister informasjonen i dataene. Eks: vi skal lagre tallet 0, men hvordan lagres det faktisk: Binært i en yte: 00000000-8itermed0 Standard 7 its ASCII kode for 0 Vet vi at vi are skal lagre tallet 0, trenger vi are it. Ved smart komprimering og dekomprimering kan vi fjerne redundante its. F0 7.03.09 INF 30 9 INF 30 0 Ulike typer redundans Psykovisuell redundans Det finnes informasjon vi ikke kan se. Da kan vi su-sample, eller redusere antall it per piksel. Interilde/temporal redundans Det er en viss likhet mellom nao-ilder i en tids-sekvens Vi koder noen ilder i sekvensen, og deretter are differanser. Intersampel/romlig redundans Nao-piksler ligner på hverandre eller er like. Hver linje i ildet kan run-length transformeres. Kodings-redundans Gjennomsnittlig kodelengde minus et teoretisk minimum. Velg en metode som er grei å ruke, med liten redundans. INF 30 Kompresjonsrate og redundans Kompresjonsraten : i CR c der i er antall it pr. sampel originalt, og c er antall it pr. sampel i det komprimerte ildet. Relativ redundans : percentage removed : c R CR i c PR 00 % i INF 30

Bildekvalitet Hvis vi velger irreversiel kompresjon må vi kontrollere at kvaliteten på ut-ildet er god nok. Gitt en NM inn-ilde f(x,y) og et komprimert / dekomprimert ut-ilde g(x,y). Feilen vi gjør lir da: e(x,y) = g(x,y) f(x,y) RMS-avviket (kvadratfeilen) mellom de to ildene lir da: e RMS NM N M x y e ( x, y) Vi kan også etrakte feilen som støy og se på midlere kvadratisk signal-støy-forhold (SNR): N M g ( x, y) x y ( SNR) MS N M e ( x, ) x y y RMS-verdien av SNR er da Bildekvalitet - ( SNR) RMS x y N N M g ( x, y M e ( x, y x y g ) Kvalitetsmålene ovenfor slår sammen alle feil over hele ildet. Vårt synssystem er ikke slik! Fler-komponent kvalitetsmål er edre! Del opp ildet etter lokal aktivitet! Fra Fourier-analyse: For å representere en skarp kant kan vi trenge mange koeffisienter. Homogene områder kan representeres ved få koeffisienter Kompresjonsgraden ør kanskje variere rundt i ildet: Komprimer homogene områder kraftig. Mindre kompresjon langs kanter og linjer, slik at detaljer eholdes. Mer om dette neste uke! ) INF 30 3 INF 30 4 Kompresjon av ilder STEG : Transform Differansetransform Det er en mengde redundant informasjon i ilder: Mellom piksler på samme linje Mellom ulike linjer i ildet Ojekter kan representeres mer kompakt enn med piksler. Vi kan også ta i etraktning psykovisuelle effekter. Symmetrisk kompresjon: komprimering og dekomprimering tar like lang tid. Assymmetrisk kompresjon, komprimering og dekomprimering har ulik regnetid, ofte tillater man langsom komprimering, i men ønsker rask dekomprimering. INF 30 5 Gitt en linje i ildet med gråtoner f,...f N, 0 f i -. Transformer (reversielt) til g = f, g = f -f,..., g N = f N -f N- Vi trenger nå + iter hvis vi skal tilordne like lange inære koder til alle mulig verdier. I differansehistogrammet vil de fleste verdiene samle seg rundt 0. En naturlig it-koding av differansene er ikke optimal. INF 30 6

STEG : Transform Differanseilder og histogram STEG : Transform Litt mer om differansetransform Original: Differanse-ilde (linje for linje) : Originalt Histogram: Histogram til Differanseildet: INF 30 7 Lag f.eks. en 6 ords naturlig kode c =0000, c =000,... c 6 = Tilordne de 4 kode-ordene i midten: c,... c 5 til differansene -7, -6,..., -, 0,,,..., 5, 6 Kodene c og c 6 kan rukes til å indikere om differansen x < -7 eller om x 7 (to-sidet shift-kode) x = - => c c c 5 x = => c 6 c 6 c - - -8-7 0 6 7 0 c c c 5 c c c c 5 c c 9 c 5 c 6 c c 6 c 5 c 6 c 6 c Her øker kodeordets lengde trinnvis med 4 iter. Neppe helt optimalt i forhold til differansehistogrammet. Huffman-koding etter differansetransform gir edre resultat enn denne kodingen INF 30 8 STEG : Transform Løpelengde-transform STEG : Transform Løpelengder i inære ilder Ofte inneholder ildet ojekter med lignende gråtoner, f.eks. svarte okstaver på hvit akgrunn. Vi kan enytte oss av kompresjonsteknikker som tar hensyn til at naopiksler på samme linje ofte er like. Løpelengde-transform e ta so er reversiel. ese Først et eksempel: 333333555555555544777777 (4 yte) Når tallet 3 forekommer 6 ganger etter hverandre, trenger vi are lagre tallparet (3,6). Tilsammen trenger vi her 4 tallpar, (3,6), (5,0), (4,), (7,6) altså 8 tall til å lagre hele sekvensen 4 tall ovenfor. Hvor mange iter vi ruker pr. tall, avhenger av den videre kodingen. I to-nivå ilder trenger vi are å angi løpelengden for hvert run, forutsatt at vi vet om linjen starter med et hvitt eller et svart run. Vi trenger kodeord for EOL og EOI. Run-lengde histogrammet er ofte ikke flatt. Benytter da en kode som gir korte kode-ord ord til de hyppigste run-lengdene. En standard (CCITT) Huffman kode asert på dokumentstatistikk rukes for dokument-overføring pr fax. Egen kodeok for svarte og hvite runs. Mer effektiv dersom kompleksiteten i ildet er lav. INF 30 9 INF 30 0

STEG 3: Koding Koding STEG 3: Koding Naturlig inær-koding Et alfaet er mengden av alle mulige symoler (gråtoner) Hvert symol får et kode-ord. Tilsammen utgjør kodeordene kode-oken oken. Koding skal være reversiel fra koden skal vi kunne rekonstruere det originale symolet Unikt dekodare koder har den egenskap at en mottatt sekvens av kode-ord kan dekodes på en og are en måte. Instantant dekodare koder kan dekodes uten skilletegn. INF 30 Alle kode-ord er like lange. Kjenner vi noen eksempler på dette? Eks: En 3-iters kode gir 8 mulige verdier: Symol nr. 3 4 5 6 7 8 Symol s s s 3 s 4 s 5 s 6 s 7 s 8 Kode c i 000 00 00 0 00 0 0 Her er kodene are en teller i symoltaellen Naturlig inærkoding er are optimal hvis alle verdiene i sekvensen er like sannsynlige. INF 30 STEG 3: Koding Gray code STEG 3: Koding Gray Code tranformasjoner Er den konvensjonelle inære representasjonen av gråtoner optimal? La oss se på et ett-ånds gråtone-ilde med it-plan. Ønskelig med minst mulig kompleksitet i hvert it-plan Da lir løpelengde-transformasjonen mest effektiv. Konvensjonell inær representasjon gir høy it-plan kompleksitet. Hvis gråtoneverdien fluktuerer mellom k - og k vil k+ iter skifte verdi: eksempel: 7 = 0 mens 8 = 0000000 I Gray Code skifter alltid are en it når gråtonen endres med. Overgangen fra inær kode til gray code er en transformasjon, men åde naturlig inær kode og gray code er selvsagt koder. Transformasjon fra Binary Code til Gray Code :. Start med MSB i BC og ehold alle 0 inntil du treffer. eholdes, men alle følgende its komplementeres inntil du treffer 0 3. 0 komplementeres, men alle følgende it eholdes inn du treffer 4. Gå til. Fra Gray Code til Binary Code :. Start med MSB i GC og ehold alle 0 inntil du treffer. eholdes, men alle følgende its komplementeres inntil du treffer. 3. komplementeres, men alle følgende its eholdes inntil du treffer. 4. Gå til INF 30 3 INF 30 4

STEG 3: Koding Gray kode i gråtoneilder Informasjonsteori og koding Her ser vi alle itplan for et 8-its ilde. MSB (Most significant yte) er likt i de to representasjonene. Større homogene områder i hvert itplan i Gray-kode enn i naturlig inærkode. Flere itplan med støy i vanlig inærkode. Det er en gevinst i løpelengdekoding av itplan i Gray kode. GC BC GC BC Kompresjon/koding ygger på sannsynligheter. Forekommer en pikselverdi ofte, ør vi lagre den med et lite antall iter for å ruke minst mulig lagerplass totalt. Et symol som forekommer sjeldent, kan vi tillate oss å ruke mange iter på å lagre. Vi ruker da et variaelt antall iter pr. symol. Vi skal først se på koding av enkelt-piksler. Inter-piksel redundans d minimeres i av transform-steget: t t Differanse-transform Løpelengdetransform INF 30 5 INF 30 6 Koder med variael lengde Entropi en liten forsmak For ulike sannsynligheter er koder med variael lengde på kode-ordene edre enn like lange koder Hyppige symoler kortere kode-ord. De vanligste Sjeldne symoler lengere kode-ord. symolene i Dette var forretnings-ideen til Samuel Morse engelsk tekst er : e, t, a, n, o, i, A. - F.. -. K -. - P. - -. U.. - B -... G - -. L. -.. Q - -. - V... - C -.-. H.... M - - R. -. W. -- D -.. I.. N -. S... X -.. - E. J. --- O --- T - Y -. - - INF 30 7 Entropi er et matematisk mål på gjennomsnittlig informasjonsmengde i en sekvens av tegn eller tall. Har vi en sekvens av N tall eller tegn som lagres med iter pr. sampel, så kan vi si vi har et alfaet med d mulige symoler. Vi kan finne sannsynligheten for hvert symol i alfaetet: P(s i )= n i /N Vi er interessert i gjennomsnittlig informasjon pr. symol. Intuitivt har vi at en mindre sannsynlig hendelse gir mer informasjon enn en mer sannsynlig hendelse Informasjon er relatert til mengden redundans eller overraskelse. INF 30 8

Histogram og normalisert histogram Gjennomsnittlig antall iter pr. piksel Vi har en sekvens med N symoler. Tell opp antall ganger g symol s i forekommer og la n i være dette antallet. Dette er det samme som histogrammet til sekvensen. Sannsynligheten til symolene finnes da som: p i = n i / N Dette er det normaliserte histogrammet. Vi konstruerer en kode c,...c N slik at symol s i kodes med kodeordet c i. i er lengden (angitt i iter) av kodeordet c i. i g ( g ) i Gjennomsnittlig antall iter pr. symol for denne koden : R p p... N p N N i p Entropien H gir oss en nedre grense for hvor mange iter vi gjennomsnittlig trenger pr. symol (hvis vi are koder ett symol av gangen). i i INF 30 9 INF 30 30 Informasjonsinnhold Entropi er relatert til hvor uventet en hendelse er: Hyppige symoler er ikke uventet t og har lav entropi. Definer informasjonsinnholdet I(s i ) i hendelsen s i ved I( ( si ) log p( si ) log (x) er -er logaritmen til x Hi Hvis log () (x)= så er x= Eks: log (64)=6 fordi 64= 6 (=*****) log (8)=3 fordi 8=**= 3 log (tall) = log 0 (tall) / log 0 () log (/p(s i )) gir oss informasjonsinnholdet i hendelsen: symolet s i forekommer en gang, uttrykt iiter iter. INF 30 3 Entropi Hvis vi tar gjennomsnittet over alle symolene s i i alfaetet, får vi gjennomsnittlig informasjon pr. symol. Entropi H: H p( si ) I( si ) p( si )log( p( si )) i0 i0 Entropien setter en nedre grense for hvor kompakt sekvensen kan representeres Dette gjelder hvis vi are koder hvert symol for seg. I praksis kan vi ikke kode et symol med for eksempel.3 it så vi får kun en teoretisk nedre grense. INF 30 3

Øvre og nedre grense for entropi Hvis alle symoler like sannsynlige => entropi lik antall iter. Det er symoler, og sannsynligheten for hvert av dem er p(s )=/ i. Da lir entropien H log log ( ) ( ) i0 NB: Hvis det er symoler som alle er like sannsynlige, så kan de ikke representeres mer kompakt enn med iter pr symol. Hvis alle pikslene er like => entropi lik 0. Hvis are ett symol forekommer, er sannsynligheten for dette symolet lik, og alle andre sannsynligheter er lik 0. H log () 0 To eksempler Et inært ilde med N*M piksler inneholder it per piksel. Det er N*M iter data i ildet, men hvor mye informasjon er det i ildet? Hvis det er like mange 0 som i ildet, så er det like stor sannsynlighet for at neste piksel er 0 som. Informasjonsinnholdet i hver mulig hendelse er da like stort, og entropien til et nytt symol er it. H log ( ) log / ( ) * * / Hvis det er 3 ganger så mange som 0 i ildet, så er det mindre overraskende å få en, og det skjer oftere. Entropien er da mindre: 3 3 H log ( ) log ( ) * *0.45 0.5 0.3 0.8 4 / 4 4 3/ 4 4 4 INF 30 33 INF 30 34 Entropi i inært ilde Shannon-Fano koding Entropi Entropi i et inært ilde 0,5 0 0 05 0,5 05 0,5 075 0,75 A priori sannsynlighet for klasse Vi vil alltid måtte ruke it per piksel i et inært ilde, selv om entropien godt kan li nær null! Kodingsredundansen er null når det er like mange svarte og hvite piksler. En enkel metode: Sorterer symolene etter hyppighet. Deler symolene rekursivt i to omtrent like store grupper. Fortsett til hver gruppe er ett symol. Tilordner ett it til hver gren i treet til høyre, 0 til venstre. Traverser treet fra rot til lad Finner koden for hvert symol. Eksempel: HALLO : Koden er unikt dekodar. L() H, A, L, O (5) 0 H () H, A, O (3) 0 A, O () 0 A () O () Symol Ant. Kodeord Lengde Antall iter L 0 H 0 A 0 3 3 O 3 3 Totalt antall iter 0 INF 30 35 INF 30 36

Shannon-Fano koding - II Huffman-koding Oppdeling i omtrent like store grupper kan gi et annet inært tre: Samme eksempel: HALLO Selv om treet er annerledes, og kodeoken lir forskjellig, så er koden unikt dekodar. Vi har altså flere likeverdige løsninger. Gjennomsnittlig antall iter per symol er relatert til entropien: H R H+ Øvre grense for kodingsredundans: it per symol. H, A, L, O (5) 0 L, H (3) A, O () 0 0 L ()H () A () O () Symol Ant. Kodeord Lengde Antall iter L 00 4 H 0 A 0 O Totalt antall iter 0 Huffman-koding er en algoritme for optimal koding med variael-lengde koder. Huffman-koding er asert på at vi kjenner hyppigheten for hvert symol Dette etyr at vi må lage et histogram. Ofte eregner vi sannsynlighetene Men det holder at vi kjenner hyppighetene. Huffman-koden er unikt dekodar. INF 30 37 INF 30 38 Oppskrift - Huffman-koding Gitt en sekvens med N symoler:. Sorter symolene etter sannsynlighet, slik at de minst sannsynlige kommer sist.. Slå sammen de to minst sannsynlige symolene i en gruppe, og sorter igjen etter sannsynlighet. 3. Gjenta til det are er to grupper igjen. 4. Gi kodene 0 og til de to gruppene. Kode 0 til den mest og til den minst sannsynlige av de to 5. Traverser akover, og legg til 0 og i kodeordet for de to minst sannsynlige gruppene i hvert steg. Eksempel - Huffman-koding Gitt 6 egivenheter A, B, C, D, E, F med sannsynligheter Begivenhetenhet A B C D E F Sannsynlighet 0.3 0.3 0.3 0. 0. 0.05 Slå sammen de to minst sannsynlige, Slå også sammen sannsynligheten deres 0.5 Finn de to som nå er minst sannsynlige, og slå dem sammen på samme måte 0.5 Fortsett til det er are to igjen 0.6 0.4 INF 30 39 INF 30 40

Eksempel - Huffman-koding Gitt 6 egivenheter A, B, C, D, E, F med sannsynligheter Begivenhetenhet A B C D E F Sannsynlighet 0.3 0.3 0.3 0. 0. 0.05 0 Gå aklengs gjennom strukturen og tilordne 0 eller til hver gruppe. 0.5 (F. eks. kode 0 til den mest sannsynlig 0 og kode til den minst sannsynlige) 0.5 0 0 0.4 0.6 Kode 0 Kode Dette gir følgende kodeok Kodeoken Begivenhet A B C D E F Kode 00 0 00 0 0 Med sannsynlighetene 03 0.3 03 0.3 0.3 0. 0. 0.05 0 lir gjennomsnittlig antall iter pr. symol (R) for denne koden: (se foil 30) N R p p... p p 0.6 0.4 3.4 N N i i i Entropien H er her mindre enn R (se foil 3): H i0 0 p( si )log( p( s i )).34 INF 30 4 INF 30 4 Generelt om Huffman-koding Kodingsredundans Ingen kode-ord danner prefiks i en annen kode Dette sikrer at en sekvens av kodeord kan dekodes entydig man trenger IKKE ende-markører. Mottatt kode er instantant (øyelikkelig) dekodar. Dette gjelder også Shannon-Fano og naturlig inærkoding. Hyppige symoler har kortere koder enn sjeldne symoler. Dette gjelder også for Shannon-Fano. De to minst sannsynlige symolene har like lange koder, siste it skiller dem fra hverandre. Merk at kodeoken må overføres! Lengden av en Huffman kodeok er G= kodeord. Det lengste kodeordet kan ha opptil G iter. INF 30 43 La oss ruke de 6 mest sannsynlige symolene i engelsk tekst: symol e t a o i sannsynlighet 0.34 0.9 0.4 0. 0. 0.0 kode 00 0 00 0 0 Ordlengde 3 3 3 3 entropi 0.59 0.455 0.397 0.367 0.350 0.33 Det gjennomsnittlige g antall iter per symol, R, er gitt ved: N R i p i 0.53 30.47.47 i Entropien H er litt mindre enn R: Kodingsredundansen R-H er dermed: H i0 p( si )log( p( s i )).34 R H.47.34 0.3 INF 30 44

Ideell og faktisk kodeord-lengde Vi definerte informasjonsinnholdet I(s i ) i hendelsen s i ved I ( s i ) log p ( s ) Den ideelle inære kodeordlengden for symol s i er i = - log (p(s i )). Plotter den ideelle lengden på kodeordene sammen med den faktiske kodeordlengden, som er heltall. Stiplet linje er ideell kodelengde. i ter per symol antall it 3 0 0 6 ^ e t a o i Når er Huffman-koding optimal? Den ideelle inære kode-ord lengden for symol s i er i = - log (p(s i )) Siden are heltalls ordlengder er mulig, er det are p ( s i ) k for heltall k som tilfredsstiller dette. Eksempel:hvisvihar har Symol s s s 3 s 4 s 5 s 6 Sannsynlighet 0.5 0.5 0.5 0.065 0.035 0.035 Kode 0 0 0 0 0 lir den gjennomsnittlige ordlengden R =.9375 = H. INF 30 45 INF 30 46 Kodingsredundans for Huffman Shannon-Fano metoden har en øvre grensen for kodingsredundans på it per symol. Kodingsredundansen til Huffman-koden har en øvre grense som er en funksjon av p 0, der p 0 er sannsynligheten til det hyppigste symolet. Huffman-koden kan i enkelte tilfeller komme dårligere ut når det gjelder kodingsredundans enn Shannon-Fano, hvis p 0 er nær. INF 30 47