λογισμικό

Γνώση Υπολογιστών >> λογισμικό >  >> Συμπίεση δεδομένων

Πώς λειτουργούν τα προγράμματα συμπίεσης αρχείων;

Τα προγράμματα συμπίεσης αρχείων μειώνουν το μέγεθος των αρχείων χρησιμοποιώντας διάφορους αλγόριθμους για την κατάργηση των πλεονασμάτων και αντιπροσωπεύουν τα δεδομένα πιο αποτελεσματικά. Δεν "διαγράψουν" πληροφορίες. Αντ 'αυτού, βρίσκουν έξυπνους τρόπους για να το κωδικοποιήσουν χρησιμοποιώντας λιγότερα κομμάτια. Υπάρχουν δύο κύριες κατηγορίες:συμπίεση χωρίς απώλειες και απώλειας.

1. Συμπίεση χωρίς απώλειες:

Αυτός ο τύπος συμπίεσης εγγυάται ότι το αρχικό αρχείο μπορεί να ανακατασκευαστεί τέλεια από την συμπιεσμένη έκδοση. Χρησιμοποιείται για αρχεία κειμένου, πηγαίο κώδικα, υπολογιστικά φύλλα και άλλα δεδομένα όπου ακόμη και ένα μικρό κομμάτι της απώλειας πληροφοριών είναι απαράδεκτη. Οι κοινές τεχνικές περιλαμβάνουν:

* κωδικοποίηση μήκους run-length (RLE): Αυτή η απλή μέθοδος αντικαθιστά διαδοχικούς επαναλαμβανόμενους χαρακτήρες ή bytes με μία μόνο περίπτωση του χαρακτήρα και τον αριθμό των φορές που επαναλαμβάνεται. Για παράδειγμα, το "AAABBBCC" γίνεται "3A3B2C". Είναι πολύ αποτελεσματικό για δεδομένα με μακροχρόνιες ίδιες τιμές.

* κωδικοποίηση Huffman: Αυτό εκχωρεί βραχύτερους κωδικούς σε συχνά συμβόλια και μεγαλύτερους κωδικούς σε λιγότερο συχνές. Με την εκμετάλλευση της κατανομής πιθανοτήτων των συμβόλων στα δεδομένα, επιτυγχάνει σημαντική συμπίεση. Για παράδειγμα, στο αγγλικό κείμενο, το γράμμα "E" είναι πολύ συνηθισμένο, οπότε θα λάβει έναν σύντομο κώδικα, ενώ λιγότερο συχνές επιστολές όπως το "Z" θα έχουν μεγαλύτερους κωδικούς.

* αλγόριθμοι Lempel-ZIV (LZ): Αυτές είναι πιο εξελιγμένες μεθόδους που προσδιορίζουν τα επαναλαμβανόμενα πρότυπα εντός των δεδομένων. Αντί να κωδικοποιούν κάθε σύμβολο ξεχωριστά, δημιουργούν ένα λεξικό επαναλαμβανόμενων μοτίβων και τα κωδικοποιούν με σύντομες αναφορές. Οι κοινές παραλλαγές περιλαμβάνουν LZ77, LZ78 και LZW (Lempel-Ziv-Welch), το τελευταίο που χρησιμοποιείται στη μορφή εικόνας GIF. Το λεξικό είναι τυπικά κατασκευασμένο δυναμικά καθώς τα δεδομένα συμπιέζονται και αποσυμπιέζονται.

* συμπίεση με βάση το λεξικό: Αυτές οι μέθοδοι (συμπεριλαμβανομένων των αλγορίθμων LZ) δημιουργούν ένα λεξικό επαναλαμβανόμενων ακολουθιών και τις αντικαταστήσουν με σύντομους κωδικούς. Λειτουργούν καλά σε δεδομένα που περιέχουν πολλές επαναλήψεις.

* Μετασχηματισμός Burrows-Wheeler (BWT): Αυτή η τεχνική αναδιαμορφώνει τα δεδομένα για να συγκεντρώσει παρόμοιους χαρακτήρες μαζί, διευκολύνοντας τις άλλες μεθόδους συμπίεσης να λειτουργούν αποτελεσματικά. Συχνά χρησιμοποιείται σε συνδυασμό με άλλους αλγόριθμους όπως ο μετασχηματισμός μετακίνησης προς προνομιούχο και κωδικοποίηση μήκους λειτουργίας.

2. Συμπίεση απώλειας:

Αυτός ο τύπος συμπίεσης επιτυγχάνει υψηλότερες αναλογίες συμπίεσης απορρίπτοντας ορισμένα δεδομένα που θεωρούνται λιγότερο σημαντικά. Αυτό είναι αποδεκτό για δεδομένα πολυμέσων (εικόνες, ήχος, βίντεο) όπου κάποια απώλεια πιστότητας είναι ανεκτική. Παραδείγματα περιλαμβάνουν:

* jpeg (εικόνες): Χρησιμοποιεί το διακριτό μετασχηματισμό συνημιτονίου (DCT) για να μειώσει την ποσότητα των δεδομένων που απαιτούνται για να αντιπροσωπεύουν μια εικόνα. Ασφαλίζει κάποιες πληροφορίες υψηλής συχνότητας, οι οποίες είναι λιγότερο αισθητές στο ανθρώπινο μάτι.

* mp3 (ήχος): Χρησιμοποιεί ψυχοακουστική μοντελοποίηση για να απορρίψει τις συχνότητες που καλύπτονται από τους πιο δυνατούς ήχους. Αυτό επιτρέπει σημαντική μείωση του μεγέθους του αρχείου χωρίς μεγάλη απώλεια της ποιότητας ήχου.

* mpeg (βίντεο): Χρησιμοποιεί τεχνικές όπως η αντιστάθμιση κίνησης για να κωδικοποιήσει μόνο τις αλλαγές μεταξύ των πλαισίων, μειώνοντας σημαντικά τον πλεονασμό.

Συνοπτικά:

Τα προγράμματα συμπίεσης αρχείων χρησιμοποιούν ένα συνδυασμό αλγορίθμων για τον εντοπισμό και την εκμετάλλευση απολύσεων σε δεδομένα. Οι μέθοδοι χωρίς απώλειες εγγυώνται την τέλεια ανακατασκευή, ενώ οι μεθόδους απώλειας θυσιάζουν ορισμένα δεδομένα για υψηλότερους λόγους συμπίεσης. Η επιλογή του αλγορίθμου εξαρτάται από τον τύπο των δεδομένων που συμπιέζονται και το αποδεκτό επίπεδο απώλειας δεδομένων. Πολλά σύγχρονα προγράμματα συμπίεσης χρησιμοποιούν ένα συνδυασμό αυτών των τεχνικών για τη βελτιστοποίηση της αποτελεσματικότητας της συμπίεσης.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα