Aztec Code
Aztec Code is a two-dimensional (2-D) general-purpose matrix symbology that is designed to have higher accuracy than other 2-D symbologies. An Aztec Code symbol can encode up to 3,832 numeric digits; 3,067 alphabetic characters; or 1,914 bytes of data. The symbol size and the degree of error correction can be configured at label design time or configured to change automatically in response to the length of the data. Printing white on black is an option.
Aztec Code was developed in 1995 by Andrew Longacre and Robert Hussey at Welch Allyn, Inc. The symbology is in the public domain. The code's name is derived from the resemblance of the central finder pattern to an Aztec pyramid that is seen from above.
Aztec Code is defined in ISO/IEC 24778 Information technology - Automatic identification and data capture techniques - Aztec Code bar code symbology specification.
The symbol comprises the following elements:
-
Finder pattern: A square bull's-eye structure in the center that consists of alternating black and white square rings that are one module wide and a center square that is one module wide and high. (This square is black unless the white-on-black option is being used). The number of rings varies with the size of the barcode.
-
Orientation patterns: The first layer outside the outermost ring of the finder pattern is a one-module-wide layer that contains chevron-shaped orientation patterns in each corner. These patterns consist of three one-module squares. The first pattern, at the upper left corner, consists of three black modules. The second pattern, at the upper right, is one white module followed by two black modules. The third, at the lower right, is one black module followed by two white modules. The fourth, at the lower left, is three white modules.
-
Mode Message: In the same layer as the orientation patterns is a Mode Message that specifies the symbol size and the length of the data (not including check characters). The Mode Message also includes its own Reed-Solomon error correction encoding.
-
Reference grid: In full-range Aztec Code symbols, the reference grid serves as an extension of the finder pattern to help accurately map the data field. The reference grid consists of one-module-wide rows and columns of alternating one-module black and white squares. One row and column extend from the center of the finder pattern to the outermost edges. Other rows and columns occur at every 16th row and column from the center. Each of these rows and columns spans the barcode rather than wrapping around as the data layers do.
-
Data layers:The remainder of the barcode consists of one or more two-module-wide data layers that contain data and check characters. These layers are read in a clockwise direction. The first data layer begins immediately beside the first orientation pattern, the all-black one. (In this context, "beside" means that if the barcode is positioned so that the first orientation pattern is to the upper left, then the first data layer begins immediately above the orientation pattern). This first data layer moves clockwise around the orientation pattern and Mode Message layer and ends beside its own starting edge. Each additional data layer begins immediately beside the ending edge of the preceding layer and ends beside its own starting edge. Note that the reading direction of the layer at its end is perpendicular to the reading direction of the next layer at its start. As a result, a barcode scanner can read the data layers as a continuous spiral.
The two types of Aztec Code symbols are as follows:
-
Compact: A compact Aztec Code symbol has two white and two black finder pattern rings (in addition to the center square), one to four data layers, and no reference grid.
-
Full-range: A full-range Aztec Code symbol has three white and three black finder pattern rings (in addition to the center square), from 4 to 32 data layers, and a reference grid.
An Aztec Code barcode that has four data layers can be structured as either a compact or a full-range symbol.
Because the barcodes are read from the inside out, no quiet zone is required.
Additionally, if the symbol is required to fit a non-square area or to handle larger messages than are practical in a single symbol, a data message can be distributed across several Aztec Code symbols. This usage is called "structured append."
This symbology supports all 255 ASCII characters (digits 0-9, text, binary data), the FNC1 (^1) symbol, and the Flag 7 (^7) symbol.
A Flag 7 followed by six digits, ^7nnnnnn, represents an Extended Channel Interpretation (ECI) protocol value, where nnnnnn is the six-digit ECI number. For example, ^7000009 represents ECI value 9. ECI protocol values have four types of interpretations:
Identifiers of international character sets (code pages)
Control information for structured append in unbuffered mode
General-purpose, such as for encryption or compaction
User-defined information
Aztec Code uses the Reed-Solomon algorithm for error correction. The user can specify the percentage of the data region that is to be used by error correction codewords; the recommended level (which is also the default minimum) is 23 percent of symbol capacity plus three codewords more.
Aztec Code can contain from 1 to 32 data layers, but because there are two sizes of four-layer symbols, there is a total of 33 different symbol sizes. The smallest is 15 x 15 modules, and the largest is 151 x 151 modules. The barcodes are always square. There is no limit on module size.