Anvendelser. Plass og tid. INF2310 Digital bildebehandling. Eksempler: Plassbehov uten kompresjon. Forelesning 10. Kompresjon og koding I

Like dokumenter
INF2310 Digital bildebehandling

INF1040-Kompresjon-2. (tekst, bilde, lydsignaler etc.) på en så kompakt måte. at redundant informasjon ikke lagres.

Komprimering av bilder

Dynamisk programmering. Hvilke problemer? Overlappende delproblemer. Optimalitetsprinsippet

Dynamisk programmering. Hvilke problemer? Overlappende delproblemer. Optimalitetsprinsippet

UNIVERSITETET I OSLO

Anvendelser. Kapittel 12. Minste kvadraters metode

INF 2310 Digital bildebehandling

Geometriske operasjoner

Geometriske operasjoner

IT1105 Algoritmer og datastrukturer

Appendiks 1: Organisering av Riksdagsdata i SPSS. Sannerstedt- og Sjölins data er klargjort for logitanalyse i SPSS filen på følgende måte:

(iii) Når 5 er blitt trukket ut, er det tre igjen som kan blir trukket ut til den siste plassen, altså:

TMA4240/4245 Statistikk Eksamen august 2016

UNIVERSITETET I OSLO

Løsningsforslag ST2301 Øving 8

Illustrasjon av regel 5.19 om sentralgrenseteoremet og litt om heltallskorreksjon (som i eksempel 5.18).

MA1301 Tallteori Høsten 2014

INF2310 Digital bildebehandling

TMA4265 Stokastiske prosesser

TALLSVAR. Det anbefales at de 9 deloppgavene merket med A, B, teller likt uansett variasjon i vanskelighetsgrad. Svarene er gitt i <<< >>>.

EKSAMEN I FAG SIF5040 NUMERISKE METODER Tirsdag 15. mai 2001 Tid: 09:00 14:00

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

Rayleigh-kriteriet. INF 2310 Digital bildebehandling. Hvor små detaljer kan en linse oppløse? Samplingsteoremet (Shannon/Nyquist)

MoD233 - Geir Hasle - Leksjon 10 2

TALLSVAR. Det anbefales at de 9 deloppgavene merket med A, B, teller likt uansett variasjon i vanskelighetsgrad. Svarene er gitt i << >>.

Simpleksmetoden. Initiell basistabell Fase I for å skaffe initiell, brukbar løsning. Fase II: Iterativ prosess for å finne optimal løsning Pivotering

INF2310 Digital bildebehandling

Sorterings- Algoritmer

ØVINGER 2017 Løsninger til oppgaver

INF 2310 Digital bildebehandling

Eksamen i emne SIB8005 TRAFIKKREGULERING GRUNNKURS

X ijk = µ+α i +β j +γ ij +ǫ ijk ; k = 1,2; j = 1,2,3; i = 1,2,3; i=1 γ ij = 3. i=1 α i = 3. j=1 β j = 3. j=1 γ ij = 0.

Automatisk koplingspåsats Komfort Bruksanvisning

Forelesning 17 torsdag den 16. oktober

Balanserte søketrær. AVL-trær. AVL-trær. AVL-trær høyde AVL AVL. AVL-trær (Adelson-Velskii og Landis, 1962) Splay-trær (Sleator og Tarjan, 1985)

Sparing gir mulighet for å forskyve forbruk over tid; spesielt kan ujevne inntekter transformeres til jevnere forbruk.

Auksjoner og miljø: Privat informasjon og kollektive goder. Eirik Romstad Handelshøyskolen Norges miljø- og biovitenskapelige universitet

Forelesning nr.3 INF 1411 Elektroniske systemer

Dynamisk programmering. Hvilke problemer? Optimalitetsprinsippet. Overlappende delproblemer

Seleksjon og uttak av alderspensjon fra Folketrygden

INF 2310 Digital bildebehandling

Sluttrapport. utprøvingen av

INF 1040 Løsningsforslag til kapittel

Eksamen ECON 2200, Sensorveiledning Våren Deriver følgende funksjoner. Deriver med hensyn på begge argumenter i e) og f).

Statistikk og økonomi, våren 2017

Alternerende rekker og absolutt konvergens

Studieprogramundersøkelsen 2013

Løsningskisse for oppgaver til uke 15 ( april)

Oppgaven består av 9 delspørsmål som anbefales å veie like mye, Kommentarer og tallsvar er skrevet inn mellom <<, >>, Oppgave 1

Oppgaver. Multiple regresjon. Forelesning 3 MET3592 Økonometri ved David Kreiberg Vår 2011

Fleksibelt arbeidsliv. Befolkningsundersøkelse utført for Manpower September 2015

MASTER I IDRETTSVITENSKAP 2012/2014. Individuell skriftlig eksamen. MAS 402- Statistikk. Tirsdag 9. oktober 2012 kl

EKSAMEN Ny og utsatt Løsningsforslag

Forelesning nr.3 INF 1411 Elektroniske systemer. Parallelle og parallell-serielle kretser Kirchhoffs strømlov

STK desember 2007

Tillegg 7 7. Innledning til FY2045/TFY4250

Forelesning 4 og 5 MET3592 Økonometri ved David Kreiberg Vår 2011

INF2310 Digital bildebehandling

COLUMBUS. Lærerveiledning Norge og fylkene. ved Rolf Mikkelsen. Cappelen Damm

INF 1040 Kompresjon og koding

Spinntur 2017 Rotasjonsbevegelse

INF 1040 Kompresjon og koding

INF2810: Funksjonell Programmering. Huffman-koding

Innkalling til andelseiermøte

