Extrait de l'émission CPU release Ex0193 : Datamatrix, QR-code et autres damiers.
De ces solutions de code-barres 2D qui vont tenter d'accélérer la vitesse de lecture par rapport à Datamatrix, une d'entre elle va se montrer redoutablement efficace, avec un design originaire du Japon.
Et sa conception s'est faite dans les murs de Denso, un grand groupe japonais fournissant des pièces détachées pour l'industrie automobile et nombre de robots industriels via sa filiale Denso Wave. Cette entreprise utilise déjà des code-barres pour justement identifier ses pièces. Et à la fin des années 1980s, Denso commence à s'intéresser à des code-barres plus denses pour ses besoins de logistique interne. Toujours l'idée d'avoir rapidement un certain volume d'informations sur un objet, tout en étant autonome d'une base centralisée.
Denso est une filiale de Toyota, entreprise dont on a déjà rapidement parlé dans cette série d'émission pour sa méthode de production à la demande, qui vont initier les gestions de projet Agile. Et un de ses ingénieurs, Masahiro Hara, cherchait un moyen de stocker plus d'informations sur les voitures en cours de construction, notamment les options demandées, l'adresse de livraison etc… et de les reporter sur les pièces venant de différentes usines. Encore une idée de stocker plus que des chiffres : y mettre du texte avec les différents alphabets japonais, un charset qui fait plus de 2 000 symboles, ce qui devrait nous rendre humble avec notre petit alphabet latin.
La légende dit que Masahiro Hara se serait inspiré du jeu de Go. N'oublions pas qu'on est à une époque où ce que l'on appelle de nos jours pixel art
est tout simplement ce que sont alors capables de faire la plupart des ordinateurs.
Comme pour le datamatrix, reprenons notre regard à deux niveaux. Le QR-Code est lui aussi de format carrégulaire, et les carrés élémentaires sont de simples bits.
Mais à la différence du Datamatrix, et vu que les capteurs CCD sont encore moins précis qu'une lecture au laser, Masahiro Hara va tenter d'accélérer le temps de reconnaissance du motif avant lecture en ajoutant des guides grossiers et des guides fins à son damier. Donc en plus des indications de bord (en traits pleins) et de timing (les lignes en pointillé au milieu), il va ajouter des carrés concentriques assez imposants, ce que certains appellent parfois les yeux
: des guides de position pour les 3 plus gros, ce qui permet aux logiciels de lecture de détecter qu'on leur présente un QR-Code et dans quelle orientation, et les carrés yeux
plus petits sont des guides d'alignement fin afin d'aider à calibrer l'image. Et après, les pointillés de timing permettent d'aligner la grille de lecture.
Je reviens un instant sur l'orientation : j'ai découvert complètement par hasard que le QR-Code peut être décodé même pris en photo dans un miroir !
Ces motifs sont une feature qui rend le QR-code non seulement plus rapidement reconnaissable par les logiciels de reconnaissance de forme, mais aussi par les humains, ce qui va très vite le populariser. Denso ne s'y est pas trompé en ayant nommé son invention QR-code
: QR est l'abréviation de quick response
(réponse rapide).
Et comme le Datamatrix, le QR code utilise un code Reed-Solomon pour corriger les erreurs de lecture. La solidité et donc la redondance d'information est paramétrable, de peu solide à très solide mais très verbeux. Plus la redondance est forte, plus vite le code est lu malgré les salissures sur l'étiquette et dans des conditions encore plus aléatoires. Y'a quand même des limites, mais elles sont de plus en plus repoussées.
Eh oui, on en revient au format des codes-barres.
Texte : Da Scritch
Illustration graphique : URL de l'émission en QR code.