MyFreeQR
Retour au blog
Technologie25 mars 202612 min

La Science Derrière les QR Codes : Comment Fonctionne Réellement la Technologie

Plongée technique dans les mécanismes internes des QR codes : correction d'erreurs Reed-Solomon, modes d'encodage et masques de données.

TM

Thomas Martin

Fondateur de MyFreeQRCode

L'invention qui a révolutionné l'identification automatique

En 1994, dans les usines Toyota au Japon, un ingénieur nommé Masahiro Hara de la société Denso Wave cherchait une solution à un problème concret : les codes-barres classiques ne pouvaient stocker que 20 caractères et devaient être scannés dans un angle précis. L'industrie automobile avait besoin de stocker des centaines de caractères (numéros de pièces, dates de fabrication, numéros de lot) sur des étiquettes minuscules. Le résultat de sa recherche — le Quick Response Code — pouvait stocker 7 089 caractères numériques dans un carré de quelques centimètres, scannable en 30 millisecondes depuis n'importe quel angle.

Aujourd'hui, plus de 5,3 milliards de scans de QR codes sont réalisés chaque année dans le monde selon Juniper Research (2024). Mais très peu d'utilisateurs comprennent la technologie sophistiquée qui se cache derrière ces carrés noir et blanc. Cet article propose une plongée technique dans les mécanismes internes qui font fonctionner les QR codes.

La norme ISO/IEC 18004 : le standard mondial

Les QR codes sont régis par la norme internationale ISO/IEC 18004:2015, qui définit précisément chaque aspect de leur structure. Contrairement aux codes-barres linéaires (EAN-13, Code 128), les QR codes sont des codes matriciels bidimensionnels : ils encodent l'information sur deux axes (horizontal et vertical), ce qui leur permet de stocker exponentiellement plus de données dans la même surface.

La norme définit 40 versions de QR codes, de la version 1 (21×21 modules) à la version 40 (177×177 modules). Chaque version supérieure ajoute 4 modules par côté. Un module est le plus petit carré noir ou blanc du QR code — l'unité fondamentale d'information.

Anatomie d'un QR code : les composants structurels

Les Finder Patterns (motifs de détection)

Les trois grands carrés situés dans les coins supérieur gauche, supérieur droit et inférieur gauche sont les Finder Patterns. Leur ratio largeur noir-blanc-noir-blanc-noir de 1:1:3:1:1 est unique dans le code et permet au scanner de localiser instantanément le QR code et de déterminer son orientation, quelle que soit la rotation. C'est cette caractéristique qui permet le scan depuis n'importe quel angle — un avantage majeur par rapport aux codes-barres traditionnels.

Les Timing Patterns (motifs de synchronisation)

Deux lignes alternant noir et blanc relient les Finder Patterns : une horizontale et une verticale. Ces Timing Patterns permettent au décodeur de déterminer la densité de la matrice et de synchroniser correctement la lecture des modules, même si le QR code est légèrement déformé (par exemple, imprimé sur une surface courbe).

