Under knappt hälften av den tid vi haft datorer, har dessa
varit oförmögna att visa färggrafik. De har presenterat sitt utdata med tända
eller släckta bildelement. De första datorerna hade ingen bildskärm alls.
Datamaskinen ENIAC (1946) levererade sitt utdata i form av hål i pappskivor,
och en av de första hemdatorerna, Altair 8800 (1974), hade några röda
lysdioder. Rätt snabbt ansåg man att den mest effektiva metoden att presentera
utdata var att visa "tecken" på en tv-skärm, som t.ex. Commodore PET
(1977) gjorde. En svart skärm visade 40 x 25 gröna tecken som byggdes av 8 x 8
bildelement (pixlar), alltså 64 punkter per tecken och 320 x 200 punkter
totalt. Datorer med bildskärm var alltså som regel monokroma på 70-talet,
vilket betyder att de skiljer på tända eller släckta bildelement utan att lägga
någon annan aspekt i bildelementens färg. Grafiken kostade bara en bit per
pixel, alltså 8 kilobytes totalt (320 x 200 / 8 = 8000).
År 1980 fick vi uppleva den första hemdatorn som kunde visa
grafik i färg - TRS-80 Color Computer 1. Just färgen var så pass viktig att
själva operativsystemet, en BASIC-interpretator, fick namnet Color BASIC 1.0. Om det är tillåtet att
uttrycka sig i moderna mått: Datorn var utrustad med en processor på knappt
0,0009 gigahertz, vilket är klent jämfört med dagens mobiltelefoner som klarar
kring 2,0 gigahertz (iPhone 6 har en processor på 1,6 GHz och Nokia Lumia 930
har en processor på 2,2 GHz). TRS-80 var utrustad med ett minne på 0,000004 GB (vilket kan jämföras med
dagens standard på 8 GB) och den var helt utan sekundär lagring, vilket idag kan
handla om hårddiskar på terabytes.
Personligen stannade jag vid monokroma
datorer ganska länge. Jag gick från Sinclair ZX81 till Luxor ABC80. När mina
vänner började använda Vic 20, Sinclair Spectrum och Commodore 64, så harvade
jag vidare med min ZX81 ända fram till år 1986 då jag fick tillgång till en
Commodore 128 med en 1571:a som sekundär lagringsenhet, vilket både innebar att
jag kunde avbryta mitt arbete på kvällen, och återuppta gårdagens arbete dagen
efter, genom att återkalla det från sekundärminnet.
På den tiden använde man alltså en bit per
bildelement. Varje bildelement (eller pixel) utgör en punkt i den matris som
utgör skärmbilden, och varje bildelement beskrevs av en bit. Commodore 64 hade
en palett av på 16 olika färger, men en bild på 200 x 320 pixlar kunde bara
visa två av dessa färger: En förgrundsfärg och en bakgrundsfärg. Varje
bildelement kunde fortfarande bara vara tänt eller släckt. Men C64:an hade
dessutom ett flerfärgsläge.
Genom att para ihop två pixlar, fick man
helt plötsligt två bitar per pixel. Förvisso var dessa pixlar större, vilket
gjorde att grafiken blev kantigare, men nu kunde varje pixel (totalt 160 x 200
avlånga pixlar) beskriva ett värde av fyra tillgängliga (00, 01, 10 eller 11)
istället för bara 0 eller 1. Därmed kunde C64 visa fyra av sina 16 färger på
skärmen, om än på bekostnad av antalet pixlar. De fyra färgerna valdes från
listan av 16 tillgängliga färger.
Sedan har datorerna succesivt utrustats
med mer grafikminne och större färgpalett. På 90-talet fanns persondatorer som
med nästan fem gånger så hög upplösning (640 x 480 pixlar) kunde 256 färger ur
en palett på 16,8 miljoner färger, vilket kräver 1 megabyte grafikminne. Varje
pixel beskrevs av en byte istället för en bit, och varje byte var en referens
till en palett.
Idag har man dels betydligt fler
bildelement på skärmen, och dessutom kostar man på sig hela tre bytes per
bildelement. Detta ger oss 24 bitar per pixel, vilket ger oss möjlighet att ha
16,8 miljoner kombinationer av tända och släckta bitar per pixel. Därmed har vi
eliminerat behovet av att ha en palett att hänvisa till - varje pixel kan
beskriva en färg istället för bara en position i en palett, där de första 8 bitarna
av 28 beskriver färgens röda del, de nästa 8 beskriver färgens gröna del och de
sista 8 beskriver färgens blå del. Utifrån dessa tre färger kan vi få fram alla
tänkbara färger genom additiv färgblandning.
Att förstå additiv färgblandning är enkelt
om man tänker sig att man befinner sig i ett vitt rum utan fönster eller
belysning. Trots att rummet är vitt så ser vi bara svart, eftersom inget ljus
kommer in i våra ögon. Men om du lyser med en röd ficklampa på den vita väggen,
kommer åtminstone rött ljus att komma in i dina ögon. Den vita väggen
reflekterar alla frekvenser, och eftersom endast rött ljus strålar mot väggen,
är det endast rött ljus som kommer in i våra ögon. Men om vi samtidigt lyser
med en grön ficklampa på samma punkt på väggen, kommer både röda och gröna
strålar att reflekteras från väggen, vilket vi uppfattar som gul färg.
Om vi låter varje pixel beskriva sin egen
färg, men tänker oss att varje pixel endast består av tre bitar där den första
representerar röd, den andra grön och den tredje blå, kan vi visa åtta olika
färger.
000 skulle vara svart, eftersom ingen av
färgerna lyser.
100 skulle ge röd färg, eftersom den
första representerar röd. Av samma skäl skulle 010 vara grön och 001 vara blå.
Om vi istället för tre bitar (en per grundfärg)
skulle ha sex bitar per pixel (två per grundfärg), behöver inte röd bara vara
tänd eller släkt (0 eller 1). Nu kan vi säga att 00 betyder släckt, 01 betyder 33%
röd, 10 betyder 67% röd och 11 betyder 100% röd.
Detta öppnar som synes för möjligheten att
visa mörkröd, du kan nu skapa ljusröd (eller rosa) genom att visa mycket röd
och lite grön och blå. Vi kan visa lite av alla färger och få grå, vi kan visa
en färg som är på väg att bli lila utan att bara fullt lila. Vi kan även visa
lite av varje färg, med övervikt på grön för att få en grågrön nyans.
Kommentarer
Skicka en kommentar