16bitカラー表示のモバイル機器

携帯機器用のプラットフォームのAndroidはモバイル向けの低コストなハードウェアに合わせて16bitカラーを前提に設計されているようで、2010年に発売された時代の最先端を行くハイスペックなスマートフォンなのにグラデーションがきれいに表示されなかったりする。WindowsMobileに使われているWindowsCEも16bitカラー表示が通常なので残念ながら同様なんじゃないだろうか。

iPhoneも含めて大体の携帯機器のディスプレイは各色6ビットの18ビットパネルを使っているみたいなので、短時間に表示する内容を変化させて中間色を擬似的に見せるDithering処理をハードウェアで行ってマッハバンドが出にくいようにしているらしい。

http://plusd.itmedia.co.jp/pcuser/articles/0902/16/news001.html
http://prohardver.hu/dl/cnt/2007-03/1500/iccz/hi-frc.pdf

ソフトウェアで行う普通のDithering処理は一枚表示の静止画像に対して適用するものなので、時間軸で変化させるような処理はあまり行わないと思う。それと比べると時間軸方向で変化を加えている処理の方が画質が上なんだろう。ソフトウェアでやるより電気も食わないだろうし。ただそういうハードウェアでも元々16bitの色深度でデータを受け取っていたら中間色を表現出来ない。そういう16bit画像しか扱えない環境でよりきれいに絵を表示するにはソフトウェアでDitheringを行うべきだろう。

ソフトウェアでDitheringを行う負荷を避けるために、あらかじめ配布するソフトウェアにDitheringを施した16bitカラーの画像のみを入れる手もあると思う。でもそういうソフトウェアを将来24bit表示の環境で動かしたら、他のソフトに比べて粒々したピクセルが見えてしまってチープに感じるかもしれない。片手で持つような数百グラム以下のモバイル機器なんだから陳腐でもしょうがないのかもなぁとも思うけれど、Androidではあと数年はこの状況が続きそうだ。

http://groups.google.com/group/android-developers/browse_thread/thread/bfa594e8663a6b0f/058e17e1b5efcf92?lnk=gst&q=24-bit#058e17e1b5efcf92
http://groups.google.com/group/android-developers/browse_thread/thread/23b60caea0110ff7/4634c26b0b4918db?lnk=gst&q=24bit#4634c26b0b4918db
http://groups.google.com/group/android-developers/browse_thread/thread/452cc9629806faef/2a452164b287611b?lnk=gst&q=bit+depth#2a452164b287611b
http://groups.google.com/group/android-developers/browse_thread/thread/9f5c1fc3243b185a/b3c0928e4bb2c5a0?hl=en&lnk=gst&q=RGB#b3c0928e4bb2c5a0