Co maskování dělá
Po umístění datových bitů a bitů opravy chyb mohou v některých oblastech vzniknout dlouhé řady jedné barvy nebo tvary podobné vyhledávacím vzorům. Maskování to řeší tak, že převrací moduly všude, kde platí jednoduchý vzorec, čímž se tmavé a světlé rozloží rovnoměrněji.
Maska se týká jen oblasti dat a opravy chyb. Vyhledávací, časovací a zarovnávací vzory, informace o formátu a verzi a tmavý modul se nikdy nemaskují.
Osm masek
Masky jsou číslovány od 000 do 111. Každá je definována podmínkou pro řádek i a sloupec j modulu; kde podmínka platí, modul se převrátí. Čtečka zjistí číslo masky z informace o formátu a stejnou masku použije znovu, aby ji odstranila.
- 000: (i + j) mod 2 = 0, šachovnice
- 001: i mod 2 = 0, střídavé řádky
- 010: j mod 3 = 0, každý třetí sloupec
- 011: (i + j) mod 3 = 0, diagonální pruhy
- 100 až 111: složitější kombinace řádků, sloupců a součinů
Jak se vybírá nejlepší maska
Kodér vyzkouší všech osm masek a každý výsledek ohodnotí čtyřmi penalizačními pravidly. Použije se maska s nejnižší celkovou penalizací, čímž je hotový kód pro fotoaparáty snáze čitelný.
Někteří generátory úplné vyhodnocení přeskočí a použijí pevnou masku, což stále dává platný kód, ale může být o něco hůř naskenovatelný. Micro QR kódy používají menší sadu čtyř masek s vlastním pravidlem hodnocení.
- Pravidlo 1: dlouhé řady stejné barvy v řádku nebo sloupci
- Pravidlo 2: bloky 2 × 2 jedné barvy
- Pravidlo 3: vzory připomínající poměr vyhledávacího vzoru 1:1:3:1:1
- Pravidlo 4: celková nevyváženost tmavých a světlých modulů