}
FreeQR
Back to Blog
Correction d'Erreur des QR Codes : Pourquoi les Codes Endommages Fonctionnent Encore

Correction d'Erreur des QR Codes : Pourquoi les Codes Endommages Fonctionnent Encore

Decouvrez comment fonctionne la correction d'erreur des QR codes, les quatre niveaux (L, M, Q, H) et pourquoi les codes endommages restent lisibles. Choisissez le bon niveau avec FreeQR.

Un QR code de menu de restaurant avec une trace de cafe dans un coin. Un panneau de jardin decolore par trois mois de soleil direct. Une etiquette d'entrepot tachee de graisse. Les trois se scannent encore.

Ce n'est pas de la chance. Chaque QR code contient des donnees redondantes qui permettent aux scanners de reconstruire les parties endommagees ou manquantes. La specification ISO/IEC 18004:2024 appelle cela la correction d'erreur des QR codes, et cette fonctionnalite fait partie du format depuis sa premiere standardisation en 2000. Un code barre classique presentant les memes dommages serait illisible.

Points cles :

  • Les QR codes utilisent la correction d'erreur Reed-Solomon pour recuperer les donnees apres un dommage physique, conformement a la norme ISO/IEC 18004:2024.

  • Quatre niveaux : L (7 %), M (15 %), Q (25 %), H (30 %). Le pourcentage correspond aux codewords recuperables, pas a la surface physique.

  • Un niveau de correction plus eleve signifie une meilleure tolerance aux dommages, mais une capacite de donnees reduite.

  • Les QR codes ne renvoient jamais de donnees erronees. Ils echouent proprement lorsque les dommages depassent la capacite de correction.

  • Les QR codes dynamiques stockent de courtes URL de redirection, donc le niveau M offre une marge suffisante pour la plupart des cas d'utilisation.

Qu'est-ce que la correction d'erreur des QR codes ?

Modules de QR code endommages surlignes en rouge et reconstruits en vert par la correction d'erreur Reed-Solomon

Imaginez des donnees de sauvegarde integrees directement dans le code. Lorsque la salete, les rayures ou la decoloration detruisent certains modules noirs et blancs, le scanner utilise ces donnees de sauvegarde pour combler les lacunes. Le message complet est restitue meme si des parties manquent.

Le principe mathematique sous-jacent s'appelle la correction d'erreur Reed-Solomon. Irving S. Reed et Gustave Solomon l'ont publiee en 1960 au MIT Lincoln Laboratory pour les communications par satellite, ou le bruit du signal altere les donnees transmises. Le meme algorithme a ensuite ete utilise dans les CD, DVD, disques Blu-ray et les systemes de donnees des sondes Voyager de la NASA. Lorsque DENSO WAVE a concu le QR code en 1994, Reed-Solomon s'imposait naturellement. L'algorithme avait deja survecu a l'espace lointain.

La norme QR code specifie quatre niveaux de correction d'erreur. Chaque niveau determine la quantite de donnees redondantes que le code contient et, en contrepartie directe, la quantite totale de donnees que le code peut stocker.

Les quatre niveaux de correction d'erreur des QR codes

Chaque QR code est genere avec l'un des quatre niveaux de correction d'erreur. Le tableau ci-dessous indique ce que chaque niveau recupere, la capacite de donnees maximale a la taille maximale (Version 40, le plus grand QR code defini dans la specification) et les cas d'utilisation les plus adaptes.

Niveau

Nom

Recuperation

Capacite max. (V40)

Ideal pour

L

Low

7%

2,953 bytes

Ecrans numeriques, environnements propres

M

Medium

15%

2,331 bytes

Impressions interieures, flyers, menus (choix par defaut le plus courant)

Q

Quartile

25%

1,663 bytes

Signaletique exterieure, packaging, surfaces sujettes a l'usure

H

High

30%

1,273 bytes

Logos sur le code, environnements industriels, usines

