Kasibittinen

Kasibittinen. Kasibittinen.

“Onpa kivat kasibittiset grafiikat!”

“Tossa on tommosta kasibittistä tyyliä.”

“Kuulosti semmoselta kasibittiseltä musiikilta.”

Lista jatkuu, ja tiedät taatusti mistä puhun. Jos jokin viihdeteos sisältää “piipitysmusiikkia” tai vähäisistä väreistä ja suurista pikseleistä koostuvia elementtejä, moni astuu ansaan ja puhuu “kasibittisestä” miettimättä sanan merkitystä sen enempää.

Termiä on silti helppo käyttää koska niin moni tietää mitä kertoja tarkoittaa. Siitä huolimatta, koska olen pedantti ääliö koen tarpeelliseksi selventää asiaa. “Kahdeksanbittiset grafiikat/musiikit” ovat harhaanjohtavia nimityksiä.

Mikä on bitti?

Bitti on informaation pienin yksikkö. Ihmisille tutusta desimaalisesta lukujärjestelmästä jotka nousevat nollasta yhdeksään poiketen binäärijärjestelmässä on käytössä vain kaksi eri merkkiä lukujen esittämiseen, tyypillisesti 0 ja 1.

Yksibittinen arvo voi olla joko 0 tai 1. Kaksibittinen arvo voi olla 00, 01, 10 tai 11. Luonnollisesti kahdeksanbittinen arvo voi olla mikä tahansa yhdistelmä ykkösiä ja nollia, kunhan niitä on kahdeksan peräkkäin.

Kaikki kahdeksanbittiset arvot. Desimaalina luvut ovat 0–255

Kahdeksanbittinen luku voi olla siis korkeintaan 255. Tai, loogisesti ajateltuna ainakin. Jos sovitaan että 00000000 binäärinä tarkoittaa nollaa desimaalina ja 11111111 taas lukua 255, entäs sitten negatiiviset luvut?

No, voidaan vaikka sopia että arvot 00000000:sta 01111111:een ovat negatiivisia, nollasta -127:ään, ja arvot 10000000:sta 11111111:een ovat positiivisia lukuja. Tällöin emme yllä 255:een positiiviseen lukuun asti mutta saamme soppaan mukaan negatiiviset luvut.

Yhtä lailla voisimme sopia että kahdeksanbittisen luvun ensimmäiset neljä bittiä ovat x-akseli ja neljä jälkimmäistä bittiä y-akseli. Koska bittejä olisi tällöin käytössä vain neljä akselia kohden, olisi alin kohta 0,0 ja korkein 15,15.

Tietty, jos oikein hullutellaan, voidaan sopia että jokainen bitti vastaa nimeä. 00000000 on Reiska, 00000001 on Paula ja 10101010 on sitten vaikka Kimmo ja niin edelleen.

Mutta tulkitaan näitä kahdeksaa bittiä kuinka tahansa, on selvää että uniikkeja arvoja voi 8-bittisessä luvussa olla vain 256.

Mitä kaikkea 256 arvoa voi antaa?

Siinäpä se. Mitä tarkoitat kun pyydät “kahdeksanbittistä kuvaa?”

Kahdeksan bittiä yksinään on kovin vähän. Jos tahtoisit tehdä esim. tyypillisen kuvan jonka tiedostokoko olisi kahdeksan bittiä, et saisi paljoakaan aikaiseksi. Pienin mahdollinen PNG-kuvakin on 73 tavua (584 bittiä), ja on kirjaimellisesti yhden pikselin kokoinen läpinäkyvä kuva.

Siksi termi riippuukin aina asiayhteydestä. Alla oleva kuva on “kahdeksanbittinen” koska siinä on 256 eri väriä. Jokaisella pikselillä on väri, ja tämä väri voi olla mikä tahansa 256:sta ennalta määrätystä.

Lenna

Tässä ovat kuvan kaikki 256 väriä:

Ensimmäinen, tumma sävy vasemmassa väripaletin yläkulmassa on 00000000, ja viimeinen alhaalla oikealla on 11111111.

Tässä tapauksessa “kahdeksanbittinen” tarkoittaa tarkemmin “kahdeksan bittiä per pikseli

Tämä kuva sen sijaan on myös “kahdeksanbittinen” vaikka siinä on selkeästi enemmän värejä kuin vain 256:

Miten? No, tässä tapauksessa “kahdeksanbittinen” tarkoittaa tarkemmin “kahdeksan bittiä per kanava” ja tyypillisesti kaikki kuvat mitä verkossa ja muualla digitaalisessa ympäristössä näet. Tässä asiayhteydessä kanavilla tarkoitetaan punaista, vihreää ja sinistä kanavaa.

Käytettäessä 24 bitin bittisyvyyttä, eli 8 bittiä osaväriä kohden, joka on digitaalisissa kuvissa eniten käytetty bittisyvyys, jokainen kuvapiste voi esittää 256 erilaista kirkkaustasoa kutakin kolmea osaväriä kohti. Kaikki väriyhdistelmät (256 × 256 × 256) voivat tällöin muodostaa 16 777 216 erilaista väri-kirkkausyhdistelmää.
 
– Wikipedia

Yllä olevasta kuvasta näet miten 8-bittiset R, G ja B-kanavat yhdessä muodostavat Lennan kuvan. Huomaa että Lennan olkapää on kovin vaalea valmiissa kuvassa, ja se näkyy myös erillisissä kanavissa värin kylläisyytenä.

