Η θεωρητική βάση της συμπίεσης ως πρόβλεψη

Η κεντρική ιδέα βασίζεται στο ότι η συμπίεση δεδομένων είναι ουσιαστικά μια διαδικασία πρόβλεψης. Ένας αλγόριθμος που «περιμένει» μια ακολουθία δεδομένων μπορεί να την κωδικοποιήσει με λιγότερα bits. Στην περίπτωση του gzip (μέσω του αλγορίθμου DEFLATE), η πρόβλεψη πραγματοποιείται μέσω της αναζήτησης matches σε ένα sliding window. Αν μια ακολουθία χαρακτήρων υπάρχει ήδη στο παράθυρο, ο αλγόριθμος την αντικαθιστά με μια αναφορά (back-reference), μειώνοντας δραστικά το μέγεθος του αρχείου.

Υλοποίηση παραγωγής με beam search

Η απλή επιλογή του επόμενου byte με το καλύτερο σκορ συμπίεσης αποτυγχάνει λόγω της διακριτής φύσης των αποτελεσμάτων (integer byte length). Για να αντιμετωπιστεί αυτό, το εργαλείο gzipt χρησιμοποιεί beam search. Αντί να επιλέγει άμεσα, το σύστημα εξετάζει πολλαπλά πιθανά μονοπάτια (continuations) για ένα συγκεκριμένο χρονικό ορίζοντα (horizon), επιλέγοντας εκείνο που οδηγεί στη μέγιστη δυνατή συμπίεση. Αυτή η προσέγγιση επιτρέπει στο μοντέλο να «βλέπει» πέρα από το άμεσο επόμενο byte, βελτιώνοντας την ποιότητα της παραγόμενης ακολουθίας.

Περιορισμοί και context management

Ένα κρίσιμο τεχνικό σημείο είναι η διαχείριση του context. Αν ο αλγόριθμος έχει πρόσβαση σε ολόκληρο το ιστορικό της παραγωγής, τείνει να παγιδεύεται σε ατέρμονες επαναλήψεις (verbatim loops), καθώς η αντιγραφή κειμένου που μόλις παρήχθη είναι η πιο «φθηνή» επιλογή από πλευράς bits. Περιορίζοντας το context στα τελευταία tail bytes, αναγκάζουμε τον αλγόριθμο να αναζητά συσχετίσεις με το αρχικό corpus, ενισχύοντας τη συνοχή του παραγόμενου κειμένου.