ماسکگذاری چه میکند
پس از قرار گرفتن بیتهای داده و تصحیح خطا، بعضی نواحی ممکن است رشتههای بلند از یک رنگ یا شکلهایی شبیه الگوی یاب داشته باشند. ماسکگذاری این را با وارونه کردن ماژولها در هر جا که یک فرمول ساده برقرار باشد رفع میکند و تیره و روشن را یکنواختتر پخش میکند.
ماسک فقط روی ناحیه داده و تصحیح خطا اعمال میشود. الگوهای یاب، زمانبندی و همترازی، اطلاعات قالب و نسخه و ماژول تیره هرگز ماسک نمیشوند.
هشت ماسک
ماسکها از 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 مجموعه کوچکتری از چهار ماسک و قاعده امتیازدهی خاص خود را دارند.
- قاعده ۱: رشتههای بلند از یک رنگ در یک سطر یا ستون
- قاعده ۲: بلوکهای ۲ × ۲ از یک رنگ
- قاعده ۳: الگوهایی که به نسبت ۱:۱:۳:۱:۱ الگوی یاب شبیهاند
- قاعده ۴: عدم تعادل کلی بین ماژولهای تیره و روشن