Cod QR

Cod QR [a] ( ing.  Cod de răspuns  rapid - cod de răspuns rapid [2] ; abreviar cod QR ) - un tip de coduri de bare matrice (sau coduri de bare bidimensionale ), dezvoltat inițial pentru industria auto din Japonia . Masahiro Hara [3] este considerat creatorul său . Termenul în sine este o marcă înregistrată a companiei japoneze Denso . Un cod de bare este o etichetă optică care poate fi citită de mașină, care conține informații despre obiectul de care este atașat. Codul QR utilizează patru moduri de codare standardizate (numeric, alfanumeric, binar și kanji ) pentru a stoca datele în mod eficient; pot fi utilizate și extensii [4] .

Sistemul de coduri QR a devenit popular în afara industriei auto datorită lizibilității rapide și a capacității mai mari în comparație cu codurile de bare standard UPC . Extensiile includ urmărirea produselor, identificarea articolelor, urmărirea timpului, managementul documentelor și marketingul general [5] .

Un cod QR constă din pătrate negre aranjate într-o grilă pătrată pe un fundal alb, care pot fi citite de dispozitive de imagistică, cum ar fi o cameră și procesate folosind coduri Reed-Solomon până când imaginea este recunoscută corect. Datele necesare sunt apoi extrase din modelele care sunt prezente în componentele orizontale și verticale ale imaginii [5] .

Descriere

În zilele în care nu exista cod QR, scanarea componentelor se făcea la fabrica Denso cu diferite coduri de bare. Cu toate acestea, din cauza faptului că erau aproximativ 10, eficiența muncii a fost extrem de scăzută, iar muncitorii s-au plâns că s-au obosit repede și au cerut, de asemenea, să fie creat un cod care să poată conține mai multe informații decât un cod de bare obișnuit. Pentru a răspunde solicitării acestui lucrător, Denso-Wave și- a propus să creeze un cod care ar putea include mai multe informații pentru a permite scanarea de mare viteză a componentelor. [6] Pentru a face acest lucru, Masahiro Hara, care a lucrat în departamentul de dezvoltare, a început să dezvolte un nou cod din 1992. [7] Inspirația pentru codul QR a venit din jocul Go pe care l-a jucat Masahiro Hara în pauza de masă. [7] El a decis că scopul de proiectare nu era doar de a crește cantitatea de informații despre cod, ci și de a „citi cu acuratețe și rapiditate”, precum și de a face codul lizibil și rezistent la petele de ulei, murdărie și deteriorare, sugerând că va fi folosit în industriile respective. Codul QR a fost introdus de compania japoneză Denso-Wave în 1994, după o perioadă de dezvoltare de doi ani. [8] [9] [10] A fost proiectat având în vedere sistemul de producție Kanban ( just la timp ) de la Toyota pentru a fi utilizat în fabricile de piese auto și centrele de distribuție. Cu toate acestea, deoarece are o mare capacitate de detectare și corectare a erorilor și este realizat în sursă deschisă , a ieșit din domeniul restrâns al lanțurilor de aprovizionare de producție Toyota și a fost utilizat în alte domenii, ceea ce a condus la o scară largă. folosit nu numai în Japonia, ci în întreaga lume. Popularitatea uriașă a codurilor de bare în Japonia a dus la faptul că cantitatea de informații criptate în ele a încetat curând să se potrivească industriei. Japonezii au început să experimenteze noi moduri moderne de a codifica cantități mici de informații într-o imagine grafică. Codul QR a devenit unul dintre cele mai utilizate tipuri de cod 2D din lume. [11] Specificația codului QR nu descrie formatul datelor .

Spre deosebire de vechiul cod de bare, care este scanat cu un fascicul subțire, un cod QR este detectat de un senzor sau cameră ca o imagine bidimensională. Cele trei pătrate din colțurile imaginii și pătratele mai mici de sincronizare din întreg codul normalizează dimensiunea și orientarea imaginii, precum și unghiul la care senzorul este poziționat față de suprafața imaginii. Punctele sunt convertite în numere binare cu verificarea sumei de control .

