QR codes and 2D barcodes
by Chris Woodford. Last updated: July 2, 2016.
From buying groceries to tracking a UPS delivery,
our lives easier in all kinds of ways—but they've been doing so now for
decades. Originally patented in the 1940s, barcodes were commercially tested in the
1960s and gradually became ubiquitous in the 1980s. The basic idea
has barely changed in all that time: just like in the 1960s, a
barcode is still a zebra pattern of stripes with numbers written
underneath that needs a special scanning device to decode it. But all
that could change soon as the 2D barcode—a kind of
second-generation barcode technology—slowly takes over. Let's take
a closer look at how it works!
Photo: Do-it-yourself postal systems, such as Royal Mail's SmartStamp® (in the UK) and Deutsche Post's Stampit (in Germany), let you print your own franking labels on parcels without the bother of going to a post office. They print a 2D barcode on the postage label to validate it and protect against fraud. The code is read and checked when the mail passes through automated sorting equipment. This is an example of a data-matrix code made from four separate segments.
What are 2D barcodes?
You might have already noticed odd black-and-white squares appearing on your parcels, letters, utility
bills, T-shirts, product packaging, and in all kinds of other places—
a bit like mini crossword puzzles without any letters. They're
called two-dimensional (2D) barcodes
and, just like ordinary barcodes, they're
machine-readable so they can quickly pass on information about
a product in the blink of an electronic eye.
Where a barcode presents a string of information as a one-dimensional
line of black and white bars, a 2D barcode packs a lot more
information into a grid of black and white, square-shaped dots.
Photo: It's a great idea to turn your website address (URL) into a QR Code® and put it on all
your promotional material—from advertisments and leaflets to T-shirts and delivery vans. Here's a QR Code being used
to good effect on a promotional leaflet from the Swanage Railway. If I want to find out more, all I have to do is point
my cellphone at the leaflet and click. Be careful how you print the code: although there's some tolerance for bad printing,
it still needs to be printed reasonably clearly and accurately or it won't work. So crisp laser printing is fine, but
smudgy inkjet prints probably aren't. Always test the final, printed code with a QR Code reader to make sure it takes you where it should!
What are the advantages of 2D barcodes?
If we already have barcodes, why do need something else as well?
2D barcodes are a step further, with lots of advantages:
- More information: A barcode is just a short line of black and
white bars so it can't contain much information: typically just a
dozen digits or so—enough to identify a box of cornflakes to a
grocery store checkout, but not much more. You can't add extra information to a
barcode without making it longer and more unwieldy. By contrast, a
2D barcode is a square of information running in two
directions so it can efficiently pack more information into the same
space. A typical 2D barcode can represent up to about 2000 characters of information.
- Fewer errors: Barcodes hold so little information that
there is very little redundancy. Apart from
the length of the bars (which effectively repeat the barcode's
information in the vertical direction), there is no duplication of
information to guard against a code being misprinted or damaged
(such as when a grocery box becomes torn in the store or a parcel label smudges in the rain). But the
higher capacity of 2D barcodes means they can hold the same
information in different ways with sophisticated, built-in error checking systems.
If a code is damaged, that's easy to detect—and it may still be
possible to read some or all of the code.
- Easier to read: 2D barcodes can be read by
smartphones and tablet computers using their built-in digital cameras. No special reading equipment is needed. Even though they contain more information, they can be read accurately at high speeds.
- Easy to transmit: 2D barcodes can be sent as SMS text
messages between cellphones.
- More secure: It's possible to encrypt the information in 2D barcodes to protect it.
What are the different kinds of 2D barcode technology?
To an untrained eye, 2D barcodes all look much the same.
Look more closely, though, and you'll see they do vary quite a bit.
There are actually several different types of 2D barcode, some
available in the public domain and some that are still proprietary.
The best known include QR Code® (pioneered in the 1990s by
Japanese company Denso-Wave), Aztec code (developed by Welch Allyn and recognizable by a distinctive square "bulls-eye" pattern in the
center), MaxiCode (used by the US postal service, and featuring a round "bulls-eye" center), and
Semacode—though there are literally dozens of others.
Data-matrix code is the name of the international (ISO) standards covering 2D barcodes, but not all 2D barcodes comply with them (Semacode does;
QR codes and Aztec codes are slightly different).
Photo: Two examples of 2D barcodes: A QR Code on the left and an Aztec code on the right. Both contain the address of this website (www.explainthatstuff.com), but look how very different they are: there are many different ways of encoding the same basic information in a 2D data matrix pattern.
What information does a QR code contain?
By their very nature, QR codes (and other data matrix codes) are meant to be read by machines, not humans, so there's only a certain
amount we can tell just by looking at them. Although each code is different, they contain a few interesting, common features. Looking again at the explainthatstuff.com QR code up above, we have:
- Quiet zone: An empty white border that makes it possible to isolate the code from among other printed information (for example, on a dirty envelope, among the black and white print of a newspaper, or on smudged product packaging).
- Finder patterns: Large black and white squares in three of the corners make it easy to confirm that this is a QR code (and not, say, an Aztec code). Since there are only three of them, it's immediately obvious which way up the code is and which angle it's pointing at (unless the code is partly obscured or damaged in some way).
- Alignment pattern: This ensures the code can be deciphered even if it's distorted (viewed at an angle, printed on a curved surface, and so on).
- Timing pattern: This runs horizontally and vertically between the three finder patterns and consists of alternate black and white squares. The timing pattern makes it easy to identify the individual data cells within a QR code and is especially useful when the code is damaged or distorted.
- Version information: There are various different versions of the QR code standard; the version information (positioned near two of the finder patterns) simply identifies which one is being used in a particular code.
- Data cells: Each individual black or white square that's not part of one of the standard features (the timing, alignment, and other patterns) contains some of the actual data in the code.
Artwork: Above: Some of the key features in a QR code. Below: Features like this ensure a code can be read at high speed even when it's viewed at an angle, smudged, printed on a curved surface, or distorted in various other ways.
There are a number of other features and complications that I won't go into here; if you'd like more detail, you'll find it by looking at these two excellent references:
- QR Code Tutorial: A very good explanation of how a QR code works, in theory and practice. Includes detailed examples showing how QR codes encode actual binary data.
- QR Code by Tan Jin Soon, EPCglobal Singapore Council. Synthesis Journal, 2008. A longer explanation of QR codes and an excellent review of some typical applications [PDF format, via the Wayback Machine].
What is 2D barcode technology used for?
Photo: Using an iPhone as a mobile airline boarding pass. This is an app called MeeTicket that lets you store and display airline boarding passes from different airlines.
Photo: A data matrix code engraved onto a Space Shuttle part. Photo courtesy of NASA.
The American space agency NASA was one of the earliest organizations to make widespread use of data matrix codes, in the mid-1980s:
it engraved them onto parts from space rockets, such as the Space Shuttle,
because they didn't come off, like paper labels, and could store so much more information.
You can put a 2D barcode anywhere you can put a barcode
(software for generating codes is easy to find online) and use it in
very similar ways for tracking and tracing all kinds of objects.
Cellphones with built-in 2D barcode readers are leading to other,
more exciting applications. Advertisers who want you to find out more
about their products online simply print a 2D barcode in the
corner of their ads. Just point your cellphone at the code, scan it
in, and your phone browser will automatically read the code, decode
the Web address of the advertiser's site, and take you there
instantly—no need to type in a tedious URL (website address) or anything like that.
It's especially convenient for billboards, posters, and other ads you
catch site of while you're on the move.
Transportation is another increasingly popular application. Numerous airline, railroad and bus companies
let you buy travel tickets online in advance and store them on your cellphone.
Your phone displays the details on its screen as a 2D barcode code, which becomes
your electronic ticket (and, in the case of airlines, your boarding pass. German airline Lufthansa's Mobile Boarding Pass is an example.) Expect to see lots more 2D barcode applications appearing very soon!
Find out more
On this website
There's much more technical detail about how data-matrix codes and readers work in the following patents:
- US Patent 4,263,504: High-density matrix code by Jacob Thomas, NCR Corporation. April 21, 1981. Describes an early two-dimensional data matrix code using dot patterns.
- US Patent 4,939,354: Dynamically variable machine readable binary code and method for reading and producing thereof by Dennis G. Priddy et al, Datacode International Inc. July 3, 1990. A detailed description of a 2D barcode system.
- US Patent US 2010/0133341 A1: Method for identifying a machine-readable code applied to a postal item and method for providing the postal item with the machine-readable code by Bernd Meyer et al, Deutsche Post AG. June 3, 2010. Describes a system for identifying data-matrix codes on postal envelopes.
- QR Codes in the wild: A Flickr photo album where people share pictures of codes they've spotted cropping up in all kinds of everyday places.
If you liked this article...
You might like my new book, Atoms Under the Floorboards: The Surprising Science Hidden in Your Home, published worldwide by Bloomsbury.