ILBMILBM is a subtype of the IFF file format used for to store picture data. ILBM stands for InterLeaved BitMap which refers to the way the pictures are stored. The picture is split in bitplanes and each bitplane stores one bit of color information for all pixels. With 2 bitplanes 4 colors are possible, with 3 bitplanes 8 colors etc. The format supports horizontal and vertical RLE (Runtime Length Encoding) compression.
The format was popular on the Amiga home computer and therefore supports some special modes of interpretation of the bitplanes. One is HalfBright where the first 5 bitplanes select one of 32 colors and the 6th bitplanes will scale the 32 colors to half the brightness (prior to AGA chipset the Amiga only had 32 registers for color translation). The other mode is HAM (Hold and Modify) where there are only 16 colors in the palette, but each pixel can take the color from the previous one and modify only one of the red, green or blue intensities. This makes it possible to display upto 4096 colors with only 6 bitplanes (although some color changes take 3 pixels). The choice of the first 16 colors are therefore important for the quality of the overall picture.
Because ILBM is based on the IFF file format the file consists of chunks, each chunk consists of a 4 byte type, a 4 byte length field and a structure depended on the type of the chunk. This makes it possible for programs to extend the format. Unknown chunks can be skiped because the length is known.
The following chunks are defined for the ILBM type:
- BMHD (BitMapHeaDer)
- CMAP (ColorMAP) - standard IFF chunk for color palette
- GRAP (GRAP position)
- CAMG (Commodore AMiGa computer)
- BODY - all bitplanes and masks, interleaved by row
- DPAN (Dpaint) - for storing DPaint's internal settings
- ANHD (ANimation HeaDer)
- DLTA - stores changes between frames, with various compression methods supported to make use of the redundency between frames.