No datiem līdz rakstam
QR koda izveide sākas ar kodēšanas režīma izvēli, kas atbilst datiem: ciparu, burtciparu, baitu vai kanji. Kodētājs pārveido datus bitos, sadala tos 8 bitu kodvārdos un pievieno Reed–Solomon kļūdu labošanas kodvārdus izvēlētajā līmenī. Pēc tam tas izvēlas mazāko versiju, kurā dati ietilpst.
Kodvārdi tiek ievietoti režģī zigzaga ceļā, kas apiet fiksētos rakstus. Visbeidzot kodētājs piemēro vienu no astoņiem maskas rakstiem, lai sadalītu lielas tukšas zonas vai mulsinošas formas, un ieraksta masku un kļūdu labošanas līmeni formāta informācijā.
- Izvēlēties kodēšanas režīmu
- Iekodēt datus un pievienot kļūdu labošanas kodvārdus
- Izvēlēties versiju (izmēru)
- Izvietot meklēšanas, sinhronizācijas un izlīdzināšanas rakstus
- Aizpildīt datu moduļus
- Piemērot labāko no astoņām maskām un ierakstīt formāta informāciju
No kameras attēla līdz datiem
Atšifrēšana veic tos pašus soļus pretējā virzienā. Skeneris atrod trīs meklēšanas rakstus, kuru tumšo un gaišo daļu attiecība 1:1:3:1:1 izceļas no vairuma attēlu, un kopā ar sinhronizācijas un izlīdzināšanas rakstiem izmanto tos, lai uzzīmētu režģa karti. Tas nolasa formāta informāciju, noņem masku un savāc kodvārdus.
Pēc tam Reed–Solomon dekodēšana izlabo kodvārdus, kas nolasīti nepareizi, līdz kļūdu labošanas līmeņa robežai. Ja bojājumu ir pārāk daudz, kods netiek nolasīts, nevis atgriež nepareizus datus, tāpēc QR kodi reti dod sagrozītus rezultātus.
Kāpēc svarīgs izmērs un kontrasts
Katrs solis ir atkarīgs no tā, vai kamera spēj atšķirt tumšos moduļus no gaišajiem. Mazi moduļi, zems kontrasts, atspīdumi, izplūdums vai trūkstoša klusā zona rada šaubas par arvien vairāk moduļiem, un kļūdu labošana spēj izlīdzināt tikai noteiktu daudzumu. Īsi dati, spēcīgs kontrasts un brīva mala dod dekodētājam vieglāko uzdevumu.