ГОСТ Р ИСО/МЭК 24778-2010

ОбозначениеГОСТ Р ИСО/МЭК 24778-2010
НаименованиеИнформационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода Aztec Code
СтатусДействует
Дата введения07.01.2011
Дата отмены-
Заменен на-
Код ОКС35.040
Текст ГОСТа


ГОСТ Р ИСО/МЭК 24778-2010

Группа П85

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Информационные технологии

ТЕХНОЛОГИИ АВТОМАТИЧЕСКОЙ ИДЕНТИФИКАЦИИ И СБОРА ДАННЫХ

Спецификация символики штрихового кода Aztec Code

Information technologies. Automatic identification and data capture techniques. Aztec Code bar code symbology specification



ОКС 35.040

Дата введения 2011-07-01

Предисловие


Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ "О техническом регулировании", а правила применения национальных стандартов Российской Федерации - ГОСТ Р 1.0-2004 "Стандартизация в Российской Федерации. Основные положения"

Сведения о стандарте

1 ПОДГОТОВЛЕН Обществом с ограниченной ответственностью "РИТ СЕРВИС" совместно с Ассоциацией автоматической идентификации "ЮНИСКАН/ГС1 РУС" на основе собственного аутентичного перевода на русский язык стандарта, указанного в пункте 4, выполненного ООО "РИТ СЕРВИС"

2 ВНЕСЕН Техническим комитетом по стандартизации ТК 355 "Технологии автоматической идентификации и сбора данных и биометрия"

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 14 мая 2010 г. N 79-ст

4 Настоящий стандарт идентичен международному стандарту ИСО/МЭК 24778:2008* "Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода Aztec Code" (ISO/IEC 24778:2008 "Information technology - Automatic identification and data capture techniques - Aztec Code bar code symbology specification")
________________
* Доступ к международным и зарубежным документам, упомянутым здесь и далее по тексту, можно получить, перейдя по ссылке. - .

При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложении ДА

5 ВВЕДЕН ВПЕРВЫЕ

6 Следует обратить внимание на то, что некоторые элементы настоящего стандарта могут быть объектом патентного права. ИСО и МЭК не несут ответственность за установление подлинности каких-либо или всех таких патентных прав


Информация об изменениях к настоящему стандарту публикуются в ежегодно издаваемом информационном указателе "Национальные стандарты", а текст изменений и поправок - в ежемесячно издаваемых информационных указателях "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет

Введение

Введение


Aztec Code является двумерной матричной символикой, символы которой имеют квадратную форму и состоят из квадратных модулей, расположенных на сетке с квадратными ячейками, в центре которой располагается шаблон поиска "мишень", состоящий из концентрических квадратов. Символы Aztec Code позволяют кодировать как малые, так и большие объемы данных с уровнем исправления ошибок, выбираемым пользователем.

Настоящий стандарт рекомендован для применения изготовителями оборудования для работы со штриховыми кодами и пользователями данной технологии, обеспечивая совместимость программных и аппаратных средств, предназначенных для формирования и считывания символов Aztec Code.

Сноски в тексте стандарта, выделенные курсивом, приведены для пояснения текста стандарта.

1 Область применения


Настоящий стандарт устанавливает требования к символике Aztec Code*, включая метод кодирования знаков данных, правила кодирования и исправления ошибок, структуру графических символов, требования к размерам символов и качеству их печати, рекомендуемый алгоритм декодирования, а также прикладные параметры для применения, задаваемые пользователем.
_______________
* Рекомендуемое наименование символики на русском языке - "Ацтек код".

2 Нормативные ссылки


В настоящем стандарте использованы нормативные ссылки на следующие стандарты и другие нормативные документы, которые необходимо учитывать при использовании настоящего стандарта*. В случае ссылок на документы, у которых указана дата утверждения, необходимо пользоваться только указанной редакцией. В случае, когда дата утверждения не приведена, следует пользоваться последней редакцией ссылочных документов, включая любые поправки и изменения к ним:
_______________
* Таблицу соответствия национальных стандартов международным см. по ссылке. - .


ИСО/МЭК 646:1991 Информационные технологии. Набор 7-битовых кодированных знаков ИСО для обмена информацией (ISO/IEC 646:1991 Information technology - ISO 7-bit coded character set for information interchange)

ИСО/МЭК 15415:2004 Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация испытаний качества печати символов штрихового кода. Двумерные символы (ISO/IEC 15415:2004 Information technology - Automatic identification and data capture techniques - Bar code print quality test specification - Two-dimensional symbols)

ИСО/МЭК 15424 Информационные технологии. Технологии автоматической идентификации и сбора данных. Идентификаторы носителей данных (включая идентификаторы символик) (ISO/IEC 15424 Information technology - Automatic identification and data capture techniques - Data Carrier Identifiers (including Symbology Identifiers))

ИСО/МЭК 19762 (все части) Информационные технологии. Технологии автоматической идентификации и сбора данных. Гармонизированный словарь. (ISO/IEC 19762 (all parts) Information technology - Automatic identification and data capture (AIDC) techniques - Harmonized vocabulary)

AIM Inc. Международная техническая спецификация: Интерпретации в расширенном канале (AIM Inc. International Technical Specification: Extended Channel Interpretations):

- часть 1. Схемы идентификации и протокол (Part 1: Identification Schemes and Protocol);

- часть 2. Процедура регистрации наборов кодированных знаков и других форматов данных. Регистр наборов знаков (Part 2: Registration Procedure for Coded Character Sets and Other Data Formats. Character Set Register)

3 Термины, определения, условные обозначения и функции

3.1 Термины и определения


В настоящем стандарте применены термины и определения, установленные в ИСО/МЭК 19762 (все части), а также следующие:

3.1.1 шаблон поиска "мишень" (bullseye): Группа концентрических квадратов, используемая в качестве шаблона поиска в Aztec Code.

3.1.2 контрольное слово (checkword): Кодовое слово, включаемое в символ Aztec Code с целью исправления и/или обнаружения ошибок.

3.1.3 кодовое слово данных (dataword): Кодовое слово, являющееся частью данных сообщения, закодированного в символе.

3.1.4 блок типа домино (domino): Двухмодульная подструктура знака символа в символе Aztec Code, являющаяся элементарной структурной единицей при кодировании символа в графическом виде.

3.1.5 служебное сообщение (Mode Message): Короткое служебное сообщение фиксированной длины, кодируемое в символе Aztec Code, содержащее информацию о размере символа и длине сообщения с данными, а также кодовые слова исправления ошибок.

3.2 Условные обозначения и функции

3.2.1 Математические обозначения

В настоящем стандарте использованы следующие математические обозначения:

- число битов в каждом кодовом слове;

- емкость символа в битах;

- емкость символа в кодовых словах;

- число кодовых слов данных (сообщений) в символе;

- число кодовых слов исправления ошибок в символе, равное ;

- число слоев данных в символе (от 1 до 32), определяющее его размер;

- знак-модификатор идентификатора символики;

- размер или номинальный шаг квадратной сетки;

- обобщенная переменная, используемая для представления полиномов исправления ошибок;

(, ) - декартовы координаты на сетке модулей.

3.2.2 Математические функции и операции

В настоящем стандарте применены следующие математические функции и операторы:

abs() - функция абсолютной величины (модуль);

div - оператор целочисленного деления;

mах(а, b) - большее из чисел а и b;

mod - остаток после целочисленного деления.

4 Параметры символики

4.1 Основные параметры


Aztec Code представляет собой двумерную матричную символику, имеющую следующие основные параметры:

а) кодируемый набор знаков:

1) поддерживает кодирование любых 8-битовых значений. По умолчанию используют следующее представление:

а) знаки набора ASCII (версии КОИ-7) по ИСО/МЭК 646 согласно национальной версии США* (далее - знаки ASCII (КОИ-7)) для знаков с десятичными значениями от 0 до 127 знаков кодового набора.
_______________
* Набор знаков по ANSI INCITS 4-1986 (R2007) Information Systems - Coded Character Sets - 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII) (Информационные системы - Кодированные наборы знаков - 7-битовый американский национальный стандартный код для обмена информацией (7-битовый ASCII).


Примечание - Указанная версия ASCII (КОИ-7) состоит из набора знаков GO по ИСО/МЭК 646 и набора знаков СО по ИСО/МЭК 6429, в котором знаки с десятичными значениями от 28 до 31 соответствуют знакам FS, GS, RS и US соответственно;

b) знаки расширенного набора ASCII (версия КОИ-8) по ИСО/МЭК 8859-1 (далее - знаки расширенного набора ASCII (КОИ-8)) с десятичными значениями от 128 до 255.

Данное представление соответствует интерпретации в расширенном канале (ECI) - ECI 000003;

2) поддерживает кодирование двух знаков, не являющихся знаками данных: знак FNC1 для совместимости с некоторыми действующими приложениями и знак управляющей последовательности ECI для типового кодирования сведений об интерпретации сообщения;

b) представление данных: темный модуль соответствует двоичной единице, светлый - двоичному нулю;

c) размер символа:

1) символ Aztec Code наименьшего размера представляет собой квадрат размером 15x15 модулей, а наибольшего - квадрат размером 151х151 модулей;

2) наличие свободной зоны за границами символа не обязательно;

d) объем данных (для рекомендуемого уровня исправления ошибок):

1) символ Aztec Code наименьшего размера обеспечивает кодирование до 13 цифровых или 12 алфавитных знаков или 6 байтов данных;

2) символ Aztec Code наибольшего размера обеспечивает кодирование до 3832 цифровых или 3067 алфавитных символов или 1914 байтов данных;

e) задаваемый уровень исправления ошибок:

1) устанавливается пользователем в размере от 5% до 95% объема данных, но не менее трех кодовых слов;

2) рекомендуемый уровень - 23% емкости символа с добавлением трех кодовых слов;

f) тип кодирования: матричная символика;

g) независимость от ориентации: присутствует.

4.2 Дополнительные свойства


Символика Aztec Code обладает следующими неотъемлемыми и необязательными (задаваемыми по выбору) свойствами:

a) цветовая инверсия (неотъемлемое свойство). В настоящем стандарте при представлении и описании символов Aztec Code центр шаблона поиска всегда представлен модулем темного цвета, при этом двоичные единицы кодируют темными модулями; символы с заменой цветов модулей на противоположный легко различаются и декодируются типовым устройством считывания;

b) зеркальное отображение (неотъемлемое свойство). Изображения, содержащие символы Aztec Code в зеркальном отображении, полученные с помощью отраженного светового потока или при обратном направлении сканирования, или считанные с обратной стороны прозрачной подложки, автоматически распознаются и декодируются типовым устройством считывания;

c) интерпретация в расширенном канале (ECI) (необязательное свойство). Механизм интерпретации в расширенном канале (ECI) обеспечивает представление знаков различных наборов (например, арабского, кириллицы, греческого, иврита) и других интерпретаций данных или учет специфических требований для конкретного применения;

d) структурированное соединение (необязательное свойство). Обеспечивает возможность логического последовательного представления файлов данных с использованием до 26 символов Aztec Code. Исходные данные правильно восстанавливаются при любой последовательности сканирования символов;

е) наличие символов для инициализации устройства считывания (необязательное свойство). Применяется специальный формат символов Aztec Code как опция в меню штрихового кода для инициализации устройства считывания. Данные в сообщении, закодированные в таких специальных символах, не подлежат передаче;

