ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΤΕΙ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ. Τμήμα Μηχανικών Πληροφορικής Τ.Ε

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΤΕΙ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ. Τμήμα Μηχανικών Πληροφορικής Τ.Ε"

Transcript

1 ΑΤΕΙ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τμήμα Μηχανικών Πληροφορικής Τ.Ε Ανάπτυξη εργαστηριακών ασκήσεων για το μάθημα Κώδικες και Θεωρία Πληροφορίας ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Μπαμπάνη Ελένη Επιβλέπων : κ. Χαϊκάλης Κωνσταντίνος ΛΑΡΙΣΑ 2014

2 «Δηλώνω υπεύθυνα ότι το παρόν κείμενο αποτελεί προϊόν προσωπικής μελέτης και εργασίας και πως όλες οι πηγές που χρησιμοποιήθηκαν για τη συγγραφή της δηλώνονται σαφώς είτε στις παραπομπές είτε στη βιβλιογραφία. Γνωρίζω πως η λογοκλοπή αποτελεί σοβαρότατο παράπτωμα και είμαι ενήμερος/η για την επέλευση των νομίμων συνεπειών»

3 Εγκρίθηκε από την τριμελή εξεταστική επιτροπή Τόπος: Ημερομηνία: ΕΠΙΤΡΟΠΗ ΑΞΙΟΛΟΓΗΣΗΣ

4 Περίληψη Ο σκοπός της παρούσας πτυχιακής εργασίας είναι η ανάπτυξη εργαστηριακών ασκήσεων για το μάθημα «Κώδικες και θεωρία πληροφορίας». Αρχικά, γίνεται μια συνοπτική αναφορά στις βασικές έννοιες της θεωρίας της πληροφορίας και στην συνέχεια αναπτύσσονται σημαντικές τεχνικές κωδικοποίησης. Στα παρακάτω κεφάλαια περιγράφονται αναλυτικά κωδικοποιήσεις όπως, Hamming, Huffman, ASCII, Lempel-Ziv κ.α., καθώς και παραδείγματα αυτών για την καλύτερη κατανόηση. Τέλος, παρουσιάζονται οι εργαστηριακές ασκήσεις, που χρησιμοποιούνται για τη διεξαγωγή του μαθήματος.

5 Ευχαριστίες Θα ήθελα να ευχαριστήσω αρχικά τον επιβλέποντα εκπαιδευτικό κ. Χαϊκάλη Κωνσταντίνο για την στήριξη και τον πολύτιμο χρόνο που μου διέθεσε. Επίσης θα ήθελα να ευχαριστήσω όλο το εκπαιδευτικό προσωπικό του ΤΕΙ Λάρισας για την πολύτιμη βοήθεια τους. Μπαμπάνη Ελένη Λάρισα, Μάρτιος 2014

6 Περιεχόμενα ΚΕΦΑΛΑΙΟ 1 - Εισαγωγή 1.1 Θεωρία Πληροφορίας Συμπίεση Συμπίεση χωρίς απώλειες Συμπίεση με απώλειες.3 ΚΕΦΑΛΑΙΟ 2 - Κωδικοποίηση Huffman 2.1 Ιστορική αναδρομή Κωδικοποίηση Ιδιότητες βέλτιστου κώδικα Ειδικές περιπτώσεις κώδικα Huffman Μειονεκτήματα Huffman 8 ΚΕΦΑΛΑΙΟ 3 - Κωδικοποίηση ASCII 3.1 Ιστορική αναδρομή Κωδικοποίηση....9 ΚΕΦΑΛΑΙΟ 4 - Κωδικοποίηση Hamming 4.1 Ιστορική αναδρομή Κωδικοποίηση...12 ΚΕΦΑΛΑΙΟ 5 - Lempel-Ziv κώδικες 5.1 Ιστορική αναδρομή Κωδικοποίηση Lempel-Ziv Κωδικοποίηση Lempel-Ziv Κωδικοποίηση Lempel-Ziv Welch.15 ΚΕΦΑΛΑΙΟ 6 - Κωδικοποίηση JPEG 6.1 Ιστορική αναδρομή Πλεονεκτήματα.18

7 6.1.2 Μειονεκτήματα Jpeg χωρίς απώλειες Κανόνες λειτουργίας Αλγόριθμος αποσυμπίεσης Παλμοκωδική διαμόρφωση..23 ΚΕΦΑΛΑΙΟ 7 - Κωδικοποίηση MPEG 7.1 Πρότυπα MPEG MPEG MPEG MPEG ΚΕΦΑΛΑΙΟ 8 - Δυαδικοί γραμμικοί block κώδικες Συνελικτικοί κώδικες 8.1 Περιγραφή Μπλοκ κώδικες Γραμμικοί μπλοκ κώδικες Αποκωδικοποίηση και επίδοση γραμμικών μπλοκ κωδίκων Συνελικτικοί κώδικες Βασικά στοιχεία θεωρίας Συνάρτηση Μεταφοράς Διάγραμμα καταστάσεων Δεντρικό Διάγραμμα Διάγραμμα Trellis. 46 ΣΥΜΠΕΡΆΣΜΑΤΑ 47 ΒΙΒΛΙΟΓΡΑΦΊΑ.48 ΠΑΡΑΡΤΗΜΑ...49

8 Κεφάλαιο 1: Εισαγωγή 1.1 Θεωρία Πληροφορίας Η Συμπίεση(compression) αποτελεί τον ακρογωνιαίο λίθο της επιστήμης, όσον αφορά τη Θεωρία Πληροφοριών (Information Theory). Η θεμελίωση της Θεωρίας Πληροφορίας έγινε από τον Claude Elwood Shannon το 1948 με τη μνημειώδη δημοσίευση : " A Mathematical Theory of Communication ". Η Θεωρία Πληροφορίας απαντά σε δύο ερωτήματα της Θεωρίας Επικοινωνιών (Communication Theory). 1) Ποιός είναι ο μέγιστος βαθμός συμπίεσης δεδομένων που μπορεί να πραγματοποιηθεί και 2) Ποιός είναι ο μέγιστος ρυθμός επικοινωνίας. Η εν λόγω θεωρία του Claude E.Shannon είναι αυτή που σχεδόν άλλαξε όλη την πορεία της σύγχρονης τεχνολογίας και σήμερα θεωρείται ο κεντρικός πυλώνας της τεχνολογίας της πληροφορικής. Ο Shannon ανέπτυξε τη θεωρία του όταν αντιμετώπισε ένα δύσκολο πρόβλημα στην Bell Telephone Laboratories όπου και εργαζόταν. Φανταστείτε ότι κάποιος θέλει να στείλει ένα μακροσκελές μήνυμα αποτελούμενο από '0' και '1' χρησιμοποιώντας ηλεκτρονικούς παλμούς, οι οποίοι μεταδίδονται μέσω μιας τηλεφωνικής γραμμής. Λόγω των αναπόφευκτων διαταραχών που υφίσταται μια τέτοια γραμμή, υπάρχει πιθανότητα ένα ψηφίο '0' να ληφθεί ως '1' και αντίστοιχα ένα ψηφίο '1'' να ληφθεί ως '0'. Δηλαδή, σε μια τέτοια μορφή επικοινωνίας υπάρχουν αναπόφευκτα σφάλματα. Μία τυπική προσέγγιση σ' αυτό το πρόβλημα είναι η επανάληψη του μηνύματος. Για παράδειγμα όταν ένα '0' αποσταλεί τρεις φορές διαδοχικά και το επίπεδο τω διαταραχών στο επικοινωνιακό μέσο δεν είναι υπερβολικό, είναι πιθανό ότι τουλάχιστον δύο από τα τρία '0' θα ληφθούν σωστά. Άρα ο παραλήπτης μπορεί πιθανότατα να συμπεράνει το σωστό μήνυμα, θεωρώντας ως '0' ένα λαμβανόμενο μοτίβο το οποίο αποτελείται από δυο ή τρία '0' επί συνόλου τριών μεταδόσεων. Το ίδιο θα μπορούσε να εφαρμοστεί και με την αναγνώριση των '1'. Ωστόσο, με την μέθοδο αυτή υπάρχει η πιθανότητα σε μια ακολουθία π.χ. των τριών '0' να αλλοιωθούν δύο ή και περισσότερα '0' και να ληφθούν ως '1'. Έτσι λοιπόν, καταλήγουμε στο συμπέρασμα ότι παρόλο που η επανάληψη ενός ψηφίου τρεις φορές μειώνει την πιθανότητα - 1 -

9 σφαλμάτων δεν την μηδενίζει ολοκληρωτικά. Φυσικά, η αξιοπιστία μπορεί να βελτιωθεί ακόμα περισσότερο επαναλαμβάνοντας ένα τέτοιο μήνυμα συμβόλων πολλαπλές φορές. 'Όμως μια τέτοια μορφή επανάληψης έχει τεράστιο κόστος, όσον αφορά το ρυθμό μετάδοσης. Καθώς η αξιοπιστία αυξάνεται από τη μεγαλύτερη επανάληψη, ο ρυθμός μετάδοσης των συμβόλων του μηνύματος μειώνεται. Η έξοχη θεωρία του Shannon, έδειξε ότι για ένα δεδομένο επίπεδο διαταραχών του επικοινωνιακού μέσου, υπάρχει στην πραγματικότητα ένας σχετιζόμενος ρυθμός μετάδοσης, ο οποίος μπορεί να επιτευχθεί με καλή αξιοπιστία. 1.2 Συμπίεση Ως συμπίεση ορίζεται οποιαδήποτε διαδικασία η οποία μειώνει τις απαιτήσεις ενός αρχείου ή μηνύματος, μειώνοντας την ποσότητα των δεδομένων του αλλά χωρίς να υποβαθμίζει σοβαρά την ακεραιότητα του. Η συμπίεση αποτελεί σημαντικό μέρος της σύγχρονης πληροφορικής τεχνολογίας και χρησιμοποιείται ευρέως για τη μείωση του μεγάλου μεγέθους αρχείων κειμένου, μουσικής, γραφικών, βίντεο καθώς και μεγάλων συνόλων δεδομένων. Η συμπίεση κειμένου, ήχου, εικόνας ή βίντεο συμβάλλει στη μείωση του κόστους επικοινωνίας (μέσω της αύξησης της ταχύτητας μετάδοσης ιδίως σε περιπτώσεις πεπερασμένου εύρους ζώνης) και στην αύξηση του αποθηκευτικού χώρου. Ωστόσο, μολονότι η συμπίεση παρουσιάζει αυτά τα πλεονεκτήματα η αποσυμπίεση των δεδομένων μπορεί να αυξήσει δραστικά τον συνολικό απαιτούμενο χρόνο της όλης διεργασίας και ενδέχεται να απαιτεί τη χρήση κάποιου ειδικού hardware όπως στην περίπτωση ειδικής συμπίεσης βίντεο, το οποίο μπορεί να αυξάνει σημαντικά το συνολικό κόστος υλοποίησης. Η συμπίεση μπορεί να χωριστεί σε δύο κατηγορίες : 1) Συμπίεση με απώλειες(lossy) και 2) Συμπίεση χωρίς απώλειες(lossless) Συμπίεση χωρίς απώλειες Η συμπίεση χωρίς απώλειες αποτελείται από ένα σύνολο από αλγορίθμους, οι οποίοι σε κάθε κωδική λέξη αντιστοιχούν μόνο μια αρχική ακολουθία δεδομένων. Άρα χρησιμοποιείται σε περιπτώσεις όπου απαιτείται η διατήρηση της ακριβούς αρχικής μορφής των δεδομένων, όπως για παράδειγμα σε ένα κείμενο, όπου σε περίπτωση αλλοίωσης της δομής θα επερχόταν αλλοίωση του με πιθανή την αδυναμία κατανόησης του. Μπορούμε να συνοψίσουμε τη λογική των προγραμμάτων που χρησιμοποιούν τη συμπίεση χωρίς απώλειες. Αρχικά, δημιουργούμε ένα στατικό μοντέλο από τα δεδομένα

10 Μετά χρησιμοποιούμε αυτό το μοντέλο έτσι ώστε να μετατρέψουμε τα αρχικά μας δεδομένα σε μια ακολουθία δυαδικών ψηφίων(bits),στην οποία τα δεδομένα που συναντώνται πιο συχνά αναπαριστώνται με λιγότερα ψηφία απ' αυτά που συναντώνται λιγότερα συχνά. Δύο από τους δημοφιλέστερους αλγόριθμους είναι η κωδικοποίηση Huffman και η Αριθμητική Κωδικοποίηση. Οι αλγόριθμοι συμπίεσης χωρίς απώλειες εξαρτώνται από την κατανομή της πηγής για το αν θα μπορέσουν να συμπιεστούν όλα τα δεδομένα εισόδου. Ανάλογα με το είδος των δεδομένων η συμπίεση χωρίς απώλειες μπορεί να χωριστεί σε συμπίεση κειμένου, ήχου, εικόνας ή βίντεο Συμπίεση με απώλειες Η συμπίεση με απώλειες αποτελεί μια μέθοδο η οποία μολονότι χάνει μέρος της πληροφορίας κατά τη διάρκεια της συμπίεσης, τελικά παρουσιάζει παρόμοια δεδομένα με τα αρχικά. Χρησιμοποιείται κυρίως σε πολυμεσικά δεδομένα(ήχος, εικόνα, βίντεο),με εφαρμογές όπως είναι τα διαρκώς μεταδιδόμενα βίντεο και η διαδικτυακή τηλεφωνία. Μάλιστα επειδή τα σήματα ομιλίας και οι εικόνες είναι αναλογικά από την φύση τους έχουμε αναπόφευκτες απώλειες. Επειδή το αναλογικό σήμα εμπεριέχει άπειρη πληροφορία δημιουργείται θόρυβος κβαντισμού. Για να ανταπεξέρθουμε σε αυτή τη δυσκολία δειγματοληπτούμε το σήμα με συγκεκριμένη ακρίβεια, ώστε η απεικόνιση του σήματος να είναι όσο το δυνατόν πιο ακριβής. Επομένως, κατά τη συμπίεση η αναπαραγωγή είναι αρκετά καλή εφόσον ο θόρυβος κβάντισης βρίσκεται κάτω από κάποια συγκεκριμένα επίπεδα κατωφλίου, τα οποία ορίζουμε ως τα όρια της παραμόρφωσης που μπορούμε να ανεχτούμε. Το βασικό πλεονέκτημα της συμπίεσης με απώλειες είναι ότι παράγει μικρότερα αποτελέσματα απ'ότι η συμπίεση χωρίς απώλειες. Γενικά, χρησιμοποιούνται δυο είδη συμπίεσης με απώλειες: Πρώτον, οι κώδικες μετατροπής με απώλειες που παίρνουν μικρά δείγματα εικόνας ή ήχου, τους αλλάζουν μορφή, τα κβαντίζουν και τα κωδικοποιούν και δεύτερον, οι κώδικες πρόβλεψης με απώλειες οι οποίοι χρησιμοποιούν προηγούμενα ή επόμενα αποκωδικοποιημένα δεδομένα για να προβλέψουν τα συγκεκριμένα και αφού τα βρουν καταγράφουν τη διαφορά τους με ότι άλλο απαιτείται, τα κβαντίζουν και τα κωδικοποιούν. Τέλος, γίνεται να χρησιμοποιηθεί και ο συνδυασμός των δύο μεθόδων (για παράδειγμα MPEG). Η συμπίεση εικόνας με απώλειες εμπεριέχει ένα συμβιβασμό μεταξύ μεγαλύτερου ποσοστού συμπίεσης και χειρότερης ποιότητας εικόνας. Ο βαθμός της συμπίεσης επαφίεται στις απαιτήσεις του χρήστη. Οι κυριότερες μέθοδοι που - 3 -

11 χρησιμοποιούνται είναι: 1) Η μείωση του χώρου για όλα τα χρώματα με τη χρήση μόνο των βασικών, 2) Κωδικοποίηση μετασχηματισμού, 3) Συμπίεση κλασματομορφών και κυρίως υποδειγματοληψία του χρώματος. Ανάμεσα στους κυριότερους αλγόριθμους που χρησιμοποιούνται είναι και οι αλγόριθμοι της κατηγορίας JPEG. Παραδείγματα συμπιεσμένων εικόνων Αυθεντική εικόνα (lossless PNG 60.1 KB) - ασυμπίεστη 108.5KB Χαμηλή συμπίεση (84% λιγότερη πληροφορία από ασυμπίεστο PNG)JPEG 9.37 KB Υψηλή συμπίεση (98% λιγότερη πληροφορία από ασυμπίεστο PNG) JPEG 1.14 KB - 4 -

12 Στη συμπίεση βίντεο βασιζόμαστε στην υπόθεση, ότι όλα τα ασυμπίεστα δεδομένα δεν είναι αναγκαία για μία ικανοποιητική ποιότητα αντίληψης. Δύο είναι τα κυριότερα μοντέλα συμπίεσης:1)η διαπλαισιακή (interframe) συμπίεση και 2) η ενδοπλαισιακή (intraframe) συμπίεση. Στην πρώτη περίπτωση χρησιμοποιούμε τα macroblocks, δηλαδή τετραγωνικά πλαίσια ομάδων γειτονικών πλαισίων. Σε αυτά ελέγχουμε τις διαφορές από πλαίσιο (frame) σε πλαίσιο και καταχωρούμε τις διαφορές του πλαισίου ελέγχου σε σχέση με το προηγούμενο. Εάν, οι διαφορές δεν είναι μεγάλες και δεν απαιτείται μοντάρισμα του βίντεο η ποιότητα της συμπίεσης είναι καλή. Στη δεύτερη περίπτωση που είναι στην ουσία συμπίεση εικόνας, κωδικοποιούμε μόνο ανά πλαίσιο. Έτσι διευκολύνεται η μεταφορά δεδομένων από πλαίσιο σε πλαίσιο και το μοντάρισμα όλου του βίντεο. Μεταξύ των άλλων κύριων μεθόδων συμπίεσης βίντεο είναι και η MPEG. [1,4,5,10] - 5 -

13 Κεφάλαιο 2: Κωδικοποίηση Huffman 2.1 Ιστορική αναδρομή Η κωδικοποίηση Huffman επιτελείται με έναν αλγόριθμο μεταβλητού μήκους που χρησιμοποιείται για την συμπίεση δεδομένων χωρίς απώλειες. Προτάθηκε στη δημοσίευση του David A. Huffman " A method for the construction of Minimum-Redundancy Code" το 1952.Ο Huffman το 1951 ήταν φοιτητής στο MIT και παρακολουθούσε το μάθημα Θεωρία Πληροφορίας με καθηγητή τον Robert Fano. Ο καθηγητής έδωσε στους σπουδαστές τη δυνατότητα είτε να δώσουν την τελική εξέταση είτε να παρουσιάσουν μια εξαμηνιαία εργασία σχετικά με την πιο αποτελεσματική απεικόνιση αριθμών, γραμμάτων και άλλων συμβόλων με τη χρήση δυαδικού κώδικα. Μάλιστα οι φοιτητές δεν γνώριζαν ότι ο Fano και ο Shannon προσπαθούσαν ανεπιτυχώς να βρουν τη βέλτιστη απεικόνιση. Μετά από πολλούς μήνες ατελέσφορης προσπάθειας και ενώ ο Huffman έριχνε τις σημειώσεις του στα σκουπίδια, είχε την επιφοίτηση που τον ανύψωσε για πάντα στο Πάνθεον της επιστήμης με την υλοποίηση κώδικα Huffman. 2.2 Κωδικοποίηση Δοθέντος ενός αριθμού συμβόλων πηγής και των πιθανοτήτων τους, η διαδικασία Huffman παράγει έναν κώδικα με μέσο μήκος L, όσο το δυνατόν πιο κοντά στην εντροπία της πηγής H. Το αποτέλεσμα της διαδικασίας δεν είναι πάντα μοναδικό, διότι μπορεί να υπάρχουν αρκετοί κώδικες με το ίδιο ελάχιστο μέσο μήκος. Σήμερα, η κωδικοποίηση Huffman αποτελεί τη βάση πολλών μεθόδων συμπίεσης. Η κεντρική ιδέα του αλγορίθμου κωδικοποίησης Huffman για δυαδικούς κώδικες είναι ότι ξεκινάμε μ' έναν μικρό αριθμό συμβόλων και δουλεύουμε αυξητικά. Είναι εύκολο να κωδικοποιήσουμε μια πηγή με δύο σύμβολα, ανεξάρτητα από τις αντίστοιχες πιθανότητες τους. Οι δύο κωδικές λέξεις πρέπει απλώς να είναι '0' και '1' δίνοντας μέσο μήκος ίσο με 1. Δεν υπάρχει καλύτερος κώδικας. Για τρία σύμβολα η κατάσταση είναι ελαφρώς πολυπλοκότερη, αλλά ο βέλτιστος τρόπος για να προχωρήσει κανείς είναι να συνδυάσει προσωρινά τα δύο σύμβολα με τις μικρότερες πιθανότητες σ' ένα μεμονωμένο σύνθετο σύμβολο με πιθανότητα ίση με το άθροισμα των μεμονωμένων συμβόλων. Αυτό το σύνθετο - 6 -

14 σύμβολο μαζί με το εναπομείναν σύμβολο ορίζουν μια νέα πηγή δύο συμβόλων, η οποία κωδικοποιείται εύκολα. Κατόπιν, το σύνθετο σύμβολο διαχωρίζεται στα συστατικά του και κωδικοποιείται προσαρτώντας τα 0 και 1 αντίστοιχα στον κωδικό χαρακτήρα που έχει ήδη αντιστοιχιστεί στο σύνθετο σύμβολο. Άρα, εάν το σύνθετο σύμβολο είναι το 0, οι τελικές τρεις κωδικές λέξεις θα είναι : 00, 01, 1. Γενικά, όταν υπάρχει κάποιος αριθμός m συμβόλων, αυτά μειώνονται σχηματίζοντας σύνθετα σύμβολα με επαναληπτικό τρόπο, μέχρι να παραμείνουν μόνο δύο σύμβολα. Στη συνέχεια η κωδικοποίηση εκτελείται ακολουθιακά με κατεύθυνση προς τα πίσω διαχωρίζοντας τα σύνθετα σύμβολα και προσθέτοντας κωδικούς χαρακτήρες, συνήθως δύο τη φορά. Αφού διαχωριστούν όλα τα σύνθετα σύμβολα το αποτέλεσμα είναι τα αρχικά σύμβολα της πηγής μαζί με τις αντιστοιχισμένες κωδικές λέξεις. 2.3 Ιδιότητες βέλτιστου κώδικα Στην παράγραφο αυτή θα αναφερθούμε σε κάποιες ιδιότητες βέλτιστων κωδίκων γι να δείξουμε ότι ο κώδικας Huffman είναι βέλτιστος. Αρχικά, αναφέρουμε ότι σε μικρά μήκη λέξεων αντιστοιχεί μεγαλύτερη πιθανότητα συμβόλου (p1>= p2 >= p3 >=...>= pn και l1<=l2<=l3<=...<=ln ). Επίσης, οι δύο μεγαλύτερες λέξεις έχουν το ίδιο μέγεθος και διαφέρουν μόνο στο τελευταίο δυαδικό ψηφίο. Κατά συνέπεια αντιστοιχούν στα δύο λιγότερα πιθανά σύμβολα. Αν υπάρχει μόνο μια κωδική λέξη με μέγιστο μήκος κωδικής λέξης l και ο κώδικας ήταν άμεσος θα μπορούσαμε να αφαιρέσουμε το τελευταίο ψηφίο από την κωδική λέξη. Ο κώδικας με μέγιστο μήκος l-1 θα ήταν επίσης προθεματικός. Άρα θα ήταν δυνατόν να μειώσουμε το μήκος του κώδικα χωρίς να χάσουμε πληροφορία. Επομένως, οι δύο μεγαλύτερες σε μήκος κωδικές λέξεις πρέπει να έχουν το ίδιο μήκος. Αφού θα έχουν το ίδιο μήκος και για να μην έχουμε κενά κλαδιά στο δέντρο (βέλτιστος κώδικας) θα διαφέρουν κατά το τελευταίο ψηφίο. 2.4 Ειδικές περιπτώσεις κώδικα Huffman Υπάρχουν δύο πολύ σημαντικές παρατηρήσεις που μπορεί να γίνουν αναφορικά με τον αλγόριθμο Huffman. Αρχικά, παρατηρούμε ότι η διαδικασία της κωδικοποίησης δεν είναι μοναδική από διάφορες οπτικές γωνίες. Μια τέτοια οπτική είναι το ότι η ανάθεση των 0 και 1 είναι εντελώς αυθαίρετη. Βέβαια, η διαφοροποίηση είναι ασήμαντη. Επίσης, εφόσον δυο πιθανότητες είναι ίσες είναι αδιάφορο ποιό θα βρίσκεται πάνω από το άλλο κατά την κωδικοποίηση με απόρροια να έχουμε κατά πάσα πιθανότητα διαφορετικά μήκη λέξεων. Η - 7 -

15 άλλη παρατήρηση που κάνουμε είναι ότι εφόσον οι συχνότητες των συμβόλων είναι ίδιες και υπάρχουν ακριβώς q= 2 m σύμβολα που παράγει η πηγή, τότε η κωδικοποίηση Huffman μετατρέπεται σε κώδικα μπλόκ με κωδικές λέξεις μήκους m. 2.5 Μειονεκτήματα Huffman Η κωδικοποίηση Huffman αντιμετωπίζει τα ακόλουθα προβλήματα: Αρχικά, εφόσον δεν γνωρίζουμε την κατανομή της πυκνότητας πιθανότητας των συμβόλων της πηγής ή η κατανομή δεν είναι ιδανικά κατανεμημένη ή ανεξάρτητη τότε δεν μπορούμε να υλοποιήσουμε την κωδικοποίηση. Επίσης, εάν γίνει λάθος στην κατανομή τότε οι κωδικές λέξεις έχουν διαφορετικά μη βέλτιστα και μεγαλύτερα μήκη κατά μέσο όρο. Παράλληλα, ο αλγόριθμος είναι ιδιαίτερα ανελαστικός σε αλλαγές. Δηλαδή, όταν το κείμενο μεταβάλλεται δεν μπορούμε να αλλάξουμε άμεσα τις συχνότητες εμφάνισης των συμβόλων και η εξ αρχής μέτρηση τους δεν είναι βέλτιστη. Λύση στο παραπάνω πρόβλημα δίνει ο προσαρμοστικός Huffman. Επιπροσθέτως, το επιπλέον bit που βρίσκεται στο όριο μήκους των κωδικών λέξεων (H(x)<=L(C,x)<=H(x)+1 με L(C,x) το μήκος των κωδικών λέξεων και H(x) την εντροπία) αποτελεί απαγορευτική παράμετρο σε πολλές εφαρμογές. Επίσης, δεν εκμεταλλευόμαστε τα συμφραζόμενα που σε περιπτώσεις όπως της υψηλής συχνότητας εμφάνισης του u μετά από το q σε σχέση με το qe, άρα χάνουμε πληροφορία. Το παραπάνω πρόβλημα αντιμετωπίζεται με τη χρήση ομάδων συμβόλων ως δομικού στοιχείου του αλγορίθμου Huffman. Ένα επιπλέον πρόβλημα είναι η υποχρέωση αποστολής του πίνακα των συχνοτήτων του κειμένου μαζί με το κωδικοποιημένο αρχείο αυξάνοντας έτσι το συνολικό μέγεθος. Τέλος, σημειώνεται ότι σε περιπτώσεις που υπάρχουν πιθανότητες συμβόλων διάφορες της αρνητικής δύναμης του δύο, δεν έχουμε βέλτιστη κωδικοποίηση και ότι εάν ένα σύμβολο έχει μεγαλύτερη πιθανότητα εμφάνισης από 0,5 τότε το πάνω όριο της αναποτελεσματικότητας του Huffman είναι απεριόριστο. [1,5,10] - 8 -

16 Κεφάλαιο 3: Κωδικοποίηση ASCII 3.1 Ιστορική Αναδρομή Ο Κώδικας ASCII(American Standard Code for Information Interchange), Αμερικανικός Πρότυπος Κώδικας για Ανταλλαγή Πληροφοριών είναι ένα κωδικοποιημένο σύνολο χαρακτήρων του λατινικού αλφαβήτου. Χρησιμοποιείται για την αναπαράσταση κειμένου στους υπολογιστές, σε συσκευές τηλεπικοινωνίας, καθώς και σε άλλες συσκευές που δουλεύουν με κείμενο. Οι περισσότερες σύγχρονες κωδικοποιήσεις χαρακτήρων βασίζονται στον ASCII. Ιστορικά, ο ASCII αναπτύχθηκε από τηλεγραφικούς κώδικες. Η πρώτη εμπορική χρήση του ως κώδικας ενός τηλέτυπου επτά bit της Bell. Η δουλειά για τον ASCII ξεκίνησε επίσημα στις 6 Οκτωβρίου 1940, με την πρώτη συνάντηση της επιτροπής Χ3.2 του Αμερικανικού Οργανισμού Ταυτοποίησης(American Standard Association,ASA). Η πρώτη έκδοση δημοσιεύτηκε το 1963 και έγινε μια αναθεώρηση το Η πλέον πρόσφατη ενημέρωση έγινε το Σε σύγκριση με τους παλιότερους τηλεγραφικούς κώδικες ο προτεινόμενος κώδικας της Bell και ο ASCII ήταν διατεταγμένοι για πιο άνετη ταξινόμηση καταλόγων, ενώ είχαν χαρακτηριστικά και για άλλες συσκευές έκτος από τηλέτυπα. Ο ASCII περιλαμβάνει ορισμούς για 128 χαρακτήρες.33 είναι μη εκτυπώσιμοι χαρακτήρες ελέγχου που επηρεάζουν το πως γίνεται η επεξεργασία του κειμένου και των κενών και 94 είναι εκτυπώσιμοι χαρακτήρες και το κενό που θεωρείται αόρατο γραφικό. 3.2 Κωδικοποίηση Η υποεπιτροπή Χ3.2 σχεδίασε τον ASCII με βάση παλιότερα συστήματα κωδικοποίησης τηλετύπων. Όπως και άλλες κωδικοποιήσεις χαρακτήρων, ο ASCII καθορίζει μια αντιστοιχία μεταξύ ψηφιακών μοτίβων και σύμβολα χαρακτήρων(γραφήματα και χαρακτήρες ελέγχου). Αυτό επιτρέπει σε ψηφιακές συσκευές να επικοινωνούν μεταξύ τους και να επεξεργάζονται, να αποθηκεύουν και να μεταδίδουν πληροφορίες σχετικά με χαρακτήρες. Πριν την ανάπτυξη του ASCII οι κωδικοποιήσεις που ήταν σε χρήση περιλάμβαναν 26 αλφαβητικούς χαρακτήρες, 10 αριθμητικά ψηφία και 11 έως 25 ειδικά γραφικά σύμβολα. Για να συμπεριληφθούν όλα αυτά, καθώς και οι χαρακτήρες ελέγχου - 9 -

17 συμβατοί της Comite Consultatif International Telephonique et Telegraphique το Fieldata και το πρώιμο ABCDIC απαιτούνται πάνω από 64 κωδικοί για τον ASCII. Η επιτροπή συζήτησε την πιθανότητα λειτουργίας πλήκτρου αλλαγής, η οποία θα επέτρεπε παραπάνω από 64 κωδικούς να αναπαρασταθούν με 6 bit. Σε ένα κωδικό με Shift κάποιοι κωδικοί χαρακτήρων καθορίζουν την επιλογή για τους επόμενους κωδικούς χαρακτήρων. Αυτό επιτρέπει την συμπαγή κωδικοποίηση, αλλά είναι λιγότερο αξιόπιστο για τη μετάδοση δεδομένων. Η επιτροπή τυποποίησης αποφάσισε κατά του Shift κι έτσι για τον ASCII απαιτείται κωδικοποίηση τουλάχιστον 7 bits. Ο ASCII χρησιμοποιήθηκε πρώτη φορά εμπορικά το 1963 ως κωδικοποίηση 7 bit για το δίκτυο TWX(Teletype Wide-area exchange) της American Telephone & Telegraph. Ο Μπόμπ Μπέμερ εισήγαγε χαρακτηριστικά όπως η ακολουθία διαφυγής. Ο Βρετανός συνάδελφός του Χιού Μακγκρέγκορ Ρος βοήθησε στη διάδοση αυτού έργου. Ο Μπέμερ ονομάστηκε δικαίως ως ο πατέρας του ASCII. [1,5]

18 Κεφάλαιο 4: Κωδικοποίηση Hamming 4.1 Ιστορική Αναδρομή Σύμφωνα με τη "Θεωρία της Πληροφορίας" έχει αποδειχτεί ότι είναι εφικτή η αξιόπιστη μετάδοση πληροφορίας με τον ελάχιστο απαιτούμενο αριθμό πλεοναζόντων δυαδικών ψηφίων(redundancy). Αρχικά, είχε γίνει αποδεκτό ότι για την έγκυρη μετάδοση της πληροφορίας, έπρεπε να ενσωματωθούν στο προς αποστολή μήνυμα τα ψηφία ισοτιμίας με καθορισμένο τρόπο, δηλαδή 1 ψηφίο ισοτιμίας για κάθε ψηφίο του μηνύματος. Στη συνέχεια όμως παρατηρήθηκε ότι η συγκεκριμένη μέθοδος η οποία είχε προταθεί από τους θεμελιωτές της θεωρίας των κωδίκων, απλά ανιχνεύει τα σφάλματα και δεν προέβαινε στη διόρθωση αυτών. Η μόνη οδός για σωστά για σωστό ανασχηματισμό του μηνύματος σε αυτή την περίπτωση, ήταν η εκ νέου μετάδοση του τμήματος εκείνου της πληροφορίας που περιείχε σφάλματα από την πηγή πληροφορίας. Η επανάληψη της αποστολής όμως κοστίζει τόσο σε χρόνο, όσο και σε πόρους καθώς απαιτείται δίαυλος ανάδρασης, γεγονός που καθιστά τη συγκεκριμένη μέθοδο μη πρακτική. Η έρευνα πέρασε στα χέρια του διακεκριμένου επιστήμονα της εποχής Richard Hamming το 1950, ο οποίος είναι γνωστός πάνω στους κώδικες Hamming για τη διόρθωση λαθών και για την έννοια της απόστασης Hamming. Τα δεδομένα στα ψηφιακά συστήματα συνήθως αποθηκεύονται, εκπέμπονται και επεξεργάζονται σε δυαδική μορφή ως ομάδες από bits. Αν ένα εκ των bit είναι λάθος το μήνυμα διαστρεβλώνεται ή ο υπολογισμός αποτυγχάνει. Ο Hamming ανέλαβε να κάνει τον ίδιο τον υπολογιστή να εντοπίζει και να διορθώνει τα μεμονωμένα λάθη. Η προσέγγιση του αυτή εντάσσεται στην γενίκευση του ελέγχου ισοτιμίας. Υποθέτουμε ότι έχουμε ένα σύνολο(block) από n bits και προσθέτουμε ένα επιπλέον bit ώστε να γίνουν n+1τα bits με σκοπό ολόκληρο το μήνυμα να έχει άρτιο πλήθος άσσων μέσα του. Αυτό ονομάζεται έλεγχος άρτιας ισοτιμίας. Εξετάζοντας το μήνυμα ο αποδέκτης του, αν δεν υπάρχει άρτιο πλήθος άσσων στο μήνυμα βγάζει το συμπέρασμα ότι πρέπει να υπάρχει περιττό πλήθος λαθών στο μήνυμα. Αν τα λάθη στα bits συμβαίνουν ανεξάρτητα κι αν το

19 μήνυμα είναι μικρό και ο αριθμός λαθών περιορισμένος, τότε η πιθανότητα περιλαμβάνει μόνο ένα λάθος αλλά δεν γνωρίζουμε ποιο είναι λανθασμένο. Οι κώδικες Hamming χρησιμοποιούν πολλαπλούς ελέγχους ισοτιμίας προκειμένου να προσδιορίσουν και να διορθώσουν λάθη του ενός bit. Κάθε έλεγχος είναι ένα άθροισμα ορισμένων bits σε επιλεγμένες θέσεις. Στην απλούστερη περίπτωση λέξεις μηνύματος μήκους 2 r r-1,όπου r ακέραιος, πρόκειται να σταλούν μαζί με r bits ελέγχου, ώστε κάθε κωδική λέξη να περιλαμβάνει 2 r -1 bits. Οι θέσεις στην κωδική λέξη αριθμούνται από αριστερά προς τα δεξιά. Το πρώτο bit ελέγχου είναι στη θέση 1 και είναι ένας έλεγχος ισοτιμίας για τις θέσεις που έχουν το 1 ως λιγότερο σημαντικό bit της δυαδικής τους αναπαράστασης (θέσεις 1,3,5,7, ). Το δεύτερο bit ελέγχου είναι στη θέση 2 και είναι ένας έλεγχος ισοτιμίας για τις θέσεις που έχουν το 1 στο δεύτερο λιγότερο σημαντικό bit της δυαδικής αναπαράστασης (θέσεις 2,3,6,7, ). Το τρίτο bit ελέγχου είναι στη θέση 3 και είναι ένας έλεγχος ισοτιμίας για τις θέσεις που έχουν το 1 στο τρίτο λιγότερο σημαντικό bit της δυαδικής αναπαράστασης (θέσεις 4,5,6,7,12, ) κ.ο.κ. Αν κανένας έλεγχος ισοτιμίας δεν αποτύχει, τότε ο κώδικας θεωρείται σωστός. Αν ένα bit κωδική λέξη είναι λάθος, το λάθος βρίσκεται στην θέση που η δυαδική αναπαράσταση ισούται με το πρότυπο του αποτυχημένου ελέγχου ισοτιμίας. 4.2 Κωδικοποίηση Ο παρακάτω πίνακας δείχνει τον κώδικα για r=3. Η πρώτη, δεύτερη και τέταρτη στήλη είναι οι θέσεις 1,2 και 4 κάθε κωδικής λέξης. Οι τιμές τους μπορούν να υπολογιστούν από τα υπόλοιπα bits του μηνύματος που αναπαριστούν τους αριθμούς από το 1 έως και το 15 στο δυαδικό σύστημα αρίθμησης H= Ο πίνακας ελέγχου ισοτιμίας H χρησιμοποιείται ως εξής : Έστω r ένα δυαδικό διάνυσμα μήκους 7 που αναπαριστά κάθε λαμβανόμενη λέξη, όχι απαραίτητα μια κωδική λέξη. Χρησιμοποιώντας αριθμητική Boolean υπολογίζουμε το

