Information technology - Automatic identification and data capture techniques - Aztec Code bar code symbology specification

Aztec Code is a two-dimensional matrix symbology whose symbols are nominally square, made up of square modules on a square grid, with a square bullseye pattern at their centre. Aztec Code symbols can encode from small to large amounts of data with user-selected percentages of error correction. Manufacturers of bar code equipment and users of the technology require publicly available standard symbology specifications to which they can refer when developing equipment and application standards. The publication of standardized symbology specifications is designed to achieve this. ISO/IEC 24778:2008 defines the requirements for the Aztec Code symbology. It specifies the Aztec Code symbology characteristics including data character encodation, rules for error control encoding, the graphical symbol structure, symbol dimensions and print quality requirements, a reference decoding algorithm, and user-selectable application parameters.

Technologies de l'information — Techniques automatiques d'identification et de capture des données — Spécification pour la symbologie de code à barres du code Aztec

General Information

Status
Withdrawn
Publication Date
10-Feb-2008
Current Stage
9599 - Withdrawal of International Standard
Start Date
09-Apr-2024
Completion Date
30-Oct-2025
Ref Project

Relations

Standard
ISO/IEC 24778:2008 - Information technology — Automatic identification and data capture techniques — Aztec Code bar code symbology specification Released:2/11/2008
English language
45 pages
sale 15% off
Preview
sale 15% off
Preview

Frequently Asked Questions

ISO/IEC 24778:2008 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology - Automatic identification and data capture techniques - Aztec Code bar code symbology specification". This standard covers: Aztec Code is a two-dimensional matrix symbology whose symbols are nominally square, made up of square modules on a square grid, with a square bullseye pattern at their centre. Aztec Code symbols can encode from small to large amounts of data with user-selected percentages of error correction. Manufacturers of bar code equipment and users of the technology require publicly available standard symbology specifications to which they can refer when developing equipment and application standards. The publication of standardized symbology specifications is designed to achieve this. ISO/IEC 24778:2008 defines the requirements for the Aztec Code symbology. It specifies the Aztec Code symbology characteristics including data character encodation, rules for error control encoding, the graphical symbol structure, symbol dimensions and print quality requirements, a reference decoding algorithm, and user-selectable application parameters.

Aztec Code is a two-dimensional matrix symbology whose symbols are nominally square, made up of square modules on a square grid, with a square bullseye pattern at their centre. Aztec Code symbols can encode from small to large amounts of data with user-selected percentages of error correction. Manufacturers of bar code equipment and users of the technology require publicly available standard symbology specifications to which they can refer when developing equipment and application standards. The publication of standardized symbology specifications is designed to achieve this. ISO/IEC 24778:2008 defines the requirements for the Aztec Code symbology. It specifies the Aztec Code symbology characteristics including data character encodation, rules for error control encoding, the graphical symbol structure, symbol dimensions and print quality requirements, a reference decoding algorithm, and user-selectable application parameters.

ISO/IEC 24778:2008 is classified under the following ICS (International Classification for Standards) categories: 35.040 - Information coding; 35.040.50 - Automatic identification and data capture techniques. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC 24778:2008 has the following relationships with other standards: It is inter standard links to ISO/IEC 24778:2024. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.

You can purchase ISO/IEC 24778:2008 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 24778
First edition
2008-02-15
Information technology — Automatic
identification and data capture
techniques — Aztec Code bar code
symbology specification
Technologies de l'information — Techniques d'identification
automatique et de capture des données — Spécification pour la
symbologie de code à barres du code Aztec

Reference number
©
ISO/IEC 2008
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.

©  ISO/IEC 2008
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2008 – All rights reserved

