La base du symbole est une grille de modules noirs ou blancs disposés de façon ordonnée. Un module s’apparente à un pixel carré dont la dimension fixe s’appelle cellule. L’ensemble forme une matrice dont la taille varie de 21×21 à 177×177 modules selon la version. Trois repères de positionnement se situent dans trois coins ; ils servent d’ancrage visuel et guident l’algorithme de détection. Un motif d’alignement supplémentaire apparaît dans les grandes versions afin de corriger l’éventuelle distorsion due à une perspective oblique.
Le système Reed‑Solomon intégré garantit la reconstruction de la donnée même si une partie du symbole disparaît. Quatre niveaux existent, désignés L, M, Q et H, avec respectivement 7 %, 15 %, 25 % et 30 % de modules redondants. Un billet de train imprimé en papier thermique fragile adopte souvent le niveau H afin de résister aux plis et aux éraflures.
L’encodage commence par le choix d’un mode selon la nature de la donnée : numérique, alphanumérique, binaire ou kanji. Un indicateur de quatre bits identifie le mode. Vient ensuite la longueur du message exprimée sur un nombre de bits variable.
Une fois la séquence binaire générée, l’encodeur la divise en blocs. Chaque bloc reçoit des symboles de redondance Reed‑Solomon et forme ce que l’on nomme codewords. Les codewords se placent en zigzag, colonne après colonne, à l’intérieur de la zone réservée. Pour éviter la formation de grands aplats noirs ou blancs susceptibles de gêner la détection, huit masques prédéfinis inversent sélectivement certains modules. Le score de pénalité le plus faible détermine le masque retenu.
Une application de lecture capture d’abord une image grâce au capteur photo. Le contraste entre modules noirs et blancs conditionne la réussite de l’étape suivante. Sur un emballage brillant, un éclairage rasant minimise les reflets et améliore la netteté du contraste.
Le logiciel identifie les repères de positionnement puis calcule l’orientation exacte du symbole. Un redressement affine la perspective, suivi d’une conversion en niveaux de gris et d’un seuillage adaptatif. Chaque cellule est échantillonnée au centre afin de déterminer sa couleur logique. Les bits reconstruits constituent les codewords, remis dans l’ordre de lecture. L’algorithme Reed‑Solomon corrige alors les segments altérés et restitue la séquence initiale. Si le message contient une URL, le navigateur se déclenche aussitôt.
L’insertion d’une signature numérique ou l’application du protocole JWE (JSON Web Encryption) garantit l’intégrité de l’information. La matrice contient un numéro de lot signé par une clef privée ; le lecteur public vérifie la signature avant la mise en stock.
Des cybercriminels apposent parfois un autocollant malveillant sur une borne de paiement sans contact. L’utilisateur est redirigé vers un site frauduleux imitant une banque. Un filtre serveur, combiné à un antivirus mobile, limite l’impact de cette manœuvre, mais l’éducation reste primordiale : le consommateur doit privilégier les sources officielles et vérifier l’URL avant toute saisie confidentielle.