11. Error Correction Levels in QR Code |
11.1 Overview of QR Code Error Correction Design |
QR Code is one of the most widely deployed 2D matrix symbologies and is also one of the clearest examples of discrete, user-selectable error correction levels. From its earliest design, QR Code prioritized fast decoding, omnidirectional scanning, and robustness under consumer-grade scanning conditions. |
Error correction in QR Code is based on Reed-Solomon coding and is an integral part of the ISO-standardized encoding process. The symbol is divided into blocks, each of which contains data codewords and corresponding error correction codewords. |

|
11.2 QR Code Error Correction Levels Explained |
QR Code defines four discrete error correction levels. Each level corresponds to a different proportion of redundancy embedded into the symbol. |
The lowest level provides minimal redundancy and maximum data capacity. Higher levels progressively reduce capacity while increasing tolerance to damage or distortion. |
The four levels are conceptually interpreted as follows: |
1. Lowest level: optimized for clean printing and controlled scanning environments |
2. Low-medium level: balanced for general-purpose usage |
3. Medium-high level: suitable for consumer-facing applications |
4. Highest level: designed for harsh conditions or aesthetic modifications |
Each level defines a fixed ratio of error correction codewords to data codewords for each symbol version. |

|
11.3 Block Structure and Interleaving in QR Code |
QR Code does not treat the symbol as a single continuous block. Instead, it divides the data into multiple blocks, each independently protected by Reed-Solomon coding. |
This block-based design has several advantages: |
1. Localized damage is less likely to destroy all redundancy |
2. Decoding can proceed in parallel across blocks |
3. Correction performance is more predictable |
The interleaving of blocks ensures that adjacent modules often belong to different error correction blocks, further improving resilience. |

|
11.4 Impact of Error Correction Level on Symbol Version |
In QR Code, symbol size is defined by a version number. Each version has a fixed total number of modules. Increasing the error correction level for a given amount of data often forces the encoder to select a higher version. |
This means that increasing error correction indirectly increases symbol size, which may affect scanning distance, print resolution requirements, and aesthetic considerations. |

|
11.5 Error Correction and Logo Insertion |
One of the most visible applications of QR Code error correction is the insertion of logos or images into the symbol. High error correction levels allow a central portion of the symbol to be visually modified while still remaining decodable. |
However, this practice relies on several assumptions: |
1. The logo does not cover critical functional patterns |
2. Damage is approximately centered and contiguous |
3. The remaining modules are printed with sufficient quality |
Overuse of this technique can lead to unpredictable decoding failures. |

|
12. Error Correction Levels in Data Matrix |
12.1 Design Philosophy of Data Matrix Error Correction |
Data Matrix was designed primarily for industrial and high-density marking applications. Its error correction philosophy emphasizes reliability over configurability. |
Unlike QR Code, most Data Matrix symbols use a fixed error correction scheme that is automatically determined by symbol size rather than being user-selectable. |
12.2 ECC 200 and Reed-Solomon Implementation |
Modern Data Matrix symbols use a specification commonly referred to as ECC 200. This specification defines how many error correction codewords are included for each symbol size. |
The error correction codewords are generated using Reed-Solomon coding over a finite field. The number of error correction codewords increases as symbol size increases, providing greater absolute correction capability for larger symbols. |
12.3 Absence of User-Selectable Error Correction Levels |
In Data Matrix, the user does not explicitly choose an error correction level. Instead, the encoder selects the smallest symbol that can accommodate both the data and the required error correction. |
This design simplifies encoding decisions and ensures a consistent level of robustness across implementations. |
12.4 Correction Capability and Practical Implications |
Although Data Matrix does not offer selectable levels, its default error correction is generally sufficient for demanding industrial environments, including direct part marking. |
The correction capability is often expressed in terms of codewords that can be recovered. In practice, Data Matrix can tolerate significant localized damage, especially when printed at sufficient module size. |
12.5 Error Correction and L-Shaped Finder Pattern |
The Data Matrix finder pattern plays an indirect role in error correction by providing a strong reference for symbol orientation and module alignment. |
Accurate alignment reduces the likelihood of decoding errors, effectively complementing the mathematical error correction mechanism. |

