Les images FlashPix ont l'extension .fpx et utilisent le format structured storage de Microsoft[1] qui permet de stocker des informations hiérarchique dans un seul fichier binaire.
Chaque image contient donc un en-tête de description, incluant les informations EXIF, la taille de l'image complète, ainsi que la taille des tuiles utilisées (par défaut 64 dans FlashPix, et 256 dans IVUE).
Les sous-résolutions sont obtenues en divisant par 2 la résolution précédente, jusqu'à obtenir l'image complète dans une et unique tuile. Une sous-résolution peut être "manquante", ou partiellement manquante (et doit donc être générée à la volée en utilisant les résolutions plus grosses).
Chaque tuile peut être compressée indépendamment des autres tuiles en utilisant divers algorithmes (LZH, JPEG, RLE, Wavelets, ...).
À l'intérieur d'une tuile, chaque pixel peut avoir un nombre variable de canaux (par exemple 16bits CMYK, ou 10bits RGB), entrelacés ou non, avec un canal d'opacité prémultiplié ou non.
À compression identique, le fichier global est plus gros que l'image originelle d'environ 33 %. Mais c'est compensé par la rapidité d'accès à l'information.
Prenons l'exemple d'une image CMYK 16bits de 10200 par 7650 pixels. Le fichier (non compressé) utilisera 595MO.
FlashPix va stocker:
- L'image originelle: 10200 × 7650 pixels, soit 160 × 120 tuiles (~ 595MO).
- Sous-resolution 1: 5100 × 3825 pixels, soit 80 × 60 tuiles (~ 149MO)
- Sous-resolution 2: 2550 × 1913 pixels, soit 40 × 30 tuiles (~ 37MO)
- Sous-resolution 3: 1275 × 957 pixels, soit 20 × 15 tuiles (~ 9MO)
- Sous-resolution 4: 638 × 479 pixels, soit 10 × 8 tuiles (~ 2.3MO)
- Sous-resolution 5: 319 × 240 pixels, soit 5 × 4 tuiles (~ 598KO)
- Sous-resolution 6: 160 × 120 pixels, soit 3 × 2 tuiles (~ 150KO)
- Sous-resolution 7: 80 × 60 pixels, soit 2 × 1 tuiles (~ 37.5KO)
- Sous-resolution 8: 40 × 30 pixels, soit une seule tuile (~ 9KO)
Taille totale du fichier : ~ 793MO
Sur un écran "FullHD" 1920x1080... Avec un fichier classique, les 595MO devront être lus, et traités pour la mise à l'échelle. Avec FlashPix, dans le pire des cas, on aura besoin de 59x34 tuiles, soit 63 MO seulement à lire et traiter, soit 10 fois moins. Cela veut aussi dire qu'un logiciel peut conserver en mémoire une trentaine de ces images (sur 2 GO), alors qu'avec un fichier "classique", seules 3 images pourront être lues.
La différence se fait aussi sentir à la simple lecture, avec un SSD (200MO/s), le fichier originel nécessitera 3s de chargement pour affichage, alors que l'image FlashPix n'utilisera qu'une demi-seconde.