Η διάταξη bytes (Byte Order), γνωστή και ως endianness, περιγράφει τη σειρά με την οποία αποθηκεύονται τα bytes μιας μεγαλύτερης τιμής. Οι υπολογιστές μπορούν να γράψουν αυτά τα bytes ξεκινώντας από οποιοδήποτε άκρο και το αρχείο πρέπει να δηλώσει ποιο άκρο χρησιμοποίησε, ώστε οτιδήποτε το διαβάσει αργότερα να πάρει πίσω τον ίδιο αριθμό.
Οι δύο σειρές byte
Ένα byte από μόνο του είναι ξεκάθαρο. Αριθμοί που είναι πολύ μεγάλοι για ένα byte πρέπει να χωριστούν σε περισσότερα bytes, και εκεί είναι που οι δύο συμβάσεις διαφέρουν:
- Big-endian: η αποθήκευση ή η αποστολή ξεκινά με το byte που περιέχει τα πιο σημαντικά bits, με τη σημασία να μειώνεται από εκεί και πέρα
- Little-endian: η αποθήκευση ή η αποστολή ξεκινά με το byte που περιέχει τα λιγότερο σημαντικά bits, με τη σημασία να αυξάνεται από εκεί και πέρα
Πάρτε τον αριθμό 4660, ο οποίος χρειάζεται δύο bytes. Ένα big-endian αρχείο τα γράφει ως 12 34 και ένα little-endian αρχείο ως 34 12. Ίδιος αριθμός, αντίστροφη σειρά. Υπάρχουν και μικτές μορφές, γνωστές ως mixed-endian ή middle-endian, αλλά είναι σπάνιες. Και οι δύο κύριες διατάξεις χρησιμοποιούνται καθημερινά, και ποια θα δείτε εξαρτάται από τη συσκευή ή το πρόγραμμα που δημιούργησε το αρχείο.
Ποια αρχεία το φέρουν
Το πεδίο είναι πιο γνωστό από τα αρχεία TIFF και οτιδήποτε βασίζεται στη δομή TIFF, που περιλαμβάνει το μπλοκ μεταδεδομένων Exif μέσα σε φωτογραφίες JPEG και σε μορφές RAW μηχανών όπως NEF, CR2, ARW και DNG. Αυτά τα αρχεία ξεκινούν με έναν δείκτη δύο γραμμάτων, II για Intel ή MM για Motorola, τις εταιρείες των οποίων οι επεξεργαστές έκαναν καθεμία διάταξη συνηθισμένη. Μια αναφορά συνήθως το γράφει αναλυτικά ως Little-endian (Intel, II) ή Big-endian (Motorola, MM). Η μηχανή, ο σαρωτής ή το πρόγραμμα που έγραψε τα μεταδεδομένα έκανε αυτή την επιλογή.
Τα audio containers έκαναν την ίδια επιλογή σε επίπεδο συνολικής μορφής: το WAV αποθηκεύει τις τιμές του σε little-endian και το AIFF σε big-endian, κάτι που είναι ένας λόγος που δύο μορφές που περιέχουν ακριβώς τα ίδια δείγματα ήχου δεν είναι εναλλάξιμες byte προς byte.
Γιατί έχει σημασία για το αρχείο σας
Η διάταξη bytes είναι ο λόγος που τα μεταδεδομένα που γράφτηκαν σε ένα μηχάνημα μπορεί να φαίνονται ακατανόητα σε ένα άλλο. Ένας αναγνώστης που αγνοεί τον δείκτη ή υποθέτει λάθος διάταξη δεν αποτυγχάνει με ήπιο τρόπο: παράγει αδύνατες ημερομηνίες, παράλογες τιμές έκθεσης και μήκη που δείχνουν πέρα από το τέλος του αρχείου ή απλώς δηλώνει ότι τα μεταδεδομένα δεν μπορούν να αναγνωστούν. Το να γνωρίζετε τη διάταξη σάς λέει πώς μπορεί το αρχείο να ανοίξει και να επεξεργαστεί σωστά.
Έχει διπλή σημασία όταν επεξεργάζεστε μεταδεδομένα, επειδή οι νέες τιμές πρέπει να γραφτούν ξανά με τη διάταξη που δηλώνει το αρχείο. Και αν αυτός ο ίδιος ο δείκτης καταστραφεί, συνήθως ολόκληρο το μπλοκ μεταδεδομένων γίνεται μη αναγνώσιμο, παρόλο που η εικόνα ή ο ήχος μέσα στο αρχείο είναι απολύτως ακέραια. Το πεδίο περιγράφει μόνο τον τρόπο διάταξης του αρχείου, επομένως δεν περιέχει τίποτα προσωπικό για εσάς ή τη συσκευή σας.