मास्किंग क्या करती है
डेटा और एरर करेक्शन बिट रखने के बाद, कुछ क्षेत्रों में एक ही रंग की लंबी कतारें या फ़ाइंडर पैटर्न जैसी दिखने वाली आकृतियाँ बन सकती हैं। मास्किंग इसे यों ठीक करती है कि जहाँ भी कोई सरल सूत्र सही बैठे वहाँ मॉड्यूल पलट देती है, जिससे गहरा और हल्का ज़्यादा बराबरी से फैल जाता है।
मास्क सिर्फ़ डेटा और एरर करेक्शन वाले क्षेत्र पर लगता है। फ़ाइंडर, टाइमिंग और अलाइनमेंट पैटर्न, फ़ॉर्मैट और वर्शन इन्फ़ॉर्मेशन, और डार्क मॉड्यूल पर कभी मास्क नहीं लगता।
आठ मास्क
मास्क 000 से 111 तक गिने जाते हैं। हर एक मॉड्यूल की पंक्ति i और स्तंभ j पर एक शर्त से परिभाषित होता है; जहाँ शर्त पूरी होती है, वह मॉड्यूल पलट दिया जाता है। रीडर मास्क की संख्या फ़ॉर्मैट इन्फ़ॉर्मेशन से जानता है और उसे हटाने के लिए वही मास्क दोबारा लगाता है।
- 000: (i + j) mod 2 = 0, शतरंज जैसा पैटर्न
- 001: i mod 2 = 0, बारी-बारी से पंक्तियाँ
- 010: j mod 3 = 0, हर तीसरा स्तंभ
- 011: (i + j) mod 3 = 0, तिरछी धारियाँ
- 100 से 111: पंक्तियों, स्तंभों और गुणनफलों के ज़्यादा जटिल संयोजन
सबसे अच्छा मास्क कैसे चुना जाता है
एन्कोडर आठों मास्क आज़माता है और हर नतीजे को चार पेनल्टी नियमों से आँकता है। जिस मास्क की कुल पेनल्टी सबसे कम हो, वही इस्तेमाल होता है, जिससे तैयार कोड को कैमरे आसानी से पढ़ पाते हैं।
कुछ जेनरेटर पूरा मूल्यांकन छोड़कर एक तय मास्क इस्तेमाल करते हैं, जो फिर भी वैध कोड बनाता है पर स्कैन करने में थोड़ा मुश्किल हो सकता है। Micro QR कोड चार मास्क के छोटे सेट और अपने स्कोरिंग नियम इस्तेमाल करते हैं।
- नियम 1: किसी पंक्ति या स्तंभ में एक ही रंग की लंबी कतारें
- नियम 2: एक रंग के 2 × 2 ब्लॉक
- नियम 3: 1:1:3:1:1 फ़ाइंडर अनुपात से मिलते-जुलते पैटर्न
- नियम 4: गहरे और हल्के मॉड्यूल के बीच कुल असंतुलन