Ce que fait le masquage
Une fois les bits de données et de correction d’erreur placés, certaines zones peuvent comporter de longues suites d’une même couleur ou des formes qui ressemblent à des motifs de repérage. Le masquage y remédie en inversant les modules partout où une formule simple est vraie, ce qui répartit plus uniformément le sombre et le clair.
Le masque ne s’applique qu’à la zone de données et de correction d’erreur. Les motifs de repérage, de synchronisation et d’alignement, les informations de format et de version, ainsi que le module sombre, ne sont jamais masqués.
Les huit masques
Les masques sont numérotés de 000 à 111. Chacun est défini par une condition sur la ligne i et la colonne j d’un module ; là où la condition est vraie, le module est inversé. Un lecteur apprend le numéro du masque grâce aux informations de format et applique le même masque une seconde fois pour l’annuler.
- 000 : (i + j) mod 2 = 0, un damier
- 001 : i mod 2 = 0, lignes alternées
- 010 : j mod 3 = 0, une colonne sur trois
- 011 : (i + j) mod 3 = 0, rayures diagonales
- 100 à 111 : combinaisons plus complexes de lignes, de colonnes et de produits
Comment le meilleur masque est choisi
L’encodeur essaie les huit masques et note chaque résultat selon quatre règles de pénalité. Le masque dont la pénalité totale est la plus basse est retenu, ce qui rend le code terminé plus facile à lire pour les appareils photo.
Certains générateurs sautent l’évaluation complète et utilisent un masque fixe, ce qui produit toujours un code valide mais peut-être un peu plus difficile à scanner. Les Micro QR codes utilisent un ensemble plus réduit de quatre masques avec leur propre règle de notation.
- Règle 1 : longues suites de la même couleur dans une ligne ou une colonne
- Règle 2 : blocs de 2 × 2 d’une même couleur
- Règle 3 : motifs ressemblant au rapport 1:1:3:1:1 des motifs de repérage
- Règle 4 : déséquilibre global entre modules sombres et clairs