Αρχική / Υπολογιστές / Ηλεκτρονικός προσομοιωτής συμπίεσης δεδομένων
Δωρεάν online εργαλεία

Ηλεκτρονικός προσομοιωτής συμπίεσης δεδομένων

Επικολλήστε κείμενο και δείτε πώς ο αλγόριθμος Huffman το κωδικοποιεί σε δυαδικό, με σύγκριση bit αρχικού και συμπιεσμένου μεγέθους. Η επεξεργασία γίνεται το…

Έναρξη χρήσης

Τι κάνει αυτό το εργαλείο

Ο προσομοιωτής συμπίεσης δεδομένων είναι ένα εκπαιδευτικό βοήθημα για την κατανόηση της κωδικοποίησης Huffman. Δεν συμπιέζει αρχεία, δεν δημιουργεί αρχείο εξόδου και δεν προσφέρει επιλογή επιπέδου συμπίεσης. Απλώς μετατρέπει το κείμενο που εισάγετε σε μια λίστα χαρακτήρων με τους δυαδικούς κωδικούς τους και συγκρίνει το μέγεθος σε bit με το αρχικό μέγεθος UTF-8.

Παράδειγμα εργασίας

Ας υποθέσουμε ότι επικολλάτε το κείμενο ABBC. Το εργαλείο θα υπολογίσει ότι το αρχικό μέγεθος είναι 32 bit (4 χαρακτήρες × 8 bit ανά χαρακτήρα σε UTF-8). Το ωφέλιμο φορτίο Huffman θα είναι 6 bit, επειδή ο χαρακτήρας με τη μεγαλύτερη συχνότητα παίρνει μικρότερο κωδικό. Η έξοδος θα δείξει κάτι σαν:

A: 0
B: 10
C: 11
Αρχικό μέγεθος: 32 bit
Μέγεθος Huffman: 6 bit

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

Πώς λειτουργεί ο αλγόριθμος

Το εργαλείο μετρά τη συχνότητα κάθε χαρακτήρα (σημείο κώδικα Unicode) στο κείμενο. Στη συνέχεια χτίζει ένα δυαδικό δέντρο Huffman συνδυάζοντας τους δύο κόμβους με τη μικρότερη συχνότητα. Κάθε χαρακτήρας λαμβάνει έναν δυαδικό κωδικό με βάση τη διαδρομή στο δέντρο. Αν υπάρχει μόνο ένας διακριτός χαρακτήρας, ο κωδικός του είναι 0. Σε περίπτωση ισοβαθμίας συχνοτήτων, οι κωδικοί μπορεί να διαφέρουν, αλλά το σταθμισμένο μήκος (άθροισμα συχνότητας × μήκος κωδικού) είναι το ίδιο.

Περιορισμοί και σημειώσεις

  • Το κείμενο δεν πρέπει να είναι κενό.
  • Το όριο εισόδου είναι 100.000 μονάδες κώδικα UTF-16 JavaScript, όχι byte ή χαρακτήρες. Πολλά emoji καταλαμβάνουν δύο μονάδες.
  • Τα κενά, οι αλλαγές γραμμής, τα κεφαλαία/πεζά και οι συνδυαστικοί τόνοι θεωρούνται διαφορετικοί χαρακτήρες.
  • Η έξοδος μπορεί να εμφανίζει διαφυγές (π.χ. \n) για χαρακτήρες όπως η αλλαγή γραμμής, αντί για ορατή αλλαλή γραμμής.
  • Η επεξεργασία γίνεται τοπικά στον browser σας· δεν είναι κρυπτογράφηση.
  • Για μεγάλο πλήθος διακριτών χαρακτήρων, η λίστα εξόδου μπορεί να είναι πολύ μεγάλη.

Συχνές ερωτήσεις

Γιατί το αποτέλεσμα δεν δείχνει πραγματική συμπίεση για μικρά κείμενα;

Το ωφέλιμο φορτίο Huffman δεν περιλαμβάνει το κόστος αποθήκευσης του δέντρου ή του πίνακα κωδικών. Για πολύ μικρά κείμενα, το συνολικό μέγεθος με τα μεταδεδομένα θα ήταν μεγαλύτερο από το αρχικό. Το εργαλείο δείχνει μόνο το θεωρητικό ωφέλιμο φορτίο.

Τι σημαίνει η ένδειξη «μονάδες κώδικα UTF-16»;

Η JavaScript μετρά το μήκος των συμβολοσειρών σε μονάδες των 16 bit. Χαρακτήρες όπως τα περισσότερα emoji χρειάζονται δύο μονάδες, άρα το όριο των 100.000 μονάδων αντιστοιχεί σε λιγότερους ορατούς χαρακτήρες αν υπάρχουν emoji.

Μπορώ να χρησιμοποιήσω το εργαλείο για να συμπιέσω αρχεία;

Όχι. Αυτός ο προσομοιωτής είναι εκπαιδευτικός και δεν παράγει αρχείο συμπιεσμένου δυαδικού. Δεν υπάρχει επιλογή αποθήκευσης ή λήψης αποτελέσματος.

Η επεξεργασία γίνεται τοπικά στον πρόγραμμα περιήγησης σας.