Η συμπίεση αρχείων αποτελεί βασικό μέρος του τρόπου λειτουργίας του ιστού. Μας επιτρέπει να μεταφέρουμε αρχεία που διαφορετικά θα χρειαζόταν υπερβολικό όγκο διακίνησης δεδομένων και χρόνο. Κάθε φορά που συνδέεστε σε αρχεία ZIP ή προβάλλετε εικόνες JPEG, επωφελείστε από τη συμπίεση αρχείων.
Έτσι, ίσως σας γεννάται η ερώτηση: πώς λειτουργεί η συμπίεση αρχείων; Ας ρίξουμε σε αυτό το άρθρο μια βασική ματιά στο τι σημαίνει και πώς λειτουργεί η συμπίεση αρχείων.
Τι σημαίνει συμπίεση;
Με απλά λόγια, η συμπίεση αρχείων (ή η συμπίεση δεδομένων η αγγλικά data compression) είναι η πράξη μείωσης του μεγέθους ενός αρχείου ενώ διατηρούνται τα αρχικά δεδομένα. Με αυτόν τον τρόπο, το αρχείο καταλαμβάνει λιγότερο χώρο σε μια συσκευή αποθήκευσης και επιπλέον μπορεί και μεταφέρεται ευκολότερα μέσω του διαδικτύου ή με άλλο τρόπο.
Είναι σημαντικό να σημειωθεί ότι η συμπίεση δεν είναι άπειρη. Αν και μπορεί να γίνει βηματικά στο τέλος έχει πάντα κάποιο όριο. Ενώ η συμπίεση ενός αρχείου σε μία μορφή συμπίεσης ZIP μειώνει το αρχικό μέγεθος του, δεν μπορείτε να συνεχίσετε να συμπιέζετε το αρχείο για να το μειώσετε περαιτέρω.
Γενικά, η συμπίεση αρχείων χωρίζεται σε δύο βασικούς τύπους: με απώλεια (απωλεστική) και χωρίς απώλεια (μη απωλεστική). Ας δούμε πώς λειτουργούν και οι δύο.
Πώς λειτουργεί η συμπίεση αρχείων: Συμπίεση Απώλειας
Η συμπίεση απώλειας (ή συμπίεση με απώλεια) μειώνει το μέγεθος του αρχείου, αφαιρώντας περιττά τμήματα πληροφοριών. Είναι πιο συνηθισμένο σε μορφές εικόνας, βίντεο και ήχου, όπου δεν είναι απαραίτητη η τέλεια αναπαράσταση της αρχικής πηγής. Υπάρχουν πολλές μορφές, ή αν θέλετε πρωτόκολλα συμπίεσης για την συμπίεση απώλειας για κάθε είδος αρχείου (μουσική, εικόνα ή βίντεο). Τα MP3 και JPEG είναι δύο δημοφιλή παραδείγματα.
Ένα MP3 δεν περιέχει όλες τις πληροφορίες ήχου από την πρωτότυπη εγγραφή. Στην ουσία απορρίπτει και διαγράφει τους ήχους που οι άνθρωποι δεν ακούνε. Διαγράφει συχνότητες κάτω των 20Hz και πάνω των 16000Hz καθώς επίσης και διάφορες ακουστικές αρμονικές.
Δεν θα παρατηρήσετε ότι λείπουν ούτως ή άλλως, και έτσι η κατάργηση αυτής της πληροφορίας έχει ως αποτέλεσμα μικρότερο μέγεθος αρχείου με ουσιαστικά κανένα μειονέκτημα.
Ομοίως, η συμπίεση σε JPEG καταργεί μη ζωτικά τμήματα των εικόνων. Για παράδειγμα, σε μια φωτογραφία που περιέχει έναν μπλε ουρανό, η συμπίεση JPEG μπορεί να αλλάξει όλα τα pixel του ουρανού σε μία ή δύο αποχρώσεις του μπλε, αντί να χρησιμοποιεί δεκάδες διαφορετικές αποχρώσεις.
Ωστόσο, για κάθε είδος αρχείου, υπάρχει ένα όριο όπου δεν γίνεται αντιληπτή η μείωση ποιότητας λόγω της συμπίεση απώλειας. Από αυτό το όριο και κάτω όσο πιο πολύ συμπιέζετε ένα αρχείο, τόσο πιο αξιοσημείωτη είναι η πτώση της ποιότητας. Ίσως έχετε ακούσει αρχεία MP3 με μεγάλη συμπίεση απώλειας από το YouTube. Για παράδειγμα, συγκρίνετε αυτό το μουσικό κομμάτι υψηλής ποιότητας:
Με αυτή την πολύ συμπιεσμένη έκδοση του ίδιου τραγουδιού:
Η συμπίεση απώλειας είναι κατάλληλη όταν ένα αρχείο περιέχει περισσότερες πληροφορίες από αυτές που χρειάζεστε για τους σκοπούς σας. Για παράδειγμα, ας πούμε ότι έχετε ένα τεράστιο αρχείο εικόνας RAW. Αν θέλετε να τυπώσετε αυτήν την εικόνα σε μία μεγάλη αφίσα τότε θα πρέπει να διατηρήσετε αυτή την ποιότητα για να εκτυπωθεί ζωντανά, με καθαρά χρώματα και χωρίς σημάδια των pixels. Είναι άσκοπο να φορτώσετε το αρχείο RAW στο Facebook.
Η εικόνα περιέχει τόσα δεδομένα που δεν παρατηρούνται όταν προβληθούν σε ιστότοπους κοινωνικής δικτύωσης. Η συμπίεση της εικόνας σε JPEG υψηλής ποιότητας διαγράφει κάποιες πληροφορίες, αλλά η εικόνα φαίνεται σχεδόν η ίδια με γυμνό μάτι.
Δείτε τη σύγκριση των δημοφιλών μορφών εικόνας για μια βαθύτερη ανάλυση στο θέμα: Πότε χρησιμοποιώ JPEG, GIF, ή PNG
Συμπίεση Απώλειας σε γενική χρήση
Όπως έχουμε αναφέρει, η συμπίεση απώλειας είναι κατάλληλη σε μεγάλο βαθμό για τις περισσότερες μορφές των sοcial media. Εξαιτίας αυτού, είναι ζωτικής σημασίας για εταιρείες όπως το Spotify και το Netflix που μεταδίδουν συνεχώς τεράστιες ποσότητες πληροφοριών. Η μείωση του μεγέθους του αρχείου όσο το δυνατόν περισσότερο, διατηρώντας παράλληλα την ποιότητα, καθιστά τη λειτουργία τους πιο αποτελεσματική. Μπορείτε να φανταστείτε τι χώρο αποθήκευσης θα απαιτούνταν αν κάθε βίντεο YouTube αποθηκευόταν και μεταδιδόταν στην αρχική ασυμπίεστη μορφή του;
Μεγάλες εταιρείες βασίζονται πάρα πολύ στην συμπίεση αρχείων για να μπορέσουν να προσφέρουν εκτεταμένα τις υπηρεσίες τους σε περιορισμένους αποθηκευτικούς χώρους.
Αλλά η συμπίεση απώλειας δεν λειτουργεί τόσο καλά για αρχεία όπου όλες οι πληροφορίες είναι κρίσιμες. Για παράδειγμα, η χρήση συμπίεσης απώλειας σε αρχείο κειμένου ή υπολογιστικό φύλλο θα οδηγούσε σε αλλοιωμένη έξοδο. Δεν μπορείτε πραγματικά να πετάξετε τίποτα χωρίς να βλάψετε σοβαρά το τελικό προϊόν.
Όταν αποθηκεύετε ένα αρχείο με κάποια μορφή απώλειας, μπορείτε συχνά να ορίσετε το επίπεδο ποιότητας. Για παράδειγμα, πολλοί χρησιμοποιούν ένα ρυθμιστικό για να επιλέξουν την ποιότητα ενός αρχείου JPEG από 0-100.
Η αποθήκευση σε κάτι σαν 90 ή 80 τοις εκατό μειώνει αρκετά το μέγεθος του αρχείου, με μικρή διαφορά στο μάτι. Αλλά η αποθήκευση σε κακή ποιότητα , όπως 10%, ή η κατ’επανάληψη αποθήκευση του ίδιου αρχείου με μικρή απώλεια, στο τέλος θα την υποβαθμίσει.
Πώς λειτουργεί η συμπίεση αρχείων: Συμπίεση χωρίς απώλειες
Η συμπίεση χωρίς απώλειες είναι ένας τρόπος μείωσης του μεγέθους του αρχείου, ώστε να μπορείτε να ανακατασκευάσετε τέλεια το αρχικό αρχείο. Σε αντίθεση με την συμπίεση απώλειας, δεν πετάει καμία πληροφορία. Αντ ‘αυτού, η συμπίεση χωρίς απώλειες λειτουργεί ουσιαστικά αφαιρώντας τα πλεονάζοντα στοιχεία.
Ας πάρουμε ένα βασικό παράδειγμα για να δείξουμε τι σημαίνει αυτό. Παρακάτω είναι μια στοίβα από 10 τούβλα: δύο μπλε, πέντε κίτρινα και τρία κόκκινα. Αυτή η στοίβα είναι ένας απλός τρόπος για να απεικονίσετε αυτά τα τούβλα, αλλά υπάρχει και ένας άλλος τρόπος για να το κάνετε αυτό.
Αντί να δείξουμε και τα 10 τούβλα, μπορούμε να τα αφαιρέσουμε όλα εκτός από ένα από κάθε χρώμα. Στη συνέχεια, αν χρησιμοποιήσουμε αριθμούς για να δείξουμε πόσα τούβλα από κάθε χρώμα υπήρχαν, έχουμε αντιπροσωπεύσει ακριβώς το ίδιο κομμάτι πληροφοριών χρησιμοποιώντας πολύ λιγότερα τούβλα. Αντί για 10 τούβλα, χρειαζόμαστε τώρα μόνο τρία.
Αυτή είναι μια απλή απεικόνιση του τρόπου με τον οποίο είναι δυνατή η συμπίεση χωρίς απώλεια. Αποθηκεύει τις ίδιες πληροφορίες με πιο αποτελεσματικό τρόπο, αφαιρώντας τον πλεονασμό. Εξετάστε ένα πραγματικό αρχείο, όπου η παρακάτω συμβολοσειρά:
mmmmmuuuuuuuoooooooooooo
Μπορεί να “συμπιεστεί” στην ακόλουθη, πολύ μικρότερη μορφή:
m5u7o12
Αυτό μας επιτρέπει να χρησιμοποιήσουμε επτά χαρακτήρες αντί για 24 για να αναπαραστήσουμε τα ίδια δεδομένα, κάτι που είναι μια σημαντική εξοικονόμηση.
Συμπίεση Χωρίς απώλειες στην καθημερινή χρήση
Όπως προαναφέρθηκε, η συμπίεση χωρίς απώλεια είναι σημαντική σε περιπτώσεις όπου δεν μπορείτε να καταργήσετε κανένα από τα πρωτότυπα αρχεία. Εάν είστε περίεργοι ως προς το πώς λειτουργούν τα αρχεία ZIP, διαβάστε παρακάτω:
Όταν δημιουργείτε ένα αρχείο ZIP με κάποιο πρόγραμμα στα Windows, χρησιμοποιείτε συμπίεση χωρίς απώλειες. Η συμπίεση αρχείων ZIP είναι ένας αποτελεσματικός τρόπος αποθήκευσης του αρχείου, και όταν αποσυμπιέσετε το αρχείο υπάρχουν όλες οι αρχικές πληροφορίες. Εάν χρησιμοποιήσατε συμπίεση απώλειας για να συμπιέσετε ένα, για παράδειγμα, εκτελέσιμο αρχείο, η αποσυμπιεσμενη έκδοση θα ήταν κατεστραμμένη και άχρηστη.
Οι κοινές μορφές συμπίεσης χωρίς απώλειες είναι οι PNG για εικόνες, FLAC για ήχο και ZIP γενικά για όλα τα αρχεία. Οι συμπιέσεις χωρίς απώλεια για βίντεο είναι σπάνιες, διότι τα αποτελέσματα θα καταλαμβάνουν τεράστιες ποσότητες χώρου.
Πότε να χρησιμοποιήσετε την συμπίεση με απώλεια έναντι της συμπίεσης χωρίς απώλεια
Τώρα που εξετάσαμε και τις δύο μορφές συμπίεσης αρχείων, μπορεί να αναρωτηθείτε πότε πρέπει να χρησιμοποιήσετε την μία και πότε την άλλη. Όπως αποδεικνύεται, δεν υπάρχει “καλύτερη” μορφή συμπίεσης, όλα εξαρτώνται από το πως θέλετε να χρησιμοποιήσετε τα αρχεία σας.
Σε γενικές γραμμές, θα πρέπει να χρησιμοποιείτε συμπίεση χωρίς απώλειες όταν θέλετε ένα τέλειο αντίγραφο του υλικού προέλευσης και συμπίεση απώλειας όταν ένα ατελές αντίγραφο είναι αρκετά καλό. Ας δούμε ένα άλλο παράδειγμα για να καταλάβετε πώς να επιλέξετε αρμονικά ποιος τρόπος είναι ο καλύτερος.
Πείτε ότι μόλις έχετε σκαλίσει την παλιά σας συλλογή με CD και θέλετε να την ψηφιοποιήσετε έτσι ώστε να έχετε όλη τη μουσική σας στον υπολογιστή σας. Όταν αντιγράφετε τα CD σας, είναι λογικό να χρησιμοποιήσετε μια μορφή όπως την FLAC, η οποία είναι χωρίς απώλειες. Αυτό σας επιτρέπει να έχετε ένα πρωτότυπο αντίγραφο στον υπολογιστή σας, το οποίο είναι τόσο καλό όσο το αρχικό CD.
Αργότερα, ίσως θέλετε να βάλετε κάποια μουσική στο τηλέφωνό σας ή σε ένα παλιό MP3 player για να μπορείτε να την απολαμβάνετε εν κινήσει. Μάλλον δεν σας ενδιαφέρει η μουσική σας να έχει τέλεια ποιότητα για αυτό, και έτσι μπορείτε να μετατρέψετε τα FLAC αρχεία σε MP3. Αυτό σας δίνει ένα αρχείο ήχου που εξακολουθεί να είναι απολύτως κατανοητό, αλλά δεν καταλαμβάνει πολύ χώρο στην κινητή συσκευή σας. Η ποιότητα του MP3 που μετατράπηκε από το FLAC θα είναι το ίδιο καλή εάν δημιουργούσατε ένα συμπιεσμένο αρχείο ήχου MP3 κατευθείαν από το αρχικό CD.
Ανησυχίες κατά τη συμπίεση αρχείων
Όπως έχουμε δει, η μετατροπή ενός συμπιεσμένου χωρίς απώλειες αρχείου με μία μορφή συμπίεσης με απώλειες δεν έχει κανένα πρόβλημα. Ωστόσο, δεν πρέπει ποτέ να μετατρέψετε ένα αρχείο που έχει υποστεί συμπίεση απώλειας σε μια μορφή συμπίεσης χωρίς απώλειες. Γενικότερα θα πρέπει να είστε προσεκτικοί στη μετατροπή μιας μορφής συμπίεσης σε μια άλλη.
Η μετατροπή ενός αρχείου με συμπίεση απώλειας σε μία δεύτερη μορφή συμπίεσης χωρίς απώλεια είναι απλά σπατάλη χώρου. Να θυμάστε ότι οι συμπιέσεις απώλειας διαγράφουν δεδομένα που μετά είναι αδύνατο να τα ανακτήσετε πίσω.
Πέστε ότι έχετε ένα αρχείο MP3 μεγέθους 3 MB. Η μετατροπή σε FLAC μπορεί να οδηγήσει σε ένα αρχείο 30MB, αλλά αυτά τα 30MB περιέχουν τους ίδιους ήχους που είχαν τα πολύ μικρότερα αρχεία MP3. Η μετατροπή πίσω σε μια μορφή χωρίς απώλειες δεν “ανακτά” τις πληροφορίες που διέγραψε η MP3 συμπίεση.
Τέλος, όπως προαναφέρθηκε, η μετατροπή μιας μορφής συμπίεσης απώλειας σε μια άλλη (ή κατ ‘επανάληψη αποθήκευση με την ίδια μορφή) θα υποβαθμίσει περαιτέρω την ποιότητα. Κάθε φορά που εφαρμόζετε τη συμπίεση απώλειας, χάνετε περισσότερες λεπτομέρειες. Αυτό γίνεται ολοένα και πιο αισθητό μέχρι να καταστραφεί ουσιαστικά το αρχείο.
Πώς λειτουργεί η συμπίεση; Τώρα γνωρίζετε
Έχουμε αναλύσει την συμπίεση με απώλεια και χωρίς απώλεια και έχουμε δει πώς λειτουργούν. Τώρα γνωρίζετε πώς να αποθηκεύσετε ένα αρχείο σε μικρότερο μέγεθος από την αρχική του μορφή και πώς να επιλέξετε την καλύτερη μέθοδο για τις ανάγκες σας.
Φυσικά, οι αλγόριθμοι που αποφασίζουν ποια δεδομένα θα διαγραφούν στις μεθόδους με απώλεια και πώς να αποθηκεύουν καλύτερα τα πλεονάζοντα δεδομένα σε συμπίεση χωρίς απώλειες είναι πολύ πιο περίπλοκα από αυτά που εξηγήσαμε εδώ. Υπάρχουν πολλά περισσότερα που μπορείτε περαιτέρω να ανακαλύψετε στο διαδίκτυο, αν το θέμα σας ενδιαφέρει.