Hvad maskering gør
Når data- og fejlrettelsesbittene er placeret, kan nogle områder ende med lange forløb af én farve eller former, der ligner søgemønstre. Maskering afhjælper det ved at vende moduler, hvor en simpel formel er opfyldt, hvilket fordeler mørkt og lyst mere jævnt.
Masken gælder kun for data- og fejlrettelsesområdet. Søge-, timing- og justeringsmønstre, format- og versionsoplysninger og det mørke modul maskeres aldrig.
De otte masker
Masker nummereres fra 000 til 111. Hver er defineret ved en betingelse for rækken i og kolonnen j i et modul; hvor betingelsen er opfyldt, vendes det modul. En læser får maskens nummer fra formatoplysningerne og anvender den samme maske igen for at fortryde den.
- 000: (i + j) mod 2 = 0, et skakternet mønster
- 001: i mod 2 = 0, skiftende rækker
- 010: j mod 3 = 0, hver tredje kolonne
- 011: (i + j) mod 3 = 0, diagonale striber
- 100 til 111: mere komplekse kombinationer af rækker, kolonner og produkter
Sådan vælges den bedste maske
Koderen prøver alle otte masker og giver hvert resultat en score efter fire strafregler. Den maske med den laveste samlede straf bruges, hvilket gør den færdige kode lettere for kameraer at læse.
Nogle generatorer springer den fulde vurdering over og bruger en fast maske, hvilket stadig giver en gyldig kode, men den kan være en anelse sværere at scanne. Micro QR-koder bruger et mindre sæt på fire masker med deres egen scoringsregel.
- Regel 1: lange forløb af samme farve i en række eller kolonne
- Regel 2: blokke på 2 × 2 af én farve
- Regel 3: mønstre, der ligner søgemønstrets forhold 1:1:3:1:1
- Regel 4: samlet skævhed mellem mørke og lyse moduler