λογισμικό

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

Συμπίεση και αποσυμπίεση Αλγόριθμοι

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

Ένας αλγόριθμος συμπίεσης , ειδικότερα, πρέπει λεξικό του κώδικα και ένα buffer εξόδου η οποία είναι 50 τοις εκατό μεγαλύτερη από ό, τι τα δεδομένα . Τα δεδομένα είναι συμφωνημένα και στη συνέχεια συρρικνωθεί κάτω για απλοποιημένη μορφή της . Για παράδειγμα , αν έχετε ένα κομμάτι 32 byte του κώδικα που μπορεί να ταιριάξει με ένα 16 byte , τότε θα είναι σε θέση να μειώσει τη μνήμη κατά το ήμισυ . Ένα τεστ συμπίεση αρχείων για την απλοποίηση ολόκληρης της βάσης κώδικα .
Εικόνων αποσυμπίεσης
Η

αποσυμπίεσης είναι λίγο πιο απλό από ό, τι συμπίεση , επειδή δεν απαιτεί μια συγκεκριμένη θέση μνήμης . Όταν αποσυμπιέσετε μπορείτε απλά να καθορίσει αν τα δεδομένα είναι ένας αγώνας ή κυριολεκτική . Αν είναι ένας αγώνας , τότε αποσυμπίεσης είναι περιττά και τα δεδομένα αντιγράφονται από την τελευταία ρυθμιστικό . Αν πρόκειται για ένα κυριολεκτικό , τότε θα κωδικοποιήσει τη διαφορά στο buffer εξόδου .

Η συμπίεση κώδικα
Η

Ένας αλγόριθμος για τη συμπίεση δεδομένων χρησιμοποιεί ενδείξεις για τον προσδιορισμό της μνήμης θέση , ταιριάζει με τα δεδομένα και στη συνέχεια αφαιρέστε το επιπλέον κώδικα αφού συμπιέζεται . Έτσι, το «αν - αλλιώς " αλγοριθμικής λειτουργία μπορεί να εμφανίζεται ως εξής :

αν ( valid_pointer (αγώνας ) && * αγώνας == * Η είσοδος && * (αγώνας + 1 ) == * (είσοδος + 1 ) ) { αν ( κυριολεκτική εικόνων αποσυμπίεσης Κωδικός
Η

Α Κωδικός αποσυμπίεσης από την άλλη πλευρά απλώς αντίγραφα κυριολεκτική κώδικα έτσι ώστε να μπορεί να αναπαραχθεί σε ένα ρυθμιστικό εξόδου στην κατάλληλη στιγμή. Στη συνέχεια αφαιρεί την πρόσθετη μνήμη από το πρόγραμμα. Η " αν - , ενώ " η λειτουργία μπορεί να εμφανίζεται ως εξής :

ενώ ( είσοδος <τέλος ) {if ( * input & 0x80 ) { //matchlength = DecodeLength ( και εισόδου) ? Offset = DecodeOffset ( και εισόδου) ? //ίδιο αλγόριθμο όπως DecodeLengthwhile ( μήκους - > 0 ) { * = * εξόδου ( output - offset ) ? + + εξόδου?
Η
εικόνων

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

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