Introduction to Barcodes
Printed barcodes represent a unique digital communications channel as barcodes convey printed information that is
to be read by a computer. In many applications, the barcode carries information (e.g. serial numbers,
product codes, URL's) that could be read by a human if it was printed in readable text, but which can be read more quickly
and reliably by a computer when presented in barcode form. Indeed, many barcodes are accompanied by the same
contents printed for a human user, as seen in the ubiquitous Universal Product Code (UPC-A) below which conveys the twelve digits 099555050509.
Barcodes such as this represent message data by the use of parallel bars (either black or white) of various widths and in different combinations. In practice, the barcode would be scanned (from left to right or from right to left) to determine the width of
each of the bars that comprise the image. As might be expected in any well-designed communications system, many barcodes incorporate some form of error control coding. Expected sources of errors in the barcode channel include poor printing, bad lighting and reflections, smudges
and dirt, movement of the paper, and the presence of nearby print or other barcodes that may confuse a barcode reader.
In the above barcode, the final digit (9) is a checksum that is computed to allow simple error detection.
1- and 2-Dimensional Barcodes
Modern barcodes take on a variety of forms that may include thousands of bits of information and sophisticated error control algorithms. While the simplest barcodes are one-dimensional and limited in capacity as in the above example, the densest and most efficient barcodes are two-dimensional codes such as the familiar QR-Code shown below.
This 2-dimensional barcode contains the URL of this webpage:
A barcode such as this would typically be read by a smartphone app that uses the phone's camera to capture the barcode and
the phone's browser to access the website directly without the need for a user to enter a long and complicated URL.
The above QR Code includes Reed Solomon coding for error correction on the message data and a BCH(15,5) code repeated twice for format information, in addition to the techniques of interleaving and scrambling that have been covered in earlier topics.
A variety of barcodes that may be found in various everyday situations are presented here. In every case, the specific barcode format may be studied and further explored by generating sample barcodes having user-defined text messages. While
each of these barcodes has advantages and disadvantages, all of them represent the practical use of digital communications in real-world applications.