Sådan virker QR-koder

Kaldes også: QR-kodning, QR-kodeafkodning, how QR codes work

Definition

En QR-kode virker ved at omsætte data til kodeord, tilføje Reed–Solomon-fejlrettelse og placere bittene i et gitter omkring faste mønstre, som hjælper et kamera med at finde, rette op på og læse den.

Fra data til mønster

Når man laver en QR-kode, begynder man med at vælge en kodningstilstand, der passer til dataene: numerisk, alfanumerisk, byte eller kanji. Koderen omsætter dataene til bits, deler dem i kodeord på 8 bit og tilføjer Reed–Solomon-fejlrettelseskodeord på det valgte niveau. Derefter vælger den den mindste version, der kan rumme dem.

Kodeordene lægges i gitteret i en zigzagbane, der springer de faste mønstre over. Til sidst anvender koderen ét af otte maskemønstre for at bryde store tomme flader eller forvirrende former op og gemmer masken og fejlrettelsesniveauet i formatoplysningerne.

  • Vælg kodningstilstand
  • Kod dataene og tilføj fejlrettelseskodeord
  • Vælg versionen (størrelsen)
  • Placer søge-, timing- og justeringsmønstre
  • Udfyld datamodulerne
  • Anvend den bedste af otte masker, og skriv formatoplysningerne

Fra kamerabillede til data

Afkodning kører de samme trin i omvendt rækkefølge. Scanneren finder de tre søgemønstre, hvis forhold på 1:1:3:1:1 mellem mørkt og lyst adskiller sig fra de fleste billeder, og bruger dem sammen med timing- og justeringsmønstrene til at kortlægge gitteret. Den læser formatoplysningerne, fjerner masken og samler kodeordene.

Reed–Solomon-afkodning retter derefter de kodeord, der blev læst forkert, op til grænsen for fejlrettelsesniveauet. Hvis for meget er beskadiget, mislykkes læsningen i stedet for at give forkerte data, og derfor giver QR-koder sjældent forvansket indhold.

Hvorfor størrelse og kontrast betyder noget

Hvert trin afhænger af, at kameraet kan skelne mørke moduler fra lyse. Små moduler, lav kontrast, genskin, uskarphed eller et manglende stilleområde gør flere moduler usikre, og fejlrettelse kan kun opsluge en vis mængde. Korte data, stærk kontrast og en fri margen gør dekoderens arbejde lettest.

Ofte stillede spørgsmål

Hvordan ved en telefon, hvor QR-koden er?

Den leder efter de tre store kvadratiske søgemønstre i hjørnerne. Deres særlige forhold på 1:1:3:1:1 lader scanneren finde dem fra enhver vinkel og regne retningen ud.

Hvorfor har QR-koder et maskemønster?

Masken vender moduler efter et fast mønster, så koden undgår store ensfarvede flader og former, der ligner søgemønstre. Koderen prøver alle otte masker og beholder den, der læses mest pålideligt.

Kan en QR-kode læses på hovedet?

Ja. Søgemønstrene fortæller scanneren retningen, så en QR-kode kan læses i enhver rotation.

Kilder og standarder

Alle begreber