Aller au contenu principal

Correction d’erreur d’un QR code : choisir entre L, M, Q et H

C’est grâce à elle qu’un QR code taché, plié ou orné d’un logo continue de fonctionner. Mais la correction d’erreur a un prix, et le bon niveau dépend de ce que vous encodez et de l’endroit où le code vivra.

Par Kelvyn Laine · 8 min de lecture · Mis à jour le 25 septembre 2026

Une assurance intégrée au code

Un QR code ne contient pas seulement votre adresse ou votre texte. En plus des données utiles, il embarque des données de correction, calculées à partir des premières. Lorsqu’une partie de l’image est illisible — un pli, une goutte, un reflet, un logo posé au centre —, le lecteur s’en sert pour reconstituer ce qui manque, à la manière d’un correcteur qui devinerait les lettres effacées d’un mot à partir du reste de la phrase, mais avec une rigueur mathématique.

La technique employée s’appelle le code de Reed-Solomon. On la retrouve dans les CD, les DVD, les communications spatiales ou certains systèmes de stockage. Elle ne travaille pas sur des pixels mais sur des mots de code : des paquets de huit modules qui représentent chacun un octet. Le code est divisé en blocs, et sur les versions un peu denses ces blocs sont entrelacés dans l’image : une tache localisée abîme alors quelques octets de plusieurs blocs plutôt que beaucoup d’octets d’un seul, ce qui augmente les chances de réparation.

Les quatre niveaux

La norme ISO/IEC 18004 définit quatre niveaux, désignés par une lettre. Le choix se fait au moment de la génération et ne peut plus être modifié ensuite : il est inscrit dans le code lui-même.

NiveauPart des mots de code récupérablesProfil
L (Low)environ 7 %Le plus compact ; pour un écran propre et un contenu long
M (Medium)environ 15 %Le compromis courant pour un usage numérique ou un contenu dense
Q (Quartile)environ 25 %Supports imprimés manipulés, étiquettes, emballages
H (High)environ 30 %Logo central, extérieur, supports exposés à l’usure

Ce que ces pourcentages ne disent pas

Le chiffre porte sur la proportion d’octets que le décodeur sait reconstituer, et non sur une surface que l’on pourrait recouvrir à volonté. Une rayure fine qui traverse le code en diagonale touche un grand nombre d’octets à la fois ; elle peut dépasser la capacité de correction alors qu’elle ne couvre qu’une infime partie de l’image. À l’inverse, une tache ronde de même surface qui tombe sur une zone compacte sera plus facilement absorbée.

Ce qui n’est jamais réparable

La correction d’erreur protège les données, pas la structure qui permet de les trouver. Si les motifs de repérage, ces carrés concentriques placés dans trois angles, sont abîmés, le lecteur ne localise tout simplement pas le code. Même chose si la marge claire qui l’entoure est envahie par un décor. Quant au niveau de correction lui-même, il est inscrit dans une petite zone d’information de format, dupliquée à deux endroits près des coins et protégée par son propre mécanisme : c’est ainsi que le lecteur sait comment décoder le reste.

Le prix de la robustesse : un code plus dense

Les octets de correction occupent de la place. À contenu égal, monter en niveau oblige à passer à une grille plus grande, donc à des modules plus petits pour une même taille imprimée. Voici ce que cela donne pour l’adresse https://www.restaurant-exemple.fr/carte (39 caractères), imprimée sur 3 cm de large avec la marge réglementaire de quatre modules :

NiveauGrilleTaille d’un module à 3 cm
L29 × 29 (version 3)0,81 mm
M29 × 29 (version 3)0,81 mm
Q33 × 33 (version 4)0,73 mm
H37 × 37 (version 5)0,67 mm

Pour un contenu court comme celui-ci, l’écart reste modeste et le niveau H ne pose aucun problème. Il devient déterminant lorsque le contenu s’allonge. Une grille de 37 × 37 modules (version 5) accueille jusqu’à 106 octets en niveau L, mais seulement 44 en niveau H ; une grille de 57 × 57 (version 10) passe de 271 octets en L à 119 en H. Une fiche de contact complète ou un long texte peuvent ainsi produire, en niveau H, un code trop serré pour être imprimé petit. Le guide quelle taille pour un QR code imprimé explique pourquoi la taille des modules est le vrai critère de lisibilité.

Poser un logo au milieu d’un QR code revient à effacer volontairement des modules et à compter sur la correction d’erreur pour les reconstituer. Le budget de réparation est donc en partie consommé avant même la première impression : il en reste moins pour absorber une salissure ou un mauvais éclairage. C’est pourquoi un logo appelle toujours le niveau H.

Dans le générateur de QR Studio, l’import d’une image dans la section Logo central règle automatiquement la correction sur H. Rien ne vous empêche ensuite de redescendre manuellement à un niveau inférieur : évitez-le tant qu’un logo est présent. De même, gardez le réglage « Taille du logo » dans des valeurs raisonnables et laissez actif le halo de sécurité, qui dégage proprement les modules autour de l’image. Un logo plus petit, bien détouré, laisse davantage de marge au décodeur qu’un grand logo dont les bords se mêlent aux modules.

Comment choisir, situation par situation

  • Code affiché sur un écran (présentation, borne, site web) : M suffit dans la plupart des cas, L si le contenu est très long et l’écran de bonne qualité.
  • Carte de visite avec une fiche de contact encodée : M ou Q, sans logo, pour garder un code aéré sur un petit format. Notre guide QR code sur carte de visite chiffre cet exemple.
  • Flyer, affiche, menu, packaging avec une adresse courte : Q ou H, sans hésiter.
  • Support en extérieur, étiquette exposée, ticket thermique, set de table : H, et un code imprimé un peu plus grand.
  • Logo central : H, dans tous les cas.

Régler le niveau dans le générateur

Le réglage se trouve dans la section Cadre et options avancées, sous le libellé « Niveau de correction d’erreur ». Il est positionné sur H par défaut, le choix le plus tolérant pour un usage imprimé. Si vous le modifiez, observez l’aperçu : vous verrez la grille se resserrer ou s’aérer en temps réel. Saisissez votre propre contenu dans le générateur et faites défiler les quatre niveaux : c’est la façon la plus parlante de visualiser le compromis.

Tester la robustesse de votre code

  1. Imprimez le code à sa taille définitive, sur le support réel si possible.
  2. Masquez progressivement une petite zone au centre avec un morceau de papier, en restant loin des trois carrés des coins, et scannez à chaque étape.
  3. Si le code cesse de fonctionner dès le premier recouvrement, la marge de sécurité est faible : réduisez le logo, raccourcissez le contenu ou augmentez la taille.
  4. Recommencez sous un éclairage défavorable et avec un léger angle de prise de vue.

Trois idées reçues

  • « H est toujours le meilleur choix. » Pas pour un contenu très long à afficher en petit : la densité supplémentaire peut nuire davantage que la robustesse ne rapporte.
  • « La correction compense un mauvais contraste. » Non : si les couleurs sont trop proches, c’est l’ensemble du code que le lecteur peine à binariser, bien au-delà de ce que la redondance peut rattraper. Voyez notre guide pour personnaliser un QR code sans nuire à sa lecture.
  • « On peut recouvrir 30 % du code. » Le chiffre concerne des octets, pas une surface, et suppose que rien d’autre n’est abîmé. En pratique, on se garde toujours une marge.

Mettez ces conseils en pratique : le générateur vérifie le contraste en temps réel et exporte en SVG pour l’impression.

Créer un QR code

À lire aussi