Un QR code n'est rien de plus qu'une grille de cases noires et blanches que l'appareil photo lit comme une longue suite de uns et de zéros. Les trois grands carrés dans les coins indiquent à votre téléphone où se trouve le code et dans quel sens il est orienté, tandis que le reste du motif transporte vos données, accompagnées de copies de secours intégrées qui permettent au code de survivre aux rayures, aux taches et aux autocollants. Voici comment chaque élément fonctionne, en termes simples.
De la photo à la grille de modules
Quand vous pointez votre appareil photo vers un QR code, la première tâche de l'application est de transformer une photo en quelque chose qu'un ordinateur peut traiter. Elle convertit l'image en noir et blanc en appliquant un seuil de luminosité : tout ce qui est plus sombre que ce seuil devient noir, tout ce qui est plus clair devient blanc. Les photos floues ou ombragées compliquent cette étape, et c'est pourquoi un code net et bien éclairé se scanne de façon plus fiable.
La plus petite case du motif s'appelle un module. Pour le lecteur, chaque module représente un seul bit d'information — un module sombre correspond à une valeur binaire, un module clair à l'autre. Tout ce qui suit, des grands carrés d'angle aux données elles-mêmes, n'est qu'un assemblage de modules sur une grille.
Autour du code se trouve une marge blanche appelée zone de silence, large de quatre modules par convention. Elle offre à l'appareil photo un bord net à détecter et isole le code des fonds chargés. Un code imprimé collé contre d'autres graphismes est plus difficile à scanner, précisément pour cette raison.
Les trois motifs de repérage
Dans trois coins — en haut à gauche, en haut à droite et en bas à gauche — se trouve la caractéristique la plus reconnaissable du QR code : un grand carré composé d'anneaux imbriqués, avec un anneau extérieur sombre, un anneau clair et un centre plein sombre de 3×3. Ce sont les motifs de repérage, et ils résolvent le premier problème auquel tout scanner est confronté : où est le code, et dans quel sens est-il tourné ?
Le scanner les repère en balayant l'image avec une ligne et en cherchant un rythme très précis. Une ligne qui traverse le milieu d'un motif de repérage rencontre sombre, clair, sombre, clair, sombre, avec des largeurs dans le ratio 1:1:3:1:1 — un module sombre, un clair, trois sombres, puis un et un encore. Cette signature est suffisamment inhabituelle pour se détacher de presque tout le reste d'une photo.
Pourquoi trois motifs et pas quatre ? Trois coins suffisent à positionner un carré, et le coin manquant porte une information : il indique au lecteur où se trouve le « haut ». Même si vous scannez un code à l'envers ou de côté, le lecteur sait exactement comment faire pivoter la grille avant de la décoder.
Les motifs de synchronisation et d'alignement
Savoir où se trouvent les coins ne suffit pas tout à fait. Si le code a été photographié de biais ou imprimé sur une surface courbe, la grille intermédiaire peut être étirée ou déformée. Deux autres structures veillent à la maintenir droite.
Le motif de synchronisation est une ligne pointillée de modules alternés sombres et clairs qui court entre les motifs de repérage — une le long du bord supérieur, l'autre le long du bord gauche. Il fonctionne comme une règle : en comptant les alternances, le lecteur confirme la taille exacte des modules et l'espacement de la grille sur l'ensemble du code.
Le motif d'alignement est un plus petit carré imbriqué, de cinq modules de côté, qui apparaît à partir de la version 2, placé vers le coin inférieur droit. Les codes plus grands en comportent plusieurs. Chacun sert de repère supplémentaire, permettant au lecteur de mesurer et de corriger la distorsion dans sa zone de la grille — indispensable quand un code enveloppe une bouteille ou orne une étiquette légèrement froissée.
Les versions 1 à 40
Les QR codes existent en 40 tailles, appelées versions. La version 1 est une grille de 21×21 modules. Chaque version supérieure ajoute quatre modules par côté : la version 2 fait donc 25×25, la version 3 fait 29×29, et ainsi de suite jusqu'à la version 40 à 177×177.
Une grille plus grande offre plus de place pour les données. En règle générale, les plus grandes versions peuvent contenir environ 7 000 chiffres, tandis qu'une URL courte tient aisément dans un code bien plus petit. La capacité exacte dépend aussi de ce que vous encodez — les chiffres se compactent mieux que le texte — et du niveau de correction d'erreurs choisi.
C'est aussi pourquoi les codes générés varient tant d'apparence. Les outils de génération choisissent la plus petite version capable d'accueillir le contenu : un lien court produit un code aéré aux grosses cases, un lien long produit un motif dense et fin.
Données et mots de code de correction
Une fois que les motifs structurants ont pris leur espace, la zone restante contient la charge utile. Les bits sont regroupés en unités de huit modules appelées mots de code — chacun représente un octet d'information.
Il en existe deux sortes. Les mots de code de données transportent votre contenu réel : l'URL, le texte ou tout ce que le code encode. Les mots de code de correction d'erreurs sont des secours d'un genre particulier, calculés à partir des données grâce à une branche des mathématiques appelée codage de Reed–Solomon — la même famille de techniques qui protégeait les données des CD et des DVD. Le lecteur s'en sert pour vérifier les données et réparer ce qui manque.
Les QR codes proposent quatre niveaux de correction, nommés L, M, Q et H. En gros, ils peuvent restaurer respectivement environ 7 %, 15 %, 25 % ou 30 % des mots de code. La contrepartie, c'est l'espace : plus le niveau est élevé, plus une grande partie du code est réservée aux secours, et moins il en reste pour les données — un même contenu peut alors exiger une version plus grande.
C'est pourquoi un QR code avec un logo posé au milieu peut quand même se scanner : le concepteur a choisi un niveau de correction élevé et laissé les mots de code de secours absorber la zone recouverte.
Le masquage
Livré au hasard, le codage brut pourrait produire une grille malheureuse : grandes plages vides, ou amas de cases qui imitent par accident un motif de repérage et perturbent le scanner. La solution, c'est le masquage.
L'outil d'encodage prend l'un des huit masques prédéfinis — damiers, rayures horizontales ou verticales et autres motifs répétitifs — et inverse chaque module là où le masque présente une case sombre. Les données ne changent pas ; seule leur apparence change, et l'inversion est parfaitement réversible.
L'outil essaie les huit masques, note chaque résultat selon des règles de pénalité (longues suites de la même couleur, sosies de motifs de repérage, zones sombres et claires trop déséquilibrées) et conserve celui qui obtient la pénalité la plus faible. Le masque utilisé est consigné dans une petite bande d'information de format à côté des motifs de repérage — écrite deux fois par précaution, afin qu'un coin abîmé ne laisse pas le lecteur dans le doute.
C'est aussi pourquoi un même lien encodé par deux outils différents peut donner deux codes visuellement différents. Les deux sont corrects ; ils ont simplement choisi des masques différents.
Un petit exemple concret
Prenons le texte « HI ». L'encodeur écrit d'abord quelques bits de configuration — quel type de données suit et quelle est leur longueur — puis le contenu lui-même. Chaque caractère est stocké sur huit bits : H devient 01001000 et I devient 01001001. Ces seize bits deviennent seize modules sur la grille, un bit chacun.
Les bits sont déposés dans la grille par bandes de deux colonnes qui serpentent de haut en bas à partir du coin inférieur droit, en sautant les zones des motifs de repérage, de synchronisation et de format. Après les données vient un bloc de mots de code de correction d'erreurs, calculés à partir d'elles et logés à côté. Enfin, le masque choisi est appliqué, inversant certains modules pour briser les motifs malvenus.
Voilà toute la recette : d'abord la structure, puis les données, puis les secours, puis un masque. Chaque QR code que vous avez déjà scanné est cette même procédure répétée à plus grande échelle.
L'essentiel à retenir
Un QR code est une image qui se décrit elle-même. Les motifs de repérage disent « me voici, et voici le haut » ; les motifs de synchronisation et d'alignement redressent la grille ; la version fixe la taille ; les mots de code transportent vos données avec leurs secours intégrés ; et le masquage garde l'ensemble lisible. La prochaine fois que vous en scannez un — ou que vous générez le vôtre sur QRCodeMax.Vip — zoomez : vous y repérerez chacun de ces éléments en action.