Contents Page
Foreword. v
Introduction . vi
1 Scope . 1
2 Normative references . 1
3 Terms, definitions, symbols and functions .1
3.1 Terms and definitions. 1
3.2 Symbols and functions . 2
4 Symbology characteristics . 3
4.1 Basic characteristics. 3
4.2 Summary of additional features . 4
5 Symbol description. 4
5.1 Symbol structure . 5
5.2 Symbol character structure and sequence. 6
5.3 Symbol size and capacity . 7
6 General encodation procedures. 8
7 Symbol structure . 9
7.1 Fixed pattern structures. 9
7.2 Mode Message encoding and structure . 10
7.3 Data message encoding and structure.11
8 Structured Append . 14
9 Reader initialization symbols . 14
10 Extended Channel Interpretation . 15
10.1 Encoding ECIs in Aztec Code. 15
10.2 Code sets and ECIs . 15
10.3 ECIs and Structured Append. 15
10.4 Post-decode protocol. 15
11 User considerations . 16
11.1 User selection of encoded message. 16
11.2 User selection of minimum error correction level. 16
11.3 User selection of Structured Append . 16
11.4 User selection of optional symbol formats. 16
12 Dimensions. 16
13 User guidelines . 17
13.1 Human readable interpretation. 17
13.2 Autodiscrimination capability . 17
13.3 User-defined application parameters . 17
14 Reference decode algorithm . 17
14.1 Finding candidate symbols . 18
14.2 Processing the bullseye image . 18
14.3 Decoding the Core Symbol. 18
14.4 Decoding the data message . 19
14.5 Translating the datawords . 20
15 Symbol quality . 20
15.1 Symbol quality parameters. 20
© ISO/IEC 2008 – All rights reserved iii

15.2 Symbol print quality grading . 21
15.3 Process control measurements. 22
16 Transmitted data . 22
16.1 Basic interpretation . 22
16.2 Protocol for FNC1 . 22
16.3 Protocol for ECIs. 22
16.4 Symbology identifier. 23
16.5 Transmitted data example. 23
Annex A (normative) Aztec Runes. 24
Annex B (normative) Error detection and correction . 26
Annex C (normative) Topological bullseye search algorithm . 29
Annex D (normative) Linear crystal growing algorithm . 33
Annex E (normative) Fixed Pattern Damage grading . 34
Annex F (normative) Symbology identifiers . 36
Annex G (informative) Aztec Code symbol encoding example . 37
Annex H (informative) Achieving minimum symbol size. 41
Annex I (informative) Useful process control techniques. 43
Bibliography . 45

iv © ISO/IEC 2008 – All rights reserved

Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees
established by the respective organization to deal with particular fields of technical activity. ISO and IEC
technical committees collaborate in fields of mutual interest. Other international organizations, governmental
and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
ISO/IEC 24778 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 31, Automatic identification and data capture techniques.
© ISO/IEC 2008 – All rights reserved v

Introduction
Aztec Code is a two-dimensional matrix symbology whose symbols are nominally square, made up of square
modules on a square grid, with a square bullseye pattern at their center. Aztec Code symbols can encode from
small to large amounts of data with user-selected percentages of error correction.
Manufacturers of bar code equipment and users of the technology require publicly available standard
symbology specifications to which they can refer when developing equipment and application standards. The
publication of standardised symbology specifications is designed to achieve this.

vi © ISO/IEC 2008 – All rights reserved

INTERNATIONAL STANDARD ISO/IEC 24778:2008(E)

Information technology — Automatic identification and data
capture techniques — Aztec Code bar code symbology
specification
1 Scope
This International Standard defines the requirements for the symbology known as Aztec Code. It specifies the
Aztec Code symbology characteristics including data character encodation, rules for error control encoding, the
graphical symbol structure, symbol dimensions and print quality requirements, a reference decoding algorithm, and
user-selectable application parameters.
2 Normative references
The following referenced documents are indispensable for the application of this document. For dated
references, only the edition cited applies. For undated references, the latest edition of the referenced
document (including any amendments) applies.
ISO/IEC 646:1991, Information technology — ISO 7-bit coded character set for information interchange
ISO/IEC 15415:2004, Information technology — Automatic identification and data capture techniques — Bar
code print quality test specification — Two-dimensional symbols
ISO/IEC 15424, Information technology — Automatic identification and data capture techniques — Data
Carrier Identifiers (including Symbology Identifiers)
ISO/IEC 19762 (all parts), Information technology — Automatic identification and data capture (AIDC)
techniques — Harmonized vocabulary
AIM Inc. International Technical Specification: Extended Channel Interpretations
– Part 1, Identification Schemes and Protocols
– Part 2, Registration Procedure for Coded Character Sets and Other Data Formats
– Character Set Register
3 Terms, definitions, symbols and functions
3.1 Terms and definitions
For the purposes of this document, the terms and definitions given in ISO/IEC 19762 and the following apply.
3.1.1
bullseye
set of concentric square rings used as the finder pattern in Aztec Code
© ISO/IEC 2008 – All rights reserved 1

