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

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

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

Πλεονεκτήματα

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

Αποθήκευση δεδομένων, οικονομία: Γενικά η συμπίεση εξοικονομεί χώρο και κατ’ επέκταση και χρήματα ειδικά σε μεγάλα επαγγελματικά περιβάλλοντα.

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

Μειονεκτήματα

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

Επεξεργαστικοί Πόροι: Η συμπίεση και αποσυμπίεση απαιτεί επιπλέον χρόνο και πόρους επεξεργασίας. Ως αποτέλεσμα είναι να μειώνεται γενικότερα η απόδοση ενός συστήματος.

Προγράμματα συμπίεσης

Η τεχνολογία που χρησιμοποιείται στα περισσότερα προγράμματα βασίζεται στον αλγόριθμο Deflate και στις διάφορες υλοποιήσεις του (pkzip, zlib, 7-Zip, PuTTY, igzip κλπ) [1] . Ο αλγόριθμος είναι μη απωλεστικός, δηλαδή δεν χάνεται καμία πληροφορία από τα αρχεία.

Γενικά τα σύγχρονα λειτουργικά συστήματα υποστηρίζουν συμπίεση και αποσυμπίεση αρχείων. Τα Windows ειδικότερα μπορούν να συμπιέσουν από την διαχείριση αρχείων σε μορφή zip.

 Συμπίεση από τα Windows

Στην εξερεύνηση των αρχείων επιλέξτε το αρχείο ή τα αρχεία και φακέλους που θέλετε να συμπιέσετε και στη συνέχεια με δεξί κλικ πάνω στην επιλογή σας επιλέξτε «Συμπίεση σε αρχείο ZIP».


Στο παραπάνω παράδειγμα βλέπετε ένα αρχείο από πρόγραμμα python (laptop.py) που συμπιέστηκε σε αρχείο με όνομα laptop.zip. Η διαφορά στο μέγεθος είναι εμφανής όπου από 578 byte το αρχικό αρχείο έγινε 358 byte, μία συμπίεση της τάξης περίπου στο 60% του αρχικού μεγέθους.

Για την αποσυμπίεση αρχείου zip απλά κάντε δεξί κλικ στο συμπιεσμένο αρχείο και επιλέξτε εξαγωγή όλων. Ένα πλαίσιο διαλόγου θα εμφανιστεί όπου θα σας ζητήσει να δηλώσετε τον φάκελο στον οποίο θα γίνει η αποσυμπίεση/εξαγωγή.

Η διαδικασία ολοκληρώνεται πατώντας το πλήκτρο «Εξαγωγή».


Το πρόγραμμα 7-zip

Ενώ η βασική λειτουργία συμπίεσης και αποσυμπίεσης των Windows είναι ικανοποιητική για τον μέσο χρήστη, όταν απαιτείται υψηλότερη συμπίεση ή ασφάλεια τότε μπορείτε να χρησιμοποιήσετε το πρόγραμμα 7-zip. To 7-zip [2] είναι ένα πρόγραμμα ανοικτού κώδικα με άριστα αποτελέσματα τόσο στο τελικό μέγεθος του συμπιεσμένου αρχείου όσο και στην κρυπτογράφηση.  Επίσης, υπάρχει διαθέσιμο για Windows, Linux, macOS καθώς και κλώνοι του για Android.

Στην εικόνα του παραδείγματος φαίνεται η συμπίεση στο βιβλίο του Κάρολου Δαρβίνου “On the Origin of Species By Means of Natural Selection” (ελεύθερα διαθέσιμο στην διεύθυνση https://www.gutenberg.org/ebooks/1228). Το αρχείο darwin.zip δημιουργήθηκε με τη λειτουργία συμπίεσης των Windows ενώ το αρχείο darwin.7z με το πρόγραμμα 7-zip.

 

 Συμπίεση με το πρόγραμμα 7-zip

Η συμπίεση ενός η περισσότερων αρχείων μπορεί να γίνει όπως και με τα windows με δεξί κλικ στα επιλεγμένα αρχεία και στη συνέχεια 7-zip 🡪 Add to “όνομα αρχείου“.

Εναλλακτικά μπορείτε να χρησιμοποιήσετε την «Add to archive…» λειτουργία ώστε να έχετε περισσότερες επιλογές.


Οι βασικές ρυθμίσεις που ενδιαφέρουν είναι:

Μορφή αρχείου: Μπορείτε να επιλέξετε μεταξύ αρκετών μορφών ανάλογα και με την συμβατότητα που χρειάζεστε με άλλα συστήματα.  Συνηθισμένες επιλογές είναι η μορφή 7z ή zip.

Επίπεδο συμπίεσης: Καθορίζετε τον βαθμό συμπίεσης που θα προσπαθήσει να επιτύχει το πρόγραμμα. Γενικά όσο πιο μεγάλος είναι αυτός ο βαθμός τόσο και πιο αργή θα είναι η διαδικασία συμπίεσης και πιο μεγάλη η συμπίεση. Πρέπει να τονιστεί ότι σε ορισμένα δεδομένα π.χ. εικόνες jpg δεν επιδέχονται επιπλέον συμπίεσης μια και είναι ήδη συμπιεσμένες οπότε η προσπάθεια επιπλέον συμπίεσης μπορεί να οδηγήσει σε αυξημένο μέγεθος αρχείου.

Μέθοδος συμπίεσης: Αναφέρεται στον αλγόριθμο που θα χρησιμοποιηθεί. Ανάλογα με το είδος του συμπιεσμένου αρχείου που δημιουργείται θα δείτε στο μενού αυτό και διαφορετικούς αλγόριθμους.

Τεμαχισμός σε τόμους: Πολύ χρήσιμη ιδιότητα όταν θέλετε να αποθηκεύσετε πολύ μεγάλη ποσότητα δεδομένων και στη συνέχεια το συμπιεσμένο αρχείο σε εξωτερικές μονάδες αποθήκευσης π.χ. DVD, usb flash disks κλπ. συγκεκριμένου μεγέθους. Το πρόγραμμα θα δημιουργήσει τόσα αρχεία όσα χρειάζονται για να αποθηκευτούν σε ίδιου μεγέθους εξωτερικές μονάδες αποθήκευσης.

 

Κρυπτογράφηση:  Συχνά για λόγους ασφαλείας ή όταν πρόκειται να αποσταλεί με ηλεκτρονικό ταχυδρομείο κάποιο συμπιεσμένο αρχείο μπορείτε να ορίσετε κωδικό πρόσβασης για μεγαλύτερη προστασία των δεδομένων σας.

Με αυτόματη αποσυμπίεση: Στην περίπτωση αυτή το συμπιεσμένο αρχείο παρέχει την δυνατότητα αυτόματης αποσυμπίεσης ώστε ο παραλήπτης να μην χρειάζεται να έχει εγκατεστημένη κάποια εφαρμογή.  Το αρχείο που δημιουργείται σε αυτή είναι εκτελέσιμο (.exe) και λίγο μεγαλύτερο σε μέγεθος εξαιτίας της ενσωμάτωσης της δυνατότητας αποσυμπίεσης.

 

Υλοποιήστε τις δραστηριότητες 2.4.4.1 - 2.4.4.4