EN CONSTRUCTION
les QR codes
Un QRcode se compose de trois coins marqués par des carrés. ceux-ci lui permettent de différencier le haut du bas et la gauche de la droite, le seul coins n'en possédant pas étant le coins inférieur droit
L'étalonnage permet au lecteur de qr code de mieux repérer la taille des pixels, leurs positionnement, leurs place etc... Tout ces pixels d'étalonnement ne servent qu'a çelà.

Les informations de Formats
Les informations de Format sont ce qui vont permettre au lecteur de QRcode de savoir comment est formé le code, combien d'octet de donnée, de correction, le tout encodé avec le code correcteur BCH
0
1
2
3
4
5
6
14131211109876543210
8
9
10
11
12
13
14
Les information de format sont inscrites sur deux lignes une en verticale et l'autre en horizontale, ces deux lignes sont strictements identiques
Le niveau de correction
Level L – resiste a 7% endommagé
Level M – resiste a 15% endommagé
Level Q – resiste a 25% endommagé
Level H – resiste a 30% endommagé
les Masques
Le Pattern du Masque est une formule mathématique permettant d'avoir une répétition de motif.
prenon par exemple la formule j%3=0; celà veux dire que dès que le modulo 3 d'une case dont la position sur l'axe des absices (j) est égal à 0 alors la case seras à 1 (noir)
prenom la première ligne:
[modulo 3 de 0 est égal 0 est vrai donc 1],[ modulo 3 de 1 est différent de 0 donc c'est faux donc 0],[ modulo 3 de 2 est différent de 0 donc c'est faux donc 0],[modulo 3 de 3 est égal 0 est vrai donc 1]
ce qui nous donne :
[x][o][o][x][etc...
j%3=0

(i+j)%3=0

(i+j)%2=0

i%2=0

((i*j)%3+i*j)%2=0

((i*j)%3+i+j)%2=0

(i/2+j/2)%2=0

(i*j)%2+(i*j)%3=0
la Constante
Il nous faut maintenant ajouter une constante : 1001101110
la Constante
Une fois que l'on à ces 5 premiers bits ajouté à la constante : 1001101110 nous devons faire une division polynomiale.

exemple:
si on pren un niveau de correction Q (11) et un masque 2 (010) celà nous donne : [110100000000000] on à donc 15 bits, qui, sous forme de polynomes, nous donnent:
14131211109876543210
110100000000000
x^14x^13x^11
il n'y a plus qu'a diviser par le polynome suivant : x^10+x^8+x^5+x^4+x^2+x+1
une petite technique simple consiste à mettre ce polinome sous forme binaire et d'aligner le 1er 1 et de faire un OU exclusif (un XOR) (1+1=0;1+0=1 et 0+0=0)
14131211109876543210
000010100110111
Il suffi de répéter le processus autant de fois que notre premier polynome (nos 15 bits ainsi constitués) seras plus grand que notre constante
ce qui nou donne pour la première division :
14131211109876543210
110100000000000
000010100110111
on aligne avec cette histoire de 1 (c'est un décalage de 4 vers la gauche)
110100000000000
101001101110000
On fait notre Xor ce qui nous donne :
011101101110000
On recommence :
14131211109876543210
011101101110000
000010100110111
on aligne avec cette histoire de 1 (c'est un décalage de 3 vers la gauche)
011101101110000
010100110111000
On fait notre Xor ce qui nous donne :
001001011001000
et ainsi de suite:
14131211109876543210
001001011001000
001010011011100
On fait notre Xor ce qui nous donne :
000011000010100
et enfin:
14131211109876543210
000011000010100
000010100110111
On fait notre Xor ce qui nous donne :
000001100100011

élicitation nous avons nos 10 bits de correction d'erreur: [1100100011]
15 bits masquage sur les bits d'informations de shéma
pour avoir nos 15 bits il suffit de rajouter notre niveau de correction Q (11) et notre masque 2 (010)
celà nous donne : [110101100100011]
La dernière opération consiste à appliquer un Xor avec la constante suivante: [101010000010010]
110101100100011
101010000010010
Le resultat tant attendu
011111100110001





le code
Cette partie correspondent au message à proprement parler.
Ces 4 premier bits permettent d'encoder le type de message qui suivra.
sens de lecture
0001 Numeric
0010 Alphanumeric
0100 Byte encoding
1000 Kanji encoding
Ces 8 bits permettent d'encoder la taille du message .