3.1.2
checkword
codeword which is included in a symbol for error correction and/or error detection
3.1.3
dataword
codeword which is part of the data message encoded in a symbol
3.1.4
domino
2-module sub-structure of the symbol character in Aztec Code which is the elemental entity used in graphical
encoding of the symbol
3.1.5
Mode Message
short fixed-length, error-corrected subsidiary message within an Aztec Code symbol which directly encodes
the symbol’s size and data message length
3.2 Symbols and functions
3.2.1 Mathematical symbols
For the purposes of this document, the following mathematical symbols apply.
B the number of bits in each codeword
C the symbol capacity in number of bits
b
C the symbol capacity in number of codewords
w
D the number of data (message) codewords in the symbol
K the number of error correction codewords in the symbol, equal to C - D
w
L the number of data layers (1 to 32) in the symbol, defining its size
m the symbology identifier modifier value
X the X-dimension or nominal square grid spacing
x a general variable used to express error correction polynomials
(x,y) Cartesian coordinates within the module grid
3.2.2 Mathematical functions and operations
For the purposes of this document, the following mathematical functions and operations apply.
abs() is the absolute value function
div is the integer division operator
max(a,b) is the greater of a and b
mod is the remainder after integer division
2 © ISO/IEC 2008 – All rights reserved

4 Symbology characteristics
4.1 Basic characteristics
Aztec Code is a two dimensional matrix symbology with the following basic characteristics:
a. Encodable character set:
1. All 8-bit values can be encoded. The default interpretation shall be:
a. for values 0 to 127, in accordance with the U.S. national version of ISO/IEC 646;
(NOTE: This version consists of the GO set of ISO/IEC 646 and the CO set of ISO/IEC 6429 with values 28
to 31 modified to FS, GS, RS and US respectively.)
b. for values 128 - 255, in accordance with ISO/IEC 8859-1.
This interpretation corresponds to ECI 000003.
2. Two non-data characters can be encoded, FNC1 for compatibility with some existing applications and
ECI escape sequences for the standardized encoding of message interpretation information.
b. Representation of data: A dark module is a binary one and a light module is a binary zero.
c. Symbol size:
1. The smallest Aztec Code symbol is 15 x 15 modules square, and the largest is 151 x 151.
2. No quiet zone is required outside the bounds of the symbol.
d. Data capacity (at recommended error correction level):
1. The smallest Aztec Code symbol encodes up to 13 numeric or 12 alphabetic characters or 6 bytes of
data.
2. The largest symbol encodes up to 3832 numeric or 3067 alphabetic characters or 1914 bytes of data.
e. Selectable error correction:
1. User-selectable, from 5 % to 95 % of the data region, with a minimum of 3 codewords.
2. Recommended level is 23 % of symbol capacity plus 3 codewords.
f. Code type: Matrix
g. Orientation independent: Yes
© ISO/IEC 2008 – All rights reserved 3

4.2 Summary of additional features
The following summarizes additional features that are inherent or optional in Aztec Code:
a. Reflectance Reversal (Inherent): Though Aztec Code symbols are shown and described in this specification
always with the finder’s center dark and with dark modules encoding binary 1s throughout, symbols exhibiting
the opposite reflectance characteristics are easily autodiscriminated and decoded with the standard reader.
b. Mirror Image (Inherent): Images which contain an Aztec Code symbol in mirror reversal, either because they
are obtained using a reflected optical path, a reversed scan direction, or from behind through a clear substrate,
are easily autodiscriminated and decoded with the standard reader.
c. Extended Channel Interpretation (Optional): The ECI mechanism enables characters from various character
sets (e.g. Arabic, Cyrillic, Greek, Hebrew) and other data interpretations or industry-specific requirements to be
represented.
d. Structured Append (Optional): Structured Append allows files of data to be represented logically and
continually in up to 26 Aztec Code symbols. The symbols may be scanned in any sequence to enable the
original data to be correctly reconstructed.
e. Reader Initialization Symbols (Optional): A distinct format of Aztec Code symbol is available for use in barcode
menus for reader initialization. The encoded message in these special symbols is never passed on to an
application.
f. Aztec “Runes” (Optional): a series of 256 small, machine-readable marks compatible with Aztec Code are
available for special applications. See Annex A.
5 Symbol description
Aztec Code symbols are nominally square, made up of square modules on a square grid, with a square bullseye
pattern at their center. Figure 1 shows two representative Aztec Code symbols, a small 1-layer symbol on the left
which encodes 12 digits with 47 % error correction and a larger 6-layer symbol on the right which encodes 168 text
characters with 30 % error correction.