f) наличие структуры символов Aztec Runes* (необязательное свойство). Применяется набор из 256 небольших символов (графических объектов), пригодных для машинного считывания, совместимых с символами Aztec Code и предназначенных для специального применения (приложение А).
_______________
* Наименование символов на русском языке - "Руны Ацтек".

5 Описание символов


Символы Aztec Code имеют номинально квадратную форму и состоят из квадратных модулей, расположенных на условной сетке с ячейками квадратной формы, в центре которой располагается шаблон поиска "мишень". На рисунке 1 изображены два типовых символа Aztec Code. Слева расположен небольшой однослойный символ, в котором закодировано 12 цифр с уровнем исправления ошибок 47%, а справа - более крупный шестислойный символ, в котором закодировано 168 цифр с уровнем исправления ошибок 30%.

Рисунок 1 - Типовые символы Aztec Code


Рисунок 1 - Типовые символы Aztec Code

Символы, приведенные на рисунке 1, иллюстрируют примеры двух основных форматов символов Aztec Code. Слева расположен компактный символ Aztec Code, который визуально отличают по шаблону поиска "мишень", состоящему из двух концентрических квадратов. Компактные символы наилучшим образом подходят для эффективного кодирования коротких сообщений. Справа расположен полноразмерный символ Aztec Code, шаблон поиска "мишень" которого состоит из трех концентрических квадратов. Полноразмерные символы имеют размеры больше, чем компактные, и в них можно кодировать сообщения большего объема. Поскольку кодирующие устройства могут автоматически выбирать, а декодирующие устройства автоматически различать эти два формата, то обеспечивается охват прикладных применений символов Aztec Code.

5.1 Структура символа


Основная структура компактного символа Aztec Code приведена на рисунке 2, а основная структура полноразмерного символа Aztec Code - на рисунке 3. В любом символе Aztec Code в его центре расположено ядро символа, со всех четырех сторон окруженное полями данных.

Рисунок 2 - Структура компактного символа Aztec Code


Рисунок 2 - Структура компактного символа Aztec Code

Рисунок 3 - Структура полноразмерного символа Aztec Code


Рисунок 3 - Структура полноразмерного символа Aztec Code

5.1.1 Ядро символа

Ядро символа имеет квадратную форму, располагается точно в центре символа Aztec Code и состоит из шаблона поиска, шаблонов ориентации и служебного сообщения. В компактных символах ядро занимает область размером 11x11 модулей, а в полноразмерных символах - 15x15 модулей. Декодирование окружающих полей данных возможно только после успешного обнаружения и декодирования ядра символа.

5.1.1.1 Шаблон поиска

Шаблон поиска в Aztec Code представляет собой группу концентрических квадратов. В центре находится одиночный темный модуль, заключенный в квадрат из светлых модулей, который окружен следующим квадратом из темных модулей и т.д. вплоть до второго темного квадрата размером 9x9 модулей в компактных символах или третьего темного квадрата размером 13x13 модулей в полноразмерных символах.

5.1.1.2 Шаблоны ориентации

По углам шаблона поиска расположены четыре трехмодульных шаблона ориентации, имеющих форму шеврона. Левый верхний шаблон ориентации состоит из темных модулей, а левый нижний - из светлых модулей. Правый верхний шаблон содержит два темных модуля*, а правый нижний - один темный модуль**) (рисунки 2 и 3).
_______________
* Темные модули расположены по вертикальной стороне шаблона ориентации.
** Темный модуль расположен в правой верхней части шаблона ориентации.

5.1.1.3 Служебное сообщение

Слой данных, состоящий из модулей, представляющих биты служебной информации, прилегающих к шаблону поиска, за исключением модулей шаблонов ориентации (в полноразмерных символах также за исключением центрального модуля на каждой стороне, являющегося частью решетки привязки), содержит служебное сообщение и кодовые слова исправления ошибок. Указанные модули размещают в данном слое в направлении по часовой стрелке, начиная с его левого верхнего угла. В служебном сообщении в явном виде кодируют как число слоев данных символа (следовательно, и его размер), так и общее число кодовых слов данных в этих слоях. Остальные кодовые слова являются контрольными словами исправления ошибок в сообщении. Подробное описание структуры и процедуры кодирования служебного сообщения приведено в 7.2.

5.1.2 Поля данных

Поля данных расположены симметрично вокруг ядра символа и состоят из одного или нескольких слоев данных. В полноразмерных символах по полям данных проходит решетка привязки.

5.1.2.1 Решетка привязки

Каждая линия решетки привязки (рисунок 3) состоит из последовательности темных и светлых модулей, начинающихся от шаблона поиска и заканчивающихся на границах полей данных*. Линии решетки привязки проходят по осям симметрии символа, а также по каждым 16 строкам и столбцам условной сетки. Периодическая структура линий решетки привязки обеспечивает создание контрольных точек, необходимых для более точного определения месторасположения полей данных в полноразмерных символах Aztec Code. В компактных символах Aztec Code, имеющих ограниченный размер, решетка привязки отсутствует.
_______________
* Имеется в виду внешняя граница внешнего поля данных.

5.1.2.2 Слои данных

Кодовые слова данных сообщения вместе с соответствующими кодовыми словами исправления ошибок располагают по слоям данных, каждый из которых имеет толщину размером два модуля и расположен вокруг ядра символа, при этом данные в каждом слое записывают, начиная c левого верхнего угла каждого слоя в направлении по часовой стрелке с последующим переходом на следующий внешний (по отношению к предыдущему) слой данных (по "спирали"). В полноразмерных символах Aztec Code при записи данных пропускают позиции модулей, занятых решеткой привязки. Компактные символы Aztec Code содержат от одного до четырех слоев данных; полноразмерные символы Aztec Code могут содержать от одного до 32 слоев. Подробная информация о кодировании данных сообщения, формировании кодовых слов, кодировании контрольных слов исправления ошибок и итоговом размещении кодовых слов по слоям данных приведены в 7.3.

5.2 Структура знаков символа и последовательность их расположения


Для повышения эффективности исправления ошибок с применением кодов Рида-Соломона кодовые слова и знаки символа имеют переменные размеры от 6 до 12 битов в зависимости от общего размера символа в соответствии с рисунком 4.

Рисунок 4 - Типовая структура знака в символе


Рисунок 4 - Типовая структура знака в символе*

_______________
* Аббревиатура СЗБ, приведенная на рисунке, означает "старший значащий бит".


В результате огибания ядра символа по спирали, поворотов на углах и из-за пропуска элементов решетки привязки фактические формы знаков символа заметно отличаются от общей типовой формы знака символа, характерной для конкретного символа. Если рассматривать каждый знак символа как последовательность блоков типа домино, состоящих из двух модулей в высоту и одного модуля в ширину, то последовательность знаков символа превращается в последовательность блоков типа домино. Размещение блоков типа домино в полях данных систематизировано, что упрощает их размещение в процессе кодирования и идентификацию в процессе декодирования. Расположение последовательности блоков типа домино с поворотами на углах символа и при переходах между слоями данных приведено на рисунке 5.

Рисунок 5 - Расположение и порядок следования блоков типа домино


Рисунок 5 - Расположение и порядок следования блоков типа домино

Кодовые слова, расположенные по спирали наружу в направлении от ядра символа, формируют в следующем порядке (обратном естественному) - первое кодовое слово, записанное на первой позиции первого слоя, является последним контрольным словом в коде Рида-Соломона, второе кодовое слово является предпоследним контрольным словом в коде Рида-Соломона и т.д. За контрольными словами следуют кодовые слова данных сообщения, вплоть до последнего кодового слова в последнем (внешнем) слое данных, являющегося первым кодовым словом закодированных данных сообщения. Данное расположение кодовых слов в символе Aztec Code повышает эффективность исправления ошибок, поскольку кодовые слова данных, в которых выявляется ошибка "стирание" (кодовые слова данных, состоящие из одних нулей или единиц, которые считают недействительными), расположены вблизи от периметра символа, где вероятность появления ошибки стирания наиболее высока.

5.3 Размер и информационная емкость символа


В таблице 1 приведены основные характеристики и информационная емкость (объем информации, которую можно записать в символах Aztec Code) в зависимости от размеров символа.


Таблица 1 - Размеры и информационная емкость символов Aztec Code

Число слоев данных

Размер символа (размер )

Кодовые слова (число кодовых слов х размер каждого слова), биты

Информационная емкость символа, биты

Информационная емкость символа для различных типов данных

Цифры

Текст (знаки)

Байты

1*

15x15

17x6

102

13

12

6

1

19x19

21x6

126

18

15

8

2*

19х19

40x6

240

40

33

19

2

23х23

48x6

288

49

40

24

3*

23х23

51х8

408

70

57

33

3

27х27

60х8

480

84

68

40

4*

27х27

76х8

608

110

89

53

4

31х31

88х8

704

128

104

62

5

37х37

120х8

960

178

144

87

6

41х41

156х8

1248

232

187

114

7

45х45

196х8

1568

294

236

145

8

49х49

240х8

1920

362

291

179

9

53х53

230х10

2300

433

348

214

10

57х57

272х10

2720

516

414

256

11

61х61

316х10

3160

601

482

298

12

67х67

364х10

3640

691

554

343

13

71х71

416х10

4160

793

636

394

14

75х75

470х10

4700

896

718

446

15

79х79

528х10

5280

1008

808

502

16

83х83

588х10

5880

1123

900

559

17

87х87

652х10

6520

1246

998

621

18

91х91

720х10

7200

1378

1104

687

19

95х95

790х10

7900

1511

1210

753

20

101х101

864х10

8640

1653

1324

824

21

105х105

940х10

9400

1801

1442

898

22

109х109

1020х10

10200

1956

1566

976

23

113х113

920х12

11040

2116

1694

1056

24

117х117

992х12

11904

2281

1826

1138

25

121х121

1066х12

12792

2452

1963

1224

26

125х125

1144х12

13728

2632

2107

1314

27

131х131

1224х12

14688

2818

2256

1407

28

135х135

1306х12

15672

3007

2407

1501

29

139х139

1392х12

16704

3205

2565

1600

30

143х143

1480х12

17760

3409

2728

1702

31

147х147

1570х12

18840

3616

2894

1806

32

151х151

1664х12

19968

3832

3067

1914

Знаком "*" обозначены строки компактных символов; все остальные строки содержат данные для полноразмерных символов.

Примечание - Полноразмерные символы с 1, 2 и 3 слоями используют, как правило, только для инициализации устройства считывания.



Приведенные значения информационной емкости символов Aztec Code, зависят от рекомендуемых задаваемых уровней исправления ошибок. Указанные в таблице 1 значения информационной емкости устанавливают приблизительные максимальные значения, при этом эффективность кодирования данных зависит от их содержимого и возможности пользователя задавать уровень исправления ошибок.

6 Общий порядок кодирования


В настоящем разделе установлена последовательность преобразования исходных данных в кодированную форму (в виде символа Aztec Code). В следующих разделах настоящего стандарта установлены правила и порядок выполнения данного преобразования. Пример кодирования приведен в приложении G.

1) Aztec Code позволяет кодировать данные с помощью кодового набора, содержащего 256 знаков. Входные данные сообщения представляют в виде двоичного потока данных, считываемых слева направо. Специальные управляющие знаки FNC1 и ECI могут быть произвольно расположены в данном двоичном потоке данных;

