Od podataka do uzorka
Izrada QR koda počinje odabirom načina kodiranja koji odgovara podacima: numerički, alfanumerički, bajtovni ili kanji. Koder pretvara podatke u bitove, dijeli ih u 8-bitne kodne riječi i dodaje kodne riječi za Reed–Solomonovo ispravljanje pogrešaka na odabranoj razini. Zatim bira najmanju verziju u koju podaci stanu.
Kodne riječi smještaju se u mrežu cik-cak putanjom koja preskače fiksne uzorke. Naposljetku koder primjenjuje jedan od osam uzoraka maske kako bi razbio velike prazne površine ili zbunjujuće oblike te bilježi masku i razinu ispravljanja pogrešaka u informacijama o formatu.
- Odabir načina kodiranja
- Kodiranje podataka i dodavanje kodnih riječi za ispravljanje pogrešaka
- Odabir verzije (veličine)
- Postavljanje uzoraka za pronalaženje, sinkronizaciju i poravnanje
- Popunjavanje modula s podacima
- Primjena najbolje od osam maski i upis informacija o formatu
Od slike kamere do podataka
Dekodiranje izvodi iste korake obrnutim redoslijedom. Skener pronalazi tri uzorka za pronalaženje, čiji se omjer tamnog i svijetlog 1:1:3:1:1 ističe među većinom slika, te ih zajedno s uzorcima za sinkronizaciju i poravnanje koristi za mapiranje mreže. Čita informacije o formatu, uklanja masku i prikuplja kodne riječi.
Reed–Solomonovo dekodiranje zatim popravlja sve pogrešno pročitane kodne riječi, do granice razine ispravljanja pogrešaka. Ako je previše oštećeno, kod se ne može pročitati umjesto da vrati pogrešne podatke, zbog čega QR kodovi rijetko daju iskrivljene rezultate.
Zašto su veličina i kontrast važni
Svaki korak ovisi o tome da kamera razlikuje tamne module od svijetlih. Mali moduli, slab kontrast, odsjaj, zamućenje ili nedostatak tihe zone dovode u sumnju sve više modula, a ispravljanje pogrešaka može upiti samo ograničenu količinu. Kratki podaci, snažan kontrast i čist rub dekoderu daju najlakši posao.