Figure 1 — Representative Aztec Code symbols
These symbols illustrate the two basic formats of Aztec Code symbols: on the left is a “compact” Aztec Code
symbol, visually characterized by a 2-ring bullseye, useful for encoding shorter messages efficiently, while on the
right is a “full-range” Aztec Code symbol, visually characterized by a 3-ring bullseye, which supports much larger
symbols for longer data messages. Since encoders can autoselect and decoders autodiscriminate between the two
formats, a seamless transition is achieved to cover the full spectrum of applications.
4 © ISO/IEC 2008 – All rights reserved

5.1 Symbol structure
The underlying structure of a compact Aztec Code symbol is shown in Figure 2, and that of a full-range Aztec Code
symbol is shown in Figure 3. In both cases, the Aztec Code symbol has at its center a Core Symbol which is then
surrounded by data fields on all four sides.
Layer 4 - - - -
Layer 3 - - - -
Layer 2 - - - -
Fixed Structures Variable Structures
Layer 1 - - - -
MODE BITS - - -
Finder Pattern Mode Message
Data Layers
Orientation Patterns
Figure 2 — Structure of a “compact” Aztec Code symbol

La yer 6 - - - -
Layer 5 - - - -
Layer 4 - - - -
Layer 3 - - - -
Fixed Structures Variable Structures
Layer 2 - - - -
Layer 1 - - - -
MODE BITS - - - -
Reference Grid
Mode Message
Finder Pattern
Data Layers
Orientation Patterns
Figure 3 — Structure of a “full-range” Aztec Code symbol
5.1.1 Core Symbol
The Core Symbol, always square and at the exact center of an Aztec Code symbol, consists of a finder
pattern, orientation patterns, and a Mode Message. This core covers an 11x11 module area in compact
symbols and a 15x15 module area in full-range symbols. It is called the Core “Symbol” because it must be
successfully found and decoded before decoding can proceed into the surrounding data fields.
© ISO/IEC 2008 – All rights reserved 5

5.1.1.1 Finder pattern
The finder pattern in Aztec Code is a set of concentric square rings. Centered on a single dark module, there is a
ring of light modules surrounded by a larger ring of dark modules, and so forth outward to a second 9x9 module
dark ring in compact symbols and to a third 13x13 module dark ring in full-range symbols.
5.1.1.2 Orientation patterns
Four 3-module chevron-shaped orientation patterns are located at the corners of the finder pattern. The upper
lefthand pattern is all dark and the lower lefthand pattern is all light, while the upper righthand pattern has
2 modules dark and the lower right pattern has just 1 module dark, as shown in Figures 2 and 3.
5.1.1.3 Mode Message
The single layer of bits adjoining the finder pattern, excluding the orientation patterns and in full-range symbols also
excluding the center bit along each side (which is part of the reference grid), comprises an error-corrected Mode
Message wrapped in a clockwise direction starting from the upper left corner. This message explicitly encodes both
the number of data layers in the overall symbol (and thus its size) and the number of datawords in those layers, the
rest being error correction checkwords for that message. Encoding details for the Mode Message are given in 7.2.
5.1.2 Data fields
The data fields symmetrically surround the Core Symbol with one or more data layers. In full-range symbols, a
reference grid also threads throughout the data fields.
5.1.2.1 Reference grid
The reference grid, clearly evident in Figure 3, is a ladder-like extension of the dark/light periodicity in the finder
along every 16th row and column of the symbol, extending to the limit of the data fields. Its regular structure
provides outlying reference points often needed to accurately map the data field in the larger full-range symbols.
Compact Aztec Code symbols, which are of limited size, have no reference grid structure.
5.1.2.2 Data layers
The message data themselves plus their error correction words are laid into 2-module thick layers, spiralling
clockwise from the upper left corner of the Core Symbol outward, and in full-range symbols necessarily skipping
over module positions occupied by the reference grid. Compact Aztec Code symbols can have from one to four
data layers, while full-range Aztec Code symbols can have from one up to 32 data layers. Details of the message
encoding, codeword formation, error correction encoding, and the final laying of codewords into the data layers are
given in 7.3.
5.2 Symbol character structure and sequence
In order to enhance Reed-Solomon error correction performance, the codewords, and thus the symbol characters,
vary in size from 6-bits up to 12-bits depending on the overall symbol size, as illustrated in Figure 4.
6 © ISO/IEC 2008 – All rights reserved

