При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном приложении ДВ
5 Некоторые положения международного стандарта, указанного в пункте 4, могут являться объектами получения патентных прав. Международная организация по стандартизации (ИСО) не несет ответственности за идентификацию некоторых или всех подобных прав
6 ВВЕДЕН ВПЕРВЫЕ
Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте национального органа Российской Федерации по стандартизации в сети Интернет (www.gost.ru)
Необходимо различать четыре различных с технической точки зрения представителя семейства символики QR Code, которые, однако, тесно связаны друг с другом и представляют собой следующую эволюционную последовательность:
- QR Code Model 1 - первоначальная спецификация QR Code, описание которой приведено в AIM ITS 97-001 Международная спецификация символики. QR Code (International Symbology Specification - QR Code);
- QR Code Model 2 - расширенная форма символики с дополнительными свойствами (прежде всего дополнение символа направляющими шаблонами для более точной навигации по большим символам), которая стала основой для первой версии ИСО/МЭК 18004 <*>;
- QR Code (основа для второй версии ИСО/МЭК 18004 <**> символика, в значительной степени соответствующая QR Code Model 2; отличающаяся от этого формата QR Code дополнительными параметрами для символов, представленных в зеркальном отображении инвертированного изображения (светлые символы на темном фоне), а также опциями, используемыми для определения альтернативных наборов знаков, отличающихся от набора знаков по умолчанию;
- формат Micro QR Code (установленный во второй версии ИСО/МЭК 18004), являющийся вариантом QR Code с уменьшенным числом служебных модулей и ограниченным диапазоном размеров, позволяющим представлять малые объемы данных в символах небольшого размера, особенно подходящих для прямого маркирования деталей и компонентов и для применений с ограниченным пространством для размещения символа.
--------------------------------
QR Code - матричная символика. Символ состоит из массива номинально квадратных модулей, структурированных в регулярную квадратную матрицу, включая уникальные шаблоны поиска, размещенные в трех углах символа (в Micro QR Code - только в одном углу) и предназначенные для упрощения определения места нахождения, размера и наклона символа. Предусмотрен широкий диапазон размеров и четыре уровня исправления ошибок. Размер символа в модулях устанавливает пользователь для обеспечения производства символов различными методами.
Символы QR Code Model 2 полностью совместимы с системами, считывающими символы QR Code.
Символы QR Code Model 1 рекомендуется использовать только в замкнутых применениях, и нет необходимости в поддержке формата QR Code Model 1 для оборудования, соответствующего настоящему стандарту. Поскольку символы QR Code рекомендуется в качестве образца для использования во вновь создаваемых и открытых системах применения QR Code, в настоящем стандарте приведено полное описание символов QR Code, также в приложении N приведен перечень отличий символов QR Code Model 1 от символов QR Code.
Сноски в тексте стандарта, выделенные курсивом, приведены для пояснения текста оригинала.
Настоящий стандарт устанавливает требования к символике QR Code <1>, а также параметры символики, методы кодирования знаков данных, форматы символов, требования к размерам, правила исправления ошибок, рекомендуемый алгоритм декодирования, требования к качеству производства, выбираемые пользователем параметры применения.
--------------------------------
<1> Наименование символики произносится как Кюар Код; аббревиатура QR расшифровывается как quick response, что в переводе на русский язык означает быстрый отклик.
Символы QR Code (и оборудование, предназначенное для создания или считывания символов QR Code) соответствуют требованиям настоящего стандарта, если они обеспечивают или поддерживают параметры, приведенные в настоящем стандарте.
Символы, созданные в соответствии с требованиями QR Code Model 1 по ИСО/МЭК 18004:2006, не могут быть считаны с помощью оборудования, соответствующего настоящему стандарту.
Символы, созданные в соответствии с требованиями QR Code Model 2 по ИСО/МЭК 18004:2000, считывают с помощью оборудования, соответствующего настоящему стандарту.
Символы, созданные в соответствии с требованиями настоящего стандарта, не могут быть считаны с помощью оборудования по ИСО/МЭК 18004:2000. Символы, которые используют дополнительные параметры QR Code, также не могут быть считаны с помощью такого оборудования.
Символы, созданные в соответствии с требованиями настоящего стандарта, не могут быть напечатаны с помощью оборудования, соответствующего требованиям предыдущей версии ИСО/МЭК 18004:2000. Символы, которые используют дополнительные параметры QR Code, также не могут быть напечатаны с помощью такого оборудования.
Разновидности символики QR Code Model 2 и Micro QR Code рекомендуется использовать для открытых систем и вновь создаваемых применений.
В настоящем стандарте использованы нормативные ссылки на следующие стандарты и другие нормативные документы, которые необходимо учитывать при использовании настоящего стандарта. В случае ссылок на документы, у которых указана дата утверждения, необходимо пользоваться только указанной редакцией. В случае, когда дата утверждения не приведена, следует пользоваться последней редакцией ссылочных документов, включая любые поправки и изменения к ним:
ИСО/МЭК 8859-1:1998 <2> Информационные технологии. 8-битовые однобайтовые наборы кодированных графических знаков. Часть 1. Латинский алфавит N 1 (Information technology - 8-bit single-byte coded graphic character sets - Part 1: Latin alphabet No. 1)
--------------------------------
<2> Набор знаков приведен в приложении ДА.
ИСО/МЭК 15415 Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация испытаний символов штрихового кода для оценки качества печати. Двумерные символы (Information technology - Automatic identification and data capture techniques - Bar code print quality test specification - Two-dimensional symbols)
ИСО/МЭК 19762-1 Информационные технологии. Технологии автоматической идентификации и сбора данных (АИСД). Гармонизированный словарь. Часть 1. Общие термины, связанные с автоматической идентификацией и сбором данных (Information technology - Automatic identification and data capture (AIDC) techniques - Harmonized vocabulary - Part 1: General terms relating to AIDC)
ИСО/МЭК 19762-2 Информационные технологии. Технологии автоматической идентификации и сбора данных (АИСД). Гармонизированный словарь. Часть 2. Оптические носители данных (ОНД) (Information technology - Automatic identification and data capture (AIDC) techniques - Harmonized vocabulary - Part 2: Optically readable media (ORM))
JIS X 0201 7-битовые и 8-битовые наборы знаков для обмена информацией (7-bit and 8-bit coded character sets for information interchange)
В настоящем стандарте применяются термины, определенные в ИСО/МЭК 19762-1, ИСО/МЭК 19762-2, а также следующие:
4.1 индикатор числа знаков (character count indicator): Битовая последовательность, определяющая длину строки данных в текущем режиме кодирования.
4.2 маскирование данных (data masking): Процесс применения операции XOR к комбинациям битов в области кодирования с использованием шаблонов маски, с целью образования символа со сбалансированным числом темных и светлых модулей и уменьшения вероятности присутствия комбинаций, которые могут помешать быстрой обработке изображения.
4.3 указатель шаблона маски данных (data mask pattern reference): Трехбитовый идентификатор, указывающий шаблон маски данных, используемый в символе.
4.4 область кодирования (encoding region): Область символа, свободная от функциональных шаблонов и предназначенная для кодирования данных и кодовых слов исправления ошибок и информации о версии и формате символа.
4.5 исключительный поднабор (exclusive subset): Подмножество знаков в наборе знаков режима, которые не пересекаются с более ограниченным набором знаков другого режима.
4.6 шаблон расширения (extension pattern): Функциональный шаблон в символах Model 1, не кодирующий данные.
4.7 информация о формате (format information): Шаблон, в котором закодирована информация об основных параметрах, необходимых для обеспечения декодирования оставшейся части области кодирования.
4.8 QR Code (QR Code): Обозначение всех символов QR Code от версии 1 до версии 40 для обеспечения возможности их отличия от символов Micro QR Code.
4.9 функциональный шаблон (function pattern): Дополнительные компоненты символа (шаблоны поиска, разделитель, шаблоны синхронизации, направляющие шаблоны), которые требуются для уточнения места нахождения символа или определения его параметров с целью обеспечения декодирования.
4.10 маскирование (masking): Процесс применения операции XOR к комбинации битов в какой-либо области символа с использованием шаблона маски для уменьшения комбинаций, которые могут препятствовать быстрой обработке изображения.
4.11 микро (micro): Обозначение всех символов Micro QR Code от версии M1 до версии M4 для обеспечения возможности их отличия от символов QR Code.
4.12 режим (mode): Способ преобразования последовательности кодируемых знаков в двоичную строку.
4.13 индикатор режима (mode indicator): Идентификатор, состоящий из четырех битов, указывающий режим, в котором закодирована следующая за ним последовательность данных.
4.14 бит-заполнитель (padding bit): Нулевой бит, не представляющий данные, предназначенный для заполнения оставшихся незаполненными позиций последнего кодового слова после ограничителя <1> в двоичной строке данных.
--------------------------------
<1> Кодируемые данные пакуются в двоичный поток с точностью до бита, а алгоритмы размещения данных в символе и расчета исправления ошибок используют 8-битовые кодовые слова. Если последнее кодовое слово остается заполненным не до конца, используют биты-заполнители.
4.15 остаточный бит (remainder bit): Нулевой бит, не представляющий данные, используемый для заполнения оставшихся незаполненными позиций в области кодирования после последнего знака символа в случае, если область кодирования, предназначенная для знаков символа, не полностью распределена для размещения 8-битовых знаков символа.
4.16 остаточное кодовое слово (remainder codeword): Кодовое слово - заполнитель, размещаемое после кодовых слов исправления ошибок, используемое для заполнения оставшихся незаполненными позиций кодовых слов с целью доукомплектования символа, если общее число кодовых слов данных и исправления ошибок не достаточно для полного заполнения его номинальной емкости <1>.
--------------------------------
<1> Остаточные кодовые слова добавляют после кодовых слов исправления ошибок.
4.17 сегмент (segment): Последовательность данных, закодированная согласно правилам одной интерпретации в расширенном канале (ECI) или режима кодирования.
4.18 разделитель (separator): Функциональный шаблон, состоящий из светлых модулей, шириной один модуль, отделяющий шаблоны поиска от остального содержимого символа.
4.19 номер символа (symbol number): Поле из трех битов, указывающее версию символа и уровень исправления ошибок, используемое как часть информации о формате в символах Micro QR Code.
4.20 ограничитель (terminator): Битовый шаблон, состоящий из некоторого числа (зависящего от символа) нулевых битов, используемый для индикации окончания двоичной строки, представляющей данные.
4.21 шаблон синхронизации (timing pattern): Чередующаяся последовательность темных и светлых модулей, предназначенная для определения координат модулей в символе.
4.22 версия (version): Размер символа в соответствии с его позицией в последовательности допустимых размеров символов; символы Micro QR Code имеют размеры (в модулях) от 11 x 11 (версия M1) до 17 x 17 (версия M4), а символы QR Code - от 21 x 21 (версия 1) до 177 x 177 (версия 40).
Примечание - Уровень исправления ошибок, применимый к символу, может быть добавлен к обозначению версии, например, версия 4-L или версия M3-Q.
4.23 информация о версии (version information): Шаблон, закодированный в некоторых символах QR Code, содержащий информацию о версии символа вместе с битами исправления ошибок для этих данных.
и соглашения об обозначениях
Определения математических символов, используемых в формулах и уравнениях, приведены после соответствующих формул и уравнений.
Кроме того, в настоящем стандарте применяются следующие математические и логические операторы:
div - оператор деления на целое число;
mod - оператор вычисления остатка от деления на целое число;
XOR - исключающее ИЛИ (exclusive-or) - логическая функция или операция, результатом которой является единица только в случае неэквивалентности двух входов; обозначается знаком
BCH - код Боуза-Чоудхури-Хоквингема (Bose-Chaudhuri-Hocquenghem);
ECI - интерпретация в расширенном канале (Extended Channel Interpretation);
RS - код Рида-Соломона (Reed-Solomon).
5.3.1 Позиции модулей
Для упрощения ссылок позиции модулей определяют через координаты строки и столбца символа в форме (i, j), где i определяет строку (отсчет производят сверху вниз) и j - столбец (отсчет производят слева направо); отсчет начинают с 0. Таким образом, модуль (0, 0) расположен в верхнем левом углу символа.
5.3.2 Представление байтов
Содержимое байта представляют в его шестнадцатеричном значении.
5.3.3 Ссылки на версии
Для символов QR Code версию символа представляют в форме V-E, где V - обозначает номер версии (от 1 до 40), а E указывает уровень исправления ошибок (L, M, Q, H).
Для символов Micro QR Code версию символа представляют в форме MV-E, где M указывает на символ формата Micro QR Code, а V (со значениями от 1 до 4) и E (со значениями L, M, Q) соответствуют вышеуказанному.
QR Code - это матричная символика, имеющая следующие параметры:
a) форматы:
1) QR Code, который обладает полным набором возможностей и максимальной емкостью для данных;
2) Micro QR Code, который обладает уменьшенным набором возможностей, рядом ограниченных возможностей и уменьшенной емкостью для данных (по сравнению с символами QR Code);
b) кодируемые наборы знаков:
1) числовые данные (цифры от 0 до 9);
2) алфавитно-цифровые данные (цифры от 0 до 9; прописные буквы от A до Z и девять специальных графических знаков: пробел, $, %, *, +, -, ., /, :);
3) байтовые данные (по умолчанию - в соответствии с ИСО/МЭК 8859-1 или другой набор знаков <1>, если это специально указано (см. 7.3.5));
4) знаки кандзи <2>. Один знак кандзи в QR Code может быть уплотнен в 13 битов;
--------------------------------
<1> В приложении ДА приведен набор знаков кирилловского алфавита по ИСО/МЭК 8859-5.
<2> Кандзи (японское наименование -
c) представление данных:
темный модуль, как правило, является двоичной единицей, а светлый модуль - двоичным нулем. В случаях обратимого изображения - см. 6.2;
d) размеры символа (не включая свободную зону):
1) символы Micro QR Code: размеры (в модулях) от 11 x 11 до 17 x 17 (версии от M1 до M4 с шагом два модуля для каждой стороны);
2) символы QR Code: размеры (в модулях) от 21 x 21 до 177 x 177 (версии от 1 до 40 с шагом четыре модуля для каждой стороны);
e) число знаков данных в символе:
1) символ Micro QR Code максимального размера, версия M4-L:
- числовые данные: 35 знаков;
- алфавитно-цифровые данные: 21 знак;
- данные в байтах: 15 знаков;
- знаки кандзи: 9 знаков;
2) символ QR Code максимального размера, версия 40-L:
- числовые данные: 7089 знаков;
- алфавитно-цифровые данные: 4296 знаков;
- данные в байтах: 2953 знака;
- знаки кандзи: 1817 знаков;
f) выбираемый уровень исправления ошибок:
Используют четыре уровня исправления ошибок Рида-Соломона (обозначаемые L, M, Q и H в порядке увеличения занимаемой емкости):
- L - 7%;
- M - 15%;
- Q - 25%;
- H - 30% от числа кодовых слов символа.
Для символов Micro QR Code уровень исправления ошибок H не используют. Для Micro QR Code версии M1 алгоритм Рида-Соломона обеспечивает только возможность обнаружения ошибок;
g) тип кода:
- матричный;
h) независимость от ориентации:
- обеспечивается (допускается поворот на любой угол и зеркальное отображение).
На рисунке 1 представлен символ QR Code версии 1 с типовым цветовым сочетанием, символ с инвертированным изображением представлен в 6.2, на рисунках символы приведены в обычной ориентации и в зеркальном отображении.
![]() a)
![]() b)
![]() c)
![]() d)
a) обычная ориентация и типовые значения коэффициентов отражения;
b) обычная ориентация и инвертированные значения коэффициентов отражения;
c) зеркальная ориентация изображения и типовые значения коэффициентов отражения;
d) зеркальная ориентация изображения и инвертированные значения коэффициентов отражения
"QR Code Symbol"
На рисунке 2 представлен символ Micro QR Code версии M2 с типовым цветовым сочетанием и символ с инвертированными коэффициентами отражения (см. 6.2), на рисунках символы приведены в обычной ориентации и в зеркальном отображении.
![]() a)
![]() b)
![]() c)
![]() d)
a) обычная ориентация и типовые значения коэффициентов отражения;
b) обычная ориентация и инвертированные значения коэффициентов отражения;
c) зеркальная ориентация изображения и типовые значения коэффициентов отражения;
d) зеркальная ориентация изображения и инвертированные значения коэффициентов отражения
кодирующих текст "01234567"
Примечание - Угловые метки на рисунках 1 и 2 указывают границы свободной зоны.
В QR Code используются следующие дополнительные свойства, устанавливаемые по выбору:
- структурированное соединение
Эта опция обеспечивает возможность представления одного длинного сообщения в виде нескольких (до 16) логически связанных символов QR Code, которые могут быть отсканированы в любой последовательности с возможностью корректного восстановления исходных данных. В символах Micro QR Code структурированное соединение не допускается;
- интерпретация в расширенном канале (ECI)
Эта опция обеспечивает возможность использования наборов знаков, отличающихся от набора знаков по умолчанию (например, арабского, кириллицы, греческого), и иных интерпретаций данных (например, уплотнение данных с использованием определенных схем уплотнения) или соответствия другим международным отраслевым требованиям к кодированию. В символах Micro QR Code не допускается использование ECI, отличающейся от интерпретации по умолчанию;
- инверсия значений коэффициента отражения
Символы, предназначенные для считывания, могут быть напечатаны так, что изображение представлено темными модулями на светлом фоне, или светлыми модулями на темном фоне (см. рисунок 1 и 2). В настоящем стандарте рассматриваются символы QR Code, представляющие собой темные модули, расположенные на светлом фоне, следовательно в случае производства символов с инвертированными значениями коэффициента отражения, положения, относящиеся к темным или светлым модулям, следует применять соответственно к светлым или темным модулям;
- зеркальное отображение
Расположение модулей, определенных в настоящем стандарте, представляет "нормальную" ориентацию символа. Допускается декодировать символ, в котором модули размещены в обратном порядке по горизонтали. При рассмотрении шаблонов поиска в левом верхнем, правом верхнем и левом нижнем углах символа действие зеркального отображения заключается в обмене позициями строк и столбцов модулей.
6.3.1 Общие положения
Каждый символ QR Code состоит из номинально квадратных модулей, структурированных в регулярную матрицу, и включает область кодирования и функциональные шаблоны, называемые шаблонами поиска, разделителями, шаблонами синхронизации и направляющими шаблонами. Функциональные шаблоны не содержат данных. Символ должен быть окружен со всех четырех сторон свободной зоной. На рисунке 3 представлена структура символа версии 7. На рисунке 4 представлена структура символа версии M3.
![]() ![]() 6.3.2.1 Символы QR Code
Существует 40 возможных вариантов размера символа QR Code, обозначаемых как версия 1, версия 2, ..., версия 40. Версия 1 имеет размеры (в модулях) 21 x 21, версия 2 - 25 x 25 и так далее с шагом 4 модуля вплоть до версии 40, которая имеет размер (в модулях) 177 x 177. На рисунках 5 - 10 представлены структуры символов версий 1, 2, 6, 7, 14, 21 и 40.
![]() Рисунок 5 - Символы версий 1 и 2
![]() Версия 6
Рисунок 6 - Символ версии 6
![]() Рисунок 7 - Символ версии 7
![]() Версия 14
Рисунок 8 - Символ версии 14
![]() Версия 21
Рисунок 9 - Символ версии 21
![]() Версия 40
6.3.2.2 Символы Micro QR Code
Символы Micro QR Code могут иметь четыре размера, обозначаемые как версии с M1 по M4. Версия M1 имеет размеры (в модулях) 11 x 11, версия M2 (в модулях) - 13 x 13, версия M3 (в модулях) - 15 x 15, версия M4 (в модулях) - 17 x 17, т.е. с шагом 2 модуля по каждой стороне. На рисунке 11 представлена структура символов Micro QR Code версий с M1 по M4.
Примечание - Представлены два формата символа M3, отличающиеся только размещением кодовых слов согласно уровню исправления ошибок.
![]() Имеются три одинаковых шаблона поиска, размещенных в левом верхнем, правом верхнем и левом нижнем углах символа, как показано на рисунке 3. Каждый шаблон поиска выглядит как три вложенных друг в друга квадрата: темного размерами (в модулях) 7 x 7, светлого размерами (в модулях) 5 x 5 и темного размерами (в модулях) 3 x 3. Размеры в модулях в любом шаблоне поиска находятся в соотношении 1:1:3:1:1, как показано на рисунке 12. Представление кодируемых данных должно быть таким чтобы, что вероятность встретить такой шаблон среди кодируемых данных была очень мала, что позволяет быстро определить присутствие символа QR Code в поле обзора. Идентификация трех шаблонов, составляющих шаблон поиска, позволяет определить место нахождения и угловую ориентацию символа в поле обзора.
![]() A - 3 модуля
B - 5 модулей
C - 7 модулей
Рисунок 12 - Структура шаблона поиска
6.3.3.2 Символы Micro QR Code
Единственный шаблон поиска по 6.3.3.1 расположен в верхнем левом углу символа, как показано на рисунке 4. Идентификация шаблона поиска вместе с шаблонами синхронизации однозначно определяет размер, положение и угловую ориентацию символа в поле обзора.
6.3.4 Разделитель
Разделитель, шириной один модуль, состоящий только из светлых модулей, располагается между каждым из шаблонов поиска и областью кодирования, как показано на рисунках 3 и 4.
6.3.5 Шаблон синхронизации
Горизонтальный и вертикальный шаблоны синхронизации представляют собой соответственно строку или столбец шириной один модуль, состоящих из чередующихся темных и светлых модулей, начинающихся и заканчивающихся темным модулем. С помощью этих шаблонов определяют размер и версию символа, а также позиции для нахождения координат модулей.
В символах QR Code горизонтальный шаблон синхронизации проходит по шестой строке символа между разделителями верхнего левого и верхнего правого шаблона поиска символа; вертикальный шаблон синхронизации проходит по шестому столбцу между разделителями верхнего левого и нижнего левого шаблона поиска символа, как показано на рисунке 3.
В символах Micro QR Code горизонтальный шаблон синхронизации проходит по нулевой строке символа от правого разделителя до правого края символа; вертикальный шаблон синхронизации проходит по нулевому столбцу символа от нижнего разделителя до нижнего края символа, как показано на рисунке 4.
Направляющие шаблоны присутствуют только в символах QR Code версии 2 или версии с большим номером. Каждый шаблон представляет собой суперпозицию трех вложенных друг в друга квадратов и состоит из темного квадрата размерами (в модулях) 5 x 5, светлого размерами (в модулях) 3 x 3 и единственного темного модуля в центре. Число направляющих шаблонов зависит от версии символа и шаблоны должны присутствовать во всех символах, начиная с версии 2 и версии с большим номером, в позициях, установленных в приложении E.
6.3.7 Область кодирования
Эта область содержит знаки символа, представляющие данные, кодовые слова исправления ошибок, информацию о формате и версии. Подробные требования к знакам символа приведены в 7.7.1, к информации о формате - в 7.9, к информации о версии - в 7.10.
6.3.8 Свободная зона
Это область должна быть свободной от всех других маркировок и окружать символ со всех четырех сторон. Коэффициент отражения свободной зоны должен соответствовать коэффициенту отражения светлых модулей.
Для символов QR Code ширина свободной зоны должна быть равна 4X.
Для символов Micro QR Code ширина свободной зоны должна быть равна 2X.
В настоящем разделе описан процесс преобразования входных данных в символ QR Code.
Этап 1. Анализ данных
Анализируют входной поток данных, чтобы установить различия входящих в него знаков, которые нужно закодировать. Формат QR Code (не Micro QR Code) поддерживает интерпретацию в расширенном канале, допуская для кодирования данные, отличающиеся от заданного по умолчанию набора знаков. QR Code может включать в себя несколько режимов (см. 7.3), которые позволяют эффективно преобразовывать различные поднаборы знаков в знаки символа. По мере необходимости между режимами вставляют переключения для достижения наиболее эффективного преобразования данных в двоичную строку. Выбирают требуемый уровень обнаружения и исправления ошибок. Если пользователь не определил версию символа, которую нужно использовать, выбирают версию символа с наименьшим значением, которая допускает размещение данных. Полный перечень версий символа и соответствующих им емкостей приведен в таблице 1.
Таблица 1
Этап 2. Кодирование данных
Знаки данных преобразуют в двоичный поток в соответствии с правилами, установленными для действующего режима по 7.4.2 - 7.4.6. При необходимости смены режима вставляют индикаторы режима в начале каждого нового сегмента, а в конце данных вставляют ограничитель. Преобразуют результирующий двоичный поток в последовательность 8-битовых кодовых слов. Добавляют необходимое число знаков-заполнителей для образования требуемого числа кодовых слов в соответствии с выбранной версией символа.
Этап 3. Кодирование исправления ошибок
Последовательность кодовых слов делят на требуемое число блоков (согласно таблице 9), чтобы обеспечить возможность обработки алгоритмами исправления ошибок. Для каждого блока формируют кодовые слова исправления ошибок, добавляя кодовые слова исправления ошибок в конец последовательности кодовых слов данных.
Этап 4. Структура завершенного сообщения
Кодовые слова данных чередуют с кодовыми словами исправления ошибок от каждого блока согласно в 7.6 (этап 3) и добавляют остаточные биты, если это необходимо.
Этап 5. Размещение модулей в матрице
Модули кодовых слов размещают в матрице вместе с шаблоном поиска, разделителями, шаблонами синхронизации и направляющими шаблонами.
Этап 6. Маскирование данных
К области закодированных данных подбирают маскирующий шаблон, после чего оценивают результаты и выбирают шаблон маски, который оптимизирует баланс темных/светлых модулей и скрывает возникновение нежелательных комбинаций.
Этап 7. Информация о формате и версии
Формируют информацию о формате и, при необходимости, о версии, после чего завершают создание символа.
Анализируют строку входных данных с целью определения ее содержания и выбирают установленную по умолчанию или другую соответствующую ECI и соответствующий режим, чтобы закодировать каждую последовательность знаков в соответствии с 7.4. Каждый режим последовательно от числового до режима кандзи требует большего числа битов на знак. Допускается переключение с режима на другой в пределах символа с целью уменьшить длину выходного потока данных, некоторые части которых могут более эффективно кодироваться в одном режиме, в отличие от других частей, например числовые последовательности, сопровождаемые алфавитно-цифровыми последовательностями. Теоретически наиболее эффективно кодировать данные в режиме, требующем наименьшего числа битов на знак входных данных, но так как есть некоторая избыточность в виде индикатора режима и индикатора числа знаков, связанного с каждым изменением режима, то в результате не всегда может получиться самый короткий двоичный поток, если изменить режимы для нескольких знаков. Кроме того, так как емкость символов увеличивается дискретным ступенчатым образом от одной версии до следующей, не всегда требуется обеспечивать максимальную эффективность. Руководство по уменьшению длины двоичного потока приведено в приложении J. В символах Micro QR Code есть ограничения на использование режимов, доступных в версиях с меньшими номерами. В J.2 приведены версии символов Micro QR Code, соответствующим различным комбинациям двух режимов.
7.3.1 Общие положения
Режимы, представленные в настоящем разделе, основаны на значениях знаков и представлениях, связанных со значением ECI по умолчанию. Когда задействована любая другая ECI (только в символах QR Code), для определения оптимального режима рекомендуется использовать значения байта, а не определенные представления знаков. Например, числовой режим следует использовать, если встречается последовательность байтов данных, значения которых находятся в пределах диапазона от 30HEX до 39HEX включ. В этом случае лучшее уплотнение достигается при использовании заданных по умолчанию числовых или алфавитно-цифровых эквивалентов значений байта.
Протокол интерпретации в расширенном канале (ECI), определенный в Международных технических спецификациях организации AIM Inc. "Интерпретации в расширенном канале" (International Technical Specification Extended Channel Interpretations) <1>, допускает интерпретацию выходного потока данных, отличающегося от набора знаков по умолчанию. Протокол ECI определен одинаковым образом во множестве символик. Протокол ECI предусматривает метод интерпретации специфических значений байта после декодирования и перед выводом на печать (или монитор). Символика Micro QR Code не поддерживает протокол ECI.
--------------------------------
<1> См. спецификацию [22].
Для QR Code по умолчанию принята интерпретация ECI 000003, соответствующая набору знаков в ИСО/МЭК 8859-1.
В международных применениях могут быть использованы другие наборы знаков с помощью протокола ECI <2>. Например, интерпретация ECI 000020, соответствующая набору знаков JIS8 и Shift JIS.
--------------------------------
<2> ИСО/МЭК 8859-5 устанавливает набор знаков с буквами кирилловского алфавита. Указанный набор приведен в приложении ДА. Этому набору соответствует ECI 000007.
Эффективность применения режима ECI заключается во вставке в данные управляющей последовательности ECI. Непосредственно за ней должен стоять индикатор другого режима (например, для эффективного кодирования); режим ECI действует до конца сообщения или до следующего индикатора режима ECI.
Числовой режим кодирует данные, состоящие из десятичных цифр (0 - 9) (байтовые значения от 30HEX до 39HEX). Три знака данных обычно кодируются десятью битами.
7.3.4 Алфавитно-цифровой режим
Алфавитно-цифровой режим позволяет закодировать входные данные из набора 45 знаков: 10 десятичных цифр (0 - 9) (байтовые значения от 30HEX до 39HEX), 26 латинских букв (A - Z) (байтовые значения от 41HEX до 5AHEX) и 9 специальных символов (SP, $, %, *, +, -, ., /, :) (байтовые значения 20HEX, 24HEX, 25HEX, 2AHEX, 2BHEX, 2D до 2FHEX, 3AHEX соответственно). Обычно два входных знака кодируются 11 битами.
В символике Micro QR Code версии M1 алфавитно-цифровой режим недоступен.
В этом режиме каждый знак входных данных кодируется 8 битами.
В замкнутых системах, национальных или специальных реализациях QR Code, в байтовом режиме могут быть закодированы альтернативные 8-битовые наборы знаков, определенные в других частях ИСО/МЭК 8859. Если установлен альтернативный набор знаков, участвующие стороны, которые считывают символы QR Code, должны быть уведомлены в спецификации по применению или в двустороннем соглашении, какой именно набор знаков следует использовать.
В символике Micro QR Code версий M1 и M2 байтовый режим недоступен.
7.3.6 Режим кандзи
Режим кандзи эффективно кодирует знаки кандзи в соответствии с системой Shift JIS, основанной на JIS X 0208. Значения Shift JIS получены сдвигом соответствующих значений JIS X 0208. Кодирование со сдвигом подробно описано в JIS X 0208. Каждый двухбайтовый знак кодируется в 13-битовое кодовое слово.
Когда набор знаков, указанный для 8-битового байтового режима, использует байтовые значения в диапазоне от 81HEX до 9FHEX и/или от E0HEX до EBHEX, невозможно использовать режим кандзи однозначно, поскольку считывающие системы не способны из передаваемых данных определить, являются ли такие значения байта собственно данными или ведущим байтом двухбайтового знака. Можно получить более короткий двоичный поток, используя правила уплотнения режима кандзи, когда в данных встречается соответствующая последовательность значений байтов (т.е. ведущие байты, имеющие значения в диапазоне от 81HEX до 9FHEX и/или от E0HEX до EBHEX, сопровождаемые байтом, имеющим значение от 40HEX до FCHEX, исключая 7FHEX, или EBHEX, сопровождаемые байтом, имеющим значение от 40HEX до BFHEX). Байтовые комбинации представлены на рисунке H.1.
В символике Micro QR Code версий M1 и M2 режим кандзи недоступен.
Символы QR Code могут содержать последовательности данных в любой комбинации режимов, описанных в 7.3.2 - 7.3.9. Символы Micro QR Code могут содержать последовательности данных в любой комбинации режимов, допустимых для соответствующей версии и описанных в 7.3.3 - 7.3.7.
В приложении J приведено руководство для выбора наиболее эффективного преобразования входного потока данных в символ QR Code с множеством режимов. В подразделе J.3 приведено описание получения комбинации из двух режимов для допустимых версий символа Micro QR Code.
7.3.8 Режим структурированного соединения
Режим структурированного соединения используется в том случае, когда требуется разделить одно кодируемое сообщение на несколько символов QR Code. Все эти символы должны быть считаны, чтобы корректно восстановить первоначальное сообщение. Заголовок структурированного соединения кодируется в каждом символе и содержит информацию о длине последовательности символов, позиции символа в этой последовательности и идентификатор для проверки принадлежности всех символов одному сообщению. В разделе 8 приведена более полная информация о правилах кодирования структурированного соединения.
В символике Micro QR Code режим структурированного соединения недоступен.
Режим функционального знака 1 (FNC1) используется в сообщениях, которые содержат данные специального формата. FNC1 в "первой позиции" указывает, что данные отформатированы в соответствии с Общими спецификациями GS1. FNC1 во "второй позиции" определяет данные, отформатированные в соответствии с применением, согласованными с организацией AIM Inc. Режим FNC1 воздействует на все содержимое символа, но последующие индикаторы режима на него не оказывают влияния.
Примечание - "Первая позиция" и "вторая позиция" не относятся к фактическим местоположениям, но основаны на позиции знаков аналогично символике Code 128.
В символике Micro QR Code режим FNC1 недоступен.
7.4.1 Последовательность данных
Входные данные преобразуются в двоичный поток, состоящий из одного или нескольких сегментов, каждый из которых кодируется в собственном режиме. Двоичный поток начинается с индикатора режима и в ECI по умолчанию. Если с самого начала требуется ECI, отличающаяся от ECI по умолчанию, то двоичный поток должен начинаться с заголовка ECI перед первым сегментом.
Заголовок ECI (если присутствует) состоит из:
- индикатора режима ECI (4 бита)
- обозначения ECI (8, 16 или 24 бита).
Заголовок ECI начинается с первого (старшего) бита индикатора режима ECI и завершается последним (младшим) битом обозначения ECI.
Остальной двоичный поток может состоять из нескольких сегментов, каждый из которых состоит из:
- индикатора режима;
- индикатора числа знаков;
- двоичного потока данных.
Каждый сегмент режима начинается с первого (старшего) бита индикатора режима и заканчивается последним (младшего) битом двоичного потока данных. Между сегментами нет явного разделителя, поскольку их длина однозначно определяется правилами действующего режима и числом входных знаков данных.
Чтобы закодировать последовательность входных данных в текущем режиме, следует повторно использовать этапы в 7.4.2 - 7.4.7. В таблице 2 указаны индикаторы для каждого режима. В таблице 3 приведен размер индикатора числа знаков, который может иметь различные значения в зависимости от используемого режима и версии символа.
Таблица 2
Таблица 3
Поток данных в законченном символе завершается ограничителем, который состоит от 3 до 9 нулевых битов (см. таблицу 2), но который может отсутствовать, если после данных оставшаяся емкость символа меньше, чем необходимая длина ограничителя в битах. Ограничитель не является индикатором режима.
7.4.2.1 Общие положения
Этот режим используется для кодированных данных, подчиненных альтернативным интерпретациям значений байтов (например, альтернативные наборы знаков) в соответствии со спецификацией организации AIM, устанавливающей интерпретации в расширенном канале (ECI) <1>, которая определяет предварительную обработку этого типа данных, и включается с помощью индикатора режима 0111.
--------------------------------
<1> См. спецификацию [22].
Интерпретации в расширенном канале могут быть использованы только с устройствами считывания, позволяющими передавать идентификатор символики. Устройства считывания, которые не могут передавать идентификатор символики, не обеспечивают передачу данных из любого символа, содержащего ECI.
Входные данные ECI должны быть обработаны в системе кодирования как ряд байтовых значений.
Данные в последовательности ECI могут кодироваться в любом режиме или режимах, допускающих наиболее эффективное кодирование значений байта данных, независимо от их графического представления. Например, последовательность байтов со значениями в диапазоне от 30HEX до 39HEX может кодироваться в числовом режиме (см. 7.4.3), как если бы это была последовательность цифр от 0 до 9, даже при том, что это фактически может представлять нечисловые данные. Для определения значения индикатора числа знаков следует использовать несколько байтов (в режиме кандзи - пар байтов).
Каждая интерпретация в расширенном канале обозначается шестизначным номером представления, который кодируется в символе QR Code как первое одно, два или три кодовых слова после индикатора режима ECI. Правила кодирования приведены в таблице 4. Обозначение ECI в данных кодируется как знак со значением 5CHEX или знак "\" "обратная дробная черта" по ИСО/МЭК 8859-1, знак
В случае одиночного применения знак 5CHEX действует как управляющий знак индикатора ECI, за которым должно следовать обозначение ECI. Появление сдвоенных знаков 5CHEX свидетельствует о наличии знака данных.
При декодировании двоичный шаблон первого кодового слова обозначения ECI (то есть кодового слова сразу после индикатора режима ECI), определяет длину последовательности обозначения ECI. Число битов, имеющих значение 1, перед первым битом, имеющим значение 0, определяет число дополнительных кодовых слов после первого используемого слова, чтобы указать номер представления ECI. Битовая последовательность после первого нулевого бита - двоичная запись номера представления ECI. Меньшие номера представления ECI могут быть закодированы несколькими способами, но рекомендуется использовать самый короткий.
Таблица 4
Пример - Кодирование букв греческого алфавита с использованием набора знаков ИСО/МЭК 8859-7 (ECI 000009) в символ версии 1-H.
Пример декодирования таких данных приведен в 14.3.
7.4.2.3 Множественные ECI
В спецификации организации AIM, устанавливающей интерпретации в расширенном канале (ECI) <1>, содержатся правила, определяющие влияние последующих обозначений ECI в сегменте данных ECI. Например данные, к которым применили набор знаков ECI, могут также быть зашифрованы или уплотнены путем использования преобразования ECI, которое сосуществует с начальным ECI, или второй набор знаков ECI будет результатом завершения первого ECI и начала нового сегмента ECI. Если в данных появляется какой-либо присвоенный номер ECI, то он должен быть закодирован в символе QR Code в соответствии с 7.4.2.2 и сразу же за ним должен начинаться новый сегмент режима.
--------------------------------
<1> См. спецификацию [22].
7.4.2.4 ECI и структурированное соединение
Любую(ые) ECI следует применять по правилам, приведенным выше и в спецификации организации AIM, устанавливающей ECI, до окончания кодируемых данных или другой ECI (указанной индикатором режима 0111). Если кодируемые данные в режиме ECI должны быть размещены в двух или более символах в режиме структурированного соединения, необходимо предусмотреть заголовок ECI, состоящий из индикатора режима ECI и присвоенного номера ECI для каждого символа, для которого действует режим ECI, сразу после заголовка структурированного соединения.
Входную строку данных разделяют на группы по три цифры, а каждую группу преобразуют в 10-битовое двоичное число. Если число цифр не делится на три без остатка, последние одна или две цифры должны быть преобразованы в 4 или 7 битов соответственно. Двоичные данные объединяют и добавляют префикс индикатора режима и индикатора числа знаков. Размер в битах и битовое представление индикатора цифрового режима указаны в таблице 2, размер в битах индикатора числа знаков - в таблице 3. Число знаков входных данных преобразуют в двоичный эквивалент и добавляют как индикатор числа знаков после индикатора режима и перед кодируемыми данными.
Пример 1 - Преобразование для символа версии 1-H
Пример 2 - Преобразование для символа Micro QR Code версии M3-M
Для всех знаков входных данных длину двоичного потока для числового режима вычисляют по следующей формуле
B = M + C + 10(D DIV 3) + R,
где B - число битов в двоичном потоке;
M - размер индикатора режима в битах (4 - для символов QR Code или значение, указанное в таблице 2 для символов Micro QR Code);
C - размер индикатора числа знаков в битах (см. таблицу 3);
D - число знаков входных данных;
R = 0, если (D MOD 3) = 0;
R = 4, если (D MOD 3) = 1;
R = 7, если (D MOD 3) = 2.
7.4.4 Алфавитно-цифровой режим
Каждому знаку входных данных должно быть присвоено значение от 0 до 44 в соответствии с таблицей 5.
Таблица 5
Знаки входных данных разбивают на группы по два знака, и каждую группу преобразуют в 11-битовый двоичный код. Значение для первого знака умножают на 45 и к нему прибавляют значение для второго знака. Сумму преобразуют в 11-битовое двоичное число. Если во входных данных находится нечетное число знаков, последний знак кодируют 6-битовым двоичным числом. Двоичные данные объединяют, и перед ними вставляют индикатор режима и индикатор числа знаков. Размер и числовое значение индикатора режима для алфавитно-цифрового режима указаны в таблице 2; размер индикатора числа знаков в битах определяют в соответствии с таблицей 3. Число знаков входных данных преобразуют в двоичный эквивалент и добавляют как индикатор числа знаков после индикатора режима и перед кодируемыми данными.
В режиме FNC1 знак FNC1 может содержаться в передаваемых данных. В этом случае он должен быть представлен в алфавитно-цифровом режиме как знак "%". В 7.4.8.2, 7.4.8.3 и 14.4 приведено подробное описание кодирования и передачи FNC1 и %.
Пример - Преобразование для символа версии 1-H:
Для любого числа знаков входных данных размер двоичного потока для алфавитно-цифрового режима можно вычислить по формуле
B = M + C + 11(D DIV 2) + 6(D MOD 2),
где B - число битов в двоичном потоке;
M - размер индикатора режима в битах (4 для символов QR Code, или значение, указанное в таблице 2 для символов Micro QR Code);
C - размер индикатора числа знаков в битах (см. таблицу 3);
D - число знаков входных данных.
7.4.5 Байтовый режим
В этом режиме одно 8-битовое кодовое слово непосредственно представляет значение байтов входных данных, т.е. плотность кодирования 8 битов/знаков.
Таблица 6
![]() Примечания
1 В наборе знаков JIS8 (см. таблицу H.1) байтам со значениями с 80HEX по 9FHEX и с E0HEX по FFHEX не присвоены графические знаки, но сохранены значения. Некоторые из этих значений используют как первый байт в наборе знаков Shift JIS (см. таблицу H.2), а также для различения наборов знаков JIS8 и Shift JIS или для выполнения уплотнения в режиме кандзи. В JIS X 0208 приведены подробные сведения о кодированном представлении Shift.
2 Значения байтов с 00HEX по 7FHEX в наборе знаков JIS8 соответствуют ИСО/МЭК 8859-1 и ИСО/МЭК 646 версии IRV <1>, кроме значений 5CHEX и 7EHEX.
--------------------------------
<1> IRV - международная ссылочная версия 7-битового набора знаков (International Reference Version).
Перед двоичными данными вставляют индикатор режима и индикатор числа знаков. Размер и числовое значение индикатора режима для байтового режима указаны в таблице 2; размер индикатора числа символов в битах определяют в соответствии с таблицей 3. Число знаков входных данных преобразуют в двоичный эквивалент и добавляют как индикатор числа знаков после индикатора режима и перед кодируемыми данными.
Для любого числа входных знаков размер двоичного потока для байтового режима можно вычислить по формуле
B = M + C + 8D,
где B - число битов в двоичном потоке;
M - число битов в индикаторе режима (4 - для символов QR Code или значение, указанное в таблице 2 для Micro QR Code);
C - число битов в индикаторе числа знаков (см. таблицу 3);
D - число знаков входных данных.
В системе Shift JIS знаки кандзи представлены двухбайтовой комбинацией. Эти значения байта сдвинуты относительно значений по JIS X 0208. В JIS X 0208 приведены подробные сведения о кодированном представлении Shift. Входные знаки данных в режиме кандзи уплотнены из двойных кодовых слов в 13 битов в соответствии с требованиями, приведенными далее. Перед двоичными данными добавляют индикатор режима и индикатор числа знаков. Индикатор режима в режиме кандзи состоит или из 4 битов для символов QR Code или из числа битов, указанных в таблице 2, для символов Micro QR Code; индикатор числа знаков представлен числом битов в соответствии с таблицей 3. Число входных знаков данных преобразуют к его двоичному эквиваленту и добавляют как индикатор числа знаков после индикатора режима и перед последовательностью двоичных данных.
1 Для знаков со значениями Shift JIS от 8140HEX до 9FFCHEX:
a) вычитают 8140HEX из значения Shift JIS;
b) умножают старший байт значения, полученного на этапе a) на C0HEX;
c) прибавляют младший байт значения, вычисленного на этапе a) к значению, определенному на этапе b);
d) преобразуют значение в 13-битовую двоичную строку.
2 Для знаков со значениями Shift JIS от E040HEX до EBBFHEX:
a) вычитают C140HEX из значения Shift JIS;
b) умножают старший байт значения, полученного на этапе a) на C0HEX;
c) прибавляют младший байт значения, вычисленному на этапе a) к значению, определенному на этапе b);
d) преобразуют значение в 13-битовую двоичную строку.
Пример
3 Для всех знаков:
e) перед двоичной последовательностью, представляющей входные знаки данных, вставляют индикатор режима (см. таблицу 2) и индикатор числа знаков (число битов приведено в таблице 3) в двоичном виде.
Для любого числа входных знаков данных размер двоичного потока для режима кандзи вычисляют по формуле
B = M + C + 13D,
где B - число битов в двоичном потоке;
M - число битов в индикаторе режима (4 - для символов QR Code или значение, приведенное в таблице 2 для символов Micro QR Code);
C - число битов в индикаторе числа знаков (см. таблицу 3);
D - число знаков входных данных.
Для символа допускается начать кодирование последовательности данных в одном режиме и затем изменить режим, если этого требует содержание данных или для увеличения плотности кодирования. Подробное руководство приведено в приложении J. Каждый сегмент данных кодируется в соответствующем режиме как указано в разделах с 7.4.2 по 7.4.6 на базе структуры индикатор режима/индикатор числа знаков/данные и сопровождается индикатором режима, начинающим следующий сегмент. На рисунке 13 представлена структура данных, содержащих n сегментов.
Рисунок 13 - Формат данных в смешанном режиме
7.4.8 Режимы FNC1
7.4.8.1 Общие положения
В символах QR Code предусмотрены два индикатора режима, описание использования которых приведено в 7.3.2 - 7.3.9 и 7.4.2 - 7.4.7 для обозначения символов, которые закодированы по специальным международным отраслевым стандартам или стандартам по применению. Вместе с соответствующими данными они должны быть расположены перед обычными индикаторами режима, которые используют для эффективного кодирования данных. В случае использования таких индикаторов в декодерах должна быть предусмотрена возможность получения идентификатора символики, как определено в 14.2 и приложении F.
Примечание - "Первая позиция" фактически такой не является, но исторически соотносится с положением знака символа FNC1 в символах Code 128.
Указанный индикатор режима предназначен для обозначения символов, кодирующих данные в формате стандарта GS1, устанавливающего идентификаторы применения (Application Identifiers, AI). Для этой цели данный индикатор следует использовать в символе только один раз, и он должен быть расположен перед самым первым индикатором режима, используемым для эффективного кодирования данных (в числовом, алфавитно-цифровом, байтовом режиме или режиме кандзи), а также после заголовков ECI и/или структурированного соединения, если они присутствуют. Если спецификации GS1 требуют применения знака FNC1 (в других символиках, которые используют этот специальный знак) в качестве разделителя полей данных (то есть в конце поля данных переменной длины), в символах QR Code следует использовать знак % в алфавитно-цифровом режиме или знак GS (шестнадцатеричное значение байта 1DHEX) в байтовом режиме для выполнения этой функции. Если знак % встречается как часть данных, он должен быть закодирован как %%. Если на вход декодера поступает знак %, то его следует интерпретировать как знак набора ASCII/JIS8 с шестнадцатеричным значением 1DHEX, а если %%, то как единственный знак %.
Пример 1
Пример 2 - Кодирование/декодирование знака % в данных:
Примечание - "Вторая позиция" фактически такой не является, но исторически соотносится с положением знака символа FNC1 в символах Code 128.
Данный индикатор режима указывает, что данные соответствуют определенным отраслевым спецификациям или спецификациям по применению, предварительно согласованным с организацией AIM International. Сразу после него следует однобайтовое кодовое слово, значение которого соответствует номеру прикладного индикатора (Application Indicator), присвоенному организацией AIM International, для указания этой спецификации. Для этой цели индикатор следует использовать в символе только один раз; и он должен быть расположен перед самым первым индикатором режима, используемым для эффективного кодирования данных (в числовом, алфавитно-цифровом, байтовом режиме или режиме кандзи), а также после заголовков ECI и/или структурированного соединения, если они присутствуют. Прикладной индикатор может иметь форму любой одиночной буквы латинского алфавита из набора {a - z, A - Z} (представленной значением знака ASCII плюс 100) или двузначного числа (представленного его числовым значением) и должен быть передан декодером как первые один или два знака непосредственно перед данными. Если спецификации по применению требуют использования знака FNC1 (в других символиках, которые используют этот специальный знак) в качестве разделителя полей данных (то есть в конце поля данных переменной длины), в символах QR Code, следует использовать знак % в алфавитно-цифровом режиме или знак GS (шестнадцатеричное значение байта 1DHEX) в байтовом режиме для выполнения этой функции. Если знак % является частью данных, он должен быть закодирован как %%. Если на вход декодера поступает знак %, то его следует интерпретировать как знак ASCII/JIS8 с шестнадцатеричным значением 1DHEX, а если %%, то как одиночный знак %.
Пример
Примечание - Прикладной индикатор 37 на момент публикации настоящего стандарта не был присвоен ни одной организации, поэтому в примере приведены условные значения.
--------------------------------
Конец данных должен быть обозначен ограничителем, состоящим из последовательности нулевых битов согласно таблице 2, и добавлен к двоичному потоку данных после данных последнего сегмента режима. Ограничитель может отсутствовать, если оставшаяся после данных емкость символа меньше требуемой длины ограничителя в битах.
7.4.10 Преобразование двоичного потока в кодовые слова
Двоичные потоки, соответствующие каждому сегменту режима, должны быть соединены в порядке кодирования. Ограничитель должен быть добавлен к окончанию законченного двоичного потока согласно 7.4.9. Результирующий двоичный поток сообщения разбивают на кодовые слова. Все кодовые слова имеют размер 8 битов, кроме последнего знака символа для символов Micro QR Code версии M1 и M3, где размер должен быть равен 4 битам. Если длина двоичного потока такова, что он не заканчивается на границе кодового слова, то после последнего (младшего значащего) бита потока добавляют биты заполнители, имеющие значение 0, чтобы продлить поток до границы кодового слова. Затем, если сообщение не заполняет целиком емкость символа соответствующей версии и уровня исправления ошибок в соответствии с таблицей 8, он должен быть расширен путем поочередного добавления к его окончанию кодовых слов-заполнителей 11101100 и 00010001. В символах Micro QR Code версий M1 и M3 последнее кодовое слово имеет размер 4 бита. Кодовое слово-заполнитель, попадающее на этот заключительный знак данных символа в версиях M1 и M3 Micro QR Code, должно быть представлено как 0000. Для получения результирующей последовательности кодовых слов последовательность кодовых слов данных обрабатывают согласно 7.5 для добавления кодовых слов исправления ошибок. Кроме того, в символах некоторых версий необходимо добавить 3, 4 или 7 остаточных битов (все биты имеют значение 0) к окончанию сообщения после последнего кодового слова исправления ошибок, чтобы полностью заполнить емкость символа (см. таблицу 7).
Таблица 7
Примечание 1 - Все кодовые слова имеют размер 8 битов, за исключением последнего кодового слова данных для символов версии M1 и M3, длина которого составляет 4.
Примечание 2 - В число битов данных включены биты индикатора режима и индикатора числа знаков.
7.5.1 Способность к исправлению ошибок
В символике QR Code используют коды Рида-Соломона для обнаружения и исправления ошибок. Генерируется ряд кодовых слов исправления ошибок, которые добавляются к последовательности кодовых слов данных, чтобы обеспечить считывание символа без потери данных при его повреждении. Пользователь может выбрать один из четырех уровней исправления ошибок, приведенных в таблице 8, обеспечивающих различную способность к восстановлению в зависимости от степени повреждения:
Таблица 8
В приложении K.2 приведены рекомендации по выбору уровня исправления ошибок, который следует применить к символу.
Уровень исправления ошибок H недоступен в символах Micro QR Code.
Кодовые слова исправления ошибок обеспечивают исправление двух типов поврежденных кодовых слов: стирания (ошибочные кодовые слова, которые находятся на известных позициях) и ошибки (ошибочные кодовые слова, которые находятся на неизвестных позициях). Стираниями являются неотсканированные или нераспознанные знаки символа. Ошибка замены - это неправильно декодированный знак символа. Так как QR Code - это матричная символика, несовершенство преобразования модуля из темного в светлый или наоборот приводит к тому, что в результате получается неправильно декодированный знак символа как вероятно допустимый, однако соответствующий другому кодовому слову. Такие ошибки, приводящие к изменениям данных, требуют применения двух кодовых слов исправления ошибок для исправления.
Число стираний и ошибок, которые можно исправить одновременно, вычисляют по следующей формуле
e + 2t <= d - p,
где e - число стираний;
t - число ошибок;
d - число кодовых слов исправления ошибок;
p - число кодовых слов, зарезервированных для обнаружения ошибок.
В общем случае p = 0. Если для исправления ошибок используется
часть способности к исправлению, то увеличивается вероятность необнаружения ошибки. Всякий раз, когда число стираний больше половины числа кодовых слов исправления ошибок, используют p = 3. Для небольших символов, где число кодовых слов исправления ошибок менее 8, не следует использовать исправление стираний (для исправления ошибок следует применять e = 0 и p > 0).Например, в символе версии 6-H всего 172 кодовых слова, из которых 112 - кодовые слова исправления ошибок, оставшиеся 60 - кодовые слова данных. 112 кодовых слов исправления ошибок позволяют исправить 56 ошибок, т.е. отношение 56/172 соответствует 32,6% емкости символа.
В вышеприведенной формуле p должно иметь следующие значения:
- p = 3 для символов версии 1-L и M2-L;
- p = 2 для символов версии 1-M, 2-L, M1, M2-M, M3-L, и M4-L;
- p = 1 для символов версии 1-Q, 1-H и 3-L;
- p = 0 для всех остальных случаев.
Если p > 0 (т.е. 1, 2 или 3), то p кодовых слов действуют как кодовые слова обнаружения неисправимых ошибок и предотвращают передачу данных от символов, где число ошибок превышает способность к исправлению ошибок, и e должно быть менее d/2. В символе версии 2-L, например, общее число кодовых слов 44; из них 34 кодовых слова данных и 10 кодовых слов исправления ошибок. В соответствии с таблицей 9 способность к исправлению ошибок равна четырем ошибкам (где e = 0). Подставляют в вышеуказанную формулу
0 + (2 x 4) = 10 - 2,
учитывая, что для исправления четырех ошибок требуется только 8 кодовых слов исправления ошибок; оставшиеся два кодовых слова могут только обнаружить (но не исправить) любую дополнительную ошибку в символе и, таким образом, если ошибок более четырех, декодирование не приводит к успеху.
В зависимости от версии и уровня исправления ошибок последовательность кодовых слов данных разбивают на один или более блоков, к каждому из которых по отдельности следует применить алгоритм исправления ошибок. В таблице 9 для каждой версии и уровня исправления ошибок приведено общее число кодовых слов, число кодовых слов данных и кодовых слов исправления ошибок, а также структура и число блоков исправления ошибок.
Таблица 9
Если требуются биты остатка для заполнения оставшихся модулей емкости символа для некоторых версий символа, они все должны быть битами с нулевым значением.
Кодовые слова данных, включая кодовые слова-заполнители, необходимо разделить на несколько блоков по таблице 9. Кодовые слова исправления ошибок вычисляют отдельно для каждого блока и добавляют к кодовым словам данных.
Примечание - Символы Micro QR Code содержат только один блок.
Арифметические операции полиномов для QR Code для вычислений использует побитовый подсчет по модулю 2 и побайтовый подсчет по модулю 100011101. Это поле Галуа 28, где 100011101 соответствует простому минимальному полиному поля x8 + x4 + x3 + x2 + 1.
Кодовые слова данных - коэффициенты членов полинома, начиная с коэффициента при члене со старшей степенью, являющегося первым кодовым словом данных и заканчивая коэффициентом при члене с младшей степенью, являющегося последним кодовым словом данных перед первым кодовым словом исправления ошибок.
Кодовые слова исправления ошибок являются остатком от деления кодовых слов данных на полином g(x), используемый для кодов исправления ошибок (см. приложение A). Коэффициент при члене со старшей степенью полинома-остатка - первое кодовое слово исправления ошибок, а коэффициент при члене с нулевой степенью - последнее кодовое слово исправления ошибок и последнее кодовое слово в блоке.
Примечание - При этом вычислении полином данных символа сначала умножают на xk, а затем выполняют деление многочлена на многочлен.
Для генерации кодовых слов исправления ошибок в символике QR Code используют 36 различных порождающих полиномов, приведенных в приложении A.
Это может быть выполнено с помощью схемы, приведенной на рисунке 14. Регистры от b0 до bk-1 инициализируют нулями. Существуют две стадии генерации кодирования. На первой стадии при положении ключа в нижней позиции кодовые слова данных передаются как на выход, так и на вход схемы. Первая стадия завершается за n синхронизирующих импульсов. На второй стадии (n + 1 ... n + k синхронизирующих импульсов), при положении ключа в верхнем положении кодовые слова исправления ошибок
генерируются путем выдачи значений из всех регистров по порядку с сохранением нулевых данных на входе.![]() Рисунок 14 - Схема кодирования
кодовых слов исправления ошибок
Общее число кодовых слов в сообщении должно быть равно общему числу кодовых слов, способных к представлению в символе согласно таблицам 7 и 9.
Создание заключительной последовательности кодовых слов (данные плюс кодовые слова исправления ошибок плюс кодовые слова остатка, если необходимо) осуществляют путем выполнения следующих этапов:
1 Разделяют кодовые слова данных на n блоков согласно таблице 9 в соответствии с версией и уровнем исправления ошибок (для Micro QR Code - один блок).
2 Для каждого блока данных, вычисляют соответствующий блок кодовых слов исправления ошибок согласно 7.5.2 и приложению A.
3 Создают заключительную последовательность с помощью кодовых слов данных и исправления ошибок из каждого блока в следующем порядке: блок данных 1, кодовое слово 1; блок данных 2, кодовое слово 1; блок данных 3, кодовое слово 1; ... вплоть до блока данных n - 1, последнее кодовое слово; блок данных n, последнее кодовое слово; затем блок исправления ошибок 1, кодовое слово 1, блок исправления ошибок 2, кодовое слово 1 и т.д. до блока исправления ошибок n - 1, последнее кодовое слово; блок исправления ошибок n, последнее кодовое слово. Символы QR Code состоят из блоков данных и исправления ошибок, которые полностью заполняют емкость символа. Однако в некоторых версиях QR Code, где число модулей области кодирования не делится на 8 без остатка, к завершенному двоичному потоку может быть добавлено 3, 4 или 7 остаточных битов, чтобы полностью заполнить область кодирования символа.
Блоки данных могут иметь разную длину, в этом случае самый короткий блок данных (или блоки) должен быть помещен в начале в последовательности, и все кодовые слова данных должны быть помещены в символ перед первым кодовым словом исправления ошибок. Например, символ версии 5-H включает в себя четыре блока данных и четыре блока исправления ошибок, первые два из которых содержат 11 кодовых слов данных и 22 кодовых слова исправления ошибок соответственно, в то время как третья и четвертая пары блоков содержат 12 кодовых слов данных и 22 кодовых слова исправления ошибок соответственно. На рисунке 15 представлено возможное расположение знаков в этом символе. Каждая строка рисунка соответствует одному блоку кодовых слов данных (Dn), сопровождаемому блоком кодовых слов исправления ошибок (En). Последовательность размещения знаков в символе получают путем выбора столбцов рисунка при просмотре слева направо каждого столбца сверху вниз.
![]() Рисунок 15 - Конструирование последовательности
кодовых слов завершенного сообщения
Таким образом, заключительная последовательность кодовых слов для символа версии 5-H будет следующей: D1, D12, D23, D35, D2, D13, D24, D36, ..., D11, D22, D33, D45, D34, D46, E1, E23, E45, E67, E2, E24, E46, E68, ..., E22, E44, E66, E88. Емкость символа заполняют добавлением семи нулевых остаточных битов после последнего кодового слова.
Существует два типа знаков символа в символе QR Code регулярный и нерегулярный, использование которых зависит от их позиции в символе относительно других знаков символа и функциональных шаблонов.
Большинство кодовых слов должно быть представлено в виде регулярных блоков 2 x 4 модуля в символе. Используют два вида позиционирования этих блоков - в вертикальной ориентации (2 модуля в ширину и 4 модуля в высоту) и, в случае необходимости, когда размещение изменяет направление, в горизонтальной ориентации (4 модуля в ширину и 2 модуля в высоту). Нерегулярные знаки символа используют при изменении направления или при расположении около направляющего шаблона или другого функционального шаблона. Примеры размещения битов приведены на рисунках 16 - 18.
7.7.2 Размещение функциональных шаблонов
Создают пустую квадратную матрицу с числом модулей по горизонтали и вертикали согласно используемой версии. Позиции, соответствующие шаблону поиска, разделителю, шаблону синхронизации и направляющему шаблону должны быть заполнены светлыми или темными модулями соответствующим образом. Позиции модулей для информации о формате и информации о версии временно оставляют пустыми. Пустые позиции приведены на рисунках 19 и 20 и являются общими для всех версий (хотя информация о версии не присутствует в символах версии 1 - 6). Позиционирование направляющих шаблонов приведено в приложении E.
В области кодирования символа QR Code знаки символа позиционируют в колонки шириной два модуля, начинающиеся в нижнем правом углу символа по направлению вверх и вниз справа налево. Принципы, управляющие размещением символов и битов в пределах символов, приведены далее. На рисунках 19 и 20 представлены символы версии 2 и версии 7, применяющие эти принципы.
a) Последовательность размещения битов в столбце должна быть справа налево и снизу вверх или сверху вниз в соответствии с направлением размещения знаков символа.
b) Старший бит (изображенный на рисунках как бит 7) каждого кодового слова должен быть помещен в первую доступную позицию модуля. Последующие биты должны быть размещены в следующих позициях модулей. Поэтому старший бит должен занимать левый нижний модуль регулярного знака при восходящем направлении размещения, и правый верхний модуль при нисходящем направлении размещения. Однако он может быть размещен в правом нижнем модуле нерегулярного знака, если предыдущий знак закончился в правом столбце модулей (см. рисунок 18).
![]() при восходящем и нисходящем направлениях
c) Когда знак символа сталкивается с горизонтальной границей направляющего шаблона или шаблона синхронизации в обоих столбцах модулей, он должен продолжиться выше или ниже шаблона так, как если бы область кодирования была непрерывной.
d) При достижении верхней или нижней границы области кодирования символа (то есть края символа, информации о формате, информации о версии, или разделителя) любые оставшиеся биты в кодовом слове должны быть размещены в следующем столбце налево. Направление размещения изменяется.
![]() Рисунок 17 - Пример размещения битов в регулярных
(i) и нерегулярных (ii) знаках символа при изменении
направления размещения
e) Когда правый столбец модулей столбца знака символа сталкивается с направляющим шаблоном или областью, занятой информацией о версии, биты должны быть размещены так, чтобы был сформирован нерегулярный знак символа, сдвигая столбец модулей, не пересекающийся с направляющим шаблоном или информацией о версии. Если окончания знаков перед двумя столбцами доступны для следующего знака символа, старший бит следующего знака должен быть помещен в этот же столбец.
![]() смежных направляющему шаблону
Альтернативный метод размещения битов в символе, который обеспечивает вышеуказанный результат состоит в рассмотрении перемежающейся последовательности кодовых слов как единого двоичного потока, который размещается (начиная со старшего бита) в столбцах шириной два модуля поочередно вверх и вниз и справа налево. В каждом столбце биты размещают поочередно в правых и левых модулях, перемещая вверх или вниз согласно направлению размещения и пропуская области, занятые функциональными шаблонами, изменяя направление вверху или внизу столбца. Каждый бит всегда должен быть размещен в первую доступную позицию для модуля.
Когда емкость данных символа такая, что не делится без остатка на целое число 8-битовых знаков символа, следует использовать соответствующее число остаточных битов (3, 4 или 7 согласно таблице 1), чтобы заполнить емкость символа. Эти остаточные биты должны всегда иметь значение 0 перед маскированием данных согласно 7.8.
![]() ![]() Такие же принципы применяют к символам Micro QR Code, в которых нет нерегулярных знаков, за исключением того, что D3 в символе версии M1, D11 в символе версии M3-L и D9 в символе версии M3-M имеют форму квадратных блоков 2 x 2 из 4 модулей.
7.8.1 Общие положения
Для надежного считывания QR Code предпочтительно, чтобы темные и светлые модули были размещены в символе рациональным способом. Применение битового шаблона 1011101, используемого в шаблонах поиска, нужно избегать в других областях символа в максимально возможной степени. Для выполнения этих условий следует применять маскирование данных с использованием следующих этапов:
1 К функциональным шаблонам не применяют маскирование данных.
2 Преобразуют данную комбинацию модулей в области кодирования (исключая информацию о формате и информацию о версии) с многократными матричными шаблонами последовательно через операцию XOR. Для операции XOR совмещают модули такого шаблона с соответствующими модулями шаблона маски и полностью изменяют модули данных (со светлого на темный или наоборот), которые соответствуют темным модулям шаблона маски.
3 Обрабатывают результаты применения всех шаблонов маски, назначая штрафные очки за нежелательные особенности на каждом результате преобразования.
4 Выбирают шаблон с наименьшим числом штрафных очков.
В таблице 10 приведены указатели шаблона маски данных (двоичный код для использования в информации о формате) и условия генерации шаблона маски данных. Шаблон маски данных формируют путем определения любого модуля в области кодирования (исключая область, сохраненную для информации о формате и информации о версии) как темного, для которого условие является истинным; при условии, что i относится к позиции строки рассматриваемого модуля j к позиции его столбца, причем (i, j) = (0, 0) для верхнего левого модуля символа.
Таблица 10
На рисунке 21 приведены все шаблоны маски для символа версии 1. На рисунке 23 показан эффект от применения шаблонов 000 - 111.
![]() Примечание 1 - Три бита под каждым шаблоном являются указателем шаблона маски данных.
Примечание 2 - Уравнение, приведенное ниже указателя шаблона маски данных, показывает условия генерации шаблона маски данных; модули, на которых выполняется условие, изображены темным цветом.
На рисунке 22 ниже приведены четыре допустимых шаблона маски данных, применяемых к символам Micro QR Code версии M-4.
![]() к символам Micro QR Code версии M4
![]() 7.8.3.1 Оценка символов QR Code
После выполнения операции маскирования данных для каждого шаблона маски данных должны быть оценены результаты путем подсчета штрафных очков для каждого возникновения следующих особенностей. Чем выше число штрафных очков, тем менее приемлемым является результат. В таблице 11 переменные N1 - N4 представляют взвешенное количество штрафных очков для нежелательных особенностей (N1 = 3, N2 = 3, N3 = 40, N4 = 10), i - количество, на которое число смежных модулей одного цвета превышает 5, и k - оценка отклонения пропорции темных модулей в символе от 50% с шагом 5%. Хотя операцию маскирования данных применяют только в области кодирования символа, исключая информацию о формате, областью, которая оценивается, является весь законченный символ.
Таблица 11
Подсчет результатов применения маскирования данных
Выбирают шаблон маски данных, имеющий наименьшее число штрафных очков.
7.8.3.2 Оценка символов Micro QR Code
После выполнения операции маскирования данных в области кодирования символа с каждым шаблоном маски данных оценивают результат, подсчитывая множество темных модулей в каждой из двух границ, которые не содержат шаблоны синхронизации. Чем меньше число темных модулей, тем менее приемлемым является результат. В таких символах рекомендуется иметь больше темных модулей на границе, чтобы более эффективно отличать свободную зону от области кодирования.
Для каждого шаблона маски данных подсчитывают число темных модулей в правой и нижней границах символа (исключая последний модуль шаблона синхронизации). Оценку результата подсчета производят следующим образом:
если SUM1 <= SUM2,
то оценка = SUM1 x 16 + SUM2;
если SUM1 > SUM2,
то оценка = SUM2 x 16 + SUM1,
где SUM1 - число темных модулей на правой границе;
SUM2 - число темных модулей на левой границе.
![]() маскирования для Micro QR Code
Выбирают шаблон маски, имеющий наибольший результат.
Информация о формате представляет собой последовательность из 15 битов, содержащую 5 битов данных и 10 битов исправления ошибок, вычисляемых по коду BCH (15, 5). Подробные сведения о вычислении битов исправления ошибок для информации о формате приведены в приложении C. Первые два бита данных содержат уровень исправления ошибок символа, обозначенный соответствующим образом (таблица 12).
Таблица 12
Индикаторы уровня исправления ошибок для символов QR
Биты с третьего по пятый содержат указатель шаблона маски данных (см. таблицу 10) для шаблона, выбранного в соответствии с 7.8.3.
Десять битов исправления ошибок вычисляют согласно положениям приложения C и добавляют к окончанию пяти битов данных.
Затем к 15 битам информации о формате применяют операцию XOR с маской 101010000010010, чтобы гарантировать, что никакая комбинация уровня исправления ошибок и указателя шаблона маски данных не имеет в результате 15 нулевых битов.
В результате информация о формате должна быть размещена в области, зарезервированной для этого в символе в соответствии с рисунком 25. Следует обратить внимание, что информация о формате появляется в символе дважды, обеспечивая избыточность, так как ее правильное декодирование необходимо для декодирования завершенного символа. Младший бит информации о формате расположен в модуле с номером 0, а старший бит в модуле с номером 14 (рисунок 25). Модуль в позиции (4V + 9, 8), где V - номер версии, должен всегда быть темным и не является частью информации о формате.
![]() Пример
Уровень исправления ошибок M: 00
Указатель шаблона маски: 101
Данные: 00101
Биты кода BCH: 0011011100
До применения маски: 001010011011100
После операции XOR: 101010000010010
Биты шаблона информации о формате: 100000011001110
? ?
бит 14 бит 0
Информация о формате представляет собой 15-битовую последовательность, содержащую 5 битов данных, и 10 битов исправления ошибок, вычисляемых с использованием кода BCH (15, 5). Подробности вычисления битов исправления ошибок для информации о формате приведены в приложении C. Первые три бита данных содержат номер символа (в двоичном виде), который идентифицирует версию и уровень исправления ошибок согласно таблице 13.
Таблица 13
Номер символа для Micro QR Code
Четвертый и пятый биты информации о формате содержат указатель шаблона маски данных, указанный в таблице 10 для шаблона, определенного по 7.8.3.
Десять битов исправления ошибок вычисляют в соответствии с положениями приложения C и добавляют к пяти битам данных.
Затем к 15 битам информации о формате применяют операцию XOR с маской 100010001000101, чтобы гарантировать, что никакая комбинация номера символа и указателя шаблона маски данных не имеет в результате 15 нулевых битов.
В результате информация о формате должна быть размещена в области, сохраненной для этого в символе в соответствии с рисунками 25 и 26, в зависимости от типа символа. Младший бит информации о формате расположен в модуле с номером 0, а старший бит в модуле с номером 14 на рисунках 24 и 25.
Пример
Номер символа 0: 000
Указатель шаблона маски данных: 11
Биты данных (номер символа, указатель
шаблона маски данных): 00011
Биты кода BCH: 1101011001
Битовая последовательность без маски: 000111101011001
После операции XOR: 100010001000101
Шаблон информации о формате: 100101100011100
? ?
бит 14 бит 0
![]() о формате в символе Micro QR Code
Информацию о версии включают в символ QR Code версии 7 или выше. Это 18-битовая последовательность, содержащая 6 битов данных и 12 битов исправления ошибок, вычисляемых с использованием кода BCH (18, 6). Подробные сведения о вычислении проверочных битов информации о версии приведены в приложении D. Шесть битов данных содержат версию символа, старший бит - первый.
12 проверочных битов исправления ошибок вычисляют по алгоритму, приведенному в приложении D, и добавляются к 6 битам данных.
Информация о версии в результате не может содержать только нулевые биты, поэтому только символы версий 7 - 40 содержат информацию о версии. К информации о версии не применяют процедуру маскирования данных.
В результате информация о версии должна быть отображена в области, отведенной для этого в символе согласно рисунку 27. Следует обратить внимание, что информация о версии появляется в символе дважды, чтобы обеспечить избыточность, так как без надлежащего декодирования указанной информации невозможно декодирование всего символа. Младший бит информации о версии расположен в модуле с номером 0, а старший бит в модуле номер 17 (рисунок 28).
Пример
Номер версии: 7
Данные: 000111
BCH биты: 110010010100
Модули шаблона информации о версии: 000111110010010100
Информация о версии занимает блок модулей 6 x 3 над верхним шаблоном синхронизации и непосредственно рядом слева от левого разделителя правого верхнего шаблона поиска и блок модулей 3 x 6 слева от левого шаблона синхронизации и непосредственно над верхним разделителем левого нижнего шаблона поиска.
![]() ![]() Структурированное соединение не допускается в символах Micro QR Code.
В структурированный формат может быть объединено до 16 символов QR Code. Если символ является частью сообщения со структурированным соединением, то это должно быть указано в заголовке в первых трех позициях знаков символа.
Индикатор режима структурированного соединения имеет битовое значение 0011 и занимает первые четыре значащих бита в первом знаке символа.
Сразу за ним должны быть расположены два кодовых слова структурированного соединения, занимающие младшие биты первого знака символа, весь второй знак и старшие четыре бита третьего знака. Первое кодовое слово является индикатором очередности символа (см. 7.2). Второе кодовое слово является контрольными данными (см. 7.3) и должно быть одинаковым для всех символов структурированного соединения в пределах одного сообщения, допускающим возможность верификации того, чтобы все символы показывали принадлежность части к одному и тому же структурированному соединению. Сразу после заголовка должны следовать кодовые слова данных, начиная с индикатора режима. Если в сообщении используют одну или более интерпретаций ECI, отличающихся от ECI по умолчанию, заголовки режима ECI должны быть расположены сразу за заголовком структурного соединения.
На рисунке 29 приведены четыре символа структурированного соединения, содержащих то же самое сообщение, что и большой символ в верхней части рисунка.
![]() Рисунок 29 - Один символ (сверху) и серия символов
структурированного соединения (снизу) кодирующие "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Данное кодовое слово указывает позицию символа в последовательности (до 16) символов QR Code в формате структурированного соединения (в форме m из n символов). Первые 4 бита этого кодового слова идентифицируют позицию конкретного символа. Последние 4 бита указывают общее число символов, которые будут связаны в формате структурированного соединения. 4 битовых значения должны быть двоичными эквивалентами (m - 1) и (n - 1) соответственно.
Пример
Указание третьего символа в наборе из семи символов кодируют следующим образом:
3-я позиция: 0010
Общее число из 7 символов: 0110
Комбинация битов: 00100110
Контрольными данными является 8-битовый байт, расположенный сразу после индикатора очередности символа. Контрольные данные - значение, полученные с помощью последовательного применения операции XOR к значениям байтов всех первоначальных входных данных перед разделением на блоки знаков для символов. Индикаторы режима, индикаторы числа знаков, биты-заполнители, ограничитель и знаки-заполнители не включают в вычисления. Входные данные представлены для этого вычисления двухбайтовыми значениями JIS Shift для знаков кандзи (каждый байт, обрабатывают отдельно с применением XOR вычислений, при этом самый старший бит обрабатывают первым) и 8-битовыми значениями согласно таблице 6 для других знаков. В режиме ECI значения байтов, полученные после любого шифрования или уплотнения данных, следует использовать при вычислениях.
Пример
Входную строку "
" разбивают на "0123", "4567" и "блок знаков первого символа ("0123") - шестнадцатеричные значения 30, 31, 32, 33;
блок знаков второго символа ("4567") - шестнадцатеричные значения 34, 35, 36, 37;
блок знаков третьего символа ("
Контрольные данные из входной строки "
" вычисляют с помощью операции XOR последовательно байт за байтом.![]() Следует обратить внимание, что вычисление контрольных данных может быть выполнено или перед передачей данных на принтер или в самом принтере, если он обеспечивает такую возможность.
Символы QR Code должны иметь следующие размеры:
- размер X: ширина модуля должна быть установлена в применении с учетом технологии сканирования символа и технологии производства символа;
- размер Y: высота модуля должна быть равна X;
- минимальный размер свободной зоны равен 2X (для символов Micro QR Code) или 4X (для символов QR Code) для всех четырех сторон.
Поскольку символы QR Code способны к кодированию тысяч знаков, интерпретация для визуального чтения данных в виде расположенного рядом обычного текста может оказаться нерациональной. Как альтернатива, символ может сопровождать краткий описательный текст, а не весь закодированный текст сообщения.
Настоящий стандарт не определяет размер и тип шрифта знаков, поэтому описание может быть напечатано в любом месте вблизи символа. Интерпретация для визуального чтения не должна накладываться непосредственно на символ и на его свободные зоны.
Символы QR Code могут быть напечатаны или нанесены с использованием нескольких различных технологий. Рекомендации для пользователя приведены в приложении K.
Оценку качества печати символов QR Code следует проводить с использованием рекомендаций по оценке качества двумерных матричных символов штрихового кода, приведенных в ИСО/МЭК 15415 с учетом изменений, указанных далее.
Некоторые технологии маркирования не могут обеспечить нанесение символов, соответствующих требованиям настоящего стандарта без применения специальных мер. В приложении M приведены дополнительные рекомендации с целью помочь любой системе печати обеспечивать нанесение надлежащих символов QR Code.
Символы, полученные методом прямого маркирования изделий, и/или символы, нанесенные несоединяющимися точками, могут не соответствовать требованиям данной методики и могут быть не считаны сканерами, предназначенными для символов QR Code. Требования по применению таких символов должны устанавливать методы измерения качества, использующие ИСО/МЭК 15415 с учетом дополнительных рекомендаций по качеству согласно ИСО/МЭК ТО 29158, и могут регламентировать необходимость использования специальных сканеров для считывания символов, полученных прямым маркированием.
10.2.1 Повреждение фиксированного шаблона
Методика измерения и оценки повреждения фиксированного шаблона приведена в приложении G.
10.2.2 Класс сканирования и полный класс символа
Класс сканирования должен соответствовать самому низкому из классов контраста символа, модуляции, повреждения фиксированного шаблона, декодирования, осевой неоднородности, неоднородности сетки и неиспользованного исправления ошибок в индивидуальном изображении символа. Полный класс символа - среднее арифметическое отдельных классов сканирования для множества проверенных изображений этого символа.
10.2.3 Осевая неоднородность
Идеальную сетку рассчитывают с использованием шаблонов поиска и направляющих шаблонов в качестве базовых точек, определенных с использованием рекомендуемого алгоритма декодирования (см. раздел 12).
10.3. Методы контрольных измерений
Для мониторинга и контроля при изготовлении символов QR Code используют различные методы и инструментальные средства, приведенные в приложении M. Эти методы не обеспечивают проведение полной проверки качества печати наносимых символов (необходимый метод для оценки качества печати символа указан ранее в настоящем разделе, а также в приложении G), но отдельно и вместе предоставляют полезные сведения о создании в процессе печати пригодных для работы символов.
Этапы декодирования, начиная со считывания символа QR Code и заканчивая формированием выходной строки знаков, являются обратными по отношению к процедуре кодирования. На рисунке 30 приведена схема этого процесса.
1. Определяют место нахождения и получают изображение символа. Темные и светлые модули представляют как массив битов "0" и "1". Определяют полярность коэффициентов отражения по модулям шаблона поиска.
2. Считывают информацию о формате. Реализуют шаблон маски и проводят процедуру исправления ошибок на модулях информации о формате, если необходимо; в случае успеха символ имеет обычную ориентацию, в противном случае предпринимают попытку декодирования информации о формате для изображения в зеркальном отображении. Определяют уровень исправления ошибок в символах QR Code - непосредственно, а в символах Micro QR Code - на основе номера символа и указателя шаблона маски.
3. Считывают информацию о версии (где это применимо), и определяют версию символа (в случае Micro QR Code - из номера символа).
4. Из информации о формате получают указатель шаблона маски и реализуют процедуру маскирования данных, применяя операцию XOR к битам области данных с битами шаблона маски.
5. Считывают знаки символа согласно правилам размещения для модели и восстанавливают кодовые слова данных и исправления ошибок в сообщении.
6. Определяют число кодовых слов исправления ошибок на основании уровня исправления ошибок и находят ошибочные кодовые слова, используя кодовые слова исправления ошибок. Если ошибки были обнаружены, исправляют их.
7. Разделяют кодовые слова данных на сегменты в соответствии с индикаторами режимов и индикаторами числа знаков.
8. В заключении декодируют знаки данных в соответствии с используемым(мыми) режимом(ами) и выводят результат.
![]() С помощью данного рекомендуемого алгоритма декодирования находят на изображении символы QR Code и декодируют их.
Алгоритм распознавания, относящийся к определению темных и светлых точек в изображении:
a) Определяют глобальный порог, используя полученные значения коэффициента отражения, как среднее между минимальным и максимальным коэффициентом отражения в изображении; преобразуют изображение в массив темных и светлых пикселей на основе глобального порога.
b) Определяют место нахождения шаблона поиска. Шаблон поиска для символов QR Code состоит из трех одинаковых шаблонов, расположенных в трех из четырех углов символа. Шаблон поиска для символов Micro QR Code состоит из единственного шаблона. Согласно 6.3.3 модули в каждом шаблоне поиска формируют последовательность темный-светлый-темный-светлый-темный, относительная значения ширины каждого элемента которой находятся в соотношении 1:1:3:1:1. Для целей данного алгоритма допускается отклонение каждого значения ширине до 0,5 (то есть в диапазоне от 0,5 до 1,5 модулей для области шириной в 1 модуль и от 2,5 до 3,5 модулей для квадратной области шириной 3 модуля).
1) При обнаружении области-кандидата, отмечают позиции первой и последней точки (A и B соответственно) на линии из пикселей, которая пересекается с внешними границами шаблона поиска на изображении (см. рисунок 31). Повторяют вышеуказанное для смежных линий пикселей в изображении до тех пор, пока не будут идентифицированы все линии, пересекающие центральный блок шаблона поиска по оси X изображения.
![]() Рисунок 31 - Линия сканирования в шаблоне поиска
2) Повторяют этап 1) для столбцов пикселей, пересекающих центральный блок найденного шаблона поиска по оси Y.
3) Определяют место нахождения центр шаблона. Проводят линию через точки, находящиеся посередине между точками A и B для линий, пересекающих центральный блок шаблона поиска вдоль оси X, построенных на этапе 1). Проводят линию через точки, находящиеся посередине между точками A и B для линий, пересекающих центральный блок шаблона поиска вдоль оси Y, построенных на этапе 2). Центр шаблона поиска должен находиться в точке пересечения этих двух линий.
4) Повторяют этапы 1) - 3) для нахождения центров двух оставшихся шаблонов поиска.
5) Если не было найдено ни одной области-кандидата на шаблон поиска, изменяют пиксели на инвертированные светлые и темные пиксели и повторяют, начиная с этапа b), попытки декодировать символ как символ с инвертированными значениями коэффициентов отражения.
6) Если найден только один шаблон поиска (а места нахождения двух других не обнаружены), символ декодируют как Micro QR Code, перейдя к рекомендуемому алгоритму декодирования Micro QR Code (с этапа m).
c) Определяют угловую ориентацию символа, анализируя координаты центров найденных шаблонов поиска для уточнения, какой из шаблонов находится в левом верхнем углу символа, и таким образом находят угол поворота символа.
d) Определяют: 1) расстояние D на линии, пересекающей символ и проходящей через центры левого верхнего и правого верхнего шаблонов, и 2) ширину двух этих шаблонов WUL и WUR согласно рисунку 32.
![]() Рисунок 32 - Верхние шаблоны поиска
e) Вычисляют номинальный размер X для символа X = (WUL + WUR)/14.
f) Вычисляют приблизительную версию символа VV = [(D/X) - 10]/4.
g) Если приблизительная версия символа 6 или менее, ее принимают в качестве окончательной версии. Если приблизительная версия 7 или более, декодируют информацию о версии следующим образом.
1) Делят ширину верхнего левого шаблона WUR на 7, чтобы вычислить ширину одного модуля CPUR: CPUR = WUR/7.
2) Находят направляющие линии AC и AB, проходящие через центры трех шаблонов поиска A, B и C согласно рисунку 33. Сетку выборки центров модулей блока 1 информации о версии определяют на основе линий, параллельных направляющим линиям, координат центров шаблонов поиска и размера модуля CPUR. Определяют двоичные значения 0 и 1 по комбинации светлых и темных пикселей на сетке выборки.
![]() 3) Определяют версию, используя обнаружение и исправление ошибок, если необходимо, с помощью таблицы D.1 приложения D.
4) Если число обнаруженных ошибок превышает способность к их исправлению, вычисляют ширину левого нижнего шаблона WDL и выполняют действия, указанные на этапах a), b) и c) для декодирования блока 2 информации о версии.
a) Для символа версии 1, повторно определяют размер X как средний интервал между центрами темных и светлых модулей в верхнем шаблоне синхронизации. Подобным образом вычисляют размер Y как средний интервал между центрами темных и светлых модулей в левом шаблоне синхронизации. Определяют сетку выборки на основании: 1) базовой горизонтальной линии, проведенной через верхний шаблон синхронизации, совместно с линиями, параллельными базовой горизонтальной линии на расстоянии Y, включая шесть линий выше базовой горизонтальной линии и столько линий ниже этой линии, сколько требуется для данной версии; и 2) вертикальной линии, проведенной по левой стороне шаблона синхронизации совместно с линиями, параллельными этой линии и проведенными на расстоянии X, включая шесть линий левее этой линии и столько линий правее этой линии, сколько требуется для данной версии. Для символов версии 2 и более, определяют координаты центров всех направляющих шаблонов согласно 6.3.6 и приложению E, а затем формируют сетку выборки с линиями, проведенными на равном удалении от этих точек.
![]() 1) Делят ширину WUL левого верхнего шаблона поиска PUL на 7, чтобы вычислить размер модуля CPUL: CPUL = WUL/7.
2) Определяют приблизительные координаты центров направляющих шаблонов P1 и P2 (см. рисунок 34 <1>) на основе координат центра A левого верхнего шаблона поиска PUL, линий, параллельных направляющим линиям AB и AC <2>, <3> и размера модуля CPUL.
--------------------------------
<1> Указана ссылка на рисунок 34 вместо ссылки на рисунок 33, приведенный в ИСО/МЭК 18004-2015.
<2> Исключена ссылка на элемент стандарта "7c", приведенный в ИСО/МЭК 18004-2015.
<3> Направляющие линии AB и AC приведены на рисунке 33.
3) Сканируют направляющие шаблоны P1 и P2, начиная с приблизительной координаты центрального пикселя до контура белого квадрата, чтобы найти фактические координаты центра Xi и Yj (см. рисунок 35).
![]() 4) Определяют приблизительные координаты центра направляющего шаблона P3 на основе координат центра A верхнего левого шаблона поиска PUL и фактических координат центров направляющих шаблонов P1 и P2, полученных на этапе 3).
5) Находят фактические координаты центра направляющего шаблона P3 с помощью процедуры этапа 3).
6) Находят Lx - расстояние по горизонтали между центрами направляющих шаблонов P2 и P3, и Ly, расстояние по вертикали между центрами направляющих шаблонов P1 и P3. Делят Lx и Ly на AP (см. далее) для получения размеров модуля CPx по левой стороне и CPy по правой стороне в верхней левой области символа (см. рисунок 35)
CPx = Lx/AP;
CPy = Ly/AP,
где AP - расстояние в модулях между центрами направляющих шаблонов (см. таблицу E.1).
Таким же образом находят Lx', расстояние по горизонтали между центрами верхнего левого шаблона поиска PUL и направляющего шаблона P1 и Ly', расстояние по вертикали между центрами верхнего левого шаблона поиска PUL и направляющего шаблона P2. Делят Lx' и Ly' для получения размеров модуля CPx' по верхней стороне и CPy' по левой стороне в верхней левой области символа по формуле
CPx' = Lx'/(координата столбца центрального модуля направляющего шаблона P1 - координата столбца центрального модуля верхнего левого шаблона поиска PUL)
CPy' = Ly'/(координата строки центрального модуля направляющего шаблона P2 - координата строки центрального модуля верхнего левого шаблона поиска PUL).
![]() Рисунок 36 - Верхняя левая область символа
7) Определяют сетку выборки, покрывающую верхнюю левую область символа на основе размеров модулей CPx, CPx', CPy и CPy', представленных по каждой стороне верхней левой области символа.
8) Таким же образом определяют примерную сетку выборки для верхней правой области (охватывающей верхний правый шаблон поиска PUR и направляющие шаблоны P1, P3 и P4) и для нижней левой области (охватывающей нижний левый шаблон поиска PDL и направляющие шаблоны P2, P3 и P5) символа.
9) Для направляющего шаблона P6 (см. рисунок 37) определяют приблизительные координаты центрального модуля из размеров модулей CPx' и CPy', значения которых определены из расстояний между направляющими шаблонами P3, P4 и P5, путем проведения вспомогательных линий через центры направляющих шаблонов P3 и P4 и через P3 и P5 соответственно и учета центральных координат этих шаблонов.
![]() Рисунок 37 - Нижняя правая область символа
10) Повторяют этапы e) - h) для определения сетки выборки для нижней правой области символа.
11) Таким же образом определяют сетки выборки для неохваченных областей символа.
i) Просматривают области изображения размером 3 x 3 пикселей с центрами на пересечениях линий сетки выборки и определяют, является этот модуль светлым или темным на основании глобального порога. Формируют битовую матрицу, присваивая двоичную 1 темным модулям и двоичный 0 светлым модулям.
j) Декодируют информацию о формате, смежную с верхним левым направляющим шаблоном в соответствии с приложением C.3 для получения уровня исправления ошибок и указателя шаблона маски, примененной к символу. Если число обнаруженных ошибок превышает способность их исправления, повторяют эту процедуру для декодирования информации о формате, смежную с верхним правым и нижним левым шаблонами поиска.
k) Если невозможно получить из двоичной строки надлежащую информацию о формате, предпринимают попытки определения, является ли правильной последовательность битов, если их прочитать в обратном порядке. В случае успеха продолжают декодирование изображения зеркально отображенного символа, меняя местами координаты строк и столбцов.
l) Переходят к этапу y.
m) Для символов Micro QR Code определяют возможный угол поворота символа относительно координатных осей изображения, анализируя углы наклона линий, полученных на этапе b) 3), по отношению к осям датчика изображения, а именно
, и (см. рисунок 38).![]() Рисунок 38 - Положение угла
относительно осей датчика изображения
n) Проводят три линии, параллельные каждой из осей шаблона поиска на одинаковом расстоянии через весь шаблон, и измеряют расстояние от точки A до точки B на каждой линии. Расстояние между линиями не ограничено, однако все три линии должны проходить через шаблон поиска.
o) Вычисляют приблизительный размер X модуля символа по каждой оси как седьмую часть среднего из этих трех расстояний от A до B, определенных на этапе n.
p) Последовательно выбирают каждую сторону внешнего блока шаблона поиска и продлевают линию, направленную наружу от шаблона поиска в обоих направлениях параллельно краю и на расстояние 0,5X, отступая внутрь от края.
q) Осуществляют поиск шаблонов синхронизации:
1) определяют два края шаблона поиска номинально перпендикулярные друг к другу, каждый из которых имеет оба следующих признака:
i) Свободную область не менее 1,5X в одном направлении;
ii) Область с чередующимися светлыми и темными участками с центрами на расстоянии 1X от края шаблона поиска в противоположном направлении (кандидат на шаблон синхронизации).
2) Проверяют, что число темных модулей в каждом кандидате на шаблон синхронизации от двух до пяти.
r) Определяют приблизительную версию символа по количеству темных элементов шаблона синхронизации:
- при двух темных элементах, символ имеет версию M1;
- при трех темных элементах, символ имеет версию M2;
- при четырех темных элементах, символ имеет версию M3;
- при пяти темных элементах, символ имеет версию M4.
s) Из центра первого темного модуля каждой стороны шаблона синхронизации проводят линию, параллельную смежной стороне шаблона поиска до пересечения с соответствующей линией, проведенной из другой стороны и просматривая области изображения размером 3 x 3 пикселей с интервалом 1X вдоль этих линий, определяют статус каждого модуля (светлый или темный) блока информации о формате. Определяют двоичную строку информации о формате, принимая темный пиксель за двоичный 1 и светлый пиксель за двоичный 0.
t) Реализуют маскирование информации о формате, применяя операцию XOR к его двоичной строке с помощью шаблона из 7.9.2, и декодируют информацию о формате (применяя процедуру исправления ошибок по приложению B, если необходимо) для получения номера символа (и, следовательно, версии и уровня исправления ошибок символа) и указателя шаблона маски, примененный к данным символа.
u) Если невозможно получить из двоичной строки информации о формате надлежащую последовательность, предпринимают попытки определить, является ли правильной последовательность битов при их считывании в обратном порядке. В случае успеха продолжают декодирование зеркально отображенного символа, меняя местами координаты строк и столбцов. Если отличие от надлежащей последовательности по приложению C не более двух битов, заменяют эту последовательность и декодируют замененную информацию о формате, чтобы получить номер символа и шаблон маски данных.
v) Убеждаются, что модуль имеет размер X по каждой оси, путем деления полной ширины от внешнего края шаблона поиска, смежного со свободной зоной, до внешнего края последнего темного модуля в шаблоне синхронизации, на число модулей, соответствующей версии символа.
w) Устанавливают сетку выборки, соответствующую версии символа, из линий по каждой оси, параллельных друг другу и стороне шаблона поиска, отстоящих на 1X, и проходящих через центры модулей шаблона синхронизации и подобных позиций в шаблоне поиска.
x) Просматривают области изображения размером 3 x 3 пикселя, расположенные на пересечениях линий сетки выборки, и определяют, является ли модуль темным или светлым на основании глобального порога. Формируют битовую матрицу, принимая темные модули как двоичные 1, и светлые модули как двоичные 0.
y) Выполняют процедуру маскирования, применяя операцию XOR шаблона маски данных к области кодирования символа, и восстанавливают знаки символа, представляющие данные и кодовые слова исправления ошибок. Эта процедура является обратной процессу маскирования данных, применяемому в процессе кодирования.
z) Определяют кодовые слова символа согласно правилам размещения, указанным в 7.7.3.
aa) Перегруппировывают кодовые слова по блокам, как требуется для данной версии символа и уровня исправления ошибок, используя процесс, обратный к приведенному в 7.6 этап 3).
bb) Проводят декодирующую процедуру обнаружения и исправления ошибок по приложению B, чтобы исправить такое число ошибок и стираний, которое максимально возможно для данной версии символа и уровня исправления ошибок.
cc) Восстанавливают первоначальный двоичный поток сообщения, собирая блоки данных в последовательность.
dd) Подразделяют двоичный поток данных на сегменты, каждый из которых начинается с индикатора режима и индикатора числа знаков.
ee) Декодируют каждый сегмент в соответствии правилам, действительными для данного режима.
Символы QR Code могут быть использованы в среде автоматического распознавания со множеством символов других символик (см. приложение L). Хотя символы QR Code Model 1 и символы QR Code могут быть распознаны автоматически путем анализа шаблона маски информации о формате, символы Model 1 не должны использоваться в той же самой среде, что и символы QR Code.
Все закодированные знаки данных должны быть включены в передачу данных. Функциональные шаблоны, информация о формате и информация о версии, знаки исправления ошибок, знаки-заполнители и остаточные знаки не подлежат передаче. Заданным по умолчанию режимом передачи для всех данных должен быть байтовый режим.
Блок заголовка структурного соединения не должен передаваться декодерами, работающими в буферизированном режиме, которые восстановили полное сообщение перед передачей. Если декодер работает в небуферизованном режиме, заголовок структурного дополнения должен быть передан как первые 2 байта каждого символа. Более сложные интерпретации, включая передачу данных с интерпретацией в расширенном канале, приведены далее.
В ИСО/МЭК 15424 установлена стандартная процедура сообщения о считанной символике, вместе с набором опций в декодере и любых особых свойств, встречающихся в символе.
Как только структура данных (включая использование любой интерпретации ECI) была идентифицирована, соответствующий идентификатор символики должен быть добавлен декодером как преамбула к передаваемым данным; если используются интерпретации ECI, обязательно требуется идентификатор символики. В приложении F содержатся значения идентификатора символики, которые используются в QR Code.
В системах, поддерживающих протокол ECI, при каждой передаче требуется передача идентификатора символики. Всякий раз, когда встречается индикатор режима ECI, в выходных данных он должен быть передан как управляющий знак 5CHEX (представляющий собой знак "\" по ИСО/МЭК 8859-1 и спецификации организации AIM, устанавливающей интерпретации в расширенном канале (ECI) <1>, и отображается как знак
--------------------------------
<1> См. спецификацию [22].
При распознавании последовательности \nnnnnn прикладное программное обеспечение должно интерпретировать все последующие знаки как входящие в ECI, определенную 6 цифрами обозначения ECI. Эта интерпретация действует:
- до окончания закодированных данных;
- до изменения на новую ECI, обозначенную индикатором режима 0111, в соответствии с правилами, приведенными в спецификации организации AIM, устанавливающей ECI.
При возвращении к интерпретации, заданной по умолчанию, декодер должен вывести соответствующую управляющую последовательность как префикс к данным.
Если знак 5CHEX должен быть использован в кодируемых данных, при передаче нужно руководствоваться следующими правилами: если знак 5CHEX встречается как знак в данных, при передаче декодер выдает два байта со значением 5CHEX, а единственный знак 5CHEX в передаваемых данных всегда сигнализирует об управляющей последовательности.
Пример 1
a) Кодируемые данные
(шестнадцатеричные значения): 41 42 43 5C 31 32 33 34
Передаваемые данные: 41 42 43 5C 5C 31 32 33 34
b) Кодируемые данные: ABC за которым находятся
<последующие данные>,
закодированные по правилам ECI 123456.
Передаваемые данные: 41 42 43 5C 31 32 33 34 35 36
<последующие данные>
Пример 2 (с использованием данных 7.4.2.2)
Сообщение содержит индикатор режима ECI/обозначение ECI/
индикатор режима/индикатор числа знаков/данные в форме
0111 00001001 0100 00000101 10100001 10100010 10100011 10100100 10100101
Идентификатор символики ]Q2 (см. приложение F) должен быть добавлен
к передаваемым данным.
Передача (шестнадцатеричные значения): 5D 51 32 5C 30 30 30 30 30 39 A1 A2 A3 A4 A5
Закодированные данные в ECI 000009:
![]()
В режиме структурированного соединения, когда индикатор режима ECI расположен в начале символа, последующие знаки данных следует интерпретировать как находящиеся в режиме интерпретации(й) в расширенном канале (ECI), который был в силе конце предшествующего символа.
Примечание - Знак, имеющий значение 5CHEX, эквивалентен знаку ОБРАТНАЯ ДРОБНАЯ ЧЕРТА "\" в наборе знаков ИСО/МЭК 8859-1 и знаку
В режимах с подразумеваемым знаком FNC1 в первой или второй позиции, этот знак не может быть передан непосредственно, так как отсутствует соответствующее значение байта. Поэтому необходимо указать его присутствие в первой или второй позиции передачей соответствующего идентификатора символики (]Q3, ]Q4, ]Q5 или ]Q6), установленного в приложении F. В соответствии со спецификацией по применению эти знаки могут встречаться и в других местах сообщения в качестве разделителей полей данных, представляемых в алфавитно-цифровом режиме знаком % и в байтовом режиме управляющим знаком GS (шестнадцатеричное значение 1DHEX по ASCII/JIS8). В обоих случаях декодер должен передать шестнадцатеричное значение 1DHEX из набора знаков ASCII/JIS8.
Если в символах в режиме FNC1 знак % должен быть закодирован как данные, в алфавитно-цифровом режиме, он должен быть представлен в символе как %%. Если декодер встречает такую последовательность, он должен передать один знак %.
(обязательное)
ОБНАРУЖЕНИЯ И ИСПРАВЛЕНИЯ ОШИБОК
Кодовые слова исправления ошибок получают путем деления полинома кодовых слов данных, где каждое кодовое слово является коэффициентом полинома в порядке убывания степени, на порождающий полином. Коэффициенты полинома (остатка от этого деления) являются значениями кодовых слов исправления ошибок.
В таблице A.1 приведены порождающие полиномы для кодов исправления ошибок для всех символов QR Code всех версий и уровней исправления ошибок. Число кодовых слов исправления ошибок, требуемых для конкретной версии и уровня исправления ошибок, может быть определено по таблице 9, в которой
Таблица A.1
Порождающие полиномы для кодовых слов
исправления ошибок по Риду-Соломону
![]() Продолжение таблицы A.1
![]() Продолжение таблицы A.1
![]() Окончание таблицы A.1
![]() (обязательное)
ИСПРАВЛЕНИЯ ОШИБОК ПРИ ДЕКОДИРОВАНИИ
Для примера возьмем символ версии 1-M, для которого для исправления ошибок используется код Рида-Соломона (26, 16, 4) в поле GF(28). При условии, что код после применения процедуры маскирования представляет собой R = (r0, r1, r2, ..., r25).
Таким образом
R(x) = r0, + r1x + r2x2 + r25x25,
где ri (i = 0 - 25) - элемент поля GF(28).
i) Вычисляют n синдромов (n равно числу кодовых слов, доступных для исправления ошибок, вычисленному по формуле (c - k - p) в соответствии с таблицей 9).
Вычисляют синдромы Si (i = 0 - (n - 1))
![]() где
ii) Определяют позиции ошибок
![]() Вычисляют переменные
Подставляют переменную в следующий полином и заменяют элементы GF(28) один за другим
![]() Обнаруживают, что ошибка находится на j-й цифре (считая от 0-й цифры) для элемента
.iii) Определяют размер ошибки
Исходя из предположения, что ошибка находится на j1, j2, j4 цифрах в (ii) выше, вычисляют размер ошибки по формулам
![]() Решают вышеуказанные уравнения для определения размера каждой ошибки Yi (i = 1 - 4).
iv) Исправление ошибок
Исправляют ошибки, прибавляя к значению размера каждой ошибки значения, находящиеся на позициях каждой ошибки.
(обязательное)
Информация о формате представляет собой 15-битовую последовательность, состоящую из 5 битов данных и 10 битов исправления ошибок по алгоритму BCH. В настоящем приложении приведен порядок вычисления битов исправления ошибок и процесс исправления ошибок при декодировании.
C.1 Вычисление битов исправления ошибок
Для получения битов исправления ошибок используют код Боуза-Чоудхури-Хоквингема (Bose-Chaudhuri-Hocquenghem, BCH) (15,5). Полином, коэффициенты которого - биты строки данных, делят на порождающий полином G(x) = x10 + x8 + x5 + x4 + x2 + x + 1. Коэффициенты полинома-остатка преобразуют в двоичную строку и добавляют к битам данных, чтобы получить строку кода BCH (15,5). В завершение для маскирования применяют операцию XOR со строкой 101010000010010 (для символов QR Code) или 100010001000101 (для символов Micro QR Code) для гарантии того, что ни при каком уровне исправления ошибок и шаблоне маски битовое представление информации о формате не получится целиком нулевым.
Пример
Размещают эти биты информации в областях информации о формате согласно 7.9.
C.2 Этапы обнаружения и исправления ошибок при декодировании
Реализуют маскирование модулей информации о формате, применяя операцию XOR к последовательности битов с шаблоном 101010000010010 (для символов QR Code) или 100010001000101 (для символов Micro QR Code).
Интервал Хэмминга (Hamming distance) для кода исправления ошибок, используемый в информации о формате, должен быть 7, что дает возможность исправить до трех ошибочно считанных битов. Есть 32 надлежащих битовых последовательности для информации о формате, так что декодирование можно достаточно эффективно осуществить с использованием таблицы C.1. Считанные последовательности битов из области информации о формате символа побитово сравнивают с 32 надлежащими двоичными строками информации о формате, приведенными в таблице C.1. Принимают двоичную строку, приведенную в таблице C.1, которая является наиболее соответствующей считанной из символа, если строки отличаются на 3 бита или менее.
Пример (для символа QR Code)
Поскольку считанная последовательность и строка из таблицы отличаются только двумя битами, то сравнение считают успешным, так что формат символа утверждают как использующий уровень исправления ошибок M и шаблон маски 011.
Таблица C.1
(обязательное)
D.1 Общие положения
Информация о версии представляет собой 18-битовую последовательность, состоящую из 6 битов данных и 12 битов исправления ошибок по коду Голея (Golay code). В настоящем приложении описан алгоритм вычисления битов исправления ошибок при кодировании и процесс исправления ошибок при декодировании.
D.2 Вычисление битов исправления ошибок
Для получения битов исправления ошибок используют код Голея (Golay code) (18,6). Полином, коэффициенты которого - это биты строки данных, делят на порождающий полином G(x) = x12 + x11 + x10 + x9 + x8 + x5 + x2 + 1. Коэффициенты строки полинома-остатка преобразуют в двоичную строку и добавляют к битам данных, чтобы получить строку кода Голея (18,6).
Пример
Размещают указанные биты в областях информации о версии в соответствии с 7.10.
В таблице D.1 приведены полные двоичные потоки информации о версии для всех версий.
D.3 Этапы исправления ошибок при декодировании
Интервал Хэмминга (Hamming distance) для кода исправления ошибок используют в информации о версии 8, что дает возможность исправить до трех ошибочно считанных битов. Установлены 34 надлежащие битовые последовательности для информации о версии, так что декодирование можно с достаточной эффективностью проводить с использованием таблицы D.1. Считанные последовательности битов из области информации о версии символа побитово сравнивают с 34 надлежащими двоичными строками информации о версии по таблице D.1. Принимают двоичную строку из таблицы D.1, которая является наиболее близкой по значению к считанной, если строки отличаются тремя битами или менее.
Пример
Поскольку считанная последовательность и строка, приведенная в таблице D.1, отличаются только одним битом, то сравнение считают успешным; в результате подтверждается соответствие символа версии 7.
Таблица D.1
(обязательное)
Направляющие шаблоны располагают симметрично по обе стороны диагонали, проходящей из верхнего левого угла к нижнему правому углу символа. Они должны быть расположены без отклонений, насколько возможно между шаблоном синхронизации и противоположной стороной символа без любого отклонения интервала между шаблоном синхронизации и первым направляющим шаблоном внутри символа.
В таблице E.1 для каждой версии приведено число направляющих шаблонов и координаты строки и столбца центрального модуля каждого направляющего шаблона.
Таблица E.1
модуля направляющих шаблонов
Например, для символа версии 7 в таблице E.1 указаны значения 6, 22 и 38. Поэтому направляющие шаблоны должны быть расположены на позициях (строка, столбец) (6, 22), (22, 6), (22, 22), (22, 38), (38, 22), (38,38). Следует обратить внимание, что координаты (6, 6), (6, 38), (38,6) заняты шаблонами поиска и поэтому не используются для направляющих шаблонов.
(обязательное)
Идентификатор символики, присвоенный QR Code в соответствии с ИСО/МЭК 15424, который должен быть добавлен как преамбула к декодированным данным соответственно запрограммированными декодерами:
]Qm,
где: ] - флаг идентификатора символики (знак набора ASCII с десятичным значением 93);
Q - знак кода для символики QR Code;
m - знак-модификатор, соответствующий одному из значений, приведенных в таблице F.1.
Для символов Micro QR Code значение m всегда должно быть равно 1.
Таблица F.1
Варианты применения идентификатора
символики и значения знака-модификатора
Для знака-модификатора m допустимыми значениями являются 0, 1, 2, 3, 4, 5, 6.
(обязательное)
АСПЕКТЫ, СВЯЗАННЫЕ С ОСОБЕННОСТЯМИ СИМВОЛИКИ
G.1 Общие положения
Из-за различий в структурах символики и рекомендуемых алгоритмах декодирования влияние некоторых параметров на эффективность считывания символов может варьироваться. Применение ИСО/МЭК 15415 обеспечивает для спецификаций символик оценку дополнительных параметров, связанных с особенностями символики. В настоящем приложении приведена методика оценки повреждения фиксированных шаблонов и дополнительных параметров (информации о версии и информации о формате), которую следует использовать при применении ИСО/МЭК 15415 к символике QR Code.
G.2 Повреждение фиксированных шаблонов
G.2.1 Параметры, подлежащие оценке
G.2.1.1 Символы QR Code
Параметрами, подлежащими оценке, являются следующие:
- Три угловых сегмента, каждый из которых включает в себя:
- шаблон поиска 7 x 7;
- шаблон-разделитель шириной 1X вокруг двух внутренних сторон шаблонов поиска;
- часть свободной зоны шириной не менее 4 модулей (или более, в зависимости от применения) длиной 15 модулей вдоль двух других сторон шаблонов поиска.
- Два шаблона синхронизации, состоящие из чередующихся темных и светлых модулей, проходящих между внутренними углами шаблонов поиска.
- Направляющие шаблоны 5 x 5 (если присутствуют в символах Model 2 версии 2 или более).
Перечисленные выше параметры должны быть оценены как следующие шесть сегментов:
- три угловых сегмента (шаблон поиска со связанным с ним разделителем и частью свободной зоны) (сегменты A1, A2 и A3 соответственно);
- два шаблона синхронизации (сегменты B1 и B2 соответственно);
- одиночный сегмент, содержащий все направляющие шаблоны (сегмент C).
Там, где шаблон синхронизации пересекается с направляющим шаблоном, пять модулей, совпадающих с направляющим, следует оценивать как принадлежащие как шаблону синхронизации, так и к направляющему шаблону.
Например, в символе версии 7 (45 x 45 модулей) каждый сегмент A содержит 168 модулей; каждый сегмент B имеет 29 модулей в длину; сегмент C занимает в общей сложности 150 модулей (т.е. 6 x 25).
Данные сегменты для символа версии 7 приведены на рисунке G.1. A1, A2 и A3 указывают на три угловых сегмента; B1 и B2 указывают на два сегмента шаблонов синхронизации; C указывает на единственный сегмент C (объединяющий шесть направляющих шаблонов).
Примечание - Для символа QR Code ширина свободной зоны должна составлять 4X. На рисунке G.1 указаны области, которые должны быть проверены при оценке качества печати фиксированного шаблона. Остальные области свободных зон не проверяют.
![]() G.2.1.2 Символы Micro QR Code
Параметрами, подлежащими оценке, являются следующие:
- Угловой сегмент, включающий в себя:
- шаблон поиска;
- шаблон-разделитель шириной 1X вокруг двух внутренних сторон шаблона поиска;
- часть свободной зоны шириной не менее двух модулей (или более, в зависимости от применения) длиной 11 модулей вдоль двух других сторон шаблонов поиска.
- Два шаблона синхронизации, состоящие из чередующихся темных и светлых модулей, проходящих вдоль верхней и левой стороны символа, начинающихся от шаблона поиска.
Перечисленные выше параметры должны быть оценены как следующие три сегмента:
- угловой сегмент (шаблон поиска со связанными с ним разделителями и частью свободной зоны) (сегмент A), занимающий 104 модуля;
- два шаблона синхронизации (сегменты B1 и B2 соответственно).
Например, в символе версии M4 (17 x 17 модулей), каждый сегмент B имеет длину 9 модулей.
Данные сегменты для символа версии M4 представлены на рисунке G.2. Обозначение A указывает на угловой сегмент, B1 и B2 - на два сегмента шаблонов синхронизации.
Примечание - Для символа Micro QR Code ширина свободной зоны должна составлять 2X. На рисунке G.2 указаны области, которые подлежат проверке при оценке качества печати фиксированных шаблонов. Остальные области свободных зон не проверяют.
![]() Рисунок G.2 - Сегменты фиксированных шаблонов Micro QR Code
G.2.2 Оценка повреждения фиксированных шаблонов
Повреждения каждого сегмента следует оценивать на основе параметра модуляции отдельных модулей, из которых состоят эти сегменты.
Оценку каждого сегмента проводят следующим образом:
a) На изображении символа (коэффициент отражения каждого пикселя должен быть выражен в уровнях градации серого) для каждого модуля определяют класс модуляции по ISO/IEC 15415. Так как уже известно, какой модуль следует считать темным, а какой светлым, то любой модуль, который должен быть темным, но коэффициент отражения которого выше глобального порога, а также любой модуль, который должен быть светлым, но коэффициент отражения которого менее глобального порога, должен иметь класс модуляции 0.
b) Для каждого класса модуляции предполагают, что все модули, которые не соответствуют этому или более высокому классу, являются поврежденными и им присваивают условный класс повреждения на основе пороговых значений классов, приведенных в таблице G.1. Выбирают меньший из классов модуляции и условного класса повреждения. Условный класс повреждения определяют следующим образом:
1) для каждого сегмента A1, A2 и A3, или сегмента A для Micro QR Code, подсчитывают число поврежденных модулей;
2) для сегментов B1 и B2 подсчитывают число поврежденных модулей. Представляют это число в процентах общего числа модулей в сегменте;
3) для сегментов B1 и B2 берут группы из пяти смежных модулей и, продвигаясь с шагом один модуль вдоль сегмента, проверяют, что в пределах каждой группы смежных модулей присутствует не более двух поврежденных модулей; если это не так, соответствующему сегменту присваивают класс 0. Эту проверку не применяют к символам Micro QR Code;
4) для сегмента C (только для символов QR Code) подсчитывают число направляющих шаблонов, содержащих поврежденные модули. Выражают это число в процентах от общего числа направляющих шаблонов в символе;
5) на основе пороговых значений классов, приведенных в таблице G.1, присваивают условный класс повреждения каждому сегменту.
c) Класс повреждения фиксированных шаблонов для сегмента должен соответствовать самому высокому полученному классу из всех классов модуляции.
Класс повреждения фиксированных шаблонов для символа должен быть меньшим классом сегментов.
Таблица G.1
шаблонов QR Code
G.3 Оценка по классам дополнительных параметров
G.3.1 Общие положения
Символы QR Code содержат двойной набор модулей, представляющих информацию, которая определяет формат символа, а символы версии от 7 до 40 также содержат двойной набор модулей, представляющих информацию, которая определяет размер символа. Символы Micro QR Code содержат единственный набор модулей, представляющих информацию, которая определяет формат символа. Для этих данных требуется, чтобы повреждения были обнаружены на ранней стадии процесса декодирования, и если эта информация не может быть декодирована, остаток от символа в свою очередь также не может быть декодирован. По этой причине информацию о формате и блоки модуля информации о версии оценивают отдельно (способом, аналогичным оценке повреждения фиксированных шаблонов), и их классы включают в определение полного класса символа.
G.3.2 Оценка по классам информации о формате
Для каждого блока информации о формате вычисляют класс блока, используя следующую методику.
a) На изображении символа (коэффициент отражения каждого пикселя должен быть выражен в уровнях градации серого) для каждого модуля определяют класс модуляции по ИСО/МЭК 15415. Поскольку действительное значение коэффициента отражения каждого модуля блока информации о формате становится известным только после успешного декодирования блока, то любой модуль, который должен быть темным, но коэффициент отражения которого выше глобального порога, а также любой модуль, который должен быть светлым, но коэффициент отражения которого ниже глобального порога, приводит к классу модуляции 0 <1>.
--------------------------------
<1> Если блок информации о формате не может быть декодирован, класс всего блока должен соответствовать 0 и этап b не выполняют.
b) Для каждого класса модуляции:
1) предполагают, что все модули, которые не соответствуют этому или более высокому классу, являются поврежденными модулями, и им присваивают условный класс повреждения блока на основе пороговых значений классов, приведенных в таблице G.2.
Таблица G.2
Условный класс информации о формате
2) выбирают меньший из классов модуляции и условного класса повреждения согласно таблице G.3;
3) класс для блока получают как лучший условный класс согласно таблице G.3.
Таблица G.3
Пример оценки для блока информации о формате
c) Класс информации о формате:
1) для символов QR Code должен быть средним значением классов двух блоков информации о формате, если необходимо, округленным до ближайшего большего целого;
2) для символов Micro QR Code класс должен быть равен классу, полученному на этапе 2 c).
G.3.3 Оценка по классам информации о версии (для символов QR Code)
Для каждого блока информации о версии вычисляют класс блока, используя следующую методику.
a) На изображении символа (коэффициент отражения каждого пикселя должен быть выражен в уровнях градации серого) для каждого модуля определяют класс модуляции по ИСО/МЭК 15415. Поскольку действительное значение коэффициента отражения каждого модуля блока информации о версии становится известным только после успешного декодирования блока, то любой модуль, который должен быть темным, но коэффициент отражения которого выше глобального порога, а также любой модуль, который должен быть светлым, но коэффициент отражения которого ниже глобального порога, приводит к классу модуляции 0. Если блок информации о версии не может быть декодирован, класс всего блока должен быть 0 <1>.
--------------------------------
<1> В этом случае этап b) не выполняют.
b) Для каждого класса модуляции:
1) предполагают, что все модули, которые не соответствуют этому или более высокому классу, являются поврежденными модулями, и им присваивают условный класс повреждения блока на основе пороговых значений классов, приведенных в таблице G.4.
Таблица G.4
Условный класс информации о версии
2) выбирают меньший из класса модуляции и условного класса повреждения по таблице G.5;
3) класс для блока определяют как лучший условный класс по таблице G.5.
Таблица G.5
Пример оценки для блока информации о версии
c) Класс информации о формате должен быть средним значением двух классов блоков информации о версии, если необходимо, округленным до ближайшего большего целого числа.
G.4 Класс сканирования
Класс сканирования должен быть меньшим из классов типовых параметров, вычисленных по ИСО/МЭК 15415, класса повреждения фиксированных шаблонов, класса информации о формате и (если применимо) класса информации о версии, вычисленных на основе настоящего приложения.
(справочное)
Таблица H.1
![]() Окончание таблицы H.1
![]() На рисунке H.1 представлена область матрицы 256 x 256, занятая двухбайтовыми знаками Shift JIS.
![]() Согласно JIS X0208:1997 начальный и конечный байты заштрихованной области предназначены для знаков Shift JIS кандзи. Любые пары байтов из этих диапазонов могут быть закодированы с использованием схемы уплотнения режима кандзи.
(справочное)
ПРИМЕРЫ КОДИРОВАНИЯ СИМВОЛОВ
I.1 Общие положения
В настоящем приложении приведено кодирование строки данных 01234567 в символы QR Code и Micro QR Code.
I.2 Кодирование символа QR Code
Указанная строка данных будет закодирована в символ версии 1-M с использованием цифрового режима, приведенного в 7.4.3.
Этап 1: Кодирование данных
- Разбивают строку на группы по три цифры и преобразуют каждую группу из десятичного числа в 7-битовый двоичный эквивалент:
- 012 -> 0000001100
- 345 -> 0101011001
- 67 -> 1000011
- Преобразуют индикатор числа знаков в двоичный эквивалент (10 битов для версии 1-M).
Индикатор числа знаков (8) = 0000001000
- Добавляют индикатор цифрового режима (0001), индикатор числа знаков (0000001000), двоичные данные и ограничитель (0000)
0001 0000001000 0000001100 0101011001 1000011 0000
- Делят на 8-битовые кодовые слова, добавляют биты-заполнители (для наглядности подчеркнуты), поскольку последнее кодовое слово заполнено только на 5 битов:
![]() - Добавляют кодовые слова-заполнители для заполнения емкости символа (для версии 1-M, 16 кодовых слов данных, требуется 10 кодовых слов-заполнителей (для наглядности подчеркнуты)); в результате получают:
00010000 00100000 00001100 01010110 01100001 10000000
![]() Этап 2: Генерация кодовых слов исправления ошибок
Используя алгоритм Рида-Соломона для генерации требуемого числа кодовых слов исправления ошибок (10 слов для версии 1-M), которые (для наглядности подчеркнуты) добавляют к двоичному потоку, получают:
00010000 00100000 00001100 01010110 01100001 10000000 11101100 00010001 11101100 00010001 11101100 00010001 11101100 00010001 11101100 00010001
![]() Этап 3: Размещение модулей в матрице символа
Поскольку для символа версии 1-M используется только один блок исправления ошибок, перемешивание не требуется. Шаблоны поиска, разделители и шаблоны синхронизации размещают в пустой матрице 21 x 21 и модули в позиции для информации о формате временно оставляют пустыми. Кодовые слова, полученные на этапе 2, размещают в матрице в соответствии с 7.7.3, в результате получают символ, приведенный на рисунке I.1.
![]() Рисунок I.1 - Размещение модулей данных в символе
до маскирования данных
Этап 4: Выбор шаблона для маски данных
Применяют шаблоны маски данных согласно 7.8.2 по очереди и оценивают результаты по 7.8.3. Для данного символа рекомендуется выбрать шаблон маски с обозначением 010.
Этап 5: Информация о формате
Уровень исправления ошибок - M, что в двоичном виде представляют 00, и указатель шаблона маски равен 010. Следовательно, по 7.9.1 получают биты информации о формате 00 010.
Вычисляют биты исправления ошибок по коду BCH и получают 1001101110 как битовую последовательность для добавления к данным; результат дополнения:
000101001101110 как немаскированная информация о формате.
Применяют к этому двоичному потоку операцию XOR с маской 101010000010010:
000101001101110 (исходный двоичный поток);
101010000010010 (маска);
101111001111100 (информация о формате, подлежащая размещению в символе).
Этап 6: Заключительное формирование символа
Применяют выбранный шаблон маски данных к области кодирования символа согласно 7.8, и добавляют модули информации о формате в позиции, зарезервированные на этапе 3. В результате получают завершенный символ, показанный на рисунке I.2.
![]() Рисунок I.2 - Окончательный вид символа версии 1-M,
кодирующего 01234567
I.3 Кодирование символа Micro QR Code
Строка данных 01234567 подлежит кодированию в символе версии M2 с уровнем исправления ошибок L с использованием числового режима кодирования по 7.4.3.
Этап 1: Кодирование данных
- Разбивают строку на группы по три цифры и преобразуют каждую группу из десятичного числа в 7-битовый двоичный эквивалент:
- 012 -> 0000001100
- 345 -> 0101011001
- 67 -> 1000011;
- индикатор числового режима для версии M2 - 0;
- число знаков - 8; преобразуют индикатор числа знаков в двоичный эквивалент (4 бита для версии M2-L):
Индикатор числа знаков (8) = 1000
- ограничитель для версии M2, включающий в себя 5 нулевых битов - 00000;
- добавляют индикатор цифрового режима (0), индикатор числа знаков (1000), двоичные данные и ограничитель (00000)
0 1000 0000001100 0101011001 1000011 00000;
- делят на 8-битовые кодовые слова, добавляя 3 бита-заполнителя (для наглядности подчеркнуты), поскольку последнее кодовое слово заполнено только 5 битами
;- кодовые слова-заполнители не требуются для заполнения емкости символа (для версии M2-L, используется 5 кодовых слов данных).
Этап 2: Генерация кодовых слов исправления ошибок
Используя алгоритм Рида-Соломона для генерации требуемого числа кодовых слов исправления ошибок (5 слов для версии M2-L), которые (для наглядности подчеркнуты) добавляют к двоичному потоку, получают:
01000000 00011000 10101100 11000011 00000000
![]() Шаблон поиска и шаблоны синхронизации размещают в пустой матрице 13 x 13 и модули в позиции для информации о формате временно оставляют пустыми. Кодовые слова, полученные на этапе 2, размещают в матрице в соответствии с 7.7.3, в результате получают символ, приведенный на рисунке I.3.
![]() Рисунок I.3 - Размещение модулей данных в символе
до маскирования данных
Этап 4: Выбор шаблона маски данных
Применяют шаблоны маски данных согласно 7.8.2 по очереди и оценивают результаты по 7.8.3. Для данного символа рекомендуется использовать шаблон маски данных с обозначением 01. Применяют выбранный шаблон маски данных к области кодирования в матрице согласно 7.8.
Этап 5: Подготовка информации о формате
Для символа версии M2-L номер версии равен 1, что в двоичном виде представляют как 001, и шаблон маски данных 01. В результате получают биты данных в информации о формате 001 01.
Вычисляют биты исправления ошибок по коду ВСН и получают 0011011100 как битовую последовательность для добавления к данным; результат дополнения:
001010011011100 как немаскированная информация о формате.
Применяют к этому двоичному потоку операцию XOR с маской 100010001000101:
- 001010011011100 (исходный двоичный поток);
- 100010001000101 (маска);
- 101000010011001 (информация о формате, которая будет размещена в символе).
Этап 6: Заключительное формирование символа
Добавляют модули информации о формате в позиции, зарезервированные на этапе 3. В результате получают завершенный символ, приведенный на рисунке I.4.
![]() Рисунок I.4 - Окончательный вид символа версии M2-L,
кодирующего 01234567
(справочное)
J.1 Общие положения
В соответствии с настоящим стандартом в символике QR Code предусмотрены различные режимы кодирования, каждый из которых отличается по числу битов, требуемых для представления конкретной строки данных. Так как присутствует перекрытие между наборами знаков для каждого режима - например, числовые данные могут быть закодированы в числовом, алфавитно-цифровом и байтовом режимах, а латинские алфавитно-цифровые данные могут быть закодированы в алфавитно-цифровом и байтовом режимах, программное обеспечение генерации символов должно выбрать наиболее подходящие режимы, чтобы закодировать знаки данных, которые могут появиться более, чем в одном режиме.
Такой же выбор может быть между применением символов QR Code и Micro QR Code.
Выбор режима должен быть сделан в самом начале, но затем режим может быть изменен для части потока данных.
Может быть использовано множество альтернативных подходов для уменьшения длины двоичного потока. Алгоритм должен не только учитывать непосредственную последовательность знаков, но также и предвидеть следующую последовательность данных ввиду избыточности, требуемой для переключения режимов. Термин "исключительный поднабор" использован в настоящем приложении для обозначения "набора знаков в пределах набора знаков режима, которые не пересекаются с более ограниченным набором знаков другого режима", как указано далее и в таблице J.1.
Таблица J.1
Исключительные поднаборы для режимов кодирования QR Code
Исключительный поднабор для числового режима - это множество знаков с шестнадцатеричными значениями от 30 до 39 (цифры от 0 до 9).
Исключительный поднабор для алфавитно-цифрового режима - это множество знаков с шестнадцатеричными значениями 20, 24, 25, 2A, 2B, от 2D до 2F, 3A и от 41 до 5A с графическими представлениями {латинские буквы a - z, A - Z, пробел, $ % * + - . / :}.
Примечание 1 - Этот поднабор не включает в себя цифры.
Исключительный поднабор для байтового режима - это знаки с шестнадцатеричными значениями от 00 до FF, за исключением 20, 24, 25, 2A, 2B, от 2D до 3A и от 41 до 5A.
Примечание 2 - Исключенные значения содержат исключительные поднаборы знаков числового и алфавитно-цифрового режимов.
Эффективность уплотнения, приведенную в 7.4.3 - 7.4.6, необходимо интерпретировать с осторожностью. Лучшая схема для данного набора знаков данных может быть не та, у которой наименьшее число битов на знак данных. Если требуется самая высокая степень уплотнения, следует учитывать число дополнительных битов, требуемых для изменения режима (дополнительный индикатор режима и индикатор числа знаков). Следует отметить, что даже если число кодовых слов является минимальным, поток кодовых слов должен быть увеличен, чтобы заполнить емкость символа. Процесс заполнения проводят с использованием знаков-заполнителей.
Для символов QR Code следующие рекомендации, основанные на одном из возможных для применения алгоритмов, формируют самый короткий двоичный поток для любых взятых входных данных.
Число знаков приведено в квадратных скобках, например [5, 7, 9] применительно к символам версий 1 - 9, 10 - 26 и 27 - 40 соответственно.
a) Выбирают начальный режим:
1) если исходный входной поток данных состоит только из знаков исключительного поднабора байтового набора знаков, выбирают байтовый режим;
2) если начальный входной байт является начальным байтом из исключительного поднабора набора знаков кандзи, а следующий байт - завершающий байт из исключительно поднабора набора знаков кандзи, И подпоследовательность данных состоит из алфавитно-цифрового или числового исключительного поднабора знаков, то выбирают режим кандзи, ИНАЧЕ, если подпоследовательность данных состоит из исключительного поднабора байтового набора знаков И последующие [5, 5, 6] пары байтов также принадлежат исключительному поднабору набора знаков кандзи, выбирают байтовый режим;
3) если исходный входной поток данных состоит из исключительного поднабора набора алфавитно-цифровых знаков И если их меньше [6 - 8] знаков, а следующий знак из байтового набора знаков ТОГДА, выбирают байтовый режим, ИНАЧЕ выбирают алфавитно-цифровой режим;
4) если исходные данные являются числовыми, И если их меньше чем [4, 4, 5] знаков, а следующий знак из исключительного поднабора байтового набора знаков, ТОГДА выбирают байтовый режим, ИНАЧЕ ЕСЛИ их меньше чем [7 - 9] знаков, а следующий знак из исключительного поднабора алфавитно-цифрового набора знаков, ТОГДА выбирают алфавитно-цифровой режим, ИНАЧЕ выбирают числовой режим.
b) При нахождении в байтовом режиме:
1) если последовательность по крайней мере [9, 12, 13] байтовых пар из исключительного поднабора набора знаков кандзи встречается перед большим количеством данных из исключительного поднабора набора байтовых знаков, то переходят в режим кандзи;
2) если последовательность по крайней мере [11, 15, 16] знаков из исключительного поднабора алфавитно-цифрового набора знаков встречается перед большей последовательностью данных из исключительного поднабора байтового набора знаков, то переходят в алфавитно-цифровой режим;
3) если последовательность по крайней мере [6, 8, 9] числовых знаков встречается перед большей последовательностью данных из исключительного поднабора байтового набора знаков, то переходят в числовой режим;
4) если последовательность по крайней мере [6 - 8] числовых знаков встречается перед большей последовательностью данных из исключительного поднабора набора алфавитно-цифровых знаков, то переходят в числовой режим.
c) При нахождении в алфавитно-цифровом режиме:
1) если встречается один или более знаков кандзи, то переходят в режим кандзи;
2) если встречается один или более знаков исключительного поднабора из байтового набора знаков, то переходят в байтовый режим;
3) если последовательность по крайней мере [13, 15, 17] числовых знаков встречается перед большей последовательностью данных из исключительного поднабора набора алфавитно-цифровых знаков, то переходят в числовой режим.
d) При нахождении в числовом режиме:
1) если встречается один или более знаков кандзи, то переходят в режим кандзи;
2) если встречается один или более знаков исключительного поднабора байтового набора знаков, то переходят в байтовый режим;
3) если встречается один или более знаков исключительного поднабора набора алфавитно-цифровых знаков, то переходят в алфавитно-цифровой режим.
J.3.1 Принципы оптимизации
Предположим, что данные, которые нужно закодировать, находятся в исключительных поднаборах не более чем двух режимов, и что все данные в каждом поднаборе сгруппированы вместе (например "123abcdef"), алгоритм определения самого короткого двоичного потока для данных Micro QR Code, может быть определен в таблице J.2. Эти принципы могут быть расширены для обеспечения работы при наличии более двух режимов, но следует принять во внимание, что результирующий двоичный поток будет соответствовать одному из доступных символов.
Поскольку низкие режимы используют меньшее число битов на знак, чем высокие режимы, следует учитывать, что избыточность в виде индикатора режима и индикатора числа знаков для изменения режима должна компенсироваться большей плотностью кодирования для более низкого режима. В таблице J.2 приведено минимальное число последовательных знаков в низком режиме, для которого достигают более короткого общего двоичного потока путем изменения режимов. При меньшем числе знаков кодирование всех данных в более высоком режиме приведет к более короткому двоичному потоку.
Таблица J.2
длины двоичного потока путем изменения режимов
J.3.2 Емкость символов Micro QR Code
На приведенных ниже рисунках J.1 - J.6, учитывающих данные таблицы J.3 и емкости различных версий символа, для каждой комбинации режимов представлены варианты, применимые для кодирования определенного объема данных в комбинациях режимов.
Заголовки столбцов и строк идентифицируют число знаков в каждом режиме. На данных рисунках приведены версии символа и уровни исправления ошибок без указания начальной буквы версии M; таким образом, например, 4Q относится к символу версии M4 с уровнем исправления ошибок Q. Для любой данной комбинации знаков и режимов, доступными версиями символа являются те, которые находятся на соответствующем пересечении строки и столбца и приведенные справа или ниже этого пересечения.
Например, строка данных "123456ABCDEFGH" состоит из шести числовых знаков и восьми знаков из алфавитно-цифрового набора знаков. На рисунке J.1 показано, что данные размещены или в символе версии M3-L (с общим числом битов 77, включая индикаторы режима и индикаторы числа знаков), или в символе версии M4-M, или символе версии M4-L (81 бит в любом случае). На варианты могут быть наложены ограничения в зависимости от доступного места или требуемого уровня исправления ошибок.
![]() для данных - цифр и алфавитно-цифровых знаков
![]() Рисунок J.2 - Емкости символов Micro QR Code
для данных - цифр и байтов
![]() Рисунок J.3 - Емкости символов Micro QR Code
для данных - алфавитно-цифровых знаков и байтов
![]() Рисунок J.4 - Емкости символов Micro QR Code
для данных - цифр и знаков кандзи
![]() Рисунок J.5 - Емкости символов Micro QR Code
для данных - алфавитно-цифровых знаков
и знаков кандзи
![]() для данных - байтов и знаков кандзи
(справочное)
ПОЛЬЗОВАТЕЛЯМ ПО ПЕЧАТИ И СКАНИРОВАНИЮ СИМВОЛОВ QR CODE
K.1 Основные положения
Любое конкретное применение символики QR Code следует рассматривать как законченное системное решение. Все компоненты цепочки кодирования/декодирования символики (устройства маркирования поверхности или принтеры, этикетки, устройства считывания), используемые совместно, должны взаимодействовать друг с другом как система. Отказ в любом звене цепочки или несоответствие между ними может поставить под угрозу эффективность функционирования всей системы.
Хотя соответствие требованиям - единственный ключ к обеспечению успешной работы всей системы, следует принимать во внимание и другие соображения, которые также могут влиять на эффективность работы. Следующие рекомендации учитывают ряд факторов, которые необходимо иметь в виду при разработке спецификации или реализации систем на основе штрихового или матричного кода:
a) Следует выбирать плотность печати с допусками, которые могут быть обеспечены используемой технологией маркирования или печати. Необходимо обеспечить, чтобы размер модуля был равен целому числу размеров пикселей печатающей головки (в параллельном и перпендикулярном направлениях печати). Следует добиваться того, чтобы любое приращение (сокращение) размеров элементов при печати осуществлялось путем изменения цвета одинакового целого числа пикселей с темного на светлый (или наоборот со светлого на темный) на всех границах перехода с темного на светлый для отдельных модулей или групп смежных темных модулей таким образом, чтобы интервал между центрами модулей оставался постоянным, хотя видимое растровое представление индивидуального темного (или светлого) модуля может быть откорректировано в размере, соответствующем направлению компенсации.
b) Следует подбирать устройство считывания с разрешающей способностью, наиболее подходящей для плотности и качества печати символа, которая обеспечивает данная технология печати.
c) Должна быть обеспечена совместимость оптических свойств напечатанного символа с длиной волны источника излучения и приемного элемента сканера.
d) Следует проверять соответствие символа на этикетке в ее законченном виде или итоговой конфигурации упаковки. Наложение изображений, просвечивание, фигурные или неровные поверхности могут оказывать влияние на эффективность считывания символа.
Следует учитывать влияние зеркального отражения от глянцевых подложек символа. Сканирующие системы должны учитывать колебания в диффузном отражении между темными и светлыми областями символа. При некоторых углах сканирования составляющая зеркального отраженного излучения может намного превышать требуемую составляющую диффузного отраженного излучения, снижая эффективность работы сканера. В тех случаях, когда поверхность материала или изделия может быть изменена путем получения матовой поверхности или устранения влияния глянца, это может помочь минимизировать эффекты зеркального отражения. Там, где подобные мероприятия невозможны, должны быть приняты меры по обеспечению специального освещения символа, чтобы оптимизировать считывание при требуемых значениях контраста.
Пользователи должны определить соответствующий уровень исправления ошибок, чтобы он соответствовал требованиям по применению. Согласно таблице 8 четыре уровня исправления ошибок от L до H увеличивают способность обнаружения и исправления ошибок за счет некоторого увеличения размера символа для данной длины сообщения. Например, символ версии 20-Q может содержать в общем случае 485 кодовых слов данных, но в случае применения иного уровня исправления ошибок, те же самые данные могут быть также быть представлены в символе версии 15-L (точная емкость 523 кодовых слова данных).
Уровень исправления ошибок должен быть определен с учетом:
- ожидаемого уровня качества символа: чем ниже ожидаемый класс качества печати, тем выше уровень исправления ошибок, который должен быть использован;
- важности осуществления декодирования с первого сканирования;
- возможности повторного сканирования в случае неудачного декодирования;
- ограничения размеров, которые могут уменьшать возможность использования более высокого уровня исправления ошибок.
Уровень исправления ошибок L соответствует высокому качеству печати символа и/или потребности в самом компактном возможном символе для размещения данных. Уровень M принят в качестве "Стандартного" уровня и обеспечивает хороший компромисс между увеличенной надежностью и небольшим размером. Уровень Q - "Высокая надежность" подходит для более требовательных применений или применений с низким качеством печати, в то время как уровень H обеспечивает максимальную достижимую надежность.
(справочное)
Символы QR Code могут быть считаны с помощью надлежащим образом запрограммированных декодеров, которые предназначены для их автоматического распознавания среди других символик. Запрограммированные соответствующим образом устройства считывания QR Code не должны декодировать символ, принадлежащий другой символике, как действительный символ QR Code; однако, представления, соответствующие коротким линейным символам, могут присутствовать в любом матричном символе, в том числе и в QR Code.
Хотя символы QR Code Model 1 могут быть автоматически распознаны соответствующим декодером отдельно от символов QR Code, настоятельно рекомендуется, чтобы эти два типа символов не использовались совместно в рамках одного применения.
Допустимый набор символик, на которые запрограммирован декодер, должен быть ограничен потребностями конкретного применения для достижения максимальной надежности считывания.
(справочное)
M.1 Общие положения
В настоящем приложении описаны процедуры и инструментальные средства, рекомендуемые для проведения мониторинга и контроля процесса создания пригодных для сканирования символов QR Code. Эти методы не включают в себя проверку качества печати произведенных символов (указанные методы приведены в разделе 10 и приложении G и устанавливают требуемый метод для оценки качества символа), но они по отдельности и все вместе предоставляют полезные рекомендации относительно того, создает ли данная технология производства пригодные для работы символы.
M.2 Контраст символа
Большинство верификаторов для линейных символов штрихового кода имеют или режим рефлектометра или режим построения профилей отражения при сканировании и/или отчет о контрасте символа согласно ISO/IEC 15416 для сканирований без декодирования. За исключением символов, требующих специальной конфигурации освещения, результаты считывания контраста символа с использованием апертуры размером 0,150 или 0,250 мм при оптическом излучении с длиной волны 660 нм (или с отчетом о значениях контраста символа, максимальном и минимальном значениях в профиле отражения при сканировании, или с указанием разности между максимальным и минимальным показаниями рефлектометра) хорошо коррелируются со значениями контраста символа, полученными при обработке изображения. В частности, результаты считывания могут быть использованы для проверки того, что контраст символа остается выше минимального допустимого значения, определяемого классом символа.
M.3 Оценка осевой неоднородности
Для символа QR Code измеряют расстояние от левого края верхнего левого шаблона поиска до правого края верхнего правого шаблона поиска и расстояние от верхнего края верхнего левого шаблона поиска до нижнего края нижнего левого шаблона поиска. Для символов Микро QR Code измеряют расстояние от левого края верхнего левого шаблона поиска до правого края самого правого модуля в верхнем шаблоне синхронизации и расстояние от верхнего края верхнего левого шаблона поиска до нижнего края самого нижнего модуля в левом шаблоне поиска. Производят деление каждого полученного значения на число модулей в соответствующем измерении. Например символ версии 2 имел бы значение 25 в качестве делителя. Следует заменить результаты на XAVG и YAVG в формуле в G.2.4 <1> и получить класс для оценки осевой неоднородности.
--------------------------------
<1> В ИСО/МЭК 18004:2005 ошибочно приведена ссылка на отсутствующий подраздел G.2.4. Формула для определения параметра осевой неоднородности приведена в ИСО/МЭК 15415 (7.8.6).
M.4 Визуальные проверки искажений и дефектов символа
Визуальный осмотр шаблонов писка и шаблонов синхронизации в образцах символов поможет контролировать важный аспект процесса производства.
Матричные символы чувствительны к ошибкам, вызванным локальными искажениями матричной сетки. Любые такие искажения могут быть обнаружены визуально или как изогнутые края на шаблонах поиска или как неравные интервалы в чередующихся шаблонах синхронизации, проведенных между шаблонами поиска и выровненных по их внутренним границам.
Шаблон(ы) поиска и смежные свободные зоны должны всегда быть сплошными темными и светлыми <2>. Ошибки в механизме печати, который может создавать дефекты в форме светлых или темных полос, проходящих через символ, должны быть явно видны там, где они нарушают шаблон поиска или свободную зону. Такие систематические ошибки в процессе печати должны быть исправлены.
--------------------------------
<2> То есть должны иметь коэффициенты отражения с противоположными значениями.
M.5 Оценка приращения размеров элементов при печати
Линейный верификатор штрихового кода, допускающий прямые измерения ширины штрихов и пробелов, может использоваться для оценки приращения или сокращения при печати по горизонтальной и вертикальной осям путем измерения по двум путям сканирования проходящими под прямым углом через шаблон поиска и пересекающими центр, состоящий из блока модулей 3 x 3. Анализ на выходе должен обнаружить видимый шаблон штрих/пробел/штрих/пробел/штрих; увеличение (или уменьшение) при печати можно оценить путем сравнения пяти измеренных значений ширины напечатанных элементов с идеальным отношением значений ширины 1:1:3:1:1.
(справочное)
N.1 Символы Model 1 QR Code
QR Code Model 1 согласно спецификации AIM ITS 97-001 <1>, является формой символики, первоначально использовавшейся в ранних или закрытых системах конкретных применений, но не рекомендуемой для использования в новых или открытых системах применений, и не подходит для случаев, где вероятно появление больших объемов данных. Во многих отношениях это следует из самой спецификации QR Code, но отличается во множестве существенных аспектов, которые приведены в настоящем приложении.
--------------------------------
<1> См. спецификацию [21].
N.1.1 Общие параметры Model 1
a) Размер символа (исключая свободную зону):
От 21 x 21 модулей до 73 x 73 модулей (версии от 1 до 14, в порядке возрастания с шагом в 4 модуля на сторону).
b) Максимальная емкость данных (для символа максимального размера с минимальным уровнем исправления ошибок, версия 14-L):
c) Структура и параметры символа в сравнении с символами QR Code:
- направляющие шаблоны: символы Model 1 не имеют направляющих шаблонов;
- дополнительные шаблоны: символы Model 1 имеют дополнительные шаблоны по правой и нижней сторонам;
- информация о версии: символы Model 1 не содержат информации о версии;
- размещение знаков символа: из-за вышеупомянутого, размещение знаков символа следует другим правилам;
- символы Model 1 не поддерживают протокол ECI;
- символы Model 1 не поддерживают зеркальное отображение;
- символы Model 1 не поддерживают инвертирование коэффициентов отражения.
d) Исправление ошибок: алгоритмы вычисления кодовых слов обнаружения и исправления ошибок совпадают с принятыми для символов QR Code, но число и размеры блоков исправления ошибок различаются для разных версий. Для блоков данных и блоков кодовых слов исправления ошибок не используется чередование.
На рисунке N.1 приведена структура символа версии 7 Model 1 QR Code.
![]() Рисунок N.1 - Структура символа QR Code Model 1
N.1.2 Версии и размеры символов
Установлены четырнадцать вариантов размеров символов Model 1 от версии 1 до версии 14, размеры которых совпадают с размерами символов Model 2 тех же версий согласно 6.3.2. Символы версии 1, следовательно, имеют размер 21 x 21 модуль, а символы версии 14 - размер 73 x 73 модуля. В таблице N.1 приведена емкость данных для символов Model 1 для разных уровней исправления ошибок.
Таблица N.1
Емкость данных для всех версий символов Model 1 QR Code
Примечание - Первое кодовое слово имеет длину 4 бита. Все последующие кодовые слова имеют длину 8 битов. Для алгоритмов генерации кодовых слов исправления ошибок к первому кодовому слову (4 бита) добавляется префикс 0000, чтобы получить кодовое слово длиной 8 битов.
--------------------------------
N.2 Детальная информация
Полная информация о производстве и считывании символов Model 1 содержится в AIM ITS 97-001 <2>.
--------------------------------
<2> См. спецификацию [21].
(справочное)
ГРАФИЧЕСКИЕ ЗНАКИ РАСШИРЕННОГО НАБОРА ЗНАКОВ ASCII (ВЕРСИЯ
КОИ-8) ПО ИСО/МЭК 8859-1 И НАБОР 8-БИТОВЫХ ГРАФИЧЕСКИХ
ЗНАКОВ (ВЕРСИЯ КОИ-8) ПО ИСО/МЭК 8859-5
ДА.1 Набор 7-битовых знаков ASCII (версия КОИ-7) по ИСО/МЭК 646
В таблице ДА.1 приведен набор 7-битовых знаков ASCII (версия КОИ-7) по ИСО/МЭК 646 и соответствие международных и русских наименований и обозначений знаков.
Таблица ДА.1
Набор 7-битовых знаков ASCII (версия КОИ-7) по ИСО/МЭК 646
Примечание - Набор 7-битовых знаков ASCII (версия КОИ-7) состоит из набора знаков G0 по ИСО/МЭК 646 и C0 по ИСО/МЭК 6429, в котором знаки с десятичными значениями от 28 до 31 соответствуют знакам FS, GS, RS и US национальной версии США <1> соответственно.
--------------------------------
<1> Набор знаков по 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)).
ДА.2 Графические знаки расширенного набора знаков ASCII (версия КОИ-8) по ИСО/МЭК 8859-1
В таблице ДА.2 приведены графические знаки расширенного набора 8-битовых знаков ASCII (версия КОИ-8) по ИСО/МЭК 8859-1:1998 (латинский алфавит N 1) и соответствие международных и русских наименований и обозначений знаков. В связи с тем, что знаки указанного набора с десятичными значениями с 0 по 127 полностью совпадают с набором знаков ASCII (КОИ-7), в таблице ДА.2 приведены 8-битовые графические знаки с десятичными значениями от 160 по 255 и их шестнадцатеричные значения.
Таблица ДА.2
Графические знаки расширенного набора 8-битовых знаков ASCII
(версия КОИ-8) по ИСО/МЭК 8859-1
ДА.3 Набор 8-битовых графических знаков (версия КОИ-8) по ИСО/МЭК 8859-5
В таблице ДА.3 приведен набор 8-битовых графических знаков (версия КОИ-8) по ИСО/МЭК 8859-5:1999 (латинский/кирилловский алфавит) и соответствие международных и русских наименований и обозначений знаков. В связи с тем, что знаки указанного набора с десятичными значениями с 0 по 127 полностью совпадают с набором 7-битовых знаков по ИСО 646, в таблице ДА.3 приведены 8-битовые графические знаки с десятичными значениями от 160 по 255.
Таблица ДА.3
Набор 8-битовых графических знаков (версия КОИ-8)
по ИСО/МЭК 8859-5
(справочное)
ССЫЛОЧНЫМ НАЦИОНАЛЬНЫМ СТАНДАРТАМ РОССИЙСКОЙ ФЕДЕРАЦИИ
Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации приведены в таблице ДБ.1.
Таблица ДБ.1
--------------------------------
<1> Действует ГОСТ 34.302.2-91 "Информационная технология. Наборы 8-битовых однобайтовых кодированных графических символов. Латинский алфавит N 2".
<2> В приложении ДБ настоящего стандарта приведен набор знаков по ИСО/МЭК 8859-5 (ISO/IEC 8859-5).
<3> ГОСТ 30832-2002 (ИСО/МЭК 15416-2000)/ГОСТ Р 51294.7-2001 (ИСО/МЭК 15416-2000) "Автоматическая идентификация. Кодирование штриховое. Линейные символы штрихового кода. Требования к испытаниям качества печати" модифицирован по отношению к ИСО/МЭК 15416-2000.
--------------------------------
<1> ГОСТ ISO/IEC 15417-2013 "Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода Code 128" идентичен по отношению к ИСО/МЭК 15417.
<2> Может быть использован ГОСТ Р 51294.1-99 "Автоматическая идентификация. Кодирование штриховое. Идентификаторы символик".
<3> ГОСТ Р ИСО/МЭК 15434-2007 "Автоматическая идентификация. Синтаксис для средств автоматического сбора данных высокой емкости" идентичен по отношению к ISO/IEC 15434:2006.
<4> Р 50.1.081-2012 "Информационные технологии. Технологии автоматической идентификации и сбора данных. Рекомендации по прямому маркированию изделий (ПМИ)" идентичен ИСО/МЭК ТО 29158 (ISO/IEC TR 29158).
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/gost-r_gosudarstvennyj-standart/35/gost_17950.html
На правах рекламы:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||