Blog
9 min readMoreFreeTools Team

Comment Fonctionnent les Codes QR : La Correction d'Erreurs Expliquée

Découvrez comment fonctionnent les codes QR en coulisses, pourquoi la correction d'erreurs Reed-Solomon permet d'ajouter un logo à un code QR et de le scanner quand même, et comment la capacité, le masquage et la version influencent chaque scan.

comment fonctionnent les codes QRgénérateur code QRcorrection d'erreurs QRcode QR avec logocapacité code QR

Générateur de Code QR

L'outil gratuit mentionné dans cet article — essayez-le directement dans votre navigateur.

Ouvrir l'outil

Comment Fonctionnent les Codes QR : L'Ingénierie Derrière Chaque Scan

Vous avez presque certainement scanné un code QR cette semaine. Les menus de restaurant, les billets d'événements, les emballages de produits et les écrans de paiement reposent tous sur ces familiers carrés noir et blanc. Mais vous êtes-vous déjà demandé pourquoi vous pouvez placer le logo d'une entreprise au centre d'un code QR et qu'il se scanne encore parfaitement ? La réponse se trouve au cœur d'une branche des mathématiques appelée correction d'erreurs Reed-Solomon, et la comprendre révèle à quel point ces symboles sont élégamment conçus.

Cet article explique comment fonctionnent les codes QR depuis les bases : leur origine, leur anatomie, les quatre modes d'encodage, les niveaux de correction d'erreurs, les motifs de masquage, et pourquoi certains codes QR refusent de se scanner. Aucune connaissance préalable en ingénierie n'est requise.


Une Brève Histoire des Origines

Les codes QR ont été inventés en 1994 par Masahiro Hara, ingénieur chez Denso Wave, une filiale de Toyota. Le cas d'usage original était modeste : suivre des pièces automobiles sur le sol d'une usine. Les codes-barres de l'époque ne pouvaient contenir qu'environ 20 caractères alphanumériques et nécessitaient un alignement précis avec le scanner. L'équipe de Hara avait besoin de quelque chose capable de contenir un numéro de pièce complet, d'être lu sous n'importe quel angle, et de décoder environ dix fois plus vite qu'un code-barres standard.

Le nom "QR" signifie Quick Response (réponse rapide), en référence à cet objectif de vitesse. Denso Wave a publié la norme publiquement et a choisi de ne pas appliquer son brevet, ce qui explique pourquoi les codes QR se sont répandus dans le monde entier sans friction de licence.


Outil associé

Générateur de Code QR

Utilisez-le directement dans votre navigateur. Sans inscription, sans téléchargement, sans données enregistrées.

Utiliser l'outil

L'Anatomie d'un Code QR

Un code QR n'est pas un arrangement aléatoire de carrés noirs et blancs. Chaque région a un but précis.

Motifs de Détection

Les trois grands motifs de détection, les symboles carrés dans un carré situés dans trois coins de chaque code QR, sont la première chose qu'un scanner cherche. Leur ratio distinctif 1:1:3:1:1 de modules sombre-clair-sombre-clair-sombre peut être détecté à n'importe quel angle de rotation, à n'importe quelle distance, et même lorsque le code est légèrement déformé. Ils indiquent au scanner : voici le code, voici son orientation, et voici son échelle.

Un quatrième coin est laissé vide intentionnellement. Cette asymétrie indique au scanner quel côté est le haut.

Motifs d'Alignement

Les codes QR plus grands (Version 2 et supérieure) incluent de plus petits motifs d'alignement dispersés dans le symbole. Leur rôle est de corriger les surfaces courbées ou déformées. Si vous avez déjà scanné un code QR imprimé sur une bouteille cylindrique ou en relief sur une surface arrondie, ce sont les motifs d'alignement qui l'ont rendu possible.

Motifs de Synchronisation

Entre les motifs de détection courent des motifs de synchronisation : des bandes alternées noires et blanches d'un seul module de large. Ils fonctionnent comme une règle, permettant au scanner de compter les lignes et les colonnes avec précision, même si l'image est légèrement inclinée.

Informations de Format