FORELESNING 12. KOMPRESJON OG KODING II Andreas Kleppe

NA Dok. 52 Angivelse av måleusikkerhet ved kalibreringer

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

Forelesning nr.3 INF 1410

Magnetisk nivåregulering. Prosjektoppgave i faget TTK 4150 Ulineære systemer. Gruppe 4: Rune Haugom Pål-Jørgen Kyllesø Jon Kåre Solås Frode Efteland

TALLSVAR. Det anbefales at de 9 deloppgavene merket med A, B, teller likt uansett variasjon i vanskelighetsgrad. Svarene er gitt i <<< >>>.

EKSAMEN ny og utsatt løsningsforslag

C(s) + 2 H 2 (g) CH 4 (g) f H m = -74,85 kj/mol ( angir standardtilstand, m angir molar størrelse)

INF 1040 Kompresjon og koding

Repetisjon: Kompresjon

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

INF2310 Digital bildebehandling

EKSAMEN Løsningsforslag

Gradient-operatorer. 1D Laplace-operator. Laplace-operatoren. INF 2310 Digital bildebehandling. Laplace-operatoren er gitt ved:

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

2007/30. Notater. Nina Hagesæther. Notater. Bruk av applikasjonen Struktur. Stabsavdeling/Seksjon for statistiske metoder og standarder

Oversikt 1. forelesning. ECON240 Statistikk og økonometri. Utdanning og lønn. Forskning. Datainnsamling; utdanning og inntekt

Lokale operasjoner. Omgivelser/naboskap/vindu. Bruksområder - filtrering. INF 2310 Digital bildebehandling

i kjemiske forbindelser 5. Hydrogen har oksidasjonstall Oksygen har oksidsjonstall -2

INF2810: Funksjonell Programmering. Huffman-koding

NOEN SANNSYNLIGHETER I BRIDGE Av Hans-Wilhelm Mørch.

må det justeres for i avkastningsberegningene. se nærmere nedenfor om valg av beregningsmetoder.

Oppgave 3, SØK400 våren 2002, v/d. Lund

De normalfordelte: x og sd for hver gruppe. De skjevfordelte og de ekstremt skjevfordelte: Median og kvartiler for hver gruppe.

Korteste-vei problemet Nettverksflyt med øvre begrensninger Maksimum-flyt problemet Teorem: Maksimum-flyt Minimum-kutt

NA Dok. 52 Angivelse av måleusikkerhet ved kalibreringer

Introduksjon Online Rapport Din trinn for trinn-guide til den nye Online Rapporten (OLR) Online Rapport

Masteroppgave i statistikk. GAMLSS-modeller i bilforsikring. Hallvard Røyrane-Løtvedt Kandidatnr

Norske CO 2 -avgifter - differensiert eller uniform skatt?

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

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

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

STK1000 Innføring i anvendt statistikk Eksamensdag: Tirsdag 12. desember 2017

EKSAMEN I FAG SIF8052 VISUALISERING MANDAG 21. MAI 2001 KL LØSNINGSFORSLAG

Transkript:

Anvendelser INF231 Dgtal bldebehandlng Forelesnng 1 Kompresjon og kodng I Ole Marus Hoel Rndal, foler av Andreas Kleppe. Tre steg kompresjon Redundanser Kodng og entrop Shannon-Fano-kodng Huffman-kodng Artmetsk kodng Kompendum: 18-18.3, 18.5-18.7.2, 18.7.4 og Appendks B F1 19.4.216 INF231 1 Kompresjon benyttes for å redusere antall bter som brukes for å beskrve bldet (eller en god tlnærmng av bldet). En mengde anvendelser nnen datalagrng og dataoverførng. Televdeokonferanser Fjernanalyse / meteorolog Overvåkng / fjernkontroll Telemedsn / medsnske arkver (PACS) Dokumenthåndterng / FAX Multmeda / nettverkskommunkasjon Mobl kommunkasjon MP3-spllere, DAB-rado, dgtalkameraer, Tdsforbruket er vktg, men det varerer om man ønsker å mnmere kompresjonstden eller dekompresjonstden. Det man gjør oftest ønsker man at tar kortest td. Asymmetrsk kompresjon? Begge tdene kan være omtrent lke vktge. Symmetrsk kompresjon? F1 19.4.216 INF231 2 Eksempler: Plassbehov uten kompresjon Dgtalt RGB-blde: 512 x 512 x 8 bter x 3 farger = 6 291 456 bter,79 MB 3264 x 2448 x 8 bter x 3 farger = 191 766 528 bter 24 MB Røntgen-blde: 7 112 x 8 636 pksler à 12 bter: 737 3 784 bter 92 MB Radarblde fra Radarsat-1-satelltten: 4 MB, 3 km x 3 km, 16 bter per pksel. For mljøovervåknng av Mddelhavet: 28 slke blder trengs for å dekke hele Mddelhavet. 3D-sesmkk-data fra 6 km 2 Nordsjøen. 4 TB = 4 GB = 4 MB Plass og td Dgtale data kan ta stor plass. Speselt lyd, blder og vdeo. Eksempler: 1. Dgtalt blde: 512 x 512 x 8 bter x 3 farger = 6 291 456 bter 2. Røntgenblde: 7112 x 8636 x 12 bter = 737 3 784 bter Overførng av data tar td: Lnje med 64 kbt/sek: 1. ca. 1 mn. 38 s. 2. ca. 3 tmer 12 mn. Lnje med 1 Mbt/sek: 1. ca. 6 s. 2. ca. 12 mn. Kapasteten tl enkelte lnjer: 3G: Mnst 2 kbps, ofte noen Mbps ADSL2+: Opptl 24 Mbps VDSL2: Opptl 1 Mbps F1 19.4.216 INF231 3 F1 19.4.216 INF231 4