20 S = H * r T, όπου S είναι ένα δυαδικό διάνυσμα μήκους 3. Αν το S=0 τότε το r είναι μια κωδική λέξη. Οι κώδικες Hamming μπορούν να ερμηνευτούν και γεωμετρικά, Ορίζουμε την απόσταση Hamming ανάμεσα σε δύο κωδικές λέξεις ως προς τον αριθμό των θέσεων που διαφέρουν οι δύο κωδικές λέξεις. Η μικρότερη απόσταση Hamming μεταξύ των κωδικών λέξεων στον πίνακα παραπάνω είναι 3. Εφόσον, ένα μεμονωμένο λάθος μετακινεί μια ληφθείσα λέξη σε απόσταση 1 από την σωστή λέξη, μεμονωμένα λάθη μπορούν χωρίς αμφιβολία να διορθωθούν αλλάζοντας την ληφθείσα λέξη στην κοντινότερη κωδική λέξη. Επιπλέον, οι κώδικες Hamming είναι τέλειοι από την σκοπιά ότι κάθε ληφθείσα λέξη απέχει το πολύ απόσταση 1 από μια κωδική λέξη. Είναι εύκολο να πιστοποιήσουμε ότι ο αριθμός των κωδικών λέξεων επί τον αριθμό των λέξεων που δεν απέχουν μεγαλύτερη απόσταση από 1 από μία κωδική λέξη ισούται με τον συνολικό αριθμό δυνατών λέξεων. Αυτό σημαίνει ότι όταν κάθε τύπος ελέγχου αποτυγχάνει, στην πραγματικότητα έχουμε παραπάνω από ένα λάθος στη λέξη που έχει εκπεμφθεί. Ο Hamming θεωρούσε ότι ένας κώδικας με ελάχιστη απόσταση Hamming μήκους 2t+1, όπου t οποιοσδήποτε ακέραιος μπορούσε να διορθώσει και να εντοπίσει t λάθη αλλά δεν μπορούσε να διορθώσει t+1 λάθη. Μπορούμε εν συντομία να πούμε ότι οι κώδικες Hamming σχετίζονται με μικρές οικογένειες κωδικών διόρθωσης πολλαπλών λαθών. Γενικά, ένας γραμμικός κώδικας διόρθωσης λαθών μπορεί να χαρακτηριστεί από μια διατεταγμένη τριάδα αριθμών (n,k,d), όπου είναι ο αριθμός των συμβόλων στις κωδικές λέξεις, k ο αριθμός των συμβόλων στις λέξεις του μηνύματος και d η μικρότερη απόσταση. [1,4,7]

21 Κεφάλαιο 5: Lempel-Ziv κώδικες 5.1 Ιστορική αναδρομή Η έξυπνη και καινοτόμος μέθοδος που δημοσίευσαν οι Jacob Ziv και Abraham Lempel το 1977 και 1978 αποτέλεσε ένα σημαντικό βήμα προόδου στον τομέα της συμπίεσης. Η μέθοδος του 1977 βασίζεται στο γεγονός ότι οι ακολουθίες γραμμάτων σε αγγλικά κείμενα δεν είναι απολύτως τυχαίες αλλά εμφανίζουν μοτίβα επανάληψης. Αυτά τα μοτίβα σχηματίζουν λέξεις ή ακόμα και φράσεις. Ουσιαστικά, η μέθοδος Lempel-Ziv κατασκευάζει ένα λεξικό αυτών των κοινών μοτίβων. Στην πρώτη εξέταση, η μέθοδος δείχνει ότι είναι απλώς ένας έξυπνος τρόπος για την αξιοποίηση των μοτίβων επανάληψης. Στην πράξη αποδεικνύεται αρκετά ισχυρή και έχει βαθιά θεωρητικά θεμέλια. Με τη μέθοδο Lempel-Ziv, ο αποστολέας και ο παραλήπτης διατηρούν την καταγραφή του κειμένου που έχει ήδη μεταδοθεί. Κατά την προετοιμασία για την αποστολή επιπλέον κειμένου, ο αποστολέας εξετάζει το ήδη απεσταλμένο κείμενο για να βρει ένα μέγιστου μήκους διπλότυπο(δηλαδή μια επανάληψη) αυτού που θέλει να στείλει στη συνέχεια. Έτσι, στέλνεται απλώς μια αναφορά προς το προηγούμενο διπλότυπο της συμβολοσειράς αντί για την ίδια την συμβολοσειρά. Οι δύο αυτοί αλγόριθμοι LZ77 και LZ78 δημιουργήθηκαν για να αντικαταστήσουν φράσεις που έχουν εμφανιστεί ήδη σο κείμενο με ένα δείκτη που δείχνει στην προηγούμενη θέση του κειμένου όπου είχαν εμφανιστεί. 5.2 Lempel-Ziv 1977 Το 1977 οι Ziv και Lempel πρότειναν μια μέθοδο συμπίεσης χωρίς απώλειες η οποία αντικαθιστά τις φράσεις στη ροή των δεδομένων με αναφορά στην προηγούμενη εμφάνιση της φράσης. Ο αλγόριθμος LZ77 δημοσιεύτηκε το 1977 και αποτελεί την πρώτη μορφή της οικογένειας Lempel-Ziv. Είναι γνωστός και ως συμπίεση κυλιόμενου παράθυρου (sliding window compression). Ο λόγος είναι ότι οι δείκτες του αναζητούν φράσεις από ένα σταθερό παράθυρο μεγέθους, συνήθως 2, 4 ή 32 ΚΒ. Το παράθυρο χρησιμοποιείται τόσο για τον κωδικοποιητή όσο και τον αποκωδικοποιητή. Περιέχει Ν χαρακτήρες από τους οποίους N-F έχουν ήδη αποκωδικοποιηθεί, ενώ οι υπόλοιποι F αποτελούν απομονωτική στοίβα μέλλοντος

22 (lookahead buffer). Για να κωδικοποιήσουμε τον επόμενο χαρακτήρα ο δείκτης αναζητά στα πρώτα Ν-F σύμβολα, μία αντιστοίχιση συμβόλων με αυτά της απομονωτικής στοίβας. Εάν υπάρξει αντιστοίχιση κωδικοποιούμε την ακολουθία συμβόλων στη μορφή <i,j,a> όπου i είναι η απόσταση από τη στοίβα του ταιριάσματος μέγιστου μήκους, j είναι το μήκος του ταιριάσματος και a είναι ο πρώτος χαρακτήρας που δεν ταιριάζει με την υποακολουθία αλφαριθμητικών χαρακτήρων στο παράθυρο. Έπειτα, μετακινούμε το παράθυρο κατά j+1 θέσεις και συνεχίζουμε την κωδικοποίηση. Η αποκωδικοποίηση γίνεται ιδιαίτερα εύκολα με χρήση του ίδιου παράθυρου, ώστε να αντιλαμβάνεται ο αποκωδικοποιητής σε ποιες φράσεις αναφέρεται ο κωδικοποιητής με την τριάδα <i,j,a>. 5.3 Lempel-Ziv 78 Ο αλγόριθμος LZ78 δημιουργήθηκε το Σε αντίθεση με τον LZ77 ο οποίος αντιστοιχίζει δείκτες σε προηγούμενους χρησιμοποιημένους αλφαριθμητικούς χαρακτήρες, ο LZ78 διαχωρίζει το κείμενο σε φράσεις έτσι ώστε η κάθε νέα φράση να είναι η πιο σύντομη που δεν έχει εμφανιστεί έως εκείνο το σημείο στο κείμενο. Δηλαδή, ο LZ78 ελέγχει στην απομονωτική του στοίβα για άγνωστες λέξεις ως προς το λεξικό του έως εκείνη τη στιγμή και, όταν βρει μία, τοποθετεί τη μέχρι τότε υπάρχουσα μαζί με τον επιπλέον χαρακτήρα στο λεξικό. Αυτή η διαδικασία επαναλαμβάνεται μέχρι την επεξεργασία όλων των φράσεων. Επειδή δε χρησιμοποιείται παράθυρο, δεν υπάρχει περιορισμός μέχρι πόσο πίσω μπορεί να φτάσει η αναζήτηση και ο αριθμός των φράσεων του λεξικού αυξάνεται δραστικά με τα δεδομένα 5.4 Lempel-Ziv-Welch (LZW) Ο αλγόριθμος συμπίεσης δεδομένων Lempel-Ziv-Welch (LZW) δημιουργήθηκε από τους ομώνυμους ερευνητές Abraham Lempel, Jacob Ziv και Terry Welch και προσφέρει συμπίεση χωρίς απώλεια δεδομένων. Παρουσιάστηκε από τον Terry Welch το 1984 σαν μια βελτιωμένη έκδοση τους αλγόριθμου LZ78 που είχε παρουσιαστεί από τους Abraham Lempel, Jacob Ziv το Ο αλγόριθμος σχεδιάστηκε για να είναι εύκολος στην υλοποίηση αλλά δεν είναι εξίσου αποτελεσματικός σε κάθε είδους εισόδου καθώς δεν ασχολείται πολύ με την ανάλυση της εισόδου που κωδικοποιεί. Είναι πάρα πολύ αποτελεσματικός σε μεγάλες ακολουθίες ίδιων δεδομένων Η ιδέα πίσω από τον αλγόριθμο LZW βρίσκεται στην αξιοποίηση του φαινόμενου της επανάληψης από ίδιες ακολουθίες δεδομένων μέσα στην ροή

23 των δεδομένων. Επειδή τα raster δεδομένα των εικόνων και κυρίως των γραφικών πολλές φορές έχουν ακολουθίες που επαναλαμβάνονται η χρήση του LZW αλγόριθμου έχει πολύ καλά αποτελέσματα σε αυτές. Ο αλγόριθμος κατά την κωδικοποίηση χρησιμοποιεί ένα λεξικό για την αποκωδικοποίηση και κωδικοποίηση των δεδομένων το οποίο όμως δεν είναι ανάγκη να αποθηκεύσουμε μαζί με τα συμπιεσμένα δεδομένα καθώς δημιουργείται δυναμικά κατά τη διάρκεια των διαδικασιών της κωδικοποίησης και αποκωδικοποίησης. [1,3,5,10]

24 Κεφάλαιο 6: Κωδικοποίηση JPEG 6.1 Ιστορική αναδρομή Το JPEG είναι ένας τυποποιημένος μηχανισμός συμπίεσης εικόνας, που δημιουργήθηκε από την ομάδα (Joint Photographic Experts Group) από την οποία έχει πάρει το όνομα του. Το JPEG είναι κατασκευασμένο για την συμπίεση είτε εγχρώμων είτε ασπρόμαυρων εικόνων και δουλεύει πολύ καλά σε φωτογραφίες, εικόνες φυσικής τέχνης και παρόμοια είδη αλλά όχι τόσο καλά σε γραφή και απλά ή γραμμικά σχέδια. Είναι μια μέθοδος που έχει απώλειες κατά την συμπίεση της εικόνας, δηλαδή η αποσυμπιεσμένη εικόνα δεν είναι ακριβώς η ίδια με αυτή που είχαμε πριν τη συμπίεση. Παρόλα αυτά λόγω των περιορισμών της ανθρώπινης όρασης, κυρίως του ότι μια μικρή αλλαγή στα χρώματα γίνεται λιγότερο αντιληπτή από μια αντίστοιχη αλλαγή στην φωτεινότητα, οι διαφορές δεν γίνονται αντιληπτές με γυμνό μάτι. όμως αν μας ενδιαφέρει η λεπτομέρεια στα χρώματα, κυρίως στην περίπτωση που η αποσυμπιεσμένη εικόνα θα περάσει από μηχανήματα ανάλυσης εικόνας τότε η μέθοδος συμπίεσης JPEG δεν είναι συνιστώμενη. Το γεγονός ότι έχουμε απώλειες δεν πρέπει να μας κάνει να νομίζουμε ότι η μέθοδος συμπίεσης JPEG μειονεκτεί σε σχέση με άλλες, αφού δεν υπάρχει πρότυπο ψηφιακής εικόνας που να διατηρεί όλες τις ορατές πληροφορίες, ενώ σε σχέση με την GIF συμπίεση, η JPEG χάνει πολύ λιγότερες πληροφορίες. Μια ενδιαφέρουσα ιδιότητα της μεθόδου JPEG είναι ότι το ποσοστό απωλειών μπορεί να ρυθμιστεί παραμετρικά κατά την συμπίεση. Αυτό σημαίνει ότι ανάλογα με τις απαιτήσεις μας μπορούμε να «ανταλλάξουμε» την ποιότητα της εικόνας με το μέγεθος του αρχείου που την περιέχει. Έτσι, μπορούμε να δημιουργήσουμε πολύ μικρά αρχεία με τις εικόνες που θα χρησιμεύουν ως δείκτες για το τι περιέχουν τα αντίστοιχα αρχεία μεγάλου μεγέθους (και υψηλής ποιότητας) των εικόνων αυτών. Η χρήση της παραπάνω μεθόδου βρίσκει εφαρμογή σε ιστοσελίδες. Μια άλλη ενδιαφέρουσα ιδιότητα του JPEG είναι ότι οι αποκωδικοποιητές μπορούν να μειώσουν την ποιότητα της εικόνας σε αντάλλαγμα με την ταχύτητα αποκωδικοποίησης. Με