2) каждый знак данных сообщения преобразуют в четыре, пять или восемь битов, перед которыми, в случае необходимости, размещают управляющий знак (состоящий из четырех или пяти битов) регистра или фиксации кодового набора. Таким образом формируют непрерывный двоичный поток данных;

3) минимальное число битов, подлежащих кодированию, определяют по суммарной длине двоичного потока данных и числу битов, составляющих контрольные слова исправления ошибок, которые определяют уровень исправления ошибок (заданный по умолчанию или пользователем). По числу кодируемых битов, приведенных в таблице 1, определяют формат и минимальный размер символа (число слоев данных ). По числу слоев данных определяют размер кодового слова в битах и общую информационную емкость символа в кодовых словах ;

4) двоичный поток данных преобразовывают в кодовые слова, не допуская при этом формирования кодовых слов, содержащих только 0 или только 1. Таким образом формируют кодовых слов сообщения;

5) число контрольных кодовых слов () определяют как разность между общим числом кодовых слов и числом кодовых слов D, содержащих исходные данные. В результате применения циклического кодирования Рида-Соломона над полем Галуа GF(2) с порождающим многочленом порядка генерируются контрольных кодовых слов, которые присоединяют к последовательности кодовых слов;

6) из двоичных значений и формируется служебное сообщение, при этом с помощью процедуры циклического кодирования Рида-Соломона над полем GF(16) генерируют дополнительные контрольные биты;

7) изображение символа, содержащего слоев, формируют следующим образом. Сначала размещают модули фиксированных структур - шаблона поиска, шаблонов ориентации и (для полноразмерных символов) решетки привязки. Затем вокруг шаблона поиска размещают служебное сообщение, после которого следуют спиральные слои блоков типа домино, образующие последовательность кодовых слов данных и контрольных кодовых слов, расположенных в обратном порядке.

7 Структура символа

7.1 Структура фиксированных шаблонов


Символ Aztec Code содержит три типа фиксированных шаблонов - шаблон поиска, шаблон ориентации и (в полноразмерных символах) решетку привязки (рисунки 2 и 3). Для удобства их определения в настоящем стандарте условную сетку символа следует рассматривать в декартовых прямоугольных координатах на плоскости символа с точкой начала в центре символа (координаты 0, 0) с положительными направлениями значений по оси - вправо, по оси - вверх.

7.1.1 Шаблон поиска

Шаблон поиска представляет собой группу концентрических квадратов (типа "мишень"), расположенных в ядре символа. Угловые модули шаблона поиска расположены в точках (-F, -F), (-F, F), (F, F) и (F, -F), при этом F соответствует четырем модулям для компактных символов и шести модулям - для полноразмерных символов. Светлому модулю присваивают значение "0", темному - "1", при этом цвет любого модуля в шаблоне поиска определяют по формуле

((max(abs(x), abs(y)))+1) mod2.

7.1.2 Модули шаблона ориентации

Шаблон ориентации состоит из четырех трехмодульных групп, имеющих форму шеврона и присоединенных с внешней стороны к углам шаблона поиска. Шесть темных модулей, входящих в указанные трехмодульные группы, располагают в точках (-F-1, F), (-F-1, F+1), (-F, F+1), (F+1, F+1), (F+1, F) и (F+1, -F), а шесть светлых модулей - в точках (F, F+1), (F+1, -F-1), (F, -F-1), (-F, -F-1), (-F-1, -F-1) и (-F-1, -F).

7.1.3 Решетка привязки

В полноразмерном символе Aztec Code линии решетки привязки проходят по позициям условной сетки, координаты или которых кратны 16, т.е. ((mod 16)=0) или ((mod16)=0). Если светлому модулю присваивают значение "0", а темному - "1", то все модули решетки привязки определяют по следующей формуле

(1)mod2.


В позициях, где элементы решетки привязки накладываются на элементы шаблона поиска, модули имеют одинаковые значения.

7.2 Кодирование и структура служебного сообщения


Служебное сообщение представляет собой последовательность битов, представленных соответствующими модулями, расположенными вокруг шаблона поиска. Последовательность битов служебного сообщения: сначала следуют биты с информацией о размере символа, затем - биты, определяющие длину сообщения, и, в завершении, контрольные биты, обеспечивающие необходимую избыточность для исправления ошибок в служебном сообщении.

7.2.1 Указатель размера символа

Указатель размера символа содержит сведения в битах о числе слоев данных на единицу меньше, чем , т.е. . Компактный символ содержит два бита, двоичные значения которых (соответствующие десятичные значения - от 0 до 3) соответствуют символам, содержащим от одного до четырех слоев данных. Полноразмерный символ содержит пять битов, двоичные значения которых (соответствующие десятичные значения - от 0 до 31) соответствуют символам, содержащим от одного до 32 слоев данных. В свою очередь, указанные биты определяют общие размеры символа и его емкость , а также число битов в каждом кодовом слове данных в соответствии с таблицей 1.

7.2.2 Указатель длины сообщения

Указатель длины сообщения содержит информацию (в двоичном представлении) о числе кодовых слов данных (с фактическими данными) минус 1. Остальные кодовые слова используют для исправления ошибок. В компактном символе указатель представлен шестью битами, а закодированные значения от 0 до 63 соответствуют числу кодовых слов данных от 1 до 64. В полноразмерном символе указатель представлен 11 битами, а значения от 0 до 2047 соответствуют числу кодовых слов данных от 1 до 2048. Логическая максимальная длина сообщения зависит от емкости символа в кодовых словах , а рекомендуемая максимальная длина сообщения, обеспечивающая разумную защиту от ошибок, равна 0,77.

В специальных символах инициализации устройства считывания (раздел 9) старший значащий бит обозначения длины сообщения задают равным 1. Таким образом обозначают длину сообщения, превышающую .

7.2.3 Исправление ошибок в служебном сообщении

Информацию о размере символа и длине сообщения представляют в двоичном виде в 4-битовых кодовых словах, которые являются "словами данных" служебного сообщения. К ним добавляют несколько "контрольных слов", вычисленных с помощью циклического кода Рида-Соломона над полем Галуа GF(16) для примитивного многочлена х+х+1 (для десятичного представления - 19).

В компактных символах Aztec Code данные служебного сообщения, записанные в виде "ssmmmmmm" (где "ss" обозначает размер символа, a "mm..." - длину сообщения) образуют два 4-битовых слова данных, к которым добавляют пять контрольных слов с использованием порождающего многочлена (х-2)...(х-2), соответствующего

х+11х+4х+6х+2х+1.


В общей сложности два слова данных с пятью контрольными словами, вычисленными как коэффициенты остатка от операций умножения многочлена слов данных на х с последующим длинным делением на порождающий многочлен над полем GF(16), образуют 28-битовое служебное сообщение для компактного символа Aztec Code.

В полноразмерных символах Aztec Code данные служебного сообщения, записанные в виде "sssssmmmmmmmmmmm" (где "ss" обозначает размер символа, a "mm..." - длину сообщения) образуют четыре 4-битовых слова данных, к которым добавляют шесть контрольных слов с использованием порождающего многочлена (х-2)...(х-2), соответствующего

х+7х+9х+3х+12х+10х+12.


В общей сложности четыре слова данных с шестью контрольными словами образуют 40-битовое служебное сообщение для полноразмерного символа Aztec Code.

7.2.4 Размещение модулей в служебном сообщении

При графическом представлении битов служебного сообщения темным модулям соответствует значение "1", а светлым - "0".

Цепочку битов служебного сообщения, начиная со старшего значащего бита обозначения размера символа и заканчивая младшим значащим битом значения последнего контрольного слова, кодируют в одномодульном слое вокруг шаблона поиска, начиная от его левого верхнего угла по направлению часовой стрелке, при этом позиции, занятые элементами шаблона ориентации и решетки привязки, пропускают.

В компактном символе 28 битов фактически преобразуются в четыре 7-разрядные цепочки. Первая часть закодирована вдоль верхней стороны шаблона поиска в направлении слева направо, вторая - вдоль правой стороны шаблона поиска в направлении сверху вниз, третья - вдоль нижней стороны шаблона поиска в направлении справа налево, четвертая - вдоль левой стороны шаблона поиска в направлении снизу вверх. В полноразмерном символе 40 битов служебного сообщения преобразованы в восемь пятиразрядных цепочек. Первые две цепочки закодированы вдоль верхней стороны шаблона поиска в направлении слева направо, и т.д.

7.3 Кодирование и структура данных в сообщении


Сообщение данных представляет собой последовательность кодовых слов, каждое размером В битов, кодируемых от ядра символа по "спирали" по часовой стрелке в наружном направлении. Эти кодовые слова включают в себя D кодовых слов, точно по числу необходимых для кодирования исходных данных в сообщении, к которым добавляют все контрольные кодовые слова, необходимые для заполнения символа. Указанные кодовые слова следуют в обратном порядке (см. 7.3.3).

7.3.1 Кодирование исходного сообщения

Преобразование последовательности знаков исходных данных в последовательность кодовых слов выполняют в два этапа. На первом этапе все знаки исходных данных последовательно преобразуют в соответствующие двоичные значения, при этом (при необходимости) используют кодовые значения знаков регистра (Shift) и/или знаков фиксации (Latch). Таким образом получают протяженный двоичный поток (строку) входных данных. На втором этапе указанную строку данных преобразуют в последовательность кодовых слов из битов каждое с соблюдением правила исключения, запрещающего вхождение кодовых слов, состоящих только из 0 или только из 1.

7.3.1.1 Преобразование в двоичный поток данных

В таблице 2 приведены значения, присвоенные знакам ASCII в нескольких кодовых наборах, а также управляющим знакам регистра и фиксации для переключения между кодовыми наборами. Кодовые наборы Upper (прописные буквы) и Lower (строчные буквы) содержат прописные и строчные алфавитные буквы соответственно. Кодовый набор Mixed (смешанные знаки) состоит из управляющих знаков ASCII и специальных графических знаков. Кодовый набор Punctuation (знаки пунктуации) состоит из специальных графических знаков и их комбинаций. Кодовый набор Digit (цифры) содержит цифры и некоторые специальные графические знаки. За исключением знака "FLG(n)" представленного ниже, все знаки в таблице 2, не имеющие соответствующих десятичных значений ASCII, представляют функции сдвига регистра или фиксации для перехода к другим кодовым наборам.


Таблица 2 - Высокоуровневое кодирование сообщений в символике Aztec Code

_________________
* Кодовый набор Upper - набор, содержащий прописные буквы латинского алфавита.
Кодовый набор Lower - набор, содержащий строчные буквы латинского алфавита.
Кодовый набор Mixed - набор, содержащий управляющие знаки ASCII и специальные графические знаки.
Кодовый набор Punctuation - набор, содержащий управляющие знаки ASCII, специальные графические знаки и их комбинации, а также знаки пунктуации.
Кодовый набор Digit - набор, содержащий цифры и некоторые специальные графические знаки.


Кодирование сообщения начинают в кодовом наборе Upper, а затем, по мере необходимости, переводят в другие кодовые наборы с использованием знаков фиксации (фиксация кодовых наборов с помощью знаков U/L, L/L, M/L, P/L или D/L) или сдвига регистра (переход в другой кодовый набор только для одного знака с помощью знаков U/S или P/S). В кодовых наборах Upper, Lower, Mixed и Punctuation каждый знак, знаки фиксации или регистра представлены в двоичном потоке данных 5-битовыми значениями, в то время как в кодовым наборе Digit каждый знак, знак фиксации или регистра представлены в кодовом наборе 4-битовыми значениями. Во всех случаях двоичные значения последовательно соединяют друг с другом, начиная со старшего значащего бита.

Режим Byte Shift (B/S) представляет собой особый случай переключения регистра в текстовую строку 8-битовых байтов с динамической кодировкой длины. За знаком B/S следует 5-битовое значение: если оно отличается от нуля, то в нем кодируют число последующих байтов от 1 до 31; если оно равно нулю, то следующие 11 битов кодируют число байтов минус 31. Таким образом, режим Byte Shift позволяет кодировать как изолированные знаки расширенного набора ASCII 8-битовых знаков и управляющие знаки, так и протяженные строки данных в байтах, возможно, кодируемые во всем символе. По завершении строки байтов кодирование возвращается к тому кодовому набору, из которого был активизирован режим B/S.

Знак-указатель FLG(n) в графе "Punctuation" таблицы 2 представляет собой специальный флаг с активизацией "на месте", который используют для представления различных знаков, не относящихся к данным, поддерживаемых многими стандартизованными символиками. В двоичном потоке за значением знака FLG(n) следуют три дополнительных бита, кодирующих аргумент "n" в двоичном виде. Таким образом, значение n находится в диапазоне от нуля до шести (значение семь является недействительным).

Знак FLG(0) представляет собой знак FNC1 - не относящийся к данным флаг, присутствующий в символике Code 128. Если знак FNC1 предшествует первому знаку данных в сообщении, он указывает на структурирование данных в соответствии с правилами GS1 с использованием идентификаторов применения и влияет на значение знака - модификатора идентификатора символики. Если знак FNC1 следует непосредственно за одной прописной или строчной буквой или двумя цифрами в начале сообщения, то в этом случае он сигнализирует о применении другого стандартного отраслевого формата, определяемого предшествующими данными, и тоже влияет на значение знака - модификатора идентификатора символики. Если знак FNC1 находится в любой другой позиции данных, то он выполняет функцию разделителя полей, а его место в выходной строке занимает управляющий знак ASCII () с десятичным значением 29.

Знаки FLG(1)-FLG(6) представляют собой флаг интерпретации в расширенном канале ECI (Extended Channel Interpretation), при обнаружении которого устройство считывания, настроенное на использование интерпретации в расширенном канале, вставляет в выходной поток данных последовательность "\nnnnnn", т.е. знак "ОБРАТНАЯ ДРОБНАЯ ЧЕРТА", за которым следует число из шести цифр (указанное устройство считывания также дублирует знак "ОБРАТНАЯ ДРОБНАЯ ЧЕРТА" в закодированных данных и задает соответствующее значение знаку - модификатора идентификатора символики). Аргумент n в данном случае указывает, сколько из шести цифр явно закодировано в символе с использованием кодового набора Digit. При этом предполагают, что остальными цифрами являются начальные нули. Например, ECI 000123 кодируют в форме FLG(3)123, после чего кодирование возвращают к кодовому набору, из которого был активизирован знак FLG(n).

В приложении Н приведен алгоритм определения последовательности кодовых наборов, знаков фиксации и регистра, обеспечивающей минимальное число битов для кодирования входной последовательности байтов и, в итоге, устанавливающей минимальный размер символа с максимальной избыточностью для исправления ошибок.

7.3.1.2 Формирование кодовых слов данных

На втором этапе кодирования входной поток данных после выбора общего размера символа и определения числа битов в кодовом слове двоичного потока данных в сообщении преобразуют в последовательность кодовых слов данных в сообщении с числом битов , где равно 6, 8, 10 или 12. В общем случае преобразование начинают со старшего значащего бита первого кодового слова с двумя принципиальными исключениями: каждый раз, когда первые -1 битов, помещенных в кодовое слово, состоят из одних "0", в младший значащий бит этого кодового слова вставляют фиктивную "1" и следующий бит данных в сообщении начинает следующее кодовое слово. Аналогично в младший значащий бит кодовых слов данных в сообщении, начинающихся с -1 битов, равных "1", вставляют "0". Таким образом, кодовые слова данных в сообщении, состоящие из одних "0" или"1", являются недействительными и идентифицируются как ошибка стирания в ходе декодирования.

В итоге границы знаков и байтов в исходных данных в сообщении не имеют четкого соответствия с границами кодовых слов. В последнем кодовом слове данных сообщения до -1 битов могут оставаться незаполненными. В этом случае эти биты заполняют "1" (при необходимости с добавлением завершающего фиктивного "0") для устранения любых неоднозначностей.

Примечание - Поскольку шаблон-заполнитель может находиться в начале последовательности со знаком регистра Binary Shift, устройство считывания должно обеспечить завершение интерпретации сообщения на последнем кодовом слове данных.

7.3.2 Кодирование кодовых слов исправления ошибок в данных сообщения

В результате кодирования исходного потока формируют кодовых слов. К ним присоединяют контрольных слов, число которых определяют как , вычисляемых с использованием алгоритма циклического кодирования Рида-Соломона над полем Галуа GF(2) для соответствующего примитивного многочлена (таблица 3). Значения контрольных слов соответствуют коэффициентам многочлена, представляющих собой остаток от операций умножения многочлена, образованного кодовыми словами данных в сообщении, на х с последующим длинным делением на порождающий многочлен (х-2)...(х-2) (приложение В, раздел В. 1).


Таблица 3 - Размеры кодовых слов данных и примитивные многочлены

Число слоев в символе

Кодовые слова

Поле Галуа

Примитивный многочлен

Представление в двоичном виде

Представление в десятичном виде

От 1 до 2

6-битовые

GF(64)

х+х+1

1000011

67

От 3 до 8

8-битовые

GF(256)

х+х+х+х+1

100101101

301

От 9 до 22

10-битовые

GF(1024)

х+х+1

10000001001

1033

От 23 до 32

12-битовые

GF(4096)

х+х+ х+х+1

1000001101001

4201

7.3.3 Размещение модулей данных сообщения в символе

В графическом представлении битов данных в сообщении темные модули представляют "1", а светлые модули - "0".

Для размещения в символе Aztec Code последовательность кодовых слов в обратном порядке укладывают в слоев, толщина каждого из которых равна двум модулям. Размещение модулей начинают над левым верхним углом ядра символа по спирали по часовой стрелке в наружном направлении. Чтобы лучше понять точную структуру размещения отдельных модулей, сначала представляют каждое кодовое слово в виде "кирпича" высотой 2 модуля (рисунок 4), а затем разбивают этот "кирпич" на домино шириной 1 модуль. В каждом домино бит старшего разряда расположен над битом младшего разряда. Затем полученные домино размещают в слоях данных, начиная с буквы "С" надписи "Слой 1 ..." на рисунках 2 или 3, а затем поворачивают по часовой стрелке. Позиции, занимаемые решеткой привязки, при этом пропускают. Бит младшего разряда каждого домино всегда расположен ближе к центру символа. Таким образом, домино, размещаемые в нижней части символа, кажутся перевернутыми.

На рисунке 5 приведена последовательность размещения и ориентация домино при повороте на углах в любом слое и при переходах между слоями. Знаки символов часто имеют нерегулярную форму на четырех углах или содержат разрывы при пропускании решетки привязки, но, несмотря на это, они представляют собой целостные двоичные значения кодовых слов. В слоях 12 и 27 полноразмерных символов сами домино разделены надвое ячейками решетки привязки, но даже в этом случае бит старшего разряда каждого домино должен быть расположен непосредственно над битом младшего разряда (по линии, проведенной наружу от ядра символа) с соблюдением ориентации (рисунок 5).

В граничном внешнем слое каждого символа на конце спирали могут остаться несколько неиспользованных домино, у которых оба модуля остаются светлыми ("0").

8 Структурированное соединение


При недостатке места для размещения символа Aztec Code, а также для обработки данных в сообщении большого объема, представление которых одним символом неэффективно, данные сообщения могут быть распределены по нескольким символам Aztec Code. Данная задача может быть решена с применением структуры заголовков, определяемой пользователем, однако далее приведен стандартный метод, который должен поддерживаться устройствами считывания Aztec Code.

Во всех символах, входящих в последовательность структурированного соединения, кодирование данных сообщения начинается с последовательности

M/L U/L [пробел I...D пробел] М N ...,


содержащей флаговую последовательность структурированного соединения "M/L U/L", где M/L и U/L - знаки фиксации, "I...D" - необязательное поле идентификатора сообщения, отделенное пробелами, а М N - два знака поля порядка следования символов "М-из-N". После указанного заголовка следует кодируемый сегмент данных в сообщении.

Устройство считывания символа Aztec Code, обнаружив знак Upper Latch перед какими-либо сохраненными данными, должно либо интерпретировать заголовок и сохранить сегмент данных в сообщении для его последующей передачи в составе полностью восстановленного сообщения, либо выдать сигнал о том, что символ является частью упорядоченного соединения, и передать соответствующую информацию о порядке его следования. Протокол интерпретации в расширенном канале (ECI) предоставляет собой механизм передачи этой информации, не зависящий от символики, для применений, использующих ECI. С другой стороны, устройство считывания символов Aztec Code может сигнализировать о символе структурированного соединения установкой соответствующего значения знака - модификатора идентификатора символики, с последующей передачей неизмененного заголовка и сегмента данных в сообщении.

Необязательное поле идентификатора сообщения содержит произвольную последовательность знаков данных, которая начинается и завершается пробелом и должна быть одинаковой во всех символах, составляющих сообщение. Хотя строка "I...D" может состоять из произвольных знаков (за исключением дополнительных пробелов), самое эффективное кодирование обеспечивается в том случае, если она является строкой прописных букв.

Поле порядка следования символов состоит из двух прописных букв: первая кодирует порядковый номер символа в последовательности, а вторая - общее число символов в последовательности, где "А"=1, "В"=2, и т.д. Например в серии из четырех символов следует использовать порядковые поля "AD", "BD", "CD" и "DD". Использование протокола структурированного соединения позволяет связать до 26 символов.

9 Символы для инициализации устройства считывания


Часто бывает полезно иметь символы, единственной функцией которых является передача данных для выполнения инициализации и настройки конфигурации устройства считывания. Компактный символ Aztec Code с одним слоем, или полноразмерный символ, содержащий от 1 до 22 слоев, может быть закодирован для выполнения инициализации устройства считывания искусственной установкой старшего значащего бита указателя длины данных в сообщении. При этом младшие биты кодируют фактическую длину данных в сообщении. Поскольку общая емкость такого символа меньше обозначенной длины данных в сообщении, некорректная установка сигнализирует о том, что закодированные данные в сообщении не предназначены для передачи, а будут использоваться для настройки устройства считывания. Формат и значение закодированных данных определяются изготовителем устройства считывания.

10 Интерпретация в расширенном канале


Протокол интерпретации в расширенном канале (ECI) позволяет интерпретировать выходной поток данных способом, отличающимся от кодирования по умолчанию. Протокол ECI имеет согласованное определение в нескольких символиках. Поддерживаются четыре широкие категории интерпретаций:

a) международные наборы знаков (или кодовые наборы);

b) интерпретации общего назначения (например, для целей шифрования и уплотнения);

