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

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

INF2310 Digital bildebehandling

UNIVERSITETET I OSLO

Komprimering av bilder

INF 1040 Kompresjon og koding

INF 1040 Kompresjon og koding

INF 1040 Kompresjon og koding

Dynamisk programmering. Hvilke problemer? Overlappende delproblemer. Optimalitetsprinsippet

INF 2310 Digital bildebehandling

Geometriske operasjoner

Dynamisk programmering. Hvilke problemer? Overlappende delproblemer. Optimalitetsprinsippet

Anvendelser. Kapittel 12. Minste kvadraters metode

Eksamen i emne SIB8005 TRAFIKKREGULERING GRUNNKURS

Geometriske operasjoner

MA1301 Tallteori Høsten 2014

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

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

TMA4240/4245 Statistikk Eksamen august 2016

IT1105 Algoritmer og datastrukturer

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

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

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

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

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)

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

TMA4265 Stokastiske prosesser

Statistikk og økonomi, våren 2017

STK desember 2007

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

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

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

INF 1040 Løsningsforslag til kapittel

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

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

Oppvarming og innetemperaturer i norske barnefamilier

UNIVERSITETET I OSLO

INF2310 Digital bildebehandling

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

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

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

Seleksjon og uttak av alderspensjon fra Folketrygden

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

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

Sorterings- Algoritmer

Forelesning nr.3 INF 1411 Elektroniske systemer

ØVINGER 2017 Løsninger til oppgaver

Løsningsforslag øving 10 TMA4110 høsten 2018

UNIVERSITETET I OSLO

Alternerende rekker og absolutt konvergens

Løsningsforslag ST2301 Øving 8

Repetisjon: Kompresjon

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

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

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

da INF 2310 Digital bildebehandling

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

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

MSKOMNO. kó=ñê~w. pfabufp=ud. aáöáí~ä=ê åíöéå=l=îáçéçjëçñíï~êé=j=sfabufp hçêí=äêìâë~åîáëåáåö= kçêëâ

Forelesning 17 torsdag den 16. oktober

EKSAMEN Ny og utsatt Løsningsforslag

INF2810: Funksjonell Programmering. Huffman-koding

system 16 mm / 25 mm / 32 mm MONTERINGSVEILEDNING

Jobbskifteundersøkelsen Utarbeidet for Experis

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

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

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

Anvendelser. Kompresjon. Noen begreper. INF 2310 Digital bildebehandling

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

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

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

Investering under usikkerhet Risiko og avkastning Høy risiko. Risikokostnad prosjekt Snøskuffe. Presisering av risikobegrepet

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

Alvdal Royal kledning

EKSAMEN ny og utsatt løsningsforslag

Anvendelser. Noen begreper. Kompresjon

MoD233 - Geir Hasle - Leksjon 10 2

Repetisjon: Kompresjon

INF 2310 Digital bildebehandling

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

Studieprogramundersøkelsen 2013

INF2810: Funksjonell Programmering. Huffman-koding

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

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

INF 2310 Digital bildebehandling

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

Veiledning til obligatorisk oppgave i ECON 3610/4610 høsten N. Vi skal bestemme den fordeling av denne gitte arbeidsstyrken som

Repetisjon: Kompresjon

Anvendelser. Noen begreper. Kompresjon. INF 2310 Digital bildebehandling

1653B/1654B. Installasjonstest på et IT anlegg i drift

INF2310 Digital bildebehandling

Dynamisk programmering. Hvilke problemer? Optimalitetsprinsippet. Overlappende delproblemer

IN1 Audio Module. Innføring og hurtigreferanse

Repetisjon: Kompresjon

Forelesning nr.3 INF 1410

Terrasser TRAPPER OG REKKVERK LAG DIN EGEN UTEPLASS! VÅRE PRODUKTER HAR LANG LEVETID OG DU VIL HA GLEDE I DET DU HAR BYGGET I MANGE ÅR FREMOVER

