Κωδικοποίηση Σημάτων και Εικόνων Μητιανούδης Νικόλαος, Επικ. Καθηγητής Μ. Δ. Ε. - Ακαδημαϊκό Έτος Διάλεξη 2
Διδασκαλία Παραδόσεις Νικόλαος Μητιανούδης – Τετάρτη Κύριο Υλικό Πανεπιστημιακές Παραδόσεις. Βοηθητικά Βιβλία N. Παπαμάρκος, Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας, Έκδοση 3 η, R. Gonzalez and R. Woods, Digital Image Processing, Prentice Hall, 3rd edition, 2007 A. Spanias, T. Painter and V. Atti, Audio Signal Processing and Coding, Wiley-Interscience; 1 edition, 2007 M. Cover and J.A. Thomas, Elements of Information Theory 2nd Edition, Wiley-Interscience; 2 edition, 2006 Y. Wang, J. Ostermann, Y. Zhang, Video Processing and Communications, New Jersey: Prentice Hall, E-class: Παρακολουθείτε το TMA
Δομή Ύλης 1. Εισαγωγή στα Συστήματα Κωδικοποίησης Σημάτων 2. Κωδικοποίηση Εντροπίας 3. Κβαντισμός 4. Κωδικοποίηση στο Πεδίο των Μετασχηματισμών 5. Κωδικοποίηση Ήχου : Ψυχοακουστική Ανάλυση. Το πρότυπο MPEG I - Layer 3 (mp3) 6. Κωδικοποίηση Εικόνων : Τα πρότυπα JPEG και JPEG Κωδικοποίηση Εικονοσειρών : Τα πρότυπα MPEG2 και MPEG4 8. Συμπιεσμένη Ανίχνευση για Συμπίεση Σημάτων 3 Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Θεωρία Πληροφοριών (Information Theory) 4 Αλφάβητο είναι ένα σύνολο δεδομένων / συμβόλων που θέλουμε να κωδικοποιήσουμε. {x 1,x 2,…,x N } Κώδικας = απεικόνιση του αλφαβήτου {x 1,x 2,…,x N } σε ένα σύνολο που αποτελείται από περιορισμένου μήκους δυαδικούς αριθμούς. Με C(x k ) απεικονίζεται ο κώδικας του x k. Μήκος Κώδικα I(x k ) = πλήθος των bits του κώδικα C(x k ). Κώδικες Σταθερού Μήκους Μεταβλητού Μήκους Κώδικας προθέματος (prefix code) είναι o κώδικας ο όποιος δεν αποτελεί πρόθεμα κανενός άλλου κώδικα. Το μεγάλο πλεονέκτημα του κώδικα αυτού είναι ότι αποκωδικοποιείται μοναδικά. Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Θεωρία Πληροφοριών (Information Theory) 5 Έστω αλφάβητο {x 1,x 2,…,x N } με πιθανότητες εμφάνισης κάθε συμβόλου p(x κ ), για κ =1,.., Ν. Ένας βέλτιστος κώδικας προθέματος C(x k ) είναι ένας κώδικας προθέματος ελάχιστου μήκους λέξης Ι (x k ). Αν C 1 είναι ένας άλλος κώδικας προθέματος μήκους λέξης Ι 1 (x k ), τότε ισχύει : Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Εντροπία 6 Κωδικοποίηση εντροπίας Η κωδικοποίηση εντροπίας εκμεταλλεύεται την στατιστική περίσσεια πληροφορίας και παράγει έναν κώδικα μεταβλητού μήκους έτσι ώστε, όπου H(x) είναι η εντροπία του αλφαβήτου. Λόγος συμπίεσης = εκφράζει τον % λόγο συμπίεσης και υπολογίζεται από τη σχέση Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Εντροπία (Entropy) 7 Αν σύμβολα παράγονται με τυχαίο τρόπο από μια πηγή {x 1,x 2,…,x N } με σταθερές πιθανότητες p(x k ), k=1,..,N, τότε η πληροφορία που περιέχεται στο σύνολο X και η οποία καλείται εντροπία, ισούται με bits/symbol (Shannon-1948) Η εντροπία εξαρτάται από πιθανότητες εμφάνισης των συμβόλων και μεγιστοποιείται όταν οι πιθανότητες αυτές είναι ίσες μεταξύ τους ( ομοιόμορφη κατανομή ). Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Εντροπία (Entropy) 8 Η εντροπία μας δίνει το μέσο αριθμό bits που απαιτούνται για να κωδικοποιηθεί μια σειρά από σύμβολα, με βάση τη συχνότητα τους. Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 1 Μας δίνει δηλαδή το βέλτιστο δυνατό bit-rate που μπορούμε να πετύχουμε σε μια διαδικασία κωδικοποίησης. Α) Αν ένα σήμα έχει 2 σύμβολα που είναι ισοπίθανα, τότε χρειαζόμαστε 1 bit για να το στείλουμε Β) Αν όμως ένα από τα 2 σύμβολα εμφανίζεται σπάνια, τότε χρειαζόμαστε λιγότερα από 1 bit/symbol κατά μέσο όρο για να το στείλουμε.
Εντροπία (Entropy) 9 Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 1 Έστω Ν σύμβολα X= {x 1,x 2,…,x N } με πιθανότητες εμφάνισης κάθε συμβόλου p ( x κ ), για κ=1,..,Ν. Αν οποιοσδήποτε κώδικας W που αναπαριστά τα σύμβολα x k με τις κωδικές λέξεις W k., τότε ορίζεται το Μέσο μήκος κώδικα L(W) ως Η εντροπία θα μας δώσει πάντοτε το κατώτερο όριο, δηλαδή το βέλτιστο δυνατό μήκος κώδικα, που μπορεί να αναπαραστήσει το σύνολο συμβόλων.
Κωδικοποίηση Εντροπίας (Entropy Coding) 10 Κωδικοποίηση Εντροπίας = Αλγόριθμοι που προσπαθούν να συμπιέσουν τα δεδομένα, μεταβάλλοντας το μήκος κώδικα κάθε συμβόλου, ώστε να προσεγγίζουν το όριο της εντροπίας. Οι κωδικοποιητές δεν αφαιρούν πληροφορία από τα δεδομένα, απλά αναδιατάσσουν την υφιστάμενη πληροφορία με σκοπό τη βελτίωση της συνολικής αποθήκευσης. Οι κωδικοποιητές εντροπίας είναι συμπιεστές χωρίς απώλειες (lossless encoders) Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κωδικοποίηση Εντροπίας (Entropy Coding) 11 Παράδειγμα : Ας υποθέσουμε ότι έχουμε τα σύμβολα {A, B, C, D, E} με τις ακόλουθες πιθανότητες εμφάνισης: p(A) = 0.45, p(B)=0.25, p(C) =0.15, p(D)=0.1, p(E)=0.05 Να υπολογιστεί ο ελάχιστος αριθμός bits που απαιτούνται για την αποστολή, με βέλτιστο τρόπο, της συμβολοσειράς AAAAABBCDE. Αν δε λάβουμε υπόψη τη συχνότητα εμφάνισης των συμβόλων, τότε για να στείλουμε 5 σύμβολα θέλουμε 2 3 = 8 καταστάσεις, άρα 3 bits/symbol. Συνολικά για 10 σύμβολα θέλουμε 30 bits. Υπολογίζοντας την εντροπία έχουμε: Άρα για 10 σύμβολα θέλουμε > 20 bits, η οποία είναι η μέγιστη συμπίεση χωρίς απώλειες που μπορούμε να πετύχουμε (33.3%), Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κωδικοποίηση Εντροπίας (Entropy Coding) 12 Κώδικες Μεταβλητού Μήκους: πολλοί κωδικοποιητές εντροπίας κωδικοποιούν κάθε μέλος του αλφαβήτου με μοναδικούς κώδικες διαφορετικού μήκους. Μοναδικότητα Αποκωδικοποίησης: είναι απαιτούμενο κάθε νέος κώδικας που προκύπτει να είναι μοναδικός, ώστε να γίνεται μοναδικά η επιστροφή στο αρχικό αλφάβητο (1-1 σχέση). Κώδικας Προθέματος (prefix): εδώ κάθε νέος κώδικας δεν είναι πρόθεμα κάποιου άλλου κώδικα του αρχικού αλφαβήτου. Μοναδική αποκωδικοποίηση. Κωδικοποιητές Εντροπίας: 1. Shannon-Fano 2. Huffman 3. Aριθμητικοί κώδικες Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κώδικας Shannon-Fano 13 Κώδικας Shannon-Fano : 1. Ταξινόμησε τα σύμβολα κατά φθίνουσα σειρά σύμφωνα με τις πιθανότητές τους 2. Διαίρεσε το σύνολο των πιθανοτήτων σε δύο κατά το δυνατόν ισοπίθανα τμήματα. Το πάνω τμήμα λαμβάνει τιμή 0 και το κάτω Κάθε επιμέρους τμήμα διαίρεσέ το σε δύο ισοπίθανα τμήματα και συνέχισε τη διαδικασία αυτή έως ότου καταλήξεις σε τμήματα με μόνο ένα στοιχείο. 4. Ο κωδικός κάθε συμβόλου προκύπτει από την οριζόντια διαδοχική παράθεση των 0 και 1. Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κώδικας Shannon-Fano 14 Παράδειγμα με Shannon-Fano : Έστω ότι έχουμε τα σύμβολα x={α,β,γ,δ,ε} με τις ακόλουθες πιθανότητες: Μέσο μήκος κώδικα: 2*0.25+2*0.25+2*0.2+3*0.15+3*0.15=2.285 bits/symbol Εντροπία: Η(x) = bits/symbol Αποκωδικοποίηση: πχ = = β γ ε δ Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κώδικας Huffman 15 Κώδικας Huffman : 1. Ταξινόμησε τα σύμβολα κατά φθίνουσα σειρά σύμφωνα με τις πιθανότητές τους 2. Ένα δυαδικό δέντρο δημιουργείται από αριστερά προς τα δεξιά παίρνοντας κάθε φορά τα δύο λιγότερο πιθανά σύμβολα συνενώνοντάς τα και δημιουργώντας ένα νέο ισοδύναμο σύμβολο με πιθανότητα ίση με το άθροισμα των δύο πιθανοτήτων που είχαν τα αρχικά σύμβολα. 3. Η διαδικασία επαναλαμβάνεται μέχρι να υπάρξει μόνο ένα σύμβολο οπότε έχουμε φτάσει στη ρίζα του δέντρου. 4. Το δέντρο μπορεί να διαβαστεί, από δεξιά προς τα αριστερά, ορίζοντας διαφορετικά bits σε διαφορετικούς κλάδους. Τους δύο κλάδους που αναχωρούν από κάθε κόμβο του δέντρου τους δίνουμε τιμές 0 και 1. (0 στην μεγαλύτερη πιθανότητα - 1 στη μικρότερη πιθανότητα) 5. Το δέντρο διαβάζεται από δεξιά προς αριστερά Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κώδικας Huffman 16 Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 1 Παράδειγμα 1 Κώδικα Huffman : Μέσο μήκος κώδικα: 1*0.5+2*0.25+3* *0.125=1.75 bits/symbol Εντροπία: Η(x) = 1.75 bits/symbol Αποκωδικοποίηση (prefix code): πχ = = γ δ β α C(α) = 0 C(β) = 10 C(γ) = 110 C(δ) = 111
Κώδικας Huffman 17 Παράδειγμα 2 Κώδικα Huffman : Μέσο μήκος κώδικα L: 1*0.4+2*0.35+3*0.2+3*0.05=1.85 bits/symbol Εντροπία: Η(x) = 1.74 bits/symbol C(z 1 ) = 1 C(z 2 ) = 00 C(z 3 ) = 010 C(z 4 ) = 011 Για τον κώδικα Huffman ισχύει ότι Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κώδικας Huffman 18 Παράδειγμα 3 Κώδικα Huffman : Έστω αλφάβητο {a,b,c,d,e} με πιθανότητες {0.25, 0.25, 0.2, 0.15, 0.15} Μέσο μήκος κώδικα L: 2*0.25+2*0.25+2*0.2+3*0.15+3*0.15=2.3 bits/symbol Εντροπία: Η(x) = bits/symbol C(a) = 00 C(b) = 10 C(c) = 11 C(d) = 010 C(e) = 011 Για τον κώδικα Huffman ισχύει ότι Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Αριθμητική Κωδικοποίηση 19 Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 1 Αριθμητική Κωδικοποίηση : 1. Ταξινόμησε τα σύμβολα κατά φθίνουσα σειρά σύμφωνα με τις πιθανότητές τους S k, k=1,…,T. Προφανώς p(S 1 )≤ p(S 2 ) ≤ … ≤ p(S T ) 2. Δημιούργησε μια βαθμονομημένη κλίμακα από το 1 ως το μηδέν, αντιστοιχίζοντας κάθε σύμβολο S k στο τμήμα ως 3. Πάρε το πρώτο σύμβολο S j προς κωδικοποίηση. 4. Βρες τα όρια που αντιστοιχούν στο σύμβολο αυτό στην τμηματοποίηση αυτή. 5. Κάνε μια νέα τμηματοποίηση του διαστήματος αυτού για όλα τα σύμβολα σε πλήρη αναλογία με την αρχική τους τμηματοποίηση. 6. Αν υπάρχει επόμενο σύμβολο επανέλαβε τα βήματα 4 και Αν δεν υπάρχει επόμενο σύμβολο, τότε ο κώδικας για τη μετάδοση αυτής της αλληλουχίας συμβόλων είναι ο δεκαδικός αριθμός (σε δυαδική μορφή) που προκύπτει από το εύρος του τελευταίου συμβόλου.
Αριθμητική Κωδικοποίηση 20 Παράδειγμα : Έστω ότι έχουμε τα σύμβολα S ={ α, ε, v, ρ, ο} με πιθανότητες εμφάνισης p(α)=0.25, p(ε)=0.2, p(ν)=0.1, p(ρ)=0.15 και p(ο)=0.3. Να γίνει αριθμητική κωδικοποίηση της φράσης «νερο» Ταξινομούμε τα σύμβολα με φθίνουσες πιθανότητες και φτιάχνουμε τη βαθμονομημένη κλίμακα από το 0 ως το 1. p(o) = 0.3 p(α) = 0.25 p(ε) = 0.2 p(ρ) = 0.15 p(ν) = 0.1 Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Αριθμητική Κωδικοποίηση Το πρώτο σύμβολο της λέξης «νερο» είναι το ν. Άρα παίρνουμε το διάστημα 0 – Αυτό το διάστημα χωρίζεται με την ίδια αναλογία και βρίσκουμε το διάστημα για το επόμενο σύμβολο ε. 3. Η διαδικασία επαναλαμβάνεται και τελικά αποστέλλεται το εύρος του τελευταίου συμβόλου σε δυαδική μορφή. Ο αριθμός αντιστοιχεί στο δυαδικό αριθμό , που έχει 9 bits. Για να μεταδώσουμε 4 σύμβολα θέλουμε 9 bits => 2.25 bits/symbol Η εντροπία είναι Η(S)= bits/symbol H κωδικοποίηση Huffman θα σας δώσει 2.25 bits/symbol. Για τα 4 αυτά σύμβολα θέλουμε 10 bits Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Αριθμητική Αποκωδικοποίηση 22 Αριθμητική Αποκωδικοποίηση : 1. Ακολουθούμε τα 2 πρώτα βήματα της Αριθμητικής Κωδικοποίησης 2. Βρίσκουμε το διάστημα στο οποίο ανήκει ο κωδικοποιημένος αριθμός Χ. Το σύμβολο που αντιστοιχεί στο διάστημα αποκωδικοποιείται. 3. Ο αριθμός Χ ανανεώνεται με 4. Τα βήματα 2 και 3 επαναλαμβάνονται μέχρι να εξαχθούν όλα τα κωδικοποιημένα σύμβολα. Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Αριθμητική Αποκωδικοποίηση 23 Στο προηγούμενο παράδειγμα κι αν γνωρίζουμε ότι έχουμε 4 σύμβολα τότε η λέξη αποκωδικοποιείται ως εξής σύμφωνα με το προηγούμενο αλγόριθμο Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Πλεονεκτήματα Αριθμητικής Κωδικοποίησης 24 Η αριθμητική κωδικοποίηση είναι ιδιαίτερα αποτελεσματική για μικρά αλφάβητα, όπου ορισμένα σύμβολα εμφανίζουν μεγάλες πιθανότητες εμφάνισης. Η αριθμητική κωδικοποίηση είναι πολύ δημοφιλής σε εφαρμογές εικόνας και βίντεο. Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Αριθμητική Κωδικοποίηση vs Huffman 25 Κωδικοποίηση Huffman δημιουργεί ένα δυαδικό δένδρο, τέτοιο ώστε τα μήκη των μονοπατιών να αντιστοιχούν στις πιθανότητες εμφάνισης των συμβόλων. Ο κώδικας δημιουργείται από τη δυαδική κωδικοποίηση του μονοπατιού που οδηγεί στο σύμβολο. Αν οι πιθανότητες εμφάνισης των συμβόλων είναι δυνάμεις του 2, τότε η κωδικοποίηση του Huffman μπορεί να φτάσει το όριο της εντροπίας. Αριθμητική Κωδικοποίηση συνδυάζει τις πιθανότητες εμφάνισης διαδοχικών συμβόλων σε έναν αριθμό υψηλής ακρίβειας σταθερής υποδιαστολής. Ο αριθμός αυτός στέλνεται σε δυαδική μορφή. πιο αργή από τον κώδικα Huffman. Καλύτερη για μικρά αλφάβητα με ανομοιόμορφες πιθανότητες εμφάνισης. Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κωδικοποίηση Μήκους Διαδρομής 26 Κωδικοποίηση Μήκους Διαδρομής (Run-Length Encoding - RLE) = κωδικοποιεί δυαδικές εικόνες. Βασίζεται στην εύρεση συνεχών ομάδων από άσπρα ή μαύρα pixels καθώς κινούμαστε γραμμή-γραμμή από αριστερά προς τα δεξιά. Δύο δυνατές απεικονίσεις: Α) Χρησιμοποιούνται τα μήκη των διαδοχικών συστοιχιών pixels με τιμή «1» (μαύρο) και η θέση της αρχής. Β) χρησιμοποιούνται μόνο τα μήκη των διαδρομών, αρχίζοντας με τη πρώτη διαδρομή από pixels με τιμή «1». Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κωδικοποίηση Μήκους Διαδρομής 27 Παράδειγμα Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κωδικοποίηση Μήκους Διαδρομής 28 Παραλλαγές Σάρωσης Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Κωδικοποίηση Μήκους Διαδρομής 29 Κωδικοποίηση Μήκους Διαδρομής και σε πολλαπλές στάθμες αλλά και σε αρχεία κειμένου, ήχου και έγχρωμων εικόνων. Πχ. η φράση AAAAAAbbbXXXXXt 6A3b5X1t Απαραίτητη προϋπόθεση επιτυχίας να υπάρχουν αρκετά επαναλαμβανόμενα τμήματα Πχ. η φράση Xtmprsqzntwlfb 1X1t1m1p1r1s1q1z1n1t1w1l1f1b αυξάνει το μήκος αντί να το μειώνει. Χρησιμοποιείται στη μετάδοση εικόνων FAX και σε διάφορα format συμπίεσης εικόνας. Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Virtual Lab – Entropy Coding GUI 30 Κωδικοποίηση Huffman στο Virtual Lab για Entropy Coding Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2
Virtual Lab – Entropy Coding GUI 31 Κωδικοποίηση Σημάτων και Εικόνων – Διάλεξη 2