ΠΑΡΑΡΤΗΜΑ   Ε

 

 

JPEG - GIF

 

Σύγκριση και Αντιπαράθεση JPEG και GIF

 

Σε γενικές γραμμές, η μέθοδος συμπίεσης 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 έχει και μάλιστα σημαντικές.

 

 

Ποιότητα Συμπίεσης με 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 εικόνα στη μορφή που είναι.

Τέλος, αν μας ενδιαφέρει πραγματικά να βελτιστοποιήσουμε την οπτική εμφάνιση μιας εικόνας, ο καλύτερος τρόπος είναι να ελέγξουμε τα αποτελέσματα με τα ίδια μας τα μάτια και να αποφασίσουμε τι αλλαγές χρειάζονται στις ρυθμίσεις, γνωρίζοντας φυσικά τα όρια και τις χρήσεις της κάθε επιλογής μας.