Norske CO 2 -avgifter - differensiert eller uniform skatt?

Løsning til seminar 3

Bente Halvorsen, Bodil M. Larsen og Runa Nesbakken

Transkript:

IF 4 Komresjon og kodng Tema dag :. oen begreer. Redundans 3. Dfferanse- og løelengdetransformer 4. Gray kode 5. Entro 6. Shannon-Fano og Huffman kodng 7. Lemel-Zv kodng 8. JPEG kodng Pensumltteratur: Læreboka, kattel 8. este gang: Kryterng og steganograf (v/ Gerhard Skagesten) IF4-Komresjon- Komresjon Komresjon kan deles nn tre steg: Transform - reresenter dataene mer komakt. Kvantserng - avrundng av reresentasjonen. Kodng - roduksjon og bruk av kodebok. nndata transform kvantserng kodng utdata Komresjon kan gjøres Eksakt / tasfr ( loss-less ) følg de grønne lene Her kan v rekonstruere den orgnale meldngen eksakt. Ikke-tasfr ( lossy ) følg de røde lene Her kan v kke rekonstruere meldngen eksakt. Resultatet kan lkevel være godt nok. Det fnnes en mengde ulke metoder for begge kategorer komresjon. IF4-Komresjon-3 oen begreer Komresjonsalgortme Dekomresjonsalgortme Data Lagrng eller Komresjon oversendng Dekomresjon Data Komresjon består å akke nformasjonsnnholdet dataene (tekst, blde, lydsgnaler etc.) å en så komakt måte at redundant nformasjon kke lagres. Dataene komrmeres, deretter lagres de. år de senere skal leses, må v dekomrmere dem. Kodng er en del av komresjon, men v koder for å lagre effektvt, kke for å hemmelgholde eller skjule nformasjon. IF4-Komresjon- De tre stegene komresjon nndata transform kvantserng kodng utdata Mange komresjons-metoder er basert å å reresentere dataene å en annen måte, altså transformer av orgnal-dataene. Dfferansetransform løelengder/run-length, Hvs v kvantserer orgnal - dataene, så kan kke dette reverseres. Kodng bygger ofte å sannsynlghetsfordelnger, Estmert ved normalserte hstogrammer. Transformer og kodng er alltd reversble. Kvantserng gr alltd et ta av ressjon. IF4-Komresjon-4

Anvendelser Komresjon og kodng benyttes for å redusere antall bter som skal tl for å beskrve bldet (eller en god aroksmasjon tl bldet). Anvendelser nnen data-lagrng og data-overførng Televdeo-konferanser Fjernanalyse / meteorolog Overvåkng / fjernkontroll Telemedsn / medsnske arkver (PACS) Dokumenthåndterng / FAX Multmeda / nettverkskommunkasjon Mobl kommunkasjon MP3-sllere, DAB-rado, dgtalkameraer,. Tdsforbruket ved off-lne komresjon er kke særlg vktg. Dekomresjons-tden er langt vktgere. Ved sanntds data-overførng er tdsforbruket krtsk. IF4-Komresjon-5 Meldng, data og nformasjon V skller mellom resentasjon, reresentasjon og nformasjon: Meldng: teksten, bldet eller lydsgnalet som resenteres. Data: strømmen av bter som lagres eller sendes (reresentasjon). Informasjon: Et matematsk begre som kvantfserer mengden overraskelse/uventethet en meldng. Et sgnal som varerer har mer nformasjon enn et monotont sgnal. I et blde: kanter rundt objekter har høyest nformasjonsnnhold, seselt kanter med mye krumnng. IF4-Komresjon-7 Overførngskaastet og bs Flstørrelser er oftest gtt bnære enheter, gjerne otenser av 4: Kbbyte (KB = byte = 4 byte), Mebbyte (MB = byte = 48 576 byte), Gbbyte (GB = 3 byte = 73 74 84 byte) Overførngshastgheter og lnjekaastet angs alltd ttallsystemet, oftest som antall bter er sekund: kb/s = b/s = 3 bter er sekund. Mb/s = kb/s = 6 bter er sekund. Gb/s = Mb/s = 9 bter er sekund. Kaastet for noen tyer lnjer: GPRS over GSM moblnett: 9,5 kb/s Analogt modem: f.eks. 56 kb/s ADSL (Asymmetrc Dgtal Subscrber Lne):,5-4 Mb/s nedlastng IF4-Komresjon-6 Komresjon av blder Hvorfor behandles komresjon av blder seselt? Det er generelt en mengde redundant nformasjon blder mellom ksler å samme lnje mellom ulke lnjer bldet mellom bldene en sekvens Blder nneholder gjerne objekter Objekter kan ofte reresenteres mer komakt. V kan også ta betraktnng sykovsuelle effekter: V lagrer kke det v lkevel kke kan ofatte IF4-Komresjon-8

