ΠΑΡΑΡΤΗΜΑ Ε
Σε γενικές γραμμές, η μέθοδος συμπίεσης JPEG είναι ανώτερη από την
αντίστοιχη GIF, όταν δουλεύουμε με έγχρωμες ή ασπρόμαυρες «ρεαλιστικές» σκηνές,
δηλαδή φωτογραφίες από scanner και παρόμοιες εικόνες. Συνεχείς αλλαγές σε
χρώμα, όπως αυτές που παρουσιάζονται σε σκιασμένες ή φωτισμένες περιοχές,
παρουσιάζονται πιο πιστά και καταλαμβάνοντας λιγότερο χώρο ως αρχείο JPEG και
όχι GIF.
Παρόλα αυτά η μέθοδος GIF δεν πρόκειται να εγκαταλειφθεί αφού κάνει
πολύ καλύτερη συμπίεση με εικόνες που έχουν λίγα χρώματα, όπως απλά ή γραμμικά
σχέδια. Σε αυτές τις εικόνες, η GIF συμπίεση είναι εντελώς χωρίς απώλειες και
επιπλέον κάνει συχνά μεγαλύτερη συμπίεση από την JPEG, γιατί μεγάλες περιοχές
στοιχείων της εικόνας (pixels), που είναι ακριβώς το ίδιο χρώμα, συμπιέζονται
πολύ καλύτερα με την GIF. Για παράδειγμα, ένα μονόχρωμο περιθώριο με συμπίεση
GIF, έχει σχετικά μικρότερο κόστος σε αποθηκεύσιμο χώρο από την JPEG και είναι
καλύτερο να αποφεύγεται στην δεύτερη περίπτωση.
Όσον αφορά τις εικόνες που έχουν δημιουργηθεί με την χρήση
υπολογιστή, όπως σκηνές από ανίχνευση ακτίνας (ray-tracing), βρίσκονται ανάμεσα
στις φωτογραφίες και στα απλά σχέδια από άποψη πολυπλοκότητας και όσο πιο
πολύπλοκη είναι η εικόνα, τόσο πιο πιθανό είναι να έχει καλύτερα αποτελέσματα η
JPEG συμπίεση πάνω της.
Η συμπίεση JPEG παρουσιάζει προβλήματα όταν στην εικόνα υπάρχουν
οξείες ακμές όπως μια σειρά μαύρων pixels δίπλα σε μια σειρά λευκών pixels. Σε
αυτές τις περιπτώσεις οι ακμές παρουσιάζονται θολές, εκτός αν χρησιμοποιήσουμε
πολύ υψηλή ρύθμιση ποιότητας, ενώ τέτοιες ακμές δεν συναντιόνται σε φωτογραφίες
από scanner, αλλά είναι πολύ συχνές σε αρχεία GIF (ευθείες γραμμές κλπ.).
Επίσης ένα αντίστοιχο πρόβλημα θολούρας παρουσιάζεται όταν έχουμε
κείμενο με πολύ μικρό ύψος γραμμάτων, οπότε εάν έχουμε ένα τέτοιο αρχείο με
συμπίεση GIF, θα ήταν καλύτερα να μην το μετατρέψουμε σε JPEG αρχείο. Εάν,
τέλος θέλουμε να προσθέσουμε κείμενο με μικρό ύψος χαρακτήρων σε μια JPEG
εικόνα, θα ήταν καλύτερα να το περάσουμε ως σχόλιο (comment) σε αυτή, αν και
υπάρχει ο κίνδυνος μερικοί viewers να αγνοήσουν το κείμενο-σχόλιο κατά την
προβολή της εικόνας. Για τις καθαρά ασπρόμαυρες (2 χρώματα) εικόνες δεν πρέπει
ποτέ να χρησιμοποιείται η συμπίεση JPEG, αφού αυτή δίνει χρήσιμα αποτελέσματα
από 16 και πάνω αποχρώσεις του γκρίζου. Σημειώνεται όμως ότι η GIF δεν έχει
καθόλου απώλειες μέχρι τις 256 αποχρώσεις του γκρίζου, ενώ η JPEG έχει και
μάλιστα σημαντικές.
Oπως προαναφέραμε, η συμπίεση με JPEG
είναι πολύ καλή και αποδοτική όταν δουλεύουμε με φωτογραφίες ή αντίστοιχης
πολυπλοκότητας εικόνες. Για έγχρωμες φωτογραφίες, τα αποσυμπιεσμένα δεδομένα
είναι συνήθως 24 bits ανά pixel και ενώ οι γνωστές μέθοδοι συμπίεσης με
μηδαμινές απώλειες συμπιέζουν με αναλογία 2 προς 1, η JPEG έχει αναλογία από 10
έως 20 προς 1 χωρίς εμφανείς απώλειες, οπότε τα δεδομένα χρειάζονται μόνο 2
bits ανά pixel. Εάν δίνουμε προτεραιότητα σε αποθηκεύσιμο χώρο τότε μπορούμε να
κάνουμε συμπίεση 30 προς 1 με εμφανείς απώλειες ή ακόμα και 100 προς 1 για πολύ
χαμηλή ποιότητα αλλά και πολύ μικρές απαιτήσεις σε αποθηκεύσιμο χώρο.
Η αντίστοιχη σε αυτή την περίπτωση GIF συμπίεση θα θυσίαζε πολλές
πληροφορίες για να μετατρέψει την εικόνα, μειώνοντας τα χρώματά της σε 256, με
8 bits ανά pixel, δίνοντας συμπίεση 3 προς 1. χρησιμοποιώντας την επιπρόσθετη
συμπίεση LZW που έχει η συμπίεση GIF, η οποία όμως δεν έχει καλά αποτελέσματα
σε φωτογραφικό υλικό, μπορούμε να φτάσουμε το πολύ σε τάξη 5 προς 1.
Δεν ισχύει όμως το ίδιο για τις εικόνες με αποχρώσεις του γκρίζου,
όσον αφορά το ποσοστό της συμπίεσης. Σε αυτές, επειδή το ανθρώπινο μάτι είναι
περισσότερο ευαίσθητο σε αλλαγές στον φωτισμό παρά στην διάκριση των χρωμάτων,
η JPEG κάνει μεγαλύτερη συμπίεση στα δεδομένα για τα χρώματα παρά σε αυτά για
την φωτεινότητα (τα οποία παίζουν ρόλο στις εικόνες με αποχρώσεις του γκρίζου).
Έτσι, ένα αρχείο με JPEG εικόνα σε διαβαθμίσεις του γκρίζου είναι μόνο 10% -
25% μικρότερο από το αντίστοιχο του που περιλαμβάνει την ίδια εικόνα σε πλήρη
χρώματα. Όμως, η πρώτη εικόνα ασυμπίεστη είναι μόνο 8 bits ανά pixel σε
αντίθεση με την έγχρωμη που είναι 24 bits ανά pixel, οπότε το ποσοστό συμπίεσης
είναι στην πραγματικότητα ακόμη μικρότερο.
Το όριο των ορατών απωλειών συναντάται σε συμπίεση τάξης 5 προς 1 για
τις περισσότερες φωτογραφίες σε διαβαθμίσεις του γκρίζου. Παρόλα αυτά, το
ακριβές όριο που αρχίζουν να φαίνονται οι απώλειες εξαρτάται από τις ικανότητες
όρασης του καθενός και την ανάλυση και ποιότητα της κάθε εικόνας. Έτσι, όσο
μικρότερο είναι το pixel, τόσο πιο δύσκολο είναι να διακρίνει κάποιος μια
αλλαγή σε σχέση με το πρωτότυπο, οπότε τα λάθη είναι περισσότερο ορατά στην
οθόνη ενός Η/Υ (κατά προσέγγιση 70 κουκίδες ανά ίντσα), παρά σε έναν έγχρωμο
εκτυπωτή (300 έως 600 κουκίδες ανά ίντσα) και γι’ αυτό οι εικόνες υψηλότερης
ανάλυσης αντέχουν περισσότερη συμπίεση.
Ιδανικές
Ρυθμίσεις Για Ποιοτική Συμπίεση JPEG
Οι περισσότεροι συμπιεστές JPEG σε αφήνουν να επιλέξεις μεταξύ μικρού
μεγέθους αρχείου και καλής ποιότητας εικόνας, μέσω ρυθμίσεων που έχουν.
Χρειάζεται όμως προσοχή κατά την επιλογή αυτών, αφού πρέπει να καταλάβουμε το
τι κάνει η κάθε εντολή που δίνουμε στο συμπιεστικό πρόγραμμα. Έτσι δίνοντας
συντελεστή ποιότητας «90», ΔΕΝ
σημαίνει ότι θα κρατήσει το 90% των πληροφοριών όπως θα μπορούσε κάποιος να
φανταστεί αφού η κλίμακα ποιότητας είναι καθαρά αυθαίρετη και δεν είναι καν
παρόμοια μεταξύ των διαφόρων συμπιεστικών προγραμμάτων για JPEG. Μια
διαδεδομένη κλίμακα είναι αυτή που χρησιμοποιεί η IJG JPEG από (Q0) έως (Q100).
Παρακάτω
ακολουθούν μερικές τυποποιημένες κλίμακες συμπίεσης JPEG :
·
Προγράμματα για ΑPPLE : Κλίμακα από 0 έως 4
·
Πρόσφατα προγράμματα για APPLE : Κλίμακα από 0 έως 100 αλλά όχι σε
αντιστοιχία με την IJG αφού το 50 της APPLE είναι ίσο με το (Q80) της IJG.
·
Paint Shop Pro : Αυτό το πολύ διαδεδομένο πρόγραμμα έχει
κλίμακα με ακριβώς αντίθετα μέτρα με την IJG. Έτσι για (Q90) του IJG, στο Paint
Shop Pro πρέπει να βάλουμε συντελεστή ποιότητας 10 (δηλαδή όσο μικρότερο το
νούμερο, τόσο καλύτερη η ποιότητα). Επομένως, εδώ μπορούμε να πούμε ότι έχουμε
συντελεστή συμπίεσης.
·
Adobe Photoshop 3.0 : Εδώ δεν έχουμε καν αριθμητική
κλίμακα, απλά επιλογή μεταξύ «χαμηλής», «μεσαίας» και «υψηλής» ποιότητας.
Όπως
μπορούμε εύκολα λοιπόν να συμπεράνουμε από τα παραπάνω, δεν μπορεί να γίνει
σύγκριση ποιότητας μεταξύ εικόνων που έχουν συμπιεστεί με διαφορετικό πρόγραμμα
συμπίεσης γνωρίζοντας μόνο την ρύθμιση ποιότητας σε αυτό, αλλά χρειάζεται και η
γνώση του προγράμματος αυτού καθαυτού.
Τις περισσότερες φορές, ο σκοπός του χρήστη είναι να διαλέξει το
χαμηλότερο δυνατό δείκτη ποιότητας ή το χαμηλότερο δυνατό μέγεθος αρχείου, ώστε
η αποσυμπιεσμένη εικόνα να μην έχει εμφανείς διαφορές με την αρχική. Όπως καταλαβαίνετε,
οι βέλτιστες ρυθμίσεις αυτές θα διαφέρουν από παρατηρητή σε παρατηρητή και από
εικόνα σε εικόνα, όμως υπάρχουν κάποιοι γενικοί κανόνες που θα μπορούσαν να
ακολουθηθούν.
Γενικοί
Κανόνες Για Ρύθμιση Ποιότητας
Για καλής ποιότητας έγχρωμες φωτογραφίες η προτεινόμενη ρύθμιση στην
κλίμακα IJG είναι η (Q75), η οποία είναι η χαμηλότερη που μπορούμε να πάρουμε
χωρίς να έχουμε εμφανείς απώλειες σε μια τυπική εικόνα. Εάν η ποιότητα είναι
χαμηλότερη από την επιθυμητή αρχίζουμε να ανεβάζουμε τον δείκτη ποιότητας προς
τα πάνω.
Δεν πρέπει να υπερβαίνουμε σε κλίμακα IJG το (Q95) εκτός εάν θέλουμε
να πειραματιστούμε για να δούμε τι αποτελέσματα έχει στην ποιότητα εικόνας και
στο μέγεθος αρχείου. χρησιμοποιώντας (Q100) θα έχουμε δημιουργία ενός αρχείου
τριπλάσιου από το αντίστοιχο που δημιουργήσαμε με (Q95) αλλά ίδιας ποιότητας με
αυτό. Το (Q100) λοιπόν είναι περισσότερο ένα θεωρητικό μαθηματικό όριο παρά μια
πρακτική ρύθμιση και αν δείτε αρχείο συμπιεσμένο με αυτό τον δείκτη ποιότητας,
σημαίνει ότι ο δημιουργός του δεν γνώριζε την χρήση των ρυθμίσεων.
Εάν η ποιότητα μας ικανοποιεί ή η αρχική ποιότητα δεν είναι καλή,
τότε μπορούμε να δοκιμάσουμε να κατεβούμε μέχρι και στο (Q50). Ο πειραματισμός
στην περίπτωση αυτή είναι και ο καλύτερος τρόπος απόφασης.
Στην περίπτωση που θέλουμε ένα πολύ μικρό αρχείο και είμαστε
διατεθειμένοι να ανεχτούμε μεγάλες απώλειες, προτείνεται μια ρύθμιση μεταξύ
(Q5) και (Q10).
Κάτω από (Q3) το παρόν IJG λογισμικό δεν αποδίδει καθόλου
αποτελεσματικά, αλλά μελλοντικές εκδόσεις μπορεί να καταφέρουν να δίνουν
καλύτερη ποιότητα εικόνας στο ίδιο μέγεθος αρχείου, σε αυτές τις ρυθμίσεις.
Εάν η εικόνα σας περιέχει οξυμένες χρωματιστές ακμές, μπορεί να
παρατηρήσετε μια ελαφριά θολότητα γύρω από τις ακμές αυτές, άσχετα με τη
ρύθμιση ποιότητας που έχετε κάνει. Αυτό μπορεί να εξαλειφθεί, με κόστος λίγο
περισσότερο χώρο αποθήκευσης εάν κλείσουμε την επιλογή της υποδειγματοληψίας
του χρώματος ( chroma downsampling) στον συμπιεστή που χρησιμοποιούμε.
Η κωδικοποίηση ILG περιέχει την υποδειγματοληψία ως ξεχωριστή
επιλογή, την οποία μπορούμε να την ενεργοποιούμε ανεξάρτητα με την ρύθμιση της
ποιότητας, ενώ σε άλλα προγράμματα που βασίζονται στην βιβλιοθήκη της ILG έχουν
κουμπιά ελέγχου και άλλους τρόπους επιλογής. Τέλος, το Adobe Photoshop
απενεργοποιεί την επιλογή για υποδειγματοληψία, όταν θέσουμε την ρύθμιση
ποιότητας στο «υψηλό» επίπεδο. Παρόλα αυτά, για φωτογραφίες είναι προτιμότερο
να αφήνουμε ενεργή την υποδειγματοληψία, γιατί σώζεται αρκετός αποθηκεύσιμος
χώρος με πολύ μικρό σχετικά οπτικό κόστος.
Όσον αφορά τις εικόνες που προορίζονται για χρήση στο World Wide Web,
είναι προτιμότερο να θυσιάζουμε ένα μικρό ποσοστό από την ποιότητα της εικόνας,
ώστε να μειωθεί ο χρόνος μετάδοσης. Το παραπάνω σημαίνει ότι η ιδανικότερη
ρύθμιση ποιότητας είναι γύρω στο (Q50), αφού ακόμα και μεγαλύτερο δείκτη να
βάλουμε, ένας χρήστης με μια οθόνη 256 χρωμάτων δεν θα καταλάβει καμία διαφορά
λόγω της κβαντοποίησης του χρώματος. Επίσης τα τωρινά προγράμματα δημιουργίας
JPEG είναι ορισμένα στις προκαθορισμένες ρυθμίσεις για ποιότητα γύρω στο 50 με
75 : Κάτω από 50 οι αρχικές εικόνες θα είναι πολύ κακής ποιότητας ενώ πάνω από
75 οι τελικές εικόνες δεν θα φαίνονται καλύτερες από τις αρχικές.
Επανειλημμένες
Συμπιέσεις και Αποσυμπιέσεις Εικόνας
Εάν σε μια εικόνα που έχει συμπιεστεί με μέθοδο JPEG θελήσουμε να
κάνουμε μερικές αλλαγές, πρέπει πρώτα να την αποσυμπιέσουμε. Η διαδικασία αυτή
όμως έχει επιπτώσεις στην ποιότητα της εικόνας αφού με την καινούργια συμπίεση
θα χαθούν επιπλέον πληροφορίες και έτσι είναι προφανές ότι είναι σημαντικό να
διατηρηθεί ο αριθμός των συμπιέσεων μεταξύ της αρχικής και της τελικής εικόνας
όσο το δυνατόν μικρότερος. Σε μερικές εφαρμογές η παραπάνω ιδιομορφία της
μεθόδου μπορεί να είναι αδιάφορη, αλλά σε άλλες (π.χ. επεξεργασία εικόνας)
μπορεί να είναι πολύ μεγάλης σημασίας.
Ένας τρόπος για να λυθεί το παραπάνω πρόβλημα, είναι να κάνουμε τις
αλλαγές τοπικά στην εικόνα και να κάνουμε τη νέα συμπίεση με τις ίδιες ακριβώς
ρυθμίσεις που είχε η αρχική. Με αυτό τον τρόπο θα διατηρήσουμε την ίδια ή σχεδόν
την ίδια ποιότητα στην υπόλοιπη εικόνα, αλλά όχι και στο μέρος που έχει υποστεί
την αλλαγή. Επιπλέον η αποσυμπιεσμένη εικόνα πρέπει να αποθηκευτεί σε format
πλήρους χρώματος, ενώ εάν γίνει μετατροπή προτύπου από JPEG σε GIF και μετά
πάλι σε JPEG λόγω της κβαντοποίησης του χρώματος χάνουμε πολλές πληροφορίες.
Καταλήγουμε λοιπόν στο συμπέρασμα ότι το JPEG είναι ένα χρήσιμο
πρότυπο συμπίεσης για αποθήκευση και διαδικτυακή μετάδοση εικόνων, αλλά όχι για
επεξεργασία εικόνας που χρειάζονται συνεχείς συμπιέσεις και αποσυμπιέσεις. Σε
αυτή τη περίπτωση είναι καλύτερο να χρησιμοποιήσουμε ένα πρότυπο 24 bits χωρίς
απώλειες, όπως το PPM, το TIFF και το PNG, κατά την διάρκεια της επεξεργασίας
της εικόνας και όταν τελειώσουμε, να την συμπιέσουμε με JPEG για να την
αποθηκεύσουμε ή να την μεταδώσουμε μέσω δικτύου. Με αυτό τον τρόπο και θα
γλυτώσουμε τις τυχόν ποιοτικές απώλειες και θα έχουμε γρηγορότερους χρόνους
συμπίεσης και αποσυμπίεσης.
Κβαντοποίηση
του Χρώματος
Οι περισσότεροι χρήστες δεν έχουν οθόνες πλήρους χρώματος (24 bits
ανά pixel) αφού οι πιο συνηθισμένες οθόνες μπορούν να προβάλλουν 256 το πολύ
χρώματα κάθε φορά. Για προβολή μιας εικόνας πλήρους χρώματος, ο υπολογιστής
πρέπει να διαλέξει μια κατάλληλη ομάδα από αντιπροσωπευτικά χρώματα και να
προσαρμόσει την εικόνα σε αυτά τα χρώματα. Αυτή η διαδικασία ονομάζεται
«κβαντοποίηση χρώματος» (color quantization), αν και μια ονομασία όπως «επιλογή
χρώματος» ή «μείωση\ προσαρμογή χρωμάτων» θα ήταν περισσότερο δόκιμη.
Προφανώς, η κβαντοποίηση χρώματος είναι μια διαδικασία που δημιουργεί
απώλειες. Παρόλα αυτά, προκύπτει ότι για τις περισσότερες εικόνες, οι
λεπτομέρειες που αλλάζει ο αλγόριθμος της κβαντοποίησης χρώματος έχουν πολύ
περισσότερο αντίκτυπο στην ποιότητα της τελικής εικόνας από ότι τα λάθη που εισάγονται
από την διαδικασία της JPEG αυτής καθαυτής (με εξαίρεση ίσως τα πολύ χαμηλά
επίπεδα ρύθμισης ποιότητας της εικόνας). Από την άλλη, η δημιουργία ενός
αλγορίθμου που να είναι βέλτιστος για όλες τις εικόνες δεν είναι εφικτή λόγω
των απείρων συνδυασμών των χρωμάτων σε αυτές.
Από την στιγμή που το πρότυπο JPEG είναι για την προβολή έγχρωμων
εικόνων σε οθόνες των 8 bits, απαιτεί κβαντοποίηση χρώματος. Η ταχύτητα και η
ποιότητα του λογισμικού JPEG που χρησιμοποιούμε για προβολή των εικόνων,
εξαρτάται από τον αλγόριθμο κβαντοποίησης που εφαρμόζεται και έτσι διαλέγοντας
ταχύτητα ή ποιότητα, θα δούμε μεγάλες διαφορές στην εικόνα σε οθόνες των
8-bits.
Από την άλλη πλευρά, μια εικόνα GIF έχει ήδη κβαντιστεί σε 256 ή
λιγότερα χρώματα, αφού η μέθοδος GIF έχει πάντα ένα προκαθορισμένο αριθμό
χρωμάτων στην παλέτα της, ο οποίος δεν μπορεί να είναι πάνω από 256 κάθε φορά.
Το πλεονέκτημα της μεθόδου GIF είναι ότι ο δημιουργός της εικόνας έχει ήδη
υπολογίσει την κβαντοποίηση του χρώματος, οπότε δεν χρειάζεται ο χρήστης να ασχοληθεί
με αυτή. Το γεγονός αυτό κάνει τα προγράμματα προβολής GIF γρηγορότερα από τα
αντίστοιχα JPEG αλλά μας αναγκάζει να χρησιμοποιήσουμε την κβαντοποίηση του
κατασκευαστή της εικόνας και μόνο αυτή. Έτσι, εάν ο δημιουργός της εικόνας έχει
κβαντίσει τα χρώματα της εικόνας σε διαφορετικό αριθμό από αυτά που μπορεί να
απεικονίσει η οθόνη του χρήστη, ή δεν θα αξιοποιήσουμε τις δυνατότητες της
οθόνης μας, ή θα πρέπει να κάνουμε ξανά κβαντοποίηση για να μειώσουμε τα
χρώματα της αρχικής. Η νέα όμως κβαντοποίηση έχει ως αποτέλεσμα να μειωθεί η
ποιότητα της εικόνας περισσότερο ακόμα από την πρώτη κβαντοποίηση. Τέλος, εάν η
αρχική κβαντοποίηση δεν έχει γίνει με αλγόριθμο που να εξασφαλίζει υψηλή
ποιότητα εικόνας, τότε δεν μπορούμε να κάνουμε τίποτα για την βελτίωση της
εικόνας. Γι’ αυτό τον λόγο, η JPEG προσφέρει σημαντικά καλύτερη ποιότητα
εικόνας από την GIF προς τους χρήστες των οποίων το hardware δεν είναι παρόμοιο
με αυτό του κατασκευαστή της εικόνας, αφού δίνει την δυνατότητα σε αυτόν να
κβαντίσει τα χρώματα ανάλογα με τις απαιτήσεις του. Επιπλέον, σε μια πιθανή
αλλαγή hardware ή σε μια βελτίωση των αλγορίθμων κβαντοποίησης, ο χρήστης
μπορεί να προσαρμόσει τις ήδη υπάρχουσες εικόνες JPEG στα νέα δεδομένα
προβολής, σε αντίθεση με τις GIF, όπου δεν μπορεί να επιδράσει πάνω στις
εικόνες που έχει λάβει από τον κατασκευαστή.
Με τις τελευταίες εξελίξεις στον τομέα του hardware και την μείωση
των τιμών του, όλο και περισσότεροι χρήστες αποκτούν οθόνες που ξεπερνούν το
φράγμα των 8 bits : Τέτοιες είναι 15-bits «hi-color» οθόνες σε προσωπικούς
υπολογιστές, 24-bits οθόνες σε σταθμούς εργασίας (workstations) και σε
Macintosh κλπ. Αυτοί οι χρήστες, θεωρούν ήδη τις GIF εικόνες ως ξεπερασμένες,
αφού δεν μπορεί πια το πρότυπο αυτό να προβάλει εικόνες, εκμεταλλευόμενο πλήρως
τις δυνατότητες του hardware που του προσφέρεται. Με λίγα λόγια, το JPEG είναι
περισσότερο συμβατό με τις τελευταίες εξελίξεις στον τομέα της προβολής εικόνων
σε υπολογιστή.
Κατά την μετατροπή εικόνων GIF σε εικόνες JPEG, η κβαντοποίηση του
χρώματος είναι απαραίτητη, ακόμα και όταν έχουμε GIF με 256 ή λιγότερα χρώματα,
αφού μετά την αποσυμπίεση δεν έχουμε πια 256 αλλά χιλιάδες χρώματα. Αυτό
οφείλεται στις απώλειες της μεθόδου JPEG οι οποίες επηρεάζουν κάθε pixel σε
διαφορετικό βαθμό, οπότε δύο pixels αρχικά του ίδιου χρώματος, θα διαφέρουν σε
αυτό μετά την αποσυμπίεση. Έτσι, βλέποντας ομάδες τέτοιων pixels, θα παίρναμε
διαφορετικό οπτικό αποτέλεσμα για το χρώμα μιας περιοχής της εικόνας και
επομένως η κβαντοποίηση χρώματος είναι αναγκαία, ανεξάρτητα της πηγής της
εικόνας μας.
Το παραπάνω πρόβλημα που υπάρχει με τις απώλειες της μεθόδου JPEG,
είναι ο λόγος για τον οποίο δεν έχει νόημα να αναφερόμαστε σε «πλήθος χρωμάτων
σε JPEG εικόνες», αφού και να προσπαθούσαμε να μετρήσουμε τα pixels που έχουν
διαφορετικό χρώμα και διακρίνονται μεταξύ τους, θα παίρναμε διαφορετικά
αποτελέσματα τα οποία θα εξαρτιόνταν από τον JPEG αποκωδικοποιητή που θα
χρησιμοποιούσαμε για τη μέτρηση. Έτσι εάν είναι απαραίτητο να
κατηγοριοποιήσουμε τις JPEG εικόνες, θα πρέπει να αρκεστούμε στις εικόνες σε
αποχρώσεις του γκρίζου και τις έγχρωμες, όπως δηλαδή και στις φωτογραφίες (που
δεν ορίζουμε αριθμό χρωμάτων).
Κανόνες για Μετατροπή Εικόνας
GIF σε JPEG
Εάν θέλουμε να μετατρέψουμε τις GIF εικόνες της βιβλιοθήκης μας σε
JPEG, ώστε να μειώσουμε τον απαιτούμενο αποθηκεύσιμο χώρο για αυτές, πρέπει να
γνωρίζουμε ορισμένους πρακτικούς κανόνες. Η μετατροπή αυτή δεν είναι τόσο
εύκολη υπόθεση, αφού ακόμα και στην περίπτωση που η GIF εικόνα είναι
αναπαράσταση μιας φωτογραφίας, η ποιότητα της είναι πολύ μικρή για να
αποτελέσει πηγή για δημιουργία μιας καλής JPEG εικόνας (λόγω της μείωσης των
χρωμάτων που έχουν υποστεί). Οι GIF εικόνες που δεν είναι φωτογραφίες, δεν
υπάρχει λόγος να υποστούν αλλαγή συμπίεσης, αφού όπως έχουμε δει δεν θα
κερδίσουμε σε αποθηκευτικό χώρο. Έτσι οι μόνες εικόνες που συμφέρει να
μετατρέψουμε σε JPEG είναι οι φωτογραφίες πολύ υψηλής ποιότητας και μάλιστα με
αρκετή οικονομία χώρου και χωρίς απώλειες σε ποιότητα, αρκεί να ξέρουμε τι
πρέπει να κάνουμε και να έχουμε υπομονή ώστε να ασχοληθούμε με την μετατροπή
κάθε εικόνας ξεχωριστά.
Η JPEG εικόνα που θα δημιουργήσουμε δεν θα είναι βέβαια ακριβές
αντίγραφο της πηγής (GIF), ούτε της ίδιας ποιότητας που θα είχαμε αν κάναμε
συμπίεση από δεδομένα των 24 bits, και ειδικότερα αν έχουμε οθόνη προβολής των
8 bits. Άλλωστε ούτε η GIF εικόνα που έχουμε ως πηγή είναι τελείως πιστό
αντίγραφο της αρχικής εικόνας πλήρους χρώματος εάν τις συγκρίνουμε λεπτομερώς.
Παρόλα αυτά, με μια γενική ματιά, όχι μόνο μια JPEG εικόνα που έχει μετατραπεί
από μια GIF εικόνα δεν έχουν μεγάλες διαφορές, αλλά εάν η μετατροπή έχει γίνει
με προσοχή και η προβολή γίνει σε οθόνη 24 bits, τότε η JPEG εικόνα μπορεί να
φαίνεται καλύτερη από την πηγή GIF, αφού θα έχουν εξαφανιστεί τα φαινόμενα
«συνδυασμού» (¨dithering¨) που είχαμε στην GIF.
Οι πρακτικοί κανόνες που πρέπει να ακολουθούνται είναι
οι εξής :
Πρώτα απ’ όλα πρέπει να προσπαθούμε να μετατρέψουμε μόνο τις εικόνες
που είναι κατάλληλες για συμπίεση JPEG, οι τύποι των οποίων αναφέρθηκαν στις
προηγούμενες παραγράφους (φωτογραφίες κ.λ.π.). Έτσι, συμπιέζοντας μια GIF
εικόνα μεγάλου μεγέθους με JPEG, θα σώσουμε πολύ αποθηκευτικό χώρο, ενώ δεν
συνίσταται η μετατροπή GIF εικόνων με μέγεθος μικρότερο από 100 Kbytes αφού το
τελικό κέρδος είναι πολύ μικρό συγκριτικά με τον χρόνο που θα αφιερώσουμε για
την μετατροπή τους.
Ένα άλλο σημείο που πρέπει να προσέξουμε είναι η ύπαρξη πλαισίου
(περιθωρίου) γύρω από την εικόνα. Στην GIF συμπίεση αυτό καταλαμβάνει μεν πολύ
μικρό αποθηκευτικό χώρο, αλλά η JPEG το αντιλαμβάνεται ως μέρος της εικόνας
προς συμπίεση και έχει μεγάλο κόστος σε χώρο και χρόνο αποσυμπίεσης. Επιπλέον,
σε οθόνη 8 bits, ο αποκωδικοποιητής θα δει ότι το χρώμα του πλαισίου
καταλαμβάνει ένα μεγάλο μέρος της συμπιεσμένης εικόνας και θα αφιερώσει πολλά
επίπεδα χρωμάτων κατά την κβαντοποίηση για να αποδοθεί όσο πιο σωστά γίνεται
(αφού το θεωρεί σημαντικό).Έτσι, μειώνει τα διαθέσιμα επίπεδα για την απόδοση
των χρωμάτων της κυρίως εικόνας και επομένως ελαττώνει την ποιότητά της. Από τα
παραπάνω καταλαβαίνουμε ότι είναι φρόνιμο να αποκόπτουμε το τυχόν περιθώριο από
την προς μετατροπή GIF εικόνα.
Είναι χρήσιμο να γνωρίζουμε από που έχει έρθει η GIF εικόνα. Σε
περίπτωση που έχει προέρθει από μετατροπή JPEG εικόνας σε GIF, τότε με την καινούργια
μετατροπή θα έχουμε πολλές απώλειες στην ποιότητα της. Έτσι, δεν πρέπει να
μετατρέπουμε εικόνες που έχουν ήδη υποστεί μια μετατροπή.
Τέλος, όταν έχουμε κάνει πια την μετατροπή, πρέπει να ελέγξουμε την
JPEG εικόνα που δημιουργήσαμε και να δούμε αν μας ικανοποιεί η ποιότητά της και
το μέγεθός της, σε σχέση πάντα με την πηγή GIF. Δεν πρέπει να σβήσουμε την GIF
εικόνα πριν σιγουρευτούμε για το αποτέλεσμα της μετατροπής, αφού ακόμη και να
έχουμε καταφέρει να διατηρήσουμε την ποιότητα της εικόνας, αυξάνοντας τον
δείκτη ποιότητας που μας προσφέρει η JPEG συμπίεση, το μέγεθος μπορεί να έχει
υπερβεί αυτό της GIF οπότε δεν υπάρχει λόγος να κρατήσουμε την JPEG εικόνα στην
βιβλιοθήκη μας.
Συμπληρωματικές Οδηγίες για
Μετατροπή GIF σε JPEG
DITHERING
Οι έγχρωμες GIF φωτογραφικές εικόνες χρησιμοποιούν μια τεχνική που
ονομάζεται “dithering”, η οποία προσπαθεί να
«ξεγελάσει» το ανθρώπινο μάτι και να κάνει τον χρήστη να νομίζει ότι η εικόνα
που βλέπει αποτελείται από περισσότερα από 256 χρώματα που υποστηρίζει το
πρότυπο GIF. Αν όμως μεγεθύνουμε την εικόνα, θα παρατηρήσουμε ότι ενώ εκεί που
νομίζαμε ότι υπάρχει ένα κομμάτι της εικόνας με ένα μόνο χρώμα, στην
πραγματικότητα είναι γειτονικά pixels με σημαντικές διαφορές στο αναμεταξύ τους
χρώμα δημιουργώντας με τον συνδυασμό τους το χρώμα που παρατηρήσαμε στο
κανονικό μέγεθος της εικόνας. Το πρόβλημα με το ¨dithering¨ παρουσιάζεται στην
JPEG εικόνα που παίρνουμε, αφού ο JPEG συμπιεστής αντιλαμβάνεται τη μεγάλη
διαφορά χρώματος μεταξύ γειτονικών pixels ως «θόρυβο» και δεν μπορεί να
συμπιέσει τα δεδομένα αυτά σε μεγάλο βαθμό. Έτσι, η JPEG εικόνα είναι και
μεγαλύτερη σε μέγεθος και χαμηλότερης ποιότητας από την αντίστοιχη JPEG που θα
παίρναμε αν είχαμε ως πηγή την αρχική εικόνα πλήρους χρώματος.
SMOOTHING
Η λύση στο πρόβλημα που δημιουργήθηκε με το ¨dithering¨ στις JPEG
εικόνες μπορεί να λυθεί με μια τεχνική που ονομάζεται ¨smoothing¨
(«εξομάλυνση»). Εφαρμόζοντας smoothing πάνω στην GIF εικόνα πριν αυτή
συμπιεστεί με την JPEG μέθοδο, μετατρέπονται στον μέσο όρο των χρωμάτων τους
(δηλαδή στο χρώμα που νομίζαμε ότι βλέπαμε αρχικά) τα γειτονικά pixels και έτσι
εξαλείφουμε τις απότομες αλλαγές χρωμάτων που δημιουργούσαν προβλήματα στον
συμπιεστή JPEG.
Με σωστή χρήση του smoothing, δηλαδή με κατάλληλες ρυθμίσεις στον
JPEG συμπιεστή, το αποτέλεσμα θα είναι μειωμένο μέγεθος εικόνας και καλύτερο
οπτικό αποτέλεσμα από αυτό που θα είχαμε αν δεν κάναμε smoothing. Έτσι σε
λογισμικό IJG JPEG, το οποίο έχει εγκατεστημένη την ικανότητα αυτή, με
διακόπτες (switches) που ρυθμίζουν την τιμή του smoothing ως εξής: -smooth 10.
Η τιμή 10 που βάλαμε προηγουμένως είναι μια καλή τιμή για τις μετατροπές από
GIF, ενώ τιμές μέχρι 25 είναι κατάλληλες για GIF υψηλής ποιότητας. Παρόλα αυτά,
εάν χρησιμοποιηθούν μεγαλύτεροι συντελεστές στην ρύθμιση από ότι χρειάζεται, θα
έχουμε ως αποτέλεσμα να «θολώσει» η εικόνα, κάτι που φυσικά δεν το θέλουμε στην
συγκεκριμένη περίπτωση.
Κατά την JPEG συμπίεση μιας GIF εικόνας, θα ήταν καλό εκτός της
χρήσης smoothing, να αυξήσουμε και τον συντελεστή ποιότητας της εικόνας, λίγο
παραπάνω από το επίπεδο που θα θέταμε εάν είχαμε ως πηγή την αρχική εικόνα
πλήρους χρώματος. Έτσι, ένας συντελεστής (Q 85) στην κλίμακα της IJP, θα ήταν
προτεινόμενος κατά την μετατροπή μιας GIF εικόνας. Όσο αφορά το μέγεθος της
JPEG εικόνας, εάν έχει υποστεί καλή μετατροπή, σύμφωνα δηλαδή με τις παραπάνω
οδηγίες, θα πρέπει να είναι το 1/3 ή το 1/2 το πολύ από το μέγεθος της GIF
πηγής. Όπως έχουμε αναφέρει προγενέστερα, οι JPEG εικόνες έχουν το 1/4 του
μεγέθους των αντίστοιχων GIF, αλλά αυτό ισχύει μόνο όταν και οι δύο έχουν ως
πηγή την αρχική εικόνα πλήρους χρώματος, ενώ εδώ επιπλέον έχουμε αύξηση
απαιτούμενου χώρου στην JPEG εικόνα λόγω του «θορύβου» από το ¨dithering¨, ο
οποίος δεν μπορεί να εξαλειφθεί τελείως χωρίς να θολώσει η τελευταία. Επιπλέον,
αν η JPEG εικόνα καταλαμβάνει περισσότερο χώρο από το μισό μέγεθος της GIF,
τότε αυτό είναι ένα σημάδι ότι πρέπει να μειώσουμε τις ρυθμίσεις της ποιότητας
ή να αφήσουμε την GIF εικόνα στη μορφή που είναι.
Τέλος, αν μας ενδιαφέρει πραγματικά να βελτιστοποιήσουμε την οπτική
εμφάνιση μιας εικόνας, ο καλύτερος τρόπος είναι να ελέγξουμε τα αποτελέσματα με
τα ίδια μας τα μάτια και να αποφασίσουμε τι αλλαγές χρειάζονται στις ρυθμίσεις,
γνωρίζοντας φυσικά τα όρια και τις χρήσεις της κάθε επιλογής μας.