25 αυτό το τρόπο μερικοί επισκέπτες πετυχαίνουν σημαντικές ταχύτητες προβολής εικόνων JPEG. Το JPEG ορίζει έναν αλγόριθμο με απώλειες, με κατ επιλογή επεκτάσεις για βαθμιαία και ιεραρχική κωδικοποίηση. Επίσης υπάρχει και ένας τρόπος συμπίεσης χωρίς απώλειες που όμως δίνει συμπίεση μόνο κατά 50%, δηλαδή 12 bits ανά έγχρωμο pixel σε 24- bit εικόνα Πλεονεκτήματα χρήσης JPEG Η χρήση της μεθόδου συμπίεσης JPEG έχει τα εξής πλεονεκτήματα : 1 Τα αρχεία των συμπιεσμένων εικόνων μπορούν να γίνουν πολύ μικρά σε μέγεθος και έτσι γίνεται γρήγορη η μετάδοση τους μέσα από δίκτυα, όπως επίσης γίνεται πραγματοποιήσιμη η περιληπτική αρχειοθέτηση σε βιβλιοθήκες εικόνων. Μια μέση συμπίεση μετατρέπει μια έγχρωμη εικόνα μεγέθους 2 ΜΒ σε ένα αρχείο 100 ΚΒ δηλαδή συμπίεση 20 προς 1, ενώ η αντίστοιχη μέθοδος GIF προσφέρει συμπίεση της τάξεως του 5 προς Το JPEG αποθηκεύει την εικόνα σε 24 bits ανά pixel (σε 16 εκατομμύρια χρώματα), την στιγμή που η μέθοδος GIF μπορεί να αποθηκεύει μόνο σε 8 bits ανά pixel (σε 256 ή λιγότερα χρώματα 3. Τέλος, η ανταλλαγή των αρχείων JPEG μεταξύ χρηστών με διαφορετικό hardware είναι πιο εύκολη από την αντίστοιχη με GIF γιατί δεν προδικάζει πόσα χρώματα θα χρησιμοποιήσει και έτσι τα αρχεία αυτά είναι περισσότερο κατάλληλα για χρήση μέσω World Wide Web Μειονεκτήματα χρήσης JPEG Το αντίτιμο σε αυτά τα πλεονεκτήματα του JPEG είναι ότι χρειάζεται περισσότερος χρόνος για να γίνει η αποκωδικοποίηση και η προβολή σε σχέση με τις άλλες μεθόδους. Όταν όμως πρόκειται να παρεμβληθούν δικτυακές ή τηλεφωνικές μεταδόσεις, τότε το κέρδος που έχουμε στην σχέση χρόνου μετάδοσης αρχείου / χρόνου αποσυμπίεσης εικόνας είναι μεγάλο. Ένα άλλο πρόβλημα που θα μπορούσε να εμφανιστεί σε κάποιον χρήστη είναι η έλλειψη υποστήριξης του προτύπου JPEG από τον viewer που διαθέτει, οπότε πρέπει να κάνει μετατροπή σε άλλο πρότυπο για την προβολή της εικόνας, γεγονός που ισοδυναμεί με

26 περισσότερο χρόνο στη χρήση του JPEG. Με την εξάπλωση όμως του προτύπου αυτού και την ύπαρξη τόσων JPEG viewers, σήμερα αυτό το πρόβλημα τείνει να εξαλειφθεί. Τέλος, ένα γενικότερο μειονέκτημα της συμπίεσης με απώλειες παρουσιάζεται όταν κάνουμε επανειλημμένες συμπιέσεις και αποσυμπιέσεις μίας εικόνας JPEG Χωρίς Απώλειες Υπάρχει μεγάλη σύγχυση σ αυτό το θέμα για την ύπαρξη μιας τέτοιας μορφής συμπίεσης JPEG. Το στάνταρτ JPEG περιλαμβάνει έναν αλγόριθμο συμπίεσης που είναι πραγματικά χωρίς απώλειες, δηλαδή έναν αλγόριθμο που εξασφαλίζει ότι το αποτέλεσμα της αποσυμπίεσης του είναι ψηφίο προς ψηφίο ίδιο με την αρχική είσοδο. Ωστόσο, αυτός ο αλγόριθμος δεν έχει σχεδόν τίποτα κοινό με τον απλό (αλλά με απώλειες) JPEG αλγόριθμο, και προσφέρει πολύ μικρότερη συμπίεση. Ο βαθμός συμπίεσης που προσφέρει το JPEG χωρίς απώλειες είναι 2:1. Δουλεύει καλά μόνο για εικόνες με συνεχή τόνο χρώματος ενώ σε εικόνες που χρησιμοποιούν χρώματα παλέτας και σε εικόνες με μικρό βάθος χρώματος, η συμπίεση που παρέχει δεν είναι χρήσιμη. Υπάρχουν πολύ λίγες υλοποιήσεις του πραγματικά χωρίς απώλειες JPEG. Mια απ αυτές είναι το RVPG Η μέθοδος αυτή λοιπόν, αποτελεί ανεξάρτητο λογισμικό από το βασικό JPEG, δεν χρησιμοποιεί ΔΣΜ, αφού η χρήση του ΔΣΜ λόγω των σφαλμάτων στρογγυλοποίησης δημιουργεί απώλειες. Για τον ίδιο λόγο δεν θα πρέπει να χρησιμοποιείται μετατροπή χρωματικής περιοχής ή δειγματοληψία, αν και αυτές οι λειτουργίες επιτρέπονται από το πρότυπο αυτό. Η μέθοδος συμπίεσης χωρίς απώλειες κωδικοποιεί την διαφορά μεταξύ της τιμής του κάθε pixel και της αναμενόμενης τιμής για το pixel αυτό. Η αναμενόμενη τιμή είναι μια συνάρτηση των ήδη γνωστών pixels που βρίσκονται πάνω και αριστερά από το παρόν και έχουν ήδη μεταδοθεί. Ως συνάρτηση μπορεί να χρησιμοποιηθεί ο μέσος όρος ή άλλες 8 συναρτήσεις που προσφέρονται από το ίδιο το πρόγραμμα. Η ακολουθία των διαφορών αυτών κωδικοποιείται με χρήση του ίδιου κώδικα που χρησιμοποιήσαμε στο JPEG με απώλειες (δηλαδή του Huffman ή τον αριθμητικό). Αν ρυθμίσουμε ένα απλό JPEG στη μέγιστη δυνατή ποιότητα δε σημαίνει ότι θα αποθηκευτούν τα δεδομένα χωρίς απώλειες. Το JPEG χωρίς απώλειες είναι μια τελείως διαφορετική μέθοδος. Ακόμα και στην καλύτερη δυνατή ποιότητα, το απλό JPEG δεν μπορεί να είναι χωρίς απώλειες γιατί έχουμε λάθη από στρογγυλοποιήσεις στους διάφορους

27 υπολογισμούς. Τα λάθη αυτά είναι σχεδόν πάντα πολύ μικρά για να γίνουν εμφανή, αλλά θα εμφανιστούν αν υποβάλλουμε την εικόνα σε πολλούς κύκλους συμπίεσης. Το JPEG χωρίς απώλειες με την χρήση κώδικα Huffman δεν έχει τα καλύτερα αποτελέσματα που θα μπορούσαμε να περιμένουμε, ενώ ο αριθμητικός κώδικας είναι πιο ανταγωνιστικός αλλά και πάλι όχι η καλύτερη λύση για συμπίεση χωρίς απώλειες. Ο κυριότερος λόγος που υπάρχει η μέθοδος JPEG χωρίς απώλειες είναι γιατί στην ιεραρχική μέθοδο το τελευταίο πέρασμα μπορεί να είναι μια κωδικοποίηση χωρίς απώλειες των υπολειπόμενων διαφορών, ώστε να επιτευχθεί ολική ακρίβεια. Ακόμα όμως και τότε δεν είναι σίγουρο ότι δεν θα έχουμε απώλειες αφού πρέπει ο κωδικοποιητής και ο αποκωδικοποιητής να έχουν παρόμοιο σφάλμα στρογγυλοποίησης. Εξάλλου, πολλές υλοποιήσεις του JPEG δεν επιτρέπουν να χρησιμοποιηθεί με τη μέγιστη ρύθμιση ποιότητας, αφού θεωρείτε πολύ παράδοξο να χρησιμοποιείτε μ αυτόν τον τρόπο το JPEG. Αν πραγματικά χρειαζόμαστε μία αποθήκευση χωρίς καθόλου απώλειες, δεν προσπαθούμε ποτέ να την πετύχουμε με χρήση του απλού JPEG. 6.2 Κανόνες Λειτουργίας του Αλγόριθμου Υπάρχουν 5 βασικοί κανόνες για τη σωστή λειτουργία του αλγορίθμου συμπίεσης JPEG οι οποίοι είναι οι εξής : Κανόνας 1. Τροποποιούμε την εικόνα σε ένα κατάλληλο έγχρωμο χώρο. Για τις έγχρωμες εικόνες, το πιο συνηθισμένο είναι να θέλουμε να μετατρέψουμε από RGB (Red, Green, Blue) σε ένα χώρο που να υποστηρίζει φωτεινότητα και χρωματισμό, όπως οι YUV, YCbCR κ.α. Η συνιστώσα της φωτεινότητας ορίζεται από το επίπεδο του γκρίζου που δίνεται στην εικόνα (μαύρο = σκοτεινό, άσπρο = φωτεινό) ενώ οι άλλοι άξονες είναι πληροφορίες για το χρώμα. Ο λόγος που γίνεται αυτό είναι ότι μας ενδιαφέρει περισσότερο να έχουμε πιστή απεικόνιση της φωτεινότητας παρά των χρωματικών αποχρώσεων, αφού όπως έχουμε αναφέρει, το ανθρώπινο μάτι είναι περισσότερο ευαίσθητο σε υψηλής συχνότητας φωτισμό παρά σε υψηλής συχνότητας χρωματισμό. Ο έγχρωμος χώρος μπορεί να μην χρειαστεί αλλαγή, αφού ο αλγόριθμος δουλεύει σε κάθε χρωματικό συστατικό ξεχωριστά και δεν τον ενδιαφέρει το είδος των δεδομένων. Παρόλα αυτά ο βαθμός συμπίεσης θα είναι μικρότερος αφού θα πρέπει να κωδικοποιηθούν όλα τα συστατικά σε υψηλή ποιότητα φωτισμού

28 Μια επιπλέον παρατήρηση είναι ότι η τροποποίηση του έγχρωμου χώρου παρουσιάζει μεν απώλειες λόγω του σφάλματος στρογγυλοποίησης αλλά το μέγεθος τους είναι σημαντικά μικρότερο από το αντίστοιχο που προκαλείται από την συνέχεια του αλγόριθμου, οπότε μπορεί να θεωρηθεί αμελητέο. Δειγματολειπτούμε κάθε συστατικό ομαδοποιώντας pixels. Το συστατικό της φωτεινότητας παραμένει σε πλήρη ανάλυση ενώ τα χρωματικά συστατικά συνήθως μειώνονται κατά το μισό οριζόντια και κατά το μισό ή στην καλύτερη περίπτωση καθόλου κατά τον κατακόρυφο άξονα. Ανάλογα με την μείωση του κατακόρυφου άξονα έχουμε τις εξής ονομασίες δειγματοληψίας : 2h2v (ή 411 ) και 2h1v (ή 422 ). Αυτό το βήμα μειώνει το μέγεθος των δεδομένων κατά το 1/3, γεγονός που σημαίνει ότι χαρακτηρίζεται από μεγάλες απώλειες, παρόλα αυτά δεν παρατηρείται καμία μείωση της ποιότητας της εικόνας λόγω της αδυναμίας του ανθρώπινου ματιού να διακρίνει τις αλλαγές που έχουν συμβεί στο χρωματικό μέρος της εικόνας. Η παραπάνω διαδικασία δεν γίνεται στις ασπρόμαυρες εικόνες ή σε αυτές με διαβαθμίσεις του γκρίζου και αυτός είναι ο λόγος που οι έγχρωμες εικόνες μπορούν να συμπιεστούν περισσότερο από αυτές. Κανόνας 2. Ομαδοποιούμε τις τιμές των pixels για κάθε συστατικό σε ομάδες των 8x8. Επεξεργαζόμαστε κάθε ομάδα με χρήση Διακριτού Συνημιτονοειδούς Μετασχηματισμού (ΔΣΜ), ο οποίος είναι συγγενής του μετασχηματισμού Fourier και έτσι παίρνουμε ένα χάρτη συχνοτήτων με στοιχεία ομάδες 8x8=64 στοιχείων. Με αυτό τον τρόπο έχουμε αριθμούς που αναπαριστούν την μέση τιμή σε κάθε ομάδα και επομένως, τις αλλαγές υψηλής συχνότητας στην ομάδα αυτή. Ο λόγος που το κάνουμε αυτό είναι για να μπορούμε να «πετάξουμε» τις πληροφορίες υψηλής συχνότητας, χωρίς να επηρεαστούν οι αντίστοιχες πληροφορίες χαμηλής συχνότητας. Τέλος, είναι χρήσιμο να γνωρίζουμε ότι ο μετασχηματισμός ΔΣΜ είναι αντιστρέψιμος με μόνη απώλεια το σφάλμα στρογγύλευσης. Κανόνας 3. Σε κάθε ομάδα, χωρίζουμε κάθε ένα από τα 64 στοιχεία με μια ξεχωριστή συντεταγμένη κβαντοποίησης και στρογγυλοποιούμε τα αποτελέσματα σε ακεραίους. Εδώ γίνεται η βασική απώλεια πληροφορίας, ενώ όσο μεγαλύτερες επίπεδα κβαντοποίησης έχουμε, τόσο περισσότερη ποσότητα πληροφορίας χάνουμε. Ακόμα και αν ορίσουμε ως επίπεδο κβαντοποίησης το μικρότερο ακέραιο, δηλαδή το 1, θα χάνουμε ακόμα πληροφορίες γιατί τα αποτελέσματα που θα παίρνουμε από τον ΔΣΜ δεν θα είναι απαραίτητα ακέραιοι. Οι υψηλότερες συχνότητες κβαντοποιούνται πάντα με λιγότερη ακρίβεια (δηλαδή με μεγαλύτερα επίπεδα) από τις χαμηλές συχνότητες, αφού οι πρώτες είναι λιγότερο ορατές στο μάτι. Επίσης, τα δεδομένα για την φωτεινότητα κβαντοποιούνται ακριβέστερα από τα

29 αντίστοιχα για το χρώμα, κάνοντας χρήση ξεχωριστών πινάκων κβαντοποίησης των 64 στοιχείων. Η ρύθμιση των πινάκων αυτών δεν έχει καθοριστεί ακόμα με ποιο τρόπο μπορεί να γίνει καλύτερα και αποτελεί ενεργό χώρο έρευνας. Οι περισσότεροι υπάρχοντες κωδικοποιητές χρησιμοποιούν απλή γραμμική κλιμάκωση των πινάκων που δίνονται ως παράδειγμα στο δεδομένο JPEG, ζητώντας από τον χρήστη μια ρύθμιση της ποιότητας για να αποφασίσει την πολλαπλασιαστική σταθερά της κλιμάκωσης. Αυτή η μέθοδος βρίσκει αρκετά καλή εφαρμογή για μεσαίες ποιότητες (δηλαδή αυτές που βρίσκονται κοντά στις δεδομένες τιμές των πινάκων-παραδειγμάτων που δίνονται) αλλά δεν προτείνονται για υψηλές ή χαμηλές ρυθμίσεις ποιότητας. Κανόνας 4. Κωδικοποιούμε τις μειωμένες συντεταγμένες χρησιμοποιώντας κυρίως την μέθοδο Huffman και σπανιότερα την αριθμητική κωδικοποίηση. Αυτό το βήμα είναι χωρίς απώλειες οπότε δεν επηρεάζει την ποιότητα της εικόνας. Η αριθμητική κωδικοποίηση χρησιμοποιεί τον κώδικα Q. Έτσι η κωδικοποίηση με Huffman χρησιμοποιείται πιο συχνά για την αποφυγή πληρωμών για άδεια χρήσης του κώδικα Q. Η αριθμητική μέθοδος προσφέρει έτσι και αλλιώς μόλις 5% - 10% καλύτερη συμπίεση, ποσοστό που δεν είναι αρκετό για να προτιμηθεί από ένα ελεύθερο και δωρεάν τρόπο κωδικοποίησης. Κανόνας 5. Σε ένα JPEG αρχείο, όλες οι παράμετροι της συμπίεσης συμπεριλαμβάνονται στη κεφαλή του αρχείου ώστε ο αποσυμπιεστής να μπορεί να αντιστρέψει την διαδικασία. Αυτοί οι παράμετροι περιέχουν τους πίνακες κβαντοποίησης και τους πίνακες κωδικοποίησης Huffman. Όμως οι πίνακες αυτοί είναι δεδομένοι και για τις πιο πολλές εφαρμογές δεν χρειάζεται να περιέχονται σε κάθε αρχείο εικόνας JPEG, οπότε μπορούμε να τους αφαιρέσουμε, τροποποιώντας την κεφαλή του αρχείου και σώζοντας έτσι αρκετές εκατοντάδες bytes. Η βασική προϋπόθεση για να γίνει αυτό είναι να γνωρίζει ο αποσυμπιεστής από πριν τους πίνακες που χρησιμοποίησε ο συμπιεστής και γι αυτό το βήμα αυτό είναι καλό να εφαρμόζεται μόνο όταν δουλεύουμε σε κλειστό σύστημα Αλγόριθμος Αποσυμπίεσης JPEG Ο αλγόριθμος αποσυμπίεσης αντιστρέφει την διαδικασία : Ο αποσυμπιεστής πολλαπλασιάζει τις μειωμένες συντεταγμένες που βρίσκονται στον πίνακα κβαντοποίησης για να δημιουργήσει προσεγγιστικά τις συντεταγμένες του διακριτού Συνημιτονοειδούς μετασχηματισμού. Αφού όμως αυτές είναι μόνο προσεγγίσεις, οι επανακατασκευασμένες τιμές των pixels θα είναι και αυτές προσεγγιστικές, αλλά παρόλα αυτά τα σφάλματα αυτά δεν θα είναι ορατά για το ανθρώπινο μάτι. Εκτός αυτού, εάν ο αποσυμπιεστής είναι υψηλού

30 επιπέδου, τότε θα προσθέσει από μόνος του μερικά βήματα για ομαλοποίηση, ώστε να μειωθούν οι ασυνέχειες μεταξύ των γειτονικών pixels. 6.3 Παλμοκωδική διαμόρφωση Η παλμοκωδική διαμόρφωση γνωστή ως PCM εφευρέθηκε το 1937 από τον Alec Reeves για την ψηφιακή αναπαράσταση ενός αναλογικού σήματος. Οι σημαντικότερες λειτουργίες του πομπού ενός συστήματος PCM είναι η δειγματοληψία (sampling), η κβαντοποίηση (quantizing), και η κωδικοποίηση (encoding). Οι λειτουργίες κβαντοποίησης και κωδικοποίησης, συνήθως εκτελούνται με το ίδιο κύκλωμα, το οποίο ονομάζεται μετατροπέας αναλογικού σε ψηφιακό (analog - to - digital converter). Δειγματοληψία Έστω το σήμα m(t), περιορισμένου εύρους ζώνης το οποίο δειγματοληπτείται κάθε Τ sec όπου Τ<=1/2f m και f m η μέγιστη συχνότητά του. Το σήμα m(t) είναι δυνατόν να ανακτηθεί από τις τιμές των δειγμάτων του m(nt s ), όπου n=ακέραιος και Τ s o ρυθμός δειγματοληψίας, χωρίς παραμόρφωση αρκεί ο χρόνος δειγματοληψίας T s να είναι αρκετά γρήγορος ώστε τουλάχιστον δύο δείγματα να λαμβάνονται στην περίοδο που αντιστοιχεί στη μέγιστη συχνότητα του σήματος. Κατά την διαδικασία της δειγματοληψίας, λαμβάνονται δείγματα της εισερχόμενης κυματομορφής πληροφορίας με μια ακολουθία στενών ορθογώνιων παλμών. Για να εξασφαλιστεί η τέλεια ανακατασκευή της πληροφορίας στο δέκτη, ο ρυθμός της δειγματοληψίας πρέπει να είναι μεγαλύτερος από το διπλάσιο της υψηλότερης συνιστώσας συχνότητας W της κυματομορφής πληροφορίας. Στην πράξη, πριν να εισάγουμε το σήμα στο δειγματολήπτη χρησιμοποιείται ένα βαθυπερατό φίλτρο έτσι ώστε να απορρίπτονται συχνότητες μεγαλύτερες από W πριν από την δειγματοληψία. Παράδειγμα δειγματοληψίας: Στην περίπτωση κατά την οποία θέλουμε να μεταδώσουμε σήμα ομιλίας, είναι αρκετό το εύρος συχνοτήτων Hz. Επομένως χρησιμοποιούμε ένα βαθυπερατό φίλτρο το οποίο επιτρέπει τη διέλευση των συχνοτήτων στο φάσμα Hz ενώ αποκόπτει τις υπόλοιπες συχνότητες. Η μέγιστη συχνότητα του σήματος πληροφορίας θα είναι f max = 4000Hz. Σύμφωνα με το θεώρημα δειγματοληψίας θα έχουμε όλη την πληροφορία που περιέχει το

31 φάσμα μιας συνδιάλεξης αν μεταδώσουμε από το φάσμα αυτό τουλάχιστο 8000 δείγματα ανά sec, η αλλιώς η συχνότητα δειγματοληψίας θα πρέπει να είναι ίση με 8000Hz. Κβαντισμός Ένα συνεχές σήμα, όπως η φωνή, έχει συνεχές πεδίο τιμών πλάτους και συνεπώς τα δείγματά του έχουν συνεχές πεδίο τιμών πλάτους. Με άλλα λόγια μέσα στο πεπερασμένο πεδίο τιμών του σήματος βρίσκουμε έναν άπειρο αριθμό σταθμών πλάτους. Στην πραγματικότητα όμως δεν είναι απαραίτητο να μεταδίδουμε τα ακριβή πλάτη των δειγμάτων. Οποιαδήποτε ανθρώπινη αίσθηση (π.χ. το αυτί, το μάτι), σαν τελικός δέκτης, μπορεί να ανιχνεύσει πεπερασμένες διαφορές έντασης. Αυτό σημαίνει ότι το αρχικό συνεχές σήμα μπορεί να προσεγγιστεί από ένα σήμα το οποίο κατασκευάζεται από διακριτά πλάτη, επιλεγμένα από ένα διαθέσιμο σύνολο με βάση την ελαχιστοποίηση του σφάλματος. Η ύπαρξη ενός πεπερασμένου αριθμού διακριτών σταθμών πλάτους είναι μια βασική συνθήκη της PCM. Προφανώς εάν καθορίσουμε διακριτές στάθμες πλάτους με αρκετά μικρό βήμα μεταξύ τους, μπορούμε να κάνουμε το προσεγγιζόμενο σήμα να μη ξεχωρίζει πρακτικά από το αρχικό συνεχές σήμα. Η μετατροπή ενός αναλογικού (συνεχούς) δείγματος του σήματος σε μια ψηφιακή (διακριτή) μορφή καλείται ως η διαδικασία της κβαντοποίησης (quantizing). Γραφικά, η διαδικασία κβαντοποίησης σημαίνει ότι μια ευθεία γραμμή που παριστάνει τη σχέση μεταξύ της εισόδου και της εξόδου ενός γραμμικού συνεχούς συστήματος αντικαθίσταται από μια κλιμακωτή (staicase). Η διαφορά μεταξύ των δύο γειτονικών διακριτών τιμών ονομάζεται κβάντο (quantum) ή μέγεθος βήματος (step - size). Τα σήματα που εφαρμόζονται σε έναν κβαντιστή (quantizer), ταξινομούνται σε στάθμες πλάτους (βήματα) και όλα τα σήματα εισόδου τα οποία βρίσκονται στο συν ή πλην μισό ενός κβάντου της μεσαίας τιμής μιας στάθμης, αντικαθίστανται στην έξοδο από την υπόψη μεσαία τιμή. Οι διαφορές μεταξύ του αναλογικού σήματος στην είσοδο με το κβαντισμένο σήμα στην έξοδο ονομάζεται σφάλμα κβαντισμού (quantizing error) ή θόρυβος κβάντισης. Είναι φανερό ότι η μέγιστη στιγμιαία τιμή αυτού του σφάλματος είναι το μισό ενός κβάντου και το συνολικό εύρος της μεταβολής είναι από -μισό έως +μισό βήμα. Επίσης μπορεί να αποδειχθεί ότι η μέση τιμή του σφάλματος κβάντισης δίνεται από τη σχέση : <q e 2 > = δ 2/

32 όπου δ είναι το μέγεθος του κβάντου. Η έξοδος του κβαντιστή μπορεί αναλυτικά να εκφραστεί στη μορφή Ηi δ όπου ±Ηi=0, 1, 2...κ.α. Στην πιο απλή περίπτωση το δ είναι κανονικοποιημένο στην τιμή 1. Ένας κβαντιστής που έχει αυτή τη σχέση εισόδου - εξόδου καλείται τύπου μέσου πατήματος (mid - tread), επειδή η αρχή των αξόνων βρίσκεται στο μέσο ενός οριζόντιου τμήματος του σκαλοπατιού στο κλιμακωτό γράφημα. Ένας άλλος τρόπος σχεδίασης του κβαντιστή, είναι να ορίσουμε την έξοδό του στη μορφή Ηi δ/2 όπου Hi=1, 3, 5... Αυτός ο κβαντιστής ονομάζεται τύπου μέσης ανύψωσης (mid - rizer), επειδή στην περίπτωση αυτή η αρχή των αξόνων βρίσκεται στο μέσο ενός κατακόρυφου τμήματος της κλιμακωτής σχέσης εισόδου - εξόδου. Η διαδικασία κβαντοποίησης, όπως την περιγράψαμε πιο πάνω, χρησιμοποιεί ομοιόμορφη απόσταση μεταξύ των επιπέδων κβαντισμού. Σε κάποιες εφαρμογές, ωστόσο, είναι προτιμότερο να χρησιμοποιηθεί μεταβλητή απόσταση μεταξύ των επιπέδων κβαντισμού. Για παράδειγμα, η περιοχή των τάσεων που καλύπτονται από σήματα φωνής, από τα μέγιστα δυνατής φωνής μέχρι τα ασθενή διαστήματα της χαμηλής είναι της τάξης 1000 έως 1. Χρησιμοποιώντας έναν μη ομοιόμορφο κβαντιστή (nonuniform quantizer) με το χαρακτηριστικό ότι το μέγεθος του βήματος αυξάνει, καθώς η απόσταση από την αρχή των αξόνων της χαρακτηριστικής πλάτους εισόδου - εξόδου αυξάνει, το τελευταίο μεγάλο βήμα του κβαντιστή μπορεί να συμπεριλάβει όλες τις πιθανές περιπλανήσεις του σήματος φωνής στις μεγάλες στάθμες πλάτους, οι οποίες συμβαίνουν σχετικά σπάνια. Με άλλα λόγια, τα ασθενή διαστήματα, που χρειάζονται περισσότερη προστασία, προτιμούνται σε βάρος των ισχυρών διαστημάτων. Κατ ' αυτό τον τρόπο επιτυγχάνεται μια ποσοστιαία ομοιόμορφη ακρίβεια στο μεγαλύτερο τμήμα του πεδίου τιμών του σήματος εισόδου, με αποτέλεσμα να απαιτούνται λιγότερα βήματα από ότι στη περίπτωση που θα χρησιμοποιούνταν ομοιόμορφος κβαντιστής. Η χρήση ενός μη ομοιόμορφου κβαντιστή είναι ισοδύναμη με τη διέλευση του σήματος βασικής ζώνης μέσω ενός συμπιεστή (compressor) και στη συνέχεια την εφαρμογή του συμπιεσμένου σήματος σε ομοιόμορφο κβαντιστή. Για να επαναφέρουμε τα δείγματα του σήματος στην αντίστοιχη σωστή στάθμη πρέπει να χρησιμοποιήσουμε μια διάταξη στο δέκτη με χαρακτηριστική συμπληρωματικής εκείνης του συμπιεστή. Μια τέτοια διάταξη ονομάζεται αποσυμπιεστής (expander). Στην ιδανική περίπτωση, οι νόμοι συμπίεσης και αποσυμπίεσης είναι ακριβώς αντίστροφοι έτσι ώστε εκτός από την επίδραση της κβαντοποίησης η έξοδος του αποσυμπιεστή να είναι ίση με

33 την είσοδο του συμπιεστή. Ο συνδυασμός ενός συμπιεστή και ενός αποσυμπιεστή ονομάζεται συμπιεστής - αποσυμπιεστής (compander). Σε πραγματικά συστήματα PCM, τα κυκλώματα συμπίεσης - αποσυμπίεσης δεν αναπαράγουν ένα ακριβές αντίγραφο των γραμμικών καμπυλών συμπίεσης. Μάλλον, παράγουν μια τμηματικά γραμμική (piecewise linear) προσέγγιση της επιθυμητής καμπύλης. Χρησιμοποιώντας έναν αρκετά μεγάλο αριθμό γραμμικών τμημάτων, η προσέγγιση μπορεί να πλησιάσει αρκετά την αληθινή καμπύλη συμπίεσης. Κωδικοποίηση Συνδυάζοντας τις διαδικασίες δειγματοληψίας και κβαντοποίησης, ένα συνεχές σήμα βασικής ζώνης περιορίζεται σε ένα διακριτό σύνολο τιμών, αλλά όχι σε μορφή που να ταιριάζει καλά σε μετάδοση μέσω μίας γραμμής ή ενός ραδιοδιαύλου. Για να εκμεταλλευτούμε τα πλεονεκτήματα δειγματοληψίας και κβαντοποίησης απαιτείται η χρησιμοποίησης μίας διαδικασίας κωδικοποίησης (encoding process) για τη μετατροπή του διακριτού συνόλου των τιμών των δειγμάτων σε μια πιο κατάλληλη μορφή. Κάθε σχέδιο για την αναπαράσταση καθενός από αυτά τα διακριτά σύνολα τιμών σαν μια ιδιαίτερη διάταξη διακριτών γεγονότων ονομάζεται κώδικας (code). Ένα από τα διακριτά γεγονότα σε ένα κώδικα ονομάζεται στοιχείο του κώδικα (code element) ή σύμβολο (symbol). Για παράδειγμα η παρουσία ή η απουσία ενός παλμού είναι ένα σύμβολο. Μια ιδιαίτερη διάταξη συμβόλων, που χρησιμοποιείται σε ένα κώδικα, για την παράσταση μίας μόνο τιμής του διακριτού συνόλου ονομάζεται κωδική λέξη (codeword) ή χαρακτήρας (character). Σε ένα δυαδικό κώδικα (binary code) κάθε σύμβολο μπορεί να πάρει μια από δύο διακριτές τιμές ή είδη, όπως η παρουσία ή η απουσία ενός παλμού. Τα δύο σύμβολα ενός δυαδικού κώδικα συνήθως συμβολίζονται με 0 και 1. Σε ένα τριαδικό κώδικα (ternary code), κάθε σύμβολο μπορεί να είναι μια από τρεις διακριτές τιμές ή είδη, και πάει λέγοντας για τους άλλους κώδικες. Ωστόσο, τα καλύτερα αποτελέσματα σε σχέση με την επίδραση του θορύβου σε ένα μέσο μετάδοσης, επιτυγχάνεται χρησιμοποιώντας δυαδικό κώδικα και αυτό επειδή ένα δυαδικό σύμβολο αντέχει μια σχετικά υψηλή στάθμη θορύβου και είναι εύκολο να αναγεννηθεί. Οι ουσιώδεις λειτουργίες του δέκτη είναι η αναγέννηση (regenaration) των εξασθενισμένων σημάτων, η αποκωδικοποίηση (decoding) και η αποδιαμόρφωση (demodulation) της ακολουθίας των κβαντισμένων σημάτων

34 Αναγέννηση Το πιο σημαντικό χαρακτηριστικό των συστημάτων PCM βρίσκεται στην ικανότητα να ελέγχουν τις επιδράσεις της παραμόρφωσης και του θορύβου που παράγονται κατά την μετάδοση μιας κυματομορφής PCM μέσω ενός διαύλου. Αυτή η δυνατότητα επιτυγχάνεται με την ανακατασκευή της κυματομορφής PCM μέσω μιας αλυσίδας αναγεννητικών επαναληπτών (regenerative repeaters) που είναι τοποθετημένοι σε αρκετά μικρή απόσταση κατά μήκος της διαδρομής μετάδοσης. Ο αναγεννητικός επαναλήπτης εκτελεί τρεις βασικές λειτουργίες. Την ισοστάθμιση (equalization), τον χρονισμό (timing) και τη λήψη απόφασης (decision making). Ο ισοσταθμιστής μορφοποιεί τους λαμβανόμενους παλμούς έτσι ώστε να αντισταθμίζει τις επιδράσεις παραμόρφωσης πλάτους και φάσης που παράγονται από τη χαρακτηριστική μετάδοσης του διαύλου. Το κύκλωμα χρονισμού περιέχει μια περιοδική ακολουθία παλμών, που παράγεται από τους λαμβανόμενους παλμούς, για τη δειγματοληψία των ισοσταθμισμένων παλμών σε χρονικές στιγμές όπου ο λόγος σήματος προς θόρυβο είναι μέγιστος. Η διάταξη απόφασης ενεργοποιείται όταν στο χρόνο δειγματοληψίας που καθορίζεται από το κύκλωμα χρονισμού, το πλάτος του ισοσταθμισμένου παλμού με το θόρυβο ξεπερνά μια προκαθορισμένη στάθμη τάσης. Έτσι για παράδειγμα, σε ένα σύστημα PCM με τροφοδοσία on - off, ο επαναλήπτης παίρνει μια απόφαση σε κάθε διάρκεια bit κατά πόσο υπάρχει ή όχι παλμός. Εάν η απόφαση είναι "ναι", μεταδίδεται ένας καινούργιος παλμός προς το επόμενο επαναλήπτη. Αν από την άλλη πλευρά η απόφαση είναι "όχι", μεταδίδεται μια καθαρή μηδενική στάθμη. Κατά αυτό τον τρόπο η συσσώρευση παραμόρφωσης και θορύβου σε ένα διάστημα μεταξύ επαναληπτών απαλείφεται πλήρως, με την προϋπόθεση ότι η παρενόχληση δεν είναι τόσο μεγάλη ώστε να προκαλέσει σφάλμα στη διαδικασία λήψης απόφασης. Στην ιδανική περίπτωση, εκτός από την καθυστέρηση, το αναδημιουργούμενο σήμα είναι ακριβώς το ίδιο όπως το αρχικά μεταδιδόμενο σήμα. Στην πράξη όμως, το αναδημιουργούμενο σήμα διαφέρει από το αρχικό σήμα για δύο κυρίως λόγους : 1. Η παρουσία θορύβου μετάδοσης και η παρεμβολή περιστασιακά προκαλούν λανθασμένες αποφάσεις στον επαναλήπτη εισάγοντας έτσι λανθασμένα bit (bit errors) στο αναδημιουργούμενο σήμα. 2. Εάν η απόσταση μεταξύ των λαμβανομένων παλμών αποκλίνει από την αρχική τιμή της, εισάγεται ένα παίξιμο (jitter) στη θέση του αναδημιουργούμενου παλμού προκαλώντας με αυτό τον τρόπο παραμόρφωση

35 Αποκωδικοποίηση Η πρώτη λειτουργία στον δέκτη είναι η αναγέννηση (επαναμορφοποίηση και καθαρισμός) των λαμβανόμενων παλμών. Αυτοί οι καθαροί παλμοί, στη συνέχεια, ομαδοποιούνται ξανά σε κωδικές λέξεις και αποκωδικοποιούνται (δηλαδή αντιστοιχίζονται) σε ένα κβαντισμένο σήμα PAM (διαμόρφωση πλάτους παλμών). Στη διαμόρφωση πλάτους παλμών (Pulse - Amplitude Modulation), τα πλάτη ισαπέχοντων ορθογώνιων παλμών μεταβάλλονται σύμφωνα με τις στιγμιαίες τιμές των δειγμάτων ενός συνεχούς σήματος πληροφορίας. Η διαδικασία αποκωδικοποίησης (decoding) περιλαμβάνει τη δημιουργία ενός παλμού, το πλάτος του οποίου είναι το γραμμικό άθροισμα όλων των παλμών στη κωδική λέξη, με τον κάθε παλμό να έχει βάρος την τιμή της θέσης του (2 0, 2 1, 2 2, 2 3,...) στον κώδικα. Φιλτράρισμα Η τελική λειτουργία στον δέκτη είναι η ανάκτηση της κυματομορφής σήματος περνώντας την έξοδο του αποκωδικοποιητή μέσω ενός βαθυπερατού φίλτρου ανακατασκευής, του οποίου η συχνότητα αποκοπής είναι ίση με το εύρος ζώνης W της πληροφορίας. Υποθέτοντας ότι η διαδρομή μετάδοσης είναι ελεύθερη από σφάλματα, το σήμα που ανακτάται δεν περιλαμβάνει θόρυβο, με εξαίρεση την αρχική παραμόρφωση που εισάγεται από την διαδικασία κβαντοποίησης. Πολυπλεξία Σε εφαρμογές που χρησιμοποιούν PCM, είναι φυσικό να πολυπλέκονται διάφορες πηγές πληροφορίας με διαίρεση στο χρόνο, ενώ κάθε πηγή κρατάει την ανεξαρτησία της, καθ ' όλη τη διαδρομή από τον πομπό στον δέκτη. Αυτή η ανεξαρτησία είναι υπεύθυνη για τη συγκριτική ευκολία με την οποία οι πηγές πληροφορίας μπορούν να βγούνε ή να ξαναμπούνε σε ένα σύστημα πολυπλεξίας με διαίρεση χρόνου. Καθώς ο αριθμός των ανεξάρτητων πηγών πληροφορίας αυξάνει, το διάστημα χρόνου που διατίθεται σε μία πηγή πρέπει να μειωθεί καθώς όλες πρέπει να εξυπηρετηθούν μέσα σε ένα χρονικό διάστημα ίσο με το αντίστροφο του ρυθμού δειγματοληψίας. Αυτό με τη σειρά του σημαίνει ότι μειώνεται η επιτρεπόμενη διάρκεια της κωδικής λέξης που παριστάνει ένα απλό δείγμα. Ωστόσο, η παραγωγή και μετάδοση των παλμών τείνει να γίνει δυσκολότερη καθώς η διάρκειά τους μειώνεται. Επιπλέον, εάν οι παλμοί γίνουν πολύ μικροί, τα σφάλματα στο μέσο μετάδοσης αρχίζουν να παρεμβάλλουν στην ορθή λειτουργία του συστήματος. Συνεπώς, στην πράξη είναι

36 απαραίτητο να περιορίσουμε τον αριθμό των ανεξάρτητων πηγών πληροφορίας που μπορούν να περιληφθούν σε μια ομάδα διαίρεσης χρόνου. Συγχρονισμός Για να λειτουργήσει ικανοποιητικά ένα σύστημα PCM με πολυπλεξία διαίρεσης χρόνου, είναι απαραίτητο οι λειτουργίες χρονισμού στον δέκτη, εκτός από τον χρόνο που χάνεται στη μετάδοση και στην αναγέννηση, να ακολουθούν από κοντά τις αντίστοιχες λειτουργίες στον πομπό. Γενικά, αυτό ισοδυναμεί με ότι το τοπικό ρολόι στο δέκτη πρέπει να κρατάει τον ίδιο χρόνο με ένα σταθερό μακρινό ρολόι στον πομπό, εκτός του ότι το τοπικό ρολόι καθυστερεί κατά μια ποσότητα που αντιστοιχεί στο χρόνο που απαιτείται για τη μετάδοση του σήματος πληροφορίας από τον πομπό στον δέκτη. Μια διαδικασία για τον συγχρονισμό των ρολογιών πομπού και δέκτη είναι να προσαρτηθεί ένα στοιχείο του κώδικα ή παλμός στο τέλος ενός πλαισίου (frame) (το οποίο είναι η διαδοχή κωδικών λέξεων που προέρχονται από κάθε μία από τις ανεξάρτητες πηγές πληροφορίας και να μεταδίδει τον παλμό αυτό σε κάθε πλαίσιο. Σε μια τέτοια περίπτωση, ο δέκτης περιλαμβάνει ένα κύκλωμα το οποίο ψάχνει για το σχηματισμό εναλλασσόμενων 1 και 0, με ρυθμό το μισό του ρυθμού πλαισίων, και έτσι επιτυγχάνει συγχρονισμό μεταξύ του πομπού και του δέκτη. Όταν η μετάδοση διακόπτεται είναι αρκετά απίθανο ότι τα ρολόγια πομπού και δέκτη θα συνεχίσουν να δείχνουν τον ίδιο χρόνο για αρκετό χρονικό διάστημα. Συνεπώς, κατά την εκτέλεση μιας διαδικασίας συγχρονισμού πρέπει να ορίσουμε μια διαφορετική διαδικασία για την ανίχνευση του παλμού συγχρονισμού. Η διαδικασία συνίσταται στην παρατήρηση στοιχείων του κώδικα ένα προς ένα, μέχρι να ανιχνευτεί ο παλμός συγχρονισμού. Δηλαδή μετά την παρατήρηση κάποιου συγκεκριμένου στοιχείου του κώδικα για αρκετό χρόνο ώστε να βεβαιωθούμε ότι δεν είναι παλμός συγχρονισμού, το ρολόι του δέκτη οπισθοχωρεί κατά ένα στοιχείο κώδικα και παρατηρείται το επόμενο στοιχείο κώδικα. Αυτή η διαδικασία αναζήτησης επαναλαμβάνεται μέχρις ότου ανιχνευτεί ο παλμός συγχρονισμού. Προφανώς, ο χρόνος που απαιτείται για τον συγχρονισμό εξαρτάται από την στιγμή κατά την οποία επανακαθίσταται η σωστή μετάδοση. [3,8,9]

37 Κεφάλαιο 7: Κωδικοποίηση MPEG 7.1 Πρότυπα του MPEG Η ομάδα MPEG (Moving Pictures Experts Group) ιδρύθηκε το 1988 με σκοπό την ανάπτυξη προτύπων για την κωδικοποιημένη απεικόνιση κινούμενων εικόνων (video) και ήχου καθώς και το συνδυασμό αυτών. Η βάση στην οποία στηρίχτηκε η ίδρυση αυτής της ομάδας ήταν το όραμα για τη δημιουργία ενιαίων προτύπων που θα περιέγραφαν πλήρως την απεικόνιση εικόνας και ήχου, και θα μπορούσαν να υλοποιηθούν από συμβατές συσκευές αναπαραγωγής. Ανάμεσα στους στόχους του προγράμματος εργασίας συγκαταλέγονται τα παρακάτω σημεία : Πρόταση προτύπων για κωδικοποιημένη αναπαράσταση πληροφορίας κινούμενων εικόνων. Πρόταση προτύπων για κωδικοποιημένη αναπαράσταση πληροφορίας ήχου. Πρόταση προτύπων για κωδικοποιημένη αναπαράσταση πληροφορίας ήχου, κινούμενων εικόνων καθώς και για τον συνδυασμό τους λαμβάνοντας υπόψη την ποιότητα, την αποτελεσματική υλοποίηση και τους περιορισμούς στην μεταφορά και διάδοση. Εκτίμηση των χαρακτηριστικών από τεχνολογίες που υλοποιούν αλγόριθμους κωδικοποίησης, αποθήκευσης και μεταφοράς media. Εκτίμηση των απαιτήσεων για συνεργασία και συμβατότητα με συναφείς εφαρμογές τηλεπικοινωνιών και αναμετάδοσης ή με συναφείς αλγόριθμους κωδικοποίησης media που έχουν τυποποιηθεί από άλλους οργανισμούς. Ορισμός μεθόδων για την εκτίμηση της ποιότητας του ήχου, των κινούμενων εικόνων καθώς και του συνδυασμού τους. 7.2 MPEG-1 Αποτελεί το πρώτο πρότυπο που εκδόθηκε από το MPEG κατά την περίοδο Ο σκοπός του προτύπου ήταν να παρέχει μια ολοκληρωμένη λύση για την κωδικοποίηση οπτικό-ακουστικού υλικού και την αποθήκευσή του σε ψηφιακά μέσα, όπως CD, DAT και οπτικούς δίσκους. Μιας και ο κύριος σκοπός ήταν η αποθήκευση σε CD το standard περιορίστηκε στο εύρος του 1.5Mbps bitrate, αλλά μπορεί να δουλέψει και σε

38 χαμηλότερα όσο και σε υψηλότερα bitrate. Ανάμεσα στις άλλες προδιαγραφές του προτύπου ήταν και ο ορισμός λειτουργιών όπως fast forward, fast reverse και random access, κατά αναλογία με τις αναλογικές συσκευές εγγραφής, ενώ επίσης θα έπρεπε να παρέχει υποστήριξη για ποιότητα video τουλάχιστον συγκρίσιμη με την ποιότητα κασέτας VHS. Γενικά η ομάδα MPEG συνηθίζει να αναπτύσσει τα πρότυπά της παράλληλα, όσον αφορά την κωδικοποίηση εικόνας και ήχου, αλλά και τις προδιαγραφές για συγχρονισμό και πολυπλεξία. Όμως, παρόλο που είναι σχεδιασμένες να χρησιμοποιηθούν ενοποιημένες, ξεχωριστές προδιαγραφές μόνο για ήχο ή μόνο για εικόνα, μπορούν να χρησιμοποιηθούν αυτόνομα ή και σε συνδυασμό με άλλα εργαλεία κωδικοποίησης. Για αυτόν ακριβώς το λόγο το κάθε πρότυπο οργανώνεται σε μέρη, κάθε ένα από τα οποία περιγράφουν ένα συγκεκριμένο τομέα. Το MPEG-1 διαιρείται σε 5 μέρη. Μέρος 1 Συστήματα : Αναφέρεται στον συνδυασμό ενός ή και περισσότερων data streams (Mpeg-1 Video ή Audio) μαζί με χρονικές πληροφορίες για την διαμόρφωση ενός data stream βελτιστοποιημένου για ψηφιακή αποθήκευση και μετάδοση. Μέρος 2 Video : Παρέχει τις προδιαγραφές για ένα format κωδικοποίησης (video stream και την αντίστοιχη διαδικασία αποκωδικοποίησης) για ακολουθίες video σε bitrates των 1.5Mbps. Υποστηρίζει interactive μεθόδους, όπως fast forward και fast reverse πάνω στο κωδικοποιημένο bitstream. Η κωδικοποίηση που χρησιμοποιείται αποτελεί μια τυπική διαδικασία κωδικοποίησης βασισμένη στο μετασχηματισμό DCT(Discrete Cosine Transform) πάνω σε blocks. Ο μετασχηματισμός εφαρμόζεται πάνω σε κάθε μία εικόνα ή πάνω σε σφάλμα πρόβλεψης που δημιουργείται μετά από προσωρινή πρόβλεψη (στη βάση ενός ή δύο εικόνων ) και την αντιστάθμιση κίνησης. Μετά τον DCT μετασχηματισμό ακολουθεί κβαντισμός, zig zag scan και κωδικοποίηση μεταβλητού μήκους. Μέρος 3 Audio : Παρέχει τις προδιαγραφές για ένα format κωδικοποίησης (audio stream και την αντίστοιχη διαδικασία αποκωδικοποίησης) σε μονοφωνικό ήχο με bitrates από 32 έως 192 kbps και στερεοφωνικό ήχο σε bitrates από 128 έως 384 kbps. Επίσης έχουν οριστεί τρία διαφορετικά ιεραρχικά επίπεδα κωδικοποίησης (Layers I,II,III), τα οποία αναφέρονται σε αυξημένη πολυπλοκότητα, καθυστέρηση και αποτελεσματικότητα του αλγορίθμου. Το πλέον διαδεδομένο είναι το Layer III, περισσότερο γνωστό και ως MP3. Οι κωδικοποιήσεις που περιγράφονται σε αυτό το μέρος αναφέρονται γενικά για οποιαδήποτε μορφή ήχου (όχι αποκλειστικά φωνής) και χρησιμοποιούν τα όρια που τίθενται από την αντιληπτική ικανότητα του ανθρώπινου συστήματος ακοής, αποσκοπώντας στο να

39 αφαιρέσουν την επιπλέον ακουστική πληροφορία που δεν γίνεται αντιληπτή από τον άνθρωπο. Μέρος 4 Τεστ Συμβατότητας : Σε αυτό το μέρος προδιαγράφονται τεστ που ελέγχουν αν ένα bitstream κάποιου περιεχομένου, καθώς και ο αποκωδικοποιητής που θα χρησιμοποιηθεί για αυτό, ικανοποιούν τις προδιαγραφές τον μερών 1, 2 και 3. Μέρος 5 Προσομοίωση Software : Αποτελείται από λογισμικό που υλοποιεί τα μέρη 1, 2 και 3. Το μέρος αυτό έχει καθαρά χαρακτήρα πληροφοριακό ενώ στα επόμενα πρότυπα το μέρος αυτό με ονομασία «Software αναφοράς» καθιερώθηκε ως ένα σταθερό και μόνιμο μέρος. Το πρότυπο που περιγράφτηκε παραπάνω αποτελεί μέχρι και σήμερα ένα δημοφιλές format για την ανταλλαγή video και ήχου μέσω του Internet (ειδικά για τον ήχο το format mp3 είχε και έχει ακόμα τεράστια απήχηση). Στο τομέα της ψηφιακής αποθήκευσης video δεν χρησιμοποιήθηκε τόσο ευρέως, κυρίως γιατί ξεπεράστηκε από το DVD και το πρότυπο MPEG-2 που το ακολούθησε. 7.3 MPEG-2 Η επιτυχία του προτύπου MPEG 1 οδήγησε στη δημιουργία του επόμενου προτύπου MPEG 2 το οποίο προσπάθησε να φέρει μια πιο γενική περιγραφή των μεθόδων κωδικοποίησης εικόνας και ήχου, με περισσότερες επιλογές διαβάθμισης της ποιότητας, το οποίο θα στόχευε κυρίως σε εφαρμογές μεσαίας και υψηλής ποιότητας (συμπεριλαμβανομένης και της τηλεόρασης υψηλής πιστότητας HDTV). Το πρότυπο αυτό βγήκε σε συνεργασία της ομάδας του MPEG με τους ειδικούς στην κωδικοποίηση της ITU- T2 και σε ένα μεγάλο βαθμό τα μέρη του, που αναφέρονται ως Συστήματα, Video και Εικόνα, στηρίζονται στα αντίστοιχα του MPEG 1. Μέρος 1 Συστήματα : Αναφέρεται στις ίδιες προδιαγραφές με αυτές του MPEG 1, αλλά παράλληλα παρέχει και υποστήριξη σε κάποια επιπλέον στοιχεία. Αρχικά, λαμβάνει υπόψη περιβάλλοντα επιρρεπή σε σφάλματα όπως τα δίκτυα εκπομπής. Επίσης συμπεριλαμβάνει προδιαγραφές για επεξεργασία των media και με hardware εκτός από software. Τέλος, υποστηρίζει την μεταφορά σε περιβάλλοντα ATM (Asychronous Transfer Mode). Μέρος 2 Video : Ορίζει τις προδιαγραφές για ένα γενικό format κωδικοποίησης video (και την αντίστοιχη διαδικασία αποκωδικοποίησης) σε αναλύσεις και ποιότητα μέχρι και HDTV. Η βασική αρχιτεκτονική του αλγόριθμου κωδικοποίησης παραμένει η ίδια με αυτή

40 του προτύπου MPEG- 1, αλλά έχει προστεθεί η δυνατότητα για format video τύπου interlaced, καθώς και για format με βαθμωτή πολυπλοκότητα και ποιότητα. Για να είναι όσο το δυνατό πιο γενικό στην περιγραφή του, το πρότυπο καθορίζει ένα μεγάλο αριθμό εργαλείων που μπορούν να εφαρμοστούν κατά την κωδικοποίηση ανάλογα με την εφαρμογή. Για αυτό το λόγο, στο μέρος αυτό καθορίζονται κάποια profiles και στη συνέχεια διάφορα levels. Τα profiles είναι υποκατηγορίες εργαλείων που μπορούν να χρησιμοποιηθούν κατά περίπτωση ανάλογα με την εφαρμογή. Στη συνέχεια για κάθε profile ορίζονται κάποια levels, τα οποία συνιστούν ένα ελάχιστο όριο στις απαιτήσεις για μνήμη και υπολογιστική ισχύ που θα πρέπει να έχει ο κάθε συμβατός αποκωδικοποιητής. Ταυτόχρονα ορίζουν και ένα άνω όριο στην πολυπλοκότητα του κάθε bitstream, εξασφαλίζοντας έτσι τη συμβατότητα μεταξύ των αποκωδικοποιητών. Το MPEG-2 παρέχει αυτό που ονομάζεται forward compatibility, δηλαδή ένα video κωδικοποιημένο κατά MPEG-1 μπορεί να αναπαραχθεί σε έναν αποκωδικοποιητή MPEG-2, αλλά το αντίστροφο μπορεί να συμβεί μόνο για ορισμένα profiles. Μέρος 3 Audio : Σε αυτό το μέρος προδιαγράφονται οι απαιτήσεις για το format κωδικοποίησης του ήχου. Το συγκεκριμένο μέρος παρέχει συμβατότητα πλήρη με το αντίστοιχο του MPEG-1 (forward and backward compatibility), ενώ δεν υπάρχουν σημαντικές διαφορές ανάμεσα στα δύο πρότυπα. Η σημαντικότερη ίσως διαφορά είναι, ότι πλέον υποστηρίζεται ο πολυκάναλος ήχος (σε συνδυασμό 5.1). Μέρος 4 Τεστ Συμβατότητας : Αντίστοιχα με το MPEG-1 παρέχει τεστ τα οποία ελέγχουν την συμβατότητα με τα προηγούμενα μέρη του προτύπου. Για την περίπτωση του video η συμβατότητα ορίζεται στο επίπεδο του συνδυασμού profile@level, όπως αναφέρθηκε στο μέρος 2. Μέρος 5 Software αναφοράς: Αντίστοιχα με το MPEG-1, παρέχει software αναφοράς που υλοποιεί το πρότυπο. Μέρος 6 Μέσα Ψηφιακής Αποθήκευσης Εντολές και Έλεγχος (Digital Storage Media Command and Control DSM-CC): Αυτό το μέρος παρέχει προδιαγραφές για τον ορισμό πρωτοκόλλων, που παρέχουν εντολές ελέγχου των bitstream ασυσχέτιστες με το μέσο στο οποίο είναι αποθηκευμένο το περιεχόμενο. Σε ένα τέτοιο μοντέλο DSM-CC ένα multimedia stream προέρχεται από ένα server και παραδίδεται σε ένα πελάτη. Το DSM-CC μοντέλο περιγράφει μια λογική οντότητα τον Session and Resource Manager(SRM) που παρέχει κεντρική διαχείριση. Μέρος 7 Προηγμένη Κωδικοποίηση ήχου (Advanced Audio Coding AAC) : Λόγω της ολικής συμβατότητας του μέρους 3 με το αντίστοιχο του MPEG-1 και της μειωμένης

41 αποτελεσματικότητας που συνεπάγεται, κρίθηκε αναγκαίο να προστεθεί αυτό το μέρος, το οποίο δεν είναι βέβαια συμβατό με το MPEG-1, αλλά προσφέρει κωδικοποίηση ήχου υψηλής αποτελεσματικότητας καταφέρνοντας να επιτύχει ανάλογες ποιότητες με το MPEG-2 Μέρος 3, αλλά διατηρώντας πολύ χαμηλότερα επίπεδα bitrate. Μέρος 8 Αποσύρθηκε : Αρχικά προοριζόταν για την κωδικοποίηση video που προέρχεται από δείγματα των 10 bits, αλλά απορρίφθηκε επειδή δεν υπήρξε ενδιαφέρον από τη βιομηχανία. Μέρος 9 Διασύνδεση Real Time : Ορίζει ειδικά εργαλεία για την χρήση των συστημάτων που περιγράφονται στο Μέρος 1 Συστήματα του προτύπου για την ανταλλαγή δεδομένων σε εφαρμογές real-time. Μέρος 10 DSM-CC Έλεγχος συμβατότητας : Ορίζει εργαλεία για τον έλεγχο των bitstream και των decoders σχετικά με τις προδιαγραφές που τίθενται στο Μέρος 6 του προτύπου. Μέρος 11 Προστασία και διαχείριση πνευματικής ιδιοκτησίας (IPMP): Μια πρόσφατη προσθήκη που επιτρέπει τη διαχείριση και τον ορισμό εργαλείων για τον έλεγχο των πνευματικών δικαιωμάτων. 7.4 MPEG-4 Ενώ τα προηγούμενα δύο πρότυπα του MPEG ακολουθούν μια διαδικασία απεικόνισης και επεξεργασίας ανάλογη με αυτή που έχει τις ρίζες της στην αναλογική τηλεόραση, το πρότυπο MPEG-4 κάνει ένα βήμα μπροστά στην αντιμετώπιση και γενικότερη επεξεργασία του οπτικό-ακουστικού περιεχομένου. Τα προηγούμενα δύο μοντέλα χρησιμοποιούν το λεγόμενο frame-based model, δηλαδή αντιμετωπίζουν το video σαν μια αλληλουχία εικόνων (frames) ενώ το MPEG-4 εισάγει την έννοια του object-based model. Στο object-based model μια οπτικό-ακουστική σκηνή θεωρείται ότι αποτελείται από τη σύνθεση και την αλληλεπίδραση διαφόρων στοιχείων (οπτικά ή ηχητικά), τα οποία ονομάζονται objects (αντικείμενα). Το πρότυπο αυτό δημιουργήθηκε μέσα από την ανάγκη των χρηστών του διαδικτύου για ένα αυξημένο βαθμό αλληλεπίδρασης με την πληροφορία που λαμβάνουν, όχι μόνο στο βαθμό του κειμένου και των γραφικών, αλλά και στην κινούμενη εικόνα και τον ήχο. Με βάση αυτές τις ανάγκες το object- based μοντέλο προσφέρει τους μηχανισμούς για την ανεξάρτητη κωδικοποίηση της μορφής, της συμπεριφοράς και των αλληλεπιδράσεων του κάθε object που απαρτίζει μια οπτικό

42 ακουστική σκηνή, καθώς και δυνατότητες για διαμόρφωση του περιεχομένου ως προς το επίπεδο της λεπτομέρειας που ο τελικός χρήστης επιθυμεί να λάβει. Ανάμεσα στα κύρια πλεονεκτήματα του προτύπου MPEG-4 συγκαταλέγονται τα εξής : Υβριδική συνθετική και φυσική κωδικοποίηση : Στο περιβάλλον του MPEG- 4 τα ηχητικά ή οπτικά objects μπορεί να είναι οποιαδήποτε προέλευσης φυσικά, τεχνητά, κείμενο, γραφικά, video βασισμένο σε frame-based model, μουσική, φωνή, 3D μοντέλα, 2D μοντέλα και άλλα. Χρήση βασισμένη στο περιεχόμενο : Επειδή από τη φύση του μοντέλου, το κάθε object κωδικοποιείται ξεχωριστά, του δίνεται η δυνατότητα να έχει ξεχωριστές ιδιότητες, να μπορεί να χρησιμοποιηθεί αυτούσιο σε περισσότερες από μία σκηνές, όπως επίσης να αλληλεπιδράσει με άλλα objects της σκηνής και να τροποποιήσει ανάλογα τις ιδιότητές του. Κωδικοποίηση βασισμένη στο περιεχόμενο : Αφού τα διάφορα objects κωδικοποιούνται αυτόνομα, τότε για την κωδικοποίηση του καθενός μπορούν να χρησιμοποιηθούν διαφορετικά εργαλεία, κάτι που τελικά αυξάνει την αποτελεσματικότητα και την ευελιξία του προτύπου. Για παράδειγμα, objects βασισμένα στο κείμενο μπορούν να κωδικοποιηθούν με εργαλεία κωδικοποίησης κειμένου, ενώ objects που περιγράφουν 3D μοντέλα με τα ανάλογα εργαλεία. Καθολική Χρήση : Με την αυξημένη χρήση και εξάπλωση ασύρματων και κινητών τερματικών, με διαφορές στις διάφορες δυνατότητες αναπαραγωγής περιεχομένου, το πρότυπο αυτό παρέχει την ευελιξία και την προσαρμοστικότητα, έτσι ώστε το ίδιο περιεχόμενο να είναι δυνατό να αναπαραχθεί με διαφορετικό επίπεδο λεπτομέρειας, σε διάφορα τερματικά, παρέχοντας στο καθένα την απαιτούμενη ποιότητα για την εκάστοτε χρήση. [5,6]

43 Κεφάλαιο 8:Δυαδικοί γραμμικοί block κώδικες Συνελικτικοί κώδικες 8.1 Περιγραφή Υπάρχουν δύο θεμελιώδη είδη κωδίκων. Οι block κώδικες και οι tree κώδικες. Οι block κώδικες ομαδοποιούν τη συνεχόμενη ακολουθία των bits της πληροφορίας, τα οποία εισέρχονται στον κωδικοποιητή, σε κομμάτια ή block k-συμβόλων. Στη συνέχεια, λειτουργούν, ανάλογα με τον κώδικα, πάνω σε αυτά τα block ξεχωριστά. Σε κάθε πιθανό block πληροφορίας k-συμβόλων αντιστοιχίζεται ένα block το οποίο αποτελείται από n κωδικά σύμβολα, όπου n>k. Το αποτέλεσμα, το οποίο από εδώ και στο εξής θα ονομάζεται κωδική λέξη, μεταδίδεται, μεταβάλλεται από τον θόρυβο και αποκωδικοποιείται στον δέκτη ανεξάρτητα από όλες τις άλλες κωδικές λέξεις. Το n ονομάζεται μήκος του κώδικα ή αλλιώς block length. 8.2 Μπλοκ κώδικες Όπως αναφέρθηκε παραπάνω, οι block κώδικες ομαδοποιούν τη συνεχόμενη ακολουθία των bits της πληροφορίας, τα οποία εισέρχονται στον κωδικοποιητή, σε block k συμβόλων. Block κώδικας, ονομάζεται ένα σύνολο από Μ ακολουθίες συμβόλων μήκους n. Έστω q, ο αριθμός των διακριτών συμβόλων πληροφορίας (στην περίπτωση της δυαδικής μετάδοσης πληροφορίας q=2). Οι ακολουθίες συμβόλων μήκους n, q διακριτών συμβόλων, ονομάζονται κωδικές λέξεις του κώδικα. Ο αριθμός των κωδικών λέξεων είναι μια δύναμη του q, είναι δηλαδή Μ=qm. Στον δέκτη, ακολούθως, λαμβάνεται μια απόφαση, με βάση την πληροφορία από το ληφθέν n-διάστατο πολυώνυμο, σχετικά με την κωδική λέξη που μεταδόθηκε. Αυτή η απόφαση είναι μια στατιστική απόφαση, είναι μια απόφαση που από την φύση της χρησιμοποιεί ως βάση την πληροφορία που είναι διαθέσιμη και κατά συνέπεια δεν

44 μπορεί να είναι αλάνθαστη. Με την χρήση του κατάλληλου κώδικα, η πιθανότητα μιας λανθασμένης απόφασης είναι συνήθως πολύ μικρότερη από την πιθανότητα που υπήρχε αρχικά, στα σύμβολα εισόδου στο κανάλι, να αναπαραχθούν χωρίς λάθος στην έξοδο του καναλιού. Οι κωδικές λέξεις αποτελούν την πρώτη σειρά του πίνακα. Όταν λαμβάνεται μια κωδική λέξη, είναι λογικό να θεωρήσουμε ότι η ίδια κωδική λέξη είναι και αυτή που στάλθηκε. Η απόφαση του δέκτη για άλλες πιθανές ληφθείσες λέξεις περιγράφεται παραθέτοντας κάτω από κάθε μια κωδική λέξη, τις ληφθείσες λέξεις οι οποίες θα αποκωδικοποιηθούν σε αυτήν. Έτσι κάθε μια από τις πιθανές να ληφθούν λέξεις, εμφανίζεται μόνο μια φορά στον πίνακα αποκωδικοποίησης. Παράδειγμα Για παράδειγμα, ας υποθέσουμε ότι υπάρχουν τέσσερα πιθανά μηνύματα a,b, c και d και ότι το μήνυμα μεταδίδεται χρησιμοποιώντας έναν δυαδικό block κώδικα με μήκος πέντε. Στη συνέχεια, τέσσερις κωδικές λέξεις πρέπει να επιλεγούν, έστω για το a, για το b, για το c και για το d. Η απόφαση του δέκτη πρέπει να περιγραφεί για κάθε μια από τις 25=32 πιθανές ληφθείσες λέξεις. Ένα παράδειγμα για το πώς μπορεί να γίνει αυτό φαίνεται στον παρακάτω πίνακα. Κωδικές Λέξεις Άλλες Ληφθείσες Λέξεις Πίνακας αποκωδικοποίησης για έναν δυαδικό κώδικα με q=k=2 και n=5 Οι κανόνες κωδικοποίησης και αποκωδικοποίησης, αποκωδικοποιούν σωστά μια λέξη η οποία δεν θα έχει περισσότερα από ένα λάθη, δηλαδή περισσότερα από ένα αλλαγμένα σύμβολα, μια και κάθε μια από τις πέντε λέξεις οι οποίες θα είχαν ως αποτέλεσμα ένα μοναδικό λάθος βρίσκονται κάτω από κάθε μια κωδική λέξη. Όμως, δεν αποκωδικοποιούνται σωστά όλα τα μοτίβα λαθών. Για παράδειγμα, εάν μεταδοθεί το και συμβούν δύο λάθη οδηγώντας έστω στο η λέξη θα αποκωδικοποιηθεί σωστά γιατί το είναι στην στήλη κάτω από το στον πίνακα. Όμως, αν σε άλλη περίπτωση τα δύο λάθη έχουν σαν

45 αποτέλεσμα να λάβουμε την 11011, θα αποκωδικοποιηθεί λανθασμένα σε 10011, επειδή το είναι στην στήλη κάτω από το Σε μερικές περιπτώσεις, είναι δυνατό ο αποκωδικοποιητής να είναι σε θέση να δηλώσει απλά ότι υπάρχει λάθος στην κωδική λέξη που λήφθηκε χωρίς όμως να μπορεί να υποδείξει ποια ήταν η κωδική λέξη που εστάλη. Αυτό μπορεί να πάρει την μορφή ενός συστήματος εντοπισμού λαθών, στο οποίο ο αποκωδικοποιητής δίνει το σήμα ότι υπάρχει λάθος αλλά δεν πράττει τίποτε πιο πέρα εκτός και αν ληφθεί μια κωδική λέξη. Επιπρόσθετα, όπως αναφέρθηκε και προηγουμένως, μπορεί να συνδυαστεί ο εντοπισμός λάθους με την διόρθωση σφαλμάτων. Για παράδειγμα, για τον κώδικα ο οποίος φαίνεται στον πίνακα κάθε ληφθείσα μπορεί να αποκωδικοποιηθεί στην κωδική λέξη στην κορυφή της στήλης, αλλά ο αποκωδικοποιητής δεν θα μπορέσει να εντοπίσει λάθη για τις λέξεις που λαμβάνονται κάτω από αυτή τη γραμμή. Αυτό αντιστοιχεί σε διόρθωση μοναδικού λάθους με εντοπισμό μερικών συνδυασμών δύο ή περισσότερων λαθών Γραμμικοί Μπλοκ Κώδικες Ένας δυαδικός μπλοκ κώδικας (n, k), ορίζεται πλήρως από Μ=2k δυαδικές ακολουθίες μήκους n που ονομάζονται κωδικές λέξεις. Ένας κώδικας C, συνίσταται από M κωδικές λέξεις ci με 1 i 2 k. C={c1, c2,, cm} όπου ci είναι μια ακολουθία μήκους n με όρους που παίρνουν τιμές 0 ή 1. Ορισμός 1.1 Ένας μπλοκ κώδικας είναι γραμμικός, αν κάθε γραμμικός συνδυασμός δύο κωδικών λέξεων είναι επίσης μια κωδική λέξη. Στη δυαδική περίπτωση αυτή η απαίτηση σημαίνει ότι αν ci και cj είναι κωδικές λέξεις τότε ci cj είναι επίσης μια κωδική λέξη, όπου συμβολίζει πρόσθεση modulo-2 των συντεταγμένων των δύο διανυσμάτων. Με τον ορισμό αυτό, βλέπουμε ότι ένας γραμμικός κώδικας είναι ένας k-διάστατος υποχώρος του n- διάστατου χώρου. Είναι ακόμη προφανές ότι, η ακολουθία 0, που όλες οι συντεταγμένες της είναι μηδέν, είναι κωδική λέξη κάθε γραμμικού κώδικα γιατί για κάθε κωδική λέξη ci ισχύει ci cj=0. Σύμφωνα με τον πιο πάνω ορισμό η γραμμικότητα ενός κώδικα εξαρτάται μόνο από τις κωδικές λέξεις και όχι από τον τρόπο με τον οποίο οι ακολουθίες πληροφορίας αντιστοιχίζονται στις κωδικές λέξεις. Αλλά είναι φυσικό να υποθέσουμε ότι αν η ακολουθία πληροφορίας u1 (μήκους k) αντιστοιχίζεται στην κωδική λέξη c1 (μήκους n) και η ακολουθία πληροφορίας u2 αντιστοιχίζεται στην κωδική λέξη c2, τότε η u1 u2 αντιστοιχίζεται στην

46 c1 c2. Στο εξής, θα υποθέτουμε ότι οι γραμμικοί κώδικες που μελετούμε έχουν την ιδιότητα αυτή. εξής Σαν παράδειγμα μπορούμε να αναφέρουμε έναν κώδικα (5, 2) ο οποίος ορίζεται ως C=(00000, 10100, 01011, 11111) Είναι πολύ εύκολο να δούμε ότι ο κώδικας αυτός είναι γραμμικός. Αν η αντιστοιχία μεταξύ των ακολουθιών πληροφορίας και κωδικών λέξεων είναι η ιδιότητα που συζητήσαμε προηγουμένως ισχύει. Αν η αντιστοιχία είναι η ιδιότητα δεν ισχύει. Αλλά, και στις δύο περιπτώσεις ο κώδικας είναι γραμμικός. Τώρα θα ορίσουμε τις βασικές παραμέτρους που χαρακτηρίζουν έναν κώδικα. Ορισμός 1.2 Η απόσταση Hamming μεταξύ δύο κωδικών λέξεων, ci και cj, είναι ο αριθμός των συντεταγμένων στις οποίες οι δύο κωδικές λέξεις διαφέρουν και συμβολίζεται με d(ci, cj). Ορισμός 1.3 Το βάρος Hamming ή απλά βάρος μιας κωδικής λέξης ci, είναι ο αριθμός των μη μηδενικών στοιχείων μιας κωδικής λέξης και συμβολίζεται με w(ci). Ορισμός 1.4 Η ελάχιστη απόσταση ενός κώδικα, είναι η ελάχιστη απόσταση μεταξύ δύο οποιονδήποτε διαφορετικών κωδικών λέξεων, δηλαδή, dmin=min{d(ci, cj)}, όπου i j, ci, cj Ορισμός 1.5 Το ελάχιστο βάρος ενός κώδικα, είναι το ελάχιστο βάρος των κωδικών λέξεων με εξαίρεση την κωδική λέξη 0, wmin=min{w(ci)}, όπου ci 0 Ορισμός 1.6 Σε κάθε γραμμικό κώδικα, dmin=wmin

47 8.3 Αποκωδικοποίηση και επίδοση γραμμικών μπλοκ κωδίκων Η κωδικοποίηση, χρησιμοποιείται στα συστήματα επικοινωνίας, κατά κύριο λόγο, για να αυξηθεί η Ευκλείδεια απόσταση μεταξύ των μεταδιδόμενων σημάτων και έτσι να μειωθεί η πιθανότητα σφάλματος για δεδομένη ισχύ μετάδοσης, πράγμα που είδαμε με παράδειγμα στην προηγούμενη ενότητα. Αυτό το πετυχαίνουμε διαλέγοντας τις κωδικές λέξεις έτσι ώστε να βρίσκονται όσο μακριά γίνεται η μία από την άλλη. Αυτό σημαίνει ότι ένα καλό μέτρο για να συγκρίνουμε την επίδοση δύο κωδίκων είναι η απόσταση Hamming μεταξύ των κωδικών λέξεων. Αλλά το να εξετάζουμε όλες τις αποστάσεις μεταξύ των κωδικών λέξεων είναι δύσκολο και σε αρκετές περιπτώσεις αδύνατο. Έτσι, η σύγκριση μεταξύ κωδίκων γίνεται συνήθως με βάση την ελάχιστη απόσταση ενός κώδικα, που για τους γραμμικούς κώδικες είναι ίση με το ελάχιστο βάρος. Έτσι, με δεδομένα τα n και k, ένας κώδικας με μεγαλύτερη απόσταση dmin (ή wmin) έχει συνήθως καλύτερη επίδοση από έναν κώδικα με μικρότερη απόσταση. 8.4 Συνελικτικοί Κώδικες Οι συνελικτικοί κώδικες αποτελούν μια πολύ σημαντική κατηγορία κωδίκων, οι οποίοι επιτυγχάνουν αρκετά μεγάλα κέρδη στην κωδικοποίηση και η χρήση τους είναι ευρεία στα τηλεπικοινωνιακά συστήματα. Η ονομασία τους οφείλεται στον τρόπο με τον τρόπο που υλοποιείται η κωδικοποίηση της πληροφορίας, καθώς σχηματίζονται με συνέλιξη των ψηφίων της πληροφορίας με την κρουστική απόκρουση ενός καταχωρητή ολίσθησης. Με την χρήση των συνελικτικών κωδίκων, ένα μπλοκ των k δυαδικών ψηφίων αντιστοιχίζεται σε ένα block των n δυαδικών ψηφίων. Κύριο χαρακτηριστικό γνώρισμα των συνελικτικών κωδίκων είναι ότι το νέο μπλοκ των n δυαδικών ψηφίων δεν εξαρτάται μόνο από τα τρέχοντα k δυαδικά ψηφία, αλλά και από προηγούμενα δυαδικά ψηφία. Αυτό σημαίνει ότι ο κωδικοποιητής πρέπει να έχει μνήμη και ως εκ τούτου μετατρέπεται σε μια Μηχανή Πεπερασμένων Καταστάσεων Βασικά Στοιχεία Θεωρίας Ένας συνελικτικός κωδικοποιητής υλοποιείται με έναν απλό καταχωρητή ολίσθησης και modulo-2 αθροιστές. Ένας συνελικτικός κώδικας χαρακτηρίζεται από την τριάδα (n,k,l)

48 O ακέραιος αριθμός k αποτελεί τον αριθμό των ψηφίων που εισέρχονται στον κωδικοποιητή, n είναι ο αριθμός των ψηφίων της εξόδου του κωδικοποιητή σε κάθε χρονικό βήμα και L ονομάζεται το μήκος περιορισμού και δηλώνει τον αριθμό των ομάδων των k ψηφίων που βρίσκονται κάθε στιγμή στον καταχωρητή. Ρυθμός ενός συνελικτικού κώδικα ορίζεται ως ο λόγος του αριθμού των ψηφίων στην είσοδο του κωδικοποιητή προς τον αριθμό των ψηφίων στην έξοδο του κωδικοποιητή. Με άλλα λόγια: R=k/n Επίσης ως ελεύθερη απόσταση ενός συνελικτικού κώδικα ορίζεται η ελάχιστη απόσταση μεταξύ δύο κωδίκων ακολουθιών. Επειδή, όπως αναφέρθηκε και προηγουμένως, ένας συνελικτικός κωδικοποιητής είναι μια διάταξη με μνήμη, είναι φανερό ότι οι n-άδες εξόδου του κωδικοποιητή δεν εξαρτώνται μόνο από τα k πιο πρόσφατα δυαδικά ψηφία στην είσοδο του κωδικοποιητή, αλλά επίσης και από τα (L-1)k δυαδικά ψηφία που περιείχαν οι πρώτες (L-1)k βαθμίδες του καταχωρητή πριν φθάσουν τα νέα k bits. Επομένως, προκύπτει ότι ο καταχωρητής ολίσθησης είναι μια μηχανή πεπερασμένων καταστάσεων με 2(L-1)k καταστάσεις. Σε κάθε χρονική στιγμή, εισέρχονται στον καταχωρητή ολίσθησης k δυαδικά ψηφία πληροφορίας και εξέρχονται αυτού τα k δυαδικά ψηφία του τελευταίου σταδίου του καταχωρητή ολίσθησης. Από την στιγμή που τα k δυαδικά ψηφία εισέρχονται στον καταχωρητή ολίσθησης, υπολογίζονται n γραμμικοί συνδυασμοί των περιεχομένων του καταχωρητή ολίσθησης και αυτοί χρησιμοποιούνται για την παραγωγή της κωδικοποιημένης εξόδου Συνάρτηση Μεταφοράς Για κάθε συνελικτικό κώδικα, η πληροφορία που μας δίνει η συνάρτηση μεταφοράς αφορά τις διάφορες διαδρομές μέσα από το trellis διάγραμμα, που ξεκινούν από την κατάσταση με όλο μηδενικά και επανέρχονται στην κατάσταση αυτή για πρώτη φορά. Όπως αναφέρθηκε και προηγουμένως, κάθε κωδική λέξη ενός συνελικτικού κώδικα αντιστοιχεί σε μία διαδρομή από το trellis που ξεκινά από την κατάσταση με όλα μηδενικά και επανέρχεται στην ίδια ακριβώς κατάσταση. Η διαδικασία που ακολουθείται για τον υπολογισμό της συνάρτησης μεταφοράς ενός συνελικτικού κώδικα είναι η εξής: Διαιρείται η όλα μηδενικά κατάσταση σε

49 «υποκαταστάσεις», μια που δηλώνει την κατάσταση εκκίνησης και μία που δηλώνει την κατάσταση πρώτης επιστροφής στην όλα μηδενικά κατάσταση. Δύο καταστάσεις συνδέονται μέσω ενός κλάδου, ο οποίος ορίζεται μία συνάρτηση της μορφής: DαΝβJ. To α ισούται με τον αριθμό των μονάδων που περιέχει η έξοδος για τον κλάδο αυτό και το β ισούται με τον αριθμό των μονάδων που περιέχει η είσοδος για τον κλάδο αυτό. Έτσι, η συνάρτηση μεταφοράς του συνελικτικού κώδικα ορίζεται ως η συνάρτηση μεταφοράς του γραφήματος ροής μεταξύ της όλα μηδενικά κατάστασης εκκίνησης και της τελικής όλα-μηδενικά κατάστασης. Επίσης, θα είναι συνάρτηση των τριών παραμέτρων D, N, J και θα συμβολίζεται με T(D, N, J). Κάθε στοιχείο της συνάρτησης μεταφοράς αντιστοιχεί σε μία διαδρομή μέσα από το trellis διάγραμμα, που ξεκινάει από την όλα-μηδενικά κατάσταση και καταλήγει στην όλα μηδενικά κατάσταση. Ο εκθέτης του J ισούται με το πλήθος των κλάδων που καλύπτει η διαδρομή, ο εκθέτης του D ισούται με το πλήθος των μονάδων που περιέχονται στην κωδική λέξη που αντιστοιχεί στην διαδρομή και ο εκθέτης του N ισούται με το πλήθος των μονάδων της εισόδου. Τέλος, πρέπει να αναφερθεί ότι για τον υπολογισμό της συνάρτησης μεταφοράς, αγνοούμε όλους του βρόχους ανακύκλωσης στην με-όλα μηδενικά κατάσταση. Θα πρέπει να αναφέρουμε ότι υπάρχουν τρείς τρόποι για την αναπαράσταση ενός συνελικτικού κωδικοποιητή. Και αυτοί είναι: 1. Διάγραμμα Καταστάσεων 2. Δενδρικό Διάγραμμα 3. Διάγραμμα Trellis Διάγραμμα Καταστάσεων (State Diagram) Ένας συνελικτικός κωδικοποιητής ισοδυναμεί με μια μηχανή πεπερασμένων καταστάσεων. Αυτό σημαίνει ότι ένας συνελικτικός κώδικας έχει πεπερασμένη μνήμη και άρα μπορούν να παρατηρηθούν μεταβάσεις σε έναν συγκεκριμένο αριθμό μοναδικών καταστάσεων. Ο συνελικτικός κώδικας επομένως μπορεί να αναπαρασταθεί με ένα διάγραμμα μετάπτωσης καταστάσεων. Στο διάγραμμα αυτό, κάθε κατάσταση του συνελικτικού κώδικα μπορεί να αναπαρασταθεί με ένα τετράγωνο (ή έναν κύκλο) και οι μεταπτώσεις (μεταβάσεις) μεταξύ των καταστάσεων δηλώνονται με βέλη που συνδέουν τα τετράγωνα (κύκλους), προσδιορίζοντας με αυτόν τον τρόπο τις αφίξεις προς ή τις αποχωρήσεις από την κατάσταση. Επιπλέον, πρέπει να αναφερθεί ότι σε κάθε βέλος προσδιορίζονται τόσο η είσοδος του κωδικοποιητή που προκάλεσε την συγκεκριμένη μετάβαση όσο και η έξοδος του κωδικοποιητή). Συνοψίζοντας, ο

50 κωδικοποιητής βρίσκεται σε μια συγκεκριμένη κατάσταση και δεχόμενος μια είσοδο μεταβαίνει σε μια κατάσταση(μπορεί να είναι και η ίδια) και παράγει την έξοδό του. Αυτό που επίσης πρέπει να επισημανθεί είναι ότι δεν μπορεί να πραγματοποιηθεί απευθείας από μία κατάσταση προς όλες τις καταστάσεις Μία ακόμη σημαντική παρατήρηση είναι ότι το πλήθος των βελών που εξέρχονται από κάθε κατάσταση ισούται με το πλήθος των δυνατών εισόδων του κωδικοποιητή όταν βρίσκεται στην κατάσταση αυτή. Τέλος, το πλήθος των βελών που συγκλίνουν προς κάθε κατάσταση είναι ίσο με το πλήθος των καταστάσεων από τις οποίες είναι δυνατή μια μετάπτωση προς την κατάσταση αυτή. Να επισημανθεί, ότι στο διάγραμμα καταστάσεων που ακολουθεί τα διακεκομμένα βέλη αναπαριστούν μεταβάσεις που προκλήθηκαν λόγω εισόδου 0, και τα βέλη με συνεχή γραμμή αναπαριστούν μεταβάσεις που προκλήθηκαν λόγων εισόδου 1. Έτσι, παρουσιάζεται το ακόλουθο διάγραμμα καταστάσεων για τον κωδικοποιητή του παραδείγματός μας:

51 8.4.4 Δεντρικό Διάγραμμα (Tree Diagram) Ένα πρόβλημα που υπάρχει με την αναπαράσταση με χρήση του Διαγράμματος Καταστάσεων είναι ότι δεν μπορούσε να αναπαραστήσει το χρόνο. Το πρόβλημα αυτό λύθηκε με την χρήση του Δεντρικού Διαγράμματος, το οποίο προσθέτει την διάσταση του χρόνου στην αναπαράσταση. Αν ξεκινήσουμε από την ρίζα του δέντρου, σε κάθε βήμα της κωδικοποίησης, προχωράμε προς τα δεξιά και πάνω εάν είναι μηδέν (0) η είσοδος του κωδικοποιητή ή δεξιά και κάτω εάν είναι ένα (1) η είσοδος του κωδικοποιητή. Επιπλέον, σε κάθε κόμβο του δέντρου αναγράφεται η τρέχουσα κατάσταση του κωδικοποιητή. Σε κάθε κλαδί του δέντρου αναγράφεται η λέξη εξόδου, η οποία είναι αποτέλεσμα της παραγωγής από τον κωδικοποιητή κατά την συγκεκριμένη μετάβαση

52 Μπορεί η αναπαράσταση με την χρήση Δεντρικού Διαγράμματος να έδωσε λύση στο πρόβλημα του χρόνου, όμως εισήγαγε ένα άλλο σημαντικό μειονέκτημα: επειδή είναι δυναμικό, το μέγεθός του μετά από λίγες χρονικές στιγμές αυξάνεται υπερβολικά πολύ. Το γεγονός αυτό καθιστά την χρήση Δεντρικών Διαγραμμάτων απαγορευτική. Ας αναλογιστούμε το εξής: Για δυαδικούς συνελικτικούς κώδικες με k=1 σε κάθε χρονική

53 στιγμή φεύγουν δύο διακλαδώσεις, κάτι το οποίο συνεπάγεται ότι στην i-στη χρονική στιγμή θα έχουν προκύψει 2i-1 κόμβοι Διάγραμμα trellis(trellis Diagram) Μια τρίτη και πιο δημοφιλής μέθοδος για την περιγραφή των συνελικτικών κωδίκων είναι ο καθορισμός του διαγράμματος δικτυώματος (διάγραμμα trellis) που αντιστοιχεί στον κώδικα. To διάγραμμα trellis αποτελεί έναν τρόπο παρουσίασης των μεταπτώσεων μεταξύ των διαφόρων καταστάσεων, καθώς εξελίσσεται ο χρόνος. Ο τρόπος κατασκευής του διαγράμματος trellis είναι ο εξής: Τοποθετούμε σε έναν κατακόρυφο άξονα όλες τις δυνατές καταστάσεις και επαναλαμβάνουμε τον άξονα αυτό για κάθε χρονική περίοδο μετάπτωσης (μετάβασης). Κάθε μετάπτωση (μετάβαση) από μια κατάσταση σε μία άλλη αναπαρίσταται με ένα ευθύγραμμο τμήμα που συνδέει τα παραστατικά σημεία των δύο καταστάσεων σε δύο διαδοχικούς κατακόρυφους άξονες. Θα μπορούσε κανείς να αναφέρει ότι το διάγραμμα trellis αποτελεί επανάληψη του διαγράμματος καταστάσεων στον άξονα του χρόνου. Στο παρακάτω σχήμα που ακολουθεί παρουσιάζεται το διάγραμμα trellis που αντιστοιχεί στο παράδειγμά μας. Με βέλη διακεκομμένα συμβολίζονται οι μεταβάσεις προκαλούνται λόγω εισόδου ένα (1) και με συνεχόμενα βέλη οι μεταβάσεις που προκαλούνται λόγω εισόδου μηδέν (0). [1,2,3,5,10]

54 Συμπεράσματα Στα πλαίσια αυτής της πτυχιακής εργασίας, δημιουργήθηκαν οι εργαστηριακές ασκήσεις του μαθήματος «Κώδικες και θεωρία πληροφορίας». Αρχικά αναφέρθηκαν σημαντικές βασικές αρχές της θεωρίας της πληροφορίας, ενώ αναπτύχθηκαν στα παρακάτω κεφάλαια διάφοροι Κώδικες. Στο κεφάλαιο 2 αναπτύχθηκε ο κώδικας Huffman, η τεχνική κωδικοποίησης ενώ στο κεφάλαιο 3 περιγράφηκε η κωδικοποίηση ASCII. Επιπροσθέτως, στα κεφάλαια 4 και 5 παρουσιάστηκαν οι τεχνικές, τα πλεονεκτήματα και τα μειονεκτήματα τόσο των κωδίκων Hamming όσο και Lempel-Ziv όπως στο δεύτερο αναλύθηκαν οι τρείς βασικές τεχνικές LZ77, LZ78, LZW. Επιπλέον στα επόμενα δύο κεφάλαια, αναπτύχθηκαν οι τεχνικές συμπίεσης εικόνας και βίντεο JPEG και MPEG αντίστοιχα. Τέλος, στο κεφάλαιο 8 παρουσιάστηκαν οι Γραμμικοί και Συνελικτικοί κώδικες με την χρήση παραδειγμάτων. Από όσα μελετήθηκαν και εξετάστηκαν στην παρούσα πτυχιακή, το συμπέρασμα είναι ότι οι συγκεκριμένες τεχνικές κωδικοποίησης είναι εύχρηστες και τυγχάνουν ευρείας εφαρμογής η κάθε μία σε κατάλληλη χρήση

55

56 Βιβλιογραφία [1] David G. Luenberger, Θεωρία της Πληροφορίας [2] Charon Langton, Coding and decoding with conventional codes [3] John Proakis, Digital Communications [4] Richard W. Hamming, Coding and Information Theory [5] Ιστοσελίδα Wikipedia, [6] [7] Richard W. Hamming, Numerical Methods for Scientists and Engineers [8] Robert Buckley, NewMarket Imaging Using Lossy JPEG2000 compression for Achival Master Files [9] William B.Pennebaker Joan L. Michell, JPEG:still Image Data Compression Standard [10] Βούκαλης Δημήτρης, Θεωρία Πληροφοριών-Κώδικες- Κωδικοποίηση Πηγής- Συνελικτικοί Κώδικες

57

58 Παράρτημα Άσκηση 1: Συμπίεση εικόνας με την χρήση των κωδικών Huffman και Lempel-Ziv 1. Σκοποί και στόχοι Να διερευνηθεί η σχετική απόδοση της συμπίεσης χωρίς απώλειες και της συμπίεσης με απώλειες. 2. Χρήση των μεθόδων συμπίεσης Huffman και Lempel-Ziv Για αυτή την άσκηση θα χρησιμοποιήσουμε τα προγράμματα συμπίεσης και τις εικόνες των 320x200 pixel που παρέχονται με το βιβλίο "The Data Compression Book". Τα προγράμματα θα πρέπει να εκτελεστούν από ένα παράθυρο εντολής DOS όπως εξηγείται παρακάτω. Αντιγράψτε τα.zip αρχεία σε ένα φάκελο και στην συνέχεια ανοίξτε ένα παράθυρο γραμμής εντολών κάνοντας κλικ στο "Έναρξη", επιλέγοντας "Run" και πληκτρολογώντας "Command". Τώρα μετακινηθείτε προς τον φάκελο σας όπως φαίνεται παρακάτω. Η εντολή cd χρησιμοποιείται για την αλλαγή καταλόγου στη γραμμή εντολών, ενώ η εντολή dir εμφανίζει όλα τα αρχεία σε έναν φάκελο (directory). Πληκτρολογήστε gs mouse.raw για να δείτε την εικόνα

59 Μπορείτε να δείτε πολλές εικόνες ως εξής: gs mouse.raw cheetah.raw rose.raw Πατήστε οποιοδήποτε πλήκτρο για να προχωρήσετε στην επόμενη εικόνα. Αυτή η δυνατότητα είναι χρήσιμη για την προβολή-σύγκριση συμπιεσμένων εικόνων σε διαφορετικές ποιότητες. Για να δείτε τη διαφορά μεταξύ των δύο εικόνων πληκτρολογείστε gsdiff <image1> <image2> Για παράδειγμα πληκτρολογείστε: gsdiff mouse.raw cheetah.raw Πληκτρολογήστε οποιοδήποτε πλήκτρο μετά τη χρήση του gsdiff και θα σας δοθεί το σφάλμα RMS μεταξύ των δύο εικόνων. Αυτό είναι το μέσο σφάλμα μεταξύ των pixels στις δύο εικόνες. Αυτή η τιμή είναι πάντα 0 για τις μεθόδους συμπίεσης χωρίς απώλειες. 3. Συμπίεση χωρίς απώλειες Συμπιέστε τις 3 εικόνες με τις μεθόδους συμπίεσης δεδομένων χωρίς απώλειες Huff και lzss (όπου huff είναι Huffman και όπου lzss o Lempel-Ziv 77). Για να συμπιέσετε το mouse.raw με τη μέθοδο Huffman: Huff-c mouse.raw mhuffc.raw Το συμπιεσμένο αρχείο ονομάζεται mhuffc.raw. Η εντολή lzss-c χρησιμοποιείται για την κωδικοποίηση Lempel-Ziv. Σημειώστε το μέγεθος του συμπιεσμένου αρχείου που δίνεται από τα "bytes εξόδου" για κάθε μία από τις 3 εικόνες και για τις δύο μεθόδους. Υπολογίστε τους λόγους συμπίεσης και bit ανά pixel (bpp). Σημειώστε ότι το παλιό μέγεθος του αρχείου είναι πάντα bytes (320x200 bytes) - και ο παλιός (πραγματικός) αριθμός των bits ανά pixel είναι πάντα 8 (η εικόνα mouse.raw είναι μια 8-bit εικόνα - ως εκ τούτου τιμές από 0-255). Ο λόγος συμπίεσης (compression ratio) και τα bits ανά pixel υπολογίζονται από τις παρακάτω σχέσεις:

60 Συνοψίστε τα αποτελέσματά σας σε έναν πίνακα ως εξής: Εικόνα Μέθοδος Bytes εισόδου Bytes εξόδου Λόγος Bits ανά pixel συμπίεσης συμπίεσης (bpp) Mouse.raw Huffman Mouse.raw LZW Cheetah.raw Huffman Cheetah.raw LZW Rose.raw Huffman Rose.raw LZW 4. Συμπίεση με απώλειες (DCT - Discrete Cosine Transformation) Εδώ θα χρησιμοποιήσουμε μόνο την εικόνα mouse.raw. Παράδειγμα συμπίεσης DCT είναι οι εικόνες JPEG. Στο DCT συμπιεστή και αποσυμπιεστή τα αρχεία είναι τα dctc.exe και dcte.exe, αντίστοιχα. Οι τιμές Q καθορίζουν το ποσό της κβάντωσης που χρησιμοποιείται στην συμπίεση. Οι τιμές Q βρίσκονται μεταξύ 0-25, όπου το 0 είναι η καλύτερη ποιότητα και 25 είναι η χαμηλότερη. Ένα παράδειγμα για το Q = 15: Για να συμπιέσετε την εικόνα mouse.raw με μια τιμή Q των 15 θα πληκτρολογήσετε :dctc mouse.raw mdct15c.raw 15 αυτό αποθηκεύει τα συμπιεσμένα δεδομένα στο αρχείο mdct15c.raw. Θα σας δοθεί το μέγεθος του συμπιεσμένου αρχείου. Σημείωση, δεν μπορούμε να εξετάσουμε το συμπιεσμένο αρχείο πριν το αποσυμπιέσουμε. Αν προσπαθήσετε να δείτε το συμπιεσμένο αρχείο μπορείτε να δείτε ένα μικρό μπλοκ τυχαίας εμφάνισης θορύβου

61 Για την αποσυμπίεση έχουμε :dcte mdct15c.raw mdct15e.raw (Σημείωση - δεν πρέπει να δώσετε την τιμή Q για αποσυμπίεση) Τώρα δείτε το αποσυμπιεσμένο αρχείο (mdct15e.raw) με τον gs viewer (gs mdct15e.raw). Η τιμή MOS (mean opinion score) έχει πεδίο τιμών από 5 = άριστη έως 1 = πολύ κακή. Αυτή είναι η προσωπική σας εκτίμηση για την ποιότητα της εικόνας. Τώρα συγκρίνετε με το πρωτότυπο: gsdiff mouse.raw mdct15e.raw Πρώτα θα δείτε τις διαφορές (δηλαδή, τις χαμένες υψηλότερες συχνότητες) και όταν πιέσετε οποιοδήποτε πλήκτρο, θα δοθεί η τιμή του σφάλματος RMS. Να συμπληρωθούν όλες οι παραπάνω τιμές στον παρακάτω πινάκα. Επαναλάβετε την παραπάνω άσκηση για τιμές του Q μεταξύ 0 και 25 (π.χ. για τις τιμές 0,5,10,15,20 και 25). Υπολογίστε τα bpp για το καθένα και σημειώστε τα λάθη στον RMS (που παρατίθενται μετά την εντολή gsdiff) και τις υποκειμενικές MOS τιμές για το καθένα. Οι Q τιμές για τις μεθόδους dct είναι 0-25 (3 είναι η προεπιλεγμένη τιμή). Μια λογική επιλογή εκκίνησης θα είναι 0, 5, 10, 15, 20 και 25, για παράδειγμα. Καταγράψτε τα αποτελέσματά σας στον παρακάτω πίνακα. Αυτές οι τιμές θα χρησιμοποιηθούν για να παραχθούν 3 γραφικές παραστάσεις: bpp vs MOS, bpp vs RMS error και bpp vs Q. Q Μέγεθος Λόγος bpp MOS RMS αρχείου συμπίεσης Αναλύστε τα αποτελέσματα και συνοψίστε τα συμπεράσματα σας σχολιάζοντας την απόδοση της συμπίεσης χωρίς απώλειες με αυτή της συμπίεσης με απώλειες, καθώς και τις 3 γραφικές παραστάσεις

62 i) Διερευνώντας την επίδραση των λαθών στα συμπιεσμένα δεδομένα Τα συμπιεσμένα δεδομένα είναι συνήθως εξαιρετικά ευάλωτα σε σφάλματα που εισάγει το κανάλι μετάδοσης. Σε αυτή την άσκηση θα καταστραφεί ένα DCT συμπιεσμένο αρχείο για να μελετηθεί η επίδραση που προκύπτει από μια απλή περίπτωση σφάλματος. Δημιουργήστε ένα αντίγραφο ενός από τα συμπιεσμένα αρχεία σας DCT, ονομάζοντας το errorc.raw. Χρησιμοποιώντας τον editor Hedit (υπάρχει στα συμπιεσμένα αρχεία του εργαστηρίου σας) πληκτρολογείστε hedit errorc.raw και θα δείτε το αρχείο ως μια μακρά λίστα δεκαεξαδικών τιμών. Αλλάξτε μόνο ένα byte περίπου στο κέντρο της συμπιεσμένης πηγής (λάθη στην αρχή ή στο τέλος του αρχείου δεν έχουν ενδιαφέρον για αυτήν την άσκηση - οπότε να είστε προσεκτικοί όταν θα μετακινηθείτε προς τα κάτω περίπου στη μέση του αρχείου). Τώρα σώστε το αρχείο και αποσυμπιέστε το (όπως και πριν με dcte) καλώντας το αποσυμπιεσμένο αρχείο errore.raw (Σημείωση: μπορεί να πάρετε ένα μήνυμα για ένα ανεπανόρθωτο σφάλμα αποσυμπίεσης, επειδή ο αποσυμπιεστής καταλαβαίνει την αλλαγή του byte). ii) λογικά; Ερωτήσεις Είναι τα αποτελέσματα αξιολόγησης της ποιότητας των MOS, RMS error Γιατί η απόδοση των διαφορετικών μεθόδων συμπίεσης διαφέρει και γιατί τα αποτελέσματα διαφέρουν για διαφορετικές εικόνες; Τα λάθη στην ενότητα 5 δημιουργούν προβλήματα;