Ulke tyer redundans Psykovsuell/sykoakustsk redundans Det fnnes nformasjon v kke kan høre eller se (se kattel, og 6 ). Interblde redundans Det er en vss lkhet mellom blder som kommer etter hverandre en sekvens V koder noen blder sekvensen, og deretter bare dfferanser (kattel 6). Intersamel redundans abo-symboler, - amltuder, -ksler lgner å hverandre eller er lke. Eks: 66 kan run-length kodes som (,4),(,3),(6,),(,) Kodngs-redundans Gjennomsnttlg kodelengde mnus et teoretsk mnmum. Eks: 553555635535 - Huffman-kodng bruker færrest bter å å kode 5-tallet, som forekommer ofte, og flere bter for 6-tallet. Hvor godt er dette? IF4-Komresjon-9 Dfferansetransform Gtt en lnje bldet med gråtoner f,...f, f b -. Transformer (reversbelt) tl g = f, g = f -f, g 3 = f 3 -f,..., g = f -f - V trenger nå b+ bter hvs v skal tlordne lke lange bnære koder tl alle mulg verder. dfferansehstogrammet vl de fleste verdene samle seg rundt. Derfor er det kke slk at en naturlg bt-kodng av dfferansene er det otmale. IF4-Komresjon- Komresjonsrate og redundans Komresjonsrate ( Comresson Rato ): CR c er antall bter r. samel orgnalt, c er antall bter r. samel det komrmerte bldet. Relatv Redundans : RR CR c Percentage Removed : PR c % IF4-Komresjon- Ltt mer om dfferansetransform Lag f.eks. en 6 ords naturlg kode c =, c =,... c 6 = tlordne de 4 kode-ordene mdten: c,... c 5 tl dfferansene -7, -6,..., -,,,,..., 5, 6 Kodene c og c 6 kan brukes tl å ndkere om dfferansen x < -7 eller om x 7 (to-sdet shft-kode) x = => c 6 c 6 c x = - => c c c 5 - - -8-7 6 7 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 trnnvs med 4 bter. ee helt otmalt forhold tl dfferansehstogrammet. Alternatvt kan v kode dfferansene ved hjel av andre kodeteknkker. IF4-Komresjon-