c) интерпретации, определяемые пользователем для закрытых систем;

d) управляющая информация структурированного соединения в небуферизованном режиме.

Протокол ECI полностью установлен в документе AIM Inc. "Международная техническая спецификация: Интерпретация в расширенном канале, часть 1" (International Technical Specification: Extended Channel Interpretations Part 1). Протокол обеспечивает унифицированный метод для определения установленных интерпретаций значений в байтах перед выводом на печать и после декодирования.

Интерпретация в расширенном канале (ECI) определяется числом, состоящим из шести цифр, закодированным в символе Aztec Code знаком ECI, за которым следуют от одного до шести 4-битовых значений, представляющих цифры. Конкретные интерпретации приведены в документе AIM Inc. "Регистр наборов знаков интерпретации в расширенном канале" (Extended Channel Interpretations Character Set Register).

Интерпретация в расширенном канале (ECI) может использоваться только с устройствами считывания, обеспечивающими передачу идентификаторов символик. Устройства считывания, у которых передача идентификатора символики отсутствует или не используется, не должны передавать данные из любых символов, содержащих интерпретацию в расширенном канале (ECI). Исключение допустимо в том случае, если интерпретация в расширенном канале (ECI) полностью обрабатываются устройством считывания.

10.1 Кодирование интерпретаций в расширенном канале в символах Aztec Code


Назначение интерпретаций в расширенном канале (ECI) активизируют путем кодирования знака FLG(n) из кодового набора Punctuation, за которым следуют три бита, кодирующих значение "n" от одного до шести в двоичном виде. За знаками FLG(1-6) следуют от одного до шести 4-битовых значений, которые представляют собой номер ECI с использованием кодового набора Digit. Начальные нули, пропущенные в процессе кодирования, снова вставляют в выходные данные сообщения при декодировании, дополняя номер ECI до шести битов.

10.2 Кодовые наборы и интерпретации в расширенном канале


Используемые кодовые наборы определяются исключительно кодируемыми 8-битовыми значениями данных и не зависят от действующей интерпретации в расширенном канале (ECI). Например последовательность значений в диапазоне от 48 до 57 десятичных значений ASCII наиболее эффективно кодируют в кодовом наборе Digit, даже если эта последовательность не будет интерпретироваться как цифры.

10.3 Интерпретации в расширенном канале и структурированное соединение


Интерпретации в расширенном канале (ECI) могут находиться в любой позиции данных в сообщении, закодированном одним символом или комплектом символов Aztec Code структурированного соединения. Активизируемая интерпретация ECI действует до конца закодированных данных или до обнаружения других интерпретаций в расширенном канале (ECI). Таким образом интерпретация ECI может распространяться на два и более символа.

10.4 Протокол постдекодирования


Протокол передачи данных в ECI должен соответствовать приведенному в 16.3. При использовании ECI идентификаторы символики (16.4) должны быть реализованы полностью, а соответствующий идентификатор символики следует передавать в качестве преамбулы к передаваемым данным.

11 Возможности пользователей


Потенциальные пользователи символики Aztec Code могут принять решения относительно кодируемых данных, необходимого уровня исправления ошибок и возможности разделения данных в сообщении на несколько символов.

11.1 Выбор пользователем кодируемых данных в сообщении


Во многих применениях штрихового кода кодируемые данные в сообщении жестко определены заранее, на стадии планирования может существовать определенная свобода выбора форматов данных, оптимизированных для эффективного кодирования. В общем случае максимальная эффективность кодирования достигается тогда, когда данные в сообщении состоят из длинной последовательности знаков, принадлежащих к одному кодовому набору (таблица 2). Текст, состоящий только из прописных букв латинского алфавита, только цифровых данных или данных, представленных в виде байтов, характеризует три типа данных в сообщении, наиболее эффективно кодируемых в символах Aztec Code.

11.2 Выбор пользователем минимального уровня исправления ошибок


С технической точки зрения символика Aztec Code допускает, чтобы символ не включал в себя кодовых слов исправления ошибок или чтобы их число достигало 99%, хотя оба этих предельных значения практически не применяют. Рекомендуемый уровень исправления ошибок для обычных применений составляет 23% информационной емкости символа плюс 3 кодовых слова. Таким образом 5-слойный символ, содержащий 120 кодовых слов, обычно содержит по меньшей мере 28 плюс 3 контрольных кодовых слова, а для кодирования данных сообщения остается до 89 кодовых слов. Программы печати должны обеспечивать данный уровень исправления ошибок по умолчанию.

Если пользователь предъявляет менее жесткие требования к надежности приложения или считает надежность приложения недостаточной, он может выбрать другой минимальный процент исправления ошибок (менее 10%) или более 50% с обязательным использованием трех дополнительных контрольных слов для обеспечения безопасности данных. Процент назван "минимальным" потому, что в зависимости от длины данных в сообщении символика требует добавления дополнительных контрольных слов выше этого минимума для заполнения символа.

Некоторые применения лучше всего работают при фиксированном размере (числе слоев данных) всех символов Aztec Code независимо от содержащихся в них данных. В этом случае пользователь должен задать размер, включающий в себя соответствующий уровень исправления ошибок для самого длинного предполагаемого сообщения. Тогда более короткие сообщения будут кодироваться с избыточным уровнем исправления ошибок, а символы в данном применении будут более надежными.

11.3 Выбор пользователем структурированного соединения


Структурированное соединение позволяет распределить данные в сообщении в нескольких символах Aztec Code, а затем восстановить их после того, как все символы были считаны в произвольном порядке. Структурированное соединение обеспечивает возможность нанесения символов Aztec Code в областях, форма которых отличается от квадратной. Оно также доступно для кодирования данных сообщения, длина которых превышает практическую емкость одного символа Aztec Code.

11.4 Выбор пользователем необязательных форматов символов


В соответствии с таблицей 1 программы печати обычно печатают символ наименьшего размера для заданного набора данных и процента исправления ошибок в последовательности слоев данных 1*, 2*, 3*, 4*, 4, 5, 6, ..., 32. Для символов инициализации устройства считывания программа печати обычно печатает символ наименьшего размера в последовательности слоев данных 1*, 1, 2, 3, 4, 5, ..., 22. В другом случае пользователь может задать размер и формат нужного символа, переустанавливая настройки по умолчанию.

Пользователи должны явно задать режим печати символов Aztec Runes для применений, работающих с небольшими наборами данных.

12 Размеры


Основным размером символов Aztec Code является размер , который соответствует расстоянию между центрами элементов сетки с номинально квадратными ячейками, а также номинально соответствует высоте и ширине квадратных модулей этой сетки.

Спецификация символики не ограничивает значения размера . Тем не менее, значения горизонтального и вертикального шагов сетки должны оставаться постоянными в пределах символа и отличаться не более чем на 10% друг от друга. Более того, ширина каждого темного модуля должна быть равна горизонтальному шагу сетки ±20%, а его высота - вертикальному шагу сетки ±20%.

13 Рекомендации для пользователей

13.1 Интерпретация для визуального чтения


Интерпретация для визуального чтения данных, закодированных в сообщении, может сопровождать символ Aztec Code в любой области за пределами внешнего слоя данных (рисунок G.2). Размер и тип шрифта в настоящем стандарте не установлены.

13.2 Возможность автораспознавания


Символ Aztec Code может быть считан декодерами штриховых кодов, запрограммированными соответствующим образом и спроектированными так, чтобы автоматически отличать его от других символик.

Для обеспечения максимальной надежности считывания действующий набор символик декодера должен ограничиваться теми символиками, которые необходимы для данного применения.

13.3 Параметры применения, определяемые пользователем


Стандарты по применению должны определять следующие параметры символов Aztec Code, установленные в настоящем стандарте, как переменные:

a) данные, подлежащие кодированию;

b) размер , используемый при печати символа;

c) размещение символа на этикетке, объекте или документе;

d) требуемый уровень качества печати символа.

Также допускается переопределение (переустановка) уровня исправления ошибок по умолчанию, для чего указывают либо другой минимальный процент исправления ошибок, либо фиксированный формат и размер символа.

14 Рекомендуемый алгоритм декодирования


Рекомендуемый алгоритм декодирования находит символы в изображении и декодирует их. Именно этот алгоритм декодирования используют при определении качества печати символов. Он также может использоваться практическими реализациями устройств считывания.

Декодирование символа Aztec Code из сохраненного изображения состоит из следующих этапов:

1) определение положения символа на изображении;

2) обработка шаблона поиска "мишень" с целью определения его центра, основных осей символа и номинальных расстояний между модулями;

3) декодирование ядра символа: сначала алгоритм определяет, не инвертированы ли черный/белый цвета, потом определяет формат символа, его ориентацию, а затем проводит идентификацию, декодирование и проверку служебного сообщения;

4) определение структуры, декодирование и проверка данных сообщения;

5) преобразование кодовых слов данных в выходной поток знаков.

Предполагается, что алгоритм декодирования работает с изображением, представленном в двоичном виде, в котором каждому пикселю присваивают значение "0" для темного модуля или "1" - для светлого (не следует путать данное правило с правилами присваивания значений модулям.) Если изображение хранится в оттенках серого, то сначала необходимо использовать пороговую методику для получения соответствующего изображения в двоичном виде. Для оценки качества печати символа выбирают глобальное пороговое значение, которое представляет собой среднюю величину между максимальным и минимальным значениями коэффициента отражения в изображении, после чего каждому пикселю присваивают значение "1" при превышении указанного порога или "0" - в противном случае. На практике устройство считывания может использовать при обработке неглобальный порог, учитывающий неравномерную освещенность и условия просмотра, и даже применять межпиксельную интерполяцию для построения изображения в двоичном виде с более высоким пространственным разрешением, чем у изображения в оттенках серого. Это минимизирует потери информационного содержимого на этапе предварительной обработки.

14.1 Поиск символов-кандидатов


Шаблон поиска "мишень" в символе Aztec Code обладает двумя четко выраженными характеристиками, которые отличают его от других объектов в изображении. Первая: на топологическом уровне его центральный модуль "изолирован" от остальных частей символа, как остров на озере, которое находится на другом острове на озере, и т.д. Это позволяет легко распознавать его на отсканированном изображении, на котором идентифицируются связанные области. В приложении С описан метод сканирования для данной топологии.

Каждая горизонтальная строка топологического алгоритма поиска, содержащая секцию с тремя и более участками постоянно возрастающего шаблона, за которыми следуют три и более участка постоянно убывающего шаблона (строка 9 на рисунке С.7), может рассматриваться как возможный кандидат при обнаружении шаблона поиска "мишень". Наибольшее значение в этой секции становится кандидатом на роль шаблона поиска "мишень" (значение пикселя 4 в строке 9 на рисунке С.7). Описанный критерий является рекомендуемым методом верификации.

В соответствии с этим сканирование, отслеживающее границы на изображении, обнаруживает шаблон поиска "мишень" как одну границу, полностью включенную внутрь другой границы, которая в свою очередь полностью включена внутрь следующей границы, и т.д. Каждый из этих методов обеспечивает надежное обнаружение центров символов-кандидатов, даже в сильно искаженных изображениях, при условии, что их шаблоны поиска остались неповрежденными.

