INF2310 Digital bildebehandling

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

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).

INF2310 Digital bildebehandling

MA1301 Tallteori Høsten 2014

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

Sorterings- Algoritmer

ØVINGER 2017 Løsninger til oppgaver

INF 2310 Digital bildebehandling

INF2310 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

Innkalling til andelseiermøte

INF2810: Funksjonell Programmering. Huffman-koding

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

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

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

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:

INF30 Dgtal bldebehandlng Forelesnng 0 Kompresjon og kodng I Andreas Kleppe Tre steg kompresjon Redundanser Kodng og entrop Shannon-Fano-kodng Huffman-kodng Artmetsk kodng Kompendum: 8-8.3, 8.5-8.7., 8.7.4 og Appendks B F0 3.03.04 INF30

Anvendelser 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? F0 3.03.04 INF30

Eksempler: Plassbehov uten kompresjon Dgtalt RGB-blde: 5 x 5 x 8 bter x 3 farger = 6 9 456 bter 0,79 MB 364 x 448 x 8 bter x 3 farger = 9 766 58 bter 4 MB Røntgen-blde: 7 x 8 636 pksler à bter: 737 030 784 bter 9 MB Radarblde fra Radarsat--satelltten: 400 MB, 300 km 300 km, 6 bter per pksel. For mljøovervåknng av Mddelhavet: 8 slke blder trengs for å dekke hele Mddelhavet. 3D-sesmkk-data fra 60 000 km Nordsjøen. 4 TB = 4 000 GB = 4 000 000 MB F0 3.03.04 INF30 3

Plass og td Dgtale data kan ta stor plass. Speselt lyd, blder og vdeo. Eksempler:. Dgtalt blde: 5 x 5 x 8 bter x 3 farger = 6 9 456 bter. Røntgenblde: 7 x 8636 x bter = 737 030 784 bter Overførng av data tar td: Lnje med 64 kbt/sek:. ca. mn. 38 s.. ca. 3 tmer mn. Lnje med Mbt/sek:. ca. 6 s.. ca. mn. Kapasteten tl enkelte lnjer: 3G: Mnst 00 kbps, ofte noen Mbps ADSL+: Opptl 4 Mbps VDSL: Opptl 00 Mbps F0 3.03.04 INF30 4

SI-prefkser og bnære prefkser Overførngshastgheter og lnjekapastet angs alltd med SI-prefkser, oftest som antall bter per sekund: kbps = 000 bps = 0 3 bter per sekund Mbps = 000 kbps = 0 6 bter per sekund Gbps = 000 Mbps = 0 9 bter per sekund Tbps = 000 Gbps = 0 bter per sekund Flstørrelser er oftest gtt med bnære prefkser: Kbbyte (KB = 0 byte = 04 byte), Mebbyte (MB = 0 byte = 048 576 byte), Gbbyte (GB = 30 byte = 073 74 84 byte), Tebbyte (TB = 40 byte = 099 5 67 776 byte) F0 3.03.04 INF30 5

Kompresjon Kompresjonsalgortme Dekompresjonsalgortme Lagrng eller oversendng Data Kompresjon Dekompresjon Data 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. F0 3.03.04 INF30 6

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 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. F0 3.03.04 INF30 7

De tre stegene kompresjon nndata transform kvantserng kodng utdata 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! F0 3.03.04 INF30 8

Meldng, nformasjon og data 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. F0 3.03.04 INF30 9

Redundans V kan bruke ulke mengder data på samme meldng. Anta meldngen er 3. Med ISO 8859- trengs 6 bter; «3» Med 8-bters naturlg bnærkodng trengs 8 bter; 00000 Med 4-bters naturlg bnærkodng trengs 4 bter; 0 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. F0 3.03.04 INF30 0

Ulke typer redundans Psykovsuell redundans. Det fnnes nformasjon v kke kan se. 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. Mer generelt: Irrelevant nformasjon: Unødvendg nformasjon for anvendelsen, f.eks. for vsuell betraktnng av hele bldet. Gtt som gjennomsnttlg kodelengde mnus et teoretsk mnmum. Velg en metode som er «gre» å bruke og gr lten kodngsredundans. F0 3.03.04 INF30

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: Også kalt plassbesparelse (eng. space savngs). Ofte oppgtt prosent. R Prosentverden kan kalles «percentage removed»: CR CR b c c b PR 00 R 00 c b F0 3.03.04 INF30

