Ацтек коды - Aztec Code

Кодтау: «Бұл Википедияға арналған ацтектер символының мысалы.»

Ацтек коды түрі болып табылады 2D штрих-код ойлап тапқан Эндрю Лонгакр, кіші. және Роберт Хусси 1995 ж.[1] Код жарияланды AIM, Inc. 1997 жылы. Ацтектер коды патенттелген болса да,[1] бұл патент ресми түрде жалпыға қол жетімді болды.[2] Ацтек коды сонымен қатар ISO / IEC 24778: 2008 стандарты ретінде шығарылады, орталық іздегіштің үлгісінің ұқсастықпен аталған Ацтек пирамидасы, Ацтек коды басқа матрицалық штрих-кодтарға қарағанда аз орынды пайдалану мүмкіндігіне ие, өйткені ол қоршаған бос «тыныш аймақты» қажет етпейді.

Құрылым

Символ төртбұрышты торға салынған, оның ортасында кодты орналастыру үшін бұқа көзінің суреті салынған. Деректер кодталған бұқалар көзінің айналасындағы концентрлі шаршы сақиналарда. Орталық бұқалар 9 × 9 немесе 13 × 13 құрайды пиксел, және 11 × 11 немесе 15 × 15 квадраттарынан тұратын «ядроны» құрайтын кодтаудың негізгі параметрлерін кодтайтын бір пиксель қатары. Деректер «қабаттарға» қосылады, әрқайсысы екі сақинадан тұрады, жалпы өлшемдері 15 × 15, 19 × 19, 23 × 23 және т.б.

Ядроның бұрыштарында бағдар белгілері бар, олар кодты айналдырғанда немесе шағылыстырғанда оқуға мүмкіндік береді. Декодтау бұрыштан үш қара пиксельден басталады және сағат тілімен екі, бір және нөлдік қара пикселдермен бұрыштарға дейін жүреді. Орталық ядродағы айнымалы пикселдер өлшемді кодтайды, сондықтан кодтың шекарасын бос «тыныш аймақпен» белгілеудің қажеті жоқ, дегенмен кейбір штрих-кодтар оқырмандарына қажет.

Ықшам Aztec кодының ядросы 1 × 4 қабаттармен қоршалып, 15 × 15-тен (13 цифрға немесе 12 әріпке арналған бөлме) 27 × 27 дейінгі белгілерді шығарады. Ақпараттың бір байтын кодтайтын арнайы 11 × 11 «рун» қосымша бар. Толық ядросы 32 қабатқа, 151 × 151 пикселге дейін қолдайды, олар 3832 цифрларды, 3067 әріптерді немесе 1914 байтты деректерді кодтай алады.

Белгілердің қандай бөлігі пайдаланылмайды, негізгі мәліметтер үшін қолданылады Рид-Сүлеймен қатесін түзету және бөлу толығымен конфигурацияланған, 1 деректер сөзінің және 3 тексеру сөзінің шектері арасында. Ұсынылатын сөздер саны - символ сыйымдылығының 23% және 3 кодты сөз.[3]

Aztec Code әр түрлі принтер технологияларымен оқылатын кодтар шығаруы керек. Ол ұялы телефондар мен басқа да мобильді құрылғылардың дисплейлеріне өте ыңғайлы.

Кодтау

Кодтау процесі келесі қадамдардан тұрады:

  1. Бастапқы хабарламаны бит жолына түрлендіру
  2. Рид-Сүлейменнің кодтық сөзінің өлшемін анықтайтын қажетті символдық өлшем мен режим туралы хабарламаны есептеу
  3. Бит-фарш хабарлама Рид-Сүлейменнің кодтық сөздеріне жіберілді
  4. Хабарламаны код сөзінің шекарасына енгізу
  5. Тексерудің кодтық сөздерін қосу
  6. Толық хабарламаны спираль түрінде өзек айналасында орналастыру

Бит жолдары мен басқа формалар арасындағы барлық түрлендіру. Сәйкес орындалады үлкен ендиан (ең маңызды бит бірінші) конвенция.

Таңбалар жиынтығы

