23
INF1040-Oppsum-1 © Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005 INF1040 – Digital representasjon Oppsummering Gerhard Skagestein, Fritz Albregtsen INF1040-Oppsum-2 © Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005 Hvordan lagres bitene? Elektriske ladninger (halvlederteknologi) RAM Flash memory Magnetisme Magnetplater (disk) Magnetbånd ”Core” Optisk CD, DVD Hullkort Hullbånd strøm- regulator lagret bit strøm sensor Interessante egenskaper: Pris Lagringskapasitet Lese/skrivehastighet Søketid (latency) Adresserbarhet Lagringsevne uten strømtilførsel Lagringsevne over tid Levetid INF1040-Oppsum-3 © Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005 Fysikkens lover gir begrensninger Begrenset signalhastighet 3*10 8 m/s (lyshastigheten) i fritt rom typisk ca 2/3 av dette i et fysisk medium (optisk eller elektrisk) Begrenset overføringskapasitet – typisk fra 10 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 Dempet signal signalhastighet overføringskapasitet Merk at vi i dagligtalen som oftest omtaler overføringskapasiteten som “hastigheten på sambandet” (målt i biter per sekund – bps) 2/3*c c INF1040-Oppsum-4 © Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005 Konvertering mellom tallsystemer Titall- systemet Det binære tallsystemet Det heksadesimale tallsystemet Suksessive divisjoner med 2 Grupper 4 og 4 biter og bruk tabell F 1111 E 1110 D 1101 C 1100 B 1011 A 1010 9 1001 8 1000 7 0111 6 0110 5 0101 4 0100 3 0011 2 0010 1 0001 0 0000 heks binært s k *16 (n-k) k=1 n Erstatt hvert heks-siffer med fire biter fra tabell s k *2 (n-k) k=1 n Og hva med det oktale tallsystemet?

INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

Embed Size (px)

Citation preview

Page 1: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-1© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

INF1040 – Digital representasjonOppsummering

Gerhard Skagestein, Fritz Albregtsen

INF1040-Oppsum-2© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Hvordan lagres bitene?Elektriske ladninger (halvlederteknologi)

RAM

Flash memory

Magnetisme

Magnetplater (disk)

Magnetbånd

”Core”

Optisk

CD, DVD

Hullkort

Hullbånd

strøm-regulator

lagret bit

strøm

sensor

Interessante egenskaper:• Pris• Lagringskapasitet• Lese/skrivehastighet• Søketid (latency)• Adresserbarhet• Lagringsevne uten strømtilførsel• Lagringsevne over tid• Levetid

INF1040-Oppsum-3© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Fysikkens lover gir begrensningerBegrenset signalhastighet

3*108 m/s (lyshastigheten) i fritt rom

typisk ca 2/3 av dette i et fysisk medium (optisk eller elektrisk)

Begrenset overføringskapasitet – typisk fra 10 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 Dempet signal

signalhastighet

overføringskapasitet

Merk at vi i dagligtalen som oftest omtaleroverføringskapasiteten som “hastigheten påsambandet” (målt i biter per sekund – bps)

2/3*c

c

INF1040-Oppsum-4© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Konvertering mellom tallsystemerTitall-

systemet

Det binære tallsystemet

Det heksadesimaletallsystemet

Suksessive divisjoner

med 2

Grupper 4 og 4 biterog bruk tabell F1111

E1110D1101C1100B1011A101091001810007011160110501014010030011200101000100000

heksbinært

∑ sk*16(n-k)

k=1

n

Erstatt hvert heks-siffer

med fire biter fra tabell

∑ sk*2(n-k)

k=1

n

Og hva med det oktaletallsystemet?

Page 2: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-5© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

ASCII og etterfølgerne

ASCII

ISO-8859-x

Windows CP 1252

Unicode UTF-8

UTF-16

UTF-32

Escape-løsninger

XHTML spesialsymboler Å

MIME Quoted Printable =C5

INF1040-Oppsum-6© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Unicode og ISO 1064621 bit, med mulighet for 1 114 112 tegn

Tegnsettet er delt opp i 17 plan med 216 = 65536 tegn i hvert plan

Plan 0: BMP – Basic Multilingual Plane U+0000 to U+FFFD

Plan 1: SMP – Supplementary Multilingual Plane – historiske språk (f. eks. egyptiske hieroglyfer), musikk

Plan 2: SIP – Supplementary Ideographic Plane – sjeldne kinesiske tegn

Plan 14: SPP – Supplementary Special Purpose Plane – tag characters

256

256

17 BMP –Basic Multilanguage Plane

se http://www.unicode.org/00 FF0000

FF00

000000

100000

I Unicodeskriver vi U+ istedenfor 0x

INF1040-Oppsum-7© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Fra glyf til representasjon

Må ha standarder for: tegn ↔ kodepunkt ↔ representasjon

A

Kodetabell

0x41

Tegn Kode-punkt

Represen-tasjon

6510

1000001

Glyf

A

INF1040-Oppsum-8© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Glyfer og tegnTegn: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ömProblem:Når er to glyfer så forskjellige at de visualiserer to ulike tegn?Eksempel: Klartekst A og Braille A

AEksempel: Arabisk heh – kontekstuelle former

Representativ glyf: ه Kontekstuelle former: ه ه ه ه

