QR कोड फ़ाइंडर पैटर्न: हर QR कोड के कोनों में चौकोर क्यों होते हैं

KoloQR टीम द्वाराबुनियादी बातें

नीली पृष्ठभूमि पर सफ़ेद गोल किनारों वाले स्टिकर पर गोल बिंदु मॉड्यूलों वाला QR कोड, जिसके तीनों फ़ाइंडर पैटर्न ऊपर-बाएँ, ऊपर-दाएँ और नीचे-बाएँ कोनों में हरे छल्लों के रूप में खींचे हैं जबकि चौथे कोने में सिर्फ़ डेटा मॉड्यूल हैं, और ऊपर “Squares in the Corners” लिखा सियान गोल लेबल।

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

मुख्य बातें

  • फ़ाइंडर पैटर्न QR कोड के कोनों के उन तीन संकेंद्रित चौकोरों में से एक है जिनसे स्कैनर चिह्न को ढूँढ़ता है और उसका घुमाव तय करता है। हर एक 7 × 7 मॉड्यूल का है, और उसकी भीतरी बग़लों पर एक मॉड्यूल का हल्का सेपरेटर होता है।
  • वे चार नहीं तीन हैं ताकि चिह्न विषम रहे। तीन कोने एक चौकोर तय कर देते हैं, और ख़ाली चौथा कोना डिकोडर को बताता है कि कोड किस दिशा में सीधा है, किसी भी घुमाव पर।
  • फ़ाइंडर पैटर्न को उसके बीच से काटती स्कैन रेखा गहरे और हल्के हिस्से 1:1:3:1:1 के अनुपात में बनाती है, और वह अनुपात हर दिशा से और हर छपाई आकार पर एक जैसा रहता है।
  • फ़ाइंडर पैटर्न ढक देना डेटा ख़राब करने जैसा नहीं है। एरर करेक्शन डेटा क्षेत्र की मरम्मत करता है; फ़ाइंडर पैटर्न की मरम्मत कुछ नहीं करता, क्योंकि पहचान डिकोडिंग शुरू होने से पहले होती है।
  • संस्करण 1 के QR कोड में 441 में से 233 मॉड्यूल - 52.8% - डेटा नहीं, ढाँचा हैं। संस्करण 40 तक यह हिस्सा 5.4% रह जाता है, और इसीलिए छोटे कोड इतना कम समेटते हैं।

QR कोड पर फ़ाइंडर पैटर्न क्या है?

फ़ाइंडर पैटर्न QR कोड के कोनों के उन तीन संकेंद्रित चौकोरों में से एक है जिनसे स्कैनर चिह्न को ढूँढ़ता है और उसका घुमाव तय करता है। हर फ़ाइंडर पैटर्न 7 × 7 मॉड्यूल का है: बीच में ठोस 3 × 3 गहरा चौकोर, उसके चारों ओर एक मॉड्यूल का हल्का छल्ला, और उसके चारों ओर एक मॉड्यूल का गहरा छल्ला।

हर फ़ाइंडर पैटर्न की भीतरी बग़लों पर एक सेपरेटर चलता है - फ़ाइंडर पैटर्न और डेटा क्षेत्र के बीच खींची गई एक मॉड्यूल की हल्की सीमा, ताकि फ़ाइंडर का बाहरी किनारा नापने लायक़ बना रहे। फ़ाइंडर और सेपरेटर मिलकर तीनों कोनों में 8 × 8 का खंड घेरते हैं, यानी अब तक बने हर QR कोड के 192 मॉड्यूल, हर चिह्न संस्करण पर, चाहे कोड कुछ भी कहता हो।

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

हरे रंग में QR कोड का पास से लिया दृश्य, जिसके तीनों फ़ाइंडर पैटर्नों में से एक ऊपर-दाएँ कोने में लगभग काले रंग में उभारा गया है जबकि बाक़ी चिह्न फीका पड़ा है, और उसके ऊपर पैटर्न की चौड़ाई भर फैली माप-रेखा जिसमें दो रेखाओं के बीच सात बिंदु हैं, तथा नीचे “7 modules” लिखा सफ़ेद लेबल।
फ़ाइंडर पैटर्न संस्करण 1 से संस्करण 40 तक, हर चिह्न संस्करण पर सात मॉड्यूल का चौकोर होता है। सिर्फ़ तीनों के बीच की दूरी बदलती है, क्योंकि चिह्न उनके चारों ओर बढ़ता है।

तीन कोने ही क्यों, चार क्यों नहीं

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

इसीलिए QR कोड उलटा, बग़ल से, या दुकान की खिड़की में परावर्तित होकर भी पढ़ा जा सकता है। डिकोडर तीन चौकोर ढूँढ़ता है, तय करता है कि उनमें से कौन-सा बाक़ी दोनों के बीच वाले कोने पर बैठा है - वही ऊपर-बाएँ है - और वहीं से पूरे ग्रिड की दिशा तय कर लेता है। चार चौकोरों वाला चिह्न चार अलग तरीक़ों से डिकोड होता और उनमें से चुनने का उसके पास कोई ज़रिया नहीं होता।

ख़ाली कोना बहुत देर ख़ाली नहीं रहता। संस्करण 2 से ऊपर नीचे-दाएँ का क्षेत्र उसके बजाय एक अलाइनमेंट पैटर्न लिए चलता है, जो 5 × 5 का छोटा चौकोर है और अलग काम करता है, जिसका ज़िक्र नीचे है। जो पाठक देखता है कि किसी बड़े QR कोड के कोने में चौथा, छोटा चौकोर है, वह अलाइनमेंट पैटर्न देख रहा है, सिकुड़ा हुआ फ़ाइंडर नहीं।

यही तर्क बताता है कि Micro QR Code में सिर्फ़ एक फ़ाइंडर पैटर्न क्यों है। वह कहीं छोटा चिह्न है, कभी 17 × 17 मॉड्यूल से बड़ा नहीं, और तीन 8 × 8 खंड उसका ज़्यादातर हिस्सा खा जाते। सौदा यह है कि वह चिह्न कैमरे के सामने ज़्यादा सीधा रखना पड़ता है, जो छोटे पुर्ज़ों पर निशान के लिए मंज़ूर है और पोस्टर पर लगे कोड के लिए नहीं।

वह 1:1:3:1:1 अनुपात जो QR कोड को ढूँढ़ने लायक़ बनाता है

फ़ाइंडर पैटर्न को उसके बीच से काटती स्कैन रेखा गहरे और हल्के हिस्से 1:1:3:1:1 के अनुपात में बनाती है, और डिकोडर असल में यही अनुपात खोजता है। वह चौकोर नहीं ढूँढ़ता। वह कैमरे की तस्वीर को काले-सफ़ेद में बदलता है, फिर पिक्सेलों की हर पंक्ति पर चलते हुए नापता है कि एक ही रंग का हर हिस्सा कितना लंबा चलता है, और जहाँ भी लगातार पाँच हिस्से उस अनुपात में उतरें, वहाँ निशान लगा देता है।

यह अनुपात इसलिए चुना गया कि वह जनरेटर और कैमरे के बीच कोड के साथ होने वाली हर चीज़ झेल लेता है:

  • पैमाना। अनुपात की कोई इकाई नहीं होती। वही 1:1:3:1:1 तब भी दिखता है जब एक मॉड्यूल तीन पिक्सेल चौड़ा हो और तब भी जब तीस, इसलिए डिकोडर को छपाई आकार या कैमरे की दूरी पहले से जानने की ज़रूरत नहीं।
  • घुमाव। पैटर्न संकेंद्रित है, इसलिए बीच से गुज़रती रेखा किसी भी कोण पर वही लंबाइयाँ देती है। इसीलिए QR कोड की कोई ऊपर वाली दिशा नहीं होती, और इसीलिए लेआउट में उसे घुमाना सुरक्षित है।
  • आधे-अधूरे दृश्य। फ़ाइंडर के ऊपरी और निचले सिरों के पास की पंक्तियाँ अलग अनुपात बनाती हैं, इसलिए झूठे मिलानों को फेंकना सस्ता है। डिकोडर को उसी जगह किसी स्तंभ में भी वही अनुपात पक्का करना होता है, बस।
  • आम कलाकृति। 1:3:1 वाला केंद्र छपी सामग्री में असामान्य है। ऐसा गहरा हिस्सा जो अपने दोनों तरफ़ के हिस्सों से तीन गुना चौड़ा हो, दोनों दिशाओं में, एक ही बिंदु पर - यह इतना दुर्लभ है कि तस्वीरें और टाइपोग्राफ़ी उसे अक्सर नहीं छेड़तीं।

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

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

