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

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

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

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

Anvendelser. Noen begreper. Kompresjon

Anvendelser. Kompresjon. Noen begreper. INF 2310 Digital bildebehandling

Anvendelser. Noen begreper. Kompresjon. INF 2310 Digital bildebehandling

INF 1040 Kompresjon og koding

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

INF 1040 Kompresjon og koding

INF 1040 Kompresjon og koding

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

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

da INF 2310 Digital bildebehandling

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

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

Repetisjon: Kompresjon

INF2310 Digital bildebehandling

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

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

INF 1040 Løsningsforslag til kapittel

Repetisjon: Kompresjon

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

Repetisjon: Kompresjon

INF2310 Digital bildebehandling

INF1040 Digital representasjon

INF2310 Digital bildebehandling

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

Repetisjon: Kompresjon

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

FORELESNING 12. KOMPRESJON OG KODING II Andreas Kleppe

KOMPRESJON OG KODING

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

INF1040 Digital representasjon Oppsummering 2008 del II

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1040 Digital representasjon Oppsummering 2008 del II

UNIVERSITETET I OSLO

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

INF2810: Funksjonell Programmering. Huffman-koding

Ulike typer redundans. Lempel-Ziv-koding. Universell koding. INF 2310 Digital bildebehandling. Kompresjon og koding Del II

INF2810: Funksjonell Programmering. Huffman-koding

INF2310 Digital bildebehandling

Ulike typer redundans. Et annet eksempel. Kodingsredundans et eksempel. INF 2310 Digital bildebehandling. Kompresjon og koding Del II

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF2810: Funksjonell Programmering. Huffmankoding

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

UNIVERSITETET I OSLO

Informasjonsteori Skrevet av Joakim von Brandis,

INF2810: Funksjonell Programmering. Huffman-koding

UNIVERSITETET I OSLO

Utkast med løsningshint inkludert UNIVERSITETET I OSLO

Komprimering av bilder

Sampling, kvantisering og lagring av lyd

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

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

INF2310 Digital bildebehandling

UNIVERSITETET I OSLO

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

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

INF1040 Oppgavesett 6: Lagring og overføring av data

INF2310 Digital bildebehandling

INF2810: Funksjonell Programmering. Huffman-koding

DV - CODEC. Introduksjon

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

Forkunnskapskrav. Hva handler kurset om. Kontaktinformasjon. Kurset er beregnet på en student som kan

2) Redegjør for de mest brukte filformater for digitale fotografier. Diskuter fordeler, ulemper og bruksområder for de ulike formatene.

UNIVERSITETET I OSLO

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

1.Raster(bitmap) versus vektorer

UNIVERSITETET I OSLO. Dette er et løsningsforslag

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

KONTINUASJONSEKSAMEN

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

UNIVERSITETET I OSLO

INF2810: Funksjonell Programmering. Huffman-koding

MAT1030 Diskret matematikk

INF1040 Digital representasjon Oppsummering

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

Repetisjon: Sampling. Repetisjon: Diskretisering. Repetisjon: Diskret vs kontinuerlig. Forelesning, 12.februar 2004

KAPITTEL 10 Flerskala-analyse og kompresjon av lyd

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

INF2810: Funksjonell Programmering. Huffman-koding

Eksamen Løsningsforslag

Digitale bilder. Det er i hovedsak to måter å representere digitale bilder på: rastergrafkk (punkter) og vektorgrafkk (linjer og fater).

For J kvantiseringsnivåer er mean square feilen:

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

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

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

Repetisjon av histogrammer

Det fysiske laget, del 2

UNIVERSITETET I OSLO

Transkript:

Kompresjon Noen egreper Kompresjonsalgoritme Dekompresjonsalgoritme Litteratur : Cyganski kap. 7 Compressing Information kap. 8 Image Compression kap. 9 Digital Video Data Kompresjon Lagring eller oversending Dekompresjon Temaer : Hvor mye informasjon inneholder en melding? Hvor mange it trenger vi for å lagre meldingen? Overflødig/redundant informasjon Kompresjon estår i å pakke informasjonsinnholdet i dataene (tekst, ilde, lydsignale etc.) på en så kompakt måte at redundant informasjon ikke lagres. Hvordan fjerne overflødig informasjon? Dataene komprimeres, så lagres de. Huffman-koding Når de senere skal leses, må vi dekomprimere dem. Universell koding Kompresjon av ilder og video (og litt lyd) Koding er en del av kompresjon, men vi koder for å lagre effektivt, ikke for å hemmeligholde eller skjule informasjon. INF4-Kompresjon- INF4-Kompresjon- Kompresjon Plass og tid Kompresjon kan deles inn i tre steg: Transform - representer sekvensen på en mer kompakt måte. Kvantisering Koding Kompresjons kan gjøres eksakt/tapsfri ( loss-less ), eller ikke-tapsfri ( lossy ). Ved tapsfri kompresjon kan vi rekonstruere den originale meldingen eksakt. Dette kan vi ikke ved ikke-tapsfri kompresjon. Resultatet kan likevel være godt nok. Det finnes en mengde ulike metoder for egge kategorier kompresjon. Mange av disse er asert på å representere en tekst/ilde/lydsignal på en annen måte, altså transformer av original-dataene. Eks. kjedekode, løpelengder/run-length, differansetransform. Hvis vi kvantiserer original-dataene, så kan ikke dette reverseres. Koding ygger ofte på sannsynlighetsfordelinger, dvs histogrammer. Vi gjentar: Vi ruker koding for kompresjon, ikke for kryptering! Digitale data kan ta stor plass Spesielt lyd, ilder og video Eksemper :. Digitalt ilde: 5 x 5 x 8 it x 3 farger = 6 9 456 it. Røntgenilde: 7 x 8636 x it pr. piksel = 737 3 784 it 3. Powerpoint-fil med lydforelesning: ca. 5 it. Overføring av data tar tid: Linje med 64 kits/sek:. ca. min. 38 s.. ca. 3 timer min. 3. ca. 3 min 6 s. Linje med Mits/sek:. ca. 6 s.. ca. min. 3. ca. 5 s. INF4-Kompresjon-3 INF4-Kompresjon-4

Overføringskapasitet og ps Melding, data og informasjon En linje kan overføre en estemt mengde it i sekundet. Linjens kapasitet uttrykkes som ps (its per second), kps = 4 ps = 4 it i sekundet Mps = 4 kps = 48 576 it i sekundet Kapasitet for noen typer linjer: Analogt modem: f.eks. 56 kps ADSL (Asymmetric Digital Suscrier Line): - Mps GSM-telefonlinje: 9.6 kps Vi skiller mellom data og informasjon: Melding: teksten, ildet eller lydsignalet som vi skal lagre. Data: strømmen av it som ligger lagret på fil eller sendes. Informasjon (matematisk egrep): gjennomsnittlig mengde overraskelse/uventethet i en melding. Himmelen er lå har lavt informasjonsinnhold, mens Himmelen er gul er mer uventet og har høyere informasjonsinnhold. INF4-Kompresjon-5 INF4-Kompresjon-6 Redundans Ulike typer redundans Vi kan ruke ulike mengder data til å lagre/overføre samme melding. Metodene forklares mer detaljert senere i forelesningen. Et ilde av et 5-tall (5 x 5 piksler a 8 its = its) Teksten fem i 8 its ISO 8859- (4 its) ISO 8859- tegnet 5 (8 its) Et inært heltall (3 its) Begrepet redundans sier noe om hvor stor del av datamengden vi kan fjerne uten at vi mister informasjonen i dataene. Eks: vi skal lagre tallet, men hvordan lagres det faktisk: Binært i en yte: - 8 it med Standard 7 its ASCII kode for Vet vi at vi are skal lagre tallet, trenger vi are it. Ved smart komprimering og dekomprimering kan vi fjerne redundante its. Kodings-redundans Eks: 553555635535 - Huffman-koding ruker færrest it på å kode 5-tallet, som forekommer ofte, og flere it for 6-tallet. Intersampel redundans Eks: 66 kan run-length kodes som (,4),(,3),(6,),(,) Psykovisuell/psykoakustisk redundans Fjern informasjon vi ikke kan se eller høre. Interilde redundans For videokoding: En video estår av en sekvens av stillilder. Vi kan kode første ilde i sekvensen, og deretter are endringene fra ett ilde til det neste. INF4-Kompresjon-7 INF4-Kompresjon-8