Page 3: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-9© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Fra kodepunkt til representasjonVanligvis "rett fram etter nesa"0x41 —> 1000001

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 00101010, representerer ikke &, men begynnelsen på et spesialtegn:&#Unicode-kodepunkt;Da må også & være et spesialtegn: & —> 00101010 00100011 01111000 00110010 00110101 00111011

INF1040-Oppsum-10© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

og så har vi alle Unicode-transformasjoneneCharacter encoding forms (fra kodepunkt til ”kodingsenheter”)

UTF-8 – variabel lengde fra 1 til 4 bytes 1 byte for ASCII

UTF-16 – variabel lengde fra 1 til 2 bytes1 byte for tegn i BMP, ellers surrogatpar

UTF-32 – fast lengde på 4 bytes

Character encoding schemes (fra ”kodingsenhet” til bytesekvens)

UTF-8

UTF-16 med byte-order mark eller lignende

UTF-16BE

UTF-16LE

UTF-32 med byte-order mark eller lignende

UTF-32BE

UTF-32LE

INF1040-Oppsum-11© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Unicode UTF-8Enslig motorvogn = 0+ ASCII-kodeMotorvogn i tog begynner alltid med et antall 1er-biteretterfulgt av en 0Antall 1er-biter i motorvognen = antall vogner i togetVognene begynner alltid med 10Disse bitmønstrenebrukes ikke for vanlige tegn i UTF-8

ASCII med en ekstra ledende 0er kompatibel med UTF-8

0xxxxxxx

110xxxxx 10xxxxxx

1110xxxx 10xxxxxx

11110xxx 10xxxxxx

10xxxxxx

10xxxxxx 10xxxxxx

7 biter

11 biter

16 biter

21 biter

http://www.ifi.unizh.ch/mml/mduerst/papers/PDF/IUC11-UTF-8.pdfINF1040-Oppsum-12© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Unicode UTF-16Med 16 biter kan kodepunktene i BMP representeres direkte

De 16 planene over BMP adresseres med surrogatpar fra BMP

Surrogatpar: ”Tegn” i BMP som fungerer som ”halvtegn” av 21-biters tegn

Første halvdel (high surrogate): U+D800 – U+DBFF

Siste halvdel (low surrogate): U+DC00 – U+DFFF

Peker til et kodepunkt S utenfor BMP ved hjelp av følgende algoritme:S = (high – 0xD800) * 0x0400 + (low – 0xDC00) + 0x10000

Dette gir indirekte tilgang til 220 = 1 048 576 ekstra tegn ut fra BMP

Disse kodepunktene brukes ikke for noe annet, og reduserer derfor antall vanlige tegn i BMP

256

256

17

Page 4: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-13© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Formatert tekstEt sentralt prinsipp:Skille innhold og fremvisningsdirektiver

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

Eksempler

Uformatert tekst og stiler i MS Word

XHTML-strict med eksterne stilark

Ikke bruke XHTML-tabeller for layout (!?)

Inovanis hodeanimasjoner

INF1040-Oppsum-14© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

SGML-familien

SGML – Standard General Markup Language

HTML – Hypertext Markup Language

XML – Extensible Markup Language

XHTML –Extensible Hypertext Markup Language

OtherXML-based Languages

ISO 8879:1985

INF1040-Oppsum-15© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Et meget enkelt XML-eksempel

<?xml version = "1.0" encoding="ISO-8859-1"?>

<eventyr>

Det var en gang…

og snipp, snapp, snute, så var det eventyret ute.

</eventyr>

startmarkering(starttag)

sluttmarkering(endtag)

element(element)

Alle XML-filer begynner slik!

Tegnsett brukt i XML-filen

INF1040-Oppsum-16© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Oppbyggingen av et 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

<elementnavn attributtnavn= "verdi">tekst og/eller elementer

</elementnavn>

startmarkering

sluttmarkering

elementinnhold

Page 5: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-17© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

SpesialtegnTegnene < > & 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å:< &lt; &#x3C;> &gt; &#x3E;& &amp; &#x26;

Andre tegn kan kodes på tilsvarende måte.

For konvertering fra Unicode-tegn til heksadesimal, bruk for eksempel http://pioneer.stereo.lu/converter.html

x betyr at kodepunktet er angitt i heksadesimal

INF1040-Oppsum-18© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Den minimale XHTML nettside<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns = "http://www.w3.org/1999/xhtml">

<head>

<title> En minimal nettside </title>

</head>

<body>

<div>Hallo, verden!</div>

</body>

</html>

Angivelse av DTD

Angivelse av navnerom

INF1040-Oppsum-19© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

TallTall som tekst (ASCII-tegn representasjon)

Heltall

Positive

Negative (flere mulige representasjoner, 2er komplement er vanlig)

Tall avbildet på heltall (for eksempel bruk av bias)

Flytende tall

INF1040-Oppsum-20© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

”Naturlig” representasjon av heltallBruker formelen for tall bygd opp i posisjonssystemet

0 = 0 * 20 → 02

1 = 1 * 20 → 12

2 = 1 * 21 + 0 * 20 → 102

3 = 1 * 21 + 1 * 20 → 112

4 = 1 * 22 + 0 * 21 + 0 * 20 → 1002

5 = 1 * 22 + 0 * 21 + 1 * 20 → 1012

6 = 1 * 22 + 1 * 21 + 0 * 20 → 1102

