QR-code
Een café drukt QR-codes voor het menu op de tafeltjes en zet er zijn logo midden in. Op de eerste tafels leest de code meteen, op de nieuwe stickers niet: de ontwerper heeft het logo vergroot. De code lijkt heel, alle drie de hoekvierkanten zitten op hun plek. Maar onder het logo is een derde van de bytes van één blok verdwenen, en foutcorrectie van niveau M herstelt minder. De telefoon kijkt naar de code en zwijgt.
Een QR-code schrijft tekst met vierkantjes, modules: donker is 1, licht is 0. De gegevens zijn in bytes verdeeld en als een slang neergelegd. Daaraan zijn Reed–Solomon-correctiebytes toegevoegd: daarmee herstelt de scanner het beschadigde deel. Over de gegevens ligt een van de acht maskers, zodat er in de code geen grote lege vlekken zijn. Het maskernummer en het correctieniveau staan naast de zoekpatronen, twee keer.
| Wat het is | tweedimensionale matrixcode met foutcorrectie |
| Norm | ISO/IEC 18004; nationale versies: JIS X 0510 in Japan, GB/T 18284 in China, GOST R ISO/IEC 18004 in Rusland |
| Grootte | versies 1–40: van 21×21 tot 177×177 modules, +4 modules stille zone |
| Capaciteit | tot 7089 cijfers, 4296 letters en cijfers of 2953 bytes |
| Beveiliging | Reed–Solomon over GF(256), 7 tot 30 % van de bytes |
| Gelezen met | met een camera: een laserlijn heeft één rij nodig, QR heeft het hele beeld nodig |
Etymologie
Snel antwoord, moeder en maat
De naam QR is een Engelse afkorting, bedacht in Japan; QR Code is een geregistreerd handelsmerk van Denso Wave. De meeste talen hielden de Latijnse letters, maar het Chinees noemde de code naar zijn opbouw: «tweedimensionaal». In de norm heet de code een matrixcode en heten de vierkantjes modules.
01 · Opbouw
Hulpkader en slangenpad van bytes
De drie zoekpatronen in de hoeken vertellen de camera waar de code is en hoe hij gedraaid is. De stippellijn van de timing ertussen bepaalt de rasterstap. Vanaf de tweede versie staan er binnenin uitlijnpatronen: daarmee corrigeert de scanner scheefstand en buiging van het papier. Bij de zoekpatronen staan 15 bits formaat, bij grote versies nog eens 18 bits versienummer.
Al het overige is data. Die wordt in kolommen van twee modules geschreven, als een slang: van onder naar boven, dan van boven naar onder, van rechts naar links. De correctiebytes volgen direct op de data. In grote versies zijn de bytes over meerdere blokken verdeeld en door elkaar gehusseld, zodat één vlek elk blok een beetje beschadigt in plaats van één blok helemaal.
Hoe de code niveau en masker meldt
Kies het correctieniveau en het masker. Hieronder staan vijf databits, tien controlebits en het beschermmasker. Deze reeks wordt twee keer geschreven: rond het linkerbovenpatroon en langs de twee andere.
Bouw een code en beschadig hem
De code wordt volgens de norm uit je tekst opgebouwd: modus, versie, blokken, Reed–Solomon, masker. «Structuur»: tik op een module en zie van welke byte die bit is. «Masker»: loop de acht maskers langs en bekijk de straffen. «Beschadiging»: bedek het midden met een logo, druppel verf, kras. De scanner leest wat overblijft en herstelt de blokken.
02 · Evolutie van tweedimensionale codes
Van lijn naar vlak
Een lineaire code liep tegen de lengte aan: meer dan twee tientallen tekens passen niet in een regel. Eerst werden de regels op elkaar gestapeld, daarna ging men over op een raster van modules. Elke code loste zijn eigen probleem op: een onderdeel in de fabriek, een pakket op de band, een ticket op het scherm. QR won omdat hij gratis werd en in telefoons kwam.
03 · Modi en capaciteit
Het alfabet bepaalt de grootte
QR comprimeert gegevens door de keuze van de modus. Cijfers gaan in drietallen van 10 bits. Hoofdletters, cijfers en negen tekens gaan in paren van 11 bits. Al het andere gaat in bytes van 8 bits. Voor de data staan 4 bits modus en een tekenteller.
04 · Wat erin zit
Gewoon tekst, bij afspraak
QR zelf weet niet dat er een link of wachtwoord in zit. Hij bewaart een tekenreeks. De telefoon kijkt naar het begin van de reeks: https:// — browser openen, WIFI: — met het netwerk verbinden, BEGIN:VCARD — contact opslaan. Betaalreeksen verschillen per land. Massale QR-betalingen begonnen in China: Alipay en WeChat Pay. In India is het een upi://pay-link, in de eurozone een SEPA-overschrijving volgens het EPC-formaat, in Brazilië Pix volgens het EMVCo-sjabloon, in Rusland betaalgegevens volgens GOST R 56042-2014.
05 · Afdrukregels
06 · Aanverwante codes
07 · Historisch deel
Masahiro Hara vertelde dat het idee van het raster bij hem opkwam tijdens een spel go: zwarte en witte stenen op het bord dragen al veel informatie. De moeilijkheid zat elders: de camera moest de code direct vinden tussen opschriften en afbeeldingen. Hara doorzocht kranten, tijdschriften en dozen en koos een breedteverhouding die in druk bijna niet voorkomt.
Het patroon 1 : 1 : 3 : 1 : 1 ziet er langs elke lijn door het midden hetzelfde uit, onder welke hoek de camera ook kijkt. Als de scanner drie van zulke patronen vindt, kent hij positie, draaiing en grootte van de code zonder een enkele databit te lezen. Daarom leest QR in elke oriëntatie, terwijl je een streepjescode met de regel naar de straal moet houden.
Catalogus van grootheden
de hele index →De zeven SI-basiseenheden
Een druppel zuur verandert de kleur van het sap, zout kleurt de vlam, water bevriest door een tik. Daaronder alle bladen van Simetrium, per vakgebied en alfabetisch.
Index openen →





