De la date la model
Crearea unui cod QR începe cu alegerea unui mod de codificare potrivit datelor: numeric, alfanumeric, octet sau kanji. Codificatorul convertește datele în biți, îi împarte în cuvinte de cod de 8 biți și adaugă cuvinte de cod de corectare a erorilor Reed–Solomon la nivelul ales. Apoi alege cea mai mică versiune în care încap.
Cuvintele de cod sunt așezate în grilă pe un traseu în zigzag care ocolește modelele fixe. La final, codificatorul aplică una dintre cele opt măști pentru a sparge zonele mari goale sau formele derutante și înregistrează masca și nivelul de corectare a erorilor în informațiile de format.
- Alege modul de codificare
- Codifică datele și adaugă cuvintele de corectare a erorilor
- Alege versiunea (dimensiunea)
- Plasează modelele de localizare, de sincronizare și de aliniere
- Completează modulele de date
- Aplică cea mai bună dintre cele opt măști și scrie informațiile de format
De la imaginea camerei la date
Decodarea parcurge aceiași pași în sens invers. Scanerul găsește cele trei modele de localizare, al căror raport 1:1:3:1:1 de închis și deschis iese în evidență în majoritatea imaginilor, și le folosește împreună cu modelele de sincronizare și de aliniere pentru a cartografia grila. Citește informațiile de format, elimină masca și strânge cuvintele de cod.
Decodarea Reed–Solomon repară apoi cuvintele de cod citite greșit, până la limita nivelului de corectare a erorilor. Dacă prea mult e deteriorat, codul nu se citește deloc, în loc să returneze date greșite, de aceea codurile QR dau rar rezultate încurcate.
De ce contează dimensiunea și contrastul
Fiecare pas depinde de capacitatea camerei de a deosebi modulele închise de cele deschise. Modulele mici, contrastul slab, reflexiile, neclaritatea sau lipsa zonei liniștite pun tot mai multe module la îndoială, iar corectarea erorilor poate absorbi doar până la un punct. Datele scurte, contrastul puternic și marginea liberă îi dau decodorului cea mai ușoară sarcină.