7 = 1 * 22 + 1 * 21 + 1 * 20 → 1112

8 = 1 * 23 + 0 * 22 + 0 * 21 + 0 * 20 → 10002

9 = 1 * 23 + 0 * 22 + 0 * 21 + 1 * 20 → 10012

∑ sk*2(n-k)

k=1

n

Page 6: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-21© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Gray-kode-representasjon av heltall

Poenget med Gray-kode er at et tall skal skille seg fra det neste kun i en eneste bit

Konstruksjons-algoritme for ”binary reflectedGray code”:Se kompendium side 17-7

00000000

01

00011110

0000000000000000000000000000000011001101111111101010101110011000

01

00011110

00000001001100100110011101010100

10

10110100

100101111110010011001000

0000000000000000000000000000

1011110

000001011010110111101100

23

89

101112131415

01

4567

→→→→→→→→→→→→→→→→

Brukes bl.a. for representasjon av gråtonebilder

INF1040-Oppsum-22© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Konvertering mellom Gray-kodeog ”naturlige” binære tall

1 1 0 1

1 0 1 1

Fra naturlig binær til Gray-kode

1 0 1 1

1 1 0 1

Fra Gray-kodetil naturlig binær

: ”exclusive or”-operasjonen

Husk: I begge konverteringer xor’esmed forrige bit i det binære tallet!

INF1040-Oppsum-23© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Det binære 2er-komplementet er lett å beregne:Ta et binært tallErstatt alle 0 med 1, alle 1 med 0 (legg merke til at vi må vite antall biter for tallrepresentasjonen)Legg til 1

Eksempel:21(10) = 0001 0101 (forutsetter 8 bit)2er-komplementet er 1110 1010 + 1 = 1110 1011,

Regne ut 53 + (–21):0011 0101 + 1110 1011 = 1 0010 0000 = 32(10)

2er-komplementet for negative heltall

Populært kalt"klokke-aritmetikk"

0 12

4

5

7-8-7

-5

-4

-3

-1

3

6-6

-2

0000 0001

0010

0011

0100

0101

0110

011110001001

1010

1011

1100

1101

1110

1111

4 biter

INF1040-Oppsum-24© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Tall med "bias"Vi skal representere tallene [–128,…,127] (8 biters tallrepresentasjon)

Vi legger en bias 128 til alle tallene, slik at vi istedenfor kan representere tallene [0,…,255] – 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 128):Vi skal addere 53 og –21.53 bias 128 = 181 = 1011 01012

-21 bias 128 = 107 = 0110 10112

181 + 107 – 128 = 101101012 + 0110 10112 - 1000 00002

= 1010 00002 = 10 * 16 = 160 = 32 bias 128

Dette prinsippet brukes for eksponenten i flytende tall

Page 7: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-25© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Binære flytende tall (forts.)

1 8 23

fortegnsbit

mantisseeksponent med bias 127

1 11 52

fortegnsbit

mantisseeksponent med bias 1023

Singleprecision

Doubleprecision

1. Ikke-lagret ledende 1 med antatt binærpunkt

1. Ikke-lagret ledende 1 med antatt binærpunkt

Mantissen er normalisert, slik at første bit alltid er 1. Derfor sparer vi plass ved ikke å lagre denne biten!

Vi legger en bias til eksponenten slik at representa-sjonen aldri er negativ!

INF1040-Oppsum-26© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Binære flytende tall - eksempel

Eksempel:

Anta at vi skal representere – 1.5, dvs – 20 * 1.5(eksempel behendig valgt slik at mantissen begynner med 1.)

Fortegnsbit: 1 (fordi tallet er negativt)

Eksponent: 0 + 12710 = 01111111

"Fraction": (1.510 – 12) = 0.510 = (2-1)10 = .1000…

Altså: 1 01111111 10000000000000000000000

1 8 23

fortegnsbit

mantisse (”fraction”)eksponent med bias 127

1. Ikke-lagret ledende 1 med antatt desimalpunkt

INF1040-Oppsum-27© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Fra lyd til signalerLydbø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.

10 ms av et musikkstykke

lyd2.wav

Nye begreper:Analog til digital konvertering

Sampling og kvantiseringLydintensitet

INF1040-Oppsum-28© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

LydintensitetIntensiteten er den mengde energi som passerer gjennom en flate pr tidsenhet, og måler dette i W/m2.

Vi kan høre lyder over et stort omfang av intensiteter:fra I0 = 10-12 W/m2 , Høreterskelen til 1 W/m2 , Smerteterskelen

Oftest angir vi ikke absolutt lydintensitet

Vi angir intensiteten i forhold til høreterskelen I0Vi bruker en logaritmisk skala, decibelskalaen, forkortet dB

Logaritmen med basis 10 til et tall x, er den potensen vi må opphøye basistallet 10 i for å få tallet x.

Eksempel1: log10(100)=2 fordi 100=10*10=102

Eksempel 2: log10(1 000 000)=6 fordi 1 000 000 =106

Decibel kommer av enheten bel, oppkalt etter Alexander Graham Bell

⎟⎟⎠

⎞⎜⎜⎝

⎛=