Principalul avantaj al unui cod QR este recunoașterea sa ușoară prin echipamente de scanare , ceea ce face posibilă utilizarea lui în comerț , producție și logistică .

Deși desemnarea „cod QR” este o marcă înregistrată a DENSO Corporation, utilizarea codurilor nu este supusă niciunei redevențe și ele însele sunt descrise și publicate ca standarde ISO.

Cele mai populare vizualizatoare de coduri QR acceptă următoarele formate de date: URL , marcaj de browser , e- mail (cu linia de subiect), SMS către număr (cu linia de subiect), MeCard, vCard , coordonate geografice , conexiune la rețea Wi-Fi .

De asemenea, unele programe pot recunoaște fișiere GIF , JPG , PNG sau MID mai mici de 4 KB și text cifrat , dar aceste formate nu au câștigat popularitate. [13]

Aplicație

Codurile QR sunt cele mai comune în Japonia. Deja la începutul anului 2000, codurile QR au devenit atât de răspândite în țară încât puteau fi găsite pe un număr mare de afișe, pachete și mărfuri, unde astfel de coduri sunt aplicate aproape tuturor bunurilor vândute în magazine, sunt plasate în broșuri publicitare. și cărți de referință. Cu ajutorul unui cod QR, ei organizează chiar diverse concursuri și jocuri de rol . Operatorii de telefonie mobilă japonez de top lansează în comun telefoane mobile sub marca lor cu suport încorporat pentru recunoașterea codurilor QR [14] .

În prezent, codul QR este distribuit pe scară largă în țările asiatice, dezvoltându-se treptat în Europa și America de Nord. A primit cea mai mare recunoaștere în rândul utilizatorilor de comunicații mobile - prin instalarea unui program de recunoaștere, abonatul poate introduce instantaneu informații text în telefonul său, se poate conecta la o rețea Wi-Fi , trimite scrisori prin e-mail , adaugă contacte în agenda, urmărește link-uri web, trimite mesaje SMS etc.

Potrivit unui studiu realizat de comScore în 2011, 20 de milioane de rezidenți din SUA au folosit telefoane mobile pentru a scana coduri QR [15] .

În Japonia, Austria și Rusia, codurile QR sunt folosite și în cimitire și conțin informații despre decedat [16] [17] [18] .

În orașul chinez Hefei , bătrânilor au fost înmânate insigne cu coduri QR, datorită cărora trecătorii pot ajuta bătrânii rătăciți să se întoarcă acasă [19] .

Codurile QR sunt folosite activ de muzee [20] , precum și în turism, atât de-a lungul rutelor turistice, cât și la diverse obiecte. Plăcile din metal sunt mai durabile și mai rezistente la vandalism.

Utilizarea codurilor QR pentru a confirma vaccinările

Concomitent cu începerea vaccinării în masă împotriva COVID-19 în primăvara lui 2021, aproape toate țările lumii au început să elibereze documente de vaccinare - certificate digitale sau pe hârtie, pe care erau plasate coduri QR peste tot. Până la 9 noiembrie 2021, codurile QR pentru confirmarea vaccinării sau a bolii anterioare ( COVID-19 ) au fost introduse în 77 de entități constitutive ale Federației Ruse (în unele dintre ele, începerea codurilor QR a fost amânată pentru a oferi populației posibilitatea de a obține vaccinat). În Tatarstan , introducerea codurilor QR a dus la aglomerație la intrările de metrou și numeroase conflicte între pasageri și conducătorii de transport public [21] .

Informații tehnice generale

Cel mai mic cod QR (versiunea 1) are o dimensiune de 21×21 pixeli (excluzând marginile), cel mai mare (versiunea 40) este de 177×177 pixeli. Legatura intre numarul versiunii si numarul modulelor este simpla – codul QR al versiunii urmatoare este mai mare decat cel precedent cu strict 4 module pe orizontala si pe verticala.

