Skip to main content
tolio

QR Error Correction Analyzer

Analyze and test error correction levels (L, M, Q, H) of QR codes. No sign-up required, 100% free, fully private. Best free online QR error correction analyzer.

Upload a QR code image and analyze its error correction structure. The tool decodes the format information embedded in the QR code to determine the exact Error Correction level (L / M / Q / H), shows the Reed-Solomon block structure, and visualizes the data-to-EC codeword ratio. Everything runs in your browser — no images are uploaded to any server.

Upload QR Code Image

Upload QR Code Image

Click to browse or drag and drop an image. Supports PNG, JPEG, WebP, GIF, and BMP.

Related Tools

What is QR Error Correction Analyzer?

QR Error Correction Analyzer is a technical diagnostic tool that reads and decodes the format information embedded in every QR code to determine the exact Error Correction (EC) level. While standard QR scanners simply decode the content, this tool analyzes the Reed-Solomon block structure behind the code, showing you the precise EC level (L, M, Q, or H), the data-to-EC codeword ratio, and a side-by-side comparison of how all four EC levels affect capacity for the same QR version.

The tool works by decoding the 15-bit format information string stored near the finder patterns of the QR code. This string encodes the EC level (2 bits) and the data mask pattern (3 bits), protected by a BCH(15,5) error-correcting code that can correct up to 3 bit errors. Using the finder pattern positions returned by the jsQR library, the tool maps each format info module position from QR coordinate space to image pixel coordinates, reads the luminance values, and decodes them using a Hamming-distance matching algorithm against all 32 valid format information codewords.

Once the EC level is determined, the tool calculates the exact Reed-Solomon block structure for that version and EC level: total codewords in the QR code, data codewords available for storing content, error correction codewords added for resilience, and the overall EC ratio as a percentage. A visual progress bar shows the proportion of data to EC codewords. The tool also displays a comparison table of all four EC levels for the detected version, so you can see exactly how much data capacity is traded for error resilience at each level.

Everything runs entirely in your browser using client-side JavaScript. When you select an image, it is read locally using the FileReader API and processed in memory. No image data, decoded content, or structural information is ever uploaded to any server or transmitted over the network. Your privacy is fully protected.

How to Use QR Error Correction Analyzer

  1. Click the upload area or drag and drop an image file containing a QR code. Supported formats include PNG, JPEG, WebP, GIF, and BMP.
  2. The image preview appears and the QR code is decoded automatically. A loading indicator shows that format information analysis is in progress.
  3. Once analyzed, the result displays multiple sections: the decoded content with the detected EC level badge, the Reed-Solomon block structure (total codewords, data codewords, EC codewords, EC ratio), a visual progress bar showing the data-to-EC proportion, a comparison table of all four EC levels for the same QR version, and image metadata including the raw 15-bit format information string.
  4. A bounding box overlay is drawn on the image with an indigo outline around the QR code perimeter. Finder patterns are marked with colored circles and the corresponding EC labels (L, M, Q, H) are shown above each finder pattern.
  5. Use the action buttons to open the decoded URL if applicable, copy the decoded content to your clipboard, share via the native share sheet on supported devices, or analyze another QR code image.

Example

Scenario: A marketing team has generated QR codes for a product campaign and wants to verify that the error correction level is appropriate for the printing method. Codes printed on glossy labels need higher EC to survive surface reflections and minor scratches.

Step 1: Open the QR Error Correction Analyzer tool. Upload a sample QR code image from the print batch by clicking the upload area or dragging the file onto it.

Step 2: The tool decodes the QR code and analyzes its format information. The result card shows the detected EC level (e.g., "M — ~15% recovery") along with the QR version and module count. The image now has a bounding box overlay with colored finder pattern markers.

Step 3: Scroll to the "All EC Levels" comparison section to see the trade-off: Level M provides 15% error recovery with generous data capacity, while Level H provides 30% recovery but significantly reduces the available data bytes. For a glossy print environment, Level Q or H might be more appropriate.

Step 4: The Reed-Solomon block structure section shows the exact codeword breakdown. For a Version 4 QR code at Level Q: 100 total codewords, 48 data codewords, and 52 EC codewords (52% EC ratio). The visual progress bar makes this ratio immediately clear.

Frequently Asked Questions

What are the four QR code error correction levels?

The four EC levels are L (Low, ~7% recovery), M (Medium, ~15%), Q (Quartile, ~25%), and H (High, ~30%). L uses the least error correction, maximizing data capacity. H provides the most protection against damage but reduces capacity significantly. M is the most commonly used level for general-purpose QR codes.

How does the tool determine the EC level from an image?

The tool reads the 15-bit format information string embedded near the finder patterns of every QR code. Using the finder pattern positions from jsQR, it maps each format info module to image pixel coordinates, samples the luminance to determine the bit value, and decodes the resulting 15-bit word using BCH(15,5) error correction against all 32 valid format information codewords. This reveals the 2-bit EC level encoding and the 3-bit mask pattern reference.

