ビットマップ:ラスター画像とビット配列の構造・形式・用途
ビットマップは、フラグや索引向けのコンパクトなビット配列、または明示的な色値を持つピクセルベースのラスター画像を表す語です。構造、形式、用途、ベクター画像との違いを解説します。
概要
ビットマップとは、2進値の配列として情報を表現する方法である。コンピューティングにおいてこの語は一般に、相互に関連する二つの概念を指す。一つはビット配列であり、これはバイナリのフラグをコンパクトに並べたもので、ビットセットやビットマップインデックスとも呼ばれる。もう一つはラスター画像で、各ピクセルが色または明度を保持する格子状の画像である。どちらも添字で指定される固定位置という考え方を共有するが、前者はコンパクトなデータ構造、後者は視覚的な画像という異なる目的に用いられる。
ラスター・ビットマップ
ラスター・ビットマップは、画像をピクセル単位の幅と高さ、および各ピクセルの色表現によって記述する。色は直接符号化するトゥルーカラー方式、またはパレットを介して間接的に符号化するインデックスカラー方式を用いることができる。アルファなどの追加チャンネルにより、ピクセルごとの透明度も表現できる。非圧縮ビットマップに必要なメモリ量は画像の寸法とビット深度によって決まり、画像ファイルにはさらにヘッダー、メタデータ、圧縮データが含まれる場合がある。
ビット配列とインデックス
データ構造としてのビットマップは、項目ごとに1ビットを使ってブール値をコンパクトに格納する。ビットマップは、要素の所属を表す集合、占有状況マップ、ブルームフィルター、データベースにおける高速なビットマップインデックスに利用される。ビット単位の演算が効率的であるためである。論理演算、シフト、ビット数を数える命令を用いて操作されることが多い。
形式と圧縮
- ラスター画像形式は、主に色の符号化方法と、可逆圧縮か非可逆圧縮かによって異なる。
- インデックス形式は、色数が少ない場合に容量を節約するためパレットへの参照を格納する。トゥルーカラーは、より高い忠実度のために色値を直接格納する。
- 圧縮技術では、画質、ファイルサイズ、復号の複雑さの間でトレードオフがある。一部はすべてのピクセルを正確に保持し、他はサイズを削減するため情報を破棄する。
操作と用途
ビットマップに対する一般的な操作には、拡大・縮小(リサンプリング)、切り抜き、アルファを用いた合成、フィルタリング、色変換がある。ビットマップは写真、アイコン、グラフィカルユーザーインターフェース、ゲームのテクスチャ、スキャン文書に使われる。ビット配列は、システムプログラミング、検索インデックス、リソース割り当てにおいて重要である。
利点と制限
ビットマップはピクセルを精密に制御でき、ラスター表示装置上で容易に描画できる。しかし、解像度を超えて拡大すると品質が低下する。これに対し、ベクターグラフィックスは形状を数式で表すため、品質を損なわずに拡大できる。現代のワークフローでは、この二つの手法が組み合わせて使われることが多い。
用語と歴史
この用語は、メモリを表示ドットを制御するビットまたはバイトの配列として編成していた初期のグラフィックスハードウェアと低水準プログラミングに由来する。今日では、画像を指す文脈かデータ構造を指す文脈かによって、その具体的な意味が決まる。
関連項目
著者
AlegsaOnline.com ビットマップ:ラスター画像とビット配列の構造・形式・用途 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/11844