Every barcode belongs to one of two families. Linear (1D) barcodes — the striped symbols on retail packaging — have served point of sale for decades. Matrix (2D) barcodes — DataMatrix and QR Code — store data in a grid instead of a row, and they are taking over work that 1D symbols were never designed to do. Understanding the difference starts with how each one stores data.

How a 1D barcode stores data

A 1D symbol encodes characters in the widths of its bars and spaces along a single horizontal row. Code 128, UPC-A, EAN-13, and Code 39 all work this way. The practical consequence is capacity: a linear symbol comfortably holds a short identifier — typically a GTIN of 8 to 14 digits — and little else.

That identifier is a lookup key, not a record. When a till scans an EAN-13, the barcode itself says nothing about price, batch, or expiry; the retailer’s system uses the GTIN to find those details in a database. This model is simple, fast, and completely adequate for price lookup — but the moment a process needs data that is not in the local database, the symbol has nothing more to offer.

How a 2D barcode stores data

A 2D symbol encodes data in a grid of dark and light modules, read in both directions. Because the grid uses the full area of the symbol, capacity jumps from a handful of characters to hundreds or thousands. A GS1 DataMatrix on a medicine carton can carry the GTIN, batch number, expiry date, and a unique serial number in one small square — the data travels with the item instead of living only in a database.

The second structural difference is error correction. 2D symbologies such as DataMatrix ECC 200 and QR Code use Reed-Solomon error correction: a portion of the symbol is dedicated to redundant data, so the information can be reconstructed when part of the symbol is scratched, faded, or obscured. A torn 1D barcode usually fails outright; a damaged 2D symbol often still scans.

Reading them is different, too

Classic laser scanners read 1D symbols by sweeping a line of light across the bars, which is why a linear barcode must be presented roughly upright to the scan line. 2D symbols require an imaging (camera-based) scanner, which photographs the whole symbol and decodes it in software. Imaging scanners read symbols at almost any orientation, can read from screens, and read 1D codes as well — one reason the industry’s move to 2D starts with scanner hardware.

When each family is the right choice

Neither family is universally better; they solve different problems.

  • Choose 1D when the job is identification only — retail price lookup against a database — and the installed scanner base is laser-based.
  • Choose 2D when the symbol itself must carry data: pharmaceutical serialization under DSCSA and EU FMD, medical device UDI, expiry-driven stock rotation, or recall management down to batch level.
  • Choose 2D when space is tight: a DataMatrix carries its payload in a fraction of the footprint a 1D symbol needs.
  • Expect to run both during any migration. Dual marking — a 1D and a 2D symbol on the same pack — is the normal transitional state, not a mistake.
1D vs. 2D at a glanceThe families solve different problems: where the data must live decides which one fits.
Aspect1D barcodes2D barcodes
What it storesA short identifier, usually a GTINData itself: GTIN, batch, expiry, serial in one symbol
CapacityA handful of characters in one rowHundreds to thousands of characters in a grid
Damage toleranceA torn symbol usually fails outrightError correction reconstructs damaged parts
Scanner neededLaser or imaging scannerImaging (camera-based) scanner only
Best forPrice lookup against a databaseSerialization, expiry rotation, batch-level recalls

References