Od údajov k vzoru
Vytvorenie QR kódu sa začína výberom režimu kódovania, ktorý sa hodí k údajom: numerický, alfanumerický, bajtový alebo kandži. Kodér premení údaje na bity, rozdelí ich na 8-bitové kódové slová a pridá kódové slová opravy chýb Reed–Solomon na zvolenej úrovni. Potom vyberie najmenšiu verziu, do ktorej sa údaje zmestia.
Kódové slová sa ukladajú do mriežky po cik-cakovej dráhe, ktorá obchádza pevné vzory. Nakoniec kodér použije jeden z ôsmich maskovacích vzorov, aby rozbil veľké prázdne plochy alebo mätúce tvary, a masku s úrovňou opravy chýb zapíše do informácií o formáte.
- Výber režimu kódovania
- Zakódovanie údajov a pridanie kódových slov opravy chýb
- Výber verzie (veľkosti)
- Umiestnenie vyhľadávacích, časovacích a zarovnávacích vzorov
- Vyplnenie dátových modulov
- Použitie najlepšej z ôsmich masiek a zápis informácií o formáte
Od obrazu z fotoaparátu k údajom
Dekódovanie prebieha rovnakými krokmi opačne. Skener nájde tri vyhľadávacie vzory, ktorých pomer tmavých a svetlých častí 1:1:3:1:1 sa v bežných obrazoch zriedka vyskytuje, a spolu s časovacími a zarovnávacími vzormi podľa nich zmapuje mriežku. Prečíta informácie o formáte, odstráni masku a zozbiera kódové slová.
Dekódovanie Reed–Solomon potom opraví všetky nesprávne prečítané kódové slová až do limitu úrovne opravy chýb. Ak je poškodené príliš veľa, kód sa neprečíta, namiesto toho, aby vrátil nesprávne údaje, a preto QR kódy len zriedka dávajú skomolené výsledky.
Prečo záleží na veľkosti a kontraste
Každý krok závisí od toho, či fotoaparát rozozná tmavé moduly od svetlých. Malé moduly, nízky kontrast, odlesky, rozmazanie alebo chýbajúca pokojová zóna vrhajú na viac modulov pochybnosť a oprava chýb dokáže pohltiť len obmedzené množstvo. Krátke údaje, silný kontrast a voľný okraj dávajú dekodéru čo najľahšiu prácu.