Digital representasjon

Like dokumenter
Digital representasjon

Digital representasjon

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema INF1070. Vektorer (array er) Tekster (string er) Adresser og pekere. Dynamisk allokering

Vektorer. Dagens tema. Deklarasjon. Bruk

Datamaskinen LC-2. Dagens tema. Tall i datamaskiner Hvorfor kan LC-2 lagre tall i intervallet ? Hvorfor er det akkurat celler i lageret?

Dagens tema. Datamaskinen LC-2 En kort repetisjon. Binære tall Litt om tallsystemer generelt. Binære tall. Heksadesimale og oktale tall

Offentlig utvalg for punktskrift, OUP Norsk standard for 8-punktskrift punktskrift 24. oktober 2004 sist endret

Dagens tema INF1070. Vektorer (array-er) Tekster (string-er) Adresser og pekere. Dynamisk allokering

Dagens tema: INF2100. Utvidelser av Minila array-er. tegn og tekster. Flass- og Flokkode. prosedyrer. Prosjektet struktur. feilhåndtering.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

IN 147 Program og maskinvare

Læringsmål. INF1000: Forelesning 12. Hovedkilde. Kunne binærtall og heksadesimale tall og konvertering mellom ulike tallsystemer: Titallsystemet

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

Velkommen til INF2100. Bakgrunnen for INF2100. Hva gjør en kompilator? Prosjektet. Jeg er Dag Langmyhr

Husk å registrer deg på emnets hjemmeside!

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

Unicode. Unikt vakkert eller unisont håpløst? En vandring gjennom tegnkodingens historie. Dag Lamgmyhr, Ifi/UiO Ark 1 av 23

Alle hele tall g > 1 kan være grunntall i et tallsystem.

Tallsystemer. Tallene x, y, z og u er gitt ved x = 2, y = 2, z = 4 og u = 2. Dermed blir =

Tallsystemer. Tallene x, y, z og u er gitt ved x = 2, y = 2, z = 4 og u = 2. Dermed blir =

INF 1000 høsten Innhold uke 11. Digital representasjon av tekster, tall, former,

Velkommen til INF2100

INF 1000 høsten 2011 Uke 11: 2. november

Velkommen til INF2100

Modulo-regning. hvis a og b ikke er kongruente modulo m.

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

Alle hele tall g > 1 kan være grunntall i et tallsystem.

UNIVERSITETET I OSLO

ISO Dagens tema. Tegn. Uttrykk. I Minila lagres kun heltall, men de kan tolkes som tegn. Det siste om Minila.

Tall. Binære regnestykker. Binære tall positive, negative heltall, flytende tall

Tegn og tekst. Posisjonssystemer. Logaritmer en kort repetisjon. Bitposisjoner og bitmønstre. Kapittel August 2008

UNIVERSITETET I OSLO

INF1040 Oppgavesett 7: Tall og geometrier

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

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

Digital representasjon

INF1400 Kap 1. Digital representasjon og digitale porter

Albregtsen og Skagestein: Digital representasjon Løsningsforslag til kapittel 2 Representasjon av tegn og tekster

Diskret matematikk tirsdag 13. oktober 2015

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

Oppsummering av Uke 3. MAT1030 Diskret matematikk. Binære tall. Oppsummering av Uke 3

Velkommen til INF2100

Konvertering mellom tallsystemer

INF1040 Oppgavesett 1: Tallsystemer og binærtall

INF1000 : Forelesning 1 (del 2)

Mer om representasjon av tall

INF1040 løsningsforslag oppgavesett 7: Tall og geometrier

Reelle tall på datamaskin

Teori og oppgaver om 2-komplement

INF1040 Digital representasjon TALL

( ) ( ( ) ) 2.12 Løsningsforslag til oppgaver i avsnitt

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

Teori oppsummering (HW & DR)

Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr

INF1040 Digital representasjon

Handi-Lift EA7 Målskjema

Teori oppsummering (HW & DR) Rune Sætre

Representasjon av tall på datamaskin Kort innføring for MAT-INF1100L

MAT-INF 1100: Obligatorisk oppgave 1

som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

Litt Java-historikk. Litt Java-historikk. Ulike varianter for ulike behov. Litt Java-historikk. The Green Team

