Gap Support: IPF Library


The decoder/encoder part of the IPF library is being gradually rewritten/replaced to support everything that old, new and future images might need. Each block is processed as three stream files; one data stream, and two optional gap streams for each gap direction (see previous WIPs why there are two gap directions).

For full compatibility and a single code path for all images, missing streams are re-generated from available data when decoding old images. The decoder can now identify all streams for each block then pre-calculates, generates and caches information required for decoding.