<a id="specifications-and-supported"></a>

# Specifications and Supported Symbols

<a id="code-definition"></a>

## Data Matrix Code Definition

* A data matrix code is a two-dimensional rectangular array of black and white cells which conveys a string of characters (digits, letters and special characters).
  * It is encoded to achieve maximum packing.
  * Each cell corresponds to a bit of information.
  * Additional redundant bits allow error correction for robust reading of degraded symbols.
* A data matrix code is located using the **Finder pattern**:
  * The bottom and left edges of a Data Matrix code contain only black cells.
  * The top and right edges have alternating cells.

![EasyMatrixCode composition](assets/images/easymatrixcode2/datamatrix.svg)
* A data matrix code is characterized by:
  * Its logical size (number of cells).
  * Its **encoding type**: ECC000 (odd symbol sizes, deprecated) or ECC200 (even symbol sizes).

#### NOTE
The data matrix code definition is provided by ISO/IEC and approved as standard ISO/IEC 16022.

<a id="specifications-emc2"></a>

## **EasyMatrixCode** Specifications

In a single read operation, [`EasyMatrixCode`](../../../reference_manual/text_and_code_reading/easymatrixcode-library.html.md) locates, unscrambles, decodes, reads and grades the quality of grayscale 2D data matrix codes of any size, contrast, location and orientation (even viewed from the back on a transparent medium), providing they meet the following specifications:

* Minimum cell (= module) size: 3x3 pixels
* Minimum quiet zone (blank zone around the matrix code) width: 1 pixel

All the non-deprecated functionalities of [`EasyMatrixCode`](../../../reference_manual/text_and_code_reading/easymatrixcode-library.html.md) are available for testing in **eVision Studio**, except for the [`EMatrixCodeReader::StopProcess`](../../../doxygen_cpp/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#a64a4ac29123e3b6c482dfd10a26b271f) [<sub>.NET</sub>](../../../doxygen_cs/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#a3f45e67b7d1fbcf47ba3a51b1ad33e92) [<sub>Python</sub>](../../../doxygen_python/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#a6910648bd7c1063b073a0f8dbfd7a52f) method (for asynchronous processing).

<a id="supported-symbols-emc2"></a>

## Supported Symbols

<a id="ecc"></a>

### ECC other than the ECC200

#### NOTE
See the **ISO/IEC 16022** standard for more information.

<a id="ecc-error-correction-table"></a>

#### Error Correction Table

|        |   Correctable errors % |
|--------|------------------------|
| ECC000 |                    0   |
| ECC050 |                    2.8 |
| ECC080 |                    5.5 |
| ECC100 |                   12.6 |
| ECC140 |                   25   |

<a id="ecc-symbol-table"></a>

#### Symbol Table

|        |        |        |  Size   |  Capacity (numerical | alphanumerical | byte)   |
|--------|--------|--------|---------|-------------------------------------------------|
| ECC000 | ECC050 | ECC080 | ECC100  | ECC140                                          |
| num    | alph   | byte   | num     | alph                                            |
| 9x9    | 6      | 3      | 1       | n/a                                             |
| 11x11  | 12     | 8      | 5       | 1                                               |
| 13x13  | 24     | 16     | 10      | 10                                              |
| 15x15  | 37     | 25     | 16      | 20                                              |
| 17x17  | 53     | 35     | 23      | 32                                              |
| 19x19  | 72     | 48     | 31      | 46                                              |
| 21x21  | 92     | 61     | 40      | 61                                              |
| 23x23  | 115    | 76     | 50      | 78                                              |
| 25x25  | 140    | 93     | 61      | 97                                              |
| 27x27  | 168    | 112    | 73      | 118                                             |
| 29x29  | 197    | 131    | 86      | 140                                             |
| 31x31  | 229    | 153    | 100     | 164                                             |
| 33x33  | 264    | 176    | 115     | 190                                             |
| 35x35  | 300    | 200    | 131     | 217                                             |
| 37x37  | 339    | 226    | 148     | 246                                             |
| 39x39  | 380    | 253    | 166     | 277                                             |
| 41x41  | 424    | 282    | 185     | 310                                             |
| 43x43  | 469    | 313    | 205     | 344                                             |
| 45x45  | 500    | 345    | 226     | 380                                             |
| 47x47  | 560    | 378    | 248     | 418                                             |
| 49x49  | 596    | 413    | 271     | 457                                             |

<a id="ecc200"></a>

### ECC200

#### NOTE
See the **ISO/IEC 16022** standard for more information.

<a id="ecc200-symbol-table-square"></a>

#### Symbol Table for Square ECC200

|  Size   |  Capacity   |  Correctable errors %   |
|---------|-------------|-------------------------|
| num     | alpha       | byte                    |
| 10x10   | 6           | 3                       |
| 12x12   | 10          | 6                       |
| 14x14   | 16          | 10                      |
| 16x16   | 24          | 16                      |
| 18x18   | 36          | 25                      |
| 20x20   | 44          | 31                      |
| 22x22   | 60          | 43                      |
| 24x24   | 72          | 52                      |
| 26x26   | 88          | 64                      |
| 32x32   | 124         | 91                      |
| 36x36   | 172         | 127                     |
| 40x40   | 228         | 169                     |
| 44x44   | 288         | 214                     |
| 48x48   | 348         | 259                     |
| 52x52   | 408         | 304                     |
| 64x64   | 560         | 418                     |
| 72x72   | 736         | 550                     |
| 80x80   | 912         | 682                     |
| 88x88   | 1152        | 862                     |
| 96x96   | 1392        | 1042                    |
| 104x104 | 1632        | 1222                    |
| 120x120 | 2100        | 1573                    |
| 132x132 | 2608        | 1954                    |
| 144x144 | 3116        | 2335                    |

<a id="ecc200-symbol-table-rectangular"></a>

#### Symbol Table for Rectangular ECC200

|  Size   |  Capacity   |  Correctable errors %   |
|---------|-------------|-------------------------|
| num     | alpha       | byte                    |
| 8x18    | 10          | 6                       |
| 8x32    | 20          | 13                      |
| 12x26   | 32          | 22                      |
| 12x36   | 44          | 31                      |
| 16x36   | 64          | 46                      |
| 16x48   | 98          | 72                      |

<a id="dmre"></a>

### Extended Rectangular Data Matrix DMRE

#### NOTE
See the **ISO/IEC 21471** standard for more information.

<a id="dmre-symbol-table"></a>

#### Symbol Table

|  Size   |  Capacity   |  Correctable errors %   |
|---------|-------------|-------------------------|
| num     | alpha       | byte                    |
| 8x48    | 36          | 25                      |
| 8x64    | 48          | 34                      |
| 8x80    | 64          | 46                      |
| 8x96    | 76          | 55                      |
| 8x120   | 98          | 72                      |
| 8x144   | 126         | 93                      |
| 12x64   | 86          | 63                      |
| 12x88   | 128         | 94                      |
| 16x64   | 124         | 91                      |
| 20x36   | 88          | 64                      |
| 20x44   | 112         | 82                      |
| 20x64   | 186         | 124                     |
| 22x48   | 144         | 106                     |
| 24x48   | 160         | 118                     |
| 24x64   | 216         | 160                     |
| 26x40   | 140         | 103                     |
| 26x48   | 180         | 133                     |
| 26x64   | 236         | 175                     |