Les Alignment Patterns (motifs d'alignement)

À partir de la version 2, des petits carrés supplémentaires apparaissent dans le QR code. Ces Alignment Patterns aident à corriger la distorsion de perspective. Plus la version est élevée, plus il y a de ces marqueurs : la version 7 en compte 6, la version 40 en compte 46.

La zone de données

Tout le reste du QR code constitue la zone de données. Les modules noirs et blancs y représentent les bits de l'information encodée, entrelacés avec les bits de correction d'erreurs. L'information est lue en colonnes de 2 modules de large, en zigzag de bas en haut puis de haut en bas.

Les quatre modes d'encodage

La norme ISO 18004 définit quatre modes d'encodage, chacun optimisé pour un type de données spécifique :

  • Mode numérique : encode les chiffres 0-9 à raison de 3,33 bits par caractère. Un QR code version 40 peut stocker jusqu'à 7 089 chiffres.
  • Mode alphanumérique : encode les chiffres, les lettres majuscules A-Z et 9 caractères spéciaux ($, %, *, +, -, ., /, :, espace) à 5,5 bits par caractère. Capacité maximale : 4 296 caractères.
  • Mode byte (octet) : encode n'importe quel caractère ISO 8859-1 sur 8 bits. C'est le mode utilisé pour les URLs et le texte avec caractères spéciaux. Capacité : 2 953 octets.
  • Mode Kanji : encode les caractères Kanji japonais (JIS X 0208) sur 13 bits par caractère. Capacité : 1 817 caractères.

Le générateur choisit automatiquement le mode le plus efficace. Pour une URL comme « https://example.com », le mode byte est utilisé car l'URL contient des minuscules (non supportées en mode alphanumérique). C'est pourquoi un URL en MAJUSCULES génère un QR code plus simple — une astuce méconnue mais utile pour les impressions en petit format.

La correction d'erreurs Reed-Solomon : la vraie magie

C'est le composant le plus remarquable du QR code. L'algorithme de correction d'erreurs Reed-Solomon (inventé par Irving S. Reed et Gustave Solomon en 1960 au MIT Lincoln Laboratory) permet de reconstruire les données même si une partie du QR code est endommagée, sale ou obstruée.

Quatre niveaux de correction sont définis :

  1. Niveau L (Low) : récupère jusqu'à 7% des données perdues
  2. Niveau M (Medium) : récupère jusqu'à 15% des données perdues
  3. Niveau Q (Quartile) : récupère jusqu'à 25% des données perdues
  4. Niveau H (High) : récupère jusqu'à 30% des données perdues

Concrètement, un QR code avec correction de niveau H continuera de fonctionner même si près d'un tiers de sa surface est endommagé. C'est cette propriété qui permet d'ajouter des logos au centre des QR codes : le logo « détruit » une partie des données, mais la correction d'erreurs compense. Attention toutefois : un logo trop grand peut rendre le QR code illisible si la destruction dépasse la capacité de correction du niveau choisi.

Le prix de cette robustesse est la taille : plus le niveau de correction est élevé, plus le QR code doit être grand pour stocker la même quantité de données. Le niveau L permet de stocker 30% de données en plus que le niveau H pour la même version.

Le masquage : un mécanisme d'optimisation méconnu

Après l'encodage des données et l'ajout des codes de correction d'erreurs, le QR code subit un processus de masquage. Huit masques prédéfinis (numérotés de 0 à 7) sont testés. Chaque masque est une formule mathématique qui inverse certains modules selon leur position (par exemple, le masque 0 inverse tous les modules où (ligne + colonne) est pair).

L'objectif du masquage est d'éviter les motifs qui perturbent le décodage : grandes zones uniformes noires ou blanches, motifs ressemblant aux Finder Patterns, ou déséquilibre excessif entre modules noirs et blancs. Un système de pénalité évalue chaque masque selon 4 critères, et le masque avec le score de pénalité le plus bas est sélectionné.

Ce processus est entièrement automatique — le générateur teste les 8 masques et choisit le meilleur. C'est pourquoi le même contenu produit toujours le même QR code : le processus est déterministe.

Du scan au décodage : ce que fait votre smartphone

Quand vous pointez votre caméra vers un QR code, voici ce qui se passe en quelques millisecondes :

  1. Détection : l'algorithme cherche les trois Finder Patterns avec leur ratio 1:1:3:1:1 caractéristique.
  2. Orientation : la position relative des trois Finder Patterns détermine l'orientation du code.
  3. Correction de perspective : les Alignment Patterns et Timing Patterns corrigent les déformations.
  4. Échantillonnage : chaque module est identifié comme noir (1) ou blanc (0).
  5. Démasquage : le numéro de masque est lu dans les Format Information bits et le masque inverse est appliqué.
  6. Correction d'erreurs : l'algorithme Reed-Solomon vérifie et corrige les données.
  7. Décodage : les bits sont convertis en texte selon le mode d'encodage spécifié.

L'ensemble de ce processus prend typiquement moins de 50 millisecondes sur un smartphone moderne — plus rapide qu'un clignement d'œil.

Micro QR et QR codes de nouvelle génération

La norme ISO/IEC 18004 inclut également le Micro QR Code, une version compacte avec un seul Finder Pattern (au lieu de trois), conçue pour les espaces très restreints comme les composants électroniques. Sa capacité est limitée à 35 caractères numériques.

En 2022, Denso Wave a dévoilé le rMQR (Rectangular Micro QR) — un QR code rectangulaire adapté aux espaces allongés (étiquettes de câbles, tubes de laboratoire). Il est standardisé sous ISO/IEC 23941:2022.

Le SQRC (Secret-function-equipped QR code) ajoute une couche de chiffrement permettant de stocker des données lisibles uniquement par des scanners autorisés, tout en gardant une couche de données publiques accessible par n'importe quel smartphone.

Pourquoi cette technologie reste inégalée

Trente ans après son invention, le QR code reste la technologie d'identification automatique la plus polyvalente au monde. Sa combinaison unique de haute capacité de stockage (jusqu'à 7 089 caractères), de robustesse (correction d'erreurs jusqu'à 30%), de vitesse de lecture (moins de 50 ms) et de gratuité (Denso Wave a renoncé à faire valoir ses droits de brevet) en fait un standard quasi impossible à remplacer.

Des technologies concurrentes existent — Data Matrix (ISO/IEC 16022), Aztec Code (ISO/IEC 24778), PDF417 — mais aucune ne combine autant d'avantages. Le Data Matrix est plus compact mais moins rapide à scanner. L'Aztec Code offre une meilleure correction d'erreurs mais est moins standardisé. Le PDF417 est plus ancien et unidimensionnel.

La prochaine fois que vous scannerez un QR code, vous saurez que derrière ce simple carré se cachent 30 ans de recherche en théorie de l'information, en algèbre abstraite et en traitement d'image — le tout exécuté en un battement de paupières.

Générer un QR Code

Générez des QR codes personnalisés pour vos liens, textes, contacts et bien plus encore. Gratuit, rapide et sans inscription.

Générer un QR Code
technologieQR codeReed-SolomonISO 18004