Τα
ΤΙFF αρχεία περιλαμβάνουν
μόνο raster
δεδομένα. Όπως έχουμε δει τα
raster
δεδομένα σ’ ένα TIFF αρχείο
δεν εμφανίζονται πάντα αμέσως μετά την
επικεφαλίδα εικόνας (image header), όπως με τα περισσότερα άλλα
formats. Αντίθετα, μπορούν να βρίσκονται σχεδόν
οπουδήποτε μέσα σ’ ένα TIFF αρχείο. Και επειδή το μεγαλύτερο μέρος
της δουλειάς που εκτελείται από ένα
πρόγραμμα που διαβάζει και γράφει TIFF
αρχεία είναι η δημιουργία και ο
χειρισμός των δεδομένων εικόνας, για την
κατανόηση του τρόπου που τα δεδομένα
εικόνας αποθηκεύονται μέσα
σ’ ένα TIFF αρχείο, είναι
απαραίτητο, να γνωρίσουμε τις έννοιες των
strips και των tiles
(τα tiles χρησιμοποιούνται
στις TIFF 6.0 εικόνες ) :
Ένα
strip είναι
μια ιδιαίτερη συλλογή από μια ή
περισσότερες συνεχείς γραμμές από raster δεδομένα εικόνας.
Διαιρώντας τα δεδομένα εικόνας σε ζώνες (strips) κάνει την είσοδο/
έξοδο με ενδιάμεση μνήμη
(buffer storage), την άμεση προσπέλαση και την εναλλαγή
των δεδομένων εικόνας πολύ πιο εύκολες.
Αυτή η έννοια υπάρχει σε αρκετά άλλα
formats αρχείου εικόνας.
Τρεις
ετικέτες είναι απαραίτητες για να ορίσουν
τα strips
των raster δεδομένων μέσα σ` ένα TIFF αρχείο. Αυτές οι
τρεις ετικέτες είναι οι RowsPerStrip, StripOffsets και StripByteCounts.
Τα
strips είναι ένα αντικείμενο μιας-διάστασης και
έχει μόνο ένα μήκος. Ένα tile μπορεί να θεωρηθεί ως ένα δισδιάστατο strip,
το οποίο έχει πλάτος και μήκος παρόμοιο με
ένα raster.
Στην πραγματικότητα μπορούμε να σκεφτούμε
κάθε tile
σε μια εικόνα ως ένα μικρό raster που περιέχει ένα κομμάτι
ενός μεγαλύτερου raster.Αυτό που χρειάζεται να κάνουμε είναι να
ταιριάξουμε τα tiles μαζί στις σωστές
τους θέσεις για να πάρουμε την εικόνα.
Διαιρώντας
μια εικόνα σε ορθογώνια
tiles παρά σε οριζόντια strips
έχουμε το μεγάλο πλεονέκτημα σε πολύ
μεγάλες και υψηλής ακρίβειας εικόνες.
Πολλές εφαρμογές δεν μπορούν να χειριστούν
εικόνες πολύ μεγάλου μεγέθους εξαιτίας των
μεγάλων απαιτήσεων σε μνήμη, κατά την
αποσυμπίεση και τον χειρισμό ακόμα και
μερικών εκατοντάδων γραμμών δεδομένων
εικόνας. Ακόμα κι αν θέλουμε να εμφανίσουμε
ένα πολύ μικρό μέρος της εικόνας θα πρέπει
να αποσυμπιέσουμε ολόκληρο το strip και να το διατηρήσουμε στην
μνήμη. Αν τα δεδομένα εικόνας είναι
οργανωμένα σε tiles, θα μπορούσαμε να
αποσυμπιέσουμε μόνο τα titles που περιέχουν το
κομμάτι της εικόνας που επιθυμούμε.
Όταν
χρησιμοποιούμε Tiles αντί για strips,
οι ετικέτες που είναι απαραίτητες είναι οι
εξής: TileWidth,TileLength,TileOffset και TileByCounts.
Το
TIFF υποστηρίζει ίσως τους περισσότερους
τύπους συμπίεσης δεδομένων από κάθε άλλο format αρχείο εικόνας. Είναι επίσης αρκετά
πιθανόν να χρησιμοποιηθεί ένα μη-υποστηριζόμενο
σχήμα συμπίεσης, απλώς προσθέτοντας τις
απαιτούμενες οριζόμενες - από τον χρήστη
ετικέτες. Το TIFF
4.0 υποστηρίζει μόνο RunLength Eencoding (RLE)
και CCITT T.4 και T.6 συμπίεση.Αυτά τα συμπιεστικά
σχήματα είναι τυπικά μόνο για χρήση με 8-bit color, και gray-scale και 1-bit ασπρόμαυρες εικόνες,
αντιστοίχως. Το TIFF5.0 πρόσθετα υποστηρίζει LZW συμπίεση, τυπικά
για έγχρωμες εικόνες, και το TIFF 6.0 υποστηρίζει την JPEG
μέθοδο συμπίεσης για χρήση με continuous-tone color και gray-scale εικόνες.
Το
TIFF χρησιμοποιεί και το PackBits RLE συμπιεστικό σχήμα που βρίσκεται στην
εργαλειοθήκη της Macintosh. Ο PackBits είναι ένας απλός και
αποτελεσματικός αλγόριθμος για συμπίεση
δεδομένων και είναι εύκολος να εφαρμοστεί.
Προβλήματα TIFF 6.0 και JPEG
Το
TIFF 6.0 πρόσθεσε το JPEG στην λίστα των TIFF συμπιεστικών σχημάτων. Δυστυχώς, η
προσέγγιση που έγινε από τον προσδιορισμό TIFF 6.0 είναι πολύ φτωχή στον
σχεδιασμό. Ένας νέος σχεδιασμός
επεξεργάζεται στην TIFF Advisory Committee. Αναμένεται λοιπόν, η κυκλοφορία του νέου
σχεδιασμού να παρέχει πολύ καλύτερα
αποτελέσματα σε ότι αφορά την εφαρμογή JPEG
στο ΤΙFF.