एक .xmp फ़ाइल से उस तस्वीर तक जो आप रखते हैं।
प्रीसेट एक ही बार पढ़ा जाकर पैरामीटरों का समूह बनता है, व्यूफ़ाइंडर के लिए 3D लुकअप टेबल में ढाल दिया जाता है, और शटर दबते ही बिना संपीड़न वाले सेंसर फ़्रेम पर पूरी फ़्लोटिंग-पॉइंट सटीकता के साथ दोबारा चलता है। Rust में लिखा एक ही इंप्लीमेंटेशन दोनों रास्ते चलाता है — इसी वजह से प्रीव्यू और तस्वीर आपस में मेल खाते हैं। .cube LUT पहले से ही एक लुकअप टेबल है, इसलिए वह पढ़ने का चरण छोड़कर सीधे टेबल पर पहुँच जाता है।
अंतिम अद्यतन:
एक तस्वीर जिस रास्ते से गुज़रती है
फ़ाइल पढ़ी जाती है
.xmp प्रीसेट दरअसल XML है। उसमें मौजूद हर Camera Raw एट्रिब्यूट एक ही पैरामीटर-समूह में पढ़ लिया जाता है: व्हाइट बैलेंस और एक्सपोज़र, टोन और कर्व, HSL, कलर ग्रेडिंग, डिटेल, इफ़ेक्ट, और अगर मास्क हों तो मास्क भी। जो एट्रिब्यूट इंजन नहीं पहचानता उन्हें त्रुटि मानने के बजाय अनदेखा कर दिया जाता है, इसलिए किसी नए Lightroom से निर्यात किया प्रीसेट भी वह सब लेकर लोड होता है जो वह समझ पाता है।
प्रीसेट एक पाइपलाइन बन जाता है
वे पैरामीटर एक तय क्रम वाली प्रक्रियाओं की श्रृंखला बन जाते हैं — पहले व्हाइट बैलेंस और एक्सपोज़र, फिर टोन और कर्व, फिर रंग, फिर स्थानिक काम: क्लैरिटी, धुंध हटाना, शार्पनिंग, मास्क, विनेट और ग्रेन। क्रम तय है, क्योंकि वही समायोजन दूसरे क्रम में लगाने पर वही तस्वीर नहीं बनती।
व्यूफ़ाइंडर को लुकअप टेबल मिलती है
जो कुछ सिर्फ़ पिक्सल के अपने रंग पर निर्भर है — कर्व, HSL, कलर ग्रेडिंग, पॉइंट कलर — वह प्रीसेट बदलते ही एक बार 3D लुकअप टेबल में ढाल दिया जाता है। उसके बाद GPU वही टेबल हर फ़्रेम पर बिना अतिरिक्त लागत के लगाता रहता है, और इसी वजह से लुक लाइव कैमरा फ़ीड के साथ चल पाता है।
शटर असली प्रक्रिया चलाता है
शटर दबाते ही वही पाइपलाइन पूरे बिना-संपीड़न सेंसर फ़्रेम पर फ़्लोटिंग पॉइंट में दोबारा चलती है, जिसमें लुकअप टेबल का कोई अनुमान शामिल नहीं होता। हेलेशन और ग्रेन दोनों रास्तों पर एक ही कोड इस्तेमाल करते हैं, इसलिए जो बनावट आपने फ़्रेम में देखी वही आपको मिलती है।
मूल फ़्रेम बचाया जा सकता है
सेटिंग्स में असंसाधित मूल रखें चालू करने पर प्रीसेट लगी तस्वीर के साथ एक अनछुई कॉपी सहेजी जाती है, तब लुक लगाना एक फ़ाइल हटाकर पलटा जा सकता है। RAW मोड में बिना छेड़ा सेंसर डेटा हमेशा अपने अलग ProRAW DNG में लिखा जाता है।
प्रीव्यू और तस्वीर मेल क्यों खाते हैं
लाइव फ़िल्टर देने वाले ज़्यादातर कैमरे प्रीव्यू के लिए एक कोड चलाते हैं और फ़ाइल के लिए दूसरा, और दोनों धीरे-धीरे अलग होते जाते हैं — «सपाट शूट करो, बाद में ग्रेड कर लेना» वाली आम सलाह यहीं से आती है।
यहाँ दोनों रास्ते एक ही पैरामीटरों के साथ एक ही Rust इंप्लीमेंटेशन को बुलाते हैं। प्रीव्यू सिर्फ़ सटीकता के बदले रफ़्तार लेता है, और कुछ नहीं: हर पिक्सल पर गणना करने के बजाय ग्रिड पर लिए गए नमूनों की एक टेबल। कौन-सी प्रक्रिया, किस क्रम में, किस मान के साथ — यह सब साझा है।
लुकअप टेबल जो नहीं संभाल सकती
लुकअप टेबल एक रंग को दूसरे रंग से जोड़ती है, इसलिए वह सिर्फ़ वही समायोजन संभाल सकती है जो अकेले पिक्सल पर निर्भर हों। जिस किसी को पड़ोसी पिक्सल देखने पड़ते हैं वह स्थानिक है — क्लैरिटी, धुंध हटाना, शार्पनिंग, नॉइज़ कम करना, विनेटिंग, मास्क और ग्रेन — और वह दोनों रास्तों पर अपने अलग पास के रूप में चलता है।
यही वजह है कि कई मास्क वाला प्रीसेट व्यूफ़ाइंडर में बिना मास्क वाले से भारी पड़ता है: हर मास्क का मतलब है हर फ़्रेम पर पूरे परदे के कई GPU पास, जबकि उसका रंग वाला काम टेबल में मुफ़्त में समा चुका था।
अनुमान नहीं, Lightroom से मिलान
HSL के सैचुरेशन और ल्यूमिनेंस ऑपरेटर सूत्र का अंदाज़ा लगाकर दोबारा नहीं बनाए गए, बल्कि Lightroom के अपने आउटपुट से मिलाकर तय किए गए हैं — इसलिए Lightroom में बना प्रीसेट वहीं उतरता है जहाँ उसके रचयिता ने उसे रखा था।
जहाँ कोई नियंत्रण सचमुच लागू नहीं है, वहाँ इंजन उसे तटस्थ मानकर रेंडर करता है और यह बता भी सकता है, बजाय इसके कि लगभग मिलती-जुलती कोई चीज़ रख दे। प्रीसेट किसी के जान-बूझकर चुने हुए अंकों का समूह है; चुपचाप दूसरे अंक रेंडर करना कुछ भी न रेंडर करने से बुरा है।
LUT छोटा रास्ता लेता है
एक .cube LUT पहले से वही चीज़ है जो व्यूफ़ाइंडर किसी प्रीसेट से बनाता है — एक टेबल जो हर रंग को किसी दूसरे रंग से जोड़ती है — इसलिए जोड़ने को कोई पाइपलाइन ही नहीं। टेबल एक बार पढ़ी जाती है, कैमरा जिस कलर स्पेस में काम करता है उसके हिसाब से ढाली जाती है, और सीधे लाइव फ़ीड पर लगा दी जाती है।
शटर वही टेबल पूरे फ़्रेम पर आपकी तय की हुई तीव्रता से लगाता है, और ग्रेन, हेलेशन, ब्लूम और बाकी इफ़ेक्ट ठीक वैसे ही ऊपर से चलते हैं जैसे किसी प्रीसेट के लिए। व्यूफ़ाइंडर और तस्वीर एक ही टेबल से नमूने लेते हैं, इसलिए दोनों मेल खाते हैं।
कुछ भी फ़ोन से बाहर नहीं जाता
कोई सर्वर है ही नहीं। पढ़ना, रेंडर करना, तस्वीर लेना और निर्यात — सब फ़ोन पर होता है, और तस्वीरें सीधे आपकी लाइब्रेरी में लिखी जाती हैं।
Google Drive या OneDrive में साइन इन करने पर उसका टोकन iOS Keychain में रखा जाता है। वह आपके इम्पोर्ट किए प्रीसेट और LUT पढ़ने के काम आता है, और लिखने के काम सिर्फ़ तब, जब आप उनमें से कोई वापस उसी अकाउंट में सहेजते हैं।