Vad maskning gör
När data- och felkorrigeringsbitarna har placerats kan vissa områden få långa sekvenser av samma färg eller former som liknar sökmönster. Maskningen åtgärdar det genom att vända moduler överallt där en enkel formel är sann, vilket fördelar mörkt och ljust jämnare.
Masken gäller bara data- och felkorrigeringsområdet. Sök-, synkroniserings- och justeringsmönster, format- och versionsinformationen samt den mörka modulen maskas aldrig.
De åtta maskerna
Maskerna är numrerade från 000 till 111. Var och en definieras av ett villkor på modulens rad i och kolumn j; där villkoret gäller vänds den modulen. En läsare får maskens nummer från formatinformationen och tillämpar samma mask igen för att ta bort den.
- 000: (i + j) mod 2 = 0, ett schackbrädemönster
- 001: i mod 2 = 0, varannan rad
- 010: j mod 3 = 0, var tredje kolumn
- 011: (i + j) mod 3 = 0, diagonala ränder
- 100 till 111: mer komplexa kombinationer av rader, kolumner och produkter
Hur den bästa masken väljs
Kodaren prövar alla åtta masker och poängsätter varje resultat med fyra straffregler. Masken med lägst sammanlagt straff används, vilket gör den färdiga koden lättare för kameror att läsa.
Vissa generatorer hoppar över den fullständiga utvärderingen och använder en fast mask, vilket fortfarande ger en giltig kod men kan göra den något svårare att skanna. Micro QR-koder använder en mindre uppsättning på fyra masker med en egen poängregel.
- Regel 1: långa sekvenser av samma färg i en rad eller kolumn
- Regel 2: block på 2 × 2 av en färg
- Regel 3: mönster som liknar sökmönstrets förhållande 1:1:3:1:1
- Regel 4: total obalans mellan mörka och ljusa moduler