इस पेज का कोड चालू नहीं हुआ।

index.html को सीधे किसी फ़ोल्डर से खोलने पर ब्राउज़र JavaScript मॉड्यूल रोक देता है, इसलिए कुछ तस्वीरें चुनने पर कुछ नहीं होगा। इसके बजाय फ़ोल्डर को http पर सर्व कीजिए:

powershell -ExecutionPolicy Bypass -File serve.ps1

फिर http://localhost:8080/ खोलिए।

इमेज स्टैकर — एक बर्स्ट को जोड़िए, RAW फ़ाइलें भी

बीस फ़्रेम एक में, न बीस अपलोड, न कोई RAW कन्वर्टर।

भाषा: हिन्दी
कोड देखें
यह टूल तस्वीरें कभी अपलोड नहीं करता। यहाँ कोई सर्वर है ही नहीं।

हर फ़्रेम को खोलना, डीकोड करना, सीध में लाना, जोड़ना और लिखना, यह सब आपका अपना ब्राउज़र आपकी अपनी मशीन पर करता है। 60 MB की बीस RAW फ़ाइलें करीब एक गीगाबाइट तस्वीरें होती हैं, और उसका एक बाइट भी हिलता नहीं। इस टूल में नेटवर्क का कोई काम है ही नहीं, और फ़ाइलें सीधे आपकी डिस्क से वह worker पढ़ता है जिसके पास कुछ भेजने के लिए कोई जगह ही नहीं है।

लाइव जाँच: जाँच जारी…

ऑफ़लाइन: जाँच जारी…

हमारी बात पर यकीन मत कीजिए। डेवलपर टूल्स खोलिए, नेटवर्क टैब देखिए, और RAW फ़ाइलों का एक फ़ोल्डर स्टैक कीजिए। एक भी रिक्वेस्ट में न कोई तस्वीर जाती है, न थंबनेल, न फ़ाइल का नाम, न कैमरे का मॉडल। या फिर इंटरनेट बंद कर दीजिए और तब भी स्टैक करके देखिए, टूल में कुछ नहीं बदलेगा।

1 फ़्रेम चुनिए

RAW फ़ाइलें उस पूरे आकार की JPEG को पढ़कर खोली जाती हैं जो कैमरा पहले ही उनके भीतर लिख चुका होता है, यानी कुछ किलोबाइट डायरेक्ट्री और फिर एक टुकड़ा। सेंसर का डेटा कभी डीकोड नहीं होता, इसलिए 60 MB का फ़्रेम लगभग उतनी ही तेज़ी से खुलता है जितनी तेज़ी से कोई JPEG। नतीजे के लिए इसका क्या मतलब है।

2 ये कैसे जुड़ेंगे

इससे आगे छोड़ दें कम रखने पर ज़्यादा छूटता है, और उसके साथ असली बारीकी भी छूटने लगती है। दो मानक विचलन आम शुरुआती जगह है।

साफ़पन कितने दायरे में नापा जाए बड़ा रखने पर किसी एक फ़्रेम से पूरे इलाके उठा लिए जाते हैं, और छोटा रखने पर बारीक ब्योरा पकड़ में आता है पर चिकना बैकग्राउंड फ़्रेमों के बीच बिखर सकता है।

1.00×

3 स्टैक कीजिए

Markdown के रूप में देखें

