Informasjonskoding

I kapitlet om logiske porter og kapitlet om tallsystemer beskrives hvordan en datamaskin bruker totallsystemet (det binære tallsystemet) til å behandle informasjon, for eksempel kodes tallet 4210 som 1010102. Men også alt annet som lagres i en datamaskin, dokumenter, programmer, bilder, musikk, film, etc. kodes i totallsystemet, det vil si som sekvenser av 1 og 0. Ved hjelp av bare to ulike symboler er det altså mulig å representere all informasjon i hele verden!

Koding av tekst

Å kode tekst er rimelig liketil, en tilordner bare et tall til hvert enkelt tekstsymbol. Til å begynne med ble slik tilordning gjort ganske tilfeldig, slik at metoden varierte fra system til system og gjorde det vanskelig å flytte informasjon fra en datamaskin til en annen. For å bøte på problemet ble ASCII-systemet innført.

ASCII

ASCII står for ′American Standard Code for Information Interchange′, og var det første standardiserte systemet for oversetting mellom tekst og tall.

Et utvalg ASCII-koder er vist under. Som en ser, kodes f.eks. ′A′ som 6510 = 4116 = 10000012, ′a′ som 9710 = 6116 = 11000012, etc.

Tegn Desimal kode Heksadesimal kode Binær kode   Tegn Desimal kode Heksadesimal kode Binær kode
6 54 36 110110 Z 90 5A 1011010
7 55 37 110111 [ 91 5B 1011011
8 56 38 111000 \ 92 5C 1011100
9 57 39 111001 ] 93 5D 1011101
: 58 3A 111010 ^ 94 5E 1011110
; 59 3B 111011 _ 95 5F 1011111
< 60 3C 111100 ` 96 60 1100000
= 61 3D 111101 a 97 61 1100001
> 62 3E 111110 b 98 62 1100010
? 63 3F 111111 c 99 63 1100011
@ 64 40 1000000 d 100 64 1100100
A 65 41 1000001 e 101 65 1100101
B 66 42 1000010 f 102 66 1100110
C 67 43 1000011 g 103 67 1100111
D 68 44 1000100 h 104 68 1101000
E 69 45 1000101 i 105 69 1101001
Utdrag av ASCII-tabellen

Den første ASCII-tabellen inneholdt bare 95 tegn, og ingen hadde tenkt på at det ville bli behov for å kode bokstaver som ikke eksisterte i det engelske alfabetet, for eksempel ′Æ′, ′Ø′ og ′Å′. For å kunne representere nasjonale bokstaver, ble det laget en del klatteløsninger, der kodene varierte fra system til system. Det kunne f.eks. medføre at mens en på skjermen så bokstavene ′Æ′, ′Ø′ og ′Å′, ble de forvandlet til ′[′, ′\′ og ′]′ på utskrifter.

Det ble derfor laget en utvidet tabell med ytterligere 96 koder, extended ASCII (ISO 8859).

Unicode

De 191 kodene i extended ASCII blir allikevel for lite hvis en skal representere all verdens skriftsymboler. Det er derfor utviklet et nytt kodesystem, Unicode som inneholder over 50.000 symboler, tegn fra alfabetene i alle levende, og enkelte utdødde språk. Det er til og med foreslått å innarbeide Tolkiens alvespråk Tengwar, og Star Trek språket Klingon i Unicode. Unicode utvides ved behov, noe som f.eks. skjedde da Euro-symbolet ′€′ ble introdusert.

Koding av sammensatt informasjon

Koding av bilder, film, musikk, etc. er mer komplisert enn koding av tekst, men prinsippet er det samme, en følger et sett gitte regler for å oversette informasjon til tall.

Regelen for å oversette farger baserer seg på at alle farger kan bygges opp av de tre grunnfargene rød, grønn og blå. Ved å variere styrken på disse, kan en mengde fargenyanser representeres. Intensiteten på hver av grunnfargene angis ved hjelp av en styrkeskala som går fra 0 til 255 (FF16), noe som gir i alt 256 * 256 * 256 = 16777216 (100000016) kombinasjonsmuligheter, langt flere varianter enn øyet kan skjelne.

Fargestyrken angis med to heksadesimale sifre for hver farge (åtte binære), i rekkefølgen rød – grønn – blå. For eksempel betyr 473F8A16 = 0100011100111111100010102 en fargenyanse med en styrke på 4716 rødt, F816 grønt og 8A16 blått.

I bildet under kan du variere styrken på fargekomponentene, og se både hvordan den resulterende fargen blir, og hvilken heksadesimal kode som brukes til å representere den.

 

Rød

Grønn

Blå

Fargekode: 000000

Men et bilde består sjelden av en enkelt farge, slik som her. Da deler en bildet opp i enkeltelementer, piksler, og angir fargen piksel for piksel. Bildet over inneholder 125 * 125 = 15625 piksler.

Informasjonsmengden som trengs for å kode et bilde kan bli svært stor, og for å spare plass, kan en utføre en kompresjon. I bildet over for eksempel, trenger en ikke gjenta fargekoden 15625 ganger. Siden bildet bare har én farge, er det nok å angi fargekoden én gang, samt informere om hvor stort bildet er.

Når en skal lagre et bilde en har arbeidet med i et billedbehandlingsprogram, må en velge hva slags format en vil bruke. Eksempel på billedlagringsformater er JPEG, TIFF, GIF, PNG og BMP. Hver av disse har sin egen måte å kode billedinformasjonen på.

Dekoding

Når en skal hente ut informasjon fra datamaskinen og presentere den på skjerm eller skriver, må den dekodes. Det vil si at sekvensene av 1 og 0 må oversettes tilbake til det som var utgangspunktet, en tekst, et bilde, etc. For at dette skal være mulig, må en vite hvordan kodingen er gjort. Kjenner en ikke koden, er det umulig å reprodusere noe korrekt. Det er for eksempel ikke mulig å avgjøre om tallsekvensen 42524116 er en ASCII-kode som representerer ordet ′BRA′, om det er en fargenyanse med Rød = 4216, Grønn = 5216 og Blå = 4116, eller noe helt annet.

Opplysning om hvilken koding som er brukt, lagres i navnet som referer til et sett informasjon, filnavnet. Slutter et filnavn på ′txt′, har vi med bokstaver og tegn å gjøre. ′jpg′ er en type billedformat, ′mp3′ er et komprimert musikkformat, etc. Blir navnet feil, blir informasjonen mistolket. Et eksempel er vist under, der et bilde i jpg-format, ′mandrill.jpg′ har fått endret navn til ′mandrill.txt′. Datamaskinen tror da det dreier seg om ASCII-tekst, og åpner bildet i teksteditoren Notepad. Den binære informasjonen som egentlig beskriver et bilde, blir tolket som meningsløse sekvenser av bokstaver og tegn.

Mandrill
mandrill.jpg
Feiltolkning av bildefil
mandrill.txt

Med nye generasjoner programvare kommer nye formater, gamle forsvinner, og generasjonene går fort i dataverdenen. En risikerer derfor at informasjon som lagres i dag er uleselig om få år, fordi en ikke lenger har nøkkelen til å dekode den. Dette problemet er spesielt stort ved såkalte proprietære formater, der en bedrift har patent på et format, og innholdet ikke er offentlig kjent, slik det er i åpne standarder. For å kunne dekode informasjon lagret vha. en bedrifts programvare, er en helt avhengig av at bedriften fortsetter å eksistere, og fortsetter å levere programvare til bruk på nyere generasjoners maskiner.

Kilder

  • Gisle Hannemyr: Hva er Internett. Universitetsforlaget 2005