Hoe QR-codes werken

Ook genoemd: QR-code codering, QR-code decodering, how QR codes work

Definitie

Een QR-code werkt door gegevens om te zetten in codewoorden, Reed-Solomon-foutcorrectie toe te voegen en de bits in een raster rond vaste patronen te plaatsen die een camera helpen de code te vinden, recht te zetten en te lezen.

Van gegevens naar patroon

Een QR-code maken begint met het kiezen van een coderingsmodus die bij de gegevens past: numeriek, alfanumeriek, byte of kanji. De encoder zet de gegevens om in bits, verdeelt ze in codewoorden van 8 bits en voegt Reed-Solomon-foutcorrectiecodewoorden toe op het gekozen niveau. Daarna kiest hij de kleinste versie waarin alles past.

De codewoorden worden in een zigzagpad in het raster gelegd, waarbij de vaste patronen worden overgeslagen. Ten slotte past de encoder een van acht maskerpatronen toe om grote lege vlakken of verwarrende vormen te doorbreken, en legt hij het masker en het foutcorrectieniveau vast in de formaatinformatie.

  • Kies de coderingsmodus
  • Codeer de gegevens en voeg foutcorrectiecodewoorden toe
  • Kies de versie (grootte)
  • Plaats zoek-, timing- en uitlijnpatronen
  • Vul de gegevensmodules in
  • Pas het beste van acht maskers toe en schrijf de formaatinformatie

Van camerabeeld naar gegevens

Decoderen doorloopt dezelfde stappen in omgekeerde volgorde. De scanner vindt de drie zoekpatronen, waarvan de verhouding 1:1:3:1:1 tussen donker en licht opvalt in de meeste beelden, en gebruikt ze samen met de timing- en uitlijnpatronen om het raster in kaart te brengen. Hij leest de formaatinformatie, verwijdert het masker en verzamelt de codewoorden.

Reed-Solomon-decodering herstelt daarna de codewoorden die verkeerd zijn gelezen, tot de grens van het foutcorrectieniveau. Is te veel beschadigd, dan mislukt het lezen van de code in plaats van dat er verkeerde gegevens uitkomen, en daarom geven QR-codes zelden onzinnige resultaten.

Waarom grootte en contrast ertoe doen

Elke stap hangt ervan af dat de camera donkere en lichte modules kan onderscheiden. Kleine modules, laag contrast, schittering, onscherpte of een ontbrekende stille zone brengen meer modules in twijfel, en foutcorrectie kan maar een beperkte hoeveelheid opvangen. Korte gegevens, sterk contrast en een vrije rand maken het de decoder zo makkelijk mogelijk.

Veelgestelde vragen

Hoe weet een telefoon waar de QR-code is?

Hij zoekt de drie grote vierkante zoekpatronen in de hoeken. Hun kenmerkende verhouding 1:1:3:1:1 laat de scanner ze vanuit elke hoek vinden en de oriëntatie bepalen.

Waarom hebben QR-codes een maskerpatroon?

Het masker keert modules om volgens een vast patroon, zodat de code grote effen vlakken en vormen die op zoekpatronen lijken vermijdt. De encoder probeert alle acht maskers en houdt het masker over dat het betrouwbaarst leest.

Kan een QR-code ondersteboven gelezen worden?

Ja. De zoekpatronen geven de scanner de oriëntatie, dus een QR-code is in elke rotatie te lezen.

Bronnen en normen

Alle termen