INF1040 Digital representasjon Oppsummering

Like dokumenter
INF1040 Digital representasjon Oppsummering

Oppsummering 2008 del 1

Oppsummering 2008 del 1

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

INF1040 Digital representasjon Oppsummering 2008 del II

INF1040 Digital representasjon Oppsummering 2008 del II

INF1040 Digital representasjon Oppsummering

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

INF1040 Digital representasjon

INF 1040 høsten 2009: Oppgavesett 8 Introduksjon til lyd (kapittel 9 og 10)

INF 1040 Kompresjon og koding

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

INF 1040 Kompresjon og koding

INF 1040 Kompresjon og koding

Lyd. Litt praktisk informasjon. Litt fysikk. Lyd som en funksjon av tid. Husk øretelefoner på øvelsestimene denne uken og en stund framover.

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

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

UNIVERSITETET I OSLO

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

Temaer i dag. Mer om romlig oppløsning. Optisk avbildning. INF 2310 Digital bildebehandling

INF 1040 Sampling, kvantisering og lagring av lyd

Analog. INF 1040 Sampling, kvantisering og lagring av lyd. Kontinuerlig. Digital

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF2310 Digital bildebehandling

INF 1040 Løsningsforslag til kapittel

UNIVERSITETET I OSLO

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

Tema nr 2: Analog eller digital, kontinuerlig eller diskret. Eksempel på ulike båndbredder. Frekvensinnhold og båndbredde. Analog

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

Sampling, kvantisering og lagring av lyd

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Analog. INF 1040 Sampling, kvantisering og lagring av lyd. Kontinuerlig. Digital

INF januar 2017 Ukens temaer (Kap med drypp fra kap. 4. i DIP)

Introduksjon til lyd. Det ytre øret. Fra lydbølger til nerveimpulser. INF Digital representasjon : Introduksjon til lyd.

INF 1040 Sampling, kvantisering og lagring av lyd

INF 1040 Digital representasjon 2007 Utkast til - Obligatorisk oppgave nr 2

Tall. Posisjons-tallsystemer. Representasjon av heltall. Tall positive, negative heltall, flytende tall. Tekst ASCII, UNICODE XML, CSS

INF Digital representasjon : Introduksjon til lyd

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

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO. Dette er et løsningsforslag

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

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

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

Repetisjon av histogrammer

Anvendelser. Noen begreper. Kompresjon

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Temaer i dag. Mer om romlig oppløsning. Optisk avbildning. INF 2310 Digital bildebehandling

Midtveiseksamen. INF Digital Bildebehandling

INF1040 Oppgavesett 7: Tall og geometrier

Midtveiseksamen Løsningsforslag

da INF 2310 Digital bildebehandling

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Noen presiseringer mhp Diskret Fourier Transform. Relevant for oblig 1.

Læringsmål XML. Markering av tekst. SGML-familien. Forstå prinsippene bak XML og XHTML. Forstå hva XML kan brukes til og hvordan.

Oppgaver til kapittel 19 - Kryptering og steganografi

UNIVERSITETET I OSLO

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

Læringsmål tall. Kunne prefikser for store tall i. det binære tallsystemet. Forstå ulike prinsipper for representasjon av.

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

Repetisjon: Kompresjon

Løsningsforslag til kapittel 15 Fargerom og fargebilder

Læringsmål tall. Prefikser for potenser av Store tall. Kunne prefikser for store tall i. det binære tallsystemet

For J kvantiseringsnivåer er mean square feilen:

( x+ π 2) Bakgrunn: Sinus og cosinus. Bakgrunn: Samplet sinus i 1D. Bakgrunn: Samplet sinus i 2D. Bakgrunn: Sinus i 2D. sin( x)=cos.

INF Digital representasjon : Introduksjon til lyd

Kryptografi og nettverkssikkerhet

Ordliste 2. Byte (byte) En streng på 8 biter som behandles som en enhet.

UNIVERSITETET I OSLO

Introduksjon til lyd. Litt praktisk informasjon. Fra lydbølger til nerveimpulser. Det ytre øret

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

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

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

Kryptografi og nettverkssikkerhet

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

IT1101 Informatikk basisfag 4/9. Praktisk. Oppgave: tegn kretsdiagram. Fra sist. Representasjon av informasjon binært. Ny oppgave

Løsningsforslag til kapittel 11 sampling, kvantisering og lagring av lyd

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

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

Introduksjon til lyd. Litt praktisk informasjon. Fra lydbølger til nerveimpulser. Det ytre øret

INF1040 Oppgavesett 14: Kryptering og steganografi

Anvendelser. Kompresjon. Noen begreper. INF 2310 Digital bildebehandling

Analog. INF 1040 Sampling, kvantisering og lagring av lyd. Kontinuerlig. Digital

Transkript:

INF Digital representasjon Oppsummering Elektriske ladninger (halvlederteknologi) RAM Flash memory Hvordan lagres bitene? lagret bit sensor Magnetisme Magnetplater (disk) strøm Gerhard Skagestein, Fritz Albregtsen Magnetbånd Core Optisk CD, DVD Hullkort Hullbånd Interessante egenskaper: Pris Lagringskapasitet Lese/skrivehastighet Søketid (latency) Adresserbarhet Lagringsevne uten strømtilførsel Lagringsevne over tid Levetid INF-Oppsum- INF-Oppsum- Fysikkens lover gir begrensninger Begrenset signalhastighet * 8 m/s (lyshastigheten) i fritt rom typisk ca / av dette i et fysisk medium (optisk eller elektrisk) Begrenset overføringskapasitet typisk fra Mbps til mange Gbps Begrenset overføringslengde pga. dempning ( attenuation ), støy og interferens jo lengre og jo tynnere kabel, jo større dempning Originalsignal overføringskapasitet signalhastighet /*c Merk at vi i dagligtalen som oftest omtaler overføringskapasiteten som hastigheten på sambandet (målt i biter per sekund bps) c Dempet signal INF-Oppsum- Konvertering mellom tallsystemer n s k *6 (n-k) k= Det heksadesimale tallsystemet Og hva med det oktale tallsystemet? strømregulator Titallsystemet n s k * (n-k) k= Erstatt hvert heks-siffer med fire biter fra tabell Grupper og biter og bruk tabell Suksessive divisjoner med Det binære tallsystemet binært heks 5 6 7 8 9 A B C D E F INF-Oppsum-

ASCII ASCII og etterfølgerne ISO-8859-x Windows CP 5 Unicode UTF-8 UTF-6 UTF- Escape-løsninger MIME Quoted Printable =C5 XHTML spesialsymboler Å INF-Oppsum-5 Unicode og ISO 66 bit, med mulighet for tegn Tegnsettet er delt opp i 7 plan med 6 = 6556 tegn i hvert plan Plan : BMP Basic Multilingual Plane U+ to U+FFFD Plan : SMP Supplementary Multilingual Plane historiske språk (f. eks. egyptiske hieroglyfer), musikk Plan : SIP Supplementary Ideographic Plane sjeldne kinesiske tegn Plan : SPP Supplementary Special Purpose Plane tag characters FF FF 56 56 7 I Unicode skriver vi U+ istedenfor x BMP Basic Multilanguage Plane se http://www.unicode.org/ INF-Oppsum-6 Glyf A Fra glyf til representasjon Må ha standarder for: tegn kodepunkt representasjon Tegn A Kodetabell x 65 Kodepunkt Representasjon Glyfer og tegn Tegn: Det bakenforliggende begrep for bestemte visualiseringer ( strektegninger ) på papir, skjerm, steintavler... Et tegn kan vises fram med ulike glyfer: A A A A... Glyfer med identisk utseende kan visualisere ulike tegn: Eksempel: Å - bokstaven Å, enheten Ångström Problem: Når er to glyfer så forskjellige at de visualiserer to ulike tegn? Eksempel: Klartekst A og Braille A A Eksempel: Arabisk heh kontekstuelle former ههه ه former: Kontekstuelle ه glyf: Representativ INF-Oppsum-7 INF-Oppsum-8

Fra kodepunkt til representasjon Vanligvis "rett fram etter nesa" x > men av og til unntak basert på "escape"-prinsippet ("det bitmønsteret som kommer nå, er ikke en vanlig representasjon det skal spesialbehandles") Eksempel: Spesialtegn i XML "Rett fram etter nesa"-bitmønsteret for &, dvs, representerer ikke &, men begynnelsen på et spesialtegn: &#Unicode-kodepunkt; Da må også & være et spesialtegn:  > og så har vi alle Unicode-transformasjonene Character encoding forms (fra kodepunkt til kodingsenheter ) UTF-8 variabel lengde fra til bytes byte for ASCII UTF-6 variabel lengde fra til bytes byte for tegn i BMP, ellers surrogatpar UTF- fast lengde på bytes Character encoding schemes (fra kodingsenhet til bytesekvens) UTF-8 UTF-6 med byte-order mark eller lignende UTF-6BE UTF-6LE UTF- med byte-order mark eller lignende UTF-BE UTF-LE INF-Oppsum-9 INF-Oppsum- Enslig motorvogn = + ASCII-kode Motorvogn i tog begynner alltid med et antall er-biter etterfulgt av en Antall er-biter i motorvognen = antall vogner i toget Vognene begynner alltid med Disse bitmønstrene brukes ikke for vanlige tegn i UTF-8 Unicode UTF-8 7 biter xxxxxxx biter xxxxx xxxxxx xxxx xxx http://www.ifi.unizh.ch/mml/mduerst/papers/pdf/iuc-utf-8.pdf 6 biter xxxxxx ASCII med en ekstra ledende er kompatibel med UTF-8 xxxxxx biter xxxxxx xxxxxx xxxxxx INF-Oppsum- Unicode UTF-6 Med 6 biter kan kodepunktene i BMP representeres direkte De 6 planene over BMP adresseres med surrogatpar fra BMP Surrogatpar: Tegn i BMP som fungerer som halvtegn av -biters tegn Første halvdel (high surrogate): U+D8 U+DBFF Siste halvdel (low surrogate): U+DC U+DFFF Peker til et kodepunkt S utenfor BMP ved hjelp av følgende algoritme: S = (high xd8) * x + (low xdc) + x Dette gir indirekte tilgang til = 8 576 ekstra tegn ut fra BMP Disse kodepunktene brukes ikke for noe annet, 7 og reduserer derfor antall vanlige tegn i BMP 56 56 INF-Oppsum-

Formatert tekst Et sentralt prinsipp: Skille innhold og fremvisningsdirektiver SGML-familien Fordeler: Gir enhetlig utseende Gjør det enkelt å skifte utseendet gjennomgående Gjør det enkelt å tilpasse utseendet til fremvisningsmediet Kan bidra til å senke datamengden SGML Standard General Markup Language HTML Hypertext Markup Language ISO 8879:985 Eksempler Uformatert tekst og stiler i MS Word XML Extensible Markup Language XHTML-strict med eksterne stilark Ikke bruke XHTML-tabeller for layout (!?) Inovanis hodeanimasjoner XHTML Extensible Hypertext Markup Language Other XML-based Languages INF-Oppsum- INF-Oppsum- Alle XML-filer begynner slik! Et meget enkelt XML-eksempel Tegnsett brukt i XML-filen <?xml version = "." encoding="iso-8859-"?> Oppbyggingen av et element <elementnavn attributtnavn= "verdi"> tekst og/eller elementer </elementnavn> sluttmarkering startmarkering elementinnhold startmarkering (starttag) sluttmarkering (endtag) <eventyr> Det var en gang og snipp, snapp, snute, så var det eventyret ute. </eventyr> element (element) Et element må ha både en startmarkering og en sluttmarkering <markering>elementinnhold</markering> Tomme elementer kan ha en kombinert kombinert start- og sluttmarkering <markering/> Et XML-dokument kan inneholde kun ett rotelement som da inneholder de øvrige elementene INF-Oppsum-5 INF-Oppsum-6

Spesialtegn Tegnene < > & har en spesiell betydning i XML (de brukes som escape -tegn) Hvis slike tegn inngår i teksten, må de kodes på en spesiell måte: &tegnnavn; eller &#kodepunkt; altså: < < &#xc; > > &#xe; & & &#x6; Andre tegn kan kodes på tilsvarende måte. x betyr at kodepunktet er angitt i heksadesimal For konvertering fra Unicode-tegn til heksadesimal, bruk for eksempel http://pioneer.stereo.lu/converter.html Den minimale XHTML nettside <?xml version="." encoding="utf-8"?> <!DOCTYPE html Angivelse av DTD PUBLIC "-//WC//DTD XHTML. Strict//EN" "http://www.w.org/tr/xhtml/dtd/xhtml-strict.dtd"> <html xmlns = "http://www.w.org/999/xhtml"> <head> Angivelse av navnerom <title> En minimal nettside </title> </head> <body> <div>hallo, verden!</div> </body> </html> INF-Oppsum-7 INF-Oppsum-8 Tall Tall som tekst (ASCII-tegn representasjon) Heltall Positive Negative (flere mulige representasjoner, er komplement er vanlig) Tall avbildet på heltall (for eksempel bruk av bias) Flytende tall Naturlig representasjon av heltall Bruker formelen for tall bygd opp i posisjonssystemet n s k * (n-k) k= = * = * = * + * = * + * = * + * + * 5 = * + * + * 6 = * + * + * 7 = * + * + * 8 = * + * + * + * 9 = * + * + * + * INF-Oppsum-9 INF-Oppsum-

Gray-kode-representasjon av heltall Poenget med Gray-kode er at et tall skal skille seg fra det neste kun i en eneste bit Konstruksjonsalgoritme for binary reflected Gray code : Se kompendium side 7-7 Brukes bl.a. for representasjon av gråtonebilder 5 6 7 8 9 5 Konvertering mellom Gray-kode og naturlige binære tall Fra naturlig binær til Gray-kode : exclusive or -operasjonen Fra Gray-kode til naturlig binær Husk: I begge konverteringer xor es med forrige bit i det binære tallet! INF-Oppsum- INF-Oppsum- er-komplementet for negative heltall Det binære er-komplementet er lett å beregne: Ta et binært tall Erstatt alle med, alle med (legg merke til at vi må vite antall biter for tallrepresentasjonen) - Legg til Eksempel: () = (forutsetter 8 bit) er-komplementet er + =, Regne ut 5 + ( ): + = = () - -5 - - -6-7 -8 biter 7 6 5 Populært kalt "klokkearitmetikk" Tall med "bias" Vi skal representere tallene [ 8,,7] (8 biters tallrepresentasjon) Vi legger en bias 8 til alle tallene, slik at vi istedenfor kan representere tallene [,,55] og det er jo helt kurant Ved addisjon kommer bias med to ganger, så vi må trekke den fra igjen Eksempel (forutsetter 8 biters tallrepresentasjon og derfor bias 8): Vi skal addere 5 og. 5 bias 8 = 8 = - bias 8 = 7 = 8 + 7 8 = + - = = * 6 = 6 = bias 8 Dette prinsippet brukes for eksponenten i flytende tall INF-Oppsum- INF-Oppsum-

Single precision Double precision Binære flytende tall (forts.) fortegnsbit 8 eksponent med bias 7 mantisse. Ikke-lagret ledende med antatt binærpunkt fortegnsbit eksponent med bias mantisse 5. Ikke-lagret ledende med antatt binærpunkt Mantissen er normalisert, slik at første bit alltid er. Derfor sparer vi plass ved ikke å lagre denne biten! Vi legger en bias til eksponenten slik at representasjonen aldri er negativ! INF-Oppsum-5 Eksempel: Binære flytende tall - eksempel fortegnsbit 8 eksponent med bias 7 mantisse ( fraction ) Anta at vi skal representere.5, dvs *.5 (eksempel behendig valgt slik at mantissen begynner med.) Fortegnsbit: (fordi tallet er negativt) Eksponent: + 7 =. Ikke-lagret ledende med antatt desimalpunkt "Fraction": (.5 ) =.5 = ( - ) =. Altså: INF-Oppsum-6 Lydbølgene er kontinuerlige (analoge) signaler. For å kunne lagre lyd på en CD eller PC, må vi representere signalet digitalt. Dette gjøres ved å sample det analoge signalet (plukke ut verdier med bestemte intervaller). Signalets lydintensitet på et bestemt tidspunkt må også kvantiseres til et endelig antall ulike verdier. Fra lyd til signaler ms av et musikkstykke lyd.wav Nye begreper: Analog til digital konvertering Sampling og kvantisering Lydintensitet Lydintensitet Intensiteten er den mengde energi som passerer gjennom en flate pr tidsenhet, og måler dette i W/m. Vi kan høre lyder over et stort omfang av intensiteter: fra I = - W/m, Høreterskelen til W/m, Smerteterskelen Oftest angir vi ikke absolutt lydintensitet Vi angir intensiteten i forhold til høreterskelen I Vi bruker en logaritmisk skala, decibelskalaen, forkortet db β ( db) = log Logaritmen med basis til et tall x, er den potensen vi må opphøye basistallet i for å få tallet x. Eksempel: log ()= fordi =*= Eksempel : log ( )=6 fordi = 6 I I Decibel kommer av enheten bel, oppkalt etter Alexander Graham Bell INF-Oppsum-7 INF-Oppsum-8

Lydtrykk Lydens svingninger Hørbar lyd er trykkbølger. Både atmosfæretrykket og trykk-amplituden P måles i Pascal (Pa=N/m ). atm =,5 Pa. Hvordan lyden høres ut, avhenger av hvor raske svingninger den inneholder. Høreterskelen er P = x -5 Pa Sammenhengen mellom I og P er også avhengig av massetettheten og lydhastigheten : I = P /(ρv) Lydtrykket i db beregnes fra trykk-amplituden P : P β ( db) = log = log P Faktoren kommer av at -er logaritmen til kvadratet av et tall er ganger logaritmen til tallet. P P Effekten i en trykkbølge er proporsjonal med kvadratet av trykkamplituden. Antall svingninger per sekund er frekvensen til en tone, og måles i Hz ( s - ) Vi hører lufttrykk som svinger mellom 8 ganger per sekund og ganger per sekund, og med en lydintensitet som er opptil ganger høreterskelen, og denne er bare / av standard atmosfærisk trykk. Hørselen svekkes med alderen. Svekkelsen er ikke lik for alle frekvenser. De ca endepunktene for hørenervene slites / knekker. De fleste lyder består av flere rene toner med ulik frekvens. Øret er veldig følsomt for forandringer i frekvens (.% endring). INF-Oppsum-9 INF-Oppsum- Lyd som sinusoider Sinusoider er et felles navn på funksjonene cos(x) og sin(x). Periodisk signal: et periodisk signal gjentar seg etter en viss tid. Sinus og cosinus-funksjoner beskriver periodiske signaler. Hvordan kan vi se hvilke frekvenser en lyd inneholder? Vi bruker frekvensspekteret for å se hvilke frekvenskomponenter en lyd inneholder. Frekvensspekteret er basert på å ta Fourier-transformen til lydsignalet Fourier-transformen dekomponerer lydsignalet i sinus- og cosinuskomponenter med ulik frekvens og ser hvor sterkt bidrag hver komponent har. INF-Oppsum- INF-Oppsum-

Diskret representasjon av kontinuerlig signal Alle lydsignaler må samples og kvantiseres for å kunne lagres digitalt. Amplitude -,,, tid, sekunder Prosessen som gjør signalet diskret i tid kalles sampling. Å sample et signal vil si å plukke ut verdien til signalet på tidspunkter med gitte intervaller. Lydstyrken ved tiden t, y(t) må så kvantiseres for å kunne lagres (f.eks. til un-signed byte som gir verdiene -55). Samplingsintervall og samplingsfrekvens Sampling er første skritt i en digitalisering Tiden diskretiseres, og vi tar bare vare på en sekvens av amplitudeverdien y(t) ved bestemte diskrete tidspunkter. Sekvensen y[n], for n =,,,,, N- er en diskret-tid (eller digital) representasjon av det kontinuerlige signalet y(t). Tidsavstanden mellom to sampler, gitt i sekunder (eller millisekunder) kalles samplingsintervallet. Hvis samplingsintervallet er det samme mellom alle sampler sier vi at vi har en uniform sampling. Samplingsfrekvens, (også kalt samplingsrate) angis i Hz, og er det inverse av samplingsintervallet. Samplingen gjøres av en AD-omformer ved at lydstyrken/mikrofonspenningen holdes i et lite tidsintervall. INF-Oppsum- INF-Oppsum- Uniform kvantisering Digitalisering Anta at spenningen varierer mellom ymin og ymax. Anta at vi deler området mellom ymin og ymax i N kvantiseringsnivåer. Et kontinuerlig lydsignal er en reell funksjon y(t) av tiden t. Digitaliseringsprosessen består av tre enkle steg: Da er B = {b, b,, b N } de N+ beslutningsgrensene som bestemmer hvilket nivå en målt spenning y(t) havner i. Vi har N forskjellige outputverdier eller rekonstruksjonsnivåer, Q = {q, q,, q N }. q q. Bestem samplingsintervallet Ts, og ta N diskrete sampler y[n], n=,,,,, N-.. Skalér verdien av alle samplene, for eksempel til -55.. Kvantiser verdiene av de skalerte samplene til nærmeste heltallsverdi. Hvis alle kvantiseringsnivåene har lik bredde, Δ, kalles dette uniform kvantisering. Illustrert for N = nivåer med lik bredde Δ. q q b y min Δ b b b b y max Legg merke til at vi ikke trenger å ta vare på verdien av tiden eller verdien av n for hvert sampel. Så lenge vi lagrer dem etter hverandre og kjenner Ts, er tidspunktet for hvert sampel implisitt gitt. INF-Oppsum-5 INF-Oppsum-6

Vi har et fundamentalt spørsmål: Nyquist-teoremet Hvor ofte må vi måle lydintensiteten i et gitt lydsignal? Harry Nyquist og Claude Shannon ga oss følgende teorem: Anta at et analogt signal er bånd-begrenset, dvs. at det ikke har sinuskomponenter med frekvenser over et maksimum f max. Signalet kan da rekonstrueres eksakt fra de samplene vi har, hvis samplingsfrekvensen f s = /T s er større enn f max. f max kalles Nyquist raten. Hvis vi sampler med en samplingsfrekvens f s som er minst f max, så sampler vi i henhold til Nyquist-teoremet. Anta at vi skal sample lyd slik at vi kan rekonstruere alle hørbare frekvenser (opp til Hz) uten noen feil eller forvrenging. Hva er f s? Aliasing Aliasing betegner fenomenet at en sinusoid ved for lav samplingsrate gir opphav til samme diskrete signal som en sinusoid med lavere frekvens. Sampler en f =5 Hz sinus med fs =,5*f = 87,5 Hz. Dette gir f.eks sampler ved t =, og ved t =,7 (stiplede røde piler). Gir sinus med f a = 6.5 Hz, (stiplet kurve i figuren). Vi har fått en aliasing. f a = f s f når f < f s < * f f s = khz gir f s /f = /5 = 8 sampler pr periode. Dette er en X oversampling (svarte piler i figuren). Amplitude 5 Hz 6,5 Hz -,,,,,5,6,7,8 tid, sekunder INF-Oppsum-7 INF-Oppsum-8 Avspilling Maskering av lyd Avspillingsprogrammet må fylle ut med lydverdier mellom hvert sampel, dvs. f.eks. mellom tidspunkt t og tidpunkt t. Maskering: Én lyd er ikke hørbar samtidig med en annen lyd Dette kan gjøres på flere måter (algoritmer), f.eks. ved. Simultan maskering Sette inn nuller Støy kan maskere en tone Sette inn kopier av forrige sampel En tone kan maskere støy Lineær interpolasjon Støy kan maskere støy Høyere-ordens interpolasjon. Tids-maskering» Pre-maskering (ca ms)» Post-maskering (ca ms) t t t t t t 5 t 6 INF-Oppsum-9 INF-Oppsum-

Egenskaper ved synet Vi kan se lysintensiteter over et stort intervall, dekader Blendings-intensiteten er ganger så høy som den svakeste intensitet vi kan oppfatte. Vi ser bare et visst antall nivåer samtidig : - den minste gråtone-forskjellen vi kan oppfatte er ca % => ca 5 forskjellige gråtoner, men mange flere farger. Når øyet skifter fokus til et annet sted i bildet som har et annet bakgrunnsintensitetsnivå, tilpasser øyet seg dette og ser fint lokale intensitets-forskjeller. Objekt-bilde relasjonen Objekt-bilde relasjon: /s + /s = /f y Mer praktisk: Forstørrelse: m = y /y = s /s Hvor stort blir bildet? y = ys /s. F F f f s s s' = s f ( s f ) Setter vi inn det uttrykket vi har for s ovenfor, finner vi et nyttig uttrykk for størrelsen på bildet i fokalplanet: y' = y f ( s f ) y INF-Oppsum- INF-Oppsum- Hvor små detaljer kan vi se med øyet? Anta D=.5 mm, og λ = 55 nm, Rayleigh s kriterium sier at vinkeloppløsningen er gitt ved For små vinkler er sin(θ) = θ, når vinkelen θ er gitt i radianer. Omformer vi θ fra radianer til grader, ser vi at oppløsningen er Vi sa tidligere at vi kan se 6 linjer per grad. Nå har vi altså sett at denne erfaringen stemmer med teorien. 9. λ. x55 x sin θ = = =.7 x D.5 x θ =.7 x 8 π 6 grad Viktige begreper Et digitalt bilde er en funksjon av to (eller flere) heltallsvariable f(x,y) (x og y er heltall) Et -dimensjonalt digitalt bilde er en -dimensjonal array/matrise. Dette kalles raster-representasjon. Hvert element i matrisen kalles et piksel, og angis ved koordinater x og y. Tallverdien til hvert piksel angir intensiteten (hvor lyst/mørkt) til pikslet. y 5 5 7 6 7 7 5 x 6 9 5 6 9 6 Merk: origo (,) er ofte oppe i venstre hjørne i bildet. Det første pikslet kan ha indekser (,) eller (,) 9 6 INF-Oppsum- INF-Oppsum-

Sampling Bildet varierer i intensitet med ulike frekvenser. Antar bildet inneholder av et endelig antall frekvenser. En høy frekvens beskriver et mønster som varierer hurtig i bildet, lav frekvens noe som varierer langsomt. Nyquist-kriteriet: Samplingsraten må minst være dobbelt så stor som den høyeste frekvensen i bildet. Dette betyr: Vi må sample minst to ganger pr. periode av det objektet som varierer hurtigst i det kontinuerlige bildet. Det digitale bildet må altså ha minst to piksler pr periode for den minste periodisk struktur i det kontinuerlige bildet. I tillegg må vi ha god nok optikk til å avbilde slike strukturer! Digitalisering i tre enkle steg Et kontinuerlig bilde er en reell funksjon f(x,y) av to (eller flere) reelle og kontinuerlige variable.. Vi legger på et rutenett, og beregner gjennomsnittsverdien av f(x,y) i hver rute: Rutenettet er vanligvis kvadrater. Vi har nå en reell funksjon f (x,y ), der heltallene x og y gir nummereringen av rutene.. Vi skalerer f (x,y ) slik at den passer innenfor det område vi skal bruke som gråtoneskala.. Vi kvantiserer verdiene av f (x,y ) til nærmeste heltalls verdi i gråtoneskalaen. Vi har nå funnet f (x,y ), som er en heltalls funksjon av to heltalls variable. INF-Oppsum-5 INF-Oppsum-6 RGB-kuben CMYK-fargemodellen magenta,, blå hvit cyan Gråtonebilder: r = g = b CMYK-modellen er subtraktiv (start med hvitt, trekk fra farger). Alternativ til r,g,b som basisfarger er cyan, magenta, yellow (CMY-modeller). C = - R eller 55 - R hvis 8-bits ikke-normaliserte bilder M = - G 55 - G Y = - B 55 - B,,,, svart rød gul,, grønn Merk: RGB-verdiene er normaliserte slik at de ligger mellom og RGB er vanlig på display, men CMYK er vanlig på fargeprintere (K er ekstra komponent for svart). Egen komponent for svart fordi full verdi av C, M og Y gir mørk brunt og ikke svart. På ulike printere ser også de rene fargene ulike ut når de skrives ut, så fargebilder forvrenges ofte ved utskrift. INF-Oppsum-7 INF-Oppsum-8

YCbCr-modellen Hue, Saturation, Intensity (HSI) Dette er fargemodellen for digital TV og video! Y er luminans (luma) hvit Hue: ren farge - gir bølgelengden i det elektromagnetiske spektrum. Cb er blå minus luma (B-Y) Cr er rød minus luma (R-Y). YCbCr er kun digital, mens RGB kan være både analog og digital. MPEG-kompresjon (i DVD er, digital-tv og video CD er) er kodet i YCbCr digitale videokameraer (MiniDV, DV, Digital Betacam, osv.) gir et YCbCr signal over en digital link som FireWire eller SDI. grønn cyan blå S gul H rød magenta I H er vinkel og ligger mellom og π: Rød: H=, grønn: H= π/, blå= π/, gul: H=π/, cyan= π, magenta= 5π/, Hvis vi skalerer H-verdiene til 8-bits verdier vil Rød: H=, grønn: H= 85, blå= 7, gul: H=, cyan= 7, magenta=. Den analoge tvillingen til YCbCr er YPbPr. svart INF-Oppsum-9 INF-Oppsum-5 Fargebilder og fargetabeller RGB kan lagres med like mange biter for r, g, b, f.eks (8+8+8) Selv ++ = 9 biter gir oss 8x8x8=5 kombinasjoner, men bare 8 forskjellige nivåer av rødt, grønt og blått, og dermed også bare 8 forskjellige gråtoner. Det er ikke sikkert at alle de 5 fargene finnes i bildet. Et scene med mange nyanser av en farge vil da se ille ut! Hvorfor? Jo fordi den bare får 8 forskjellige farger! Alternativt kan man bruke 8 biter og fargetabeller. Hver rad i tabellen beskriver en r, g, b-farge med biter, og tabellen inneholder de 56 fargene som best beskriver bildet. I bilde-filen ligger pikselverdiene som tall mellom og 55, men når vi skal vise bildet, slår vi bare opp i samme rad som pikselverdien, og finner r, g, b-verdiene til pikselen. Optimal digital video Digital video består av en tids-sekvens av digitale still-bilder. Hvert bilde er digitalisert i henhold til de regler som gjelder for digitale bilder. Geometrisk oppløsning: Husk Nyquist-teoremet og Rayleighkriteriet! Fargekamera: For hvert piksel måles lysintensitet i tre separate bånd i det elektromagnetiske spekteret. Husk at for hvert bånd (red, green, blue) skal vi :. beregne gjennomsnittsverdien i hver rute. skalere slik at den passer innenfor det tall-området vi skal bruke. kvantiserer verdiene til nærmeste heltalls verdi i tall-området Bilde-frekvensen må være høy nok (5-6 Hz) til å fange opp all den tids-informasjon som vi er i stand til å oppfatte. INF-Oppsum-5 INF-Oppsum-5

Chroma ::, ::, :: eller :: Subsamplingen i YCbCr betegnes med talltrippelet :n:n n angir hvor mange av originale piksler i Cb og Cr som faktisk sendes. 8x8 piksler er en "blokk" i et videobilde. En blokk er grunnsteinen i JPEG-kompresjon av digitale bilder. JPEG bruker :: Makroblokker Videostandarden H.6 bruker en makroblokk på 6 x 6 piksler i intensitets-komponenten Y, en 8 x 8 blokk i Cb og en 8 x 8 blokk i Cr. 6 stk 8x8 blokker gir oss all informasjon fra en makroblokk på 6 x 6 piksler i bildet. En makroblokk betegnes med MB dette har ikke noe med forkortelsen for MegaByte å gjøre. Med ordlengde 8 bit vil en MB inneholde 5 byte, altså ½ KB. INF-Oppsum-5 INF-Oppsum-5 Inter kontra intra Men med jevne mellomrom må vi kode virkelige bilder, ikke bare prediksjonsfeil. Det samme gjelder hvis prediksjonsfeilen blir for stor. Dette kalles intra mode. Bilde er predikert fra bilde, bilde og er predikert både forover og bakover fra bilde og Bildene kodes i rekkefølgen 7 5 6 kodes direkte (intra), resten kodes som prediksjonsfeil (inter). Bevegelses-estimering Prediksjonen blir bedre hvis vi kan kompensere for bevegelse. Gjøres for hver makroblokk i det bildet vi skal predikere. Vi søker gjennom et referansebilde både foran og bak i sekvensen» til vi finner den makroblokken som ligner mest. Undersøker om makroblokkene må forskyves Maksimum forskyvning er 5 piksler. Estimering for hver makroblokk beskriver forflytning med få vektorer» istedenfor feil i mange piksler. Forskjellige video standarder håndterer dette problemet på forskjellige måter. INF-Oppsum-55 INF-Oppsum-56

To representasjoner for bilder Det er to fundamentalt forskjellige måter å representere et bilde på:. Lagre alle pikselverdiene (gråtoneverdi, eller fargekomponenter). Lagre en parametrisert beskrivelse av bildets innhold Kompresjon Kompresjon kan deles inn i tre steg: Transform - representer sekvensen på en mer kompakt måte. Kvantisering - her gjøres en avrunding. Koding - her lages og brukes kodeboken. Den siste metoden krever at bildet deles opp i objekter, og at hvert objekt beskrives ved en rekke parametre. inndata transform kvantisering koding utdata Dette forutsetter. Enten at bildet er forholdsvis enkelt (skisser, tegninger, CAD, kart, ). Eller at det brukes veldig mange parametre for å generere noe som ligner på et naturlig bilde ( virtual reality ). Kompresjons kan gjøres Eksakt / tapsfri ( loss-less )» Her kan vi rekonstruere den originale meldingen eksakt. I det siste tilfellet er det naturlig å la objekter ha overflate-egenskaper (varierende farge, refleksjonsegenskaper, tekstur, etc.). Ikke-tapsfri ( lossy )» Vi kan ikke rekonstruere eksakt.» Resultatet kan likevel være godt nok. Det finnes en mengde ulike metoder for begge kategorier kompresjon. INF-Oppsum-57 INF-Oppsum-58 Kompresjon Ulike typer redundans Psykovisuell/psykoakustisk redundans inndata transform kvantisering koding utdata Det finnes informasjon vi ikke kan se eller høre (se kapittel 9). Interbilde redundans Mange metoder er basert på å representere en tekst/bilde/lydsignal på en annen måte, altså transformer av original-dataene. Det er en viss likhet mellom bilder som kommer etter hverandre i en sekvens Vi koder første bilde i sekvensen, og deretter bare differanser (kapittel 7). Differansetransform løpelengder/run-length, Intersampel redundans Nabo-symboler, - amplituder, -piksler ligner på hverandre eller er like. Hvis vi kvantiserer original-dataene, så kan ikke dette reverseres. Eks: 66 kan run-length kodes som (,),(,),(6,),(,) Koding bygger ofte på sannsynlighetsfordelinger, Kodings-redundans dvs normaliserte histogrammer Gjennomsnittlig kodelengde minus teoretisk minimum. Transformer og koding er alltid reversible. Kvantisering gir alltid et tap av presisjon. Eks: 555556555 - Huffman-koding bruker færrest bit på å kode 5-tallet, som forekommer ofte, og flere bit for 6-tallet. Hvor godt er dette? INF-Oppsum-59 INF-Oppsum-6

Kompresjonsrate og redundans Vi vil lagre en gitt informasjonsmengde ved bruk av færre data. Redundante data må bort. Kompresjonsraten angis som CR = i/c, der i er antall bit pr. sampel originalt, og c er antall bit pr. sampel i det komprimerte datasettet. Relativ redundans: c R = = CR i percentage removed = (-c/i) % Gitt en linje i bildet med gråtoner x,...x N, x i b -. Transformer (reversibelt) til x, x -x, x -x,...,x N -x N-. Vi trenger nå b+ bits hvis vi skal tilordne like lange binære koder til alle mulig verdier. Men, i differansehistogrammet vil de fleste verdiene samle seg rundt, f.eks. mellom -8 og 8. Derfor er det ikke slik at en naturlig bit-koding av differansene er det optimale. Differansetransform INF-Oppsum-6 INF-Oppsum-6 Løpelengde-transform (run-length) Ofte inneholder bildet objekter med lignende gråtoner, f.eks. svarte bokstaver på hvit bakgrunn. Vi kan benytte oss av kompresjonsteknikker som tar hensyn til at nabopiksler på samme linje ofte er like. Løpelengde-transform er reversibel. Først et eksempel: 5555555555777777 ( byte) Når tallet forekommer 6 ganger etter hverandre, trenger vi bare lagre tallparet (,6). Tilsammen trenger vi her tallpar, (,6), (5,), (,), (7,6) altså 8 tall til å lagre hele sekvensen tall ovenfor. Hvor mange biter vi bruker pr. tall, avhenger av den videre kodingen. Løpelengder i binære bilder I to-nivå bilder trenger vi bare å angi løpelengden for hvert run, forutsatt at vi vet om linjen starter med et hvitt eller et svart run. Vi trenger kodeord for EOL og EOI. Run-lengde histogrammet er ofte ikke flatt. Benytter da en kode som gir korte kode-ord til de hyppigste run-lengdene. En standard (CCITT) Huffmann kode basert på dokumentstatistikk brukes for dokument-overføring pr fax. Egen kodebok for svarte og hvite runs. Mer effektiv dersom kompleksiteten er lav. INF-Oppsum-6 INF-Oppsum-6

Koding Naturlig binær-koding: Naturlig binær-koding Et alfabet er mengden av alle mulige symboler (eks. gråtoner) Alle kode-ord er like lange. Hvert symbol får et kode-ord, til sammen er de en kode-bok. Koding skal være reversibel. Kjenner vi noen eksempler på dette? Eks: vi har 8 mulige verdier (Fra koden skal vi kunne rekonstruere det originale symbolet). Symbol nr. 5 6 7 8 Unikt dekodbare koder har den egenskap at en mottatt sekvens av kode-ord kan dekodes på en og bare en måte. Symbol Kode c i s s s s s 5 s 6 s 7 s 8 Naturlig binærkoding er bare optimal hvis alle verdiene i sekvensen er like sannsynlige. INF-Oppsum-65 INF-Oppsum-66 Koder med variabel lengde Hva er et histogram? For ulike sannsynligheter er koder med variabel lengde på kode-ordene bedre Hyppigere symboler kortere kode-ord. Sjeldne symboler lengere kode-ord. Dette var forretningsideen til Samuel Morse Anta at vi har et gråtonebilde med m n piksler hvert piksel har ordlengde b bit => vi har b mulige gråtoner. Ser på gråtonen i hvert piksel, teller opp hvor mange piksler det finnes for hver pikselverdi, får vi et gråtone-histogram. Histogrammet h(v) er en tabell over antall forekomster av verdien v. A B C D. - -... -. -. -.. F G H I.. -. --....... K L M N -.-. -.. -- -. P Q R S. - -. --.-. -.... U V W X.. -... -. - - -.. - De vanligste symbolene i engelsk tekst er e, t, a, n, o, i, 5 5 E. J. - - - O --- T - Y -. -- 5 INF-Oppsum-67 INF-Oppsum-68

Mer om histogrammet Gjennomsnittlig antall biter pr. symbol Summen av h(v) for v fra til b, er antall piksler i bildet, mxn. Dividerer vi alle h(v) med antall piksler i bildet, får vi et normalisert histogram, p(v). p(v) er sannsynligheten for at vi finner pikselverdien v hvis vi velger et vilkårlig piksel i bildet. Summen av alle p(v) for v fra til b er. (summen av alle sannsynlighetene for at vi finner en pikselverdi mellom og b ). Vi konstruerer en kode c,...c N slik at symbol s i kodes med c i. b i er lengden i bit av kodeordet c i. Gjennomsnittlig antall biter pr. symbol for denne koden er: N R= b p + b p +... + bn pn = bi pi i= Entropien H kan gi oss en nedre grense for hvor mange biter vi gjennomsnittlig trenger pr. sampel (hvis vi bare ser på hvert symbol for seg, altså bare kodingsredundans). INF-Oppsum-69 INF-Oppsum-7 Informasjons-innholdet i EN hendelse Vi definerer informasjonsinnholdet I(s i ) i hendelsen s i ved I( si ) = log = log ( p( si )) p( s ) log (x) er -er logaritmen til x Hvis log (x) = b så er x = b Eks: log (6) = 6 fordi 6 = 6 ( 6 = ***** ) log (8) = fordi 8 = ** = Har ikke log på kalkulatoren, hjelp! log (tall) = log (tall) / log () log (/p(s i )) gir oss informasjonsinnholdet i den hendelsen det er at symbolet s i forekommer en gang, uttrykt i bit. i Gjennomsnittlig informasjon pr symbol: entropi Vi definerte informasjonsinnholdet I(s i ) i hendelsen s i ved Hvis vi tar gjennomsnittet over alle N symboler s i i alfabetet, får vi gjennomsnittlig informasjon pr. symbol, som er entropien, H: H = I( si ) = log( p( si )) N i= p( si )log ( p( s i )) Entropien setter en nedre grense for hvor kompakt sekvensen kan representeres Dette gjelder hvis vi bare ser på hvert symbol for seg, altså bare ser på kodingsredundans INF-Oppsum-7 INF-Oppsum-7

Shannon-Fano koding En enkel metode: Vi lager et histogram over symbolene. Sorterer symbolene etter hyppighet. Deler symbolene rekursivt i to omtrent like store grupper» fortsetter dette til hver gruppe er ett symbol. Tilordner ett bit til hver gren i treet» til høyre, til venstre. Traverser treet fra rot til blad» Dette gir koden for hvert symbol Eksempel: HALLO Koden er unikt dekodbar, Men det finnes flere likeverdige løsninger. L () Symbol L H A O H, A, L, O (5) H () Antal l -log (p i ),,,, Totalt antall biter H, A, O () Kodeor d H, O () A () O () Antall bit Framgangsmåte - Huffman-koding Gitt en sekvens med N symboler:. Sorter symbolene etter sannsynlighet, slik at de minst sannsynlige kommer sist.. Slå sammen de to minst sannsynlige symbolene i en gruppe, og sorter igjen etter sannsynlighet.. Gjenta til det bare er to grupper igjen.. Gi kodene og til de to gruppene. Kode til den mest og til den minst sannsynlige av de to 5. Traverser bakover, og legg til og i kodeordet for de to minst sannsynlige gruppene i hvert steg. INF-Oppsum-7 INF-Oppsum-7 Eksempel - Huffman-koding Eksempel - Huffman-koding Gitt 6 begivenheter A, B, C, D, E, F med sannsynligheter Gitt 6 begivenheter A, B, C, D, E, F med sannsynligheter Begivenhet A B C D E F Begivenhet A B C D E F Sannsynlighet.... 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 bare to igjen.6.5...5.5 Sannsynlighet. Gå baklengs gjennom strukturen og tilordne eller til hver gruppe. (F. eks. kode til den mest sannsynlig og kode til den minst sannsynlige)..6 Kode...5.. Kode.5.5 INF-Oppsum-75 INF-Oppsum-76

Dette gir følgende kodebok Kodeboken Med sannsynlighetene......5 blir gjennomsnittlig antall bit pr. symbol (R) for denne koden: Den ideelle binære kode-ord lengden for symbol s i er b i = - log (p(s i )) Begivenhet Kode R= b p + b p +... + bn pn = bi pi =.6 +. =. Siden bare heltalls ordlengder er mulig, er det bare for heltall k som tilfredsstiller dette. A B N i= C D E F p( s i ) = k Lempel-Ziv-koding Premierer mønstre i dataene, ser på samforekomster av symboler. Bygger opp en symbolstreng-liste både under kompresjon og dekompresjon. Denne listen skal ikke lagres eller sendes, for mottakeren kan bygge listen av den symbolstrengen han mottar. Det eneste man trenger er et standard alfabet (f.eks ASCII). Mottaker kjenner bare alfabetet, og lagrer nye fraser ved å ta nest siste streng pluss første symbol 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 bruk for. INF-Oppsum-77 INF-Oppsum-78 Ikke-tapsfri JPEG-kompresjon Bildet deles opp i blokker på 8x8 piksler, og hver blokk kodes separat. Hver blokk 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). Sikring av data Kritiske data må sikres mot lesing og endring av uvedkommende (kryptering) eller skjules (steganografi) Ved kryptering brukes oftest en kombinasjon av symmetriske og asymmetriske krypteringsteknikker Vurderinger av sikkerheten mot knekking av krypteringer er kun basert på antagelser og empiri, intet er bevist Steganografi brukes for å skjule en melding i et dekke Vannmerker brukes for å gi tilleggsopplysninger som ikke kan fjernes uten å ødelegge dekket For de spesielt interesserte: dette gjelder den gamle JPEGstandarden, ikke JPEG, som bruker wavelets. INF-Oppsum-79 INF-Oppsum-8

Data (klartekst) Formål: Kryptering av data Krypteringsnøkkel Krypterte data (chiffertekst) Gjøre data som sendes eller lagres uleselige for uvedkommende Utfordringer: Finne tilstrekkelig gode krypterings- og dekrypteringsalgoritmer Gjøre det praktisk umulig å finne krypteringsnøkkelen ( knekke koden ) Administrere krypteringsnøkler Krypteringsnøkkel Krypteringsalgoritme Dekrypteringsalgoritme Alice, Bob & Wendy Data (klartekst) INF-Oppsum-8 Symmetrisk kryptering Kryptering av klartekst P med nøkkel k gir chiffertekst C: E k (P) C Dekryptering av chiffertekst C med samme nøkkel k gir klartekst P: D k (C) P dvs. D k (E k (P)) P Kommunikasjonspartnerne deler en hemmelighet: Nøkkelen Fordel: Brukbar effektivitet Problem: Distribusjon (og hemmeligholdelse) av nøkkelen INF-Oppsum-8 Stream-kryptering vs. blokk-kryptering Stream-kryptering krypterer en og en bit etterhvert som de kommer Blokk-kryptering opererer på en blokk av biter typisk fra 6 til 8 ad gangen Bruksmåter ( modes of operation ) For å kryptere bitstrømmer lengre enn blokklengden, bakes blokk-krypteringen inn i ulike bruksmåter ( modes of operation ): ElectronicCodeBook ECB Cipher feedback CFB Cipher Block Chaining CBC Derfor snakker vi for eksempel om AES-CBC Output feedback OFB Counter mode CTR Noen av disse utfører diffusion utenfor blokklengden Ulike egenskaper med hensyn på sikkerhet og effektivitet For detaljer, se de følgende lysark se også http://en.wikipedia.org/wiki/block_cipher_modes_of_operation INF-Oppsum-8 INF-Oppsum-8

Asymmetrisk kryptering Symmetrisk kryptering har ett stort problem: Nøkkeladministrasjon Asymmetrisk kryptering arbeider med et nøkkelpar k og k som er matematisk relatert til hverandre den ene nøkkelen brukes for kryptering, den andre for dekryptering Kryptering av klartekst P med nøkkel k gir chiffertekst C: E k (P) C Dekryptering av chiffertekst C med nøkkel k gir klartekst P: D k (C) P Forenkler nøkkeladministrasjonen, men algoritmene er tunge! Klartekst bitstrøm Kryptert bitstrøm Krypteringsalgoritme Dekrypteringsalgoritme Klartekst bitstrøm RSA-algoritmen RSA-algoritmen - hvordan den virker La meldingen P være et tall mindre enn N Kryptering: C = EDe(P) = P e % N Dekryptering: P = EDd(C) = C d % N N og e er den offentlige nøkkelen d er den private nøkkelen N, e og d må være omhyggelig valgt etter følgende regler: N = p * q, der p og q er store primtall d er et stort tall relativt prim til (p-)(q-) e er valgt slik at e*d % (p-)(q-) = Eksempel: p =, q = 5, d = 7, e =, N = 5 Meldingen P er tallet : Kryptering: C=ED() = % 5 = Dekryptering: P= ED7() = 7 % 5 = Hvis p og q velges slik at N blir tilstrekkelig stor (mer enn siffer), er det i praksis ikke mulig (selv med datamaskin) å finne d, selv om du kjenner e og N. INF-Oppsum-85 INF-Oppsum-86 Praktisk bruk av asymmetrisk kryptering () Alice vil sende en hemmelig melding til Bob På forhånd har Bob fått generert et nøkkelpar Bobk og Bobk Bobk offentliggjør han som sin offentlige nøkkel Bobk holder han strengt hemmelig som privat nøkkel Alice krypterer meldingen med Bobk, altså Bobs offentlige nøkkel Bob er den eneste som kan dekryptere meldingen, fordi bare han er i besittelse av Bobk, den tilhørende private nøkkelen Praktisk bruk av asymmetrisk kryptering () Alice vil sende en melding til Bob på en slik måte at Bob kan forsikre seg om at den virkelig er fra henne På forhånd har Alice fått generert et nøkkelpar Alicek og Alicek Alicek offentliggjør hun som sin offentlige nøkkel Alicek holder hun strengt hemmelig som privat nøkkel Alice krypterer meldingen med Alicek, altså sin egen private nøkkel Bob ser at meldingen trolig kommer fra Alice, og dekrypter med Alicek, dvs. hennes offentlige nøkkel. Går det bra, kan han gå ut fra at meldingen virkelig kommer fra Alice. INF-Oppsum-87 INF-Oppsum-88

Hybride teknikker Kombinasjon av symmetriske og asymmetriske teknikker mest brukt i praksis Hvordan det virker: velg en tilfeldig hemmelig engangsnøkkel bruk en symmetrisk teknikk for å kryptere meldingen med denne hemmelige engangsnøkkelen bruk en asymmetrisk teknikk for å kryptere den hemmelige engangsnøkkelen send kryptert melding og engangsnøkkel til mottaker Gir god sikkerhet hvis engangsnøkkel velges tilfeldig Takk for oppmerksomheten! Det har vært en fornøyelse å forelese for dere! Vi har gitt dere forelesninger Et 75 siders kompendium Til sammen 5 lysark Noe av dette ser dere sikkert nytten av allerede. Noe vil dere senere finne at dere har bruk for. Men det er sikkert noe dere ikke kan - og noe dere ikke vet at dere ikke kan As we know - there are known knowns. There are things we know we know. We also know - there are known unknowns. That is to say we know there are some things - we do not know. But there are also unknown unknowns, the ones we don't know - we don't know. D.H. Rumsfeld, DoD news briefing, Feb.,. Vi står fortsatt til disposisjon og svarer på spørsmål, helt fram til eksamensdagen. Lykke til med eksamen! Ken Musgrave, Blessed State (988) INF-Oppsum-89 INF-Oppsum-9