ब्राउज़र में तस्वीरों का एक सेट कैसे स्टैक करें

  1. फ़्रेम चुनिए। कोई बर्स्ट, ब्रैकेट किया हुआ सेट, इंटरवलोमीटर से ली गई कड़ी, या RAW फ़ाइलों का फ़ोल्डर। हर फ़ाइल आते ही खुलती है और उसकी लाइन बताती है कि उसमें से क्या निकला। RAW फ़ाइल के लिए यह कैमरा, भीतर मिली झलक का आकार, और यह कि उसे ढूँढ़ने के लिए फ़ाइल का कितना कम हिस्सा पढ़ना पड़ा।
  2. वह तरीका चुनिए जो आपके खोने वाली चीज़ से मेल खाता हो। नॉइज़ के लिए औसत, और अगर कुछ हिला हो तो सिग्मा क्लिपिंग। लोग, गाड़ियाँ या गुज़रता हवाई जहाज़ हो तो माध्यिका। अँधेरा आसमान जिसे तारों की लकीरों में बदलना हो तो हल्का। फ़ोकस रिंग घुमाकर लिया गया मैक्रो शॉट हो तो फ़ोकस स्टैकिंग। मेनू के नीचे का नोट बताता है कि आपके फ़्रेमों की गिनती पर हर तरीका क्या करेगा।
  3. तय कीजिए कि फ़्रेम सीध में लाने हैं या नहीं। हाथ से लिए हों तो हाँ, सिर्फ़ खिसकाना। हाथ से लिए हों और आप घूम भी रहे हों तो खिसकाना, घुमाना और पैमाना। कसे हुए तिपाई या इंटरवलोमीटर पर हों तो नहीं, और वह तेज़ भी रहेगा। हर फ़्रेम उसी से नापा जाता है जिस पर आधार का निशान है, और जब तक आप कुछ और न कहें वह पहला फ़्रेम ही रहता है: “इसे आधार बनाएँ” निशान सरकाता है, और सूची का क्रम जैसा आपने रखा वैसा ही रहता है।
  4. चारों आँकड़े पढ़िए, फिर बटन दबाइए। कुछ भी चलने से पहले पेज बताता है कि नतीजा कितना बड़ा होगा, मोटे तौर पर कितनी मेमोरी लगेगी, फ़्रेम कितनी बार डीकोड होंगे, और आपकी फ़ाइलों का कितना हिस्सा पढ़ा गया। अगर सेट एक बार में मेमोरी में नहीं आता तो वह यह भी कहता है, और यह भी कि कौन-सा काम करने वाला रिज़ॉल्यूशन इसे सुलझा देगा।

विस्तार से

नॉइज़ घटाने या लोगों को हटाने के लिए तस्वीरें कैसे स्टैक करें स्टैक करना एक बर्स्ट के कई फ़्रेमों को एक तस्वीर में जोड़ देता है। कौन-सा तरीका चाहिए यह इस पर निर्भर है कि आप क्या खोना चाहते हैं: नॉइज़, राह चलते लोग, या किसी मैक्रो शॉट की उथली गहराई। हर तरीका कैसे काम करता है, उसका क्या खर्च है, और RAW फ़ाइलें कहाँ बैठती हैं।

सवाल

क्या मेरी तस्वीरें कहीं अपलोड होती हैं?

नहीं। हर फ़्रेम को खोलना, डीकोड करना, सीध में लाना, स्टैक करना और लिखना, यह सब आपका अपना ब्राउज़र आपके अपने हार्डवेयर पर करता है। इस टूल में नेटवर्क का कोई काम है ही नहीं, न यह कभी कुछ मँगाता है और न कभी कुछ भेजता है। और पेज की Content-Security-Policy में हर वह पता लिखा है जिससे वह बात कर सकता है, जिनमें से एक भी इस साइट का नहीं है। पेज एक बार लोड कीजिए, इंटरनेट बंद कीजिए, और यह फिर भी चलता है। यहाँ यह बात ज़्यादातर टूल से ज़्यादा मायने रखती है, सिर्फ़ मात्रा की वजह से। बीस RAW फ़्रेम करीब एक गीगाबाइट होते हैं, और एक गीगाबाइट तस्वीरें सिर्फ़ इसलिए अपलोड करना कि उनका औसत निकाला जा सके, ठीक वही चीज़ है जिससे बचने के लिए यह टूल बना है।