Există patru codificări principale ale codurilor QR:

Există și „pseudo-codări”: specificarea modului în care sunt codificate datele, împărțirea unui mesaj lung în mai multe coduri etc.

Pentru a corecta erorile, se folosește codul Reed-Solomon cu un cuvânt de cod de 8 biți. Există patru niveluri de redundanță: 7, 15, 25 și 30%. Datorită corectării erorilor, este posibil să puneți o imagine pe un cod QR și să o lăsați lizibilă.

Pentru ca în cod să nu existe elemente care să încurce scanerul, zona de date este adăugată modulo 2 cu o mască specială. Un codificator care funcționează corect trebuie să încerce toate opțiunile de mască, să calculeze punctele de penalizare pentru fiecare conform unor reguli speciale și să o aleagă pe cea mai reușită.

Micro QR

Separat, există un micro cod QR cu o capacitate de până la 35 de cifre.

Eficiența stocării datelor în comparație cu codul QR tradițional este mult îmbunătățită prin utilizarea unei singure etichete de poziționare, comparativ cu trei etichete dintr-un cod QR convențional. Din acest motiv, se eliberează un anumit spațiu, care poate fi folosit pentru date. În plus, un cod QR necesită o marjă liberă în jurul codului care are o lățime de cel puțin 4 module (unitatea de construcție minimă pentru un cod QR), în timp ce un cod QR Micro necesită o marjă de două module lățime. Datorită eficienței mai mari a stocării datelor, dimensiunea codului QR Micro nu crește la fel de mult odată cu creșterea cantității de date codificate în comparație cu codul QR tradițional.

Prin analogie cu nivelurile de corectare a erorilor din codurile QR, codul Micro QR vine în patru versiuni, M1-M4 [22] [23] .

Versiunea codului Numărul de module Nivel de corectare a erorilor Numerele Cifre și litere Date binare Kanji
M1 unsprezece - 5 - - -
M2 13 L (7%) zece 6 - -
M (15%) opt 5 - -
M3 cincisprezece L (7%) 23 paisprezece 9 6
M (15%) optsprezece unsprezece 7 patru
M4 17 L (7%) 35 21 cincisprezece 9
M (15%) treizeci optsprezece 13 opt
Q (25%) 21 13 9 5

Codificarea datelor

Există mai multe moduri de a codifica informațiile într-un cod QR, iar alegerea unei metode specifice depinde de ce simboluri sunt folosite. Dacă sunt utilizate numai numere de la 0 la 9, atunci poate fi utilizată codificarea numerică, dacă, pe lângă numere, este necesară criptarea literelor alfabetului latin, spațiului și simbolurilor $%*+-./:, se utilizează codificarea alfanumerică. Există, de asemenea, codarea kanji, care este folosită pentru a cripta caracterele chinezești și japoneze, și codificarea octeților. Înainte de fiecare metodă de codificare, este creată o secvență de biți goală, care este apoi completată.

Codare digitală

Acest tip de codificare necesită 10 biți pe 3 caractere. Întreaga secvență de caractere este împărțită în grupuri de 3 cifre, iar fiecare grup (număr din trei cifre) este tradus într-un număr binar de 10 biți și adăugat la secvența de biți. Dacă numărul total de caractere nu este un multiplu de 3, atunci dacă la sfârșit rămân 2 caractere, numărul rezultat din două cifre este codificat cu 7 biți, iar dacă 1 caracter, atunci cu 4 biți.

De exemplu, există un șir „12345678” care trebuie codificat. Secvența este împărțită în numere: 123, 456 și 78, apoi fiecare număr este convertit în formă binară: 0001111011, 0111001000 și 1001110 și combinat într-un flux de biți: 000111101101110100101.

Codificare alfanumerice

