digital representasjon

54
Digital Representasjon Frode Eika Sandnes

Upload: louise

Post on 26-Jan-2016

39 views

Category:

Documents


0 download

DESCRIPTION

Digital Representasjon. Frode Eika Sandnes. Læringsmål. Hva er informasjon? Hvordan lagres informasjon i datamaskinen? Hvordan og hvorfor komprimere informasjon? Hvordan og hvorfor kryptere informasjon?. Den fundamentale informasjonsbiten - bit. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Digital Representasjon

Digital Representasjon

Frode Eika Sandnes

Page 2: Digital Representasjon

Læringsmål

• Hva er informasjon?

• Hvordan lagres informasjon i datamaskinen?

• Hvordan og hvorfor komprimere informasjon?

• Hvordan og hvorfor kryptere informasjon?

Page 3: Digital Representasjon

Den fundamentale informasjonsbiten - bit

• En bit er en verdi som kan ha to tilstander, strøm av eller strøm på.

• Ofte beskrives disse tilstandene som 0 eller 1, eller sannt eller usannt

• Et annet navn for en bit-verdi er boolean

• Bits er fundamentet for all informasjon som representeres i en datamaskin.

Page 4: Digital Representasjon

En bit

Page 5: Digital Representasjon

Dette er en bitSlå på

Slå av

Page 6: Digital Representasjon

En byte

Page 7: Digital Representasjon

Byte – en samling med 8 bits

• Historisk sett har det vært praktisk å organisere bits i grupper på 8 bits.

• En gruppe på 8 bits kalles en byte.• Minnet i datamaskinen er ofte organisert i bytes.• Hver byte har en adresse. Vi kan be om å se en

byte som ligger på en adresse. Eller vi kan bestemme hva som skal ligge på en addresse.

• Addressen er et tall som beskriver hvor i minnet byten ligger.

Page 8: Digital Representasjon

Dette er en byte

Page 9: Digital Representasjon
Page 10: Digital Representasjon
Page 11: Digital Representasjon

Addressen til en byte

Byte 1

Byte 2

Byte 7

Byte 9

Byte 3

Byte 6

Byte 8

Byte 5

Byte 4

Page 12: Digital Representasjon

Words – grupper på en eller flere bytes

• Vanligvis er en word på 2 bytes, dvs 16 bits, eller 4 bytes, dvs 32 bits.

Page 13: Digital Representasjon

Bytes og words kan representere mange tilstander

• En bit representerer 2 tilstander• Et word med n bits kan representere 2n tilstander, e.g.

En byte 28 = 256 verdier, en 2-byte word 216 = 65356• Dvs alle kombinasjonene av bitsene i word’en av og på.

– 000– 001– 010– 011– 100– 101– 110– 111

Page 14: Digital Representasjon

Bokstaver og tegn (characters)

• US-ASCII tegnsett beskrives med bytes på 8 bits.

• Vi har derfor 256 tegn, hvor hvert tegn har sin unike kode eller bit mønster

• A er 01000001• B er 01000010• C er 01000011• Merk at A og a har forskjellige koder• Kinesisk bruker bla 2-bytes word representasjon

i stedet, med mulighet for 65356 tegn.

Page 15: Digital Representasjon

Tekststrenger (Strings)

• ASCII strenger er sekvenser med characters (eller bytes)

• ABC = 01000001 01000010 01000011• Lengde på strengen

– Nullterminering (C/C++)• Man hekter på tegnet NULL (00000000) på slutten

av strengen

– Ikke nullterminering (Java)• Man bruker en annen måte å beksrive slutten på

strengen, for eksempel lengde

Page 16: Digital Representasjon

Lagring av strenger

• Nullterminering

• Lengde

frodeØkirstenØgeirØmark

5frode7kirsten4geir4mark

Page 17: Digital Representasjon

Heltall (integere)

• Vi kan også bruke bytes eller words til å representere heltall– 00000000 = 0– 00000001 = 1– 00000010 = 2– 00000011 = 3– 00000100 = 4– 00000101 = 5– 00000110 = 6– 00000111 = 7

• Med n bits kan vi representere 2n tall• Binærtall kan legges sammen og trekkes fra på samme

