Extrait de l'émission CPU release Ex0193 : Datamatrix, QR-code et autres damiers.
Parmi les ancêtres des code-barres 2D, on va voir arriver des solutions intermédiaires de code-barres agrégés, comme le code-barre 16K ou le PDF417 qu'on retrouve sur les colis postaux. Ce type de code-barres se présente comme généralement 4 à 8 code-barres accolés, empilés perpendiculairement au sens de lecture conventionnel. L'avantage étant qu'il peut être lu par les lecteurs laser à code-barres déjà installés sur les chaines de montages, à la condition expresse que l'angle de pose de l'étiquette soit perpendiculaire au défilement. L'usage par un humain d'une douchette est nettement plus aléatoire, du moins, jusqu'à l'arrivée de capteurs CCD complets et pas uniquement linéaires.
Le premier code-barre 2D relevé par nos services est fort logiquement le format le plus simple. Il est aussi celui qui a été le plus utilisé en Europe. Je parle du Datamatrix. Les fondements sont posés en 1987 et il sera standardisé en 1992.
De loin, le datamatrix ressemble à une mosaïque monochrome sans réel motif discernable.
De près, il est composée d'un carré élémentaire avec deux côtés contigus en pointillés, qui servent de timing (ce qui permet de compter sa résolution), et des deux côtés opposés délimitant en noir plein. À l'intérieur de ce carré est casé un message sous une forme de mosaïque binaire en noir et blanc, où chaque point élémentaire est, vous l'auriez deviné, un bit. Et ces carrés de mosaïque peuvent être accolés en un carré ou un rectangle plus grand, pour contenir un message plus long.
Bon, ok, c'est pas clair, surtout en radio. Alors, on va faire un exercice.
On prend une feuille blanche quadrillée et un feutre noir. On y trace les contours d'un carré de 21 carreaux de côté. La première rangée en bas et celle à gauche, on les fait en noir. Celle tout en haut et celle à droite, on colorie un carré sur deux de ces bords. Ensuite, on travaille par octets, donc par pavés de 8 pixels, qui sont agencés en diagonale depuis le haut gauche, puis qui zigzaguent en redescendant vers la gauche, puis remontant vers la droite.
Si dans le datamatrix on peut stocker un nombre très grand (plusieurs milliers de chiffres), il est surtout intéressant car on la place d'y stocker un texte. Sauf qu'au moment où naît le Datamatrix, l'informatique est à milles lieux d'avoir un jeu de caractère universel comme l'Unicode. On se bat alors à coup d'ISO 8859, de plages de code MS-DOS et autres tortures ésotériques. Donc, pour stocker un texte, on doit penser à indiquer quel jeu de caractère ou le type de données qui y sont stockés ; on va donc mettre au début du message quelques métadonnées qui vont expliquer sommairement ce qui est stocké dans ce datamatrix, et quel jeu de caractère est utilisé.
En général, c'est le code ASCII qui est le plus fréquent.
On ajoute plusieurs dispositifs de corrections d'erreurs de lecture, notamment pour la version actuelle le codage Reed–Solomon (qu'on utilise depuis le CD audio).
Le Datamatrix ne comporte pas de guides de positionnement et d'alignements, mais uniquement les indications de timing qui servent aussi de frontières. Ce qui réduit la qualité d'acquisition et le rend moins marquant
à l'œil humain. Par contre, il a une grande densité d'information, ce qui permet de le caser dans des espaces exigus.
À l'heure actuelle, l'usage du Datamatrix est principalement industriel et pour les GED (les outils de gestions informatiques de documents) de forte capacité, mais il peut aller bien au-delà de la gestion logistique : ainsi, sur toutes les boites de médicaments, vous trouverez un datamatrix reprenant le code CIP, indiquant entre autres le numéro de lot et la date limite de consommation, des informations obligatoires imposés par un règlement européen de 2016, un effort à la fois très utile pour les médicaments à péremption courte, mais aussi pour tenter de freiner la contrefaçon de médicaments.
Texte : Da Scritch
Illustration graphique : URL de l'émission en datamatrix.