Image: 24ビットカラーと32ビットカラーの違い [Win9x/Me]

ここでいう○○ビットカラーというのはあくまでWindowsグラフィックドライバーの話に限る。例えば、PNG画像ファイルで32ビットカラーといえば、アルファチャンネル(透過度)+RGB各チャンネル8ビットの色深度を表すことになる。また最近では、Windows 10 バージョン1706以降で内部的にHDR(高ダイナミックレンジ)に対応し、10bpc出力などが可能になったので、ここに書かれている事の一部は当てはまらない。


最近、Win98で画面のプロパティを見ていて、「色」にある「True Color(24 ビット)」と「True Color(32 ビット)」は何が違うのか気になって調べた(昔も同じく調べたことがあったはずだけど、忘れた)。検索すると上位にこんな間違った回答も挙がっているので混乱する。

1677万色 32ビットカラーとは?鮮やかなディスプレイの基本概念をわかりやすく解説してみた | THE SIMPLE

結論から言えば、24ビットカラーと32ビットカラーに見た目の違いはない。しかし、パフォーマンスに影響が出る可能性はある。

24ビットカラーは1ピクセルがR, G, B各8ビット(256階調)で表現される。Windows 98における32ビットカラーは24ビットと同じ階調を使い、そこに意味がない余分な8ビットが追加されるだけ。この形式は8ビットをアルファチャンネル (alpha-channel) に割り当てたA8R8G8B8に対して、X8R8G8B8とも呼ばれる。デスクトップの描画にDirect3Dを使用するWindows Vista以降は前者、GDIを使用するWindows XP以前では後者が当てはまる。どちらにしても色深度は変わらない。

データサイズでいえば24ビットの方がメモリーを効率的に使えるが、コンピューターの中でもとりわけPCでは8ビット、16ビット、32ビット、64ビットを1単位として処理するため、24ビットデータは処理する前にデータサイズを変換する必要があり、都合が悪い。グラフィックボードによっては、24ビットカラーではOpenGLなどの一部の3D描画機能が使えない、または、そもそも24ビットカラーのモード自体をサポートしていないことがある。

よって、一般的に24ビットカラーと32ビットカラーの2択なら、32ビットカラーの方がパフォーマンスが良いとされる。次のページのHD Bench 2.61 DirectDrawのスコアを参照。

ビデオカードのベンチマーク

実際に32ビットカラーの方がパフォーマンスがいいかどうかは、デバイスドライバーやハードウェアの実装、処理の内容による。PC Magazine (December 2, 1997) の記事では、ベンチマーク (WinMark 98) で32ビットカラーよりも24ビットカラーの方が16%高いスコアが出たという。

Vendors including ATI and Matrox implement hardware-based “packed-pixel” data transfer in 24-bit mode, which allows an additional byte of graphics data in each PCI-bus transfer. This improves performance over 32-bit mode.

私のMatrox Millennium G400の場合、BitBlt(ブロック転送)を除いて32ビットカラーの方が良好なパフォーマンスを示している。

32ビットカラー:
Image: HDBENCH 3.40

24ビットカラー:
Image: HDBENCH 3.40

参考文献


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!