63 Άσκηση 2: Κωδικοποίηση ASCII 1. Σκοποί και στόχοι Να διερευνηθεί η λειτουργία και η χρησιμότητα της κωδικοποίησης ASCII. 2. Κωδικοποίηση ASCII σε δεκαδική μορφή ASCII σημαίνει American Standard Code for Information Interchange. Πρόκειται για μια κωδικοποίηση που χρησιμοποιείται από σχεδόν κάθε υπολογιστή και εκχωρεί αριθμούς σε κάθε σύμβολο και χαρακτήρα που μπορεί να εισαχθεί ή να εξαχθεί (αυτό περιλαμβάνει κεφάλαια και μικρά γράμματα, αριθμούς, σημεία στίξης και άλλα σύμβολα). Στον δεκαδικό κώδικα ASCII, κάθε σύμβολο και χαρακτήρας αντιστοιχεί σε έναν αριθμό γραμμένο στο δεκαδικό σύστημα αρίθμησης. Υπάρχει επίσης ένας δυαδικός κώδικας ASCII που χρησιμοποιεί μόνο τα σύμβολα 0 και 1. Για ιστορικούς λόγους, 127 δεκαδικοί αριθμοί χρησιμοποιούνται για την εκχώρηση συμβόλων (127 είναι ο μεγαλύτερος αριθμός που μπορείτε να χρησιμοποιήσετε με μόνο 7 ψηφία σε δυαδική μορφή). Η σειρά χαρακτήρων του κώδικα ASCII είναι η εξής: σύμβολα ελέγχου αριθμούς σε αύξουσα σειρά σύμβολα κεφαλαία γράμματα (με αλφαβητική σειρά) σύμβολα μικρά γράμματα (με αλφαβητική σειρά) το σύμβολο Del Θα εξετάσουμε πρώτα την μετατροπή από γράμματα και σύμβολα σε δεκαδικούς αριθμούς. Εδώ είναι ένας πίνακας που δείχνει την κωδικοποίηση ASCII για τους δεκαδικούς αριθμούς 33 έως

64 ! " # $ % & ' 40 ( ) * +, -. / : ; 60 < = A B C D E 70 F G H I J K L M N O 80 P Q R S T U V W X Y 90 Z [ \ ] ^ _ ` a b c 100 d e f g h i j k l m 110 n o p q r s t u v w 120 x y z { } ~ Del Μπορείτε να εξασκηθείτε στην κωδικοποίηση ASCII όπως φαίνεται παρακάτω: Εισάγετε δεκαδικά ψηφία χωρίς μηδενικά, και τοποθετήστε ένα κενό μεταξύ των δεκαδικών ψηφίων. Παράδειγμα: Το "Math Alive!" κωδικοποιείται ως " ". Στην παρακάτω διεύθυνση μπορείτε να δείτε αν είναι σωστή η κωδικοποίηση: 3. Κωδικοποίηση ASCII σε δυαδική μορφή Ένας υπολογιστής για να χειριστεί ένα κείμενο θα πρέπει να το μετατρέψει σε 0 και 1. Οι περισσότεροι υπολογιστές χρησιμοποιούν μια επέκταση του κώδικα ASCII που αντιπροσωπεύει κάθε χαρακτήρα (σύμβολο) με μια σειρά από 8 bit που ονομάζεται byte. Στην παρακάτω διεύθυνση υπάρχει ένα ASCII μετατροπέας σε δυαδική μορφή. Πληκτρολογήστε οποιαδήποτε πρόταση ή οποιονδήποτε χαρακτήρα, και στη συνέχεια πατήστε ENTER και θα μετατραπούν από σύμβολα σε δεκαδικό αριθμό και στην συνέχεια σε

