ILBM(Interleaved Bitmap)は、
Amigaコンピュータで広く使われていた画像
ファイルフォーマットです。Interchange File Format(IFF)という、データ構造をチャンクという単位で管理する規格に基づいており、画像データは複数の
ビットプレーンで構成されています。
ビットプレーンとは、画像の各ピクセルの特定のビットをまとめたもので、
ビットプレーンの数によって表示可能な色の数が決まります。また、水平方向と垂直方向の
連長圧縮をサポートしており、ファイルサイズを小さくする工夫が凝らされています。
ILBMフォーマットは、
Amigaコンピュータのチップセットと深く関わっています。
Amigaには、OCS(Original Chip Set)、ECS(Enhanced Chip Set)、AGA(Advanced Graphics Architecture)の3つの世代のチップセットが存在し、それぞれでILBMのサポート状況が異なります。
OCS/ECS
OCSとECSでは、最大6枚の
ビットプレーンをサポートしていました。単純に考えれば、6ビットで64色表示が可能ですが、実際にはパレットレジスタが32個しかなく、6枚目の
ビットプレーンの使い方が重要になります。6枚目の
ビットプレーンは、ピクセルの輝度(明るい/暗い)を指定して64色を表示するモードと、HAM(Hold And Modify)モードの2つの用途がありました。HAMモードでは、パレットは16色しか使わないものの、制限付きで4096色を表示することが可能でした。
AGA
AGAチップセットでは、8枚の
ビットプレーンと256色のパレットレジスタを備えていました。そのため、64色、128色、256色の表示モードに加え、HAM8モードによって、64色のパレットを使って最大262,144色を表示することができました。
IFFチャンク構造
ILBMはIFFに基づいているため、ファイルは複数のチャンクで構成されています。各チャンクは、4バイトのタイプ識別子と4バイトのチャンク長を持ち、その後にチャンクの内容が続きます。この構造により、フォーマットの拡張が容易になっています。プログラムは未知のチャンクをスキップすることができるため、互換性を保ちながら新しい機能を追加できます。
主要なチャンク
ILBMで使用される主なチャンクを以下に示します。
BMHD(BitMapHeaDer): ビットマップに関するヘッダー情報を含みます。画像の幅、高さ、ビットプレーンの数などが含まれます。
CMAP(ColorMAP): カラーパレット情報を格納します。標準的なIFFチャンクです。
GRAB(GRAB position): 画像の表示位置に関する情報を格納します。
CAMG(Commodore AMiGa computer): Amigaコンピュータに関する情報を格納します。
BODY: ビットプレーンデータとマスクデータを格納します。
さらに、標準的なIFFチャンクを使用して、作者、バージョン、著作権などの情報を追加することもできます。Deluxe Paintで作成されたファイルには、DPAN(Dpaint)チャンクが含まれる場合もあります。このチャンクには、Deluxe Paint固有の設定情報が格納されています。
ANIMフォーマット
ILBMから派生したフォーマットとして、アニメーションをサポートするANIMがあります。ANIMでは、以下のチャンクが追加定義されています。
ANHD(ANimation HeaDer): アニメーションに関するヘッダー情報を含みます。フレーム数などが含まれます。
*
DLTA(DeLTA): フレーム間の差分データを格納します。複数の圧縮方法をサポートしています。これにより、アニメーションデータのファイルサイズを削減できます。
ILBMは
Amigaの歴史において重要な役割を果たした
ファイルフォーマットであり、その設計思想は現代の画像フォーマットにも影響を与えています。