Koľko farieb je možné zobraziť, na aké pojmy a údaje si treba dávať pozor a čo to vlastne je tá bitová hĺbka? Určite ste sa s tým stretli, takže aký je rozdiel medzi 8 bit a 16 bit hĺbkou? Ďalej si tu nájdete aj základy o tom ako funguje senzor v digitálnom fotoaparáte, čo bude taký stručný úvod do digitálneho spracovania obrazu.

Na začiatok si musíme dohodnúť určité veci, aby nedochádzalo k nedorozumeniam. Ja viem, vždy k nim dôjde, ale to nevadí... takže

Pravidlo 1 – Rozdiel medzi Bits per Pixel a Bits per Channel.

Budem písať o bitoch a o tom koľko farieb dokážeme zobraziť. Digitálne senzory sú zložené z miliónov pixelov a každý z nich reprezentuje jeden konkrétny odtieň farby. Tento odtieň je zložený z troch samostatných farebných kanálov (channels). Tieto kanály sú: červený (red), zelený (green) a modrý (blue), čiže známe RGB. A tu sa dostávame k prvej veci.

“bpp” (bits per pixel) hovorí o tom, koľko bitov obsahuje celý pixel, čiže jeho tri RGB kanály spolu.

Z týchto troch základných RGB farieb je “namiešaný” každý odtieň farieb.

Každý farebný kanál je zložený z niekoľkých bitov a to určuje jeho bitovú hĺbku (bit depth). Každý kanál obsahuje rovnaké množstvo bitov, dnes je to väčšinou 8. Fotografia v JPG formáte obsahuje tiež len 8bpc, čiže hovoríme o 8 bitovej hĺbke farby. A tu sa dostávame k druhej veci.

“bpc” (bits per channel) hovorí o tom, koľko bitov obsahuje jeden z troch farebných kanálov.

A to je s pravidlami všetko, viac pravidiel tu nebude, jedno dobré stačí. Lepšie ako desať zlých...

Rýchlo to zopakujem

  • Každý pixel = 3 kanály – Red, Green, Blue.
  • Každý kanál = niekoľko bitov a ich počet určuje bitovú hĺbku farby.

Keďže každý pixel obsahuje 3 kanály, tak bpp je jednoducho bpc x 3, tam nie je nič zložité.

bpp = bpc x 3

Málokde je definované o ktorej bitovej hĺbke sa píše, tak predpokladajme že keď sa spomína 8 bit, alebo 16 bit hĺbka, tak sa spomína bpc, bits per channel. Zvyčajne to je tak a teda ak máme 8 bit hĺbku farby a táto hĺbka je BPC a nie BPP tak:

8 bpc x 3 = 24 bpp = 224 = 16 777 216 odtieňov farieb.

ak by to bolo 8 bpp tak dostaneme len 28 = 256 odtieňov farieb, čo je dosť málo

Bit

Ako som sa dostal k tým číslam a čo je to ten bit? Celé je to jednoduché a chce to trošku matematiky.

Bit je základná jednotka v digitálnom svete. Počítače a všetko digitálne je založené na binárnom kóde kde máme len dve možnosti, buď áno, alebo nie. Tento kód zložený z jednotiek a núl ako v Matrixe. Povedzme že jednotka znamená áno a nula znamená nie. Každé áno (alebo nie) v tomto kóde je jeden bit.

áno, áno, nie, áno, nie, áno, áno, nie

znamená

11010110

tento kód je zložený z ôsmich bitov, teda 8 bitová hĺbka. Zatiaľ len hĺbka, to že ide o farbu sme si ešte nedefinovali.

1 Bit = 21 = 2 farby

Keďže sa bavíme o farbách, tak jednotka bude znamenať bielu farbu a nula čiernu farbu. Ak budeme mať bitovú hĺbku farby len jeden bit, teda len možnosť “áno”, alebo “nie”, budeme mať možnosť buď iba bielej, alebo čiernej.

Každý pixel bude mať hodnotu “1”, alebo “0”

1bit

1 bit = 2 možné farby = 2 úrovne intenzity svetla medzi bielou a čiernou

Takto dostaneme krásnu čiernobielu fotografiu, bez akejkoľvek sivej, pretože máme iba bielu, alebo čiernu. Každý pixel na tejto fotografii môže byť buď biely, alebo čierny. Toto je v podstate čiernobiela fotografia vo svojej základnej podstate.

2bit

2 Bity = 22 = 4 farby

Pretože pri 2 bit hĺbke farby máme 4 možnosti kombinácií núl a jednotiek, tak dvojbitová hĺbka farby nám dá 2 odtiene sivej, bielu a čiernu.

Každý pixel bude mať hodnotu “11”, alebo “10”, alebo “01”, alebo “00”

2bit

2 bity = 4 možné farby = 4 úrovne intenzity svetla medzi bielou a čiernou

Teraz už máme fotografiu lepšie definovanú, pretože máme 4 odtiene, ale stále to nie je nič moc.