MSB
Typical
Domino
11 9 7 5 3 1
12 10 8 6 4 2
in 1 and 2 Layer Symbols
in 3 to 8 Layer Symbols
in 9 to 22 Layer Symbols
in 23 to 32 Layer Symbols
Figure 4 — Symbol character structure
While spiralling around the core, turning corners and occasionally skipping across the reference grid, the symbol
characters’ actual shapes vary widely. However, if they are regarded as sequences of “dominos”, each 2 modules
tall by 1 module wide, then the sequence of symbol characters becomes a sequence of dominos whose placement
is highly systematic throughout the data fields, and thus easy to place during encoding and easy to map during
decoding. Figure 5 shows how the sequence of dominos is positioned as it turns corners and transitions between
data layers.
Figure 5 — “Domino” layout and sequencing
The sequence of codewords that spirals outward from the Core Symbol is in fact reversed from its natural order:
the first codeword in the spiral is the last Reed-Solomon checkword, followed then by the immediately preceeding
checkword, and so forth through the check words and then through the message codewords, until the final
codeword in the outermost data layer is the first codeword of the encoded message. This arrangement enhances
error correction by locating the data codewords (which have erasure detection because data codewords with all
zeros or all ones are illegal) near the symbol’s perimeter where erasures are more likely to occur.
5.3 Symbol size and capacity
Table 1 lists the overall size and capacities of the different sized Aztec Code symbols.
The data capacities shown are based on the recommended error correction levels. They represent
approximate limits because the message encoding efficiency depends in a detailed way on message content
and because the error correction level is user adjustable.
© ISO/IEC 2008 – All rights reserved 7

Table 1 — The size and capacities of Aztec Code symbols
# of Data Symbol Codeword Symbol Bit Symbol Data Capacities
Layers Size (in x) Count x Size Capacity Digits Text Bytes
1* 15 x 15 17 x 6 102 13 12 6
1 19 x 19 21 x 6 126 18 15 8
2* 19 x 19 40 x 6 240 40 33 19
2 23 x 23 48 x 6 288 49 40 24
3* 23 x 23 51 x 8 408 70 57 33
3 27 x 27 60 x 8 480 84 68 40
4* 27 x 27 76 x 8 608 110 89 53
4 31 x 31 88 x 8 704 128 104 62
5 37 x 37 120 x 8 960 178 144 87
6 41 x 41 156 x 8 1248 232 187 114
7 45 x 45 196 x 8 1568 294 236 145
8 49 x 49 240 x 8 1920 362 291 179
9 53 x 53 230 x 10 2300 433 348 214
10 57 x 57 272 x 10 2720 516 414 256
11 61 x 61 316 x 10 3160 601 482 298
12 67 x 67 364 x 10 3640 691 554 343
13 71 x 71 416 x 10 4160 793 636 394
14 75 x 75 470 x 10 4700 896 718 446
15 79 x 79 528 x 10 5280 1008 808 502
16 83 x 83 588 x 10 5880 1123 900 559
17 87 x 87 652 x 10 6520 1246 998 621
18 91 x 91 720 x 10 7200 1378 1104 687
19 95 x 95 790 x 10 7900 1511 1210 753
20 101 x 101 864 x 10 8640 1653 1324 824
21 105 x 105 940 x 10 9400 1801 1442 898
22 109 x 109 1020 x 10 10200 1956 1566 976
23 113 x 113 920 x 12 11040 2116 1694 1056
24 117 x 117 992 x 12 11904 2281 1826 1138
25 121 x 121 1066 x 12 12792 2452 1963 1224
26 125 x 125 1144 x 12 13728 2632 2107 1314
27 131 x 131 1224 x 12 14688 2818 2256 1407
28 135 x 135 1306 x 12 15672 3007 2407 1501
29 139 x 139 1392 x 12 16704 3205 2565 1600
30 143 x 143 1480 x 12 17760 3409 2728 1702
31 147 x 147 1570 x 12 18840 3616 2894 1806
32 151 x 151 1664 x 12 19968 3832 3067 1914
* An asterisk indicates a “compact” symbol; the rest are “full-range” symbols.
NOTE: Full range symbols with 1, 2, or 3 layers are useful only for reader initialization.
6 General encodation procedures
The following steps are required to convert data into the encoded form represented in an Aztec Code symbol. The
following clauses of this specification specify all the rules and procedures. An encoding example is shown in
Annex G.
1. Data from a 256 character set may be encoded in Aztec Code. The input message is presented in a stream of
byte values reading from left to right. Special FNC1 or ECI flag characters may be inserted at any points in the
stream.
8 © ISO/IEC 2008 – All rights reserved