Deux bandes enveloppant les motifs de détection stockent les informations de format : le niveau de correction d'erreurs et le motif de masquage utilisé. De façon cruciale, ces données sont encodées à l'aide d'un code BCH (15,5), un type de code correcteur d'erreurs, afin que le format puisse être lu même si de grandes portions du symbole principal sont endommagées. Avant que le scanner puisse décoder des données, il doit lire les informations de format.

Modules de Données

Le reste du symbole est constitué de modules de données : la charge utile encodée réelle. Les données sont stockées en octets de 8 bits et lues selon un motif en zigzag spécifique, en commençant par le coin inférieur droit et en remontant dans des colonnes de deux modules de large. L'ordre de lecture évite les régions fonctionnelles (motifs de détection, motifs d'alignement, bandes de synchronisation et bandes de format).


Les Quatre Modes d'Encodage

Les codes QR prennent en charge quatre façons de représenter les données, chacune avec un jeu de caractères et une capacité différents. À la Version 1 (le plus petit code QR possible, 21x21 modules) avec le Niveau de Correction d'Erreurs M, les limites sont :

Mode Jeu de Caractères Capacité
Numérique Chiffres 0-9 34 chiffres
Alphanumérique 0-9, A-Z, espace et 9 symboles 20 caractères
Octet Toute donnée 8 bits, y compris UTF-8 14 octets
Kanji Caractères japonais à double octet 8 caractères

Les encodeurs choisissent le mode (ou la combinaison de modes) qui compresse le plus de données dans le moins de modules. Une URL comme https://morefreetools.com utilise le mode Octet car elle contient des lettres minuscules qui ne font pas partie du jeu alphanumérique.


Correction d'Erreurs Reed-Solomon : Pourquoi les Codes QR Survivent aux Dommages

C'est le cœur de l'article. Comprendre la correction d'erreurs Reed-Solomon explique l'astuce du logo, et bien plus encore.

Reed-Solomon n'est pas propre aux codes QR. Le même algorithme protège les données sur les CD, DVD, disques Blu-ray, disques de stockage utilisant des matrices RAID, et même les signaux renvoyés par les sondes Voyager dans l'espace profond. Chaque fois que vous jouez un CD rayé sans entendre de parasites, Reed-Solomon travaille en arrière-plan.

Comment Cela Fonctionne (Conceptuellement)

Pensez à une baie de disques RAID-5. Si vous avez quatre disques et qu'un tombe complètement en panne, le système RAID peut reconstruire chaque octet qui se trouvait sur le disque défaillant en utilisant les données de parité réparties sur les trois autres. Aucune donnée n'est perdue même si un disque entier a disparu.

Reed-Solomon fonctionne sur un principe similaire, mais mathématiquement. L'encodeur traite les octets de données comme les coefficients d'un polynôme. Il évalue ensuite ce polynôme en un ensemble de points supplémentaires et ajoute ces valeurs au message sous forme de mots de code de contrôle. Le message encodé est maintenant plus long que les données originales, mais il contient suffisamment de redondance pour qu'un décodeur puisse reconstruire le polynôme original, et donc les données originales, même si certains mots de code ont été corrompus ou effacés entièrement.

De façon cruciale, Reed-Solomon ne se contente pas de détecter les erreurs. Il les corrige. Tant que le nombre de mots de code endommagés reste dans le budget de correction d'erreurs, les données originales sont entièrement récupérables sans perte.


Les Quatre Niveaux de Correction d'Erreurs

Les codes QR offrent quatre niveaux de correction d'erreurs. Les niveaux supérieurs sacrifient la capacité (plus de modules sont utilisés pour les mots de code de contrôle) en échange de la résilience.

Niveau Nom Capacité de Récupération
L Faible 7% des mots de code
M Moyen 15% des mots de code
Q Quartile 25% des mots de code
H Élevé 30% des mots de code

Pourquoi les Codes QR avec Logos Fonctionnent

C'est l'insight clé. Lorsqu'un designer place un logo au centre d'un code QR, le logo couvre physiquement des modules de données. Du point de vue du scanner, ces modules sont simplement manquants, exactement comme un disque défaillant dans l'analogie RAID.

Si le code QR a été généré au Niveau H, jusqu'à 30% du symbole peut être oblitéré et les données sont encore entièrement récupérables. Le logo remplace des données que la couche Reed-Solomon peut reconstruire à partir des mots de code de contrôle restants. Ce n'est pas un hack ou l'exploitation d'une faille. C'est une conception intentionnelle : la norme a été construite avec exactement ce type de dommage physique en tête. Denso Wave pensait aux codes-barres imprimés sur des sols d'usine sales, pas aux équipes marketing ajoutant des logos, mais les mathématiques ne se soucient pas de l'intention.

