QR code

A.Introduction sur les QR codes

1.Historique.

En 1994, les QR codes ont été créés par l'entreprise japonaise Denso-Wave  (entreprise spécialisée dans les équipements industriels et des systèmes pour le marché automobile) pour suivre le chemin des pièces automobiles dans les usines de Toyota.

En 1999, Denso-Wave a accordé l'utilisation du QR code avec une licence libre (il concède une partie des droits que lui confère le droit d’auteur mais conserve au minimum les 4 droits fondamentaux: l’usage de l’oeuvre, son étude pour en comprendre le fonctionnement, sa modification et son incorporation à une oeuvre dérivée, sa diffusion à d’autres usagers): cela a contribué à la diffusion du QR code au Japon et il prend un réel essor avec l’arrivée des Smartphones.

A la fin des années 2000, il est devenu l'un des codes bidimensionnels les plus populaires dans le monde et les applications de lecteurs de QR code sont souvent déjà installées dans les téléphones mobiles.

Par la suite, de nombreux procédés lui ont été ajoutés pour l’améliorer tel que l’encodage d’adresses URL.

2. Définition.

Le code QR est un code-barres à deux dimensions qui permet de stocker de façon codée des informations (textes, adresses URL, numéros de téléphones,...). On le déchiffre avec un Smartphone équipé d’un appareil photo et d’un logiciel permettant sa lecture. Son rôle est de relier le monde réel au monde numérique pour accéder à des informations supplémentaires.

Il existe plusieurs formats de codes 2D; le plus répandu reste cependant le QR code:

                                                                         

      QR code                                   Datamatrix                             Shotcode                                    Colorzip                                Maxicode

Figure 2: différents codes 2D

3. Avantages

-Le QR code permet de stocker plus d’informations que les codes-barres classiques.

-Il est gratuit, accessible au grand public, facile à créer et à déchiffrer et on peut le personnaliser.

-La redondance est employée dans le QR code pour éviter qu’une altération (tâche, déchirure,...) ne nuise au déchiffrement de l’information (explications plus loin).

-Le QR code («Quik Rapide»), comme son nom l’indique, est un moyen très rapide d’accéder à des informations de toute nature en tout lieu.

-Il peut être lu dans tous les sens (360°).

4. Utilisation

-Information en temps réel: sur un packaging (infos nutritionnelles ou coupons de réduction), coder une simple message, composer un numéro de téléphone, envoyer un sms, ajouter un contact dans son carnet d’adresse, ouvrir un site web, afficher un point sur une carte, rejoindre un réseau wifi (scanner le QR code au lieu d’encoder le mot de passe du wifi).

-Aide à la vente: rediriger le client vers un site mobile et l’inciter à acheter en ligne, mesurer l’impact de sa propre publicité (il est possible de savoir combien de QR codes ont été scannés et à quel endroit).

-Evénementiel: lors d’un un concert: permettre l’accès à une page web avec des vidéos du concert, pendant la visite d’un musée: associer un fichier audio à une oeuvre.

B.Explication de la structure des QR codes

1.Deux dimensions

Le code-barres (Figure 3) à une dimension est «l’ancêtre» du QR code: il n’est lu que verticalement (1D) et n’est donc plus lisibles s’il subit une dégradation. La lecture des codes-barres à une dimension utilise un système binaire* et l’utilisation de ce système diffère selon les versions des codes-barres utilisées.

Figure 3: code-barres 1D

Un QR code a la capacité de stocker ses informations horizontalement et verticalement: la lecture se fait donc sur deux axes. On parle donc de 2 dimensions; c’est ce passage à une deuxième dimension qui a permis un plus grand stockage d’informations.

Un QR code peut donc être représenté par une matrice (x,y).

Figure 4: Représentation matricielle

2. Placement.

Figure 5: structure

-La zone d’encodage (noir et blanc) est liée directement aux données et à la redondance contenue dans le QR code.

