1.10 ΕΤΙΚΕΤΕΣ ΔΕΙΚΤΕΣ ΣΤΑ ΔΕΔΟΜΕΝΑ ΕΙΚΟΝΑΣ


Στο τμήμα αυτό θα αναφερθούμε σε ετικέτες που σκοπό έχουν να δείχνουν τη θέση των δεδομένων της εικόνας μέσα στο αρχείο. Τα δεδομένα μίας εικόνας μπορεί να δείχνονται από έναν ή περισσότερους δείκτες, όπως φαίνεται από το σχήμα 1.8. Είναι δυνατόν τα δεδομένα μίας εικόνας να χωριστούν σε επιμέρους τμήματα που καλούνται λουρίδες (strips). Κάθε λουρίδα έχει το δικό της δείκτη στον κατάλογο του αρχείου TIFF. Τα πιο πάνω είναι ιδιαίτερα χρήσιμα όταν θέλουμε να έχουμε γρήγορη πρόσβαση σε ένα τμήμα της εικόνας. Ο χωρισμός της εικόνας σε λουρίδες είναι ακόμη πιο χρήσιμος όταν χρησιμοποιούμε τεχνικές συμπίεσης δεδομένων (data compression ). Οι περισσότερες τεχνικές συμπίεσης δεδομένων απαιτούν σειριακή αποκωδικοποίηση κατά την ανάγνωση. Αν η συμπίεση γίνει σε λουρίδες αντί να γίνει σε ολόκληρη την εικόνα, τότε η αποσυμπίεση ενός μεσαίου τμήματος της εικόνας θα απαιτήσει πολύ λιγότερο χρόνο, γιατί το πρόγραμμα θα πρέπει να διαβάσει μόνο τις λουρίδες που είναι απαραίτητες. Αντίθετα, αν η συμπίεση γινόταν σε όλη την εικόνα το πρόγραμμα θα έπρεπε να αποσυμπιέσει όλη την εικόνα, χάνοντας πολύτιμο χρόνο. Η τεχνική χωρισμού της εικόνας σε λουρίδες αυξάνει όμως και το μέγεθος της επικεφαλίδας του αρχείου TIFF. Αν είχαμε μία εικόνα 1500 γραμμών, που καταλάμβανε σε συμπιεσμένη μορφή 75Κ μνήμη τότε, στη χειρότερη περίπτωση, θα χρειαζόμασταν 1500 δείκτες άρα η επικεφαλίδα θα μεγάλωνε κατά 1500 x 4 = 6000 BYTE (μόλις κατά 8%), πράγμα σχεδόν ασήμαντο συγκρινόμενο με τη διαφορά ταχύτητας που θα έχει το πρόγραμμα.


+------------------------+ +--| ΔΕΙΚΤΗΣ 1 ---+-------- | +------------------------| +-+--| ΔΕΙΚΤΗΣ 2 ---+-------- | | +------------------------| +-+-+--| ΔΕΙΚΤΗΣ 3 ---+-------- | | | +------------------------+ | | |
| | |
| | +->+------------------------+ | | | -| | | | -| | | | ΛΟΥΡΙΔΑ 1 -| Ν ΓΡΑΜΜΕΣ/ΛΟΥΡΙΔΑ | | | -| | | | -| | +--->+------------------------| | | | | | | | | ΛΟΥΡΙΔΑ 2 | | | | | | | +----->+------------------------| ΧΑΡΤΗΣ ΕΙΚΟΝΑΣ | | ΔΙΑΙΡΕΜΕΝΟΣ ΣΕ | | 3 ΛΟΥΡΙΔΕΣ | ΛΟΥΡΙΔΑ 3 | | | | | +------------------------+

σχήμα 1.8


**1. ΕΤΙΚΕΤΑ " ΔΕΙΚΤΕΣ ΛΟΥΡΙΔΩΝ "**


ΟΝΟΜΑ ΕΤΙΚΕΤΑΣ : StripOffsets
ΑΡΙΘΜΟΣ ΕΤΙΚΕΤΑΣ : 273 ( 111 h )
ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ : Short ή Long
ΑΡΙΘΜΟΣ ΔΕΔΟΜΕΝΩΝ : Ενας δείκτης για κάθε λουρίδα
ΕΥΡΟΣ ΤΙΜΩΝ : 0 .. (2^32)-1 για Long
0 .. (2^16)-1 για Sort


