2 Digital grafik 5 - Institutionen för data

Ett kompendium om grundläggande teorier och tekniker kring ämnet
digital grafik
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Index
1 Lagring av digital media
1
1.1 Bitar och Bytes
1.2ASCII
1.3Enhetsbeteckningar
1
2
4
2 Digital grafik
5
2.1Pixlar
5
2.2Upplösning
5
2.3 Skärmdumpar (Screen shots)6
2.4 Bildskärmar och uppdateringsfrekvenser 6
2.5 Bildförhållanden och synfält
7
2.6 Pixelarea 7
2.7 Pixel- och punktdensitet (PPI och DPI)
8
3Färg
3.1 Ögats uppfattning
3.2 Additiv färgblandning (RGB)
3.3Sub-pixlar
3.4 Subtraktiv färgblandning (CMYK)
3.5Färgdjup
4Bildteknik
16
16
17
18
18
19
21
4.1Lager
21
4.2Bitmap
22
4.3 Vektorer 22
4.4 Rendering 25
4.5Pivotpunkter
27
4.6Transformeringar
28
4.7Transparens
30
4.8 Alpha värden
30
4.9 Maskning och friläggning
31
4.10 Aliasing och Anti-Aliasing
32
4.11 Aliasing och Anti-Aliasing - Fördjupning
34
4.12Bildformat (work in progress)35
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
1 Lagring av digital media
Nedan följer en kort och förenklad text om bitar och Bytes. Texten ämnar ge en snabb inblick kring begrepp
som kommer att förekomma senare i kompendiumet.
1.1 Bitar och Bytes
I ett binärt (digitalt) system hanteras data i sin minsta beståndsdel i form av bits,
eller bitar på svenska. En bits uppgift är att hålla reda på ett av två lägen, oftast
beskrivna som ”1” eller ”0”, “på” eller ”av”.
I bilden till höger kan ni se en reprensentation av en bits olika tillstånd.
Genom att sätta ihop flera bitar, så att de hamnar i följd efter varandra, kan dessa bitar läsas som en s.k. bitsträng. Vilket tillstånd de individuella bitarna har i strängen utgör vad hela strängen har i värde. Bitsträngars
värden kan i sin tur nyttjas av en datorer för att utfärda olika instruktioner. Om man t ex. kombinerar två bits i
en sekvens kan man totalt producera fyra möjliga värden: ”00”, ”01”, ”10” och ”11”. Man kan se det som fyra
olika koder som ett system, beroende på ändamål, kan nyttja till utfärda olika saker.
Exempel på användningsområde följer.
Exempel 1 - Att räkna decimalt med binära system
Då datorsystem baseras på bitkoder, som gärna blir långa och komplexa vid mer avancerade instruktioner,
har man funnit värde i att standardisera vissa koder så att de lättare kan användas av användare. En sådan
standard, dvs. ett sätt att tolka bitkoder, är vid vid räkneskap av det decimala talsystemet.
Se nedan.
Vi börjar med att räkna från talet “noll”. I detta fall räcker det
med att man har en bit, då en bit kan utgöra ett av två värden:
(0 eller 1). En binär “0” motsvarar noll decimalt och således är
“1” binärt ett decimalt. Om man vill räkna till två eller mer, då
får man kombinera flera bitar i sekvens. Genom att t ex. kombinera två bitar kan man fortsätta räkna upp till tre. I detta fall
skulle talet två bli “10” binärt och talet tre skulle då bli “11”.
Fortsättningsvis skulle talet fyra kräva tre bitar och det skulle
få bitsträngskoden “100“. Se tabellen til höger för fler exempel.
Binärt
0
1
10
11
100
...
1111 1110
1111 1111
Decimalt värde
Bitar i sekvens
0
1
2
3
4
...
254
255
1
1
2
2
3
...
8
8
För lättare hantering av flera bits brukar man kombinera bitsekvenser i strängar om 8bits för att skapa en s.k.
”Byte”. En byte ger oss möjligheten att hålla reda på 256 olika värden. Fler exempel och förklaringar följer.
Trivia: bit står för binary digit.
1
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Exempel 2: I bilden nedan har man slagit samman åtta stycken bitar för att bilda Byte-strängen ”0110 0001”,
detta motsvarar i decimal talform talet “97”. Notera att talet behöver minst sju bitar, då sju bitar kan rymma
upp till 128 möjliga olika värden (0 till 127). Sex bitar skulle i kontrast inte räcka till, då det endast håller reda
på 64 möjliga värden.
Antal bits i sekvens:
Antal möjliga kombinationer:
1.2 ASCII
ASCII är en teckenkodstandard som nyttjas för att skapa bokstäver och andra tecken. Detta fungerar genom
att ASCII mappar (tolkar) olika bitsträngar till bokstäver och andra tecken. ASCII nyttjar 7st bits (128 olika
värden) i enlighet med en tidig Amerikansk teckenkods-standard.
Då andra länder behövt fler olika tecken har andra variationer av ASCII uppkommit, som t.ex. en svensk ASCIIstandard på 7bit där vi bl.a. inkluderar ”å”, ”ä” och ”ö”. Det finns även många andra teckenkods-standarder
som t.ex. UTF-8 (åtta-bitars Unicode transformationsformat) eller UTF-16. Unicode är designad för att försöka binda ihop alla världsliga språk under en teckenkodning och med UTF-16 har man med 16bits möjlighet att
lagra upp till 65’536 olika värden/tecken. Vad som är viktigt att notera är att de sju första biten i UTF-standarden mappar exakt mot ASCII-standarden. Det vill säga att en text som är skriven i ASCII kan läsas av UTF.
Olika system stödjer olika teckenkodstandarder, men genom att de flesta system idag hanterar multipla teckenkodsstandarder kan en text som är skriven på en PC med windows visas upp på en MAC eller mobiltelefon
mm. Detta förutsätter dock att rätt teckenkodning finns inom systemet och är vald vid uppvisningstillfället.
Trivia: ASCII står för American Standard Code for Information Interchange.
I de flesta systemsammanhang, kan en Byte refereras till som ”ett tecken”. Förenklat sätt, menar man
på att det är den ungefärliga lagringsplatsen som ett specifikt tecken tar upp. Om man säger att en
byte motsvarar ett tecken, då skulle en megabyte motsvara en miljon tecken.
2
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Exempel 3: När vi trycker ned tangenten “a” (lilla a) på tangentbordet, skickas instruktioner till datorn om
vilken bokstav som blivit vald. Detta är möjligt genom att de olika tangenterna skickar signaler, som via ett
operativsystem, mappas för bla. ASCIIs teckenkodning. Den valda tangenten, blir i ASCII bokstaven “a”, vilket
i binär form, blir strängen ”0110 0001”. Skulle man läsa samma sträng i decimal form får man talet ”97”.
binär bitsträng (8 bits)
Med ASCII tolkas bitsträngen
till vänster som ett “a“.
a
Notera att bilden och exemplet är en förenkling av en mer omfattande process.
Observera! ASCII inte mappar 0-9 på samma vis som vid vanlig decimal inläsning. Siffran “tre” i ASCII har bitsträngen “00110011”, skulle man läsa samma bitsträng decimalt skulle man få ut talet “51”.
I korthet.
Olika digitala system läser bitsträngar som koder. Dessa kan, beroende på hur ett system är designat, tolkas
av datorer, mobiltelefoner eller andra digitala enheter för att utfärda olika saker.
3
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
1.3 Enhetsbeteckningar
Nedan följer en tabell på några dataenheters mått och storlek.
Enhet
bit
byte
kilobyte
megabyte
gigabyte
terabyte
beteckning
b
B
kB
MB
GB
TB
Värde
1b
1B
1024B
10242B
10243B
10244B
Exakt värde
1b (innehåller värdet 1 eller 0)
1B (8bits)
1 024B
1 048 576B
1 073 741 824B
1 099 511 627 776B
Trivia: SI enheterna ”kilo”, ”mega”, ”giga” etc. stämmer inte in exakt för den digitala användningen av enheterna. ”kilo” betyder värdet ”1000” men en ”kilobyte” har värdet ”1024” (bytes). I detta fall har man
valt att göra ett undantag. Andra standarder, som ”IEC 60027” (IEC, International Electronical Commisions) har angivelsen ”Ki” (kibi) för värdet ”1024”, ”Mi” (mebi) för värdet ”10242” och Gi (gibi) med
värdet ”10243” etc. Detta medför att IEC 60027 är mer korrekt men SI vinner fortfarande i popularitet.
Enligt en prognos från det stora nätverksföretaget “Cisco” (1 jun, 2011) kommer den globala Internettraffiken nå upp till ca en zettabyte per år, år 2015.
CISCO, “Entering the Zettabyte Era”
Hämtat från http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/
VNI_Hyperconnectivity_WP.1
Åtkomst 6 augusti 2012
En zettabyte har ett värde av 1021, vilket betyder 1’000’000’000’000’000’000’000 bytes eller tusen, miljoner, miljoner, miljoner tecken. I en annan kontext skulle denna mängd information motsvara ca 4,7
miljarder kopior av hela Blu-Ray “HD-extended versionen av Sagan om Ringen triologin” som ligger på
ca 212,5GB, utan extra material.
4
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
2 Digital grafik
2.1 Pixlar
För att kunna rita ut en bild på en bildskärm, nyttjar dagens datorsystem en teknik där tätt intilliggande fyrkantiga punkter “pixlar” täcker
upp ett två-dimensionellt plan (en bildskärmyta). Genom att manipulera färgen hos varje enskild pixel kan man via denna teknik bilda
olika enkla mönster och/ eller rita ut komplexa bilder som t ex. fotografier. I huvudsak kan man definera detaljrikedom i en bild efter,
antalet pixlar som gör upp bilden samt vilket färgdjup som pixlarna
nyttjar.
En vanlig bildskärm ritar ut pixlar genom att tillsätta ljus vid varje pixelposition. Vid fullt ljus utgör pixelns färg
vitt, avsaknad av ljus gör pixel svart. Skärmar utgår således från svart som grund, dvs. avsaknad av ljus enligt
en s.k. additiv färgmodell (se avsnitt 3.2 för mer information om hur man tillsätter färg per pixel).
I en enkel bildfil kan två särskilda värden tas i beaktning. 1: Varje pixels position på bildskärmsytan. 2: Varje pixels individuella färgnyans. Lagring av denna information nyttjar en egen bitsträngs-tolkning som är förklarad
för systemet via data i en bildfil. Vid uppläsning av en given bildfil behöver systemet i fråga kunna ha stöd
för att läsa upp filen, vilket i vanligast fall görs av något bildläsningsprogram installerat på operativsystemet.
Pixlars enhetsbetäckning anges enligt följande: PX, 1000px = tusen pixlar.
2.2 Upplösning
Inom datorgrafik definieras upplösning som ett mått för att mäta detaljrikedom. Med detaljrikedom menas
det antal pixlar som nyttjas på ett givet område. Det finns flera enhetsbegrepp för att definera upplösning.
En vanlig måttangivelse för upplösning anges enligt: bildens bredd (W för width) följt av bildens höjd (H för
Height) definerat i pixlar. Ett alternativt sätt att utrycka W och H är genom att ange X och Y.
I kommande avsnitt anges flera exempel på olika upplösningsstandarder.
Trivia: Man kan fråga sig varför olika upplösningar har så ”konstiga” mått. Som t.ex. 1024x768 som kan tyckas, kunde varit ”1000x700” för lättare ihågkommande. Men precis som med lagring av digital media
hanteras data i binära system bäst (i det här fallet som 1024 och 768) då det är en multipel av talbasen
2. 1024 är densamma som 210 och 768 är 3/4 av 1024 vilket ger en upplösning som är anpassad efter
ett 4:3 förhållande (se bildförhållande för mer information).
De flesta upplösningsstandarder har definerats av VESA som står för “Video Electronics Standards
Assocition”. VESA är en interationell standardform för datorgrafik som grundades 1989 av flera stora
grafikkortstillverkare.
5
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
2.3 Skärmdumpar (Screen shots)
När en användare t ex. nyttjar ett användargränssnitt som windows eller MAC OS, kan den visuella presentationen av gränssnittet fylla upp en bildyta med ett flertal olika grafiska objekt. Den bild som en användare ser
vid ett givet tillfälle på en bildskärm, utrycks som skärmdump eller skärmbild (screen shot, ENG). En skärmdump kan ses som ett fotografi, taget vid ett specifikt tillfälle. När grafik skickas från en dator till en bildskärm,
skickas den i form av en bild. Oavsett hur mycket olika grafiska objekt en skärmdump innehåller, hanteras
denna bild, när den skickas till en uppvisningsenhet som en sammansatt bild.
2.4 Bildskärmar och uppdateringsfrekvenser
När en uppvisningsenhet som t ex. en bildskärm tar emot en bild, kommer enheten att uppdatera bilden ett
antal gånger per tidsenhet, detta mått utrycks som uppdateringsfrekvens. Uppdateringen möjliggör att ett
innehåll kan förändras över tid och denna föränderlighet är en avgörande grundfaktor för att visa upp rörlig
media samt interaktivitet bland digitala system.
Bland tidiga TV-apparater, nyttjade dessa en elektronrörs-teknik (katodstrålrör) för att visa upp bild. Begränsningar med tekniken medförde att TV-apparaters uppdateringsfrekvenser behövde anpassas till elnätens
uppdateringsfrekvenser. I Europa Innebar det att TVn behövde anpassa sig till en uppdateringsfrekvens på
50Hz medan det i t ex. USA innebar en frekvens på 60Hz. Hz eller Hertz är ett mått som utrycker ett antal
händelser per sekund.
När en bild skickas från en dator till en bildskärm, kommer bildskärmen, om den är inställd på 50hz, att uppdatera bilden 50 gånger per sekund. För att uppnå föränderlighet i bilden måste en ny bild/ skärmdump, med
förändring i bilden, skickas ut till bildskärmen. Genom att skicka ut förändringar i bildmaterialet över tid kan
illusionen om rörlighet uppnås.
För TV-sändningar inom de olika regionerna (50Hz och 60Hz), standardiserades sändningen efter deras uppdateringsfrekvenser. Enligt den Europiska TV-sändnings-standarden PAL, sändes TV med 25 bilder per sekund
medan det i USA sändes efter standarden NTSC som ligger på ca. 30 bilder per sekund. Generellt sätt har PALsändningar med sina färre antal bilder per sekund, högre upplösning än NTSC sändningar. PAL- sändningar
sänds generellt med 576 s.k. linjers upplösning medan NTSC sände runt 480 linjer. Varje linje motsvarar ett
enhetsmått där man enbart räknar den vertikala upplösningen. Istället för att räkna bredden gånger höjden,
utrycker man breddens upplösning uttryckt som en linje och höjden avgör hur många horisontella linjer det
finns vertikalt.
Enhetsbegreppet för att utrycka ett antal-bilder-per-sekund är: “fps” (frames per second, Eng). bland 3D-applikationer används fps ofta som en måttangivelse för prestanda. se avsnitt 4.4 Rendering, för mer information.
Trivia: Utvecklingen av de äldre uppdateringsstandarderna överträffas idag med andra frekvenser som
100hz, 120hz eller flera hundra Hertz. Även bildmaterial från t ex. datorer och andra sändningar börjar
pressa det antal bilder per sekund som sänds ut till våra bildskärmar.
6
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
2.5 Bildförhållanden och synfält
Då vi normalt ser mer i sidled än vad vi gör i höjdled anpassas bildskärmar och således bildmaterial efter detta fenomen. Vårt synfält sträcker sig till ca. 180° i bredd och ca. 100° i höjdled. Bland tidiga bildförhållandestandarder nyttjades ett s.k. ”4:3” förhållande. Vilket betyder att: om en bild var ”4” enheter bred så var den
också ”3” enheter hög. Nyare standarder eftersträvar att vara mer ergonomiskt anpassade efter vårt synfält.
För bildskärmar, TVn och projektorer blir det mer vanligt att dessa enheter anpassas efter 16:9 standarden.
Mobila enheter kan däremot tendera att ha många olika typer av upplösningar och bildförhållanden och
således avviker de ibland från 16:9 standarden.
Användningsområdet som en uppvisningsenhet har tenderar att påverka dess funktionella utseende. Med
mobila enheter, skilt från många stationära uppvisningsenheter, kan andra ergonomiska faktorer spela roll för
enhets bildskärm. Saker som interaktion direkt mot bildskärmen, att den får plats i en byxficka, hur en enhet
sitter i handen, kan alla påverka enhetens funktionella utseende och således bildförhållandet på enheten.
2.6 Pixelarea
Pixelarea är ett enhetsbegrepp där man förenklat upplösning till ett värde. Skillt från utrycket “bredden
gånger höjden” har man med pixelarea räknat ut vad resultatet av “bredden gånger höjden” blir.
Bland enheter som t ex. digitalkameror uppkommer ofta angivelsen MegaPixels “MP“ (miljoner pixlar).
Detta är ett enhetsmått som anger den totala mängden pixlar som förekommer i en bild, i detta fall utryckt
i formen, antal miljoner pixlar.
Pixelarea: PA = W x H
Trivia: Angivelsen MP kan ses som extra praktisk bland digitalkameror då upplösningar tenderar att överstiga miljoner pixlar. Ett värde (MP), kan upplevas som lättare att minnas och således vara lättare att
marknadsföra istället för att ange bredd x höjd i långa sifferföljder. Exempel: 1920x1080 eller 2MP.
7
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
2.7 Pixel- och punktdensitet (PPI och DPI)
Om man anger en upplösning endast via en bredd gånger en höjd i pixlar, kan man inte veta hur stora pixlarna är mätta med fysiska mått. En pixel på en skärm kan vid ett sammanhang ha storleken en kvadratmillimeter och vid ett annat vara minst dubbelt så stor. Detta skulle ske om man t ex. hade en upplösning på två
olika stora skärmar. Ett alternativt sätt att utrycka upplösning är att utrycka antalet pixlar som får plats på en
bestämd yta. Se nedan.
PPI Pixels Per Inch, ”pixlar per tum” på svenska, används primärt vid angivelse av pixeldensitet för digitala bilddokument, bildskärmar, mobila enheter och projektorer m.m. Att ha högre PPI innebär att man har högre
upplösning, dvs. fler pixlar, på en specifik yta. Fler pixlar på en yta betyder alltså att pixlarnas fysiska storlek
minskar. En tum motsvarar 2.54cm. Ett relevant exempel för att beskriva användningsområdet för PPI kan
vara mellan olika mobila enheter. Nyare versioner av en mobiltelefonserie kan många gånger öka upplösningen men ändå behålla samma storlek på skärmen. Detta medför att den senare modellen får högre PPI.
Nedan följer några exempel på skillnaden mellan hög och låg PPI. I bilderna kan vi se flera, lika “fysiskt“ stora,
bilder på ett motiv som gradvist ökar i upplösning. Varje bild får således fler pixlar per yta dvs. högre PPI.
16x16px
32x32px
64x64px
128x128px
256x256px
512x512px
Triva: Det har skett försök till att omvandla pixlar-per-tum standarden till/ efter SI-enheter dvs. pixlar-percentimeter men detta har ännu inte blivit någon utspridd standardisering.
8
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Att beräkna fram PPI
Nedan följer ett vanligt förekommande och relativt nogrant räknesätt för att få fram ett PPIvärde.
För att ta reda på en bildskärms PPI, behöver man först ta reda på två primära punkter:
1) Uppvisningsenhetens upplösning.
2) Uppvisningsenhetens storlek, dvs. den fysiska storleken på enhetens bildyta.
För att kunna genomföra uträkningen behöver vi först ta fram två stycken s.k. diagonala värden för vardera
punkt. När man har båda dessa “diagonala“-värden kan man dela dessa med varandra för att få fram PPIn.
Storleken på en bildskärms bildyta definieras oftast via dess diagonala längd angivet i tum, “di“ (diagonal
inches). Exempel: Med en 40“s skärm, (fyrtio tums skärm), menas att den är 40” räknat från ett hörn i en
diagonal linje över till nästa hörn. Detta ger oss ett värde som uppfyller punkt 2 (se ovan).
Om vi vet storleken på en skärm kvarstår det att räkna ut vad den diagonala värdet i pixlar är för en upplösning. Detta kan enkelt göras genom att utnyttja Pythagoras sats. En detaljerad beskrivning följer nedan.
På nästa sida kan ni se exempel på hur man löser hela uppgiften.
Pythagoras sats
Pythagoras sats dikterar att kvadraten av kateterna har lika stor area som kvadraten av hypotenusan (se bild
nedan). Med tanke på att en kvadrat alltid har lika stora sidor medför detta att om man mäter längden på
en av hypotenusans kvadrats sidor motsvarar den, den diagonala linje som vi behöver för att uträtta punkt 1
(se ovan).
Formeln:
Vi börjar med att multiplicerat bredden med
bredden och sedan adderar vi det med höjden
multiplicerat med höjden. Dra sedan roten ur det
utvunna värdet och detta kommer att ge oss det
önskade enskilda värdet (hypotenusan).
Area 3 = Area 1 + 2
Man kan nyttja denna formel för att få fram värden
till båda punkterna (se ovan). Däremot kräver det
att vi vet bredden och höjden per punkt, oavsett
om det är pixlar eller tum.
Area 1
Area 2
9
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Exempel: Om vi har en bildskärm som är 24” och den har upplösningen 1080p, dvs. 1920x1080, vad blir då
PPIn?
Uträkning ser ut så här:
(19202 + 10802) √ = ger oss ett enskilt upplösningsvärde, 2202.
Man kan också utrycka den i text på följande vis:
Bredden “1920” gånger bredden “1920” plus höjden “1080” gånger höjden “1080“. Dra sedan roten ur det
värdet och ni får fram det diagonala upplösningsvärdet 2202.
Fortsättning:
Då vi redan har ett enskilt fysiskt storleksvärde, dvs. 24” kan vi direkt dela detta med det diagonala upplösningsvärdet. 2202 delat i 24 och resultatet blir 91,75. Man kan säga att bildskärmen har en upplösning på ca
92PPI.
Alternativa räknesätt:
Det finns flera sätta att räkna ut PPI. Ett alternativt, mer förenklat sätt, är att direkt dela den fysiska bredden
med upplösningsbredden och genom detta få ut ett PPIvärde.
Exempel: upplösningensbredd 1920 delat med bildskärmens bredd 21” = ~91 (21” motsvarar den ungifärliga
bredden på en 24”s bildskärm). Detta förutsätter dock att bildskärmen kör en upplösningsstandard som nyttjar kvadratiskt formade pixlar. Om du t ex. nyttjar en upplösning där bildförhållandet inte stämmer överens
med bildförhållandet för bildskärmen kommer pixlarna på bildskärmen inte vara kvadratiska och därmed
kommer inte PPIvärdet stämma.
Formler:
Pythagoras sats: X = √ (W2 + H2)
Pixels Per Inch (PPI): Dela det diagonala värdet för pixlar med det diagonala värdet för en bildytas storlek.
Antal cm i en tum: 2,54
10
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Nedan följer några olika upplösningsstandarder som är anpassade för webb och bildskärmar.
Exempel: baserat på 15”s bildskärm.
Upplösning
640x480
800x600
1024x768
1280x720
1920x1080
Bildförhållande
4:3
4:3
4:3
16:9
16:9
Pixelarea (MP)
~0.3
0.48
0.78
~0.92
~2.07
PPI
~53
~67
~85
~98
~147
Pixelarea (MP)
~0.3
0.48
0.78
~0.92
~2.07
PPI
~33
~42
~53
~61
~92
Exempel: baserat på en 24”s bildskärm.
Upplösning
640x480
800x600
1024x768
1280x720
1920x1080
Bildförhållande
4:3
4:3
4:3
16:9
16:9
Trivia: 1280x720 är en s.k. HD-Ready standardupplösning och 1920x1080 är Full-HD standardupplösning.
Det kan lätt bli oergonomiskt (för litet) att läsa texter när man har hög PPI. Av den anledningen kan det
vara lämpligt att anpassa PPIn i t ex. ett operativsystem, så att den bättre matchar PPIn som bildskärmen kör. Detta betyder att operativsystemet lägger till fler pixlar, så att kompenserar för den mindre
storleken av varje pixel. Fonter får således fler pixlar på skärmen men detta ändrar inte fontstorleken
vid utskrifter. Med andra ord är en fontstorlek på 12punkter alltid lika stor vid utskrift oberoende av
vad du har för inställning i t ex. windows.
En vanligt förekommande storleksinställning för text och ikoner är 96 PPI. Om du t ex. kör 130 PPI på
en bildskärm betyder det att den fysiska storleken på fonter och ikoner utgör ca: 73,8% mot vad de är
designade för.
11
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
DPI
Dots Per Inch, eller ”punkter per tum”, används för att beskriva upplösning vid utskrifter. Varje DPI-punkt
har en egen färg och genom att kombinera flera punkter tätt intill varandra kan sammansättningen av dessa
punkter representera pixlar i ett dokument. DPI-punkter kan ses som en typ av sub-pixlar (se avsnitt 3.3
sub-pixlar). Förhållandet mellan PPI och DPI är således inte 1:1 då det ofta, beroende på utskriftsteknik mm.,
behövs fler punkter för att korrekt representera varje given pixel.
Det finns ett flertal faktorer som styr kvalitén vid utskrift. Nedan följer ett par exempel på saker som kan styra
kvalitén.
Hur hög DPI respektive PPI man behöver beror, i ergonomiska avseenden, primärt på hur pass nära man vill
stå från det utskrivna materialet. En standardiserad upplösning är 300PPI/dokument, denna upplösning har
ansetts fungera som en s.k. fotorealistisk standard. Detta mått överträffas idag av kameror, skrivare och scanners. Trotts detta designas vissa större affischer med lägre PPI. Detta fungerar just för att betraktningsavstånden för stora affischer ofta är längre bort än vid mindre utskrifter. Lägre upplösningar ställer även färre
krav på materialet som t ex. storlek på bildfil, vilket fortfarande kan vara en tung prestandakrävande faktor
för många datormiljöer idag.
Användandet av fler punkter, dvs ökad DPIvärde, ökar även färgåtergivningen och således kvaliten på utskriften, detta sker dock upp till en gräns. Flera andra aspekter som t ex. papperskvalite spelar också roll för
kvaliten. Normalt är en vanlig bläckstråleskrivare utrustad med minst fyra unika färger i bläck enligt tryckstandarden CMYK som står för: Cyan, Magenta, Yellow (gul) och Key-Color (svart) och det är genom att man
blanda dessa färger tätt intill varandra som illusionen av flera färgnyanser uppnås. (se avsnitt 3.4 subtraktiv
färgblandning för mer information).
Olika papperstyper har olika kvalitativa egenskaper. Allt papper har inte tillräckligt bra yta för att korrekt
återge den önskade kvalitén från höga DPI-utskrifter. Det kan också vara så att visst papper är särskilt anpassat till bläckstråleskrivare medan annat är anpassat för laserskrivare.
Kvalitetsbenämningen på olika papperstyper brukar defineras i dels, namn på papperstyp och i, vikt per blad.
Nedan följer några kända och vanligt förekommande papperstyper:
• Vanligt kontorspapper Billigast av följande alternativen, det är ett tunnare, lättare i vikt, typ av papper. Utskrift kan ske på båda sidor av pappret. Detta papper klarar generellt av att korrekt återge upp till
300dpi.
• Inkjet papper Ett relativt tunt papper som har finare fiberdensitet än föregående papper och är således
bättre på att återge färger). Pappret har en specifik sida för utskrift. Pappret klarar generellt över 600dpi.
• Fotopapper Ett tjockare typ av papper som finns med både glatt och matt utförande, denna papperstyp
är generellt bäst på att återge färger. Pappret har en specifik sida för utskrift. Detta papper klarar generellt
över 600dpi.
12
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Triva: Det förekommer ofta felaktiga utryck i och utanför branchen, där det sägs att ett dokument är på
300DPI istället för 300PPI.
I realitet behöver inte mycket tanke läggas på vad skrivaren klarar för upplösning då de flesta skrivare
idag, klarar av att återge dokument som är inställda på 300PPI.
I ett fyrfärgssystem (CMYK) är utblandningen av färger begränsat när man vill eftersträva stort spektrum av olika färgnyanser. Detta har således lett till att olika printertillverkare utvecklat skrivare med
fler färgpatroner utöver de fyra standardfärger som finns normalt.
Högre DPI förbrukar mer färg vid utskrift. Det kan med andra ord ibland bli billigare att köpa papper
med högre kvalité. Finare papper kan även öka kvalitén rejält.
Fortsättning DPI, Tryck
Vid tillfällen då man vill arbeta med tryck, dvs. utskrifter av digitalt material, behöver man ta hänsyn till olika
aspekter för att uppnå ett optimalt resultat. Med optimalt resultat menas att man med ett dokument, uppnår
vissa ergonomiska beprövade standarder. Dokumentets PPI, utskriftens DPI, val av papper, färgmättnad och
ljusvärden i dokumentet mm. är alla faktorer som kan påverka utskriftskvalitén.
Det kan vara svårt att veta exakt vad man ska tänka på per given situation. I Sverige finns dock organisationer
som t ex. TU (Tidningsutgivarna), de är ett förbund som samlat ihop kunskap och erfarenhet från flera utgivare av olika slag. De har slagit samman sina erfaranheter och skapat dokument och böcker som innehåller
fakta och tips kring tryckstandarder som är relevanta i Sverige. Fördelaktikligen är mycket av materialet gratis.
Triva: När man jobbar mot tryckerier som sysslar med t ex. tidningstryck kan andra upplösningsmått komma
på tal, som t ex. LPI (Lines per inch) dvs. linjer per tum på svenska. Normalt brukar man vilja eftersträva
1.5 till 2 gånger högre PPIvärde än LPIvärde för att få ut ett önskvärt resultat.
Nyare standarder som t ex. DPCM eller LPCM, dvs. centimeter enhet istället för tum, eftersträvar att
ersätta DPI och LPI men användningen av tum-angivelse är fortfarande ledande som standard.
Bland skrivare är det inte helt ovanligt att det de kör med två olika DPIvärden. Nämligen ett DPIvärde
för bredden och ett för höjden. Detta är dock ingenting som direkt behöver påverka eller märkas av,
av användaren.
13
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Att beräkna fram PPI inför utskrift:
Antag att vi vill skriva ut en bild som är tagen med en specifik upplösning och att vi vill skriva ut bilden på ett
A4- samt ett A3papper. I nedanstående exempel tar vi reda på hur hög PPI vi får ut, per utskrift.
Vi börjar med att ta reda på alla relevanta mått:
Bilddokument: Bredd: 3456px
Höjd: 2304px
Pixelarea: ~8MP
Liggande A4: Bredd: 29,7cm
(~11.693”)
(~7.795”)
Höjd: 21,0cm
Liggande A3: Bredd: 42,0cm
(~16.535”)
(~11.024”)
Höjd: 29,7cm Fortsättningsvis nyttjar vi formeln som vi använde vid uträkning av PPI (se avsnitt: Att beräkna fram PPI).
Genom att ta papprets dimensioner kan vi ta reda på vad det enskilda diagonala värdet av pappret är (hypotenusan för pappret). Därefter kan vi dela detta med det enskilda värdet som vi tar fram från upplösningen av
bilddokumentet.
Bild: √ ( 34562 + 23042)
=
4153.595 dp (Antal pixlar på diagonala längden)
A4: √ ( 11.6932 + 7.7952)
=
14.0530 di
(Antal tum på diagonala längden)
A3:
√ ( 16.5352 + 11.0242)
=
19.8729 di
(Antal tum på diagonala längden)
A4:
4153px (dp) / 14” (di)
=
~296.64Svar A4: ca: 297 PPI
A3: 4153px (dp) / 20” (di)
=
~207.65
Svar A3: ca: 208 PPI
Resultat: En utskrift med en upplösning på ca. 8MP motsvarar nästan en hel A4 i fotokvalite (dvs. 300PPI)
medan en utskrift med samma dokumentstorlek i A3storlek skulle ge en utrskrift på ca. 200PPI.
Notera att den lägre upplösningen kan vara försumbar då den ökade storleken i A3 också lättare möjligör att
betraktar kan stå på ett längre avstånd från utskriften.
Trivia: Upplösningsmåttet är hämtat från systemkameran “Canon EOS 350D (~8MP)”.
14
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Nedan kan ni se ett några olika mått på pappersstandarder baserat för fotokvalitativa utskrifter.
Exempel: Ett stående dokument i 300PPI.
Pappersstorlek
A6
A5
A4
A3
A2
A1
A0
Bredd papper (mm)
105
148
210
297
420
594
841
Höjd papper (mm)
148
210
297
420
594
841
1189
Bredd (pixlar)
1240
1748
2480
3508
4961
7016
9933
Höjd (pixlar)
1748
2480
3508
4961
7016
9933
14043
Trivia: Notera att det gärna blir väldigt höga upplösningar vid större storlekar på pappret när man kör 300PPI.
I detta fall kan lägre PPI vara föredraget då det möjligen inte behöver vara fotokvalité på en sådan
utskrift. Avståndet och användningsområdet är faktorer som man får ta i beräkning.
Tänk också på att en arbetsfil i 300PPI och A0 storlek kan med ev. multipla lager och andra effekter bli
extra tung att hantera.
Genom att sänka DPIn på en utsrkift och istället höja kvalitén på papperstyp kan man spara in på färgförbrukning. Detta kan bli billigare samt ge bättre resultat i längden. Detta är dock något som måste
optimeras fram vid utskriftstillfället och bör göras olika från fall till fall.
15
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
3 Färg
3.1 Ögats uppfattning
Våra ögon uppfattar färg genom att tolka olika våglängder av ljus. Ljus som projiceras från solen, lampor och
andra källor kan producera olika våglängder av ljus. Vanligtvis uppfattar ett mänskligt öga våglängder mellan
400nm till 700nm (detta refreras till som synligt ljus) och vi uppfattar dessa våglängder genom våra ögon via
två olika typer av synreceptorer:
Stavar: Ljuskänsliga pigment som möjligör uppfattning av svagt ljus (mörkerseende). Stavar har dock dålig
synskärpa, dvs. att de är dåliga på att uppfatta detaljrikedom vilket är anledningen till att de inte kan urskilja
mellan olika färger. Detta medför att vi har svårt att uppfatta färger i mörker.
Tappar: Vi har tre olika typer av synceller som ger oss vårt färgseende. Färger uppfattas genom att de tre
typerna reagerar på olika våglängder av ljus, huvudsakligen: lång (560 - 580 nm), mellan (530 - 540 nm) och
kort (420 - 440nm). Dessa våglängder kan även refereras till färgerna Röd (lång), Grön (mellan) och Blå (kort)
och de kallas primärfärger.
Nedan kan ni se en tabell på hur våra ögon uppfattar olika våglängder av ljus. Högre frekvenser leder till bland
annat Infrarött ljus och i det lägre spektrummet finner vi ultravioletta frekvenser. Allt utanför nedanstående
spektrum betraktas som ej synligt ljus.
Färg
Infraröd (utanför synfältet)
Våglängd (ljus)
~ 3000 - 700 nm*
Röd
~ 700 - 635 nm
Orange
Gul
Grön
Blå
Violet
Ultraviolett (utanför synfältet)
~ 635 - 590 nm
~ 590 - 560 nm
~ 560 - 490 nm
~ 490 - 450 nm
~ 450 - 400 nm
~ 400 - 10 nm*
Trivia: Det uppskattas att ett mänskligt öga kan uppfatta runt tio miljoner olika färgnyanser vilket våra digitala system och enheter har anpassats efter.
Vid fel hos någon av tapptyperna bildas olika typer av färgblindhet.
De olika våglängderna av ljus som uppfattas av våra tappar (kort, mellan och lång) skrivs i engelskan
ut som S M L (Short, Medium and Long).
16
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
3.2 Additiv färgblandning (RGB)
Enligt den trikromatiska färgteorin tolkar våra ögon färger genom att våra olika tappar stimuleras till olika
grader. Stimulans av samtliga tre ljustyper (röd, grön och blå) uppfattas av våra hjärnor som vitt medan ingen
stimulans uppfattas som svart. När tapparna stimuleras olika uppfattar vi olika nyanser av färger.
Den additiva färgblandningsmodellen RGB (Red, Green, Blue) är särskilt anpassad efter den trikromatiska
färgteorin. I enlighet med teorin utgår RGB-modellen från tre olika färgkanaler (en per primärfärg). Vid ingen
styrka i någon av färgkanalerna syns svart medan full styrka på samtliga kanaler producerar vitt. Bilden nedan
föreställer en grafisk reprensentation av RGBmodellen.
Röd
(Full styrka)
Full styrka i samtliga färgkanaler: Vitt
Ingen styrka i någon färgkanal: Svart
Blå
(Full styrka)
Grön
(Full styrka)
RGB används främst vid hantering av digitala bilder eller vid projektion av bilder via elektroniska enheter som
t ex. datorskärmar, tvn etc. Faktorer som påverkar hur vi uppfattar en bild (exkludera subjektiva värderingar),
styrs av information i bildfilen, uppvisningsprogrammet och bildskärmen. Det finns ingen direkt definitiv säkerhet vid uppvisning av grafik mellan olika enheter. Olika bildskärmar producerar RGBskalan med varierande
kvalité.
Det finns flera olika standarder och s.k. färgprofiler på RGB, bla. “adobe RGB” eller den vanligare och bredare
standarden “sRGB“ som står för “standard Red Green Blue”. Färgstandarden sRGB är anpassad efter normal
kontors- och hemanvändning. Angivelse av färgprofil kan ställas in på dokument eller vid utmatningsenhet,
som t ex. bildskärm eller genom en skrivare.
17
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
3.3 Sub-pixlar
Inom datorgrafik är pixlar ofta ansedda som den
minsta relevanta beståndsdelen för att rita ut grafik
mot bildskärmar. Det finns dock i vissa fall, beroende
på teknik, en bakomliggande teknik för att producera färger på pixlar. Varje pixel som projiceras mot
t ex. en bildskärm är i sin tur uppdelad i tre stycken
s.k. sub-pixlar i färgerna röd, grön och blå, detta i
enlighet med den trikromatiska färgteorin. Då dessa
sub-pixlar sitter tätt ihop, uppfattar våra ögon, kombinationen av dessa tre sub-pixlar till en pixel med
en färgnyans i enlighet med den additiva färgmodell
RGB.
Trivia: Det finns olika tekniker för att producera sub-pixlar. Olika bildvisningsenheter kan således ha olika mönster på sina sub-pixlar. Bildexemplet är designat efter en LCD-skärm.
3.4 Subtraktiv färgblandning (CMYK)
Subtraktiv färgblandning används främst vid hantering av utskrifter. Då färgen i en utskrift består av små
punkter av färgpigment som inte avger något ljus, måste ljus från en annan källa träffa utskriften innan ljuset
kan studsa (reflektera) rätt färg till våra ögon. Detta till skillnad från en bildskärm där varje pixel avger ljus som
direkt kan uppfattas av våra ögon. Detta medför att CMYK och RGB får något motsatta egenskaper.
I motsatts till RGB utgår CMYKs färgmodell utifrån vitt som grundfärg (tänk papper) och genom att applicera
färg kan man nå mörkare toner.
CMYK står för: Cyan, Magenta, Yellow (Gul) och Key-Color (Nyckelfärg = Svart).
Som en subtraktiv färgmodell utgår CMYKs primära färger från RGBs sekundära färger, se nedan:
CMYK- Cyan är en blandning av RGB-blå och RGB-grön.
CMYK- Magenta är en blandning av RGB-blå och RGB-röd.
CMYK- Yellow är en blandning av RGB-Grön och RGB-röd.
Se CMYK-modellen på nästa sida.
18
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Nedan kan ni se en grafisk reprensentation av CMYK-modellen. Det finns tydliga kvalitétsskillnader mellan
RGB och CMYK. RGB-standarden har bla. ett mycket högre färgspektrum än CMYK-standarden (se 3.5 färgdjup). Detta sker pga. skillnader mellan teknikerna.
Notera att Röd, Grön och Blå inte har samma färgnyanser som de har i RGB-modellen på sidan 17.
Blå
(CMYK)
Cyan
(100%)
Key Color
(100%)
Magenta
(100%)
Grön
(CMYK)
Yellow
(100%)
Röd
(CMYK)
Trivia: CMYKs färgvärden anges i procent till skillnad från RGB som ofta anges i värden som korrelerar med
bitvärden.
3.5 Färgdjup
I tidigare kapitel (Kap:1.1) nämner vi hur en byte (8bits) kan innehålla 256 olika värden. Inom digitala färgsammanhang kan en sådan värdestyp hanteras som antal färgnyanser i en bildfil. Denna värdestyp, dvs. antal
färger (blandning av färgnyanser) har benämningen färgdjup. Färgdjup har olika enhetsutryck men ett vanligt
förkommande begrepp är antal färger utryckt i bits. Exempel: 8bits färgdjup innebär 256 tillgängliga färger
och denna notation kan även hänvisas till som en palett med 256 olika färgnyanser.
Beroende på sammanhang kan 256 färgnyanser upplevas som otillräckligt, detta är särskild tydligt när man
försöker arbeta med s.k. ”fotorealistiska” bilder. Detta har att göra med att våra ögon vanligtvis kan uppfatta
upp till flera miljoner färgnyanser samtidigt. Därför har man anpassat våra system till att klara mer. En vanlig
standard är att man nyttjar: 8bits per färgkanal, enligt RGB-modellen, så att man får 24bits färgdjup. Detta
resulterar i “16 777 216” (224) möjliga färgnyanser och det är således tillräckligt för vad våra mänskliga ögon
klarar av.
19
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
RGB
I bilden nedan kan ni se en visualisering av olika RGBvärden i 24bitar. Varje färgruta har en färg som korrelerar
med det värde som står i rutan.
Exempel: R:128 är alltså vad man får om man väljer en RGB färgen: R:128, G:0, B:0.
R:
G:
B:
R+G+B:
CMYK
I bilden nedan kan ni se en visualisering av olika CMYKvärden angivet i procent.
C:
M:
Y:
K:
20
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
4 Bildteknik
Kapitel 4. går igenom flera grundläggande begrepp, teorier och tekniker för att skapa och manipulera digital
grafik.
4.1 Lager
Lager är inom grafiken, en teknik som möjlighör hantering av bildmaterial så att man kan placera/ projicera
den “över och under” annat bildmaterial.
Bland operativsystem som nyttjar grafiska användargränssnitt, som t ex. windows eller MAC OS, kan det vid
flera tillfällen uppstå olika typer av grafiska objekt som fyller upp en bildskärmsyta.
Exempel: När en musmarkör ritas ut, över en skrivbordsbakgrund, behöver ett system kunna räkna ut vart
musmarkören ska ritas ut. Systemet behöver med andra ord hålla isär objekten innan den kan slå de samman
till en skärmdump. Musmarkören har med andra ord isolerats från bakgrunden innan den visats upp mot
bildskärmen.
En musmarkör i eget lager kan hanteras
som ett individuellt grafiskt objekt.
Bakgrunden i ett eget lager.
Den sammansatta bilden blir en skärmdump som
skickas till bildskärmen. Skärmdumpen innehåller en
musmarkör som ritas ut över en bakgrund.
I ett system som nyttjar lager behöver ett djupled defineras, dvs. ett index (en ordning) som definerar vart
ett lager ska ritas ut. Indexet avgör om ett lager ska ritas ut framför eller bakom ett annat lager. Ordningen
defineras via ett s.k. Z-index, vars uppgift är att hålla reda på ordningen för ala individuella objekt i en lista.
Ett annat tillämpningsområde för användandet av lager är bildprogram som t ex. Photoshop, där användandet av lager kan ses som en nyckelfaktor för programmets olika användningsområden.
21
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
4.2 Bitmap
En bitmappad bild tillhör den grafiktyp som är den vanligast förekommande inom digitala sammanhang. Det
är den grafik som bygger på olika längder av pixlar som inom ett två-dimensionellt plan bildar en bild eller
s.k. rastergrafik. (Se även Kap 2: Digitala grafik). En bitmappad bild har ingen fysisk storlek (förutsatt att den
inte är inställd efter en specifik PPI).
Bitmappad grafik lämpar sig i kontrast till vektorgrafik extra bra till att lagra komplexa motiv med mycket
detaljer som t ex. fotografier. Normala tillämpningsområden kan vara: inskanning av bilder eller lagring av
digitala foton, ikoner mm.
Det finns flera olika typer av bildformat som lagrar bitmappad grafik.
I senare avsnittet (4.12 Bildformat) kan ni läsa mer om några vanligt förekommande format. Notera att det
avsnittet ännu inte är komplett.
4.3 Vektorer
En vektor är en matematisk form som ritas ut via linjer kopplade till punkter. Föreställ er en kvadratisk form,
denna kan delas upp i fyra hörn och fyra väggar. I en vektorreprensentation av formen skulle varje hörn vara
uppbyggt av en s.k. “ankarpunkt” och väggarna skulle representeras av raka linjer mellan ankarpunkterna.
Skulle man istället vilja rita ut en cirkel skulle denna form också kunna utryckas med fyra punktern, däremot
skulle man behöva ersätta de raka linjerna mot krökta linjer för att skapa bågar. Bland krökta bågar finner
man ytterligare en komponent s.k. “viktningspunkter, dessa anger hur mycket en linje ska vara krökt.
Se bildexempel nedan.
Det kan vara värt att notera att det finns flertalet olika metoder och tekniker för att hantera kurvor. Däremot
kommer vi i det här dokumentet inte att gå på djupet och förklara hur de teknikerna fungerar.
22
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Fortsättning vektorer, Innehåll
Innehållet i en vektorform kan fyllas upp på olika sätt. En vektor fyllas med en färg, en skiftande färgtoning
(mellan två eller flera färger) eller ha ett mönster (en textur) mm. Nedan följer några exempel på olika utfyllnader i en kvadratisk form.
Solid färg (rött).
En färgton (grönt till blått).
Ett mönster (Textur)
Via användandet av särskilda verktyg/ program kan olika former skapas, bland enklare former finns cirklar,
tre- och fyrkantiga former. I mer komplexa former kan flera punkter respektive linjer uppdagas för att skapa
mer avancerad geometri, detta kan även kombineras med mönster och effekter. Genom att rita flera vektorformer kan man producera relativt komplexa bilder.
Fördelarna med vektorer i kontrast till bitmappad grafik är bland annat att vektorer är skalbara utan kompromiss på kvalite. Däremot tappar vektorer sin effektivitet bland riktigt komplexa bilder som t ex. fotografier då
detaljrikedommen i den typen av bild ofta blir väldigt hög och således optimal för vektorer.
Se bildexempel på nästkommande sida.
Triva: Ett vanligt förekommande tillämpningsområde för vektorer är bland logotyper som ofta har enklare
former och färger. Logotyper kan även ofta vara beroende av skalbarhet för t ex. trycktillämpningar.
23
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Nedan kan ni se två bilder, den första bilden är ett fotografi taget med digital-kamera, medan den andra
bilden är en vektoriserad version av första bilden. Vektorbilden innehåller många olika vektorer i enkla former och genom att kombinera många olika ytor med olika effekter, som ljussättning och skuggning kan motivet i bilden uppnå en relativt hög komplexitet.
Exempel 1. Bitmappad grafik: Foto tagen i DSVs lokaler.
Exempel 2. Vektor-grafik: Bilden är skapad med olik -färgade vektorer i programverktyget Photoshop.
24
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
4.4 Rendering
En renderingsprocess är den process som beräknar fram pixeldata. I det enklaste fallet kan det handla om
att rita ut en pixel i en färg, medan det i mer komplexa fall kan finnas behov av att räkna ut mer avancerade
beräkningar per pixel, för att skapa mer avancerade bilder.
Vid utritning av t ex. vektorer måste varje pixel som tänkt representera ytan av vektorn renderas fram. I
processen inkluderas vart varje pixel ska positioneras på skärmen samt vilket RGBvärde varje given pixel ska
ha. Beroende på om vektorobjektet ska ha en solid färg, en färgtoning eller om det är ett mönster som ska
renderas fram, blir beräkningen olika komplex.
Det finns två huvudsakliga faktorer som påverkar renderingsprocessen, användandet av s.k. effekter samt
transformeringar (beskrivs mer i kommande avsnitt). Användandet av någon av dessa faktorer bidrar till ökad
komplexitetsgraden i renderingsprocessen och det kräver således mer prestanda från våra datorer. Generellt
sätt kräver 3D-beräkningar ofta mycket mer prestanda än 2D-beräkningar, däremot anpassas olika hårdvaror
ständigt för att hantera komplexare beräkningar, särskilt inom 3D.
Terminologin “Rendering” kan delas upp i två kategorier:
1) Realtids-rendering (realtime, Eng).
Realtids-rendering är en metod för att beräkna fram ett antal bilder per “kort” tidsenhet. Generellt sätt använder man enhetsbegreppet fps, frames per second (bilder per sekund). Metoden appliceras gärna inom
spel och andra interaktiva miljöer.
Exempel: Den visuella reprensentationen av en 3D-miljö uppstår när en kamera i 3D-världen fångar upp innehållet inom dess synfält skickar den datan vidare för beräkning. När beräkningen är klar, skickas det renderade
materialet i form av en skärmdump till skärmen och det är genom att upprepa denna process flera gånger per
sekund, som har möjlighet att uppleva “god rörlighet” i 3D-världen. Det betyder att samtliga beräkningar som
görs på en bild, inte får ta så lång tid på sig att de hämmar en ergonomiskt tilltalande upplevelse.
Hur många bilder som behövs per sekund är en fråga om applikation och ibland subjektivitet.
25
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
2) För-rendering (pre-rendering, Eng).
Nyttjas mycket inom filmindustrin, där särskild fokus läggs på kvalité, per varje given bild (frame). I kontrast
till realtids-rendering kan för-renderingen ta flera minuter om inte timmar för att framställa en enskild bild.
När en komplex och tidskrävande bild renderats klart, kan bilden sparas och sättas ihop som en bild/frame ti
ll filmen.
Trivia: Både spel- och filmindustrin pressar konstant gränserna för komplexa grafiska beräkningar. I en intervju med Scott Farrar (VFXs chef för filmen Transformers 3 “Dark of the Moon”) berättar han för “The hollywood Reporter“:
“It took a staggering 288 hours per frame to render the Driller along with the photoreal CG building that includes all those reflections in its glass.”.
Giardina, Carolyn. 2011. “Transformers: Dark of the Moon’s’ Powerful Visual Effects...” Intervju hämtad från: http://www.hollywoodreporter.com/news/transformers-dark-moons-power
ful-visual-208967
Åtkomst 3 augusti 2012.
Rendering, fortsättning
Olika individuella effekter och transformeringar, räknas ut som olika s.k. “uppgifter” av datorn.
Exempel: I en komplex renderingsprocess kan flera uppgifter stå på tur, en sådan uppgift kan t ex. vara att
gradvist öka ljuset i en bild med 10%, I det fallet behöver alltså varje pixel, oavsett färg, i bilden öka 10% från
sitt tidigare värde. Om vi då har en pixel som är svart och vi vill öka ljuset så att pixeln blir lite ljusare, kan
följande beräkning tillämpas.
Från RGB: 0,0,0 (svart) till 10% av 255 = ca. 25, dvs. RGB: 25,25,25 (mörk grått).
För att digitalt producera en bild, kan flera olika renderingsprocesser nyttjats för olika delar i bilden. Den
skärmdump vi ser på skärmen kan t ex. var en sammansatt bild som krävt olika typer av 2D- och 3D-beräkningar. Det är viktigt att poängtera att oavsett vad vi ser på skärmen är slutresultatet alltid i form av s.k. rastrerad
grafik. Det betyder att all grafik som ritas ut på skärmen (varje given frame/bild) är rastrerad, i form av en
skärmdump, vid uppvisningstillfället.
26
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
4.5 Pivotpunkter
En pivotpunkt är en centerpunkt som är specifikt kopplat till ett objekt. Pivotpunkten har kordinater inom en
rymd (t ex. bildskärmsyta) och varje objekt har kordinater som är relativa till sin pivotpunkt. I bilderna nedan
kan ni se hur pivotpunkten befinner sig på olika positioner relativt till motivet.
Pivotpunkten sitter i den översta vänstra kanten av det grafiska objektet.
Pivotpunkten sitter i mitten av det grafiska objektet.
Fortsättningsvis kan vi i bilderna nedan se hur samma motiv ritas ut på olika vis. Om vi förutsätter att motivet
ritas ut efter dess pivotpunkter kommer motivet i de två nedre bilderna ritas ut på olika platser.
I nästa avsnitt (4.6 Transformeringar) får ni se mer om hur man kan utnyttja pivotpunkter för att manipulera
objekt på olika vis.
27
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
4.6 Transformeringar
I enlighet med tidigare exempel (4.1 Lager) kan behovet om att manipulera olika grafiska objekt uppstå, inte
minst bland interaktiva system, som t ex. vid användandet av ett grafiskt bildprogram som photoshop eller
bland spel. Manipuleringar som: “förflyttning”, “rotation” och “skalning” benämns i de flesta sammanhang
som olika transformeringstekniker. Det finns även andra transformeringstekniker men dessa är de vanligast
förekommande. För att man ska kunna utföra någon transformering behöver minst två värden anges till
transformeringen, ett startvärde och ett slutvärde. Startvärdet anger vart transformeringen ska inleda (börja)
och slutvärdet anger målet. Nedan följer några exempel.
Förflyttning
I bilden nedan ser vi exempel på en förflyttning som sker mellan två positioner, bildskärmsytan (rymden) har
upplösningen 1920x1080. Förflyttningen sker mellan startvärdet “A” och avslutas på slutvärdet “B“.
Startpunkten: “A” har kordinaterna (värdet) “0, 0”.
Slutpunkten: “B” har kordinater “1280, 720”.
Man kan sammanfatta att transformeringshandlingen
skett mellan position A “Start“ till position B “Slut“.
Vid transformering av ett grafiskt objekt kopplas det objektets pivotpunkt till start- och slutpunkterna i transformeringen. Beroende på hur motivet i det grafiska objektet förhåller sig till pivotpunkten blir utritningen av
transformeringen annorlunda.
Pivotpunkten sitter i mitten av det grafiska
objektet.
Pivotpunkten sitter i den vänstra översta delen av
det grafiska objektet.
28
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Rotation
I bilderna nedan kan vi se hur rotation-transformeringen påverkas av att ha olika pivotpositioner på de grafiska objekten. I första bilden har objektet sin pivotpunkt i mitten av motivet, således roterar motivet runt sin
egen axel, medan det, i den andra bilden så har objektet sin pivotpunkten i översta vänstra hörnet, detta
medför att objektet roterar i en bredare båge.
Trivia: En liknelse till sammanhanget skulle kunna hämtas från vårt solsystem. Där solen, som har en centerpunkt i mitten av solsystemet roterar efter sin egen axel medan jorden och de andra planeterna
roterar en längre bit ifrån centerpunkten, vilket skapar en anorlunda rotationsaxel.
Skala
Precis som i tidigare transformeringsexempel visar nedanstående bilder hur transformeringen fungerar på
objekt vars pivotpunkter förhåller sig olika, i detta fall ser vi två exempel på hur en skalning ökar från 100%
till 200%.
29
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
4.7 Transparens
Transparens eller “genomskinlighet“ används för att definera olika grader av synlighet på t ex. grafiska objekt.
Vanligtvis hanteras transparensvärdet inom grafiska program i form av procent, där 0% betyder fullt transparent (genomskinligt) och 100% betyder att något är helt solid (fullt synligt). Allting mellan 0% och 100%
defineras som s.k. semi-transparens.
Texten syns delvis igenom det semi-transparenta äppellagret.
4.8 Alpha värden
För att beräkna och rita ut transparenta respektive solida pixlar behövs metadata (extra information) som
anger hur pass transparent eller solid som en pixel ska vara. Som i fallet vid utritning av vanlig grafik ritas även
transparensvärden i bilder på en “per pixelnivå”.
I standarden RGBA har ytterligare en kanal “A“ (Alpha) lagts till för att hantera just denna metadata.
Exempel: I en 32bits RGBA-bild har 24bits dedikerats till färg (8 per färgkanal) medan de resterande 8 bitsen
hanterar transparensvärden via en gråskala. Precis som RGB-standarden beräknas transparensvärden i en
skala från 0 (ingen styrka/ fullt transparent) till 255 (full styrka/ fullt synligt). Se bild.
Fullt synlig (solid)
R:255, G:0, B:0, A:255
Semi-transparent
R:255, G:0, B:0, A:128
Transparent (genomskinlig)
R:255, G:0, B:0, A:0
30
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
4.9 Maskning och friläggning
Inom digital bildhantering, kan det ibland vara önskvärt att klippa ut eller kopiera ut en del ur en bild. En
liknelse till sammanhanget skulle vara att klippa ut en figur från ett papper så att figuren separeras från bakgrunden (resten av pappret).
Det finns flera olika tillvägagångssätt och verktyg för att separera olika delar ur en digital bild. Däremot
härleder samtliga separeringsprocesser till en särskild teknik som heter Alpha-lager. Tekniken kan först utnyttjas när man applicerat ett s.k. Alpha-lager till en bild. Alpha-lagret har en svartvit skala (oftast på 8bit) som
definerar hur de olika pixlarna i en bild sk projiceras (se 4.8 alphavärden). Detta görs genom att alphalagret
innehåller olika värden av svart till vitt i en “per pixel nivå”.
I bilden nedan kan vi se hur ett alpha-lager kopplat till en bild s.k. “frilägger” eller “maskar ut” delar av motiven från den gråa bakgrunden.
Exempel 1.
Originalbild, ett vanligt fotografi.
Applicera “Alphalager” till orginalbilden
med vit färg runt äpplena och svart färg
för att märka ut bakgrunden.
Resultatet, äpplen är frilagda
från bakgrunden.
Exempel 2.
Originalbild, ett vanligt fotografi.
Ett nytt Alpha-lager med nytt motiv.
31
En stjärnformad del av orginalbilden
har klippts ut. Detta sker i enlighet
med alphalagrets motiv.
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
4.10 Aliasing och Anti-Aliasing
Aliasing är ett begrepp som utrycker att en pixelformation är kantig. Då pixlar är uppbyggda efter en fyrkantig
form så är de naturligt dåligt anpassade för att skapa runda former. Exempel följer.
Bild 1. Bilden nedan nyttjar inte Anti-Aliasing och pixelkanterna är således aliased.
32px
128px
512px
Anti-Aliasing eller “AA” är i motsatts till Aliasing en teknik som försöker motverka pixelkantighet genom tona
intilliggande pixelfärger mellan olika grafiska objekt och bakgrunders kanter.
Genom att tona pixelfärgen mellan angränsande ytor (t ex. ett objekt och en bakgrund) kan en mjukare
övergång upplevas då de angränsande pixlarna mellan objektet kan dela en jämnare färgövergång.
Se bilden nedan.
Bild 2. Bilden nedan nyttjar Anti-Aliasing och pixelkanterna får således en till synes jämnare övergång.
32px
128px
512px
Bild 3. Bilden till höger visar hur
Anti-Aliasing påverkas av färg.
32
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
En annan metod för att försöka motverka Aliasing (synligheten av kantiga pixelformationer) är att försöka öka
upplösning. Nedan kan ni se exempel på ett vanligt förekommande problemområde, utritning av text. Bilderna visar vilka skillnader som uppstår när text ritas ut i olika upplösningar i samband med anti-aliasingtekniken
på eller av. Bilderna är på 300 PPI.
Ingen AA, uppskalad text
Teckentorlek 12
Zoom +400%
Zoom +1600%
Med AA, uppskalad text
Teckentorlek 12
Zoom +400%
Zoom +1600%
Ingen AA, ökad textstorlek
(högre upplösning)
Teckentorlek 12
Teckentorlek 48
Teckentorlek 196
Med AA, ökad textstorlek
(högre upplösning)
Teckentorlek 12
Teckentorlek 48
Teckentorlek 196
Notera att användandet av AA inte blir lika tydligt utmärkt vid högre upplösningar.
33
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
4.11 Aliasing och Anti-Aliasing - Fördjupning
Anti-Aliasing går att applicera på både 2D- och 3Dgrafik. Olika verktyg och miljöer hanterar AA olika beroende
på situation. Bland 2D-bildprogram kan det vara önskvärt att nyttja AA på enstaka grafiska- eller textuella
objekt. I kontrast till det kan det vid rendering i 3D-program vara önskvärt att rendera AA på flera delar eller
tom. på hela bilden.
Uträkningen av AA sker nästan alltid i slutskedet av renderingsprocessen, efter det att andra beräkningar som
effekter och transformeringar beräknats på bilden. Detta görs så att man får AA beräknat på resultatet av hela
bildinnehållet dvs. att uträkning av AA sker på samtliga objekt samt dess effekter.
Ibland kan de dock vara önskvärt att inte rendera AA på en given effekt. Ett sådant exempel kan vara vid
användandet av effekten “oskärpa”, denna effekt interpolerar pixlar (blandar och jämnar ut färger på intilliggande pixlar) och detta medför att det kan det bli redundant att beräkna AA i det oskärpta lagret då AA också
är en form av, men mer precis pixel-interpolering. Det kan med andra ord vara lämpligt att exkludera AA när
oskärpa renderas då man potentiellt har väldigt lite att tjäna visuellt samtidigt som det blir mer beräkningskrävande.
Notera att det fortfarande finns en poäng med att rendera AA på ett objekt (lager) som ritas ut över ett oskärpt lager då det objektets kanter kan tjäna på att få en mjukare övergång mot det oskärpta lagret.
Det är viktigt att notera att Anti-Aliasing kräver extra beräkningskraft. Det är inte alltid lämpligt att använda
AA då det kan innebära stora prestandaförluster. Inom realtidsrendering som t ex. spel kan användandet
av AA kräva för mycket prestanda. I kontrast till detta kan det vara mer försumbart med prestanda när man
arbetar i 2D-verktyg då man i detta fall hanterar grafiken i stilla form. I andra fall kan användandet av AA
förkomma när man ser på text i ett operativsystem eller i en webbläsare.
34
Kursmaterial för Institutionen för Data- och Systemvetenskap, Stockholms universitet.
Aware Mustafa Taher, 2012
v. 1.5
Bildformat (work in progress)
BMP:
Bmp är ett av standardformaten för bitmappad grafik inom Windowsmiljö. Formatet är designat av Microsoft
och är ett okomprimerat format, vilket således gör att en bmp-fil kan bli väldigt stor i datastorlek.
BMP är kort för bitmap.
Då bmp innehåller en hel del redundant information fungerar extra bra att packa ner filerna med ickeförstörande (ej destruktiva) komprimeringsmetoder.
JPG:
I en standard RGB-bild har den additiva informationen, per pixel, delats upp i tre olika kanaler (röd, grön och
blå) och genom att addera styrka till samtliga kanaler producerar man ljusare nyanser. Detta gör att en standard RGB-bild är beroende av data inom tre kanaler för att hantera färg och ljus. Se kap 3. Färg.
JPG-formatets huvudsakliga funktion är att den delar upp data i två områden, ljus och färg. Anledningen till
detta är att man genom att separera datan kan uttnytja våra ögons svagheter skillt från dess styrkor. Då våra
ögon lättare ser skillnader på olika nivåer av ljusstyrka, separeras ljus datan till en egen kanal medan färgmättnad hanteras via två sammansatta kanaler.
Genom att dela upp innehållet kan formatet utnyttja en s.k. kvantifieringsmetod för att samla ihop flera likfärgade pixelblock till större 2D områden (normalt förekommande är pixelblock om 8*8px), dessa färgblock
komprimeras via en sammanställning av färgen till en färg per färgblock utan att ljusdatan påverkas.
Formatet är således särskilt designat för att utnyttja våra ögons brister i att urskilja tätt intilliggande och närliggande likartade färgade pixlar. Den ger ofta hög kompressionsgrad med bibehållen god kvalitét när den används på bilder som inte innehåller höga kontraster eller långa raka linjer (subjektiv tolkning). Det vanligaste
förekommande tillämpningsområdet är bland fotografier.
Ni kan även fördjupa er kring ämnet och användandet av “HSL” (Hue, Saturation and Lightning) som kan ge
en tydligare beskrivning om hur man i detalj utnyttjar färg skillt från ljus för att uppnå kompressioner.
“jpg” eller “jpeg” som det ibland kallas, kommer från (Joint Photographic Experts Group)
35