QR Code©  Le code-barres version 2D
QR Code en action
Création
Après avoir vu tous les principes qui font du QR Code un code-barres particulier et intéressant, attardons-nous maintenant sur la question de savoir comment créer un QR Code.
Il faut rappeler tout d'abord que lors de la génération du QR Code, on décidera du taux de correction d'erreur à appliquer au QR Code. En effet, un QR Code peut être généré avec 4 niveaux de taux de correction d'erreur différents selon les spécifications et qui permettent d'obtenir une certaine tolérance quant à la perte d'informations exprimée en poucentage.
- L : LOW, permet une tolérance jusqu'à 7% de perte de code.
- M : MEDIUM, permet une tolérance jusqu'à 15%.
- Q : QUALITY, permet une tolérance jusqu'à 25%.
- H : HIGH, permet une tolérance jusqu'à 30%.
Déroulons l'algorithme d'encodage d'un QR Code :
- 1 - Analyse des données à encoder et paramétrage du niveau de code correcteur.
Le but est d'analyser le flux de données d'entrée pour identifier la variété des caractères différents pour être encodés. Si l'utilisateur n'a pas spécifié le niveau de code correcteur , la plus petite version de QR Code sera sélectionnée pour accueillir les données. - 2 - Convertir les caractères de données dans un flux de bytes.
Ce sont par exemple, en langage Java, des objets ByteArray qui seront utilisés. - 3 - Implémenter la correction des erreurs.
Le but est de séparer par blocs les bits de données et de génerer leurs codes correcteurs. Comme vu pour le code de Reed-Solomon, on place un bit d'information et autour, on génère du code correcteur. - 4 - Insérer les données avec le code correcteur dans la matrice.
On utilise ici le masque de patterns (Timing pattern, pattern de detection, pattern d'alignement) - 5 - Générer la matrice et évaluer le résultat qu'elle retourne.
On optimise ici la balance entre les modules noirs et les modules blancs et on minimise l'occurrence de patterns indésirables - 6 - Générer le QR Code au format image.
C'est le résultat final qui pourra être lu par un lecteur de QR Code.
Voici un petit exemple illustré :
Lecture
C'est bien beau d'avoir créer un QR Code mais encore faut-il savoir comment le lire.
Déroulons donc l'algorithme de lecture :
- 1 - Reconnaître les bits 1 ou 0.
Le but est de différencier les modules noirs des modules blancs. - 2 - Identifier le taux de code correcteur.
- 3 - Identifier la version du QR Code.
- 4 - Découvrir la région à décoder.
- 5 - Lire les données et le code correcteur.
- 6 - Détecter/Corriger les erreurs.
- 7 - Décoder les données.
- 8 - Afficher le résultat.
Toutes ces étapes de lecture se feront pour la plupart grâce à la détection des patterns du QR Code et à leur lecture. Voici ci-dessous le diagramme de flux de la lecture :
Il faut noter que pour une meilleure lecture, le QR Code doit contenir des modules qui ont un fort contraste (noir/blanc). Le QR Code peut être de plusieurs couleurs mais dans ce cas, il faut que les couleurs entre les modules représentant les modules blancs et ceux représentant les modules noirs puissent être suffisamment contrastées.
Revenir en haut de page --- Revenir en début de partie