1. Μείωση παλέτας: Τα GIF περιορίζονται σε 256 χρώματα μέγιστου. Αυτό είναι ένα κρίσιμο πρώτο βήμα. Ο αλγόριθμος αναλύει τα χρώματα του Bitmap και επιλέγει τα 256 πιο αντιπροσωπευτικά χρώματα για να δημιουργήσει μια παλέτα χρωμάτων. Οποιαδήποτε χρώματα στο αρχικό bitmap που δεν ταιριάζουν ακριβώς με ένα από αυτά τα 256 χρώματα προσεγγίζονται από το πλησιέστερο χρώμα στην παλέτα. Αυτό είναι όπου κάποια μικρή απώλεια οπτικών πληροφοριών * μπορεί * να συμβεί, ανάλογα με την πολυπλοκότητα της εικόνας, αν και δεν θεωρείται απώλεια συμπίεσης με τον ίδιο τρόπο όπως το JPEG. Όσο λιγότερα χρώματα, τόσο καλύτερη είναι η συμπίεση.
2. συμπίεση LZW: Μετά τη μείωση της εικόνας στην παλέτα της, η πραγματική συμπίεση συμβαίνει. Το LZW είναι ένας αλγόριθμος με βάση το λεξικό. Λειτουργεί με την οικοδόμηση ενός λεξικού επαναλαμβανόμενων ακολουθιών χρωμάτων. Αντί να αποθηκεύει κάθε εικονοστοιχείο ξεχωριστά, αποθηκεύει δείκτες σε αυτές τις ακολουθίες στο λεξικό. Όσο μεγαλύτερη είναι οι επαναλαμβανόμενες ακολουθίες, τόσο πιο αποτελεσματική είναι η συμπίεση.
Φανταστείτε μια απλή οριζόντια γραμμή κόκκινων εικονοστοιχείων. Αντί να αποθηκεύει το "κόκκινο, κόκκινο, κόκκινο, κόκκινο ...", το LZW μπορεί να αποθηκεύσει κάτι σαν "η ακολουθία Α επαναλαμβανόμενη 4 φορές", όπου "η ακολουθία Α" ορίζεται στο εσωτερικό του λεξικό ως "κόκκινο". Αυτό μειώνει σημαντικά την ποσότητα των δεδομένων που απαιτούνται για την αναπαράσταση της εικόνας.
3. Αποθήκευση των δεδομένων: Το τελικό αρχείο GIF περιέχει:
* κεφαλίδα: Πληροφορίες σχετικά με την εικόνα, όπως οι διαστάσεις και η παλέτα της.
* Παγκόσμιο πίνακα χρώματος (παλέτα): Τα 256 χρώματα που χρησιμοποιούνται στην εικόνα.
* Δεδομένα εικόνας: Τα δεδομένα συμπιεσμένου εικονοστοιχείου, χρησιμοποιώντας τις αλληλουχίες που κωδικοποιούνται από LZW.
Γιατί το GIF δεν είναι ιδανικό για όλες τις εικόνες:
* Περιορισμένη παλέτα χρωμάτων: Ο περιορισμός των 256 χρωμάτων καθιστά τα GIF ακατάλληλα για εικόνες με ομαλές κλίσεις ή πολλά χρώματα. Συχνά εμφανίζονται μπλοκ ή posterized.
* Κανένα κανάλι άλφα: Τα GIF δεν υποστηρίζουν εγγενώς τη διαφάνεια πέρα από ένα ενιαίο χρώμα διαφάνειας. Ενώ το GIF89A επιτρέπει διαφανή εικονοστοιχεία, υποστηρίζει μόνο ένα διαφανές χρώμα.
* Δεν είναι ιδανικό για φωτογραφία: Λόγω της απώλειας φύσης της στη φάση μείωσης των χρωμάτων και την περιορισμένη παλέτα χρωμάτων, τα GIF δεν είναι η καλύτερη επιλογή για φωτογραφίες. Θα είχαν ως αποτέλεσμα σημαντική απώλεια της ποιότητας εικόνας σε σύγκριση με το JPEG ή το PNG.
Συνοπτικά, η συμπίεση GIF λειτουργεί σημαντικά μειώνοντας τις πληροφορίες χρωμάτων και στη συνέχεια χρησιμοποιώντας έναν αλγόριθμο με βάση το λεξικό (LZW) για να κωδικοποιήσει αποτελεσματικά τα υπόλοιπα δεδομένα εικονοστοιχείων, επιτυγχάνοντας μικρότερο μέγεθος αρχείου με το κόστος μερικές φορές να χάσει την ακρίβεια χρώματος. Είναι μια μέθοδος χωρίς απώλειες από την άποψη των δεδομένων * μετά από * κβαντισμό χρώματος, αλλά η αρχική μείωση του χρώματος εισάγει μικρή απώλεια ανάλογα με την πολυπλοκότητα της εικόνας.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα