बाइट ऑर्डर, जिसे endianness भी कहा जाता है, यह बताता है कि किसी बड़े मान के बाइट किस क्रम में संग्रहीत किए जाते हैं। कंप्यूटर इन बाइट्स को किसी भी सिरे से लिख सकता है, और फ़ाइल को यह बताना होता है कि उसने कौन सा सिरा चुना, ताकि बाद में उसे पढ़ने वाला भी वही संख्या वापस प्राप्त करे।
दो बाइट क्रम
एक अकेला बाइट स्पष्ट होता है। जो संख्याएँ एक बाइट में नहीं समा पातीं, उन्हें कई बाइट में बाँटना पड़ता है, और यहीं से ये दो परंपराएँ अलग हो जाती हैं:
- Big-endian: संग्रहण या भेजना उस बाइट से शुरू होता है जिसमें सबसे अधिक महत्वपूर्ण बिट्स हों, और वहाँ से महत्व घटता जाता है
- Little-endian: संग्रहण या भेजना उस बाइट से शुरू होता है जिसमें सबसे कम महत्वपूर्ण बिट्स हों, और वहाँ से महत्व बढ़ता जाता है
संख्या 4660 को लीजिए, जिसे दो बाइट की जरूरत पड़ती है। एक big-endian फ़ाइल इन्हें 12 34 के रूप में लिखती है और little-endian फ़ाइल 34 12 के रूप में। संख्या वही, क्रम उल्टा। मिश्रित रूप भी मौजूद हैं, जिन्हें mixed-endian या middle-endian कहा जाता है, लेकिन वे दुर्लभ हैं। दोनों मुख्य क्रम रोज़मर्रा में उपयोग होते हैं, और आपको कौन सा दिखाई देगा, यह उस डिवाइस या प्रोग्राम पर निर्भर करता है जिसने फ़ाइल बनाई है।
कौन सी फाइलें इसे रखती हैं
यह फ़ील्ड TIFF और TIFF संरचना पर आधारित हर चीज़ से सबसे ज्यादा जानी जाती है, जिसमें JPEG तस्वीरों के अंदर Exif मेटाडेटा ब्लॉक और NEF, CR2, ARW और DNG जैसे कैमरा RAW फ़ॉर्मेट शामिल हैं। ये फ़ाइलें दो अक्षरों के मार्कर से शुरू होती हैं, II Intel के लिए या MM Motorola के लिए, वे कंपनियाँ जिनके प्रोसेसरों ने हर क्रम को आम बनाया। किसी रिपोर्ट में इसे आम तौर पर Little-endian (Intel, II) या Big-endian (Motorola, MM) के रूप में लिखकर स्पष्ट किया जाता है। मेटाडेटा लिखने वाले कैमरे, स्कैनर या प्रोग्राम ने ही यह क्रम चुना था।
ऑडियो कंटेनरों ने भी यही निर्णय पूरे फ़ॉर्मेट के स्तर पर लिया: WAV अपने मानों को little-endian में संग्रहीत करता है और AIFF उन्हें big-endian में, यही एक कारण है कि ये दोनों फ़ॉर्मेट, जो बिल्कुल वही साउंड सैंपल रखते हैं, बाइट दर बाइट एक-दूसरे से बदले नहीं जा सकते।
यह आपकी फ़ाइल के लिए क्यों महत्वपूर्ण है
बाइट ऑर्डर ही वह कारण है कि एक मशीन पर लिखा मेटाडेटा दूसरी पर बेतुका लग सकता है। जो रीडर मार्कर को नज़रअंदाज़ कर देता है, या गलत क्रम मान लेता है, वह शालीनता से फेल नहीं होता: वह असंभव तिथियाँ, अजीब एक्सपोज़र मान और ऐसी लंबाइयाँ बनाता है जो फ़ाइल के अंत से आगे इशारा करती हैं, या बस मेटाडेटा को अपठनीय घोषित कर देता है। क्रम जानने से पता चलता है कि फ़ाइल को सही तरीके से कैसे खोला और प्रोसेस किया जा सकता है।
यदि आप मेटाडेटा संपादित करते हैं, तो यह दोगुना महत्वपूर्ण हो जाता है, क्योंकि नए मानों को उसी क्रम में वापस लिखना पड़ता है जैसा फ़ाइल ने घोषित किया है। और यदि वही मार्कर खुद क्षतिग्रस्त हो जाए, तो आमतौर पर पूरा मेटाडेटा ब्लॉक अपठनीय हो जाता है, भले ही फ़ाइल के अंदर की इमेज या ऑडियो पूरी तरह सही सलामत हो। यह फ़ील्ड केवल बताती है कि फ़ाइल को कैसे सहेजा गया है, इसलिए इसमें आपके या आपके डिवाइस के बारे में कोई निजी जानकारी नहीं होती।