FlashPix
Filename extension |
.fpx |
---|---|
Internet media type |
image/vnd.fpx |
Type of format | bitmap image file |
Extended from | IVUE, Compound File Binary Format |
Open format? | 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,[dubious ] saving on bandwidth and download time.[2]
History[edit]
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.
Technical Overview[edit]
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 x 64 pixel tiles (IVUE was using 256 x 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 x 7650 16-bit CMYK image using 64 x 64 tiles, as a normal uncompressed image would occupy 595 MB of disk space. FlashPix, however, will store:
- The original image: 10200 x 7650 pixels in 160 x 120 tiles (~ 595 MB, but usually less using RLE or LZH per-tile)
- Sub-resolution 1: 5100 x 3825 pixels in 80 x 60 tiles (~ 149 MB)
- Sub-resolution 2: 2550 x 1913 pixels in 40 x 30 tiles (~ 37 MB)
- Sub-resolution 3: 1275 x 957 pixels in 20 x 15 tiles (~ 9 MB)
- Sub-resolution 4: 638 x 479 pixels in 10 x 8 tiles (~ 2.3 MB)
- Sub-resolution 5: 319 x 240 pixels in 5 x 4 tiles (~ 598 KB)
- Sub-resolution 6: 160 x 120 pixels in 3 x 2 tiles (~ 150 KB)
- Sub-resolution 7: 80 x 60 pixels in 2 x 1 tiles (~ 37.5 KB)
- Sub-resolution 8: 40 x 30 pixels in a single tile (~ 9 KB)
Total size: ~ 793 MB
A viewer (such as photo editing software) will access only the needed part. In the worst case, for a 1680 x 1050 display, 53 x 33 tiles (56 MB) are needed in memory, whatever portion of the image is being used.
Availability[edit]
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]
References[edit]
- ^ "FlashPix Format Specification" (PDF).
- ^ "TechWeb: TechEncyclopedia". TechWeb. September 1, 2006.
- ^ "AI3A Standards - Initiatives- Flashpix". International Imaging Industry Association. September 1, 2006. Archived from the original on April 26, 2008.
- ^ "ImageMagick/libfpx". ImageMagick Studio LLC. 19 September 2019. license