Ammattilaisvalokuvaajat ja lääkärit voivat olla tekemisissä myös “16- tai 32-bittisten kuvien” kanssa, ja niillä tarkoitetaan juurikin värisyvyydeltään 48- (16 bittiä per kanava) ja 96-bittisiä (32 bittiä per kanava) kuvia.

Myös värikoodit verkossa noudattavat 8-bittistä määrittelyä. Tyypillisesti HTML-koodissa väri kirjoitetaan muodossa esimerkiksi #844869, jossa jokainen kahden merkin lohko määrittää yhden värikanavan arvon.

Kahdeksan bitin luvut tulkitaan värikanavien kylläisyysarvoina ja kun ne sekoittaa keskenään, syntyy yksi 24-bittinen väri.

Vastaavasti jos tahdottaisiin tehdä kolmen kanavan väripaletti jossa kokonaisuudessaan on vain kahdeksan bitin edestä värejä, varattaisiin esimerkiksi punaiselle 3 bittiä, vihreälle 3 bittiä ja siniselle 2 bittiä sillä kahdeksan ei ole jaettavissa kolmelle.

Yleensä kun puhutaan siis 8-bittisestä väristä, on värien määrä yllättävän suuri, oli sitten kyseessä kahdeksan bittiä per kanava taikka pikseli.

No entäs se Nintendo?

Miksi sitten kaikki mieltävät “kasibittisen” juuri sellaiseksi… sellaiseksi..?

…tällaiseksi?

Kyseessä on pitkälti markkinointisanojen sekoittuminen arkikieleen.

Kun Nintendo Entertainment System julkaistiin 80-luvun puolivälissä, tehtiin kaikessa markkinointimateriaalissa hyvin selväksi että koneessa on 8-bittinen MOS 6502-pohjainen suoritin. Luonnollisesti tämä oli ennen vanhaan kova juttu ja kuulosti kuluttajan korvaan hyvältä.

Tällä prosessorin 8-bittisyydellä ei varsinaisesti ollut mitään tekemistä grafiikkojen kanssa, vaan että suoritin sisälsi 8-bittisen akkumulaattorirekisterin, kaksi 8-bittistä indeksirekisteriä, 8-bittisen prosessorin tilarekisterin, sekä 8-bittisen pinon osoittimen.

Tavalliselle ihmiselle nämä eivät tarkoita juuri mitään, harva ymmärtää mitä ne tarkoittavat ja vielä harvemman pitää tietää.

Tässä tapauksessa bittisyydellä viitattiin kuitenkin siis siihen kuinka suurta määrää ja kuinka kaukaa prosessori kykenee lukemaan tai kirjoittamaan dataa kerralla.

Kuluttajan on silti helpompi hämmästellä sitä mitä näkee eikä sitä minkälainen suoritin laitteen sisällä on. Monen suussa laitteen nimi ja siihen yhdistetyt mielikuvat muuttuivatkin silkaksi “Nintendoksi” tai “kasibittiseksi.”

On toki oikein sanoa “Nintendon kasibittinen” ja tarkoittaa “Nintendo-yhtiön julkaisema pelikonsoli jonka suorittimen keskeiset komponentit olivat osoitetilaltaan pääosin 8-bittisiä,” mutta grafiikkojen kanssa sillä ei ole tekemistä.

Nintendo Entertainment Systemin PPU (Picture Processing Unit, kuvankäsittelypiiri) pystyi näyttämään 64 väriä joista yhdeksän väriä olivat kaksoiskappaleita muista väreistä, ja yksi NTSC-televisioiden väriavaruuden ulkopuolella, luoden 54 uniikin värin paletin.

64 “uniikkia” väriä silti tarkoittaa että paletti on 6-bittinen.

Näistä 54:stä väristä pystyi näyttämään samaan aikaan ruudulla vain 25, ja nekin erittäin tiukoin ehdoin.

  • Ruudulla liikkuville 8 × 8 tai 8 × 16 pikselin kokoisille hahmoille on varattu neljä kolmen värin* palettia.
  • Taustakuva/“kenttä” koostuu 16 × 16 pikselin kokoisista palikoista joille on varattu neljä kolmen värin* palettia.
  • Taustakuvan sekä ruudulla liikkuvien hahmojen takana on yksi väri.

Ja näillä pärjättiin.

*) Värejä oli käytännössä neljä, mutta yksi “väri” oli aina läpinäkyvyys.

Miksi tätä pitäisi sitten kutsua?

Hm… No, grafiikka koostuu palikoista joiden tarkkuus on kaksi bittiä per pikseli, ja joiden kokonaisväriavaruus on 6-bittinen. Värssy on toki tarpeettoman pitkä, mutta validi.

Jos näistä tiukoista 80-luvun rajoitteista joustaa pätkääkään, ollaan jo jossain ihan muualla. Shovel Knightin tai Cave Storyn grafiikat eivät vastaa “8-bittisen grafiikoita.”

Asiaa ei silti tarvitse ajatella noinkaan monimutkaisesti, jos vain unohdat lauseen kasibittiset grafiikat ja sanot jatkossa kasibittisen inspiroimat grafiikat.

Tai sitten sanot mitä sanot, kaikki kuitenkin takuulla ymmärtävät mitä tarkoitat.


Special thanks: Noel Berry