SI-prefkser og bnære prefkser Overførngshastgheter og lnjekapastet angs alltd med SI-prefkser, oftest som antall bter per sekund: 1 kbps = 1 bps = 1 3 bter per sekund 1 Mbps = 1 kbps = 1 6 bter per sekund 1 Gbps = 1 Mbps = 1 9 bter per sekund 1 Tbps = 1 Gbps = 1 12 bter per sekund Flstørrelser er oftest gtt med bnære prefkser: Kbbyte (KB = 2 1 byte = 1 24 byte), Mebbyte (MB = 2 2 byte = 1 48 576 byte), Gbbyte (GB = 2 3 byte = 1 73 741 824 byte), Tebbyte (TB = 2 4 byte = 1 99 511 627 776 byte) F1 19.4.216 INF231 5 Data Kompresjon Kompresjon Lagrng eller oversendng Kompresjonsalgortme Dekompresjonsalgortme Dekompresjon Bldekompresjon består å representere nformasjonen bldet ved bruk av færre bter og ev. å kke lagre redundant nformasjon. Bldet komprmeres og deretter lagres eller overføres dataene. Når bldet senere skal brukes, så dekomprmeres dataene. Kodng er en del av kompresjon, men målet med kodngen er å bruke færrest mulg bter, kke å hemmelgholde eller skjule nformasjon. Data F1 19.4.216 INF231 6 Kompresjon De tre stegene kompresjon Kompresjon kan deles nn tre steg: Transform - representer bldet mer kompakt. Kvantserng - avrund representasjonen. Kodng - produser og bruk en kodebok. nndata transform kvantserng kodng utdata nndata transform kvantserng kodng utdata Kompresjon kan gjøres: Ø Eksakt / tapsfr (eng.: lossless) følg de grønne plene. Kan da eksakt rekonstruere det orgnale bldet. Ø Ikke-tapsfr (eng.: lossy) følg de røde plene. Kan da (generelt) kke eksakt rekonstruere bldet. Resultatet kan lkevel være «godt nok». Det fnnes en mengde ulke metoder nnenfor begge kategorer. F1 19.4.216 INF231 7 Mange kompresjonsmetoder er basert på å representere bldet på en annen måte, altså transformer av orgnal-bldet. Eks.: Dfferansetransform, løpelengde-transform. Hvs v kvantserer det (orgnale eller transformerte) bldet, så kan kke dette reverseres kke-tapsfr kompresjon. Tl slutt koder v, dvs. transformerer meldng tl bnærrepresentasjon. Baserer seg ofte på normalserte hstogrammer. Kodngene v bruker er alltd reversble. Transformene v bruker er alltd reversble. Kvantserng er kke reversbelt! F1 19.4.216 INF231 8

Meldng, nformasjon og data Redundans Meldng: Teksten eller bldet som v skal lagre eller sende. En meldng nneholder en vss mengde nformasjon. Informasjon: Et matematsk begrep som kvantfserer hvor overraskende / uventet en meldng er. Et varerende blde har mer nformasjon enn et monotont blde. I blder har kanter rundt objekter høyt nformasjonsnnhold, speselt kanter med mye krumnng. Data: En btsekvens som representerer meldngen. V kan bruke ulke mengder data på samme meldng. Anta meldngen er 13. Med ISO 8859-1 trengs 16 bter; «13» Med 8-bters naturlg bnærkodng trengs 8 bter; 111 Med 4-bters naturlg bnærkodng trengs 4 bter; 111 Redundans: Det som kan «fjernes» fra dataene uten å mste (relevant) nformasjonen. Med «fjerne» menes her å redusere plassen dataene tar. I kompresjon ønsker v å fjerne redundante bter. F1 19.4.216 INF231 9 F1 19.4.216 INF231 1 Ulke typer redundans Psykovsuell redundans. Mer generelt: Irrelevant nformasjon: Unødvendg nformasjon for anvendelsen, Det fnnes nformasjon v kke kan se. f.eks. for vsuell betraktnng av hele bldet. Eksempler på enkle mulgheter for å redusere redundansen: Subsample eller redusere antall bter per pksel. Interblde-redundans. Lkhet mellom naboblder en tdssekvens. Eks.: Lagre noen blder tdssekvensen og ellers bare dfferanser. Intersampel-redundans. Lkhet mellom nabopksler. Eks.: Hver lnje bldet kan løpelengde-transformeres. Kodngs-redundans. Enkeltsymboler (enkeltpksler) blr kke lagret optmalt. Gtt som gjennomsnttlg kodelengde mnus et teoretsk mnmum. Velg en metode som er «gre» å bruke og gr lten kodngsredundans. F1 19.4.216 INF231 11 Kompresjonsrate og redundans Kompresjonsraten: der b er antall bter per symbol den ukomprmert datamengden, og c er gjennomsnttlg antall bter per symbol den komprmerte datamengden. I et ukomprmert blde blr alle pkslene lagret separat med naturlg bnærkodng. Relatv redundans: b CR = c 1 R = 1 = 1 CR Også kalt plassbesparelse (eng. space savngs). Ofte oppgtt prosent. Prosentverden kan kalles «percentage removed»: c PR = 1 R = 1 1 b F1 19.4.216 INF231 12 c b