Spre deosebire de codificarea digitală, sunt necesari 11 biți de informații pentru a codifica 2 caractere. Secvența de caractere este împărțită în grupuri de câte 2, în grup fiecare caracter este codificat conform tabelului „Valorile caracterelor în codificare alfanumerică”. Valoarea primului caracter se înmulțește cu 45, apoi se adaugă la acest produs valoarea celui de-al doilea caracter. Numărul rezultat este convertit într-un număr binar de 11 biți și adăugat la secvența de biți. Dacă a rămas un caracter în ultimul grup, atunci valoarea acestuia este codificată ca un număr de 6 biți. Luați în considerare un exemplu: „PROOF”. Împărțim succesiunea de caractere în grupuri: PR , OO , F . Găsim valorile corespunzătoare pentru simbolurile pentru fiecare grup (uitați-vă la tabel): PR  - (25.27), OO  - (24.24), F  - (15). Găsiți valorile pentru fiecare grup: 25 × 45 + 27 = 1152, 24 × 45 + 24 = 1104, 15 = 15. Convertiți fiecare valoare în binar: 1152 = 10010000000, 1104 = 1000101000 0, combinați 1 15 = 0 1 1 1 = 0. secvență: 1001000000010001010000001111.

Codificarea octetilor

Orice caracter poate fi codificat în acest fel. Fluxul de caractere de intrare este codificat în orice codificare (recomandat în UTF-8 ), apoi convertit în formă binară, după care este combinat într-un singur flux de biți.

De exemplu, cuvântul „Lumea” este codificat în Unicode (HEX) în UTF-8 : M - D09C; şi - D0B8; p - D180. Traducem fiecare valoare în sistem binar: D0 = 11010000, 9C = 10011100, D0 = 11010000, B8 = 10111000, D1 = 11010001 și 80 = 10000000; combinați într-un singur flux de biți: 11010000 10011100 11010000 10111000 11010001 10000000.

Kanji

Codarea hieroglifelor (precum și a altor simboluri) se bazează pe un tabel sau o listă de imagini cu hieroglife cu codurile lor percepute vizual. Un astfel de tabel se numește „set de caractere”. Pentru japoneză, două tabele de caractere sunt de importanță primordială: JIS 0208:1997 și JIS 0212:1990. Al doilea dintre ele servește ca o completare a primului. JIS 0208:1997 este împărțit în 94 de pagini a 94 de caractere. De exemplu, pagina 4 este hiragana, pagina 5 este katakana, 7 este chirilic, 16-43 este kanji de nivel 1 și 48-83 este kanji de nivel 2. Kanji de nivel 1 ("JIS daiichi suijun kanji") sunt ordonate după onm. Kanji-urile de nivel 2 ("JIS daini suijun kanji") sunt ordonate după tastă și în cadrul acestora după numărul de lovituri.

Adăugarea informațiilor de serviciu

După determinarea versiunii de cod și a codificării, este necesar să se determine nivelul de corectare a erorilor. Tabelul arată valorile maxime ale nivelurilor de corecție pentru diferite versiuni ale codului QR. Pentru a corecta erorile, se folosește codul Reed-Solomon cu un cuvânt de cod de 8 biți.

Masa. Cantitatea maximă de informații.
Rând — nivelul de corecție, coloană — numărul versiunii.

unu 2 3 patru 5 6 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17 optsprezece 19 douăzeci
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 treizeci 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

După determinarea nivelului de corectare a erorilor, este necesară adăugarea câmpurilor de serviciu, acestea fiind scrise înaintea secvenței de biți obținute după etapa de codare. Ele indică metoda de codificare și cantitatea de date. Valoarea câmpului metodei de codificare este formată din 4 biți, nu se modifică, dar servește ca semn care indică ce metodă de codificare este utilizată. Are următoarele semnificații:

Exemplu:

Exemplul anterior de codificare de octeți a codificat cuvântul „Lume”, rezultând următoarea secvență de cod binar:

11010000 10011100 11010000 10111000 11010001 10000000 care conține 48 de biți de informații.

