GuideNacho G.8 min de lecture

Niveaux de Correction d'Erreurs des Codes QR: L, M, Q, H

Les niveaux de correction d'erreurs QR (L, M, Q, H) déterminent les dommages qu'un code peut subir. Comprenez Reed-Solomon, les pourcentages de récupération et

Niveaux de Correction d'Erreurs des Codes QR: L, M, Q, H

Cet article a ete redige par l'equipe QR Nova. Nous developpons des logiciels de codes QR, ce qui peut influencer notre point de vue.

La plupart des guides sur la correction d'erreurs des codes QR se contentent de lister les quatre pourcentages sans contexte, ou expliquent Reed-Solomon à un niveau si technique que cela n'aide pas celui qui doit simplement choisir un niveau avant de cliquer sur "générer." Les niveaux de correction d'erreurs QR (L, M, Q, H) contrôlent la quantité de dommages physiques qu'un code peut subir avant de devenir illisible — et l'algorithme derrière tout cela, Reed-Solomon, est la même mathématique qui récupère les données sur des CD rayés et des disques endommagés.

En bref

  • Quatre niveaux ECC : L (7% de récupération), M (15%), Q (25%), H (30%). M est le défaut ISO pour la plupart des usages d'impression.
  • Reed-Solomon fonctionne en ajoutant des mots de parité dérivés de polynômes sur GF(256). Les lecteurs utilisent ces mots pour reconstruire les données endommagées.
  • Utilisez le niveau H lorsque vous intégrez un logo — un logo centré couvre 10 à 20% du code, et le niveau H est le seul avec une marge suffisante.
  • ECC plus élevé = capacité de données réduite. Au niveau H, un code stocke environ 30% moins de données qu'au niveau L.

Ce que la correction d'erreurs fait réellement dans un code QR

Créez votre premier QR gratuitement

Commencer

Un code QR n'est pas un simple code-barres. Il encode les données sous forme d'une matrice de modules noirs et blancs, et inclut délibérément plus de données que le minimum nécessaire pour reproduire le message original. Ces données supplémentaires constituent le payload de correction d'erreurs — et c'est ce qui permet à un lecteur de reconstruire une URL même si une partie du code est occultée, déchirée ou sale.

Le point essentiel : la correction d'erreurs ne "devine" pas les parties manquantes. Elle fonctionne parce que les données originales ont été encodées sous forme d'une structure mathématique, et les mots de parité ajoutés contraignent l'apparence du jeu de données complet. Si des modules manquent, le lecteur résout un système d'équations polynomiales pour combler les lacunes. Ce processus est déterministe, pas probabiliste.

Les quatre niveaux — L, M, Q, H — définissent combien de mots de parité sont ajoutés. Plus de mots de parité signifie plus de marge de récupération, mais moins de modules restent disponibles pour les données réelles. Ce compromis est tout le cadre de décision.

Les quatre niveaux ECC : pourcentages de récupération et leur signification

Selon la norme ISO/IEC 18004, le standard international des codes QR, les quatre niveaux de correction d'erreurs offrent ces capacités de récupération :

Niveau Nom Capacité de récupération Usage typique
L Bas ~7% Écrans numériques, environnements contrôlés
M Moyen ~15% Impression générale : flyers, affiches, packaging (défaut ISO)
Q Quartile ~25% Impression industrielle, environnements à forte usure
H Haut ~30% Codes QR avec logo, signalétique extérieure, conditions difficiles

Niveau L — Bas (7%)

Le niveau L produit le plus petit code QR pour un payload donné car il ajoute le minimum de mots de parité. Sur un écran propre — un téléphone affichant un billet d'événement, ou un moniteur montrant l'URL d'une salle de réunion — le niveau L convient parfaitement. La fragilité ne devient un problème que lorsque le code est imprimé et manipulé.

Niveau M — Moyen (15%)

Le niveau M est la valeur par défaut recommandée par ISO/IEC 18004. Il tolère la dégradation normale d'impression — usure du toner, légères crispations, éclairage indirect — sans augmenter significativement la taille du code. Pour la plupart des cas d'usage (cartes de visite, menus de restaurant, packaging) où le code est propre et sans ornement, le niveau M est le bon choix.

Niveau Q — Quartile (25%)

Le niveau Q est le plafond pratique pour les codes nécessitant durabilité sans logo. Pensez aux bracelets d'événements, étiquettes d'étagères d'entrepôt, ou tableaux de menu en plein air exposés pendant des mois à des conditions variables. Une marge de récupération de 25% tolère une dégradation physique significative.

Niveau H — Haut (30%)

Le niveau H existe principalement pour un scénario : les codes QR de marque avec un logo superposé au centre. Un logo centré occulte généralement 10 à 20% de la surface des modules. La capacité de récupération de 30% du niveau H est le seul niveau offrant une lecture fiable avec un logo en place, laissant 10 à 20% de marge pour l'usure réelle au-delà de la couverture du logo.

Reed-Solomon : le fonctionnement mathématique

Reed-Solomon (RS) a été développé par Irving Reed et Gustave Solomon au MIT Lincoln Laboratory en 1960. On le retrouve dans les lecteurs de CD et DVD, les systèmes de stockage RAID, les communications spatiales lointaines (la sonde Voyager utilisait des codes RS) et dans chaque code QR jamais généré.

L'idée centrale : traiter les données non pas comme une séquence de bits, mais comme les coefficients d'un polynôme. Puis évaluer ce polynôme en un ensemble fixe de points et enregistrer les résultats comme des "symboles de vérification" supplémentaires. Si certains points de données originaux sont perdus ou corrompus, les symboles de vérification contraignent suffisamment la forme du polynôme pour récupérer les valeurs manquantes.

Le processus d'encodage et de décodage

  1. Encodage : Le générateur de QR prend les mots de données et calcule un ensemble de mots de correction d'erreurs (ECC) à l'aide d'un polynôme générateur. Ces ECC sont ajoutés au bloc de données avant d'assembler la matrice finale.
  2. Lecture : Le lecteur lit autant de modules que possible. Les modules illisibles sont traités comme des "effacements" — des positions connues comme manquantes, plus faciles à corriger que des erreurs inconnues.
  3. Reconstruction : Le décodeur RS utilise les mots de données disponibles plus les ECC pour reconstruire toute donnée manquante. Les effacements coûtent un symbole de correction chacun ; les erreurs (valeur incorrecte dans une position lisible) en coûtent deux.

Le compromis de capacité : ce que coûte un ECC plus élevé

Chaque mot ECC ajouté au code déplace un mot de données. Pour un code QR version 10 (57×57 modules), la capacité de données utiles à chaque niveau est :

  • Niveau L : 346 mots binaires
  • Niveau M : 272 mots binaires
  • Niveau Q : 196 mots binaires
  • Niveau H : 146 mots binaires

Cela représente une réduction de 57% des données utiles en passant du niveau L au niveau H dans la même version physique du code. Pour la plupart des URL courtes (moins de 50 caractères), ce compromis est invisible. Les URL longues ou les données vCard peuvent commencer à ressentir la contrainte.

Quand ne pas utiliser le niveau H

Le niveau H n'est pas automatiquement "meilleur." Trois situations où il peut vous nuire :

  • Petits formats d'impression : Un code niveau H nécessite plus de modules qu'un niveau L pour les mêmes données. À très petite taille (moins de 2 cm), la densité accrue des modules peut réduire la fiabilité de lecture sur les appareils plus anciens.
  • Payloads riches en texte : Les codes QR vCard, les codes de configuration WiFi avec mots de passe WPA2, ou les codes intégrant des modèles d'e-mail complets peuvent atteindre des limites de version au niveau H que le niveau M évite.
  • Affichage numérique uniquement : Un code QR affiché sur un écran ne subit jamais de dommage physique. Le niveau M est suffisant et produit une matrice moins dense que certains lecteurs traitent plus rapidement.

Comment QR Nova gère la correction d'erreurs

Lorsque vous générez un code QR sur le générateur QR Nova, vous pouvez sélectionner le niveau ECC avant de télécharger. Pour les codes statiques — qui sont permanents et n'expirent jamais, car l'URL est encodée directement dans l'image — c'est une décision unique. Choisissez le niveau H si vous ajoutez un logo ; choisissez le niveau M pour les applications d'impression sans ornement.

Aucun abonnement n'est requis pour télécharger un PNG ou SVG en haute résolution quel que soit le niveau ECC. L'erreur la plus courante que nous observons lors de la génération de codes QR à grande échelle est d'utiliser le niveau H pour tous les codes par défaut, créant des codes inutilement denses qui échouent sur les petites étiquettes. Adaptez le niveau au cas d'usage et votre taux d'échec diminuera significativement.

Questions frequentes

Quels sont les quatre niveaux de correction d'erreurs d'un code QR ?

Les quatre niveaux sont L (Bas, 7% de récupération), M (Moyen, 15%), Q (Quartile, 25%) et H (Haut, 30%). Chaque niveau ajoute davantage de données redondantes Reed-Solomon au code, augmentant la tolérance aux dommages au détriment de la capacité de données.

Quel niveau utiliser pour un code QR avec un logo ?

Utilisez toujours le niveau H (30%) lorsque vous intégrez un logo dans un code QR. Un logo centré couvre généralement 10 à 20% de la surface des modules. Le niveau H est le seul offrant une marge suffisante au-delà de cette couverture pour garantir des lectures fiables.

Qu'est-ce que la correction d'erreurs Reed-Solomon dans les codes QR ?

Reed-Solomon est un algorithme de correction d'erreurs par blocs qui traite les données du code QR comme des polynômes sur un corps fini (GF(256)). Il ajoute des mots de parité aux données originales. Lorsqu'un lecteur scanne un code endommagé, il utilise ces mots de parité pour reconstruire les données manquantes ou corrompues.

Un niveau de correction plus élevé réduit-il la capacité de données du code QR ?

Oui. Des niveaux ECC plus élevés ajoutent plus de mots redondants qui occupent l'espace des modules. Un code QR au niveau H stocke environ 30% moins de données utiles que le même code au niveau L. En pratique, vous pourrez avoir besoin d'une version plus grande du code pour encoder la même URL au niveau H.

Pourquoi la plupart des générateurs de QR utilisent-ils le niveau M par défaut ?

Le niveau M (15% de récupération) est la valeur recommandée par la norme ISO/IEC 18004 car il équilibre capacité de données et tolérance aux dommages pour les usages d'impression courants : menus, cartes de visite, signalétique.

Peut-on changer le niveau de correction d'un code QR déjà créé ?

Non. Le niveau de correction d'erreurs est intégré au code lors de sa génération. Le modifier nécessite de régénérer le code, ce qui produit une image différente. Pour les codes QR statiques, cela implique de réimprimer les supports.

Que se passe-t-il si j'utilise le niveau L sur un code QR imprimé ?

Le niveau L (7% de récupération) fonctionne bien sur des écrans numériques propres et des supports fraîchement imprimés. Le problème apparaît avec le temps : taches de café, plis, usure du toner, exposition au soleil. Tout dommage dépassant 7% de la surface des modules entraîne un échec de lecture.

Créez votre premier QR gratuitement

Commencer