vignette|Un exemple de code QR représentant l'URL http://fr.wikipedia.org.|alt=Enregistrement vignette|L'une des nombreuses plaques (plus de ), de la « Monmouthpedia » du village de Monmouth (chef-lieu du comté du Monmouthshire au Pays de Galles).Cette plaque porte un code QR (dit « QRpedia »), permettant aux touristes ou autres usagers d'accéder directement à la page Wikipédia présentant le Shire Hall, en complément des guides touristiques existants.
Un code QR, en anglais (en forme longue , « code à réponse rapide »), est un type de code-barres à deux dimensions constitué de modules-carrés noirs disposés dans un carré à fond blanc. Ces points définissent l'information que contient le code. Ce dessin, lisible par machine, peut être visualisé sur l'écran d'un appareil mobile ou imprimé sur papier. Il existe d'autres formats de code-barres deux dimensions au fonctionnement similaire, comme le Flashcode (en France, les exploitants de réseaux de téléphonie mobile ont créé le format Flashcode, mais ils sont les seuls à l'utiliser) ou encore le 2D-Doc, confondus avec le code QR.
Le code QR a été inventé en 1994 par Masahiro Hara, ingénieur chez Denso-Wave, pour améliorer la traçabilité des pièces dans les usines Toyota. Sa rapidité de lecture et sa robustesse face aux dommages, tels que les taches d’huile, en ont fait une solution pratique pour les chaînes de production. Mis sous licence libre dès 1999, le code QR a pu être adopté dans des domaines très variés, dépassant largement l’industrie automobile..
QR (abréviation de l'anglais , réponse rapide) signifie que le contenu du code peut être décodé rapidement après avoir été lu par un lecteur de code QR installé sur un téléphone mobile, un smartphone, une tablette tactile ou encore une webcam. Son avantage est de pouvoir contenir plus d'informations qu'un code à barres , Denso-Wave. Consultée le 27 novembre 2016., et surtout des données directement reconnues par des applications, ce qui permet d’effectuer facilement différentes sortes d’actions, entre autres : aller sur un site Internet, mettre l'adresse d'un site en marque-page ou montrer un point géographique sur une carte telle que OpenStreetMap ; regarder une vidéo en ligne ou un contenu multimédia ; se connecter à une borne Wi-Fi ; déclencher un appel vers un numéro de téléphone ou envoyer un SMS ; envoyer un courriel ; faire un paiement direct avec un téléphone mobile ; ajouter une carte de visite virtuelle (vCard) à une liste de contacts, ou un rendez-vous ou un événement (iCalendar) à un agenda électronique ; afficher un texte ou rédiger un texte libre (sa version la plus grande permettant d'inclure un texte d'environ ).
Histoire Origine Le code QR a été créé en 1994 par Masahiro HaraE. Takeyama, QR inventor calls for security update on code’s 25th anniversary, The Asahi Shimbun (28 août 2019)., ingénieur de l'entreprise japonaise Denso-Wave, pour suivre l'itinéraire des pièces détachées dans les usines Toyota. Les codes-barres classiques présentaient plusieurs limitations : faible capacité d’information, nécessité de scanner plusieurs codes pour une seule pièce, et sensibilité aux dommages, tels que les taches d’huile, causant des erreurs de lecture.
L'auteur indique que l’idée du design est née lors d’une pause-déjeuner. Pendant une partie de go, Hara a remarqué que les motifs noirs et blancs du jeu pourraient être utilisés pour encoder de grandes quantités d’informations. Inspiré par cette observation, il a conçu un système de code à deux dimensions capable de stocker 200 fois plus de données qu’un code-barres traditionnel. Grâce à un mécanisme intégré de correction d’erreur, le code QR reste lisible même si 30 % de sa surface est endommagée. Hara a déclaré : « Mon but était de simplifier la vie des autres. »
Initialement appelé "ND code" (pour Nippon Denso), il a été renommé "code QR" pour Quick Response, soulignant sa rapidité de lecture. Il est rendu public en 1999, lorsque Denso-Wave publie le code QR sous licence libre . Page de Denso-Wave. Consultée le 27 novembre 2016.. Cela contribue à la diffusion du code au Japon. Hara a expliqué : « Si nous avions déposé un brevet, le code ne se serait sans doute pas diffusé au-delà du milieu automobile. » Par la suite, le code QR prend un réel essor avec l'avènement des smartphones. À la fin des années 2000, il devient l'un des codes bidimensionnels les plus populaires dans le monde, et les applications informatiques de lecture de codes QR sont souvent préinstallées par les fabricants dans leurs téléphones mobiles. Au Japon, cette pratique était déjà répandue en 2003 . Page de NTT Docomo. Consultée le 27 novembre 2016..
Il existe aussi de nombreux autres fournisseurs de générateurs et de lecteurs.
Normes et licences En 1999, tout en conservant les droits du brevet, Denso-Wave accorde l'utilisation du code QR avec une licence libre, défini et publié comme norme ISO . Consultée le 27 novembre 2016.. En octobre 1997, publication du standard AIM (), renouvelé en 1999 . Page de l' (AIM). Consultée le août 2010.. En 1999, publication du standard japonais . Consultée le août 2010.. En juin 2000, publication de la norme ISO/CEI 18004. En novembre 2004, approbation du Micro QR code par la norme . Le , la norme ISO/CEI 18004:2006 est renouvelée. Le la norme ISO/IEC 18004:2015 est publiée. Le , la norme ISO/IEC 18004:2024 est publiée.
Du côté applicatif, il y a des variations entre les mises en œuvre. NTT Docomo instaure la norme pour le codage des URL, des informations de contact et d'autres types de données . Consulté le . . Consulté le .. Le projet Zxing publie un guide des normes de codage de l'information dans les codes-barres . Consulté le ..
Principe de fonctionnement
Structuration des informations
L'unité fondamentale d'un code QR, plus petit bloc noir ou blanc, est le module.
Le code QR est divisé en plusieurs zones permettant d'organiser les données :
Les position pattern (motifs de position) sont les 3 grands carrés situés dans les coins supérieurs et dans le coin inférieur gauche. Ils permettent au scanner de bien repérer le code QR. Ils sont formés d'un carré noir de largeur 3 modules, lui même entouré d'un espace blanc de largeur 1 module, lui même finalement entouré d'un espace noir de largeur 1 module. Le position pattern est séparé du reste des données par un espace blanc de largeur 1 module.
Les alignement pattern ont également pour but d'aider le scanner à déterminer l'orientation du code QR. Ils sont formés sur le même schéma que les position pattern, mais en plus petits : un seul module noir, entouré d'un carré blanc de largeur 1 module, puis d'un carré noir de largeur 1 module. Le nombre dalignement pattern requis dépend de la version du code QR.
Les timing pattern sont de deux lignes pointillées (une colonne et une rangée), présentant une alternance de modules noirs et blancs et situées à la sixième ligne et la sixième colonne. Ces deux lignes permettent au logiciel de localiser les début et fin des colonnes et des rangées, et de définir la largeur d’un module. Une fois ces informations obtenues, le logiciel peut calculer l'emplacement des pixels à lire et la lecture d'un seul pixel suffit à lire un bit d'information. La lecture est donc rapide puisque le logiciel peut lire un nombre réduit de pixels, d'où le nom de réponse rapide, dit code QR.
La version information est un emplacement réservé pour définir le nombre de lignes et colonnes (un code QR a un nombre identique de ligne et de colonnes). Il existe différentes versions du code QR. Le numéro de version définit le nombre de colonnes et lignes du code QR, et le nombre de caractères pouvant être codé par celui-ci, allant de . Le nombre dalignement pattern dépend également de la version du code QR.
Le format pattern permet de définir deux notions : le niveau de correction d'erreur et le masking, ou masquage en français. La correction d'erreur permet au code d'être lisible même s'il est abimé, grâce à l'algorithme de correction d'erreur Reed-Solomon. Il existe 4 niveau de correction d’erreur :
Low (L) : 7% Medium (M) : 15% Quartile (Q) : 25% High (H) : 30%
Enfin, la quiet zone est une zone blanche de largeur 4 modules qui entoure tout le code QR et qui permet d'assurer que du texte ou des signes situés à l'extérieur du code ne puisse venir perturber la lecture de celui-ci.
Lecture de l'information Le format utilisé par le symbole de code QR est conditionné par une information de format codée sur 15 bits.
Le code QR permet de coder une chaîne de caractères. Il possède quatre modes d'encodage de l'information : numérique, alphanumérique, octet, et Kanji. Dans tous les cas, le texte sera converti en chaîne de bits (des 1 et des 0), mais en fonction du mode, la manière de décoder le texte sera différente.
Le jeu de données du message est placé de droite à gauche dans un motif en zigzag comme illustré plus bas. La lecture commence dans le coin en bas à droite, monte, se décale d'un module vers la gauche, redescend, se décale d'un module vers la gauche et recommence le même motif de lecture en boustrophédon. Pour les symboles QR les plus gros, cela est compliqué par la présence de motifs de réalignement et l'utilisation de multiples blocs entrelacés de correction d'erreur.
Exemple de phases de décodages
Les images suivantes offrent de l'information sur le décodage des codes QR (version 3).
Capacités thumb|Structure d'un code QR () La version utilisée doit donc être choisie en fonction du message à coder et le niveau de correction d'erreur. Par exemple, un QR code version 1 peut coder entre (redondance maximale) et (redondance minimale) caractères alphanumériques.
Capacité maximale de stockage de données (, 177×177, redondance minimale) : Caractères numériques : maximum ; Caractères alphanumériques : maximum ; Binaires (8-bits) : maximum ; Kanji/Kana : maximum .
Ainsi, les codes QR peuvent contenir jusqu'à numériques ou alphanumériques, ce qui leur donne une capacité bien supérieure à celle du code-barres (une douzaine de caractères) dans le cas de l'EAN 13, le code-barres utilisé notamment en grande distribution. Toutefois, il existe également une version sur en EAN..
Utilisation de la correction d'erreur à des fins artistiques. Grâce à l'algorithme de correction d'erreur Reed-Solomon, les codes QR peuvent incorporer des images, telles que logos ou dessins, sans perdre les informations utiles à la lecture du code. Il suffit de transformer le code avec un logiciel de retouche d'image tant que le code continue de fonctionner . « », 29 avril 2009. Consultée le 27 novembre 2016.. Le code contient jusqu'à 30 % de redondance.
Comparaison avec d'autres types de codes matriciels
Variantes QR
Il existe deux variantes au code QR : QR Micro (micro code QR), une version réduite du code QR normal, utilisé pour les applications qui nécessitent l'utilisation de petits espaces et une moindre quantité d'informations, par exemple, l'ID de cartes de circuits imprimés ou des composants électroniques. Il existe différentes formes de codes micros QR, la plus dense d'informations peut contenir jusqu'à alphanumériques Fiche sur les Micro QR de Denso-Wave. Consultée le 26 juillet 2010. ; code iQR, une variante en forme rectangulaire.
Codes matriciels non QR Le code QR se distingue du Flashcode et du Datamatrix notamment par la présence de carrés concentriques sur trois des quatre angles du carré.
Utilisations vignette|upright=1.7|Reconnaissance d'un code QR : prise de vue, affichage, décodage, consultation d'un site web. vignette|Un code QR affiché sur un smartphone.