Să fie necesar nivelul de corectare a erorilor H, care permite recuperarea a 30% din informațiile pierdute. Conform tabelului, versiunea optimă a codului QR este selectată din cantitatea maximă de informații (în acest caz, versiunea 1, care permite codificarea a 72 de biți de informații utile la nivelul de corectare a erorilor H).

Informații despre metoda de codificare: câmpul 0100 corespunde codării octeților.

Indicarea cantității de date (pentru codificare numerică și alfanumerică - numărul de caractere, pentru codificarea octeților - numărul de octeți): această secvență conține 6 octeți de date (în binar: 110).

Conform tabelului, lungimea necesară a numărului binar este determinată - 8 biți. Se adaugă zerourile lipsă: 00000110.

Versiunea 1-9 Versiunea 10-26 Versiunea 27-40
Digital 10 biți 12 biți 14 biți
Alfanumerice 9 biți 11 biți 13 biți
octet 8 biți 16 biți 16 biți

Toate informațiile sunt scrise în ordinea <metoda de codificare> <cantitatea de date> <date>, rezultând o secvență de biți:

0100 00000110 11010000 10011100 11010000 10111000 11010001 10000000.

Blocare

Secvența de octeți este împărțită în numărul de blocuri definit pentru versiunea și nivelul de corecție, care este dat în tabelul „Număr de blocuri”. Dacă numărul de blocuri este egal cu unul, atunci acest pas poate fi sărit. Și când versiunea este actualizată, se adaugă blocuri speciale.

În primul rând, se determină numărul de octeți (date) din fiecare dintre blocuri. Pentru a face acest lucru, trebuie să împărțiți întregul număr de octeți la numărul de blocuri de date. Dacă acest număr nu este un număr întreg, atunci trebuie să determinați restul diviziunii. Acest rest determină câte blocuri din toate sunt completate (astfel de blocuri, numărul de octeți în care este unul mai mult decât în ​​rest). Contrar așteptărilor, blocurile căptușite nu ar trebui să fie primele blocuri, ci ultimele. Apoi urmează umplerea secvențială a blocurilor.

Exemplu: pentru versiunea 9 și nivelul de corecție M, cantitatea de date este de 182 de octeți, numărul de blocuri este de 5. Împărțind numărul de octeți de date la numărul de blocuri, obținem 36 de octeți și 2 octeți în rest. Aceasta înseamnă că blocurile de date vor avea următoarele dimensiuni: 36, 36, 36, 37, 37 (octeți). Dacă nu ar mai fi rest, atunci toate cele 5 blocuri ar avea o dimensiune de 36 de octeți.

Blocul este complet umplut cu octeți din date. Când blocul curent este plin, coada trece la următorul. Octeții de date ar trebui să fie suficienți exact pentru toate blocurile, nici mai mult, nici mai puțin.

Crearea octeților de corecție

Procesul se bazează pe algoritmul Reed-Solomon . Acesta trebuie aplicat fiecărui bloc de informații din codul QR. Mai întâi, se determină numărul de octeți de corecție care trebuie creați și apoi, pe baza acestor date, se creează un polinom de generație. Numărul de octeți de corecție pe bloc este determinat de versiunea codului selectat și de nivelul de corectare a erorilor (dată în tabel).

Masa. Numărul de octeți de corecție per bloc
Rând — nivel de corecție, coloană — numărul versiunii.
unu 2 3 patru 5 6 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17 optsprezece 19 douăzeci 21 22 23 24 25 26 27 28 29 treizeci 31 32 33 34 35 36 37 38 39 40
L 7 zece cincisprezece douăzeci 26 optsprezece douăzeci 24 treizeci optsprezece douăzeci 24 26 treizeci 22 24 28 treizeci 28 28 28 28 treizeci treizeci 26 28 treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci
M zece 16 26 optsprezece 24 16 optsprezece 22 22 26 treizeci 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 optsprezece 26 optsprezece 24 optsprezece 22 douăzeci 24 28 26 24 douăzeci treizeci 24 28 28 26 treizeci 28 treizeci treizeci treizeci treizeci 28 treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci
H 17 28 22 16 22 28 26 26 24 28 24 28 22 24 24 treizeci 28 28 26 28 treizeci 24 treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci treizeci