Informasjonsteori og koding Litt om sannsynligheter Kompresjon/koding ygger på informasjonsteori og sannsynligheter. Hvis et symol forekommer ofte, ør vi lagre det med et lite antall it for å ruke minst mulig lagerplass tilsammen. Et symol som forekommer sjeldent, kan vi tillate oss å ruke mange it på å lagre. Vi ruker da et variaelt antall it pr. symol. Dette skiller seg fra lagring med like mange it pr symol. Informasjonsteori ygger på sannsynligheten for at ulike egivenheter skal forekomme. Sannsynligheten for en egivenhet x skal skje skrives som p(x) og ligger mellom og. p(x)= hvis en egivenheten aldri vil skje, og p(x)= hvis noe alltid er tilfelle. Eksempel: vi kaster en terning. Tallene -6 er like sannsynlige. Hver verdi har sannsynlighet /6 =.666667 Kaster vi en terning uendelig mange ganger, vil vi få 6 i 6.7% av tilfellene. Kaster vi terningen 6 ganger, vil ikke resultatet nødvendigvis li seksere. Kaster vi en terning to ganger etter hverandre, er resultatene uavhengige. Selv om vi kjenner første utfall, så hjelper ikke dette oss til å tippe det neste. Det er selvsagt are tull at nå kommer sikkert tallet 8, for det er så lenge siden det har forekommet i Lotto-rekka, eller at tallet er nå inne i en god periode. INF4-Kompresjon-9 INF4-Kompresjon- Kompresjonsrate og redundans Koding Vi vil lagre en gitt informasjonsmengde ved ruk av færre data. Redundante data må ort. Kompresjonsraten angis som CR = i/c, der i er antall it pr. sampel originalt, og c er antall it pr. sampel i det komprimerte datasettet. Relativ redundans: c R = = CR i percentage removed = (-c/i) % Hva er et alfaet? Hva er et kode-ord, og hva er en kode-ok? Koding skal være reversiel. (Fra koden skal vi kunne rekonstruere det originale symolet). Unikt dekodare koder har den egenskap at en mottatt sekvens av kode-ord kan dekodes på en og are en måte. Naturlig inær-koding: Alle kode-ord er like lange. Kjenner vi noen eksempler på dette? INF4-Kompresjon- INF4-Kompresjon-

