Τι είναι ένα αρχείο TIFF;
Το TIFF ή το TIF, Μορφή αρχείου με ετικέτα, αντιπροσωπεύει εικόνες ράστερ που προορίζονται για χρήση σε μια ποικιλία συσκευών που συμμορφώνονται με αυτό το πρότυπο μορφής αρχείου. Είναι σε θέση να περιγράφει δεδομένα εικόνας διπλού επιπέδου, κλίμακας του γκρι, έγχρωμης παλέτας και έγχρωμης εικόνας σε πολλούς χρωματικούς χώρους. Υποστηρίζει συστήματα συμπίεσης με απώλειες καθώς και χωρίς απώλειες για να επιλέξετε μεταξύ χώρου και χρόνου για εφαρμογές που χρησιμοποιούν τη μορφή. Η μορφή δεν εξαρτάται από τη μηχανή και δεν περιέχει όρια όπως επεξεργαστή, λειτουργικό σύστημα ή συστήματα αρχείων.
Σύντομο ιστορικό της μορφής αρχείου TIFF
Η μορφή αρχείου TIFF δημιουργήθηκε αρχικά από την Aldus Corporation το φθινόπωρο του 1986, μετά από μια σειρά συναντήσεων με διάφορους κατασκευαστές σαρωτών και προγραμματιστές λογισμικού. Ο πρωταρχικός σκοπός της μορφής αρχείου TIFF ήταν να παρέχει μια κοινή μορφή αρχείου σαρωμένης εικόνας για όλους τους προμηθευτές επιτραπέζιων σαρωτών. Ξεκινώντας με την υποστήριξη μόνο για δυαδική μορφή εικόνας, η μορφή εξελίχθηκε στην υποστήριξη εικόνων σε κλίμακα του γκρι και έγχρωμων εικόνων με το πέρασμα του χρόνου. Η αρχική έκδοση των προδιαγραφών μορφής αρχείου TIFF μπορεί να επισημανθεί ως Reivision 3.0 όπως υπήρχαν δύο προηγούμενες πρόχειρες εκδόσεις. Μια σημαντική Αναθεώρηση 5.0 δημοσιεύθηκε το 1988 που πρόσθεσε υποστήριξη για έγχρωμες εικόνες παλέτας και συμπίεση LZW. Η αναθεώρηση 6.0 των μορφών αρχείων TIFF δημοσιεύτηκε το 1992 μετά από αυτό. Το 1994, η Adobe Systems εξαγόρασε την Aldus και οι προδιαγραφές είναι πλέον διαθέσιμες και διατηρούνται από την Adobe Systems.
Προδιαγραφές μορφής αρχείου TIFF
Η μορφή αρχείου TIFF είναι επεκτάσιμη και έχει υποστεί αρκετές αναθεωρήσεις που επιτρέπουν τη συμπερίληψη απεριόριστου όγκου ιδιωτικών ή ειδικών πληροφοριών. Ένα αρχείο TIFF ξεκινά με μια κεφαλίδα 8 byte όπου τα byte έχουν αριθμό από 0 έως N. Το μεγαλύτερο δυνατό αρχείο TIFF έχει μήκος 2**32 byte. Το αρχείο ξεκινά με μια κεφαλίδα αρχείου εικόνας 8 byte που οδηγεί απευθείας σε ένα αρχείο εικόνας (IFD). Ένα IFD περιέχει πληροφορίες για την εικόνα καθώς και δείκτες για τα πραγματικά δεδομένα εικόνας.
Κεφαλίδα αρχείου TIFF
Η κεφαλίδα αρχείου TIFF 8 byte περιέχει τις ακόλουθες πληροφορίες:
Byte 0-1: Η σειρά byte που χρησιμοποιείται στο αρχείο. Οι νόμιμες τιμές είναι:“II”(4949.H)“MM” (4D4D.H).
Στη μορφή «II», η σειρά byte είναι πάντα από το λιγότερο σημαντικό byte στο πιο σημαντικό byte, τόσο για ακέραιους αριθμούς 16-bit όσο και για 32-bit Αυτό ονομάζεται σειρά byte μικρής έντασης. Στη μορφή “MM”, η σειρά byte είναι πάντα από το πιο σημαντικό προς το λιγότερο σημαντικό, τόσο για ακέραιους αριθμούς 16-bit όσο και για 32-bit. Αυτό ονομάζεται σειρά byte big-endian.
Byte 2-3: Ένας αυθαίρετος αλλά προσεκτικά επιλεγμένος αριθμός (42) που προσδιορίζει περαιτέρω το αρχείο ως αρχείο TIFF. Η σειρά byte εξαρτάται από την τιμή των Byte 0-1.
Byte 4-7: Η μετατόπιση (σε byte) της πρώτης IFD. Ο κατάλογος μπορεί να βρίσκεται σε οποιαδήποτε θέση του αρχείου μετά την κεφαλίδα, αλλά πρέπει να ξεκινά από ένα όριο λέξης. Συγκεκριμένα, ένας Κατάλογος αρχείων εικόνας μπορεί να ακολουθεί τα δεδομένα εικόνας που περιγράφει. Οι αναγνώστες πρέπει να ακολουθούν τους δείκτες όπου κι αν οδηγούν. Ο όρος μετατόπιση byte χρησιμοποιείται πάντα σε αυτό το έγγραφο για να αναφέρεται σε μια θέση σε σχέση με την αρχή του αρχείου TIFF. Το πρώτο byte του αρχείου έχει μετατόπιση 0.
Κατάλογος αρχείων εικόνας
Ένα IFD περιέχει πληροφορίες για την εικόνα καθώς και δείκτες στα πραγματικά δεδομένα εικόνας. Αποτελείται από μια μέτρηση 2 byte του αριθμού των καταχωρήσεων καταλόγου (δηλ. τον αριθμό των πεδίων), ακολουθούμενη από μια ακολουθία καταχωρήσεων πεδίων 12 byte , ακολουθούμενη από μια μετατόπιση 4 byte του επόμενου IFD (ή 0, εάν δεν υπάρχει). Πρέπει να υπάρχει τουλάχιστον 1 IFD σε ένα αρχείο TIFF και κάθε IFD πρέπει να έχει τουλάχιστον μία καταχώρηση.
Καταχώρηση IFD
Κάθε Καταχώρηση IFD 12 byte έχει την ακόλουθη μορφή.
Bytes | Περιγραφή |
---|---|
0-1 | Η ετικέτα που προσδιορίζει το πεδίο |
2-3 | Ο τύπος πεδίου |
4-7 | Αριθμός του υποδεικνυόμενου τύπου |
8-11 | Η μετατόπιση τιμής, η μετατόπιση αρχείου (σε byte) της τιμής για το πεδίο. Η τιμή αναμένεται να ξεκινά από ένα όριο λέξης. η αντίστοιχη μετατόπιση τιμής θα είναι επομένως ζυγός αριθμός. Αυτή η μετατόπιση αρχείου μπορεί να δείχνει οπουδήποτε στο αρχείο, ακόμη και μετά τα δεδομένα εικόνας |
Ένα πεδίο TIFF είναι μια λογική οντότητα που αποτελείται από την ετικέτα TIFF και την τιμή της. Αυτή η λογική ιδέα υλοποιείται ως Καταχώριση IFD, συν την πραγματική τιμή εάν δεν ταιριάζει στο τμήμα τιμής/απόκλισης, τα τελευταία 4 byte της Καταχώρισης IFD. Οι όροι πεδίο TIFF και καταχώρηση IFD είναι εναλλάξιμοι στα περισσότερα περιβάλλοντα.
Βασική γραμμή TIFF
Το Baseline TIFF είναι ο πυρήνας του TIFF, τα βασικά στοιχεία που πρέπει να υποστηρίζουν όλοι οι κύριοι προγραμματιστές του TIFF στα προϊόντα τους. Η συμμόρφωση με τη μορφή TIFF υπόκειται στην τήρηση των βασικών απαιτήσεων TIFF. Αυτές οι απαιτήσεις τεκμηριώνονται καλά στο έγγραφο προδιαγραφών 6.0.
Πολλαπλές εικόνες ανά αρχείο
Μπορεί να υπάρχουν περισσότερα από ένα IFD σε ένα αρχείο TIFF. Κάθε IFD ορίζει ένα υποαρχείο. Μια πιθανή χρήση των υποαρχείων είναι η περιγραφή σχετικών εικόνων, όπως οι σελίδες μιας μετάδοσης φαξ. Ένας αναγνώστης TIFF βασικής γραμμής δεν απαιτείται να διαβάσει κανένα IFD πέρα από το πρώτο.
Τύποι εικόνας
Η βασική εικόνα TIFF έχει τους ακόλουθους τύπους:
Διεπίπεδο: Μια εικόνα δύο επιπέδων περιέχει δύο χρώματα—μαύρο και άσπρο. Το TIFF επιτρέπει σε μια εφαρμογή να εγγράφει δεδομένα δύο επιπέδων σε μορφή λευκού είναι μηδέν ή μαύρου είναι μηδέν. Το πεδίο που καταγράφει αυτές τις πληροφορίες ονομάζεται PhotometricInterpretation.
- RGB έγχρωμο
Οι πληροφορίες φωτομετρικής ερμηνείας για εικόνες Bilevel είναι οι εξής:
Ετικέτα = 262 (106.H) Τύπος = ΣΥΝΤΟΜΗ Αξίες
Αξία | Περιγραφή |
---|---|
0 | Για εικόνες διπλού επιπέδου και κλίμακας του γκρι: το 0 απεικονίζεται ως λευκό. Η μέγιστη τιμή απεικονίζεται ως μαύρη. Αυτή είναι η κανονική τιμή για τη Συμπίεση#2 |
1 | BlackIsZero. Για εικόνες σε δύο επίπεδα και σε κλίμακα του γκρι: το 0 απεικονίζεται ως μαύρο. Η μέγιστη τιμή απεικονίζεται ως λευκό. Εάν αυτή η τιμή έχει καθοριστεί για Συμπίεση#2, η εικόνα θα πρέπει να εμφανίζεται και να εκτυπώνεται αντίστροφα. |
Κλίμακα του γκρι: Οι εικόνες σε κλίμακα του γκρι είναι μια γενίκευση εικόνων δύο επιπέδων. Οι εικόνες διπλού επιπέδου μπορούν να αποθηκεύουν μόνο δεδομένα ασπρόμαυρων εικόνων, αλλά οι εικόνες σε κλίμακα του γκρι μπορούν επίσης να αποθηκεύουν αποχρώσεις του γκρι. Για να περιγράψετε τέτοιες εικόνες, πρέπει να προσθέσετε ή να αλλάξετε τα ακόλουθα πεδία. Τα άλλα απαιτούμενα πεδία είναι τα ίδια με αυτά που απαιτούνται για τις εικόνες δύο επιπέδων. Για εικόνες σε κλίμακα του γκρι, Συμπίεση # 1 ή 32773 (PackBits). Στο Baseline TIFF, οι εικόνες σε κλίμακα του γκρι μπορούν είτε να αποθηκευτούν ως μη συμπιεσμένα δεδομένα είτε να συμπιεστούν με τον αλγόριθμο PackBits.
Οι πληροφορίες BitsPerSample για εικόνες σε κλίμακα του γκρι είναι οι εξής:
Ετικέτα = 258 (102.H) Τύπος = ΣΥΝΤΟΜΗ
Ο αριθμός των bit ανά στοιχείο. Οι επιτρεπόμενες τιμές για τις βασικές εικόνες σε κλίμακα του γκρι TIFF είναι 4 και 8, επιτρέποντας είτε 16 είτε 256 διακριτές αποχρώσεις του γκρι.
Παλέτα-Χρώμα: Οι έγχρωμες εικόνες παλέτας είναι παρόμοιες με τις εικόνες σε κλίμακα του γκρι. Εξακολουθούν να έχουν ένα στοιχείο ανά pixel, αλλά η τιμή του στοιχείου χρησιμοποιείται ως ευρετήριο σε έναν πλήρη πίνακα αναζήτησης RGB. Για να περιγράψετε τέτοιες εικόνες, πρέπει να προσθέσετε ή να αλλάξετε τα ακόλουθα πεδία.Τα άλλα απαιτούμενα πεδία είναι τα ίδια με αυτά για τις εικόνες σε κλίμακα του γκρι. Οι πληροφορίες φωτομετρικής ερμηνείας για την εικόνα Palette-Color είναι οι εξής:
PhotometricInterpretation = 3 (Χρώμα παλέτας). ColorMapTag = 320 (140.H) Τύπος = ΣΥΝΤΟΜΗ N = 3 * (2 BitsPerSample)
Αυτό το πεδίο ορίζει έναν χρωματικό χάρτη Κόκκινο-Πράσινο-Μπλε (που συχνά ονομάζεται πίνακας αναζήτησης) για έγχρωμες εικόνες παλέτας. Σε μια έγχρωμη εικόνα παλέτας, μια τιμή pixel χρησιμοποιείται για την ευρετηρίαση σε έναν πίνακα αναζήτησης RGB. Για παράδειγμα, ένα εικονοστοιχείο παλέτας χρώματος με τιμή 0 θα εμφανιζόταν σύμφωνα με την 0η τριπλέτα Κόκκινο, Πράσινο, Μπλε. Σε έναν Χάρτη Χρώματος TIFF, όλες οι τιμές Κόκκινου έρχονται πρώτα, ακολουθούμενες από τις Πράσινες τιμές και μετά τις Μπλε τιμές. Στο ColorMap, το μαύρο αντιπροσωπεύεται με 0,0,0 και το λευκό με 65535, 65535, 65535.
RGB έγχρωμο: Σε μια εικόνα RGB, κάθε pixel αποτελείται από τρία στοιχεία: κόκκινο, πράσινο και μπλε. Δεν υπάρχει ColorMap. Για να περιγράψετε μια εικόνα RGB, πρέπει να προσθέσετε ή να αλλάξετε τα ακόλουθα πεδία και τιμές. Τα άλλα υποχρεωτικά πεδία είναι τα ίδια με αυτά που απαιτούνται για τις έγχρωμες εικόνες παλέτας.
BitsPerSample = 8,8,8. Κάθε στοιχείο έχει βάθος 8 bit σε μια εικόνα TIFF RGB βάσης.
PhotometricInterpretation = 2 (RGB) και δεν υπάρχει ColorMap.
Ετικέτα = 277 (115.H) Τύπος = ΣΥΝΤΟΜΗ Ο αριθμός των στοιχείων ανά pixel. Αυτός ο αριθμός είναι 3 για εικόνες RGB, εκτός εάν υπάρχουν επιπλέον δείγματα.