Вторая отличительная характеристика шаблона поиска "мишень", которую можно использовать в работе устройств считывания: шаблон поиска "мишень" состоит из выровненных прямых углов, направленных от центрального модуля наружу. Сканирование изображения, обнаруживающее скопление таких углов, особенно соединенных с длинными отрезками или другими углами, должно обнаружить шаблон поиска "мишень" даже при его частичном повреждении. При таком подходе шаблон поиска "мишень", стертый на 25%, но сохранивший, по меньшей мере, две группы углов, будет надежно обнаружен.

14.2 Обработка изображения шаблона поиска "мишень"


Изображение шаблона поиска обрабатывают с целью нахождения как можно большего числа углов и их сопоставления с другими углами того же концентрического квадрата шаблона поиска "мишень". Позицию центрального модуля определяют как среднюю позицию между противостоящими парами углов. Две главные оси символа определяют как направления между смежными парами углов. Расстояния между модулями вдоль этих осей определяют расстояниями между смежными углами.

Пять критических начальных параметров (точный центр символа, направление двух его главных осей и номинальные расстояния между модулями вдоль этих осей) определяют несколькими способами по особенностям квадратного шаблона поиска "мишень", поэтому они могут определяться устройствами считывания даже в том случае, если шаблон поиска содержит незначительные повреждения.

14.3 Декодирование ядра символа


Декодирование ядра символа начинают с определения центров всех модулей квадратной области, центр которой совпадает с центром шаблона поиска "мишень", и определения того, являются они светлыми или темными. По полученной информации сначала определяют визуальную полярность изображения символа (нормальное или инвертированное) и его формат (компактный или полноразмерный), а затем его ориентацию (направление к верхнему краю символа) и возможные зеркальные отображения, после чего осуществляют сборку, проверку и обработку служебного сообщения.

14.3.1 Составление схемы и дискретизация центров модулей

Рекомендуемый метод составления схемы центров модулей в символах Aztec Code может быть в общем виде описан как "выращивание двумерного кристалла". Начиная с позиции центрального модуля, формируют первый слой из центров окружающих его восьми модулей. Эти позиции устанавливают так, чтобы они были равномерно распределены в пределах внутреннего (обычно светлого) кольца шаблона поиска "мишень", после чего формируют следующий слой из центров 16 модулей, подбираемых так, чтобы они попали в пределы следующего (обычно темного) кольца, и т.д. Процесс составления и корректирования позиций центров модулей по отношению к окружающим границам может быть выполнен по спирали в наружном направлении, толщиной один модуль, пока не будет составлена схема всего ядра символа. Характеристика центра каждого модуля в двоичном виде определяется и сохраняется в битовой карте символа.

14.3.2 Определение инверсии изображения и формата символа

Если среди восьми модулей, окружающих центр шаблона поиска, преобладают светлые, то в ходе процесса декодирования темные области обычно считают эквивалентными двоичной "1". В противном случае считают, что изображение было инвертировано и светлые области представляют "1".

Пятое кольцо модулей, окружающих центр шаблона поиска (квадрат 11x11), используют для определения формата символа: если оно содержит четыре и более двоичных "1" (обычно темных модулей), то символ считают компактным символом Aztec Code и составление схемы ядра символа на этом завершают. В противном случае символ Aztec Code считают полноразмерным и составление схемы ядра символа продолжают еще на два слоя модулей в наружном направлении.

14.3.3 Определение ориентации и зеркального отображения символа

Во внешнем слое ядра символа проводят двоичное сравнение 12 битов, представляющих собой модули шаблона ориентации, находящихся в углах, с заданным шаблоном для каждого из четырех возможных способов ориентации и для четырех возможных зеркальных отображений этих шаблонов. Если в любом из восьми проверенных случаев выявляется правильное совпадение от 9 до 12 битов, то такую ориентацию считают истинной. В противном случае считают, что декодирование завершилось неудачей.

14.3.4 Декодирование служебного сообщения

При наличии сведений о формате и ориентации символа модули служебного сообщения преобразуют в биты, разбивают на 4-битовые пакеты и проводят в них исправление ошибок над полем GF(16). В процессе исправления ошибок могут использоваться все значения синдромов, поскольку даже ничтожная вероятность необнаруженной ошибки в служебном сообщении в итоге приведет не к невозможности считывания, а к неверному считыванию символа. Если исправление ошибок завершается неудачей, то принимают решение о невозможности декодирования. В противном случае из служебного сообщения извлекают информацию о числе слоев данных и числе слов данных . В особом случае, когда старший значащий бит для установлен и превышает емкость слоев, данный символ идентифицируют как символ инициализации устройства считывания, а старший бит в сбрасывают.

14.4 Декодирование данных сообщения


Декодирование данных сообщения начинают с составления схемы и выбора центров для всех оставшихся модулей в границах символа с последующей сборкой и проверкой спиральной последовательности кодовых слов.

14.4.1 Составление схемы слоев данных

Для символов Aztec Code, содержащих четыре и менее слоев данных, в том числе для всех компактных символов Aztec Code, "выращивание двумерного кристалла" продолжают в наружном направлении для составления схемы всех слоев областей данных.

В полноразмерных символах, имеющих больший размер, используют более точный метод составления схемы позиций центров решетки привязки. Центры модулей решетки привязки определяют по алгоритму линейного выращивания кристалла, приведенному в приложении D. После составления схемы решетка привязки обеспечивает набор локализованных эталонных координат, по которым вычисляют и определяют позиции центров всех модулей данных.

Конечным результатом применения обоих методов - "выращивания двумерного кристалла" и составления схемы решетки привязки - является битовая карта, распространяющаяся на всю область символа.

14.4.2 Сборка кодовых слов

Размер и число кодовых слов в символе определяют значением - числом слоев данных, закодированным в служебном сообщении (таблица 1). Сборку кодовых слов проводят в обратном порядке, начиная от последнего контрольного кодового слова с постепенным продвижением к первому кодовому слову данных, по битовой карте символа. Спираль начинается из левого верхнего угла ядра символа и продолжается в наружном направлении по часовой стрелке. Простая циклическая процедура, которая параллельно обрабатывает два слоя модулей, а для полноразмерных символов пропускает все модули, у которых координата или кратна 16, позволяет собрать полную последовательность кодовых слов для символа Aztec Code любого размера.

14.4.3 Проверка кодовых слов

Последовательность кодовых слов, из которых кодовых слов содержат данные, а кодовых слов (кодовые слова исправления ошибок, вычисляемых по формуле ) - контрольную информацию (таблица 3), проверяют и корректируют с использованием процедур Месси-Берлекэмпа/Чена/Форни (Massey-Berlekamp/Chien/Forney), усовершенствованных для эффективной обработки стираний над соответствующим полем Галуа GF(2) (приложение В, раздел В.3). Все кодовые слова данных, содержащие только "0" или "1", а также все кодовые слова с модулями, выходящими за пределы изображения, считают стираниями. Процедура Месси-Берлекэмпа начинается с вычисления значений синдромов и, следовательно, легко адаптируется к числу контрольных кодовых слов, содержащихся в символе. Два (более двух в случае преобладания ошибок - см. раздел В.2) контрольных кодовых слова резервируют для обнаружения ошибок, так что для исправления ошибок используют -2 (или менее) контрольных кодовых слов. Если выполнить исправление ошибок не удается, декодирование считают несостоявшимся.

14.5 Преобразование кодовых слов данных


В ходе преобразования кодовых слов данных (процедура, обратная по отношению к кодированию данных сообщения) слова сначала преобразуют в двоичный поток, а затем последовательные сегменты этого потока преобразуют в поток выходных знаков данных.

14.5.1 Формирование двоичного потока данных

Сборка двоичного потока начинается со старшего значащего бита первого кодового слова данных и завершается младшим битом последнего кодового слова данных. При этом пропускают младшие значащие биты всех слов, у которых все наиболее значащие биты содержат только "0" или только "1".

14.5.2 Преобразование двоичного потока

Преобразование двоичного потока в знаки данных осуществляют в соответствии с таблицей 2, начиная с кодового набора Upper.

Двоичный поток разбивают на последовательные 5-битовые, 4-битовые, иногда на 11- и 8-битовые значения (с использованием знака Byte Shift) с фиксацией и сдвигом регистра между различными кодовыми наборами. Завершающие биты данных последнего кодового слова, состоящие из одних единиц, игнорируют. Выходная последовательность знаков данных завершается окончанием двоичного потока.

Если в самом начале интерпретации до первого знака данных закодирован знак фиксации кодового набора Upper Latch, то символ идентифицируют как содержащий заголовок структурированного соединения. Далее он либо обрабатывается устройством считывания, либо передается в неизменном виде с включением соответствующего идентификатора символики.

15 Качество печати символа


Оценку качества печати символов Aztec Code проводят в соответствии с рекомендациями по качеству печати двумерных матричных символов, установленными в ИСО/МЭК 15415 со следующими дополнениями и изменениями.

15.1 Параметры качества печати символа

15.1.1 Повреждение фиксированного шаблона

Основные принципы измерения и оценки повреждений фиксированных шаблонов установлены в приложении Е.

15.1.2 Осевая неоднородность

Символы Aztec Code имеют номинально квадратную форму. Следовательно, для оценки осевой неоднородности AN (Axial Nonuniformity) необходимо использовать общую высоту и ширину символа (вместо среднего расстояния между центрами модулей) как определено при рекомендуемом алгоритме декодирования. вычисляют по формуле

.


Оценку параметра осуществляют в точном соответствии с пунктом 7.8.6 ИСО/МЭК 15415:2004.

15.1.3 Неиспользованное исправление ошибок

Поля, содержащие код Рида-Соломона в служебном сообщении и в данных сообщения, оценивают независимо друг от друга в соответствии с пунктом 7.8.8 ИСО/МЭК 15415:2004 с использованием 0 для служебного сообщения и 2 для данных сообщения. При оценке неиспользованного исправления ошибок должен быть выбран меньший из двух полученных классов.

15.1.4 Приращение при печати

Оценка приращения при печати основана на проверке того, что "коэффициент заполнения" линий, проходящих через шаблон поиска и вдоль решетки привязки (если она имеется), обычно равный 50%, находится в диапазоне от 30% до 70% включительно.

Линии, проходящие через центр символа и выровненные по каждой из его основных осей, перебирают слева направо, а затем сверху вниз. В процессе перебора суммируют число обнаруженных светлых () и темных () пикселей. В полноразмерных символах обработку проводят по всей ширине или высоте символа, а в компактных символах обработку ограничивают шаблоном поиска. Число пикселей нормализуют по числу светлых или темных модулей, которые эти линии должны были пересечь. В результате получают значения и . Итоговая оценка приращения при печати по каждому направлению составляет

.


Полученное значение оценивают по критерию 0,50 с пороговыми значениями 0,30 и 0,70:


Соответствующий класс качества печати определяют следующим образом:

А (4,0), если - 0,500,50;

В (3,0), если - 0,700,70;

С (2,0), если - 0,850,85;

D (1,0), если - 1,001,00;

F (0,0), если - 1,00 или 1,00.

Класс приращения при печати должен быть равен меньшему из двух значений, определенных по горизонтали и по вертикали.

15.2 Оценка качества печати символа

15.2.1 Класс качества изображения

Классом качества печати для каждого считанного изображения считают наименьший класс, который выбирают из классов параметров, вычисленных по ИСО/МЭК 15415, и классов приращения при печати, вычисленных в соответствии с 15.1.4 настоящего стандарта. Полученный класс соответствует классу качества изображения.