Naturlig inær-koding Eks: vi har 8 mulige verdier Symol nr. Symol Kode c i s s Naturlig inærkoding er are optimal hvis alle verdiene i sekvensen er like sannsynlige. For ulike sannsynligheter er koder med variael lengde på kodeordene edre Hyppigere symoler kortere kode-ord. Sjeldne symoler lengere kode-ord. Dette var forretnings-ideen til Samuel Morse. 3 s 3 4 s 4 5 s 5 6 s 6 7 s 7 8 s 8 Morse-alfaetet ruker kortere kode-ord for de vanligste symolene Entropi en liten forsmak Entropi er et matematisk mål på gjennomsnittlig informasjonsmengde i en sekvens av tegn eller tall. Har vi en sekvens av N tall eller tegn som lagres med it pr. sampel, så kan vi si vi har et alfaet med mulige symoler. Vi kan finne sannsynligheten for hvert symol i alfaetet: P(s i )= n i /N Vi er interessert i gjennomsnittlig informasjon pr. symol. Intuitivt har vi at en mindre sannsynlig hendelse gir mer informasjon enn en mer sannsynlig hendelse Informasjon er relatert til mengden redundans eller overraskelse. INF4-Kompresjon-3 INF4-Kompresjon-4 Gjennomsnittlig antall it pr. symol Gjennomsnittlig antall it pr. symol Vi har N symoler. Hvert symol s i har sannsynlighet p i. Vi konstruerer en kode c,...c N slik at symol s i kodes med c i. Tell opp antall ganger symol s i forekommer og la n i være dette antallet. Dette er det samme som histogrammet til sekvensen. Sannsynligheten til symolene finnes da som: p i = n i /N Altså det normaliserte histogrammet i er lengden i it av kodeordet c i. Gjennomsnittlig antall it pr. symol for denne koden er: N R= p + p +... + N pn = i pi Entropien H er en nedre grense for R. Entropien H kan gi oss en nedre grense for hvor mange it vi gjennomsnittlig trenger pr. sampel (hvis vi are ser på hvert symol for seg, altså are kodingsredundans). INF4-Kompresjon-5 INF4-Kompresjon-6

Mer entropi for den matematikkglade Definer informasjonsinnholdet I(s i ) i hendelsen s i ved I ( si ) = log p( si ) log (x) er -er logaritmen til x Hvis log (x)= så er x= Eks: log (64)=6 fordi 64= 6 (=*****) log (8)=3 fordi 8=**= 3 Har ikke log på kalkulatoren, hjelp! log (tall) = log (tall) / log () log (/p(s i )) gir oss informasjonsinnholdet i den hendelsen det er at symolet s i forekommer en gang, uttrykt i it. Mer matematikk om entropi Hvis vi tar gjennomsnittet over alle symoler s i i alfaetet, får vi gjennomsnittlig informasjon pr. symol. Entropi H: H = p( si ) I( si ) = p( si )log( p( si )) Entropien setter en nedre grense for hvor kompakt sekvensen kan representeres Dette gjelder hvis vi are ser hvert symol for seg, altså are ser på kodingsredundans INF4-Kompresjon-7 INF4-Kompresjon-8 Øvre og nedre grense for entropi Hvis alle symoler like sannsynlige => entropi lik antall it. Det er symoler, og sannsynligheten for hvert av dem er p(s i )=/. Da lir entropien H = i = log ( ) = log Husk at: Hvis det er symoler som alle er like sannsynlige, så kan vi ikke representere dem mer kompakt enn med its pr symol. Hvis alle pikslene er like => entropi lik. Hvis are ett symol forekommer, er sannsynligheten for dette symolet lik, og alle andre sannsynligheter er lik. H = log () = ( ) = INF4-Kompresjon-9 its of data its of information Et inært ilde med N*M pikseler inneholder it per piksel. Det er N*M its data i ildet, men hvor mye informasjon er det i ildet? Hvis det er like mange som i ildet, så er det like stor sannsynlighet for at neste piksel er som. Informasjonsinnholdet i hver mulig hendelse er da like stort, og entropien til et nytt symol er it. H = log ( ) + log( ) = *+ * / / = Hvis det er 3 ganger så mange som i ildet, så er det mindre overraskende å få en, og det skjer oftere. Entropien er da mindre: 3 3 H = log ( ) + log ( ) = *+ *.45=.5 +.3=.8 4 /4 4 3/4 4 4 I et gråtoneilde med G gråtoner er det på samme måte det normaliserte histogrammet som estemmer entropien, dvs det gjennomsnittlige informasjonsinnholdet pr piksel, målt i its. H = G p i log p i ( ) INF4-Kompresjon-