Løelengde-transform (run-length) Ofte nneholder bldet objekter med lgnende gråtoner, f.eks. svarte bokstaver å hvt bakgrunn. V kan benytte oss av komresjonsteknkker som tar hensyn tl at naboksler å samme lnje ofte er lke. Løelengde-transform er reversbel. Først et eksemel: 333333555555555544777777 (4 byte) år tallet 3 forekommer 6 ganger etter hverandre, trenger v bare lagre tallaret (3,6). Tlsammen trenger v her 4 tallar, (3,6), (5,), (4,), (7,6) altså 8 tall tl å lagre hele sekvensen 4 tall ovenfor. Hvor mange bter v bruker r. tall, avhenger av den vdere kodngen. IF4-Komresjon-3 Kodng Et alfabet er mengden av alle mulge symboler (eks. gråtoner) Hvert symbol får et kode-ord, tl sammen er de en kode-bok. Kodng skal være reversbel fra koden skal v kunne rekonstruere det orgnale symbolet Unkt dekodbare koder har den egenska at en mottatt sekvens av kode-ord kan dekodes å en og bare en måte. Instantant dekodbare koder kan dekodes uten sklletegn. IF4-Komresjon-5 Løelengder bnære blder I to-nvå blder trenger v bare å ang løelengden for hvert run, forutsatt at v vet om lnjen starter med et hvtt eller et svart run. V trenger kodeord for EOL og EOI. Run-lengde hstogrammet er ofte kke flatt. Benytter da en kode som gr korte kode-ord tl de hygste run-lengdene. En standard (CCITT) Huffman kode basert å dokument-statstkk brukes for dokument-overførng r fax. Egen kodebok for svarte og hvte runs. Mer effektv dersom komleksteten er lav. IF4-Komresjon-4 aturlg bnær-kodng aturlg bnær-kodng: Alle kode-ord er lke lange. Kjenner v noen eksemler å dette? Eks: v har 8 mulge verder Symbol nr. 3 4 5 6 7 8 Symbol s s s 3 s 4 s 5 s 6 s 7 s 8 Kode c aturlg bnærkodng er bare otmal hvs alle verdene sekvensen er lke sannsynlge. IF4-Komresjon-6

Gray code Er den konvensjonelle bnære reresentasjonen av gråtoner otmal? La oss se å et ett-bånds gråtone-blde med b bter Kan sees som et b-bånds bnært blde V ser at bldet har b bt-lan. Ønskelg med mnst mulg komlekstet hvert bt-lan Da blr løelengde-transformasjonen mest effektv. Konvensjonell bnær reresentasjon gr høy bt-lan komlekstet. Hvs gråtoneverden fluktuerer mellom k - og k vl k+ bter skfte verd: eksemel: 7 = mens 8 = I Gray Code skfter alltd bare en bt når gråtonen endres med. Overgangen fra bnær kode tl gray code er en transformasjon, men både naturlg bnær kode og gray code er selvsagt koder. IF4-Komresjon-7 Gray kode gråtoneblder MSB er lkt de to reresentasjonene. Gray kode Vanlg bnær Gray kode Vanlg bnær Større homogene områder hvert btlan Gray-kode enn naturlg bnærkode. Flere btlan med støy vanlg bnærkode. Det er en gevnst løelengdekodng av btlan Gray kode. IF4-Komresjon-9 Bnary reflected gray code 4 bter Gray kode og bnær Gray Bnær Desmal g b d 3 4 5 6 7 8 9 3 4 5 Gray code shaft encoder Gr skker avlesng av vnkel. Emle Baudot s telegrafskve 878. Koden atentert av Gray 953. Brukes styrng av robot-armer etc. IF4-Komresjon-8 Informasjonsteor og kodng Komresjon/kodng bygger å nformasjonsteor og sannsynlgheter. Hvs et symbol forekommer ofte, bør v lagre det med et lte antall bter for å bruke mnst mulg lagerlass tl sammen. Hvs et symbol forekommer sjeldent, kan v tllate oss å bruke mange bter å å lagre det. V vl bruke et varabelt antall bter er symbol. Dette skller seg fra lagrng med lke mange bter er symbol. IF4-Komresjon-