La règle pratique : si votre code QR aura un logo, générez-le toujours au Niveau H. Gardez le logo couvrant moins de 30% de la surface du symbole, et centrez-le pour éviter d'obscurcir les motifs de détection dans les coins.


Motifs de Masquage : Éviter la Confusion du Scanner

Après que les mots de code de données sont placés dans le symbole, l'encodeur applique un motif de masquage. Il existe 8 masques standard, chacun défini comme une formule XOR simple appliquée à chaque module de données. Par exemple, le motif de masque 0 inverse chaque module à une position où (ligne + colonne) mod 2 == 0.

Pourquoi ? Les scanners peuvent avoir du mal avec de grandes régions uniformes de la même couleur. Un bloc de blanc ou un bloc de noir perturbe les algorithmes qui cherchent les ratios spécifiques des motifs de détection. Le masquage décompose ces régions en introduisant un motif alterné contrôlé.

L'encodeur essaie les 8 masques et évalue chaque résultat selon 4 règles de pénalité qui pénalisent des choses comme : des séquences de modules de même couleur de plus de 5 d'affilée, des blocs 2x2 de la même couleur, des motifs ressemblant aux motifs de détection, et des ratios déséquilibrés de modules sombres par rapport aux modules clairs. Le masque avec le score de pénalité total le plus bas est celui utilisé dans le symbole final.


Version et Capacité : De la Version 1 à la Version 40

Les codes QR existent en 40 versions. La Version 1 fait 21x21 modules. Chaque incrément de version ajoute 4 modules à la fois à la largeur et à la hauteur, donc la Version 40 fait 177x177 modules.

À la Version 40 avec le Niveau L de correction d'erreurs (le moins de redondance, le plus de capacité) :

  • 7 089 chiffres numériques
  • 4 296 caractères alphanumériques
  • 2 953 octets (environ 2,9 Ko de données binaires)
  • 1 817 caractères Kanji

Les niveaux de correction d'erreurs plus élevés réduisent ces capacités car plus de modules sont consommés par les mots de code de contrôle. Le générateur de code QR que vous choisissez sélectionnera automatiquement la version minimale qui correspond à vos données au niveau de correction d'erreurs choisi.


Pourquoi Certains Codes QR Échouent à Scanner

Tous les codes QR ne se scannent pas du premier coup. Voici les causes les plus fréquentes d'échec :

Contraste insuffisant. Un code QR a besoin d'un fort contraste entre les modules sombres et clairs. Imprimer du gris foncé sur du gris moyen, ou utiliser une couleur très claire sur blanc, réduit le ratio de contraste en dessous de ce que la plupart des scanners peuvent gérer. La norme recommande un ratio de contraste minimum de 4:1.

Zone silencieuse manquante ou trop étroite. Chaque code QR doit être entouré d'une bordure vierge appelée zone silencieuse, d'au moins 4 modules de large de chaque côté. Imprimer le code trop près d'autres éléments de conception, ou jusqu'au bord d'une étiquette, élimine la zone silencieuse et provoque des échecs de scan.

Trop de données pour la version. Si l'encodeur est contraint d'utiliser une très petite version avec un niveau de correction d'erreurs élevé pour garder le code compact, les modules deviennent très petits. Imprimés à de petites tailles physiques, les modules peuvent être trop fins pour être résolus par l'appareil photo d'un téléphone.

Surfaces réfléchissantes. Imprimer un code QR sur du papier brillant, du métal ou du verre peut provoquer des reflets qui effacent des portions du symbole. Les finitions matte sont bien plus fiables pour le scan.

Angle de scan extrême. Scanner à un angle supérieur à environ 45 degrés introduit suffisamment de distorsion de perspective pour que les motifs de détection et d'alignement ne puissent pas compenser. Gardez le scan aussi perpendiculaire que possible dans la pratique.

Symbole endommagé ou sale. Au-delà du budget de correction d'erreurs, les dommages physiques empêchent véritablement le décodage. Un code QR au Niveau H peut survivre à 30% de dommages ; un code au Niveau L ne peut survivre qu'à 7%.