Η ετικέτα αυτή περιέχει έναν απλό δείκτη προς την αρχή των δεδομένων της εικόνας (βλέπε σχήμα 1.9) ή περιέχει ένα δείκτη προς ένα πίνακα δεικτών που δείχνουν τις λουρίδες (βλέπε σχήμα 1.10). Θα πρέπει να υπάρχει τουλάχιστον ένας τέτοιος δείκτης σε κάθε αρχείο TIFF, ώστε να μπορέσει το πρόγραμμα που θα διαβάσει την εικόνα να βρει τα δεδομένα. Στις εφαρμογές που μετράει πολύ η ταχύτητα, συνίσταται να χρησιμοποιείται ένας δείκτης για κάθε γραμμή εικόνας (raster). Σαν τύπο δεδομένων μπορούμε να χρησιμοποιήσουμε τον τύπο Sort, ή τον τύπο Long. Ο τύπος Sort χρησιμοποιείται μόνο σε μικρά αρχεία TIFF. Συνηθίζεται να χρησιμοποιείται ο τύπος Long, διότι τα περισσότερα προγράμματα δεν ελέγχουν το πεδίο ένδειξης του τύπου των δεδομένων.





+----------------------------------+ | 273 | LONG | 1 | ΔΕΙΚΤΗΣ +-------+ +----------------------------------+ | | | +----------------------------------+ | : :<------+ : : : ΧΑΡΤΗΣ ΔΕΔΟΜΕΝΩΝ : : : : ΕΙΚΟΝΑΣ : : : +----------------------------------+ σχήμα 1.9

+----------------------------------+ | 273 | LONG | 1 | ΔΕΙΚΤΗΣ +-------+ +----------------------------------+ | | | +----------------------------------+ | +--------| ΔΕΙΚΤΗΣ ΛΟΥΡΙΔΑΣ 1 |<------+ | +----------------------------------| | +------| ΔΕΙΚΤΗΣ ΛΟΥΡΙΔΑΣ 2 | | | +----------------------------------| | | +----| ΔΕΙΚΤΗΣ ΛΟΥΡΙΔΑΣ 3 | | | | +----------------------------------| | | | : : | | | : : | | | : : | | | +----------------------------------| | | | +--| ΔΕΙΚΤΗΣ ΛΟΥΡΙΔΑΣ 49 | | | | | +----------------------------------+ | | | | | | | | | | | | | | | | +----------------------------------+ +-+-+-+->| ΧΑΡΤΗΣ ΔΕΔΟΜΕΝΩΝ | ΛΟΥΡΙΔΑ 1 | | | +----------------------------------| +-+-+->| | ΛΟΥΡΙΔΑ 2 | | +----------------------------------| +-+->| | ΛΟΥΡΙΔΑ 3 | +----------------------------------| | : : | : : +->: : +----------------------------------+ σχήμα 1.10