Kodng Alfabet: Mengden av alle mulge symboler (f.eks. alle mulge gråtoner). Ofte får hvert symbol et kodeord. Kodebok: Alle kodeordene og deres betydnng. Kodngene v bruker er reversble. Denne egenskaper kalles for unk dekodbarhet; en sekvens kodeord kan dekodes på én og bare én måte. V kan betrakte kke-reversble kodnger som en kombnasjon av en kvantfserng og en reversbel kodng. Hvs hvert symbol har et kodeord betyr dette at kodeordet skal entydg g det orgnale symbolet. Instantant dekodbare koder kan dekodes uten sklletegn. F1 19.4.216 INF231 13 Naturlg bnærkodng Alle kodeord er lke lange. Symbolets kode er bnærrepresentasjonen tl symbolets (null-ndekserte) ndeks. Man legger tl -ere foran slk at koden får den ønskelge lengden. Eks: En 3-bters naturlg bnærkode har 8 mulge verder: Symbolndeks 1 2 3 4 5 6 7 Symbol s s 1 s 2 s 3 s 4 s 5 s 6 s 7 Kode c 1 1 11 1 11 11 111 Naturlg bnærkodng er bare «optmal» hvs alle verdene sekvensen er lke sannsynlge. Med «optmal» menes her at kompresjonen er «best» mulg. F1 19.4.216 INF231 14 Informasjonsteor og kodng Kodng bygger på sannsynlgheter. Forekommer en pkselverd oftere enn en annen, bør førstnevnte lagres med mndre antall bter for å bruke mnst mulg bter på å lagre hele bldet. Det er altså plassbesvarende å bruke flere bter på symboler som forekommer sjeldent, ford hyppge symboler da kan bruke færre bter. V bør bruke et varabelt antall bter per symbol. V skal nå først se på kodng av enkeltpksler. Bør allerede ha mnmert annen redundans. F.eks. gjennom transform-steget, som v skal se på neste uke. F1 19.4.216 INF231 15 Koder med varabel lengde Når symbolene forekommer med ulk sannsynlghet er det bedre å bruke kodeord med varabel lengde. Hyppge symboler => kortere kodeord. De vanlgste symbolene Sjeldne symboler => lengre kodeord. engelsk tekst er: Dette var forretnngsdeen tl Samuel Morse; e, t, a, o,, n, Morse-kode:. og mellomrom varer 1 enhet, - varer 3 enheter 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 -. - - F1 19.4.216 INF231 16

Entrop: En lten forsmak Entrop er et matematsk mål på nformasjonsmengden en sekvens med symboler (f.eks. tegn eller gråtoner). Strengt tatt er entrop nformasjonen en tlfeldg varabel. Når v snakker om entropen tl en sekvens med symboler så mener v entropen tl den dskrete varabelen der sannsynlgheten tl hvert symbol er dets frekvens sekvensen. Merk: Bare frekvensene tl symbolene brukes, kke possjonene. Hvs man antar at pkselverdene er uavhengge realsasjoner av en underlggende dskret varabel, er entropen tl sekvensen et estmat på entropen tl varabelen. Entrop angr gjennomsnttlg nformasjon per symbol. Når v bare ser på symbolenes frekvenser, kke possjoner. Intutvt har v at en mndre sannsynlg hendelse (symbol) gr mer nformasjon enn en mer sannsynlg hendelse (symbol). Informasjon er relatert tl mengden overraskelser. Hstogram og normalsert hstogram Anta v har en sekvens med N symboler. Tell opp antall ganger symbol s forekommer og la n være dette antallet. Dette er det samme som hstogrammet tl sekvensen. Sannsynlgheten tl symbolene fnnes da som: p = n / N Dette er det normalserte hstogrammet. Hvs man antar at pkselverdene er uavhengge realsasjoner av en underlggende dskret varabel, er p et estmat på sannsynlgheten for at varabelen er symbol s. F1 19.4.216 INF231 17 F1 19.4.216 INF231 18 Gjennomsnttlg antall bter per pksel V konstruerer en kode c,, c G-1 slk at symbol s kodes med kodeordet c. G er antall symboler alfabetet. b er lengden av kodeordet c (angtt bter). Gjennomsnttlg antall bter per symbol for koden er: c = b p + b1 p1 +... + b G 1 pg 1 = G 1 b p Informasjonsnnhold Defner nformasjonsnnholdet I(s ) hendelsen s ved: 1 I( s ) = log2 p log 2 (x) er 2-er-logartmen tl x. Hvs log 2 (x) = b så er x=2 b Eks: log 2 (64)=6 ford 64=2 6 (=2*2*2*2*2*2) log 2 (8)=3 ford 8=2*2*2=2 3 log 2 (tall) = log 1 (tall) / log 1 (2) log 2 (1/p ) gr oss nformasjonsnnholdet hendelsen: «symbolet s forekommer en gang», uttrykt bter. F1 19.4.216 INF231 19 F1 19.4.216 INF231 2