65 δυαδικό. Αφήνουμε κενά μεταξύ των δυαδικών ψηφίων που αντιπροσωπεύουν σύμβολα ώστε να μπορούμε να ξεχωρίσουμε τα διαφορετικά σύμβολα. Σε έναν πραγματικό υπολογιστή τα δυαδικά ψηφία (bits) είναι συνεχόμενα, χωρίς κενά Κωδικοποίηση ASCII και αλλοίωση των δεδομένων λόγω λαθών Ένας υπολογιστής αποθηκεύει όλα τα δεδομένα σε bits και είναι σημαντικό αυτά τα δεδομένα να μην αλλοιώνονται. Ωστόσο, μερικές φορές κάποια bits αλλοιώνονται (από 1 σε 0 ή από 0 σε 1). Η αιτία της αλλοίωσης μπορεί να είναι είτε περίπλοκη όπως κάποια δυσλειτουργία στο ψηφιακό κύκλωμα του υπολογιστή, είτε απλή (και αναπόφευκτη) όπως η κοσμική ακτινοβολία. Εάν δεν ληφθούν έξτρα μέτρα μπορεί να καταστραφεί η πληροφορία. Στην παρακάτω διεύθυνση μπορείτε να δείτε όλα όσα περιγράφηκαν στην προηγούμενη παράγραφο: 5. Πλεονάζοντα bits Στα προηγούμενα παραδείγματα θα μπορούσατε να καταλάβετε το κείμενο, ακόμα και αν είχε καταστραφεί λίγο, πχ. That si whya lot fo txt can stll be read evn when it hs typos. Για την προστασία των δεδομένων σε έναν υπολογιστή, ή σε ένα CD (μουσική ή άλλα δεδομένα), εισάγει ένα παρόμοιο πλεονασμό, που επιτρέπει στον υπολογιστή ή το CD player σας να διορθώσει τα λάθη. Μια πολύ απλή ιδέα είναι να επαναλαμβάνεται κάθε bit. Αυτό απεικονίζεται παρακάτω: μπορείτε να πληκτρολογήσετε πάλι μια σύντομη πρόταση, που θα μεταφραστεί σε δυαδικό κώδικα ASCII. Στο παράθυρο κάτω από την μετάφραση θα δείτε το αποτέλεσμα της επανάληψης. Όταν κάνετε κλικ είναι εύκολο να εντοπίσετε τις αλλαγές που έχουν γίνει. Εάν

66 δύο συνεχόμενα bits που θα πρέπει να είναι ίδια, είναι διαφορετικά, τότε κάτι θα πρέπει να έχει συμβεί σε αυτά τα δυο bits. Αλλά δεν μπορείτε να διορθώσετε το λάθος αυτόματα: εάν ένα ζευγάρι έχει γίνει 10 τότε δεν υπάρχει τρόπος να γνωρίζουμε αν το ζευγάρι ήταν 11 ή 00 πριν. Παρακάτω θα προσπαθήσουμε να ανακτήσουμε το κατεστραμμένο κείμενο με τον εξής τρόπο: αν τα δύο bits είναι διαφορετικά, θα τα αντικαταστήσουμε με 00 στην πρώτη περίπτωση και 11 στη δεύτερη. Δείτε τι γίνεται στο παρακάτω java applet: 6. Triple code Για να είναι σε θέση ο κώδικας να διορθώσει λάθη, ας επαναλάβουμε κάθε bit δύο φορές. Η ακολουθία δεδομένων είναι τώρα τρεις φορές μεγαλύτερη. Κάθε φορά που αλλάζει η τιμή ενός τυχαίου bit, μπορεί όχι μόνο να ανιχνεύσει ότι έχει γίνει λάθος, αλλά και να διορθωθεί: για παράδειγμα αν δείτε 101 τότε αυτό ήταν 111. Ακόμα κι αν πολλές τυχαίες αλλαγές σε τιμές bit είχαν γίνει, είναι απίθανο ότι δύο από αυτές θα ήταν στην ίδια τριάδα, και γι 'αυτό εξακολουθεί να είναι πολύ πιο πιθανό ότι το 101 ήταν 111 και όχι 000. Στην παρακάτω διεύθυνση εισάγετε κάποιες λέξεις και πιέστε ENTER: Στο Altered Text area βλέπετε τα αποτελέσματα από την αλλοίωση. Για κάθε τριάδα bits, ο υπολογιστής λαμβάνει στη συνέχεια την «πλειοψηφία», και αυτό φαίνεται στo Corrected Text area. 7. Ερωτήσεις a. Πως είναι στη δεκαδική και στην δυαδική ASCII κωδικοποίηση το όνομα και το επώνυμό σας? b. ASCII κωδικοποίηση και αλλοίωση των δεδομένων από σφάλματα Στην ενότητα 2, με το κουμπί "Change Bits" αλλάξαμε την τιμή των bits σε ASCII κωδικοποίηση. Αυτή η αλλαγή παίζει το ρόλο της κοσμικής ακτινοβολίας. Μερικές φορές

67 μπορεί να συμβεί ένα bit που είχε αλλάξει τιμή να αλλάξει τιμή και πάλι. Η πιθανότητα ότι το ίδιο bit θα αλλάξει τιμή δύο φορές δεν είναι μηδέν (αν και είναι μικρή βέβαια). Πληκτρολογήστε μια σύντομη πρόταση (το πολύ 15 χαρακτήρες) στο Flipper Bit. Τώρα αλλάξτε τιμές στα bits με το κουμπί Change Bits και συμπληρώστε τα παρακάτω: Πρώτη πρόταση: Glory is fleeting, but obscurity is forever Μετά από πόσες αλλαγές bit (flips) η πρόταση άλλαξε; Μετά από πόσες αλλαγές bit η πρόταση αλλοιώθηκε ώστε να γίνει ακατανόητη; Δεύτερη πρόταση: A mathematician is a device for turning coffee into theorems. Μετά από πόσες αλλαγές bit (flips) η πρόταση άλλαξε; Μετά από πόσες αλλαγές bit η πρόταση αλλοιώθηκε ώστε να γίνει ακατανόητη; c. ASCII Κωδικοποίηση και αλλοίωση από σφάλματα: The Tripling Code Στην ενότητα 5 αλλάζαμε τις τιμές των bits για τη δυαδική έκδοση του κειμένου μετά από την επανάληψη κάθε bit. Το πότε έγινε λάθος είναι εύκολο να το πούμε όταν τα δύο bits σε ένα ζευγάρι δεν είναι ίδια. Στην ενότητα 6 τριπλασιάζονται τα bits. Εάν μετά από τις αλλαγές των τιμών μερικών bits, δείτε μια τριάδα όπου όλα τα bit δεν είναι ίδια, τότε μπορείτε να πάρετε την πλειοψηφία και να διορθώσετε το λάθος. Μόνο εάν περισσότερα από ένα bit έχουν αλλάξει τιμή σε μια τριάδα τα λάθη δεν θα μπορούν να διορθωθούν. Δοκιμάστε να αλλάξετε τιμές σε bits χρησιμοποιώντας την μέθοδο tripling code των δύο παραπάνω προτάσεων. Μετά από πόσες αλλαγές bit η πρώτη πρόταση άλλαξε; Μετά από πόσες αλλαγές bit η πρώτη πρόταση αλλοιώθηκε ώστε να γίνει ακατανόητη; Μετά από πόσες αλλαγές bit η δεύτερη πρόταση άλλαξε; Μετά από πόσες αλλαγές bit η δεύτερη πρόταση αλλοιώθηκε ώστε να γίνει ακατανόητη; d. Σοφοί σύμβουλοι Ένας σουλτάνος έχει ένα συμβούλιο σοφών και θέλει να ελέγξει κατά πόσον είναι πραγματικά σοφοί. Καλώντας τους όλους στο παλάτι, τους ανακοινώνει ότι θα πρέπει να

68 περάσουν μια δοκιμασία για την επόμενη ημέρα, και στη συνέχεια προχωρεί στην περιγραφή της δοκιμής. Θα τους ζητήσει να σταθούν σε μια ευθεία γραμμή, ο ένας πίσω από τον άλλο, έτσι ώστε κάθε σοφός να μπορεί να δει όλους τους Συμβούλους μπροστά του, αλλά όχι πίσω από τον εαυτό του. Στη συνέχεια θα πρέπει όλοι με δεμένα τα μάτια, να τοποθετήσουν τα καπέλα στα κεφάλια τους. Κάθε καπέλο μπορεί να είναι είτε κόκκινο είτε μπλε. Στη συνέχεια, λύνονται τα μάτια όλων Σύμβουλων και κάθε σύμβουλος θα επιτρέπεται να πει, με τη σειρά του, μόνο μια λέξη:" μπλε "ή" κόκκινο " αυτή είναι η εικασία του Συμβούλου για το χρώμα του καπέλου που φοράει. Όλοι οι Σύμβουλοι θα είναι σε θέση να ακούσουν τις εικασίες των άλλων, αλλά δεν μπορούν (με ποινή θανάτου) να επικοινωνήσουν μεταξύ τους με οποιοδήποτε τρόπο. Αφού τους εξηγήσει όλα τα παραπάνω, ο σουλτάνος δίνει μια σειρά κατάταξης σε κάθε έναν από τους Συμβούλους, δείχνοντας ποιος θα πρέπει να μιλήσει πρώτος, δεύτερος,... Προσθέτει, επίσης, ότι η ομάδα των συμβούλων θα περάσει το τεστ, αν όχι περισσότερες από μια ατομική τους εικασία είναι λάθος. Σε αυτήν την περίπτωση θα θεωρηθούν πραγματικά σοφοί και η ανταμοιβή τους θα είναι πλούσια. Ωστόσο, εάν περισσότερες από μία απαντήσεις είναι λάθος, θα θεωρηθούν πρώην σοφοί και όλοι θα πρέπει να εκτελεστούν. Μετά από αυτή την ανακοίνωση, ο σουλτάνος αφήνει τους Σοφούς Συμβούλους του, για να συζητήσουν τη στρατηγική τους. Θα πρέπει να αποφασίσουν για την σειρά με την οποία θα σταθούν στη γραμμή, καθώς επίσης και για να αποφασίσουν τι θα πουν. Δώστε μια στρατηγική νίκης, αν ο σουλτάνος έχει δύο Σοφούς Συμβούλους. Δώστε μια στρατηγική νίκης, αν ο σουλτάνος έχει τρεις Σοφούς Συμβούλους

69 Λύσεις 2: Κωδικοποίηση ASCII Απαντήσεις εργαστηρίου. Πως είναι στη δεκαδική ASCII κωδικοποίηση το όνομα και το επώνυμό σας? Απάντηση : E l e n i B a b a n i Μπορείτε να χρησιμοποιήσετε τον ASCII Converter για να ελέγξετε την απάντησή σας και να δείτε την δυαδική αναπαράσταση, καθώς και ότι ο ASCII απαιτεί 7 bits ανά χαρακτήρα, διότι κωδικοποιεί πάνω από 64 χαρακτήρες, αλλά λιγότερους από 128. Οι περισσότεροι υπολογιστές, ωστόσο, χρησιμοποιούν κάποιο είδος εκτεταμένης ASCII κωδικοποίησης που στην πραγματικότητα χρησιμοποιεί 8 bits ανά χαρακτήρα. Ο ASCII μετατροπέας χρησιμοποιεί ένα από αυτά τα 8 bit. Ποια είναι η δυαδική κωδικοποίηση ASCII του πρώτου όνομά σας; Απάντηση : E l e n i Πρόβλημα 2: Κωδικοποίηση ASCII και αλλοίωση των δεδομένων λόγω λαθών

