FlashPix | |
Extension: | .fpx |
Mime: | image/vnd.fpx |
Genre: | bitmap image file |
Extended From: | IVUE, Compound File Binary Format |
Open: | Yes (Apache 1.0-like) |
FlashPix is a bitmapped computer graphics file format where the image is saved in more than one resolution.[1] Its design anticipated that when an HTTP request is sent for the file by a browser plugin implementing the format, only the image compatible with the current screen resolution is returned to the browser, saving on bandwidth and download time.[2]
FlashPix is based on the IVUE file format, the tiled/multi-resolution image file format that was used by the Live Picture software (Live Picture Inc).In 1995, a consortium of Eastman Kodak (PhotoCD), Microsoft, Hewlett-Packard, and Live Picture Inc were looking for a powerful image file solution, and Live Picture's solution was the best approach for handling large image files.
FlashPix files have the .fpx file extension. FlashPix uses Microsoft's structured storage format,[3] which stores hierarchical data in a single file.
Each image is stored with its sub-resolutions. Each resolution is divided by 2, until the entire image can fit in a single tile. Tile size is variable, but the default usage is to have 64 × 64 pixel tiles (IVUE was using 256 × 256 pixels). Each tile can be compressed independently of other tiles using various algorithms (LZH, JPEG, RLE). Each pixel can have any number of channels of any size (for instance a 16-bit CMYK image), interleaved or not, including alpha channel.
The result is a file bigger than the original (at the same compression), but never more than 33% bigger. It allows efficient access to only the needed parts of the image without having to read the entire file.
For a 10200 × 7650 16-bit CMYK image using 64 × 64 tiles, as a normal uncompressed image would occupy 595 MB of disk space. FlashPix, however, will store:
Total size: ~793 MB
A viewer (such as photo editing software) will access only the needed part. In the worst case, for a 1680 × 1050 display, 53 × 33 tiles (56 MB) are needed in memory, whatever portion of the image is being used.
A Flashpix OpenSource Toolkit (libfpx) is provided by ImageMagick. This code is mostly provided by Digital Imaging Group Inc and the Eastman Kodak Company in 1999, under a license (flashpix.h) similar to Apache License 1.0. Some code is adapted from IVUE code, and it also includes its own JPEG library by HP.[4]