ILBM
ILBM (アイエルビーエム、Interleaved Bitmap の略)は、Interchange File Format (IFF) を使って画像データを格納するファイルフォーマット。画像データは可変個のビットプレーンとして格納される。ビットプレーンとは、画像内の各ピクセルの特定のビットだけを集めたものである。水平方向と垂直方向の連長圧縮をサポートしている。
このフォーマットは、Amiga のチップセットの機能と密接に関連しており、そのチップセットには3つの世代がある。
Amigaとの関係
[編集]OCS (Original Chip Set) と ECS (Enhanced Chip Set) では、最大6枚のビットプレーンをサポートしており、普通に考えれば64色表示が可能である。しかし、パレットレジスタは32個しかない。5枚のビットプレーンはパレットレジスタ番号にそのまま対応している。6枚のビットプレーンの用途は2つある。1つはピクセルの輝度(明るい/暗い)を指定して64色を表示するモードである。もう1つは HAM (Hold And Modify) モードと呼ばれ、パレットでは16色しか使わず、制限付きながら4096色を表示するモードである。
AGA (Advanced Graphics Architecture) チップセットでは、8個のビットプレーンを使え、256色のパレットレジスタがある。このため、64色、128色、256色のモードがある。さらに HAM8 モードで64色のパレットを使って、最大 262,144 色を表示する。
ILBM は IFF に基づいているため、ファイルはチャンク (chunk) で構成される。各チャンクには4バイトのタイプ識別子、4バイトのチャンク長があり、その後の構造はチャンクのタイプによって異なる。このような構造により、フォーマットを容易に拡張できる。プログラムは未知のチャンクをスキップすればよいからである(長さは判っている)。
チャンク
[編集]以下のチャンクがILBM用に定義されている。
- BMHD (BitMapHeaDer)
- CMAP (ColorMAP) - カラーパレット用標準IFFチャンク
- GRAB (GRAB position)
- CAMG (Commodore AMiGa computer)
- BODY - ビットプレーンとマスク。
もちろん、ILBMファイルにも標準IFFチャンクを含めることができ、作者、バージョン、コピーライトなどを記述できる。Deluxe Paint で作成したファイルには次のチャンクもある。
- DPAN (Dpaint) - Deluxe Paint の設定を格納
ILBM から派生したフォーマットとして、アニメーションをサポートした ANIM がある。ANIM ではさらに以下のチャンクが定義されている。
- ANHD (ANimation HeaDer)
- DLTA (DeLTA) - フレーム間の差分を格納。圧縮方法もいくつかサポートしている。