support@security.com

Leeds, LS1 1AZ, UK

Get a free quote

Comment fonctionne un QR code : de la matrice de pixels à l’action déclenchée

Comment fonctionne un QR code : de la matrice de pixels à l’action déclenchée

Un QR code, c’est ce petit carré que vous scannez sans vraiment vous demander ce qui se passe dessous. Et pourtant, en moins d’une seconde, votre téléphone a analysé une matrice binaire, corrigé d’éventuelles erreurs de lecture, décodé une chaîne de caractères et déclenché une action. Tout ça grâce à une norme créée au Japon en 1994 par l’ingénieur Masahiro Hara chez Denso Wave — initialement pour tracer des pièces automobiles.

La vraie question n’est pas seulement « comment scanner un QR code » — n’importe quelle app le fait. La question intéressante, c’est : comment des carrés noirs et blancs peuvent-ils encoder une URL, un numéro de téléphone ou un texte de 4 000 caractères, et comment un simple objectif de caméra arrive-t-il à les lire dans n’importe quelle orientation, même partiellement abîmés ? C’est exactement ce que cet article décortique.

Que vous soyez développeur, marketeur ou simplement curieux de technologie, comprendre le fonctionnement interne d’un QR code change la façon dont vous les utilisez — et dont vous les créez.

📌 Point clé ✅ Ce qu’il faut retenir
🔲 Structure de base Matrice de modules (pixels) carrés, de 21×21 (version 1) à 177×177 (version 40)
📡 Encodage Données converties en binaire selon 4 modes : numérique, alphanumérique, byte, kanji
🛡️ Correction d’erreur Algorithme Reed-Solomon : jusqu’à 30 % du code peut être illisible et rester décodable
🔄 Statique vs Dynamique Le QR statique encode la donnée directement ; le dynamique redirige via une URL courte modifiable
📷 Lecture caméra Les 3 carrés de positionnement (finder patterns) permettent la détection dans toutes les orientations
⚠️ Limite de capacité Maximum ~4 296 caractères alphanumériques ou 7 089 chiffres en version 40

Anatomie d’un QR code : ce que votre œil ne voit pas

Avant d’expliquer comment fonctionne un QR code, il faut en comprendre la carte. Ce que vous voyez comme un simple carré de pixels est en réalité une structure rigoureusement organisée, où chaque zone a un rôle précis et non interchangeable. Contrairement à un code-barres classique qui ne se lit que dans un sens horizontal, un QR code est une matrice 2D — c’est ce qui lui confère une densité d’information sans commune mesure.

La structure d’un QR code se découpe en plusieurs zones fonctionnelles :

  • Les finder patterns : ces trois grands carrés concentriques dans les coins supérieur gauche, supérieur droit et inférieur gauche. Ils servent de points d’ancrage pour la caméra, lui permettant de localiser le code, d’en déterminer l’angle et l’échelle — peu importe si vous le scannez de travers.
  • Le timing pattern : une ligne alternée de modules noirs et blancs qui relie les finder patterns. Elle permet de calculer la taille de la grille et de corriger les distorsions optiques.
  • L’alignment pattern : présent à partir de la version 2, c’est un petit carré centré dans la zone de données. Il aide à corriger les déformations lorsque le QR code est imprimé sur une surface courbe ou photographié avec un angle important.
  • Les format information bits : une bandelette de données qui encode le niveau de correction d’erreur utilisé et le masque appliqué (on y revient).
  • La zone de données : tout le reste ! C’est ici que sont stockées vos informations, sous forme de modules binaires (noir = 1, blanc = 0, ou l’inverse selon le masque).

Une zone souvent négligée : la quiet zone, ce liseré blanc tout autour du code. Elle est obligatoire selon la norme ISO/IEC 18004. Sans elle, le lecteur QR code peut ne pas détecter les bords du code et échouer à le décoder. Beaucoup d’entreprises qui créent des QR codes personnalisés (avec logo, couleurs) réduisent trop cette marge et se retrouvent avec des codes illisibles en impression.

Comment les données sont encodées dans la matrice — la mécanique binaire vulgarisée

C’est ici que ça devient vraiment intéressant. Quand vous créez un QR code à partir d’une URL comme « https://explisites.fr », voici ce qui se passe en coulisses, étape par étape.

