# Tagged Image File Format

Das Tagged Image File Format (TIFF oder auch kurz TIF) ist ein Dateiformat zur Speicherung von Bilddaten. Es wurde ursprünglich von Aldus (1994 von Adobe übernommen) und Microsoft für die Farbseparation bei gescannten Rastergrafiken entwickelt. TIFF-Dateien besitzen den MIME-Typ image/tiff.

## Verwendung

TIFF ist, neben PDF und EPS, ein wichtiges Format zum Austausch von Daten in der Druckvorstufe in Verlagen und Druckereien, weil es das von ihnen verwendete CMYK-Farbmodell unterstützt. Außerdem kann man TIFF-Bilder mit hoher Farbtiefe (bis zu 32 Bit pro Farbkomponente) speichern, weshalb TIFF gern zum Datenaustausch bei der RAW-Konvertierung verwendet wird.
Im Internet wird TIFF genutzt, um Anwendern, wie etwa Verlagen, hochaufgelöste Bilder in druckfähiger, verlustfreier Qualität zur Verfügung zu stellen. Dabei wird in Kauf genommen, dass diese Dateien ein Mehrfaches der Größe eines verlustbehaftet komprimierten JPEG-Bildes haben. Bevor sich das verlustfreie PNG-Format durchsetzte, war TIFF der Quasi-Standard für Bilder hoher Qualität.
Für den Bereich der rasterbasierten Geoinformationen etabliert sich immer mehr eine mit zusätzlichen Tags versehene TIFF-Variante, das sogenannte GeoTIFF. Es erlaubt – etwa bei Kartenbildern, Luftbildern und ähnlichen Informationen – anzugeben, wo auf der Erde die im Bild dargestellte Situation exakt koordinatenbezogen liegt.
TIFF wird auch zum Archivieren von monochromen Grafiken (z. B. technischen Zeichnungen) und beim Computer-to-Plate-Verfahren in der Druckvorstufe verwendet, da in Verbindung mit der „Fax-Group-4“-Komprimierung sehr kompakte Dateien entstehen.
Um den Printmedien ihre Arbeit zu erleichtern, werden von manchen Organisationen, zum Beispiel ESA oder NASA, hochaufgelöste Bilder neben dem JPEG-Format stellenweise auch in TIFF angeboten, während bei niedrigen Auflösungen normalerweise nur das verlustbehaftete JPEG-Format zum Einsatz kommt.

## Eigenschaften

Die Kodierung von Zahlen (Byte-Reihenfolge) kann entweder als Big Endian oder Little Endian erfolgen. In einer Datei können mehrere Bilder abgelegt werden (Multipage-TIFF). Das können z. B. verschiedene Versionen desselben Bildes sein, wie Vorschaubild („Thumbnail“) und Originalbild. TIFF kennt verschiedene Farbräume und Algorithmen zur Datenkompression. Die meisten von ihnen sind verlustfrei (z. B. LZW, Lauflängenkodierung), allerdings kann TIFF auch als Containerformat für JPEG-Bilder dienen, die verlustbehaftet (DCT) komprimiert sein dürfen. Es ist auch möglich, IPTC-Metadaten in die TIFF-Datei einzubetten.
Einzelne Bildpunkte können bei TIFF aus beliebig vielen Einzelwerten (Samples) bestehen. Samples können neben dem Standardfall „ein Byte gleich ein Sample“ auch Teile eines Bytes einnehmen (z. B. 1, 2 oder 4 Bits) oder aus mehreren Bytes bestehen. Neben Ganzzahlen können auch Gleitkommazahlen als Bilddaten abgelegt werden. Die Möglichkeit zur Speicherung von Transparenz-Information (Alphakanal) existiert ebenfalls.
Bilddaten werden in Gruppen von Pixel­zeilen, sogenannten Stripes (Streifen), oder als rechteckige Tiles (Kacheln) abgelegt. Die Speicherung erfolgt dabei für jeden Streifen beziehungsweise für jede Kachel unabhängig von den anderen, so dass Bildteile, je nach Wahl der Größe der Streifen beziehungsweise Kacheln, relativ schnell geladen werden können. Andere Formate erfordern hier das Laden sämtlicher Bilddaten vor dem gewünschten Ausschnitt. Ziel der Unterteilung beim Entwurf war vor allem, dass Einzelteile komplett im Speicher gehalten werden können. Die 1992er-Spezifikation empfiehlt dafür acht Kilobyte Maximalgröße.
Programme wie Photoshop bieten an, TIFF-Dateien mit separaten Ebenen zu erstellen. Ferner gibt es die Möglichkeit, TIFFs mit einer Bildpyramide abzuspeichern. Dadurch sind innerhalb einer Datei mehrere Auflösungen des Bildes enthalten. Damit können zum Beispiel Layout-Programme oder Bildbetrachter eine kleine Vorschau des Bildes schneller anzeigen, da sie das Bild nicht in der vollen Auflösung zu laden brauchen.