2. Each message character is translated into 4, 5, or 8 bits, preceded by additional 4 or 5-bit shift and latch codes
as needed, forming a long continuous data bit stream.
3. The minimum number of bits to be encoded is computed by taking the length of the data bit stream and adding
as many bits as needed to reach either the default or user-specified error correction percentage. From this
calculation, the format and minimum size (number of data layers L) of the symbol is selected using Table 1.
This in turn establishes both the codeword size B and overall symbol capacity in codewords C .
w
4. The data bit stream is laid into codewords, systematically avoiding the formation of any codewords containing
all 0’s or all 1’s, thus creating D message codewords.
5. The number K of checkwords becomes C minus D. Systematic Reed-Solomon encoding, based on a Galois
w
B
Field of size 2 and using a generator polynomial of order K, is employed to generate K additional check
codewords which are appended to the sequence of message codewords.
6. The binary values of L and D are formed into a Mode Message, and systematic Reed-Solomon encoding
based on GF(16) is employed to generate additional check bits.
7. Graphically, the L-layer symbol is constructed by placing modules first for the fixed structures of the finder,
orientation patterns, and (if full-range) reference grid, then for the Mode Message wrapping around the finder,
and finally for the spiralling layers of dominos which constitute the sequence of datawords and checkwords
taken in reverse order.
7 Symbol structure
7.1 Fixed pattern structures
An Aztec Code symbol contains three types of fixed pattern - the finder, orientation bits, and if full-range a
reference grid. These are all shown in Figures 2 and 3. Their specification is facilitated by regarding the
symbol grid as a Cartesian plane with (0,0) at the symbol’s center and with the x-axis pointing to the right and the
y-axis pointing upward.
7.1.1 The finder
The finder pattern is a square bullseye target filling the central square region whose corner modules are centered at
(-F,-F), (-F,F), (F,F), and (F,-F) where F is 4 in compact symbols and 6 in full-range symbols. Where the value
“0” represents a light module and “1” represents a dark module, all the modules within the finder region can be
defined as encoding:
((max(abs(x),abs(y))) + 1) mod 2
7.1.2 The orientation bits
The orientation bits are four groups of three modules attached to the corners of the finder. With F as defined
above, six dark modules are located at (-F-1,F), (-F-1,F+1), (-F,F+1), (F+1,F+1), (F+1,F) and (F+1,-F) and six
light modules are located at (F,F+1), (F+1,-F-1), (F,-F-1), (-F,-F-1), (-F-1,-F-1) and (-F-1,-F).
7.1.3 The reference grid
The reference grid extends throughout full-range Aztec Code symbols occupying every location where x is a
multiple of 16 or y is a multiple of 16, i.e. ((x mod 16) = 0) or ((y mod 16) = 0). Again where the value “0” represents a
light module and “1” represents a dark module, all the modules within the reference grid can be defined as
encoding:
(x + y + 1) mod 2.
Where the reference grid and finder overlap, they have the same values.
© ISO/IEC 2008 – All rights reserved 9

7.2 Mode Message encoding and structure
The Mode Message is a sequence of bits which encircles the finder pattern. It includes bits designating the symbol
size, followed by bits designating the message length, and finally bits which provide the Mode Message with error
redundancy.
7.2.1 Symbol size designator
The symbol size designator bits directly encode in binary the number L of data layers in the overall symbol, minus
one. In the compact format there are 2 such bits, whose binary value from 0 to 3 signifies symbols with from one up
to 4 layers of data. In the full-range format there are 5 such bits, whose binary value from 0 to 31 signifies symbols
with from one up to 32 layers of data. These bits in turn designate the symbol’s overall size dimension and data
capacity C , and they also establish the number of bits B in each data codeword, as given in Table 1.
w
7.2.2 Message length designator
The message length designator bits directly encode in binary the number D of the data codewords which actually
encode the message, minus 1, with the rest of the codewords in the symbol being used for error correction. In the
compact format there are 6 such bits, whose binary value from 0 to 63 signifies symbols whose message fills from
one up to 64 codewords. In the full-range format there are 11 such bits, whose binary value from 0 to 2047 would
signify symbols whose message fills from one up to 2048 codewords. However, the symbol capacity C presents a
w
logical upper limit for message length, and the recommended upper limit allowing for adequate error protection is
(0.77 C ) - 3.
w
For special reader initialization symbols (see Clause 9), the most significant bit of the message length designator is
artificially set to a one, thus indicating a message length which exceeds C .
w
7.2.3 Error encodation for the Mode Message
The symbol size plus message length bits are packed into several 4-bit codewords which become the “datawords”
of the Mode Message. To these are then added several more “checkwords” computed by systematic Reed-
Solomon encoding over the Galois Field GF(16) based on a prime modulus polynomial of x + x + 1 (19 decimal).
In compact Aztec Code symbols, the Mode Message data of “ssmmmmmm” (where “ss” designates size and
“mm.” designates message length) forms two 4-bit datawords, to which 5 checkwords are added using a
1 5
generator polynomial of (x-2 ).(x-2 ) equal to:
5 4 3 2
x + 11x + 4x + 6x + 2x + 1
Together the 2 datawords plus the 5 checkwords, obtained as coefficients of the remainder when a polynomial of
the datawords is scaled upwards by x and then long divided by the generator polynomial within GF(16), form the
28-bit Mode Message for a compact symbol.
In full-range symbols, the Mode Message data of “sssssmmmmmmmmmmm” forms four 4-bit datawords, to which
1 6
6 checkwords are added using (x-2 ).(x-2 ) equal to:
6 5 4 3 2
x + 7x + 9x + 3x + 12x + 10x + 12