15.2.2 Класс качества символа

Для каждого символа определяют пять или более классов качества изображений при повороте символа на 360° вокруг центральной точки шаблона поиска. Углы поворота для всех изображений должны быть приблизительно равными.

Класс качества символа вычисляют как среднее арифметическое значение классов качества изображений в соответствии с 15.2.1.

15.3 Измерения в процессе технологического контроля


Существуют ряд средств и методов проведения измерений с целью мониторинга и контроля за процессом создания символов Aztec Code. К их числу относятся:

1) значения контраста символов, полученные с помощью верификатора линейного штрихового кода;

2) специальные эталонные символы, упрощающие визуальную проверку неровностей сетки и измерение приращения при печати с помощью верификатора линейного штрихового кода;

3) определение осевой неоднородности путем физического измерения;

4) визуальная проверка шаблона поиска для выявления критических дефектов.

Эти средства и методы описаны в приложении I.

16 Передаваемые данные

16.1 Основная интерпретация


Символы, предназначенные для инициализации устройства считывания, не должны содержать никаких данных. Данные символов последовательности структурированного соединения либо сохраняются в буфере для последующей передачи в составе полностью собранных данных сообщения, либо передаются с соответствующим знаком-модификатором идентификатора символики и порядковым заголовком.

Для всех остальных символов Aztec Code должна передаваться полная строка данных сообщения, полученная в результате декодирования.

Более сложные интерпретации рассмотрены далее.

16.2 Протокол для знака FNC1


Если первому знаку данных в сообщении предшествует знак FNC1, то он указывает, что закодированные данные в сообщении соответствуют типовому формату с использованием идентификаторов применения GS1. Передача идентификаторов символики должна быть разрешена, а знак FNC1 может отсутствовать в передаваемых данных. Присутствие знака FNC1 должно быть отмечено использованием соответствующего задаваемого значения в идентификаторе символики (приложение F).

Если знак FNC1 следует сразу же за одной буквой верхнего или нижнего регистра или двумя цифрами в начале сообщения, он сигнализирует о соответствии закодированных данных в сообщении конкретному нормативному документу (например, отраслевому или промышленному стандарту). Передача идентификаторов символики должна быть разрешена, а знак FNC1 может отсутствовать в передаваемых данных. Присутствие знака FNC1 должно быть отмечено использованием соответствующего задаваемого значения в идентификаторе символики. Начальный(ые) знак(и) данных сообщения передаются в составе закодированных данных сообщения.

В любой последующей позиции знак FNC1 выполняет функции разделителя полей, а в передаваемых данных сообщения представляется знаком набора ASCII с десятичным значением 29.

16.3 Протокол для интерпретации в расширенном канале


В системах с поддержкой интерпретации в расширенном канале (ECI) при каждой передаче должен использоваться префикс идентификатора символики. Все знаки ECI (FLG(n)), встречающиеся в потоке, будут передаваться в виде управляющего знака с десятичным значением 92 (или 5С в шестнадцатеричном представлении) в стандартной интерпретации представляющего знак "\" (ОБРАТНАЯ ДРОБНАЯ ЧЕРТА). Следующие ""n"" закодированных цифр дополняют начальными нулями до последовательности из шести цифр, которая передается в формате соответствующих знаков набора ASCII (с десятичными значениями от 48 до 57).

Прикладное программное обеспечение, распознающее конструкции вида ""\nnnnnn"", должны интерпретировать все последующие символы как принадлежащие ECI, определяемой данной последовательностью из шести цифр. Такая интерпретация продолжает действовать до конца закодированных данных или до обнаружения другой последовательности ECI.

Если в закодированных данных встречается байт с десятичным значением 92 (независимо от того, представляет он знак ""\"" или нет), то в потоке передаются два байта с этим значением. Таким образом, однократное вхождение всегда сигнализирует о начале управляющей последовательности ECI, а двукратное вхождение обозначает реальные данные.

Пример - Закодированные данные: А\\В\С.

Передача: A\\\\B\\C.


Использование соответствующего идентификатора символики гарантирует, что в данном применении может быть правильно интерпретирован управляющий знак.

16.4 Идентификатор символики


После идентификации структуры данных (включая использование каких-либо последовательностей ECI) декодер добавляет соответствующий идентификатор символики в виде преамбулы к передаваемым данным. Идентификатор символики необходим в том случае, если в передаваемых данных присутствуют ECI, если знак FNC1 используют в соответствии с 16.2 или если используют небуферизованное структурированное соединение (приложение F).

16.5 Пример передаваемых данных


В этом примере в символе Aztec Code кодируют последовательность двух знаков ""¶Ж"". Знак ""¶"" представлен байтом с десятичным значением 182 в кодовом наборе по умолчанию Aztec Code (ECI 000003, что соответствует ИСО/МЭК 8859-1). Буква кириллицы ""Ж"" отсутствует в ECI 000003, но может быть представлена в наборе знаков по ИСО/МЭК 8859-5 (соответствует ECI 000007) с тем же байтом с десятичным значением 182. Таким образом, для представления всех данных сообщения после первого знака вставляют знак перехода на ECI 000007, как описано ниже.

Символ кодирует данные сообщения с использованием следующей последовательности знаков Aztec Code:

[B/S(1 )],[182],[P/S],[FLG(1)],[""7""],[B/S(1 )],[182],

которым соответствует следующий двоичный поток (повторяющий приведенную выше форму записи):

[11111(00001)],[10110110],[00000],[00000(001)],[1001],[11111(00001)],[10110110].

Декодер передает следующие байты (включая префикс идентификатора символики с задаваемым значением 3, указывающим на применение протокола ECI):

93, 122, 51, 182, 92, 48, 48, 48, 48, 48, 55, 182.

В интерпретации по умолчанию эти байты будут иметь следующее графическое представление:

]z3¶\000007¶.


Следует обратить внимание на то, что декодер обеспечивает выдачу сигнала о переключении на ECI 000007, но не интерпретацию результата.

Программное обеспечение, поддерживающее ECI в приложении-получателе, удалит управляющую последовательность \000007, а буква кириллицы ""Ж"" будет представлена способом, зависящим от системы (например, путем изменения шрифта в системе подготовки текста). Конечный результат будет соответствовать исходным данным сообщения ""¶Ж"".

Приложение А (обязательное). Символы Aztec Runes

Приложение А
(обязательное)


Символы Aztec Runes представляют собой серию небольших, но хорошо различимых графических объектов, пригодных для машинного считывания, спроектированных с расчетом на графическую совместимость с символами Aztec Code. В сущности они являются ядром символа компактных символов Aztec Code с различными служебными сообщениями, которые в этом случае передают восемь битов фактических данных. Таким образом, символы Aztec Runes размером 11x11 модулей включают в себя 256 графических объектов, которые обнаруживаются и считываются устройствами считывания Aztec Code.

А.1 Описание символа

Рисунок А.1 - Типовые символы Aztec Runes


Рисунок А.1 - Типовые символы Aztec Runes

На рисунке А.1 изображены некоторые типовые символы Aztec Runes. Базовая структура символов Aztec Runes приведена на рисунке А.2. Каждый символ Aztec Rune состоит из шаблона поиска ""мишень"", шаблонов ориентации и данных сообщения, закодированных по алгоритму Рида-Соломона.

Рисунок А.2 - Структура символа Aztec Rune


Рисунок А.2 - Структура символа Aztec Rune

Шаблоны поиска и ориентации в символе Aztec Rune совпадают с определяемыми для компактных символов Aztec Code (5.1.1). Модули с данными сообщения заполняют один слой, прилегающий к шаблону поиска (по аналогии со служебным сообщением в 5.1.1.3). Как и для символов Aztec Code, наличие окружающей свободной зоны не обязательно.

А.2 Кодирование данных сообщения

28 битов, составляющих данные сообщения символа Aztec Rune, подразделяют на семь 4-битовых слов, два из которых содержат данные, а остальные пять являются контрольными кодовыми словами кода Рида-Соломона, вычисленными над полем GF(16), в точном соответствии с определением для служебных сообщений в компактных символах Aztec Code (7.2.3). Однако для того чтобы они отличались от обычных служебных сообщений, каждый бит инвертируется на графическом уровне, что эквивалентно выполнению операции ""исключающего ИЛИ"" значения каждого слова с двоичным шаблоном ""1010"".

Таким образом, при кодировании 8-битовое кодируемое значение разбивается на два 4-битовых слова, которые затем дополняются пятью контрольными кодовыми словами с использованием процедур для служебных сообщений компактных символов, после чего значения каждого из семи кодовых слов объединяют операцией ""исключающего ИЛИ"" со значением ""1010"" и размещают по часовой стрелке в одном слое, прилегающем к шаблону поиска. При этом темные модули представляют двоичные ""1"", а светлые модули - двоичные ""0"".

А.3 Декодирование данных сообщения

Рекомендуемый алгоритм декодирования Aztec Code (раздел 14) также подходит для поиска символов Aztec Runes. При этом полностью применимы все методы выявления инверсии изображения, различения символов компактного и полноразмерного форматов, определения ориентации изображения и зеркального отображения по шаблонам ориентации. Декодирование символов Aztec Runes проводят при неудачном исправлении ошибок в служебном сообщении компактного символа следующим образом:

1) каждое из семи 4-битовых слов ""служебного сообщения"" объединяют операцией ""исключающего ИЛИ"" со значением ""1010""