Kodng Alfabet: Mengden av alle mulge symboler (f.eks. alle mulge gråtoner). Ofte får hvert symbol får 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. F0 3.03.04 INF30 3

Naturlg bnærkodng Alle kodeord er lke lange. Symbolets kode er bnærrepresentasjonen tl symbolets (null-ndekserte) ndeks. Man legger tl 0-ere foran slk at koden får den ønskelge lengden. Eks: En 3-bters naturlg bnærkode har 8 mulge verder: Symbolndeks 0 3 4 5 6 7 Symbol s 0 s s s 3 s 4 s 5 s 6 s 7 Kode c 000 00 00 0 00 0 0 Naturlg bnærkodng er bare «optmal» hvs alle verdene sekvensen er lke sannsynlge. Med «optmal» menes her at kompresjonen er «best» mulg. F0 3.03.04 INF30 4

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. F0 3.03.04 INF30 5

Koder med varabel lengde Når symbolene forekommer med ulk sannsynlghet er det bedre å bruke kodeord med varabel lengde. Hyppge symboler kortere kodeord. Sjeldne symboler lengre kodeord. Dette var forretnngsdeen tl Samuel Morse; Morse-kode:. og mellomrom varer enhet, - varer 3 enheter De vanlgste symbolene engelsk tekst er: e, t, a, o,, n, 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 -. - - F0 3.03.04 INF30 6

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. F0 3.03.04 INF30 7

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. F0 3.03.04 INF30 8

Gjennomsnttlg antall bter per pksel V konstruerer en kode c 0,, c G- 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: F0 3.03.04 INF30 9 0 0 0... G G G p b p b p b p b c

Informasjonsnnhold Defner nformasjonsnnholdet I(s ) hendelsen s ved: I ( s ) log p log (x) er -er-logartmen tl x. Hvs log (x) = b så er x= b Eks: log (64)=6 ford 64= 6 (=*****) log (8)=3 ford 8=**= 3 log (tall) = log 0 (tall) / log 0 () log (/p ) gr oss nformasjonsnnholdet hendelsen: «symbolet s forekommer en gang», uttrykt bter. F0 3.03.04 INF30 0

Entrop Gjennomsnttlg nformasjonsnnhold sekvensen, også kalt gjennomsnttlg nformasjon per symbol, er da: H G 0 p I ( s ) G 0 p log p Hvs p(s )=0 lar v det tlhørende entropbdraget, 0log 0, være 0. 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. F0 3.03.04 INF30

Øvre og nedre grense for entrop Hvs alle symboler lke sannsynlge => entrop lk antall bter. Hvs det er G= b symboler alfabetet, og sannsynlgheten for hvert av dem er p = / b, så er entropen: H G 0 b log ( b ) log ( b ) b Altså: Hvs det er 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 0. Hvs bare ett symbol forekommer, er sannsynlgheten for dette symbolet lk, og alle andre sannsynlgheter er lk 0. Sden log () = 0 vl entropen da bl 0. F0 3.03.04 INF30