Entrop Gjennomsnttlg nformasjonsnnhold sekvensen, også kalt gjennomsnttlg nformasjon per symbol, er da: H = G 1 p I( s ) = G 1 H er entropen tl sekvensen av symbolene. Entropen setter en nedre grense for hvor kompakt sekvensen kan representeres. Gjelder bare hvs v koder hvert symbol for seg. F1 19.4.216 INF231 21 p log 2 p Hvs p(s )= lar v det tlhørende entropbdraget, log 2, være. Øvre og nedre grense for entrop Hvs alle symboler lke sannsynlge => entrop lk antall bter. Hvs det er G=2 b symboler alfabetet, og sannsynlgheten for hvert av dem er p = 1/2 b, så er entropen: G H = 1 1 1 1 log = ) = b b 2( ) log ( b 2 b 2 2 2 Altså: Hvs det er 2 b symboler som alle er lke sannsynlge, så kan de kke representeres mer kompakt enn med b bter per symbol. Når v koder symbolene enkeltvs. Hvs alle pkslene er lke => entrop lk. Hvs bare ett symbol forekommer, er sannsynlgheten for dette symbolet lk 1, og alle andre sannsynlgheter er lk. Sden log 2 (1) = vl entropen da bl. F1 19.4.216 INF231 22 Entrop et bnært blde: To eksempler Anta v har et MxN bnært blde. Hvs v skal lagre hver pkselverd for seg selv, må v alltd bruke MN bter, men hvor mye nformasjon er det bldet? Entrop et bnært blde 1 Entrop et bnært blde Lke mange som 1 bldet (og ngen nterpksel-redundans): Informasjonsnnholdet hver mulg hendelse er da lke stort, derfor er entropen 1 bt. 1 1 1 1 1 1 H = log2 ( ) + log2 ( ) = *1+ *1 = 1 2 1/ 2 2 1/ 2 2 2 Entrop,5 3 ganger så mange 1 som bldet (og ngen nterpksel-redundans): Mndre overraskende å få en 1 og det skjer oftere. Entropen er da mndre: 1 1 3 1 1 3 H = log2 ( ) + log2 ( ) = *2 + *,415 =,5 +,311=,811 4 1/ 4 4 3/ 4 4 4 F1 19.4.216 INF231 23,25,5,75 1 A pror sannsynlghet for klasse 1 Når v lagrer pkselverd for pkselverd vl v alltd måtte bruke 1 bt per pksel et bnært blde, selv når entropen er nær! Kodngsredundansen er null når det er lke mange svarte og hvte pksler. F1 19.4.216 INF231 24

Shannon-Fano-kodng Shannon-Fano-kodng En enkel metode: 1.Sorter symbolene etter hyppghet, hyppgst tl venstre. 2.Del symbolene rekursvt to grupper som forekommer så lke hyppg som mulg. Oppdelngen skal skje ved at symbolene tl venstre for en grense blr en subgruppe, mens resten blr en annen subgruppe. Venstre gruppe tlordnes, høyre gruppe tlordnes 1. Rekursjonen stopper når hver gruppe nneholder ett symbol. 3.Traverser treet fra rot tl hvert blad for å fnne koden for hvert symbol. Eksempel: Kodng av: HALLO H, A, L, O (5) L(2) 1 H (1) H, A, O (3) 1 A, O (2) 1 A (1) O (1) Symbol Ant. Kodeord Lengde Antall bter L 2 1 2 H 1 1 2 2 A 1 11 3 3 O 1 111 3 3 Totalt antall bter 1 Oppdelng to «så lke store grupper som mulg» kan g et annet bnærtre for eksempel: HALLO Selv om treet er annerledes, og kodeboken blr forskjellg, så er koden unkt dekodbar. For dette eksempelet er de to løsnngene er lkeverdge, men slk er det kke alltd. Generelt for Shannon-Fano-kodng er gjennomsnttlg antall bter per symbol er relatert tl entropen: H c H+1 Øvre grense for kodngsredundans: 1 bt per symbol H, A, L, O (5) 1 L, H (3) A, O (2) 1 1 L (2) H (1) A (1) O (1) Symbol Ant. Kodeord Lengde Antall bter L 2 2 4 H 1 1 2 2 A 1 1 2 2 O 1 11 2 2 Totalt antall bter 1 F1 19.4.216 INF231 25 F1 19.4.216 INF231 26 Huffman-kodng Huffman-kodng er en algortme for varabel-lengde kodng som er optmal under begrensnngen at v koder symbol for symbol. Med optmal menes her mnst mulg kodngs-redundans. Antar at v kjenner hyppgheten for hvert symbol. Enten spesfsert som en modell. Huffman-koden er da optmal hvs modellen stemmer. Eller så kan v bruke symbol-hstogrammet tl sekvensen. Huffman-koden er da optmal for sekvensen. Ofte bruker v sannsynlghetene stedet, men v kunne lkegodt benyttet hyppghetene. F1 19.4.216 INF231 27 Huffman-kodng: Algortmen Gtt en sekvens med N symboler: 1. Sorter symbolene etter sannsynlghet, slk at de mnst sannsynlge kommer sst. 2. Slå sammen de to mnst sannsynlge symbolene tl en gruppe, og sorter gjen etter sannsynlghet. 3. Gjenta 2 tl det bare er to grupper gjen. 4. G koden tl den ene gruppen og koden 1 tl den andre. 5. Traverser nnover begge gruppene og legg tl og 1 bakerst kodeordet tl hver av de to undergruppene. F1 19.4.216 INF231 28

Eksempel: Huffman-kodng La oss fnne Huffman-koden tl modellen som består av følgende seks begvenheter med sannsynlgheter: Begvenhet A B C D E F Sannsynlghet,3,3,13,12,1,5 Slå sammen de to gruppene som har mnst sannsynlghet, Den nye gruppens sannsynlghet er summen av de forrge. Fnn de to som nå har mnst sannsynlghet, og slå dem sammen på samme måte. Fortsett tl det er bare to gjen.,6,25,15 F1 19.4.216 INF231 29,4 Eksempel: Huffman-kodng La oss fnne Huffman-koden tl modellen som består av følgende seks begvenheter med sannsynlgheter: Begvenhet A B C D E F Sannsynlghet,3,3,13,12,1,5 1,15 Gå baklengs gjennom bnærtreet og tlordne eller 1 tl hver gruppe. (F. eks. kode tl den mest sannsynlg 1 og kode 1 tl den mnst sannsynlge),25 1 1,4,6 1 F1 19.4.216 INF231 3 Eksempel: Huffman-kodng V får dermed følgende kodebok: Begvenhet A B C D E F Huffman-kodeord 1 1 11 11 111 Sden sannsynlghetene er: Sannsynlghet,3,3,13,12,1,5 blr gjennomsnttlg antall bter per symbol: G 1 = + 1 1 + + 1 1 = c b p b p! bg pg b p =,6 2 +,4 3 = 2,4 Entropen H er her ltt mndre enn c: G 1 = H p log p 2 2,34 F1 19.4.216 INF231 31 Huffman-kodng: Kodngsredundans Shannon-Fano-koder har en øvre grensen for kodngsredundans på 1 bt per symbol. Kodngsredundansen tl Huffman-koder har samme øvre grense, men har også en tettere grense dersom p max, sannsynlgheten tl det hyppgste symbolet, kke er veldg stor. c H p 2log + log2 e e 2 max pmax +,86 Kodngsredundansen tl Huffman-koder blr større ettersom p max nærmer seg 1; selv om p max er mye større enn,5 så må v bruke 1 bt på å kode det tlhørende symbolet! F1 19.4.216 INF231 32

Generelt om Shannon-Fano- og Huffman-kodng Ingen kodeord danner prefks en annen kode. Dette skrer at en sekvens av kodeord kan dekodes entydg og at man IKKE trenger endemarkører / sklletegn. Mottatt kodesekvens er unkt og nstantant dekodbar. Dette gjelder også naturlg bnærkodng. Hyppge symboler har kortere kodeord enn sjeldne symboler. De to mnst sannsynlge symbolene har lke lange koder. Sste bt skller dem fra hverandre. Merk: Kodeboken må overføres! Kodeboken tl et b-bters blde nneholder opptl G=2 b kodeord og det lengste kodeordet kan ha opptl G-1 bter. F1 19.4.216 INF231 33 Eksempel: Huffman-kodng La oss Huffman-kode alfabetet som består av de seks mest sannsynlge symbolene engelsk tekst: Symbol ^ e t a o Sannsynlghet,34,19,14,12,11,1 Huffman-kodeord 1 1 11 11 111 Kodeordlengde 2 2 3 3 3 3 Entrop-bdrag,529,455,397,367,35,332 Det gjennomsnttlge antall bter per symbol, c, er gtt ved: G 1 = c b p = 2,53 + 3,47 = 2,47 Entropen H er gjen ltt mndre enn c: Kodngsredundansen c-h er dermed: G 1 = H p log p F1 19.4.216 INF231 34 2 2,43 c H 2,47 2,43 =,4 Ideell og faktsk kodeord-lengde Når gr Huffman-kodng ngen kodngsredundans? Hvs gjennomsnttlg antall bter per symbol, c, skal være lk entropen, H, så må: G 1 G 1 c = b p = p log2 p = H Informasjonsnnholdet I(s ) hendelsen s angr altså den deelle bnære kodeordlengden for symbol s : b = I ( s ) = log2 1 p Den deelle bnære kodeordlengden for symbol s er: b = -log 2 (p ) Sden bare heltalls kodeordlengder er mulg, 1 er det bare når p = k 2 for et heltall k som dette kan tlfredsstlles. Eksempel: Hvs meldngen har sannsynlghetene: Plotter den deelle lengden på kodeordene (vst blått) sammen med de faktske kodeordlengden (vst rødt) for forrge eksempel, får v: antall bter per symbol F1 19.4.216 INF231 35 3 2 1 6 ^ e t a o Symbol s s 1 s 2 s 3 s 4 s 5 Sannsynlghet,5,25,125,625,3125,3125 Huffman-kodeord 1 11 111 1111 11111 er gjennomsnttlg btforbruk per symbol etter Huffman-kodng: c = 1,9375 = H der H er entropen. Altså får v ngen kodngsredundans! F1 19.4.216 INF231 36

Artmetsk kodng Artmetsk kodng vs Huffman-kodng Alternatv tl Huffman-kodng, som den deler flere lkheter med: Tapsfr kompresjonsmetode. Entropkoder: Koder mer sannsynlge symboler med kompakt. Bruker sannsynlghetsmodell / hstogram av symbolforekomster. Huffman-kodng: Sender / bruker kjent kodebok. Artmetsk kodng: Sender / bruker kjent modell/hstogram. Skller seg fra Huffman-kodng ved at artmetsk kodng kke lager kodeord for enkeltsymboler. I stedet kodes en sekvens av symboler som ett tall D (, D < 1,). Kan oppnå bedre kompresjon enn Huffman-kodng. Entropen setter kke en nedre grense for btforbruket. Men setter faktsk fortsatt en nedre grense for gjennomsnttet! 1. Defner antall symboler alfabetet, G, og antall symboler sekvensen, N. 2. Gjenta 1 ganger: a. Tlfeldg generer sannsynlgheten for hvert symbol alfabetet, p b. Tlfeldg generer det oppgtte antall symboler ht. de genererte p c. Hvs kke alle symbolene alfabetet forekommer sekvensen, gå tl 1. d. Beregn kodngsredundansen for etter artmetsk kodng og etter Huffman-kodng. 3. Beregn maksmum, gjennomsnttlg og mnmum kodngsredundans. Resulterer et btforbruk per symbol som er nær entropen. F1 19.4.216 INF231 37 Med G=4 symboler alfabetet. Med G=2 symboler alfabetet. F1 19.4.216 INF231 38 Artmetsk kodng vs Huffman-kodng Artmetsk kodng: Bedre kompresjon jo lenger symbolsekvensen er. Huffman-kodng: Bedre kompresjon jo flere symboler alfabetet. Artmetsk kodng komprmerer typsk ltt bedre enn Huffman-kodng, men er mer regnekrevende å utføre. For vanlge blder, dvs. med relatvt få symboler alfabetet og (potenselt sett) mange symboler sekvensen. Artmetsk kodng: Grunntanke Symbolsannsynlghetene summerer seg tl 1. Dermed defnerer de en oppdelng av ntervallet [, 1). Hvert delntervall representerer ett symbol. Har v to symboler etter hverandre, kan v oppdele ntervallet som representerer det første symbolet. Hvert delntervall representerer symbolparet; det første symbolet etterfulgt av ett symbol. Med G=4 symboler alfabetet. Med G=2 symboler alfabetet. F1 19.4.216 INF231 39 Tlsvarende for flere symboler etter hverandre. Resultat: Et halvåpent delntervall av [, 1). Fnner så en btsekvens som representerer ntervallet. F1 19.4.216 INF231 4

Eksempel: Artmetsk kodng Sannsynlghetsmodell: P(a 1 )=P(a 2 )=P(a 4 )=,2 og P(a 3 )=,4 Meldng/symbolsekvens: a 1 a 2 a 3 a 3 a 4 a 1 lgger ntervallet [,,2) a 1 a 2 lgger ntervallet [,4,,8) a 1 a 2 a 3 lgger ntervallet [,56,,72) a 1 a 2 a 3 a 3 lgger ntervallet [,624,,688) a 1 a 2 a 3 a 3 a 4 lgger ntervallet [,6752,,688) F1 19.4.216 INF231 41 Artmetsk kodng: Algortmen 1. La «current nterval» = [, 1). 2. For hvert symbol a sekvensen (fra venstre): a) Del opp «current nterval» delntervaller, der størrelsen på hvert delntervall er proporsjonalt med sannsynlgheten for det tlhørende symbolet. Proporsjonaltetsfaktoren er størrelsen av «current nterval». b) Velg det delntervallet som svarer tl a, og la «current nterval» være dette delntervallet. 3. Representer «current nterval» med en kortest mulg btsekvens. F1 19.4.216 INF231 42 Artmetrsk kodng prakss Alfabetet nneholder normalt END-OF-DATA (EOD). Dette symbolet må også få en sannsynlghet modellen. Alternatvt kan lengden av symbolsekvensen defneres, enten predefnert eller spesfsert. I prakss oppdeles kke «current nterval», kun delntervallet tl det trufne symbolet beregnes: begynnelsen av nytt c.. = begynnelsen av gammelt c.. + (bredden av gammelt c.. * begynnelsen av symbolets ntervall modellen) slutten av nytt c.. = begynnelsen av gammelt c.. + (bredden av gammelt c.. * slutten av symbolets ntervall modellen) V beregner altså kun ett ntervall for hvert symbol. F1 19.4.216 INF231 43 AK: Kodngseksempel Modell: Alfabet [a, b, c] med sannsynlgheter [,6,,2,,2]. Hvlket delntervall av [, 1) vl entydg representere meldngen acaba? a lgger ntervallet [,,6). «Current nterval» har nå en bredde på.6. ac lgger ntervallet [+,6*,8, +,6*1) = [,48,,6). Intervallbredden er nå,12 (= produktet,6*,2). aca lgger ntervallet [,48+,12*,,48+,12*,6) = [,48,,552). Intervallbredden er,72 (= produktet,6*,2*,6). acab er [,48+,72*,6,,48+,72*,8) = [,5232,,5376). Intervallbredden er,144 (= produktet,6*,2*,6*,2). acaba er [,5232+,144*,,5232+,144*,6) = [,5232,,53184). Intervallbredden er nå,864 (= produktet,6*,2*,6*,2*,6). Et tall ntervallet, f.eks.,53125, vl entydg representere acaba, forutsatt at mottakeren har den samme modellen og vet når å stoppe. F1 19.4.216 INF231 44