Together the 4 datawords plus the 6 checkwords form the 40-bit Mode Message for a full-range Aztec Code
symbol.
7.2.4 Module placement for the Mode Message
The bits of the Mode Message are graphically encoded using dark modules to represent a “1” and light modules to
represent a “0”.
10 © ISO/IEC 2008 – All rights reserved

The string of Mode Message bits, from the most significant size designation bit through to the least significant bit of
the final checkword, is laid in a single layer of modules starting near the upper left corner of the finder and wrapping
clockwise around it, skipping over positions occupied by the orientation patterns and reference grid. In a compact
symbol, the 28 bits are essentially parsed into four 7-bit strings, with the first running left-to-right across the top of
the finder, the next running down its right side, the third running right-to-left along its bottom, and the fourth running
up its left side. In a full-range symbol, the 40-bit Mode Message is parsed into eight 5-bit strings, with the first two
running left-to-right across the top of the the finder, and so forth.
7.3 Data message encoding and structure
The data message is a sequence of C B-bit codewords which spirals outward from the Core Symbol. These
w
consist of D codewords, exactly the number needed to encode the source data message, plus as many check
codewords as are needed to fill out the symbol, all taken in reverse order (see 7.3.3).
7.3.1 Source message encoding
The source sequence of data characters is translated into a sequence of message codewords in a two-step
process. First the data characters in succession are converted to equivalent binary values, using intermediary shift
and latch values as needed, producing a long binary stream of input data. Second this string is laid into a sequence
of B-bit codewords using an exclusionary rule that avoids any occurrence of a codeword with all 0’s or with all 1’s.
7.3.1.1 Translation into a binary stream
Table 2 presents values assigned to several code sets of ASCII character values, and to shift and latch operations
for jumping between code sets. The Upper and Lower code sets contain upper and lowercase alphabetic
characters respectively; Mixed contains a mixture of ASCII control and punctuation characters; Punctuation contains
common punctuation characters and combinations; and Digit contains the numerals plus some punctuation. Other
than “FLG(n)” (see below), all those entries in Table 2 that are shown with no corresponding ASCII value are shift or
latch operations for accessing the different code sets.
Message encoding starts in the Upper code set, and can be latched (semi-permanently, via U/L, L/L, M/L, P/L, or
D/L) or shifted (for one character only, via U/S or P/S) into the other modes as needed. In Upper, Lower, Mixed,
and Punctuation code sets each character, latch or shift adds a 5-bit value to the data bitstream, while in the Digit
code set each character, latch, or shift adds just a 4-bit value to the stream. In all cases, the binary values are
strung together with their most significant bits leading.
Byte Shift (B/S) is a special case, shifting into a runlength-controlled string of literal 8-bit bytes. Following a B/S is a
5-bit binary value: if non-zero, it encodes the number of bytes (1 to 31) that follow, but if zero then the next 11 bits
encode the number of bytes less 31. Byte Shift can thus encode either isolated extended ASCII or control
characters or long strings of byte data, possibly filling the whole symbol. At the end of the byte string, encoding
returns to the mode from which B/S was invoked.
© ISO/IEC 2008 – All rights reserved 11