यह कौन-से RAW फ़ॉर्मैट पढ़ सकता है, और कैसे?

CR2, CR3, NEF, NRW, ARW, SR2, SRF, DNG, ORF, RAF, RW2, PEF, SRW, 3FR, IIQ, DCR, KDC, MRW, MEF, RWL और कुछ और, यानी लगभग वह सब जो कैमरे लिखते हैं। इनमें से यह जो पढ़ता है वह है पूरे आकार की वह JPEG झलक जिसे खुद कैमरे ने शॉट लेते वक्त बनाया था, यानी वही तस्वीर जो कैमरे की पीठ पर दिखती है और वही जिसे आपका ऑपरेटिंग सिस्टम थंबनेल की तरह बनाता है। उसे फ़ाइल की डायरेक्ट्री संरचना टटोलकर ढूँढ़ा जाता है, जिसमें कुछ किलोबाइट के दो-चार पाठ लगते हैं, और फिर एक टुकड़ा उठा लिया जाता है। यह सेंसर डेटा का डीमोज़ेक नहीं है। नतीजे में कैमरे का ही व्हाइट बैलेंस और पिक्चर स्टाइल होता है, हर चैनल पर आठ बिट के साथ, न कि वह बारह या चौदह बिट का रैखिक सेंसर डेटा जो कोई RAW कन्वर्टर देता।

तो फिर सेंसर डेटा को ठीक से डीकोड क्यों नहीं करते?

क्योंकि इसका मतलब होता LibRaw या dcraw को साथ लाना, यानी फ़ॉर्मैट के एक ही परिवार के लिए दसियों मेगाबाइट का दूसरा इंजन, जिसका ज़्यादातर हिस्सा हर निर्माता की अलग कंप्रेशन योजनाएँ हैं। यह सौदा इस साइट के सोर्स में docs/what-can-be-built-here.md में तय किया गया है, जहाँ कैमरा RAW इस टूल के बनने से भी पहले से बाहर रखी चीज़ों की सूची में है। जो बदला वह उस सवाल का जवाब नहीं, बल्कि यह पता चलना है कि स्टैक करने के लिए उसकी ज़रूरत ही नहीं। झलकें पूरे रिज़ॉल्यूशन की होती हैं, वे वही हैं जो कैमरा आपको वैसे भी JPEG के रूप में देता, और उन्हें पढ़ना डीमोज़ेक करने से करीब सौ गुना तेज़ है। अगर आपको सेंसर डेटा चाहिए, तो पहले फ़्रेम किसी RAW कन्वर्टर में डेवलप कीजिए और उसके बनाए TIFF या JPEG स्टैक कीजिए, यह टूल उन्हें भी लेता है।

यह कितने फ़्रेम और कितने बड़े सँभाल सकता है?

सात में से छह तरीके बहते हुए चलते हैं। वे एक ही संचायक रखते हैं और हर फ़्रेम को ठीक एक बार पढ़ते हैं, इसलिए सौ फ़्रेम उतनी ही मेमोरी लेते हैं जितनी दो, और बढ़ता सिर्फ़ वक्त है। माध्यिका इसका अपवाद है, क्योंकि किसी सेट का बीच का मान तब तक पता नहीं चल सकता जब तक पूरा सेट न हो, इसलिए वह हर फ़्रेम एक साथ पकड़े रखती है। 24 मेगापिक्सल के बीस फ़्रेम करीब 1.4 GB होते हैं, और इतना कोई ब्राउज़र नहीं देता। ऐसा होने पर तस्वीर को आड़ी पट्टियों में काटकर एक-एक पट्टी स्टैक की जाती है, जिसमें हर पट्टी के लिए फ़्रेम दोबारा पढ़ने पड़ते हैं। पेज यह सब आपके बटन दबाने से पहले ही निकाल लेता है और आँकड़ा दिखा देता है, इसलिए धीमा चलना कभी चौंकाता नहीं।

