EDITORIAL // ARCHITECTURAL INTEL

QR Code Error Correction Explained: When to Use L, M, Q, and H Levels

One of the most remarkable engineering achievements of the ISO/IEC 18004 QR code standard is its ability to scan flawlessly even when physically torn, covered in grease, scratched, or obscured by a company logo.

This fault tolerance is powered by Reed-Solomon Error Correction—the same robust algebraic coding algorithm used in space telecommunications (NASA Voyager & Mars rovers), compact discs (CD-ROMs), and RAID-6 storage arrays.

Understanding how error correction levels work is the key to designing custom branded QR codes that look great without failing in the real world.


1. The Four Standard Error Correction Levels

When a generator encodes data into a QR code, it divides the payload into mathematical blocks and calculates redundant parity codewords.

The standard defines four discrete tolerance tiers:

LevelIdentifierRecovery CapacityMatrix Density Trade-offRecommended Use Case
Level LLow~7% of data restoredLowest module density (largest squares)Clean screen displays, ultra-dense payloads (long URLs, certificates).
Level MMedium~15% of data restoredBalanced density (Standard Default)Standard marketing materials, flyers, brochures with no logo.
Level QQuartile~25% of data restoredHigher density (more modules)High-traffic industrial environments, tickets, factory floor labels.
Level HHigh~30% of data restoredHighest density (smallest squares)Custom branded codes with center logos, artwork, or heavy wear.
TOLERANCE CAPACITY COMPARISON:
Level L: [ 7% Redundancy ]  ===> Widest modules, cleanest matrix
Level M: [ 15% Redundancy ] ===> Standard marketing balance
Level Q: [ 25% Redundancy ] ===> Harsh industrial environments
Level H: [ 30% Redundancy ] ===> Mandatory for Center Logo Embedding

2. How Reed-Solomon Polynomials Reconstruct Destroyed Pixels

When you place a logo in the center of a QR code, the camera's image sensor sees those central modules as "corrupted" or missing data.

Here is how the decoder recovers the original text without seeing those pixels:

  1. The raw byte sequence is treated as the coefficients of a polynomial equation over a Galois Field GF(2^8).
  2. The generator evaluates the polynomial to generate extra parity check bytes that are mapped to geometric positions outside the center area.
  3. When scanned, the decoder runs the Berlekamp-Massey algorithm to compute the error locator polynomial and find the coordinates of corrupted bytes.
  4. Using Forney's algorithm, the reading software mathematically calculates the exact original values of the destroyed bytes and reconstructs the target URL with 100% precision.

3. The Golden Rule of Center Logo Embedding

If you embed a logo in the center of your QR code:

  • Always Select Level H (30%): Placing a logo covering 15% to 20% of the center area leaves 10% to 15% of surplus recovery headroom for physical smudges or lens glare.
  • Keep Finder Patterns Clear: Never let the logo extend into the three large corner squares (Finder Patterns) or the alternating timing strips. If finder patterns are obscured, the camera cannot establish coordinate orientation and will fail before error correction even begins.
  • Maintain Contrast on Outer Modules: Ensure the dark modules have an optical contrast ratio of at least 4:1 against the light background.

⚡ Generate a Logo-Ready Level H QR Code

01 // ENGINE ACCESS

Sẵn sàng tạo mã miễn phí đầu tiên của bạn?

Trải nghiệm tốc độ cực nhanh của EZ QR Generator hoàn toàn miễn phí.

Tạo ngay