Huffman-koding Framgangsmåte - Huffman-koding Huffman-koding er en algoritme for optimal koding med variael-lengde koder. Huffman-koding er asert på at vi kjenner sannsynligheten for at hvert av symolene forekommer. Huffman-koden er unikt dekodar. Gitt en sekvens med N symoler:. Sorter symolene etter sannsynlighet, slik at de minst sannsynlige kommer sist.. Slå sammen de to minst sannsynlige symolene i en gruppe, og sorter igjen etter sannsynlighet. 3. Gjenta til det are er to grupper igjen. 4. Gi kodene og til de to gruppene. Kode til den mest og til den minst sannsynlige av de to 5. Traverser akover, og legg til og i kodeordet for de to minst sannsynlige gruppene i hvert steg. INF4-Kompresjon- INF4-Kompresjon- Eksempel - Huffman-koding Eksempel - Huffman-koding Gitt 6 egivenheter A, B, C, D, E, F med sannsynligheter Gitt 6 egivenheter A, B, C, D, E, F med sannsynligheter Begivenhet A B C D E F Begivenhet A B C D E F Sannsynlighet.3.3.3. Slå sammen de to minst sannsynlige, slå også sammen sannsynligheten deres Finn så de to som nå er minst sannsynlige, og slå dem sammen på samme måte Fortsett til det er are to igjen.6.5.4..5.5 Sannsynlighet.3 Gå aklengs gjennom strukturen og tilordne eller til hver gruppe. (F. eks. kode til den mest sannsynlig og kode til den minst sannsynlige).3.6 Kode.3..5..4 Kode.5.5 INF4-Kompresjon-3 INF4-Kompresjon-4

Kodeoken Om Huffman-koding Dette gir følgende kodeok Begivenhet Kode Med sannsynlighetene.3.3.3...5 lir gjennomsnittlig antall it pr. symol (R) for denne koden: (se foil 6) R= p + p +... + N pn = i pi =.6 +.4 3 =.4 Entropien H er her mindre enn R (se foil 8): H = A B N C p( s ) log ( p( )) =.34 i s i D E F Ingen kode-ord danner prefiks i en annen kode Dette sikrer at en sekvens av kodeord kan dekodes entydig, uten at man trenger ende-markører. Dette etyr at mottatt kode er instantant (øyelikkelig) dekodar. Lengden av en Huffman kodeok er G = Merk at kodeoken må overføres! Det lengste kodeordet kan ha opptil G its. INF4-Kompresjon-5 INF4-Kompresjon-6 Huffman-koding i praksis Universell koding Den ideelle inære kode-ord lengden for symol s i er i = - log (p(s i )) Huffman-koding ygger på at man finner antall forekomster av hvert symol i teksten, og lager kodene utfra dette. Siden are heltalls ordlengder er mulig, er det are p( s i ) = k for heltall k som tilfredsstiller dette. Kodene må lages fra gang til gang, og kodeoken må også oversendes. Er det mulig å finne en universell kode for hvor mange ganger et symol forekommer? Eksempel: hvis vi har Symol s s s 3 s 4 s 5 s 6 Vi kan f.eks. se på forekomster av ulike okstaver i norsk eller engelsk tekst. e forekommer oftest, Sannsynlighet Kode.5.5 lir gjennomsnittlig ordlengde R=.9375 = H..5.65.35.35 z, x og q er sjeldne Eller vi kan ygge opp kodestrenger etterhvert som vi ser gjentatte mønstere. Lempel-Ziv koding er et eksempel på universell koding av symoler (f.eks. en itsekvens). INF4-Kompresjon-7 INF4-Kompresjon-8

