digital representasjon
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 PresentationTRANSCRIPT
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
• 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.
En bit
Dette er en bitSlå på
Slå av
En byte
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.
Dette er en byte
Addressen til en byte
Byte 1
Byte 2
Byte 7
Byte 9
Byte 3
Byte 6
Byte 8
Byte 5
Byte 4
Words – grupper på en eller flere bytes
• Vanligvis er en word på 2 bytes, dvs 16 bits, eller 4 bytes, dvs 32 bits.
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
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.
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
Lagring av strenger
• Nullterminering
• Lengde
frodeØkirstenØgeirØmark
5frode7kirsten4geir4mark
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.
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”.
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.
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).
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
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
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
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.
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.
Multimedia
• Lyd
• Bilde
• Video
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.
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)
Digitalisering
Disse målingene kan representeres som en rekke tall, i.e. Bytes.
• 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.
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)
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.
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.
Bilder (raster)
00011000 = 24
00111100 = 60
01110110 = 118
11111110 = 254
11111111 = 255
01110000 = 112
00111110 = 62
00011000 = 24
”Commodore 64” grafikk
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
(0,0,0)(0,255,0)
(255,0,0) (0,0,255)
(255,255,255)
(255,255,0) (0,255,255)
(255,0,255)
Farge per pixel(0,0,255) (0,0,255)(0,0,255) (255,0,0)
(256,256,0)
Dette tar mye plass
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)
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.
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)
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%
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.
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.
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
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
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
300 x 300
100 x100
30 x 30
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
Packman beveger seg fremover
1 2 3
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.
Kryptering
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.