Συμπίεση Δεδομένων (Data Compression)



Σχετικά έγγραφα
Εισαγωγή στους Αλγόριθμους

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

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

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

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

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

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

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

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

Γνωστό: P (M) = 2 M = τρόποι επιλογής υποσυνόλου του M. Π.χ. M = {A, B, C} π. 1. Π.χ.

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

Ενότητα 1. Γνωρίζω τον υπολογιστή ως ενιαίο σύστημα

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

Ζωγραφίζοντας με τους αριθμούς - Η αναπαράσταση των εικόνων

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 9 : Συμπίεση δεδομένων. Δρ. Γκόγκος Χρήστος

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

[2] Υπολογιστικά συστήματα: Στρώματα. Τύποι δεδομένων. Μπιτ. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

Ανάκτηση Πληροφορίας

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

Συμπίεση χωρίς Απώλειες

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

Group (JPEG) το 1992.

Όλοι οι ακέραιοι αριθμοί από το 0 και μετά λέγονται φυσικοί αριθμοί π.χ.

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Αναπαράσταση δεδομένων

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

3 ο Εργαστήριο Μεταβλητές, Τελεστές

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

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

Κώδικες Διόρθωσης Σφαλμάτων (Error-Correcting Codes) Σφάλματα που αυτο- διορθώνονται

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

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

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

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

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

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ. Δρ. Κουζαπάς Δημήτριος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής. Αναπαράσταση Δεδομένων

Εφαρμογές Πληροφορικής

Δραστηριότητες σχετικά με κρυπτογραφία και ελέγχους ισοτιμίας

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

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

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

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

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

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

Α. Θα καλεί υποπρόγραμμα INPUT που θα διαβάζει τις τιμές του πίνακα MAP.

Βάσεις Δεδομένων. Εργαστήριο 1. Ηλεκτρονικοί Υπολογιστές ΙI. Ακαδημαϊκό Έτος Διαφάνεια 1. Κάπαρης Αναστάσιος

Προγραμματισμός. Το περιβάλλον του scratch

Κωδικοποίηση Πηγής. Δρ. Α. Πολίτης

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα

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

Μάθημα 4ο. Προγράμματα

Pixlr: Ας περικόψουμε τα περιττά

Αλλαγή κλίμακας σχεδίου με το COREL

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

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

Ψευδοκώδικας. November 7, 2011

Παραδείγματα σχεδίασης με μηχανές πεπερασμένων καταστάσεων

Θέμα: «ΣΥΜΠΙΕΣΗ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΟΛΥΜΕΣΑ» Εισηγητής: Παναγιώτης Γιώτης 20 Μαϊου 2007 Αθήνα

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Εισαγωγή στην Πληροφορική ΓΕΝΙΚΟ ΤΜΗΜΑ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ TEI ΧΑΛΚΙ ΑΣ

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

1. Τα τμήματα της επιφάνειας εργασίας των Windows

Analog vs Digital. Δούρβας Ιωάννης ΙΩΑΝΝΗΣ ΔΟΥΡΒΑΣ

Το Πρόβλημα της Πινακοθήκης (The Art Gallery Problem)

