Az adattól a mintáig
A QR-kód készítése azzal kezdődik, hogy az adathoz illő kódolási módot választunk: numerikus, alfanumerikus, bájt vagy kandzsi. A kódoló bitekké alakítja az adatot, 8 bites kódszavakra osztja, és a választott szinten Reed–Solomon hibajavító kódszavakat ad hozzá. Ezután kiválasztja a legkisebb verziót, amelybe belefér.
A kódszavakat cikcakkos úton helyezi a rácsba, kihagyva a rögzített mintákat. Végül a kódoló a nyolc maszkminta egyikét alkalmazza, hogy megtörje a nagy üres területeket vagy a félrevezető alakzatokat, és a maszkot meg a hibajavítási szintet a formátuminformációban rögzíti.
- A kódolási mód kiválasztása
- Az adat kódolása és a hibajavító kódszavak hozzáadása
- A verzió (méret) kiválasztása
- A kereső-, időzítő- és igazítóminták elhelyezése
- Az adatmodulok kitöltése
- A nyolc maszk közül a legjobb alkalmazása és a formátuminformáció beírása
A kameraképtől az adatig
A dekódolás ugyanezeket a lépéseket végzi fordított sorrendben. A beolvasó megkeresi a három keresőmintát, amelyeknek a sötét és világos 1:1:3:1:1 arányuk kitűnik a legtöbb képből, és az időzítő- és igazítómintákkal együtt ezek alapján térképezi fel a rácsot. Beolvassa a formátuminformációt, eltávolítja a maszkot, és összegyűjti a kódszavakat.
A Reed–Solomon dekódolás ezután kijavítja a félreolvasott kódszavakat, a hibajavítási szint határáig. Ha túl sok a sérülés, a kód nem olvasható be, ahelyett hogy hibás adatot adna vissza, ezért a QR-kódok ritkán adnak értelmetlen eredményt.
Miért számít a méret és a kontraszt
Minden lépés azon múlik, hogy a kamera meg tudja-e különböztetni a sötét modulokat a világosaktól. A kis modulok, az alacsony kontraszt, a tükröződés, az elmosódás vagy a hiányzó csendes zóna mind több modult tesz kétségessé, a hibajavítás pedig csak egy bizonyos mértékig képes ezt felfogni. Ha az adat rövid, a kontraszt erős, a margó pedig szabad, a dekódolónak a legkönnyebb a dolga.