Le QR Code
Le QR code (QR : Quick reponse ) est un petit « dessin » qui peut être décodé par un smartphone,
une webcam, un lecteur de code barre… Il s’agit d’ailleurs d’une sorte de code barre mais à deux
dimensions. Cela permet de stocker beaucoup plus d’informations. Il se présente sous la forme d’un
pictogramme à fond blanc, rempli de pixels noirs. La capacité de stockage est bien plus importante
que pour un code barre. On peut stocker jusqu’à 7089 caractères numériques ou 4296 caractères
alphanumériques (code ASCII) , pour un QR code de 2 cm de côté. De plus, le QR code contient des
codes correcteurs et une redondance de l’information qui fait qu’il peut être lu même étant abimé.
Une pensée affective pour les caissières qui galèrent avec des codes-barres plissés !:)
Le QR code n’est pas le seul code barre à deux dimensions , mais il est incontestablement le plus
performant.
Histoire : C’est en 1994 que l’entreprise Denso-Wave a créé le
QR code pour Toyota qui voulait tracer ses pièces dans ses
usines. Cette invention a été publiée sous licence libre en 1999,
norme ISO 18004.
Le succès du QR code a été favorisé par l’émergence des
smartphones.
Un QR code peut renvoyer vers :
un site internet
une vidéo, d'autres contenus numériques (images, photos, son, documents .pdf...)
un numéro de téléphone
une adresse mail
un formulaire de paiement
une carte de visite
un plan d'accès
se connecter à une borne wifi
effectuer un paiement…
Structure d’un QR code : [Link]
[Link]
La zone silencieuse est composée de 4 modules de largeur pour délimiter le QR Code. Cette
dernière est non obligatoire mais recommandée. Cette zone facilite fortement la lecture du QR
Code.
Les patterns (motifs) de détection de position (toujours au nombre de 3 positionnés en haut à
gauche, en haut à droite et en bas à gauche) sont très importants et seront détaillés un peu plus
tard.
Les séparateurs permettent de séparer les patterns de détection de position du reste du code.
Les timing Patterns (patterns de synchronisation) permettent de densifier le QR Code (par
l'alternance de modules blancs/noirs); de déterminer la version du QR Code; et de fournir des
positions de référence pour le calcul des coordonnées de chaque module
Les patterns d'alignement sont composés de 3 carrés concentriques superposés et de taille 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 généré.
La région du code contient toutes les données encodées, avec le code de correction d'erreur,
les informations de version et de format
Pour les QRcode les plus simples (version 1) , les patterns d’alignements ne sont pas nécessaires. En
version 40, où il y a 177 modules verticaux et horizontaux , il faut 46 patterns d’alignement.
Pourquoi les QRcode sont ils fiables même s’ils sont abimés ?
Codage des informations :
[Link]
On s’appuie sur la table de codage de la norme ISO 18004 et on utilise la conversion en binaire qui
nous fournit notre code couleur : Blanc =0, Noir =1.
Pour l’alphanumérique , on regroupe les caractères deux par deux .On multiple le premier par 45 et
on ajoute le second. Le codage se fait sur 11 bits. Si le nombre de caractère à coder est impair , on ne
touche pas au dernier.
Par exemple pour coder lycee : On fait 21*45+34=979=01111010011 etc…
Pour le numérique , si le nombre de caractères à encoder n'est pas un multiple de 3, le dernier chiffre
est laissé seul et encodé sur 4 bits ou regroupés par 2 et encodés sur 7 bits.
Une fois toutes les lettres codées , on concatène ses données. Puis on ajoute l’indicateur de mode
Pour nous, il s’agit de 0010
Puis le character count indicateur , qui donne le nombre de caractère codés : Pour nous 5
Le nombre de bits sur lequel coder un caractère dépend de la version du QRcode choisie.
La version du QRcode à choisir dépend du nombre de modules dont on a besoin pour coder nos
informations. Généralement , les générateurs de QRcode , le font pour nous !
On n’a plus qu’à rentrer nos données , en partant du bas à droite et en remontant…
PS : les données seront stockées par octet.
Début du code de lycee : 000000101 0010 01111010011 Codage de Ly
5 , codé sur 9 bits Codage de l’indicateur de mode
Pour en savoir plus :
[Link]
[Link]
[Link]
Pour générer un QRcode : [Link]
[Link]
Video
[Link]
[Link]