PackBits
Apple introduced the
PackBits format for
run-length encoding of data with the release of
MacPaint on the
Macintosh computer. This compression scheme is one of the types of compression that can be used in
TIFF-files.
A PackBits data stream consists of packets of one byte of header followed by data. The header is a signed byte; the data can be signed, unsigned, or packed (such as MacPaint pixels).
| Header byte | Data |
| 0 to 127 | 1 + n literal bytes of data |
| 0 to -127 | One byte of data, repeated 1 - n times in the decompressed output |
| -128 | No operation |
Note that interpreting 0 as positive or negative makes no difference in the output. Runs of two bytes adjacent to non-runs are typically written as literal data.