Codes QR Dynamiques vs. Statiques

Il existe une distinction pratique importante entre deux types de codes QR que l'on rencontre couramment.

Un code QR statique encode l'URL de destination finale (ou d'autres données) directement dans le symbole. Si l'URL change, vous devez générer et réimprimer entièrement un nouveau code QR. Les codes statiques sont simples et n'ont aucune dépendance d'infrastructure permanente.

Un code QR dynamique encode une URL de redirection courte (souvent hébergée par un service de code QR). Lorsque quelqu'un le scanne, son téléphone récupère l'URL de redirection, qui pointe vers la destination réelle. La destination réelle peut être modifiée dans le tableau de bord du service à tout moment sans régénérer ni réimprimer le code QR. Les codes dynamiques sont utiles pour les campagnes imprimées où la destination peut nécessiter une mise à jour après la distribution des matériaux.

Notez que les codes dynamiques dépendent du bon fonctionnement continu du service de redirection. Un code statique fonctionne indéfiniment, tant que l'URL de destination est active.


Foire Aux Questions

Pourquoi un code QR avec un logo se scanne-t-il encore ?

Un logo placé sur un code QR détruit physiquement certains modules de données. Cependant, les codes QR générés au Niveau de Correction d'Erreurs H peuvent récupérer jusqu'à 30% des mots de code endommagés grâce aux mathématiques Reed-Solomon. Le logo déclenche essentiellement le même mécanisme de récupération que les dommages physiques. Tant que le logo couvre moins de 30% du symbole et est centré pour éviter les motifs de détection dans les coins, le code se scannera.

Qu'est-ce que l'algorithme Reed-Solomon en termes simples ?

Reed-Solomon est une technique mathématique pour ajouter une redondance structurée aux données. L'encodeur représente vos données sous forme de polynôme et calcule des valeurs de contrôle supplémentaires en des points extra sur ce polynôme. Si certaines données sont ensuite perdues ou corrompues, le décodeur utilise ces valeurs de contrôle supplémentaires pour reconstruire mathématiquement le polynôme original, récupérant ainsi les données perdues. La même technique protège les CD, les DVD et la télémétrie des engins spatiaux.

Quelle est la quantité maximale de données qu'un code QR peut contenir ?

Un code QR Version 40 au Niveau de Correction d'Erreurs L peut contenir jusqu'à 7 089 chiffres numériques, 4 296 caractères alphanumériques, ou 2 953 octets de données binaires. En pratique, la plupart des codes QR encodent des URL courtes et utilisent bien moins que la capacité maximale, ce qui permet d'utiliser une version plus petite et un scan plus facile.

Dois-je utiliser le Niveau H de correction d'erreurs pour tous les codes QR ?

Pas nécessairement. Le Niveau H produit un symbole plus dense et plus grand pour la même charge utile de données car plus de modules sont utilisés pour les mots de code de contrôle. Si votre code QR n'aura pas de logo et sera imprimé proprement à une taille raisonnable, le Niveau M (15% de récupération) est généralement suffisant et produit un code plus facilement scannable. Utilisez le Niveau H lors de l'ajout d'un logo, de l'impression sur une surface potentiellement sale, ou lorsque le code doit être très petit.

Qu'est-ce que la zone silencieuse et pourquoi est-elle importante ?

La zone silencieuse est la bordure blanche vierge entourant le symbole du code QR. Elle doit faire au moins 4 modules de large de chaque côté. Sans la zone silencieuse, un scanner ne peut pas déterminer où le symbole se termine et où commence le design environnant. Les motifs de détection reposent sur la détection d'une transition du blanc (zone silencieuse) vers le premier module sombre. Éliminez la zone silencieuse et même un code QR parfaitement formé ne se scannera pas de manière fiable.


Prêt à générer un code QR avec toutes ces connaissances en main ? Utilisez le Générateur de Code QR sur MoreFreeTools pour créer des codes à n'importe quel niveau de correction d'erreurs, ajouter un logo, et télécharger un fichier prêt à imprimer.

Outil associé

Générateur de Code QR

Utilisez-le directement dans votre navigateur. Sans inscription, sans téléchargement, sans données enregistrées.

Utiliser l'outil