Motifs de masque : l'optimisation cachée dans chaque code QR
Les huit motifs de masque, le système de score de pénalité et comment l'encodeur sélectionne le masque optimal pour la lisibilité.
Motifs de masque : l'optimisation cachée dans chaque code QR
Chaque code QR applique l'un des huit motifs de masque à sa zone de données avant de finaliser le symbole. Le masquage est essentiel pour prévenir les motifs visuels problématiques qui perturberaient les scanners, et le processus de sélection implique un système ingénieux de score de pénalité.
Pourquoi le masquage est nécessaire
Sans masquage, les données codées pourraient créer de grands blocs de couleur uniforme, des motifs imitant les motifs de repérage ou de synchronisation, ou d'autres structures interférant avec un décodage fiable. Le masquage combine par XOR les modules de données avec un motif mathématique pour briser ces zones problématiques.
Les huit motifs de masque
Chaque masque est défini par une condition appliquée aux coordonnées du module (ligne i, colonne j) :
| Masque | Condition | Effet visuel |
|---|---|---|
| 000 | (i + j) mod 2 = 0 | Damier |
| 001 | i mod 2 = 0 | Rayures horizontales |
| 010 | j mod 3 = 0 | Rayures verticales (une colonne sur 3) |
| 011 | (i + j) mod 3 = 0 | Motif diagonal |
| 100 | (i/2 + j/3) mod 2 = 0 | Motif en blocs |
| 101 | (ij) mod 2 + (ij) mod 3 = 0 | Motif en étoile |
| 110 | ((ij) mod 2 + (ij) mod 3) mod 2 = 0 | Motif en losange |
| 111 | ((i+j) mod 2 + (ij) mod 3) mod 2 = 0 | Mélange complexe |
Lorsqu'une condition de masque est vraie, le module de données correspondant est inversé (le noir devient blanc, le blanc devient noir). Les éléments structurels tels que les motifs de repérage, les motifs de synchronisation et les motifs d'alignement ne sont jamais masqués.
Score de pénalité
L'encodeur applique les huit masques et évalue chacun à l'aide de quatre règles de pénalité :
- Modules adjacents : modules consécutifs de même couleur dans une ligne ou une colonne (la pénalité augmente avec la longueur de la série)
- Pénalité de bloc : blocs 2x2 de modules de même couleur
- Motifs ressemblant à un motif de repérage : séquences ressemblant au rapport 1:1:3:1:1 du motif de repérage
- Équilibre des couleurs : écart par rapport à un rapport 50/50 de modules sombres/clairs
Le masque avec le score de pénalité total le plus bas est sélectionné et enregistré dans l'information de format.
Impact sur la scannabilité
Bien que les huit masques produisent des codes QR valides, la sélection basée sur la pénalité produit généralement une amélioration notable de la fiabilité du scan. Un mauvais choix de masque peut augmenter le temps de scan ou provoquer des échecs avec certains matériels de scanner, en particulier dans des conditions d'éclairage difficiles.
Points clés
- Huit motifs de masque évitent les motifs visuels problématiques dans la zone de données
- Les masques sont combinés par XOR avec les modules de données (les éléments structurels ne sont pas masqués)
- Quatre règles de pénalité évaluent chaque masque candidat
- Le masque avec le score de pénalité le plus bas est automatiquement sélectionné
- La sélection du masque est enregistrée dans les bits d'information de format