QR कोड में और क्या-क्या डेटा नहीं, ढाँचा है

QR कोड में पाँच चीज़ें पेलोड से नहीं, मानक से तय होती हैं: फ़ाइंडर पैटर्न और उनके सेपरेटर, टाइमिंग पैटर्न, अलाइनमेंट पैटर्न, फ़ॉर्मैट जानकारी, और - संस्करण 7 तथा ऊपर - संस्करण जानकारी। इन सबको मिलकर फ़ंक्शन पैटर्न कहते हैं, और वे किसी दिए गए संस्करण के हर कोड में एक ही जगह बैठते हैं।

हिस्साआकारवह कहाँ हैवह क्या करता है
फ़ाइंडर पैटर्न7 × 7 मॉड्यूल, कुल तीनऊपर-बाएँ, ऊपर-दाएँ और नीचे-बाएँ कोनेचिह्न को ढूँढ़ता है और उसका घुमाव तय करता है
सेपरेटर1 मॉड्यूल चौड़ा, हर फ़ाइंडर के चारों ओरहर फ़ाइंडर पैटर्न और डेटा क्षेत्र के बीचफ़ाइंडर के बाहरी किनारे को पड़ोसी मॉड्यूलों के मुक़ाबले नापने लायक़ रखता है
टाइमिंग पैटर्नबारी-बारी वाले मॉड्यूलों की एक पंक्ति और एक स्तंभपंक्ति 6 और स्तंभ 6, फ़ाइंडरों के बीच चलते हुएडिकोडर को बताता है कि मॉड्यूल ग्रिड कहाँ पड़ता है, ताकि वह ख़ाने गिन सके
अलाइनमेंट पैटर्न5 × 5 मॉड्यूल, संस्करण 2 से ऊपरचिह्न में तय निर्देशांकों परतिरछे या घुमावदार कोड पर परिप्रेक्ष्य की टेढ़ाई सुधारता है
फ़ॉर्मैट जानकारी31 मॉड्यूल, दो प्रतियों मेंफ़ाइंडर पैटर्नों के बग़लएरर करेक्शन स्तर और मास्क पैटर्न दर्ज करती है
संस्करण जानकारी36 मॉड्यूल, संस्करण 7 से ऊपरऊपर-दाएँ और नीचे-बाएँ फ़ाइंडरों के बग़लचिह्न संस्करण बताती है ताकि डिकोडर को उसका अंदाज़ा न लगाना पड़े
जगहें और आकार ISO/IEC 18004 से हैं। इनमें से कोई क्षेत्र आपके URL का कोई हिस्सा नहीं लिए चलता, और इनमें से किसी की रक्षा वह एरर करेक्शन नहीं करता जो डेटा की करता है।

व्यावहारिक नतीजा साफ़-साफ़ कह देना चाहिए: QR कोड डेटा का ऐसा ग्रिड नहीं है जिस पर कुछ सजावटें हों। वह ढाँचे का ग्रिड है जिसकी ख़ाली जगहों में डेटा उड़ेला गया है, और छोटे कोडों पर ढाँचा ही ज़्यादातर तस्वीर है।

QR कोड का कितना हिस्सा आपका डेटा नहीं है

संस्करण 1 के QR कोड में 441 में से 233 मॉड्यूल - 52.8% - डेटा नहीं, फ़ंक्शन पैटर्न और फ़ॉर्मैट जानकारी हैं। सबसे छोटे QR कोड का आधे से ज़्यादा हिस्सा ख़ुद अपना ब्योरा देने में ख़र्च होता है। चिह्न बढ़ने के साथ यह हिस्सा घटता है, क्योंकि फ़ंक्शन पैटर्न मुश्किल से बढ़ते हैं जबकि डेटा क्षेत्र भुजा के वर्ग के हिसाब से बढ़ता है।

संस्करणहर तरफ़ मॉड्यूलकुल मॉड्यूलढाँचे के मॉड्यूलढाँचे का हिस्सा
12144123352.8%
22562526642.6%
32984127432.6%
4331,08928225.9%
6411,68129817.7%
7452,02545722.6%
10573,24948114.8%
15775,92968611.6%
20979,4097267.7%
4017731,3291,6815.4%
ISO/IEC 18004 में दी फ़ंक्शन पैटर्न जगहों से गिना गया और हर संस्करण की कुल कोडवर्ड गिनती से मिलाकर जाँचा गया, जो स्वतंत्र रूप से निकाली जाती है। दोनों सूची के हर संस्करण पर मेल खाते हैं।

आख़िरी कॉलम में नीचे तक पढ़िए तो एक पंक्ति चलन तोड़ती है। संस्करण 7 में ढाँचे का हिस्सा संस्करण 6 से ज़्यादा है - 17.7% के मुक़ाबले 22.6% - क्योंकि संस्करण 7 पर दो चीज़ें एक साथ आती हैं: संस्करण जानकारी शामिल हो जाती है, जो 36 मॉड्यूल लेती है, और अलाइनमेंट पैटर्नों की गिनती एक से छह पर चली जाती है। उसके बाद यह हिस्सा फिर घटने लगता है और दोबारा कभी नहीं बढ़ता।

यह तालिका उस सवाल का असली जवाब है जो लोग आम तौर पर किसी और तरह पूछते हैं। संस्करण 2 के कोड में छोटा URL और संस्करण 10 के कोड में लंबा URL डेटा के हिसाब से दस गुने के फ़र्क़ पर नहीं हैं, भले ही दोनों देखने में एक जैसी उलझन वाले QR कोड हों - छोटा कोड अपना 42.6% हिस्सा ढूँढ़े जाने लायक़ बने रहने में ख़र्च कर रहा है। QR कोड की क्षमता उसी गणित का डेटा वाला पक्ष संस्करण दर संस्करण लेती है।

अलाइनमेंट पैटर्न: वह चौथा चौकोर जो लोगों की नज़र में आता है

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

उनकी गिनती पेलोड से नहीं, संस्करण से तय होती है:

संस्करणहर तरफ़ मॉड्यूलअलाइनमेंट पैटर्न
121कोई नहीं
2 से 625 से 411
7 से 1345 से 696
14 से 2073 से 9713
21 से 27101 से 12522
28 से 34129 से 15333
35 से 40157 से 17746
अलाइनमेंट पैटर्न ऐसे ग्रिड पर बैठते हैं जिसकी दूरी मानक हर संस्करण के लिए तय करता है; जो तीन जगहें फ़ाइंडर पैटर्न से टकरातीं, वे छोड़ दी जाती हैं, और इसीलिए गिनतियाँ पूर्ण वर्गों के बजाय 6, 13, 22 हैं।

वे क्यों मायने रखते हैं, यह कोड के साथ बढ़ता है। संस्करण 2 के चिह्न पर डिकोडर सिर्फ़ तीन फ़ाइंडर पैटर्नों से ग्रिड बिठा सकता है, क्योंकि 25 मॉड्यूल का बहकाव छोटा है। संस्करण 25 के चिह्न पर वही अंदाज़ा 117 ख़ानों तक टिकना चाहिए, और कोनों की ज़रा-सी कोणीय ग़लती दूर वाली तरफ़ तक पूरे एक मॉड्यूल का बहकाव बन जाती है। अलाइनमेंट पैटर्न चिह्न के भीतर वे संदर्भ बिंदु हैं जो डिकोडर को पूरे कोड पर एक ही अंदाज़े पर भरोसा करने के बजाय ग्रिड को स्थानीय स्तर पर दोबारा बिठाने देते हैं।

यही वह व्यावहारिक वजह भी है कि घुमावदार सतह पर - बोतल, मग, केबल ड्रम - बड़ा कोड फिर भी पढ़ा जाता है। बात यह नहीं कि घुमाव कम है; बात यह है कि डिकोडर के पास भीतरी संदर्भ बिंदु हैं और वह उनके बीच ग्रिड दोबारा बिठा लेता है। जिस घुमावदार कोड का अलाइनमेंट पैटर्न ढका हो, वह यह सुविधा गँवा देता है, और ठीक उन कोणों पर हारने लगता है जिन पर लोग स्वाभाविक रूप से फ़ोन पकड़ते हैं।

टाइमिंग पैटर्न और फ़ॉर्मैट जानकारी

टाइमिंग पैटर्न गहरे और हल्के मॉड्यूलों की वह एक पंक्ति और एक स्तंभ है जो डिकोडर को बताती है कि मॉड्यूल ग्रिड कहाँ पड़ता है। एक ऊपर-बाएँ और ऊपर-दाएँ फ़ाइंडरों के बीच पंक्ति 6 पर चलती है, दूसरी ऊपर-बाएँ और नीचे-बाएँ फ़ाइंडरों के बीच स्तंभ 6 पर, और दोनों हमेशा गहरे मॉड्यूल से शुरू और गहरे मॉड्यूल पर ख़त्म होती हैं।

उनका काम गिनना है। चिह्न के कोने ढूँढ़ लेने के बाद डिकोडर बाहरी सीमा तो जानता है पर यह नहीं कि उसके भीतर कितने ख़ाने बैठे हैं - 25 मॉड्यूल का कोड और 29 मॉड्यूल का कोड बाहर से एक जैसे दिखते हैं। पंक्ति 6 पर बारी-बारी वाले हिस्से पर चलने से मॉड्यूल की दूरी सीधे मिल जाती है, जो पूरे चिह्न के लिए ग्रिड तय कर देती है।

फ़ॉर्मैट जानकारी फ़ाइंडर पैटर्नों के बग़ल की वह मॉड्यूल पट्टी है जो चिह्न का एरर करेक्शन स्तर और इस्तेमाल किया गया मास्क पैटर्न दर्ज करती है। वह 31 मॉड्यूल घेरती है, अपने ही BCH एरर-करेक्टिंग कोड से सुरक्षित है, और अलग-अलग जगहों पर दो बार लिखी जाती है, इसलिए जिस चिह्न की एक प्रति नष्ट हो गई हो वह भी अपना स्तर सही बता देता है।

यह अतिरिक्तता डिज़ाइन में जान-बूझकर रखी गई विषमता है, और ख़राब कोड की जाँच करते वक़्त इसे जानना काम का है। फ़ॉर्मैट जानकारी ढाँचे का इकलौता हिस्सा है जिसकी अपनी सुरक्षा है। फ़ाइंडर, टाइमिंग और अलाइनमेंट पैटर्नों की कोई नहीं - इसलिए नहीं कि वे भुला दिए गए, बल्कि इसलिए कि ऐसे डेटा की रक्षा करने का कोई मतलब नहीं जिसे कोई भी सुरक्षा लागू होने से पहले पढ़ा जाना ही होता है।

संस्करण जानकारी संस्करण 7 से ऊपर दिखती है: 36 मॉड्यूल, दो प्रतियों में, ऊपर-दाएँ और नीचे-बाएँ फ़ाइंडर पैटर्नों के बग़ल, जो चिह्न संस्करण साफ़-साफ़ बताती है। संस्करण 7 से नीचे डिकोडर मॉड्यूल गिनकर संस्करण का अंदाज़ा लगाता है, जो 21 से 41 मॉड्यूल के चिह्न पर काफ़ी भरोसेमंद है और 177 मॉड्यूल वाले पर कम।

जब फ़ाइंडर पैटर्न ढक जाता है तो क्या होता है

जिस QR कोड का फ़ाइंडर पैटर्न ढका हो वह आम तौर पर स्कैन ही नहीं होता, और नाकामी धीमी नहीं, ख़ामोश होती है। न आधी-अधूरी पढ़ाई होती है न कोई ग़लती का संदेश: डिकोडर यह नतीजा ही नहीं निकालता कि फ़्रेम में कोई चिह्न है, इसलिए फ़ोन ठीक वैसा ही बर्ताव करता है जैसा किसी सादी दीवार की ओर तानने पर करता।

इस नाकामी के बारे में जानने लायक़ सबसे काम की बात यह है कि एरर करेक्शन इसमें मदद नहीं कर सकता। रीड-सॉलोमन वापसी डेटा क्षेत्र के कोडवर्डों की मरम्मत करती है, और वह चिह्न मिल जाने, उसका संस्करण तय हो जाने और उसका मास्क हट जाने के बाद चलती है। फ़ाइंडर पैटर्न वहीं तक पहुँचने के लिए इस्तेमाल होता है, इसलिए वहाँ की ख़राबी प्रक्रिया में ग़लतियाँ नहीं जोड़ती, ख़ुद प्रक्रिया हटा देती है। स्तर M से H करने से हर मॉड्यूल छोटा होने के अलावा कुछ नहीं होता - तरीक़ा एरर करेक्शन स्तर L, M, Q और H में है।

कोना ढकने के तरीक़े, मोटे तौर पर इस क्रम में कि वे कितनी बार छपाई तक पहुँचते हैं:

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

जाँच सिद्धांत से जल्दी हो जाती है। छपे कोड के बीच को अपने अँगूठे से ढकिए और ज़्यादातर कोड फिर भी स्कैन होंगे; कोई भी एक कोना ढकिए और लगभग कोई नहीं होगा। वह फ़र्क़ ही एक प्रयोग में समाया यह पूरा पेज है।

QR कोड के कोनों को बिगाड़े बिना कैसे सजाएँ

कस्टम कोने आकार तब सुरक्षित हैं जब वे बीच से गुज़रती हर रेखा पर 1:1:3:1:1 अनुपात बचाए रखें, और तब असुरक्षित जब वे उसे बदल दें। पूरा नियम यही है, और इसी से पता चलता है कि कुछ सजाए गए कोड बेहतरीन क्यों पढ़े जाते हैं और कुछ कोशिश करने वाले आधे फ़ोनों पर क्यों हार जाते हैं।

इससे क्या चलता है और क्या नहीं:

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

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

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

QR कोड का ढाँचा आँख से कैसे पढ़ें

कोई भी बिना सॉफ़्टवेयर के चिह्न का संस्करण पहचान सकता है, उसका ढाँचा गिन सकता है और उसके कोने पक्के कर सकता है। नीचे की प्रक्रिया क़रीब पाँच मिनट लेती है और बिना किसी नोट के भेजे गए कोड को परखने का सबसे तेज़ तरीक़ा है।

  1. ऊपरी किनारे पर मॉड्यूल गिनिए. हाशिये को छोड़कर चिह्न की एक पूरी तरफ़ के ख़ाने गिनिए। संस्करण V के लिए संख्या हमेशा 4V + 17 होती है, इसलिए 21 यानी संस्करण 1, 25 यानी संस्करण 2, 33 यानी संस्करण 4, 57 यानी संस्करण 10।
  2. तीनों कोनों में 7 × 7 फ़ाइंडर जाँचिए. ऊपर-बाएँ, ऊपर-दाएँ और नीचे-बाएँ। हर एक में ठोस 3 × 3 केंद्र, साफ़ एक मॉड्यूल का छल्ला और बिना टूटा एक मॉड्यूल का गहरा छल्ला दिखना चाहिए, और भीतरी बग़लों पर सेपरेटर का एक साफ़ मॉड्यूल।
  3. टाइमिंग पैटर्न ढूँढ़िए. ऊपर-बाएँ कोने से सातवीं पंक्ति और सातवें स्तंभ पर, फ़ाइंडरों के बीच देखिए। वहाँ सख़्ती से बारी-बारी चलता गहरा-हल्का हिस्सा दिखना चाहिए जो गहरे से शुरू और गहरे पर ख़त्म हो। उसमें कोई टूट यानी टूटा हुआ कोड।
  4. अलाइनमेंट पैटर्न ढूँढ़िए. संस्करण 2 से नीचे-दाएँ के पास कम से कम एक 5 × 5 चौकोर होता है। संस्करण 7 और ऊपर में छह या ज़्यादा होते हैं, जो चिह्न में बराबर दूरी पर बँटे रहते हैं।
  5. पक्का कीजिए कि चौथा कोना फ़ाइंडर नहीं है. नीचे-दाएँ कोने में डेटा मॉड्यूल होने चाहिए, या किनारे से भीतर बैठा कोई अलाइनमेंट पैटर्न। चौथा 7 × 7 चौकोर होने का मतलब है कि तस्वीर कोई वैध QR कोड नहीं है।
  6. हाशिये को एक मॉड्यूल के मुक़ाबले नापिए. चिह्न के चारों ओर साफ़ जगह हर तरफ़ कम से कम चार मॉड्यूल होनी चाहिए। उसे पूरे कोड के मुक़ाबले आँकने के बजाय एक ख़ाने की चौड़ाई से तौलिए - देखिए क्वाइट ज़ोन
  7. फ़ाइल को वैलिडेटर से गुज़ारिए. QR कोड वैलिडेटर मॉड्यूल आकार, हर तरफ़ का हाशिया और कंट्रास्ट बताता है, और पक्का करता है कि चिह्न डिकोड होता है।

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

QR कोड के कोनों के साथ होने वाली आम ग़लतियाँ

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

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

अपना QR कोड बनाएँ

फ्री, बिना अकाउंट और बिना वॉटरमार्क। आकार चुनें, लोगो जोड़ें, कंट्रास्ट जाँचें और SVG, PDF, EPS या PNG में एक्सपोर्ट करें - एक स्टैटिक कोड, जिसके पीछे कोई सब्सक्रिप्शन नहीं।

QR कोड बनाएँ

Questions? Answered

उन्हें फ़ाइंडर पैटर्न कहते हैं। हर एक ऊपर-बाएँ, ऊपर-दाएँ और नीचे-बाएँ कोने में 7 × 7 मॉड्यूल का संकेंद्रित चौकोर है, और स्कैनर कुछ भी डिकोड करने से पहले उनसे कैमरे की तस्वीर में चिह्न ढूँढ़ता है और उसका घुमाव तय करता है। QR मानक, ISO/IEC 18004, उन्हें पोज़िशन डिटेक्शन पैटर्न कहता है।

तीन कोने चौकोर तय कर देते हैं और चिह्न को विषम भी रहने देते हैं, और यही विषमता डिकोडर को बताती है कि कोड किस दिशा में सीधा है। चौथा चौकोर चारों दिशाओं को एक जैसा बना देता। इसीलिए QR कोड उलटा, बग़ल से या बीच के किसी भी कोण पर पढ़ा जाता है।

नहीं। कोनों में फ़ाइंडर पैटर्न होते हैं, जिनके बिना स्कैनर कोड पहचान ही नहीं पाता, और एरर करेक्शन उनकी रक्षा नहीं करता। लोगो उसके बजाय बीच में रखिए, जहाँ डेटा क्षेत्र है और वापसी लगती है। बीच का लोगो जो क़रीब 20% क्षेत्र तक ढके, वह स्तर H पर भरोसे से वापस पाया जा सकता है।

वह अलाइनमेंट पैटर्न है - 5 × 5 मॉड्यूल का चौकोर जो डिकोडर को परिप्रेक्ष्य की टेढ़ाई सुधारने देता है, जब कोड तिरछे कोण से खींचा गया हो या घुमावदार सतह पर छपा हो। वह संस्करण 2 से ऊपर दिखता है। संस्करण 7 और ऊपर में छह या ज़्यादा होते हैं, जो चिह्न भर में बँटे रहते हैं।

क्योंकि पहचान डिकोडिंग से पहले होती है। स्कैनर तस्वीर में गहरे और हल्के हिस्सों के 1:1:3:1:1 अनुपात वाले तीन फ़ाइंडर पैटर्न ढूँढ़ता है, और एक के ग़ायब होने पर वह यह नतीजा ही नहीं निकालता कि फ़्रेम में कोई कोड है। कुछ भी डिकोड नहीं होता, इसलिए एरर करेक्शन के पास मरम्मत करने को कुछ होता ही नहीं।

आम तौर पर हाँ, बशर्ते हर फ़ाइंडर के बीच से गुज़रती रेखा पर 1:1:3:1:1 अनुपात बचा रहे। बाहरी छल्ले को गोल करना आम तौर पर सुरक्षित है; हल्के छल्ले को किसी रंग से भरना, या छल्लों के मुक़ाबले 3 × 3 केंद्र का आकार बदलना, नहीं। तय करने से पहले सजाया कोड आख़िरी आकार में छापिए और फ़ोन के अपने कैमरे से जाँचिए।

छोटे कोडों पर लोगों की उम्मीद से कम। संस्करण 1 का चिह्न अपने 441 में से 233 मॉड्यूल - 52.8% - ढाँचे पर ख़र्च करता है, जिससे डेटा और एरर करेक्शन दोनों के लिए 208 बचते हैं। संस्करण 10 तक ढाँचे का हिस्सा 14.8% है, और संस्करण 40 पर 5.4%। इसीलिए क्षमता आकार के साथ इतनी तेज़ी से चढ़ती है।

वह गहरे और हल्के मॉड्यूलों की वह एक पंक्ति और एक स्तंभ है जो फ़ाइंडर पैटर्नों के बीच, पंक्ति 6 और स्तंभ 6 पर चलती है। वह डिकोडर को बताती है कि मॉड्यूल ग्रिड कहाँ पड़ता है, ताकि चिह्न की सीमा ढूँढ़ लेने के बाद वह ख़ाने ठीक-ठीक गिन सके। वह हमेशा गहरे मॉड्यूल से शुरू और गहरे मॉड्यूल पर ख़त्म होती है।

हाँ। तीनों 7 × 7 मॉड्यूल के हैं और उनका संकेंद्रित ढाँचा एक जैसा है, संस्करण 1 से 40 तक हर चिह्न संस्करण पर, चाहे कोड कुछ भी एनकोड करता हो। सिर्फ़ उनके बीच की दूरी बदलती है, क्योंकि चिह्न उनके चारों ओर बढ़ता है। Micro QR Code अपवाद है: वह अलग क़िस्म का चिह्न है जिसमें एक ही फ़ाइंडर पैटर्न होता है।

आगे पढ़ते रहें

ऐसे पेज जो यहीं से आगे बढ़ते हैं - वही संदर्भ, वैसा ही कोड, या अगला फ़ैसला जो लेना है।

QR कोड के आकार

आकारों की पूरी सूची - मॉड्यूल, आँखें और फ़्रेम - और गोल, त्रिकोण, षट्कोण व चौकोर कोड के पीछे के समझौते।

क्रिएटिव QR कोड

ऐसे QR कोड के लिए डिज़ाइन दिशाएँ और असली उदाहरण, जो जान-बूझकर बने लगें और स्कैन की भरोसेमंदी भी न छोड़ें।

गोल QR कोड असल में भेस बदला चौकोर QR कोड है

आकार वाले कोड स्कैन होते हैं, क्योंकि आकार डेटा को छूता ही नहीं। आकार असल में चौड़ाई ख़र्च कराता है: त्रिकोण कोड का आधार उसके भीतर के मैट्रिक्स से क़रीब 2.6 गुना चाहिए।

Pinterest QR कोड

किसी छपे पन्ने से एक ही स्कैन में कोई Pinterest बोर्ड, प्रोफ़ाइल या Pin खोलिए।

QR कोड कंट्रास्ट चेकर

किसी रंग जोड़ी को वैसे ही आँकें जैसे स्कैनर आँकता है: कंट्रास्ट अनुपात, कैमरे को दिखने वाला ल्यूमिनेंस अंतर, और क्या वह छपाई झेल पाएगी।

QR कोड की क्षमता: चिह्न संस्करण और एनकोडिंग मोड के हिसाब से कितना डेटा समाता है

चारों एनकोडिंग मोड में हर QR कोड संस्करण की क्षमता, वही URL बड़े अक्षरों में छोटे कोड में क्यों समा जाता है, और पेलोड की लंबाई कैसे तय करती है कि कोड कम से कम कितने आकार में छापा जा सकता है।

KoloQR ही क्यों?

  • वेबसाइट, मेन्यू, Wi-Fi, PDF और विज़िटिंग कार्ड के लिए QR कोड बनाएँ
  • रंग, लोगो और अनोखे आकार अपने हिसाब से चुनें
  • हाई-क्वालिटी PNG और SVG फ़ाइलें डाउनलोड करें
  • प्रिंट और डिजिटल, दोनों के लिए बना
QR कोड बनाएँ
एक सादा काला QR कोड और उसके बगल में वही कोड, ब्रांड रंगों के साथ गोल आकार में नए सिरे से डिज़ाइन किया हुआ