Τι είναι ένα αρχείο GIF;
Μια μορφή GIF ή Graphical Interchange Format είναι ένας τύπος υψηλής συμπίεσης εικόνας. Ανήκει στην Unisys, το GIF χρησιμοποιεί τον αλγόριθμο συμπίεσης LZW που δεν υποβαθμίζει την ποιότητα της εικόνας. Για κάθε εικόνα GIF επιτρέπονται συνήθως έως 8 bit ανά pixel και έως 256 χρώματα επιτρέπονται σε όλη την εικόνα. Σε αντίθεση με μια εικόνα JPEG, η οποία μπορεί να εμφανίσει έως και 16 εκατομμύρια χρώματα και αγγίζει αρκετά τα όρια του ανθρώπινου ματιού. Όταν εμφανίστηκε το Διαδίκτυο, τα GIF παρέμειναν η καλύτερη επιλογή επειδή απαιτούσαν χαμηλό εύρος ζώνης και συμβατά για τα γραφικά που καταναλώνουν συμπαγείς περιοχές χρωμάτων. Ένα κινούμενο GIF συνδυάζει πολλές εικόνες ή καρέ σε ένα μόνο αρχείο και τα εμφανίζει με μια σειρά για να δημιουργήσει ένα κινούμενο κλιπ ή ένα σύντομο βίντεο. Οι περιορισμοί χρωμάτων είναι έως 256 για κάθε καρέ και είναι πιθανό να είναι οι λιγότερο κατάλληλοι για την αναπαραγωγή άλλων εικόνων και φωτογραφιών με χρωματική διαβάθμιση.
Μορφή αρχείου GIF
Εννοιολογικά, τα αρχεία GIF έχουν μια γραφική περιοχή σταθερού μεγέθους γεμάτη από μηδέν ή περισσότερες εικόνες. Ορισμένα αρχεία GIF διαιρούν την περιοχή ή τα μπλοκ γραφικών σταθερού μεγέθους σε υποεικόνες που μπορούν να λειτουργούν ως κινούμενα πλαίσια στην περίπτωση κινούμενων GIF. Η μορφή GIF χρησιμοποιεί βάθη pixel από 1 έως 8 bit για την αποθήκευση των δεδομένων bitmap. Το μοντέλο χρώματος RGB και τα δεδομένα παλέτας χρησιμοποιούνται πάντα για την αποθήκευση των εικόνων. Ανάλογα με την έκδοση, μια κεφαλίδα σταθερού μήκους (“GIF87a” ή “GIF89a”) ορίζει την αρχή ενός τυπικού αρχείου GIF.
Επί του παρόντος, είναι διαθέσιμες δύο εκδόσεις GIF: 87a και 89a. Η πρώτη είναι η αρχική μορφή GIF ενώ η δεύτερη είναι η νέα μορφή GIF. Σε αυτήν τη μορφή αρχείου, τα χαρακτηριστικά των μπλοκ και οι διαστάσεις των εικονοστοιχείων αναφέρονται σε έναν Logical Screen Descriptor σταθερού μήκους. Η ύπαρξη και το μέγεθος ενός καθολικού πίνακα χρωμάτων μπορεί να καθοριστεί από την περιγραφή οθόνης, η οποία παρακολουθεί περαιτέρω λεπτομέρειες εάν υπάρχει. Το τρέιλερ είναι το τελευταίο byte του αρχείου που περιέχει ένα μόνο byte ενός ερωτηματικού ASCII. Μια τυπική διάταξη αρχείου GIF87a έχει ως εξής:
Κεφαλίδα
Η κεφαλίδα κρατά έξι byte και χρησιμοποιείται για να καθορίσει τον τύπο του αρχείου ως GIF. Αν και ο Logical Screen Descriptor διαχωρίζεται από την πραγματική κεφαλίδα, ωστόσο μερικές φορές θεωρείται ως η δεύτερη κεφαλίδα. Η ίδια δομή που χρησιμοποιείται για την αποθήκευση της κεφαλίδας μπορεί να αποθηκεύσει το Logical Screen Descriptor. Όλα τα αρχεία GIF ξεκινούν με την υπογραφή των 3 byte και χρησιμοποιούν τους χαρακτήρες “GIF” ως αναγνωριστικό. Η έκδοση έχει επίσης μέγεθος τριών byte και δηλώνει την έκδοση του αρχείου GIF.
Λογικός περιγραφέας οθόνης
Ένας Περιγραφέας Εικόνας σταθερού μήκους καθορίζει τις πληροφορίες οθόνης και χρώματος που είναι απαραίτητες για τη δημιουργία της εικόνας GIF. Τα πεδία Ύψος και Πλάτος περικλείουν τη μικρότερη τιμή ανάλυσης οθόνης, υποχρεωτική για την εμφάνιση των δεδομένων εικόνας. Εάν η συσκευή προβολής δεν μπορεί να εμφανίσει την καθορισμένη ανάλυση, θα χρειαστεί κλιμάκωση για την κατάλληλη εμφάνιση της εικόνας. Οι πληροφορίες του χάρτη οθόνης και χρώματος εμφανίζονται από τα τέσσερα υποπεδία του παρακάτω πίνακα (ενώ το bit 0 είναι το λιγότερο σημαντικό bit):
Bits | Υποπεδία |
---|---|
0-2 | Μέγεθος του παγκόσμιου πίνακα χρωμάτων |
3 | Έγχρωμη σημαία ταξινόμησης πίνακα |
4-6 | Ανάλυση χρώματος |
7 | Σημαία πίνακα σφαιρικού χρώματος |
Παγκόσμιος πίνακας χρωμάτων
Ένας προαιρετικός καθολικός πίνακας χρωμάτων τοποθετείται αμέσως μετά το Logical Screen Descriptor. Αυτός ο πίνακας αντιστοιχίστηκε για την ευρετηρίαση των δεδομένων χρώματος pixel μέσα στα δεδομένα εικόνας. Ελλείψει καθολικού πίνακα χρωμάτων, κάθε εικόνα στο αρχείο GIF χρησιμοποιεί το Τοπικό της χρώμα. Είναι προτιμότερο να παρέχετε έναν προεπιλεγμένο πίνακα χρωμάτων εάν λείπει ο καθολικός και ο τοπικός πίνακας χρωμάτων. Μια σειρά τριπλών τριών byte συνθέτει τα στοιχεία του πίνακα χρωμάτων. Κάθε byte χαρακτηρίζει μια τιμή χρώματος RGB. Το κόκκινο, το πράσινο και το μπλε χρώμα χρησιμοποιούνται ως τιμές για κάθε στοιχείο του πίνακα χρωμάτων. Οι καταχωρήσεις στον Παγκόσμιο πίνακα χρωμάτων έχουν έως και 256 καταχωρήσεις και αντιπροσωπεύουν πάντα σε ισχύ δύο.
Δεδομένα εικόνας
Τα δεδομένα εικόνας αποθηκεύουν ένα byte από μη κωδικοποιημένα σύμβολα που ακολουθείται από συνδεδεμένη λίστα υπο- μαζί με τα κωδικοποιημένα με LZW δεδομένα.
Τροχόσπιτο
Το τρέιλερ αντιπροσωπεύει ένα μόνο byte δεδομένων που είναι ο τελευταίος χαρακτήρας του αρχείου. Η τιμή αυτού του byte είναι μόνιμα 3 Bh και καθορίζει το τέλος της ροής δεδομένων. Κάθε αρχείο GIF πρέπει να έχει το τρέιλερ στο τελευταίο κάθε αρχείου.