010log10)(

IIdBβ

Page 8: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-29© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

LydtrykkHørbar lyd er trykkbølger.

Både atmosfæretrykket og trykk-amplituden P måles i Pascal (Pa=N/m2). 1 atm =101,325 Pa.

Høreterskelen er P0 = 2 x 10-5 Pa

Sammenhengen mellom I og P er også avhengig av massetettheten og lydhastigheten : I = P2/(2ρv)

Lydtrykket i dB beregnes fra trykk-amplituden P :

Faktoren 20 kommer av at 10-er logaritmen til kvadratet av et tall er 2 ganger logaritmen til tallet.

Effekten i en trykkbølge er proporsjonal med kvadratet av trykkamplituden.

⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

⎛=

010

2

010 log20log10)(

PP

PPdBβ

INF1040-Oppsum-30© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Lydens svingninger

Hvordan lyden høres ut, avhenger av hvor raske svingninger den inneholder.

Antall svingninger per sekund er frekvensen til en tone, og måles i Hz ( ≡ s-1)

Vi hører lufttrykk som svinger mellom 18 ganger per sekund og 20 000 ganger per sekund, og med en lydintensitet som er opptil 10 000 000 000 ganger høreterskelen, og denne er bare 2/10 000 000 av standard atmosfærisk trykk.

Hørselen svekkes med alderen.

Svekkelsen er ikke lik for alle frekvenser.

De ca 30 000 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 (0.3% endring).

INF1040-Oppsum-31© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

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.

INF1040-Oppsum-32© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Hvordan kan vi se hvilke frekvenseren lyd inneholder?

Vi bruker frekvensspekteret for å se hvilke frekvenskomponenter en lyd inneholder.

Frekvensspekteret er basert på å ta Fourier-transformentil lydsignalet

Fourier-transformen dekomponerer lydsignalet i sinus- og cosinuskomponenter med ulik frekvens og ser hvor sterkt bidrag hver komponent har.

Page 9: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-33© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Diskret representasjon av kontinuerlig signalAlle lydsignaler må samples og kvantiseres for å kunne lagres digitalt.

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

-1

0

1

0 0,001 0,002 0,003

tid, sekunder

Amplitude

INF1040-Oppsum-34© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Samplingsintervall og samplingsfrekvensSampling 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 = 0,1,2,3, …, N-1 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.

INF1040-Oppsum-35© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Uniform kvantiseringAnta at spenningen varierer mellom ymin og ymax.

Anta at vi deler området mellom ymin og ymaxi N kvantiseringsnivåer.

Da er B = {b0, b1, …, bN} de N+1 beslutningsgrensenesom bestemmer hvilket nivå en målt spenning y(t) havner i.

Vi har N forskjellige outputverdier eller rekonstruksjonsnivåer, Q = {q1, q2, …, qN}.

Hvis alle kvantiseringsnivåene har lik bredde, Δ, kalles dette uniform kvantisering.

Illustrert for N = 4 nivåer med lik bredde Δ.

ymin ymax

b4b3b2b1b0

q4

q3

q2

q1 Δ

INF1040-Oppsum-36© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

DigitaliseringEt kontinuerlig lydsignal er en reell funksjon y(t) av tiden t.

Digitaliseringsprosessen består av tre enkle steg:

1. Bestem samplingsintervallet Ts , og ta N diskrete sampler y[n], n=0,1,2,3, …, N-1.

2. Skalér verdien av alle samplene, for eksempel til 0-255.

3. Kvantiser verdiene av de skalerte samplene til nærmeste heltallsverdi.

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.

Page 10: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-37© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Nyquist-teoremetVi har et fundamentalt spørsmål:

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 harsinuskomponenter med frekvenser over et maksimum fmax. Signalet kan da rekonstrueres eksakt fra de samplene vi har,

hvis samplingsfrekvensen fs = 1/Ts er større enn 2fmax.

2fmax kalles Nyquist raten.

Hvis vi sampler med en samplingsfrekvens fs som er minst 2fmax, 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 20 000 Hz) uten noen feil eller forvrenging. Hva er fs?

INF1040-Oppsum-38© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

AliasingAliasing betegner fenomenet at en sinusoid ved for lavsamplingsrate gir opphav til samme diskrete signal som en sinusoid med lavere frekvens.

Sampler en f =125 Hz sinus med fs= 1,5*f = 187,5 Hz.

Dette gir f.eks sampler ved t = 0,002og ved t = 0,733 (stiplede røde piler).

Gir sinus med fa= 62.5 Hz, (stiplet kurve i figuren).

Vi har fått en ”aliasing”.

fa = fs – f når f < fs < 2 * f

fs=1 kHz gir fs/f = 1 000/125 = 8 sampler pr periode . Dette er en 4X oversampling (svarte piler i figuren).

-1

0

1

0 0,001 0,002 0,003 0,004 0,005 0,006 0,007 0,008

tid, sekunder

Am

plitu

de

125 Hz 62,5 Hz

INF1040-Oppsum-39© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Avspilling

Avspillingsprogrammet må fylle ut med lydverdier mellom hvert sampel, dvs. f.eks. mellom tidspunkt t0 og tidpunkt t1.

Dette kan gjøres på flere måter (algoritmer), f.eks. ved

Sette inn nuller

Sette inn kopier av forrige sampel

Lineær interpolasjon

Høyere-ordens interpolasjon

t0 t1 t2 t3 t4 t5 t6

INF1040-Oppsum-40© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Maskering av lyd

