QR kód
Author
Albert FloresHTML odkazy QR kód (anglicky: QR code, slang. a nepříliš správné označení je také labyrinth, případně bludiště) je prostředek pro automatizovaný sběr dat. Zkratka vychází z anglického „Quick Response“, tedy kódy rychlé reakce. QR kód dokáže zakódovat mnohem větší množství dat, než klasický EAN čárový kód. Specifikace QR kódů je od června 2000 standardem ISO 18004. Standard byl upraven v roce 2006. Kódy jsou určeny pro počítačové zpracování, využívají velké množství technik předcházejících chybám interpretace. Kód přestává být čitelným až po odstranění či znečištění velké části kódu. Algoritmům rozpoznávání kódu nevadí otáčení kódu ani inverze barev, kód nevyžaduje velký kontrast barev. Kódy jsou definovány v 40 velikostních verzích (od 1 do 40). Kód verze v je tvořen čtvercovou mřížkou bodů rozměru 17 + 4·v. Kód se skládá z několika informačních vrstev, které slouží různým účelům a používají různé algoritmy.
Vlastnosti
Kapacita
QR kód může obsahovat písmena, čísla nebo japonské znaky kandži a je schopný pojmout různé množství informací podle obsahu:
Typ obsahu | Počet znaků |
---|---|
číslice | 7 089 |
písmena a číslice | 4 296 |
8bitová data | 2 953 |
kandži | 1 817 |
Popis
Geometrická vrstva
+more_Informace_o_verzi 2. _Informace_o_formátu 3. _Data_a_samoopravný_kód'>samoopravné kódy 4. Povinné vzory 5. Tichá zóna Praze 10 z roku 2012 QR kód použitý na čínské jízdence na vlak Tato vrstva slouží k přesné lokalizaci geometrických pozic, kde mají být čteny informační bity. Základem této vrstvy je jednobarevná „tichá zóna“ šířky alespoň 4 body ohraničující celý kód. O barvě tiché vrstvy se hovoří jako o bílé, a barvě k ní kontrastní jako o barvě černé, což koresponduje i s jejich grafickou reprezentací. Při dekódování je určena průměrná tmavost celého kódu a z hlediska rozpoznávání je každý bod buď světlejší, nebo tmavší. Rozměry bodů (základních čtverečků) jsou při dekódování primárně určovány podle čtverců velikosti 7×7 tzv. Finders které jsou ve třech rozích kódu. Uvnitř černého čtverce 7×7 je bílý obvod čtverce 5×5, vnitřek 3×3 je černý. Tyto čtverce jsou od zbytku kódu odděleny bílým proužkem, společně s tímto proužkem tak vytvářejí čtverce 8×8. Nejvíc vnější černý pixel prostředního Finder čtverce slouží jako souřadnice [0, 0]. Všechny verze kódu mají vyhrazen 6. řádek a sloupec na tzv. Timing vzor, v němž se mezi Finders střídají černé a bílé body (černá na lichých pozicích). Ve verzi 1 je geometrická vrstva tvořena pouze pomocí Finders a Timing. V ostatních verzích je použit jeden či více tzv. Alignments.
V modelu 1 QR kódů byly jako Alignments použity malé obdélníčky na krajích kódu. Model zřejmě nebyl dostatečně odolný vůči deformacím a byl nahrazen modelem 2, který se pak celosvětově rozšířil. +more Zde je popsán model 2 QR kódů. Alignment je obdobně jako Finder tvořen třemi soustřednými čtverci, nyní ale je vnitřní tvořen jediným černým bodem, okolo něj je obvod bílého čtverce 3×3 a okolo něj obvod černého čtverce 5×5. Pokud je horní celá část z (1 + v) / 7 označena A, tak verze v obsahuje A×A Alignments v pravidelných rozestupech konče Alignment se středem na souřadnici [(10 + 4·v), (10 + 4·v)] (tedy [-7, -7] od rohu bez Finder). Vzdálenosti středů sousedních Alignments je dán výrazem (((10 + 4·v) - 6) / A - 0,6) zaokrouhleným nahoru na sudé číslo. Kromě těchto Alignments jsou ve stejných sloupcích či řádkách přidány Alignments i na řádek 6 a sloupec 6, pokud tomu nebrání Finders. Na každý Timing pattern tak přibylo A - 1 Alignments. Od verze 7 výše je navíc číslo verze zabezpečené do délky 18 bitů zapsáno do 3×6 obdélníků dotýkajících se vnějších Finders směrem k souřadnici [0, 0]. Pořadí bitů je od nejmenší souřadnice po největší, po trojicích. Dosud je vzor stále symetrický vůči úhlopříčce procházející bodem [0, 0]. (Oněch 18 bitů vznikne jako BCH kód vzniklý doplněním binárního čísla verze v nejvyšších 6 bitech 12 bity tak, aby jednotlivé bity tvořily koeficienty polynomu nad bity, dávající zbytek nula vůči polynomu s koeficienty nad bity 1111100100101).
Při dekódování slouží jednotlivé Alignments na rozdělení kódu na jednotlivé podoblasti. V podoblastech jsou korigovány geometrické deformace nezávisle. +more I v případě prohnutého kódu či kódu sejmutého šikmo geometrická vrstva dostatečně přesně lokalizuje středy jednotlivých bodů.
. v Strana Plocha Finders Timing Verze A Alignments Zbývá Vzdálenosti alignments 1 21 441 192 10 0 0 0 239 - 2 25 625 192 18 0 1 25 390 - 3 29 841 192 26 0 1 25 598 - 4 33 1089 192 34 0 1 25 838 - 5 37 1369 192 42 0 1 25 1110 - 6 41 1681 192 50 0 1 25 1414 - 7 45 2025 192 58 36 2 140 1599 16 8 49 2401 192 66 36 2 140 1967 18 9 53 2809 192 74 36 2 140 2367 20 10 57 3249 192 82 36 2 140 2799 22 11 61 3721 192 90 36 2 140 3263 24 12 65 4225 192 98 36 2 140 3759 26 13 69 4761 192 106 36 2 140 4287 28 14 73 5329 192 114 36 3 305 4682 20 15 77 5929 192 122 36 3 305 5274 22 16 81 6561 192 130 36 3 305 5898 24 17 85 7225 192 138 36 3 305 6554 24 18 89 7921 192 146 36 3 305 7242 26 19 93 8649 192 154 36 3 305 7962 28 20 97 9409 192 162 36 3 305 8714 28 21 101 10201 192 170 36 4 520 9283 22 22 105 11025 192 178 36 4 520 10099 24 23 109 11881 192 186 36 4 520 10947 24 24 113 12769 192 194 36 4 520 11827 26 25 117 13689 192 202 36 4 520 12739 26 26 121 14641 192 210 36 4 520 13683 28 27 125 15625 192 218 36 4 520 14659 28 28 129 16641 192 226 36 5 785 15402 24 29 133 17689 192 234 36 5 785 16442 24 30 137 18769 192 242 36 5 785 17514 26 31 141 19881 192 250 36 5 785 18618 26 32 145 21025 192 258 36 5 785 19754 26 33 149 22201 192 266 36 5 785 20922 28 34 153 23409 192 274 36 5 785 22122 28 35 157 24649 192 282 36 6 1100 23039 24 36 161 25921 192 290 36 6 1100 24303 26 37 165 27225 192 298 36 6 1100 25599 26 38 169 28561 192 306 36 6 1100 26927 26 39 173 29929 192 314 36 6 1100 28287 28 40 177 31329 192 322 36 6 1100 29679 28
Informační vrstva
QR kód jenž v obou převráceních dává smysluplný výsledek (08331025600800024 či 42256900000801139), jedná se o kód nalezený po třech dnech hledání. +more Informace o masce a úrovni zabezpečení nutně musí obsahovat chyby v obou převráceních, v tomto nalezeném případě je v každém převrácení 8 datových chyb, ale zvolená nejvyšší úroveň zotavování se z chyb je dokáže opravit. V informační vrstvě každý černý bod kóduje binární jedničku a bílý bod binární nulu. V řádku 8 a sloupci 8 je vedle Finders uložena informace sloužící k dekódování informací hlavního datového toku. Hlavní datový tok vyplňuje dosud nevyužité body v následujícím pořadí: Začíná v rohu s maximální souřadnicí. Vždy postoupí o jedno vlevo, pak se vrátí a postoupí o 1 vertikálně. Začíná postupovat nahoru a po vyplnění krajních dvou sloupců sestupuje v následujících dvou sloupcích dolů. Takto střídá dvojice sloupců, dokud nenarazí na sloupec 6. Ten přeskočí a pokračuje v dvousloupci 4-5. Průchod končí v levém dolním rohu. Vzhledem k tomu, že v závislosti na kódovaných datech by mohly vznikat vzory matoucí geometrickou vrstvu, je hlavní datový tok maskován. Je vytvořeno 8 jednoduchých maskovacích vzorů a na příslušných souřadnicích je ukládaná negovaná hodnota. Negují se body dávající 0 v následujících výrazech:
Kód | Popis | Vzorec | Perioda |
---|---|---|---|
000 | Šachovnice | (x+y) mod 2 | 2×2 |
001 | Vodorovné pruhy | y mod 2 | 1×2 |
010 | Svislé pruhy ob 2 | x mod 3 | 3×1 |
011 | Diagonální pruhy ob 2 | (x+y) mod 3 | 3×3 |
100 | Šachovnice obdélníků 3×2 | (⌊y/2⌋+⌊x/3⌋) mod 2 | 6×4 |
101 | První velká dlaždice | (x*y) mod 3 + (x*y) mod 2 | 6×6 |
110 | Druhá velká dlaždice | ((x*y) mod 3 + (x*y)) mod 2 | 6×6 |
111 | Třetí velká dlaždice | ((x*y) mod 3 + (x+y)) mod 2 | 6×6 |
Datový tok obsahuje bytovou zprávu a zabezpečovací byty. U větších verzí je datová zpráva rozdělena do bloků, kde každý blok má samostatné zotavování se z chyb. +more Pro každou verzi jsou definovány 4 úrovně zabezpečení. Každá úroveň definuje, na jaké bloky se zpráva rozpadá a kolik zabezpečovacích bytů je pro bloky používáno (počet zabezpečovacích bytů je pro všechny bloky stejný, ale délky bloků se mohou o 1 byte lišit). Vzorec pro určení rozkladu na bloky se mi nepodařilo odvodit, pravděpodobně nebyl generován, ale byl určen ad hoc. Nezbývá než se řídit tabulkou dle specifikace (viz níže). Hlavní datový tok je tvořen prvním bytem prvního bloku, pak prvním bytem druhého bloku, prvním třetího …, pak druhým bytem prvního atd. Pokud nejsou všechny bloky stejně dlouhé, jsou nejprve bloky kratší (délky D) a nakonec bloky delší (D+1). V takovém případě po skončení D-tého bytu posledního bloku následuje poslední blok prvního bloku délky D+1. Až po ukončení bytové zprávy následují zabezpečovací byty počínaje prvním bytem prvního bloku, pak prvním druhého … až posledním bytem posledního bloku. Zbývá-li pro danou verzi počet bitů pro datový tok nedělitelný 8, je konec datového toku doplněn nulami (to že nejsou ukládány celé bloky, ale jsou bloky prokládány, zvyšuje odolnost proti lokálnímu zašpinění či chybějícímu kusu kódu, protože malé chyby ve více blocích problém nejsou na rozdíl od velké chyby v jednom bloku).
Informace uložená vedle Finders v osmém řádku a sloupci v 15 bitech pomocí BCH kódu dvěma bity určuje úroveň zabezpečení a třemi bity masku. Těchto 5 bitů v nejvyšších řádech je doplněno 10 bity tak, aby jednotlivé bity tvořily koeficienty polynomu nad bity, dávající zbytek nula vůči polynomu s koeficienty nad bity 10100110111 (minimální polynom s kořeny α1, …, α6 nad GF(24)). +more Výsledné bity jsou navíc maskovány s 101010000010010. Bity jsou uloženy zleva doprava od nejvýznamnějšího, ale shora dolů od nejméně významného. Bit na souřadnici 8×8 je součástí svislého zápisu. Vedle dolního levého Finder je nahoře vždy bezvýznamný černý bod.
Zabezpečení bloku pomocí K zabezpečovacích bytů je zajištěno Reedovými-Solomonovými kódy nad tělesem GF(28), kde prvky tělesa jsou ztotožněny s byty tak, že bitový zápis je vnímán jako koeficienty polynomu nad bity a tyto polynomy jsou brány modulo polynom s koeficienty bitově 100011101. Primitivním prvkem tohoto tělesa je α=2. +more Reedovy-Solomonovy kódy vzniknou doplněním polynomu, kde nejvyšší řády budou tvořeny zprávou, pomocí takových koeficientů, aby byl výsledný polynom dělitelný (x-α0)*(x-α1)*…*(x-α(K-1)).
Dle normy má být QR kód vytvořen tak, že vytvoříme 8 variant dle jednotlivých možností maskování a vybereme masku s nejmenší "nevhodností". Tato nevhodnost je definována čtyřmi ukazateli. +more První trestá jednobarevné úseky řádků či sloupců délky aspoň 5. Za úsek délky 5+k dává 3+k trestných bodů. Druhá trestá třemi body každý jednobarevný čtverec velikosti 2×2 (tedy například za každý Finder dává 4 krát 3 trestných bodů). Třetí trestá vzory WWWWBWBBBWB a BWBBBWBWWWW kde W značí bílou a B černou barvu. Vzor WWWWBWBBBWBWWWW je trestán jen jednou. Tyto vzory dostávají po 40 trestných bodech. Poslední ukazatel hodnotí odchylku od 50% naplnění černou barvou. Překročení o každých 5% je trestáno 10 body (poslední ukazatel zajišťuje, aby průměrná barva byla dostatečně vzdálena jak od bílé, tak černé barvy).
Při dekódování ale kontrola existence efektivnějšího zamaskování prováděna nebývá a nezvolení optimální masky nebývá důvodem pro prohlášení kódu za nevalidní.
v | Zbytek bodů | Formát a bod | Info Bitů | Do bytu | Info Bytů | L (kód 01) | M (kód 00) | Q (kód 11) | H (kód 10) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bloků | Max. blok | EC bytů | Celkem dat | Bloků | Max. +more blok | EC bytů | Celkem dat | Bloků | Max. blok | EC bytů | Celkem dat | Bloků | Max. blok | EC bytů | Celkem dat | ||||||
1 | 239 | 31 | 208 | 0 | 26 | 1 | 26 | 7 | 19 | 1 | 26 | 10 | 16 | 1 | 26 | 13 | 13 | 1 | 26 | 17 | 9 |
2 | 390 | 31 | 359 | 7 | 44 | 1 | 44 | 10 | 34 | 1 | 44 | 16 | 28 | 1 | 44 | 22 | 22 | 1 | 44 | 28 | 16 |
3 | 598 | 31 | 567 | 7 | 70 | 1 | 70 | 15 | 55 | 1 | 70 | 26 | 44 | 2 | 35 | 18 | 34 | 2 | 35 | 22 | 26 |
4 | 838 | 31 | 807 | 7 | 100 | 1 | 100 | 20 | 80 | 2 | 50 | 18 | 64 | 2 | 50 | 26 | 48 | 4 | 25 | 16 | 36 |
5 | 1110 | 31 | 1079 | 7 | 134 | 1 | 134 | 26 | 108 | 2 | 67 | 24 | 86 | 4 | 34 | 18 | 62 | 4 | 34 | 22 | 46 |
6 | 1414 | 31 | 1383 | 7 | 172 | 2 | 86 | 18 | 136 | 4 | 43 | 16 | 108 | 4 | 43 | 24 | 76 | 4 | 43 | 28 | 60 |
7 | 1599 | 31 | 1568 | 0 | 196 | 2 | 98 | 20 | 156 | 4 | 49 | 18 | 124 | 6 | 33 | 18 | 88 | 5 | 40 | 26 | 66 |
8 | 1967 | 31 | 1936 | 0 | 242 | 2 | 121 | 24 | 194 | 4 | 61 | 22 | 154 | 6 | 41 | 22 | 110 | 6 | 41 | 26 | 86 |
9 | 2367 | 31 | 2336 | 0 | 292 | 2 | 146 | 30 | 232 | 5 | 59 | 22 | 182 | 8 | 37 | 20 | 132 | 8 | 37 | 24 | 100 |
10 | 2799 | 31 | 2768 | 0 | 346 | 4 | 87 | 18 | 274 | 5 | 70 | 26 | 216 | 8 | 44 | 24 | 154 | 8 | 44 | 28 | 122 |
11 | 3263 | 31 | 3232 | 0 | 404 | 4 | 101 | 20 | 324 | 5 | 81 | 30 | 254 | 8 | 51 | 28 | 180 | 11 | 37 | 24 | 140 |
12 | 3759 | 31 | 3728 | 0 | 466 | 4 | 117 | 24 | 370 | 8 | 59 | 22 | 290 | 10 | 47 | 26 | 206 | 11 | 43 | 28 | 158 |
13 | 4287 | 31 | 4256 | 0 | 532 | 4 | 133 | 26 | 428 | 9 | 60 | 22 | 334 | 12 | 45 | 24 | 244 | 16 | 34 | 22 | 180 |
14 | 4682 | 31 | 4651 | 3 | 581 | 4 | 146 | 30 | 461 | 9 | 65 | 24 | 365 | 16 | 37 | 20 | 261 | 16 | 37 | 24 | 197 |
15 | 5274 | 31 | 5243 | 3 | 655 | 6 | 110 | 22 | 523 | 10 | 66 | 24 | 415 | 12 | 55 | 30 | 295 | 18 | 37 | 24 | 223 |
16 | 5898 | 31 | 5867 | 3 | 733 | 6 | 123 | 24 | 589 | 10 | 74 | 28 | 453 | 17 | 44 | 24 | 325 | 16 | 46 | 30 | 253 |
17 | 6554 | 31 | 6523 | 3 | 815 | 6 | 136 | 28 | 647 | 11 | 75 | 28 | 507 | 16 | 51 | 28 | 367 | 19 | 43 | 28 | 283 |
18 | 7242 | 31 | 7211 | 3 | 901 | 6 | 151 | 30 | 721 | 13 | 70 | 26 | 563 | 18 | 51 | 28 | 397 | 21 | 43 | 28 | 313 |
19 | 7962 | 31 | 7931 | 3 | 991 | 7 | 142 | 28 | 795 | 14 | 71 | 26 | 627 | 21 | 48 | 26 | 445 | 25 | 40 | 26 | 341 |
20 | 8714 | 31 | 8683 | 3 | 1085 | 8 | 136 | 28 | 861 | 16 | 68 | 26 | 669 | 20 | 55 | 30 | 485 | 25 | 44 | 28 | 385 |
21 | 9283 | 31 | 9252 | 4 | 1156 | 8 | 145 | 28 | 932 | 17 | 68 | 26 | 714 | 23 | 51 | 28 | 512 | 25 | 47 | 30 | 406 |
22 | 10099 | 31 | 10068 | 4 | 1258 | 9 | 140 | 28 | 1006 | 17 | 74 | 28 | 782 | 23 | 55 | 30 | 568 | 34 | 37 | 24 | 442 |
23 | 10947 | 31 | 10916 | 4 | 1364 | 9 | 152 | 30 | 1094 | 18 | 76 | 28 | 860 | 25 | 55 | 30 | 614 | 30 | 46 | 30 | 464 |
24 | 11827 | 31 | 11796 | 4 | 1474 | 10 | 148 | 30 | 1174 | 20 | 74 | 28 | 914 | 27 | 55 | 30 | 664 | 32 | 47 | 30 | 514 |
25 | 12739 | 31 | 12708 | 4 | 1588 | 12 | 133 | 26 | 1276 | 21 | 76 | 28 | 1000 | 29 | 55 | 30 | 718 | 35 | 46 | 30 | 538 |
26 | 13683 | 31 | 13652 | 4 | 1706 | 12 | 143 | 28 | 1370 | 23 | 75 | 28 | 1062 | 34 | 51 | 28 | 754 | 37 | 47 | 30 | 596 |
27 | 14659 | 31 | 14628 | 4 | 1828 | 12 | 153 | 30 | 1468 | 25 | 74 | 28 | 1128 | 34 | 54 | 30 | 808 | 40 | 46 | 30 | 628 |
28 | 15402 | 31 | 15371 | 3 | 1921 | 13 | 148 | 30 | 1531 | 26 | 74 | 28 | 1193 | 35 | 55 | 30 | 871 | 42 | 46 | 30 | 661 |
29 | 16442 | 31 | 16411 | 3 | 2051 | 14 | 147 | 30 | 1631 | 28 | 74 | 28 | 1267 | 38 | 54 | 30 | 911 | 45 | 46 | 30 | 701 |
30 | 17514 | 31 | 17483 | 3 | 2185 | 15 | 146 | 30 | 1735 | 29 | 76 | 28 | 1373 | 40 | 55 | 30 | 985 | 48 | 46 | 30 | 745 |
31 | 18618 | 31 | 18587 | 3 | 2323 | 16 | 146 | 30 | 1843 | 31 | 75 | 28 | 1455 | 43 | 55 | 30 | 1033 | 51 | 46 | 30 | 793 |
32 | 19754 | 31 | 19723 | 3 | 2465 | 17 | 145 | 30 | 1955 | 33 | 75 | 28 | 1541 | 45 | 55 | 30 | 1115 | 54 | 46 | 30 | 845 |
33 | 20922 | 31 | 20891 | 3 | 2611 | 18 | 146 | 30 | 2071 | 35 | 75 | 28 | 1631 | 48 | 55 | 30 | 1171 | 57 | 46 | 30 | 901 |
34 | 22122 | 31 | 22091 | 3 | 2761 | 19 | 146 | 30 | 2191 | 37 | 75 | 28 | 1725 | 51 | 55 | 30 | 1231 | 60 | 47 | 30 | 961 |
35 | 23039 | 31 | 23008 | 0 | 2876 | 19 | 152 | 30 | 2306 | 38 | 76 | 28 | 1812 | 53 | 55 | 30 | 1286 | 63 | 46 | 30 | 986 |
36 | 24303 | 31 | 24272 | 0 | 3034 | 20 | 152 | 30 | 2434 | 40 | 76 | 28 | 1914 | 56 | 55 | 30 | 1354 | 66 | 46 | 30 | 1054 |
37 | 25599 | 31 | 25568 | 0 | 3196 | 21 | 153 | 30 | 2566 | 43 | 75 | 28 | 1992 | 59 | 55 | 30 | 1426 | 70 | 46 | 30 | 1096 |
38 | 26927 | 31 | 26896 | 0 | 3362 | 22 | 153 | 30 | 2702 | 45 | 75 | 28 | 2102 | 62 | 55 | 30 | 1502 | 74 | 46 | 30 | 1142 |
39 | 28287 | 31 | 28256 | 0 | 3532 | 24 | 148 | 30 | 2812 | 47 | 76 | 28 | 2216 | 65 | 55 | 30 | 1582 | 77 | 46 | 30 | 1222 |
40 | 29679 | 31 | 29648 | 0 | 3706 | 25 | 149 | 30 | 2956 | 49 | 76 | 28 | 2334 | 68 | 55 | 30 | 1666 | 81 | 46 | 30 | 1276 |
Překlad mezi zprávou a bitovým obsahem
Bitová zpráva, která je předávána v informační vrstvě vzniká „komprimací“ originální zprávy. Zpráva (může být tvořena několika) samostatně kódovanými úseky. +more Každý úsek začíná čtyřbitovou identifikací režimu kódování. Nejkompaktnější je režim numerický (identifikace 1) umožňující zaznamenat dekadické číslice, s tím, že tři číslice (1000) kóduje pomocí 10 bitů (konec zprávy je kódován minimálním nutným počtem bitů). Následuje co do kompaktnosti režim alfanumerický (identifikace 2), umožňující kódovat i velká písmena, znaky $%*+-. /: a mezeru. Těchto 45 znaků je po dvojicích (2025) kódováno pomocí 11 bitů (konec zprávy je kódován minimálním nutným počtem bitů). Bytový režim (identifikace 4) ukládá osmice bitů, existují i další varianty. Za každou identifikací kódování je oznámena délka úseku zprávy kódovaná v daném režimu. Počet bitů nutných k určení této délky záleží jak na režimu, tak na verzi QR kódu (aby byla zajištěna dostatečná kapacita). Úseky zprávy na sebe bitově navazují. Pokud zpráva končí před vyčerpáním kapacity kódu, a zbývá více než byte, je doplněna čtveřicí nul (identifikace režimu konce zprávy), pak je doplněna nulami na celý byte a pak střídavě pomocí 0xEC11 dokud se byty do prostoru pro zprávu vejdou. Typicky je snahou zvolit co nejmenší verzi, do níž se zpráva vejde. Optimální délku bitové zprávy a způsob rozdělení na jednotlivé úseky je možno získat technikou dynamického programování (stačí si při postupném přidávání znaků pamatovat optimální délku bitového obsahu pro každý možný způsob kódování posledního úseku).
. v Numericky Alfanumericky Bytově Kanji 1-9 10 9 8 8 10-26 12 11 16 10 27-40 14 13 16 12
Další vrstvy
Norma definuje i způsob jak sdružovat několik QR kódů dohromady. Každý kód ví, o kolikátou z kolika částí se jedná.
Použití
Jsou používány standardy interpretace obsahu zpráv, kdokoli si může vytvořit vlastní QR kód a zveřejnit ho. A uživatelé pak snadno mohou tato data přečíst pomocí QR-čteček v mobilech, fotografickými aplikacemi.
Užití QR kódů je široké: * vizitky, ** telefonní čísla, ** zejména emailové adresy, * pozvánky do kalendáře, * příkazy k úhradě do banky, * faktury.
Sám QR-kód je jen pouhý free-text, pro usnadnění výměny dat a jejich parsování se zavádějí standardy: nové úzce zaměřené formáty souborů a k nim i nové MIME-typy. * kontakt - * událost do kalendáře - . +moreical * platba - . spayd, podle standardu Short Payment Descriptor * apod.
Stále jde o text, ten je však zúžen předepsaným formátem. Díky rozlišitelnosti přípon souborů nebo MIME-type lze pro data registrovat v OS příslušnou aplikaci, která má daná data/typ zpracovat, případně si tato data uživatelé načtou přímo z příslušné aplikace, kterou si za tím účelem sami nejen nainstalují, ba i přímo ručně spustí: * kontakty - mobilní aplikací na kontakty, ručně spuštěným importem nebo prostou aktivací "otevřením" souboru, * událost - v appce kalendáře, * QR platba - data o převodu ve formátu spayd přečtena z QR-kódu a rozparsována, fotoaparátem aktivovaným přímo z appky mobilního bankovnictví, a rovnou předvyplněna do formuláře k převodu z účtu na účet. +more (obdoba pro EPC QR kód v EU nebo platbu přes QR kód ve světě).
Bezpečnost
Falešné QR kódy představují riziko, protože je člověk nerozezná a může tak spustit škodlivý kód.
Odkazy
Reference
Související články
Externí odkazy
[url=http://www. proxima. +morenet/Digitalni-tisk/2D-carove-kody/]2D čárové kódy aneb QR kódy v digitálním tisku[/url], Proxima. net * [url=http://www. qrcode. com/en/index. html]QRcode. com[/url] - oficiální stránky firmy, která vytvořila QR kódy * wikiversity:Reed-Solomon codes for coders - tutoriál k QR a Reed Solomonovým kódům.
Kategorie:Kódování Kategorie:Identifikace Kategorie:Identifikátory