Το πρότυπο JPEG για κωδικοποίησηση εικόνας Το JPEG, που υιοθετήθηκε από την Joint Photographic Experts Group, είναι ένα πρότυπο που χρησιµοποιείταιευρέωςγιατησυµπίεσηακίνητωνεικόνων, µε µέσο λόγο συµπίεσης 15:1 χωρίςναδηµιουργείταιαίσθησηαπώλειαςτηςποιότηταςτηςανακατασκευασµένηςεικόνας. Το JPEG χρησιµοποιείται για την κωδικοποίηση βίντεο (κωδικοποιεί τα πλαίσια ανεξάρτητα µεταξύ τους) σε περιπτώσεις όπου δεν ενδιαφέρει άµεσα το απαιτούµενο εύρος ζώνης. Τότε ονοµάζεται motion JPEG. Το JPEG επίσης χρησιµοποιείται για την εγγραφή βίντεο σε µαγνητική ταινία. Στην περίπτωση αυτή, λόγωτηςανεξάρτητηςκωδικοποίησηςτωνπλαισίων, είναιδυνατήηδιόρθωση (editing), η τυχαία προσπέλαση (searching), η παύση (pause), η γρήγορη κίνηση (fast forward/backward) και άλλες λειτουργίες. 6.10-1
Συµπίεση χωρίς απώλειες Χρησιµοποιούνταιτρίαγειτονικά pixel p i-1j-1, p i-1j και p ij-1 γιατηνπρόγνωσητηςτιµήςκάθε pixel p ij. p i 1 j 1 pi 1 j p ij 1 p ij Πρόγνωση από τρία γειτονικά δείγµατα. Η διαφορά της τιµής και της τιµής πρόγνωσης κωδικοποιείται χωρίς απώλειες από ένα κωδικοποιητή εντροπίας. Ο πίνακας εντροπίας καθορίζει τα χαρακτηριστικά του κώδικα µεταβλητού µήκους. Αυτό το σχήµα κωδικοποίησης είναι απλό, η δε επιτυγχανόµενη συµπίεση είναι της τάξης 2:1 για µια πολύπλοκη εικόνα Αρχική εικόνα Προγνώστης Κωδικοποιητής εντροπίας Συµπιεσµένη εικόνα Πίνακας εντροπίας Κωδικοποιητής JPEG χωρίς απώλειες. 6.10-2
Συµπίεση µε απώλειες Το JPEG ανήκει στην κατηγορία των τεχνικών κωδικοποίησης µετασχηµατισµού, δηλαδή, τεχνικών που δεν συµπιέζουν άµεσα το σήµα (στην περίπτωση αυτή την εικόνα), αλλά συµπιέζουντονµετασχηµατισµότου. Η ευρύτερα χρησιµοποιούµενη τεχνική µετασχηµατισµού είναι ο ιακριτός Μετασχηµατισµός Συνηµιτόνου (Discrete Cosine Transform-DCT). Τα σηµαντικότερα πλεονεκτήµατα του DCT είναι η ιδιότητά του να δηµιουργεί υψηλού βαθµού συµπύκνωση της ενέργειας και ηδιαθεσιµότηταταχέως αλγορίθµουγιατονυπολογισµότουµετασχηµατισµού. Η ικανότητα συµπύκνωσης ενέργειας του DCT έχει ως αποτέλεσµα µόνο λίγοι από τους συντελεστές του µετασχηµατισµού να έχουν σηµαντικές τιµές, έτσι ώστε σχεδόν όλη η ενέργεια περιέχεται σ' αυτές τις συγκεκριµένες συνιστώσες. 6.10-3
s(t) f (x) είναι η ένταση φωτεινότητας στη θέση x. 2 n F( u) = C( u) n x= 1 0 (2x+ 1) uπ f ( x)cos, 2n u= 0,..., n 1 f (x) s(t) F(2) t x C( u) = 1, 2 1, u= 0 αλλοιώς F(u) είναι ο DCT συντελεστής για τη χωρική συχνότητα u. Ο συντελεστής F(0), αντιπροσωπεύει τη µέση φωτεινότητα της εικόνας (για την ακρίβεια είναι αντίστοιχη) f (t) F(3) t x Η τιµή της µπορεί να είναι από F(0) = 0 (µαύρη εικόνα) έως F(0) = 255 (λευκή εικόνα) όταν έχουµε αναπαράσταση 256 σταθµών φωτεινότητας ή χρωµάτων Όσο ταχύτερα µεταβάλλεται η φωτεινότητα κατά την οριζόντια κατεύθυνση τόσο γίνονται ισχυρότερες οι µεγάλεςχωρικέςσυχνότητες (π.χ. F(3) > F(2)) 6.10-4
Ο DCT µιας N Nεικόναςµεσυνάρτησηφωτεινότητας f(x, y ), 0 x, y N 1µπορείνα υπολογισθεί χρησιµοποιώντας τις ακόλουθες εξισώσεις: F( u, ν ) = C( u, ν ) N 1 x=0 N 1 f ( x, y) y=0 ( 2x+ 1) π u cos cos 2N F(u,ν)είναιοDST συντελεστήςγιατηχωρικήσυχνότητα (u,ν). ( 2y+ 1)πν 2N f (u,ν)είναιηαρχικήέντασηφωτεινότηταςστηθέση (x, y). C (u,ν)είναι o παράγονταςκανονικοποίησηςπουορίζεταιως: C(0,0) = 1 N C( 0, ν ) = C( u,0) = 1 C( u, ν ) = 2 N u N 2 0, ν 0 Ο συντελεστής F(0,0) συνήθως καλείται DC συνιστώσα και οι υπόλοιποι συντελεστές καλούνται AC συνιστώσες. 6.10-5
Οι συναρτήσεις βάσης για πίνακα 8 8 στο DCT Ο συντελεστής F(0, 0), αντιπροσωπεύει τη µέση φωτεινότητα της εικόνας (για την ακρίβεια είναι αντίστοιχη) Οµοιόµορφη εικόνα v F(0,0) F(1,0) Μεταβολές της φωτεινότητας κατά την οριζόντια κατεύθυνση u F (0,0) F (0,1 ) F (0,2) F (0,3) F (0,4) F (0,5) F (0,6) F(0,7) F(1,7) Μεταβολές της φωτεινότητας κατά την κάθετη κατεύθυνση Ητιµή της µπορεί να είναι από F(0, 0) = 0 (µαύρη εικόνα) έως F(0,0) = 255 (λευκή εικόνα) όταν έχουµε αναπαράσταση 256 σταθµών φωτεινότητας ή χρωµάτων F(2,0) F(3,0) F(4,0) F(5,0) F(2,7) F(3,7) F(4,7) F(5,7) Όσο ταχύτερα µεταβάλλεται η φωτεινότητα κατά την οριζόντια κατεύθυνση τόσο γίνονται ισχυρότερες οι µεγάλες χωρικές συχνότητες (π.χ. F(7,0) > F(7,7)) F(6,0) F(7,0) F(6,7) F(7,7) 6.10-6
Ο κωδικοποιητής JPEG αποτελείται από τρία µπλοκ, τη βαθµίδα του DCT τον κβαντιστή και τον κωδικοποιητή εντροπίας. 8 8 blocks Κωδικοποιητής βασισµένος στο DCT FDCT Κβαντιστής Κωδικοποιητής εντροπίας εδοµένα αρχικής εικόνας Πίνακας προδιαγραφών Πίνακας προδιαγραφών εδοµένα συµπιεσµένης εικόνας Αποκωδικοποιητής βασισµένος στο DCT 8 8 blocks Αποκωδικοποιητής εντροπίας Αποκβάντιση IDCT εδοµένα συµπιεσµένης εικόνας Πίνακας προδιαγραφών Πίνακας προδιαγραφών εδοµένα ανακατασκευασµένης εικόνας Τοδιάγραµµαβαθµίδωνενός JPEG, α)κωδικοποιητή, καιβ)αποκωδικοποιητή. 6.10-7
Ο κωδικοποιητής JPEG αποτελείται από τρία µπλοκ, τη βαθµίδα του DCT τον κβαντιστή και τον κωδικοποιητή εντροπίας. Η Βαθµίδα DCT Μιαεικόνααποτελείταιαπόπολλάεικονοστοιχεία (pixels) διατεταγµένα σ' ένα m nπίνακα. Ο m nπίνακας διαιρείται σευποπίνακες, 8 8 pixelsαπό αριστερά προς τα δεξιά και από επάνωµέχρικάτω. Ο µετασχηµατισµός DCT στο JPEG. Αφού καθορισθούν οι υποπίνακες υπολογίζεται ο DCT του κάθε υποπίνακα. Η διεργασία αυτή δηµιουργεί 64 DCT συντελεστές, για κάθε υποπίνακα αρχίζοντας από την DC συνιστώσα F(0,0) καιφθάνονταςστο F(7,7). 6.10-8
ΟΚβαντιστής. Ο σκοπός του κβαντιστή είναι να πετύχει µεγαλύτερη συµπίεση αναπαριστώντας το κάθε συντελεστή µε όχι περισσότερα ψηφία από όσα χρειάζονται. Ισοδύναµα, µπορεί να θεωρηθεί ότι ο κβαντιστής προσπαθεί να απαλείψει όποια πληροφορία δεν είναι αντιληπτή από την ανθρώπινη όραση. Λόγω της ιδιότητας της ενεργειακής συµπύκνωσης του DCT, από τους συντελεστές DCT µόνο αυτοί που αντιστοιχούν στις συνιστώσες χαµηλής συχνότητας έχουν σηµαντικές τιµές. Επειδή η DC συνιστώσα φέρει το µεγαλύτερο µέρος της ενέργειας και επειδή υπάρχει µια ισχυρή συσχέτιση µεταξύ της DC συνιστώσας ενός υποπίνακα και αυτής του προηγουµένου υποπίνακα, χρησιµοποιείταιένασχήµα διαφορικήςοµοιόµορφηςκβάντισης. Οι συνιστώσες AC κβαντίζονται χρησιµοποιώντας σχήµατα οµοιόµορφης κβάντισης. Παρά το ότι όλες οι συνιστώσες κβαντίζονται οµοιόµορφα, τα διαφορετικά σχήµατα κβάντισης χρησιµοποιούν διαφορετικό εύρος βαθµίδας (διαφορετική ακρίβεια στους συντελεστές). Πάντως όλοι οι κβαντιστές, έχουν το ίδιο πλήθος σταθµών κβάντισης ίσο µε 256. 6.10-9
ΟΚβαντιστής. Έναςπίνακαςκβάντισηςµε 64 στοιχεία, οοποίοςκαθορίζεταιαπότονχρήστηήτηνεφαρµογή, καθορίζειτοεύροςβαθµίδαςγιατηνοµοιόµορφηκβάντισητουκάθε DCT συντελεστή. 16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99 Πίνακας κβάντισης για JPEG Η έξοδος του βήµατος κβάντισης είναι ένας 8 8 πίνακας του οποίου τα µη µηδενικά στοιχεία βρίσκονται µόνο στην πάνω αριστερή γωνία και πολλά µηδενικά στοιχεία στις άλλες θέσεις. Επειδή η συνάρτηση κβαντισµού είναι µία συνάρτηση πολλών σε ένα, το στάδιο αυτό αποτελεί την πηγή εισαγωγής σφάλµατος στη διαδικασία. 6.10-10
Μετά τη διαδικασία κβάντισης, οι κβαντισµένοι συντελεστές DCT του κάθε υποπίνακα διευθετούνται σ' ένα διάνυσµα λαµβανόµενοι µε µία zig-zag σάρωση. DC AC1 AC 28 AC 35 AC 63 Zig-zagσάρωσητων DCT συντελεστών Χρησιµοποιώντας αυτόν τον τύπο σάρωσης αποκτούµε ένα διάνυσµα X µήκους 64 του οποίου µόνο λίγες από τις πρώτες συνιστώσες έχουν µη µηδενική τιµή. 6.10-11
Η Κωδικοποίηση. Στο βήµα αυτό γίνεται περαιτέρω συµπίεση των κβαντισµένων συντελεστών βασισµένη στα στατιστικά χαρακτηριστικά τους. Χρησιµοποιείται κωδικοποίηση εντροπίας για συµπίεση χωρίς απώλειες των κβαντισµένων τιµών. Μία από τις µεθόδους κωδικοποίησης εντροπίας που προδιαγράφεται από το JPEG πρότυπο είναι η κωδικοποίηση Huffman Οι κώδικες Huffman στην περίπτωση αυτή βασίζονται σε σταθερούς πίνακες που καθορίζουν τιςκωδικέςλέξειςγιαταδιαφορετικάπλάτη. Οιπίνακεςαυτοίκαθορίζονταιαπότηνεφαρµογή, από τα στατιστικά στοιχεία της εικόνας. Επειδή τα διανύσµατα που κατασκευάστηκαν περιέχουν µεγάλο πλήθος µηδενικών, χρησιµοποιείται ένας τύπος κωδικωποίησης τρέχοντος µήκους (runlength coding)} για να κωδικοποιήσειταµηδενικάαυτά. 6.10-12