インデックスカラー:少ないデータ量で画像を表現する技術
インデックスカラーは、
ビットマップ画像を表現する方式の一つです。画素ごとに色を直接定義するトゥルーカラーとは異なり、あらかじめ用意されたカラーマップと呼ばれる色テーブルを参照することで、各画素の色を表現します。
インデックスカラーの仕組み
ロゴマークのような、使用色が限られた画像を想像してみてください。インデックスカラーでは、画像で使用されている色を事前にカラーマップに登録します。例えば、「色番号1:赤、色番号2:緑、色番号3:青」といった具合です。そして、実際の画像データは、各画素の色番号を記録するだけで済みます。
この方式の利点は、データ量の削減です。例えば、256色のカラーマップを使用する場合、各画素は8
ビット(1バイト)で表現できます。一方、トゥルーカラーでは、赤、緑、青の各成分に8
ビットずつ必要となり、合計24
ビット(3バイト)になります。つまり、インデックスカラーはトゥルーカラーと比べてデータ量を大幅に削減できるのです。
カラーマップは、カラールックアップテーブル(CLUT)、カラーパレットなどとも呼ばれます。カラーマップのサイズは、使用できる色の数によって決まります。4色であれば2
ビット、16色であれば4
ビット、256色であれば8
ビットが必要になります。
CPUの処理単位が8
ビットであることから、256色はインデックスカラーとして広く用いられてきました。
インデックスカラーのメリットとデメリット
インデックスカラーの最大のメリットは、データ量の削減によるファイルサイズの縮小と高速な描画です。特に、コンピュータの性能が限られていた時代には、このメリットは非常に大きかったです。
しかし、デメリットもあります。表現できる色の数が限られているため、自然画像のような色数の多い画像には適していません。また、画像編集ソフトによっては、インデックスカラー画像の編集が難しい場合があります。
インデックスカラーの活用例
インデックスカラーは、主に以下の用途で活用されています。
ロゴやイラスト: 色数が少ないため、データ量を小さく保ちつつ、鮮やかな表現が可能です。
Web画像: GIF形式はインデックスカラーを使用しており、Webページで広く利用されています。
*
ゲーム: 昔は、容量やハードウェア性能の制約から、インデックスカラーが頻繁に用いられていました。パレットアニメーションという手法では、カラーマップを切り替えることで、少ないデータでアニメーションを実現していました。
トゥルーカラーとの比較と減色処理
トゥルーカラーは、各画素に赤、緑、青の各成分を直接指定する方式です。インデックスカラーと比較して、表現力が高い反面、データ量が多くなります。
トゥルーカラー画像をインデックスカラーに変換する処理は、減色処理と呼ばれます。この処理では、元の画像の色数を減らしながら、人間の目に見える変化を最小限に抑える必要があります。高度なアルゴリズムが必要となります。
PCとインデックスカラー
初期のPCでは、ハードウェアの制約から、インデックスカラーが広く利用されていました。例えば、
PC-9801シリーズでは、4096色の中から16色を同時に表示できるハードウェアによるインデックスカラーが採用されました。Macintoshの初期のカラー対応機では、ソフトウェアによるインデックスカラーが用いられていました。
まとめ
インデックスカラーは、データ量を削減し、高速な描画を実現できる画像表現方式です。色数の制限があるため、すべての画像に適しているわけではありませんが、特に色数の少ない画像では有効な手法です。現在でも、Web画像やロゴなど、様々な用途で利用されています。