QR Codes and Error Correction


QR Codes are big news at the moment - both Google and Bit.ly announcing URL to QR services. What's interesting is their differing approach to error correction.

From the creators of QR Codes, Denso Wave

QR Code has error correction capability to restore data if the code is dirty or damaged. Four error correction levels are available for users to choose according to the operating environment. Raising this level improves error correction capability but also increases the amount of data QR Code size.

The more error correction, the easier the code is to read if a bit of it is missing.

Bit.ly's Code

Bit.ly QR Code Just from looking at this, we can see the vast amounts of redundant data. The resultant image is huge.  This makes it very difficult to scan for cameras with low resolution.

Google's Code

Using Google's chart API to QRify the same URL, gives us this. Google QR Code

My QR Generator

Using my mobile friendly QR generator gives this code. Shkspr QR Code

Should You Use Large Levels Of Error Correction?

Generally speaking, no. Error correction beyond the default makes the code physically larger. Here are some good reasons why you may need more error correction than default.

  • You're worried about physical damage to the code.
  • Size isn't an issue - normally if it is going to be the sole item displayed.
  • Machine readability needs to be marginally improved.
  • You are sure that the camera reading the QR code will be of sufficient quality to decipher it.
  • You prefer the aesthetics.  Some people find the repeating patterns soothing...

Share this post on…

  • Mastodon
  • Facebook
  • LinkedIn
  • BlueSky
  • Threads
  • Reddit
  • HackerNews
  • Lobsters
  • WhatsApp
  • Telegram

One thought on “QR Codes and Error Correction”

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.

Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">