70 Από την ιστοσελίδα της κωδικοποίησης ASCII και αλλοίωσης δεδομένων λόγω λαθών, μπορείτε να δουλέψετε πάνω σε πολλά παραδείγματα κάνοντας κλικ στο κουμπί "Change bits. Μερικές φορές ένα bit που είχε αναστραφεί σε προηγούμενη σειρά αναστρέφεται και πάλι. Αυτό δεν δημιουργεί κανένα πρόβλημα (εάν το bit προερχόταν από την κοσμική ακτινοβολία και όχι από ένα κουμπί που θα πατούσατε εσείς ).Η πιθανότητα ότι το ίδιο bit θα πληγεί δύο φορές, δεν είναι μηδέν αν και είναι πολύ μικρή,. Κάνοντας κλικ στο κουμπί εσείς επιταχύνεται τη μοντελοποίησης σε σχέση με το τυχαίο bit που μπορεί να συμβεί φυσικά. Προτάσεις Πρόταση 1 : Glory is fleeting, but obscurity is forever Μετά από πόσες αλλαγές των bit η φράση αλλάζει; Μετά από την 1 η αλλαγή η πρόταση αλλάζει. Μετά από πόσες αλλαγές των bit η πρόταση αλλοιώνεται ώστε να γίνει ακατανόητη; Μετά από 15 αλλαγές, η πρόταση θα είναι "Glk2ù ms fdeetinf, ATD` iq obssurity! Æorevgò. ", η οποία είναι αρκετά ακατανόητη. Πρόταση 2 : A mathematician is a device for turning coffee into theorems. Μετά από πόσες αλλαγές των bit η φράση αλλάζει; Μετά την 1 η αλλαγή η πρόταση αλλάζει. Μετά από πόσες αλλαγές των bit η πρόταση αλλοιώνεται ώστε να γίνει ακατανόητη; Μετά από 35 αλλαγές, η πρόταση θα είναι " A m1thåmatncia!is`` dåvïce!fnr durninç confee altï 4h%oru}s. ", η οποία είναι αρκετά ακατανόητη. ASCII Κωδικοποίηση και αλλοίωση από σφάλματα: The Tripling Code Στην ιστοσελίδα Redundancy, γυρίζετε τα κομμάτια στη δυαδικό έκδοση ενός κειμένου αφού κάθε bit έχει διπλασιαστεί. Τώρα μπορείτε να πείτε πότε έγινε λάθος - τα δύο bits σε ένα ζευγάρι δεν είναι πανομοιότυπα πια. Στο Triple Code, τριπλασιάζονται τα bits. Εάν, μετά από μερικά bit που γυρίσει, θα δείτε μια τριάδα, όπου δεν είναι όλα τα bit πανομοιότυπα,έτσι μπορείτε να πάρετε μια πλειοψηφία και

71 να αποκαταστήσει την τάξη. Μόνο εάν περισσότερα από ένα bit έχoυν γυρίσει σε μια τριπλέτα θα αρχίσουμε να κάνουν λάθη. Δοκιμάστε να δώσετε bits χρησιμοποιώντας την έκδοση του Triple Code σε δύο προτάσεις σας. Απάντηση: Μετά από πόσες αλλαγές των bit η πρώτη φράση σας άλλαξε; Μετά από 41 αλλαγές Μετά από πόσες αλλαγές των bit η πρόταση αλλοιώνεται ώστε να γίνει ακατανόητη; Μετά από 174 κτυπήματα, η πρόταση έγινε GìOvy is"fhuetynn,"but,ob3curit{ is fordöez." Μετά από πόσες αλλαγές των bit η δεύτερη φράση σας άλλαξε; Μετά από 51 αλλαγές Μετά από πόσες αλλαγές των bit η πρόταση αλλοιώνεται ώστε να γίνει ακατανόητη; Μετά από 156 κτυπήματα, η φράση έγινε "A mithemathcian", δηλαδή, ένας από τους κωδικούς ASCII είχε μετατραπεί σε μια τελική γραμμή. Πρόβλημα 4 : Σοφοί σύμβουλοι Ένας σουλτάνος έχει ένα συμβούλιο σοφών και θέλει να ελέγξει κατά πόσον είναι πραγματικά σοφοί. Καλώντας τους όλους στο παλάτι, τους ανακοινώνει ότι θα πρέπει να περάσουν μια δοκιμασία για την επόμενη ημέρα, και στη συνέχεια προχωρεί στην περιγραφή της δοκιμής. Θα τους ζητήσει να σταθούν σε μια ευθεία γραμμή, ο ένας πίσω από τον άλλο, έτσι ώστε κάθε σοφός να μπορεί να δει όλους τους Συμβούλους μπροστά του, αλλά όχι πίσω από τον εαυτό του. Στη συνέχεια θα πρέπει όλοι με δεμένα τα μάτια, να τοποθετήσουν τα καπέλα στα κεφάλια τους. Κάθε καπέλο μπορεί να είναι είτε κόκκινο είτε μπλε. Θα τους ζητήσει να σταθούν σε μια ευθεία γραμμή, ο ένας πίσω από τον άλλο, έτσι ώστε κάθε σοφός να μπορεί να δει όλους τους Συμβούλους μπροστά του, αλλά όχι πίσω από τον εαυτό του. Στη συνέχεια θα πρέπει όλοι με δεμένα τα μάτια, να τοποθετήσουν τα καπέλα στα κεφάλια τους. Κάθε καπέλο μπορεί να είναι είτε κόκκινο είτε μπλε

72 Στη συνέχεια, λύνονται τα μάτια όλων Σύμβουλων και κάθε σύμβουλος θα επιτρέπεται να πει, με τη σειρά του, μόνο μια λέξη:" μπλε "ή" κόκκινο " αυτή είναι η εικασία του Συμβούλου για το χρώμα του καπέλου που φοράει. Όλοι οι Σύμβουλοι θα είναι σε θέση να ακούσουν τις εικασίες των άλλων, αλλά δεν μπορούν (με ποινή θανάτου) να επικοινωνήσουν μεταξύ τους με οποιοδήποτε τρόπο. Αφού τους εξηγήσει όλα τα παραπάνω, ο σουλτάνος δίνει μια σειρά κατάταξης σε κάθε έναν από τους Συμβούλους, δείχνοντας ποιος θα πρέπει να μιλήσει πρώτος, δεύτερος,... Προσθέτει, επίσης, ότι η ομάδα των συμβούλων θα περάσει το τεστ, αν όχι περισσότερες από μια ατομική τους εικασία είναι λάθος. Σε αυτήν την περίπτωση θα θεωρηθούν πραγματικά σοφοί και η ανταμοιβή τους θα είναι πλούσια. Ωστόσο, εάν περισσότερες από μία απαντήσεις είναι λάθος, θα θεωρηθούν πρώην σοφοί και όλοι θα πρέπει να εκτελεστούν. Μετά από αυτή την ανακοίνωση, ο σουλτάνος αφήνει τους Σοφούς Συμβούλους του, για να συζητήσουν τη στρατηγική τους. Θα πρέπει να αποφασίσουν για την σειρά με την οποία θα σταθούν στη γραμμή, καθώς επίσης και για να αποφασίσουν τι θα πουν. Μπορείτε να δώστε μια στρατηγική νίκης, αν ο σουλτάνος έχει δύο Σοφούς Συμβούλους; Απάντηση: Ο σύμβουλος που θα επιλεγεί να μιλήσει πρώτος θα είναι από τη γραμμή στο τέλος, έτσι θα μπορεί να δει το καπέλο του άλλου Συμβούλου και να πει "κόκκινο", αν βλέπει ένα κόκκινο καπέλο και "μπλε" αν βλέπει ένα μπλε καπέλο. Ο δεύτερος Σύμβουλος απλώς επαναλαμβάνει ό, τι κι ο πρώτος, κι έτσι και οι δύο δηλώνουν ότι είναι πραγματικά σοφοί. Μπορείτε να δώστε μια στρατηγική νίκης, αν ο σουλτάνος έχει τρεις Σοφούς Συμβούλους; Απάντηση: Ο σύμβουλος που θα επιλεγεί να μιλήσει πρώτος θα είναι από τη γραμμή στο τέλος, έτσι θα μπορεί να δει τα καπέλα των άλλων δύο Συμβούλους και να πει "κόκκινο" αν βλέπει

73 τα δύο καπέλα έχουν το ίδιο χρώμα και "μπλε" αν τα δύο καπέλα έχουν διαφορετικά χρώματα. Ο δεύτερος σύμβουλος για να μιλήσει (ο οποίος έχει παραταχθεί στη μέση), παρατηρεί το χρώμα του καπέλο του τρίτου Σύμβουλος και δηλώνει το χρώμα. Εάν ο πρώτος σύμβουλος είπε «κόκκινο» (πράγμα που σημαίνει ότι ταιριάζουν με τον δεύτερο και τον τρίτο Σύμβουλο.) δηλώνει το άλλο χρώμα, αν ο πρώτος σύμβουλος είπε «μπλε» (πράγμα που σημαίνει ότι τα καπέλα των δεύτερου και τρίτου Συμβούλους δεν ταιριάζουν). Αν ο πρώτος σύμβουλος είπε «κόκκινο», ο τελευταίος Σύμβουλος επαναλαμβάνει αυτό που είπε ο δεύτερος σύμβουλος.αν ο πρώτος σύμβουλος είπε «μπλε», ο τελευταίος Σύμβουλος δηλώνει το άλλο χρώμα απ αυτό που είπε ο δεύτερος σύμβουλος

74 Άσκηση 3: Κωδικοποίηση Hamming 1. Σκοποί και στόχοι Να διερευνηθεί η ανίχνευση και διόρθωση σφαλμάτων με την χρήση της κωδικοποίησης Hamming. 2. Κωδικοποίηση Hamming Είδαμε στην εργαστηριακή άσκηση 2 ότι η επανάληψη του κάθε bit τρεις φορές δεν μας επιτρέπει να εντοπίζουμε και να διορθώνουμε τα λάθη, γιατί αυτό σημαίνει ότι χρειαζόμαστε τρεις φορές περισσότερο μνήμη. Αυτός είναι ο λόγος που οι μαθηματικοί εργάζονται για την ανάπτυξη άλλων κωδικών διόρθωσης σφαλμάτων, ή τρόπους που κωδικοποιούν τα δεδομένα σε ελαφρώς μεγαλύτερα κωδικοποιημένα δεδομένα τα οποία περιέχουν πλεονάζοντα bits έτσι ώστε τα λάθη να μπορούν να διορθωθούν. Ένα απλό παράδειγμα είναι ο (4,7) κώδικας Hamming που θα συζητήσουμε παρακάτω. Ο κώδικας Hamming αντικαθιστά κάθε ομάδα των 4 bits με μια ομάδα από 7 bits (αυτό σημαίνει ότι πάλι χρειαζόμαστε περισσότερη μνήμη, αλλά χρειαζόμαστε λιγότερη μνήμη σε σχέση με την άσκηση 2). Λειτουργία: εάν δίνεται μια ομάδα 4 bits b1 b2 b3 b4, κατασκευάζουμε μια ομάδα από 7 bits: b1 b2 b3 b4 b5 b6 b7. Τα πρώτα 4 bits είναι τα παλιά 4 bits, ενώ τα νέα bits b5 b6 b7 υπολογίζονται ως εξής: b5 = b1 b2 b3 b6 = b1 b3 b4 b7 = b2 b3 b4-67 -

75 Κάθε πιθανή ομάδα από 7 bits που μπορεί να κατασκευαστεί με τον παραπάνω τρόπο ονομάζεται κωδική λέξη. Ας κάνουμε μερικά παραδείγματα. Βρείτε τις κωδικές λέξεις που αντιστοιχούν σε αυτούς τους τέσσερις συνδυασμούς bit. Αφού δώσετε την απάντησή σας, πατήστε εδώ για να δείτε αν είναι σωστή: 3. Αποκωδικοποίηση Hamming Υπάρχουν 16 πιθανές κωδικές λέξεις : Ας δούμε πώς λειτουργεί η αποκωδικοποίηση. Πάλι θα πάρουμε την πλειοψηφία των bit. Μια ομάδα από 7 bits μπορεί να είναι είτε μία από τις 16 κωδικές λέξεις, είτε μπορεί να είναι μια αλλοιωμένη κωδική λέξη. Σε αυτή την περίπτωση, βρίσκουμε την κωδική λέξη στη λίστα όλων των πιθανών 16 κωδικών λέξεων που διαφέρει λιγότερο

76 Για παράδειγμα, εάν η κωδική μας λέξη είναι , τότε η κωδική λέξη που διαφέρει λιγότερο είναι η (διαφέρει μόνο σε ένα bit), και έτσι η αποκωδικοποίηση δίνει τα πρώτα 4 bits αυτής της κωδικής λέξης, δηλαδή Ας κάνουμε μερικά παραδείγματα. Αφού δώσετε την απάντηση σας πατήστε εδώ για να δείτε αν είναι σωστή: 4. Κώδικας Hamming και διόρθωση σφαλμάτων Τώρα, ας δούμε ένα παράδειγμα. Πληκτρολογήστε κάποιο κείμενο παρακάτω. Θα δείτε πως είναι στη δυαδική του μορφή και στη συνέχεια θα κωδικοποιηθεί χρησιμοποιώντας τον κώδικα Hamming. Αλλάξτε τις τιμές κάποιων bits και μπορείτε να δείτε τα κατεστραμμένα bits με * στο Flipped window και τα 0 ή 1 στο Altered window. Παρακάτω εισάγετε κάποιες δυαδικές λέξεις και δείτε την απάντηση: 5. Ερωτήσεις a. Κωδικοποίηση Hamming Αφού έχετε δουλέψει τα προηγούμενα παραδείγματα για την κωδικοποίηση Hamming, συμπληρώστε τον παρακάτω πίνακα: Συνδυασμοί με 4 bit 7 bit Hamming codeword

77 1111 b. Απόδειξη της κωδικοποίησης Hamming 4-7 Ας προσπαθήσουμε να εντοπίσουμε κάποια λάθη. Μπορείτε φυσικά να προσπαθήσετε να βρείτε μια σωστή κωδική λέξη από τον πίνακα των 16 κωδικών λέξεων, όπου η καθεμία έχει 7 bits, και στην συνέχεια να επιλέξτε την πλησιέστερη. Ή μπορείτε να κάνετε τα εξής: Υπολογίστε τα παρακάτω : d1 = b1 b2 b3 b5 d2 = b1 b3 b4 b6 d3 = b2 b3 b4 b7 Εάν τα d1, d2 και d3 είναι ίσα με μηδέν, τότε αυτό είναι ήδη μια κωδική λέξη (δεν υπάρχει τίποτα για να διορθώσουμε). Εάν μόνο ένα από τα d1, d2, d3 είναι διαφορετικό από το μηδέν, τότε θα πρέπει να διορθώσουμε ένα από τα τρία τελευταία bit (b5 εάν d1 = 1, b6 εάν d2 = 1, b7 εάν d3 = 1). Εάν δύο από τα d1 d2, d3 είναι διαφορετικά από το μηδέν, τότε θα πρέπει να διορθώσουμε το bit που εμφανίζεται στους ορισμούς των δύο bits που έχουν την τιμή 1, αλλά όχι το άλλο. Για παράδειγμα: εάν d1 = d2 = 1, αλλά d3 = 0, τότε πρέπει να διορθώσουμε το b1, επειδή εμφανίζεται και στα δύο d1 και d2, αλλά όχι στην d3. Εάν τα d1, d2, d3 είναι και τα τρία διαφορετικά από το μηδέν, τότε θα πρέπει να διορθώσουμε το b3. Μπορείτε να εξηγήσετε γιατί αυτή η διαδικασία πρέπει να λειτουργήσει; Δηλαδή, δείξτε ότι ανεξάρτητα από το ποιο bit αλλάζει τιμή, η παραπάνω διαδικασία διορθώνει αυτή την αλλαγή. Θα πρέπει επίσης να δείξετε ότι όταν δεν έχουμε αλλαγή στην τιμή κάποιου bit, η παραπάνω διαδικασία εξακολουθεί να λειτουργεί. c. Διόρθωση σφαλμάτων χρησιμοποιώντας κωδικοποίηση Hamming Τώρα δοκιμάστε να διορθώσετε τα παρακάτω παραδείγματα: η τελευταία στήλη του παρακάτω πίνακα είναι τα bits b1 b2 b3 b4 από τα οποία ξεκίνησε η κωδικοποίηση. Μπορούν να υπολογιστούν αυτά τα bits, διαγράφοντας τα 3 τελευταία ψηφία από την κωδική λέξη Hamming:

78 7 bit string closest Hamming codeword 4 bit string d. A Guessing Game Κάποιος ας σκεφτεί έναν αριθμό μεταξύ 1 και 16. Οι υπόλοιποι μπορούν να τον ρωτήσουν 7 ερωτήσεις των οποίων η απάντηση θα είναι "ναι ή όχι". Υπάρχει η δυνατότητα για λάθος απάντηση μια μόνο φορά. Σχεδιάστε την στρατηγική που θα πρέπει να ακολουθηθεί για να μαντέψετε τον αριθμό (Υπόδειξη: ο κώδικας Hamming έχει 16 κωδικές λέξεις και κάθε μια έχει μήκος 7 bits) e. Κωδικοποίηση ASCII και αλλοίωση των δεδομένων από λάθη: Ο κώδικας Hamming Ας δούμε την διόρθωση σφαλμάτων με την χρήση του κώδικα Hamming: Δώστε πάλι μια φράση. Ο υπολογιστής την κωδικοποιεί ως εξής: πρώτον, όπως σημειώθηκε προηγουμένως, η δυαδική κωδικοποίηση ASCII χρησιμοποιεί 8 bits για κάθε χαρακτήρα. Η μεγάλη σειρά από bits που λαμβάνεται με την τοποθέτηση όλων αυτών των 8 bit string η μια δίπλα στην άλλη, κόβεται στην συνέχεια σε ομάδες των 4 bit (επειδή ο κώδικας Hamming λειτουργεί με ομάδες των 4 bit), και κάθε μια από αυτές αντικαθίσταται από την αντίστοιχη κωδική λέξη Hamming των 7 bits. Τώρα μπορείτε να αλλάξετε τιμές σε bits, για να δείτε αν το κείμενο θα αλλοιωθεί, και στην συνέχεια τι θα γίνει με την αποκωδικοποίηση. Δοκιμάστε το με τις ίδιες δύο προτάσεις που χρησιμοποιήσατε στην εργαστηριακή Άσκηση 2. Μετά από πόσα αλλαγές bit η πρώτη φράση άλλαξε; Μετά από πόσα αλλαγές bit η πρώτη φράση αλλοιώθηκε τόσο ώστε να γίνει ακατανόητη;

79 Μετά από πόσα αλλαγές bit η δεύτερη φράση άλλαξε; Μετά από πόσα αλλαγές bit η δεύτερη φράση αλλοιώθηκε τόσο ώστε να γίνει ακατανόητη; f. Σύγκριση των δυο κωδικοποιήσεων Θα συγκρίνουμε τώρα τον 4-7 κώδικα Hamming με τον τριπλασιασμό των bit του κώδικα ASCII που είδαμε στην προηγούμενη εργαστηριακή άσκηση: Ποιος είναι ο λόγος του μήκους της κωδικοποιημένης ομάδας bit με Hamming προς την μη κωδικοποιημένη ομάδα bit; Ποιος είναι ο λόγος του μήκους της κωδικοποιημένης ομάδας bit με ASCII (tripling code) προς την μη κωδικοποιημένη ομάδα bit; Για κάθε μία από τις δύο προτάσεις που χρησιμοποιήσατε παραπάνω και για κάθε σύστημα κωδικοποίησης (τριπλασιασμός bit με ASCII και Hamming), υπολογίστε τον λόγο του αριθμού των αλλαγών σε bit που προκάλεσε την αποκωδικοποιημένη πρόταση να αλλάξει προς το συνολικό αριθμό των bits στην δυαδική έκδοση της αρχικής πρότασης σας (πριν την κωδικοποίηση) και να συμπληρώσετε τον παρακάτω πίνακα: Πρόταση Αποτέλεσμα % Πρώτη Δεύτερη Πρώτη Δεύτερη Number of bits flips for one change (tripling) ASCII bit length Number of bits flips for one change (tripling) ASCII bit length Number of bits flips for one change (Hamming) ASCII bit length Number of bits flips for one change (Hamming) ASCII bit length Συγκρίνετε τα αποτελέσματα. Ποιά είναι τα πλεονεκτήματα και τα μειονεκτήματα των δύο κωδίκων όταν τους συγκρίνουμε μεταξύ τους;

80 Λύσεις 3: Κωδικοποίηση Hamming Πρόβλημα 5 : Συμπλήρωση του πίνακα Συνδυασμοί με 4 bit 7 bit Hamming codeword Πρόβλημα 6 : Απόδειξη του 4-7 κώδικα Hamming. Ας προσπαθήσουμε τώρα να εντοπίσουμε κάποια λάθη. Μπορείτε, φυσικά, να προσπαθήσετε να βρείτε μια σωστή κωδική λέξη από την πλήρη λίστα των κωδικών λέξεων, το καθένα με 7 ψηφία τους, και επιλέγοντας την πλησιέστερη. Ή μπορείτε να κάνετε τα εξής : Υπολογίστε d1 = b1 b2 b3 b5 d2 = b1 b3 b4 b6 d3 = b2 b3 b4 b7 Εάν d1, d2 και d3 είναι όλα ίσα με μηδέν, τότε αυτό είναι ήδη μια κωδική λέξη - τίποτα για να διορθώσετε. Εάν μόνο ένα από τα d1, d2, d3 είναι διαφορετικό από το μηδέν, τότε θα πρέπει να διορθώσει ένα από τα τελευταία τρία δυαδικά ψηφία (b5, εάν d1 = 1, b6 αν d2 = 1, b7 εάν d3 = 1). Εάν δύο από, d2 d1, d3 είναι διαφορετικό από το μηδέν, τότε θα πρέπει να διορθώσει το bit που εμφανίζεται στους ορισμούς των δύο δυαδικά ψηφία D-1, που είναι, αλλά όχι στο άλλο

81 για παράδειγμα: εάν d1 = d2 = 1, αλλά d3 = 0, τότε πρέπει να διορθώσει το b1, επειδή εμφανίζεται και στα δύο d1 και d2, αλλά όχι στο d3. Αν d1, d2, d3 είναι τα τρία διαφορετικά από το μηδέν, τότε θα πρέπει να το διορθώσουμε b3. Μπορείτε να εξηγήσετε γιατί αυτή η διαδικασία πρέπει να δουλέψει; Δηλαδή, μπορείτε να αποδείξετε ότι δεν έχει σημασία ποια bit έχουν γυρίσει, αλλά η διαδικασία που διορθώνει. Μην ξεχάσετε να δείξετε ότι όταν δεν αντιστρέφεται κάποιο bit, η διαδικασία εξακολουθεί να λειτουργεί. Απάντηση: η 7-ψήφια ακολουθία λέξεων που μας δίνεται είναιη b1 b2 b3 b4 b7 b6 b5. Αυτό μπορεί να είναι μια κωδική λέξη, ή μπορεί να είναι η αλλοίωση μιας κωδική λέξη με ένα γύρισμα ενός bit.εάν το bit δεν άλλαξε από τη γνήσια κωδική λέξη, τότε το b5 θα πρέπει να είναι ίσο με b1 b2 b3, έτσι ώστε d1=b1 b2 b3 b5 όπου ισούται με b5 5, η οποία είναι μηδενική. Για τον ίδιο λόγο, τα d2 και d3 θα ήταν επίσης μηδέν. Έτσι, αν τα d1, d2 και d3 είναι ίσαμε το μηδέν, τότε έχουμε ήδη κωδική λέξη, και δεν χρειάζεται να διορθώσει τίποτα.εάν d1 = 1, αλλά d2 = d3 = 0, τότε αυτό δείχνει ότι το b5 δεν είναι ίσo με το b1 b2 b3. Επειδή όλα είναι εντάξει με τα b6 και b7 μπορoύμε να αλλάξουμε ταb1 b2 b3 b4 b5 b6 b7 σε μια σωστή κωδική λέξη με μια αλλαγή στο b5.το ίδιο σκεπτικό ισχύει και στην περίπτωση d1 = d3 = 0, d2 = 1 (Flip b6)ή αν = d2 d1 = 0, d3 = 1 (Flip b7)εάν δύο από τα d2 d1, d3 είναι 1, και το τρίτο είναι 0, τότε θα μπορούσαμε φυσικά να πάρoυμε μια σωστή κωδική λέξη με μια αλλαγή στα δύο από τα τρια τελικά bits (για παράδειγμα, b5 και b6, εάν τα d1 = d2 = 1). Αλλά αυτό δεν επιτρέπεται. Μπορούμε να αναστρέψουμε μόνο ένα bit. Πρέπει λοιπόν να εξετάσουμε τα προηγούμενα δυαδικά ψηφία b1, b2, b3 και b4. Αν, για παράδειγμα, d2 = d3 = 1, d1 = 0, τότε ξέρουμε ότι το πρόβλημα πρέπει να βρίσκεται είτε στα b3 ή b4, αφού αυτά είναι τα κομμάτια που έρχονται σε δύο στα d2 και d3. Αλλά σε καμία περίπτωση το λάθος bit δεν μπορεί να στο b3, γιατί αυτό συμβαίνει στο d1, το οποίο είναι μια χαρά.(αν αναστρέψουμε τα b3, d1 θα γίνει λάθος, έτσι λοιπόν δεν τα πειράζουμε) Έτσι, το λάθος bit πρέπει να είναι το d4. Το ίδιο ισχύει και στις περιπτώσεις d1 = d2 = 1, d3 = 0 (Flip b1) και d1 = d3 = 1, d2 = 0 (Flip b2).αν και οι τρεις d1, d2, d3 είναι 1, τότε πρέπει να αναστρέψετε το μόνο κομμάτι που εμφανίζεται σε όλες τις τρεις το οποίο είναι το b3. Πρόβλημα 7. Διόρθωση σφαλμάτων χρησιμοποιώντας κώδικες Hamming

82 Τώρα προσπαθήστε να διορθώσετε τα παρακάτω παραδείγματα - τα 4 bit εγχόρδων που ζητούνται στην τελευταία στήλη είναι τα string (b1 b2 b3 b4) από τα οποία ξεκινήσαμε την κωδικοποίηση? Μπορείτε να τα βρείτε διαγράφοντας τα 3 τελευταία ψηφία από τον Hamming της κωδικής λέξης: Απάντηση: 7 bit string closest Hamming codeword 4 bit string Πρόβλημα 8. Ένα παιχνίδι εικασίας. Σκεφτείτε έναν αριθμό μεταξύ 1 και 16. Μπορείτε να με ρωτήσετε 7 ερωτήσεις των οποίων η απάντηση θα είναι "ναι ή όχι"; Δεν πρέπει να δώσετε μια ειλικρινή απάντηση σε κάθε μία από τις 7 ερωτήσεις σας, αλλά μπορείτε να πείτε ψέματα το πολύ μία φορά. Χαράξτε τη στρατηγική σας για να μαντέψει τον αριθμό μου. ( ο κώδικας Hamming έχει 16 κωδικές λέξεις και κάθε λέξη έχει μήκος 7 bits). Απάντηση: Εκχώρηση μιας Hamming κωδικής λέξης σε κάθε αριθμό (16 κωδικές λέξεις, 16 αριθμοί). Τα επτά ερωτήματα είναι τα εξής: Ποιο είναι το πρώτο bit στην αναπαράσταση του αριθμού στον κώδικα Hamming; Ποιο είναι το δεύτερο bit στην αναπαράσταση του αριθμού στον κώδικα Hamming; Ποιο είναι το τρίτο bit στην αναπαράσταση του αριθμού στον κώδικα Hamming;

83 Ποιο είναι το τέταρτο bit στην αναπαράσταση του αριθμού στον κώδικα Hamming; Ποιο είναι το πέμπτο bit στην αναπαράσταση του αριθμού στον κώδικα Hamming; Ποιο είναι το έκτο bit στην αναπαράσταση του αριθμού στον κώδικα Hamming; Ποιο είναι το έβδομο bit στην αναπαράσταση του αριθμού στον κώδικα Hamming; Στην καλύτερη περίπτωση μία από αυτές τις απαντήσεις θα είναι λάθος, χρησιμοποιήστε τη μέθοδο που περιγράφεται στο πρόβλημα 6 για να διορθώσετε το ενδεχόμενο της λάθος απάντηση. Η κωδική λέξη Hamming που θα προκύψει θα αντιστοιχεί στο σωστό αριθμό. Πρόβλημα 9. Κωδικοποίηση ASCII και αλλοίωση των δεδομένων από λάθη: Ο κώδικας Hamming Πληκτρολογείστε μια πρόταση. Ο υπολογιστής την κωδικοποιεί ως εξής: πρώτον, όπως σημειώθηκε προηγουμένως, η δυαδική κωδικοποίηση ASCII χρησιμοποιεί 8 bits για κάθε χαρακτήρα. Το μεγάλο string που λαμβάνεται για να τοποθετήσει όλα αυτα τα 8 bit strings δίπλα το ένα δίπλα στο άλλο στη συνέχεια κόβεται σε 4 κομμάτια bit (επειδή ο κώδικας Hamming κώδικας λειτουργεί με 4 κομμάτια bit), και κάθε ένα από αυτά αντικαθίσταται από την αντίστοιχη κωδική λέξη Hamming με 7 bits. Τώρα μπορείτε να αναστρέψετε τα bits και πάλι, για να δείτε αν το κείμενο θα καταστραφεί, και πόσο, αφού ο υπολογιστής αποκωδικοποιεί κατεστραμμένη έκδοση του δυαδικού σας. Δοκιμάστε το με τις ίδιες δύο φράσεις που χρησιμοποιούνται στον Triple Code: Απάντηση: Μετά από πόσες αλλαγές των bit η πρώτη φράση σας άλλαξε; Μετά από 11 αλλαγές. Μετά από πόσες αλλαγές των bit η πρόταση αλλοιώνεται ώστε να γίνει ακατανόητη; Μετά από 89 αλλαγές, η πρόταση έγινε, "GLV είναι "Glv is#flpeting, ut ibscõrity nw*foreveâ&". Μετά από πόσες αλλαγές των bit η δεύτερη φράση σας άλλαξε; Μετά από πόσες αλλαγές των bit η πρόταση αλλοιώνεται ώστε να γίνει ακατανόητη; Μετά από 116 αλλαγές, η πρόταση έγινε, "A ibthemti $Åvice*fo21turnikg c_fff` Yct t(eorems?". aå(is`a

84 Πρόβλημα 10. Σύγκριση κωδικοποιητή. Εμείς θα συγκρίνει τώρα τον 4-7 κώδικα Hamming με τον Triple Code: Απάντηση: Ποια είναι η αναλογία του μήκους του μιας Hamming κωδικοποιημένης συμβολοσειρά με το μήκος της μη κωδικοποιημένης συμβολοσειρά ; Στον κώδικα Hamming κάθε ομάδα των 4 bits γίνεται μια ομάδα από 7 bits, έτσι ώστε η αναλογία να είναι 7/4 = 1,75 Ποια είναι η αναλογία του μήκους του μιας συμβολοσειράς που κωδικοποιείται με Triple Code με το μήκος μιας μη κωδικοποιημένης συμβολοσειρά ; Στον Triple Code παίρνουμε 3 bits για κάθε κομμάτι που ξεκίνησε, έτσι ώστε η αναλογία να είναι 3. Για κάθε μία από τις δύο προτάσεις και για κάθε σύστημα κωδικοποίησης (Triple Code και Hamming), υπολογίζουμε την αναλογία μεταξύ του αριθμού των bit flips που προκάλεσε η αποκωδικοποιημένη πρόταση για να αλλάξετε το συνολικό αριθμό των bits στην δυαδική έκδοση της αρχικής πρότασής σας (πριν από την κωδικοποίηση ) και να συμπληρώσετε τον παρακάτω πίνακα: Προτάσεις Αναλογία= % Πρώτη Δεύτερη Τρίτη Τέταρτη # of bits flips for one change (tripling) ASCII bit length # of bits flips for one change (tripling) ASCII bit length # of bits flips for one change (Hamming) ASCII bit length # of bits flips for one change (Hamming) = 11.7% = 10.5% = 3.2% = 5.5%

85 ASCII bit length 488 Συγκρίνετε αυτά τα δύο αποτελέσματα. Ποια νομίζετε ότι είναι τα πλεονεκτήματα και τα μειονεκτήματα αυτών των δύο κωδίκων όταν τα συγκρίνουμε με άλλο; Ο κώδικας Hamming οδηγεί σε αλλοίωση μετά από ένα μικρότερο αριθμός των bit από τον Triple Code και επίσης χρειάζεται λιγότερη πρόσθετη μνήμη (ο συντελεστής διαστολής είναι 1.75 αντί 3). Έτσι, ο κώδικας Hamming έχει το πλεονέκτημα ότι χρησιμοποιεί λιγότερη μνήμη, αλλά δεν μπορεί να πάρει πιο πολλά χτυπήματα. Σε κάθε περίπτωση, οι κώδικες Hamming χρησιμοποιούνται σε εφαρμογές όπου χτυπήματα δεν είναι συχνά σε όλα, έτσι το γεγονός ότι χρησιμοποιούν λιγότερη μνήμη τους κάνει καλύτερους από τον Triple Code

86 Άσκηση 4: Κωδικοποίηση Lempel- Ziv 1. Σκοποί και στόχοι Να διερευνηθεί η συμπίεση δεδομένων με την χρήση της κωδικοποίησης Lempel-Ziv. 2. Αλγόριθμος Lempel-Ziv: Ανάλυση μιας ακολουθίας συμβόλων (χωρισμός των συμβόλων σε ομάδες - strings) Ο πρώτος τύπος συμπίεσης που θα δούμε είναι μια απλή έκδοση του αλγόριθμου Lempel- Ziv (LZ) όπως ονομάστηκε από τους εφευρέτες του. Αυτή η ιδέα βρίσκεται στο επίκεντρο πολλών προγραμμάτων συμπίεσης (πχ.zip) που χρησιμοποιούνται στους υπολογιστές. Σε αυτή την συμπίεση χωρίς απώλειες, τα δεδομένα είναι πάρα πολύ χρήσιμα και δε πρέπει να χαθούν. Συνεπώς, τα συστήματα κωδικοποίησης χρησιμοποιείται για να συρρικνωθούν τα δεδομένα με τέτοιο τρόπο ώστε να μπορούν να επιστρέψουν στην αρχική τους μορφή κατά την αποκωδικοποίηση. Στο συγκεκριμένο εργαστήριο θα χρησιμοποιήσουμε μια απλή έκδοση του LZ. Το πρώτο βήμα στον αλγόριθμο LZ είναι να εξετάσουμε τα δεδομένα (χρησιμοποιούμε _ για τα κενά), για παράδειγμα: If_one_doctor_doctors_another_doctor,_does_the_doctor_who_doctors_the_doctor_ doctor_the_doctor_the_way_the_doctor_he_is_doctoring_doctors?_or_does_he_doctor _ the_doctor_the_way_the_doctor_who_doctors_doctors? Βάζουμε κόμματα για να χωρίσουμε τα δεδομένα σε ομάδες. Ο κανόνας είναι απλός: αν η ομάδα συμβόλων (string) που αρχίζει μετά το προηγούμενο κόμμα και τελειώνει με το χαρακτήρα που εξετάζεται δεν έχει ληφθεί υπόψη προηγουμένως, τότε δεν βάζουμε κόμμα και προχωράμε στον επόμενο χαρακτήρα. Αν το string, το οποίο τελειώνει με τον χαρακτήρα που εξετάζεται, δεν έχει ληφθεί υπόψη προηγουμένως, τότε τοποθετήστε ένα κόμμα μετά από το χαρακτήρα που εξετάζεται και συνεχίστε τώρα με το νέο κόμμα. Αυτό σημαίνει ότι κάθε

87 κόμμα που εισάγεται θα συνοδεύεται από έναν χαρακτήρα για τον οποίο τo string μεταξύ του χαρακτήρα και του προηγούμενου κόμματος, λήφθηκε υπόψη προηγουμένως, αλλά το string μαζί με τον χαρακτήρα δεν λήφθηκε υπόψη προηγουμένως. Ξεκινάμε με ένα κόμμα, επειδή το "κενό string" δεν το είχαμε δει ξανά πριν ξεκινήσουμε. Στη συνέχεια, βάζουμε ένα κόμμα μετά τον πρώτο χαρακτήρα Ι γιατί εμφανίζεται για πρώτη φορά. Έπειτα βάζουμε ένα κόμμα μετά τον χαρακτήρα f, μετά το κενό και μετά από τον χαρακτήρα o και ούτω καθεξής. Όταν φτάσουμε στο επόμενο κενό (αυτός είναι ο πρώτος χαρακτήρας που επαναλαμβάνεται), προσθέσετε τον επόμενο χαρακτήρα που είναι το d και εισαγάγετε ένα κόμμα μετά το d και συνεχίστε την διαδικασία:,i,f,_,o,n,e,_d,oc,t,or,_do,c,to,r,s,_a,no,th,er,_doc,tor,_doe,s_,the,_doct,or_,w,h,o_, d,oct,ors,_t,he,_docto,r_,do,ct,or_t,he_,doc,tor_,the_,wa,y,_th,e_,doct,or_h,e_i,s_d, octo,ri,ng,_doctor,s?,_o,r_d,oe,s_h,e_d,octor,_the,_doctor_,the_w,a,y_,the_d,octor_, wh,o_d,octors,_doctors,? 3. Αλγόριθμος Lempel-Ziv: Κωδικοποίηση ομάδων συμβόλων (strings) Για το παραπάνω παράδειγμα η ανάλυση (δηλαδή η ομαδοποίηση των συμβόλων) ήταν το πρώτο βήμα. Στη συνέχεια, αριθμούμε τα string, αριθμώντας το πρώτο κενό string με το μηδέν. Πρόθεμα είναι το κομμάτι του string πριν από τον τελευταίο χαρακτήρα (σύμβολο). Η κωδικοποιημένη ομάδα συμβόλων (string) βρίσκεται παίρνοντας τον αριθμό της θέση του προθέματος, και μετά από τον τελευταίο χαρακτήρα του string που εξετάζουμε. Συμπληρώστε τον παρακάτω πίνακα (χρησιμοποιούμε το "_" σύμβολο για να δείξουμε το κενό διάστημα):

88 Position Number Position Number String Prefix Coded String of this string of Prefix I 1 empty 0 0I f 2 empty 0 0f _ 3 empty 0 0_ o 4 empty 0 0o n 5 empty 0 0n e 6 empty 0 0e _d 7 _ 3 3d oc 8 o 4 4c T 9 or 10 _do 11 c 12 to 13 r 14 s 15 _a 16 no 17 th 18 er 19 _doc

89 4. Αλγόριθμος Lempel-Ziv: Κωδικοποίηση Η LZ-κωδικοποιημένη έκδοση στο παράδειγμα της προηγούμενης ενότητας σχηματίζεται με όλα τα κωδικοποιημένα string (από την τελευταία στήλη του πίνακα). Δηλαδή για: If_one_doctor_doctors_another_doctor,_does_the_doctor_who_doctors_the_doctor_ doctor_the_doctor_the_way_the_doctor_he_is_doctoring_doctors?_or_does_he_doctor _ the_doctor_the_way_the_doctor_who_doctors_doctors? γίνεται: 0I0f0_0o0n0e3d4c0t4r7o0c9o0r0s3a5o9h6r11c13r0,11e15_18e20t10_0w0h4_0d8t10s3t29 e26o 14_31o12t27t35_38c21_25_28a0y34h6_42t27h48i24d32o14i5g36r15?3O37d4e24h48d53r 47e56_ 44w0a46_44d63_28h30d63s56s0? Όπως μπορείτε να δείτε, τα κωδικοποιημένα δεδομένα είναι λίγο λιγότερα από τα αρχικά. Αυτό οφείλεται στο γεγονός ότι τα αρχικά δεδομένα είχαν πολλά επαναλαμβανόμενα κομμάτια. Για μια ακολουθία δεδομένων όπως η παραπάνω η οποία είναι σχετικά μικρή, η κωδικοποιημένη ακολουθία είναι συνήθως μεγαλύτερη από την αρχική. Για αρχεία της τάξης των εκατομμυρίων bits, ο αλγόριθμος συμπιέζει γενικά σε ποσότητες μικρότερες από 50%. Το ποσοστό της συμπίεσης εξαρτάται από το αρχείο. Για να συνοψίσουμε, έχουμε 3 βήματα: 1. ανάλυση 2. κωδικοποίηση ομάδων συμβόλων 3. ένωση των κωδικοποιημένων ομάδων συμβόλων σε μια ακολουθία δεδομένων

90 5. Αλγόριθμος Lempel-Ziv: Κωδικοποίηση κειμένου με bits Ας υποθέσουμε ότι το κείμενό μας δεν περιέχει μόνο γράμματα και σημεία στίξης, αλλά και bits. Πώς θα μπορέσουμε να διακρίνουμε στα κωδικοποιημένα δεδομένα εάν ένα ψηφίο είναι ο τελευταίος χαρακτήρας μιας ομάδας συμβόλων ή μέρος του αριθμού αναφοράς του προθέματος; Υπάρχει μια εύκολη λύση στο πρόβλημα αυτό: όλοι οι αριθμοί αναφοράς να έχουν ένα σταθερό μήκος, προσθέτοντας μηδενικά όταν χρειάζεται. Στο παράδειγμά μας έχουμε λιγότερα από 100 strings, οπότε μπορούμε να χρησιμοποιήσουμε δύο δεκαδικά ψηφία για κάθε αριθμό αναφοράς. Στο παράδειγμά μας τα αρχικά δεδομένα: If_one_doctor_doctors_another_doctor,_does_the_doctor_who_doctors_the_doctor_doc tor_ the_doctor_the_way_the_doctor_he_is_doctoring_doctors?_or_does_he_doctor_the_do ctor_ the_way_the_doctor_who_doctors_doctors? γίνονται: 00I00f00_00o00n00e03d04c00t04r07o00c09o00r00s03a05o09h06r11c13r00,11e15_ 18e20t10_00w00h04_00d08t10s03t29e_26o14_31o12t27t35_38c21_25_28a00y34h06_ 42t27h48i24d32o14i05g36r15?03O37d04e24h48d53r47e56_44w00a46_44d63_ 28h30d63s56s00? Έτσι, μπορούμε να χρησιμοποιήσουμε τα ίδια σύμβολα για το πρόθεμα και για τον τελευταίο χαρακτήρα, αφού όλα τα κωδικοποιημένα strings έχουν το ίδιο μήκος. Αυτή η ιδέα μας επιτρέπει να συμπιέσουμε ένα δυαδικό κείμενο χρησιμοποιώντας μόνο 0 και 1. Για να συνοψίσουμε, έχουμε 4 βήματα: 1. ανάλυση 2. μέτρηση τον αριθμό των strings για να επιλέξουμε το μέγεθος του προθέματος για την κωδικοποίηση 3. κωδικοποίηση των ομάδων συμβόλων 4. ένωση των ατομικών κωδικοποιημένων ομάδων συμβόλων σε μια ακολουθία δεδομένων

91 6. Δυαδική εκδοχή του αλγόριθμου Lempel-Ziv Ας υποθέσουμε ότι έχουμε μια δυαδική ακολουθία από bits που θέλουμε να συμπιέσουμε. Ξεκινάμε την ανάλυση ακριβώς με τον ίδιο τρόπο που κάναμε με τους χαρακτήρες (σύμβολα). Ας πάρουμε ως παράδειγμα την εξής δυαδική ακολουθία δεδομένων: Το αποτέλεσμα θα είναι:,0,01,1,011,00,0110,10,101,001,0010, 01101,000,00101,001011, Από τη στιγμή που θα κωδικοποιήσουμε τον αριθμό του προθέματος χρησιμοποιώντας τα ίδια 0 και 1 που επίσης εμφανίζονται ως χαρακτήρες στην ομάδα συμβόλων, χρειαζόμαστε τις κωδικοποιημένες ομάδες συμβόλων για να έχουμε ένα σταθερό μήκος. Από τη στιγμή που έχουμε 16 ομάδες συμβόλων (μετράμε επίσης και το πρώτο "κενό" string, στο οποίο θα πρέπει να δοθεί ο αριθμός θέσης "μηδέν") θα χρειαστούμε 4 bits για την αρίθμηση τους στο δυαδικό σύστημα. Αριθμώντας τα strings αρχής γενομένης από τo πρώτo μη-κενό string (βλ. Position number στον πίνακα που ακολουθεί), επίσης ελέγχουμε ποιο είναι το πρόθεμα και ο αριθμός της θέσης του προθέματος. Η κωδικοποιημένη ομάδα συμβόλων κατασκευάστηκε παίρνοντας τον αριθμό της θέσης του προθέματος και από το τελευταίο bit του string που εξετάζουμε. Συμπληρώστε τα κενά στον παρακάτω πίνακα: String Position Number Position Number Position Number Prefix Coded String of this string in binary of Prefix empty empty

92 Η LZ-κωδικοποίηση των δεδομένων στο παραπάνω παράδειγμα σχηματίζεται γράφοντας όλες μαζί τις κωδικοποιημένες ομάδες συμβόλων (από την τελευταία στήλη του πίνακα). Στο παράδειγμά μας τα αρχικά δεδομένα είναι: Και γίνονται: Συμπιεστής Lempel-Ziv Παρακάτω, μπορείτε να δοκιμάσετε έναν αυτόματο συμπιεστή LZ. Σε αυτή την έκδοση, δεν μετατρέπει πρώτα το κείμενο σε δυαδική μορφή. Ο αλγόριθμος LZ που εφαρμόζεται εδώ χρησιμοποιεί όλους τους χαρακτήρες ASCII, για τους αριθμούς προθέματος καθώς και το επιπλέον σύμβολο στο τέλος κάθε ομάδας συμβόλων που έχει αναλυθεί. Για παράδειγμα, στον "άδειο" αριθμός θέσεως της ομάδας συμβόλων μπαίνει ο χαρακτήρας "space" (το κείμενο αποθηκεύεται στον υπολογιστή όπως ξέρουμε σε δυαδική μορφή, αλλά είναι πιο

93 αποδοτικό να εφαρμοστεί ο LZ πρώτα και στην συνέχεια να πάμε στην δυαδική αναπαράσταση). Πληκτρολογήστε το κείμενο στο παράθυρο, και στη συνέχεια κάντε κλικ στο κουμπί Apply LZ Compression: Για να συμπιέσετε κάτι μεγαλύτερο σε μέγεθος, μπορείτε να χρησιμοποιήσετε το πρότυπο και τις τεχνικές cut-paste. Αν το κείμενο είναι πολύ μεγάλο, η συμπίεση θα μπορούσε να πάρει πολύ χρόνο. Λεπτομερείς οδηγίες για τα Windows: 1. Ανοίξτε το έγγραφο του Word (ή οτιδήποτε άλλο) 2. Κάτω από το μενού "Επεξεργασία (Edit)", επιλέξτε "Επιλογή όλων (Select All)" 3. Κάτω από το μενού "Επεξεργασία (Edit)", επιλέξτε "Αντιγραφή (Copy)" 4. Κάντε κλικ μέσα στο παράθυρο του Lempel-Ziv συμπιεστή παραπάνω 5. Κάτω από το μενού "Επεξεργασία (Edit)" (από το πρόγραμμα περιήγησης), Επιλέξτε "Επικόλληση (Paste)" 6. Πατήστε το κουμπί "Εφαρμογή LZ Compression (Apply LZ Compression)" 8. Ερωτήσεις g. Ανάλυση Lempel-Ziv Το πρώτο βήμα στον αλγόριθμο αυτόν είναι η διαδικασία της ανάλυσης. Η ανάλυση εξηγείται στην ενότητα 1. Να αναλυθεί η ακόλουθη πρόταση: can_you_can_a_can_as_a_canner_can_can_a_can; Έχουμε αντικαταστήσει τα κενά στην πρόταση με το χαρακτήρα "_". h. Συμπίεση Lempel-Ziv Το επόμενο βήμα στον αλγόριθμο Lempel-Ziv είναι η κωδικοποίηση των ομάδων συμβόλων (strings) όπως εξηγείται στην ενότητα 2. Για παράδειγμα:

94 If_one_doctor_doctors_another_doctor, _does_the_doctor_who_doctors_the_doctor_ doctor_the_doctor_the_way_the_doctor_he_is_doctoring_doctors? _Or_does_he_doctor_the_doctor_the_way_the_doctor_who_doctors_doctors? Η ανάλυση έχει ως εξής:,i,f,_,o,n,e,_d,oc,t,or,_do,c,to,r,s,_a,no,th,er,_doc,tor,,, _doe,s_,the,_doct,or_,w,h,o_, d,oct,ors,_t,he,_docto,r_, do,ct,or_t,he_,doc,tor_,the_,wa,y,_th,e_,doct,or_h,e_i,s_d, octo,ri,ng,_doctor,s?, _O,r_d,oe,s_h,e_d,octor,_the,_doctor_,the_w,a,y_, the_d,octor_, wh,o_d,octors,_doctors,? Για να συμπιέσετε αυτή την πρόταση, αριθμούμε τα strings. Το πρώτο string, πριν από το πρώτο κόμμα, είναι το κενό string (πάντα ξεκινάμε με αυτό), και του δίνουμε ετικέτα 0. Στη συνέχεια αριθμούμε όλα τα strings με τον ίδιο τρόπο. Ο παρακάτω πίνακας δείχνει τη διαδικασία συμπίεσης για τα πρώτα strings. Η τελευταία στήλη περιέχει τα συμπιεσμένα LZ δεδομένα. Position Number Position Number String Prefix Coded String of this string of Prefix I 1 empty 0 0I f 2 empty 0 0f _ 3 empty 0 0_ o 4 empty 0 0o n 5 empty 0 0n e 6 empty 0 0e _d 7 _ 3 3d oc 8 o 4 4c Συμπληρώστε τώρα τον ακόλουθο πίνακα συμπίεσης για την πρόταση που αναλύεται στο ερώτημα a. Position Number Position Number String Prefix Coded String of this string of Prefix

95 c 1 empty 0 0c a 2 empty 0 0a Τώρα γράψτε την συμπιεσμένη ακολουθία δεδομένων. i. Αποσυμπίεση Lempel-Ziv Τώρα που έχουμε πραγματοποιήσει τη συμπίεση LZ, ας προσπαθήσουμε να δούμε την LZ αποσυμπίεση. Για την αποσυμπίεση LZ, μπορούμε να αντιστρέψουμε απλώς τη διαδικασία

96 συμπίεσης. Αποσυμπιέστε την ακόλουθη σειρά δεδομένων, συμπληρώνοντας τον παρακάτω πίνακα (έχουμε συμπληρώσει τις οκτώ πρώτες γραμμές για να μπορέσετε να ξεκινήσετε). 0J0o0h0n0,0_0w3i0l0e6J0i0m6h0a0d14a16_0"3a16,19_20d17d6"23_ 23.22"0H15d24"24_26a6b10t0t10r6e0f39e0c36_2n6t3e44e15c45r0 Coded String Position Number of this string Position Number of Prefix Prefix String Suffix String Decoded String 0J 1 0 empty J J 0o 2 0 empty o o 0h 3 0 empty h h 0n 4 0 empty n n 0, 5 0 empty,, 0_ 6 0 empty 0w 7 0 empty w w 3i 8 3 h i hi

97

98 Ποια είναι τα αποσυμπιεσμένα δεδομένα; j. Συμπιεστής LZ: παραδείγματα Ας δούμε μερικά παραδείγματα συμπίεσης LZ. Αντιγράψτε και επικολλήστε (ή απλά πληκτρολογήστε) την προηγούμενη πρόταση: can_you_can_a_can_as_a_canner_can_can_a_can; Στο γκρι παράθυρο στην ιστοσελίδα, μπορείτε να δείτε το μήκος της αρχικής ακολουθίας σας, το μήκος της κωδικοποιημένης ακολουθίας, και την αναλογία συμπίεσης (compression ratio) η οποία αντιστοιχεί στον λόγο αυτών των δύο μηκών. Παίρνουμε τον λόγο (ασυμπίεστο μήκος) / (συμπιεσμένο μήκος) όπου τιμή μεγαλύτερη από 1 δείχνει συμπίεση, και τιμή μικρότερη από 1 δείχνει ότι δεν έχουμε καθόλου συμπίεση. Η παραπάνω πρόταση (string) έχει 44 χαρακτήρες. Ποια είναι η αναλογία συμπίεσης για αυτήν την πρόταση; Τώρα καθαρίσετε το παράθυρο εισόδου και πληκτρολογείστε 44 ίδιους χαρακτήρες, για παράδειγμα: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Ποια είναι η αναλογία της συμπίεσης γι αυτόo το string; Ποια από τα δυο strings συμπιέζεται περισσότερο και γιατί; k. LZ συμπίεση μεγάλων κειμένων

99 Ας δούμε τι γίνεται με την συμπίεση μεγαλυτέρων κειμένων. Αντιγράψτε και επικολλήστε το κείμενο αυτής της ενότητας (το οποίο είναι περίπου χαρακτήρες) στο παράθυρο συμπίεσης. Ποια είναι η αναλογία συμπίεσης; Βλέπουμε ότι σε ένα κείμενο που είναι λίγες σελίδες, ο LZ αλγόριθμος το συμπιέζει. Τώρα, ας δούμε πόσο καλά ο αλγόριθμος συμπιέζει κάτι που είναι πιο μεγάλο σε μέγεθος. Για να γίνει αυτό, θα πρέπει να αντιγράψετε και να επικολλήσετε το μεγάλο κείμενο της επιλογής σας στο συμπιεστή. Μόλις αντιγράψετε το κείμενο σας στο επάνω μέρος του παραθύρου, πατήστε το κουμπί "Apply LZ Compression". Ο αλγόριθμος συμπίεσης μπορεί να χρειαστεί κάποιο χρόνο για να τρέξει. Ποια είναι η αναλογία συμπίεσης, όταν συμπιέσετε ένα κείμενο που αποτελείται από τουλάχιστον χαρακτήρες;

100 Λύσεις 4: Κωδικοποίηση Lempel-Ziv Πρόβλημα 1. Lempel-Ziv ανάλυση. Το πρώτο βήμα στον αλγόριθμο αυτό είναι η διαδικασία της ανάλυση. Η μέθοδος της ανάλυσης εξηγείται με το αριθμητικό παράδειγμα που ακολουθεί. Μπορείτε να αναλύσετε την ακόλουθη φράση; can_you_can_a_can_as_a_canner_can_can_a_can; Έχουμε αντικαταστήσει τα κενά στην πρόταση με το χαρακτήρα "_" για να γίνει ευκολότερη η παρακολούθηση των χώρων. Αντιγράφετε την παρακάτω φράση, και το μόνο που έχετε να κάνετε είναι να προσθέσετε το κόμμα. Απάντηση,c,a,n,_,y,o,u,_c,an,_a,_ca,n_,as,_a_,ca,nn,e,r,_can,_can_,a_,can,?, Πρόβλημα 2. Lempel - Ziv συμπίεσης. Το επόμενο βήμα στον αλγόριθμο Lempel - Ziv είναι η κωδικοποίηση των επιμέρους συμβολοσειρών που εξηγείται στην κωδικοποίηση της ιστοσελίδας Lempel - Ziv. Το παράδειγμα είναι το εξής : If_one_doctor_doctors_another_doctor, _does_the_doctor_who_doctors_the_doctor_doctor_ the_doctor_the_way_the_doctor_he_is_doctoring_doctors ; _Or_does_he_doctor_the_doctor_ the_way_the_doctor_who_doctors_doctors ; το οποίο αναλύεται ως εξής :,I,f,_,o,n,e,_d,oc,t,or,_do,c,to,r,s,_a,no,th,er,_doc,tor,,,_doe,s_,the,_doct,or_,w,h,o_, d,oct,ors,_t,he,_docto,r_,do,ct,or_t,he_,doc,tor_,the_,wa,y,_th,e_,doct,or_h,e_i,s_d, octo,ri,ng,_doctor,s?,_o,r_d,oe,s_h,e_d,octor,_the,_doctor_,the_w,a,y_,the_d,octor_, wh,o_d,octors,_doctors,? Για τη LZ συμπίεση αριθμούμε αυτές τις συμβολοσειρές. Η πρώτη σειρά, πριν από το πρώτο κόμμα, είναι η κενή συμβολοσειρά ( πάντα ξεκινάμε με αυτό ), και δίνουμε ετικέτα 0. Αριθμούμε τώρα όλες τις ακόλουθες διαδοχικές συμβολοσειρές. Ο παρακάτω πίνακας δείχνει τη διαδικασία συμπίεσης για τις πρώτες συμβολοσειρές. Αυτή η τελευταία στήλη

101 είναι αυτό που είναι σημαντικό για εμάς, καθώς περιέχει τη συμπιεσμένη LZ πρόταση. Στην ιστοσελίδα, μπορείτε να ασκήσετε την ολοκλήρωση της διαδικασίας συμπίεσης για αυτό το παράδειγμα ποινής. Position Number Position Number String Prefix Coded String of this string of Prefix I 1 empty 0 0I f 2 empty 0 0f _ 3 empty 0 0_ o 4 empty 0 0o n 5 empty 0 0n e 6 empty 0 0e _d 7 _ 3 3d oc 8 o 4 4c Συμπληρώστε τώρα τον παρακάτω πίνακα συμπίεσης για την πρόταση που αναλύεται στο Πρόβλημα 1 (έχουμε γεμίσει στις δύο πρώτες σειρές για να ξεκινήσετε). Απάντηση: Position Number Position Number String Prefix Coded String of this string of Prefix c 1 empty 0 0c a 2 empty 0 0a n 3 empty 0 0n _ 4 empty 0 0_ y 5 empty 0 0y o 6 empty 0 0o u 7 empty 0 0u _c 8 _ 4 4c

102 an 9 a 2 2n _a 10 _ 4 4a _ca 11 _c 8 8a n_ 12 n 3 3_ as 13 a 2 2s _a_ 14 _a 10 10_ ca 15 c 1 1a nn 16 n 3 3n e 17 empty 0 0e r 18 empty 0 0r _can 19 _ca 11 11n _can_ 20 _can 19 19_ a_ 21 a 2 2_ can 22 ca 15 15n? 23 empty 0 0? Γράψτε εδώ το σύνολο της συμπιεσμένης ακολουθίας. Απάντηση: 0c0a0n0_0y0o0u4c2n4a8a3_2s10_1a3n0e0r11n19_2_15n0; Πρόβλημα 3. Lempel-Ziv Decompression. Τώρα που έχουμε πραγματοποιήσει την συμπίεση LZ, ας προσπαθήσουμε τη LZ αποσυμπίεση. Για τη LZ αποσυμπίεση απλά αντιστρέφεται η διαδικασία της συμπίεσης. Αποσυμπιέστε την ακόλουθη φράση συμπληρώνοντας την παρακάτω πίνακα (έχουμε γεμίσει στις οκτώ πρώτες γραμμές για να ξεκινήσετε). 0J0o0h0n0, 0_0w3i0l0e6J0i0m6h0a0d14a16_0 "3a16, 19_20d17d6" 23_ "0H15d24" 24_26a6b10t0t10r6e0f39e0c36_2n6t3e44e15c45r0. Απάντηση:

103 Coded String Position Number of this string Position Number of Prefix Prefix String Suffix String Decoded String 0J 1 0 empty J J 0o 2 0 empty o o 0h 3 0 empty h h 0n 4 0 empty n n 0, 5 0 empty,, 0_ 6 0 empty 0w 7 0 empty w w 3i 8 3 h i hi 0l 9 0 empty l l 0e 10 0 empty e e 6J 11 6 _ J _J 0i 12 0 empty i i 0m 13 0 empty m m 6h 14 6 _ h _h 0a 15 0 empty a a 0d 16 0 empty d d 14a _h a _ha 16_ d _ d_ 0" 19 0 empty " " 3a 20 3 h a ha 16, d, d, 19_ " _ "_ 20d ha d had 17d _ha d _had 6" 25 6 _ " _"

104 23_ had _ had_ had. had. 22" "_ " "_" 0H 29 0 empty H H 15d a d ad 24" _had " _had" 24_ _had had_ 26a had_ a had_a 6b 34 6 _ b _b 10t e t et 0t 36 0 empty t t 10r e r er 6e 38 6 _ e _e 0f 39 0 empty f f 39e f e fe 0c 41 0 empty c c 36_ t _ t_ 2n 43 2 o n on 6t 44 6 _ t _t 3e 45 3 h e he 44e _t e _te 15c a c ac 45r he r her empty.. Ποιά είναι η αποσυμπιεσμένη φράση;

105 Απάντηση: John, while Jim had_had_"had,"_had_had_"had_had."_"had_had"_had_had_a_better_effect_on_the_teacher. Σχόλιο: Με την ευκαιρία, η φράση περιγράφει μια κατάσταση όπου ο John και ο Jim καθένας πήρε ένα τεστ γραμματικής στην οποία όφειλαν να αναφέρουν τον αριθμό των "had" κατάλληλα σε μια πρόταση. Προφανώς, ο Ιωάννης μελέτησε περισσότερο. Πρόβλημα 4. LZ Compressor - παραδείγματα παιχνίδι. Στην ιστοσελίδα του συμπιεστή Lempel - Ziv, μπορείτε να δοκιμάσετε την αποτελεσματικότητα της απλής στρατηγικής Lempel - Ziv που έχουμε σκιαγραφήσει εδώ. Πληκτρολογήστε μερικές προτάσεις στο τυποποιημένο κείμενο στο λευκό παράθυρο σε αυτή την ιστοσελίδα, και κάντε κλικ στο κουμπί " Apply LZ Compression ". Στο πρώτο γκρι παράθυρο, θα δείτε στη συνέχεια το αποτέλεσμα του αλγορίθμου LZ. Επειδή το "space" χρησιμοποιείται για να επισημάνει την κενή συμβολοσειρά ( δηλαδή, «space» αντικαθιστά την ετικέτα μηδέν ), τα πρώτα γράμματα στο γκρίζο παράθυρο θα είναι μόνο τα γράμματα του κειμένου που πληκτρολογήσατε, με κενά μεταξύ τους. Η επόμενη ετικέτα είναι!, Και στη συνέχεια #, και ούτω καθεξής. Σε αυτή την εργασία θα σας ζητήσει να δοκιμάσετε συμπίεση LZ σε μια σειρά από παραδείγματα. Το λευκό παράθυρο λειτουργεί σαν έναν στοιχειώδη επεξεργαστή κειμένου, ώστε να μπορείτε να σβήσετε το κείμενο, ή να τα διορθώσετε, κατά τον συνήθη τρόπο, χρησιμοποιώντας το ποντίκι σας και τα κουμπιά " Backspace " ή "Διαγραφή ". Μπορείτε επίσης να χρησιμοποιήσετε το ποντίκι σας για να αντιγράψετε το κείμενο στο λευκό παράθυρο χωρίς να χρειάζεται να τον πληκτρολογείτε χρησιμοποιώντας κλασσικές τεχνικές της αντιγραφής και επικόλλησης. Αντιγραφή και επικόλληση ( ή απλά πληκτρολογήστε ) το " can can " πριν από την πρόταση : can_you_can_a_can_as_a_canner_can_can_a_can ; Στο χαμηλότερο γκρι παράθυρο σε αυτή την ιστοσελίδα, μπορείτε να δείτε το μήκος της αρχικής ακολουθίας σας, το μήκος του κωδικοποιημένου, και την αναλογία συμπίεσης, η οποία είναι απλά η αναλογία αυτών των δύο μήκη. Παίρνουμε την αναλογία ( ασυμπίεστο μήκος ) / (συμπιεσμένο μήκος), έτσι ώστε μία αναλογία μεγαλύτερη από 1 δείχνει αληθινή συμπίεση, αλλά μια αναλογία μικρότερη από 1 δεικνύει ότι δεν συμπιέζεται καθόλου

106 Η " can can " πρόταση έχει 44 χαρακτήρες. Ποια είναι η αναλογία συμπίεσης για αυτή τη φράση ; Απάντηση : Αρχικό μήκος: 44 Κωδικοποιημένο μήκος: 48 Λόγος συμπίεσης: Τώρα καθαρίσετε το παράθυρο εισόδου και τον τύπο σε 44 πανομοιότυπους χαρακτήρες, για παράδειγμα aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Ποια είναι η αναλογία συμπίεσης για αυτή τη σειρά ; Απάντηση : Αρχικό μήκος: 44 Κωδικοποιημένο μήκος : 18 Λόγος συμπίεσης: Ποια σειρά συμπιέζεται περισσότερο και γιατί ; Απάντηση : Η σειρά πανομοιότυπων χαρακτήρων συμπιέζεται περισσότερο, επειδή κάθε διαδοχική σειρά στην ανάλυση των ταυτόσημων χαρακτήρων αυξάνεται κατά ένα, δηλαδή τα αναλυθεί μήκη των συμβολοσειρών είναι 1,2,3,4,5,6, κλπ. Κάθε ένα από αυτά αντιπροσωπεύονται από ένα δείκτη συν το χαρακτήρα. Ακόμα κι αν η " can can " πρόταση έχει πολλές αναλύσεις όπως είδαμε το πρόβλημα 2 που η μεγαλύτερη σειρά που αναλύθηκε σειρά είχε μόνο 4 χαρακτήρες και οι περισσότεροι ήταν μόνο 1 ή 2 χαρακτήρες. Πρόβλημα 5. LZ Compressor - «πραγματικό» κείμενο. Τώρα θα προσπαθήσουμε κάποια συμπίεση " πραγματικού" κείμενο. Αντιγράψετε και επικολλήσετε το κείμενο αυτού του προβλήματος που ( το οποίο είναι περίπου χαρακτήρες ) στο παράθυρο συμπίεσης. Ποια είναι η σχέση συμπίεσης για το πρόβλημα που; Απάντηση : Του αρχικού μήκους : Κωδικοποιημένο μήκος: Λόγος συμπίεσης:

107 Βλέπουμε ότι σε ένα κείμενο που είναι μεγάλες σελίδες, αυτός ο αφελής αλγόριθμος LZ πρέπει να συμπιέζει ήδη καλά. Τώρα, ας μάθουμε πόσο καλά ο αλγόριθμος συμπιέζει κάτι που είναι δύσκολο, σαν ένα μεγάλο χαρτί που έγραψε για άλλη κατηγορία, ή ένα μυθιστόρημα.για να το κάνετε αυτό, θα πρέπει να κοπεί και να επικολληθεί το μεγάλο έγγραφο της επιλογής σας στο συμπιεστή. Οι οδηγίες για να το κάνετε αυτό δίνονται στο κάτω μέρος της ιστοσελίδας του συμπιεστή. Μόλις κοπεί και να επικολληθεί το έγγραφό σας στο επάνω μέρος του παραθύρου, πατήστε το κουμπί " Apply LZ Compression ". Ο αλγόριθμος συμπίεσης μπορεί να πάρει κάποιο χρόνο για να τρέξει, γι 'αυτό παρακαλώ να είστε υπομονετικοί. Για παράδειγμα, όταν χρησιμοποιείται αυτή η μέθοδος για να συμπιέσει την Αγία Γραφή, χρειάστηκαν 20 λεπτά! Ποια είναι η αναλογία συμπίεσης, όταν συμπιέσετε ένα κείμενο ( της επιλογής σας, όπως ένα χαρτί που έγραφε για μια άλλη κατηγορία ) που αποτελείται από τουλάχιστον χαρακτήρες ; Παρακαλείστε να δώσετε μια περιγραφή μια γραμμή του κειμένου, Απάντηση : Συμπίεση ένα χαρτί γραμμένο για ένα συνέδριο, τα αποτελέσματα ήταν τα εξής: Του αρχικού μήκους : Κωδικοποιημένο μήκος: Λόγος συμπίεσης: Τέλος, θα συμπιέσει ένα βιβλίο. Στην ιστοσελίδα του Project Gutenberg, πατήστε το κουμπί Επιλογή και στη συνέχεια, αναζητήστε τον τίτλο ή συγγραφέα και να βρουν ένα βιβλίο που είναι μεταξύ 100K και 1000Κ στο μέγεθος του αρχείου txt. Στη συνέχεια να αντιγράψετε και να επικολλήσετε το βιβλίο στο συμπιεστή. Τι βιβλίο έχετε επιλέξει ; Πόσοι χαρακτήρες ; Ποια ήταν η αναλογία συμπίεσης ; Απάντηση : Το Black Arrow ( 447 KB ) από τον Robert Louis Stevenson, Του αρχικού μήκους : Κωδικοποιημένο μήκος: Λόγος συμπίεσης:

108 Άσκηση 5: Συμπίεση εικόνας με την χρήση της κωδικοποίησης JPEG 1. Σκοποί και στόχοι Να διερευνηθεί η συμπίεση εικόνας με την χρήση της κωδικοποίησης JPEG. 2. Pulse Coded Modulation (PCM) Οι επιλογές συμπίεσης φαίνονται στο παρακάτω σχήμα. Υπάρχουν τρεις επιλογές με τις ακόλουθες παραμέτρους: Επιλογές για την συμπίεση PCM

109 Bit rate (Ρυθμός μετάδοσης bit): Επιλέξτε PCM bit rate, μόνο ακεραίους. Χρησιμοποιείται ένας ομοιόμορφος κβαντιστής. Dithering : Δεν χρησιμοποιείται σε αυτήν την άσκηση. Errors : Δεν χρησιμοποιείται σε αυτήν την άσκηση. (α) Για τις εικόνες "Lena256B", "Clown256B" και "Odie256B" να βρείτε σε ποιο bit rate στην PCM συμπίεση γίνονται ορατές. Σε ποια bit rates οι εικόνες γίνονται αντιληπτές; Πόσες τιμές (gray values) είναι διαθέσιμες σε αυτό το ρυθμό μετάδοσης για να αντιπροσωπεύσουν την εικόνα; (β) Σχεδιάστε παρακάτω μια γραφική παράσταση SNR (db) versus bit-rate χρησιμοποιώντας την εικόνα "Lena256B"

110 (γ) Επαναλάβετε τα βήματα (α) και (β) για την εικόνα "Noise256B" εικόνα. Η εικόνα αυτή περιέχει τυχαίο θόρυβο. Εξηγήστε πιθανές διαφορές με τις απαντήσεις / καμπύλες που βρέθηκαν στο (α) και (β)

111

112 3. Differential Pulse Coded Modulation (DPCM) Οι επιλογές συμπίεσης δίνονται παρακάτω. Υπάρχουν τέσσερις επιλογές με τις ακόλουθες παραμέτρους: Επιλογές συμπίεσης για την συμπίεση DPCM Model: Μπορούν να χρησιμοποιηθούν τέσσερα διαφορετικά μοντέλα πρόβλεψης. Οι κυριότερες διαφορές είναι ανάμεσα στο αριστερό μοντέλο και τα άλλα τρία. Bit rate: Επιλέξτε DPCM bit rate και μόνο ακεραίους. Στο παράθυρο κειμένου θα δοθεί η εκτίμηση του πραγματικού bit rate με τη χρήση της κωδικοποίησης VLC Huffman. Η τιμή αυτή πρέπει να χρησιμοποιηθεί στις γραφικές παραστάσεις SNR σε σχέση με bit rate. Levels : Μην αλλάξετε την προεπιλογή σε αυτήν την άσκηση. Errors: Δεν χρησιμοποιούνται σε αυτήν την άσκηση. Διαφορά πρόβλεψης ή σφάλμα πρόβλεψης: Η διαφορά πρόβλεψη δίνεται στο εσωτερικό του βρόχου DPCM. Οι μηδενικές τιμές εμφανίζονται ως γκρι, ενώ οι θετικές και αρνητικές τιμές

113 εμφανίζονται ως πιο φωτεινές ή πιο σκούρες από ότι η συνολική τιμή του γκρι. Η διαφορά πρόβλεψης (prediction difference) κλιμακώνεται για μέγιστη ορατότητα. (α) Επιλέξτε την εικόνα "Lena256B". Επιλέξτε την πρόβλεψη 1-D. Να κάνετε συμπίεση σε bitrates 6-1 bpp. Να κάνετε γραφική παράσταση των αποτελεσμάτων SNR vs bitrate στο ίδιο γράφημα όπως αυτό που δημιουργήθηκε για την PCM. Πόσο επιπλέον συμπίεση έχουμε με την συμπίεση DPCM σε σχέση με την συμπίεση PCM για αυτή την εικόνα; (β) Προσπαθήστε να εξηγήσετε τη δομή της εικόνας με διαφορά πρόβλεψης. (γ) Σχεδιάστε μια SNR-bit καμπύλη για το μοντέλο πρόβλεψης που χρησιμοποιεί 4 γειτονικά pixels. Εξηγήστε την παρατηρούμενη διαφορά με τα αποτελέσματα που επιτεύχθηκαν στο (α). (δ) Επαναλάβετε τα βήματα (α) - (γ) για την εικόνα "Noise256B". Συγκρίνετε τις καμπύλες που προκύπτουν με αυτές που λαμβάνονται για την PCM. (ε) Εξετάστε τις εικόνες "zone plate" και "Odie256B". Γιατί η συμπίεση DPCM δεν λειτουργεί καλά σε αυτές τις εικόνες; 4. Κωδικοποίηση (συμπίεση) JPEG Οι 6 επιλογές συμπίεσης φαίνονται στο παρακάτω σχήμα και έχουν τις εξής παραμέτρους:

114 Επιλογές συμπίεσης για την συμπίεση JPEG Bitrate: Ο συντελεστής ποιότητα της συμπίεσης JPEG Q μπορεί να ρυθμιστεί εδώ. Με την επιλογή του συντελεστή ποιότητας, το bit rate ορίζεται, αλλά το bit rate δεν είναι γνωστό εκ των προτέρων. Ο παράγοντας ποιότητας δείχνεται στο παράθυρο κειμένου. Quant: Η κβάντωση (quantisation) των συντελεστών DCT γίνεται χρησιμοποιώντας την ακόλουθη διαδικασία: Εδώ το Ν(u,v) είναι ενας πίνακας ομαλοποίησης όπου ο χρήστης μπορεί να επιλέξει. Ο πίνακας δίνει έναν συντελεστή βαθύτητας για κάθε συντελεστή DCT που χρησιμοποιείται στη διαδικασία κβαντισμού. Μην αλλάξετε κάτι στον συγκεκριμένο πίνακα σε αυτή την άσκηση. Το Q σχετίζεται με τον συντελεστή ποιότητας του χρήστη Q, όπως δείχνεται στο Σχήμα. μεταξύ των συντελεστών Q και Q Σχέση

115 Huffman: Διαφορετικές εντροπίες κωδικοποίησης μπορούν να επιλεγούν, δηλαδή να μην υπάρχει κωδικοποίηση εντροπίας (δηλαδή σταθερό μήκος κωδικοποίησης) για τους συντελεστές DCT, VLC, ή ενός πίνακα VLC βελτιστοποιημένου για ένα αρχείο εικόνας. Smooth: Δεν χρησιμοποιείται σε αυτήν την άσκηση. Markers: Δεν χρησιμοποιείται σε αυτήν την άσκηση. Errors: Δεν χρησιμοποιείται σε αυτήν την άσκηση. Συμπιεσμένο bitstream: Η συμπιεσμένη εικόνα αποθηκεύεται ως "JpegCodedImageBitStream.jpg". Αυτό το αρχείο περιέχει τα συμπιεσμένα JPEG δεδομένα, ενσωματωμένα στην κεφαλίδα του πρωτόκολλο JFIF. Επισκόπηση του DCT συντελεστών: Η συμπίεση JPEG από μόνη της δεν δείχνει τους (κβαντισμένους) DCT συντελεστές. Για να τους δείτε χρησιμοποιήστε την επιλογή "Set as start image" στην αποσυμπιεσμένη εικόνα JPEG. Στη συνέχεια, εκτελέστε τη συμπίεση DCT σε αυτήν την εικόνα, χρησιμοποιώντας 8x8 DCT blocks και απενεργοποιήστε την κωδικοποίηση των DCT συντελεστών. Οι συντελεστές DCT που υπολογίζονται από την συμπιεσμένη εικόνα JPEG τώρα εμφανίζονται. Και οι δύο μέθοδοι προβολής (Collections και DCT Blocks) πρέπει να μελετηθούν. Το παρακάτω σχήμα δείχνει ένα παράδειγμα της εικόνας που προκύπτει

116 Συμπιεσμένοι με JPEG συντελεστές DCT (α) Φορτώστε την εικόνα "Lena2. Χρησιμοποιήστε τη προεπιλεγμένη φωτεινότητα στον πίνακα κανονικοποίησης. Σχεδιάστε δύο SNR vs bitrate καμπύλες, μία για την επιλογή με Huffman κωδικοποίηση και μια για την επιλογή FLC που αποτελεί το κωδικοποίηση συγκεκριμένου μήκους κωδικών λέξεων ή "μη Huffman κωδικοποίηση". Κοιτάξτε προσεκτικά την υπολογισμένη τιμή του SNR και του bit rate όταν χρησιμοποιείτε ένα χαμηλό bit rate στην περίπτωση FLC, επειδή ο ζητούμενος bit rate μπορεί να μην είναι εφικτός από τον JPEG κωδικοποιητή. Πόσο επιπλέον SNR δίνει η κωδικοποίηση Huffman; (β) Σε ποιο ρυθμό μετάδοσης η συμπίεση JPEG δίνει μη αποδεκτή οπτική ποιότητα; Ποιος είναι ο συντελεστής συμπίεσης σε αυτό το σημείο; (γ) Να κάνετε συμπίεση JPEG με διαφορετικά bit rates για την εικόνα Noise256B και σχεδιάστε μια SNR-bitrate καμπύλη. (δ) Συγκρίνετε τα αποτελέσματα των (α) και (β) με τα αποτελέσματα της PCM και DPCM συμπίεσης. (ε) Ποια είναι κατά τη γνώμη σας τα τυπικά αντικείμενα συμπίεση JPEG;

117 Γραφικές παραστάσεις SNR vs bitrate Υπάρχουν δυο περιπτώσεις: 1. Εύρος 0 έως 40 db και 1 έως 4 bit ανά pixel. Χρησιμοποιήστε το για PCM και DPCM. 2. Εύρος 0 έως 25 db και μηδέν έως 2,5 bit ανά pixel. Χρησιμοποιήστε το για JPEG, και αντιγράψετε μερικά από τα PCM/DPCM σημεία σε αυτή την καμπύλη

118 Λύσεις 5: Συμπίεση εικόνας με την χρήση της κωδικοποίησης JPEG PCM (α) Για τις εικόνες "Lena256B", "Clown256B" και "Odie256B" να βρείτε σε ποιο bit rate στην PCM συμπίεση γίνονται ορατές. Σε ποια bit rates οι εικόνες γίνονται αντιληπτές; Πόσες τιμές (gray values) είναι διαθέσιμες σε αυτό το ρυθμό μετάδοσης για να αντιπροσωπεύσουν την εικόνα; (β) Σχεδιάστε παρακάτω μια γραφική παράσταση SNR (db) versus bit-rate χρησιμοποιώντας την εικόνα "Lena256B". Απάντηση

119 Για τις περισσότερες εικόνες το μικρότερο αποδεκτό ποσοστό είναι περίπου 4 bpp (16 επίπεδα). Για την Odie αυτό το ποσοστό είναι 2 bpp, δεδομένου ότι η αρχική εικόνα έχει μόνο 4 επίπεδα του γκρι. (β) Σχεδιάστε παρακάτω μια γραφική παράσταση SNR (db) versus bit-rate χρησιμοποιώντας την εικόνα "Lena256B". Απάντηση Θα βρείτε μια περισσότερο ή λιγότερο-ευθεία καμπύλη από (1 bpp, 17 db) έως (4bpp, 35 db) (χρησιμοποιώντας PSNR). (γ) Επαναλάβετε τα βήματα (α) και (β) για την εικόνα "Noise256B" εικόνα. Η εικόνα αυτή περιέχει τυχαίο θόρυβο. Εξηγήστε πιθανές διαφορές με τις απαντήσεις / καμπύλες που βρέθηκαν στο (α) και (β). Απάντηση

120 Διαφορές με το πρωτότυπο δεν μπορούν να φανούν από τα 3bpp και υψηλότερα. Θα βρείτε μια ευθεία καμπύλη από (1 bpp, 67 db) έως (4bpp, 34 db) (χρησιμοποιώντας PSNR). DPCM (α) Επιλέξτε την εικόνα "Lena256B". Επιλέξτε την πρόβλεψη 1-D. Να κάνετε συμπίεση σε bitrates 6-1 bpp. Να κάνετε γραφική παράσταση των αποτελεσμάτων SNR vs bitrate στο ίδιο γράφημα όπως αυτό που δημιουργήθηκε για την PCM. Πόσο επιπλέον συμπίεση έχουμε με την συμπίεση DPCM σε σχέση με την συμπίεση PCM για αυτή την εικόνα; Απάντηση Θα βρείτε μια ελαφρά κάμψη της καμπύλης από (1 bpp, 21dB) έως (3.4bpp, 38 db) (χρησιμοποιώντας PSNR) (β) Προσπαθήστε να εξηγήσετε τη δομή της εικόνας με διαφορά πρόβλεψης. Απάντηση Η εικόνα δείχνει το σφάλμα πρόβλεψης που τροφοδοτείται στο κβαντιστή εντός του βρόχου DPCM. (γ) Σχεδιάστε μια SNR-bit καμπύλη για το μοντέλο πρόβλεψης που χρησιμοποιεί 4 γειτονικά pixels. Εξηγήστε την παρατηρούμενη διαφορά με τα αποτελέσματα που επιτεύχθηκαν στο (α). Απάντηση Θα βρείτε μια ελαφρά κάμψη της καμπύλης από (1 bpp, 23dB) έως (3.4bpp, 41 db) (χρησιμοποιώντας PSNR). Για ένα δεδομένο PSNR, DPCM δίνει περίπου 1 bpp κέρδος. Η καμπύλη βρίσκεται ακριβώς εκεί που βρέθηκε και στο(α) με καλύτερη απόδοση. (δ) Επαναλάβετε τα βήματα (α) - (γ) για την εικόνα "Noise256B". Συγκρίνετε τις καμπύλες που προκύπτουν με αυτές που λαμβάνονται για την PCM. Απάντηση Η καμπύλη είναι σχεδόν πανομοιότυπη με την καμπύλη PCM. Ο θόρυβος δεν μπορεί να συμπιεστεί καθόλου έτσι ώστε τα αποτελέσματα να είναι περισσότερο ή λιγότερο το ίδιο. Οι μικρές διαφορές που προκαλούνται από την διαφορά κβαντιστής που χρησιμοποιείται στις ενότητες PCM και DPCM

121 JPEG (α) Φορτώστε την εικόνα "Lena2. Χρησιμοποιήστε τη προεπιλεγμένη φωτεινότητα στον πίνακα κανονικοποίησης. Σχεδιάστε δύο SNR vs bitrate καμπύλες, μία για την επιλογή με Huffman κωδικοποίηση και μια για την επιλογή FLC που αποτελεί το κωδικοποίηση συγκεκριμένου μήκους κωδικών λέξεων ή "μη Huffman κωδικοποίηση". Κοιτάξτε προσεκτικά την υπολογισμένη τιμή του SNR και του bit rate όταν χρησιμοποιείτε ένα χαμηλό bit rate στην περίπτωση FLC, επειδή ο ζητούμενος bit rate μπορεί να μην είναι εφικτός από τον JPEG κωδικοποιητή. Πόσο επιπλέον SNR δίνει η κωδικοποίηση Huffman; Απάντηση Με Huffman: Θα βρείτε μια καμπύλη από (0,2 bpp, 21 db) έως (1.5bpp, 36,1 db) (χρησιμοποιώντας PSNR). Για υψηλότερους ρυθμούς bit η καμπύλη γίνεται ευθεία με κλίση 6 db / bit. για τα κατώτερα ποσοστά η καμπύλη κάμπτει προς (0,0). Χωρίς Huffman: Θα βρείτε μια καμπύλη από (0,7 bpp, 23.1 db) έως (1.5bpp, 28,6 db). Οι Συντελεστές είναι χαμηλότεροι από 0,6-0,7 bpp και δεν μπορεί να επιτευχθεί. Το κέρδος SNR είναι της τάξης των 7 db. (β) Σε ποιο ρυθμό μετάδοσης η συμπίεση JPEG δίνει μη αποδεκτή οπτική ποιότητα; Ποιος είναι ο συντελεστής συμπίεσης σε αυτό το σημείο; Απάντηση Τυπικά περίπου 0,6-0,8 bpp. (γ) Να κάνετε συμπίεση JPEG με διαφορετικά bit rates για την εικόνα Noise256B και σχεδιάστε μια SNR-bitrate καμπύλη. Απάντηση Η καμπύλη είναι σχεδόν πανομοιότυπη με την καμπύλη PCM. Ο θόρυβος δεν μπορεί να συμπιεστεί καθόλου, έτσι ώστε τα αποτελέσματα να είναι περισσότερο ή λιγότερο το ίδιο. (δ) Συγκρίνετε τα αποτελέσματα των (α) και (β) με τα αποτελέσματα της PCM και DPCM συμπίεσης. Απάντηση Η JPEG δίνει περίπου 10 db SNR βελτίωση στο ίδιο bitrate, όπως η DPCM. Η διαφορά με την PCM είναι ακόμα μεγαλύτερη

122 Άσκηση 6: Συμπίεση video με την χρήση της κωδικοποίησης MPEG 1. Σκοποί και στόχοι Ο σκοπός αυτής της άσκησης είναι να εξοικειωθούμε με το πρότυπο βίντεο συμπίεσης MPEG. Όπως και στην προηγούμενη άσκηση, έτσι κι εδώ θα χρησιμοποιήσουμε το VcDemo. Πριν ξεκινήσετε, διαβάστε τις πληροφορίες σχετικά με τον MPEG κωδικοποιητή και αποκωδικοποιητή. Θα τις βρείτε στο Help->VcDemo Help (module MDec και MEnc). 2. Αποκωδικοποίηση (αποσυμπίεση) MPEG (module MDec) Φορτώστε το κωδικοποιημένο βίντεο "Son.mpg" (μενού File-> Open Stream Mpeg ή κάνοντας κλικ πάνω στο εικονίδιο MPEG). Αποκωδικοποιήστε το βίντεο με τη λειτουργία frame-by-frame (Video-> Frame-by-Frame). Σε κάθε frame θα σας ζητηθεί να απαντήσετε εάν θέλετε να συνεχίσετε με την αποκωδικοποίησης: Πατήστε "No" για να σταματήσετε τη διαδικασία αποκωδικοποίησης και "Cancel" για να αποκωδικοποιήσετε αυτόματα όλα τα υπόλοιπα frames (πλαίσια). A. Παρατηρήστε πλαίσιο-πλαίσιο (τουλάχιστον μέχρι το Son_13_I) την αποκωδικοποιημένη ακολουθία και τα δεδομένα εξόδου στο παράθυρο αποτελέσματος. i. Συγκρίνετε την αλληλουχία των προβαλλόμενων πλαισίων με την αλληλουχία των αποκωδικοποιημένων πλαισίων. Υποθέτοντας ότι η αποκωδικοποίηση ξεκινά την χρονική στιγμή μηδέν, συμπληρώστε τον παρακάτω πίνακα με το είδος των πλαισίων (Ι, Ρ, Β). Για τον εντοπισμό κάθε πλαισίου, βάλτε μέσα σε παρένθεση τη σειρά της απεικόνισης. Για παράδειγμα, το πλαίσιο Son_13_I θα συμβολίζεται ως Ι(13) και αυτό θα πρέπει να εμφανίζεται στη θέση

123 Time Decoded Displayed ii. iii. Ποια είναι η δομή της GOP; Μερικά από τα πλαίσια πρέπει να αποκωδικοποιούνται προτού αρχίσει η εμφάνιση. Γιατί; Παρατηρήστε ότι αυτό παράγει μια καθυστέρηση στην ακολουθία. Ποια είναι αυτή η καθυστέρηση (σε πλαίσια); B. Παρατηρήστε τις διαφορετικές παραμέτρους και τις τιμές που εμφανίζονται στο παράθυρο των αποτελεσμάτων. i. Πόσα δείγματα ανά δευτερόλεπτο υπάρχουν; ii. Υπολογίστε τον συντελεστή συμπίεσης (compression factor) από το μέγεθος των αρχείων. (θα πρέπει να αποθηκεύσετε το αποκωδικοποιημένο βίντεο μέσα από την επιλογή Save και στην συνέχεια Apply). iii. Ποιό είναι το bit rate της αποκωδικοποιημένης αλληλουχίας (δηλαδή το bit rate της αλληλουχίας χωρίς κωδικοποίηση σε mpeg); Ελέγξτε ότι αντιστοιχεί σε YCbCr 4:2:0. C. Ενεργοποιήστε την επιλογή Operation-> Coded difference. Να θυμάστε ότι για να δείτε το βίντεο πλαίσιο-πλαίσιο πατήστε την επιλογή Video-> Frame-by-Frame. Εξηγήστε τι δείχνει το περιεχόμενο του βίντεο στο παράθυρο. Παρατηρήστε και σχολιάστε σχετικά με το τι συμβαίνει με τα διάφορα είδη των πλαισίων (I, P, Β). Είναι επίσης ενδιαφέρον και χρήσιμο να απεικονίσετε τα διανύσματα κίνησης μέσω της επιλογής Display_-> Motion vector overlay

124 B frame P frame I frame

125 D. Παρατηρούμε ότι στην τρίτη GOP υπάρχει μία αλλαγή. Περιγράψτε τι συμβαίνει με (i) τα αποκωδικοποιημένα πλαίσια, (ii) τα προβλεπόμενα πλαίσια, (iii) τα σφάλματα πρόβλεψης και (iv) τα διανύσματα κίνησης. Για το σκοπό αυτό, κάντε χρήση των διαφόρων επιλογών της Operation και Display_-> Motion vector overlay

126

127 3. Κωδικοποίηση (συμπίεση) MPEG (module MEnc) Φορτώστε την ακολουθία πλαισίων "Vectra21Frames.yuv" (μενού File-> Open Sequence) και ενεργοποιήστε τη μονάδα MEnc. Για να φτιάξετε μια ακολουθία θα πρέπει να καθορίσετε με το File -> Save as το όνομα του αρχείου στο οποίο θα αποθηκευτεί και στη συνέχεια επιλέξτε File-> Mpeg 1 ή File-> Mpeg2, ανάλογα με το πρότυπο που θα χρησιμοποιηθεί. Δώστε τιμή στη μέγιστη μετατόπιση 15 (στην επιλογή Motion) για την αντιστάθμιση της κίνησης. Μπορείτε να αναπαράγετε την αρχική ακολουθία πλαισίων με την επιλογή VPLY. Για την κωδικοποίηση MPEG θα χρησιμοποιηθεί η επιλογή MEnc. A. Κωδικοποιείστε την ακολουθία πλαισίων στα 2 Mbps και με τη δομή GOP IBB3 (ΡΒΒ). i. Παρατηρείστε τον συντελεστή συμπίεσης από το μέγεθος αρχείων ii. iii. Κατά μέσο όρο, ποιός είναι ο αριθμός των bit ανά pixel; Σημειώστε ότι για την τελευταία κωδικοποιημένη εικόνα, ο αριθμός των bit ανά pixel είναι Συγκρίνετέ τον με τον αριθμό που λαμβάνεται στο (ii) και εξηγείστε τη διαφορά

128 B. Τακτοποιείστε την δομή GOP (για παράδειγμα IPP) και αλλάξτε διαρκώς το bit rate (επιλογή μεταξύ των διαφόρων επιλογών). Τι παρατηρείτε όσον αφορά την οπτική ποιότητα; 0,128 bpp 8 bpp

129 C. Βάλτε την τιμή 1.15 Mbps στο bitrate. Για το τελευταίο κωδικοποιημένο πλαίσιο, συγκρίνετε (όπως για τα bits per pixel, το είδος της κωδικοποίησης για τα macroblocks και την μετρηθείσα ποιότητα) τα αποτελέσματα που ελήφθησαν στο παράθυρο αποτελέσματος όταν χρησιμοποιούμε: i. Την δομή GOP για το "I only". ii. iii. Την δομή του GOP για το "IPP". Την δομή της GOP για το "ΙΒΒ" Σημειώστε ότι αφού παρατηρούμε μόνο το τελευταίο πλαίσιο του κάθε GOP, συγκρίνουμε τους 3 τύπους πλαισίων: Ι, Ρ και Β (αντιστοιχούν στο τελευταίο πλαίσιο του (i), (ii) και (iii)). GOP structure Bit rate (bpp) Coded blocks % Coded blocks Quality I only IPP IBB I only IPP

130 IBB

131 Λύσεις 6: Αποκωδικοποίηση MPEG (ενότητα mdec) Τοποθετήστε το κωδικοποιημένο βίντεο "Son.mpg" (menu File->Open Mpeg Stream ή κάνοντας κλικ πάνω στο εικονίδιο MPEG). Αποκωδικοποιήστε το βίντεο με λειτουργία frame-by-frame (Video->Frame-by-Frame). Θα σας ζητηθεί εάν θέλετε να συνεχίσετε με την αποκωδικοποίηση: Με το "Όχι" θα σταματήσετε τη διαδικασία της αποκωδικοποίησης, ενώ με το "Άκυρο" θα αποκωδικοποιήσετε αυτόματα όλα τα υπόλοιπα πλαίσια. 1. Παρατηρήστε καρέ-καρέ (τουλάχιστον μέχρι το Son_13_I) την αποκωδικοποιημένη σειρά και τα δεδομένα εξόδου στο παράθυρο αποτελεσμάτων. α. Συγκρίνετε την αλληλουχία των προβαλλόμενων πλαισίων με την αλληλουχία των αποκωδικοποιημένων πλαισίων. Υποθέτοντας ότι η αποκωδικοποίηση ξεκινά σε μηδενικό χρόνο, συμπληρώνουν τον παρακάτω πίνακα με το είδος των πλαισίων (Ι, Ρ, Β). Για τον εντοπισμό κάθε πλαισίου, μέσα σε παρένθεση τη σειρά της απεικόνισης. Για παράδειγμα, το πλαίσιο Son_13_I θα συμβολίζεται ως Ι (13) και θα πρέπει να εμφανίζεται στη 13 η θέση. Time Decoded I(1 P(4 B(2 B(3 P(7 B(5 B(6 P(10 B(8 B(9 I(13) B(11 B(12 P(16 ) ) ) ) ) ) ) ) ) ) ) ) ) Displaye - I(1) B(2 B(3 P(4 B(5 B(6 P(7) B(8 B(9 P(10 B(11 B(12 I(13) d ) ) ) ) ) ) ) ) ) ) b. Ποια είναι η δομή της GOP; NTSC because it is IBBPBBPBBPBB --> I

132 c. Μερικά από τα πλαίσια πρέπει να αποκωδικοποιηθούν πριν την έναρξη της εμφάνισης. Γιατί; Παρατηρήστε ότι αυτό παράγει μια καθυστέρηση στην ακολουθία. Ποια είναι αυτή η καθυστέρηση (σε πλαίσια); Επειδή τα Β πλαίσια χρειάζονται πληροφορίες σχετικά με το προηγούμενο και το επόμενο πλαίσιο. Η καθυστέρηση είναι 1 πλαίσιο, γιατί θα πρέπει να λάβετε το P πλαισίου πριν από τα πλαίσια Β. 2. Παρατηρήστε τις διαφορετικές παραμέτρους και τις τιμές που εμφανίζονται στο παράθυρο αποτελεσμάτων. a. Πόσα δείγματα ανά δευτερόλεπτο, υπάρχουν; Υπάρχουν 25 καρέ ανά δευτερόλεπτο b. Υπολογίστε τον παράγοντα συμπίεσης από το μέγεθος των αρχείων (Θα πρέπει να αποθηκεύσετε το αποκωδικοποιημένο βίντεο μέσα από την επιλογή Save που θα βρείτε στην τελευταία διαφάνεια που διατίθενται στην δεξιά και επαναλάβετε με το Apply) Συμπιεσμένο video = 961 KB Αποκωδικοποίηση βίντεο = 25,2 MB C.F. = 25,2 MB / 961 = 26,86 KB c. Ποιο είναι το bit rate της αποκωδικοποιημένης ακολουθίας (δηλαδή, το bitrate της ακολουθίας χωρίς να κωδικοποιείται σε mpeg); Ελέγξτε ότι αντιστοιχεί σε YCbCr 4:2:0. Βρήκαμε ότι πολλαπλασιάζοντας την BPP με την C.F. 30,41 Mbps Αν θέλουμε να υπολογίζει YCbCr έχουμε: 288 * 352 * 25 * (8 +8 * 1/4 +8 / 4) = 30,41 Mbps

133 3. Ενεργοποιήστε την επιλογή Operation->Coded difference. Να θυμάστε ότι για να δείτε το βίντεο πλαίσιο-πλαίσιο η επιλογή είναι Video-> Frame-by-Frame. Εξηγήστε το περιεχόμενο του παράθυρο βίντεο. Παρατηρήστε τι συμβαίνει με τα διάφορα είδη των πλαισίων (I, P i Β). Είναι, επίσης, ενδιαφέρον και χρήσιμο να απεικονίσετε τα διανύσματα κίνησης μέσω της επιλογής Display_->Motion vector overlay.κάθε φορά που ένα νέο πλαίσιο δημιουργείται χρησιμοποιεί τιμές από το προηγούμενο πλαίσιο, αν η αξία ενός μπλοκ είναι η ίδιο σε σχέση με το προηγούμενο πλαίσιο, φαίνεται σε γκρι χρώμα. Η διαφορά μεταξύ I, P και B είναι τόσο μεγάλη, όταν πρόκειται για ένα πλαίσιο I, η εικόνα δεν έχει γκρι χρώμα, έτσι ώστε τα μπλοκ του πλαισίου είναι είδηση, εφόσον πρόκειται για πλαίσια P, η εικόνα θα έχει πολύ γκρι χρώμα, αλλά εξακολουθεί να έχει κάποια νέα μπλοκ, τελικά, όταν πρόκειται για ένα πλαίσιο Β, υπάρχουν πολλά γκρι χρώματα, περίπου το μπλοκ είναι γκρι, έτσι ώστε το πλαίσιο να είναι παρόμοιο με το προηγούμενο πλαίσιο. B frame P frame

134 I frame 4. Παρατηρήστε ότι κατά το τρίτο GOP υπάρχει μια αλλαγή σκηνικού. Περιγράψτε τι συμβαίνει με το (i) τα αποκωδικοποιημένα πλαίσια, (ii) τα προβλεπόμενα πλαίσια, (iii) τα σφάλματα πρόβλεψης και (iv) τα διανύσματα κίνησης. Για το σκοπό αυτό, μπορείτε να κάνετε χρήση των διαφόρων επιλογών Operation και Display_->Motion vector overlay

135 i) Τα δύο πρώτα πλαίσια είναι Β, η εικόνα έχει λίγο λιγότερη ποιότητα κατά τη διάρκεια αυτών των δύο πλαισίων, ενώ ένα πλαίσιο P φτάνει και η εικόνα γίνεται σαφέστερη. Είναι αλήθεια ότι οι διαφορές είναι τόσο μικρές. ii) Τα πρώτα πλαίσια έχουν πολύ κακή ποιότητας, είναι αδύνατο να διακρίνουμε τα πρόσωπα των ανθρώπων, ενώ το πλαίσιο που έρχεται έχει μεγαλύτερη ποιότητα και η εικόνα είναι σαφής και πάλι