Koder med varabel lengde For symboler med ulke sannsynlgheter er koder med varabel lengde å kode-ordene bedre enn lke lange koder Hyge symboler kortere kode-ord. Sjeldne symboler lengere kode-ord. Dette var forretnngs-deen tl Samuel Morse A. - F.. -. K -. - P. - -. U.. - De vanlgste symbolene engelsk tekst er e, t, a, o,, n, B -... G - -. L. -.. Q - -. - V... - C -. -. H.... M - - R. -. W. - - D -.. I.. -. S... X -.. - E. J. --- O --- T - Y -. -- IF4-Komresjon- Hstogrammet tl en sekvens av symboler V har en sekvens med symboler. Tell o 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: = n / Dette er det normalserte hstogrammet. IF4-Komresjon-3 Entro en lten forsmak Entro er et matematsk mål å gjennomsnttlg nformasjonsmengde en sekvens av tegn eller tall. Har v en sekvens av tegn som lagres med b bter er samel, så kan v s v har et alfabet med b mulge symboler. V er nteressert gjennomsnttlg nformasjon r. symbol. Intutvt vl en mndre sannsynlg hendelse g mer nformasjon enn en mer sannsynlg hendelse. IF4-Komresjon- Gjennomsnttlg antall bter r. symbol V konstruerer en rekke kodeord c,...c slk at symbol s kodes med kodeordet c. b er lengden (angtt bter) av kodeordet c. Gjennomsnttlg antall bter r. symbol for denne koden er: R b b... b b Entroen H vl g oss en nedre grense for hvor mange bter v gjennomsnttlg trenger er symbol (hvs v bare koder ett symbol av gangen). IF4-Komresjon-4

Informasjonsnnhold V defner nformasjonsnnholdet I(s ) hendelsen s ved I ( s ) log ( s ) Dette gr oss nformasjonsnnholdet den hendelsen det er at symbolet s forekommer én gang, uttrykt bter. 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 Har kke log å kalkulatoren, hjel! log (tall) = log (tall) / log () ( log ().3 ) IF4-Komresjon-5 Øvre og nedre grense for entro Hvs alle symboler lke sannsynlge => entro lk antall bter. Det er b symboler sannsynlgheten for hvert av dem er (s ) = / b. Da blr entroen b H log b ( ) log ( b b Husk at: Hvs det er b symboler som alle er lke sannsynlge, så kan v kke reresentere dem mer komakt enn med b bter er symbol. ) b Hvs alle kslene er lke => entro lk. Hvs bare ett symbol forekommer, er sannsynlgheten for dette symbolet lk, og alle andre sannsynlgheter er lk. H log () IF4-Komresjon-7 Entro Hvs v tar gjennomsnttet over alle symbolene s alfabetet, får v gjennomsnttlg nformasjon er symbol: Entro H: H b ( s b ) I ( s ) ( s )log ( ( s )) Entroen setter en nedre grense for hvor komakt sekvensen kan reresenteres Dette gjelder hvs v bare koder hvert symbol for seg. IF4-Komresjon-6 To eksemler Et bnært blde med M ksler nneholder bt er ksel. Det er M bter data bldet, men hvor mye nformasjon er det bldet? Hvs det er lke mange som bldet, så er det lke stor sannsynlghet for at neste ksel er som. Informasjonsnnholdet hver mulg hendelse er da lke stort, og entroen tl et nytt symbol er bt. H log / / ( ) log ( ) Hvs det er 3 ganger så mange som bldet, så er det mndre overraskende å få en, og det skjer oftere. Entroen er da mndre: H 4 log / 3 4 3/ 4 ( ) log ( ).45.5.3 4 4 3 4.8 For de matte-nteresserte! IF4-Komresjon-8