Étape 1 — Choix du mode d’encodage. Le générateur analyse votre chaîne de caractères et choisit le mode le plus compact parmi quatre possibilités : numérique (chiffres seulement, très dense), alphanumérique (majuscules + chiffres + quelques symboles), byte (n’importe quel caractère ISO-8859-1, utilisé pour les URLs), et kanji (caractères japonais). Une URL passera systématiquement en mode byte.

Étape 2 — Conversion en bits. Chaque caractère est converti en sa valeur binaire selon la table du mode choisi. Le « h » de « https » devient 01101000 en ASCII. Tous ces bits sont mis bout à bout pour former un long flux binaire. Des bits de terminaison et de rembourrage sont ajoutés pour atteindre exactement la capacité requise par la version du QR code.

Étape 3 — Génération des blocs de correction d’erreur (Reed-Solomon). C’est la partie la plus sophistiquée. L’algorithme Reed-Solomon calcule des codewords supplémentaires mathématiquement liés aux données. Ces blocs redondants permettront, lors du décodage, de reconstituer les données manquantes. Selon le niveau de correction choisi (L, M, Q ou H), entre 7 % et 30 % du code peut être endommagé sans perte d’information. C’est pourquoi vous pouvez coller un logo au centre d’un QR code et qu’il reste lisible : vous exploitez cette redondance.

Étape 4 — Application d’un masque. Une fois les données placées dans la matrice, un des 8 masques prédéfinis est appliqué. Le masque XOR-ise certains modules pour éviter les grandes zones uniformes (trop de blanc ou trop de noir côte à côte) qui perturberaient la caméra. Le générateur teste les 8 masques et choisit celui qui produit la matrice la plus équilibrée selon des règles de pénalité définies par la norme.

QR code statique vs QR code dynamique : comparatif décisif

La distinction entre QR statique et QR dynamique est probablement la plus importante à comprendre si vous utilisez des QR codes dans un contexte professionnel. Les deux se scannent de la même façon, mais leur fonctionnement interne est radicalement différent — et les implications pratiques sont majeures.

Un QR code statique encode directement la donnée finale dans sa matrice. Si vous créez un QR code pointant vers « https://explisites.fr/article », cette URL est gravée dans les pixels du code. Vous ne pouvez plus la modifier sans régénérer et remplacer le code partout où il est imprimé. Par contre, il fonctionne sans aucune infrastructure tierce : pas de serveur intermédiaire, pas d’abonnement, pas de dépendance externe. Idéal pour encoder un numéro de téléphone, un texte ou une URL permanente.

Un QR code dynamique encode en réalité une URL courte (ex: « https://qr.example.com/abc123 ») qui redirige vers la destination réelle. La destination est stockée dans une base de données chez le fournisseur du service. Vous pouvez modifier la destination à tout moment sans toucher au QR code imprimé. En bonus, vous avez accès à des statistiques : combien de scans, depuis quels pays, à quelles heures. La contrepartie : si le service ferme ou que vous ne payez plus l’abonnement, vos QR codes deviennent des liens morts.

Critère 🔒 QR Statique 🔄 QR Dynamique
Données modifiables ❌ Non ✅ Oui, à tout moment
Statistiques de scan ❌ Impossible ✅ Inclus
Dépendance serveur ✅ Aucune ⚠️ Dépend du fournisseur
Coût ✅ Gratuit 💰 Souvent payant (abonnement)
Taille du code généré ⚠️ Plus dense si URL longue ✅ Toujours compact (URL courte)
Cas d’usage idéal WiFi, vCard, texte fixe Campagnes marketing, menus restaurant

Comment votre caméra lit un QR code en moins d’une seconde

Le processus de scan est souvent présenté comme magique. En réalité, c’est une suite d’opérations très précises que le processeur de votre téléphone enchaîne à une vitesse impressionnante. Comprendre ce pipeline de lecture explique aussi pourquoi certains QR codes sont difficiles à scanner (mauvais contraste, code trop petit, surface brillante).

La caméra capture d’abord un flux vidéo continu. À chaque frame, un algorithme de détection cherche la signature des trois finder patterns — ces carrés concentriques dans les coins. L’algorithme travaille sur une image en niveaux de gris (pas besoin de couleur) et applique un seuillage pour binariser l’image : chaque pixel devient soit noir soit blanc selon un seuil adaptatif local. C’est pour ça qu’un QR code sur fond coloré peut être lu, tant que le contraste reste suffisant.

Une fois les trois finder patterns détectés, le logiciel calcule une transformation de perspective pour redresser le code — même si votre téléphone est incliné à 45 degrés, l’image est mathématiquement rectifiée en un carré parfait. L’alignment pattern (quand il existe) sert à affiner cette correction sur les grandes versions du code.

Vient ensuite la lecture des format information bits pour connaître le niveau de correction d’erreur et identifier le masque appliqué. Le masque est inversé, les données brutes sont extraites module par module dans un ordre de lecture en zigzag défini par la norme, puis les blocs Reed-Solomon permettent de corriger les éventuelles erreurs avant le décodage final de la chaîne de caractères. Le système d’exploitation interprète ensuite le résultat : si c’est une URL, il propose d’ouvrir le navigateur ; si c’est un numéro de téléphone, il propose d’appeler.

Code-barres vs QR code : pourquoi le QR a (presque) tout remplacé

La comparaison code-barre vs QR code est souvent résumée à « l’un est 1D, l’autre est 2D ». C’est vrai, mais c’est réducteur. La différence fondamentale, c’est la capacité d’information et la robustesse à la lecture. Un code EAN-13 (celui sur vos produits en supermarché) stocke exactement 13 chiffres — ni plus, ni moins. Un QR code version 40 peut stocker jusqu’à 7 089 chiffres ou 4 296 caractères alphanumériques. C’est plusieurs ordres de grandeur au-dessus.

L’autre avantage décisif : la lecture omnidirectionnelle. Un code-barres doit être aligné avec le scanner laser. Un QR code se lit dans n’importe quelle orientation grâce à ses finder patterns — à 0°, 90°, 180°, 270°, et tous les angles intermédiaires. C’est précisément pour ça que Denso Wave l’a inventé : les opérateurs sur les chaînes de montage Toyota perdaient du temps à aligner les étiquettes. Avec le QR code, ils scannaient sans regarder.

Pour autant, le code-barres n’a pas disparu. Dans la grande distribution, l’EAN-13 reste le standard mondial pour l’identification produit, parce que l’infrastructure de lecture (scanners de caisse) est déjà déployée à l’échelle mondiale et que 13 chiffres suffisent pour pointer vers une base de données produit. Le QR code excelle là où on a besoin d’embarquer directement l’information dans le code (une URL, un texte, des coordonnées de contact) sans passer par une base de données centrale.

Sécurité, risques et bonnes pratiques autour des QR codes

Un aspect que beaucoup d’articles sur le fonctionnement des QR codes omettent complètement : la sécurité. Un QR code n’est visuellement pas lisible par un humain. C’est à la fois sa force (densité d’information) et sa faiblesse (opacité totale). Vous ne pouvez pas savoir ce qu’un QR code contient avant de le scanner — et c’est exactement ce que les attaquants exploitent.

La technique du QR code phishing (ou « quishing ») consiste à coller un faux QR code par-dessus un QR code légitime — sur un parking, dans un restaurant, sur une affiche publicitaire — pour rediriger vers une page de phishing. La victime pense scanner le code du restaurant et se retrouve sur une copie de sa page bancaire. La parade : sur mobile, regardez toujours l’URL prévisualisée avant de valider l’ouverture dans le navigateur. La majorité des lecteurs QR code natifs (iOS, Android) affichent l’URL avant de la charger.

Pour créer des QR codes sécurisés dans un contexte professionnel, quelques règles s’imposent :

  • Utilisez systématiquement HTTPS dans l’URL encodée — jamais HTTP.
  • Pour les QR codes dynamiques, choisissez un fournisseur qui vous garantit la pérennité du service et propose un export de vos données.
  • Testez toujours le QR code imprimé avec au moins deux applications différentes avant diffusion.
  • Sur les supports physiques (affiches, flyers), privilégiez un fond blanc mat et évitez les surfaces plastifiées brillantes qui créent des reflets.
  • Ne réduisez jamais le code en dessous de 2 cm × 2 cm pour une lecture à distance raisonnable.

Un dernier point souvent ignoré : les QR codes peuvent encoder bien plus que des URLs. Numéro WiFi avec mot de passe (format WPA), vCard (fiche contact complète), événement iCal, coordonnées GPS, SMS pré-rempli, email avec sujet et corps de message. La norme définit des préfixes standardisés pour chaque type de données, et les systèmes d’exploitation modernes savent interpréter chacun d’eux nativement.

Créer un QR code efficace : ce que la technique implique en pratique

Créer un QR code ne se limite pas à coller une URL dans un générateur en ligne. Maintenant que vous comprenez la mécanique interne, quelques décisions techniques ont un impact direct sur la lisibilité et la durabilité de votre code.

Le niveau de correction d’erreur est le premier paramètre à réfléchir. Les quatre niveaux sont L (7 % de récupération), M (15 %), Q (25 %) et H (30 %). Plus le niveau est élevé, plus le code est dense et grand. Pour un QR code sur un écran (site web, email), le niveau M suffit. Pour un QR code imprimé sur textile, emballage alimentaire, ou intégrant un logo, montez au niveau Q ou H pour compenser les dommages potentiels.

La version du QR code (de 1 à 40) est calculée automatiquement par le générateur en fonction de la quantité de données et du niveau de correction choisi. Plus votre URL est longue, plus la version sera élevée, plus la matrice sera dense, et plus le code sera difficile à scanner à petite taille. Conseil pratique : raccourcissez vos URLs avec un service comme bit.ly ou votre propre domaine avant d’encoder — même pour un QR statique, une URL courte génère un code moins dense et donc plus robuste.

Pour les QR codes avec logo personnalisé, placez le logo au centre exact (zone d’alignment pattern) et ne dépassez pas 30 % de la surface totale si vous êtes en niveau H. Assurez-vous que les couleurs du logo contrastent suffisamment avec le fond — le lecteur QR code travaille en niveaux de gris, pas en couleur.

Ce que l’avenir réserve aux QR codes

Le QR code semblait condamné à disparaître avec l’essor du NFC au milieu des années 2010. Il a en réalité connu une adoption massive post-COVID, quand les restaurants ont remplacé leurs menus papier et que les systèmes de paiement mobile ont généralisé son usage. En Chine, WeChat Pay et Alipay ont fait du QR code le standard universel du paiement en point de vente, bien avant que le NFC ne s’y impose.

La norme évolue également. Le rMQR code (rectangular micro QR code), standardisé en 2022 par l’ISO, propose un format rectangulaire compact adapté aux petits emballages et aux étiquettes industrielles. Les Secure QR codes intègrent des mécanismes de signature cryptographique pour authentifier l’émetteur — une réponse directe aux attaques de quishing. Et du côté de la réalité augmentée, des travaux explorent des QR codes invisibles à l’œil nu mais détectables par des caméras infrarouges spécifiques.

Trente ans après son invention pour tracer des châssis de voiture, le QR code reste l’une des technologies d’encodage les plus élégantes jamais standardisées — robuste, universel, libre de droits (Denso Wave a choisi de ne pas exercer ses brevets) et implémentable sur n’importe quelle surface imprimable.

Ce qu’il faut retenir sur le fonctionnement d’un QR code

Un QR code fonctionne en convertissant vos données en bits, organisés dans une matrice structurée avec des zones fonctionnelles précises. Les finder patterns permettent à n’importe quel lecteur QR code de détecter et orienter le code instantanément. L’algorithme Reed-Solomon intègre de la redondance pour que le code reste lisible même endommagé. Et la distinction entre QR statique et QR dynamique détermine si vos données sont gravées dans la matrice ou redirigées via un serveur.

Comprendre ces mécanismes vous donne un avantage concret : vous savez pourquoi un QR code dense est difficile à imprimer en petit format, pourquoi un logo trop grand le rend illisible, pourquoi le contraste et la quiet zone sont non négociables, et pourquoi les QR dynamiques créent une dépendance technique qu’il faut anticiper. Si vous souhaitez aller plus loin dans la création et l’optimisation de vos QR codes, explorez les ressources techniques sur explisites.fr — et la prochaine fois que vous en scannez un, vous saurez exactement ce qui se joue en coulisses.

Photo of author

Antoine

Laisser un commentaire