Miten QR-koodit toimivat

Tunnetaan myös nimillä: QR-koodin koodaus, QR-koodin purku

Määritelmä

QR-koodi toimii niin, että tieto muutetaan koodisanoiksi, siihen lisätään Reed–Solomon-virheenkorjaus ja bitit sijoitetaan ruudukkoon kiinteiden kuvioiden ympärille, jotka auttavat kameraa löytämään, oikaisemaan ja lukemaan koodin.

Datasta kuvioksi

QR-koodin tekeminen alkaa siitä, että valitaan dataan sopiva koodaustila: numeerinen, aakkosnumeerinen, tavu tai kanji. Koodaaja muuntaa datan biteiksi, jakaa ne 8-bittisiin koodisanoihin ja lisää valitun tason Reed–Solomon-virheenkorjauskoodisanat. Sen jälkeen se valitsee pienimmän version, johon data mahtuu.

Koodisanat sijoitetaan ruudukkoon siksak-reittiä pitkin, joka ohittaa kiinteät kuviot. Lopuksi koodaaja soveltaa yhtä kahdeksasta peitekuviosta rikkoakseen suuret tyhjät alueet tai sekavat muodot, ja tallentaa peitteen ja virheenkorjaustason muototietoon.

  • Valitse koodaustila
  • Koodaa data ja lisää virheenkorjauskoodisanat
  • Valitse versio (koko)
  • Sijoita paikannus-, ajoitus- ja kohdistuskuviot
  • Täytä datamoduulit
  • Käytä parasta kahdeksasta peitteestä ja kirjoita muototieto

Kamerakuvasta dataksi

Purku suorittaa samat vaiheet käänteisesti. Skanneri löytää kolme paikannuskuviota, joiden tumman ja vaalean suhde 1:1:3:1:1 erottuu useimmista kuvista, ja käyttää niitä ajoitus- ja kohdistuskuvioiden kanssa ruudukon kartoittamiseen. Se lukee muototiedon, poistaa peitteen ja kerää koodisanat.

Reed–Solomon-purku korjaa sitten väärin luetut koodisanat virheenkorjaustason rajaan asti. Jos liian suuri osa on vaurioitunut, koodin luku epäonnistuu eikä palauta väärää dataa, minkä vuoksi QR-koodit tuottavat harvoin sekavia tuloksia.

Miksi koolla ja kontrastilla on väliä

Jokainen vaihe riippuu siitä, että kamera erottaa tummat moduulit vaaleista. Pienet moduulit, heikko kontrasti, heijastus, epätarkkuus tai puuttuva hiljainen alue tekevät useammasta moduulista epävarman, ja virheenkorjaus pystyy imemään vain tietyn määrän. Kun data pidetään lyhyenä, kontrasti vahvana ja reunus vapaana, purkajalla on helpoin tehtävä.

Usein kysytyt kysymykset

Mistä puhelin tietää, missä QR-koodi on?

Se etsii kolmea suurta neliön muotoista paikannuskuviota kulmista. Niiden erottuva suhde 1:1:3:1:1 antaa skannerin löytää ne mistä tahansa kulmasta ja selvittää suunnan.

Miksi QR-koodeissa on peitekuvio?

Peite kääntää moduuleja tietyn kuvion mukaan, jotta koodissa ei ole suuria yhtenäisiä alueita eikä paikannuskuvioita muistuttavia muotoja. Koodaaja kokeilee kaikki kahdeksan peitettä ja pitää sen, joka lukeutuu luotettavimmin.

Voiko QR-koodin lukea ylösalaisin?

Kyllä. Paikannuskuviot kertovat skannerille suunnan, joten QR-koodin voi lukea missä tahansa kiertokulmassa.

Lähteet ja standardit

Kaikki käsitteet