måte som du har lært på grunnskolen for titallsystemet.

Page 18: Digital Representasjon

Hva skjer hvis du legger samen to store tall?

• Tenk deg at du representerer to tall a og b med bytes, hvor a = 200 og b 220.

• Vi får da en overflow, fordi svaret (420) ikke kan representeres med en byte som kun kan representere max 255. Man kan få det feilaktige svaret av 164 hvis feilen ikke oppdages.

• Hva skjer hvis banken bruker for få bits og du setter inn for mange penger. Da kan noen av pengene ”forsvinne”.

Page 19: Digital Representasjon

Negative tall

• 2’s kompliment. En koding av tall som gjør at man lett kan bruke artmetiske operatsjoner (legge sammen og trekke fra) uten å bekymre seg for fortegn.

• Positive tall er representert direkte.• Negative tall

– Strart med den positive versionen (00010001 = 17)– Flip alle bits (11101110)– Legg til 1 (11101111 = -17)

• Husk at antall tilstander må foredels likt på negativ og positiv side av tallskalaen. E.g. En byte gir tall fra -127 til 127, i stedet for 0 til 255.

Page 20: Digital Representasjon

Pass på!!!

• En bank bruker 2’compliment for innskudds og lånekontoer.

• Tenk deg banken bruker for få bits.• Hvis du setter inn for mange penger kan

du risikere å få et veldig stort lån (ved overflow).

• Hvis du låner for mange penger kan du risikere å bli eier av veldig mange penger og få lånet strøket (underflow).

Page 21: Digital Representasjon

Flyttall

• Flyttall er en fellesbetegnelse for alle tall ”som har komma”– 2.7– 3.141592654– 1/3

• Flyttall er en tilnærming og ikke en eksakt representasjon.

• En dynamisk representasjon som likner på vitenskapelig notasjon, i.e.– 3.4x10-5

Page 22: Digital Representasjon

Flyttall

• Et flyttall består av – mantissa M– eksponent E– fortegn F (1 bit)

• Tallet er representert som– Tall = (-1)FMBE

• B er basen og er gitt implisitt

Page 23: Digital Representasjon

Flyttall

• Et word med n bits kan derfor deles i to biter, en for mantissa og en for eksponent

• Mantissaen avgjør nøyaktigheten av tallene. Mange bits gir god nøyaktighet

• Eksponenten avgjør størrelsen på tall som skal representeres. Mange bits dekker et stort tallområde

• Man må balansere tilgjengelig bits mellom mantissa og eksponent

• IEEE standard 754 er mest vanlig.

mantissaeksponentFortegns bit

Page 24: Digital Representasjon

Flyttall er unøyaktige

• Hva skjer hvis vi legger sammen et veldig stort og et veldig lite tall

• Svaret vil være lik det største tallet, fordi representasjonen ikke kan registrere det lille tallet i skyggen av det store.

• God regel: For å sikre mer nøyaktige utregninger bør tall summeres i økende rekkefølge.

Page 25: Digital Representasjon

Er det et null?

• Hvis du sjekker om et flyttall er null (0) må du være forsiktig.

• Eksakt null eksisterer ikke.• Vi bruker derfor en grenseverdi (epsilon), et velig

lite tall, for eksempel 0.0000001.• Hvis tallet er mindre enn epsilon og større enn –

epislon er tallet null.• Dette gjelder også sammenlikning med andre

tall.• Mange programmerere gjør feil her.

Page 26: Digital Representasjon

Multimedia

• Lyd

• Bilde

• Video

Page 27: Digital Representasjon

Lyd

• Lydbølger spres som bølger igjennom luft i form av fortetninger.

• Lydbølger kan fanges av mikrofoner og representeres som en tidsserie som beksriver lufttrykket i lydbølgen.

Page 28: Digital Representasjon

Digitalisering

• Lydbølgen er analog, dvs kontinuerlig

• Vi kan kun representere diskrete verdier digitalt.

• Digital representasjon er derfor en tilnærming av det originale signalet

• Selv om det digitale signalet er fysisk forskjellig fra det analoge så vil øret oppfatte det som ganske likt (persepsjon)

Page 29: Digital Representasjon

