Aztec Code

The symbol is built on a square grid with a bull's-eye pattern at its centre for locating the code.

The corners of the core include orientation marks, allowing the code to be read if rotated or reflected.

The variable pixels in the central core encode the size, so it is not necessary to mark the boundary of the code with a blank "quiet zone", although some barcode readers require one.

The compact Aztec code core may be surrounded by 1 to 4 layers, producing symbols from 15×15 (room for 13 digits or 12 letters) through 27×27.

The full core supports up to 32 layers, 151×151 pixels, which can encode 3832 digits, 3067 letters, or 1914 bytes of data.

As mentioned above, it is recommended that at least 23% of the available codewords, plus 3, are reserved for correction, and a symbol size is chosen such that the message will fit into the available space.

Longer strings of identical bits are permitted as long as they straddle a code word boundary.

In rare cases, it may be necessary to jump to the next-largest symbol and begin the process all over again to maintain the minimum fraction of check words.

The reader must accept and ignore a partial code at the end of the message, as long as it is all-ones.

A full Aztec code symbol has, in addition to the core, a "reference grid" of alternating black and white pixels occupying every 16th row and column.

For up to 4 layers (31×31 pixels), this consists only of single lines extending outward from the core, continuing the alternating pattern.

The pattern continues indefinitely outward, with 15-pixel blocks of data separated by rows and columns of the reference grid.

One way to construct the symbol is to delete the reference grid entirely and begin with a 14×14-pixel core centered on a 2×2 pixel-white square.

The mode message begins at the top-left corner of the core and wraps around it clockwise in a 1-bit thick layer.

For a compact Aztec code, it is broken into four 7-bit pieces to leave room for the orientation marks.

The Aztec Code has been selected by the airline industry (IATA's BCBP standard) for electronic boarding passes.

Several airlines send Aztec Codes to passengers' mobile phones to act as boarding passes.

The Aztec code is scanned by a handheld scanner by on-train staff or at the turnstile to validate the ticket.

Car registration documents in Poland bear a summary, compressed by NRV2E algorithm, encoded as Aztec Code.

Many bills in Canada are now using this technology as well, including EastLink, Shaw Cable, and Bell Aliant.

Encoding: "This is an example Aztec symbol for Wikipedia."
9-layer (53×53) Aztec code with reference grid highlighted in red.
Online ticket by Deutsche Bahn. Note that the Aztec barcode in this sample ticket is not readable with a normal app because the center is different.