136 iii) Όταν η εικόνα αλλάζει, τα πλαίσια Β δεν έχουν καμία αναφορά από το πλαίσιο I, οπότε θα υπάρξουν κάποια λάθη στην προσπάθεια να αποκωδικοποιηθούν, η εικόνα είναι εντελώς γκρι και δεν είστε σε θέση να δείτε το περίγραμμα. iv) Κατά τα πρώτα δύο πλαίσια, στα Β πλαίσια δεν υπάρχουν φορείς, ή τουλάχιστον είναι πολύ μικροί, όταν το πλαίσιο P φτάνει τα διανύσματα μεγαλώνουν και μπορούμε να δούμε πολλούς φορείς

Συστήματα Επικοινωνιών ΙI

Συστήματα Επικοινωνιών ΙI + Διδάσκων: Δρ. Κ. Δεμέστιχας e-mail: cdemestichas@uowm.gr Συστήματα Επικοινωνιών ΙI Παλμοκωδική διαμόρφωση (PCM) I + Ιστοσελίδα nιστοσελίδα του μαθήματος: n https://eclass.uowm.gr/courses/icte302/ + Περιεχόμενα

Διαβάστε περισσότερα

Παλμοκωδική Διαμόρφωση. Pulse Code Modulation (PCM)

Παλμοκωδική Διαμόρφωση. Pulse Code Modulation (PCM) Παλμοκωδική Διαμόρφωση Pulse Code Modulation (PCM) Pulse-code modulation (PCM) Η PCM είναι ένας στοιχειώδης τρόπος διαμόρφωσης που δεν χρησιμοποιεί φέρον! Το μεταδιδόμενο (διαμορφωμένο) σήμα PCM είναι

Διαβάστε περισσότερα

Μάθημα Εισαγωγή στις Τηλεπικοινωνίες Κωδικοποίηση πηγής- καναλιού Μάθημα 9o

Μάθημα Εισαγωγή στις Τηλεπικοινωνίες Κωδικοποίηση πηγής- καναλιού Μάθημα 9o Μάθημα Εισαγωγή στις Τηλεπικοινωνίες Κωδικοποίηση πηγής- καναλιού Μάθημα 9o ΕΘΝΙΚΟ & ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τομέας Επικοινωνιών και Επεξεργασίας Σήματος Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Διαβάστε περισσότερα

Παλμοκωδική Διαμόρφωση. Pulse Code Modulation (PCM)

Παλμοκωδική Διαμόρφωση. Pulse Code Modulation (PCM) Παλμοκωδική Διαμόρφωση Pulse Code Modulation (PCM) Pulse-code modulation (PCM) Η PCM είναι ένας στοιχειώδης τρόπος διαμόρφωσης που δεν χρησιμοποιεί φέρον! Το μεταδιδόμενο (διαμορφωμένο) σήμα PCM είναι

Διαβάστε περισσότερα

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Σημειώσεις Δικτύων Αναλογικά και ψηφιακά σήματα Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Χαρακτηριστικά

Διαβάστε περισσότερα

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Δρ. Στέλιος Τιμοθέου ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΑ ΘΕΜΑΤΑ ΜΑΣ ΣΗΜΕΡΑ Αναλογικά και ψηφιακά συστήματα Μετατροπή

