QR-code
Een QR-code is een bepaald type tweedimensionale streepjescode die in 1994 is ontwikkeld door Denso Wave, een dochteronderneming van het Japanse bedrijf Denso. De letters QR zijn een afkorting van Quick Response ("snel antwoord"). De code wordt bijvoorbeeld afgedrukt op papier, en gelezen door een apparaat, of gegenereerd op het scherm van een apparaat, en gelezen door een ander apparaat.

De code werd ontwikkeld om snel decodeerbaar te zijn. QR-codes waren oorspronkelijk bedoeld voor het identificeren van auto-onderdelen, maar werden snel voor andere toepassingen gebruikt. Aanvankelijk in Japan voor algemeen gebruik in tijdschriften, op bushaltes en op visitekaartjes, en later wereldwijd op posters en in tijdschriften.

Ontwikkeling 
Denso is een toeleverancier van Toyota en Isuzu en levert elektronische componenten en samenstellingen. Toen Toyota eiste dat de onderdelen beter identificeerbaar moesten zijn, werd door ingenieur Masahiro Hara bij Denso Wave, de dochteronderneming van Denso, een tweedimensionale streepjescode ontwikkeld. Het spelen van het bordspel Go bracht hem op het idee dat data in twee richtingen gecodeerd kon worden, in plaats van in één richting zoals bij de streepjescode.

De QR-code werd aanvankelijk alleen in de auto-industrie gebruikt. In Japan beschikte men echter al vroeg over gsm-telefoons met camera's en internettoegang (i-mode). Zo ontstond het idee de QR-code te gebruiken voor het aanbieden van een URL. De URL wordt hierbij gecodeerd tot een QR-code, die wordt afgedrukt in een tijdschrift, op een poster, of op de verpakking van een product. De gebruiker richt de camera van zijn telefoon op de QR-code, en neemt hiervan een foto. De code wordt door een QR-lezer in de telefoon omgezet in een URL, waarna in de webbrowser van de telefoon de bijbehorende website wordt getoond. Deze methode bespaart de gebruiker het moeizaam op een telefoon intypen van een URL.

Op een vergelijkbare manier kunnen e-mailadressen, contactinformatie (vCards), agenda-afspraken, GEO-locaties, sms-berichten, telefoonnummers en teksten (maximaal 7089 tekens) worden aangeboden. Met een druk op de knop staat vervolgens bijvoorbeeld een afspraak in de agenda, of kan er genavigeerd worden naar een bepaalde locatie. De gescande GEO-coördinaten worden daarbij rechtstreeks in het navigatieprogramma van de telefoon ingevoerd.

De QR-code heeft een ingebouwde redundantie. Daardoor kan een beschadigde code vaak toch nog foutloos gelezen worden. Marketeers maken hiervan soms gebruik om een stuk van de code te vervangen door een logo. Als er te veel van de originele code verdwijnt is hij echter niet meer leesbaar.

Opbouw 
 
Een QR-code is een vierkant bestaande uit rijen en kolommen van blokjes, kleine zwarte en witte vierkantjes, die, op enkele speciale velden na, digitaal opgeslagen informatie bevatten. Er zijn verschillende versies die bepaald worden door het aantal blokjes van een zijde. De nevenstaande QR-code, versie 7, dient als voorbeeld voor de opbouw. Vanaf versie 7 zijn QR-codes op overeenkomstige wijze opgebouwd. Lagere versies wijken hier enigszins van af. De uitleg is slechts globaal; precieze specificaties staan in de standaard ISO/IEC
18004. De versie  van de code, lopend van 1 tot en met 40, bepaalt de afmeting, het aantal rijen en kolommen. Dat aantal is . De afmetingen gaan dus van 21×21 voor versie 1, met stapjes van 4, tot en met 177×177 voor versie 40.

De gehele code is omgeven door een zogeheten rustzone, een vier blokjes brede witte strook. In drie van de vier hoekpunten is een oriënteringssymbool aangebracht, een vierkant van 7×7 blokjes, zoals in het voorbeeld te zien is. Het hoekpunt zonder een dergelijk symbool wordt rechtsonder gepositioneerd.

De rijen en kolommen worden van linksboven af geteld, beginnend bij 0. Als verdere hulp bij de oriëntering worden, behalve in versie 1, nog symbolen van 5×5 blokjes aangebracht, het eerste in het hoekpunt rechtsonder op een afstand van vier blokjes van de rand. Bij toenemende afmeting worden meer van zulke symbolen aangebracht in een regelmatig patroon, symmetrisch ten opzichte van de diagonaal van linksboven naar rechtsonder, en op voorgeschreven posities. Verder zijn, als hulp voor de synchronisatie bij het uitlezen, op rij 6 en in kolom 6 tussen de oriënteringssymbolen twee zwart-wit geblokte banden zichtbaar.

De overblijvende blokjes bevatten data, die opgeslagen zijn in een foutcorrigerende code. Daarvan is een aantal gereserveerd voor informatie over de versie en het dataformaat en de gebruikte foutcorrectie. Een zwart blokje stelt een bit 1 voor, een wit een bit 0.

De versie van de QR-code staat in de blauwe velden van elk 3×6 blokjes. De beide velden  bevatten in verband met redundantie dezelfde informatie. De bits worden in het bovenste veld van links naar rechts en van boven naar beneden gelezen, in het onderste veld van boven naar beneden en van links naar rechts. De eerste zes bits bevatten het nummer van de versie, de rest is informatie over de foutcode. De minst significante bit staat in blokje 1.

De oranje blokjes naast de oriënteringssymbolen in de hoekpunten, bestaande uit 15 bits, bevatten de informatie over het niveau van de foutcorrectie (2 bits), het patroon van het gebruikte masker (3 bits) en  10 foutcorrectiebits. De bits worden van boven naar beneden en van rechts naar links gelezen. Het bovenste blokje naast het onderste oriënteringssymbool is altijd zwart. De informatie is dubbel aangebracht; overeenkomstige bits zijn hetzelfde.

De overige datablokjes worden rechtsonder beginnend zigzaggend tussen beneden en boven  gelezen, met twee kolommen tegelijk. Steeds vormen 8 blokjes een byte. De bits van een byte worden per rij opgaand van onder naar boven gelezen en neergaand van boven naar beneden. Steeds van rechts naar links. Bit nummer 1 is de meest significante bit. Ter illustratie is van enkele bytes de volgorde van lezen van de bits aangegeven. Ook is in de kolommen 29 en 30 een byte als voorbeeld ingevuld; de leesrichting is naar beneden, dus: 10 00 11 01.

De QR-code hiernaast bevat de tekst: "Wikipedia.org" in Reed-Solomoncode waarmee tot drie foute bytes gecorrigeerd kunnen worden.

Het dataformaat is gecodeerd in 15 bits (Z=1/W=0), zowel horizontaal, verticaal als rondom het middelste oriënteringsblok af te lezen. In het voorbeeld zijn dat:
1 1 1 0  0  1  0  1  1  1  1  0  0  1  1 
die worden verdeeld in de groepjes:
11  100  1011110011

De eerste twee bits, hier 11, geven het foutcorrectieniveau aan: 11 = L (7%), 10 = M (15%). 01 = Q (25%), 00 = H (30%); tussen haakjes het maximale percentage correcties.
De volgende drie bits, hier 100, geven het patroon van het gebruikte masker aan.
De laatste tien bits bevatten aanvullende informatie over de foutcorrectie.

Hieronder voor de versies 1–11 een overzicht van het aantal tekens die gecodeerd worden:
{| class="wikitable" style="text-align:center";
! versie !! afmeting !! aantal tekens
|-
| 1 || 21 × 21 || 001 – 014
|-
| 2 || 25 × 25 || 015 – 026 
|-
| 3 ||29 × 29||027 – 042
|-
| 4 ||33 × 33||043 – 061
|-
| 5 ||37 × 37||062 – 084
|-
| 6 ||41 × 41||085 – 106
|-
| 7 ||45 × 45||107 – 122
|-
| 8 ||49 × 49||123 – 152
|-
| 9 ||53 × 53||153 – 180
|-
| 10 ||57 × 57||181 – 213
|-
| 11 ||61 × 61||214 – 251
|}

Codegeneratoren 
Het bedrijf Denso-Wave, de uitvinder en ontwikkelaar, besloot zijn patentrecht niet uit te oefenen. Dit betekent dat QR-codes door iedereen vrij gegenereerd kunnen worden. Op internet zijn allerlei QR-code-generatoren te vinden die verschillende typen QR-code en soms ook mogelijkheden tot tracking en analyse aanbieden.

Evolutie 

Denso Wave brengt ook vernieuwde versies uit die specifiek ontwikkeld zijn om een logo of design mee op te nemen in de QR-code. De micro QR-code is een kleinere variant bestemd om op beperkte oppervlakten aangebracht te kunnen worden.

De iQR-code is een variant van de hand van de oorspronkelijke ontwerpers en bestaat bijvoorbeeld in een rechthoekige vorm. Deze kan door de gebruiker op smalle en lange oppervlaktes worden aangebracht.

Vele QR-codelezers voor smartphones ondersteunen deze nieuwe types codes (nog) niet; sommige worden vooral in industriële toepassingen gebruikt.

Toepassingen

Vervoer
Vrijwel elke luchtvaartmaatschappij heeft zijn eigen smartphone-app.
Een van de functies daarvan is het downloaden en afbeelden van een mobiele instapkaart (boardingpass), waarop een QR-code is afgebeeld.
De Deutsche Bahn heeft een aantal grote stations voorzien van automaten voor Touch&Travel. Na aanmelding op een website en installatie van een mobiele app kan men hiermee reizen en achteraf betalen via automatische afboeking. Arriva Nederland heeft voor de noordelijke spoorlijnen bij wijze van proef in 2013 zich aangesloten aan het Duitse project.
Connexxion heeft vanaf juni 2012 alle bushaltes in Nederland voorzien van QR-codes. Hiermee kan de meest actuele reisinformatie over de halte worden ingezien.

Onderwijs
QR-codes worden ook in het onderwijs gebruikt. Het gaat dan om het ontsluiten van digitaal lesmateriaal bij analoog lesmateriaal. Dus bijvoorbeeld een QR-code in een lesboek die verwijst naar een filmpje. Leerkrachten maken QR-codemateriaal ook zelf, bijvoorbeeld om een instructiefilmpje aan het papieren huiswerk toe te voegen.
De QR-code wordt gebruikt als middel om digitale inhoud aan te bieden. Een leerkracht kan een QR-code aan een leerling geven met een opdracht, instructie, filmpje enz. De leerkracht kan de codes ook op verschillende onderwijsmaterialen plakken, bijvoorbeeld de provinciekaart van Europa, met op elke provincie een QR-code die verwijst naar iets opmerkelijks in die provincie.

Kunst
 In 2010 liet Annet Vroom zich voor enkele van haar reliëfs inspireren door de QR-code. 
 Op 31 maart 2011 publiceerde de Haarlemse dichter Chielie een bundel van twaalf QR-gecodeerde gedichten, die op één A4'tje past: QRCode ()
 In april 2012 presenteerde kunstenares Natalia Drobot in het landschap van Borgloon (België) met behulp van QR-code haar film Sonja Marmeladova voor het kunstproject Spoor van PHL Hasselt.

Horeca
De QR-code is medio 2011 ook in de horeca geïntroduceerd voor verschillende doeleinden. Gasten kunnen door de QR-code te scannen bijvoorbeeld de website of menukaart van het restaurant bekijken. Er zijn bedrijven die werken aan een bredere toepassing van QR-codes in de horeca. Hierbij kan de consument door middel van het scannen van een QR-code de gewenste bestellingen doorgeven aan de betreffende bar of restaurant. De QR-code bevat in dit geval de locatie waar de consument deze heeft gescand.

Coronatoegangsbewijs 

Tijdens de coronapandemie werden in verschillende landen QR-codes gebruikt om op locaties te controleren of iemand gevaccineerd, genezen dan wel negatief getest is.

Overig
Steeds vaker worden QR-codes toegepast om gemakkelijker en/of meer informatie te verschaffen. Zo worden ze ook afgedrukt in tijdschriften, gebruikt op handelsbeurzen, op reclameborden en op winkelproducten. Ze worden ook steeds vaker gebruikt om gevonden voorwerpen snel terug te bezorgen, indien ze met een code gemerkt zijn. In de Belgische verkiezingen van 2014 werden ze gebruikt als verificatiestrook (stembiljet) van een elektronische stemming. De digitale munteenheid Bitcoin gebruikt QR-codes om betalingen te versturen. Iemand die geld wil ontvangen kan een betalingsverzoek met QR-code versturen of presenteren; de betaler moet de QR-code scannen met zijn/haar smartphone, en ziet daarop dan de informatie over de betaling, en kan dan op zijn/haar smartphone aangeven akkoord te gaan, waarna de betaling wordt uitgevoerd. Ook worden QR-codes gebruikt voor AR-toepassingen. Objecten of pagina's in boeken of reclamefolders kunnen worden voorzien van een QR-code. Als deze dan op de smartphone wordt gescand, is op het scherm op de plek van de QR-code een ander beeld te zien, bijvoorbeeld een virtueel schilderij of een virtueel beeld van een toekomstig gebouw. Dit is eenvoudiger dan het maken van maquettes. Deze techniek wordt soms ook gebruikt bij spaaracties van supermarkten, met name bij acties waarbij kaarten bij elkaar gespaard kunnen worden. Deze worden dan soms voorzien van QR-codes die dan met een app dienen te worden uitgelezen. 
Ook kan een QR-code worden gebruikt om gemakkelijk in te loggen op een wifinetwerk, dat wil zeggen zonder dat inloggegevens ingevoerd hoeven te worden.

Fraude 
Het scannen van een QR-code met bijvoorbeeld de scanfunctie van een mobiel bankieren app kan een betaling aan een ander goedkeuren en zelfs de mobiel bankieren app gekoppeld aan de eigen bankrekening activeren op een andere telefoon. Als men bij het gebruiken van zo'n scanfunctie niet aandachtig de teksten op het eigen scherm leest kan men slachtoffer worden van fraude.

Zie ook 
 Streepjescode
 Datamatrix
 QRpedia
 Aangevulde realiteit
 Betaalverzoek met een QR-code

Externe links 
 Officiële website - denso-wave.com (gearchiveerd)
  Officiële beschrijving: ISO/IEC 18004 - raidenii.net (gearchiveerd)

Streepjescode