Plus de protection coute de l'espace de stockage. En Version 40, le niveau L contient 2,953 bytes. Le niveau H en contient 1,273. Cela represente une reduction de 57 % de la capacite au profit de la resistance aux dommages.

La plupart des generateurs utilisent le niveau M par defaut. DENSO WAVE confirme qu'il s'agit du niveau le plus frequemment selectionne en pratique. Le niveau M gere les rayures mineures, la decoloration legere et les traces de doigts sans rendre le code plus grand que necessaire.

Ces pourcentages ISO sont toutefois des maximums theoriques. En pratique, les codes tendent a echouer plus tot. L'ingenieur logiciel Huon Wilson a teste 12,800 configurations de QR codes avec des dommages simules et a constate que les codes de niveau H produisaient 60 % de scans reussis en plus par rapport au niveau L. Les seuils d'echec pratiques etaient d'environ 6 % pour L, 12 % pour M, 18 % pour Q et 20 % pour H. Les dommages reels ne se repartissent pas uniformement, ce qui fait que le code atteint sa limite plus tot que ne le suggere la specification.

Quel niveau de dommage un QR code peut-il supporter ?

QR code avec une tache de cafe au centre qui se scanne encore contre un QR code avec un coin dechire qui echoue

Les pourcentages du tableau font reference aux codewords (unites de donnees encodees), et non a la surface physique. Endommager 15 % de la surface ne corrompt pas necessairement 15 % des codewords. La raison tient a la facon dont les donnees sont organisees a l'interieur de la grille.

Entrelacement des codewords

Pour les QR codes de grande taille, les donnees encodees sont reparties en plusieurs blocs Reed-Solomon puis entrelacees avant d'etre placees dans la grille. Une rayure traversant le code en diagonale ne detruit pas des codewords consecutifs. Elle endommage un codeword ici, en saute trois, en endommage un autre la. Les dommages sont repartis entre plusieurs blocs de correction au lieu de submerger un seul bloc. C'est pourquoi une longue rayure est souvent plus facile a supporter qu'un trou profond perce a un seul endroit.

Detection d'erreurs contre correction d'erreurs

L'algorithme Reed-Solomon peut detecter deux fois plus d'erreurs qu'il ne peut en corriger. Au niveau M, l'algorithme corrige jusqu'a 15 % des codewords corrompus, mais detecte une corruption allant jusqu'a 30 %. Lorsque les dommages depassent le budget de correction tout en restant dans la plage de detection, le scanner sait que les donnees sont compromises et ne renvoie rien.

C'est une fonctionnalite de securite. Un QR code endommage ne vous enverra jamais vers le mauvais site web et ne debitera jamais le mauvais compte. Il fonctionne correctement ou ne renvoie rien. Pour les codes de paiement et les jetons d'authentification, cette distinction est capitale.

L'exception des motifs de reperage

Les trois grands carres dans les coins de chaque QR code sont les motifs de reperage. Le scanner les utilise pour localiser et orienter le code. Ils ne sont pas proteges par la correction d'erreur comme le sont les modules de donnees. Si une dechirure, un pli ou un autocollant recouvre l'un des trois coins, le code echouera presque certainement, quel que soit le niveau de correction. Aucune redondance ne peut sauver un code dont un coin est manquant.

Quel niveau de correction d'erreur choisir ?

Voici les recommandations selon les cas d'utilisation courants.

Impressions interieures (menus, flyers, cartes de visite) : niveau M. Environnements propres avec un contact physique minimal. Le niveau M gere les traces occasionnelles et les plis sans rendre le code plus grand que necessaire.

Surfaces exterieures ou exposees aux intemperies (panneaux de jardin, autocollants, abribus) : niveau Q ou H. Decoloration UV, pluie, contact physique des passants. Ces codes necessitent un budget de correction d'erreur plus important, car les dommages s'accumulent au fil des semaines et des mois.

