Κωδικοποίηση Πηγής Η λειτουργία ενός συστήματος επικοινωνίας (γενικό διάγραμμα): Coder Decoder Μεταξύ πομπού-καναλιού παρεμβάλλεται ο κωδικοποιητής (coder). Έργο του: η αντικατάσταση των συμβόλων πληροφορίας της πηγής με εναλλακτικά σύμβολα ή λέξεις. 1
Λόγοι για την Κωδικοποίηση Πηγής Συμπίεση: στόχος η μείωση του συνολικού μήκους του μηνύματος εξοικονόμηση χώρου αποθήκευσης μείωση του χρόνου αποστολής περιορίζει την απαιτούμενη χωρητικότητα διαύλου για την μεταφορά πληροφοριών. Ανίχνευση και Διόρθωση Σφαλμάτων αντικατάσταση συμβόλων πηγής με λέξεις μεγαλύτερου μεγέθους, που περιλαμβάνουν πληροφορίες για το αρχικό μήνυμα εισαγωγή πλεονάζουσας πληροφορίας αντίθετη αρχή λειτουργίας με την συμπίεση Ασφάλεια ο κωδικοποιητής αντιστοιχεί τα σύμβολα πηγής με σύνολο λέξεων που είναι γνωστά μόνο στον πομπό και δέκτη αποφυγή υποκλοπής και κατανόησης Θα μας απασχολήσει η κωδικοποίηση που στοχεύει στη συμπίεση πληροφορίας 2
Ορισμοί Ορισμός 1: Κωδικοποίηση είναι η αντικατάσταση συμβόλων ή ομάδων συμβόλων πληροφορίας με νέα εναλλακτικά σύμβολα ή ομάδες συμβόλων. Όρισμός 2: Κώδικας είναι ο αλγόριθμος με τον οποίο πραγματοποιείται η κωδικοποίηση, δηλαδή, η αντικατάσταση συμβόλων από νέα σύμβολα. Ορισμός 3: Τα νέα διακεκριμένα σύμβολα w 1, w 2,, w M που προκύπτουν κατά την κωδικοποίηση ονομάζονται κωδικά σύμβολα. Το πλήθος τους Μ μπορεί να είναι πεπερασμένο ή άπειρο. Ορισμός 4: Το σύνολο W={w 1, w 2,, w M } όλων των κωδικών συμβόλων λέγεται αλφάβητο κωδικοποίησης. Ορισμός 5: Ο κώδικας που έχει M κωδικά σύμβολα ονομάζεται M-αδικός κώδικας. 3
Κωδικοποίηση Morse Παράδειγμα Απεικόνιση γραμμάτων αλφαβήτου σε κωδικές λέξεις που σχηματίζονται από τελείες, παύλες και κενά διαστήματα. Κωδικά σύμβολα:. κενό Πλήθος κωδικών συμβόλων M=3 Αλφάβητο Κωδικοποίησης W={., -, κενό} Ο κώδικας Morse είναι ένας 3-αδικός κώδικας 4
Μαθηματική Περιγραφή Κωδικοποίησης Αλφάβητο Πηγής: Χ={x 1, x 2,, x N } Αλφάβητο Κωδικοποίησης: W={w 1, w 2,, w M } Η κωδικοποίηση είναι η απεικόνιση C του αλφαβήτου X σε μία ένωση U * καρτεσιανών γινομένων του αλφαβήτου W. Καρτεσιανό γινόμενο των συνόλων Α και Β είναι το σύνολο των διατεταγμένων ζευγών (x, y) με x Α και y Παράδειγμα: W={, }, τότε το καρτεσιανό γινόμενο W 2 θα είναι {,,, } Πόσα σύμβολα πηγής θα μπορούσα να απεικονίσω στο παραπάνω αλφάβητο κωδικοποίησης? Β 5
Ταξινόμηση Κωδίκων Ταξινόμηση με κριτήριο τις απώλειες Κώδικες χωρίς απώλειες Η απεικόνιση της πηγής είναι ένα-πρός-ένα (δηλαδή ένα σύμβολο αλφαβήτου πηγής αντιστοιχεί σε ένα σύμβολο αλφαβήτου κωδικοποίησης) Η αποκωδικοποίηση του κωδικού μηνύματος θα μας δώσει το αρχικό μήνυμα (καμμία απώλεια) π.χ. Κώδικας Morse. Κώδικες με απώλειες Η απεικόνιση συμβόλων πηγής σε κωδικά σύμβολα είναι πολλά-σεένα. η αποκωδικοποίηση ενδέχεται να μας δώσει διαφορετικό μήνυμα από αυτό που μεταδόθηκε. π.χ. Κωδικοποίηση έγχρωμης εικόνας σε αντίστοιχη με διαβαθμίσεις του γκρί. Θα μας απασχολήσουν ΜΟΝΟ κώδικες χωρίς απώλειες. 6
Ταξινόμηση Κωδίκων Δεν μας απασχολούν διαδικασίες ανίχνευσης και διόρθωσης σφαλμάτων Το κανάλι είναι «αθόρυβο» είναι το κανάλι που δέχεται ως είσοδο ένα σύνολο από «κωδικούς χαρακτήρες» και αναπαράγει στην έξοδο του τους χαρακτήρες αυτούς χωρίς πιθανότητα λάθους. (Βλ. Ιδανικός Δίαυλος) Ταξινόμηση με κριτήριο το μήκος των κωδικών λέξεων Σταθερού μήκους το μήκος των κωδικών λέξεων είναι σταθερό για κάθε σύμβολο της πηγής Χ. π.χ. ASCII-7 (κάθε χαρακτήρας πηγής κωδικοποιείται με έναν συνδυασμό από 7 δυαδικών ψηφίων) 7
Ταξινόμηση Κωδίκων Ο κώδικας ASCII 7-bit (American Standard Code for Information Interchange) 8
Ταξινόμηση Κωδίκων Κώδικες Μεταβλητού Μήκους χρησιμοποιούνται για την συμπίεση δεδομένων Τα σύμβολα πηγής με μεγαλύτερη πιθανότητα εμφάνισης, κωδικοποιούνται με μικρότερου μήκους κωδικές λέξεις. π.χ. Κώδικας Morse το γράμμα Ε που είναι το πιο σύνηθες στην αγγλική αντιστοιχίζεται με μικρότερη κωδική λέξη από το γράμμα Q που είναι το πιο σπάνια εμφανιζόμενο. 9
Αθόρυβη κωδικοποίηση Στόχος είναι: η ελαχιστοποίηση του μέσου μήκους της κωδικής λέξης. Συνοπτικά, τα «συστατικά» του προβλήματος της «αθόρυβης κωδικοποίησης» είναι: Η πηγή εισόδου (Χ, P X ) στον ιδανικό δίαυλο με αλφάβητο πηγής Χ={x 1, x 2,, x N } και κατανομή πιθανοτήτων P X ={p 1, p 2,, p N }. Το αλφάβητο κωδικοποίησης W ={w 1, w 2,, w N }. Σε κάθε σύμβολο x i πρόκειται να ανατεθεί μία πεπερασμένη ακολουθία από κωδικά σύμβολα η οποία αποτελεί την κωδική λέξη. Π.χ. το σύμβολο x 1 μπορεί να αντιστοιχηθεί στην κωδική λέξη w 1 w 2 και το x 2 στην λέξη w 3 w 7 w 3 w 8. 10
Σχεδιαστικά Ζητήματα Κωδίκων Θεωρείστε τον παρακάτω δυαδικό κώδικα: x 1 10 x 2 010 x 3 0 x 4 10 Ερώτημα: Ποιό είναι το πρόβλημα του παραπάνω κώδικα? Τα σύμβολα πηγής x 1 και x 4 αντιστοιχίζονται στην ίδια κωδική λέξη. Ο δέκτης θα παρουσιάζει δυσκολία αποκωδικοποίησης της λέξης «10». Απαίτηση ένας κώδικας που αντιστοιχεί κάθε σύμβολο της πηγής σε διαφορετική κωδική λέξη, λέγεται ευκρινής. 11
Σχεδιαστικά Ζητήματα Κωδίκων Θεωρείστε τον παρακάτω δυαδικό κώδικα: x 1 0 x 2 010 x 3 01 x 4 10 Ερώτημα: Έστω ότι στον δέκτη καταφθάνει το κωδικό μήνυμα 010. Ποιό σύμβολο θα προκύψει από την αποκωδικοποίηση? Απ.: x 2, x 1 x 4, x 3 x 1 Ο δέκτης δεν είναι σε θέση να αντιληφθεί με απόλυτη βεβαιότητα την αρχή και το τέλος μιας κωδικής λέξης. Είναι επιθυμητό να εξαλειφθούν καταστάσεις σύγχυσης όπως η παραπάνω. Απαίτηση ένας κώδικας για τον οποίο κάθε κωδική λέξη αναγνωρίζεται με βεβαιότητα μέσα σε μία μακρά ακολουθία κωδικών συμβόλων λέγεται μονοσήματος. 12
Σχεδιαστικά Ζητήματα Κωδίκων Ένας τρόπος για την εξασφάλιση της μονοσημαντικότητας ενός κώδικα, είναι καμία κωδική λέξη να είναι πρόθεμα μιας άλλης. (προθεματική ιδιότητα) Παράδειγμα: x 1 0 x 2 010 x 3 01 x 4 10 Εξετάζω τις κωδικές λέξεις μία πρός μία: «0» δεν έχει πρόθεμα καμία άλλη κωδική λέξη. «010» έχει πρόθεμα τις λέξεις: «0», «01». «01» έχει πρόθεμα την λέξη: «0». «10» δεν έχει πρόθεμα καμία άλλη λέξη. Ο κώδικας δεν είναι μονοσήμαντος. 13
Σχεδιαστικά Ζητήματα Κωδίκων Ένας κώδικας για τον οποίο ισχύει η προθεματική ιδιότητα ονομάζεται στιγμιαία αποκωδικοποιήσιμος. (instantaneous) Σημειώνεται ότι: Κάθε στιγμιαία αποκωδικοποιήσιμος κώδικας είναι και μονοσήμαντος. Δέν ισχύει το αντίστροφο. π.χ. x 1 1 x 2 x 3 x 4 10 100 1000 Κάθε μονοσήμαντος είναι και ευκρινής. Δέν ισχύει το αντίστροφο. π.χ. x 1 0 x 2 x 3 x 4 01 10 11 Λέξη «1» είναι πρόθεμα όλων των υπολοίπων κ.ο.κ 0110 αντιστοιχεί σε: x 2 x 3, x 1 x 4 x 1 Κάθε ευκρινής κώδικας σταθερού μήκους είναι και στιγμιαία αποκωδικοποιήσημος. π.χ. Κώδικας ASCII-7 14
Να ταξινομηθούν οι παρακάτω κώδικες. Άσκηση Σύμβολο Κώδικας Α Κώδικας Β Κώδικας Γ Κώδικας Δ x 1 00 0 1 1 x 2 10 01 10 01 x 3 01 10 100 001 x 4 00 11 1000 0001 Ταξινόμιση Κώδικας Α Κώδικας Β Κώδικας Γ Κώδικας Δ ευκρινής x Μονοσήμαντος x x Στιγμιαία αποκωδικοποιήσιμος x x x 15
Να ταξινομηθούν οι παρακάτω κώδικες. Άσκηση Σύμβολο Κώδικας Α Κώδικας Β Κώδικας Γ Κώδικας Δ Κώδικας E x 1 0 00 110 000 01 x 2 01 11 01 010 011 x 3 11 10 00 101 0111 x 4 10 01 10 111 0 Ταξινόμιση Κώδικας Α Κώδικας Β Κώδικας Γ Κώδικας Δ Κώδικας E ευκρινής Μονοσήμαντος X Στιγμιαία αποκωδικοποιήσιμος X X 16
Έλεγχος Μονοσημαντικότητας Διαδικασία ελέγχου μονοσημαντικότητας ενός κώδικα που δεν είναι στιγμιαία αποκωδικοποιήσιμος. (χωρίς απόδειξη) Sardinas and Patterson Κατασκευάζουμε βήμα-βήμα μία ακολουθία από σύνολα S 0, S 1, S 2,, S n όπως παρακάτω: Το S 0 έχει ως στοιχεία τις αρχικές κωδικές λέξεις. Για την κατασκευή του S 1 συγκρίνουμε όλες τις κωδικές λέξεις μέσα στο S 0. Εάν μια κωδική λέξη είναι πρόθεμα μιας άλλης, τότε το επίθεμα (αυτό που απομένει δηλαδή) της τελευταίας εισάγεται ως στοιχείο στο S 1. Παράδειγμα: x 1 x 2 x 3 x 4 x 5 x 6 x 7 Κώδικας a c ad abb bad deb bbcde Σύνολα S 0 S 1 a c ad abb bad deb bbcde d bb 17
Έλεγχος Μονοσημαντικότητας Για τα υπόλοιπα σύνολα S n, n>1 συγκρίνουμε τα στοιχεία των S 0 και S n-1 και ψαχνουμε για κωδικές λέξεις του ενός συνόλου που είναι πρόθεμα του άλλου. Εάν βρεθούν τέτοιες λέξεις τότε το επίθεμα τοποθετείται ως στοιχείο του S n. Εάν δεν βρεθούν τέτοιες λέξεις τότε το S n είναι το κενό σύνολο και η διαδικασία σταματά. Η διαδικασία σταματά και εάν το S n είναι ίσο με κάποιο από τα προηγούμενα σύνολα. Μετά το πέρας της διαδικασίας γίνεται ο εξής έλεγχος: εάν κανένα από τα S 1, S 2,, S n δεν περιέχει κωδική λέξη που να είναι στοιχείο του S 0 τότε ο κώδικας είναι μονοσήμαντος. Ειδάλλως, δεν είναι. Σύνολα S 0 S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 a d eb de b ad d eb {empty} c ad abb bad deb bbcde bb cde 18
Ασκήσεις Να ελέγξετε εάν οι παρακάτω κώδικες είναι μονοσήμαντοι. x 1 010 a) b) x 2 0001 x 3 x 4 x 5 x 6 x 7 x 8 0110 1100 00011 00110 11110 101011 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 abc abcd e dba bace ceac ceab eabd 19
Μέσο Μήκος Κώδικα Εάν θεωρήσουμε: Πηγή πληροφορίας με Αλφάβητο Χ={x 1,x 2,,x N } και Κατανομή P X ={p 1,p 2,,p N } M-αδικό Κώδικα με Αλφάβητο W={w 1,w 2,,w M } Ότι κάθε σύμβολο της πηγής x i αντιστοιχίζεται σε μία κωδική λέξη u i με μήκος l i Ορίζουμε Μέσο Μήκος Κώδικα: L i N 1 p i l i Εκφράζει το μέσο αριθμό των κωδικών συμβόλων ανά σύμβολο πηγής. Παράδειγμα κώδικα σταθερού μήκους ASCII-7 μέσο μήκος: 7-bit δεν υπολογίζονται οι πιθανότητες εμφάνισης των συμβόλων πηγής σύμβολα με μικρή πιθανότητα εμφάνισης κωδικοποιούνται όπως και τα σύμβολα με μεγάλη πιθανότητα εμφάνισης Δεν είναι η βέλτιστη λύση στην «αθόρυβη κωδικοποίηση» 20
Ασκήσεις Παρακάτω δίνεται πίνακας με 4 κώδικες κωδικοποίησης τεσσάρων συμβόλων πηγής, καθώς και οι πιθανότητες εμφάνισης των συμβόλων. a) Να ταξινομηθούν οι κώδικες. b) Να υπολογιστεί το μέσο μήκος τους. c) Εάν έπρεπε να επιλέξουμε έναν από τους παρακάτω κώδικες ποιος θα ήταν ο βέλτιστος και γιατί? x i p i I II III IV A 0.15 01 011 0 010 B 0.25 11 10 01 101 C 0.35 10 11 011 111 D 0.25 01 00 0111 001 21
Βέλτιστος Κώδικας Είναι ο στιγμιαία αποκωδικοποιήσιμος κώδικας με το μικρότερο μέσο μήκος κώδικα: L * l 1, min l 2 { L} min Ο σχεδιασμός του βέλτιστου κώδικα απαιτεί τον προσδιορισμό των μηκών των κωδικών λέξεων που ελαχιστοποιούν το μέσο μήκος. { N,..., ln l1, l2,..., ln i 1 Αποδεικνύεται ότι τα μήκη των κωδικών λέξεων του βέλτιστου στιγμιαία αποκωδικοποιήσιμου κώδικα είναι ίσα με: p i l i } * li log M ( pi ) 1 Άρα, για δυαδικό κώδικα θα ισχύει: i N L * H( X ) 22
Ασκήσεις Θεωρούμε δυαδική πηγή πληροφορίας με αλφάβητο X={0,1} και κατανομή πιθανοτήτων P X ={0.9,0.1}. Α) Να υπολογιστεί το μέσο μήκος στιγμιαίου αποκωδικοποιήσιμου δυαδικού κώδικα που κωδικοποιεί τα σύμβολα της πηγής (Χ,P X ). 23
Δενδροδιάγραμμα Απόφασης Ένας στιγμιαία αποκωδικοποιήσιμος κώδικας μπορεί να αναπαρασταθεί με ένα δενδροδιάγραμμα. Δενδροδιάγραμμα γράφος με τα εξής στοιχεία: ρίζα κόμβοι ή φύλλα φύλλα όταν ο κόμβος αναπαριστά ένα σύμβολο της πηγής ακμές (κατευθυνόμενες) Παράδειγμα 24
Δενδροδιάγραμμα Απόφασης Χαρακτηριστικά δενδροδιαγράμματος: επίπεδα όσο και το μήκος της μεγαλύτερης κωδικής λέξης (μη συμπεριλαμβανομένου του επιπέδου της ρίζας) λέγεται και ύψος του δένδρου φύλλα όσα και τα σύμβολα της πηγής κατευθυνόμενες ακμές που εκκινούν από κάθε κόμβο όσα και τα κωδικά σύμβολα Σύμβολα πηγής Επίπεδο 3 Επίπεδο 2 Ακμές = Μ Επίπεδο 1 Επίπεδο 0 25
Δενδροδιάγραμμα Απόφασης Το δενδροδιάγραμμα είναι σημαντικό εργαλείο για την γρήγορη αποκωδικοποίηση ενός κωδικού μηνύματος. Διαδικασία αποκωδικοποίησης ενός μηνύματος: 1. Ξεκινάμε από την ρίζα 2. Με την λήψη ενός κωδικού συμβόλου, μεταβαίνουμε στον κόμβο του αμέσως υψηλότερου επιπέδου μέσω της ακμής που αντιστοιχεί στο ληφθέν σύμβολο. 3. Επαναλαμβάνουμε το 2 ο βήμα μέχρι να φθάσουμε σε φύλλο και καταγράφουμε το σύμβολο της πηγής που αντιστοιχεί σε αυτό. 4. Μεταβαίνουμε στην ρίζα του δένδρου και επαναλαμβάνουμε την διαδικασία 26
Δενδροδιάγραμμα Απόφασης Παράδειγμα λήψης του μηνύματος 00110010 27
Άσκηση Έστω ο στιγμιαία αποκωδικοποιήσιμος κώδικας {010,101,111,001} που κωδικοποιεί μία πηγή με αλφάβητο {A,B,C,D}. Να φτιάξετε το δενδροδιάγραμμα. Να αποκωδικοποιηθεί το μήνυμα 001010001010 με τη χρήση του δενδροδιαγράμματος. Έστω ο στιγμιαία αποκωδικοποιήσιμος κώδικας {a,c,d,bb,bad,eb,bcde} που κωδικοποιεί μία πηγή με αλφάβητο {x 1,x 2,x 3,x 4,x 5,x 6,x 7 }. Να φτιάξετε το δενδροδιάγραμμα. Να αποκωδικοποιηθεί το μήνυμα cbbbcdebaddad με τη χρήση του δενδροδιαγράμματος. 28
Οι Ταυτοανισότητες Kraft - McMillan Αναφέρονται στην ύπαρξη ή όχι στιγμιαίου αποκωδικοποιήσιμου κώδικα (Kraft) ή μονοσήμαντου (McMillan) εφόσον γνωρίζουμε τα μήκη l i των κωδικών λέξεων: Υπάρχει στιγμιαία αποκωδικοποιήσιμος Μ-αδικός κώδικας με μήκη κωδικών λέξεων l 1,l 2,,l N, αν και μόνο αν ισχύει η παρακάτω ταυτοανισότητα (ταυτοανισότητα Kraft): i N 1 M l i Το ίδιο θεώρημα ισχύει και για την ύπαρξη μονοσήμαντου κώδικα. (απλά ονομάζεται ταυτοναισότητα McMillan) Προσοχή: το παραπάνω θεώρημα δεν σημαίνει ότι όποιος κώδικας ικανοποιεί την παραπάνω ταυτοανισότητα είναι και στιγμιαία αποκωδικοποιήσιμος ή μονοσήμαντος. 1 29
Οι Ταυτοανισότητες Kraft - McMillan Εάν η ταυτοανισότητα Kraft ισχύει ως ανισότητα τότε ο κώδικας έχει πλεόνασμα (redundancy) Πρακτικά μπορούμε να προσθέσουμε και νέα κωδική λέξη i N 1 M l i 3 4 1 Εάν η ταυτοανισότητα Kraft ισχύει ως ισότητα τότε ο κώδικας θεωρείται ολόκληρος (complete) χωρίς πλεονασμό Πρακτικά δέν μπορούμε να προσθέσουμε και νέα κωδική λέξη i N 1 M l i 1 30
Άσκηση Υπάρχει δυαδικός στιγμιαία αποκωδικοποιήσιμος κώδικας με κωδικές λέξεις μήκους {1,4,3,3,2,3}; Υπάρχει τριαδικός στιγμιαία αποκωδικοποιήσιμος κώδικας με κωδικές λέξεις μήκους {1,2,3,3,2,3}; 31
Ασκήσεις (Past Paper) Έστω οι δυαδικοί κώδικες {0,01,001} και {1,10,100}: α) Να εξετάσετε εάν ισχύει γι αυτούς τους κώδικες η ανισότητα Kraft-McMillan. Τί συμπεράσματα βγάζετε; β) Να εξετάσετε εάν είναι μονοσήμαντοι ή/και στιγμιαία αποκωδικοποιήσιμοι. (Past Paper) Έστω Μ-αδικός ευκρινής κώδικας σταθερού μήκους (k κωδικών λέξεων με μήκος l η κάθε μία) α) Τι πρέπει να προσέξουμε στην κατασκευή της νέας κωδικής λέξης έτσι ώστε ο νέος κώδικας να είναι στιγμιαία αποκωδικοποιήσιμος; β) Σε ποιά περίπτωση δεν μπορεί να κατασκευαστεί στιγμιαία αποκωδικοποιήσιμος κώδικας με τον παραπάνω τρόπο; (Past Paper) Έστω ότι για έναν τριαδικό κώδικα γνωρίζουμε τα μήκη των κωδικών λέξεων που είναι τα εξής {1,2,3,1,2,3,1}. Ο κώδικας αυτός Είναι σίγουρα στιγμιαία αποκωδικοποιήσιμος Σίγουρα δεν είναι στιγμιαία αποκωδικοποιήσιμος Μπορεί ναι, μπορεί και όχι (πρέπει να γνωρίζουμε τις κωδικές λέξεις για να αποφανθούμε) α) να επιλυθεί το παραπάνω ερώτημα για κώδικα με τα εξής μήκη λέξεων {1,2,3,3,2,3} 32