Polinomul generator este determinat de numărul de octeți de corecție (dați în tabel).


Masa. Generarea de polinoame.
Numărul de octeți de corecție Polinom generator
7 87, 229, 146, 149, 238, 102, 21
zece 251, 67, 46, 61, 118, 70, 64, 94, 32, 45
13 74, 152, 176, 100, 86, 100, 106, 104, 130, 218, 206, 140, 78
cincisprezece 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
optsprezece 215, 234, 158, 94, 184, 97, 118, 170, 79, 187, 152, 148, 252, 179, 5, 98, 96, 153
douăzeci 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, 165,
24 229, 121, 135, 48, 211, 117, 251, 126, 159, 180, 169, 152, 192, 226, 228, 218, 111, 0, 117, 232, 8, 23, 2, 8
26 173, 125, 158, 2, 103, 182, 118, 17, 145, 201, 111, 28, 165, 53, 161, 21, 245, 142, 13, 102, 48, 2, 5, 2, 5 70
28 168, 223, 200, 104, 224, 234, 108, 180, 110, 190, 195, 147, 205, 27, 232, 201, 21, 43. 37, 9, 123
treizeci 41, 173, 145, 152, 216, 31, 179, 182, 50, 48, 110, 86, 239, 96, 222, 125, 42, 173, 226. 216, 238, 40, 192, 180

Calculul se face pe baza valorilor matricei de date inițiale și a valorilor polinomului generator și pentru fiecare pas al ciclului separat.

Combinarea blocurilor de informații

În această etapă, există două blocuri gata făcute: date inițiale și blocuri de corecție (de la pasul anterior), acestea trebuie combinate într-un flux de octeți. La rândul său, este necesar să se ia câte un octet de informații din fiecare bloc de date, începând cu primul și terminând cu ultimul. Când coada ajunge la ultimul bloc, se ia un octet din el și coada se mută la primul bloc. Aceasta continuă până când fiecare bloc rămâne fără octeți. Există excepții când blocul curent este omis dacă nu există octeți în el (o situație în care blocurile obișnuite sunt deja goale și mai există un octet în cele căptușite). Același lucru este valabil și pentru blocurile de octeți de corecție. Ele sunt luate în aceeași ordine ca și blocurile de date corespunzătoare.

Rezultatul este următoarea secvență de date: <1 octet al primului bloc de date><1 octet al celui de-al doilea bloc de date>…<1 octet al celui de-al n-lea bloc de date><al ​​doilea octet al primului bloc de date>…<(m — 1)al-lea octet al primului bloc de date>…<(m — 1)al-lea octet al celui de-al n-lea bloc de date><al-lea octet al celui-lea bloc de date>…<al-lea octet al al-lea bloc de date><1-al-lea octet al primului octet de corecție bloc><1-al octet al celui de-al doilea octet de corecție>…<1-al-al-al-al-al-lea octet al blocului al n-lea octet de corecție><al ​​doilea octet al 1-lea octet al blocului de corecție>…<al-lea octet al primului octet de corecție>…<al-lea octet al al n-lea bloc de octeți de corecție>.

Aici n este numărul de blocuri de date, m este numărul de octeți per bloc de date pentru blocurile obișnuite, l este numărul de octeți de corecție, k este numărul de blocuri de date minus numărul de blocuri de date captusite (cele cu 1 octet mai mult ).

Etapa de plasare a informațiilor în câmpul cod

Există câmpuri obligatorii pe codul QR, acestea nu poartă informații codificate, dar conțin informații pentru decodare. Aceasta:

precum și indentarea obligatorie în jurul codului . Captuseala este un cadru de module albe, latimea sa este de 4 module.

Modelele de căutare  sunt 3 pătrate în colțuri, cu excepția colțului din dreapta jos. Folosit pentru a determina locația codului. Ele constau dintr-un pătrat de module negre de 3x3, în jurul unui cadru de module albe cu lățimea de 1, apoi un alt cadru de module negre, tot cu lățimea de 1, și un gard din restul codului - jumătate de cadru de module albe cu lățimea de 1. În total, aceste obiecte au dimensiunea de 8×8 module.

Modele de aliniere  - apar, începând cu a doua versiune, sunt folosite pentru stabilizarea suplimentară a codului, plasarea mai precisă a acestuia în timpul decodării. Ele constau dintr-un modul negru, în jurul căruia se află un cadru de module albe cu lățimea de 1, iar apoi un alt cadru de module negre, tot cu lățimea de 1. Dimensiunea finală a modelului de aliniere este de 5x5. Există astfel de modele în poziții diferite, în funcție de numărul versiunii. Modelele de aliniere nu se pot suprapune cu modelele de căutare. Mai jos este un tabel cu locația modulului central negru, numerele sunt indicate acolo - acestea sunt coordonate posibile, atât pe orizontală, cât și pe verticală. Aceste module se află la intersecția unor astfel de coordonate. Numărătoarea inversă este din nodul din stânga sus, coordonatele sale sunt (0,0).

unu 2 3 patru 5 6 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17 optsprezece 19 douăzeci
- optsprezece 22 26 treizeci 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 treizeci 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

Bare de sincronizare  - folosite pentru a determina dimensiunea modulelor. Ele sunt situate într-un colț, se începe de la modelul de căutare din stânga jos (de la marginea cadrului negru, dar trecând pe cel alb), se merge în stânga sus și de acolo începe al doilea, după aceeași regulă , se termină în dreapta sus. Când este stratificat pe modulul de nivelare, acesta ar trebui să rămână neschimbat. Dungile de sincronizare arată ca linii de module alternate alb-negru.

Masca și codul nivelului de corecție  se află lângă modelele de căutare: sub dreapta sus (8 module) și în dreapta stângii jos (7 module), și sunt duplicate pe părțile laterale din stânga sus, cu un decalaj pe celula a 7-a - unde merg benzile de sincronizare, în plus codul orizontal în partea verticală, iar codul vertical în cea orizontală.

Cod versiune  - necesar pentru a determina versiunea codului. Ele sunt situate în stânga din dreapta sus și deasupra stângii jos și sunt duplicate. Ele sunt duplicate astfel - copia în oglindă a codului superior este rotită în sens invers acelor de ceasornic cu 90 de grade. Mai jos este un tabel de coduri, 1 - modul negru, 0 - alb.

Versiune 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17 optsprezece 19 douăzeci 21 22 23
Cod versiune 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 treizeci 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

Introducerea datelor

Spațiul liber rămas este împărțit în coloane cu 2 module lățime și informațiile sunt introduse acolo și o fac cu un „șarpe”. Mai întâi, primul bit de informație este introdus în pătratul din dreapta jos, apoi în vecinul său din stânga, apoi în cel care era deasupra primului și așa mai departe. Coloanele sunt umplute de jos în sus, apoi de sus în jos etc., iar de-a lungul marginilor, biții sunt umpluți de la extremitatea unei coloane până la extremitatea coloanei adiacente, care stabilește „șarpele” pe coloane. cu o direcție descendentă. Dacă informațiile nu sunt suficiente, atunci câmpurile sunt pur și simplu lăsate necompletate (module albe). În acest caz, pe fiecare modul se aplică o mască.

Vezi și

