Comment fonctionnent les QR codes

Aussi appelé: encodage d’un QR code, décodage d’un QR code

Définition

Un QR code transforme les données en mots de code, ajoute une correction d’erreur Reed-Solomon, puis place les bits dans une grille autour de motifs fixes qui aident l’appareil photo à le trouver, le redresser et le lire.

Des données au motif

Fabriquer un QR code commence par le choix d’un mode d’encodage adapté aux données : numérique, alphanumérique, octet ou kanji. L’encodeur convertit les données en bits, les découpe en mots de code de 8 bits et ajoute des mots de code de correction d’erreur Reed-Solomon au niveau choisi. Il retient ensuite la plus petite version qui convient.

Les mots de code sont placés dans la grille selon un parcours en zigzag qui évite les motifs fixes. Enfin, l’encodeur applique l’un des huit motifs de masque pour fragmenter les grandes zones vides ou les formes trompeuses, et consigne le masque et le niveau de correction d’erreur dans les informations de format.

  • Choisir le mode d’encodage
  • Encoder les données et ajouter les mots de code de correction d’erreur
  • Choisir la version (la taille)
  • Placer les motifs de repérage, de synchronisation et d’alignement
  • Remplir les modules de données
  • Appliquer le meilleur des huit masques et écrire les informations de format

De l’image de l’appareil photo aux données

Le décodage suit les mêmes étapes à l’envers. Le scanner trouve les trois motifs de repérage, dont le rapport 1:1:3:1:1 entre sombre et clair se distingue de la plupart des images, et s’en sert avec les motifs de synchronisation et d’alignement pour cartographier la grille. Il lit les informations de format, retire le masque et recueille les mots de code.

Le décodage Reed-Solomon répare ensuite les mots de code mal lus, dans la limite du niveau de correction d’erreur. Si trop de choses sont abîmées, le code n’est pas lu au lieu de renvoyer des données fausses, ce qui explique que les QR codes donnent rarement des résultats illisibles.

Pourquoi la taille et le contraste comptent

Chaque étape suppose que l’appareil photo distingue les modules sombres des modules clairs. De petits modules, un faible contraste, des reflets, du flou ou une zone de silence manquante mettent plus de modules en doute, et la correction d’erreur ne peut en absorber qu’un certain nombre. Des données courtes, un contraste fort et une marge dégagée donnent au décodeur la tâche la plus facile.

Questions fréquentes

Comment un téléphone sait-il où se trouve le QR code ?

Il cherche les trois grands motifs de repérage carrés dans les coins. Leur rapport caractéristique 1:1:3:1:1 permet au scanner de les trouver sous n’importe quel angle et d’en déduire l’orientation.

Pourquoi les QR codes ont-ils un motif de masque ?

Le masque inverse des modules selon un motif défini afin d’éviter les grandes zones pleines et les formes qui ressemblent à des motifs de repérage. L’encodeur essaie les huit masques et garde celui qui se lit le plus fiablement.

Peut-on lire un QR code à l’envers ?

Oui. Les motifs de repérage indiquent l’orientation au scanner : un QR code peut donc se lire quelle que soit sa rotation.

Sources et normes

Tous les termes