INF1040 Oppgavesett 3: Tegn og tekst

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Oppgaver MAT2500. Fredrik Meyer. 11. oktober 2014

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

MAT-INF 1100: Obligatorisk oppgave 1

Grafisk pakke dataseminar ARK6 12.feb 2008

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Testobservator for kjikvadrattester

Dagens tema. Flyt-tall. Koding. Tegnsett. Hvordan lagres de? Hvilke egenskaper har de? Hvordan regner man med dem?

ib. 1 ^^HE Lokalitetesklassifisering ^ Kobbe v i <: og Furuho men Oppdrett AS

INF 1000 høsten 2011 Uke september

INF1020 Algoritmer og datastrukturer GRAFER

Teori oppsummering (HW & DR) Rune Sætre

ﺪ ﻩ ﻋﺍ ﻮﹶ ﻭ ﻗ ﻪ ﹾﻘ ﹾﻟ ﻔ ﺍ ﹺﻝ ﻮ ﹸﺃ ﺻ ﹸ ﻣ ﺔ ﻮﹸ ﻈ ﻣ ﻨ $ ﺡﺮﺷ! " ' (# $% & )*! +,!* -

TALL. Titallsystemet et posisjonssystem. Konvertering: Titallsystemet binære tall. Det binære tallsystemet. Alternativ 1.

INF1000 undervisningen INF 1000 høsten 2011 Uke september

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

IN 147 Program og maskinvare

Læreboken på 45 minutter

Kapittel september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 7.

MAT1030 Diskret matematikk

DRIFTSANALYSER 2012/2013 FORELØBIGE RESULTATER

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

Farger. Introduksjon. Skrevet av: Sigmund Hansen

Å lese tall fra en fil, klassen Scanner

Olaf Christensen Digitale Bilder

UNIVERSITETET I OSLO

Tips til arbeidet med obligatorisk oppgave 2 i MAT-INF 1100 høsten 2004

Resymé: I denne leksjonen blir de viktigste tallsystemer presentert. Det gjelder det binære, heksadesimale og desimale tallsystem.

Kapittel 2 TALL. Tall er kanskje mer enn du tror

Handi-Lift EA7 Målskjema

Målet med dette notatet er å dokumentere at det er funnet løsmasser ved grunnen og å dokumentere miljøgiftkonsentrasjonen i sedimentene.

PhotoShop Grunnleggende ferdigheter

Farger Introduksjon Processing PDF

TALL. 1 De naturlige tallene. H. Fausk

1 Potenser og tallsystemer

Fjord Forsøksstasjon Helgeland AS

Transkript:

Hva skal jeg snakke om i dag? Digital representasjon dag@ifi.uio.no Hvordan lagre tall tekst bilder lyd som bit i en datamaskin INF Digital representasjon, høsten 25

Hvordan telle binært? Binære tall Skal vi telle med bit ( og ), må vi telle binært. Dette gjøres egentlig på samme måte som vi teller desimalt: Øk siste siffer med. Hvis vi ikke har flere siffer, sett til og gjenta for sifferet til venstre. Binært Desimalt 2 3 4 5 6 7 8 9 Notasjon Hvis det mulighet for tvil, skriver vi binære tall som 2 og desimale tall som. INF Digital representasjon, høsten 25

Litt matematikk Et matematisk blikk I det desimale tallsystemet har posisjonene vekt,,,,... =,, 2, 3,... (Notasjonen a n («a i n-te») betyr a } a {{ a}.) n ganger I det binære tallsystemet har posisjonene vekt, 2, 4, 8,... = 2, 2, 2 2, 2 3,... 2 = 8 4 2 2 3 2 2 2 2 = INF Digital representasjon, høsten 25

Vi teller igjen Vi teller binært med grupper av bit, f eks byte som inneholder 8 bit: = = = 2. = 26 = 27 = 2 7 Vi stopper når vi kommer til øverste bit. INF Digital representasjon, høsten 25

Hva med negative tall? Negative tall Et negativt tall n lagres i 8 bit som 2 8 + n = 256 + n: = = 256 = 255 = 2 = 3. = 27 = 28 Øverste bit («fortegnsbitet») angir om et tall er negativt. INF Digital representasjon, høsten 25

