13.1. Värijoukot tietokonegrafiikassa 13. Värit tietokonegrafiikassa Tarkastellaan seuraavaksi värien kvantitatiivista pohjaa. Useimmiten käytännön tilanteissa kiinnitetään huomiota kvalitatiiviseen. Värien valinta voi usein olla melko satunnaista sovelluksissa. Toisinaan värien valinta voi olla olennaista. Esim. visualisoinnissa eri värein esitetty numeerinen informaatio voi olla tärkeää. Tässä on luonnollisesti otettava huomioon ihmisen näkökyvyn psykofysiologiset mekanismit. Värien käsittelyä varten pitää kvantisoida ne jollakin tavalla. Tästä päädytään väriavaruuden käsitteeseen, joka on kolmiulotteinen. Siinä sijaitsevat kaikki kiinnostavat värit. Määritellään värijoukkojen hierarkia: (1) Kaikkien värien joukko, jotka ovat ihmissilmällä havaittavia (kuva 13.1.). (2) Värien joukko, jotka voidaan näyttää kuvaruudulla tai saada syöttölaitteen kautta. Tämä on (1):n osajoukko. (3) Värien joukko, jotka voidaan laskea grafiikkaohjelmilla ja tallentaa näyttömuistiin. Järjestelmän ollessa 24 bittinen ( (2 8 ) 3 = 16777216 eli runsas 16 miljoonaa väriä, kuva 13.2.) tämä on yleisesti (1):n osajoukko, mutta puolestaan (2) on tämän osajoukko. Hierarkia esitetään kuvassa 13.3. kolmiulotteisen väriavaruuden poikkileikkauksena. 13. luku 643 13. luku 644 Kuva 13.1. Ihmissilmällä nähtävät värit valon aallonpituuden mukaan. Kuva 13.2. 24 bittinen RGB kuutio (red, green ja blue). Kuva 13.3. Tietokonegrafiikan värijoukkojen hierarkia. Väri on tässä kaksiulotteisen avaruuden piste. 13. luku 645 13. luku 646
13.2. Väri ja kolmiulotteinen avaruus Näkemämme väri on aistimus. Värin kuvaamiseksi tietokonegrafiikassa ei luonnollisesti riitä kvalitatiivinen kuvaus, kuten karmiininpunainen, vaan pitää soveltaa jotakin numeerista eli kvantitatiivista koodausta. Kolmijakoinen värikoodaus tulee alun perin siitä, että silmämme verkkokalvo käsittää kolmea tyyppiä soluja, jotka ovat eri tavoin herkkiä eri valon aallonpituuksille. Valo on fysikaalisesti määritettävissä spektrin avulla, johon se hajautuu aallonpituuksien mukaan. Tämä on objektiivinen valon mitta, aallonpituuden funktio. Valonäyte voidaan visuaalisesti täsmätä sekoittamalla eli laskemalla yhteen kolme värillistä valoa. Esim. kohteen väri voidaan antaa punaisen, vihreän ja sinisen intensiteetillä. Näiden päävärien määrittämistä ei tehdä verkkokalvon solujen väriherkkyyden perusteella, vaan värinäkökykyä käytetään määrittämään värejä päävärien sekoituksena. 13. luku 647 Värin numeerinen määrittely annetaan kolmella arvolla, jotka vastaavat punaista, vihreää ja sinistä. Viitataan tällöin väriin C:llä: C = r R + gg + bb Tässä kertoimet r, g ja b ovat suhteellisia painoarvoja värisekoituksen määrittämistä varten. Tietokonegrafiikassa väri tuotetaan näytölle kolmella hyvin lähellä toisiaan olevalla valopisteellä, jotka ovat näitä kolmea pääväriä. Silmä näkee vierekkäiset pienet valopisteet yhtenä, jolloin aistitaan niiden yhdistelmä sekoitusvärinä (värillisiä valonsäteitä ei siis sekoiteta). Luetellaan tietokonegrafiikassa käytetyt väriavaruudet: 13. luku 648 (1) CIE XYZ on vallitseva kansainvälinen väristandardi. Väri määritellään kolmella kolmistimulaatioarvolla eli keinotekoisilla pääväreillä XYZ. (2) Edellisen muunnelmat tai muunnokset, kuten CIE xyy avaruus, joita on kehitetty eri tarkoituksiin. Näissä on parannettu joitakin ominaisuuksia, kuten värin havaittavuuden lineaarisuutta. (3) Värispektrissä kuvasynteesin valonlähteet määritellään intensiteetin aallonpituusnäytteinä. Tämä ei välttämättä ole suhteessa näköhavaintoomme väristä. (4) RGB avaruus on standardi tietokonegrafiikassa. Se on spektriavaruuden kolmiarvoinen versio. Käytetään pääväreinä punaista, vihreää ja sinistä. (5) RGB monitori avaruudessa käytetään kolmea arvoa antamaan määrätty väri määrätyllä näytöllä. Samat kolme arvoa eivät välttämättä tuota samaa väriaistimusta eri näytöllä, koska näyttöjä ei kalibroida samalla standardilla. (6) HSV avaruus on epälineaari RGB:n muunnos, joka käsittää värisävyn, puhtauden eli kylläisyyden ja kirkkauden. (7) YIQ avaruutta, joka on RGB:n epälineaarinen muunnos, sovellettiin analogisissa televisioissa. 13. luku 649 13. luku 650
RGB avaruus Määritellään RGB avaruus yleisenä käsitteenä. Tällöin esim. (0, 0, 0) on musta ja (1, 1, 1) valkoinen. Väri nimetään kolmen päävärin punainen, vihreä ja sininen painotettuna summana. Kaikkien mahdollisten värien avaruus oli kuutiona kuvassa 13.2. ja esitetään kuvissa 13.4. ja 13.5. Seuraavat seikat ovat huomionarvoisia: (1) Se on havaittavuuden mielessä epälineaari. (2) Epälineaarisuuden tähden pienet RGB arvot tuottavat pieniä muutoksia näytössä. Esim. 20 yksikön lisäys ei ehkä näy värierona. Sen sijaan suurilla arvoilla havaittava ero voi tulla jo yhden yksikön muutoksesta. (3) Näytön värien joukko eli RGB avaruus on aina kaikkien ihmissilmin havaittavien värien joukon osajoukko. (4) Loppujen lopuksi se ei ole kovin hyvä värien kuvausjärjestelmä puutteidensa takia. 13. luku 651 Kuva 13.4. RGB värikuutio. 13. luku 652 Edellisiä värikuutioita tarkastellaan usein väritasojen avulla, jotka ovat poikkileikkauksia kuutiosta. Tämä tehdään kiinnittämällä jokin kolmesta värikomponentista ja vaihtelemalla muita kahta. Esim. kuution keskipisteen kautta menevä ja GB tason kanssa yhdensuuntainen väritaso on taso (127, G, B). Kuvassa 13.6. on esimerkki tällaisesta, joka on saatu kuvan 13.2. värikuutiosta. 256 väriä on minimimäärä, joka voidaan tuottaa jokaisessa värinäyttöjärjestelmässä haluttaessa siedettävännäköinen värikuva. 216 niistä tuotetaan samalla tavalla kaikissa järjestelmissä standardina, ja 40 värin toteutus vaihtelee. Kuvassa 13.7. esitetään nämä 216 väriä. Kuva 13.5. RGB värikuution esityksiä. 13. luku 653 13. luku 654
Kuva 13.6. Ylhäällä RGB kuvan luominen poikkileikkaustasoina (harmaatasokuvia). Alhaalla värikuution (kuva 13.2.) kolme piilotettua tasoa. 13. luku 655 Kuva 13.7. Värikartassa 216 yleistä RGB väriä. Alhaalla on 256 värin kaikki harmaat väreinä ja heksadesimaalikoodeina (alleviivattuina ne, jotka ovat 216 värin joukossa). 13. luku 656 Kuusikulmainen HSV malli HSV mallin (Smith 1978) tarkoitus on mahdollistaa intuitiivisempi liittymä väreihin kuin kolmen päävärin valikoiminen. Väriavaruudella on kuusikulmaisen pyramidin muoto. Se on RGB mallin epälineaarinen muunnos. Lyhenne tulee sanoista värisävy (hue), puhtaus eli kylläisyys (saturation) ja kirkkausarvo (value). Värisävy vastaa kyseisen värin dominanttia aallonpituutta. (Kaikilla ihmisen aistimilla väreillä sellaista ei ole, kuten purppuralla) Malli perustuu pikemmin napakoordinaatistoon kuin karteesiseen. H määritellään asteissa väliltä 0 360. Kuvassa 13.8. on HSV mallin kuusikulmainen pyramidi ja kuvassa 13.9. värillinen esitys mallista. Kuvassa 13.10. on mallin kaksi leikkaustasoa. Kuva 13.8. HSV malli. 13. luku 657 13. luku 658
13.3. Väri, informaatio ja havaintoavaruudet Kuva 13.9. Värillinen HSV malli esitettynä sektoreina 20 välein. Tarkastellaan suppeasti havaintoavaruuksia ja erikoisesti CIE XYZ avaruutta, numeerista väriennimeämisjärjestelmää (1931). CIE XYZ avaruus Tämä esitetään kolmen luvun (X, Y, Z) avulla, kattaa kaikki ihmissilmin nähtävät värit ja perustuu kokeellisesti määrättyihin värifunktioihin. Kuva 13.10. HSV väriavaruudesta on leikattu kaksi tasoa, joissa etäisyys keskipisteestä vastaa kylläisyyttä välillä nollasta yhteen. Kiertokulma edustaa värisävyä. Kirkkausarvo on vakio (vasemmalla 1 ja oikealla 0.5). Arvot ovat R = 700 nm, G = 546,1 nm ja B = 435,8 nm. Yhtälön C = r R + gg + bb painoarvot on määritelty kokeellisesti. 13. luku 659 13. luku 660 Kokeiden tulokset ovat nähtävissä kuvassa 13.11. (b), jossa annetaan punaisen, vihreän ja sinisen valon määrä. Nämä sekoitetaan, ja saadaan väri, jonka aallonpituus on. Nyt on: C λ = r ( + g( + b( Väriaistimukselle C, joka käsittää spektrin P( ), r, g ja b saadaan (k eräs vakio): r = k b = k λ g = k λ λ P( r( dλ P( g( dλ P( b( dλ Kuvassa 13.12. CIE XYZ värikappale ja näyttöasteikko, joka on suuntaissärmiö. 13. luku 661 Kuva 13.11. CIE värifunktion kehittäminen. 13. luku 662
CIE xyy avaruus Kuva 13.12. (a) CIE XYZ kappale, (b) Tyypillinen CIE XYZ väriavaruuden näyttöasteikko muodoltaan suuntaissärmiö. 13. luku 663 Vaihtoehtoinen tapa määritellä kolmikko (X, Y, Z) on (x, y, Y), jossa (x, y) ovat värikoordinaatteja: x y = = X X+ Y+ Z Y X+ Y+ Z Piirrettäessä xy:n suhteen saadaan kaksiulotteinen (x, y) avaruus nimeltään CIE väridiagrammi. CIE väridiagrammia (kuva 13.13. ja 13.14.) käytetään runsaasti väriteoriassa. Se antaa kaikki havaittavat värit jättäen pois luminenssin Y. Värinäytöllä esitettävät värit saadaan siitä kolmiosta, joka rajoittuu RGB pisteiden määrittämiin janoihin. 13. luku 664 Kuva 13.13. CIE väridiagrammi, jossa on esitetty tyypilliset asteikot värifilmille, värinäytölle ja painomusteille. 13. luku 665 Kuva 13.14. CIE väridiagrammi. 13. luku 666
Kuva 13.15. CIE xyy avaruuden näyttöruutuasteikko. Kuva 13.15. esittää värinäytön asteikon yleisen muodon CIE xyy avaruuden tapauksessa. Kuva 13.16. esittää kolme avaruudessa olevaa viipaletta. 13. luku 667 Kuva 13.16. Vasemmalla ylhäällä näyttöruudun asteikko. Alhaalla kolme poikkileikkausta CIE xyy avaruudesta. Oikealla ylhäällä näiden sijainti tasossa Y=0. 13. luku 668 Näyttöruutukäsittelyä gammakorjaus Edellä on oletettu lineaarinen suhde todellisten näyttöruudulle syötettyjen RGB arvojen ja näytöllä tuotettujen valon intensiteettien välillä. Näin ei ole, vaan tarvitaan korjaus lineaarisuuden saamiseksi aikaan. Kuvan 13.17. mukaisesti televisiossa sovelletaan gammakorjausta kamerassa kompensoimaan etukäteen näytön epälineaarisuus. Tämä on kuvassa 13.17. (b). Tietokonegrafiikan gammakorjaus on vastaava (kuva 13.17. (c)). Kun renderöinti on lineaarista, gammakorjaus tarvitaan laskennan jälkeen ja se toteutetaan tavallisesti hakutaululla. Esim. punaisen intensiteettisyötearvolla R i on näytöllä ( r normaalisti väliltä [2.3, 2.8]): R = K( m R i ') Tähän liittyy symmetrinen kuvaus (kuva 13.18.). γ 13. luku 669 r Kuva 13.17. Gammakorjaus: (a) Katsojan tulisi ideaalisesti nähdä samat värit TV ruudulla, kuin hän katsoisi todellista näkymää. (b) TV kameraan sovelletaan gammakorjausta. (c) Tietokonegrafiikan gammakorjaus. 13. luku 670
Kuva 13.18. Gammakorjaus: (a) Intensiteetti sovellettujen jännitearvojen funktiona. (b) Korjatut arvot sovellettujen arvojen funktiona. 13. luku 671