PackBits

From Just Solve the File Format Problem
Jump to: navigation, search
File Format
Name PackBits
Ontology

PackBits (or Apple Macintosh PackBits, or Macintosh RLE) is a form of run-length encoding often used to compress image data.

Contents

Format details

The compressed data stream consists of a code byte, followed by zero or more data bytes, followed by another code byte, and so on.

Code byte (N) Instructions
0 ≤ N ≤ 127 Interpret the next N+1 bytes literally.
N = 128 Reserved
129 ≤ N ≤ 255 Repeat the next byte 257−N times.

For whatever reason, PackBits is usually described in terms of signed bytes, which leads to the equivalent definition:

N = −128 Reserved
−127 ≤ N ≤ −1 Repeat the next byte 1−N times.
0 ≤ N ≤ 127 Interpret the next N+1 bytes literally.

The reserved code byte (128 or −128) should be ignored, unless a format specification says otherwise. A few formats use it to mark the end of the compressed data.

Variants

PackBits compresses a sequence of bytes, but variants exist in which a unit of decompressed data is more than one byte (e.g. some PICT, Palm bitmap, and IFF-DEEP compression schemes), or even less than one byte (e.g. GlowIcons).

Related formats

Formats that may use PackBits compression include MacPaint, PICT, TIFF, ILBM, and DEGAS.

Specifications

Resources

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox