दररोज QR कोड स्कॅन करायचा पण त्या तीन चौरसांबद्दल कधी विचारच करायचा नाही. मी अनेक वर्षे त्याच गटात होतो. पण खरं सांगायचं तर ते काही खरोखरच चतुर अभियांत्रिकी कार्य करत आहेत — आणि ते नक्की तीन का आहेत, चार का नाहीत, हे तुम्हाला वाटेल त्यापेक्षा जास्त रंजक आहे.
त्यांना एक नाव आहे: फाइंडर पॅटर्न
तीन मोठे चौरस अधिकृतपणे पोझिशन डिटेक्शन पॅटर्न म्हणून ओळखले जातात, जरी जवळपास सर्वजण त्यांना फाइंडर पॅटर्न [4] म्हणतात. ते प्रत्येक QR कोडच्या वरच्या-डाव्या, वरच्या-उजव्या आणि खालच्या-डाव्या कोपऱ्यात असतात — खालच्या-उजव्या कोपऱ्यात कधीच नाही. ही असममितता हेतुपुरस्सर आहे, आणि तेच मुख्य कारण आहे.
प्रत्येक फाइंडर पॅटर्न तीन एकमेकांत असलेल्या चौरसांनी बनलेला असतो: एक घन काळा बाह्य चौरस, मध्यभागी एक पांढरी रिंग, आणि केंद्रात एक छोटा काळा चौरस [6]. जेव्हा एखादा स्कॅनर या पॅटर्नमधून कोणत्याही क्षैतिज किंवा उभ्या रेषेवर वाचतो, तेव्हा त्याला गडद आणि हलक्या मॉड्यूल्सचा एक अतिशय विशिष्ट क्रम दिसतो: 1:1:3:1:1 — एक काळा, एक पांढरा, तीन काळे, एक पांढरा, एक काळा [6].
हे गुणोत्तर QR कोड किती मोठा किंवा छोटा आहे याची पर्वा न करता, कोणत्या कोनातून स्कॅन केला जातो याची पर्वा न करता कायम असते. ती सातत्यताच कॅमेऱ्याला मिलिसेकंदांत पॅटर्नवर लॉक करू देते.
1:1:3:1:1 विशेषतः का?
QR कोडचा शोध 1994 मध्ये जपानी कंपनी Denso Wave मधील Masahiro Hara यांनी लावला, मूळतः असेंब्ली लाइन्सवर कार पार्ट्स ट्रॅक करण्यासाठी [2]. Hara च्या टीमला असे एक पॅटर्न हवे होते जे स्कॅनर छापील मजकूर, लोगो किंवा पॅकेजिंग ग्राफिक्सने वेढलेले असताना देखील त्वरित शोधू शकेल. आव्हान हे होते: तुम्ही निवडलेला कोणताही पॅटर्न आसपासच्या डिझाइनमध्ये चुकून दिसू शकतो, ज्यामुळे स्कॅनर चुकीची गोष्ट कोड बाउंड्री म्हणून वाचेल.
त्यांचे समाधान पद्धतशीर होते. सामान्य छापील सामग्रीत कुठेही दिसण्याची शक्यता सर्वात कमी असेल असे पॅटर्न शोधा.
त्यांनी खरोखरच खऱ्या फ्लायर्स, मासिके आणि कार्डबोर्ड बॉक्सेसचे सर्वेक्षण केले — सर्वकाही काळ्या-पांढऱ्या मॉड्यूल रेशोपर्यंत कमी केले [1]. सखोल विश्लेषणानंतर, 1:1:3:1:1 क्रम असा एक निघाला जो छापील सामग्रीत जवळपास कधीच नैसर्गिकरित्या दिसत नाही. म्हणून त्यांनी संपूर्ण फाइंडर पॅटर्न त्या रेशोभोवती तयार केला.
पॅटर्नचे भौतिक स्वरूप — एकमेकांत गुंफलेले आलटून-पालटून चौरस — Go बोर्डपासून प्रेरित होते. काळ्या आणि पांढऱ्या दगडांच्या विरोधाभासाने Hara ला एकमेकांत गुंफलेल्या आलटून-पालटून मॉड्यूल्ससह काम करण्याची दृश्य कल्पना दिली [1]. छोटी गोष्ट, पण मला आवडते की एका बोर्ड गेमने इंटरनेटवरील सर्वाधिक स्कॅन केल्या जाणाऱ्या प्रतिमांपैकी एकावर प्रभाव टाकला.
तीन कोपरे — चार का नाही?
हा अधिक रंजक भाग आहे.
तीन बिंदू एक अद्वितीय अभिमुखता परिभाषित करतात. चार समान बिंदू करत नाहीत.
जर तुमच्याकडे L-आकारात मांडलेले तीन फाइंडर पॅटर्न असतील (वरचे-डावे, वरचे-उजवे, खालचे-डावे), तर स्कॅनर तो L पाहतो आणि लगेच जाणतो: हे कोणत्या दिशेने “वर” आहे, हे वरचे-डावे अँकर आहे, ग्रिड कशी उन्मुख आहे [3][5]. QR कोड उलटा असला, 45 अंशांनी फिरवलेला असला किंवा बाटलीच्या बाजूला छापलेला असला तरी काही फरक पडत नाही — L-आकार निःसंदिग्धपणे अभिमुखता निराकरण करतो.
चार समान मोठे चौरस एक समस्या असतील. स्कॅनरला चार संभाव्य “बरोबर” अभिमुखता दिसतील आणि कोणती खरोखर बरोबर आहे हे ठरवण्याचा कोणताही मार्ग नसेल [5]. अस्पष्टता सोडवण्यासाठी कोडमध्ये इतरत्र अतिरिक्त माहिती हवी असेल, जे शोध पॅटर्न असण्याच्या उद्देशालाच नाकारते.
खालचा-उजवा कोपरा त्याऐवजी मोठ्या QR कोडमध्ये (आवृत्ती 2 आणि त्यावरील) एक लहान अलाइनमेंट पॅटर्न मिळवतो — एक 5×5 एकमेकांत गुंफलेला चौरस ज्याचे कार्य वेगळे आहे: जेव्हा कोड वक्र पृष्ठभागावर असतो किंवा तीव्र कोनातून वाचला जातो तेव्हा दृष्टीकोन विकृती सुधारणे [6]. ते मदत करते पण ते फाइंडर पॅटर्न नाही. असममितता हेच वैशिष्ट्य आहे.
कोड संरचनेचा उर्वरित भाग
फाइंडर पॅटर्नच्या पलीकडे, QR कोडमध्ये इतर अनेक कार्यात्मक क्षेत्रे आहेत [4]:
- टायमिंग पॅटर्न: फाइंडर पॅटर्नच्या दरम्यान क्षैतिज आणि उभ्या दिशेने धावणाऱ्या आलटून-पालटून काळ्या-पांढऱ्या रेषा — त्या एक रूलर म्हणून कार्य करतात, स्कॅनरला मॉड्यूल आकार मोजण्यास आणि डेटा ग्रिड अचूकपणे मांडण्यास देतात
- फॉर्मॅट माहिती: फाइंडर पॅटर्नजवळील एक पट्टी जी त्रुटी सुधारणा स्तर आणि कोणता डेटा मास्क पॅटर्न लागू केला होता हे एन्कोड करते — लवचिकतेसाठी दोन ठिकाणी डुप्लिकेट केले जाते
- शांत झोन: संपूर्ण कोडभोवती रिकामी पांढरी सीमा — ISO 18004 [8] नुसार किमान 4 मॉड्यूल रुंद. हे काढून टाका आणि स्कॅनर जवळपासच्या ग्राफिक्सला कोडचा भाग म्हणून गोंधळात टाकायला लागतात
- आवृत्ती माहिती: आवृत्ती 7 आणि त्यावरील कोडसाठी, अतिरिक्त ब्लॉक्स आवृत्ती क्रमांक (1–40) साठवतात, स्कॅनरला किती पंक्ती आणि स्तंभ अपेक्षित आहेत हे सांगतात [4]
आवृत्त्या 1 (21×21 मॉड्यूल, ~25 अल्फान्यूमेरिक वर्ण) पासून 40 (177×177 मॉड्यूल, ~4,000+ वर्ण) पर्यंत जातात. आवृत्ती वाढली की अलाइनमेंट पॅटर्नची संख्याही वाढते.
त्रुटी सुधारणा: खराब झालेले QR कोड का काम करतात
तुम्ही नक्की पाहिले असेल — कंपनीचा लोगो मध्यभागी छापलेला असूनही QR कोड छान स्कॅन होतो. ते रीड-सोलोमन त्रुटी सुधारणा आहे, योगायोग नाही [7].
कोड वास्तविक पेलोडमधून मोजलेला अतिरिक्त डेटा साठवतो. जोपर्यंत मॉड्यूल्सचा पुरेसा भाग टिकतो, स्कॅनर गणितीयदृष्ट्या मूळ डेटा पुन्हा तयार करू शकतो — जरी उर्वरित मॉड्यूल्स यादृच्छिकपणे विखुरलेले असले तरी. चार त्रुटी सुधारणा स्तर आहेत:
| स्तर | कमाल पुनर्प्राप्त करण्यायोग्य डेटा |
|---|---|
| L | 7% |
| M | 15% |
| Q | 25% |
| H | 30% |
स्तर H मुळेच तुम्ही QR कोडच्या सुमारे 30% पर्यंत लोगोने झाकू शकता आणि तरीही तो स्कॅन करू शकता [7]. डिझायनर हे हेतुपुरस्सर वापरतात — कोड स्तर H वर तयार करा, नंतर केंद्रावर कलाकृती ठेवा. फाइंडर पॅटर्न अखंड राहिल्यास हे सहसा कार्य करते.
आणि ती गोष्ट आहे — फाइंडर पॅटर्न स्वतःवर त्रुटी सुधारणा लागू होत नाही. ते संरचनात्मक आहेत. जर तिन्ही गंभीरपणे खराब झाले किंवा अस्पष्ट झाले, तर कितीही Reed-Solomon गणित स्कॅन पुनर्प्राप्त करणार नाही. स्कॅनरला सुरुवातीला कोडच सापडणार नाही.
तीन चौरस सजावट नाहीत. ते इतर सर्व गोष्टींचा प्रवेश बिंदू आहेत.
समाप्त
स्रोत
- QR कोड विकास कथा — DENSO WAVE
- QR कोडचा इतिहास — QRcode.com / DENSO WAVE
- QR कोड — Wikipedia
- QR कोड संरचना काय आहे आणि ते कसे कार्य करते? — Scanova
- QR कोड रचना स्पष्ट केली — QR Code Kit
- QR कोड रचना: फाइंडर पॅटर्न आणि त्रुटी सुधारणा — FileFusion
- QR कोड त्रुटी सुधारणा स्पष्ट केली — Scanova
- QR कोड शांत झोन काय आहे आणि ते का महत्त्वाचे आहे? — QR Code Generator