2bit

8 Bitov = 28 = 256 farieb

Štandardná bitová hĺbka farby je 8 bitov. 8 bitov na kanál (8bpc), nie na pixel (8bpp)! V čiernobielej fotografii nám to už parádne definuje 256 odtieňov sivej. Teda vlastne bielu, čiernu a 254 odtieňov sivej medzi tým.

2bit

8 bitov = 256 možných farieb = 256 úrovní intenzity svetla medzi bielou a čiernou

Každý pixel obsahuje 8 bitov, čiže napríklad “00110101” a tu prichádza matematika.

Každý bit môže mať dve hodnoty, čiže počet bitov na druhú nám dá počet možných odtieňov

  • 1 bit = 2 odtiene
  • 2 bity = 4 odtiene
  • 3 bity = 8 odtieňov
  • 4 bity = 16 odtieňov
  • 5 bitov = 32 odtieňov
  • 6 bitov = 64 odtieňov
  • 7 bitov = 128 odtieňov
  • 8 bitov = 256 odtieňov
  • 16 bitov = 65536 odtieňov

Takto sme sa dostali už ku celkom zaujímavým číslam a bude to ešte lepšie. Doteraz som spomínal čiernobielu fotografiu a to nebolo len tak z môjho rozmaru, ale pretože pixel v senzore digitálneho fotoaparátu v prvom rade nezaznamenáva farbu ako takú, ale len intenzitu jednej z troch základných RGB farieb. Každý z pixelov má pridelenú svoju farbu a zaznamená jej intenzitu. V praxi to funguje tak, že na senzore je umiestnený Bayer filter, ktorý do každého pixelu prefiltruje len jednu farbu a jej intenzita je zaznamenaná.

bayer filter

Hore: Bayer filter
Dole: Uloženie Bayer filtra na senzore

bayer filter

Použitie Bayer filtra je najrozšírenejší systém spracovania farieb digitálnym senzorom, no existujú aj iné systémy. Zelený filter je v tomto systéme obsiahnutý dvojnásobne, pretože ľudské oko je najcitlivejšie na zelenú farbu a dokáže z nej získať najviac informácii.

Interpolácia

Takže, zatiaľ máme fotografiu, ktorej pixely obsahujú informácie o intenzite každej z RGB farieb jednotlivo a ktorá vyzerá asi takto

obraz cez bayer filter

Takúto fotografiu musí fotoaparát spracovať do takzvanej plnofarebnej fotografie a to tak, že každý pixel bude obsahovať informáciu o každej z RGB farieb. Tento proces sa nazýva interpolácia a je to matematický algoritmus, ktorý zoberie údaje zo štyroch (a viacerých) susediacich pixelov a vypočíta presný pomer RGB farieb, ktoré bude obsahovať jeden pixel. Potom sa presunie na ďalšie pixely, vypočíta pomer a posunie sa ďalej a tak to pokračuje po celom senzore až pokým každý pixel neobsahuje plnú RGB informáciu.

interpolacia

Tu musím napísať že toto je veľmi zjednodušený príklad a v skutočnosti to je trošku o mnoho viac zložitejšie, ale podstata tam je.

Farby

Konečne sa dostaneme ku farbám a ich odtieňom. Teraz už vieme, že ak máme 8 bpc hĺbku farby, tak máme 28 odtieňov na jeden farebný kanál, čo je 256 odtieňov farby. Každý pixel teda rozlíši 256 odtieňov červenej, alebo zelenej, alebo modrej farby. Po interpolácii vzniknú jednotlivé pixely, ktoré obsahujú informácie o 256 odtieňoch červenej a 256 odtieňoch zelenej a 256 odtieňoch modrej farby dohromady. Čiže 256 (červená) x 256 (zelená) x 256 (modrá) = 16 777 216 rôznych farebných odtieňov. A sme pri tom čísle, ktoré som spomenul na začiatku a celé je to len o jednoduchej matematike a jednom pravidle.

Ak budeme mať hĺbku farby 16 bpc, tak budeme mať binárny kód ako napríklad

0100110100110011

to nám dá 216 možností odtieňov farieb, alebo úrovní intenzity jednej z RGB farieb na kanál

bpc = 216= 65536

každý pixel obsahuje 3 kanály, červený, zelený a modrý (RGB)

bpp = 655363

bpp = 65536 x 65536 x 65536 = 281 474 976 700 000 odtieňov farieb

A to je v jednoduchosti celé, podľa týchto základov si môžete vypočítať koľko odtieňov dokáže zobraziť tá ktorá bitová hĺbka farby. Najčastejšie používaná je 8 a 16 bitová hĺbka farby. Pokiaľ fotografujete len na JPG formát, tak táto fotografia má 8 bit farebnú hĺbku. 16 bit farebnú hĺbku dostanete iba ak používate RAW. Aké sú rozdiely medzi JPG a RAW si môžete prečítať v súvisiacich článkoch.