-Les patterns* de détection de position (rose) permettent une lecture rapide du QR code dans n’importe quel sens (360°) car ils se trouvent toujours au même endroit, ce qui permet au lecteur de réorienter le QR code dans le bon sens; c’est une sorte de repère de lecture. Il y 3 patterns de détection de position: en haut à gauche, en haut à droite et en bas à gauche. Ils se composent de 3 carrés superposables: le plus grand de 7 x 7 modules foncés, le second de 5 x 5 modules clairs et le dernier de 3 x 3 modules foncés. Ils occupent donc 147 modules quelque soit sa version (explications plus loin).

-Les patterns d'alignement (vert) servent à lire le QR code même s’il est déformé -jusqu’à un certain niveau de déformation- (sur un objet en 3 dimensions, sur une feuille courbée). Leur nombre et leur placement dépendent de la version. Ils sont composés de 3 carrés superposés (comme les patterns de détection de position mais plus petits: 5x5 modules pour le premier noir, 3x3 modules pour le blanc et un seul module central noir). Le nombre de ces patterns d'alignement dépend de la version de QR code.

-Les timing patterns (bleu) permettent au lecteur de différencier les modules clairs des modules foncés (c’est grâce à eux qu’il est possible de changer la couleur des modules). Ils interviennent aussi dans la détermination de la version d’un QR code car ils indiquent la taille d’un module. Ils sont composés de modules clairs et foncés en alternance (le premier et le dernier module sont toujours les foncés). Il y a deux timing patterns: un horizontal (à partir de la colonne 6) et un vertical (à partir de la ligne 6).

-La zone silencieuse (beige) délimite le QR code et facilite sa lecture. Elle est composée de 4 modules de largeur et doit être de la couleur des modules clairs. Elle n’est pas indispensable.

-Les séparateurs (jaune) séparent les patterns de détection de la zone d’encodage.

3. Versions

La version d’un QR code correspond à un nombre de modules. Ces versions déterminent la capacité de stockage des différents QR codes. Elle évolue de 4 unités à chaque version:

 
 
 

C.Vulgarisation des procédés mathématiques utilisés

1.Flux de données binaires.

Leibnitz, mathématicien du 17e siècle, est un précurseur du système binaire. Ce système qualifie ce qui comporte deux éléments, deux états. L’informatique est basée sur ce système binaire.

Explications: quand nous comptons, nous utilisons un système en base 10 (il existe 10 chiffre: 0->9); le binaire est un système en base 2: 0 et 1. On peut le comparer à un alphabet à deux lettres (on va appeler ces deux lettres des «bit»).

On va coder ces chiffres par deux états différents. Exemple: une ampoule allumée (1) et une ampoule éteinte (0); dans un code-barre (une dimension) un espace large (1) et un espace étroit (0); dans un QR code, un module noir (1) et module blanc (0).

2.Redondance.

Il est aussi important d’évoquer le caractère redondant des informations incluses dans le QR code: la redondance est employée dans les QR codes pour prévenir toute altération du motif et ainsi fournir au lecteur

l'information codée originale sans problèmes. Le QR Code reste lisible avec jusqu'à 30% (au maximum) de son code détruit ou manquant.

En effet, la redondance ou code correcteur a pour objectif de détecter et de corriger les erreurs après la transmission d'un message. Cette correction est possible grâce à l'ajout d'informations supplémentaires. Le message codé est réduit en taille et plongé dans un espace plus grand dans lequel nous ajouterons ce «surplus» d’informations.

Les patterns d’alignement permettent de situer la répartition de ces ensembles d’information sur le QR code.

3. Passage d’un langage binaire à un langage alphanumérique.

Ce passage d’un langage à l’autre s’opère via le code ASCII*: ce code utilise le langage binaire pour coder un chiffre, une lettre ou un symbole.

On a donc 64+1 = 65. Le nombre 65 correspond au «A» majuscule; par conséquent, l’octet 01000001 code la lettre «A» majuscule. C’est ce procédé qui est utilisé dans les QR codes.