Note

  1. Specialistul în formarea cuvintelor M. A. Osadchiy sugerează utilizarea expresiei „cod grafic” ca echivalent în limba rusă [2] .
  1. Codurile QR de pe biletele de tren din China pot scurge informații personale . Arhivat din original pe 12 decembrie 2013. Preluat la 16 martie 2013.
  2. 1 2 Institutul Pușkin a propus să redenumească codul QR Copia de arhivă datată 10 februarie 2022 pe Wayback Machine // Radio Sputnik , 02.10.2022
  3. Istoria codului QR Această tehnologie a fost inventată de un inginer japonez în timp ce juca Go la serviciu . Preluat la 8 noiembrie 2021. Arhivat din original la 8 noiembrie 2021.
  4. Caracteristicile codului QR  . Valul Denso. Preluat la 27 august 2017. Arhivat din original la 29 ianuarie 2013.
  5. 1 2 QR Code Essentials  (engleză)  (link nu este disponibil) . Denso ADC (2011). Preluat la 28 august 2017. Arhivat din original la 12 mai 2013.
  6. Borko Furht. Manual de realitate augmentată . - Springer, 2011. - P. 341. - ISBN 9781461400646 .
  7. 1 2 ヒント は 休憩 の の 囲碁 囲碁 だっ た た 『『 qr コード 』開発 生み の 親 明かす「 特許 オープン に し た 」ワケ ワケテレビ放送 放送 放送 放送 放送 放送 放送 放送 放送 (29 noiembrie  2019). Arhivat la 30 septembrie 2020. Preluat la 29 noiembrie 2019.
  8. NHKビジネス特集 「QRコード」生みの親に聞いてみた Arhivat pe 20 mai 2019 la Wayback Machine朥190朥倴朥190
  9. Coduri de bare 2D . NHK World-Japonia (26 martie 2020). Consultat la 24 aprilie 2020. Arhivat din original pe 7 aprilie 2020.
  10. Site-ul web Denso-Wave . Consultat la 18 septembrie 2012. Arhivat din original la 16 octombrie 2012.
  11. Cod QR—Despre codul 2D (link descendent) . Valul Denso. Preluat la 27 mai 2016. Arhivat din original la 5 iunie 2016. 
  12. „Eugene Onegin” - acum și în codul QR (link inaccesibil) . Preluat la 23 noiembrie 2020. Arhivat din original la 27 noiembrie 2020. 
  13. Popularitatea codurilor QR . Preluat la 8 ianuarie 2022. Arhivat din original la 8 ianuarie 2022.
  14. Cod QR: utilizare . Preluat la 14 martie 2010. Arhivat din original la 6 iunie 2014.
  15. Leonid Bugaev. 2012, pagina 167
  16. Coduri QR în cimitire . Preluat la 24 aprilie 2020. Arhivat din original la 15 mai 2021.
  17. Coduri QR în cimitire (link inaccesibil) . Consultat la 24 octombrie 2012. Arhivat din original pe 6 iunie 2014. 
  18. Nepotul lui Yury Nikulin vorbește despre un memorial interactiv (link inaccesibil) . Patrimoniul digital (21 august 2017). Preluat la 27 august 2017. Arhivat din original la 23 august 2017. 
  19. Ecusoane cu coduri QR pentru a găsi drumul spre casă . Consultat la 15 octombrie 2014. Arhivat din original la 19 noiembrie 2014.
  20. Reclamă pentru Ziua Muzeelor ​​2012 . Preluat la 2 martie 2012. Arhivat din original la 24 aprilie 2014.
  21. Ce se știe despre proiectul de lege privind introducerea codurilor QR în locurile publice Copie de arhivă din 20 decembrie 2021 la Wayback Machine // TASS , 16.12.2021.
  22. Descrierea codului QR micro | Codurile QR de nouă generație . qrcc.ru. Preluat la 9 iunie 2018. Arhivat din original la 12 iunie 2018.
  23. Micro QR Code | qrcode.com | VAL  DENSO . www.qrcode.com Preluat la 31 mai 2019. Arhivat din original la 31 mai 2019.

Literatură

Link -uri