top of page

Color Depth, Bit Per Channel (BPC)

Updated: Mar 25, 2022

Bu yazımızda renk yönetiminin ilk adımlarından olan Color Depth, Bit Per Channel (BPC) konusunu işleyeceğiz. (Sayfadaki videoları izlemek için browser'ınızdan autoplay özelliğini aktif edin ya da boşverin elle play tuşuna basın.)



Color Depth - Bit Per Channel (BPC)


Bit kelimesi byte ve digit kelimelerinin birleşiminden oluşur. Her bit iki muhtemel değer (konumuza göre renk) taşır. 0 veya 1. 2 bit ise dört muhtemel değer taşıyabilir. 00, 01, 10, 11. Bu değerlerin her biri diğerinden farklıdır. Bitleri bir dizi olarak düşünürsek diziye eklediğimiz her bit öncekinin iki katı değer taşır. Sistem üslü bir şekilde ilerler.


2¹ = 2 renk

2² = 4 renk

2³ = 8 renk

2⁴ = 16 renk

2⁵ = 32 renk

2⁶ = 64 renk

2⁷ = 128 renk

2⁸ = 256 renk (8 bpc)

2¹⁶ = 65536 renk (16 bpc)

2³² = 4,294,967,296 renk (32 bpc)


Dijital ortamda renklerin RGB denen Kırmızı, Yeşil, Mavi bileşimlerinden oluştuğunu biliyoruz. Yukarıdaki sayılar her bir renk kanalının sahip olduğu değerlerdir.


Yani genel olarak 8 bit renk derinliğinden bahsediyorsak bu toplamda 256*256*256 = 16.777.216 renk demektir.


16 bit = 65536*65536*65536 = 2.81 Trilyon civarı renk demektir. Sayının artış hızına bakarsak şimdilik 32 bit'e girmeyelim uzak duralım.


Şimdi dijital ortamda renklerin nasıl oluşturulduğuna nasıl göründüğüne bakalım. Bilgisayarlar 3 temel rengi tanırlar. Kırmızı, yeşil ve mavi. Bir bilgisayar açık kırmızı, lavanta, limon, haki, ada çayı gibi renkleri tanımaz, bilmez, tanıyamaz, mümkün değil olmaz o iş.


Bu noktada bu tarz renklerin ve her renk tonlamasının oluşumunda kritik faktörü olan, bu tonları oluşturan başka bir değer ortaya çıkar. Brightness veya Luminance. Karanlık veya Parlaklık, Siyah veya Beyaz. Yukarıda üslü sayılarda gördüğümüz her değer aslında Luminance değeridir. Yani siyah ile beyaz arasındaki ton sayısıdır. Luminance değeri dijital ortamda her şeydir. Gamma'dır, Linear workflow'dur, sRGB'dir, Color Depth'tir. Renkleri kontrol eden her durum Luminance'a bağlıdır. Yani Siyah-Beyaz arasındaki tonlarla ve siyaha veya beyaza doğru önyargıyla ( bias ) ilişkilidir.



Yukarıdaki videoda dijital renk oluşumuyla ilgili iki ana fonksiyon görülmektedir.

Birincisi, ana renklerin luminance değeriyle çarpılıp (multiply) kendi içindeki tonlarının ortaya çıkmasıdır. İkincisi de bu işlem sonunda tonlanmış ana renklerin birbirine eklenerek (additive) ara renkleri ortaya çıkarmasıdır. Nihayetinde hepsinin üst üste binmesi, ışık, renk yazımızda belirttiğimiz gibi beyaz rengi oluşturur.


Bu temellerden yola çıkarak birçok grafik tasarım yazılımında kullanılan Hud Color Picker'in iki ana parçası olan Hue Strip ve Saturation/Brightness kutusunun nasıl oluştuğunu görelim.




Standard Hud Color Picker. Sağda Hue Strip, Solda Saturation/Brighness kutusu.


























Soldaki videoda iki işlem gerçekleşir. İlki ana rengimizle yatay luminance aralığının eklemeli olarak birleşerek bize saturation (doygunluk) değerlerini vermesi. İkincisi de Saturation değerlerini almış kutumuzun dikey luminance değerleriyle çarpılıp brightness değerinin de dahil edilmesi. Bu blend yöntemiyle rengimizin doygunluk ve parlaklığını tek bir kutudan ayarlayabiliriz.


Sağdaki video bize ana renklerin birbiri içine geçerek ekleme yoluyla ara renklerin, dolayısıyla Hue Strip'in nasıl oluştuğunu gösterir.


16 BPC vs 32 BPC Floating Point


16 bit yukarıda gördüğümüz gibi 2.81 trilyon civarı renk tonu taşır. Bu gözümüzün algılayabileceği veya monitörün gösterebileceğinden kat kat fazla renk tonu demektir.

Luminance değerlerinin 0 -1 arasında olduğunu biliyoruz. 0 siyah 1 beyaz. 16 bit bu aralığa 8 bite göre çok daha fazla ton sığdırabilir. Bunun sonucunda yapacağınız post processing işlemlerinde daha fazla esneklik ve zengin renk tonları kazanırsınız. Daha önde olan bir husus ta birbirlerine yakın renk tonları arasındaki geçişte oluşan banding etkisini epey düşürebilirsiniz. Gri tonları arasındaki bir ramp ile farkı gösterelim :




Görüyorsunuz. Anlatmaya gerek yok. Şimdi diyeceksiniz ki 16 bit 2 trilyor milyon rengi sen ne yaptın, neyine yetmiyor da utanmadan 32 bit diyorsun, ne işine yarayacak zrilyon tane renk ?

Sessiz kalma hakkımı kullanıp bunu avukatıma açıklatabilirdim ama avukat tutacak param olmadığı için sessiz kalma hakkım da yok, bi şekilde açıklamaya çalışacağız.


Az önce Luminance değerinin 0 - 1 arasında olduğunu ve tonların bu iki değer arasında sıkıştırıldığını görmüştük. 32 bit bizim o en parlak denen 1 referans noktasını aşmamızı sağlayan bir değerdir. Gerçek hayatta da parlaklığı 1 diye sınırlandıramazsınız, güneşin parlaklığı konumuna göre değişebilir, bir HDR dosyası kaydedip değerlerini okuduğunuzda bunu görebilirsiniz ama topu size atmak yerine burada uygulamalı görelim.


After FX' de bir daire atalım. BPC değerini 16 yapıp dairenin rgb değerlerini 10 yapalım.


Ortada dairemiz. Solda Color Picker RGB = 10. Yani parlaklık değerimiz 10. Gel gelelim sağda Info panelinde okunan değere baktığımızda parlaklığı 1 olarak görürüz. Bu 16 bit'in limitidir.



Aynı örneği bir de 32 bit üzerinden görelim.


Her şey aynı fakat Info panelinde artık başta girdiğimiz 10 değerini görebiliyoruz.


Pratikteki faydası nedir ? 1 değeri 16 bitin limiti olduğu gibi aynı zamanda ekranın gösterebildiği parlaklık limitidir. Bu yüzden iki daire arasında bir fark göremezsiniz.

Fakat bu iki dairenin parlaklığını yarı yarıya kıstığımızda işler değişir.



16 Bit. Curves ile dairenin parlaklığını yarı yarıya kestik. Bunun sonucunda daire griye dönerken Info panelinde de parlaklığın 0.5 e düştüğü görülüyor. Dikkat edelim girdiğimiz RGB değeri 1 değil 10'du fakat 16 bit kısıtlaması nedeniyle 10, 1 oldu yarısı da 0.5.



Yine 32 bit üzerinden görelim.


Girilen parlaklık 10. Kesilen parlaklık %50. Info panelinde okuduğumuz değer 5 !. Görünen daire hala bembeyaz. Çünkü monitörün gösterebileceği maksimum 1 değerinin 5 katı parlaklık içeriyor. Doğal olarak monitör, 1'in üzerindeki değerleri kırparak bize daireyi beyaz gösteriyor ve bu sayede gözümüzün yanmasını engelliyor. 32 bitte 16 bitin griliğini elde etmek için parlaklık değerini %50 ye değil %5 e çekmemiz gerekiyor.

Bu durum High Dynamic Range (Yüksek Dinamik Aralık) dediğimiz şeydir.


Pratikte ne işe yarar ? Post FX uygulamasıyla ilerleyelim.


Sol, ana resmimiz. Luminance değerleri 1. Üzerinde Glow eklendi. Bu, Luminance değerlerini 32 bit'te 10 a kadar çıkarırken 16 bit'te hala 1.


Orta resim ; 16 bit. Radial Blur eklendi. Bulanıklaşma, 1 olan parlaklık değerlerini yayarak maksimum parlaklığı 0.5 e kadar çekti. Genel parlaklık fazlasıyla düşük .


Sağ resim ; 32 bit. Bulanıklaşma, 10 olan parlaklığı maksimumda 5 e kadar çekti. Genel toplamda hala 1'in çok üzerinde olduğumuz için blur saçılmasının resmin parlaklığı üzerinde görsel olarak fazla etkisi olmadı, net bir radial izimiz var.


Bir sonraki konumuzda kısaca Color Space , sRGB gibi renk profillerine değineceğiz.


Selametle kalın.

118 views0 comments
bottom of page