Table 2 — Aztec Code high-level (message) encoding
Upper Lower Mixed Punct. Digit
Value Char ASCII Char ASCII Char ASCII Char ASCII Char ASCII
0 P/S P/S P/S FLG(n) P/S
1 SP 32 SP 32 SP 32 CR 13 SP 32
2 A 65 a 97 SOH 1 CR LF 13, 10 0 48
3 B 66 b 98 STX 2 . SP 46, 32 1 49
4 C 67 c 99 ETX 3 , SP 44,32 2 50
5 D 68 d 100 EOT 4 : SP 58, 32 3 51
6 E 69 e 101 ENQ 5 ! 33 4 52
7 F 70 f 102 ACK 6 " 34 5 53
8 G 71 g 103 BEL 7 # 35 6 54
9 H 72 h 104 BS 8 $ 36 7 55
10 I 73 i 105 HT 9 % 37 8 56
11 J 74 j 106 LF 10 & 38 9 57
12 K 75 k 107 VT 11 ' 39 , 44
13 L 76 l 108 FF 12 ( 40 . 46
14 M 77 m 109 CR 13 ) 41 U/L
15 N 78 n 110 ESC 27 * 42 U/S
16 O 79 o 111 FS 28 + 43
17 P 80 p 112 GS 29 , 44
18 Q 81 q 113 RS 30 - 45
19 R 82 r 114 uS 31 . 46
20 S 83 s 115 @ 64 / 47
21 T 84 t 116 \ 92 : 58
22 U 85 u 117 ^ 94 ; 59
23 V 86 v 118 _ 95 < 60
24 W 87 w 119 ` 96 = 61
25 X 88 x 120 | 124 > 62
26 Y 89 y 121 ~ 126 ? 63
27 Z 90 z 122 DEL 127 [ 91
28 L/L U/S L/L ] 93
29 M/L M/L U/L { 123
30 D/L D/L P/L } 125
31 B/S B/S B/S U/L
The character designated “FLG(n)” in the Punctuation column of Table 2 is a special in-place flag used to represent
a variety of non-data characters supported by many standard symbologies. In the bit stream, the FLG(n) value is
followed by 3 extra bits encoding its argument “n” in binary; thus n is valued between 0 and 6 (7 is invalid).
FLG(0) represents “FNC1”, a non-data flag deriving from Code 128. When FNC1 precedes the first message
character, it signals the use of GS1 data formatting rules using Application Identifiers and affects the symbology
identifier modifier value. When FNC1 immediately follows a single upper or lower case letter or two digits at the
12 © ISO/IEC 2008 – All rights reserved

beginning of the message, then it signals the use of some other industry-standard format, identified by the
preceeding data, and also affects the modifier value. When FNC1 occurs at any other location in the data, it serves
as a field separator and causes an ASCII 29 () to be inserted in its place in the output data string.
FLG(1) through FLG(6) represent the Extended Channel Interpretation (ECI) flag, which in an ECI-compliant reader
causes “\nnnnnn”, a backslash followed by a 6-digit number, to be inserted into the output data string. (An
ECI-compliant reader also doubles all encoded data backslashes in the output string and sets an appropriate
symbology identifier modifier value.) The argument n in this case indicates how many of the 6 digits are explicitly
encoded in the symbol, using Digit mode, with leading zeros being assumed for the rest. ECI 000123, for example,
is encoded FLG(3)123, after which encoding reverts to the mode from which FLG(n) was invoked.
Annex H presents an algorithm for finding that sequence of code sets, latchs and shifts that will minimize the
number of bits needed to encode any input sequence of bytes, ultimately minimizing symbol size and maximizing
its error redundancy.
7.3.1.2 Formation of data codewords
In the second step of source encoding, once the overall symbol size has been selected and the codeword size B
thus determined, then the stream of message bits is laid into the sequence of B-bit (B = 6, 8, 10, or 12) message
codewords in a generally direct fashion, starting at the most significant bit of the first codeword, with two key
exceptions: whenever the first B-1 bits placed in a codeword are all “0”s, then a dummy “1” is inserted into that
codeword’s LSB and the following message bit starts off the next codeword. Similarly a message codeword that
starts with B-1 “1”s has a dummy “0” inserted into its LSB. In this manner, message codewords of all “0”s or all “1”s
are illegal and can be deemed erasures during the decoding process.
In the end, the character and byte boundaries in the original message have no well-defined relationship with the
codeword boundaries. Up to B-1 bits may remain unfilled in the final message codeword, and they are to be
padded out with “1”s (and possibly a final dummy “0” if necessary) to eliminate any ambiguity. (Note: because this
pad pattern can appear
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...