Code QR
Un café imprime sur ses tables le code QR de son menu et place son logo au centre. Sur les premières tables, le code se lit tout de suite, mais pas sur les nouveaux autocollants : le graphiste a agrandi le logo. Le code semble intact, les trois carrés d’angle sont là. Mais sous le logo, un tiers des octets d’un bloc a disparu, et la correction de niveau M en répare moins. Le téléphone regarde le code et ne dit rien.
Un code QR écrit du texte avec des modules carrés : sombre vaut 1, clair vaut 0. Les données sont découpées en octets et disposées en serpent. On y ajoute des octets de correction de Reed–Solomon : le lecteur s’en sert pour reconstituer la partie abîmée. Un des huit masques recouvre les données pour qu’il n’y ait pas de grandes taches vides. Le numéro du masque et le niveau de correction sont écrits deux fois, près des motifs de repérage.
| De quoi s’agit-il | code matriciel bidimensionnel à correction d’erreurs |
| Norme | ISO/IEC 18004 ; versions nationales — JIS X 0510 au Japon, GB/T 18284 en Chine, GOST R ISO/IEC 18004 en Russie |
| Taille | versions 1–40 : de 21×21 à 177×177 modules, +4 modules de zone de silence |
| Capacité | jusqu’à 7089 chiffres, 4296 lettres et chiffres ou 2953 octets |
| Protection | Reed–Solomon sur GF(256), de 7 à 30 % des octets |
| Lu par | à la caméra : un laser n’a besoin que d’une ligne, le QR de toute l’image |
Étymologie
Réponse rapide, mère et mesure
Le nom QR est une abréviation anglaise inventée au Japon ; QR Code est une marque déposée de Denso Wave. La plupart des langues ont gardé les lettres latines, tandis que le chinois a nommé le code d’après sa structure — « bidimensionnel ». La norme parle de code matriciel, et de modules pour ses petits carrés.
01 · Structure
Le cadre de service et le serpent d’octets
Trois motifs de repérage dans les coins indiquent à la caméra où est le code et comment il est tourné. Le pointillé de synchronisation entre eux fixe le pas de la grille. À partir de la deuxième version, des motifs d’alignement se trouvent à l’intérieur : le lecteur s’en sert pour corriger la déformation et la courbure du papier. Près des motifs de repérage se trouvent 15 bits de format, et dans les grandes versions 18 bits supplémentaires de numéro de version.
Tout le reste, ce sont des données. On les écrit par colonnes de deux modules, en serpent : de bas en haut, puis de haut en bas, de droite à gauche. Les octets de correction suivent immédiatement les données. Dans les grandes versions, les octets sont répartis en plusieurs blocs et entremêlés : une tache abîme donc un peu chaque bloc, au lieu d’en détruire un seul.
Comment un code indique niveau et masque
Choisissez un niveau de correction et un masque. Dessous : cinq bits de données, dix bits de contrôle et le masque de protection. Cette chaîne est écrite deux fois : autour du motif de repérage en haut à gauche et le long des deux autres.
Construisez un code et abîmez-le
Le code est construit selon la norme à partir de votre texte : mode, version, blocs, Reed–Solomon, masque. « Structure » — cliquez sur un module pour savoir à quel bit il appartient. « Masque » — essayez les huit masques et regardez les pénalités. « Dommage » — recouvrez le centre d’un logo, faites tomber de la peinture, rayez. Le lecteur lit ce qui reste et répare les blocs.
02 · Évolution des codes bidimensionnels
De la ligne au plan
Le code linéaire a buté sur la longueur : on ne peut pas faire tenir plus de deux douzaines de caractères dans une ligne. On a d’abord empilé les lignes, puis on est passé à une grille de modules. Chaque code résolvait sa propre tâche : une pièce à l’usine, un colis sur le convoyeur, un billet sur l’écran. Le QR l’a emporté parce qu’il est devenu gratuit et est arrivé dans les téléphones.
03 · Modes et capacité
L’alphabet décide de la taille
Le QR compresse les données par le choix du mode. Les chiffres vont par trois dans 10 bits. Les lettres latines majuscules, les chiffres et neuf signes vont par deux dans 11 bits. Tout le reste s’écrit en octets de 8 bits. Avant les données se trouvent 4 bits de mode et un compteur de caractères.
04 · À l’intérieur
Simplement du texte par convention
Le QR lui-même ne sait pas qu’il contient un lien ou un mot de passe. Il stocke une chaîne. Le téléphone regarde le début de la chaîne : https:// — ouvrir le navigateur, WIFI: — se connecter au réseau, BEGIN:VCARD — enregistrer le contact. Les chaînes de paiement sont propres à chaque pays. Les paiements de masse par QR ont commencé en Chine : Alipay et WeChat Pay. En Inde, c’est un lien upi://pay, dans la zone euro un virement SEPA au format EPC, au Brésil Pix selon le modèle EMVCo, en Russie des coordonnées de paiement selon GOST R 56042-2014.
05 · Règles d'impression
06 · Codes voisins
07 · Section historique
Masahiro Hara racontait que l’idée de la grille lui était venue en jouant au go : les pierres noires et blanches sur le plateau portent déjà beaucoup d’information. La difficulté était ailleurs — la caméra doit trouver instantanément le code parmi les textes et les images. Hara a épluché journaux, magazines et boîtes, et choisi un rapport de largeurs qui ne se rencontre presque jamais en imprimerie.
Le motif 1 : 1 : 3 : 1 : 1 a le même aspect sur toute ligne passant par le centre, quel que soit l’angle de la caméra. Après avoir trouvé trois motifs de ce genre, le lecteur connaît la position, la rotation et la taille du code sans lire un seul bit de données. C’est pourquoi le QR se lit dans n’importe quelle orientation, alors qu’un code-barres doit être présenté dans l’axe du faisceau.
Catalogue des grandeurs
tout l'index →Les sept unités de base du SI
Une goutte d'acide change la couleur du jus, le sel colore la flamme, l'eau gèle d'un coup. En dessous, toutes les fiches Simetrium, par discipline et par ordre alphabétique.
Ouvrir l'index →