**ΣΗΜΕΙΩΣΗ :**
Μία χρήσιμη πληροφορία, η οποία δεν μας δίνεται από καμία συγκεκριμένη ετικέτα, είναι ο συνολικός αριθμός λουρίδων που περιγράφουν την εικόνα. Ο αριθμός αυτός όμως υπολογίζεται από την σχέση (" ΜΗΚΟΣ ΕΙΚΟΝΑΣ " + " ΑΡΙΘΜΟΣ ΣΕΙΡΩΝ ΑΝΑ ΛΟΥΡΙΔΑ - 1) / " ΓΡΑΜΜΕΣ ΑΝΑ ΛΟΥΡΙΔΑ " . Αν το αποτέλεσμα είναι κλασματικός αριθμός, τότε σαν αποτέλεσμα θεωρούμε τον αμέσως μεγαλύτερο ακέραιο.

**2. ΕΤΙΚΕΤΑ " ΜΕΤΡΗΤΗΣ ΜΕΓΕΘΟΥΣ ΛΟΥΡΙΔΑΣ "**


ΟΝΟΜΑ ΕΤΙΚΕΤΑΣ : StripByteCounts
ΑΡΙΘΜΟΣ ΕΤΙΚΕΤΑΣ : 279 ( 117 h )
ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ : Long
ΑΡΙΘΜΟΣ ΔΕΔΟΜΕΝΩΝ : Ενας μετρητής για κάθε λουρίδα
ΕΥΡΟΣ ΤΙΜΩΝ : 0 .. ( 2^32)-1


Κάθε δείκτης λουρίδας συνοδεύεται και από ένα μετρητή (StripByteCount), που μας πληροφορεί για το μέγεθος σε BYTE της λουρίδας (όπως φαίνεται στο σχήμα 1.11). Η πληροφορία αυτή είναι χρήσιμη για να βεβαιωθούμε ότι διαβάσαμε το σωστό αριθμό δεδομένων κατά την αποσυμπίεση (decompression). Η ετικέτα αυτή είναι πραγματικά απαραίτητη μόνο όταν τα δεδομένα είναι συμπιεσμένα σε μορφή CCITT/3. Στο μέλλον όμως, η ετικέτα αυτή μπορεί να είναι απαραίτητη και για άλλες τεχνικές συμπίεσης. Η τιμή του μετρητή βρίσκεται κατά τη διάρκεια της συμπίεσης. Οταν συμπιεστεί όλη η λουρίδα, η τιμή του μετρητή αποθηκεύεται στο αρχείο. Είναι προφανές ότι χρειαζόμαστε ένα μετρητή για κάθε λουρίδα που υπάρχει στο αρχείο TIFF. Μια ακόμη χρησιμότητα της ετικέτας, είναι ότι μας δίνει το μέγεθος του buffer που πρέπει να χρησιμοποιηθεί κατά τη διάρκεια αποθήκευσης και ανάκλησης της εικόνας. Η ετικέτα αυτή δεν είναι απαραίτητο να υπάρχει στο αρχείο αν υπάρχει μόνο ένας δείκτης λουρίδας και δεν έχουν εφαρμοστεί τεχνικές συμπίεσης. Σε αντίθετη περίπτωση, η παρουσία της ετικέτας αυτής είναι απαραίτητη.



+---------------------+ +--------| ΔΕΙΚΤΗΣ 1 | ΔΕΙΚΤΕΣ | +---------------------| | +------| ΔΕΙΚΤΗΣ 2 | ΔΕΔΟΜΕΝΩΝ | | +---------------------| | | +----| ΔΕΙΚΤΗΣ 3 | ΓΡΑΜΜΩΝ | | | +---------------------+ | | | ΕΙΚΟΝΑΣ | | | | | | | | | | | | +---------------------+ +-+-+--->| ΜΕΤΡΗΤΗΣ 1 | | | +---------------------| +-+--->| ΜΕΤΡΗΤΗΣ 2 | | +---------------------| +--->| ΜΕΤΡΗΤΗΣ 3 | +---------------------+

σχήμα 1.11

**3. ΕΤΙΚΕΤΑ " ΓΡΑΜΜΕΣ ΑΝΑ ΛΟΥΡΙΔΑ "**


ΟΝΟΜΑ ΕΤΙΚΕΤΑΣ : RowsPerStrip
ΑΡΙΘΜΟΣ ΕΤΙΚΕΤΑΣ : 278 ( 116 h )
ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ : Short ή Long
ΑΡΙΘΜΟΣ ΔΕΔΟΜΕΝΩΝ : 1
ΕΥΡΟΣ ΤΙΜΩΝ : 0 .. (2^32)-1


Η τιμή της ετικέτας αυτής μας πληροφορεί για τον αριθμό των γραμμών εικόνας που περιλαμβάνονται σε κάθε λουρίδα πριν την συμπίεση. Πρέπει να σημείωσουμε ότι όλες οι λουρίδες, εκτός από την τελευταία, πρέπει να περιέχουν τον ίδιο αριθμό συμπιεσμένων γραμμών εικόνας. Η τελευταία λουρίδα μπορεί να περιέχει τον ίδιο αριθμό σειρών με τις προηγούμενες ή και μικρότερο αριθμό σειρών μετά την συμπίεση. Εάν υπάρχει μόνο μία λουρίδα για τα δεδομένα της εικόνας σε όλο το αρχείο, τότε η τιμή της ετικέτας πρέπει ή να είναι η μέγιστη ( (2^32)-1 ) ή να είναι ο πραγματικός αριθμός σειρών της εικόνας. Μία εφαρμογή που διαβάζει αρχεία TIFF πρέπει να μπορεί να χειριστεί και τις δύο προηγούμενες περιπτώσεις (συνίσταται η χρήση της δεύτερης περίπτωσης). Πρέπει να σημειώσουμε ακόμη, ότι η ετικέτα αυτή περιέχει χρήσιμες πληροφορίες, μόνο όταν η εικόνα δεν είναι συμπιεσμένη. Ο τύπος των δεδομένων μπορεί να είναι είτε Short είτε Long. Προτιμότερη όμως είναι η χρήση του τύπου Long.