Aztécký kód
Author
Albert FloresUkázka aztéckého kódu Českých drah s aztéckým kódem Aztécký kód (anglicky ) je druh dvojrozměrného kódu, který si v roce 1995 patentovali Andrew Longacre a Robert Hussey, v roce 1997 ho zveřejnila Asociace pro automatickou identifikaci a mobilitu (AIM) a později se stal standardem Mezinárodní organizace pro normalizaci a Mezinárodní elektrotechnická komise ISO/IEC 24778:2008. Název je odvozen od Aztéků pro vnější podobnost kódu s půdorysem stupňovitých mezoamerických pyramid.
Aztécký kód je široce používán na jízdenkách v železniční dopravě, například ho začaly v roce 2012 současně s přechodem na termotisk používat České dráhy, od roku 2013 ho používá Železničná spoločnosť Slovensko.
Princip
Kód má čtvercový tvar, jehož jádro má podobu čtvercového terče. Jedná se o středový bod obklopený dvěma nebo třemi soustřednými čtverci, rozměry vnitřku tohoto „terče“ jsou 9×9 (kompaktní verze) nebo 13×13 pixelů (plná verze) a ze všech stran je ještě jedna řada pixelů pro parametry kódování, celé jádro má tedy rozměry 11×11 nebo 15×15 pixelů. +more V rozích této řady jsou především orientační značky, které umožňují rozpoznat otočení nebo zrcadlení. Dekódování začíná v plném rohu s třemi pixely a pokračuje po směru hodinových ručiček k rohu s dvěma pixely, pak k rohu s jedním pixelem, pak k rohu bez pixelu, a pak zpět k rohu se třemi pixely.
Soubor:Aztec Code with desc. png|Podoba jádra v kompaktní verzi: Červeně šrafované je jádro, zeleně políčka určená k uložení informace o kódování (28 políček - bitů) a modře rohy sloužící k správnému zorientování symbolu Soubor:Aztec_code_full_core. +morepng|Plná verze nabízí ke stejnému účelu 40 bitů.
Dále čtení pokračuje v hranaté spirále, přičemž datové čtverce jsou přidávány ve vrstvách po dvou, takže rozměry celého kódu jsou 15×15, 19×19, 23×23, a tak dále. Kompaktní verze kódu podporuje 1 až 4 datové vrstvy (rozměry 15×15 až 27×27), plná verze až 32 vrstev (rozměr 151×151 pixelů). +more To představuje 1914 bajtů binárních dat, nebo 3832 číslic, nebo 3067 písmen. Libovolně velká část datové oblasti může být použita pro samoopravné kódování pomocí Reedových-Solomonových kódů.
Postup kódování
Kódování do aztéckého kódu se skládá z následujících kroků: # Převedení zdrojové zprávy na řetězec bitů # Spočítání potřebné velikosti symbolu a parametrů, včetně určení velikosti kódového slova pro Reedův-Solomonův kód # vložení bitů do kódových slov Reedova-Solomonova kódu # Vycpání bity na hranici kódového slova # Připojení kontrolních kódových slov # Namotání zprávy do spirály kolem jádra
Převod do bitových řetězů je přitom prováděn od nejvýznačnějších bitů.
Znakové sady
Při zápisu dat existuje pět režimů: # Upper pro zápis velkých písmen # Lower pro zápis malých písmen # Mixed pro kontrolní znaky # Punct pro interpunkci atp. # Digit pro zápis číslic Při zápisu číslic mají znaky délku čtyři bity, v ostatních režimech pět bitů, jak ukazuje následující tabulka:
Upper | Lower | Mixed | Punct | Digit | Upper | Lower | Mixed | Punct |
---|---|---|---|---|---|---|---|---|
0 | P/S | P/S | P/S | FLG(n) | P/S | 16 | O | o |
1 | SP | SP | SP | CR | SP | 17 | P | p |
2 | A | a | ^A | CR LF | 0 | 18 | Q | q |
3 | B | b | ^B | . +more SP | 1 | 19 | R | r |
4 | C | c | ^C | , SP | 2 | 20 | S | s |
5 | D | d | ^D | : SP | 3 | 21 | T | t |
6 | E | e | ^E | 4 | 22 | U | u | |
7 | F | f | ^F | " | 5 | 23 | V | v |
8 | G | g | ^G | # | 6 | 24 | W | w |
9 | H | h | ^H | $ | 7 | 25 | X | x |
10 | I | i | ^I | % | 8 | 26 | Y | y |
11 | J | j | ^J | & | 9 | 27 | Z | z |
12 | K | k | ^K | ' | , | 28 | L/L | U/S |
13 | L | l | ^L | ( | . | 29 | M/L | M/L |
14 | M | m | ^M | ) | U/L | 30 | D/L | D/L |
15 | N | n | ^[ | U/S | 31 | B/S | B/S |
Hodnota B/S předznamenává zápis binárních bajtů, jehož podoba je určena následujícími pěti bity. Pokud jsou nenulové, pak udávají počet binárních bajtů, které budou následovat (1-32). +more Pokud jsou nulové, tak je počet binárních bajtů bez 31 určen z dalších 11 bitů. (Ve skutečnosti je pro 32-62 bajtů tedy prostorově úspornější přejít do režimu dvakrát).
Hodnota FLG(n) je následována tříbitovou hodnotou. Je-li nulová, pak je interpretováno jako FNC1 ze standardu GS1-128. +more Po hodnotách 1-6 následuje 1-6 číslic znamenajících patřičné kódy ECI.
Informace o kódování
Informace o kódování, zahrnuté na nejvnitřnějším okruhu spirály, zahrnují počet vrstev (uložený zmenšený o 1) a počet kódových slov samotné zprávy - zbylá kódová slova jsou určena pro samoopravný kód.
V případě kompaktní verze aztéckého kódu je počet vrstev jen dvoubitovou hodnotou a počet kódových slov šestibitovou, což dohromady dává osm bitů. V případě plného aztéckého kódu je počet vrstev uložen v pěti bitech a počet kódových slov v jedenácti bitech, což dává dohromady šestnáct bitů.
Tyto bity jsou rozděleny do dvou, respektive čtyř kódových půlslabik představujících prvky šestnáctiprvkového konečného tělesa, a je k nim přidáno pět, respektive šest kontrolních půlslabik Reedova-Solomonova kódu. Čímž vznikne 28, respektive 40 bitů do vnitřní kontrolní vrstvy kompaktního, respektive plného aztéckého kódu.
Počet vrstev zároveň určuje použitý Reedův-Solomonův kód, tedy jeho polynom a délku kontrolních slov, podle následující tabulky:
4 | GF(16) | x4+x+1 | kontrolní informace ve vnitřní vrstvě |
---|---|---|---|
6 | GF(64) | x6+x+1 | 1-2 vrstvy |
8 | GF(256) | x8+x5+x3+x2+1 | 3-8 vrstev |
10 | GF(1024) | x10+x3+1 | 9-22 vrstev |
12 | GF(4096) | x12+x6+x5+x3+1 | 23-32 vrstev |
Odkazy
Reference
Externí odkazy
[url=http://www. iso. +moreorg/iso/iso_catalogue/catalogue_tc/catalogue_detail. htm. csnumber=41548]Specifikace ISO/IEC 24778:2008[/url] (zpoplatněná) * [url=https://medium. com/watermarked-publication/two-dimensional-barcodes-robustness-analysis-through-the-example-of-qr-code-and-aztec-code-a68de47158ec]Medium. com, Two-dimensional barcodes robustness analysis through the example of QR code and Aztec code[/url] (srovnání QR a Aztéckého kódu).