Διαγράμματα. Νίκος Σκουλίδης, Σημειώσεις Φυσικής Α` Γυμνασίου, , Διαγράμματα_1_0.docx

Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση

Ενότητα 5: ΜΕΤΑΒΛΗΤΕΣ

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

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

Υπολογιστικής Σκέψης

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

5η Δραστηριότητα. Λύσε το γρίφο Η Θεωρία της Πληροφορίας. Περίληψη. Λπν τ φνντ π τν πρτσ. Ικανότητες. Ηλικία. Υλικά

ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 2 Δυαδική Κωδικοποίηση

«Η ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ BarCode» ( Μια πρόταση για ένα μαθητικό project )

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι ΨΗΦΙΑΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ. Δρ.

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

Αναπτυξιακά ορόσημα λόγου

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

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

χωρίςναδηµιουργείταιαίσθησηαπώλειαςτηςποιότηταςτηςανακατασκευασµένηςεικόνας.

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

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

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

Πρόγραμμα όρασης. Στη συνέχεια θα περιγράψουμε πώς δουλεύει το ρομπότ.

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Περιεχόμενα. Βήμα 4 ο Βήμα 5 ο... 6 Τι πρέπει να προσέξουμε Page 1 ΤΕΧΝΙΚΟ ΕΓΧΕΙΡΙΔΙΟ ΜΑΖΙΚΗΣ ΠΡΟΣΘΗΚΗΣ ΠΡΟΪΟΝΤΩΝ

Gutenberg

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης;

ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ. ΟΜΑΔΑ 3: Μάρκου Ελένη, Παπαδοπούλου Ελένη, Παπαντώνη Ειρήνη, Πάτσης Γιώργος

Εντολές της LOGO (MicroWorlds Pro)

Transcript:

Συμπίεση Δεδομένων (Data Compression)

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

Περί τίνος πρόκειται; Γενικά έχουμε πλέον άφθονο αποθηκευτικό χώρο στους υπολογιστές μας καιδεχρειάζεταιπάντανασυμπιέζουμεταδικάμαςαρχείαγιανατα αποθηκεύσουμε Όμως, οι υπολογιστές, παρασκηνιακά χρησιμοποιούν συνέχεια συμπίεση Πολλά από τα μηνύματα που αποστέλλονται μέσω internet συμπιέζονται χωρίς καν ο χρήστης να το γνωρίζει και επίσης όλα τα πακέτα λογισμικού που κατεβάζουμε από το internet είναι συμπιεσμένα ώστε οι μεταφορές αρχείων να είναι πολύ συντομότερες από ό,τι θα ήταν χωρίς συμπίεση Ακόμα και η φωνή μας συμπιέζεται όταν μιλάμε στο τηλέφωνο: οι τηλεφωνικές εταιρείες μπορούν να χρησιμοποιήσουν πολύ αποδοτικότερα τους πόρους τους αν συμπιέζουν τα φωνητικά δεδομένα πριν τα μεταδώσουν Η συμπίεση χρησιμοποιείται με ακόμα πιο προφανείς τρόπους: τα δημοφιλή ZIP αρχεία υλοποιούν έναν πολύ έξυπνο αλγόριθμο συμπίεσης που θα μελετήσουμε στη συνέχεια Και σίγουρα θα έχετε εμπειρία από τη συμπίεση π.χ., ψηφιακών video: ένα video υψηλής ποιότητας αντιστοιχεί σε αρχείου πολύ μεγαλύτερου μεγέθους από μία έκδοση χαμηλότερης ποιότητας του ίδιου video

Είδη συμπίεσης Οι υπολογιστές πραγματοποιούν δύο είδη συμπίεσης: χωρίς απώλειες (lossless) και με απώλειες (lossy) Ένας αλγόριθμος που πραγματοποιεί συμπίεση χωρίς απώλειες λαμβάνει ένα αρχείο με δεδομένα, το συμπιέζει σε ένα κλάσμα του αρχικού του μεγέθους και στη συνέχεια το αποσυμπιέζει ακριβώς στην αρχική του μορφή Π.χ., φανταστείτε ότι το αρχικό αρχείο περιέχει το κείμενο ενός βιβλίου η έκδοση του αρχείου που λαμβάνουμε μετά από συμπίεση αποσυμπίεση περιέχει ακριβώς το ίδιο κείμενο χωρίς να λείπει ή να έχει τροποποιηθεί ούτε μία λέξη, ούτε ένα κενό ούτε ένα σημείο στίξης Φυσικά, γενικά, αλγόριθμοι συμπίεσης χωρίς απώλειες δεν παράγουν σημαντική μείωση στα μεγέθη των αρχείων αλλά η μείωση είναι ουσιώδης για συγκεκριμένους, εξαιρετικά δημοφιλείς τύπους αρχείων Αντίθετα, ένας αλγόριθμος που πραγματοποιεί συμπίεση με απώλειες προκαλεί ανεπαίσθητες αλλαγές στο αρχικό αρχείο μετά την αποσυμπίεση

Είδη συμπίεσης Οι υπολογιστές πραγματοποιούν δύο είδη συμπίεσης: χωρίς απώλειες (lossless) και με απώλειες (lossy) Ένας αλγόριθμος που πραγματοποιεί συμπίεση χωρίς απώλειες λαμβάνει ένα αρχείο με δεδομένα, το συμπιέζει σε ένα κλάσμα του αρχικού του μεγέθους και στη συνέχεια το αποσυμπιέζει ακριβώς στην αρχική του μορφή Αντίθετα, ένας αλγόριθμος που πραγματοποιεί συμπίεση με απώλειες προκαλεί ανεπαίσθητες αλλαγές στο αρχικό αρχείο μετά την αποσυμπίεση

Συμπίεση χωρίς απώλειες (Lossless compression) Πώς μπορούμε να κάνουμε ένα τμήμα δεδομένων/πληροφορίας μικρότερο από το πραγματικό του μέγεθος χωρίς να το καταστρέψουμε ώστε να μπορεί να ανακατασκευαστεί πλήρως αργότερα; Ως άνθρωποι, αυτό το κάνουμε συνέχεια χωρίς καν να το σκεφτούμε Παράδειγμα: εβδομαδιαίο ημερολόγιο Υποθέτουμε ότι δουλεύουμε 8 ώρες τη μέρα, 5 μέρες την εβδομάδα και χωρίζουμε το ημερολόγιό μας σε γραμμές διάρκειας ώρας κάθε μία από τις 5 μέρες έχει 8 διαθέσιμες θέσεις συνολικά υπάρχουν 4 διαθέσιμες θέσεις στο ημερολόγιο Για να μεταφέρουμε σε κάποιον φίλο αυτό το εβδομαδιαίο ημερολόγιο, πρέπει να πούμε τι περιέχει κάθε μία από τις 4 θέσεις Στ αλήθεια, αυτό κάνουμε; ΌΧΙ Λέμε κάτι σαν: «Δευτέρα-Τρίτη έχω δουλειά και επίσης έχω δουλειά -3 Πέμπτη-Παρασκευή, τις υπόλοιπες μέρες είμαι διαθέσιμος» Αυτό είναι ένα παράδειγμα συμπίεσης χωρίς απώλειες Ο φίλος μας μπορεί να ανακατασκευάσει με ακρίβεια τη διαθεσιμότητά μας στις 4 ώρες της εβδομάδας, ενώ εμείς δε του δώσαμε ρητά όλες τις λεπτομέρειες

Παράδειγμα συμπίεσης χωρίς απώλειες: εβδομαδιαίο ημερολόγιο Μέρα/Ώρα Δευτέρα Τρίτη Τετάρτη Πέμπτη Παρασκευή 9- - -2 2- Χ Χ Χ Χ Χ Χ Χ Χ -2 2-3 Χ Χ Χ Χ Χ Χ Χ Χ 3-4 4-5 Χ Χ Χ Χ

Συμπίεση χωρίς απώλειες (Lossless compression): Run-length encoding Μήπως αυτού του είδους η συμπίεση είναι κοροϊδία κατά μία έννοια αφού εξαρτάται από το ότι μεγάλα τμήματα του προγράμματός μας ήταν τα ίδια; όλη η Δευτέρα και η Τρίτη ήταν κλεισμένες, οπότεμπορούσαμενατις περιγράψουμε πολύ γρήγορα και το υπόλοιπο της εβδομάδας ήταν διαθέσιμο εκτός από δύο τμήματα, το οποίο ήταν επίσης εύκολο να περιγραφεί Έτσι δουλεύει και η συμπίεση στους υπολογιστές με βάση την εξής ιδέα: Βρες ίδια τμήματα δεδομένων και χρησιμοποίησε ένα έξυπνο κόλπο για να περιγράψεις τα τμήματα αυτά πιο αποδοτικά Αυτό είναι πιο εύκολο όταν τα δεδομένα περιέχουν επαναλήψεις: AAAAAAAAAAAAAAAAAAAAABCBCBCBCBCBCBCBCBCBCAAAAAADEFDEFDEF Πώς θα μπορούσαμε να μεταφέρουμε την ακολουθία αυτή σε κάποιον στο τηλέφωνο; Αντί να πούμε τους χαρακτήρες έναν-έναν, θα λέγαμε- για πιο γρήγορα κάτι σαν: 2 A, μετά BC, μετά άλλα 6 A, μετά 3 DEF Πώς θα σημειώναμε σύντομα την παραπάνω ακολουθία σε χαρτί; Θα γράφαμε κάτι σαν 2A,BC,6A,3DEF Έχουμε επομένως ΣΥΜΠΙΕΣΕΙ τα δεδομένα που περιείχαν 56 χαρακτήρες αρχικά σε μια ακολουθία με μόνο 6 χαρακτήρες, δηλ., σε λιγότερο από /3 του αρχικού Η ιδέα αυτή καλείται κωδικοποίηση ακολουθίας με το μήκος της (run-length encoding) γιατί κωδικοποιεί μια ακολουθία ( run ) επαναλήψεων με το μήκος ( length ) αυτής της ακολουθίας

Συμπίεση χωρίς απώλειες (Lossless compression): Run-length encoding Η κωδικοποίηση ακολουθίας με το μήκος της (run-length encoding) είναι χρήσιμη μόνο για συμπίεση πολύ συγκεκριμένων τύπων δεδομένων Χρησιμοποιείται στην πράξη αλλά συνήθως μόνο σε συνδυασμό με άλλους αλγόριθμους συμπίεσης Παράδειγμα: τα μηχανήματα FAX χρησιμοποιούν κωδικοποίηση run-length σε συνδυασμό με μια άλλη τεχνική που καλείται κωδικοποίηση Huffman Το βασικό πρόβλημα με την τεχνική αυτή είναι το ότι οι επαναλήψεις στα δεδομένα πρέπει να είναι γειτονικές δηλ., δεν πρέπει να παρεμβάλλονται άλλα δεδομένα μεταξύ των επαναλαμβανόμενων τμημάτων Εύκολα κωδικοποιούμε τη λέξη ABABAB με χρήση κωδικοποίησης run-length (3AB), αλλά είναι αδύνατο να κωδικοποιήσουμε με την τεχνική αυτή τη λέξη ABXABYAB Είναι προφανές γιατί τα FAX εκμεταλλεύονται την κωδικοποίηση run-length Τα fax είναι εξ ορισμού ασπρόμαυρα έγγραφα που μετατρέπονται σε μεγάλο πλήθος τελειών με κάθε τελεία να είναι είτε άσπρη είτε μαύρη Όταν διαβάζουμε τις τελείες ακολουθιακά (από αριστερά προς τα δεξιά κι από πάνω προς τα κάτω), συναντάμε μεγάλες ακολουθίες από άσπρες τελείες (το φόντο) και μικρές ακολουθίες από μαύρες τελείες (το κείμενο) Έτσι μπορεί να γίνει συμπίεση μέσω κωδικοποίησης run-length

Συμπίεση χωρίς απώλειες (Lossless compression): βελτιωμένες τεχνικές Επινοήθηκαν πιο έξυπνες ιδέες που βασίζονται στην ιδέα που ήδη περιγράψαμε (βρες επαναλήψεις και περίγραψέ τες αποδοτικά) αλλά δουλεύουν καλά ακόμα κι όταν τα επαναλαμβανόμενα τμήματα δεν είναι γειτονικά Θα παρουσιάσουμε 2 τέτοιες βελτιωμένες ιδέες: την ιδέα «ίδιο με πριν» (same-as-earlier) και την ιδέα του «συντομότερου συμβόλου» (shorter-symbol) Αυτές οι 2 ιδέες είναι η ουσία για την παραγωγή αρχείων ZIP που είναι ο πιο δημοφιλής τύπος αρχείων συμπίεσης οπότε κατανοώντας τες ουσιαστικά έχουμε κατανοήσει πώς ο υπολογιστής μας χρησιμοποιεί συμπίεση

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα same-as-earlier Φανταστείτε ότι μάς ζητάνε να υπαγορεύσουμε στο τηλέφωνο την εξής λέξη: VJGDNQMYLH-KW-VJGDNQMYLH-ADXSGFOVJGDNQMYLH- ADXSGF- VJGDNQMYLH-EWADXSGF Ηλέξηέχει63 χαρακτήρες που πρέπει να υπαγορευθούν (για ευκολία αγνοούμε τις παύλες) Μπορούμε να κάνουμε κάτι καλύτερο από το να πούμε έναν έναν τους 63 χαρακτήρες στο τηλέφωνο; Παρατήρηση: υπάρχουν πολλές επαναλήψεις στη λέξη τα περισσότερα από τα τμήματα που χωρίζονται με παύλες επαναλαμβάνονται τουλάχιστον μία φορά Οπότε, καθώς μεταδίδουμε αυτή τη λέξη μπορούμε για να γλυτώσουμε κόπο να πούμε κάτι σαν αυτό το τμήμα είναι ίδιο με κάτι που είπα πριν Για την ακρίβεια, πρέπει να πούμε πόσο πριν και πόσους χαρακτήρες περιέχει το επαναλαμβανόμενο τμήμα δηλ., πρέπει να πούμε κάτι σαν πήγαινε πίσω 27 χαρακτήρες και ξεκινώντας από αυτό το σημείο αντίγραψε 8 χαρακτήρες

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα same-as-earlier Πώς δουλεύει η ιδέα στην πράξη; Στους 2 πρώτους χαρακτήρες δεν υπάρχει επανάληψη οπότε αναγκαστικά πρέπει να υπαγορεύσουμε έναν έναν τους χαρακτήρες V, J, G, D, N, Q M, Y, L, H, K, W Οι επόμενοι χαρακτήρες είναι ίδιοι με κάποιους προηγούμενους, οπότε μπορούμε να πούμε: πήγαινε πίσω 2, αντίγραψε Οι επόμενοι 7 χαρακτήρες είναι νέοι και πρέπει να τους υπαγορεύσουμε έναν έναν A, D, X, S, G, F, O Οι 6 επόμενοι χαρακτήρες είναι μία μεγάλη επανάληψη, οπότε μπορούμε να πούμε πήγαινε πίσω 7, αντίγραψε 6 Οι επόμενοι χαρακτήρες έχουν επαναληφθεί νωρίτερα, οπότε λέμε πήγαινε πίσω 6, αντίγραψε Μετά, υπάρχουν 2 χαρακτήρες που δεν έχουν επαναληφθεί, οπότε τους υπαγορεύουμε: E, W Τέλος, οι τελευταίοι 6 χαρακτήρες έχουν επαναληφθεί νωρίτερα, οπότε λέμε: πήγαινε πίσω 8, αντίγραψε 6 VJGDNQMYLH-KW-VJGDNQMYLH-ADXSGFOVJGDNQMYLH- ADXSGF- VJGDNQMYLH-EWADXSGF

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα same-as-earlier Ο αλγόριθμος συνοπτικά, συμβολίζοντας το «πήγαινε πίσω» με b από το back και το «αντίγραψε» με c από το copy (π.χ., πήγαινε πίσω 8, αντίγραψε 6 γίνεται σύντομα b8c6), εκτελείται για την προηγούμενη λέξη ως εξής: VJGDNQMYLH- KW-b2c-ADXSGF-Ob7c6- b6c-ew-b8c6 Η λέξη αποτελείται μόνο από 44 χαρακτήρες, ενώ η αρχική είχε 63: γλυτώσαμε 9 χαρακτήρες ή σχεδόν /3 του μεγέθους του αρχικού μηνύματος Πώς θα χρησιμοποιούσαμε την ίδια ιδέα για να συμπιέσουμε το μήνυμα FG- FG-FG-FG-FG-FG-FGFG (αγνοώντας τις παύλες); Υπάρχουν 8 επαναλήψεις του τμήματος FG στο μήνυμα, οπότε θα υπαγορεύαμε τους 4 πρώτους χαρακτήρες και μετά θα χρησιμοποιούσαμε μια εντολή «πήγαινε πίσω-αντίγραψε» ως εξής: FG-FG-FG-FG-b8c8 Έτσι γλυτώνουμε κάποιους χαρακτήρες αλλά μπορούμε να κάνουμε ακόμα καλύτερα μέσω της εντολής πήγαινε πίσω 2, αντίγραψε 4, ή b2c4 για πιο σύντομα Το συμπιεσμένο μήνυμα είναι τότε FG-b2c4

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα same-as-earlier Πώς γίνεται να αντιγράψουμε 4 χαρακτήρες όταν μόνο 2 είναι διαθέσιμοι για αντιγραφή; Αυτό γίνεται αφού αντιγράφουμε από το μήνυμα καθώς παράγεται κι όχι από το συμπιεσμένο μήνυμα Πώς; Υπαγορεύουμε τους 2 πρώτους χαρακτήρες κι έχουμε FG Η εντολή b2c4 λέει να πάμε πίσω 2 χαρακτήρες και να ξεκινήσουμε να αντιγράφουμε: υπάρχουν μόνο 2 χαρακτήρες προς αντιγραφή (FG) οπότε τους αντιγράφουμε και τους προσθέτουμε σε ό,τι είχαμε ήδη λαμβάνοντας FG-FG Τώρα υπάρχουν 2 ακόμα διαθέσιμοι χαρακτήρες οπότε τους αντιγράφουμε και αυτούς και τους προσθέτουμε σε ό,τι έχουμε λαμβάνοντας FG-FG-FG Όμοια, τώρα υπάρχουν 2 ακόμα διαθέσιμοι χαρακτήρες οπότε τους αντιγράφουμε και αυτούς και τους προσθέτουμε σε ό,τι έχουμε και συνεχίζουμε ομοιοτρόπως μέχρι να φτάσουμε το απαιτούμενο πλήθος χαρακτήρων (που είναι 4 στο παράδειγμα) Ποιο μήνυμα αντιστοιχεί στο συμπιεσμένο μήνυμα Abc25; Λύση: το γράμμα A όταν επαναληφθεί 25 φορές

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα shorter-symbol Για να κατανοήσουμε την ιδέα του συντομότερου συμβόλου ( shorter-symbol ) ας δούμε πώς αποθηκεύονται μηνύματα σε υπολογιστές Οι υπολογιστές δεν αποθηκεύουν στα αλήθεια γράμματα όπως a, b και c: τα πάντα αποθηκεύονται σαν αριθμοί με βάση κάποιον προκαθορισμένο πίνακα Π.χ., το γράμμα a αναπαρίσταται από τον αριθμό 27, το b από τον 28 και το c από τον 29, οπότε η λέξη abc θα αποθηκευθεί στον υπολογιστή σαν 272829 και μπορεί εύκολα να ανακατασκευαστεί σε abc πριν παρουσιαστεί σε μια οθόνη ή πριν τυπωθεί σε χαρτί

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα shorter-symbol Στην επόμενη διαφάνεια, δείτε έναν πίνακα που δίνει μια λίστα με σύμβολα που μπορούν να αποθηκευθούν σε έναν υπολογιστή μαζί με το 2-ψήφιο κώδικα για καθένα από αυτά Αυτοί οι 2-ψήφιοι κώδικες δε χρησιμοποιούνται από πραγματικό υπολογιστή: η φιλοσοφία είναι η ίδια αλλά τους χρησιμοποιούμε για χάρη του παραδείγματος Οι πραγματικοί υπολογιστές δε χρησιμοποιούν δεκαδικό σύστημα αρίθμησης (όπως συνήθως κάνουν οι άνθρωποι) αλλά δυαδικό σύστημα αρίθμησης Η πρώτη είσοδος στον πίνακα δίνει αριθμητικό κώδικα για το κενό μεταξύ δύο λέξεων:, ακολουθούν τα κεφαλαία γράμματα του αγγλικού αλφαβήτου από το A ( ) μέχρι το Z ( 26 ), μετά τα μικρά γράμματα από το a ( 27 ) μέχρι το z ( 52 ) και διάφορα σημεία στίξης καθώς και χαρακτήρες από μη αγγλικές λέξεις από το á ( 8 ) μέχρι το Ù ( 99 )

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα shorter-symbol Αριθμητικοί κώδικες που θα μπορούσε να χρησιμοποιεί ένας υπολογιστής για να αποθηκεύει σύμβολα

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα shorter-symbol Πώς θα μπορούσαμε να αποθηκεύσουμε σε έναν υπολογιστή χρησιμοποιώντας αυτόν τον πίνακα τη φράση: Meet your fiancé there ; Θα μεταφράζαμε κάθε χαρακτήρα στον αντίστοιχο αριθμητικό του κώδικα και θα επιστρέφαμε τη συνολική ακολουθία που θα προέκυπτε: M e e t y o u r f i a n c é t h e r e 33346544744323527429824634344366 Στον υπολογιστή τα ζεύγη ψηφίων δε χωρίζονται, οπότε το μήνυμα αποθηκεύεται σαν ακολουθία 46 ψηφίων: 33346544744323527429824634344366 Αν και εμείς μπορεί να αργούσαμε λίγο να αποκωδικοποιήσουμε την ακολουθία, ένας υπολογιστής θα το έκανε ταχύτατα κυρίως γιατί δεν υπάρχει αμφιλογία για το πώς να διαχωριστούν οι αριθμητικοί κώδικες αφού κάθε κώδικας είναι 2-ψήφιος Για αυτό το A αναπαρίσταται σαν κι όχι σαν, το B σαν 2 κι όχι σαν 2, κτλ Αν χρησιμοποιούσαμε την αναπαράσταση A = B = 2 κτλ δε θα γινόταν να αποκωδικοποιήσουμε με έναν τρόπο το μήνυμα Π.χ., το μήνυμα 23 θα μπορούσε να τεμαχιστεί σαν 23 (που μεταφράζεται σαν AAW) ή σαν 2 3 (KBC) ή σαν 2 3 (AABC) ΣΗΜΑΝΤΙΚΟ: η μετάφραση μεταξύ αριθμητικών κωδικών και χαρακτήρων πρέπει να γίνεται χωρίς αμφιλογία (δηλ., με έναν τρόπο, μονοσήμαντα) ακόμα κι όταν οι κώδικες αποθηκεύονται ακολουθιακά χωρίς διαχωρισμό 33346544744323527429824634344366: 46

M e e t y o u r f i a n c é t h e r e 33346544744323527429824634344366

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα shorter-symbol Ως άνθρωποι χρησιμοποιούμε την ιδέα του συντομότερου συμβόλου συνέχεια χωρίς καν να το σκεφτόμαστε «Αν χρησιμοποιούμε κάτι αρκετά συχνά, φτιάχνουμε μια συντόμευση για αυτό» Ηλέξη USA είναι συντομογραφία για τη φράση United States of America οπότε αντί να λέμε μια ολόκληρη φράση με 24 γράμματα λέμε μόνο 3 χαρακτήρες Γνωρίζετε καμία συντόμευση για τη φράση Οι θάλασσες έχουν μπλε χρώμα που επίσης έχει 24 γράμματα; ΌΧΙ ΓΙΑΤΙ; Γιατί σα φράση δε χρησιμοποιείται τόσο συχνά όσο η προηγούμενη οπότε δεν υπάρχει ουσιώδης λόγος να καταβάλλουμε προσπάθεια να τη συντμήσουμε

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα shorter-symbol Ας εφαρμόσουμε την ιδέα «Αν χρησιμοποιούμε κάτι αρκετά συχνά, φτιάχνουμε μια συντόμευση για αυτό» στη φράση Meet your fiancé there Τα γράμματα e και t είναι αυτά που εμφανίζονται πιο συχνά στα αγγλικά οπότε ας χρησιμοποιήσουμε κάποιον συντομότερο κώδικα για αυτά: Οι κώδικές είναι για το e ο 3 και για το t ο 46: 2-ψήφιοι και οι δύο Ας τους κάνουμε μονοψήφιους αντιστοιχίζοντας το e στο 8 και το t στο 9. Πριν η φράση Meet your fiancé there κωδικοποιήθηκε με 46 ψηφία ενώ τώρα μπορούμε να την κωδικοποιήσουμε μόνο με 4 ψηφία: 38 8 9 544744323527429829 348 33346544744323527429824634344366: 46 3889544744323527429829348 : 4

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα shorter-symbol ΠΡΟΒΛΗΜΑ: Οι υπολογιστές δεν αποθηκεύουν κενά μεταξύ ξεχωριστών γραμμάτων οπότε η κωδικοποιημένη λέξη μας δε μοιάζει με 3 8 8 9 5 44 8 66 αλλά με 38895 44866 Δείτε τα 5 πρώτα ψηφία της κωδικοποιημένης λέξης: 3889 Το 3 αναπαριστά το M, το 8 αναπαριστά το e και το 9 αναπαριστά το t οπότε ένας τρόπος να μεταφράσουμε τη λέξη είναι να τη χωρίσουμε σαν 3-8-8-9 λαμβάνοντας τη λέξη Meet Αλλά το 88 αναπαριστά το τονισμένο σύμβολο ú οπότε τα ψηφία 3889 θα μπορούσαν να διαχωριστούν και σαν 3-88-9 δίνοντας τη λέξη Mút Επίσης, το 89 αναπαριστά ένα άλλο τονισμένο σύμβολο το ù οπότε μια άλλη πιθανή διάσπαση θα ήταν η 3-8-89 και θα αναπαριστούσε τη λέξη Meù Δεν υπάρχει τρόπος να αποφασίσουμε ποια από τις 3 μεταφράσεις είναι η σωστή : όταν συναντάμε το ψηφίο 8 ή το9, δεν υπάρχει τρόπος να πούμε αν είναι τμήμα ενός μονοψήφιου κώδικα (για το e ήτο t ) ή ένα ψηφίο από τους 2-ψήφιους κώδικες που ξεκινούν με 8 ή 9 (για τα διάφορα τονισμένα σύμβολα μεταξύ των á και è ) ΔΙΟΡΘΩΣΗ: κάποιοι από τους κώδικες θα γίνουν μεγαλύτεροι Οι αμφίλογοι 2-ψήφιοι κώδικες που ξεκινούν με 8 ή 9 θα γίνουν 3-ψήφιοι κώδικες που δενξεκινούνμε8 ή 9: ο πίνακας στην επόμενη διαφάνεια δείχνει έναν τρόπο να γίνει αυτή η κωδικοποίηση Τελικά, οτιδήποτε ξεκινάει με 7 είναι ένας 3-ψήφιος κώδικας, οτιδήποτε ξεκινάει με 8 ή 9 είναι ένας μονοψήφιος κώδικας ενώ οτιδήποτε ξεκινάει με,, 2, 3, 4, 5 ή 6 είναι ο ίδιος 2-ψήφιος κώδικας με πριν 3889??? 3_8_8_9 = Meet 3_88_9 = Mút 3_8_89 = Meù

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα shorter-symbol

Συμπίεση χωρίς απώλειες (Lossless compression): ιδέα shorter-symbol Πλέον, υπάρχει μόνον ένας τρόπος να διαχωρίσουμε τα ψηφία 3889 (3-8- 8-9, αναπαριστώντας τη λέξη Meet ) και αυτό ισχύει για κάθε σωστά κωδικοποιημένη ακολουθία ψηφίων Έχει απομακρυνθεί η αμφιλογία και το αρχικό μήνυμα M e e t y o u r f i a n c é t h e r e μπορεί να κωδικοποιηθεί με μοναδικό τρόπο σαν 38 8 9 5447443235274297829 348 Η αρχική κωδικοποίηση είχε 46 ψηφία ενώ η παρούσα κωδικοποίηση χρησιμοποιεί μόνον 4 ψηφία Αν και στο συγκεκριμένο μήνυμα γλυτώνουμε μόνον 5 ψηφία σε μεγαλύτερα μηνύματα το κέρδος είναι πολύ μεγαλύτερο: π.χ., το κείμενο ενός βιβλίου απαιτεί περίπου 5 kilobytes αποθηκευτικού χώρου δηλ., μισό εκατομμύριο χαρακτήρες ενώ συμπιεσμένο με τις δύο τεχνικές που περιγράψαμε απαιτούνται μόνο 6 kilobytes, δηλ., λιγότερο από /3 του αρχικού κειμένου

Πώς γίνεται στην πράξη συμπίεση χωρίς απώλειες; Γνωρίζουμε πλέον όλες τις σημαντικές ιδέες πίσω από τη δημιουργία συνηθισμένων ZIP αρχείων σε έναν υπολογιστή η οποία πραγματοποιείται ως εξής: Βήμα : Το αρχικό μη-συμπιεσμένο αρχείο μετατρέπεται με την ιδέα «ίδιο με πριν» (same-as-earlier) ώστε το μεγαλύτερο μέρος των δεδομένων που επαναλαμβάνονται να αντικατασταθεί από μικρότερες εντολές «πήγαινε πίσω-αντίγραψε» από κάπου αλλού Βήμα 2: Το τροποποιημένο αρχείο εξετάζεται για σύμβολα που εμφανίζονται συχνά, π.χ., αν το αρχικό αρχείο ήταν γραμμένο στα αγγλικά θα ανακαλυφθεί ότι τα γράμματα e και t είναι τα πιο συχνά εμφανιζόμενα σύμβολα οπότε ο υπολογιστής θα κατασκευάσει έναν πίνακα όπου συχνά εμφανιζόμενα σύμβολα λαμβάνουν συντομότερους αριθμητικούς κώδικες ενώ σύμβολα που εμφανίζονται σπάνια λαμβάνουν μεγαλύτερους αριθμητικούς κώδικες (shorter-symbol) Βήμα 3: Το αρχείο αποκωδικοποιείται μεταφράζοντας κατευθείαν τους αριθμητικούς κώδικες σε γράμματα με βάση τον πίνακα του Βήματος 2

Πώς γίνεται στην πράξη συμπίεση Ο πίνακας με τους αριθμητικούς κώδικες αποθηκεύετε επίσης στο ZIP αρχείο αλλιώς δε θα ήταν δυνατή η αποκωδικοποίηση (και κατά συνέπεια η αποσυμπίεση) του ZIP αρχείου αργότερα Διαφορετικά μη συμπιεσμένα αρχεία δίνουν διαφορετικούς πίνακες με αριθμητικούς κώδικες Στην πράξη, σε πραγματικά ZIP αρχεία, το αρχικό αρχείο χωρίζεται σε τμήματα και κάθε τμήμα έχει διαφορετικό πίνακα αριθμητικών κωδικών χωρίς απώλειες; Οι κώδικες για δύο συχνά εμφανιζόμενα γράμματα έχουν μικρύνει ενώ κατά συνέπεια έχουν μεγαλώσει οι κώδικες για μεγάλο αριθμό σπάνια χρησιμοποιούμενων συμβόλων με αποτέλεσμα μικρότερου συνολικού μήκος μηνύματα (στις περισσότερες περιπτώσεις)

Συμπίεση με απώλειες (Lossy compression) Συμπίεση χωρίς απώλειες: μπορούμε να αναδομήσουμε από ένα συμπιεσμένο αρχείο ακριβώς το ίδιο αρχείο που είχαμε αρχικά χωρίς να έχει αλλαχτεί ούτε ένας χαρακτήρας ούτε καν ένα σημείο στίξης Συμπίεση με απώλειες: κατά περιπτώσεις είναι προτιμότερο να χρησιμοποιήσουμε μέθοδο συμπίεσης που να επιτρέπει από ένα συμπιεσμένο αρχείο να παράγουμε ένα αρχείο που να μοιάζει πολύ με το αρχικό αλλά να μην είναι απαραίτητα το ίδιο Συμπίεση με απώλειες χρησιμοποιείται συχνά σε αρχεία που περιέχουν εικόνες ή ήχο: εφόσον η εικόνα μοιάζει ίδια στο ανθρώπινο μάτι, δεν πειράζει το αρχείο που περιέχει την εικόνα και είναι αποθηκευμένο στον υπολογιστή να μην είναι ακριβώς ίδιο με το αρχείο που είναι αποθηκευμένο στην camera Το ίδιο ισχύει και για ηχητικά δεδομένα: εφόσον ένα τραγούδι ακούγεται ίδιο στο ανθρώπινο αυτί, δεν πειράζει αν το αρχείο που περιέχει αυτό το τραγούδι στο ψηφιακό music player δεν είναι ακριβώς το ίδιο με το αρχείο πουπεριέχειτοτραγούδισεέναcd

Συμπίεση με απώλειες (Lossy compression) Έχουμε δει χαμηλής ποιότητας video και εικόνες στο internet όπου οι εικόνες είναι θολές και η ποιότητα του ήχου κακή Αυτό είναι συνέπεια έντονης χρήσης συμπίεσης με απώλειες προκειμένου να μειωθεί σημαντικά το μέγεθος του video ή της εικόνας Ηιδέαδενείναιτοvideo να μοιάζει ίδιο με τα αρχικό στο ανθρώπινο μάτι αλλά να είναι τουλάχιστον αναγνωρίσιμο Ρυθμίζοντας το πόσες απώλειες επιτρέπει η συμπίεση, χειριστές websites μπορούν να ρυθμίσουν την ισορροπία (trade off) ανάμεσα σε μεγάλα, υψηλής ποιότητας αρχεία που μοιάζουν και ακούγονται σχεδόν τέλεια και χαμηλής ποιότητας αρχεία με προφανή μειονεκτήματα που όμως απαιτούν πολύ λιγότερο εύρος ζώνης για να μεταδοθούν Μπορεί να έχουμε κάνει κι εμείς το ίδιο με μια camera, όπου συνήθως μπορούμε να επιλέξουμε διαφορετικές ρυθμίσεις για την ποιότητα των εικόνων ή των videos Επιλέγοντας ρύθμιση υψηλής ποιότητας, μικρότερος αριθμός εικόνων ή video μπορεί να αποθηκευθεί στην camera από ό,τι αν επιλέξουμε ρύθμιση χαμηλότερης ποιότητας: υψηλής ποιότητας τέτοια αρχεία απαιτούν περισσότερο αποθηκευτικό χώρο από ό,τι αντίστοιχα χαμηλής ποιότητας

Συμπίεση με απώλειες (Lossy compression): ιδέα leave-it-out Μια απλή και χρήσιμη ιδέα για συμπίεση με απώλειες είναι να παραλείψουμε (leave out) κάποια δεδομένα Πώς δουλεύει η ιδέα της παράλειψης ( leave-itout ) στην περίπτωση ασπρόμαυρων εικόνων; Πώς αποθηκεύονται ασπρόμαυρες εικόνες στον υπολογιστή; Κάθε εικόνα αποτελείται από μεγάλο αριθμό μικρών τελειών που λέγονται pixels Κάθε pixel έχει ένα χρώμα που μπορεί να είναι άσπρο ή μαύρο ή κάποια απόχρωση του γκρι Γενικά, δεν καταλαβαίνουμε τα pixels γιατί είναι πολύ μικρά αλλά μπορούμε να τα δούμε αν κοιτάξουμε πολύ κοντά στην οθόνη ή την τηλεόραση

Συμπίεση με απώλειες (Lossy compression): ιδέα leave-it-out Όταν μία ασπρόμαυρη εικόνα αποθηκεύεται στον υπολογιστή κάθε πιθανό χρώμα pixel αναπαρίσταται από έναν αριθμό Υποθέτουμε ότι μεγάλοι αριθμοί αναπαριστούν χρώματα κοντά στο άσπρο με το να είναι ο μεγαλύτερος δυνατός αριθμός Το αναπαριστά το άσπρο, το αναπαριστά το μαύρο ενώ το 5 αναπαριστά μεσαία απόχρωση του γκρι, το 9 αναπαριστά ανοιχτό γκρι, κτλ Τα pixels τοποθετούνται σε έναν τετραγωνικό πίνακα με γραμμές και στήλες και κάθε pixel δείχνει το χρώμα σε κάποια πολύ μικρή περιοχή της εικόνας Ο συνολικός αριθμός των γραμμών και στηλών δίνει την ανάλυση ( resolution ) της εικόνας Π.χ., πολλές τηλεοράσεις υψηλής ευκρίνειας υποστηρίζουν ανάλυση 92x8, δηλ., υπάρχουν 92 στήλες από pixels και 8 γραμμές από pixels - Άρα, συνολικά, υπάρχουν 92x8 pixels δηλ., πάνω από 2 εκατομμύρια pixels Οι ψηφιακές φωτογραφικές μηχανές χρησιμοποιούν την ίδια ορολογία: ένα megapixel είναι εκατομμύριο pixels Μία 5-megapixel camera έχει αρκετές γραμμές και στήλες ώστε πολλαπλασιάζοντας τον αριθμό των γραμμών με τον αριθμό των στηλών να δίνει πάνω από 5 εκατομμύρια Όταν μια εικόνα αποθηκεύεται σε υπολογιστή, είναι απλά μία λίστα από αριθμούς ένας για κάθε pixel

Συμπίεση με απώλειες (Lossy compression): ιδέα leave-it-out Δείτε στην επόμενη διαφάνεια την εικόνα ενός σπιτιού με έναν πυργίσκο με ανάλυση 32x24 δηλ., χαμηλότερη από αυτή μίας τηλεόρασης υψηλής ευκρίνειας ο αριθμός των pixels παραμένει μεγάλος (32 24 = 76.8) και το αρχείο που αποθηκεύει αυτή την εικόνα ασυμπίεστο χρησιμοποιεί πάνω από 23 kilobytes kilobyte είναι ισοδύναμο με περίπου χαρακτήρες κειμένου χοντρικά το μέγεθος ενός email μιας παραγράφου κατά προσέγγιση, η εικόνα πάνω αριστερά όταν αποθηκεύεται σαν αρχείο απαιτεί μέγεθος αποθηκευτικού χώρου στην υπολογιστή όσο περίπου 2 σύντομα emails Συμπιέζουμε το αρχείο με την εξής απλή τεχνική: αγνόησε ή παράλειψε ( leave out ) κάθε δεύτερη γραμμή και κάθε δεύτερη στήλη από pixels εικόνα με μικρότερη ανάλυση 6x2 (η εικόνα κάτω από την αρχική) Το μέγεθος της συμπιεσμένης εικόνας είναι μόνο ¼ του μεγέθους της αρχικής, περίπου 57 kilobytes: υπάρχουν μόνο ¼ από τα pixels της αρχικής εικόνας αφού μειώθηκε στο μισό το πλάτος και το ύψος της αρχικής εικόνας Το μέγεθος της εικόνας μειώθηκε δύο φορές κατά 5%: μία φορά οριζόντια και μία κάθετα δίνοντας μέγεθος που είναι μόνο 25% από το μέγεθος της αρχικής εικόνας Μπορούμε να ξαναεφαρμόσουμε την ίδια ιδέα: από τη νέα 6x2 εικόνα παραλείπουμε κάθε δεύτερη γραμμή και κάθε δεύτερη στήλη λαμβάνοντας μια άλλη εικόνα διαστάσεων 8x6 (κάτω αριστερά στην επόμενη διαφάνεια) Το μέγεθος της εικόνας έχει μειωθεί κατά 75% δίνοντας εικόνα με τελικό μέγεθος μόνο 4 kilobytes που είναι περίπου 6% του μεγέθους της αρχικής εικόνας!!!

Όσο αυξάνεται η συμπίεση, μειώνεται το μέγεθος της εικόνας χαμηλώνει η ανάλυσή της και χειροτερεύει η ποιότητά της

Συμπίεση με απώλειες (Lossy compression): ιδέα leave-it-out Τι συμβαίνει όταν αποσυμπιέσουμε ένα συμπιεσμένο αρχείο; Κάποιες από τις γραμμές και στήλες pixels διαγράφθηκαν οπότε ο υπολογιστής πρέπει να μαντέψει ποια ήταν τα αρχικά χρώματα των pixels που λείπουν Ο πιο απλός τρόπος να μαντέψει είναι να δώσει σε κάθε pixel που λείπει το χρώμα ενός από τα γειτονικά του (στο παράδειγμα γειτονικά θεωρούνται τα pixels πάνω και αριστερά από αυτό που λείπει, αλλά οποιαδήποτε άλλη επιλογή θα ήταν εξίσου αποδεκτή) Δείτε το αποτέλεσμα της αποσυμπίεσης στη δεξιά πλευρά της εικόνας Έχουν διατηρηθεί τα περισσότερα οπτικά χαρακτηριστικά αλλά υπάρχουν απώλειες στην ποιότητα και τη λεπτομέρεια ειδικά σε πολύπλοκες περιοχές όπως στο δένδρο, τη στέγη του πυργίσκου και τη διακόσμηση στο αέτωμα του σπιτιού Στην εικόνα που λάβαμε από την αποσυμπίεση της εικόνας διαστάσεων 8x6 φαίνονται αιχμηρές ακμές π.χ., στις διαγώνιες γραμμές της στέγης του σπιτιού που καλούνται απάτες λόγω συμπίεσης ( compression artifacts ): δεν είναι μόνο απώλειες σε λεπτομέρειες αλλά εμφανή νέα χαρακτηριστικά που εισάγονται από λόγω αποσυμπίεσης μετά από συμπίεση με απώλειες

Συμπίεση με απώλειες (Lossy compression): ιδέα leave-it-out Η ιδέα της παράλειψης (leave-it-out) σπάνια χρησιμοποιείται στην απλή μορφή που περιγράψαμε Οι υπολογιστές παραλείπουν πληροφορία για να πετύχουν συμπίεση με απώλειες αλλά επιλέγεται πολύ προσεκτικά η πληροφορία που παραλείπεται Σχετικό παράδειγμα: JPEG συμπίεση για εικόνες που επιτυγχάνει πολύ καλύτερη απόδοση από την παράλειψη κάθε δεύτερης γραμμής και στήλης από pixels Στο πάνω μέρος της εικόνας, δείτε μια JPEG εικόνα με μέγεθος 35 kilobytes πουδεμπορούμενατηνξεχωρίσουμεαπότην αρχική εικόνα Παραλείποντας παραπάνω πληροφορία και χρησιμοποιώντας πάλι JPEG συμπίεση μπορούμε να λάβουμε την εικόνα στο κέντρο με μέγεθος 9 kilobytes που επίσης έχει άριστη ποιότητα παρά το ότι υπάρχει θόλωμα και απώλεια λεπτομέρειας στη διακόσμηση του σπιτιού Και η JPEG συμπίεση εμφανίζει «απάτες» αν η συμπίεση είναι πολύ μεγάλη: στο κάτω μέρος δείτε μια JPEG εικόνα συμπιεσμένη στα 2 kilobytes όπου εμφανίζονται τετραγωνάκια και κηλίδες στον ουρανό δίπλα στη διαγώνια γραμμή του σπιτιού

Συμπίεση με απώλειες (Lossy compression): ιδέα leave-it-out Οι λεπτομέρειες της στρατηγικής παράλειψης JPEG είναι πολύ τεχνικές, αλλά η βασική ιδέα της τεχνικής είναι απλή: Αρχικά η εικόνα χωρίζεται σε μικρά τετράγωνα 8 pixels επί 8 pixels καθένα από τα οποία συμπιέζεται ξεχωριστά χωρίς συμπίεση κάθε τετράγωνο θα αναπαρίστατο από 8 8 = 64 αριθμούς (υποθέτοντας ότι η εικόνα είναι ασπρόμαυρη, αν είναι έγχρωμη υπάρχουν 3 διαφορετικά χρώματα και επομένως τριπλάσιοι αριθμοί) Αν το τετράγωνο είναι μονόχρωμο, μπορεί ολόκληρο να αναπαρασταθεί από έναν αριθμό καιουπολογιστήςμπορείναπαραλείψει63 αριθμούς Αν το τετράγωνο είναι στο μεγαλύτερο μέρος του μονόχρωμο, με μικρές πολύ ελαφρές διαφοροποιήσεις (π.χ., περιοχή στον ουρανό που έχει όλη την ίδια απόχρωση του γκρι), ο υπολογιστής μπορεί να αποφασίσει να αναπαραστήσει το τετράγωνο από έναν αριθμό δίνοντας καλή συμπίεση για το τετράγωνο και μικρό ποσοστό λάθους κατά την αποσυμπίεση Στο κάτω μέρος της εικόνας δείτε μερικά από τα 8x8 blocks στον ουρανό που έχουν συμπιεστεί με αυτόν τον τρόπο και δίνουν σε μικρά τετράγωνα blocks ομοιόμορφου χρώματος An to 8 8 τετράγωνο διαφοροποιείται ελαφρά από το ένα χρώμα στο άλλο (π.χ., σκούρο γκρι στα αριστερά με ανοιχτό γκρι στα δεξιά), τότε οι 64 αριθμοί μπορούν να συμπιεστούν σε 2: μία τιμή για το σκούρο γκρι και μία τιμή για το ανοιχτό γκρι Ο αλγόριθμος JPEG δε δουλεύει ακριβώς έτσι αλλά χρησιμοποιεί ίδιες ιδέες: αν ένα τετράγωνο 8 8 μοιάζει πολύ με κάποιον συνδυασμό γνωστών σχεδίων όπως ένα σταθερό χρώμα ή ένα χρώμα που μεταβάλλεται ομαλά, τότε το μεγαλύτερο μέρος της πληροφορίας μπορεί να παραληφθεί και αποθηκεύεται μόνο το επίπεδο/ποσό του κάθε σχήματος

5 5 5 5 5 5 5 5 9 9 8 8 8 8 7 7 5 5 5 5 5 5 5 5 9 9 8 8 8 8 7 7 5 5 5 5 5 5 5 5 9 9 8 8 8 8 7 7 5 5 5 5 5 5 5 5 9 9 8 8 8 8 7 7 5 5 5 5 5 5 5 5 9 9 8 8 8 8 7 7 5 5 5 5 5 5 5 5 9 9 8 8 8 8 7 7 5 5 5 5 5 5 5 5 9 9 8 8 8 8 7 7 5 5 5 5 5 5 5 5 9 9 8 8 8 8 7 7 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

5 9 5, 5,

555555555555555555555555555555555555 555555555555555555555555555599999999 999999998888888888888888777777777777 77775555555555555555 5555555555555555 555555 555555555555555555 55555555 5955

Συμπίεση με απώλειες (Lossy compression): ιδέα leave-it-out JPEG: δημοφιλής μέθοδος συμπίεσης με απώλειες για ψηφιακές φωτογραφίες. Ο βαθμός συμπίεσης μπορεί να προσαρμοστεί, επιτυγχάνοντας επιλέξιμο λόγο αποθηκευτικού μεγέθους - ποιότητας εικόνας. Η κωδικοποίηση JPEG συνήθως πετυχαίνει λόγο συμπίεσης : με μικρή απώλεια που γίνεται αντιληπτή στην ποιότητα της εικόνας. Υποστηρίζει μέγιστο μέγεθος εικόνας 65535 65535. Ο όρος"jpeg" είναι ακρωνύμιο για το Joint Photographic Experts Group που δημιούργησε το πρότυπο.

Με τεχνικές συμπίεσης με απώλειες, μεγαλύτερη συμπίεση δίνει χειρότερη ποιότητα. Ηίδιαεικόναφαίνεταισυμπιεσμένησε3 διαφορετικά ως προς την ποιότητα επίπεδα JPEG. Στην κορυφή είναι η εικόνα καλύτερης ποιότητας, που απαιτεί και μεγαλύτερο αποθηκευτικό χώρο. Στο κάτω μέρος φαίνεται η εικόνα με τη χειρότερη ποιότητα που απαιτεί το μισό αποθηκευτικό χώρο αλλά πλέον φαίνονται οι συνέπειες της συμπίεσης ειδικά στον ουρανό και στο περίγραμμα της στέγης

Συμπίεση με απώλειες (Lossy compression): ιδέα leave-it-out ΗσυμπίεσηJPEG δουλεύει καλά για εικόνες αλλά τι γίνεται με αρχείου ήχου ή μουσικής; Κι αυτά συμπιέζονται με χρήση συμπίεσης με απώλειες και χρησιμοποιείται η ίδια φιλοσοφία: παραλείπουμε πληροφορία που έχει μικρή επίδραση στο τελικό προϊόν Δημοφιλείς τύποι συμπίεσης, όπως MP3 και AAC, χρησιμοποιούν σε γενικές γραμμές την ίδια προσέγγιση με τη συμπίεση JPEG Τα ηχητικά αρχεία χωρίζονται σε τμήματα και κάθε τμήμα συμπιέζεται ξεχωριστά Όπως και με τη συμπίεση JPEG, τμήματα που αλλάζουν με προβλέψιμο τρόπο μπορούν να περιγραφούν μόνο με μερικούς αριθμούς Τύποι συμπίεσης ηχητικών αρχείων εκμεταλλεύονται επίσης γνωστά χαρακτηριστικά του ανθρώπινου αυτιού Συγκεκριμένοι τύποι ήχων επιδρούν λίγο ή καθόλου σε ανθρώπους και μπορούν να παραλειφθούν από τον αλγόριθμο συμπίεσης χωρίς μείωση της ποιότητας του αποτελέσματος

Ρίζες των αλγορίθμων συμπίεσης Ηιδέα«ίδιο με πριν» (same-as-earlier) είναι μία από τις βασικές μεθόδους συμπίεσης που χρησιμοποιούνται στα ZIP αρχεία και είναι γνωστή στην επιστήμη των υπολογιστών ως ο αλγόριθμος LZ77 Επινοήθηκε από δύο Ισραηλινούς επιστήμονες, τον Abraham Lempel και τον Jacob Ziv και δημοσιεύθηκε το 977 Πηγή: http://www.squeezechart.com/people.html

Πηγή: http://www.squeezechart.com/people.html Ρίζες των αλγορίθμων συμπίεσης Τα ίχνη των αλγορίθμων συμπίεσης ξεκινούν 3 δεκαετίες πριν το 977 Ο Claude Shannon ήταν ο ερευνητής των εργαστηρίων της εταιρείας Bell που με τη φημισμένη πλέον εργασία του το 948 ίδρυσε το πεδίο της Θεωρίας της Πληροφορία, συνεισέφερε σημαντικά στους κώδικες διόρθωσης σφαλμάτων και επιπλέον συνεισέφερε σημαντικά στην ανάδειξη τωναλγορίθμωνσυμπίεσης

Ρίζες των αλγορίθμων συμπίεσης Οι κώδικες διόρθωσης σφαλμάτων και οι αλγόριθμοι συμπίεσης είναι ουσιαστικά οι δύο όψεις του ίδιου νομίσματος: και στα δύο προβλήματα κεντρική είναι η έννοια της περίσσειας πληροφορίας (redundancy) Αν ένα αρχείο έχει περίσσεια, είναι μεγαλύτερο από ό,τι πρέπει Το αρχείο μπορεί να χρησιμοποιεί τη λέξη five αντί για το ψηφίο 5 έτσι ώστε ένα λάθος όπως fivq να μπορεί εύκολα να αναγνωριστεί και να διορθωθεί Οι κώδικες διόρθωσης σφαλμάτων είναι μία μέθοδος για να εισάγουμε περίσσεια σε ένα μήνυμα ή ένα αρχείο Οι αλγόριθμοι συμπίεσης κάνουν το αντίθετο: απομακρύνουν περίσσεια πληροφορίας από ένα μήνυμα ή ένα αρχείο Φανταστείτε έναν αλγόριθμο συμπίεσης που αντιλαμβάνεται τη συχνή εμφάνισης της λέξης five σε ένα αρχείο και την αντικαθιστά με ένα συντομότερο σύμβολο (που μπορεί να είναι το ψηφίο 5 ) αντιστρέφοντας τη διαδικασία διόρθωσης σφαλμάτων Στην πράξη, η συμπίεση και η διόρθωση σφαλμάτων δεν αναιρούν η μια την άλλη Καλοί αλγόριθμοι συμπίεσης απομακρύνουν μη αποδοτικούς τύπους περίσσειας, ενώ η κωδικοποίηση για διόρθωση σφαλμάτων προσθέτει διαφορετικούς, αποδοτικότερους τύπους περίσσειας Γι αυτό είναι και πολύ κοινότυπο πρώτα να συμπιέζουμε ένα μήνυμα και μετά να ενσωματώνουμεσεαυτόδιόρθωσησφαλμάτων διόρθωση σφαλμάτων συμπίεση δεδομένων

Ρίζες των αλγορίθμων συμπίεσης: Shannon-Fano Το 948, ο Shannon στη φημισμένη του εργασία περιέγραψε μεταξύ άλλων μια από τις πρώτες τεχνικές συμπίεσης Ο Robert Fano, καθηγητής στο MIT, είχε επίσης ανακαλύψει την τεχνική αυτή σχεδόν ταυτόχρονα και η τεχνική έγινε γνωστή με την ονομασία «κωδικοποίηση Shannon- Fano» Η κωδικοποίηση Shannon-Fano είναι ένας τρόπος υλοποίησης της ιδέας του συντομότερου συμβόλου (shorter-symbol) Αν και υπερκαλύφθηκε σύντομα από άλλον καλύτερο αλγόριθμο, η κωδικοποίηση Shannon-Fano είναι εξαιρετικά αποδοτική και υπάρχει ακόμα σαν μία από τις μεθόδους συμπίεσης που μπορεί να επιλεχθεί στη μορφή αρχείου ZIP Οι Shannon και Fano γνώριζαν ότι η πρακτική και αποδοτική προσέγγισή τους δεν ήταν η καλύτερη δυνατή: ο Shannon είχε αποδείξει μαθηματικά ότι υπήρχαν ακόμα καλύτερες τεχνικές συμπίεσης που δεν είχαν ανακαλυφθεί Εν τω μεταξύ, ο Fano δίδασκε ένα μεταπτυχιακό μάθημα σχετικό με Θεωρία της Πληροφορίας στο MIT και έδωσε στους φοιτητές του σαν εργασία εξαμήνου το πρόβλημα του να κατασκευάσουν αλγόριθμο για βέλτιστη συμπίεση

Ρίζες των αλγορίθμων συμπίεσης: Fano Huffman Ένας από τους φοιτητές του Fano έλυσε το πρόβλημα παρουσιάζοντας μια μέθοδο που δίνει τη βέλτιστη δυνατή συμπίεση για κάθε σύμβολο Ο φοιτητής αυτός ήταν ο David Huffman και η τεχνική του γνωστή πλέον σαν κώδικας Huffman - ένα ακόμα παράδειγμα της ιδέας του συντομότερου συμβόλου ΟκώδικαςHuffman παραμένει θεμελιώδης αλγόριθμος συμπίεσης και χρησιμοποιείται ευρέως σε επικοινωνιακά συστήματα και συστήματα αποθήκευσης πληροφορίας

Κωδικοποίηση Shannon-Fano (Ι) Διατάσσουμε τα σύμβολα του αλφαβήτου σε φθίνουσα σειρά με βάση τη συχνότητα εμφάνισής τους Χωρίζουμε (αναδρομικά) την ακολουθία σε δύο μισά έτσι ώστε η διαφορά των αθροισμάτων των μετρήσεων στα δύο μισά να γίνεται ελάχιστη Σε κάθε επανάληψη, στα αριστερά μέλη κάθε ομάδας δίνουμε κώδικα που ξεκινάει από ενώ στα δεξιά δίνουμε κώδικα που ξεκινάει από

Κωδικοποίηση Shannon-Fano (ΙΙ) 4 7 5 5 4 Α Β C D E 4 7 5 5 4 Α Β C D E 4 7 5 5 4 Α Β C D E 4 7 5 5 4 Α Β C D E 4 7 5 5 4 Α Β C D E αρχικά () (2) (3) (4)

Κωδικοποίηση Shannon-Fano (ΙΙI) 4 7 5 5 4 Α Β C D E 4 7 5 5 4 Α Β C D E 4 7 5 5 4 Α Β C D E 4 7 5 5 4 Α Β C D E 4 7 5 5 4 Α Β C D E αρχικά () (2) (3) (4) 35 2 4 7 4 9 5 4 5

Κωδικοποίηση Shannon-Fano (ΙV) 35 35 2 4 ΑΒ CDE 4 7 5 9 A B C DE 5 4 D E 35 Α Β C 4 7 5 D 5 E 4

Κωδικοποίηση Huffman (Ι) Διατάσσουμε τα σύμβολα του αλφαβήτου σε φθίνουσα σειρά με βάση τη συχνότητα εμφάνισής τους Επιλέγουμε (αναδρομικά) τις 2 ομάδες συμβόλων με τις λιγότερες εμφανίσεις και τα κάνουμε ομάδα σε φθίνουσα σειρά δίνοντάς τους τιμές, αντίστοιχα Κάνει το ίδιο με την τεχνική Shannon-Fano αλλά επιτυγχάνει το μικρότερο δυνατό μέσο μήκος κωδικής λέξης

Κωδικοποίηση Huffman (ΙI) () (4) (2) (5) (3)

Κωδικοποίηση Huffman (ΙΙI) ΣΥΜΒΟΛΟ ΚΩΔΙΚΗ ΛΕΞΗ A B C D E

Σύνοψη Συμπίεση: τροποποίηση δεδομένων ώστε να μειωθεί ο χώρος που καταλαμβάνουν όταν αποθηκεύονται ή μεταδίδονται Υπάρχουν αλγόριθμοι συμπίεση χωρίς απώλειες και με απώλειες Δεν υπάρχουν απώλειες κατά τη συμπίεση όταν ο αλγόριθμος συμπιέζει παρατηρώντας τα «σχήματα» εμφάνισης των δεδομένων χωρίς να αλλάζειτοαρχικόσύνολοδεδομένων Εντοπίζονται επαναλαμβανόμενα τμήματα στα δεδομένα τα οποία κωδικοποιούνται με κώδικες μικρότερου μήκους (συχνότερη εμφάνιση μικρότερο μήκος κώδικα) Τα επαναλαμβανόμενα τμήματα δεδομένων εμφανίζονται ακολουθιακά; ΝΑΙ: Κωδικοποίηση ακολουθίας με το μήκος της (run-length encoding) - Π.χ., FAX ΌΧΙ: Τεχνικές «ίδιο με πριν» (same-as-earlier) και «συντομότερο σύμβολο» (shorter-symbol) Π.χ., αρχεία ZIP Υπάρχουν απώλειες κατά τη συμπίεση όταν ο αλγόριθμος συμπιέζει παραλείποντας τμήματα του αρχικού συνόλου δεδομένων που δεν επηρεάζουν σημαντικά το τελικό σύνολο (μετά την αποσυμπίεση) Τεχνική παράλειψης (leave-it-out) Π.χ., JPEG, MP3, AAC

Σύνοψη Υπάρχει στενή σχέση ανάμεσα στους κώδικες διόρθωσης σφαλμάτων (που εισάγουν συμπληρωματική πληροφορία ώστε να εντοπίζονται και να διορθώνονται σφάλματα κατά την αποθήκευση ή μετάδοση δεδομένων) και στους αλγόριθμους συμπίεσης (που απομακρύνουν περιττή πληροφορία από δεδομένα προκειμένου να μπορούν να αποθηκευθούν ή να μεταδοθούν με τους λιγότερους δυνατούς πόρους) Συνεισφορές σταθμοί στην ιστορία των αλγορίθμων συμπίεσης είναι: 949: κωδικοποίηση Shannon-Fano είναι ένας τρόπος υλοποίησης της ιδέας του συντομότερου συμβόλου (shorter-symbol) 952: κώδικας Huffman βασισμένος στην ιδέα του συντομότερου συμβόλου (shorter-symbol) 977: αλγόριθμος συμπίεσης LZ77 (Abraham LEMPEL και τον Jacob ZIV, 977) βασισμένος στην ιδέα «ίδιο με πριν» (same-as-earlier) βασική μέθοδος συμπίεσης που χρησιμοποιείται στα ZIP αρχεία