## Einschränkungen

Größter Nachteil von TIFF ist seine Komplexität. Die Vielfalt möglicher gültiger TIFF-Dateien kann nur schwer von einzelnen Programmen unterstützt werden. In der Spezifikation des Dateiformates ist deswegen eine Untermenge gültiger TIFF-Dateien definiert, die jedes TIFF-fähige Programm verarbeiten können sollte, genannt Baseline TIFF.
Für Offset-Werte werden grundsätzlich 32 Bit verwendet. Das führt dazu, dass nur Stellen bis zu vier Gigabyte vom Dateianfang an referenziert werden können. Da einige Programme es als vorzeichenbehafteten 32-Bit-Versatz implementieren, haben diese Programme sogar die Grenze bei 2 Gigabyte. Zur Zeit der Entwicklung von TIFF stellte das in der Praxis keine Einschränkung dar, in letzter Zeit fallen allerdings insbesondere in manchen wissenschaftlichen Disziplinen (z. B. Astronomie) sehr große Bilder an, die TIFF nicht speichern kann. Um diese Einschränkung zu umgehen, wurde BigTIFF eingeführt. Dieses Format erlaubt die Verwendung von 64-Bit-Offsets.
Ein Streaming von TIFF-Dateien ist nicht in allen Fällen ohne Pufferung der gesamten Datei möglich, da TIFF an vielen Stellen von Offset-Werten Gebrauch macht, die Daten referenzieren können, die vor der Stelle liegen, an der sie referenziert werden. Somit ist wahlfreier Zugriff oder eben Pufferung im Speicher eine Notwendigkeit. Aus diesem Grund ist TIFF auch für das WWW ungeeignet. Adobe hat bei TIFF (anders als bei seinem Dokumentenformat PDF) nie nachträglich ein Verfahren zur Linearisierung hinzugefügt, das in der so konvertierten Datei eine Reihenfolge gewährleistet, die Rückgriffe unnötig macht.

## Grundstruktur

Die ersten acht Bytes einer TIFF-Datei enthalten eine Signatur, die die Byte order und die Magische Zahl 42 enthält, außerdem ein Offset zum ersten Image File Directory (IFD).
Ein solches IFD gibt Informationen zu einem Bild in der TIFF-Datei und besteht aus einer Liste von Markierungen (englisch „tags“), einzelnen Informationseinheiten. Eine solche Markierung kann etwa die Breite des Bildes in Pixeln beschreiben oder den Namen der Software, mit der die TIFF-Datei erzeugt wurde.
Jedes Tag hat eine eigene Kennzeichnungs-Nummer (z. B. 256 für die Bildbreite) und einen Typ (z. B. 16-Bit-Ganzzahlen, 32-Bit-Gleitkommazahlen, Zeichenketten u. v. m.). Manche dieser Tags müssen vorhanden sein (z. B. die Bildbreite), andere sind optional (z. B. der Name der Software). Eine Reihe von Anwendungen verwendet proprietäre Tags. Der Aufbau der Daten, die in einem solchen Tag gespeichert oder referenziert werden, ist dann meist nicht dokumentiert. Eine Nummer für eigene, proprietäre Tags kann man bei Adobe beantragen.
Am Ende des IFD steht ein Offset-Wert, der das nächste IFD in der Datei referenziert, oder aber 0, falls das aktuelle IFD das letzte war. Auf diese Art können beliebig viele Bilder in der Datei untergebracht werden, solange die Gesamtmenge der Daten vier Gigabytes nicht übersteigt (siehe auch Einschränkungen weiter oben).
Die IFD-Struktur wird im Exif-Teil von JFIF-Dateien wiederverwendet.

## Spezifikation

Eine genaue Beschreibung des Formats für Entwickler kann als PDF-Datei abgerufen werden. Die neueste Version ist 6.0 vom 3. Juni 1992. Sie wird ergänzt durch TIFF Technical Notes. Dabei handelt es sich um Texte, die TIFF einzelne Fähigkeiten hinzufügen, unter anderem das Deflate-Verfahren zur verlustlosen Datenkompression, das bereits in gzip und PNG verwendet wird.