QR codes avec logo ou personnalises : niveau H. Un logo central recouvre intentionnellement des modules de donnees, generalement 20 a 30 % de la surface du code. Le budget de correction de 30 % du niveau H absorbe cela. Sans lui, vous prenez un risque. Une etude de l'AutoID Lab de l'University of Memphis a teste des QR codes personnalises et a constate que les taux de lecture moyens etaient de 61,5 %, les pires tombant a 9,6 %. Les codes non modifies atteignaient environ 95 %. La principale cause d'echec etait l'endommagement des motifs de reperage dans les coins.

Affichage numerique (ecrans, presentations, e-mails) : niveau L. Aucun risque de dommage physique. Le code existe sous forme de pixels sur un ecran. Le niveau L maintient le code compact et rapide a scanner.

QR codes dynamiques : le niveau M suffit generalement. Un QR code dynamique ne stocke qu'une courte URL de redirection (par exemple, freeqr.to/abc123), pas l'integralite du contenu de destination. Moins de donnees signifie moins de modules, ce qui donne a la correction d'erreur proportionnellement plus de marge.

Dans le designer de FreeQR, les quatre niveaux de correction d'erreur sont intitules Low, Medium, High et Highest (correspondant a L, M, Q et H). Le niveau par defaut est Medium. Ajoutez un logo et l'indicateur de scannabilite vous signale si le logo recouvre trop de modules pour le niveau selectionne. Les codes dynamiques permettent egalement de modifier la destination sans reimprimer.

Une precision importante : le niveau de correction d'erreur est defini au moment de la generation du code. Il ne peut pas etre modifie apres impression. Si vous choisissez le niveau L et deplacez ensuite le code en exterieur, la seule solution est de creer un nouveau code avec un niveau plus eleve. En cas de doute, optez pour le niveau M.

Envie de voir comment cela fonctionne ? Creez un QR code gratuit sur FreeQR et choisissez votre niveau de correction d'erreur.

FAQ

Qu'est-ce que la correction d'erreur des QR codes ?

Des donnees supplementaires integrees dans un QR code qui permettent aux scanners de reconstruire les modules endommages ou manquants. Le mecanisme utilise les codes Reed-Solomon, un algorithme mathematique developpe a l'origine pour les communications par satellite, puis adopte dans la specification des QR codes (ISO/IEC 18004:2024).

Quel pourcentage d'un QR code peut etre endommage tout en restant fonctionnel ?

Jusqu'a 30 % au niveau H, 25 % au Q, 15 % au M et 7 % au L. Ces pourcentages correspondent a la proportion de codewords recuperables, pas a la surface physique du code. La capacite de survie reelle depend de l'emplacement des dommages et de leur interaction avec l'entrelacement des codewords.

Quels sont les quatre niveaux de correction d'erreur ?

L (Low, 7 %), M (Medium, 15 %), Q (Quartile, 25 %) et H (High, 30 %). La plupart des generateurs utilisent le niveau M par defaut.

Quel niveau de correction d'erreur utiliser pour un logo ?

Le niveau H (30 %). Un logo central recouvre generalement 20 a 30 % des modules du code. Le niveau H fournit au scanner suffisamment de donnees redondantes pour reconstruire ce que le logo masque. Utiliser un niveau inferieur avec un logo risque de rendre le code impossible a scanner.

Un QR code endommage peut-il donner de mauvaises informations ?

Non. Lorsque les dommages depassent ce que l'algorithme peut corriger, le scanner ne renvoie rien. Vous obtenez un resultat vide, jamais une mauvaise URL ni une mauvaise adresse de paiement. L'algorithme Reed-Solomon peut detecter deux fois plus d'erreurs qu'il ne peut en corriger, ce qui permet au code de savoir quand il est trop endommage pour etre fiable.


Redige par Andy Lee, specialiste en technologie QR chez FreeQR.