Che cosa fa la mascheratura
Dopo che i bit di dati e di correzione degli errori sono stati posizionati, alcune aree possono ritrovarsi con lunghe sequenze dello stesso colore o con forme simili ai pattern di ricerca. La mascheratura rimedia invertendo i moduli dove una semplice formula è vera, il che distribuisce scuro e chiaro in modo più uniforme.
La maschera si applica solo all'area dei dati e della correzione degli errori. I pattern di ricerca, di temporizzazione e di allineamento, le informazioni di formato e di versione e il modulo scuro non vengono mai mascherati.
Le otto maschere
Le maschere sono numerate da 000 a 111. Ognuna è definita da una condizione sulla riga i e sulla colonna j di un modulo; dove la condizione è vera, quel modulo viene invertito. Un lettore ricava il numero della maschera dalle informazioni di formato e applica di nuovo la stessa maschera per annullarla.
- 000: (i + j) mod 2 = 0, una scacchiera
- 001: i mod 2 = 0, righe alternate
- 010: j mod 3 = 0, una colonna ogni tre
- 011: (i + j) mod 3 = 0, strisce diagonali
- Da 100 a 111: combinazioni più complesse di righe, colonne e prodotti
Come si sceglie la maschera migliore
Il codificatore prova tutte e otto le maschere e valuta ogni risultato con quattro regole di penalità. Si usa la maschera con la penalità totale più bassa, il che rende il codice finito più facile da leggere per le fotocamere.
Alcuni generatori saltano la valutazione completa e usano una maschera fissa, che dà comunque un codice valido ma magari un po' più difficile da scansionare. I Micro QR usano un insieme più piccolo di quattro maschere con una regola di punteggio propria.
- Regola 1: lunghe sequenze dello stesso colore in una riga o colonna
- Regola 2: blocchi di 2 × 2 dello stesso colore
- Regola 3: pattern che somigliano al rapporto 1:1:3:1:1 dei pattern di ricerca
- Regola 4: squilibrio complessivo tra moduli scuri e chiari