Барлық 8-биттік мәндерді кодтауға болады, оған екі шығу коды:

  • FNC1, қолданбаның идентификаторының болуын белгілеу үшін қолданылатын қашу белгісі, сияқты GS1-128 стандартты.
  • ECI, 6 саннан кейін қашу Арнаның кеңейтілген түсіндірмесі келесі байттарды түсіндіру үшін қолданылатын таңбалар жиынын анықтайтын код.

Әдепкі бойынша 0–127 кодтары ANSI X3.4 сәйкес түсіндіріледі (ASCII ), және 128–255 сәйкес түсіндіріледі ISO 8859-1: Латын әліпбиі № 1. Бұл ECI 000003 сәйкес келеді.

Байттар 4 және 5 биттік кодтарға, ағымдағы декодтау режиміне негізделген, режимдерді ауыстыру үшін ауысым мен ысырмалы кодтармен аударылады. Осы жолмен қол жетімді емес байт мәндерін жалпы «екілік жылжыту» кодын пайдаланып кодтауға болады, содан кейін ұзындық және бірқатар 8 биттік кодтар болады.

Режимдерді өзгерту үшін, а ауысым тек келесі кодтың интерпретациясына әсер етеді, ал а ысырма барлық келесі кодтарға әсер етеді. Көптеген режимдерде 5 биттік кодтар қолданылады, ал Digit режимінде 4 биттік кодтар қолданылады.

