Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 5-6 Αναπαράσταση Μη Αριθμητικών Δεδομένων (κείμενο, ήχος και εικόνα στον υπολογιστή) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Δεδομένα: ανεξάρτητα από τύπο και προέλευση, στον υπολογιστή υπάρχουν σε μία μορφή: και συνεχείς (αναλογικές) ποσότητες Αναπαράσταση ήχος εικόνα βίντεο κείμενο αριθμοί διακριτές ποσότητες (σύμβολα) ψηφιοποίηση αναπαράσταση δυαδικοί αριθμοί εντολές μηχανής κωδικοποίηση σειρές bits Ψηφιοποίηση Διαδικασία μετατροπής συνεχών τιμών σε διακριτά σύμβολα Διαδικασία αντιστοίχισης συμβόλων σε δυαδικούς αριθμούς Κωδικοποίηση Αποθήκευση δυαδικών αριθμών σε σειρές bits επεξεργασία Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων Η ερμηνεία της αναπαράστασης Αναπαράσταση με δυαδικούς αριθμούς Στα ερωτήματα αυτά μπορεί να απαντήσει μόνο ο προγραμματιστής της εφαρμογής που χειρίζεται τα δεδομένα Κάπου στη μνήμη του υπολογιστή Βρίσκεται αποθηκευμένη η σειρά bits Πόσα σύμβολα αναπαριστά; Πόσα bits ανά σύμβολο; Ποιος ο τύπος των ; Ποια συγκεκριμένη ποσότητα συμβολίζει; Πώς θα το χειριστεί ο υπολογιστής; Σειρά n bits Δυαδικός αριθμός με n bits (n ) μπορεί να αναπαραστήσει n διαφορετικά σύμβολα Μη αριθμητικά δεδομένα Κείμενο, εντολές μηχανής, ήχος, εικόνα Σύνολο διαφορετικών αντικειμένων (συμβόλων) Αντιστοίχιση κάθε συμβόλου σε μοναδικό δυαδικό αριθμό (code point) Αναπαράσταση Η ακριβής αντιστοίχιση συνήθως ορίζεται σε ένα πρότυπο (standard) Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 4
Η επικοινωνία με τη μνήμη Η επικοινωνία με τη μνήμη μονάδα ελέγχου τμήμα επεξεργασίας read [ ] Μοντέλο μνήμης Συστοιχία αποθηκευτικών θέσεων Σε κάθε θέση αποθηκεύεται (συνήθως) byte Κάθε θέση διαθέτει μοναδική διεύθυνση F 65 Διευθύνσεις μνήμης Επιλογή θέσης κατά την προσπέλαση (ανάγνωση-εγγραφή) 7 F ; Με διεύθυνση των n bits, πόσες διαφορετικές θέσεις μνήμης μπορούμε να προσπελάσουμε; μονάδα ελέγχου τμήμα επεξεργασίας write [ ] 94 Χωρητικότητα μνήμης Εκφράζεται σε πολλαπλάσια του byte KByte (KB) = 4 Bytes ( ) MByte (MB) = 4 ΚBytes ( κλπ Διευθύνσεις μνήμης ) 94 F 65 Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 5 Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 6 Θέματα αποθήκευσης δυαδικών αριθμών Θέματα αποθήκευσης δυαδικών αριθμών ; Πώς σχετίζεται η σειρά αποθήκευσης των bytes με τα Ταξίδια του Γκιούλιβερ ; Όταν Ένας δυαδικός αριθμός χρειάζεται περισσότερα από ένα byte για να αποθηκεύσει τα ψηφία του Παράδειγμα: FC (hex) = Χρειάζονται bytes περισσότερο σημαντικό byte λιγότερο σημαντικό byte Προφανώς σε συνεχόμενες θέσεις μνήμης Αλλά: ποιο byte αποθηκεύεται πρώτο; αποθηκεύοντας το FC i Στο Διαδίκτυο τα δεδομένα διακινούνται σε big-endian μορφη FC little-endian (Intel) Το λιγότερο σημαντικό byte στη θέση μνήμης με μικρότερη διεύθυνση FC big-endian (Motorola, Sun, PowerPC) Το περισσότερο σημαντικό byte στη θέση μνήμης με μικρότερη διεύθυνση Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 7 Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 8
Αρχικές αναπαραστάσεις κειμένου Κώδικας ASCII Οι πρώτες αναπαραστάσεις κειμένου Στον υπολογιστή 6-7 bits ανά χαρακτήρα Πόσοι διαφορετικοί χαρακτήρες; Μη εκτυπώσιμοι χαρακτήρες Χαρακτήρες ελέγχου Ιδιαίτερα χρήσιμοι για τις συσκευές εξόδου της εποχής (εκτυπωτές, τηλέτυπα) Νέα γραμμή (LINE FEED LF) Επιστροφή κεφαλής εκτύπωσης (CARRIAGE RETURN CR) Καμπανάκι (BELL) κλπ i ASCII: American Standard Code for Information Exchange Βασικό αρχικό πρότυπο αναπαράστασης κειμένου 7 bits ανά χαρακτήρα Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 9 Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων Κείμενο σε κώδικα ASCII Κείμενο σε κώδικα ASCII ; Με 7 bits ανά χαρακτήρα και χρήση bytes, bit μένει αχρησιμοποίητο. Πόσοι επιπλέον χαρακτήρες με το bit αυτό; 7 bits ανά χαρακτήρα 8 χαρακτήρες Αναπαράσταση με τους αριθμούς 7 Κανονικοί χαρακτήρες (εκτυπώσιμοι) 64, 996, 6 = σημεία στίξης κ.ά. ( = SPACE) 659 = κεφαλαία λατινικά (Α-Ζ) 97 = πεζά λατινικά (a-z) Χαρακτήρες ελέγχου (μη εκτυπώσιμοι), 7 επιζούν τα: 9 (TAB), / (CR/LF, σήμανση νέας γραμμής ) Εφόσον η κωδικοποίηση είναι με byte ανά χαρακτήρα, δεν τίθεται θέμα little- ή big- endian Παράδειγμα H a v e a n 7 97 8 97 5 99 97 Γλώσσες προγραμματισμού Συμβολοσειρά (string) Σε γλώσσες όπως η C, το (αριθμητικό) συμβολίζει το τέλος της συμβολοσειράς Ο υπολογιστής μπορεί να κάνει πράξεις (π.χ. σύγκριση) με τη συμβολοσειρά i c e d a y Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων
Επεκτάσεις κώδικα ASCII Κώδικας ISO-8859-7 Χρησιμοποιώντας τον ISO-8859- δεν είναι δυνατή η αναπαράσταση των ελληνικών Χρήση του επιπλέον bit του byte 8 + 8 χαρακτήρες, αριθμοί 55 7 αντιστοιχούν στον αρχικό ASCII 755: επεκταμένα αλφάβητα Επέκταση αλφαβήτων (πρότυπα) Χαρακτήρες που δεν υπάρχουν στον ASCII Διαφορετικά ανά γλώσσα Π.χ.: ISO-8859-: Δυτική Ευρώπη (Å, Ñ, Æ,ä, ø κλπ) ISO-8859-7: Νέα Ελληνικά και πολλά άλλα πρότυπα για τις υπόλοιπες γλώσσες Επίσης: μη πρότυπες λύσεις Για Windows, Mac.. [Wikipedia] Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 4 Κείμενο σε κώδικα ISO-8859-7 Πρότυπο Unicode Οι αναπαραστάσεις αλφαβήτων με byte ανά χαρακτήρα τείνουν να καταργηθούν Παράδειγμα Γ ε ι α 95 9 5 4 9 45 Επέκταση κώδικα ASCII 7 όπως στον ASCII 859 πρόσθετοι χαρακτήρες ελέγχου 655 ελληνικά και σχετικά σύμβολα σ ο υ Με περισσότερα από bytes ανά χαρακτήρα τίθεται θέμα σειράς αποθήκευσης των bytes Για την αναπαράσταση όλων των αλφαβήτων Έχουν οριστεί σχεδόν. χαρακτήρες Καλύπτει ιδεογράμματα, φωνητικές αναπαραστάσεις κλπ Θα μπορούσε να καλύψει πάνω από εκ. χαρακτήρες (... FFFF) Κάθε χαρακτήρας αναπαρίσταται με περισσότερα από ένα bytes Συνήθεις κωδικοποιήσεις: UCS- (ή UTF-6) και UTF-8 Το πρότυπο Unicode περιέχει επίσης πληροφορία ισοδύναμων ή παρόμοιων χαρακτήρων οδηγίες συνδυασμών τόνων/διακριτικών και γραμμάτων Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 5 Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 6
Ελληνικά και Unicode Κείμενο σε Unicode δεκαεξαδικό Παράδειγμα Γ 95 9 ε 949 B5 ι 95 B9 α 945 B σ 96 C ο 959 BF υ 965 C5 Κωδικοποίηση UCS- (big-endian) 9 B5 B9 B C BF C5 Κωδικοποίηση UCS- (little-endian) 9 B5 B9 B C BF C5 Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 7 Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 8 Unicode σε κωδικοποίηση UTF-8 Ήχος: Ψηφιοποίηση και Αποθήκευση μεταβλητού μήκους 7F Unicode xxxxxxx Κωδικοποίηση UTF-8 δειγματοληψία 87FF xxxxx xxxxxx Η κωδικοποίηση UTF-8 τείνει να επικρατήσει σε όλα τα προγράμματα που χειρίζονται κείμενα Unicode 8FFFF FFFF Το βασικό λατινικό αλφάβητο (ASCII)( χρησιμοποιεί byte ανά χαρακτήρα Προς τα πίσω συμβατότητα Τα ελληνικά, bytes xxxx xxxxxx xxxxxx xxx xxxxxx xxxxxx xxxxxx Ποια η κωδικοποίηση κατά UTF-8 του τελευταίου παραδείγματος; κωδικοποίηση κβάντωση Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 9 Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων
Εικόνα: από τον αναλογικό στον ψηφιακό κόσμο αισθητήρες φωτός μετατροπή σήματος από.. αναλογικό σε ψηφιακό Παράδειγμα: απλή αναπαράσταση pixels με 6,7 εκ. χρώματα R:44 G:8 B:8 R: G:74 B:4 R:9 G:64 B:79 pixel Φωτοευαίσθητα κύτταρα για τρία χρώματα (κόκκινο-πράσινο-μπλε) Μετατροπή σήματος σε ψηφιακή πληροφορία Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων bytes/pixel (4bits): R(ed) G(reen) B(lue) 56 στάθμες ανά συνιστώσα χρώματος 56x56x56 = 6.777.6 χρώματα εικόνες με μεγαλύτερο βάθος χρώματος έως 48 bits Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων Εναλλακτικά: διανυσματικά γραφικά Αναπαράσταση βίντεο Περιγραφή σχημάτων Ως σύνολο ευθύγραμμων και καμπύλων τμημάτων Με συντεταγμένες Εύρεση σημείων μέσω μαθηματικού τύπου Βίντεο Κινούμενη εικόνα (καρέ) όπως αναπαριστούμε τις απλές εικόνες αλλά: με χρήση συμπίεσης Για μείωση όγκου Γειτονικά καρέ έχουν πολλές ομοιότητες Εύκολη αλλαγή μεγέθους γραφικών Χωρίς παραμόρφωση των σχημάτων Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 4
Κωδικοποίηση εντολών μηχανής Βίντεο Εντολές Μηχανής opcode operand operand.. operandn Περιγράφει το είδος της πράξης που θα εκτελεστεί Περιγράφουν την προέλευση των εισόδου (αριθμό καταχωρητή, διεύθυνση μνήμης κλπ) και τον προορισμό των εξόδου (αποτέλεσμα πράξης) Το είδος της πράξης προσδιορίζει τον τύπο, την προέλευση και τον αριθμό των που συμμετέχουν στην πράξη Εισαγωγή στην Επιστήμη των Υπολογιστών Αναπαράσταση Μη Αριθμητικών Δεδομένων 5