Другие госты в подкатегории

    ГОСТ 15029-69

    ГОСТ 27464-87

    ГОСТ 19768-93

    ГОСТ 28803-90

    ГОСТ 27465-87

    ГОСТ 20687-75

    ГОСТ 27463-87

    ГОСТ 30819-2002

    ГОСТ 30820-2002

    ГОСТ 30742-2001

    ГОСТ 30833-2002

    ГОСТ 31016-2003

    ГОСТ 31245-2004

    ГОСТ 34.10-2018

    ГОСТ 27466-87

    ГОСТ 30721-2000

    ГОСТ 34.12-2018

    ГОСТ 34.13-2018

    ГОСТ 34.310-95

    ГОСТ 34.311-95

    ГОСТ 34.302.2-91

    ГОСТ 34731-2021

    ГОСТ 34822-2022

    ГОСТ 34693.6-2020

    ГОСТ 30743-2001

    ГОСТ ISO/IEC 15418-2014

    ГОСТ 34.11-2018

    ГОСТ 30832-2002

    ГОСТ ISO/IEC 15426-1-2021

    ГОСТ ISO/IEC 15426-2-2022

    ГОСТ ISO/IEC 15420-2010

    ГОСТ ISO/IEC 15417-2013

    ГОСТ ISO/IEC 15416-2019

    ГОСТ ISO/IEC 15459-2-2016

    ГОСТ ISO/IEC 15459-1-2016

    ГОСТ ISO/IEC 15459-3-2016

    ГОСТ ISO/IEC 15459-4-2016

    ГОСТ ISO/IEC 15963-1-2021

    ГОСТ ISO/IEC 15963-2-2021

    ГОСТ ISO/IEC 15459-5-2016

    ГОСТ ISO/IEC 15459-6-2016

    ГОСТ ISO/IEC 19794-1-2015

    ГОСТ ISO/IEC 2382-37-2016

    ГОСТ ISO/IEC 24713-1-2013

    ГОСТ ISO/IEC 29160-2022

    ГОСТ ISO/IEC 16390-2017

    ГОСТ ИСО/МЭК 15426-1-2003

    ГОСТ ISO/IEC 15423-2014

    ГОСТ ИСО/МЭК 15459-1-2008

    ГОСТ ISO/IEC 16388-2017

    ГОСТ ИСО/МЭК 15459-2-2008

    ГОСТ 34.301-91

    ГОСТ ИСО/МЭК 16390-2005

    ГОСТ ISO/IEC 29160-2014

    ГОСТ ИСО/МЭК 15420-2001

    ГОСТ Р 34.12-2015

    ГОСТ 28147-89

    ГОСТ ISO 15394-2013

    ГОСТ Р 50916-2017

    ГОСТ Р 50916-96

    ГОСТ Р 51001-96

    ГОСТ Р 34.11-2012

    ГОСТ Р 51077-2017

    ГОСТ Р 51077-97

    ГОСТ Р 51002-96

    ГОСТ Р 34.11-94

    ГОСТ Р 51294.2-99

    ГОСТ Р 51294.4-2000

    ГОСТ Р 51294.5-2000

    ГОСТ Р 34.303-92

    ГОСТ Р 34.10-2001

    ГОСТ Р 51294.8-2001

    ГОСТ Р 34.10-94

    ГОСТ Р 51294.1-99

    ГОСТ Р 34.13-2015

    ГОСТ Р 52633.1-2009

    ГОСТ Р 51294.10-2002

    ГОСТ Р 52633.4-2011

    ГОСТ Р 52633.3-2011

    ГОСТ Р 53113.1-2008

    ГОСТ Р 53113.2-2009

    ГОСТ Р 51294.9-2002

    ГОСТ Р 53131-2008

    ГОСТ Р 53115-2008

    ГОСТ Р 52633.2-2010

    ГОСТ Р 54412-2011

    ГОСТ Р 52633.5-2011

    ГОСТ Р 34.10-2012

    ГОСТ Р 54581-2011

    ГОСТ Р 54583-2011

    ГОСТ Р 54411-2018

    ГОСТ Р 55021-2012

    ГОСТ Р 54582-2011

    ГОСТ Р 52633.6-2012

    ГОСТ Р 56045-2014

    ГОСТ Р 57332-2016

    ГОСТ Р 58231-2018

    ГОСТ Р 58273-2018

    ГОСТ Р 58292-2018

    ГОСТ Р 57302-2016

    ГОСТ Р 58293-2018

    ГОСТ Р 58294-2018

    ГОСТ Р 54621-2011

    ГОСТ Р 58539-2019

    ГОСТ Р 58667.4-2021

    ГОСТ Р 58668.11-2019

    ГОСТ Р 58295-2018

    ГОСТ Р 54411-2011

    ГОСТ Р 58668.8-2019

    ГОСТ Р 51294.7-2001

    ГОСТ Р 59389.1-2021

    ГОСТ Р 59389.2-2021

    ГОСТ Р 59503-2021

    ГОСТ Р 59389.4-2021

    ГОСТ Р 59886-2021

    ГОСТ Р ИСО/МЭК 10116-93

    ГОСТ Р 58298-2018

    ГОСТ Р ИСО/МЭК 11179-1-2010

    ГОСТ Р ИСО/МЭК 11179-2-2012

    ГОСТ Р 59002-2020

    ГОСТ Р ИСО/МЭК 11179-4-2012

    ГОСТ Р ИСО/МЭК 15408-1-2002

    ГОСТ Р ИСО/МЭК 15408-1-2008

    ГОСТ Р ИСО/МЭК 15408-1-2012

    ГОСТ ISO/IEC 15438-2018

    ГОСТ Р ИСО/МЭК 11179-3-2012

    ГОСТ Р ИСО/МЭК 15408-2-2013

    ГОСТ Р ИСО/МЭК 15408-3-2008

    ГОСТ Р ИСО/МЭК 15408-3-2013

    ГОСТ Р ИСО/МЭК 15408-2-2002

    ГОСТ Р 53112-2008

    ГОСТ Р ИСО/МЭК 15408-2-2008

    ГОСТ Р ИСО/МЭК 15419-2005

    ГОСТ Р ИСО/МЭК 11179-5-2012

    ГОСТ Р ИСО/МЭК 15408-3-2002

    ГОСТ Р ИСО/МЭК 15459-3-2007

    ГОСТ Р 56914-2016

    ГОСТ Р ИСО/МЭК 15459-4-2007

    ГОСТ Р ИСО/МЭК 15459-6-2009

    ГОСТ Р ИСО/МЭК 15961-2-2021

    ГОСТ Р ИСО/МЭК 15961-3-2021

    ГОСТ Р ИСО/МЭК 15459-5-2008

    ГОСТ Р ИСО/МЭК 15426-1-2002

    ГОСТ Р ИСО/МЭК 15963-2005

    ГОСТ Р ИСО/МЭК 15434-2007

    ГОСТ Р ИСО/МЭК 15963-2011

    ГОСТ Р ИСО/МЭК 15426-2-2016

    ГОСТ Р ИСО/МЭК 16022-2008

    ГОСТ Р ИСО/МЭК 17826-2015

    ГОСТ Р ИСО/МЭК 18000-6-2013

    ГОСТ Р ИСО/МЭК 18028-1-2008

    ГОСТ Р ИСО/МЭК 16480-2017

    ГОСТ Р ИСО/МЭК 18045-2008

    ГОСТ Р ИСО/МЭК 18045-2013

    ГОСТ Р ИСО/МЭК 18046-2009

    ГОСТ Р ИСО/МЭК 19784-1-2007

    ГОСТ Р ИСО/МЭК 19784-2-2010

    ГОСТ Р ИСО/МЭК 19784-4-2014

    ГОСТ Р ИСО/МЭК 19785-1-2008

    ГОСТ Р ИСО/МЭК 18000-7-2012

    ГОСТ Р ИСО/МЭК 19785-4-2012

    ГОСТ Р ИСО/МЭК 19794-1-2008

    ГОСТ Р ИСО/МЭК 19785-2-2008

    ГОСТ Р ИСО/МЭК 15415-2012

    ГОСТ Р ИСО/МЭК 18000-62-2014

    ГОСТ Р ИСО/МЭК 19794-14-2017

    ГОСТ Р 59230-2020

    ГОСТ Р 58082-2018

    ГОСТ Р ИСО/МЭК 19794-2-2013

    ГОСТ Р ИСО/МЭК 19794-10-2010

    ГОСТ Р ИСО/МЭК 19794-11-2015

    ГОСТ Р ИСО/МЭК 19794-4-2006

    ГОСТ Р ИСО/МЭК 19794-6-2006

    ГОСТ Р ИСО/МЭК 19794-6-2014

    ГОСТ Р 51294.6-2000

    ГОСТ Р ИСО/МЭК 19794-2-2005

    ГОСТ Р ИСО/МЭК 15423-2005

    ГОСТ Р ИСО/МЭК 19794-4-2014

    ГОСТ Р ИСО/МЭК 19794-9-2009

    ГОСТ Р ИСО/МЭК 19794-8-2009

    ГОСТ Р ИСО/МЭК 19794-3-2009

    ГОСТ Р ИСО/МЭК 19794-9-2015

    ГОСТ Р ИСО/МЭК 19795-2-2008

    ГОСТ Р ИСО/МЭК 21827-2010

    ГОСТ Р ИСО/МЭК 24708-2013

    ГОСТ Р ИСО/МЭК 24709-1-2009

    ГОСТ Р ИСО/МЭК 24709-2-2011

    ГОСТ Р ИСО/МЭК 19794-7-2009

    ГОСТ Р ИСО/МЭК 24709-3-2013

    ГОСТ Р ИСО/МЭК 19794-8-2015

    ГОСТ Р ИСО/МЭК 19795-6-2015

    ГОСТ Р ИСО/МЭК 24713-2-2011

    ГОСТ Р ИСО/МЭК 24730-1-2017

    ГОСТ Р ИСО/МЭК 24730-2-2016

    ГОСТ Р ИСО/МЭК 24713-3-2016

    ГОСТ Р ИСО/МЭК 24730-21-2014

    ГОСТ Р ИСО/МЭК 24730-22-2015

    ГОСТ Р ИСО/МЭК 27000-2012

    ГОСТ Р ИСО/МЭК 27001-2021

    ГОСТ Р ИСО/МЭК 27001-2006

    ГОСТ Р ИСО/МЭК 27003-2012

    ГОСТ Р ИСО/МЭК 19795-1-2007

    ГОСТ Р ИСО/МЭК 27004-2021

    ГОСТ Р ИСО/МЭК 27005-2010

    ГОСТ Р ИСО/МЭК 27002-2012

    ГОСТ Р ИСО/МЭК 27004-2011

    ГОСТ Р ИСО/МЭК 27006-2008

    ГОСТ Р ИСО/МЭК 27017-2021

    ГОСТ Р ИСО/МЭК 18004-2015

    ГОСТ Р ИСО/МЭК 27021-2021

    ГОСТ Р ИСО/МЭК 27007-2014

    ГОСТ Р ИСО/МЭК 27011-2012

    ГОСТ Р ИСО/МЭК 27033-2-2021

    ГОСТ Р ИСО/МЭК 27033-1-2011

    ГОСТ Р ИСО/МЭК 27033-4-2021

    ГОСТ Р ИСО/МЭК 27031-2012

    ГОСТ Р ИСО/МЭК 27033-5-2021

    ГОСТ Р ИСО/МЭК 27036-1-2021

    ГОСТ Р ИСО/МЭК 29100-2013

    ГОСТ Р ИСО/МЭК 27037-2014

    ГОСТ Р ИСО/МЭК 29109-1-2012

    ГОСТ Р ИСО/МЭК 19794-5-2013

    ГОСТ Р ИСО/МЭК 27034-1-2014

    ГОСТ Р ИСО/МЭК 29109-10-2017

    ГОСТ Р ИСО/МЭК 29109-7-2016

    ГОСТ Р ИСО/МЭК 19795-4-2011

    ГОСТ Р ИСО/МЭК 18047-6-2015

    ГОСТ Р ИСО/МЭК 24730-5-2014

    ГОСТ Р ИСО/МЭК 29158-2022

    ГОСТ Р ИСО/МЭК 29109-9-2017

    ГОСТ Р ИСО/МЭК 27033-3-2014

    ГОСТ Р ИСО/МЭК 29109-6-2016

    ГОСТ Р ИСО/МЭК 29794-1-2018

    ГОСТ Р ИСО/МЭК 29161-2019

    ГОСТ Р ИСО/МЭК 29159-1-2017

    ГОСТ Р ИСО/МЭК ТО 15446-2008

    ГОСТ Р ИСО/МЭК 29109-4-2015

    ГОСТ Р ИСО/МЭК 29794-6-2018

    ГОСТ Р ИСО/МЭК ТО 19795-3-2009

    ГОСТ Р ИСО/МЭК ТО 19791-2008

    ГОСТ Р ИСО/МЭК 29109-8-2016

    ГОСТ Р ИСО/МЭК 29109-5-2013

    ГОСТ Р ИСО/МЭК 29141-2012

    ГОСТ Р ИСО 28560-2-2014

    ГОСТ Р ИСО/МЭК 29794-1-2012

    ГОСТ Р ИСО/МЭК 6937-93

    ГОСТ Р ИСО/МЭК 19794-7-2017