Digitalisering

Disse målingene kan representeres som en rekke tall, i.e. Bytes.

Page 30: Digital Representasjon

• Sampling rate– Hvor ofte vi måler signalet– Beskriver den øverste hørbare frekvensen

• Dynamisk bredde– Hvor nøyaktig vi tar hver måling– Beskriver hvor mye detaljer vi kan høre.

Page 31: Digital Representasjon

Aliasing effekter

Nyquist’s lov– For å fange opp en frekvens må vi sample

med dobbelt så stor frekvens.• Sammenlikn med å steke pizza, hvor ofte må du

kikke igjennom ovnsdøren før den er ferdig?– Hvir du gjør det for sjelden så blir pizzaen brent

– CD kvalitet er 44.1 KHz, fordi mennesker ikke kan høre frekvenser over 20 KHz (44.1 er mer enn dobbelt så mye som 20)

Page 32: Digital Representasjon
Page 33: Digital Representasjon

Psykoakustisk koding

• PCM (pulse coded modulation), for eksempel wav-filer, tar stor plass fordi hele bølgeformen er representert

• Moderne lydformater som for eksempel mp3, tar mye mindre plass.

• Disse er basert på psykoakustisk koding. Dette er en avansert teknikk som gjør at man kun lagrer informasjon i lydsignalet som er hørbart for mennesker. Annen informasjon blir ignorert.

• For eksempel, to toner med lik frekvens, der en har høyt volum og en har lavt volum – vi lagrer kun informasjonen om den med høyt volum, siden den overdøver den med lavt volum.

Page 34: Digital Representasjon

Bilder

• Bilder representeres med pixler, eller en matrise med punkter.

• I et svart/hvitt bilde er hvert punkt en bit.

• I et bilde med gråtoner er hvert punkt en byte

• I et fargebilde er hvert punkt et eller flere bytes.

Page 35: Digital Representasjon

Bilder (raster)

00011000 = 24

00111100 = 60

01110110 = 118

11111110 = 254

11111111 = 255

01110000 = 112

00111110 = 62

00011000 = 24

Page 36: Digital Representasjon

”Commodore 64” grafikk

Page 37: Digital Representasjon

Representere farger

• RGB – Rød, Grønn og Blå• Spesifisere en farge med å bruke en byte for

hver av fargende, totalt 3 bytes eller 24 bits.• Hver farge kan ha 256 verdier, og totalt kan man

representere 256 x 256 x 256 mulige farger• To strategier

– Farge per pixel– Palette

Page 38: Digital Representasjon

(0,0,0)(0,255,0)

(255,0,0) (0,0,255)

(255,255,255)

(255,255,0) (0,255,255)

(255,0,255)

Page 39: Digital Representasjon

Farge per pixel(0,0,255) (0,0,255)(0,0,255) (255,0,0)

(256,256,0)

Dette tar mye plass

Page 40: Digital Representasjon

Palette1 2 3 Vi lagrer en fargekode

Ikke fargeverdien

Paletten inneholder fargeverdiene

Palett:1 = (0,0,255)2 = (255,0,0)3 = (255,255,0)

Page 41: Digital Representasjon

Video

• Video er ganske enkelt visning av flere bilder i sekvens.

• Hvis man viser ca 25 bilder i sekundet i sekvens ser bevegelsene naturlig ut.

• Problemstillingen er at bilder tar stor plass, og mange bilder (25 per sekund) tar veldig mye plass.

• Video dreier seg derfor i stor grad om kompresjon.

Page 42: Digital Representasjon

Komprimering

• Komprimering (compression) brukes for å minske lagringsplassen for informasjon.

• Kan derfor presse mer informasjon inn på tilgjengelig plass.

• To hovedtyper– Lossless kompresjon

• Kompresjonen medfører ikke informasjonstap• tekstfiler

– Lossy kompresjon• Kompresjonen medfører informasjonstap, men det er

vanligvis ikke merkbart• Lyd, bilde og video (multimediainnhold)

Page 43: Digital Representasjon

Kompresjon av tekst

• Tekstkompresjon er vanligvis basert på det fenomenet av bokstaver forekommer med ujevn sannsynlighet. – E 12%– A 8%– N 7%– …– Z 0.1%

