QR code [a] ( angl. Quick response code - quick response code [2] ; zkr. QR code ) - typ maticových čárových kódů (neboli dvourozměrných čárových kódů ), původně vyvinutý pro automobilový průmysl v Japonsku . Za jeho tvůrce je považován Masahiro Hara [3] . Samotný termín je registrovanou ochrannou známkou japonské společnosti Denso . Čárový kód je strojově čitelný optický štítek obsahující informace o předmětu, ke kterému je připevněn. QR kód používá čtyři standardizované režimy kódování (numerický, alfanumerický, binární a kanji ) k efektivnímu ukládání dat; lze také použít rozšíření [4] .
Systém QR kódů se stal populární i mimo automobilový průmysl díky své rychlé čitelnosti a vyšší kapacitě oproti standardním čárovým kódům UPC . Mezi rozšíření patří sledování produktů, identifikace položek, sledování času, správa dokumentů a obecný marketing [5] .
QR kód se skládá z černých čtverců uspořádaných do čtvercové sítě na bílém pozadí, které lze číst zobrazovacími zařízeními, jako je kamera, a zpracovávat pomocí Reed-Solomonových kódů, dokud není obrázek správně rozpoznán. Potřebná data jsou pak extrahována ze vzorů, které jsou přítomny v horizontálních a vertikálních komponentách obrazu [5] .
V dobách, kdy neexistoval žádný QR kód, se skenování komponent provádělo v továrně Denso s různými čárovými kódy. Vzhledem k tomu, že jich bylo asi 10, byla ale efektivita práce extrémně nízká a pracovníci si stěžovali, že se rychle unaví, a také žádali o vytvoření kódu, který by mohl obsahovat více informací než běžný čárový kód. Aby bylo možné odpovědět na požadavek tohoto pracovníka, společnost Denso-Wave se rozhodla vytvořit kód, který by mohl obsahovat více informací umožňujících vysokorychlostní skenování komponent. [6] Za tímto účelem Masahiro Hara, který pracoval ve vývojovém oddělení, začal od roku 1992 vyvíjet nový kód. [7] Inspirací pro QR kód byla hra Go , kterou Masahiro Hara hrál během přestávky na oběd. [7] Rozhodl se, že cílem návrhu není pouze zvýšit množství informací o kódu, ale také „přesně a rychle přečíst“, a také učinit kód čitelným a odolným vůči olejovým skvrnám, nečistotám a poškození, což naznačuje, že bude použit v příslušných průmyslových odvětvích. QR kód zavedla japonská společnost Denso-Wave v roce 1994 po dvouletém vývojovém období. [8] [9] [10] Byl navržen s ohledem na výrobní systém Kanban ( just in time ) společnosti Toyota pro použití v továrnách na automobilové díly a distribučních centrech. Vzhledem k tomu, že má vysokou schopnost detekce a opravy chyb a je vyroben v otevřeném zdroji , přesunul se mimo úzký rozsah výrobních dodavatelských řetězců Toyota a začal se používat v jiných oblastech, což vedlo k tomu, že je nyní široce rozšířen. používá se nejen v Japonsku, ale po celém světě. Obrovská obliba čárových kódů v Japonsku vedla k tomu, že množství v nich zašifrovaných informací přestalo průmyslu brzy vyhovovat. Japonci začali experimentovat s novými moderními způsoby kódování malého množství informací do grafického obrázku. QR kód se stal jedním z nejpoužívanějších typů 2D kódu na světě. [11] Specifikace QR kódu nepopisuje formát dat .
Na rozdíl od starého čárového kódu, který je snímán tenkým paprskem, je QR kód detekován senzorem nebo kamerou jako dvourozměrný obraz. Tři čtverečky v rozích obrazu a menší časovací čtverce v celém kódu normalizují velikost a orientaci obrazu a také úhel, pod kterým je snímač umístěn k povrchu obrazu. Body jsou převedeny na binární čísla s ověřením kontrolního součtu .
Hlavní výhodou QR kódu je jeho snadné rozpoznání skenovacím zařízením, což umožňuje jeho použití v obchodě , výrobě a logistice .
Přestože je označení „QR kód“ registrovanou ochrannou známkou společnosti DENSO Corporation, použití kódů nepodléhá žádným licenčním poplatkům a samy o sobě jsou popsány a publikovány jako normy ISO.
Nejoblíbenější prohlížeče QR kódů podporují následující datové formáty: URL , záložka prohlížeče , E-mail (s předmětem), SMS na číslo (s předmětem), MeCard, vCard , zeměpisné souřadnice , připojení k síti Wi-Fi .
Některé programy také dokážou rozpoznat soubory GIF , JPG , PNG nebo MID menší než 4 KB a šifrovaný text , ale tyto formáty si nezískaly popularitu. [13]
QR kódy jsou nejrozšířenější v Japonsku. Již počátkem roku 2000 se QR kódy v zemi natolik rozšířily, že je bylo možné nalézt na velkém množství plakátů, balíčků a zboží, kde jsou tyto kódy aplikovány téměř na veškeré zboží prodávané v obchodech, jsou umístěny v reklamních sešitech a referenční knihy. S pomocí QR kódu dokonce organizují různé soutěže a hry na hrdiny . Přední japonští mobilní operátoři společně vydávají pod svou značkou mobilní telefony s vestavěnou podporou rozpoznávání QR kódů [14] .
V současné době je QR kód široce distribuován také v asijských zemích, postupně se rozvíjí v Evropě a Severní Americe. Největšího uznání se mu dostalo mezi uživateli mobilní komunikace - instalací programu pro rozpoznávání může účastník okamžitě zadávat textové informace do svého telefonu, připojit se k síti Wi-Fi , odesílat dopisy e-mailem , přidávat kontakty do adresáře, sledovat webové odkazy, posílání SMS zpráv atd.
Podle studie provedené společností comScore v roce 2011 použilo 20 milionů obyvatel USA mobilní telefony ke skenování QR kódů [15] .
V Japonsku, Rakousku a Rusku se QR kódy používají i na hřbitovech a obsahují informace o zesnulých [16] [17] [18] .
V čínském městě Che- fej se seniorům rozdávaly odznaky s QR kódy, díky nimž mohou kolemjdoucí pomoci ztraceným starým lidem vrátit se domů [19] .
QR kódy aktivně využívají muzea [20] , ale i cestovní ruch, a to jak podél turistických tras, tak u různých objektů. Plechy vyrobené z kovu jsou odolnější a odolnější vůči vandalismu.
Současně se zahájením hromadného očkování proti COVID-19 na jaře 2021 začaly téměř všechny země světa vydávat očkovací doklady – digitální nebo papírové certifikáty, na kterých byly všude umístěny QR kódy. Do 9. listopadu 2021 byly zavedeny QR kódy k potvrzení očkování nebo prodělané nemoci ( COVID-19 ) v 77 ustavujících subjektech Ruské federace (v některých z nich bylo spuštění QR kódů odloženo, aby obyvatelé měli možnost získat očkovaná). V Tatarstánu vedlo zavedení QR kódů k davům u vchodů do metra a četným konfliktům mezi cestujícími a průvodčími veřejné dopravy [21] .
Nejmenší QR kód (verze 1) má velikost 21×21 pixelů (bez okrajů), největší (verze 40) je 177×177 pixelů. Spojení mezi číslem verze a počtem modulů je jednoduché – QR kód další verze je větší než předchozí o striktně 4 moduly horizontálně i vertikálně.
Existují čtyři hlavní kódování QR kódů:
Existují také „pseudokódování“: určení způsobu kódování dat, rozdělení dlouhé zprávy do několika kódů atd.
K opravě chyb se používá Reed-Solomonův kód s 8bitovým kódovým slovem. Existují čtyři úrovně redundance: 7, 15, 25 a 30 %. Díky opravě chyb je možné vložit obrázek na QR kód a přesto jej nechat čitelný.
Aby v kódu nebyly žádné prvky, které by mohly skener zmást, je datová oblast doplněna modulo 2 se speciální maskou. Správně fungující kodér musí vyzkoušet všechny možnosti masky, vypočítat trestné body pro každou podle zvláštních pravidel a vybrat tu nejúspěšnější.
1. Úvod
2 - Struktura
3 - Kódování
4 - Úrovně
5 - Protokoly
Samostatně je k dispozici mikro QR kód s kapacitou až 35 číslic.
Efektivita ukládání dat ve srovnání s tradičním QR kódem je výrazně zlepšena použitím pouze jednoho pozičního tagu ve srovnání se třemi tagy v konvenčním QR kódu. Díky tomu se uvolní určitý prostor, který lze využít pro data. Navíc QR kód vyžaduje volný okraj kolem kódu, který je široký alespoň 4 moduly (minimální konstrukční jednotka pro QR kód), zatímco Micro QR kód vyžaduje okraj široký dva moduly. Vzhledem k větší efektivitě ukládání dat se velikost Micro QR kódu tolik nezvětšuje s nárůstem množství kódovaných dat oproti tradičnímu QR kódu.
Analogicky k úrovním opravy chyb v QR kódech se Micro QR kód dodává ve čtyřech verzích, M1-M4 [22] [23] .
Verze kódu | Počet modulů | Úroveň opravy chyb | Čísla | Čísla a písmena | Binární data | Kanji |
---|---|---|---|---|---|---|
M1 | jedenáct | - | 5 | - | - | - |
M2 | 13 | L (7 %) | deset | 6 | - | - |
M (15 %) | osm | 5 | - | - | ||
M3 | patnáct | L (7 %) | 23 | čtrnáct | 9 | 6 |
M (15 %) | osmnáct | jedenáct | 7 | čtyři | ||
M4 | 17 | L (7 %) | 35 | 21 | patnáct | 9 |
M (15 %) | třicet | osmnáct | 13 | osm | ||
Q (25 %) | 21 | 13 | 9 | 5 |
Existuje několik způsobů, jak zakódovat informace do QR kódu, a výběr konkrétní metody závisí na tom, jaké symboly jsou použity. Pokud se používají pouze čísla od 0 do 9, lze použít číselné kódování, pokud je kromě čísel nutné zašifrovat písmena latinské abecedy, mezery a symboly $%*+-./:, použije se alfanumerické kódování. Existuje také kódování kanji, které se používá k šifrování čínských a japonských znaků, a kódování bajtů. Před každou metodou kódování je vytvořena prázdná bitová sekvence, která je následně vyplněna.
Tento typ kódování vyžaduje 10 bitů na 3 znaky. Celá sekvence znaků je rozdělena do skupin po 3 číslicích a každá skupina (třímístné číslo) je přeložena na 10bitové binární číslo a přičtena k bitové sekvenci. Pokud celkový počet znaků není násobkem 3, pak pokud na konci zůstanou 2 znaky, je výsledné dvoumístné číslo zakódováno 7 bity a pokud 1 znak, tak 4 bity.
Například existuje řetězec „12345678“, který je třeba zakódovat. Sekvence je rozdělena na čísla: 123, 456 a 78, poté je každé číslo převedeno do binárního tvaru: 0001111011, 0111001000 a 1001110 a sloučeno do jednoho bitového toku: 000111101101110010101001.
Na rozdíl od digitálního kódování je pro zakódování 2 znaků potřeba 11 bitů informací. Posloupnost znaků je rozdělena do skupin po 2, ve skupině je každý znak zakódován podle tabulky "Hodnoty znaků v alfanumerickém kódování". Hodnota prvního znaku se vynásobí 45, poté se k tomuto produktu přičte hodnota druhého znaku. Výsledné číslo je převedeno na 11bitové binární číslo a přidáno do bitové sekvence. Pokud v poslední skupině zbývá jeden znak, je jeho hodnota zakódována jako 6bitové číslo. Zvažte příklad: "PROOF". Posloupnost znaků dělíme do skupin: PR , OO , F . Najdeme odpovídající hodnoty pro symboly pro každou skupinu (podívejte se na tabulku): PR - (25,27), OO - (24,24), F - (15). Najděte hodnoty pro každou skupinu: 25 × 45 + 27 = 1152, 24 × 45 + 24 = 1104, 15 = 15. Převeďte každou hodnotu na binární: 1152 = 10010000000, 1104 = 100010150 = 1000101100. sekvence: 1001000000010001010000001111.
Tímto způsobem lze zakódovat jakýkoli znak. Vstupní znakový proud je zakódován v libovolném kódování (doporučeno v UTF-8 ), poté převeden do binární podoby a poté je sloučen do jediného bitového proudu.
Například slovo "World" je zakódováno v Unicode (HEX) v UTF-8 : M - D09C; a - D0B8; p - D180. Každou hodnotu převedeme do binární soustavy: D0 = 11010000, 9C = 10011100, D0 = 11010000, B8 = 10111000, D1 = 11010001 a 80 = 10000000; sloučit do jednoho bitového toku: 11010000 10011100 11010000 10111000 11010001 10000000.
Kódování hieroglyfů (ale i dalších symbolů) je založeno na vizuálně vnímané tabulce nebo seznamu obrázků hieroglyfů s jejich kódy. Taková tabulka se nazývá „znaková sada“. Pro japonštinu mají hlavní význam dvě tabulky znaků: JIS 0208:1997 a JIS 0212:1990. Druhý z nich slouží jako doplněk k prvnímu. JIS 0208:1997 je rozdělena na 94 stran po 94 znacích. Například stránka 4 je hiragana, stránka 5 je katakana, 7 je azbuka, 16-43 je kanji úrovně 1 a 48-83 je kanji úrovně 2. Kanji úrovně 1 ("JIS daiichi suijun kanji") jsou seřazeny podle onm. Kanji úrovně 2 ("JIS daini suijun kanji") jsou seřazeny podle klíče a v rámci nich podle počtu úderů.
Po určení verze kódu a kódování je nutné určit úroveň opravy chyb. Tabulka ukazuje maximální hodnoty úrovní korekcí pro různé verze QR kódu. K opravě chyb se používá Reed-Solomonův kód s 8bitovým kódovým slovem.
Stůl. Maximální množství informací.
Řádek — úroveň opravy, sloupec — číslo verze.
jeden | 2 | 3 | čtyři | 5 | 6 | 7 | osm | 9 | deset | jedenáct | 12 | 13 | čtrnáct | patnáct | 16 | 17 | osmnáct | 19 | dvacet | |
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 | třicet | 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 |
Po určení úrovně opravy chyb je nutné přidat pole služeb, zapisují se před bitovou sekvenci získanou po fázi kódování. Označují způsob kódování a množství dat. Hodnota pole metody kódování se skládá ze 4 bitů, nemění se, ale slouží jako znak, který označuje, která metoda kódování je použita. Má následující významy:
Příklad:
Dřívější příklad bajtového kódování zakódoval slovo „World“, což vedlo k následující sekvenci binárního kódu:
11010000 10011100 11010000 10111000 11010001 10000000 obsahující 48 bitů informací.
Nechť je požadována úroveň opravy chyb H, která umožňuje obnovit 30 % ztracených informací. Podle tabulky se z maximálního množství informací vybere optimální verze QR kódu (v tomto případě verze 1, která umožňuje zakódovat 72 bitů užitečných informací na úrovni opravy chyb H).
Informace o metodě kódování: pole 0100 odpovídá bajtovému kódování.
Údaj o množství dat (pro číselné a alfanumerické kódování - počet znaků, pro bytové kódování - počet bytů): tato sekvence obsahuje 6 bytů dat (v binárním formátu: 110).
Podle tabulky se určí potřebná délka binárního čísla - 8 bitů. Doplní se chybějící nuly: 00000110.
Verze 1-9 | Verze 10-26 | Verze 27-40 | |
---|---|---|---|
Digitální | 10 bitů | 12 bitů | 14 bitů |
Alfanumerické | 9 bitů | 11 bit | 13 bit |
Byte | 8 bitů | 16 bit | 16 bit |
Všechny informace jsou zapsány v pořadí <způsob kódování> <množství dat> <data>, výsledkem je sekvence bitů:
0100 00000110 11010000 10011100 11010000 10111000 11010001 10000000.
Posloupnost bajtů je rozdělena na počet bloků definovaných pro verzi a úroveň opravy, který je uveden v tabulce "Počet bloků". Pokud je počet bloků roven jednomu, pak lze tento krok přeskočit. A když je verze upgradována, jsou přidány speciální bloky.
Nejprve se určí počet bajtů (dat) v každém z bloků. Chcete-li to provést, musíte vydělit celý počet bajtů počtem datových bloků. Pokud toto číslo není celé číslo, musíte určit zbytek dělení. Tento zbytek určuje, kolik bloků ze všech je vycpáno (takové bloky, jejichž počet je o jeden více než ve zbytku). Navzdory očekávání by polstrované bloky neměly být prvními bloky, ale až posledními. Poté přichází na řadu sekvenční plnění bloků.
Příklad: pro verzi 9 a úroveň opravy M je objem dat 182 bajtů, počet bloků je 5. Podělením počtu datových bajtů počtem bloků získáme 36 bajtů a 2 bajty jako zbytek. To znamená, že datové bloky budou mít následující velikosti: 36, 36, 36, 37, 37 (bajtů). Pokud by nebyl žádný zbytek, pak by všech 5 bloků mělo velikost 36 bajtů.
Blok je zcela zaplněn bajty z dat. Když je aktuální blok plný, fronta se přesune na další. Bajty dat by měly stačit přesně pro všechny bloky, ne více ani méně.
Proces je založen na Reed-Solomonově algoritmu . Musí být aplikován na každý blok informací v QR kódu. Nejprve se určí počet korekčních bajtů, které mají být vytvořeny, a poté se na základě těchto dat vytvoří generační polynom. Počet opravných bajtů na blok je určen vybranou verzí kódu a úrovní opravy chyb (uvedena v tabulce).
Stůl. Počet opravných bytů na blokjeden | 2 | 3 | čtyři | 5 | 6 | 7 | osm | 9 | deset | jedenáct | 12 | 13 | čtrnáct | patnáct | 16 | 17 | osmnáct | 19 | dvacet | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | třicet | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | |
L | 7 | deset | patnáct | dvacet | 26 | osmnáct | dvacet | 24 | třicet | osmnáct | dvacet | 24 | 26 | třicet | 22 | 24 | 28 | třicet | 28 | 28 | 28 | 28 | třicet | třicet | 26 | 28 | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet |
M | deset | 16 | 26 | osmnáct | 24 | 16 | osmnáct | 22 | 22 | 26 | třicet | 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 | osmnáct | 26 | osmnáct | 24 | osmnáct | 22 | dvacet | 24 | 28 | 26 | 24 | dvacet | třicet | 24 | 28 | 28 | 26 | třicet | 28 | třicet | třicet | třicet | třicet | 28 | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet |
H | 17 | 28 | 22 | 16 | 22 | 28 | 26 | 26 | 24 | 28 | 24 | 28 | 22 | 24 | 24 | třicet | 28 | 28 | 26 | 28 | třicet | 24 | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet | třicet |
Generující polynom je určen počtem korekčních bytů (uvedených v tabulce).
Počet opravných bytů | Generování polynomu |
---|---|
7 | 87, 229, 146, 149, 238, 102, 21 |
deset | 251, 67, 46, 61, 118, 70, 64, 94, 32, 45 |
13 | 74, 152, 176, 100, 86, 100, 106, 104, 130, 218, 206, 140, 78 |
patnáct | 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 |
osmnáct | 215, 234, 158, 94, 184, 97, 118, 170, 79, 187, 152, 148, 252, 179, 5, 98, 96, 153 |
dvacet | 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, 23165, |
24 | 229, 121, 135, 48, 211, 117, 251, 126, 159, 180, 169, 152, 192, 226, 228, 218, 111, 0, 117, 2 129 2, 117, 2 129 2, 23 |
26 | 173, 125, 158, 2, 103, 182, 118, 17, 145, 201, 111, 28, 165, 53, 161, 21, 245, 142, 13, 102, 23, 48, 102, 23, 48 70 |
28 | 168, 223, 200, 104, 224, 234, 108, 180, 110, 190, 195, 147, 205, 27, 232, 201, 21, 43, 245, 24, 1, 81, 245, 24, 129, 25 37, 9, 123 |
třicet | 41, 173, 145, 152, 216, 31, 179, 182, 50, 48, 110, 86, 239, 96, 222, 125, 42, 173, 226, 193, 71 30, 224 216, 238, 40, 192, 180 |
Výpočet se provádí na základě hodnot pole počátečních dat a hodnot generujícího polynomu a pro každý krok cyklu samostatně.
V této fázi jsou připraveny dva bloky: počáteční datové a korekční bloky (z předchozího kroku), je třeba je spojit do jednoho byte streamu. Na druhé straně je nutné vzít jeden bajt informací z každého datového bloku, počínaje prvním a konče posledním. Když fronta dosáhne posledního bloku, je z něj odebrán bajt a fronta se přesune do prvního bloku. Toto pokračuje, dokud každému bloku nedojdou bajty. Existují výjimky, kdy je aktuální blok přeskočen, pokud v něm nejsou žádné bajty (situace, kdy jsou běžné bloky již prázdné a v osazených je stále jeden bajt). Totéž platí pro bloky opravných bajtů. Jsou přijímány ve stejném pořadí jako odpovídající datové bloky.
Výsledkem je následující datová sekvence: <1 bajt 1. bloku dat><1 bajt 2. bloku dat>…<1 bajt n. bloku dat><2 bajt dat 1. bloku>…<(m — 1)-tý bajt 1. datového bloku>…<(m — 1)-tý bajt n-tého datového bloku><m-tý bajt k-tého datového bloku>…<m-tý bajt n-tého datového bloku><1. bajt 1. korekčního bajtu blok><1. bajt 2. korekčního bajtového bloku>…<1. bajt n-tého korekčního bajtového bloku><2. bajt 1. korekční bajtový blok>…<l-tý bajt 1. korekčního bajtového bloku>…<l-tý bajt z n-tý korekční bajtový blok>.
Zde n je počet datových bloků, m je počet bajtů na datový blok pro běžné bloky, l je počet korekčních bajtů, k je počet datových bloků mínus počet vycpaných datových bloků (ty, které mají o 1 bajt více ).
Na QR kódu jsou povinná pole, nenesou zakódované informace, ale obsahují informace pro dekódování. To:
stejně jako povinné odsazení kolem kódu . Výplň je rám z bílých modulů, její šířka je 4 moduly.
Vyhledávací vzory jsou 3 čtverce v rozích kromě pravého dolního rohu. Používá se k určení umístění kódu. Skládají se z čtverce 3x3 černých modulů, kolem rámečku z bílých modulů o šířce 1, pak dalšího rámečku z černých modulů také o šířce 1 a plotu ze zbytku kódu - půl rámečku bílé moduly o šířce 1. Celkem mají tyto objekty velikost 8×8 modulů.
Zarovnávací vzory - objevují se od druhé verze, slouží k dodatečné stabilizaci kódu, jeho přesnějšímu umístění při dekódování. Skládají se z 1 černého modulu, kolem kterého je rámeček z bílých modulů o šířce 1 a dále z dalšího rámečku z černých modulů, rovněž o šířce 1. Výsledný rozměr zarovnávacího vzoru je 5x5. Takové vzory jsou na různých pozicích v závislosti na čísle verze. Vzory zarovnání se nemohou překrývat vzory vyhledávání. Níže je tabulka umístění centrálního černého modulu, jsou tam uvedena čísla - to jsou možné souřadnice, horizontální i vertikální. Tyto moduly stojí na průsečíku takových souřadnic. Odpočítávání je od levého horního uzlu, jeho souřadnice jsou (0,0).
jeden | 2 | 3 | čtyři | 5 | 6 | 7 | osm | 9 | deset | jedenáct | 12 | 13 | čtrnáct | patnáct | 16 | 17 | osmnáct | 19 | dvacet |
- | osmnáct | 22 | 26 | třicet | 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 | třicet | 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 |
Synchronizační pruhy – slouží k určení velikosti modulů. Jsou umístěny v rohu, jeden začíná od levého dolního vyhledávacího vzoru (od okraje černého rámečku, ale po překročení bílého), jde vlevo nahoře a odtud druhý začíná podle stejného pravidla. , končí vpravo nahoře. Při vrstvení na nivelační modul by měl zůstat nezměněn. Synchronizační pruhy vypadají jako linie střídajících se černých a bílých modulů.
Kód masky a úrovně korekce se nachází vedle vyhledávacích vzorů: vpravo nahoře (8 modulů) a vpravo dole vlevo (7 modulů) a jsou duplikovány po stranách vlevo nahoře s mezerou na 7. buňka - kam jdou synchronizační pásma, navíc horizontální kód do vertikální části a vertikální kód do horizontální.
Kód verze – potřebný k určení verze kódu. Jsou umístěny vlevo od pravého horního rohu a nad levým dolním okrajem a jsou duplikovány. Jsou duplikovány takto - zrcadlová kopie horního kódu je otočena proti směru hodinových ručiček o 90 stupňů. Níže je tabulka kódů, 1 - černý modul, 0 - bílý.
Verze | 7 | osm | 9 | deset | jedenáct | 12 | 13 | čtrnáct | patnáct | 16 | 17 | osmnáct | 19 | dvacet | 21 | 22 | 23 |
Kód verze | 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 | třicet | 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 |
Zbývající volné místo je rozděleno do sloupců o šířce 2 modulů a tam se zadávají informace a dělají to „hadem“. Nejprve se první bit informace zadá do pravého dolního čtverce, poté do jeho levého souseda, poté do toho, který byl nad prvním, a tak dále. Sloupce se plní zdola nahoru a pak shora dolů atd. a podél okrajů se plní bity od krajního bitu jednoho sloupce k krajnímu bitu sousedního sloupce, což nastavuje „hada“ na sloupcích. se směrem dolů. Pokud informace nestačí, pak se pole jednoduše nechají prázdná (bílé moduly). V tomto případě je maska aplikována na každý modul.
Popis polí QR kódu.
Kód masky a úrovně korekce, možné masky XOR
8barevný kód JAB obsahující text „Vítejte ve Wikipedii, bezplatné encyklopedii, kterou může upravovat kdokoli“.
Příklady vysokokapacitního 2D barevného kódu (HCC2D): (a) 4barevný kód HCC2D a (b) 8barevný kód HCC2D.
Verze 1
Funkční oblasti QR kódu verze 1
Verze 40
IQR kód
![]() | |
---|---|
V bibliografických katalozích |
|
Čárové kódy | |
---|---|
Lineární |
|
2D |
|
jiný |
|
Související články | Porovnání charakteristik čárového kódu |
ISO | normy|
---|---|
| |
1 až 9999 |
|
10 000 až 19999 |
|
20 000+ | |
Viz také: Seznam článků, jejichž názvy začínají na „ISO“ |