फ़्रेम सीध में लाने से असल में होता क्या है?

यह पता चलता है कि हर फ़्रेम आधार फ़्रेम के मुकाबले कितना खिसका था, और उसे उतना वापस सरका दिया जाता है, पिक्सल के अंश तक। तरीका फ़ेज़ कोरिलेशन है। दो तस्वीरों के बीच का खिसकाव उनके स्पेक्ट्रम के बीच फ़ेज़ के अंतर के रूप में दिखता है, इसलिए दोनों का एक-एक फ़ूरिये रूपांतरण दो सौ पिक्सल का खिसकाव भी उतने ही सस्ते में ढूँढ़ लेता है जितने में दो पिक्सल का। दूसरी सेटिंग उसी तरकीब को लॉग-पोलर निर्देशांकों में स्पेक्ट्रम पर लगाकर घुमाव और पैमाना भी वापस निकाल लेती है। यह सब वैश्विक है, यानी पूरे फ़्रेम के लिए एक खिसकाव, एक कोण, एक पैमाना। इसलिए यह हिले हुए कैमरे को ठीक करता है, हिले हुए विषय को नहीं, और एक कदम बाएँ से ली गई तस्वीर को भी नहीं। एक नतीजा दिखता भी है। बीस पिक्सल बाएँ सरकाया गया फ़्रेम अब दाएँ किनारे तक नहीं पहुँचता, इसलिए नतीजा उतने हिस्से तक काट दिया जाता है जिसे हर फ़्रेम ढकता हो। इसीलिए सीध में लगाया गया स्टैक अपने फ़्रेमों से ज़रा-सा छोटा लौटता है, और उन फ़्रेमों से बने काले किनारे से बचने का यही अकेला रास्ता है जो वहाँ थे ही नहीं।

मुझे कौन-सा तरीका इस्तेमाल करना चाहिए?

जिस सेट में कुछ हिला न हो उसमें नॉइज़ के लिए औसत, जो यादृच्छिक नॉइज़ को फ़्रेमों की गिनती के वर्गमूल के बराबर घटा देता है। जो चीज़ें कुछ ही समय वहाँ थीं उन्हें हटाने के लिए माध्यिका, और इसका सबसे जाना-पहचाना इस्तेमाल किसी भीड़ भरे चौक की दर्जन भर तस्वीरें लेकर उसे खाली पा लेना है। दोनों चाहिए तो सिग्मा क्लिपिंग, जो सीख लेती है कि हर पिक्सल आम तौर पर क्या होता है और सिर्फ़ उन्हीं मानों का औसत लेती है जो उससे मेल खाते हैं, इसलिए उसमें गुज़रती गाड़ी से माध्यिका जैसी सुरक्षा और औसत जैसी नॉइज़ कमी दोनों होती हैं। तारों की लकीरों, आतिशबाज़ी और लाइट पेंटिंग के लिए हल्का। जो कुछ चमकीला हिला हो उसे हटाने के लिए गहरा। एक लंबी एक्सपोज़र जैसा असर लाने के लिए जोड़। फ़ोकस रिंग घुमाकर लिए गए मैक्रो शॉट के लिए फ़ोकस स्टैकिंग।

मेरी RAW फ़ाइलें चौदह बिट की हैं तो नतीजा आठ बिट का क्यों है?

क्योंकि जो स्टैक हो रहा है वह कैमरे की अपनी झलक है, और वह JPEG है। यह कहना भी बनता है कि स्टैक करना उसमें से कुछ वापस दिला देता है। आठ बिट के सोलह फ़्रेमों का औसत ऐसा नतीजा देता है जिसमें उनमें से किसी एक से भी बारीक छायाएँ होती हैं, क्योंकि जिस नॉइज़ ने हर फ़्रेम का पूर्णांकन अलग किया था वही औसत को दो स्तरों के बीच बैठने देता है। यहाँ गणित फ़्लोटिंग पॉइंट में होता है और बिलकुल आखिर में एक ही बार पूर्णांकित किया जाता है, इसलिए बीच में कुछ फेंका नहीं जाता। फिर भी यह रैखिक सेंसर डेटा स्टैक करने जैसा नहीं है, और यह टूल इसका दिखावा नहीं करता।