|
13. Error Correction Levels in PDF417 |
13.1 Overview of PDF417 Error Correction |
PDF417 is a stacked linear barcode that uses a different approach to error correction compared to matrix codes. It incorporates error correction at the codeword level, with configurable redundancy. |
Error correction in PDF417 is based on Reed-Solomon coding and is applied across rows of codewords. |
13.2 Error Correction Levels as Discrete Settings |
PDF417 defines multiple discrete error correction levels, typically numbered sequentially. Each level corresponds to a specific number of error correction codewords. |
Higher levels increase redundancy and reduce data capacity. Lower levels prioritize compactness. |
13.3 Relationship Between Rows, Columns, and Error Correction |
In PDF417, the physical layout of the symbol interacts with error correction. Increasing the number of rows or columns affects how error correction codewords are distributed and how damage impacts decoding. |
This makes error correction level selection more complex than in matrix codes. |
13.4 Use Cases Requiring High Error Correction |
PDF417 is often used in environments where symbols may be folded, creased, or partially obscured, such as transportation documents and identification cards. |
Higher error correction levels are commonly selected in such cases to ensure reliable decoding even when entire rows are damaged. |

|
14. Error Correction in Aztec Code |
14.1 Design Goals of Aztec Code |
Aztec Code was designed to eliminate the need for a quiet zone and to support compact symbols with strong error correction. |
Error correction in Aztec Code is highly configurable and closely integrated with the symbol layered structure. |
14.2 Percentage-Based Error Correction |
Aztec Code allows error correction to be specified as a percentage of the total symbol capacity. This provides finer control compared to discrete levels. |
Common percentages range from low redundancy for controlled environments to very high redundancy for harsh conditions. |
14.3 Layers and Error Correction Distribution |
Aztec Code symbols are built in concentric layers. Error correction codewords are distributed across these layers in a way that maximizes recoverability from localized damage. |
This structure allows Aztec Code to tolerate damage near the edges or center of the symbol with minimal impact. |
14.4 Compact Versus Full Aztec Symbols |
Compact Aztec symbols have different error correction characteristics compared to full-range symbols. The encoder must account for these differences when selecting an error correction percentage. |

|
15. Error Correction in MaxiCode |
15.1 Fixed Error Correction Model |
MaxiCode uses a fixed error correction scheme that is not user-configurable. The design prioritizes extremely fast decoding in high-speed logistics environments. |
15.2 Implications of Fixed Error Correction |
The fixed model ensures consistent decoding performance but limits flexibility. Users must adapt symbol placement and printing quality to the predefined correction capability. |
15.3 Error Correction and Hexagonal Grid |
MaxiCode hexagonal module arrangement influences how errors manifest and how error correction performs. The geometry reduces directional bias and improves robustness under motion blur. |

|
16. Error Correction in DotCode |
16.1 Dot-Based Encoding and Error Correction |
DotCode uses a dot matrix arrangement optimized for high-speed printing. Error correction is integrated into the encoding process and is typically fixed or semi-fixed. |
16.2 Suitability for Continuous Inkjet Printing |
The error correction scheme in DotCode is designed to compensate for missing or irregular dots, which are common in high-speed inkjet environments. |

|
17. Comparison of Configurable Versus Fixed Error Correction Models |
17.1 Advantages of Configurable Models |
Configurable error correction allows tailoring robustness to specific applications. It provides flexibility but requires informed decision-making. |
17.2 Advantages of Fixed Models |
Fixed models simplify encoding and reduce the risk of misconfiguration. They ensure predictable performance but may be suboptimal in edge cases. |

|
18. Summary of Part 2 |
This part has examined how error correction level settings are implemented across major 2D code symbologies. The diversity of approaches reflects different design priorities, scanning environments, and historical contexts. |
In Part 3, the discussion will move deeper into: |
1. Detailed mathematical behavior of error correction levels under different damage patterns |
2. Symbol masking, interleaving, and their interaction with error correction |
3. Practical decision frameworks for selecting appropriate error correction levels |