AK: Dekodngseksempel Anta at v skal dekode tallet,53125. Samme modell: Alfabet [a, b, c] med sannsynlgheter [,6,,2,,2]. La [, 1) være «current nterval». Del ntervallet ht. modellen; a er [,,6), b er [,6,,8) og c er [,8, 1). Tall,53125 lgger delntervallet for a, [,.6): => Første symbol: a [,,6) er nå «current nterval». Del dette opp henhold tl modellen: delntervallet for a er [,,36) bredden er 6% av [,,6) delntervallet for b er [,36,,48) bredden er 2% av [,,6) delntervallet for c er [,48,,6) bredden er 2% av [,,6) Tall,53125 lgger delntervallet [,48,,6): => Andre symbol: c [,48,,6] er nå «current nterval». Del dette opp henhold tl modellen: delntervallet for a er [,48,,552) delntervallet for b er [,552,,576) delntervallet for c er [,576,,6) Tall,53125 lgger delntervallet [,48,,552): => Tredje symbol: a F1 19.4.216 INF231 45 AK: Dekodngseksempel Anta at v skal dekode tallet,53125. Samme modell: Alfabet [a, b, c] med sannsynlgheter [,6,,2,,2]. [,48,,552] er nå «current nterval». Del dette opp ht. modellen: delntervallet for a er [,48,,5232) delntervallet for b er [,5232,,5376) delntervallet for c er [,5376,,552) Tall,53125 lgger delntervallet [.5232,.5376): => 4. symbol: b V deler opp ntervallet [,5232,,5376) for å fnne neste symbol: delntervallet for a er [,5232,,53184) delntervallet for b er [,53184,,53472) delntervallet for c er [,53472,,5376) Tall,53125 lgger delntervallet [,5232,,53184): => 5. symbol: a V kunne fortsatt å dekode symboler. For å vte at v skal stoppe her trenger v: Enten et EOD-symbol modellen; stopp når v dekoder dette. Eller vte hvor mange symboler v skal dekode; stopp når v har dekodet det antallet. F1 19.4.216 INF231 46 Desmaltall som btsekvens V lagrer/sender kke desmaltall, men en sekvens med bter. Spørsmålet er: Hvordan kan v representere ntervallet ved bruk av færre mulg bter? Først må v å se hvordan v representerer desmaltall bnært: Et desmaltall D ntervallet [, 1) kan skrves som en veet sum av negatve toerpotenser: D = d 1 2-1 + d 2 2-2 + d 3 2-3 + + d n 2 -n + der hver d er enten eller 1. Rekken av koeffsenter d 1 d 2 d 3 d 4 er btsekvensen som representerer desmaltallet D. V skrver at: D =,d 1 d 2 d 3 d 4 2 der 2 ndkerer at tallet er skrevet totallsystemet. Desmaltall som btsekvens Stuasjon: V har et desmaltall [, 1) som v ønsker å skrve totallsystemet. Løsnng: Suksessv multplkasjon med 2: 1. Multplser begge sder av følgende lknng med 2: D = d 1 2-1 + d 2 2-2 + d 3 2-3 + + d n 2 -n + Heltallsdelen av resultatet er da lk c 1 ford: 2D = d 1 +Q, der Q = d 2 2-1 + d 3 2-2 + + d n 2 -(n-1) + Hvs resten Q er, så er v ferdge. 2. Multplser resten Q med 2. Heltallsdelen av produktet er neste bt og Q oppdateres tl å være den nye resten. 3. Hvs resten Q er, så er v ferdge. Ellers går v tl 2. F1 19.4.216 INF231 47 F1 19.4.216 INF231 48