Entrop et bnært blde: To eksempler Anta v har et MN 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? Lke mange 0 som bldet (og ngen nterpksel-redundans): Informasjonsnnholdet hver mulg hendelse er da lke stort, derfor er entropen bt. 3 ganger så mange som 0 bldet (og ngen nterpksel-redundans): Mndre overraskende å få en og det skjer oftere. Entropen er da mndre: F0 3.03.04 INF30 3 * * ) / ( log ) / ( log H 8, 0 3, 0 5, 0 45, 0 * 4 3 * 4 ) 4 / 3 ( log 4 3 ) 4 / ( log 4 H

Entrop Entrop et bnært blde Entrop et bnært blde 0,5 0 0 0,5 0,5 0,75 A pror sannsynlghet for klasse Når v lagrer pkselverd for pkselverd vl v alltd måtte bruke bt per pksel et bnært blde, selv når entropen er nær 0! Kodngsredundansen er null når det er lke mange svarte og hvte pksler. F0 3.03.04 INF30 4

Shannon-Fano-kodng En enkel metode:.sorter symbolene etter hyppghet, hyppgst tl venstre..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 0, høyre gruppe tlordnes. 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() 0 H () H, A, O (3) 0 A, O () 0 A () O () Symbol Ant. Kodeord Lengde Antall bter L 0 H 0 A 0 3 3 O 3 3 Totalt antall bter 0 F0 3.03.04 INF30 5

Shannon-Fano-kodng 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. H, A, L, O (5) 0 L, H (3) A, O () 0 0 L () H () A () O () Generelt for Shannon-Fano-kodng er gjennomsnttlg antall bter per symbol er relatert tl entropen: H c H+ Øvre grense for kodngsredundans: bt per symbol Symbol Ant. Kodeord Lengde Antall bter L 00 4 H 0 A 0 O Totalt antall bter 0 F0 3.03.04 INF30 6

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. F0 3.03.04 INF30 7

Huffman-kodng: Algortmen Gtt en sekvens med N symboler:. Sorter symbolene etter sannsynlghet, slk at de mnst sannsynlge kommer sst.. Slå sammen de to mnst sannsynlge symbolene tl en gruppe, og sorter gjen etter sannsynlghet. 3. Gjenta tl det bare er to grupper gjen. 4. G koden 0 tl den ene gruppen og koden tl den andre. 5. Traverser nnover begge gruppene og legg tl 0 og bakerst kodeordet tl hver av de to undergruppene. F0 3.03.04 INF30 8

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 0,3 0,3 0,3 0, 0, 0,05 Slå sammen de to gruppene som har mnst sannsynlghet, Den nye gruppens sannsynlghet er summen av de forrge. 0,5 Fnn de to som nå har mnst sannsynlghet, og slå dem sammen på samme måte. 0,5 0,4 Fortsett tl det er bare to gjen. 0,6 F0 3.03.04 INF30 9

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 0,3 0,3 0,3 0, 0, 0,05 Gå baklengs gjennom bnærtreet og tlordne 0 eller tl hver gruppe. (F. eks. kode 0 tl den mest sannsynlg og kode tl den mnst sannsynlge) 0 0,6 0,5 0 0,5 0 0,4 0 F0 3.03.04 INF30 30 0

Eksempel: Huffman-kodng V får dermed følgende kodebok: Sden sannsynlghetene er: blr gjennomsnttlg antall bter per symbol: Entropen H er her ltt mndre enn c: F0 3.03.04 INF30 3 Begvenhet A B C D E F Huffman-kodeord 00 0 00 0 0 Sannsynlghet 0,3 0,3 0,3 0, 0, 0,05 4, 3 4, 0 6, 0 0 0 0 G G G p b p b p b p b c 34, log 0 G p p H

Huffman-kodng: Kodngsredundans Shannon-Fano-koder har en øvre grensen for kodngsredundans på 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 max log 0, 086 Kodngsredundansen tl Huffman-koder blr større ettersom p max nærmer seg ; selv om p max er mye større enn 0,5 så må v bruke bt på å kode det tlhørende symbolet! log e e p max F0 3.03.04 INF30 3

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= b kodeord og det lengste kodeordet kan ha opptl G- bter. F0 3.03.04 INF30 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 0,34 0,9 0,4 0, 0, 0,0 Huffman-kodeord 00 0 00 0 0 Kodeordlengde 3 3 3 3 Entrop-bdrag 0,59 0,455 0,397 0,367 0,350 0,33 Det gjennomsnttlge antall bter per symbol, c, er gtt ved: G c b p 0, 53 3 0, 47, 47 0 Entropen H er gjen ltt mndre enn c: H G p log p, 43 0 Kodngsredundansen c-h er dermed: c H, 47, 43 0, 04 F0 3.03.04 INF30 34

antall bter per symbol Ideell og faktsk kodeord-lengde Hvs gjennomsnttlg antall bter per symbol, c, skal være lk entropen, H, så må: G G c b p p log p H 0 0 Informasjonsnnholdet I(s ) hendelsen s angr altså den deelle bnære kodeordlengden for symbol s : b I ( s ) log p 3 Plotter den deelle lengden på kodeordene (vst blått) sammen med de faktske kodeordlengden (vst rødt) for forrge eksempel, får v: 0 0 6 ^ e t a o F0 3.03.04 INF30 35

Når gr Huffman-kodng ngen kodngsredundans? Den deelle bnære kodeordlengden for symbol s er: b = -log (p ) Sden bare heltalls kodeordlengder er mulg, er det bare når p k for et heltall k som dette kan tlfredsstlles. Eksempel: Hvs meldngen har sannsynlghetene: Symbol s 0 s s s 3 s 4 s 5 Sannsynlghet 0,5 0,5 0,5 0,065 0,035 0,035 Huffman-kodeord 0 0 0 0 0 er gjennomsnttlg btforbruk per symbol etter Huffman-kodng: c =,9375 = H der H er entropen. Altså får v ngen kodngsredundans! F0 3.03.04 INF30 36

Artmetsk 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 (0,0 D <,0). Kan oppnå bedre kompresjon enn Huffman-kodng. Entropen setter kke en nedre grense for btforbruket. Men setter faktsk fortsatt en nedre grense for gjennomsnttet! Resulterer et btforbruk per symbol som er nær entropen. F0 3.03.04 INF30 37

Artmetsk kodng vs Huffman-kodng. Defner antall symboler alfabetet, G, og antall symboler sekvensen, N.. Gjenta 00 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. d. Beregn kodngsredundansen for etter artmetsk kodng og etter Huffman-kodng. 3. Beregn maksmum, gjennomsnttlg og mnmum kodngsredundans. Med G=4 symboler alfabetet. Med G=0 symboler alfabetet. F0 3.03.04 INF30 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. Med G=4 symboler alfabetet. Med G=0 symboler alfabetet. F0 3.03.04 INF30 39

Artmetsk kodng: Grunntanke Symbolsannsynlghetene summerer seg tl. Dermed defnerer de en oppdelng av ntervallet [0, ). 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. Tlsvarende for flere symboler etter hverandre. Resultat: Et halvåpent delntervall av [0, ). Fnner så en btsekvens som representerer ntervallet. F0 3.03.04 INF30 40

Eksempel: Artmetsk kodng Sannsynlghetsmodell: P(a )=P(a )=P(a 4 )=0, og P(a 3 )=0,4 Meldng/symbolsekvens: a a a 3 a 3 a 4 a lgger ntervallet [0, 0,) a a lgger ntervallet [0,04, 0,08) a a a 3 lgger ntervallet [0,056, 0,07) a a a 3 a 3 lgger ntervallet [0,064, 0,0688) a a a 3 a 3 a 4 lgger ntervallet [0,0675, 0,0688) F0 3.03.04 INF30 4

Artmetsk kodng: Algortmen. La «current nterval» = [0, ).. 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. F0 3.03.04 INF30 4

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. F0 3.03.04 INF30 43

AK: Kodngseksempel Modell: Alfabet [a, b, c] med sannsynlgheter [0,6, 0,, 0,]. Hvlket delntervall av [0, ) vl entydg representere meldngen acaba? a lgger ntervallet [0, 0,6). «Current nterval» har nå en bredde på 0.6. ac lgger ntervallet [0+0,6*0,8, 0+0,6*) = [0,48, 0,6). Intervallbredden er nå 0, (= produktet 0,6*0,). aca lgger ntervallet [0,48+0,*0, 0,48+0,*0,6) = [0,48, 0,55). Intervallbredden er 0,07 (= produktet 0,6*0,*0,6). acab er [0,48+0,07*0,6, 0,48+0,07*0,8) = [0,53, 0,5376). Intervallbredden er 0,044 (= produktet 0,6*0,*0,6*0,). acaba er [0,53+0,044*0, 0,53+0,044*0,6) = [0,53, 0,5384). Intervallbredden er nå 0,00864 (= produktet 0,6*0,*0,6*0,*0,6). Et tall ntervallet, f.eks. 0,535, vl entydg representere acaba, forutsatt at mottakeren har den samme modellen og vet når å stoppe. F0 3.03.04 INF30 44

AK: Dekodngseksempel Anta at v skal dekode tallet 0,535. Samme modell: Alfabet [a, b, c] med sannsynlgheter [0,6, 0,, 0,]. La [0, ) være «current nterval». Del ntervallet ht. modellen; a er [0, 0,6), b er [0,6, 0,8) og c er [0,8, ). Tall 0,535 lgger delntervallet for a, [0, 0.6): => Første symbol: a [0, 0,6) er nå «current nterval». Del dette opp henhold tl modellen: delntervallet for a er [0, 0,36) bredden er 60% av [0, 0,6) delntervallet for b er [0,36, 0,48) bredden er 0% av [0, 0,6) delntervallet for c er [0,48, 0,6) bredden er 0% av [0, 0,6) Tall 0,535 lgger delntervallet [0,48, 0,6): => Andre symbol: c [0,48, 0,6] er nå «current nterval». Del dette opp henhold tl modellen: delntervallet for a er [0,48, 0,55) delntervallet for b er [0,55, 0,576) delntervallet for c er [0,576, 0,6) Tall 0,535 lgger delntervallet [0,48, 0,55): => Tredje symbol: a F0 3.03.04 INF30 45

AK: Dekodngseksempel Anta at v skal dekode tallet 0,535. Samme modell: Alfabet [a, b, c] med sannsynlgheter [0,6, 0,, 0,]. [0,48, 0,55] er nå «current nterval». Del dette opp ht. modellen: delntervallet for a er [0,48, 0,53) delntervallet for b er [0,53, 0,5376) delntervallet for c er [0,5376, 0,55) Tall 0,535 lgger delntervallet [0.53, 0.5376): => 4. symbol: b V deler opp ntervallet [0,53, 0,5376) for å fnne neste symbol: delntervallet for a er [0,53, 0,5384) delntervallet for b er [0,5384, 0,5347) delntervallet for c er [0,5347, 0,5376) Tall 0,535 lgger delntervallet [0,53, 0,5384): => 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. F0 3.03.04 INF30 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 [0, ) kan skrves som en veet sum av negatve toerpotenser: D = d - + d - + d 3-3 + + d n -n + der hver d er enten 0 eller. Rekken av koeffsenter d d d 3 d 4 er btsekvensen som representerer desmaltallet D. V skrver at: D = 0,d d d 3 d 4 der ndkerer at tallet er skrevet totallsystemet. F0 3.03.04 INF30 47

Desmaltall som btsekvens Stuasjon: V har et desmaltall [0, ) som v ønsker å skrve totallsystemet. Løsnng: Suksessv multplkasjon med :. Multplser begge sder av følgende lknng med : D = d - + d - + d 3-3 + + d n -n + Heltallsdelen av resultatet er da lk c ford: D = d +Q, der Q = d - + d 3 - + + d n -(n-) + Hvs resten Q er 0, så er v ferdge.. Multplser resten Q med. Heltallsdelen av produktet er neste bt og Q oppdateres tl å være den nye resten. 3. Hvs resten Q er 0, så er v ferdge. Ellers går v tl. F0 3.03.04 INF30 48

Representasjon av ntervall Spørsmålet var: Hvordan kan v representere ntervallet ved bruk av færre mulg bter? Eksempel: Intervallet er [0,53, 0,5384). 0,535 0 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? 0,535 0 = 0,000 sden: *0,535 =,065 => d =, rest = 0,065 *0,065 = 0,5 => d = 0, rest = 0,5 *0,5 = 0,5 => d 3 = 0, rest = 0,5 *0,5 = 0,50 => d 4 = 0, rest = 0,5 *0,5 =,0 => d 5 =, rest = 0 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? F0 3.03.04 INF30 49

Eksempel: Representasjon av ntervall Fnn kortest mulg d=0,d d d 3... nnenfor ntervallet [0,6, 0,7). Hvs n k så er: -k+ = -(k-) > d k -k + + d n -n sden d er 0 eller. Derfor er: D = 0, => 0,5 D < D = 0,0 => 0,5 D < 0,75 D = 0,00 => 0,5 D < 0,65 D = 0,0 => 0,65 D < 0,75 => Intervall kan kodes ved det bnære kommatallet 0,0 (ekvvalent med 0,65 0 ), altså med bare 3 bter. Hvs v vl kreve at øvre og nedre grense er nnenfor ntervallet; ntervallet kan kodes ved 0,00 ford: D = 0,00 => 0,65 D < 0,6875 F0 3.03.04 INF30 50

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. F0 3.03.04 INF30 5

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! F0 3.03.04 INF30 5

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:. Transform.. 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. F0 3.03.04 INF30 53