Slik fungerer QR-koder

Kalles også: QR-kode-koding, QR-kode-dekoding, how QR codes work

Definisjon

En QR-kode fungerer ved at data gjøres om til kodeord, at det legges til Reed–Solomon-feilretting, og at bitene plasseres i et rutenett rundt faste mønstre som hjelper et kamera med å finne, rette opp og lese koden.

Fra data til mønster

Å lage en QR-kode begynner med å velge en kodingsmodus som passer til dataene: numerisk, alfanumerisk, byte eller kanji. Koderen gjør dataene om til biter, deler dem i kodeord på 8 biter og legger til Reed–Solomon-kodeord for feilretting på det valgte nivået. Så velger den den minste versjonen som rommer alt.

Kodeordene legges inn i rutenettet i en sikksakkbane som hopper over de faste mønstrene. Til slutt bruker koderen ett av åtte maskemønstre for å bryte opp store tomme flater eller forvirrende former, og lagrer masken og feilrettingsnivået i formatinformasjonen.

  • Velg kodingsmodus
  • Kod dataene og legg til kodeord for feilretting
  • Velg versjon (størrelse)
  • Plasser søke-, tids- og justeringsmønstre
  • Fyll inn datamodulene
  • Bruk den beste av åtte masker og skriv formatinformasjonen

Fra kamerabilde til data

Dekoding går gjennom de samme trinnene i motsatt rekkefølge. Skanneren finner de tre søkemønstrene, hvis forhold på 1:1:3:1:1 mellom mørkt og lyst skiller seg ut fra de fleste bilder, og bruker dem sammen med tids- og justeringsmønstrene til å kartlegge rutenettet. Den leser formatinformasjonen, fjerner masken og samler kodeordene.

Reed–Solomon-dekoding retter deretter opp kodeord som ble feillest, opp til grensen for feilrettingsnivået. Hvis for mye er skadet, mislykkes lesingen i stedet for å gi feil data, og derfor gir QR-koder sjelden forvrengte resultater.

Hvorfor størrelse og kontrast har betydning

Hvert trinn avhenger av at kameraet kan skille mørke moduler fra lyse. Små moduler, lav kontrast, gjenskinn, uskarphet eller manglende stillesone gjør at flere moduler blir usikre, og feilretting kan bare fange opp en viss mengde. Korte data, sterk kontrast og fri marg gir dekoderen den letteste jobben.

Vanlige spørsmål

Hvordan vet en telefon hvor QR-koden er?

Den leter etter de tre store kvadratiske søkemønstrene i hjørnene. Det særegne forholdet 1:1:3:1:1 gjør at skanneren finner dem fra alle vinkler og regner ut retningen.

Hvorfor har QR-koder et maskemønster?

Masken snur moduler etter et fast mønster slik at koden unngår store, ensfargede flater og former som ligner søkemønstre. Koderen prøver alle åtte maskene og beholder den som leses mest pålitelig.

Kan en QR-kode leses opp ned?

Ja. Søkemønstrene forteller skanneren hvordan koden er vendt, så en QR-kode kan leses i alle rotasjoner.

Kilder og standarder

Alle begreper