Maskering: “Én lyd er ikke hørbar samtidig med en annen lyd”

1. Simultan maskering

– Støy kan maskere en tone

– En tone kan maskere støy

– Støy kan maskere støy

2. Tids-maskering

» Pre-maskering (ca 2 ms)

» Post-maskering (ca 100 ms)

Page 11: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-41© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Egenskaper ved synetVi kan se lysintensiteter over et stort intervall, 10 dekader

”Blendings-intensiteten” er 1010 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 2%=> ca 50 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.

INF1040-Oppsum-42© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Objekt-bilde relasjonen

Objekt-bilde relasjon: 1/s + 1/s’ = 1/f – Mer praktisk:

Forstørrelse: m = y’/y = s’/s

Hvor stort blir bildet? y’ = ys’/s.

Setter vi inn det uttrykket vi har for s’ ovenfor, finner vi et nyttig uttrykk for størrelsen på bildet i fokalplanet:

( )fsfss−

='

y

y’F1

F2

f fs s’

( )fsfyy−

='

INF1040-Oppsum-43© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Hvor små detaljer kan vi se med øyet?Anta D=2.5 mm, og λ = 550 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 60 linjer per grad.

Nå har vi altså sett at denne erfaringen stemmer med teorien.

43

9107.2

105.21055022.122.1sin −−

=== xx

xxDλθ

gradx601180107.2 4 ≈= −

πθ

INF1040-Oppsum-44© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Viktige begreperEt digitalt bilde er en funksjon av to (eller flere) heltallsvariable f(x,y)(x og y er heltall)

Et 2-dimensjonalt digitalt bilde er en 2-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.

665565

999333

111133

443442

346773

463751

x

y

Merk: origo (0,0) er ofte oppe i venstre hjørne i bildet.Det første pikslet kan ha indekser (0,0) eller (1,1)

Page 12: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-45© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

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 !

INF1040-Oppsum-46© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Digitalisering i tre enkle steg

Et kontinuerlig bilde er en reell funksjon f(x,y) av to (eller flere) reelle og kontinuerlige variable.

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

2. Vi skalerer f’(x’,y’) slik at den passer innenfor det område vi skal bruke som gråtoneskala.

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

INF1040-Oppsum-47© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

RGB-kuben

0,0,0

0,0,1

1,0,0

0,1,0

svart

magenta

cyanblå

grønn

rød

hvit

gul

Gråtonebilder: r = g = b

Merk: RGB-verdiene er normaliserte slik at de ligger mellom 0 og 1

INF1040-Oppsum-48© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

CMYK-fargemodellen

CMYK-modellen er subtraktiv (start med hvitt, trekk fra farger).

Alternativ til r,g,b som basisfarger er cyan, magenta, yellow(CMY-modeller) .

C = 1 - R eller 255 - R hvis 8-bits ikke-normaliserte bilder

M = 1 - G 255 - G

Y = 1 - B 255 - B

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.

Page 13: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-49© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

YCbCr-modellenDette er fargemodellen for digital TV og video!

Y er luminans (luma)

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.

Den analoge ”tvillingen” til YCbCr er YPbPr.

INF1040-Oppsum-50© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Hue, Saturation, Intensity (HSI)

hvit

rød

gulgrønn

blå magenta

cyan

svart

H

S

I

Hue: ren farge - gir bølgelengden i det elektromagnetiske spektrum.

H er vinkel og ligger mellom 0 og 2π:Rød: H=0, grønn: H= 2π/3, blå= 4π/3, gul: H=π/3, cyan= π, magenta= 5π/3,

Hvis vi skalerer H-verdiene til 8-bits verdier vil Rød: H=0, grønn: H= 85, blå= 170, gul: H=42, cyan= 127, magenta= 213.

INF1040-Oppsum-51© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Fargebilder og fargetabellerRGB kan lagres med like mange biter for r, g, b, f.eks (8+8+8)

Selv 3+3+3 = 9 biter gir oss 8x8x8=512 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 512 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 24 biter, og tabellen inneholder de 256 fargene som best beskriver bildet.

I bilde-filen ligger pikselverdiene som tall mellom 1 og 255, 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.

INF1040-Oppsum-52© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Optimal digital videoDigital 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 Rayleigh-kriteriet !

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 :

1. beregne gjennomsnittsverdien i hver rute

2. skalere slik at den passer innenfor det tall-området vi skal bruke

3. kvantiserer verdiene til nærmeste heltalls verdi i tall-området

Bilde-frekvensen må være høy nok (50-60 Hz) til å fange opp all den tids-informasjon som vi er i stand til å oppfatte.

Page 14: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-53© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Chroma 4:4:4, 4:2:2, 4:1:1 eller 4:2:0

Subsamplingen i YCbCrbetegnes med talltrippelet 4:n:n

n angir hvor mange av 4 originale piksler i Cb og Cr som faktisk sendes.

8x8 piksler er en "blokk" i et videobilde.

En blokk er grunnsteinen i JPEG-kompresjonav digitale bilder.

JPEG bruker 4:2:0

INF1040-Oppsum-54© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

MakroblokkerVideostandarden H.261 bruker en ”makroblokk” på 16 x 16 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å 16 x 16 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 512 byte, altså ½ KB.

