Comment fonctionne réellement un code QR ? La technologie derrière la mosaïque de pixels

29.08.2026 11 min Temps de lecture
Comment fonctionne réellement un code QR ? La technologie derrière la mosaïque de pixels

Il suffit de passer rapidement l'appareil photo de son smartphone dessus pour qu'un site web s'ouvre, que le Wi-Fi se connecte ou qu'une vCard soit enregistrée dans le répertoire. Ce qui ressemble à de la magie au quotidien est en réalité une combinaison extrêmement sophistiquée d'informatique, de mathématiques et d'optique.

Mais comment ce motif noir et blanc caractéristique est-il créé à partir d’une longue adresse Internet ou d’un texte ? Où les données sont-elles cachées dans le code et pourquoi l’appareil photo reconnaît-il le contenu même lorsque le code QR est de travers ou légèrement endommagé ?

Dans cet article, nous décortiquons étape par étape le fonctionnement du code QR (Quick Response).

1. Le principe de base est simple : les caractères sont convertis en zéros et en uns.

Les ordinateurs parlent le langage binaire, c’est-à-dire qu’ils ne comprennent que les 0 et les 1. Avant qu’une information puisse être représentée sous forme de motif dans le code QR, elle doit donc d’abord être convertie en bits. Pour économiser de l’espace de stockage, le logiciel QR utilise différents modes de codage :

  1. Mode numérique : pour les chiffres uniquement (0 à 9). Très efficace, car trois chiffres sont regroupés en dix bits.
  2. Mode alphanumérique : pour les chiffres, les majuscules et certains caractères spéciaux.
  3. Mode octet : pour les textes généraux, les minuscules, les trémas (UTF-8) et les URL.
  4. Mode kanji : compression spécifique pour les caractères japonais.

Un coup d’œil dans les coulisses permet de comprendre comment « QR » se transforme en code binaire.

Pour comprendre à quel point un code QR est peu encombrant, examinons le mode alphanumérique. Chaque caractère se voit attribuer une valeur numérique fixe (A = 10, B = 11, …, Q = 26, R = 27).

Afin d’éviter d’avoir à stocker chaque lettre individuellement, l’algorithme regroupe toujours deux caractères.

  1. Les valeurs de Q (26) et R (27) sont additionnées : $26 \times 45 + 27 = 1197$.
  2. Le nombre 1197 est représenté sous forme de nombre binaire à 11 bits : 10010101101.

Ainsi, les deux lettres QR donnent exactement 11 bits composés de zéros et de uns. Si, à la fin d’une chaîne, il restait une lettre isolée, elle serait codée avec 6 bits (par exemple, $Q \rightarrow 26 \rightarrow 011010$).

2. Le chemin du code binaire au motif d’image final

Dès que ton texte est traduit en une chaîne de zéros et de uns, celle-ci passe par plusieurs étapes techniques de traitement :