Page 44: Digital Representasjon

Tekstkompresjon

• Tekst komprimeres ved å erstatte ASCII koden med en annen binærkode– Tegn med høy forekomst får korte koder– Tegn med lav forekomst får lengre koder

• Vanligvis er alle ASCII tegn en byte (8-bits), men vi kan balansere tegnene annerledes ved å benytte for eksempel et Huffman tre.– Høyt forekommende tegn er kortere enn 8-bits– Lavt forekommende tegn kan være lengre enn 8-bits– Summen av alt blir totalt færre bits, og vi oppnår

kompresjon.

Page 45: Digital Representasjon

Kompresjon av lyd (delta-koding)

• For eksempel au filer (sun)

• Prinsippet er basert på fenomenet at nivået varierer lite mellom hver sample.

• I stedet for å lagre selve samplet lagrer vi forskjellen mellom to sampler (differansen) – eller delta’en som den også kalles.

Page 46: Digital Representasjon

Delta koding• For eksempel: Vi har

bølgeformen– 33, 34, 35, 37, 38, 37, 35, 25

• Differansen mellom tallparrene er:– 1,1,2,1,-1,-2,-10

• Hvis vi vet startverdien og differansene så kan vi restaurere det orginale signalet.

• Differansene tar mindre plass i minnet enn selve tallene.

• Delta koding kan også brukes til å lagre andre typer tidsserier og ikke bare lyd (EKG signaler, aksjekurser etc).

0

5

10

15

20

25

30

35

40

1 2 3 4 5 6 7 8

Page 47: Digital Representasjon

Kompresjon av bilder

• Ingen kompresjon– Raster – e.g. Windows BMP format

• Lossless– Run length encoding (Fax maskiner)– gif

• Lossy– Kompliserte algoritmer basert på menneskets

persepsjon av bilder. Fjerner detaljer mennesker ikke legger merke til eller kan skille.

– jpeg

Page 48: Digital Representasjon

Run legnth encoding3 hvie på rad 2 svarte på rad 3 hvite på rad

Koding er derfor:3,2,32,4,21,3,1,2,10,7,10,81,3,42,5,13,2,3

Vi bruker derfor mindre plass til å lagre.

Forbedret med linje-wrap:3,2,54,33,1,2,17,181,3,65,42,3

Page 49: Digital Representasjon

300 x 300

100 x100

30 x 30

Page 50: Digital Representasjon

Kompresjon av video

• Hovedprinsippet bak videokompresjon er at over tid er det lite variasjon i farge for enkelte pixler.

• For eksempel på en nyhetssending er det mest endring i bildet ved munnen og ansiktet på nyhetsreporteren

• Dette kan kombineres med teknikker for bildekompresjon og behoved for lagringskapasitet kan reduseres sterkt

Page 51: Digital Representasjon

Packman beveger seg fremover

1 2 3

Page 52: Digital Representasjon

Kryptering

• Kryptering vil si å skjule informasjon for uvedkommende som har tilgang til informasjonen. Vanligvis ved lagring eller kommunikasjon.

• Kravet til kryptering er at– Sender har en måte å kryptere dataene på.– Mottaker har en måte å dekryptere dataene på– Andre har ingen måte å dekryptere dataene på

• Til dette brukes vanligvis en hemmelig nøkkel.

Page 53: Digital Representasjon

Kryptering

Page 54: Digital Representasjon

Hvordan man kan kryptere

• Tenk deg vi skal sende tre hemmelige symboler fra A til B, dvs tallet 314

• Vi benytter oss av en nøkkel som er et annet tresiffret tall, for eksempel 216. Både sender og mottaker må ha kjennskap til denne koden.

• Vi kan kryptere med å trekke hvert tall fra hverandre, dvs 3-2=1, 1-1=0 og 4-6=8 (ruller rundt).

• Vi sender resultatet 108 fra A til B.• B kan nå legge beskjeden og koden sammen tall for tall,

og få 314.• Dette er et meget enkelt eksempel. Det er mange

spennende krypteringsalgoritmer og teknikker. Disse lærer du mer om i 2. og 3. år.