QR-kode [a] ( eng. Quick response code - quick response code [2] ; forkortelse QR code ) - en type matrixstregkoder (eller todimensionelle stregkoder ), oprindeligt udviklet til bilindustrien i Japan . Masahiro Hara [3] betragtes som dens skaber . Selve udtrykket er et registreret varemærke tilhørende det japanske firma Denso . En stregkode er en maskinlæsbar optisk etiket, der indeholder information om den genstand, den er fastgjort til. QR-koden bruger fire standardiserede kodningstilstande (numerisk, alfanumerisk, binær og kanji ) til at gemme data effektivt; udvidelser [4] kan også bruges .
QR-kodesystemet er blevet populært uden for bilindustrien på grund af dets hurtige læsbarhed og højere kapacitet sammenlignet med UPC standardstregkoder . Udvidelser omfatter produktsporing, vareidentifikation, tidsregistrering, dokumentstyring og generel markedsføring [5] .
En QR-kode består af sorte firkanter arrangeret i et firkantet gitter på en hvid baggrund, som kan læses af billedbehandlingsenheder såsom et kamera og behandles ved hjælp af Reed-Solomon-koder , indtil billedet genkendes korrekt. De nødvendige data udtrækkes derefter fra de mønstre, der er til stede i de vandrette og lodrette komponenter af billedet [5] .
I de dage, hvor der ikke var nogen QR-kode, blev der udført komponentscanning på Denso - fabrikken med forskellige stregkoder. Men på grund af, at der var omkring 10 af dem, var arbejdseffektiviteten ekstrem lav, og arbejderne klagede over, at de hurtigt blev trætte, og bad også om, at der blev oprettet en kode, der kunne indeholde flere oplysninger end en almindelig stregkode. For at besvare denne arbejders anmodning satte Denso-Wave sig for at skabe en kode, der kunne omfatte flere oplysninger for at muliggøre højhastigheds-komponentscanning. [6] For at gøre dette begyndte Masahiro Hara, som arbejdede i udviklingsafdelingen, at udvikle ny kode fra 1992. [7] Inspirationen til QR-koden kom fra spillet Go , som Masahiro Hara spillede i sin frokostpause. [7] Han besluttede, at designmålet ikke kun var at øge mængden af kodeinformation, men også at "læse præcist og hurtigt", samt at gøre koden læsbar og modstandsdygtig over for oliepletter, snavs og skader, hvilket tyder på, at det vil blive brugt i de respektive brancher. QR-koden blev introduceret af den japanske virksomhed Denso-Wave i 1994 efter en to-årig udviklingsperiode. [8] [9] [10] Det blev designet med Toyotas Kanban ( just in time ) produktionssystem i tankerne til brug i autoreservefabrikker og distributionscentre. Men da den har en høj fejldetektions- og korrektionsevne og er lavet i open source , er den bevæget sig ud af Toyotas snævre forsyningskæder og er blevet brugt i andre områder, hvilket har ført til, at den nu er udbredt. bruges ikke kun i Japan, men i hele verden. Den enorme popularitet af stregkoder i Japan førte til, at mængden af information krypteret i dem snart holdt op med at passe til industrien. Japanerne begyndte at eksperimentere med nye moderne måder at indkode små mængder information i et grafisk billede. QR-koden er blevet en af de mest brugte typer 2D-kode i verden. [11] QR-kodespecifikationen beskriver ikke dataformatet .
I modsætning til den gamle stregkode, som scannes med en tynd stråle, registreres en QR-kode af en sensor eller kamera som et todimensionelt billede. De tre firkanter i hjørnerne af billedet og de mindre timing-firkanter i hele koden normaliserer billedstørrelsen og orienteringen, såvel som den vinkel, som sensoren er placeret i i forhold til billedoverfladen. Point konverteres til binære tal med kontrolsum verifikation .
Den største fordel ved en QR-kode er dens nemme genkendelse ved hjælp af scanningsudstyr , som gør det muligt at bruge den i handel , produktion og logistik .
Selvom "QR-kode"-betegnelsen er et registreret varemærke tilhørende DENSO Corporation, er brugen af koderne ikke underlagt nogen royalties , og de er selv beskrevet og offentliggjort som ISO-standarder.
De mest populære QR-kodefremvisere understøtter følgende dataformater: URL , browserbogmærke , e- mail (med emnelinje), SMS til nummer (med emnelinje), MeCard, vCard , geografiske koordinater , Wi-Fi- netværksforbindelse .
Nogle programmer kan også genkende GIF- , JPG- , PNG- eller MID- filer på mindre end 4 KB og chiffertekst , men disse formater har ikke vundet popularitet. [13]
QR-koder er mest almindelige i Japan. Allerede i begyndelsen af 2000 blev QR-koder så udbredt i landet, at de kunne findes på en lang række plakater, pakker og varer, hvor sådanne koder er påført næsten alle varer, der sælges i butikker, de er placeret i annoncehæfter og opslagsværker. Ved hjælp af en QR-kode organiserer de endda forskellige konkurrencer og rollespil . Førende japanske mobiloperatører frigiver i fællesskab mobiltelefoner under deres varemærke med indbygget understøttelse af QR-kodegenkendelse [14] .
På nuværende tidspunkt er QR-koden også meget udbredt i asiatiske lande, der gradvist udvikler sig i Europa og Nordamerika. Han modtog den største anerkendelse blandt mobilkommunikationsbrugere - ved at installere et genkendelsesprogram kan abonnenten øjeblikkeligt indtaste tekstoplysninger i sin telefon, oprette forbindelse til et Wi-Fi-netværk , sende breve via e-mail , tilføje kontakter til adressebogen, følge weblinks, sende SMS-beskeder osv.
Ifølge en undersøgelse udført af comScore i 2011 brugte 20 millioner indbyggere i USA mobiltelefoner til at scanne QR-koder [15] .
I Japan, Østrig og Rusland bruges QR-koder også på kirkegårde og indeholder oplysninger om afdøde [16] [17] [18] .
I den kinesiske by Hefei blev der uddelt badges med QR-koder til de ældre, takket være hvilke forbipasserende kan hjælpe fortabte gamle mennesker med at vende hjem [19] .
QR-koder bruges aktivt af museer [20] , såvel som i turisme, både langs turistruter og ved forskellige genstande. Plader lavet af metal er mere holdbare og modstandsdygtige over for hærværk.
Samtidig med starten på massevaccination mod COVID-19 i foråret 2021 begyndte næsten alle verdens lande at udstede vaccinationsdokumenter - digitale eller papircertifikater, hvorpå der var placeret QR-koder overalt. Den 9. november 2021 blev QR-koder til bekræftelse af vaccination eller tidligere sygdom ( COVID-19 ) indført i 77 konstituerende enheder i Den Russiske Føderation (i nogle af dem blev starten af QR-koder forsinket for at give befolkningen mulighed for at få vaccineret). I Tatarstan har indførelsen af QR-koder ført til menneskemængder ved metroindgange og adskillige konflikter mellem passagerer og offentlig transportledere [21] .
Den mindste QR-kode (version 1) har en størrelse på 21×21 pixels (eksklusive margener), den største (version 40) er 177×177 pixels. Forbindelsen mellem versionsnummeret og antallet af moduler er enkel - QR-koden for den næste version er større end den forrige med strengt taget 4 moduler vandret og lodret.
Der er fire hovedkodninger af QR-koder:
Der er også "pseudo-kodninger": specificering af, hvordan dataene kodes, opdeling af en lang besked i flere koder osv.
For at rette fejl bruges Reed-Solomon-koden med et 8-bit kodeord. Der er fire niveauer af redundans: 7, 15, 25 og 30 %. Takket være fejlretning er det muligt at sætte et billede på en QR-kode og stadig lade det læses.
For at der ikke er elementer i koden, der kan forvirre scanneren, tilføjes dataområdet modulo 2 med en speciel maske. En korrekt fungerende indkoder skal prøve alle maskemulighederne, beregne strafpointene for hver i henhold til særlige regler og vælge den mest succesfulde.
1. Introduktion
2 - Struktur
3 - Kodning
4 - Niveauer
5 - Protokoller
Separat er der en mikro QR-kode med en kapacitet på op til 35 cifre.
Datalagringseffektiviteten sammenlignet med den traditionelle QR-kode er væsentligt forbedret ved kun at bruge ét positioneringstag sammenlignet med tre tags i en konventionel QR-kode. På grund af dette frigøres en vis plads, som kan bruges til data. Derudover kræver en QR-kode en fri margen omkring koden, der er mindst 4 moduler bred (minimumskonstruktionsenheden for en QR-kode), mens en Micro QR-kode kræver en margen på to moduler bred. På grund af den større effektivitet af datalagring øges størrelsen af Micro QR-koden ikke så meget med stigningen i mængden af kodede data sammenlignet med den traditionelle QR-kode.
Analogt med fejlkorrektionsniveauer i QR-koder, kommer Micro QR-kode i fire versioner, M1-M4 [22] [23] .
Kode version | Antal moduler | Fejlkorrektionsniveau | Tal | Tal og bogstaver | Binære data | Kanji |
---|---|---|---|---|---|---|
M1 | elleve | - | 5 | - | - | - |
M2 | 13 | L (7 %) | ti | 6 | - | - |
M (15 %) | otte | 5 | - | - | ||
M3 | femten | L (7 %) | 23 | fjorten | 9 | 6 |
M (15 %) | atten | elleve | 7 | fire | ||
M4 | 17 | L (7 %) | 35 | 21 | femten | 9 |
M (15 %) | tredive | atten | 13 | otte | ||
Q (25 %) | 21 | 13 | 9 | 5 |
Der er flere måder at indkode information i en QR-kode, og valget af en specifik metode afhænger af, hvilke symboler der bruges. Hvis der kun bruges tal fra 0 til 9, så kan numerisk kodning bruges, hvis det udover tal er nødvendigt at kryptere bogstaver i det latinske alfabet, mellemrum og symboler $%*+-./:, anvendes alfanumerisk kodning. Der er også kanji-kodning, som bruges til at kryptere kinesiske og japanske tegn, og byte-kodning. Før hver indkodningsmetode oprettes en tom bitsekvens, som derefter udfyldes.
Denne type kodning kræver 10 bits pr. 3 tegn. Hele sekvensen af tegn er opdelt i grupper på 3 cifre, og hver gruppe (trecifret tal) oversættes til et 10-bit binært tal og tilføjes til bitsekvensen. Hvis det samlede antal tegn ikke er et multiplum af 3, så hvis 2 tegn er tilbage i slutningen, kodes det resulterende tocifrede tal med 7 bit, og hvis 1 tegn, så med 4 bit.
For eksempel er der en streng "12345678", der skal kodes. Sekvensen er opdelt i tal: 123, 456 og 78, derefter konverteres hvert tal til binær form: 0001111011, 0111001000 og 1001110, og kombineres til én bitstrøm: 000111101101110010101.
I modsætning til digital kodning kræves der 11 bit information for at kode 2 tegn. Sekvensen af tegn er opdelt i grupper af 2, i gruppen er hvert tegn kodet i henhold til tabellen "Tegnværdier i alfanumerisk kodning". Værdien af det første tegn multipliceres med 45, derefter tilføjes værdien af det andet tegn til dette produkt. Det resulterende tal konverteres til et 11-bit binært tal og tilføjes til bitsekvensen. Hvis der er et tegn tilbage i den sidste gruppe, er dets værdi kodet som et 6-bit tal. Overvej et eksempel: "BEVIS". Vi opdeler sekvensen af tegn i grupper: PR , OO , F . Vi finder de tilsvarende værdier for symbolerne for hver gruppe (se tabellen): PR - (25.27), OO - (24.24), F - (15). Find værdierne for hver gruppe: 25 × 45 + 27 = 1152, 24 × 45 + 24 = 1104, 15 = 15. Konverter hver værdi til binær: 1152 = 10010000000, 1104 = 1000101000, 1000101000, 1,0100, 1,0100, 1. sekvens: 1001000000010001010000001111.
Ethvert tegn kan kodes på denne måde. Indgangstegnstrømmen kodes i en hvilken som helst kodning (anbefales i UTF-8 ), og konverteres derefter til binær form, hvorefter den kombineres til en enkelt bitstrøm.
For eksempel er ordet "World" kodet i Unicode (HEX) i UTF-8 : M - D09C; og - DOB8; p - D180. Vi oversætter hver værdi til det binære system: D0 = 11010000, 9C = 10011100, D0 = 11010000, B8 = 10111000, D1 = 11010001 og 80 = 10000000; kombinere til én bitstrøm: 11010000 10011100 11010000 10111000 11010001 10000000.
Kodningen af hieroglyffer (såvel som andre symboler) er baseret på en visuelt opfattet tabel eller liste over billeder af hieroglyffer med deres koder. Sådan en tabel kaldes et "karaktersæt". For japansk er to tegntabeller af primær betydning: JIS 0208:1997 og JIS 0212:1990. Den anden af dem fungerer som et supplement til den første. JIS 0208:1997 er opdelt i 94 sider med 94 tegn. For eksempel er side 4 hiragana, side 5 er katakana, 7 er kyrillisk, 16-43 er kanji på niveau 1, og 48-83 er kanji på niveau 2. Niveau 1 kanji ("JIS daiichi suijun kanji") er sorteret efter onm. Niveau 2 kanji ("JIS daini suijun kanji") er ordnet efter nøgle, og inden for dem efter antallet af slag.
Efter bestemmelse af kodeversion og kodning er det nødvendigt at bestemme niveauet for fejlkorrektion. Tabellen viser de maksimale værdier for korrektionsniveauer for forskellige versioner af QR-koden. For at rette fejl bruges Reed-Solomon-koden med et 8-bit kodeord.
Bord. Den maksimale mængde information.
Række — korrektionsniveau, kolonne — versionsnummer.
en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 | tyve | |
L | 152 | 272 | 440 | 640 | 864 | 1088 | 1248 | 1552 | 1856 | 2192 | 2592 | 2960 | 3424 | 3688 | 4184 | 4712 | 5176 | 5768 | 6360 | 6888 |
M | 128 | 224 | 352 | 512 | 688 | 864 | 992 | 1232 | 1456 | 1728 | 2032 | 2320 | 2672 | 2920 | 3320 | 3624 | 4056 | 4504 | 5016 | 5352 |
Q | 104 | 176 | 272 | 384 | 496 | 608 | 704 | 880 | 1056 | 1232 | 1440 | 1648 | 1952 | 2088 | 2360 | 2600 | 2936 | 3176 | 3560 | 3880 |
H | 72 | 128 | 208 | 288 | 368 | 480 | 528 | 688 | 800 | 976 | 1120 | 1264 | 1440 | 1576 | 1784 | 2024 | 2264 | 2504 | 2728 | 3080 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | tredive | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | |
L | 7456 | 8048 | 8752 | 9392 | 10208 | 10960 | 11744 | 12248 | 13048 | 13880 | 14744 | 15640 | 16568 | 17528 | 18448 | 19472 | 20528 | 21616 | 22496 | 23648 |
M | 5712 | 6256 | 6880 | 7312 | 8000 | 8496 | 9024 | 9544 | 10136 | 10984 | 11640 | 12328 | 13048 | 13800 | 14496 | 15312 | 15936 | 16816 | 17728 | 18672 |
Q | 4096 | 4544 | 4912 | 5312 | 5744 | 6032 | 6464 | 6968 | 7288 | 7880 | 8264 | 8920 | 9368 | 9848 | 10288 | 10832 | 11408 | 12016 | 12656 | 13328 |
H | 3248 | 3536 | 3712 | 4112 | 4304 | 4768 | 5024 | 5288 | 5608 | 5960 | 6344 | 6760 | 7208 | 7688 | 7888 | 8432 | 8768 | 9136 | 9776 | 10208 |
Efter bestemmelse af fejlkorrektionsniveauet er det nødvendigt at tilføje servicefelter, de skrives før bitsekvensen opnået efter kodningsstadiet. De angiver indkodningsmetoden og mængden af data. Værdien af indkodningsmetodefeltet består af 4 bit, det ændrer sig ikke, men fungerer som et tegn, der angiver, hvilken indkodningsmetode der anvendes. Det har følgende betydninger:
Eksempel:
Det tidligere byte-kodningseksempel kodede ordet "World", hvilket resulterede i følgende binære kodesekvens:
11010000 10011100 11010000 10111000 11010001 10000000 indeholdende 48 bit information.
Lad niveauet af fejlkorrektion H være påkrævet, hvilket gør det muligt at genskabe 30 % af den tabte information. Ifølge tabellen vælges den optimale version af QR-koden fra den maksimale mængde information (i dette tilfælde version 1, som tillader kodning af 72 bits nyttig information på fejlkorrektionsniveau H).
Oplysninger om indkodningsmetoden: felt 0100 svarer til byte-kodningen.
Angivelse af mængden af data (for numerisk og alfanumerisk kodning - antallet af tegn, for byte-kodning - antallet af bytes): denne sekvens indeholder 6 bytes data (i binært: 110).
Ifølge tabellen bestemmes den nødvendige længde af det binære tal - 8 bit. De manglende nuller tilføjes: 00000110.
Version 1-9 | Version 10-26 | Version 27-40 | |
---|---|---|---|
Digital | 10 bit | 12 bit | 14 bit |
Alfanumerisk | 9 bit | 11 bit | 13 bit |
Byte | 8 bit | 16 bit | 16 bit |
Al information skrives i rækkefølgen <encoding method> <datamængde> <data>, hvilket resulterer i en sekvens af bit:
0100 00000110 11010000 10011100 11010000 10111000 11010001 10000000.
Sekvensen af bytes er opdelt i antallet af blokke defineret for version og korrektionsniveau, som er angivet i "Antal blokke"-tabellen. Hvis antallet af blokke er lig med én, kan dette trin springes over. Og når versionen opgraderes, tilføjes specielle blokke.
Først bestemmes antallet af bytes (data) i hver af blokkene. For at gøre dette skal du dividere hele antallet af bytes med antallet af datablokke. Hvis dette tal ikke er et heltal, skal du bestemme resten af divisionen. Denne rest bestemmer, hvor mange blokke ud af alle er polstret (sådanne blokke, hvor antallet af bytes er én mere end i resten). Mod forventning skal de polstrede blokke ikke være de første blokke, men de sidste. Så kommer den sekventielle fyldning af blokke.
Eksempel: for version 9 og korrektionsniveau M er mængden af data 182 bytes, antallet af blokke er 5. Dividerer man antallet af databytes med antallet af blokke, får vi 36 bytes og 2 bytes i resten. Det betyder, at datablokkene vil have følgende størrelser: 36, 36, 36, 37, 37 (bytes). Hvis der ikke var nogen rest, ville alle 5 blokke have en størrelse på 36 bytes.
Blokken er fuldstændig fyldt med bytes fra dataene. Når den aktuelle blok er fuld, flyttes køen til den næste. Bytes af data bør være nok nøjagtigt til alle blokke, hverken mere eller mindre.
Processen er baseret på Reed-Solomon- algoritmen . Det skal anvendes på hver blok af informationer i QR-koden. Først bestemmes antallet af korrektionsbytes, der skal oprettes, og derefter, baseret på disse data, oprettes et generationspolynomium. Antallet af korrektionsbytes pr. blok bestemmes af den valgte kodeversion og fejlkorrektionsniveau (angivet i tabellen).
en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 | tyve | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | tredive | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | |
L | 7 | ti | femten | tyve | 26 | atten | tyve | 24 | tredive | atten | tyve | 24 | 26 | tredive | 22 | 24 | 28 | tredive | 28 | 28 | 28 | 28 | tredive | tredive | 26 | 28 | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive |
M | ti | 16 | 26 | atten | 24 | 16 | atten | 22 | 22 | 26 | tredive | 22 | 22 | 24 | 24 | 28 | 28 | 26 | 26 | 26 | 26 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 | 28 |
Q | 13 | 22 | atten | 26 | atten | 24 | atten | 22 | tyve | 24 | 28 | 26 | 24 | tyve | tredive | 24 | 28 | 28 | 26 | tredive | 28 | tredive | tredive | tredive | tredive | 28 | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive |
H | 17 | 28 | 22 | 16 | 22 | 28 | 26 | 26 | 24 | 28 | 24 | 28 | 22 | 24 | 24 | tredive | 28 | 28 | 26 | 28 | tredive | 24 | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive | tredive |
Det genererende polynomium bestemmes af antallet af korrektionsbytes (angivet i tabellen).
Antal korrektionsbytes | Generering af polynomium |
---|---|
7 | 87, 229, 146, 149, 238, 102, 21 |
ti | 251, 67, 46, 61, 118, 70, 64, 94, 32, 45 |
13 | 74, 152, 176, 100, 86, 100, 106, 104, 130, 218, 206, 140, 78 |
femten | 8, 183, 61, 91, 202, 37, 51, 58, 58, 237, 140, 124, 5, 99, 105 |
16 | 120, 104, 107, 109, 102, 161, 76, 3, 91, 191, 147, 169, 182, 194, 225, 120 |
17 | 43, 139, 206, 78, 43, 239, 123, 206, 214, 147, 24, 99, 150, 39, 243, 163, 136 |
atten | 215, 234, 158, 94, 184, 97, 118, 170, 79, 187, 152, 148, 252, 179, 5, 98, 96, 153 |
tyve | 17, 60, 79, 50, 61, 163, 26, 187, 202, 180, 221, 225, 83, 239, 156, 164, 212, 212, 188, 190 |
22 | 210, 171, 247, 242, 93, 230, 14, 109, 221, 53, 200, 74, 8, 172, 98, 80, 219, 134, 160, 105, 315, |
24 | 229, 121, 135, 48, 211, 117, 251, 126, 159, 180, 169, 152, 192, 226, 228, 218, 111, 0, 117, 232, 2, 2, 2, 7 |
26 | 173, 125, 158, 2, 103, 182, 118, 17, 145, 201, 111, 28, 165, 53, 161, 21, 245, 142, 13. 70 |
28 | 168, 223, 200, 104, 224, 234, 108, 180, 110, 190, 195, 147, 205, 27, 232, 201, 21, 43, 245. 37, 9, 123 |
tredive | 41, 173, 145, 152, 216, 31, 179, 182, 50, 48, 110, 86, 239, 96, 222, 125, 42, 173, 226. 216, 238, 40, 192, 180 |
Beregningen er foretaget baseret på værdierne af det indledende dataarray og værdierne af det genererende polynomium og for hvert trin i cyklussen separat.
På dette stadium er der to færdige blokke: indledende data og korrektionsblokke (fra det foregående trin), de skal kombineres til en bytestrøm. Til gengæld er det nødvendigt at tage en byte af information fra hver datablok, startende fra den første og slutter med den sidste. Når køen når den sidste blok, tages en byte fra den, og køen flytter til den første blok. Dette fortsætter, indtil hver blok løber tør for bytes. Der er undtagelser, når den aktuelle blok springes over, hvis der ikke er nogen bytes i den (en situation, hvor almindelige blokke allerede er tomme, og der stadig er én byte i de polstrede). Det samme gælder for blokke af korrektionsbytes. De tages i samme rækkefølge som de tilsvarende datablokke.
Resultatet er følgende datasekvens: <1. byte af 1. datablok><1. byte af 2. datablok>...<1. byte af n. datablok><2. byte af 1. blokdata>...<(m — 1. byte af den 1. datablok>…<(m — 1). byte af den n. datablok><m. byte af den k. datablok>...<m. byte af n. datablok><1. byte af 1. korrektionsbyte blok><1. byte af 2. korrektionsbyteblok>...<1. byte af n. korrektionsbyteblok><2. byte 1. korrektionsbyteblok>…<l-te byte af 1. korrektionsbyteblok>...<l-te byte af den n-te korrektionsbyteblok>.
Her er n antallet af datablokke, m er antallet af bytes pr. datablok for almindelige blokke, l er antallet af korrektionsbytes, k er antallet af datablokke minus antallet af polstrede datablokke (dem med 1 byte mere ).
Der er obligatoriske felter på QR-koden, de indeholder ikke kodede oplysninger, men indeholder oplysninger til afkodning. Det:
samt obligatorisk indrykning omkring koden . Polstringen er en ramme af hvide moduler, dens bredde er 4 moduler.
Søgemønstre er 3 firkanter i hjørnerne undtagen nederst til højre. Bruges til at bestemme placeringen af koden. De består af en 3x3 firkant af sorte moduler, rundt om en ramme af hvide moduler med en bredde på 1, så en anden ramme af sorte moduler, også med en bredde på 1, og et hegn fra resten af koden - en halv ramme på hvide moduler med en bredde på 1. I alt har disse objekter en størrelse på 8×8 moduler.
Justeringsmønstre - vises, startende fra den anden version, bruges til yderligere stabilisering af koden, mere nøjagtig placering af den under afkodning. De består af 1 sort modul, rundt om hvilket der er en ramme af hvide moduler med en bredde på 1, og så en anden ramme af sorte moduler, også med en bredde på 1. Den endelige størrelse af alignment-mønsteret er 5x5. Der er sådanne mønstre i forskellige positioner afhængigt af versionsnummeret. Justeringsmønstre kan ikke overlappe søgemønstre. Nedenfor er en tabel over placeringen af det centrale sorte modul, tallene er angivet der - det er mulige koordinater, både vandret og lodret. Disse moduler står i skæringspunktet mellem sådanne koordinater. Nedtællingen er fra den øverste venstre knude, dens koordinater er (0,0).
en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 | tyve |
- | atten | 22 | 26 | tredive | 34 | 6, 22, 38 | 6, 24, 42 | 6, 26, 46 | 6, 28, 50 | 6, 30, 54 | 6, 32, 58 | 6, 34, 62 | 6, 26, 46, 66 | 6, 26, 48, 70 | 6, 26, 50, 74 | 6, 30, 54, 78 | 6, 30, 56, 82 | 6, 30, 58, 86 | 6, 34, 62, 90 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | tredive | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
6, 28, 50, 72, 94 | 6, 26, 50, 74, 98 | 6, 30, 54, 78, 102 | 6, 28, 54, 80, 106 | 6, 32, 58, 84, 110 | 6, 30, 58, 86, 114 | 6, 34, 62, 90, 118 | 6, 26, 50, 74, 98, 122 | 6, 30, 54, 78, 102, 126 | 6, 26, 52, 78, 104, 130 | 6, 30, 56, 82, 108, 134 | 6, 34, 60, 86, 112, 138 | 6, 30, 58, 86, 114, 142 | 6, 34, 62, 90, 118, 146 | 6, 30, 54, 78, 102, 126, 150 | 6, 24, 50, 76, 102, 128, 154 | 6, 28, 54, 80, 106, 132, 158 | 6, 32, 58, 84, 110, 136, 162 | 6, 26, 54, 82, 110, 138, 166 | 6, 30, 58, 86, 114, 142, 170 |
Synkroniseringsbjælker - bruges til at bestemme størrelsen på modulerne. De er placeret i et hjørne, man starter fra nederste venstre søgemønster (fra kanten af den sorte ramme, men har krydset den hvide), går til øverste venstre, og derfra begynder den anden ifølge samme regel , den ender øverst til højre. Når det er lagt på nivelleringsmodulet, skal det forblive uændret. Synkroniseringsstriber ligner linjer af vekslende sorte og hvide moduler.
Masken og korrektionsniveaukoden er placeret ved siden af søgemønstrene: under øverste højre (8 moduler) og til højre for nederste venstre (7 moduler), og er duplikeret på siderne af øverste venstre, med et mellemrum på den 7. celle - hvor synkroniseringsbåndene går, desuden den vandrette kode ind i den lodrette del, og den vertikale kode ind i den vandrette.
Versionskode - nødvendig for at bestemme versionen af koden. De er placeret til venstre for øverst til højre og over nederst til venstre og er duplikeret. De er duplikeret på denne måde - spejlkopien af den øverste kode roteres 90 grader mod uret. Nedenfor er en tabel med koder, 1 - sort modul, 0 - hvid.
Version | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 | tyve | 21 | 22 | 23 |
Versionskode | 000010 011110 100110 | 010001 011100 111000 | 110111 011000 000100 | 101001 111110 000000 | 001111 111010 111100 | 001101 100100 011010 | 101011 100000 100110 | 110101 000110 100010 | 010011 000010 011110 | 011100 010001 011100 | 111010 010101 100000 | 100100 110011 100100 | 000010 110111 011000 | 000000 101001 111110 | 100110 101101 000010 | 111000 001011 000110 | 011110 001111 111010 |
24 | 25 | 26 | 27 | 28 | 29 | tredive | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | |
001101 001101 100100 | 101011 001001 011000 | 110101 101111 011100 | 010011 101011 100000 | 010001 110101 000110 | 110111 110001 111010 | 101001 010111 111110 | 001111 010011 000010 | 101000 011000 101101 | 001110 011100 010001 | 010000 111010 010101 | 110110 111110 101001 | 110100 100000 001111 | 010010 100100 110011 | 001100 000010 110111 | 101010 000110 001011 | 111001 000100 010101 |
Den resterende ledige plads er opdelt i kolonner 2 moduler brede, og information indtastes der, og de gør det med en "slange". Først indtastes den første informationsbit i den nederste højre firkant, derefter i dens venstre nabo, derefter i den, der var over den første, og så videre. Kolonner udfyldes fra bund til top og derefter fra top til bund osv., og langs kanterne fyldes bits fra den yderste del af en kolonne til den yderste del af den tilstødende søjle, som sætter "slangen" på søjler med en nedadgående retning. Hvis informationen ikke er nok, efterlades felterne blot tomme (hvide moduler). I dette tilfælde påføres en maske på hvert modul.
Beskrivelse af felterne i QR-koden.
Maske og korrektionsniveaukode, mulige XOR-masker
En 8-farvet JAB-kode, der indeholder teksten "Velkommen til Wikipedia, den frie encyklopædi, som alle kan redigere."
Eksempler på 2D-farvekode med høj kapacitet (HCC2D): (a) 4-farvet HCC2D-kode og (b) 8-farvet HCC2D-kode.
Version 1
Funktionelle områder af QR-kode version 1
Version 40
IQR kode
Ordbøger og encyklopædier | |
---|---|
I bibliografiske kataloger |
|
Stregkoder | |
---|---|
Lineær |
|
2D |
|
Andet |
|
Relaterede artikler | Sammenligning af stregkodekarakteristika |
ISO standarder | |
---|---|
| |
1 til 9999 |
|
10000 til 19999 |
|
20000+ | |
Se også: Liste over artikler, hvis titler begynder med "ISO" |