[ Ta saisie ] (par exemple « https://qrown.io »)
[ Analyse du mode et codage binaire ] (les caractères sont convertis en 0 et 1)
[ En-tête et métadonnées ] (des informations sur la longueur des données et le mode sont ajoutées)
[ Calcul de la correction d’erreurs ] (des codes Reed-Solomon sont générés)
[ Placement dans la grille ] (les bits sont répartis de bas en haut à partir du coin inférieur droit)
[ Masquage ] (un filtre mathématique empêche l’apparition de motifs gênants)
[ Code QR final ] (Noir = 1, Blanc = 0)

Étape A : Données techniques supplémentaires et correction d’erreurs

La chaîne de zéros et de uns qui contient votre contenu ne se résume pas à cela. Un en-tête est placé avant les données utiles. Celui-ci indique au scanner : « Attention, voici un texte en mode octet d’une longueur de 25 caractères ! »

Ensuite, un procédé mathématique, appelé correction d’erreurs de Reed-Solomon, calcule des bits de sécurité supplémentaires. Ceux-ci garantissent que le code puisse encore être lu même si jusqu’à 30 % de sa surface est masquée ou endommagée (par exemple par un logo d’entreprise placé au centre).

Étape B : répartition dans la grille (modules)

Les carrés individuels du code QR sont appelés « modules ». En principe :

  1. 0 = module blanc
  2. 1 = module noir

Cependant, les bits ne sont pas simplement inscrits ligne par ligne, du coin supérieur gauche vers le coin inférieur droit. L’enregistrement des données commence en bas à droite et serpente en étroites colonnes de deux, en alternant vers le haut et vers le bas à travers la grille. Les zones fonctionnelles réservées (comme les coins) sont alors automatiquement ignorées.

C’est pourquoi, dans le code QR final, tu ne peux jamais pointer du doigt un seul carré noir et dire : « C’est le “h” de l’adresse web. »

Étape C : L’astuce du masquage (Pourquoi le 1 n’est pas toujours noir)

Si les bits étaient dessinés directement, cela pourrait donner lieu, de manière aléatoire, à de grands blocs noirs, de longues bandes blanches ou des motifs trompeurs qui perturberaient le capteur de l’appareil photo.

C’est pourquoi le logiciel superpose un motif de masquage à la matrice. Il existe au total huit masques standardisés. Grâce à une opération mathématique XOR, le masque inverse certains bits :

  1. 0 devient 1 (le blanc devient noir)
  2. 1 devient 0 (le noir devient blanc)

Le scanner identifie, à l’aide de bits de contrôle situés dans l’en-tête, quel masque a été utilisé, et annule cette opération en une fraction de seconde lors de la lecture.

3. L’anatomie d’un code QR : que signifient les différents motifs ?

Si l’on observe un code QR de plus près, il ressemble à une mosaïque aléatoire. En réalité, chaque élément est toutefois positionné de manière rigoureuse, conformément à la norme ISO. On peut imaginer sa structure comme l’anatomie d’un visage. Certaines caractéristiques se trouvent toujours au même endroit, afin que le smartphone reconnaisse le code au premier coup d’œil.

Un code QR classique se compose des zones principales suivantes :

1. Les trois grands carrés d’angle (motifs de repérage / Finder Patterns)

  1. Ils se trouvent en haut à gauche, en haut à droite et en bas à gauche.
  2. Leur rôle : ce sont les éléments les plus voyants du code QR. Ces trois points d’ancrage signalent immédiatement à la caméra : « Attention, il y a un code QR ici ! » Ils indiquent en un clin d’œil au logiciel la position, la taille et l’angle d’inclinaison, afin que l’appareil photo puisse déterminer si le smartphone est tenu à l’horizontale ou en biais.

2. Les lignes de liaison en pointillés (motifs de synchronisation)

  1. Elles se trouvent en bas à droite et indiquent à l’appareil photo où se trouvent le « haut » et le « bas ».
  2. Leur rôle : ces lignes sont constituées de modules noirs et blancs alternés. Elles fonctionnent comme une règle pour le scanner : à partir de ces points, le logiciel calcule la taille du système de grille (de la version 1 avec 21 × 21 cases à la version 40 avec 177 × 177 cases).

3. Les petits carrés intérieurs (motifs d’alignement / Alignment Patterns)

  1. Ils se trouvent dans la partie inférieure droite et, pour les codes complexes, sont répartis dans l’ensemble du motif.
  2. Leur rôle : ces petits carrés servent de réticules numériques. Ils aident le scanner à corriger les distorsions, par exemple lorsque le code QR est imprimé sur une canette de Coca-Cola courbée ou que le prospectus a été froissé.

4. La zone de contrôle (informations de format)

  1. Elle est située juste à côté des trois grands carrés d’angle.
  2. Son rôle : c’est là que se trouvent les instructions techniques destinées au scanner. Ces quelques pixels contiennent deux informations essentielles : 1. le niveau de correction d’erreurs utilisé (L, M, Q ou H) et 2. le motif de masquage appliqué aux données.

5. Le cadre de protection invisible (zone de repos/Quiet Zone)

  1. Il s’agit de la bordure entièrement blanche et non imprimée qui entoure l’ensemble du code QR.
  2. Fonction : pour que l’appareil photo puisse capturer correctement les bords extérieurs du code, il a besoin d’une distance de sécurité par rapport aux textes, images ou graphiques d’arrière-plan. Cette bordure doit avoir une épaisseur d’au moins quatre modules (largeurs de pixels). En l’absence de zone de sécurité, l’appareil photo refuse souvent de scanner le code.

4. Que se passe-t-il lors du scan sur ton smartphone ?

Lorsque tu pointes ton appareil photo vers un code QR, les étapes suivantes se déroulent en arrière-plan :

  1. Recherche : l’appareil photo analyse l’image vidéo à la recherche des trois grands motifs de repérage.
  2. Transformation : le logiciel calcule la perspective et « redresse » numériquement une image éventuellement prise de travers.
  3. Démasquage : le système de trame extrait les informations de format, reconnaît le motif de masquage et supprime le masque.
  4. Correction des erreurs : les éventuelles rayures, flous ou éléments masquant sont corrigés mathématiquement.
  5. Décodage : les zéros et les uns sont reconvertis, selon les règles du mode, en texte lisible, en chiffres ou en commandes de contrôle.
  6. Exécuter l’action : le smartphone reconnaît le type de données (par exemple, https://pour une URL, WIFI:pour des identifiants d’accès ou BEGIN:VCARDpour des contacts) et propose l’application adaptée.

Analyse technique approfondie : explications sur les questions essentielles

Faut-il une connexion Internet pour scanner un code QR ?

Non, pas pour le processus de lecture en lui-même. La conversion des pixels en texte s'effectue localement sur votre smartphone. Si le contenu est du texte brut, une vCard ou des identifiants Wi-Fi, tout fonctionne entièrement hors ligne. Ce n’est que lorsque le code contient une adresse Internet (URL) et que vous souhaitez l’ouvrir que vous avez besoin d’une connexion de données.

Un code QR est-il crypté ?

Non. Un code QR est simplement codé, mais pas crypté. N’importe quel lecteur de codes QR universel peut lire les données qu’il contient. Les informations confidentielles telles que les mots de passe, les coordonnées bancaires ou les codes PIN personnels ne doivent donc jamais être stockées sans protection dans un code QR standard.

Pourquoi certains codes QR semblent-ils beaucoup plus fins et denses que d’autres ?

Plus la quantité de données stockées directement dans le code est importante – par exemple, un long texte par rapport à un lien court –, plus le nombre de modules nécessaires est élevé. Le code passe alors à une version supérieure (de la version 1 avec 21 × 21 modules jusqu’à la version 40 avec 177 × 177 modules).

Statique vs dynamique : pourquoi les codes dynamiques restent plus compacts

  1. Codes QR statiques : ils stockent directement la destination finale (par exemple, une URL de 150 caractères). Le motif devient très dense et plus difficile à scanner.
  2. Codes QR dynamiques : ils ne stockent qu’un lien de redirection ultra-court (par exemple, qrown.io/12da7). Le code reste visuellement extrêmement simple, facile à scanner, et la destination réelle peut être modifiée à tout moment sur le serveur sans qu’il soit nécessaire de réimprimer le code.

Liste de contrôle pour des codes QR fonctionnels

Si vous créez vos propres codes QR ou si vous les faites concevoir, veillez à respecter les principes suivants :

  1. Utilisez des liens courts : utilisez des codes QR dynamiques pour maintenir une faible densité de modules.
  2. Respectez le contraste : choisissez un motif foncé sur fond clair (les codes inversés posent des problèmes à certains appareils photo plus anciens).
  3. Respectez la zone de marge : laissez au moins 4 modules de marge par rapport aux textes, aux bords de découpe ou aux graphiques.
  4. Adaptez la correction d’erreurs : lors de l’intégration de logos dans le code, choisissez au minimum un niveau de correction d’erreurs Q ou H.

Foire aux questions (FAQ)

De combien de modules se compose un code QR ?

Les plus petits codes QR (version 1) se composent de 21 × 21 modules, soit 441 cases. La plus grande variante (version 40) présente une grille de 177 × 177 modules, soit 31 329 cases.

Un code QR peut-il contenir des virus ou des logiciels malveillants ?

Un code QR ne contient en soi que du texte et ne peut pas exécuter directement de code malveillant. Il peut toutefois rediriger vers un site web de hameçonnage piégé ou vers un téléchargement malveillant. Vérifie donc toujours l'aperçu du domaine sur ton smartphone avant de l'ouvrir !

Quel mode permet de gagner le plus de place dans un code QR ?

Le mode numérique (chiffres uniquement) est le plus efficace, suivi du mode alphanumérique. Le mode octet (pour les URL générales et les caractères spéciaux) nécessite en revanche le plus d’espace de stockage par caractère.

Autres articles