Entro bnært blde Entro et bnært blde,5 Entro,5,5,75 A ror sannsynlghet for klasse V vl alltd måtte bruke bt er ksel et bnært blde, selv om entroen godt kan bl nær null! Hvs det er lke mange svarte og hvte ksler, er kodngs-redundansen = IF4-Komresjon-9 Shannon-Fano kodng - II Odelng omtrent lke store gruer kan g flere forskjellge bnære trær: H, A, L, O (5) Samme eksemel: HALLO L, H (3) A, O () Selv om treet er annerledes, og kodeboken blr forskjellg, så er koden unkt dekodbar. L () H () A () O () HALLO = Symbol Ant. Kodeord Lengde Antall bter V har altså L 4 flere lkeverdge løsnnger. H A O Totalt antall bter IF4-Komresjon-3 Shannon-Fano kodng En enkel metode: Sorterer symbolene etter hyghet. Deler symbolene rekursvt to omtrent lke store gruer. Fortsett tl hver grue er ett symbol. Tlordner en bt tl hver gren treet tl høyre, tl venstre. L() H, A, L, O (5) H () H, A, O (3) A, O () A () O () Traverser treet fra rot tl blad Fnner koden for hvert symbol. Symbol Ant. Kodeord Lengde Antall bter L Eksemel: HALLO = H A 3 3 Koden er unkt dekodbar. O 3 3 Totalt antall bter IF4-Komresjon-3 Huffman-kodng Huffman-kodng er en algortme for otmal kodng med varabel-lengde koder. Huffman-kodng er basert å at v kjenner hygheten for hvert symbol Dette betyr at v må lage et hstogram. Ofte beregner v sannsynlghetene Men det holder at v kjenner hyghetene. Huffman-koden er unkt dekodbar. IF4-Komresjon-3

Framgangsmåte - Huffman-kodng Gtt en sekvens med symboler:. Sorter symbolene etter sannsynlghet, slk at de mnst sannsynlge kommer sst.. Slå sammen de to mnst sannsynlge symbolene en grue, og sorter gjen etter sannsynlghet. 3. Gjenta tl det bare er to gruer gjen. 4. G kodene og tl de to gruene. Kode tl den mest og tl den mnst sannsynlge av de to 5. Traverser bakover, og legg tl og kodeordet for de to mnst sannsynlge gruene hvert steg. IF4-Komresjon-33 Eksemel - Huffman-kodng Gtt 6 begvenheter A, B, C, D, E, F med sannsynlgheter Begvenhet A B C D E F Sannsynlghet.3.3.3...5 Gå baklengs gjennom strukturen og tlordne eller tl hver grue. (F. eks. kode tl den mest sannsynlg og kode tl den mnst sannsynlge).5.4.5.6 Kode Kode IF4-Komresjon-35 Eksemel - Huffman-kodng Gtt 6 begvenheter A, B, C, D, E, F med sannsynlgheter Begvenhet A B C D E F Sannsynlghet.3.3.3...5 Slå sammen de to mnst sannsynlge, slå også sammen sannsynlgheten deres.5 Fnn så de to som nå er mnst sannsynlge, og slå dem sammen å samme måte.5.4 Fortsett tl det er bare to gjen.6 IF4-Komresjon-34 Kodeboken Dette gr følgende kodebok Begvenhet A B C D E F Kode Med sannsynlghetene.3.3.3...5 blr gjennomsnttlg antall bter r. symbol (R) for denne koden: (se fol 4) R b b... b b.6.4 3.4 Entroen H er her mndre enn R (se fol 6): H b ( s )log ( ( )) s.34 IF4-Komresjon-36

