Format Tiff d'Aldus

Cette section présente le format d'images Tagged Image File Format (TIFF) d'Aldus utilisé par Up ! Tagged Image File Format.

Une image au format Tagged Image File Format (TIFF) est encodée soit avec la convention d'Intel i.e. Little Endian ou soit avec celle de Motorola i.e. Big Endian.

La résolution est variable.

Les palettes de couleurs possibles sont noir et blanc, 16 couleurs, 256 couleurs ou couleurs vraies.

Une image logique peut comporter plusieurs images physiques. Par exemple, les pages d'une télécopie.

Blocs du flux Tiff

Le format Tagged Image File Format (TIFF) est formaté en blocs organisés en répertoire. Chaque bloc comporte une étiquette.

Voici les codifications des blocs :

IdentifiantDescription
En-têteEn-tête du fichier.

Bloc En-tête

Le bloc d'en-tête commence au premier octet du fichier.

Voici les propriétés du bloc :

PropriétéTaille en octetsDescription
Ordre des octets2.II pour Intel
MM pour Motorola.
Signature2.Signature non signée. 42.
Offset4.Offset du premier bloc.

La propriété Offset mentionne l'offset du premier répertoire des blocs de l'image. Le déplacement est compté à partir du début du fichier.

Bloc Répertoire

Les blocs sont organisés en répertoires. A chaque répertoire correspond une image physique. Chaque répertoire est mémorisé dans un bloc de taille variable dont voici les propriétés :

PropriétéTaille en octetsDescription
Nombre d'entrées2.Nombre d'entrées dans le répertoire. n.
Entrée 012.Bloc correspondant l'entrée 0.
.........
Entrée n-112.Bloc correspondant l'entrée n-1.
Offset4.Offset du répertoire suivant.

La propriété Offset mentionne l'offset du répertoire suivant des blocs de l'image. Le déplacement est compté à partir du début du fichier.

Si Offset a pour valeur 0, alors il n'y a pas d'entrée suivante.

Bloc Entrée de répertoire

Une entrée de répertoire est mémorisée dans un bloc dont voici les propriétés :

PropriétéTaille en octetsDescription
Etiquette2.Etiquette de l'entrée.
Type2.Type de l'entrée.
NbElements4.Nombre d'éléments.
Valeur4.Valeur de l'entrée.

Les entrées sont classées par ordre d'étiquette croissante.

Les valeurs possibles de la propriété Type sont :

Si la propriété NbElements a pour valeur 1, alors la valeur de l'entrée est une valeur unique. Sinon, sa valeur est un tableau du type Type. Voici deux cas particuliers :

Le type rationnel, il est obtenu par le quotient de deux entiers sur quatre octets. Le premier entier est le numérateur et le suivant le dénominateur.

Pour une entrée dont la valeur dépasse 4 octets, la propriété Valeur mentionne en fait un offset à partir duquel la valeur stricto sensus est conservée. Le déplacement est compté à partir du début du fichier.

Entrées des répertoires des blocs du flux Tiff

Images en noir et blanc

Voici les entrées de répertoire pour les images en noir et blanc :

PropriétéCodeTypeDescription
LargeurPixels256short ou long.Largeur de l'image en pixels.
HauteurPixels257short ou long.Hauteur de l'image en pixels.
Compression259short.Mode de compression.
InterpretationPhotometrique262short.Si 1, l'image est en inverse vidéo.
OffsetBande273short[] ou long[].Offset entre deux bandes de pixels.
NbLignesParBande278short ou long.Nombre de lignes de pixels par bande.
NbOctetsParBande279short[] ou long[].Nombre d'octets par bande.
ResolutionX282rationnel.Résolution en abscisse.
ResolutionY283rationnel.Résolution en ordonnée.
Unite296short.Unité de mesure.

Les valeurs admissibles pour la propriété Compression sont :

Les propriétés ResolutionX et ResolutionY sont exprimées en nombre de pixels par unité de mesure.

Les valeurs admissibles pour la propriété Unite sont :

L'image est découpée en bandes de lignes de même hauteur du haut vers le bas. Pour chaque bande, :

Images en niveaux de gris

Voici les entrées de répertoire supplémentaires pour les images en niveaux de gris :

PropriétéCodeTypeDescription
NbBitsParPixel258short.Nombre de bits par pixels - 4 ou 8.

Images en couleurs

La propriété InterpretationPhotometrique a pour valeur 3.

Voici les entrées de répertoire supplémentaires pour les images en couleurs :

PropriétéCodeTypeDescription
TableCouleurs320short[].Codage RGB des couleurs.

La propriété TableCouleurs est un triple tableau d'entiers sur deux octets. Il y a un tableau par composante rouge, verte et bleue et il y a autant d'éléments dans chaque tableau que de couleurs. Le nombre de couleurs est défini par 2^NbBitsParPixel.

Entrées optionelles

Voici les entrées de répertoire optionnelles :

PropriétéCodeTypeDescription
ModeRemplissageOctet266short.Mode de remplissage des octets.
Commentaire270char[].Commentaire sur l'image.
NomApplication305char[].Nom de l'application qui a créée l'image.
NbInformationsParPixel277short.Nombre d'informations par pixel.
NomArtiste315char[].Nom de l'artiste.
NbColonnesParCarreau322short ou long.Nombre de colonnes de pixels par carreau.
NbLignesParCarreau323short ou long.Nombre de lignes de pixels par carreau.
OffsetCarreau324short[] ou long[].Offset entre deux carreaux de pixels.
NbOctetsParCarreau325short[] ou long[].Nombre d'octets par carreau.
Copyright33 432char[].Copyright.

La propriété ModeRemplissageOctet est uniquement utilisée pour les images en noir et blanc compressées avec l'algorithme Huffman :

Le nombre d'informations par pixel est usuellement :

S'il est supérieur, cela signifie qu'il existe des informations supplémentaires telle la composante alpha pour l'opacité.

Si les propriétés NbColonnesParCarreau, NbLignesParCarreau, OffsetCarreau et NbOctetsParCarreau sont renseignées, alors l'image n'est pas découpée en bandes mais en carreaux de gauche à droite puis de haut en bas :

Il existe d'autres propriétés non supportées par Up ! Tagged Image File Format.