Lempel-Ziv-koding Premierer mønstre i dataene, ser på samforekomster av symoler. Bygger opp en symolstreng-liste åde under kompresjon og dekompresjon. Eksempel på Lempel-Ziv Anta at alfaetet er a, og c som tilordnes kodene, og 3. La dataene være aacaaaaaaaa sender: ny frase = sendt streng pluss neste usendte symol mottaker: ny frase = nest siste streng pluss første symol i sist tilsendte streng Ser Sender Senders liste a=,=,c=3 Mottar Tolker Mottakers liste a=, =, c=3 Denne listen skal ikke lagres eller sendes, for mottakeren kan ygge listen av den symolstrengen han mottar. a a=4 a=5 a a=4 Det eneste man trenger er et standard alfaet (f.eks ASCII). a c 4 3 ac=6 c=7 4 3 a c a=5 ac=6 Mottaker kjenner are alfaetet, og lagrer nye fraser ved å ta nest siste streng pluss første symol i sist tilsendte streng, inntil listen er full (det er en praktisk grense her!). En ulempe er at man av og til lager kodeord som man ikke får ruk for. a a a aa aa 5 8 a=8 aa=9 aa= aaa= aa= 5 8 a a a aa aa c=7 a=8 aa=9 aa= aaa= a 8 8 a aa= INF4-Kompresjon-9 INF4-Kompresjon-3 Kompresjon av ilder Hvorfor ehandles kompresjon av ilder spesielt: Generelt så er det større mengde redundant informasjon i ilder, åde Mellom piksler på samme linje Mellom ulike linjer i ildet Løpelengde-transform (run-length) Ofte inneholder ildet ojekter med lignende gråtoner, f.eks. svarte okstaver på hvit akgrunn. Vi kan enytte oss av kompresjonsteknikker som tar hensyn til at naopiksler på samme linje ofte er like. Løpelengde-transform er reversiel. Først et eksempel: 333333555555555544777777 (4 yte) Ofte inneholder ilder ojekter som kan representeres mer kompakt. Vi kan også ta i etraktning psykovisuelle effekter. Når tallet 3 forekommer 6 ganger etter hverandre, trenger vi are lagre tallparet (3,6). Tilsammen trenger vi her 4 tallpar, (3,6), (5,), (4,), (7,6) altså 8 tall til å lagre hele sekvensen 4 tall ovenfor. Hvor mange it vi ruker pr. tall, avhenger av den videre koding. Vi kan for eksempel ruke Huffman-koding på tallparene. (se ukeoppgaven) INF4-Kompresjon-3 INF4-Kompresjon-3

Mer om løpelengder Differansetransform Generell formulering: Anta at x,...x N er alle piksler på en rad i ildet, og anta at ildet inneholder noen homogene ojekter. På linjen forekommer k ulike segmenter av tall, hvert segment har lengde l i,,...k. Segment i har gråtone g i. Dette representeres ved tallparene (g i,l i ),,...k Hvert tallpar kalles et gråtoneløp. Løpelengder er et eksempel på en transform, dvs. vi velger å representere tallene på en annen måte. Løpelengderepresentasjon komineres gjerne med annen koding (Huffman). Gitt en linje i ildet med gråtoner x,...x N som ligger mellom og -. Transformer ildet til x, x -x, x 3 -x,...,x N -x N-. Vi trenger nå + its hvis vi skal tilordne like lange inære koder til alle mulig verdier. Men, i differansehistogrammet vil de fleste verdiene samle seg rundt, f.eks. mellom -8 og 8. Differanserepresentasjonen kan så kodes f.eks. med Huffman-koding. INF4-Kompresjon-33 INF4-Kompresjon-34 Litt mer om differansetransform Lag f.eks. en 6 ords naturlig kode c =, c =,... c 6 = og tilordne de 4 kode-ordene c,... c 5 til differansene -7, -6,..., -,,,,..., 5, 6 Kode c og c 6 kan rukes til å indikere om differansen x < -7 eller om x 7 (to-sidet shift-kode) x = => c 6 c 6 c 3 x = - => c c c 5 Alternativt kan vi kode differansene ved hjelp av andre kodeteknikker. JPEG-koding (tapsfri) JPEG (Joint Photographic Expert Group) er et av de vanligste ildeformatene med kompresjon. JPEG-standarden har varianter åde for tapsfri og ikke-tapsfri kompresjon. JPEG kan ruke enten Huffman-koding eller en variant av universell koding kalt aritmetisk koding. Prediktiv koding rukes for å predikere at neste piksel på samme linje har lignende verdi som forrige piksel å predikere at et piksel har lignende verdi som pikselet på linjen over å predikere at neste piksel på linjen har lignende verdi som de tre nærmest pikslene Typen koding estemmes fra ilde til ilde INF4-Kompresjon-35 INF4-Kompresjon-36