क्या मैं अलग-अलग नाप के या अलग कैमरों के फ़्रेम स्टैक कर सकता हूँ?

हाँ, हालाँकि यह आम तौर पर गलती होती है और जाँच लेना चाहिए कि आपका इरादा यही था। नतीजा सबसे बड़े फ़्रेम की नाप का होता है, और बाकी हर फ़्रेम को उसमें बिठाकर बीच में रखा जाता है। कैमरे मिलाने से रंगों की व्याख्या भी मिल जाती है, इसलिए दोनों का औसत एक ही रोशनी की दो अलग व्याख्याओं का औसत होता है। यह वाकई वहाँ काम आता है जहाँ सेट दो रिज़ॉल्यूशन में लिया गया हो, या जहाँ एक ही फ़्रेम की RAW फ़ाइल और JPEG दोनों हों।

यह कह रहा है कि काम पट्टियों में होगा। इसका क्या मतलब है?

कि उस तरीके को जितनी काम करने वाली मेमोरी चाहिए वह उससे ज़्यादा है जितनी यह टूल एक बार में लेने को तैयार है, इसलिए तस्वीर को आड़ी पट्टियों में काटकर एक-एक पट्टी स्टैक की जाएगी। नतीजा फिर भी ठीक वही आता है। बस हर पट्टी के लिए फ़्रेम दोबारा पढ़े जाते हैं, इसलिए ज़्यादा वक्त लगता है, और पेज बता देता है कि यह कितनी डीकोडिंग बनेगी। काम करने वाला रिज़ॉल्यूशन एक कदम घटाने से मेमोरी चौथाई रह जाती है, जो लगभग हमेशा पट्टियों वाले काम को एक ही चक्कर में बदल देता है, और नोट बता देता है कि कौन-सी सेटिंग ऐसा करेगी।

बाकी किसी टूल में Worker नहीं है, तो इसमें क्यों?

क्योंकि अकेला यही है जिसका काम मिनटों में नापा जाता है। यहाँ बाकी हर टूल ऐसा कुछ करता है जिसमें एक-दो सेकंड लगते हैं, जहाँ काम को मुख्य धारा से हटाना बस दिखावा होता। बीस बड़े फ़्रेम स्टैक करना सैकड़ों मेगाबाइट पर ठोस गणित है, और मुख्य धारा पर इसका मतलब है जमा हुआ पेज। न कोई प्रगति पट्टी सरकती, न रद्द वाला बटन जवाब देता, और आखिर में ब्राउज़र टैब बंद करने की पेशकश करने लगता। Worker इसी ब्राउज़र के भीतर एक दूसरी धारा है, जो इसी फ़ोल्डर की एक फ़ाइल को, इसी नीति के तहत चलाती है। वह न सर्वर है और न नेटवर्क फ़ीचर।

क्या यह मुफ़्त है, और क्या अकाउंट चाहिए?

यह मुफ़्त है, और न अकाउंट है, न साइन-इन, न ट्रायल, न कोई वॉटरमार्क। आप कितने फ़्रेम स्टैक करें या वे कितने बड़े हों, इस पर भी कोई सीमा नहीं है, क्योंकि इसका खर्च उठाने वाला कोई सर्वर ही नहीं है। काम आपकी अपनी मशीन पर होता है और अकेली छत आपकी अपनी मेमोरी है। साइट पर विज्ञापन चलते हैं और उन्हीं से इसका खर्च निकलता है, और विज्ञापनों को आपकी तस्वीरों के बारे में कुछ नहीं दिया जाता।