INF1040-Oppsum-55© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Inter kontra intraMen med jevne mellomrom må vi kode virkelige bilder, ikke bare prediksjonsfeil. Det samme gjelder hvis prediksjonsfeilen blir for stor. Dette kalles intra mode.

Bilde 4 er predikert fra bilde 1,

bilde 2 og 3 er predikert både forover og bakover fra bilde 1 og 4

Bildene kodes i rekkefølgen 1 4 2 3 7 5 6

1 kodes direkte (intra),

resten kodes som prediksjonsfeil (inter).

INF1040-Oppsum-56© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Bevegelses-estimeringPrediksjonen 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 15 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.

Page 15: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-57© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

To representasjoner for bilderDet er to fundamentalt forskjellige måter å representere et bilde på:

1. Lagre alle pikselverdiene (gråtoneverdi, eller fargekomponenter)

2. Lagre en parametrisert beskrivelse av bildets innhold

Den siste metoden krever at bildet deles opp i objekter, og at hvert objekt beskrives ved en rekke parametre.

Dette forutsetter

1. Enten at bildet er forholdsvis enkelt (skisser, tegninger, CAD, kart, …)

2. Eller at det brukes veldig mange parametre for å generere noe som ligner pået naturlig bilde (”virtual reality”).

I det siste tilfellet er det naturlig å la objekter ha overflate-egenskaper(varierende farge, refleksjonsegenskaper, tekstur, etc.).

INF1040-Oppsum-58© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

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

Kompresjons kan gjøres

Eksakt / tapsfri (”loss-less”)» Her kan vi rekonstruere den originale meldingen eksakt.

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.

inndata transform kvantisering koding utdata

INF1040-Oppsum-59© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Kompresjon

Mange metoder er basert på å representere en tekst/bilde/lydsignal påen annen måte, altså transformer av original-dataene.

Differansetransform

løpelengder/run-length,

Hvis vi kvantiserer original-dataene, så kan ikke dette reverseres.

Koding bygger ofte på sannsynlighetsfordelinger,

dvs normaliserte histogrammer

Transformer og koding er alltid reversible.

Kvantisering gir alltid et tap av presisjon.

inndata transform kvantisering koding utdata

INF1040-Oppsum-60© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Ulike typer redundansPsykovisuell/psykoakustisk redundans

Det finnes informasjon vi ikke kan se eller høre (se kapittel 9).

Interbilde redundans

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

Intersampel redundans

Nabo-symboler, - amplituder, -piksler ligner på hverandre eller er like.

Eks: 00001116611 kan ”run-length” kodes som (0,4),(1,3),(6,2),(1,2)

Kodings-redundans

Gjennomsnittlig kodelengde minus teoretisk minimum.

Eks: 5535552635535 - Huffman-koding bruker færrest bit på å kode 5-tallet, som forekommer ofte, og flere bit for 6-tallet. Hvor godt er dette?

Page 16: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-61© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

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:

”percentage removed” = 100 (1-c/i) %

ic

CRR −=−= 111

INF1040-Oppsum-62© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

DifferansetransformGitt en linje i bildet med gråtonerx1,.....xN , 0 ≤ xi ≤ 2b-1.

Transformer (reversibelt) til

x1, x2-x1, x3-x2,......,xN-xN-1.

Vi trenger nå b+1 bits hvis vi skal tilordne like lange binære koder til alle mulig verdier.

Men, i differansehistogrammet vil de fleste verdiene samle seg rundt 0, f.eks. mellom -8 og 8.

Derfor er det ikke slik at en naturlig bit-koding av differansene er det optimale.

INF1040-Oppsum-63© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

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:

333333555555555544777777 (24 byte)

Når tallet 3 forekommer 6 ganger etter hverandre, trenger vi bare lagre tallparet (3,6).

Tilsammen trenger vi her 4 tallpar, (3,6), (5,10), (4,2), (7,6)altså 8 tall til å lagre hele sekvensen 24 tall ovenfor.

Hvor mange biter vi bruker pr. tall, avhenger av den videre kodingen.

INF1040-Oppsum-64© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

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å dokument-statistikk brukes for dokument-overføring pr fax.

Egen kodebok for svarte og hvite runs.

Mer effektiv dersom kompleksiteten er lav.

Page 17: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-65© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Koding

Et alfabet er mengden av alle mulige symboler (eks. gråtoner)

Hvert symbol får et kode-ord, til sammen er de en kode-bok.

Koding skal være reversibel.

(Fra koden skal vi kunne rekonstruere det originale symbolet).

Unikt dekodbare koder har den egenskap at en mottatt sekvens av kode-ord kan dekodes på en og bare en måte.

INF1040-Oppsum-66© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Naturlig binær-kodingNaturlig binær-koding:

Alle kode-ord er like lange.

Kjenner vi noen eksempler på dette?

Eks: vi har 8 mulige verdier

Naturlig binærkoding er bare optimal hvis alle verdiene i sekvensen er like sannsynlige.

111110101100011010001000Kode ci

s8s7s6s5s4s3s2s1Symbol

87654321Symbol nr.

INF1040-Oppsum-67© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Koder med variabel lengdeFor 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

De vanligste symbolene i engelsk tekst er e, t, a, n, o, i,…

- . - -Y-T- - -O. - - -J.E

- . . -X. . .S- .N. .I- . .D

. - -W. - .R- -M. . . .H- . - .C

