Οργάνωση του Αρχείου

Tα TIFF αρχεία οργανώνονται σε τρεις τομείς: την Επικεφαλίδα Αρχείου Εικόνας (Image file header - IFD),τον Κατάλογο Αρχείου Εικόνας (Image file directory - IFD) και τα raster δεδομένα. Από αυτά τα τρία τμήματα, μόνο το IFD και IFH απαιτούνται, ενώ θα μπορούσε σ` ένα TIFF  αρχείο να μην υπάρχουν καθόλου raster δεδομένα, ωστόσο ένα τέτοιο αρχείο δεν θα ήταν και πολύ χρήσιμο. Ένα TIFF αρχείο, το οποίο περιέχει πολλαπλές εικόνες έχει αποθηκευμένο ένα IFD και ένα raster ανά εικόνα.

Το TIFF φημίζεται ως ένα περίπλοκο format εν μέρει, επειδή η τοποθεσία κάθε IFD και τα δεδομένα στα οποία δείχνει κάθε IFD -συμπεριλαμβανομένων και των raster δεδομένων - μπορεί να ποικίλει. Στην πραγματικότητα το μόνο μέρος ενός TIFFαρχείου το οποίο έχει  σταθερή θέση μέσα σ’ ένα αρχείο, είναι το IFΗ, το οποίο είναι πάντα τα πρώτα οκτώ bytes κάθε TIFF αρχείου. Όλα τα άλλα δεδομένα σ’ ένα TIFF αρχείο βρίσκονται χρησιμοποιώντας τις πληροφορίες που βρίσκονται μέσα στο IFH ή στο IFD. Κάθε IFD και το σχετιζόμενο μ’ αυτό raster, είναι γνωστά ως TIFF υποαρχείο. Δεν υπάρχει κανένα όριο στον αριθμό των υπό-αρχείων που ένα TIFF αρχείο εικόνας μπορεί να περιέχει.

Κάθε IFD περιέχει μια ή περισσότερες δομές δεδομένων που ονομάζονται ετικέτες (tags).Κάθε ετικέτα είναι μια εφαρμογή των 12-bytes που περιέχει ένα συγκεκριμένο κομμάτι πληροφορίας σχετικό με τα raster δεδομένα. Μία ετικέτα μπορεί να περιέχει οποιονδήποτε τύπο δεδομένων, και το TIFF ορίζει πάνω από 70 ετικέτες που χρησιμοποιούνται για να αναπαραστήσουν συγκεκριμένη πληροφορία. Οι ετικέτες βρίσκονται πάντα σε συνεχείς ομάδες μέσα σε κάθε IFD.

Οι ετικέτες που ορίζονται από το TIFF ονομάζονται δημόσιες ετικέτες και δεν μπορούν να τροποποιηθούν εκτός των παραμέτρων που δίνονται από το TIFF. Οι ετικέτες οι οριζόμενες από τον χρήστη, ονομάζονται ιδιωτικές ετικέτες.

Το σχήμα TIFF-I, της επόμενης σελίδας, δείχνει τρεις πιθανούς  σχεδιασμούς της εσωτερικής δομής των δεδομένων ενός αρχείου TIFF που περιέχει τρεις εικόνες. Σε κάθε παράδειγμα, το IFH εμφανίζεται πάντα πρώτο στο TIFF αρχείο. Στο πρώτο παράδειγμα κάθε IFD έχει γραφτεί στην αρχή του αρχείου και τα raster στο τέλος. Αυτός ο σχεδιασμός είναι ο πιο αποδοτικός για το γρήγορο διάβασμα των IFD δεδομένων. Στο δεύτερο παράδειγμα, κάθε IFD γράφεται πρώτο κι αμέσως μετά γράφονται τα raster δεδομένα του. Αυτό είναι ίσως το πιο κοινό εσωτερικό format ενός TIFF αρχείου με πολλαπλές εικόνες. Στο τελευταίο παράδειγμα, βλέπουμε ότι όλα τα raster δεδομένα γράφονται πρώτα, το ένα μετά το άλλο, και μετά ακολουθούν όλα τα IFD. Αυτός ο φαινομενικά μη βολικός σχεδιασμός μπορεί να συμβεί αν τα raster δεδομένα είναι διαθέσιμα για εγγραφή πριν από τις πληροφορίες που εμφανίζονται μέσα στο IFD.

Κάθε IFD είναι ένας χάρτης που δείχνει στα δεδομένα που σχετίζονται με τα raster που μπορούν να γραφούν σε ένα TIFF αρχείο. Τα δεδομένα μπορεί να βρίσκονται απευθείας μέσα στην IFD δομή δεδομένων ή να ανεβρεθούν σύμφωνα με ένα  offset του οποίου η τιμή είναι αποθηκευμένη στο IFD. Επειδή τα εσωτερικά συστατικά του TIFF, συνδέονται μεταξύ τους με offset τιμές παρά με σταθερές θέσεις, τα προγράμματα που διαβάζουν και γράφουν TIFF αρχεία, είναι συχνά πολύ περίπλοκα, δίνοντας έτσι στα TIFF την φήμη αυτή. Οι offset τιμές που χρησιμοποιούνται σε ένα TIFF αρχείο βρίσκονται σε τρεις περιοχές. Η πρώτη offset τιμή βρίσκεται στα τελευταία τέσσερα bytes της επικεφαλίδας (header) και προσδιορίζει την θέση του πρώτου IFD.

Tα τελευταία τέσσερα bytes κάθε IFD είναι μία offset τιμή για το επόμενο IFD. Και τα τέσσερα τελευταία bytes κάθε ετικέτας μπορεί να περιέχουν μια offset τιμή στα δεδομένα τα οποία αναπαριστά ή πιθανόν τα ίδια τα δεδομένα.