মাস্কিং কী করে
ডেটা ও এরর কারেকশন বিট বসানোর পর কিছু জায়গায় একই রঙের লম্বা সারি বা ফাইন্ডার প্যাটার্নের মতো দেখতে আকার তৈরি হতে পারে। একটি সরল সূত্র সত্য হলেই মডিউল উল্টে দিয়ে মাস্কিং এটি ঠিক করে, ফলে গাঢ় ও হালকা আরও সমানভাবে ছড়িয়ে পড়ে।
মাস্ক শুধু ডেটা ও এরর কারেকশন অংশে প্রযোজ্য। ফাইন্ডার, টাইমিং ও অ্যালাইনমেন্ট প্যাটার্ন, ফরম্যাট ও ভার্সন ইনফরমেশন এবং ডার্ক মডিউলে কখনো মাস্ক করা হয় না।
আটটি মাস্ক
মাস্কগুলোর নম্বর 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 কোড চারটির ছোট একটি মাস্ক-সেট ও নিজস্ব স্কোরিং নিয়ম ব্যবহার করে।
- নিয়ম ১: একটি সারি বা কলামে একই রঙের লম্বা ধারা
- নিয়ম ২: এক রঙের ২ × ২ ব্লক
- নিয়ম ৩: ১:১:৩:১:১ ফাইন্ডার অনুপাতের মতো প্যাটার্ন
- নিয়ম ৪: গাঢ় ও হালকা মডিউলের সামগ্রিক ভারসাম্যহীনতা