WM cihazlarda neden bu kadar az renk?

____________________________________________________________________

Günümüzde cep telefonu ekranları da bilgisayar ekranları kadar rengi gösterip hatta daha da canlı görüntüler gösterebiliyorlar. Son moda 16 milyon renkli ekranlar, öncekisi 262 bin renkli ekranlar ve daha önceki de 65536 renk ekranlar. Yalnız Windows Mobile işletim sistemli cihazlar pek bu modayı takip etmiyor. Hala çoğu yeni çıkan telefonda bile 65536 renkli ekranlar kullanılıyor! Bunun suçlusu tabii ki Windows Mobile değil. Windows Mobile da 16 milyon renk destekliyor, suçlu ise üreticiler ve işlemciler. 🙂

65536 rakamı 16 bit veri ile oluşturulabilecek kombinasyon sayısı, yani rastgele bir sayı değil. Zaten bilgisayar ile ilgili biraz bilginiz varsa ağ/İnternet gibi konularda da 65536 rakamını fark etmiş olabilirsiniz.

Görüntü ekranda piksellerden yani yatay ve dikey doğrultuda dizilmiş noktalardan oluşur. Her piksel için de bu 16 bit boyutta renklerden kullanılır. Bunlar da RGB (R – red: kırmızı, G – green: yeşil, B – blue: mavi) 565 olarak adlandırılan bir sistemle kullanılır. Yani 5 bit kırmızı renk için, 6 bit yeşil renk için ve 5 bit de mavi renk için kullanılır. Yani bir piksel için 65536 renkli bir ekranda 16 bit verinin işlenmesi gerekir ve 32 bir bir işlemci 32 bit veri işleyerek iki piksel görüntü işlemiş olur.

WM işletim sistemli cihazlardaki işlemciler de çoğunlukla 32 bit işlemcilerdir ve 32 bit veriyi iyi işleyebilirler. Geçmişe saygılarından dolayı 16 bit ve 8 bit ile de araları çok iyidir. Bu sayede de 16 bit renk kalitesine sahip 65536 rengi kolayca işleyebilirler.

Renk sayısı daha yükseldiğinde ise, mesela 262 bin renk olduğunda? İşte burada problem çıkar, çünkü 262 bin kombinasyon 18 bit veri ile oluşturulabiliyor, RGB 666. Bu durumda da işlemci faktörü devreye giriyor, çünkü işlemciler 8, 16 ya da 32 bit veriyi iyi işleyebilirler. Veri 18 bit olunca işlemcilerin işine gelmiyor. İşlemci 32 bit veri ile işlem yapmayı sevdiğinden bu şekilde ekrana 2 piksel koyabiliyor. Ancak veri 18 bit olunca ilk piksel güzelce işleniyor ancak ikinci pikselin sadece 14 biti işlenip 4 biti de sonraya kalıyor. Bu şekilde de her seferinde ancak bir tam piksel üretilebildiğinden 16. piksele yani 18 bit verinin 32 bitlik alanın tekrar en başına girebildiği ana kadar grafik çiziminde bir performans kaybı oluyor.

Peki sıradan cep telefonlarındaki 262144 renk desteği nasıl oluyor? Onlar da 18 biti tam olarak desteklemiyor, 24 ya da 32 bit destekliyorlar. Renk standartı da RGB 888, yani her renk için 8 bit verimiz ve de 32 bit ise geri kalanında da belki transparan alanlar vs. bilgi var. İşlemci için 32 bit veriyi işlemek en iyisidir, 16 milyon renkli ekranlar da bu şekilde var. 24 bit veri de 18 bit veriden 8 bit daha az kaldığı ve bu sayede de sıralama döngüsü dört seferden sonra tekrar başa döndüğünden 16 sefer sonrası başa dönen sistemden iyidir.

Tabi renkler 24 bit olsa da ekran 18 bit ise buradaki 6 bit atılacak, yani hiçbir işe yaramayacaktır. Ancak 16 milyon renkli gerçek renk ekranlarda bunu kullanmak mümkündür.

Performans ile ilgili olay da şu ki, renklerin ekranda gösterilebilmesi için önce Frame Buffer (Çerçeve arabelleği) adlı bellek alanına yazılması ve LCD denetleyicinin de buradan ekran görüntüsünü alıp ekrana koyması gerekli. Fazlalık bitler işin içine girdiğinde de bu bellek alanının daha büyük olması gerekli ve bu da bu belleğin doldurulma hızını düşürüyor. Bu da ekranın sık güncellenmesi gerektiği oyun veya video gibi özelliklerde performansa olumsuz etki yapabiliyor.

Üreticiler de sırf performansı düşürmesi korkusundan cihazlarına nadir 65536 renk üzeri ekran renk sayısı desteği sağlıyorlar. Hatta cihazda ekran olarak 262144 renk destekli ekran olsa bile yazılımsal olarak yine 16 bit 65536 renk gösterebiliyor en fazla. 🙂 Daha yüksek sayıda renk için daha güçlü işlemciler gerekli ki, sanırım bu noktada değiliz hala, çünkü Toshiba TG01 gibi 1 GHz işlemcili cihazlarda bile ekran 262 bin renk desteklese de hala 65536 renk kullandırılıyor. 🙂 Diğer dandik diyebileceğimiz telefonlar bile ise performans kaybı göze alınarak 16 milyon renk bile gösterebiliyorlar. Bu kısımda benim de aklım karışmış durumda hala WM kullanan üreticiler neden geçmedi diye ama performans kaygıları dışında bildiğim bir kaygıları yok. 🙂