Hvor store tall kan vi da lagre? Heltall i Java Java tilbyr disse tallene: byte 8 bit 28 +27 short 6 bit 32 768 +32 767 int 32 bit 2 47 483 648 +2 47 483 647 long 64 bit 9 223 372 36 854 775 88 +9 223 372 36 854 775 87 INF Digital representasjon, høsten 25

Hvor store tall kan vi da lagre? Hvorfor er dette viktig? Overflyt.java class Overflyt { public static void main(string arg[]) { int v =, v2 = v*v; } } System.out.println("v=" + v + " og v2=" + v2); gir dette resultatet $ javac Overflyt.java $ java Overflyt v= og v2=333274 INF Digital representasjon, høsten 25

Hvor store tall kan vi da lagre? IkkeOverflyt.java class IkkeOverflyt { public static void main(string arg[]) { long v =, v2 = v*v; } } System.out.println("v=" + v + " og v2=" + v2); gir riktig svar: $ javac IkkeOverflyt.java $ java IkkeOverflyt v= og v2= INF Digital representasjon, høsten 25

Hvor store tall kan vi da lagre? Heksadesimal notasjon Det er lett å gjøre feil når man jobber med binære tall:...... Det er enklere å erstatte fire og fire binære sifre med heksadesimale sifre 6 F 6 : }{{} }{{} }{{} }{{} }{{} }{{} }{{} }{{} F 6 E 6 D 6 C 6 B 6 A 6 9 6 8 6 }{{} }{{} }{{} }{{} }{{} }{{} }{{} }{{} 7 6 6 6 5 6 4 6 3 6 2 6 6 6 INF Digital representasjon, høsten 25

Hvor store tall kan vi da lagre? Oktal notasjon Tidligere brukte man ofte oktal notasjon der man slår sammen tre og tre bit: }{{} }{{} }{{} }{{} }{{} }{{} }{{} }{{} 7 8 6 8 5 8 4 8 3 8 2 8 8 I dag har hex-notasjonen overtatt. 8 INF Digital representasjon, høsten 25

Men det finnes flere tall... Men hva med disse tallene? Andromedagalaksen er 24 29 742 km unna. π = 3,459265 Et H-atom er, 96 mm stort. Vi trenger ikke bare heltall men også tall som kan ha veldig små og veldig store verdier kan ha desimaler ikke behøver å være helt nøyaktige. INF Digital representasjon, høsten 25

Flyttall er løsningen Løsningen i det desimale tallsystemet er å oppgi tallet med -erpotens: Andromedagalaksen er 2,4 9 km unna. π = 3,459265 Et H-atom er 9,6 8 mm stort. Så lagrer vi både den justerte tallverdien (9,6) og -erpotensen ( 8). På en datamaskin gjør vi det samme, men bruker vi 2-erpotenser i float og double. 3 3 23 22 S 2-erpotens Tallverdien INF Digital representasjon, høsten 25

Flyttall er løsningen I Java har vi disse flyttallene: Minste Største float 32 bit 7 sifre,2 38 3,4 38 double 64 bit 6 sifre 2,2 38,8 38 Vi kan konvertere mellom heltall og flyttall: Konvertering.java class Konvertering { public static void main(string arg[]) { double f = 3.94, f2; int i; } } i = (int)f; f2 = (double)i; System.out.println("i=" + i + " og f2="+f2); Svaret blir: i=3 og f2=3. INF Digital representasjon, høsten 25

Trenger jeg bekymre meg for dette? Er dette viktig? FloatTest.java class FloatTest { public static void main(string arg[]) { double a =.234567892345678923456789; } } System.out.printf("a=%.3f\n", a); fungerer slik: $ javac FloatTest.java $ java FloatTest a=.23456789234567 INF Digital representasjon, høsten 25

Kan vi lagre tegn som tall? Tekster Hvordan lagrer vi tegn i datamaskinen? Det er lett: Sett opp en tabell over tegn vi trenger og gi hvert tegn et nummer. INF Digital representasjon, høsten 25

Er det virkelig så enkelt? Problemet Hva hvis ikke alle bruker samme tabell? INF Digital representasjon, høsten 25

Mange gode forsøk ASCII Første vellykkede forsøk på standardisering var ASCII (American standard code for information interchange) i 963: INF Digital representasjon, høsten 25

Mange gode forsøk + ASCII ble etter hvert brukt av de fleste. + Det er lett å sjekke om et tegn er et siffer eller en bokstav. + Det er lett å konvertere fra liten til stor bokstav. Mangler ÆØÅ og andre bokstaver og tegn. Det siste ga opphav til et utall av lokale varianter der for eksempel [\]{ } ble erstattet av ÆØÅæøå. Dette førte til «Gj vik-syndromet». INF Digital representasjon, høsten 25

April 995, DFL, Ifi/UiO Oversikt Tall Tekst Bilder Lyd Slutt Mange gode forsøk Latin- En klart bedre løsning ble ISO 8859- (Latin-). Den (og varianter) er ennå i bruk. 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 9 9 2 A 3 B 2 4 C 3 5 D 4 6 E 5 7 F 6 2 7 2 8 22 2 9 23 3 2 24 4 2 25 5 22 26 6 23 27 7 24 3 8 25 3 9 26 32 A 27 33 B 28 34 C 29 35 D 3 36 E 3 37 F ISO 8859 4 64 96 4 28 2 6 24 32 2 33 4! " # $ % & ( ) * +,. / 2 3 4 5 6 7 8 9 : ; < = >? 2 34 42 22 35 43 23 36 44 24 37 45 25 38 46 26 39 47 27 4 5 28 4 5 29 42 52 2A 43 53 2B 44 54 2C 45 55 2D 46 56 2E 47 57 2F 48 6 3 49 6 3 5 62 32 5 63 33 52 64 34 53 65 35 54 66 36 55 67 37 56 7 38 57 7 39 58 72 3A 59 73 3B 6 74 3C 6 75 3D 62 76 3E 63 77 3F @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ 4 65 4 66 2 42 67 3 43 68 4 44 69 5 45 7 6 46 7 7 47 72 48 73 49 74 2 4A 75 3 4B 76 4 4C 77 5 4D 78 6 4E 79 7 4F 8 2 5 8 2 5 82 22 52 83 23 53 84 24 54 85 25 55 86 26 56 87 27 57 88 3 58 89 3 59 9 32 5A 9 33 5B 92 34 5C 93 35 5D 94 36 5E 95 37 5F a b c d e f g h i j k l m n o p q r s t u v w x y z { } ~ 6 97 4 6 98 42 62 99 43 63 44 64 45 65 2 46 66 3 47 67 4 5 68 5 5 69 6 52 6A 7 53 6B 8 54 6C 9 55 6D 56 6E 57 6F 2 6 7 3 6 7 4 62 72 5 63 73 6 64 74 7 65 75 8 66 76 9 67 77 2 7 78 2 7 79 22 72 7A 23 73 7B 24 74 7C 25 75 7D 26 76 7E 27 77 7F 8 29 2 8 3 22 82 3 23 83 32 24 84 33 25 85 34 26 86 35 27 87 36 2 88 37 2 89 38 22 8A 39 23 8B 4 24 8C 4 25 8D 42 26 8E 43 27 8F 44 22 9 45 22 9 46 222 92 47 223 93 48 224 94 49 225 95 5 226 96 5 227 97 52 23 98 53 23 99 54 232 9A 55 233 9B 56 234 9C 57 235 9D 58 236 9E 59 237 9F A 6 24 ª «± ² ³ µ ¹ º» ¼ ½ ¾ A 62 242 A2 63 243 A3 64 244 A4 65 245 A5 66 246 A6 67 247 A7 68 25 A8 69 25 A9 7 252 AA 7 253 AB 72 254 AC 73 255 AD 74 256 AE 75 257 AF 76 26 B 77 26 B 78 262 B2 79 263 B3 8 264 B4 8 265 B5 82 266 B6 83 267 B7 84 27 B8 85 27 B9 86 272 BA 87 273 BB 88 274 BC 89 275 BD 9 276 BE 9 277 BF À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß 92 3 C 93 3 C 94 32 C2 95 33 C3 96 34 C4 97 35 C5 98 36 C6 99 37 C7 2 3 C8 2 3 C9 22 32 CA 23 33 CB 24 34 CC 25 35 CD 26 36 CE 27 37 CF 28 32 D 29 32 D 2 322 D2 2 323 D3 22 324 D4 23 325 D5 24 326 D6 25 327 D7 26 33 D8 27 33 D9 28 332 DA 29 333 DB 22 334 DC 22 335 DD 222 336 DE 223 337 DF à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ 224 34 E 225 34 E 226 342 E2 227 343 E3 228 344 E4 229 345 E5 23 346 E6 23 347 E7 232 35 E8 233 35 E9 234 352 EA 235 353 EB 236 354 EC 237 355 ED 238 356 EE 239 357 EF 24 36 F 24 36 F 242 362 F2 243 363 F3 244 364 F4 245 365 F5 246 366 F6 247 367 F7 248 37 F8 249 37 F9 25 372 FA 25 373 FB 252 374 FC 253 375 FD 254 376 FE 255 377 FF INF Digital representasjon, høsten 25

Den endelige løsningen Unicode Men det er bare én løsning: en tegnkoding som omfatter alle skriftspråk i verden. Den heter Unicode og er nå stort sett ferdig. Unicode skal omfatte alle skriftspråk som brukes eller har vært brukt Det er plass til drøyt tegn. 87 tegn er foreløbig definert. Mer og mer programvare (som Java) støtter Unicode. INF Digital representasjon, høsten 25

Den endelige løsningen UTF-8 Hvordan lagre Unicode-tekst uten å bruke for mye plass på disk eller over nettet? UTF-8 bruker fra til 4 byte til å lagre et tegn: $ U+24 U+A2 =C U+2AC U+384 Unicode og UTF-8 er nå standard ved Ifi. INF Digital representasjon, høsten 25

Hva er et bilde? Bilder Et bilde kan vises på en LCD-fargeskjerm med de tre RGB-fargene: Rød Grønn Blå (Utskrift på papir bruker CMYK (Cyan, Magenta, Yellow, black) i stedet.) INF Digital representasjon, høsten 25

Oversikt Tall Tekst Bilder Lyd Slutt Et veldig enkelt eksempel på et rasterbilde Et eksempel På Ifis hjemmeside finnes et «favicon». INF Digital representasjon, høsten 25

Et veldig enkelt eksempel på et rasterbilde Dette er et rasterbilde på 6 6 ruter. I hver rute angir vi RGB-verdiene; her Mørk rød: R=83/255, G=47/255, B=36/255 Gjennomsiktig INF Digital representasjon, høsten 25

Er det mulig å komprimere rasterbilder? Et rasterbilde kan ta stor plass: Favicon-en til UiO er på 6 6 3 byte = 768 B Et skjermbilde kan være på 92 2 3 byte = 6,9 MB Er det mulig å komprimere dette? INF Digital representasjon, høsten 25

Er det mulig å komprimere rasterbilder? Fargetabell Hvis det ikke er mange ulike farger, bruk en tabell over fargene. Vårt favicon trenger da + 6 + 6 6 8 byte = 39 B INF Digital representasjon, høsten 25

Er det mulig å komprimere rasterbilder? «Run-length»-koding I et rasterbilde er ofte piksler ved siden av hverandre like. 6 6 5, 6, 5 5, 6, 5 5, 6, 5 5, 6, 5 5, 6, 5 5, 6, 5 6 5, 6, 5 5, 6, 5 5, 6, 5 5, 6, 5 5, 6, 5 5, 6, 5 6 INF Digital representasjon, høsten 25

Oversikt Tall Tekst Bilder Lyd Slutt Og om vi er villig til å godta en reduksjon i kvaliteten? For fotografier gjelder dette: På fotografier er det sjelden brå overganger. Vi mennesker kan bare skjelne et begrenset antall nyanser. Vi søker automatisk etter mønstre. INF Digital representasjon, høsten 25

Og om vi er villig til å godta en reduksjon i kvaliteten? JPEG-formatet JPEG benytter dette til å lage en forenklet versjon av bildet. Ekte rasterbilde JPEG % JPEG 5% JPEG 25% JPEG % JPEG 5% 4,7 MB 5,5 MB,94 MB,6 MB,34 MB,24 MB (Dette er komprimering med tap. Det er umulig å komme tilbake til det opprinnelige bildet.) INF Digital representasjon, høsten 25

Oversikt Tall Tekst Bilder Lyd Slutt Originalbildet % INF Digital representasjon, høsten 25

Kvalitet 5% INF Digital representasjon, høsten 25

Kvalitet 25% INF Digital representasjon, høsten 25

Kvalitet % INF Digital representasjon, høsten 25

Kvalitet 5% INF Digital representasjon, høsten 25

Oversikt Tall Tekst Bilder Lyd Slutt En sammenligning Original INF Digital representasjon, høsten 25 Kvalitet 5%

Men hva med vektorer? Vektorgrafikk Det er også mulig å lagre bilder som linjer og kurver: ifi-logo.eps : newpath 38.494 2.83464 moveto 38.494 5.44878 lineto 28.3464 5.44878 lineto 2.3242 5.44878 4.93857 2.286 4.93857 28.3464 curveto 4.93857 35.7735 lineto 36.56685 35.7735 lineto 36.56685 48.38728 lineto 2.32443 48.38728 lineto 2.32443 28.3464 lineto 2.32443 4.6295 4.667 2.83464 28.3464 2.83464 curveto closepath stroke : INF Digital representasjon, høsten 25

Men hva med vektorer? Raster Vektor INF Digital representasjon, høsten 25

Hva skal jeg bruke? Anbefalinger Bruk vektorgrafikk om mulig: SVG, EPS, PDF. For fotografier bruk JPEG i så god kvalitet som mulig. For annen rastergrafikk bruk PNG med så mange piksler som mulig. INF Digital representasjon, høsten 25

Hva er lyd? Hvordan lagre lyd Lyd er bølger i luft, men de kan overføres som strøm: INF Digital representasjon, høsten 25

Hvordan kan vi lagre lyd? Vi kan lagre lyden ved å måle strømmen med jevne mellomrom: Men for å lagre digitalt må vi måle styrken i faste intervaller: INF Digital representasjon, høsten 25

Hvordan kan vi lagre lyd? Med disse målingene kan vi gjenskape lyden (men ikke helt nøyaktig): INF Digital representasjon, høsten 25

Men hva med lydkvaliteten? Kvaliteten på lyden blir da avhengig av hvor ofte vi måler hvor mange trinn vi benytter til målingen CD En vanlig CD har 74 minutter spilletid med god lyd: 44 målinger («samples») per sekund 2 6 = 65 536 intervaller (dvs 2 byte) 2 kanaler + 37% feilkorreksjonsdata En CD må derfor ha plass til 783 MB. INF Digital representasjon, høsten 25

Kan vi komprimere lyd? Er det mulig å spare plass? Høyre og venstre kanal er stort sett nesten like. Det er lurere å lagre venstre kanal samt forskjellen. I stedet for å lagre hver måling med sin verdi, holder det å lagre forskjellen. Men: På grunn av feil og spoling må man av og til lagre den ekte verdien. INF Digital representasjon, høsten 25

Kan vi komprimere lyd? Enda mer plass kan vi spare om vi tar hensyn til hvordan vi mennesker hører: MP3 Vi kan ikke høre lyder under 2 Hz og over 2 Hz. Om vi hører en kraftig lyd med én frekvens, hører vi ikke litt svakere lyder med noe høyere frekvens. Etter å ha hørt en sterk lyd, hører vi dårligere en tid etterpå (inntil,2 s). MP3 utnytter dette og tillater til dels sterk komprimering: Ekte CD MP3 «CD-kvalitet» MP3 «FM-radio» MP3 «telefonkvalitet» 4 kb/s ca 2 kb/s ca 6 kb/s ca kb/s INF Digital representasjon, høsten 25

Hva har vi nevnt i dag? Oppsummering Alt er bit i en datamaskin. Det finnes ulike typer tallverdier, og programmereren må velge riktig. Det er mange ulike tegnkodinger å forholde seg til (ennå). Rasterbilder og vektorbilder er nyttige til hvert sitt formål. Lydkoding med MP3 er blitt en standard, men vi kan velge kvaliteten. INF Digital representasjon, høsten 25