What is Reed-Solomon error correction in QR codes?

Reed-Solomon (RS) error correction is a mathematical algorithm that adds redundant parity codewords to the QR code data. When the code is scanned, the RS decoder can detect and correct errors up to the level of redundancy added. QR codes use RS codes over GF(256) with carefully designed block structures specified in the QR standard ISO/IEC 18004.

What is the BCH(15,5) code used for format information?

The format information in a QR code is protected by a BCH(15,5) error-correcting code. There are 5 data bits (2 for EC level, 3 for mask pattern) and 10 parity bits, making a 15-bit codeword. The generator polynomial is x^10 + x^8 + x^5 + x^4 + x^2 + x + 1 (0x537). This code can correct up to 3 bit errors, making the format info highly robust against damage.

What image formats and size limits are supported?

The tool supports PNG, JPEG, WebP, GIF, and BMP image formats up to 20 MB. Images are automatically scaled down to a maximum of 4096 pixels on the longest side before analysis for optimal performance.

Are my uploaded images sent to any server?

No. Everything runs entirely in your browser using client-side JavaScript. Your images are read locally using the FileReader API and processed in memory. No image data, decoded content, or structural information is ever uploaded to any server.

What is the format information mask and why is it used?

The format information codeword is XOR'd with mask 0x5412 (binary 101010000010010) before being placed in the QR code. This mask prevents the format info modules from creating undesirable patterns (like all-dark modules) that could confuse scanners. The tool automatically removes the mask during decoding.

Can the tool determine the data mask pattern as well?

Yes. The format information contains 3 bits that encode the data mask pattern reference (0-7). The tool decodes these bits and shows the mask pattern reference as a separate value (0-7) in the Image Information section. The mask pattern determines which data modules are XOR'd during encoding to optimize readability.

Does the tool work with damaged or low-quality QR codes?

The BCH(15,5) format information can correct up to 3 bit errors, so the tool can still detect the EC level even with minor image damage near the finder patterns. However, severely damaged codes may fail format info decoding. The tool also retries with inverted colors for stylized or negative QR codes.

What is the difference between total codewords, data codewords, and EC codewords?

Total codewords is the overall data capacity of the QR code at the given version before error correction overhead. Data codewords are the actual bytes available to store content. EC codewords are the Reed-Solomon parity bytes added for error resilience. The EC ratio (EC / total) determines the recovery percentage: higher ratio means more damage can be tolerated but less data can be stored.

Why does the "All EC Levels" comparison show different data capacities?

The QR standard specifies different data allocations for each EC level at the same version. Level L allocates most codewords for data storage (least EC), while Level H allocates the most codewords for error correction. The comparison table helps you understand the trade-off between capacity and resilience for each QR version.

Can I use this tool for QR code quality assurance?

Yes. The analyzer is ideal for QA workflows: verify that printed QR codes use the intended EC level, confirm the version matches expectations for the data payload, and ensure the format information decodes correctly. The bounding box overlay also confirms proper alignment and finder pattern detection.

What does the format info binary string mean?

The 15-bit format info string displayed in the results is the BCH(15,5) codeword after the format info mask (0x5412) has been removed. Bits 14-13 encode the EC level (01=L, 00=M, 11=Q, 10=H), bits 12-10 encode the mask pattern (000-111), and bits 9-0 are the BCH parity. This string appears in the Image Information section alongside the decoded mask pattern reference (0-7).

Is this tool free to use?

Yes, the tool is completely free with no usage limits, no sign-ups or registration, and no advertisements. All analysis happens locally in your browser.

Key Takeaways

  • Detects the exact QR error correction level (L, M, Q, or H) from the format information embedded in the code
  • Reads and decodes the 15-bit format info string using finder pattern positions and BCH(15,5) error correction
  • Displays the Reed-Solomon block structure: total codewords, data codewords, EC codewords, and EC ratio as a percentage
  • Visual progress bar shows the proportional split between data and error correction codewords at a glance
  • Side-by-side comparison table of all four EC levels for the detected QR version
  • Bounding box overlay with indigo outline and color-coded finder pattern markers labeled L/M/Q/H on the image
  • Raw 15-bit format information binary string displayed in the image metadata section
  • BCH error correction can tolerate up to 3 bit errors in format info for robust EC level detection
  • QR version and module grid size displayed alongside all EC analysis metrics
  • Image resolution, file size, and content character length shown for reference
  • Open decoded URLs, copy to clipboard, or share via native share sheet with action buttons
  • 100% client-side — your images never leave your device. No uploads, no tracking, no servers.
  • Supports PNG, JPEG, WebP, GIF, and BMP images up to 20 MB with automatic downscaling
  • No sign-ups, no usage limits, no advertisements — completely free to use
Was this helpful?