GIF-formatet GIF (Graphics Interchange Format) er asert på Lempel-Zivkoding, men i modifisert variant. Man koder sekvenser av yte, ikke sekvenser av it og får mer kompakt kode. Samtidig drar man nytte av mønstre av gråtoner, f.eks tekstur. Ikke-tapsfri (lossy) kompresjon For å få høye kompresjonsrater, er det ofte nødvendig med ikke-tapsfri kompresjon. Ulempen er at man ikke kan rekonstruere det originale ildet, fordi et informasjonstap har skjedd. Enkle metoder for ikke-tapsfri kompresjon er rekvantisering til færre antall gråtoner, eller resampling til dårligere romlig oppløsning. Andre enkle metoder er filtering der f.eks. 3x3 piksler erstatter med ett nytt piksel som er enten middelverdien eller medianverdien av de opprinnelige pikselverdiene. MMS enytter lavere oppløsning i kromasi-komponentene. INF4-Kompresjon-37 INF4-Kompresjon-38 Ikke-tapsfri JPEG-kompresjon Bildet deles opp i lokker på 8x8 piksler, og hver lokk kodes separat. Hver lokk transformeres med DCT (Diskret Cosinus Transform), som gir reelle koeff. og transformkoeffisientene kvantiseres. Sikk-sakk-scanning ordner koeffisientene i D-rekkefølge. Mange koeffisienter vil rundes av til null. Løpelengde-transform av koeffisientene, fulgt av Huffman-koding. Ved JPEG-koding kan man velge en kvalitetsparameter som ligger mellom og (prøv xv eller gimp). For de spesielt interesserte: dette gjelder den gamle JPEGstandarden, ikke JPEG, som ruker wavelets. Digital video Koding av digitale ildesekvenser eller digital video er asert på differansekoding. Områder uten interilde evegelse kodes ikke flere ganger, kun koding i områder der endringer skjer. Med 5-6 ilder i sekundet er det mye å spare på dette. MPEG (Motion Picture Expert Group) er tilsvarende standard for videokompresjon. MPEG historie: MPEG- video og audio (99) MPEG- Digital TV og DVD (994) MPEG-4: Multimedia anvendelser (998) MPEG-7: Multimedia søking og filtering ()...MPEG-: Multimedia anywhere (xx) INF4-Kompresjon-39 INF4-Kompresjon-4

Men hva er MP3? MP3 = MPEG- Audio Layer 3 Basert på psykoakustikk nedre og øvre grense for hva øret kan høre terskel for hvor raske endringer vi hører terskel for hvor tette naofrekvenser vi kan skille mellom Litt fakta om MP3: Samplingsfrekvens: 6 khz - 48 khz Antall it pr. sekund: 3 kps - 9 kps CD audio tilsvarer 378 kps Les mer/lær mer om MP3 i kurset INF58 (Multimedia koding og transmisjon) - se http://www.ifi.uio.no/inf58/ Oppsummering - kompresjon Hensikten med kompresjon er mer kompakt lagring eller rask oversending av informasjon. Kompresjon er asert på informasjonsteori. Antall it. pr. sampel er sentralt, og varierer med kompresjonsmetodene og dataene. Sentrale metoder: Huffman-koding lag sannsynlighetstaell, send kodeok Universell koding utnytter mønstre sender ikke kodeok For ilder: løpelengde-koding og differansekoding. INF4-Kompresjon-4 INF4-Kompresjon-4