Ацтек кодының таңбаларын кодтау
КодРежимКодРежим
ЖоғарғыТөменАраласНүктеЦифрЖоғарғыТөменАраласНүкте
0P / SP / SP / SFLG (n)P / S16Oo^\+
1СПСПСПCRСП17Pб^],
2Aа^ ACR LF018Qq^^-
3Bб^ B. СП119Rр^_.
4Cв^ C, SP220Sс@/
5Д.г.^ Д.: SP321Тт\:
6Ee^ E!422Uсен^;
7Ff^ F"523Vv_<
8Gж^ Г.#624Ww`=
9Hсағ^ H$725Xх|>
10Менмен^ I%826Yж~?
11Джj^ Дж&927Зз^?[
12Қк^ Қ',28L / LU / SL / L]
13Lл^ Л.(.29M / LM / LU / L{
14Мм^ М)U / L30D / LD / LP / L}
15Nn^[*U / S31B / SB / SB / SU / L
  • Бастапқы режим «жоғарғы»
  • x / S = бір таңба үшін x режиміне ауысу; B / S = 8 биттік екілікке ауысу
  • x / L = келесі таңбалар үшін x режиміне ысыру
  • 2-5 пунктуалды кодтары әрқайсысы екі байтты кодтайды
  • Кестеде ASCII символдары келтірілген, бірақ ол ASCII емес таңба оны қолданған болса да, байт мәндері кодталады

B / S (екілік жылжу) 5-биттік ұзындықпен жалғасады. Егер нөлге тең болмаса, бұл 1-31 биттік 8-биттік байттардың болатынын көрсетеді. Егер нөл болса, ұзындықтың 11 биті келесі байттардың санын 31-ден кем кодтайды. (32-62 байт үшін екі 5-биттік жылжудың бірізділігі 11-биттен гөрі ықшам болатынын ескеріңіз.) Екілік қатардың соңында, алдыңғы режим жалғасады.

FLG (n) кейін 3-разряд болады n мәні. n= 0 FNC1 кодтайды. n= 1-6-дан кейін 1-6 цифрларымен келеді (цифрлық режимде), олар 6-разрядты ECI идентификаторын жасау үшін нөлге толтырылады. n= 7 резервтелген және қазіргі уақытта заңсыз.

Режим туралы хабарлама

Режимдік хабарлама қабаттар санын кодтайды (L бүтін сан ретінде кодталған қабаттар L−1) және кодтық сөздердің саны (Д. кодтық сөздер, бүтін сан ретінде кодталған Д.In1) хабарламада. Барлық қалған кодтық сөздер тексеру кодтық сөздері ретінде қолданылады.

Ықшам Ацтек кодтары үшін қабаттар саны 2 биттік мән ретінде, ал мәліметтер кодтық сөздерінің саны 6 биттік мән ретінде кодталады, нәтижесінде 8 биттік режим сөзі шығады. Толық ацтек кодтары үшін қабаттар саны 5 битпен кодталады, ал мәліметтер кодтарының саны 11 битпен кодталып, 16 биттік режим сөзін жасайды.

Режим сөзі 4 немесе 4 биттік кодтық сөздерге бөлінген ЖФ (16), және 5 немесе 6 қамыс - Сүлеймен тексеру сөздері қосылып, 28 немесе 40 биттік режим туралы хабарлама жасайды, ол ядро ​​айналасында 1 пиксель қабатына оралады.

L + 1 қабатты ықшам ацтек коды L деңгейінің толық кодына қарағанда көбірек мәліметтерді сақтай алатындықтан, 4 қабатынан аз толық кодтар сирек қолданылады.

Ең бастысы, қабаттар саны қолданылған Рид-Сүлеймен кодтық сөздерінің мөлшерін анықтайды. Бұл 6-дан 12 битке дейін өзгереді:

Ацтек кодының өрісті полиномдары
БиттерӨрісКөпмүшелікҮшін қолданылады
4ЖФ (16)х4+х+1Режим туралы хабарлама
6GF (64)х6+х+11-2 қабаттар
8GF (256)х8+х5+х3+х2+13-8 қабат
10GF (1024)х10+х3+19–22 қабат
12GF (4096)х12+х6+х5+х3+123-32 қабаттар

Код сөзінің өлшемі б символдағы кодтық сөздердің жалпы саны 2 шегінен аз болуын қамтамасыз ететін ең кіші жұп санб−1, оны Рид-Сүлеймен кодымен түзетуге болады.

Жоғарыда айтылғандай, қолда бар кодтық сөздердің кем дегенде 23% -ы түзету үшін сақталғаны жөн, ал хабарлама қол жетімді кеңістікке сәйкес болатындай таңба өлшемі таңдалады.

Бітеуіш

Мәліметтер биттері кодтық сөздерге бөлінеді, бірінші бит ең маңызды коэффициентке сәйкес келеді. Мұны істеу кезінде нөлдік және барлдық кодтық сөздерді болдырмауға болады бит фарш: егер бірінші болса бКод сөзінің b1 битінің мәні бірдей, мәліметтер ағынына қосымша мәні бар қосымша бит енгізіледі. Бұл кірістіру код сөзінің соңғы биті бірдей мәнге ие бола ма, болмай ма, орын алады.

Бұл тек жолдарға қатысты екенін ескеріңіз б−1 бит код сөзінің басында. Бірдей биттердің ұзын жолдарына олар код сөзінің шекарасында жүргенде ғана рұқсат етіледі.

Декодтау кезінде барлық нөлдік немесе барлығының кодты сөзі an деп қабылдануы мүмкін өшіру, және жалпы қатеге қарағанда тиімдірек түзетілген.

Бұл процесс хабарламаны ұзағырақ етеді, ал режимдік хабарламада жазылған мәліметтердің кодтық сөздерінің соңғы саны ол аяқталғанға дейін белгілі болмайды. Сирек жағдайларда тексеру сөздерінің минималды үлесін сақтау үшін келесі ең үлкен белгіге өтіп, процесті қайта бастау қажет болуы мүмкін.

Толтырғыш

Бит толтырылғаннан кейін, деректер тізімі келесі кодтық шекараға 1 бит қосу арқылы толтырылады. Егер бұл бәрінің кодты сөзіне әкелсе, онда соңғы бит нөлге өзгертіледі (және дешифратор бит биттік бит ретінде елемейді). Декодтау кезінде толтырғыш биттері ауысым және ысырма кодтары ретінде декодталуы мүмкін, бірақ бұл хабарлама мазмұнына әсер етпейді. Оқырман хабарламаның соңында ішінара кодты қабылдауы және оны елемеуі керек, егер ол барлығы болса.

Сонымен қатар, егер таңбада бар мәліметтер биттерінің жалпы саны кодтық сөздің еселігі болмаса, қосымша кеңістікті иемдену үшін деректер жолының сәйкесінше 0 биттің префиксі қойылады. Бұл биттер есептеу сөзін есептеуге кірмейді.

Кодты сөздерді тексеріңіз

Режим сөзінде де, мәліметтерде де бос орынды толтыру үшін тексеру сөздері қосылуы керек. Бұл қосу арқылы есептеледі Қ барлық хабарлама Рид-Сүлеймен полиномының еселігі болатын сөздерді тексеріңіз (х−2)(х−4)...(х−2Қ).

Тексеру сөздері екенін ескеріңіз емес биттік толтыруға ұшырайды, және нөлдік немесе барлығында болуы мүмкін. Осылайша, тексеру сөзінің өшірілуін анықтау мүмкін емес.

Хабарлама тарату

Анықтама торын көрсететін 6 қабатты (41 × 41) ацтек коды.

Толық ацтек кодының символында ядродан басқа әр 16-шы жол мен бағанды ​​алып жатқан ауыспалы қара және ақ пикселдердің «анықтамалық торы» бар. Бұл белгілі пикселдер оқырманға пиксел торымен туралауды үлкен белгілер бойынша жүргізуге мүмкіндік береді. 4 қабатқа дейін (31 × 31 пиксель), бұл тек ауыспалы үлгіні жалғастыра отырып, ядродан сыртқа қарай созылатын жалғыз сызықтардан тұрады. 5-ші қабаттың ішіне ауыспалы пикселдердің қосымша жолдары мен бағандары ортасынан ± 16 пиксель енгізіледі, сондықтан 5-ші қабат центрден ± 17 және ± 18 пиксельде орналасқан, ал 5 қабатты символ 37 × 37 пиксельді құрайды .

Сол сияқты, сілтеме торының қосымша жолдары мен бағандары ортасынан ± 32 пиксельмен енгізіліп, 12 қабатты белгі 67 × 67 пиксель құрайды. Бұл жағдайда 12-ші қабат центрден ± 31 және ± 33 пиксель сақиналарын алады. Үлгі сыртқа қарай шексіз жалғасуда, сілтеме торының жолдары мен бағандары бойынша 15 пиксельді деректер блоктары бөлінген.

Символды құрудың бір әдісі - анықтамалық торды толығымен жою және 2 × 2 пиксельді ақ квадраттың ортасына 14 × 14 пиксельді ядродан бастау. Содан кейін оны 15 × 15 пиксельді блоктарға бөліп, олардың арасына анықтамалық торды салыңыз.

Режимдік хабарлама өзектің сол жақ жоғарғы бұрышынан басталып, оны сағат тілінің бағытымен 1 биттік қалың қабатқа орайды. Ол қабаттар санының ең маңызды битінен басталып, тексеру сөздерімен аяқталады. Ықшам Ацтек коды үшін бағдарлау белгілері үшін орын қалдыру үшін 7 биттік төрт бөлікке бөлінді. Толық ацтек коды үшін ол 10-биттік төрт бөлікке бөлінеді және сол бөліктер анықтамалық тор арқылы екіге бөлінеді.

Кейбір жағдайларда матрицаның жалпы сыйымдылығы толық кодты сөздермен біркелкі бөлінбейді. Мұндай жағдайларда негізгі хабарлама басында 0 битпен толтырылады. Бұл биттер тексеру сөзін есептеуге кірмейді және оларды декодтау кезінде өткізіп жіберу керек. Толық таңбаға арналған матрицаның жалпы сыйымдылығын толық ацтек коды үшін (112 + 16 * L) * L және ықшам ацтек коды үшін (88 + 16 * L) * L деп есептеуге болады, мұндағы L - символдардың қабаттардағы өлшемі .[4] Мысал ретінде, 1 қабатты ықшам Ацтек кодының жалпы матрицалық сыйымдылығы 104 битті құрайды. Код сөздері алты бит болғандықтан, бұл 17 кодты сөз және екі қосымша бит береді. Хабарға екі нөлдік бит толтырғыш ретінде қойылады және оларды декодтау кезінде өткізіп жіберу керек.

Толтырылған негізгі хабарлама бүкіл таңбаның сыртқы жоғарғы сол жағынан басталады және айналасында спираль болады сағат тіліне қарсы қалыңдығы 2 биттік қабатта, өзектің тікелей сол жақ бұрышынан жоғары аяқталады. Бұл өшіруге болатын символдың шеткі қабаттарына өшірулерді анықтауға болатын биттермен толтырылған сөздерді орналастырады. Тексеру сөздері өзекке жақын жерде сақталады. Соңғы тексеру сөзі бұқаның сол жақ бұрышының дәл үстінде аяқталады.

Өзек өзінің стандартты бағдарымен бірінші мәліметтер сөзінің бірінші биті сол жақтың жоғарғы бұрышына орналастырылады, ал қосымша биттер ені 2 биттік бағанға солдан оңға және жоғарыдан төменге орналастырылады. Бұл өрнек сағат тіліне қарсы 90 градусқа айналған кезде таңбаның төменгі жағынан 2 қатарға дейін жалғасады және жоғарыдан жоғарыдан жоғары және солдан оңға қарай 2 биттік қатарда жалғасады. 4 тең өлшемді ширек қабаттан кейін спираль келесі ішкі қабаттың жоғарғы сол жақ бұрышымен жалғасады, ақырында ядроның жоғарғы сол жақ бұрышынан бір пиксель аяқталады.

Ақырында, 1 бит қара квадрат түрінде, ал 0 бит ақ квадрат түрінде басылады.

Пайдалану

Deutsche Bahn онлайн-билеті. Осы билет үлгісіндегі ацтек штрих-кодын оқуға болмайтынын ескеріңіз.

Көлік

Ацтек кодының штрих-коды көліктік билеттерге кеңінен қолданылады.

Ацтек кодын авиакомпания таңдап алды (IATA's BCBP стандартты) электронды отырғызу талондары үшін. Бірнеше авиакомпания жолаушылардың ұялы телефондарына Ацтек кодтарын отырғызу талоны ретінде жібереді. Олар көбінесе жолаушылардың телефондарындағы қосымшалармен біріктіріледі, соның ішінде Apple Wallet.

Ацтек кодтары теміржолда қолданылады, оның ішінде Тегеран метрополитені, Eurostar, Deutsche Bahn, DSB, České dráhy, Словакия темір жолдары, Словения темір жолдары, Хорватия темір жолдары, Трениталия, Nederlandse Spoorwegen, ПКП қалааралық, VR тобы, Ұлттық теміржол, Теміржол арқылы, Швейцарияның Федералды темір жолдары, SNCB және SNCF Интернетте сатылатын және клиенттер басып шығарған немесе ұялы телефон экранында көрсетілетін билеттер үшін. Ацтек кодын билетті растау үшін пойыз құрамы немесе турникетте қол сканерімен сканерлейді.

Үкіметтік

Автокөлікті тіркеу құжаттары Польша Aztec коды ретінде кодталған NRV2E алгоритмімен қысылған қысқаша сипаттама. Автокөлік сақтандыру компанияларына жаңа сақтандыру келісімшартын жабудың алғашқы қадамы ретінде құжаттың цифрлық фотосуреттері негізінде тиісті ақпаратты автоматты түрде толтыруға мүмкіндік беретін жұмыстар жүргізілуде.

Федералдық салық қызметі жылы Ресей төлем туралы ақпаратты салық хабарламаларында Ацтек коды ретінде кодтайды.

Коммерциялық

Көптеген вексельдер қазір Канадада да осы технология қолданылады, соның ішінде EastLink (компания), Shaw кабелі, Bell Aliant және тағы басқалары.

Әдебиеттер тізімі

  1. ^ а б *АҚШ 5591956, Лонгакр, кіші, Эндрю & Роберт Хусси, «Оптикалық оқырмандармен бірге пайдалануға арналған екі өлшемді деректерді кодтау құрылымы және символология», 1995 жылы 15 мамырда жарық көрді, 1997 жылы 7 қаңтарда шығарылды. 
  2. ^ Ресми газет. Америка Құрама Штаттарының патенттік басқармасы. 17 маусым 1997 ж. Осылайша, аталған патенттің барлық қолданылу мерзімін көпшілікке арнайды. Жалпыға қол жетімділікті көру үшін «кескіндерді», содан кейін «түзетуді» басыңыз.
  3. ^ Русс Адамс. «2 өлшемді штрих-код беті». Алынған 2009-07-09.
  4. ^ http://recog.ru/blog/standarts/6.html

Сыртқы сілтемелер