. . . -V- - . -Q. - . .L- - .G- . . .B

. . -U. - - .P- . -K. . - .F. -A

INF1040-Oppsum-68© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Hva er et histogram?Anta at vi har et gråtonebilde med m×n piksler

hvert piksel har ordlengde b bit => vi har 2b 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.

1232

2114

3545

1231

1 2 3 4 5

Page 18: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-69© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Mer om histogrammet

Summen av h(v) for v fra 0 til 2b – 1, 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 vhvis vi velger et vilkårlig piksel i bildet.

Summen av alle p(v) for v fra 0 til 2b – 1 er 1.

(summen av alle sannsynlighetene for at vi finner en pikselverdi mellom 0 og 2b – 1).

INF1040-Oppsum-70© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Gjennomsnittlig antall biter pr. symbol

Vi konstruerer en kode c1,....cN

slik at symbol si kodes med ci.

bi er lengden i bit av kodeordet ci.

Gjennomsnittlig antall biter pr. symbol for denne koden er:

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

∑=

=+++=N

iiiNN pbpbpbpbR

12211 ...

INF1040-Oppsum-71© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Informasjons-innholdet i EN hendelseVi definerer informasjonsinnholdet I(si) i hendelsen si ved

log2(x) er 2-er logaritmen til x

Hvis log2(x) = b så er x = 2b

Eks: log2(64) = 6 fordi 64 = 26 (26 = 2*2*2*2*2*2 )

log2(8) = 3 fordi 8 = 2*2*2 = 23

Har ikke log2 på kalkulatoren, hjelp! log2 (tall) = log10(tall) / log10(2)

