aztec код в аэропорту
Aztec Codes
Похожие считыватели штрихкодов
Fixed-mount barcode readers deliver superior read performance for the broadest range of applications.
Equipped with Cognex’s world class barcode reading algorithms and designed to withstand harsh factory floor conditions.
An Aztec code is so named because of the finder code in the center, which somewhat resembles the aerial view of an Aztec pyramid. The Aztec is a 2D matrix code, typically used for airline tickets and other travel documents, as well as car registration documents. It can also be used in hospitals for patient identification, or to identify medication, samples, or other items related to a particular patient.
Specifications: Unlike most other 2D matrix codes, an Aztec code doesn’t require a quiet zone around the edge. Therefore, it’s potentially able to store more data in a smaller space. The finder pattern is in the very center of the Aztec code, with the other data encoded around it in concentric square rings.
Advantages: The Aztec code uses its space more efficiently than other matrix codes. The size can also vary, allowing it potentially to hold vast amounts of information. In addition, the Aztec code comes with error correction and allows you to select the percentage.
Disadvantages: The Aztec code doesn’t support Kana or Kanji characters, as QR codes do.
Symbology Guide
Let’s Talk Symbology: A Guide to Decoding Barcodes
Aztec код в аэропорту
Авиакомпания Aztec Airways. Информация
Авиакомпания Aztec Airways была образована в 1998 году и сертифицирована Федеральным авиационным управлением США по FAR part 135 как авиаперевозчик США «по Требованию». В настоящее время компания эксплуатирует пять самолетов, два грузовых самолета грузоподъемностью 2500 фунтов Beech 18 и девять пассажирских самолетов Piper Chieftain и Cessna Caravan 208B.
Специальные предложения
Календарь низких цен на авиабилеты в Нассау
Календарь низких цен для поиска и бронирования дешёвых авиабилетов в Нассау. Введите город отправления и город назначения или используйте те, которые уже указаны для поиска самых низких цен на авиабилеты по календарю.
Авиакомпания Aztec Airways обслуживает юго-восток США и Багамские острова. Базовый аэропорт Форт Лодердейл, KFXE. Это расположение дает возможность обслуживать все основные международные аэропорты Южной Флориды, включая Форт-Лодердейл, Майами и Палм-Бич.
Авиакомпания специализируется на получении грузов, документации, обработке и отгрузке. Совершает еженедельные полёты на острове Эльютера на Багамах.
Aztec Code
Aztec Code — двумерный матричный штрихкод. Разработан в 1995 году доктором Andrew Longacre, Jr., исследователем из фирмы Welch Allyn Inc. (позже Hand Held Products Inc., сейчас Honeywell Imaging and Mobility). Код был опубликован фирмой AIM International в 1997 году, и хотя на код был получен патент, он был передан в общественное достояние.
Содержание
Кодирование
Построение происходит на квадратной регулярной сетке.
На иллюстрации показаны области полной версии Aztec Code.
Красным и чёрным цветом обозначены калибровочные элементы: мишень из концентрических квадратов в центре и пунктирные прямые для дополнительной навигации по шифру. Структура этих областей неизменна и положение остальных областей при считывании вычисляется относительно них. Количество пунктирных прямых может меняться в зависимости от размера используемого символа.
Зелёным цветом обозначены области для хранения служебной информации, всего 40 бит: по одному десятибитовому блоку на каждой из четырёх сторон.
Голубым и синим цветами обозначены слои хранения данных, радиально расходящиеся от центра. Тёмная точка в этой области кодирует логическую единицу, светлая — логический ноль, данные в каждом слое записываются по спирали по часовой стрелке, на иллюстрации тонкой линией слева сверху каждого слоя показано его начало.
Благодаря навигационным маркерам код не зависит от пространственной ориентации, и может быть считан не только при любом угле поворота, но и даже при зеркальном отражении рисунка.
Размер кода может варьироваться от квадрата 15×15 до квадрата 151×151. Наименьший может содержать в себе до 13 цифр или 12 букв английского алфавита, а наибольший — 3832 цифр или 3067 букв английского алфавита или 1914 байт данных. При этом не требуется пустого пространства вокруг рисунка кода.
Набор символов
Особенности
Происхождение названия
Название «Aztec Code» схема получила на ранних этапах разработки из-за внешнего сходства с классической символикой в искусстве коренных жителей Центральной Америки.
Использование
Транспорт
Железные дороги
Авиалинии
Правительственные документы
Ссылки
Полезное
Смотреть что такое «Aztec Code» в других словарях:
Aztec Code — is a 2 dimensional matrix style bar code symbology. Aztec Code was invented by Andrew Longacre, Jr. of Welch Allyn Inc. in 1995 (later Hand Held Products Inc., now [http://www.honeywell.com/aidc Honeywell Imaging and Mobility] ). The code was… … Wikipedia
Aztec-Code — Der Aztec Code wurde 1995 von Andy Longacre bei der Firma Welch Allyn in den USA entwickelt. Er ist ein frei verfügbarer 2D Code mit der US Patent Nr. 5591956. Er ist unter ISO/IEC 24778 normiert. Der Name Aztec Code leitet sich von der… … Deutsch Wikipedia
Aztec Code — Beispiel eines Aztec Codes Der quadratische Aztec Code wurde 1995 von Dr. Andy Longacre bei Welch Allyn (USA) entwickelt. Er ist frei verfügbar und wird für viele Anwendungen genutzt. Er ist unter ISO/IEC 24778 normiert. Inhaltsverzeichnis 1… … Deutsch Wikipedia
ГОСТ Р ИСО/МЭК 24778-2010: Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода Aztec Code — Терминология ГОСТ Р ИСО/МЭК 24778 2010: Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода Aztec Code оригинал документа: 3.1.4 блок типа домино (domino): Двухмодульная… … Словарь-справочник терминов нормативно-технической документации
Aztec (disambiguation) — Aztec or Aztek could mean:*The Aztec civilization of Mesoamerica *The Nahuatl language, also known as Aztec *Aztec, New Mexico, a city in the United States ** the Aztec meteorite of 1938, which fell in New Mexico, United States (see Meteorite… … Wikipedia
Code 93 — Barcode Als Strichcode, Balkencode oder Barcode (engl. bar für Balken) wird eine optoelektronisch lesbare Schrift bezeichnet, die aus verschieden breiten, parallelen Strichen und Lücken besteht. Der Begriff Code steht hierbei nicht für… … Deutsch Wikipedia
Code 39 — A Code 39 Barcode Label WIKIPEDIA encoded in Code 39 Code 39 (also known as Alpha39, Code 3 of 9, Code 3/9, Type 39 … Wikipedia
Code 128 — Wikipedia encoded in Code 128 B Code 128 is a very high density barcode symbology. It is used for alphanumeric or numeric only barcodes. It can encode all 128 characters of ASCII and, by use of an extension character (FNC4), the Latin 1… … Wikipedia
Code 93 — WIKIPEDIA encoded in Code 93 Code 93 is a barcode symbology designed in 1982 by Intermec to provide a higher density and data security enhancement to Code 39. It is an alphanumeric, variable length symbology. Code 93 is used primarily by Canada… … Wikipedia
Code-barres 2D — Un code barres 2D ou codes barres à deux dimensions est un format à deux dimensions du codes barres classique. Pictogramme constitué de petits carrés, le code barres 2D peut notamment être décodé par des téléphones mobiles disposant d une… … Wikipédia en Français
Краткая историческая справка
Первоначальные идеи, реализованные в коде Aztec зародились в декабре 1994 года. Причиной их появления послужила общая неудовлетворенность конструкцией и характеристиками существовавших тогда двухмерных кодов, что могло ограничить коммерческий успех визуально-считывающих устройств (image-based readers). В ходе разработки декодирующего ПО для некоторых матричных символик, мы в HandHeld Products выработали ясное представление о том, какие особенности работают хорошо (как указатель «мишень») и что упущено (как легкость распознавания размера). Презентации символик и демонстрации сканеров в институте ANSI в Сант-Луисе только подтвердили наши опасения, тогда как комментарии Норма Вейланда (Norm Weiland) насчет очевидного преимущества прямоугольной/квадратной формы элементов штрихкода с точки зрения удобства печати и масштабирования, помогли нам выкристаллизовать нашу идею.
Рисунок 2: Первые изображения кода Aztec
Основные изменения в структуре кода и коррекции ошибок появились в Версии 2.0 спецификации в июне 1995 года, но основная конструкция кода осталась неизменной, выдержав процесс отладки считывающих устройств, пробные внедрения и даже критический анализ, проведенный Техническим Комитетом (Technical Symbology Committee) AIM USA без изменений. Международная спецификация Aztec Code опубликована AIM International в 1997 году.
Основные характеристики Aztec Code
Таблица 1: Примеры соотношения размеров символов и емкости кода.
* показывает Компактные символы; остальные строки показывают полный символ;
** превышает разрешающую способность существующих сканеров.
Вид символа Aztec Code очень систематичен с четко разграниченными функциями частей, обеспечивает простоту процедур кодирования и декодирования, в то же время его математическая структура необычайно гибка и надежна.
Структура символа Aztec Code
Рисунок 3 показывает структуру полного символа Aztec Code. Вы можете увидеть три постоянных элемента:
Два переменных элемента структуры:
Компактный символ Aztec Code содержит маленькую мишень без решетки привязки и только 4 слоя данных.
Слои данных, конечно, содержат последовательность кодовых слов, которые сперва кодируют пользовательские данные, затем добавляют к ним выявление и коррекцию ошибок. Защита от ошибок, кроме того, регулируемая пользователем и использующая дополнительные контрольные слова для заполнения, дополнительно усилена двумя путями: во-первых, размер кодового слова зависит от размера символа, от 6 бит для наименьших символов до 12 бит для наибольших, исключая необходимость чередующихся полей и обеспечивая хорошую зернистость для всех размеров символов. Во-вторых, слова сообщения, занимающие внешние слои символа, поддерживают чистовую коррекцию ошибок в стертых углах символа.
В готовом символе, все элементы структры перемешаны (кроме прицела), но их роли станут понятны при рассмотрении типичной последовательности декодирования.
Рисунок 4: Этапы Декодирования представления Aztec Code
Декодирование Aztec Code
Рисунок 4 показывает последовательность шагов, выполняемых при чтении символа Aztec Code, приведенного на картинке 4(A).
Символ Aztec Code «найден» на отсканированной картинке благодаря мишени, центр которой надежно изолирован от краев (подобно островку, расположенному в центре озера, находящегося на острове в центре большого озера и т.д.). Алгоритм поиска, описанный в Спецификации Aztec Code, делает топологию мишени очень заметной, как это показано на Рис. 4(B), независимо от ориентации кода и угла сканирования.
Как только обнаружена область мишени, каждое кольцо мишени прослеживается (a) для уточнения места расположения центра, одновременно (b) находятся 4 угла. Направления и расстояния между соседними углами далее используются для оценки направления и масштаба основных осей символа, как это показано на Рис.4(C). В зависимости от угла сканирования, они могут пересекаться под непрямым углом и иметь разный масштаб.
Снова начиная с центра, места расположения модулей рассчитываются к краям символа слой за слоем с уточнением позиций, сохраняя их отцентрованными относительно краев соседних позиций. Этот процесс называемый «наращиванием кристалла» продолжается до достижения первого слоя данных, расположенного за мишенью, который будет смоделирован, как показано на Рис.4(D). Попутно, возможно обнаружение черно-белого обратного перехода или Компактный формат символа может быть обнаружен и обработан. Далее, элементы ориентации по углам этого граничного слоя позволяют определить перебором четырех возможных ориентаций и их зеркальных отражений, направления основных осей символа (которое «Север», а где «Восток»). Далее, биты строки режима определены, выполнена коррекция ошибок, и разобраны для определения размера декодируемого символа и длины закодированного сообщения.
Если слоев данных четыре или меньше (включая все Компактные символы), зона наращивания кристалла продлевается наружу для достижения пределов поля данных. Для больших символов линейная версия наращивания кристалла используется вместо определения центров всех модулей решетки привязки вплоть до границы символа (см. Рис.4(E)). Эти позиции затем интерполируются для определения расчетных точек для всех модуленй данных, как показано на Рис.4(F). Каждая процедура дает битовую карту содержимого области данных, которая затем преобразуется из спирали в последовательность кодовых слов.
Если любые кодовые слова, даже содержащие одиночные модули, выпадают из отсканированной картинки, или появляются неправильные кодовые слова, требующие «подчистки», используется хорошо известный алгоритм коррекции ошибок Berlekamp-Massey-Chien-Forney. Если процедура коррекции ошибок завершена успешно, сканер подает сигнал и закодированное сообщение реконструировано из последовательности кодовых слов.
Основные особенности Aztec Code
В результате представленного рассмотрения технологии становятся понятными некоторые особенности Aztec Code:
Применения и поддержка Aztec Code
Для генерации Aztec Code может использоваться коммерческий продукт «B-Coder for Windows, Professional Edition» фирмы TAL Technologies, позволяющий внедрять штрихкод в свои проекты различным заинтересованным производителям.
Коды step-by-step: Aztec Code
Вам ведь ещё не надоели коды? Надеюсь, что нет, поскольку сегодня мы рассмотрим Aztec Code — именно их вы могли видеть на своих смартфонах в электронной версии посадочных талонов на авиарейсы, а может на железнодорожных билетах или ещё где.
Один из таких кодов показан слева от данного текста. Конечно, можно просто взять телефон, открыть специальное приложение для чтения кодов и просто «прочитать» его. А вот если вам интересно, как эти коды записываются, читаются и какую информацию могут содержать, то добро пожаловать под кат.
Aztec Code — следующий в списке кодов, о которых я хочу вам рассказать во всех подробностях. Начнём.
Внимание, под катом — 8 изображений общим размером в 0.8 МБ, 5 таблиц и немного формул.
Оглавление
01. История Aztec Code и право использования
Эти коды созданы в 1995 году в Welch Allyn Data Collection Inc, а в 1997 на него был выдан патент США номер 5 591 956 (доступен на Google Patents). Часть из рекомендаций и описаний в патенте более не используется. Потому такие коды могут быть несовместимы с современными стандартами. Кроме того, он описывает лишь стандартный вид Aztec Code, но не «компактный» вид, который появился позже.
На данный момент использовать любую версию Aztec Code можно свободно и без ограничений.
Как обычно, есть и ограничивающий фактор, если вы хотите точно соответствовать стандарту ISO/IEC 24778:2008, а доступ к нему — платный (158 CHF — швейцарских франков). Хотя когда это кого-то останавливало?
Чем этот код отличается от любого другого?
02. Графическое представление и структура
Рис. 1. Схематическая структура Aztec Code
Каждый стандартный символ Aztec Code (именно такой, как его описывает патент, Рис. 1) состоит из следующих компонентов:
Все вместе они называются ядром (Core structure) кода (размером 15 x 15).
Кроме того, существует компактная версия Aztec Code, которая отличается отсутствием reference-сетки, меньшей мишенью (9 x 9 элементов) и ограничением в максимум 4 слоя (Рис. 2).
Рис. 2. Схематическая структура компактного Aztec Code
Количество системной информации в компактной версии кода тоже меньше, потому оно содержит лишь 2 бита для количества слоёв и 6 бит для описания количества данных. Остальные 20 битов содержат коды для коррекции.
03. Блоки данных
Рис. 3. Блок данных Aztec Code 5 х 2, как описано в патенте
Пожалуй, это самая сложная часть. Согласно патенту, вся информация в коде представляется в виде блоков размером 5х2 бит (квадратов / элементов). Расположение битов происходит по схеме, показанной на Рис. 3, где «1» представляет собой старший бит, а «10» — младший.
Этот принцип (такая ситуация может возникнуть в 1/256 случаев) используют для того, чтобы любой блок состоящий полностью из 0 или 1 рассматривался сканером как недействительный и был включён в блоки с «наиболее вероятным наличием ошибок».
В последствии решили, что можно улучшить Aztec Code, а особенно — коррекцию ошибок в нём, если сделать блоки данных переменного размера. Естественно, в одном коде размер всех блоков — константа, а вот для кодов разного размера придумали специальные рекомендации (Табл. 1).
Количество слоёв в символе | Количество битов в блоке данных |
---|---|
1: 2 | 6 |
3: 8 | 8 |
9: 22 | 10 |
23: 32 | 12 |
Табл. 1. Размер блока данных Aztec Code в зависимости от размера символа
Несмотря на вариации длины блока, все правила для блоков универсальны, а принцип про невозможность всех одинаковых битов в блоке звучит следующим образом:
04. Заполнение
Блоки данных располагаются начиная от ориентира 1 по часовой стрелке. Два блока 5 х 2 бита (3 х 2, 4 х 2 или 6 х 2) находятся рядом друг с другом, соединяясь по короткой стороне.
Для упрощения понимания блоков, стоит рассматривать их как домино размером 1х2 бита, которые являются неделимыми.
Ни один из блоков данных не может «наползать» на reference-сетку. Если же блок не помещается с одной стороны от линий сетки, он делится на две части (Рис. 4), располагаемые вокруг.
Рис. 4. Блок 5 х 2 можно делить так (4 варианта поделить по принципу домино и горизонтальное деление для слоёв 12 и 27)
Когда один слой символа заполнен, начинает заполнятся следующий. Чтобы не путаться в том, как располагать биты в коде «на углах», нужно помнить два правила (которые куда более очевидны из Рис. 5):
Рис. 5. Принцип записи слоёв для домино-структуры
Слои 12 и 27 отличаются от всех остальных. Поскольку между параллельными линиями reference-сетки 15 элементов, в них нельзя поместить целое число блоков 5х2 битов. В результате, половину битов размещают с одной стороны сетки, а половину — с другой. Для этого блок делят горизонтально (Рис. 4).
Важным является последовательность заполнения информации в коде. Первым блоком при чтении от ядра кода является последний блок всего сообщения (последний блок коррекции ошибок). Последним же блоком (на наружной части кода) будет первый блок сообщения (первый информационный блок). Такой принцип авторы основывали увеличением вероятности возникновения ошибок при отдалении от ядра кода. Именно по этой же причине сервисная информация (описание символа, Раздел 02) находится в ядре.
05. Размер кода и количество информации в нём
Современная размерно-информационная таблица для Aztec Code (Табл. 2) достаточно велика, поскольку кодирование позволяется для слов разной длины. Тем не менее, её достаточно удобно использовать для понимания, сколько же информации помещается в какое количество слоёв.
## слоёв | Размер символа | Количество слов (размер слова, битов) | Количество битов | Можно записать цифр | Можно записать символов | Можно записать байт |
---|---|---|---|---|---|---|
1 | 19 x 19 | 21 (6) | 126 | 18 | 15 | 8 |
2 | 23 x 23 | 48 (6) | 288 | 49 | 40 | 24 |
3 | 27 x 27 | 60 (8) | 480 | 84 | 68 | 40 |
4 | 31 x 31 | 88 (8) | 704 | 128 | 104 | 62 |
5 | 37 x 37 | 120 (8) | 960 | 178 | 144 | 87 |
6 | 41 x 41 | 156 (8) | 1 248 | 232 | 187 | 114 |
7 | 45 x 45 | 196 (8) | 1 568 | 294 | 236 | 145 |
8 | 49 x 49 | 240 (8) | 1 920 | 362 | 291 | 179 |
9 | 53 x 53 | 230 (10) | 2 300 | 433 | 348 | 214 |
10 | 57 x 57 | 272 (10) | 2 720 | 516 | 414 | 256 |
11 | 61 x 61 | 316 (10) | 3 160 | 601 | 482 | 298 |
12 | 67 x 67 | 364 (10) | 3 640 | 691 | 554 | 343 |
13 | 71 x 71 | 416 (10) | 4 160 | 793 | 636 | 394 |
14 | 75 x 75 | 470 (10) | 4 700 | 896 | 718 | 446 |
15 | 79 x 79 | 528 (10) | 528 0 | 1 008 | 808 | 502 |
16 | 83 x 83 | 588 (10) | 588 0 | 1 123 | 900 | 559 |
17 | 87 x 87 | 652 (10) | 6 520 | 1 246 | 998 | 621 |
18 | 91 x 91 | 720 (10) | 7 200 | 1 378 | 1 104 | 687 |
19 | 95 x 95 | 790 (10) | 7 900 | 1 511 | 1 210 | 753 |
20 | 101 x 101 | 864 (10) | 8 640 | 1 653 | 1 324 | 824 |
21 | 105 x 105 | 940 (10) | 9 400 | 1 801 | 1 442 | 898 |
22 | 109 x 109 | 1 020 (10) | 10 200 | 1 956 | 1 566 | 976 |
23 | 113 x 113 | 920 (12) | 11 040 | 2 116 | 1 694 | 1 056 |
24 | 117 x 117 | 992 (12) | 11 904 | 2 281 | 1 826 | 1 138 |
25 | 121 x 121 | 1 066 (12) | 12 792 | 2 452 | 1 963 | 1 224 |
26 | 125 x 125 | 1 144 (12) | 13 728 | 2 632 | 2 107 | 1 314 |
27 | 131 x 131 | 1 224 (12) | 14 688 | 2 818 | 2 256 | 1 407 |
28 | 135 x 135 | 1 306 (12) | 15 672 | 3 007 | 2 407 | 1 501 |
29 | 139 x 139 | 1 392 (12) | 16 704 | 3 205 | 2 565 | 1 600 |
30 | 143 x 143 | 1 480 (12) | 17 760 | 3 409 | 2 728 | 1 702 |
31 | 147 x 147 | 1 570 (12) | 18 840 | 3 616 | 2 894 | 1 806 |
32 | 151 x 151 | 1 664 (12) | 19 968 | 3 832 | 3 067 | 1 914 |
Табл. 2. Количество информации в Aztec Code в зависимости от количества слоёв.
Подобная таблица есть и для компактных Aztec Code (Табл. 3).
## слоёв | Размер символа | Количество слов (размер слова, битов) | Количество битов | Можно записать цифр | Можно записать символов | Можно записать байт |
---|---|---|---|---|---|---|
1 | 15 x 15 | 17 (6) | 102 | 13 | 12 | 6 |
2 | 19 x 19 | 40 (6) | 240 | 40 | 33 | 19 |
3 | 23 x 23 | 51 (8) | 408 | 70 | 57 | 33 |
4 | 27 x 27 | 76 (8) | 608 | 110 | 89 | 53 |
Табл. 3. Количество информации в компактном Aztec Code в зависимости от количества слоёв.
Если ваше сообщение умещается в компактный Aztec Code, рекомендуется использовать его, а не полную версию.
06. Служебная информация
Чтение символа мы начнём с ядра. Итак, как было указано ранее (Раздел 02), у нас есть сервисная информация, состоящая из следующих частей.
Количество слоёв
В обычном Aztec Code за эту информацию отвечают первые 5 битов. Соответственно, записанное число может принимать значение от 0 до 31, что соответствует количеству слоёв
от 1 до 32.
В компактном Aztec Code есть лишь 2 бита, а потому их значение от 0 до 3 означает количество слоёв от 1 до 4.
Поскольку количество слоёв определяет также размер символа, то определена также ёмкость кода (
) и количество битов в одном слове (
).
Длина сообщения
Дальше идёт 6 (значения от 0 до 63, компактный AC) либо 11 битов (значения от 0 до 2 047, обычный AC) значения . В результате, количество информационных слов в коде
может быть от 0 и до 64 либо 2 048 слов в зависимости от типа символа.
Очевидно, что длина сообщения не может быть больше, чем ёмкость всего символа. Согласно стандарту, есть рекомендация придерживаться соотношения . В таком случае возможна «рациональная» коррекция ошибок.
Коррекция ошибок
Размер слова сервисной информации — 4 бита, а коррекцию производят с помощью кодов в поле Галуа с многочленом
. На данный момент я не буду останавливаться на коррекции ошибок, поскольку это отдельная большая тема, которая не касается конкретно Aztec Code.
Направление
07. Запись данных
Для записи данных используется следующий принцип:
Стандартным набором при записи и чтении кодов является режим Upper. Чтобы использовать другой режим, необходимо выполнить переход.
## | Upper Символ (ASCII) | Lower Символ (ASCII) | Mixed Символ (ASCII) | Punctuation Символ (ASCII) | Digit Символ (ASCII) |
---|---|---|---|---|---|
0 | ps | ps | ps | FLG (n) | ps |
1 | SP (32) | SP (32) | SP (32) | CR (13) | SP (32) |
2 | A (65) | a (97) | SOH (1) | CR LF (13 10) | 0 (48) |
3 | B (66) | b (98) | STX (2) | . SP (46 32) | 1 (49) |
4 | C (67) | c (99) | ETX (3) | , SP (44 32) | 2 (50) |
5 | D (68) | d (100) | EOT (4) | : SP (58 32) | 3 (51) |
6 | E (69) | e (101) | ENQ (5) | ! (33) | 4 (52) |
7 | F (70) | f (102) | ACK (6) | » (34) | 5 (53) |
8 | G (71) | g (103) | BEL (7) | # (35) | 6 (54) |
9 | H (72) | h (104) | BS (8) | $ (36) | 7 (55) |
10 | I (73) | i (105) | HT (9) | % (37) | 8 (56) |
11 | J (74) | j (106) | LF (10) | & (38) | 9 (57) |
12 | K (75) | k (107) | VT (11) | ‘ (39) | , (44) |
13 | L (76) | l (108) | FF (12) | ( (40) | . (46) |
14 | M (77) | m (109) | CR (13) | ) (41) | ul |
15 | N (78) | n (110) | ESC (27) | * (42) | us |
16 | O (79) | o (111) | FS (28) | + (43) | |
17 | P (80) | p (112) | GS (29) | , (44) | |
18 | Q (81) | q (113) | RS (30) | — (45) | |
19 | R (82) | r (114) | US (31) | . (46) | |
20 | S (83) | s (115) | @ (64) | / (47) | |
21 | T (84) | t (116) | \ (92) | : (58) | |
22 | U (85) | u (117) | ^ (94) | ; (59) | |
23 | V (86) | v (118) | _ (95) | (62) | |
26 | Y (89) | y (121) | ? (63) | ||
27 | Z (90) | z (122) | DEL (127) | [ (91) | |
28 | ll | us | ll | ] (93) | |
29 | ml | ml | ul | < (123) | |
30 | dl | dl | pl | > (125) | |
31 | bs | bs | bs | ul |
Табл. 4. Кодовые наборы ASCII, которые используются в Aztec Code по умолчанию
FLG(n) — специальный флаг, который используют для представления разных знаков (не данных). Сюда относится использование других кодовых наборов с помощью ECI (Extended Channel Interpretation) и ещё некоторые специфические функции.
Будьте внимательны, таблица, представленная в патенте на Aztec Code, отличается и на данный момент не используется в кодах.
Байт-режим
Переключатель bs представляет переход в байтовый режим записи с динамической кодировкой длины. За этим символом следует 5 битов.
В результате, можно записать как отдельные байты, так и строки длиной до 2 047 + 31 байтов.
08. Исправление ошибок
Итак, как уже было неоднократно сказано, коррекция ошибок в Aztec Code осуществляется с помощью кодов Рида-Соломона. В отличии от множества других кодов, здесь количество слов для коррекции не фиксировано. Существуют лишь рекомендации касательно их количества.
Неудобство Aztec Code состоит в вариации длины слов. С другой стороны, это улучшает качество исправления ошибок, что может быть доказано математически.
Как используемое поле Галуа, так и примитивный многочлен для расчётов, зависят от количества бит в слове (Табл. 5). В остальном процедура расчётов ничем не отличается от любого другого расчёта кодов Рида-Соломона.
Количество слоёв символа | Количество битов в слове | Поле Галуа | Примитивный многочлен |
---|---|---|---|
1: 2 | 6 | ||
3: 8 | 8 | ||
9: 22 | 10 | ||
23: 32 | 12 |
Табл. 5. Параметры для коррекции ошибок с использованием кодов Рида-Соломона
09. Определяем Aztec Code
Итак, у нас есть КДПВ. Давайте прочитаем её. Наша мишень — размером 9 х 9 (Рис. 6). Соответственно у нас компактный вариант Aztec Code.
Рис. 6. Наш тестовый код с КДПВ
10. Читаем сервисную информацию
Рис. 7. Читаем сервисную информацию
Следующий шаг — прочитать сервисную информацию (Рис. 7).
Поскольку это компактная версия кода, первые 2 бита означают количество слоёв (3 слоя, поскольку записано 2), а следующие 6 битов — количество слов (22 слова, поскольку записано число 21).
Зная количество слоёв, можно определить, что каждое слово состоит из 8 бит (Раздел 05).
11. Читаем весь код
Рис. 8. Читаем код. Для удобства, выделены слова по 8 бит
Воспользовавшись описанным ранее принципом чтения (Раздел 04), можно получить следующую строку, начиная от ядра:
10000101 01110111 10111001 01110110 10110100 10001000 00110110 01100001 00101110 00111010 00001100 01110110 00110110
10010010 01100001 00111100 11110011 11110010 11101010 01010101 11011111 01100100 01010001 10000101 11010110 10000110 01001011 11010001 10010101 10010101
01010001 00100111 00111100 10100000 10101001 01000011 00010010 10000001 11000001 00100110 01000001 10011100 00100010 01000101 10000000 10100000 10101000 00001011 00011010 11010110 01000111
Внимательно посмотрев на код, можно заметить, что использование слов длиной 8 бит позволяет заполнить весь символ без пропусков.
Итак, нам нужно развернуть строку, поскольку информация записана в обратном порядке. Кроме того, нам нужно всего 22 слова.
11100010 01101011 01011000 11010000 00010101 00000101 00000001 10100010 01000100 00111001 10000010 01100100 10000011 10000001 01001000 11000010 10010101 00000101 00111100 11100100 10001010 10101001
Наша информация кодируется лишь 5 битами. Тогда строка буде выглядеть следующим образом:
11100 01001 10101 10101 10001 10100 00000 10101 00000 10100 00000 11010 00100 10001 00001 11001 10000 01001 10010 01000 00111 00000 01010 01000 11000 01010 01010 10000 01010 01111 00111 00100 10001 01010 10100 1
Для удобства переведём в десятичное представление
28 09 21 21 17 20 00 21 00 20 00 26 04 17 01 25 16 09 18 08 07 00 10 08 24 10 10 16 10 15 07 04 17 10 20
Тогда правильная последовательность (уже развёрнутая) будет такая:
11100010 01101011 01011000 11010000 00010101 00000101 00000001 01000100 10001000 01110011 00000100 11001001 00000111 00000010 10010001 10000101 00101010 00001010 01111001 11001001 00010101 01010011
11100 01001 10101 10101 10001 10100 00000 10101 00000 10100 00000 10100 01001 00010 00011 10011 00000 10011 00100 10000 01110 00000 10100 10001 10000 10100 10101 00000 10100 11110 01110 01001 00010 10101 01001 1
28 09 21 21 17 20 00 21 00 20 00 20 09 02 03 19 00 19 04 16 14 00 20 17 16 20 21 00 20 30
(0111 0010 0100 0101 0101 0100 11)
Последние два бита 11 — смещение
В результате, в «читаемом виде» строка будет выглядеть следующим образом:
Что даёт ссылку на данную публикацию:
Но если вы не верите, попробуйте воспользоваться коррекцией ошибок.
12. Полезно знать
Существуют специальные символы Aztec Runes. Они могут кодировать ровно 1 байт информации (значения от 000 до 255 ). В них используется только ядро компактного Aztec Code, а тот самый один байт записан вместо сервисной информации. Интересно то, что такие руны также поддерживают коррекцию ошибок. Чтобы прочитать Aztec Rune, необходимо выполнить операцию XOR 1010 с каждым из 4-битных слов. Хотя эти коды являются полноценным видом Aztec Code и их поддержка сканерами является обязательной для всех устройств соответствующих стандартам, остальные сканеры (в том числе приложения для смартфонов) не всегда их распознают.
Как и для других кодов, существуют алгоритмы минимизации кода (а точнее, количества слов, необходимых для записи полезных данных). Тем не менее, если вы используете лишь стандартные таблицы символов (Табл. 4), их можно не применять (поскольку таблица практически не содержит двузначностей и эффективность этих алгоритмов низка).
Aztec Code поддерживают запись длинных сообщений с разбитием на разные символы. При этом в каждый Aztec Code символ дописывается заголовок, содержащий идентификатор сообщения, отделённый пробелами с обеих сторон и порядковый номер символа. Так одно сообщение можно распределить в максимум 26 символах.
13. Полезные ссылки
Описание Aztec Code
Упоминалось
Кроме того
14. Послесловие
Мы рассмотрели принципы кодирования информации в формате Aztec Code. Хотя они используются, возможно, и не так широко, как некоторые другие двумерные коды, Aztec Code обладают существенными преимуществами. Среди них — возможность широкой вариации количества слов для коррекции ошибок, что недоступно для многих кодов.
Возможно, вам будут также интересны другие статьи цикла Коды step by step:
Не забывайте, всегда лучше знать, как что-то работает. Вдруг, оно работает неправильно.