Om Huffman-kodng Ingen kode-ord danner refks en annen kode Dette skrer at en sekvens av kodeord kan dekodes entydg. Man trenger IKKE ende-markører. Mottatt kode er nstantant (øyeblkkelg) dekodbar. Dette gjelder også Shannon-Fano og naturlg bnærkodng. Hyge symboler har kortere koder enn sjeldne symboler. Dette gjelder også for Shannon-Fano. De to mnst sannsynlge symbolene har lke lange koder. Sste bt skller dem fra hverandre. Merk at kodeboken må overføres! IF4-Komresjon-37 Lemel-Zv-kodng Premerer mønstre dataene. Ser å samforekomster av symboler. Bygger o en symbolstreng-lste både under komresjon og dekomresjon. Denne lsten skal kke lagres eller sendes, for mottakeren kan bygge o lsten ved hjel av den symbolstrengen han mottar. Det eneste man trenger er et standard alfabet (f.eks ASCII). IF4-Komresjon-39 Huffman-kodng rakss Den deelle bnære kode-ord lengden for symbol s er b = - log ((s )) Sden bare heltalls ordlengder er mulg, er det bare hvs ( s ) k for heltalls k at dette er tlfelle. Eksemel: hvs v har : Symbol s s s 3 s 4 s 5 s 6 Sannsynlghet.5.5.5.65.35.35 Kode så blr den gjennomsnttlg ordlengden her R =.9375 = H. IF4-Komresjon-38 Eksemel å Lemel-Zv Anta at alfabetet er a, b og c som tlordnes kodene, og 3. La dataene være ababcbababaaaaabab (8 tegn) sender: lager ny frase = sendt streng luss neste usendte symbol mottaker: lager ny frase = nest sste mottatte streng luss første symbol sst tlsendte streng Ser Sender Senders lste Mottar Tolker Mottakers lste a=,b=,c=3 a=, b=, c=3 a ab=4 a b ba=5 b ab=4 ab 4 abc=6 4 ab ba=5 c 3 cb=7 3 c abc=6 ba 5 bab=8 5 ba cb=7 bab 8 baba=9 8 å har v mottatt en kode (8) som kke fnnes lsten. V vet at kode 8 ble laget som ba+?, og så ble kode 8 sendt. Ergo må v ha? = b => 8 = ba + b = bab. IF4-Komresjon-4

Eksemel å Lemel-Zv - II Ser Sender Senders lste Mottar Tolker Mottakers lste a=,b=,c=3 a=, b=, c=3 a ab=4 a b ba=5 b ab=4 ab 4 abc=6 4 ab ba=5 c 3 cb=7 3 c abc=6 ba 5 bab=8 5 ba cb=7 bab 8 baba=9 8 bab bab=8 a aa= a baba=9 aa aaa= aa aa= aa aab= aa aaa= bab 8 8 bab aab= Kode ble laget det = a ble sendt, som a+?. Så sendes. Da må v ha = a+a = aa. Istedenfor 8 tegn er det sendt koder. 5 av roduserte koder ble kke brukt dette eksemlet. IF4-Komresjon-4 Ikke-tasfr (lossy) komresjon For å få høye komresjonsrater, er det ofte nødvendg med kke-tasfr komresjon. Ulemen er at man kke kan rekonstruere det orgnale bldet, ford et nformasjonsta har skjedd. Enkle metoder for kke-tasfr komresjon er rekvantserng tl færre antall gråtoner, eller resamlng tl dårlgere romlg oløsnng. Andre enkle metoder er flterng der f.eks. 3 3 ksler erstatter med ett nytt ksel som er enten mddelverden eller medanverden av de ornnelge kselverdene. Husk: V klarer oss med lavere oløsnng kromas-komonentene. IF4-Komresjon-43 JPEG-kodng (tasfr) JPEG (Jont Photograhc Exert Grou) er et av de vanlgste bldeformatene med komresjon. JPEG-standarden har varanter både for tasfr og kke-tasfr komresjon. JPEG kan bruke enten Huffman-kodng eller en varant av unversell kodng kalt artmetsk kodng. Predktv kodng brukes for å redkere at neste ksel å samme lnje har lgnende verd som forrge ksel å redkere at en ksel har lgnende verd som kselen å lnjen over å redkere at neste ksel å lnjen har lgnende verd som de tre nærmest kslene Tyen kodng bestemmes fra blde tl blde IF4-Komresjon-4 Lossy JPEG-komresjon av gråtoneblde Bldet deles o blokker å 8 8 ksler, og hver blokk kodes searat. Subtraher 8 fra alle kselverdene. Hver blokk transformeres med DCT (Dskret Cosnus Transform): F ( u v ) M M u v for c ( x ) c ( y ) cos x cos y ( x y ), c ( ) M ellers y DCT transform DCTtransformen er IKKE ensum! Informasjonen de 64 kslene samles en lten del av de 64 koeffsentene Mest øverste venstre hjørne IF4-Komresjon-44, x f,