log2(1/p(si)) gir oss informasjonsinnholdet i den hendelsen det er at symbolet si forekommer en gang, uttrykt i bit.

))((log)(

1log)( 22 ii

i spsp

sI −==

INF1040-Oppsum-72© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Gjennomsnittlig informasjon pr symbol: entropiVi definerte informasjonsinnholdet I(si) i hendelsen si ved

Hvis vi tar gjennomsnittet over alle N symboler si i alfabetet, får vi gjennomsnittlig informasjon pr. symbol, som er entropien, H:

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

∑=

−=N

iii spspH

02 ))((log)(

))((log)( 2 ii spsI −=

Page 19: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-73© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Shannon-Fano kodingEn 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» 1 til høyre, 0 til venstre.

Traverser treet ”fra rot til blad”» Dette gir koden for hvert symbol

Eksempel: ”HALLO”Koden er unikt dekodbar,

Men det finnes flere likeverdigeløsninger. 10Totalt antall biter

31112,321O

31102,321A

2102,321H

201,322L

Antall bit

Kodeord

-log2(pi)Antall

Symbol

0 1

H, A, O (3)L (2)

0 1

H, O (2)H (1)

0 1

A (1) O (1)

H, A, L, O (5)

INF1040-Oppsum-74© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Framgangsmåte - Huffman-koding

Gitt en sekvens med N symboler:

1. Sorter symbolene etter sannsynlighet, slik at de minst sannsynlige kommer sist.

2. Slå sammen de to minst sannsynlige symbolene i en gruppe, og sorter igjen etter sannsynlighet.

3. Gjenta 2 til det bare er to grupper igjen.

4. Gi kodene 0 og 1 til de to gruppene.

Kode 0 til den mest og 1 til den minst sannsynlige av de to

5. Traverser bakover, og legg til 0 og 1 i kodeordet for de to minst sannsynlige gruppene i hvert steg.

INF1040-Oppsum-75© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Eksempel - Huffman-kodingGitt 6 begivenheter A, B, C, D, E, F med sannsynligheter

0.050.10.120.130.30.3Sannsynlighet

FEDCBABegivenhet

Slå sammen de to minst sannsynlige, slåogså sammen sannsynligheten deres

0.15

Finn så de to som nå er minst sannsynlige, og slå dem sammen påsamme måte

0.25

0.6

0.4

Fortsett til det er bare to igjen

INF1040-Oppsum-76© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Eksempel - Huffman-kodingGitt 6 begivenheter A, B, C, D, E, F med sannsynligheter

0.050.10.120.130.30.3Sannsynlighet

FEDCBABegivenhet

0.15

0.25

0.6Kode 0

0.4

Kode 1

0 1

Gå baklengs gjennom strukturenog tilordne 0 eller 1 til hver gruppe.(F. eks. kode 0 til den mest sannsynligog kode 1 til den minst sannsynlige)

0 1

0 1

0 1

Page 20: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-77© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

KodebokenDette gir følgende kodebok

Med sannsynlighetene 0.3 0.3 0.13 0.12 0.1 0.05 blir gjennomsnittlig antall bit pr. symbol (R) for denne koden:

Den ideelle binære kode-ord lengden for symbol si er bi = - log2(p(si))

Siden bare heltalls ordlengder er mulig, er det bare

for heltall k som tilfredsstiller dette.

4.234.026.0...1

2211 =∗+∗==+++= ∑=

N

iiiNN pbpbpbpbR

1111101011000100Kode

FEDCBABegivenhet

kisp21)( =

INF1040-Oppsum-78© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Lempel-Ziv-kodingPremierer 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.

INF1040-Oppsum-79© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Ikke-tapsfri JPEG-kompresjonBildet 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 1D-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 0 og 100 (prøv xv eller gimp).

For de spesielt interesserte: dette gjelder den gamle JPEG-standarden, ikke JPEG 2000, som bruker ”wavelets”.

INF1040-Oppsum-80© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Sikring av dataKritiske 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

Page 21: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-81© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Kryptering av data

Formål: Gjøre data som sendes eller lagres uleselige for uvedkommende

Utfordringer: Finne tilstrekkelig gode krypterings- og dekrypteringsalgoritmerGjøre det praktisk umulig åfinne krypteringsnøkkelen (“knekke koden”)Administrere krypteringsnøkler

Data(klartekst)

Krypterings-algoritme

Dekrypterings-algoritme

Krypterte data(chiffertekst)

Krypteringsnøkkel

Alice, Bob & Wendy

Krypteringsnøkkel

Data(klartekst)

INF1040-Oppsum-82© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Symmetrisk krypteringKryptering av klartekst P med nøkkel k gir chiffertekst C:

Ek(P) → C

Dekryptering av chiffertekst C med samme nøkkel k gir

klartekst P:

Dk(C) → P

dvs. Dk(Ek(P)) → P

Kommunikasjonspartnerne deler en hemmelighet:

Nøkkelen

Fordel: Brukbar effektivitet

Problem: Distribusjon (og hemmeligholdelse) av nøkkelen

INF1040-Oppsum-83© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

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 64 til 384 – ad gangen

INF1040-Oppsum-84© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Bruksmåter (”modes of operation”)For å kryptere bitstrømmer lengre enn blokklengden, bakes blokk-krypteringen inn i ulike bruksmåter (”modes ofoperation”):

Electronic Code Book – ECB

Cipher feedback – CFB

Cipher Block Chaining – 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 lysarkse også http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation

Derfor snakker vi for eksempel om AES-CBC

Page 22: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-85© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Asymmetrisk krypteringSymmetrisk kryptering har ett stort problem:NøkkeladministrasjonAsymmetrisk kryptering arbeider med et nøkkelpar k1 og k2 som er matematisk relatert til hverandre –den ene nøkkelen brukes for kryptering, den andre for dekrypteringKryptering av klartekst P med nøkkel k1 gir chiffertekst C:Ek1(P) → CDekryptering av chiffertekst C med nøkkel k2 gir klartekst P:Dk2(C) → PForenkler nøkkeladministrasjonen, men algoritmene er tunge!

Krypterings-algoritme

Dekrypterings-algoritme

Kryptert bitstrøm

Klartekst bitstrøm

Klartekst bitstrøm

INF1040-Oppsum-86© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

RSA-algoritmenRSA-algoritmen - hvordan den virker

La meldingen P være et tall mindre enn NKryptering: C = EDe(P) = Pe % N Dekryptering: P = EDd(C) = Cd % N N og e er den offentlige nøkkelend er den private nøkkelenN, 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-1)(q-1) e er valgt slik at e*d % (p-1)(q-1) = 1

Eksempel: p = 3, q = 5, d = 7, e = 23, N = 15 Meldingen P er tallet 3:Kryptering: C=ED23(3) = 323 % 15 = 12 Dekryptering: P= ED7(12) = 127 % 15 = 3

Hvis p og q velges slik at N blir tilstrekkelig stor (mer enn 100 siffer), er det i praksis ikke mulig (selv med datamaskin) å finne d, selv om du kjenner e og N.

INF1040-Oppsum-87© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Praktisk bruk av asymmetrisk kryptering (1)Alice vil sende en hemmelig melding til Bob

På forhånd har Bob fått generert et nøkkelpar Bobk1 og Bobk2

Bobk1 offentliggjør han som sin offentlige nøkkel

Bobk2 holder han strengt hemmelig som privat nøkkel

Alice krypterer meldingen med Bobk1, altså Bobs offentlige nøkkel

Bob er den eneste som kan dekryptere meldingen, fordi bare han er i besittelse av Bobk2, den tilhørende private nøkkelen

INF1040-Oppsum-88© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Praktisk bruk av asymmetrisk kryptering (2)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 Alicek1 og Alicek2

Alicek1 offentliggjør hun som sin offentlige nøkkel

Alicek2 holder hun strengt hemmelig som privat nøkkel

Alice krypterer meldingen med Alicek2, altså sin egen private nøkkel

Bob ser at meldingen trolig kommer fra Alice, og dekrypter med Alicek1, dvs. hennes offentlige nøkkel.Går det bra, kan han gå ut fra at meldingen virkelig kommer fra Alice.

Page 23: INF1040 – Digital representasjon Hvordan lagres bitene ...folk.uio.no/inf1040/foiler2005/oppsum-2005.pdf · Tegn Kode-punkt Represen- ... 0100 1 0 10 11 01 00 100 101 111 110 010

INF1040-Oppsum-89© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

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

INF1040-Oppsum-90© Institutt for informatikk – Gerhard Skagestein/Fritz Albregtsen 30. november 2005

Takk for oppmerksomheten !Det har vært en fornøyelse å forelese for dere!Vi har gitt dere

14 forelesningerEt 275 siders kompendiumTil sammen 534 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. 12, 2002.

Vi står fortsatt til disposisjon og svarer på spørsmål, helt fram til eksamensdagen.Lykke til med eksamen !

Ken Musgrave, ”Blessed State” (1988)