Representasjon av ntervall Eksempel: Representasjon av ntervall Spørsmålet var: Hvordan kan v representere ntervallet ved bruk av færre mulg bter? Eksempel: Intervallet er [,5232,,53184).,53125 1 er (som sagt) et desmaltall dette ntervallet, og er faktsk det desmaltallet ntervallet med kortest bnær-representasjon. Hva er btsekvensen som representerer dette desmaltallet?,53125 1 =,11 2 sden: 2*,53125 = 1,625 => d 1 = 1, rest =,625 2*,625 =,125 => d 2 =, rest =,125 2*,125 =,25 => d 3 =, rest =,25 2*,25 =,5 => d 4 =, rest =,5 2*,5 = 1, => d 5 = 1, rest = V trenger altså bare 5 bter for å kode (et tall ) ntervallet! Men hvordan kan v fnne hvlket desmaltall v skal bruke for at bnær-representasjoner blr kortest mulg? F1 19.4.216 INF231 49 Fnn kortest mulg d=,d 1 d 2 d 3... 2 nnenfor ntervallet [,6,,7). Hvs n k så er: 2 -k+1 = 2 -(k-1) > d k 2 -k + + d n 2 -n sden d er eller 1. Derfor er: D =,1 2 =>,5 D < 1 D =,1 2 =>,5 D <,75 D =,1 2 =>,5 D <,625 D =,11 2 =>,625 D <,75 => Intervall kan kodes ved det bnære kommatallet,11 2 (ekvvalent med,625 1 ), altså med bare 3 bter. Hvs v vl kreve at øvre og nedre grense er nnenfor ntervallet; ntervallet kan kodes ved,11 2 ford: D =,11 2 =>,625 D <,6875 F1 19.4.216 INF231 5 AK: Problemer og løsnnger Den stadge krympngen av «current nterval» krever flyttall med stadg økende pressjon og eksakt artmetkk. Lengre symbolsekvenser krever bedre pressjon. Kompresjonsmetoden gr ngen output før hele sekvensen er behandlet. Løsnng: Send/lagre den mest sgnfkante bten når entydg kjent, og doble lengden av «c..». Btsekvensen blr ( teoren) lk som før. Kan prakss øke pressjonen, men løser kke problemet. Det fnnes flere praktske AK-mplementasjoner. Alle er ganske regnetunge. V trenger uansett press/nøyaktg flyttallsartmetkk! De aller fleste er belagt med patenter. F1 19.4.216 INF231 51 AK: Andre typer modeller Statske hstogrambaserte modeller er kke optmale. Høyere-ordens modeller endrer estmatet av sannsynlgheten for et symbol (og dermed hvordan «current nterval» deles opp) basert på foregående symbol (som er konteksten). I en fornuftg modell for engelsk tekst vl ntervallbredden for «u» øke dersom forrge symbol er «Q» eller «q». Modellen kan også være adaptv, slk at den «kontnuerlg» endres ved å tlpasse seg den faktske symbolstrømmen. Uansett modell må mottakeren ha den samme! F1 19.4.216 INF231 52

Oppsummerng V komprmerer for å redusere antall bts. Ved kompresjon fjernes/reduseres redundans: Psykovsuell -, nterblde-, ntersampel-, kodng-redundans. Kun når v fjerner rrelevant nformasjon for anvendelsen (f.eks. psykovsuell redundans) er kompresjonen kke-tapsfr. Kompresjon kan deles nn tre steg: 1. Transform. 2. Kvantfserng. Hvs brukt, så blr kompresjonen kke-tapsfr! 3. Kodng, f.eks. Shannon-Fano-, Huffman- eller artmetsk kodng. Huffman-kodng oppnår mnst mulg kodngsredundans under antagelsen om at v koder symbol for symbol, men artmetsk kodng kan ofte være ltt bedre for vanlge blder. F1 19.4.216 INF231 53