Lossy JPEG-komresjon Transformkoeffsentene skaleres med en vektmatrse og kvantseres tl heltall. dvderes med avrundes tl Skk-sakk-scannng ordner koeffsentene D-rekkefølge. Koeffsentene vl da stort sett avta verd utover rekka Mange koeffsenter er rundet av tl null. Løelengde-transform av koeffsentene. Huffman-kodng av løelengdene. Huffman-koden og kodeboken sendes tl mottaker eller tl lager. Gjentas for alle blokker alle kanaler. IF4-Komresjon-45 JPEG dekomresjon forts. Så gjør v en nvers DCT, og får en rekonstruert 8 8 ksels bldeblokk. nvers DCT transform Dfferansene fra den orgnale blokken er små! - = 3 - - - - - - - 5 3 3 3 3 3 3 3 3 4 4 4 4-3 -3 - - - 3-4 3 3-3 - - Forskjellge vektmatrser for ntenstet og kromatstet. Komresjon / dekomresjon kan g blokk-effekter bldene. IF4-Komresjon-47 JPEG dekomresjon av 8 8 blokk Huffman-koden for en blokk er reversbel og gr løelengdene. Løelengdetransformasjonen er reversbel, gr kvantserte DCT-koeffsenter. Skk-sakk transformen er reversbel, og gr en heltallsmatrse. Denne matrsen multlseres med vektmatrsen. multlseres med Dette gr Dette er IKKE helt lkt koeffsentene etter forlengs DCT-transformasjon. Men de store trekkene er bevart: De største tallene lgger øvre venstre hjørne De fleste tallene matrsen er lk. IF4-Komresjon-46 JPEG-komresjon av fargeblde V skfter fargerom slk at v searerer lysntenstet fra kromatstet. Resamler kroma-komonentene (benytter 4::). Dermed fjernes ersetuell redundans, og v sarer lass. Kanalene deles o blokker á 8 8 ksler, hver blokk kodes searat. V skfter fargerom for hvert bldelan Hver blokk transformeres med DCT (fol 44-45). Forskjellge vektmatrser for ntenstet og kromatstet.... resten er som for gråtoneblder... IF4-Komresjon-48

JPEG dekomresjon av fargeblde Hver 8 8 blokk dekomrmeres (fol 46-47) Alle dekomrmerte 8 8-blokker hvert bldelan samles tl et bldelan. Bldelanene samles tl et YIQ fargeblde V skfter fargerom fra YIQ tl RGB for fremvsnng, Tl CMYK for utskrft. for hvert bldelan samle bldelanene V skfter fargerom V har redusert oløsnng I og Q, men full oløsnng RGB: Gr 8 8 blokkeffekt ntenstet Gr 6 6 ksels blokkeffekt fargene RGB IF4-Komresjon-49 Rekonstruksjons-fel fargeblder 4 bters RGB komrmert tl.5- bter er ksel (b).5.75 b gr god/meget god kvaltet.5.5 b gr noen fel Fargefel makroblokk JPEG gr 8 8 blokkeffekt JPEG uten blokker: Høyere komresjon Mye bedre kvaltet IF4-Komresjon-5 Rekonstruksjons-fel gråtoneblder DCT kan g blokk-artefakter, slørng og dobbelt-konturer. Avhengg av vektmatrse antall koeffsenter IF4-Komresjon-5 Osummerng - komresjon Henskten med komresjon er mer komakt lagrng eller rask oversendng av nformasjon. Komresjon er basert å nformasjonsteor. Antall bter r. samel er sentralt, og varerer med komresjonsmetodene og dataene. Sentrale metoder: Huffman-kodng lag sannsynlghetstabell, send kodebok Lemel Zv utnytter mønstre sender kke kodebok For blder: løelengde-kodng, dfferansekodng, JPEG. Komresjon og kodng er helt sentralt moderne teknolog!!! IF4-Komresjon-5