Διαβάστε περισσότερα

Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ.

Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ. Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ. 1 Εισαγωγή Αναλογικό σήμα (analog signal): συνεχής συνάρτηση στην οποία η ανεξάρτητη μεταβλητή και η εξαρτημένη μεταβλητή (π.χ.

Διαβάστε περισσότερα

DIP_06 Συμπίεση εικόνας - JPEG. ΤΕΙ Κρήτης

DIP_06 Συμπίεση εικόνας - JPEG. ΤΕΙ Κρήτης DIP_06 Συμπίεση εικόνας - JPEG ΤΕΙ Κρήτης Συμπίεση εικόνας Το μέγεθος μιας εικόνας είναι πολύ μεγάλο π.χ. Εικόνα μεγέθους Α4 δημιουργημένη από ένα σαρωτή με 300 pixels ανά ίντσα και με χρήση του RGB μοντέλου

Διαβάστε περισσότερα

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ Κεφάλαιο 10 : Κωδικοποίηση καναλιού Χρήστος Ξενάκης Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων Περιεχόμενα Ομιλίας Απόσταση και βάρος Hamming Τεχνικές και κώδικες ανίχνευσης &

Διαβάστε περισσότερα

Τμήμα Επιστήμης Υπολογιστών ΗΥ-474. Ψηφιακή Εικόνα. Χωρική ανάλυση Αρχεία εικόνων

Τμήμα Επιστήμης Υπολογιστών ΗΥ-474. Ψηφιακή Εικόνα. Χωρική ανάλυση Αρχεία εικόνων Ψηφιακή Εικόνα Χωρική ανάλυση Αρχεία εικόνων Ψηφιοποίηση εικόνων Δειγματοληψία περιοδική, ορθογώνια (pixel = picture element) πυκνότητα ανάλογα με τη λεπτομέρεια (ppi) Κβαντισμός τιμών διακριτές τιμές,

Διαβάστε περισσότερα

Συστήματα Επικοινωνιών ΙI

Συστήματα Επικοινωνιών ΙI + Διδάσκων: Δρ. Κ. Δεμέστιχας e-mail: cdemestichas@uowm.gr Συστήματα Επικοινωνιών ΙI Διαφορική Παλμοκωδική Διαμόρφωση + Ιστοσελίδα nιστοσελίδα του μαθήματος: n https://eclass.uowm.gr/courses/icte302/ +

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α)

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α) ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α) 3.1. ΣΚΟΠΟΣ ΑΣΚΗΣΗΣ Σκοπός της εργαστηριακής αυτής άσκησης είναι η μελέτη της παλμοκωδικής διαμόρφωσης που χρησιμοποιείται στα σύγχρονα τηλεπικοινωνιακά

Διαβάστε περισσότερα

Τηλεπικοινωνιακά Συστήματα Ι

Τηλεπικοινωνιακά Συστήματα Ι Τηλεπικοινωνιακά Συστήματα Ι Διάλεξη 10: Παλμοκωδική Διαμόρφωση, Διαμόρφωση Δέλτα και Πολύπλεξη Διαίρεσης Χρόνου Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Παλμοκωδική Διαμόρφωση (PCM) Παλμοκωδική Διαμόρφωση

Διαβάστε περισσότερα

Συστήματα Επικοινωνιών

Συστήματα Επικοινωνιών Συστήματα Επικοινωνιών Ενότητα 9: Παλμοκωδική Διαμόρφωση (PCM) Μιχαήλ Λογοθέτης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Περιγραφή της μεθόδου παλμοκωδικής

Διαβάστε περισσότερα

ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ. Κεφάλαιο 3 : Πηγές Πληροφορίας Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ. Κεφάλαιο 3 : Πηγές Πληροφορίας Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ Κεφάλαιο 3 : Πηγές Πληροφορίας Χρήστος Ξενάκης Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων Περιεχόμενα Διακριτές Πηγές Πληροφορίας χωρίς μνήμη Ποσότητα πληροφορίας της πηγής Κωδικοποίηση

Διαβάστε περισσότερα

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ Τετάρτη 5-12/11/2014 ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ ΕΚΠΑΙΔΕΥΤΗΣ: ΤΡΟΧΙΔΗΣ ΠΑΝΑΓΙΩΤΗΣ 1. Παράσταση και οργάνωση δεδομένων

Διαβάστε περισσότερα

Τεχνολογία Πολυμέσων. Ενότητα # 11: Κωδικοποίηση εικόνων: JPEG Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 11: Κωδικοποίηση εικόνων: JPEG Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Τεχνολογία Πολυμέσων Ενότητα # 11: Κωδικοποίηση εικόνων: JPEG Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου

Διαβάστε περισσότερα

Αρχές Τηλεπικοινωνιών

Αρχές Τηλεπικοινωνιών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Αρχές Τηλεπικοινωνιών Ενότητα #12: Δειγματοληψία, κβαντοποίηση και κωδικοποίηση Χ. ΚΑΡΑΪΣΚΟΣ Τμήμα Μηχανικών Αυτοματισμών Τ.Ε.

Διαβάστε περισσότερα

Θεώρημα κωδικοποίησης πηγής

Θεώρημα κωδικοποίησης πηγής Κωδικοποίηση Kωδικοποίηση πηγής Θεώρημα κωδικοποίησης πηγής Καθορίζει ένα θεμελιώδες όριο στον ρυθμό με τον οποίο η έξοδος μιας πηγής πληροφορίας μπορεί να συμπιεσθεί χωρίς να προκληθεί μεγάλη πιθανότητα

Διαβάστε περισσότερα

Συμπίεση Πολυμεσικών Δεδομένων

Συμπίεση Πολυμεσικών Δεδομένων Συμπίεση Πολυμεσικών Δεδομένων Εισαγωγή στο πρόβλημα και επιλεγμένες εφαρμογές Παράδειγμα 2: Συμπίεση Εικόνας ΔΠΜΣ ΜΥΑ, Ιούνιος 2011 Εισαγωγή (1) Οι τεχνικές συμπίεσης βασίζονται στην απόρριψη της πλεονάζουσας

Διαβάστε περισσότερα

Τεχνολογία Πολυμέσων. Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Τεχνολογία Πολυμέσων Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το

Διαβάστε περισσότερα

Τηλεπικοινωνίες. Ενότητα 5: Ψηφιακή Μετάδοση Αναλογικών Σημάτων. Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τηλεπικοινωνίες. Ενότητα 5: Ψηφιακή Μετάδοση Αναλογικών Σημάτων. Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Τηλεπικοινωνίες Ενότητα 5: Ψηφιακή Μετάδοση Αναλογικών Σημάτων Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου Συμπίεση Η συμπίεση δεδομένων ελαττώνει το μέγεθος ενός αρχείου : Εξοικονόμηση αποθηκευτικού χώρου Εξοικονόμηση χρόνου μετάδοσης Τα περισσότερα αρχεία έχουν πλεονασμό στα δεδομένα τους Είναι σημαντική

Διαβάστε περισσότερα

Πληροφορική Ι. Μάθημα 9 ο Συμπίεση δεδομένων. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ.

Πληροφορική Ι. Μάθημα 9 ο Συμπίεση δεδομένων. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Οι διαφάνειες έχουν βασιστεί στο βιβλίο «Εισαγωγή στην επιστήμη των υπολογιστών» του B. Forouzanκαι Firoyz Mosharraf(2 η έκδοση-2010) Εκδόσεις Κλειδάριθμος Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου

Διαβάστε περισσότερα

Τεράστιες ανάγκες σε αποθηκευτικό χώρο

Τεράστιες ανάγκες σε αποθηκευτικό χώρο ΣΥΜΠΙΕΣΗ Τεράστιες ανάγκες σε αποθηκευτικό χώρο Παράδειγμα: CD-ROM έχει χωρητικότητα 650MB, χωρά 75 λεπτά ασυμπίεστου στερεοφωνικού ήχου, αλλά 30 sec ασυμπίεστου βίντεο. Μαγνητικοί δίσκοι χωρητικότητας

Διαβάστε περισσότερα

Αρχές κωδικοποίησης. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 08-1

Αρχές κωδικοποίησης. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 08-1 Αρχές κωδικοποίησης Απαιτήσεις κωδικοποίησης Είδη κωδικοποίησης Κωδικοποίηση εντροπίας Διαφορική κωδικοποίηση Κωδικοποίηση μετασχηματισμών Στρωματοποιημένη κωδικοποίηση Κβαντοποίηση διανυσμάτων Τεχνολογία

Διαβάστε περισσότερα

ΠΛΗ21 Κεφάλαιο 1. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 1 Εισαγωγή

ΠΛΗ21 Κεφάλαιο 1. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 1 Εισαγωγή Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 1 Εισαγωγή Στόχοι του κεφαλαίου είναι να γνωρίσουμε: Τι είναι τα Αναλογικά κ τι τα Ψηφιακά Μεγέθη Τι είναι Σήμα, Αναλογικό Σήμα, Ψηφιακό Σήμα Τι είναι Δυαδικό Σήμα

Διαβάστε περισσότερα

Κεφάλαιο 2. Οργάνωση και διαχείριση της Πληροφορίας στον. Υπολογιστή

Κεφάλαιο 2. Οργάνωση και διαχείριση της Πληροφορίας στον. Υπολογιστή ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 2 Οργάνωση και διαχείριση της Πληροφορίας στον Υπολογιστή Δεδομένα και Εντολές πληροφορία δεδομένα εντολές αριθμητικά δδ δεδομένα κείμενο εικόνα Επιλογή Αναπαράστασης

Διαβάστε περισσότερα

Ήχος. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 04-1

Ήχος. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 04-1 Ήχος Χαρακτηριστικά του ήχου Ψηφιοποίηση με μετασχηματισμό Ψηφιοποίηση με δειγματοληψία Κβαντοποίηση δειγμάτων Παλμοκωδική διαμόρφωση Συμβολική αναπαράσταση μουσικής Τεχνολογία Πολυμέσων και Πολυμεσικές

Διαβάστε περισσότερα

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Τεχνολογία Πολυμέσων Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

Διαβάστε περισσότερα

Κωδικοποίηση εικόνων κατά JPEG

Κωδικοποίηση εικόνων κατά JPEG Κωδικοποίηση εικόνων κατά JPEG Εισαγωγή Προετοιµασία της εικόνας ρυθµός Ακολουθιακός απωλεστικός ρυθµός Εκτεταµένος απωλεστικός ρυθµός Μη απωλεστικός ρυθµός Ιεραρχικός ρυθµός Τεχνολογία Πολυµέσων 09-1

Διαβάστε περισσότερα

Συμπίεση Δεδομένων

Συμπίεση Δεδομένων Συμπίεση Δεδομένων 2014-2015 Ρυθμός κωδικοποίησης Ένας κώδικας που απαιτεί L bits για την κωδικοποίηση μίας συμβολοσειράς N συμβόλων που εκπέμπει μία πηγή έχει ρυθμό κωδικοποίησης (μέσο μήκος λέξης) L

Διαβάστε περισσότερα

Επεξεργασία Χαρτογραφικής Εικόνας

Επεξεργασία Χαρτογραφικής Εικόνας Επεξεργασία Χαρτογραφικής Εικόνας ιδάσκων: Αναγνωστόπουλος Χρήστος Αρχές συµπίεσης δεδοµένων Ήδη συµπίεσης Συµπίεση εικόνων Αλγόριθµος JPEG Γιατί χρειαζόµαστε συµπίεση; Τα σηµερινά αποθηκευτικά µέσα αδυνατούν

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 3 Λειτουργίες σε Bits, Αριθμητικά Συστήματα Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Φύση υπολογιστών Η

Διαβάστε περισσότερα

Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο

Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο Εργαστηριακή Άσκηση 7: Κβάντιση και Κωδικοποίηση Σημάτων Προσομοίωση σε Η/Υ Δρ. Ηρακλής

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία Σημάτων

Ψηφιακή Επεξεργασία Σημάτων Ψηφιακή Επεξεργασία Σημάτων Ενότητα 7: Μετατροπή Σήματος από Αναλογική Μορφή σε Ψηφιακή Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Μετατροπή Αναλογικού Σήματος σε Ψηφιακό Είδη Δειγματοληψίας: Ιδανική

Διαβάστε περισσότερα

Συμπίεση Δεδομένων

Συμπίεση Δεδομένων Συμπίεση Δεδομένων 2013-2014 JPEG 2000 Δρ. Ν. Π. Σγούρος 2 JPEG 2000 Βασικά χαρακτηριστικά Επιτρέπει συμπίεση σε εξαιρετικά χαμηλούς ρυθμούς όπου η συμπίεση με το JPEG εισάγει μεγάλες παραμορφώσεις Ενσωμάτωση

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Τμήμα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ψηφιακές Επικοινωνίες Εργαστήριο 4 ο : Κβάντιση-Κωδικοποίηση Βασική Θεωρία Κβάντιση Κατά την μετατροπή ενός αναλογικού

Διαβάστε περισσότερα

Μετάδοση πληροφορίας - Διαμόρφωση

Μετάδοση πληροφορίας - Διαμόρφωση Μετάδοση πληροφορίας - Διαμόρφωση MYE006: ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ Ευάγγελος Παπαπέτρου ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΗΧ. Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Διάρθρωση μαθήματος Μετάδοση Βασικές έννοιες Διαμόρφωση ορισμός είδη

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Κ 17 Επικοινωνίες ΙΙ Χειμερινό Εξάμηνο Διάλεξη 7 η Νικόλαος Χ. Σαγιάς Επίκουρος Καθηγητής Webpage: http://eclass.uop.gr/courses/tst15

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Σχολή Θετικών Επιστημών Τεχνολογίας Τηλεπικοινωνιών Τμήμα Επιστήμης και Τεχνολογίας Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΠΙΚΟΙΝΩΝΙΕΣ ΙI Εργαστήριο 3 ο : Κβάντιση-Κωδικοποίηση

Διαβάστε περισσότερα

Εισαγωγή στις Τηλεπικοινωνίες

Εισαγωγή στις Τηλεπικοινωνίες ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στις Τηλεπικοινωνίες Ενότητα 4: Κβάντιση και Κωδικοποίηση Σημάτων Όνομα Καθηγητή: Δρ. Ηρακλής Σίμος Τμήμα: Ηλεκτρονικών

Διαβάστε περισσότερα

Μετάδοση πληροφορίας - Διαμόρφωση

Μετάδοση πληροφορίας - Διαμόρφωση ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΗΧ. Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Μετάδοση πληροφορίας - Διαμόρφωση MYE006-ΠΛΕ065: ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ Ευάγγελος Παπαπέτρου Διάρθρωση μαθήματος Βασικές έννοιες μετάδοσης Διαμόρφωση ορισμός

Διαβάστε περισσότερα

Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις

Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Δυαδικό Σύστημα Αρίθμησης Περιεχόμενα 1 Δυαδικό

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 2: Αποθήκευση Δεδομένων: Κώδικες, 1ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης Μαθησιακοί Στόχοι Η Ενότητα 2 διαπραγματεύεται

Διαβάστε περισσότερα

Συστήματα Επικοινωνιών ΙI

Συστήματα Επικοινωνιών ΙI + Διδάσκων: Δρ. Κ. Δεμέστιχας e-mail: cdemestichas@uowm.gr Συστήματα Επικοινωνιών ΙI Ψηφιακή μετάδοση στη βασική ζώνη + Ιστοσελίδα nιστοσελίδα του μαθήματος: n https://eclass.uowm.gr/courses/icte302/ +

Διαβάστε περισσότερα

Μοντέλο Επικοινωνίας Δεδομένων. Επικοινωνίες Δεδομένων Μάθημα 6 ο

Μοντέλο Επικοινωνίας Δεδομένων. Επικοινωνίες Δεδομένων Μάθημα 6 ο Μοντέλο Επικοινωνίας Δεδομένων Επικοινωνίες Δεδομένων Μάθημα 6 ο Εισαγωγή Με τη βοήθεια επικοινωνιακού σήματος, κάθε μορφή πληροφορίας (κείμενο, μορφή, εικόνα) είναι δυνατόν να μεταδοθεί σε απόσταση. Ανάλογα

Διαβάστε περισσότερα

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Τμήμα Φυσικής Εισαγωγή στα Συστήματα Τηλεπικοινωνιών Συστήματα Παλμοκωδικής Διαμόρφωσης

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Τμήμα Φυσικής Εισαγωγή στα Συστήματα Τηλεπικοινωνιών Συστήματα Παλμοκωδικής Διαμόρφωσης Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Τμήμα Φυσικής Εισαγωγή στα Συστήματα Τηλεπικοινωνιών Συστήματα Παλμοκωδικής Διαμόρφωσης Καθηγητής Ι. Τίγκελης itigelis@phys.uoa.gr ΚΒΑΝΤΙΣΗ Διαδικασία με την

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 20 Huffman codes 1 / 12 Κωδικοποίηση σταθερού μήκους Αν χρησιμοποιηθεί κωδικοποίηση σταθερού μήκους δηλαδή

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Σχολή Θετικών Επιστημών Τεχνολογίας Τηλεπικοινωνιών Τμήμα Επιστήμης και Τεχνολογίας Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΠΙΚΟΙΝΩΝΙΕΣ ΙI Εργαστήριο 3 ο : Πολυπλεξία με διαίρεση

Διαβάστε περισσότερα

Εικόνα. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 05-1

Εικόνα. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 05-1 Εικόνα Εισαγωγή Ψηφιακή αναπαράσταση Κωδικοποίηση των χρωμάτων Συσκευές εισόδου και εξόδου Βάθος χρώματος και ανάλυση Συμβολική αναπαράσταση Μετάδοση εικόνας Σύνθεση εικόνας Ανάλυση εικόνας Τεχνολογία

Διαβάστε περισσότερα

3. ΤΕΧΝΙΚΕΣ ΣΥΜΠΙΕΣΗΣ ΠΟΛΥΜΕΣΩΝ

3. ΤΕΧΝΙΚΕΣ ΣΥΜΠΙΕΣΗΣ ΠΟΛΥΜΕΣΩΝ 3. ΤΕΧΝΙΚΕΣ ΣΥΜΠΙΕΣΗΣ ΠΟΛΥΜΕΣΩΝ ΑΝΑΓΚΗ ΣΥΜΠΙΕΣΗΣ ΔΕΔΟΜΕΝΩΝ Local Multimedia Π.χ. Μία ταινία 90 min απαιτεί 120 GB, και τα σημερινά μέσα αποθήκευσης < 25 GB. Άρα σήμερα είναι αδύνατη η αποθήκευση και η

Διαβάστε περισσότερα

Ψηφιακή Μετάδοση Αναλογικών Σηµάτων

Ψηφιακή Μετάδοση Αναλογικών Σηµάτων Ψηφιακή Μετάδοση Αναλογικών Σηµάτων Τα σύγχρονα συστήµατα επικοινωνίας σε πολύ µεγάλο ποσοστό διαχειρίζονται σήµατα ψηφιακής µορφής, δηλαδή, σήµατα που δηµιουργούνται από ακολουθίες δυαδικών ψηφίων. Τα

Διαβάστε περισσότερα

Ψηφιακή Λογική Σχεδίαση

Ψηφιακή Λογική Σχεδίαση Ψηφιακή Λογική Σχεδίαση Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το παρόν

Διαβάστε περισσότερα

ιαφορική εντροπία Σεραφείµ Καραµπογιάς

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

Διαβάστε περισσότερα

Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική «Λογικές» πράξεις, μάσκες Πώς βρίσκουμε το υπόλοιπο μιας διαίρεσης με το 4; διαίρεση με 4 = δεξιά ολίσθηση 2 bits Το υπόλοιπο

Διαβάστε περισσότερα

Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Τμήμα Μηχανικών Η/Υ και Πληροφορικής Τμήμα Μηχανικών Η/Υ και Πληροφορικής Εργαστήριο Επεξεργασίας Σημάτων και Τηλεπικοινωνιών Ασύρματες και Κινητές Επικοινωνίες Κωδικοποίηση καναλιού Τι θα δούμε στο μάθημα Σύντομη εισαγωγή Γραμμικοί κώδικες

Διαβάστε περισσότερα

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ Κεφάλαιο 9 : Κανάλι-Σύστημα Χρήστος Ξενάκης Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων Περιεχόμενα Ομιλίας Χωρητικότητα Χ ό καναλιού Το Gaussian κανάλι επικοινωνίας Τα διακριτά

Διαβάστε περισσότερα

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣΟΡ Κεφάλαιο 1 : Εισαγωγή στη Θεωρία ωία Πληροφορίας Χρήστος Ξενάκης Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων Περιεχόμενα Ομιλίας Έννοια της πληροφορίας Άλλες βασικές έννοιες Στόχος

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ. Εργαστήριο 8 ο. Αποδιαμόρφωση PAM-PPM με προσαρμοσμένα φίλτρα

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ. Εργαστήριο 8 ο. Αποδιαμόρφωση PAM-PPM με προσαρμοσμένα φίλτρα Τμήμα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ Εργαστήριο 8 ο Αποδιαμόρφωση PAM-PPM με προσαρμοσμένα φίλτρα Βασική Θεωρία Σε ένα σύστημα μετάδοσης

Διαβάστε περισσότερα

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 18

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 18 ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 18 14 Νοεµβρίου, 2006 Γεώργιος Έλληνας Επίκουρος Καθηγητής ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010 11 Ιστοσελίδα μαθήματος: http://eclass.teilam.gr/di288 1 Συμπίεση

Διαβάστε περισσότερα

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

Διαβάστε περισσότερα

Θεωρία Πληροφορίας. Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Θεωρία Πληροφορίας. Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής Θεωρία Πληροφορίας Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα Διακριτή πηγή πληροφορίας χωρίς μνήμη Ποσότητα πληροφορίας της πηγής Κωδικοποίηση

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων 1 2.1 Τύποι Δεδομένων Τα δεδομένα σήμερα συναντώνται σε διάφορες μορφές, στις οποίες περιλαμβάνονται αριθμοί,

Διαβάστε περισσότερα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή 1 1. Αριθμοί: Το Δυαδικό Σύστημα Οι ηλεκτρονικοί υπολογιστές

Διαβάστε περισσότερα

Αρχές κωδικοποίησης. Τεχνολογία Πολυµέσων 08-1

Αρχές κωδικοποίησης. Τεχνολογία Πολυµέσων 08-1 Αρχές κωδικοποίησης Απαιτήσεις κωδικοποίησης Είδη κωδικοποίησης Βασικές τεχνικές κωδικοποίησης Κωδικοποίηση Huffman Κωδικοποίηση µετασχηµατισµών Κβαντοποίηση διανυσµάτων ιαφορική κωδικοποίηση Τεχνολογία

Διαβάστε περισσότερα

Ψηφιακές Τηλεπικοινωνίες. Θεωρία Ρυθμού Παραμόρφωσης

Ψηφιακές Τηλεπικοινωνίες. Θεωρία Ρυθμού Παραμόρφωσης Ψηφιακές Τηλεπικοινωνίες Θεωρία Ρυθμού Παραμόρφωσης Θεωρία Ρυθμού-Παραμόρφωσης Θεώρημα Κωδικοποίησης Πηγής: αν έχω αρκετά μεγάλο μπλοκ δεδομένων, μπορώ να φτάσω κοντά στην εντροπία Πιθανά Προβλήματα: >

Διαβάστε περισσότερα

Κωδικοποίηση Πηγής. Η λειτουργία ενός συστήματος επικοινωνίας (γενικό διάγραμμα):

Κωδικοποίηση Πηγής. Η λειτουργία ενός συστήματος επικοινωνίας (γενικό διάγραμμα): Κωδικοποίηση Πηγής Η λειτουργία ενός συστήματος επικοινωνίας (γενικό διάγραμμα): Coder Decoder Μεταξύ πομπού-καναλιού παρεμβάλλεται ο κωδικοποιητής (coder). Έργο του: η αντικατάσταση των συμβόλων πληροφορίας

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία Εικόνας

Ψηφιακή Επεξεργασία Εικόνας ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ψηφιακή Επεξεργασία Εικόνας Ενότητα 6 : Κωδικοποίηση & Συμπίεση εικόνας Ιωάννης Έλληνας Τμήμα Η/ΥΣ Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Αντοχή (ruggedness) στο θόρυβο μετάδοσης Αποτελεσματική αναγέννηση (regeneration) Δυνατότητα ομοιόμορφου σχήματος (uniform format) μετάδοσης Όμως:

Αντοχή (ruggedness) στο θόρυβο μετάδοσης Αποτελεσματική αναγέννηση (regeneration) Δυνατότητα ομοιόμορφου σχήματος (uniform format) μετάδοσης Όμως: ΨΗΦΙΑΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ Πλεονεκτήματα: Αντοχή (ruggedness) στο θόρυβο μετάδοσης Αποτελεσματική αναγέννηση (regeneration) Δυνατότητα ομοιόμορφου σχήματος (uniform format) μετάδοσης Όμως: Αύξηση απαίτησης εύρους

Διαβάστε περισσότερα

Τηλεπικοινωνιακά Συστήματα ΙΙ

Τηλεπικοινωνιακά Συστήματα ΙΙ Τηλεπικοινωνιακά Συστήματα ΙΙ Διάλεξη 11: Κωδικοποίηση Πηγής Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα 1. Αλγόριθμοι κωδικοποίησης πηγής Αλγόριθμος Fano Αλγόριθμος Shannon Αλγόριθμος Huffman

Διαβάστε περισσότερα

Θεωρία Πληροφορίας. Διάλεξη 10: Κωδικοποίηση καναλιού με συνελικτικούς κώδικες. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Θεωρία Πληροφορίας. Διάλεξη 10: Κωδικοποίηση καναλιού με συνελικτικούς κώδικες. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής Θεωρία Πληροφορίας Διάλεξη 10: Κωδικοποίηση καναλιού με συνελικτικούς κώδικες Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα Κωδικοποίηση καναλιού: Σύντομη επανάληψη Συνελικτικοί κώδικες Ιστορική

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ ΠΕΜΠΤΟ ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ

ΚΕΦΑΛΑΙΟ ΠΕΜΠΤΟ ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ ΚΕΦΑΛΑΙΟ ΠΕΜΠΤΟ ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ 5. Εισαγωγή Ο σκοπός κάθε συστήματος τηλεπικοινωνιών είναι η μεταφορά πληροφορίας από ένα σημείο (πηγή) σ ένα άλλο (δέκτης). Συνεπώς, κάθε μελέτη ενός τέτοιου συστήματος

Διαβάστε περισσότερα

Group (JPEG) το 1992.

Group (JPEG) το 1992. Μέθοδοι Συμπίεσης Εικόνας Πρωτόκολλο JPEG Συμπίεση Εικόνας: Μείωση αποθηκευτικού χώρου Ευκολία στη μεταφορά αρχείων Δημιουργήθηκε από την ομάδα Joint Photographic Experts Group (JPEG) το 1992. Ονομάστηκε

Διαβάστε περισσότερα

ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στα Σήµατα Εισαγωγή στα Συστήµατα Ανάπτυγµα - Μετασχηµατισµός Fourier Μετασχηµατισµός Z

ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στα Σήµατα Εισαγωγή στα Συστήµατα Ανάπτυγµα - Μετασχηµατισµός Fourier Μετασχηµατισµός Z ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στα Σήµατα Εισαγωγή στα Συστήµατα Ανάπτυγµα - Μετασχηµατισµός Fourier Μετασχηµατισµός Laplace Μετασχηµατισµός Z Εφαρµογές Παράδειγµα ενός ηλεκτρικού συστήµατος Σύστηµα Παράδειγµα

Διαβάστε περισσότερα

Συμπίεση Δεδομένων

Συμπίεση Δεδομένων Συμπίεση Δεδομένων 2014-2015 Κβάντιση Δρ. Ν. Π. Σγούρος 2 Αναλογικά Ψηφιακά Σήματα Αναλογικό Σήμα x t, t [t min, t max ], x [x min, x max ] Δειγματοληψία t n, x t x n, n = 1,, N Κβάντιση x n x(n) 3 Αλφάβητο

Διαβάστε περισσότερα

Εισαγωγή στις Τηλεπικοινωνίες

Εισαγωγή στις Τηλεπικοινωνίες ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στις Τηλεπικοινωνίες Ενότητα 3: Δειγματοληψία και Ανακατασκευή Σημάτων Όνομα Καθηγητή: Δρ. Ηρακλής Σίμος Τμήμα: Ηλεκτρονικών

Διαβάστε περισσότερα

Συµπίεση Εικόνας: Το πρότυπο JPEG

Συµπίεση Εικόνας: Το πρότυπο JPEG ΒΕΣ : Συµπίεση και Μετάδοση Πολυµέσων ΒΕΣ Συµπίεση και Μετάδοση Πολυµέσων Συµπίεση Εικόνας: Το πρότυπο JPEG ΒΕΣ : Συµπίεση και Μετάδοση Πολυµέσων Εισαγωγή Σχεδιάστηκε από την οµάδα Joint Photographic Experts

Διαβάστε περισσότερα

Τηλεπικοινωνιακά Συστήματα ΙΙ

Τηλεπικοινωνιακά Συστήματα ΙΙ Τηλεπικοινωνιακά Συστήματα ΙΙ Διάλεξη 13: Συνελικτικοί Κώδικες Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Κώδικες: Εισαγωγή Συνελικτικοί κώδικες Ατζέντα Ιστορική αναδρομή Μαθηματικό υπόβαθρο Αναπαράσταση

Διαβάστε περισσότερα

Θέματα Συστημάτων Πολυμέσων

Θέματα Συστημάτων Πολυμέσων Θέματα Συστημάτων Πολυμέσων Ενότητα # 6: Στοιχεία Θεωρίας Πληροφορίας Διδάσκων: Γεώργιος K. Πολύζος Τμήμα: Μεταπτυχιακό Πρόγραμμα Σπουδών Επιστήμη των Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Σήματα και Συστήματα. Διάλεξη 1: Σήματα Συνεχούς Χρόνου. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Σήματα και Συστήματα. Διάλεξη 1: Σήματα Συνεχούς Χρόνου. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής Σήματα και Συστήματα Διάλεξη 1: Σήματα Συνεχούς Χρόνου Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Εισαγωγή στα Σήματα 1. Σκοποί της Θεωρίας Σημάτων 2. Κατηγορίες Σημάτων 3. Χαρακτηριστικές Παράμετροι

Διαβάστε περισσότερα

Συστήματα Επικοινωνιών

Συστήματα Επικοινωνιών Συστήματα Επικοινωνιών Ενότητα 8: Δειγματοληψία - Διαμόρφωση παλμών Μιχαήλ Λογοθέτης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Περιγραφή της διαδικασίας

Διαβάστε περισσότερα

Εικόνες και γραφικά. Τεχνολογία Πολυµέσων 05-1

Εικόνες και γραφικά. Τεχνολογία Πολυµέσων 05-1 Εικόνες και γραφικά Περιγραφή στατικών εικόνων Αναπαράσταση γραφικών Υλικό γραφικών Dithering και anti-aliasing Σύνθεση εικόνας Ανάλυση εικόνας Μετάδοση εικόνας Τεχνολογία Πολυµέσων 05-1 Περιγραφή στατικών

Διαβάστε περισσότερα

ΒΕΣ 04: Συµπίεση και Μετάδοση Πολυµέσων. Περιεχόµενα. Βιβλιογραφία. Συµπίεση εικόνων: Το πρότυπο JPEG. Εισαγωγή. Ευθύς µετασχηµατισµός DCT

ΒΕΣ 04: Συµπίεση και Μετάδοση Πολυµέσων. Περιεχόµενα. Βιβλιογραφία. Συµπίεση εικόνων: Το πρότυπο JPEG. Εισαγωγή. Ευθύς µετασχηµατισµός DCT ΒΕΣ : Συµπίεση και Μετάδοση Πολυµέσων Συµπίεση εικόνων: Το πρότυπο JPEG Περιεχόµενα Εισαγωγή Ο µετασχηµατισµός DCT Το πρότυπο JPEG Προετοιµασία εικόνας / µπλοκ Ευθύς µετασχηµατισµός DCT Κβαντισµός Κωδικοποίηση

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 6 η : Συμπίεση Εικόνας. Καθ. Κωνσταντίνος Μπερμπερίδης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 6 η : Συμπίεση Εικόνας. Καθ. Κωνσταντίνος Μπερμπερίδης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 6 η : Συμπίεση Εικόνας Καθ. Κωνσταντίνος Μπερμπερίδης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής Σκοποί ενότητας Εισαγωγή στη συμπίεση εικόνας Μη απωλεστικες

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ Κβάντιση και Κωδικοποίηση ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ Χειμερινό Εξάμηνο Τμήμα Πληροφορικής και Τηλεπικοινωνίων Νικόλαος Χ. Σαγιάς Αναπληρωτής Καθηγητής Webpage: http://eclass.uop.gr/courses/tst15

Διαβάστε περισσότερα

Περιεχόµενα. ΕΠΛ 422: Συστήµατα Πολυµέσων. Βιβλιογραφία. Εισαγωγή. Συµπίεση εικόνων: Το πρότυπο JPEG. Εισαγωγή. Ευθύς µετασχηµατισµός DCT

Περιεχόµενα. ΕΠΛ 422: Συστήµατα Πολυµέσων. Βιβλιογραφία. Εισαγωγή. Συµπίεση εικόνων: Το πρότυπο JPEG. Εισαγωγή. Ευθύς µετασχηµατισµός DCT Περιεχόµενα ΕΠΛ : Συστήµατα Πολυµέσων Συµπίεση εικόνων: Το πρότυπο JPEG Εισαγωγή Ο µετασχηµατισµός DCT Το πρότυπο JPEG Προετοιµασία εικόνας / µπλοκ Ευθύς µετασχηµατισµός DCT Κβαντισµός Κωδικοποίηση ηµιουργία

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

Διαβάστε περισσότερα

27-Ιαν-2009 ΗΜΥ (ι) Βασική στατιστική (ιι) Μετατροπές: αναλογικό-σεψηφιακό και ψηφιακό-σε-αναλογικό

27-Ιαν-2009 ΗΜΥ (ι) Βασική στατιστική (ιι) Μετατροπές: αναλογικό-σεψηφιακό και ψηφιακό-σε-αναλογικό ΗΜΥ 429 2. (ι) Βασική στατιστική (ιι) Μετατροπές: αναλογικό-σεψηφιακό και ψηφιακό-σε-αναλογικό 1 (ιι) Μετατροπές: αναλογικό-σεψηφιακό και ψηφιακό-σε-αναλογικό 2 Βασικά μέρη συστήματος ΨΕΣ Φίλτρο αντι-αναδίπλωσης

Διαβάστε περισσότερα

Κωδικοποίηση βίντεο (H.261 / DVI)

Κωδικοποίηση βίντεο (H.261 / DVI) Κωδικοποίηση βίντεο (H.261 / DVI) Αρχές κωδικοποίησης βίντεο Εισαγωγή στο H.261 Κωδικοποίηση βίντεο Ροή δεδοµένων Εισαγωγή στο DVI Κωδικοποίηση ήχου και εικόνων Κωδικοποίηση βίντεο Ροή δεδοµένων Τεχνολογία

Διαβάστε περισσότερα

EE728 (22Α004) - Προχωρημένα Θέματα Θεωρίας Πληροφορίας 3η σειρά ασκήσεων Διακριτά και Συνεχή Κανάλια. Παράδοση: Έως 22/6/2015

EE728 (22Α004) - Προχωρημένα Θέματα Θεωρίας Πληροφορίας 3η σειρά ασκήσεων Διακριτά και Συνεχή Κανάλια. Παράδοση: Έως 22/6/2015 EE728 (22Α004) - Προχωρημένα Θέματα Θεωρίας Πληροφορίας Φυλλάδιο 13 Δ. Τουμπακάρης 30 Μαΐου 2015 EE728 (22Α004) - Προχωρημένα Θέματα Θεωρίας Πληροφορίας 3η σειρά ασκήσεων Διακριτά και Συνεχή Κανάλια Παράδοση:

Διαβάστε περισσότερα

Συστήματα Πολυμέσων. Ενότητα 2: Εισαγωγικά θέματα Ψηφιοποίησης. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Συστήματα Πολυμέσων. Ενότητα 2: Εισαγωγικά θέματα Ψηφιοποίησης. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Εισαγωγικά θέματα Ψηφιοποίησης Θρασύβουλος Γ. Τσιάτσος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Τηλεπικοινωνιακά Συστήματα ΙΙ

Τηλεπικοινωνιακά Συστήματα ΙΙ Τηλεπικοινωνιακά Συστήματα ΙΙ Διάλεξη 1: Χωρητικότητα Καναλιών Το θεώρημα Shannon - Hartley Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα 1. Δυαδική σηματοδοσία 2. Μορφές δυαδικής σηματοδοσίας 3.

Διαβάστε περισσότερα

Συστήματα Επικοινωνιών ΙI

Συστήματα Επικοινωνιών ΙI + Διδάσκων: Δρ. Κ. Δεμέστιχας e-mail: cdemestichas@uowm.gr Συστήματα Επικοινωνιών ΙI Εισαγωγή Δειγματοληψία + Περιεχόμενα n Εισαγωγή n αναλογικό η ψηφιακό σήμα; n ψηφιακά συστήματα επικοινωνιών n Δειγματοληψία

Διαβάστε περισσότερα

Τεχνολογία Πολυμέσων. Ενότητα # 12: Κωδικοποίηση βίντεο: H.26x Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 12: Κωδικοποίηση βίντεο: H.26x Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Τεχνολογία Πολυμέσων Ενότητα # 12: Κωδικοποίηση βίντεο: H.26x Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου

Διαβάστε περισσότερα

Τεχνολογία Πολυμέσων. Ενότητα # 14: Κωδικοποίηση βίντεο: Η.264 Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 14: Κωδικοποίηση βίντεο: Η.264 Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Τεχνολογία Πολυμέσων Ενότητα # 14: Κωδικοποίηση βίντεο: Η.264 Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Κ 17 Επικοινωνίες ΙΙ Χειμερινό Εξάμηνο Διάλεξη 8 η Νικόλαος Χ. Σαγιάς Επίκουρος Καθηγητής Webpage: http://eclass.uop.gr/courses/tst15

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ,

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 4: ΣΥΣΤΗΜΑΤΑ ΠΟΛΥΜΕΣΩΝ Ακαδηµαϊκό Έτος 004 005, Χειµερινό Εξάµηνο Καθ.: Νίκος Τσαπατσούλης ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ Η εξέταση αποτελείται από δύο µέρη. Το πρώτο περιλαµβάνει

Διαβάστε περισσότερα

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ ΔΙΑΡΚΕΙΑ: 1 περιόδους 22/1/2010 10:11 καθ. Τεχνολογίας 22/1/2010 10:12 Παραδείγματα Τι ονομάζουμε αριθμητικό σύστημα? Το σύνολο από ψηφία (αριθμοί & χαρακτήρες). Που χρησιμεύουν

Διαβάστε περισσότερα