Coding & Information Theory

Reed–Solomon Error Correction, Explained Simply

The math that lets a scratched QR code, CD or DVD still work. A friendly explanation of Reed–Solomon error correction.

Reed–Solomon error correction is the quiet workhorse that keeps CDs playing through scratches, spacecraft talking across the solar system, and QR codes scanning with a logo slapped in the middle. It corrects whole clusters of errors — and you can grasp how without a single equation.

Invented by Irving Reed and Gustave Solomon in 1960, this code is one of the most successful ideas in the history of communication. It's everywhere, yet almost invisible. Let's build an intuition for how it works, why it's so good at surviving damage, and why that stubborn QR code with your company logo still reads perfectly. 🐾

Who invented Reed–Solomon codes?

Irving Reed and Gustave Solomon published the code in 1960, building on the foundations laid by Claude Shannon and Richard Hamming a decade earlier. Where Hamming codes fix a single flipped bit, Reed and Solomon aimed higher: correcting many errors at once, including the messy bursts that happen when a whole region of data gets wiped out.

That ambition made their code the go-to solution wherever damage comes in clumps rather than lonely single bits — which turns out to be almost everywhere in the physical world. A scratch on a disc, a stain on a label, or a fade in a radio signal all destroy runs of adjacent data, and Reed–Solomon eats that kind of damage for breakfast.

How does Reed–Solomon work, intuitively?

Forget bits for a moment and think about points on a graph. Suppose your message defines a smooth curve. To draw a straight line, you only truly need two points — but what if you plotted ten points along that same line and sent all ten?

Now imagine a few of those points get smudged or knocked out of place in transit. Because the extra points are redundant, you can still see the underlying line clearly: the surviving points reveal exactly where the curve should go, and the damaged ones stick out as the ones that don't fit. Reed–Solomon works on this principle — it treats your data as defining a mathematical curve and sends extra points, so that even if some are corrupted, the original curve (and thus your message) can be reconstructed.

Plot more points than you need to define a curve, and a few ruined points can't hide where the curve goes. That redundancy — extra points that must all agree — is the heart of Reed–Solomon.

What are symbols and finite fields?

A key detail: Reed–Solomon doesn't work on single bits. It works on symbols — small groups of bits treated as one unit, often one byte (8 bits) each. This is exactly why it's so good against bursts: if eight adjacent bits get destroyed together, that's just one damaged symbol, not eight separate errors.

The math happens over something called a finite field (also known as a Galois field) — a self-contained number system with a fixed, finite set of values, where addition and multiplication always produce another value inside the set. You don't need to master the algebra; the point is that a finite field lets Reed–Solomon do exact, wrap-around arithmetic on symbols with no rounding and no overflow. It's the tidy mathematical playground that makes reliable reconstruction possible.

How many errors can it correct?

Here's the elegant rule that governs everything: to correct t symbol errors, Reed–Solomon adds 2t check symbols. In words, every two extra check symbols buy the power to fully correct one damaged symbol.

Check symbols addedSymbol errors correctable
21
42
105
2tt

Why 2 per error and not 1? Because a full correction requires solving two mysteries at once: where the error is and what the correct value should be. Each check symbol contributes one piece of that puzzle, so you need two per error. (If a scanner already knows a symbol's location is damaged — an "erasure" — it needs only one check symbol to fix it, which is a bonus efficiency Reed–Solomon can exploit.)

Why do QR codes and CDs use it?

Reed–Solomon is the standard choice wherever a retry is impossible and damage arrives in clumps. That describes a remarkable range of technology:

  • CDs and DVDs: a scratch destroys a stretch of adjacent data, exactly the burst scenario Reed–Solomon handles best, so your music keeps playing.
  • Deep-space probes: signals from distant spacecraft are faint and noisy, and resending across light-hours is impractical, so the data must repair itself on arrival.
  • QR codes: printed codes get smudged, creased, and covered, and they can't ask to be re-sent — so they carry Reed–Solomon redundancy baked into the grid.
  • Data storage and broadcast: hard drives, digital TV, and more all rely on it to keep bits intact.

In every case the appeal is the same: robust, burst-friendly correction with no need for a second chance. It's Shannon's promise of reliable communication over a noisy channel, delivered in practice — see our introduction to information theory for the theory behind it.

Why do QR codes with logos still scan?

This is the crowd-pleaser, and now the reason is clear. A QR code is created with a chosen amount of Reed–Solomon redundancy woven into its grid. When a designer drops a logo into the center, they're deliberately destroying some of the code's symbols — but the scanner doesn't panic. It treats the logo exactly like a scratch or a coffee stain.

As long as the number of damaged symbols stays under the code's correction budget (its t), Reed–Solomon reconstructs the hidden data from the surviving symbols and the check symbols, and the code reads perfectly. Push the logo too big — past the budget — and no math can save it. That budget is exactly what you set when you pick an error-correction level, as explained in QR code error correction. Higher levels add more check symbols, allowing bigger logos and more wear.

What are the limits?

Reed–Solomon isn't magic. Its correction budget is fixed when the code is made, so damage beyond t symbols per block can't be recovered — and in a QR code, some regions like the finder patterns aren't protected by error correction at all, because the scanner needs them undamaged just to locate the code. Cover those and even flawless Reed–Solomon can't help, which is why a logo belongs in the data area, never over a corner finder. The anatomy of a QR code shows exactly which parts are which.

Reed–Solomon in one sentence

By treating data as points defining a curve and sending extra points as symbols over a finite field, Reed–Solomon corrects up to t symbol errors for every 2t check symbols it adds — the burst-proof math that keeps CDs, spacecraft, and logo-bearing QR codes readable.

Want a code that survives the real world? You can create a free QR code with QR Puppy and pick how much Reed–Solomon protection it carries.

Frequently asked questions

Who invented Reed–Solomon codes and when?

Irving Reed and Gustave Solomon published them in 1960. Their goal was to correct many errors at once, especially the bursts of damage that affect real-world storage and communication, going well beyond the single-bit fixes of earlier codes.

Why does Reed–Solomon work on symbols instead of bits?

Because grouping bits into symbols makes it excellent against burst errors. If a run of adjacent bits is destroyed together, that counts as just one damaged symbol rather than many separate errors, so a cluster of damage is cheap to fix.

How many errors can Reed–Solomon correct?

It corrects up to t symbol errors for every 2t check symbols added. You need two check symbols per correctable error because each correction must determine both the error's location and its correct value.

Why do QR codes with logos still scan?

A logo destroys some of the code's symbols, but Reed–Solomon treats that like a scratch and rebuilds the hidden data — as long as the covered area stays within the code's correction budget. Push the logo past that budget and it stops working.

Is there any damage Reed–Solomon can't fix in a QR code?

Yes. Damage beyond the correction budget is unrecoverable, and the finder patterns in the corners aren't protected by error correction at all. If those are covered, the scanner can't even locate the code, so keep logos in the data area.

Make a QR code the honest way 🐾

Free forever, no tracking, no expiry — generated right in your browser.

🎨 Create a QR code →