ГОСТ Р ИСО/МЭК 18004-2015 Информационные технологии (ИТ). Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода QR Code.

   

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

 

Группа П85

 

 

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

 

 

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

 

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

 

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

 

 Information technology. Automatic identification and data capture techniques. QR Code bar code symbology specification

 

ОКС 35.040

01.080.50

Дата введения 2016-02-01

 

 

 Предисловие

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

 

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

 

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

 

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

 

           

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

 

           

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*);

________________

* Имеется в виду ИСО/МЭК 18004:2000.

 

- QR Code (основа для второй версии ИСО/МЭК 18004*) символика, в значительной степени соответствующая QR Code Model 2; отличающаяся от этого формата QR Code дополнительными параметрами для символов, представленных в зеркальном отображении инвертированного изображения (светлые символы на темном фоне), а также опциями, используемыми для определения альтернативных наборов знаков, отличающихся от набора знаков по умолчанию;

________________

* Имеется в виду ИСО/МЭК 18004:2006.

 

- формат 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.

 

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

 

 

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

     

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

________________

Наименование символики произносится как Кюар Код; аббревитура QR расшифровывается как quick response, что в переводе на русский язык означает быстрый отклик
.
 

      2 Соответствие

     

Символы 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 рекомендуется использовать для открытых систем и вновь создаваемых применений.

 

 

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

     

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

 

           

ИСО/МЭК 8859-1:1998
Информационные технологии. 8-битовые однобайтовые наборы кодированных графических знаков. Часть 1. Латинский алфавит N 1 (Information technology - 8-bit single-byte coded graphic character sets - Part 1: Latin alphabet No.1)
 

________________

Набор знаков приведен в
приложении ДА
.
 

ИСО/МЭК 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)

 

 

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

     

В настоящем стандарте применяются термины, определенные в ИСО/МЭК 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 от версии М1 до версии М4 для обеспечения возможности их отличия от символов QR Code.

 

4.12 режим (mode): Способ преобразования последовательности кодируемых знаков в двоичную строку.

 

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

 

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

________________

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

4.15 остаточный бит (remainder bit): Нулевой бит, не представляющий данные, используемый для заполнения оставшихся незаполненными позиций в области кодирования после последнего знака символа в случае, если область кодирования, предназначенная для знаков символа, не полностью распределена для размещения 8-битовых знаков символа.

 

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

________________

Остаточные кодовые слова добавляют после кодовых слов исправления ошибок.
 

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
11 (версия М1) до 17
17 (версия М4), а символы QR Code - от 21
21 (версия 1) до 177
177 (версия 40).
 

Примечание - Уровень исправления ошибок, применимый к символу, может быть добавлен к обозначению версии, например, версия 4-L или версия M3-Q.

 

4.23 информация о версии (version information): Шаблон, закодированный в некоторых символах QR Code, содержащий информацию о версии символа вместе с битами исправления ошибок для этих данных.

 

 

      5 Математические и логические символы, обозначения и соглашения об обозначениях

 

 

      5.1 Математические и логические символы

     

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

 

Кроме того, в настоящем стандарте применяются следующие математические и логические операторы:

 

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

 

mod - оператор вычисления остатка от деления на целое число;

 

XOR - исключающее ИЛИ (exclusive-or) - логическая функция или операция, результатом которой является единица только в случае неэквивалентности двух входов; обозначается знаком
.
 

      5.2 Сокращения

     

ВСН - код Боуза-Чоудхури-Хоквингема (Bose-Chaudhuri-Hocquenghem);

 

ECI - интерпретация в расширенном канале (Extended Channel Interpretation);

 

RS - код Рида-Соломона (Reed-Solomon).

 

 

      5.3 Соглашения об обозначениях

     

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) соответствуют вышеуказанному.

 

 

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

 

 

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

     

QR Code - это матричная символика, имеющая следующие параметры:

 

a) форматы:

 

1) QR Code, который обладает полным набором возможностей и максимальной емкостью для данных;

 

2) Micro QR Code, который обладает уменьшенным набором возможностей, рядом ограниченных возможностей и уменьшенной емкостью для данных (по сравнению с символами QR Code);

 

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

 

1) числовые данные (цифры от 0 до 9);

 

2) алфавитно-цифровые данные (цифры от 0 до 9; прописные буквы от A до Z и девять специальных графических знаков: пробел, $, %, *, +, -, ., /, :);

 

3) байтовые данные (по умолчанию - в соответствии с ИСО/МЭК 8859-1 или другой набор знаков
, если это специально указано (см. 7.3.5));
 

________________

В
приложении ДА
приведен набор знаков кирилловского алфавита по ИСО/МЭК 8859-5.
 
4) знаки кандзи
. Один знак кандзи в QR Code может быть уплотнен в 13 битов;
 

________________

Кандзи (японское наименование -
, английское наименование - Kanji) - иероглифическое письмо, являющееся составной частью японской письменности.
 

        

 

c) представление данных:

 

темный модуль, как правило, является двоичной единицей, а светлый модуль - двоичным нулем. В случаях обратимого изображения - см. 6.2;

 

d) размеры символа (не включая свободную зону):

 

1) символы Micro QR Code: размеры (в модулях) от 11
11 до 17
17 (версии от М1 до М4 с шагом два модуля для каждой стороны);
 
2) символы QR Code: размеры (в модулях) от 21
21 до 177
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 уровень исправления ошибок Н не используют. Для Micro QR Code версии M1 алгоритм Рида-Соломона обеспечивает только возможность обнаружения ошибок;

 

g) тип кода:

 

- матричный;

 

h) независимость от ориентации:

 

- обеспечивается (допускается поворот на любой угол и зеркальное отображение).

 

На рисунке 1 представлен символ QR Code версии 1 с типовым цветовым сочетанием, символ с инвертированным изображением представлен в 6.2, на рисунках символы приведены в обычной ориентации и в зеркальном отображении.

 

На рисунке 2 представлен символ Micro QR Code версии M2 с типовым цветовым сочетанием и символ с инвертированными коэффициентами отражения (см. 6.2), на рисунках символы приведены в обычной ориентации и в зеркальном отображении.

 

 

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

     

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

 

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

 

Эта опция обеспечивает возможность представления одного длинного сообщения в виде нескольких (до 16) логически связанных символов QR Code, которые могут быть отсканированы в любой последовательности с возможностью корректного восстановления исходных данных. В символах Micro QR Code структурированное соединение не допускается;

 

- интерпретация в расширенном канале (ECI)

 

Эта опция обеспечивает возможность использования наборов знаков, отличающихся от набора знаков по умолчанию, (например, арабского, кириллицы, греческого) и иных интерпретаций данных (например, уплотнение данных с использованием определенных схем уплотнения) или соответствия другим международным отраслевым требованиям к кодированию. В символах Micro QR Code не допускается использование ECI, отличающейся от интерпретации по умолчанию;

 

- инверсия значений коэффициента отражения

 

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

 

- зеркальное отображение

 

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

 

 

a) обычная ориентация и типовые значения коэффициентов отражения; b) обычная ориентация и инвертированные значения коэффициентов отражения; c) зеркальная ориентация изображения и типовые значения коэффициентов отражения; d) зеркальная ориентация изображения и инвертированные значения коэффициентов отражения

 

Рисунок 1 - Примеры символов QR Code, кодирующих текст "QR Code Symbol"

 

 

a) обычная ориентация и типовые значения коэффициентов отражения; b) обычная ориентация и инвертированные значения коэффициентов отражения; c) зеркальная ориентация изображения и типовые значения коэффициентов отражения; d) зеркальная ориентация изображения и инвертированные значения коэффициентов отражения

 

Рисунок 2 - Примеры символов Micro QR Code версии M2, кодирующих текст "01234567"

Примечание - Угловые метки на рисунках 1 и 2 указывают границы свободной зоны.

 

 

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

     

6.3.1 Общие положения

 

Каждый символ QR Code состоит из номинально квадратных модулей, структурированных в регулярную матрицу, и включает область кодирования и функциональные шаблоны, называемые шаблонами поиска, разделителями, шаблонами синхронизации и направляющими шаблонами. Функциональные шаблоны не содержат данных. Символ должен быть окружен со всех четырех сторон свободной зоной. На рисунке 3 представлена структура символа версии 7. На рисунке 4 представлена структура символа версии M3.

 

 

Рисунок 3 - Структура символа QR Code версии 7

 

 

 

Рисунок 4 - Структура символа Micro QR Code версии М3

6.3.2 Версии и размеры символов

 

6.3.2.1 Символы QR Code

 

Существует 40 возможных вариантов размера символа QR Code, обозначаемых как версия 1, версия 2, ... , версия 40. Версия 1 имеет размеры (в модулях) 21
21, версия 2 - 25
25 и так далее с шагом 4 модуля вплоть до версии 40, которая имеет размер (в модулях) 177
177. На рисунках 5-10 представлены структуры символов версий 1, 2, 6, 7, 14, 21 и 40.
 
 

Рисунок 5 - Символы версий 1 и 2

 

 

 

Рисунок 6 - Символ версии 6

 

 

 

Рисунок 7 - Символ версии 7

 

 

 

Рисунок 8 - Символ версии 14

 

 

 

Рисунок 9 - Символ версии 21

 

 

Рисунок 10 - Символ версии 40

6.3.2.2 Символы Micro QR Code

 

Символы Micro QR Code могут иметь четыре размера, обозначаемые как версии с M1 по M4. Версия M1 имеет размеры (в модулях) 11
11, версия M2 (в модулях) - 13
13, версия M3 (в модулях) - 15
15, версия M4 (в модулях) -17
17, т.е. с шагом 2 модуля по каждой стороне. На рисунке 11 представлена структура символов Micro QR Code версий с M1 по M4.
 

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

 

 

Рисунок 11 - Версии символов Micro QR Code

6.3.3. Шаблон поиска

 

6.3.3.1 Символы QR Code

 

Имеются три одинаковых шаблона поиска, размещенных в левом верхнем, правом верхнем и левом нижнем углах символа, как показано на рисунке 3. Каждый шаблон поиска выглядит как три вложенных друг в друга квадрата: темного размерами (в модулях) 7
7, светлого размерами (в модулях) 5
5 и темного размерами (в модулях) 3
3. Размеры в модулях в любом шаблоне поиска находятся в соотношении 1:1:3:1:1, как показано на рисунке 12. Представление кодируемых данных должно быть таким чтобы, что вероятность встретить такой шаблон среди кодируемых данных была очень мала, что позволяет быстро определить присутствие символа QR Code в поле обзора. Идентификация трех шаблонов, составляющих шаблон поиска, позволяет определить место нахождения и угловую ориентацию символа в поле обзора.
 

6.3.3.2 Символы Micro QR Code

 

Единственный шаблон поиска по 6.3.3.1 расположен в верхнем левом углу символа, как показано на рисунке 4. Идентификация шаблона поиска вместе с шаблонами синхронизации однозначно определяет размер, положение и угловую ориентацию символа в поле обзора.

 

 

Рисунок 12 - Структура шаблона поиска

6.3.4 Разделитель

 

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

 

6.3.5 Шаблон синхронизации

 

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

 

В символах QR Code горизонтальный шаблон синхронизации проходит по шестой строке символа между разделителями верхнего левого и верхнего правого шаблона поиска символа; вертикальный шаблон синхронизации проходит по шестому столбцу между разделителями верхнего левого и нижнего левого шаблона поиска символа, как показано на рисунке 3.

 

В символах Micro QR Code горизонтальный шаблон синхронизации проходит по нулевой строке символа от правого разделителя до правого края символа; вертикальный шаблон синхронизации проходит по нулевому столбцу символа от нижнего разделителя до нижнего края символа, как показано на рисунке 4.

 

6.3.6 Направляющие шаблоны

 

Направляющие шаблоны присутствуют только в символах QR Code версии 2 или версии с большим номером. Каждый шаблон представляет собой суперпозицию трех вложенных друг в друга квадратов и состоит из темного квадрата размерами (в модулях) 5
5, светлого размерами (в модулях) 3
3 и единственного темного модуля в центре. Число направляющих шаблонов зависит от версии символа и шаблоны должны присутствовать во всех символах, начиная с версии 2 и версии с большим номером, в позициях, установленных в приложении Е.
 

6.3.7 Область кодирования

 

Эта область содержит знаки символа, представляющие данные, кодовые слова исправления ошибок, информацию о формате и версии. Подробные требования к знакам символа приведены в 7.7.1, к информации о формате - в 7.9, к информации о версии - в 7.10.

 

6.3.8 Свободная зона

 

Это область должна быть свободной от всех других маркировок и окружать символ со всех четырех сторон. Коэффициент отражения свободной зоны должен соответствовать коэффициенту отражения светлых модулей.

 

Для символов QR Code ширина свободной зоны должна быть равна 4Х.

 

Для символов Micro QR Code ширина свободной зоны должна быть равна 2Х.

 

      7 Требования

 

 

      7.1 Основные положения процедуры кодирования

     

В настоящем разделе описан процесс преобразования входных данных в символ QR Code.

 

Этап 1. Анализ данных

 

Анализируют входной поток данных, чтобы установить различия входящих в него знаков, которые нужно закодировать. Формат QR Code (не Micro QR Code) поддерживает интерпретацию в расширенном канале, допуская для кодирования данные, отличающиеся от заданного по умолчанию набора знаков. QR Code может включать в себя несколько режимов (см. 7.3), которые позволяют эффективно преобразовывать различные поднаборы знаков в знаки символа. По мере необходимости между режимами вставляют переключения для достижения наиболее эффективного преобразования данных в двоичную строку. Выбирают требуемый уровень обнаружения и исправления ошибок. Если пользователь не определил версию символа, которую нужно использовать, выбирают версию символа с наименьшим значением, которая допускает размещение данных. Полный перечень версий символа и соответствующих им емкостей приведен в таблице 1.

 

Этап 2. Кодирование данных

 

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

 

Этап 3. Кодирование исправления ошибок

 

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

 

Этап 4. Структура завершенного сообщения

 

Кодовые слова данных чередуют с кодовыми словами исправления ошибок от каждого блока согласно в 7.6 (этап 3) и добавляют остаточные биты, если это необходимо.

 

Этап 5. Размещение модулей в матрице

 

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

 

Этап 6. Маскирование данных

 

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

 

Этап 7. Информация о формате и версии

 

Формируют информацию о формате и, при необходимости, о версии, после чего завершают создание символа.

 

Таблица 1 - Емкость кодовых слов для всех версий QR Code

 

 

 

 

 

 

 

Версия

Число модулей/

сторона (A)

Число модулей в функциональных шаблонах (B)

Число модулей в информации о версии (C)

Оставшиеся модули для данных (D)
(D=A
-B-C)
 
Объем данных (кодовых
слов (E)
 

Остаточные биты

M1

11

70

15

36

5

0

M2

13

74

15

80

10

0

M3

15

78

15

132

17

0

M4

17

82

15

192

24

0

1

21

202

31

208

26

0

2

25

235

31

359

44

7

3

29

243

31

567

70

7

4

33

251

31

807

100

7

5

37

259

31

1079

134

7

6

41

267

31

1383

172

7

7

45

390

67

1568

196

0

8

49

398

67

1936

242

0

9

53

406

67

2336

292

0

10

57

414

67

2768

346

0

11

61

422

67

3232

404

0

12

65

430

67

3728

466

0

13

69

438

67

4256

532

0

14

73

611

67

4651

581

3

15

77

619

67

5243

655

3

16

81

627

67

5867

733

3

17

85

635

67

6523

815

3

18

89

643

67

7211

901

3

19

93

651

67

7931

991

3

20

97

659

67

8683

1085

3

21

101

882

67

9252

1156

4

22

105

890

67

10068

1258

4

23

109

898

67

10916

1364

4

24

113

906

67

11796

1474

4

25

117

914

67

12708

1588

4

26

121

922

67

13652

1706

4

27

125

930

67

14628

1828

4

28

129

1203

67

15371

1921

3

29

133

1211

67

16411

2051

3

30

137

1219

67

17483

2185

3

31

141

1227

67

18587

2323

3

32

145

1235

67

19723

2465

3

33

149

1243

67

20891

2611

3

34

153

1251

67

22091

2761

3

35

157

1574

67

23008

2876

0

36

161

1582

67

24272

3034

0

37

165

1590

67

25568

3196

0

38

169

1598

67

26896

3362

0

39

173

1606

67

28256

3532

0

40

177

1614

67

29648

3706

0

 
Все кодовые слова имеют размер 8 битов, за исключением версий M1 и M3, где финальное кодовое слово имеет размер 4 бита.
 
 
В ИСО/МЭК 18004 ошибочно указано C.
 

 

 

      7.2 Анализ данных

     

Анализируют строку входных данных с целью определения ее содержания и выбирают установленную по умолчанию или другую соответствующую ECI и соответствующий режим, чтобы закодировать каждую последовательность знаков в соответствии с 7.4. Каждый режим последовательно от числового до режима кандзи требует большего числа битов на знак. Допускается переключение с режима на другой в пределах символа с целью уменьшить длину выходного потока данных, некоторые части которых могут более эффективно кодироваться в одном режиме, в отличие от других частей, например числовые последовательности, сопровождаемые алфавитно-цифровыми последовательностями. Теоретически наиболее эффективно кодировать данные в режиме, требующем наименьшего числа битов на знак входных данных, но так как есть некоторая избыточность в виде индикатора режима и индикатора числа знаков, связанного с каждым изменением режима, то в результате не всегда может получиться самый короткий двоичный поток, если изменить режимы для нескольких знаков. Кроме того, так как емкость символов увеличивается дискретным ступенчатым образом от одной версии до следующей, не всегда требуется обеспечивать максимальную эффективность. Руководство по уменьшению длины двоичного потока приведено в приложении J. В символах Micro QR Code есть ограничения на использование режимов, доступных в версиях с меньшими номерами. В J.2 приведены версии символов Micro QR Code, соответствующим различным комбинациям двух режимов.

 

 

      7.3 Режимы

     

7.3.1 Общие положения

 

Режимы, представленные в настоящем разделе, основаны на значениях знаков и представлениях, связанных со значением ECI по умолчанию. Когда задействована любая другая ECI (только в символах QR Code), для определения оптимального режима рекомендуется использовать значения байта, а не определенные представления знаков. Например, числовой режим следует использовать, если встречается последовательность байтов данных, значения которых находятся в пределах диапазона от 30
до 39
включ. В этом случае лучшее уплотнение достигается при использовании заданных по умолчанию числовых или алфавитно-цифровых эквивалентов значений байта.
 

7.3.2 Интерпретация в расширенном канале (ECI)

 

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

________________

См. спецификацию [22].
 

Для QR Code по умолчанию принята интерпретация ECI 000003, соответствующая набору знаков в ИСО/МЭК 8859-1.

 

В международных применениях могут быть использованы другие наборы знаков с помощью протокола ECI
. Например, интерпретация ECI
000020
, соответствующая набору знаков JIS8 и Shift JIS.
 

________________

ИСО/МЭК 8859-5 устанавливает набор знаков с буквами кирилловского алфавита. Указанный набор приведен в
приложении ДА
. Этому набору соответствует ECI
000007
.
 

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

 

7.3.3 Числовой режим

 

Числовой режим кодирует данные, состоящие из десятичных цифр (
0-9)
(байтовые значения от 30
до 39
). Три знака данных обычно кодируются десятью битами.
 

7.3.4 Алфавитно-цифровой режим

 

Алфавитно-цифровой режим позволяет закодировать входные данные из набора 45 знаков: 10 десятичных цифр (
0-9
) (байтовые значения от 30
до 39
), 26 латинских букв (
A-Z
) (байтовые значения от 41
до 5A
) и 9 специальных символов (
SP
,
$
,
%
,
*
,
+
,
-
,
.
,
/
,
:
) (байтовые значения 20
, 24
, 25
, 2A
, 2В
, 2D до 2F
, 3A
соответственно). Обычно два входных знака кодируются 11 битами.
 

В символике Micro QR Code версии M1 алфавитно-цифровой режим недоступен.

 

7.3.5 Байтовый режим

 

В этом режиме каждый знак входных данных кодируется 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-битового байтового режима, использует байтовые значения в диапазоне от 81
до 9F
и/или от E0
до EB
, невозможно использовать режим кандзи однозначно, поскольку считывающие системы не способны из передаваемых данных определить, являются ли такие значения байта собственно данными или ведущим байтом двухбайтового знака. Можно получить более короткий двоичный поток, используя правила уплотнения режима кандзи, когда в данных встречается соответствующая последовательность значений байтов (т.е. ведущие байты, имеющие значения в диапазоне от 81
до 9F
и/или от E0
до EB
, сопровождаемые байтом, имеющим значение от 40
до FC
, исключая 7F
, или EB
, сопровождаемые байтом, имеющим значение от 40
до BF
). Байтовые комбинации представлены на рисунке Н.1.
 

В символике Micro QR Code версий M1 и M2 режим кандзи недоступен.

 

7.3.7 Смешанный режим

 

Символы 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 режим структурированного соединения недоступен.

 

7.3.9 Режим функционального знака 1 (FNC1)

 

Режим функционального знака 1 (FNC1) используется в сообщениях, которые содержат данные специального формата. FNC1 в "первой позиции", указывает, что данные отформатированы в соответствии с Общими спецификациями GS1. FNC1 во "второй позиции" определяет данные, отформатированные в соответствии с применением, согласованными с организацией AIM Inc. Режим FNC1 воздействует на все содержимое символа, но последующие индикаторы режима на него не оказывают влияния.

 

Примечание - "Первая позиция" и "вторая позиция" не относятся к фактическим местоположениям, но основаны на позиции знаков аналогично символике Code 128.

 

В символике Micro QR Code режим FNC1 недоступен.

 

 

      7.4 Кодирование данных

     

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 - Индикаторы режима для QR Code

 

 

 

 

 

 

Режим

Символы QR Code

Символы Micro QR Code

версия

любой версии

M1

M2

M3

M4

Длина индикатора режима, биты

4

0

1

2

3

ECI

0111

n/a

n/a

n/a

n/a

Числовой

0001

n/a

0

00

000

Алфавитно-цифровой

0010

n/a

1

01

001

Байтовый

0100

n/a

n/a

10

010

Кандзи

1000

n/a

n/a

11

011

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

0011

n/a

n/a

n/a

n/a

FNC1
 

0101 (1-я позиция)

 

 

 

 

 

1001 (2-я позиция)

n/a

n/a

n/a

n/a

Ограничитель (конец сообщения)
 

0000

000

00000

0000000

000000000

См. 7.4.8.2 и 7.4.8.3.
 
Ограничитель по сути не является индикатором режима.
 

     

 

Таблица 3 - Число битов в индикаторе числа знаков для QR Code

 

 

 

 

 

Версия

Числовой режим

Алфавитно-цифровой режим

Байтовый режим

Режим кандзи

M1

3

n/a

n/a

n/a

M2

4

3

n/a

n/a

M3

5

4

4

3

M4

6

5

5

4

1-9

10

9

8

8

10-26

12

11

16

10

27-40

14

13

16

12

 

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

 

7.4.2 Режим интерпретации в расширенном канале (ECI)

 

7.4.2.1 Общие положения

 

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

________________

См. спецификацию [22].
 

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

 

Входные данные ECI должны быть обработаны в системе кодирования как ряд байтовых значений.

 

Данные в последовательности ECI могут кодироваться в любом режиме или режимах, допускающих наиболее эффективное кодирование значений байта данных, независимо от их графического представления. Например, последовательность байтов со значениями в диапазоне от 30
до 39
может кодироваться в числовом режиме (см. 7.4.3), как если бы это была последовательность цифр от 0 до 9, даже при том, что это фактически может представлять нечисловые данные. Для определения значения индикатора числа знаков следует использовать несколько байтов (в режиме кандзи - пар байтов).
 

7.4.2.2 Обозначение ECI

 

Каждая интерпретация в расширенном канале обозначается шестизначным номером представления, который кодируется в символе QR Code как первое одно, два или три кодовых слова после индикатора режима ECI. Правила кодирования приведены в таблице 4. Обозначение ECI в данных кодируется как знак со значением 5С
или знак "\" "обратная дробная черта" по ИСО/МЭК 8859-1, знак "
" или "иена" в наборе JIS8, сопровождаемый шестизначным десятичным номером представления ECI. Там, где знак со значением 5С
встречается в кодируемых данных, должны быть переданы два байта с этим же значением в строке знаков перед кодированием в символе, к которому применяют протокол ECI.
 
В случае одиночного применения знак 5С
действует как управляющий знак индикатора ECI, за которым должно следовать обозначение ECI. Появление сдвоенных знаков 5С
свидетельствует о наличии знака данных.
 

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

 

Таблица 4 - Кодирование номеров представлений ECI

 

 

 

Значение представления ECI

Число кодовых слов

Значения кодовых слов

От 000000 до 000127

1

0bbbbbbb

От 000000 до 016383

2

10bbbbbb bbbbbbbb

От 000000 до 999999

3

110bbbbb bbbbbbbb bbbbbbbb

Примечание - b...b - двоичное значение номера представления ECI.     

 

Пример - Кодирование букв греческого алфавита с использованием набора знаков ИСО/МЭК 8859-7 (ECI 000009) в символ версии 1-Н.

 

 

 

 

Данные для кодирования:

\000009АВГ
Е
 
(значения знаков A1
, A2
, A3
, A4
, A5
)
 

Последовательность битов в символе:

Индикатор ECI:

0111

Номер представления ECI (000009):

0 0001001

Индикатор режима (байты)

0100

Индикатор числа знаков (5)

00000101

Данные:

10100001 10100010 10100011 10100100 10100101

Завершенный двоичный поток:

 

 

0111 00001001 0100 00000101 10100001 10100010 10100011 10100100 10100101

 

Пример декодирования таких данных приведен в 14.3.

 

7.4.2.3 Множественные ECI

 

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

________________

См. спецификацию [22].
 

7.4.2.4 ECI и структурированное соединение

 

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

 

7.4.3 Числовой режим

 

Входную строку данных разделяют на группы по три цифры, а каждую группу преобразуют в 10-битовое двоичное число. Если число цифр не делится на три без остатка, последние одна или две цифры должны быть преобразованы в 4 или 7 битов соответственно. Двоичные данные объединяют и добавляют префикс индикатора режима и индикатора числа знаков. Размер в битах и битовое представление индикатора цифрового режима указаны в таблице 2, размер в битах индикатора числа знаков - в таблице 3. Число знаков входных данных преобразуют в двоичный эквивалент и добавляют как индикатор числа знаков после индикатора режима и перед кодируемыми данными.

 

Пример 1 - Преобразование для символа версии 1-Н

 

 

 

 

Входные данные:

01234567

1 Разделяют на группы по три цифры:

012 345 67

2 Преобразуют каждую группу в ее двоичное представление:

 

012
0000001100
 
345
0101011001
 
67
1000011
 

3 Соединяют в последовательность: 0000001100 0101011001 1000011

 

4 Преобразуют индикатор числа знаков в двоичный вид (10 бит для версии 1-Н):

Число знаков входных данных:

8
0000001000
 

Добавляют индикатор режима 0001 и индикатор числа знаков к двоичным данным:

 

0001 0000001000 0000001100 0101011001 1000011

 

Пример 2 - Преобразование для символа Micro QR Code версии М3-М

 

 

 

 

 

Входные данные: 0123456789012345

1 Разделяют на группы по три цифры:

012 345 678 901 234 5

2 Преобразуют каждую группу в ее двоичное представление:

 

012=0000001100

 

345=0101011001

 

678=1010100110

 

901=1110000101

 

234=0011101010

 

5=0101

3 Соединяют вместе в последовательность:

 

0000001100 0101011001 1010100110 1110000101 0011101010 0101

4 Преобразуют число знаков в индикатор числа знаков (5 битов для версии M3-M):

Число знаков входных данных:

16=10000

5 Добавляют индикатор режима (00 для версии М3-М) и индикатор числа знаков к двоичным данным:

 

00 10000 0000001100 0101011001 1010100110 1110000101 0011101010 0101

 

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

 

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 - Кодирование/декодирование для алфавитно-цифрового режима

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Знак

Зна-

че-

ние

Знак

Зна-

че-

ние

Знак

Зна-

че-

ние

Знак

Зна-

че-

ние

Знак

Зна-

че-

ние

Знак

Зна-

че-

ние

Знак

Зна-

че-

ние

Знак

Зна-

че-

ние

0

0

6

6

C

12

I

18

O

24

U

30

SP

36

.

42

1

1

7

7

D

13

J

19

P

25

V

31

$

37

/

43

2

2

8

8

E

14

K

20

Q

26

W

32

%

38

:

44

3

3

9

9

F

15

L

21

R

27

X

33

*

39

 

 

4

4

A

10

G

16

M

22

S

28

Y

34

+

40

 

 

5

5

B

11

H

17

N

23

T

29

Z

35

-

41

 

 

 

Знаки входных данных разбивают на группы по два знака, и каждую группу преобразуют в 11-битовый двоичный код. Значение для первого знака умножают на 45 и к нему прибавляют значение для второго знака. Сумму преобразуют в 11-битовое двоичное число. Если во входных данных находится нечетное число знаков, последний знак кодируют 6-битовым двоичным числом. Двоичные данные объединяют, и перед ними вставляют индикатор режима и индикатор числа знаков. Размер и числовое значение индикатора режима для алфавитно-цифрового режима указаны в таблице 2; размер индикатора числа знаков в битах определяют в соответствии с таблицей 3. Число знаков входных данных преобразуют в двоичный эквивалент и добавляют как индикатор числа знаков после индикатора режима и перед кодируемыми данными.

 

В режиме FNC1 знак FNC1 может содержаться в передаваемых данных. В этом случае он должен быть представлен в алфавитно-цифровом режиме как знак "%". В 7.4.8.2, 7.4.8.3 и 14.4 приведено подробное описание кодирования и передачи FNC1 и %.

 

Пример - Преобразование для символа версии 1-Н:

 

 

 

Входные данные: АС-42

 

1 Определяют значения знаков в соответствии с таблицей 5:

 

AC-42
(10, 12, 41, 4, 2)
 

2 Разделяют на группы по два десятичных значения: (10, 12) (41, 4) (2)

 

3 Преобразуют каждую группу в 11-битовый эквивалент:

 

(10, 12) 10*45+12
462
00111001110
 
(41, 4) 41*45+4
1849
11100111001
 
(2)
2
000010
 

4 Соединяют двоичные данные в последовательность:

 

00111001110 11100111001 000010

5 Преобразуют число знаков в индикатор числа знаков (9 битов для версии 1-Н):

Число знаков входных данных

5
000000101
 

6 Добавляют индикатор режима 0010 и индикатор числа знаков:

 

0010 000000101 00111001110 11100111001 000010

 

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

 

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 - Кодирование/декодирование набора знаков по ИСО/МЭК 8859-1

           

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Байт

Знак

Байт

Знак

Байт

Знак

Байт

Знак

Байт

Знак

Байт

Знак

Байт

Знак

Байт

Знак

0

NUL

32

пробел

64

@

96

128

 

160

NBSP

192

 

224

 

1

SOH

33

!

65

А

97

а

129

 

161

 

193

 

225

 

2

STX

34

"

66

B

98

b

130

 

162

 

194

 

226

 

3

ETX

35

#

67

C

99

c

131

 

163

 

195

 

227

 

4

EOT

36

$

68

D

100

d

132

 

164

¤

196

 

228

 

5

ENQ

37

%

69

E

101

e

133

 

165

 

197

 

229

 

6

ACK

38

&

70

F

102

f

134

 

166

¦

198

 

230

 

7

BEL

39

71

G

103

g

135

 

167

§

199

 

231

 

8

BS

40

(

72

H

104

h

136

 

168

 

200

 

232

 

9

HT

41

)

73

I

105

I

137

 

169

©

201

 

233

 

10

LF

42

*

74

J

106

j

138

 

170

 

202

 

234

 

11

VT

43

+

75

K

107

k

139

 

171

«

203

 

235

 

12

FF

44

,

76

L

108

l

140

 

172

¬

204

 

236

 

13

CR

45

-

77

M

109

m

141

 

173

SHY

205

 

237

 

14

SO

46

.

78

N

110

n

142

 

174

®

206

 

238

 

15

SI

47

/

79

O

111

o

143

 

175

 

207

 

239

 

16

DLE

48

0

80

P

112

p

144

 

176

°

208

 

240

 

17

DC1

49

1

81

Q

113

q

145

 

177

±

209

 

241

 

18

DC2

50

2

82

R

114

r

146

 

178

 

210

 

242

 

19

DC3

51

3

83

S

115

s

147

 

179

 

211

 

243

 

20

DC4

52

4

84

T

116

t

148

 

180

 

212

 

244

 

21

NAK

53

5

85

U

117

u

149

 

181

µ

213

 

245

 

22

SYN

54

6

86

V

118

v

150

 

182

214

 

246

 

23

ETB

55

7

87

W

119

w

151

 

183

·

215

 

247

 

24

CAN

56

8

88

X

120

x

152

 

184

 

216

 

248

 

25

EM

57

9

89

Y

121

y

153

 

185

 

217

 

249

 

26

SUB

58

:

90

Z

122

z

154

 

186

 

218

 

250

 

27

ESC

59

;

91

[

123

{

155

 

187

»

219

 

251

 

28

FS

60

<

92

\

 

124

|

156

 

188

 

220

 

252

 

29

GS

61

=

93

]

125

}

157

 

189

 

221

 

253

 

30

RS

62

>

94

^

126

~

158

 

190

 

222

 

254

 

31

US

63

?

95

_

127

DEL

159

 

191

 

223

 

255

 

 

Примечания

1 В наборе знаков JIS8 (см. таблицу Н.1) байтам со значениями с 80
по 9F
и с E0
по FF
не присвоены графические знаки, но сохранены значения. Некоторые из этих значений используют как первый байт в наборе знаков Shift JIS (см. таблицу Н.2), а также для различения наборов знаков JIS8 и Shift JIS или для выполнения уплотнения в режиме кандзи. В JIS X 0208 приведены подробные сведения о кодированном представлении Shift.
 
2 Значения байтов с 00
по 7F
в наборе знаков JIS8 соответствуют ИСО/МЭК 8859-1 и ИСО/МЭК 646 версии IRV
, кроме значений 5C
и 7E
.
 

________________

IRV - международная ссылочная версия 7-битового набора знаков (International Reference Version).
 

Перед двоичными данными вставляют индикатор режима и индикатор числа знаков. Размер и числовое значение индикатора режима для байтового режима указаны в таблице 2; размер индикатора числа символов в битах определяют в соответствии с таблицей 3. Число знаков входных данных преобразуют в двоичный эквивалент и добавляют как индикатор числа знаков после индикатора режима и перед кодируемыми данными.

 

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

 

B=M+C+8D,

где B - число битов в двоичном потоке;

M - число битов в индикаторе режима (4 - для символов QR Code или значение, указанное в таблице 2 для Micro QR Code);

 

C - число битов в индикаторе числа знаков (см. таблицу 3);

 

D - число знаков входных данных.

 

7.4.6 Режим кандзи

 

В системе Shift JIS знаки кандзи представлены двухбайтовой комбинацией. Эти значения байта сдвинуты относительно значений по JIS X 0208. В JIS X 0208 приведены подробные сведения о кодированном представлении Shift. Входные знаки данных в режиме кандзи уплотнены из двойных кодовых слов в 13 битов в соответствии с требованиями, приведенными далее. Перед двоичными данными добавляют индикатор режима и индикатор числа знаков. Индикатор режима в режиме кандзи состоит или из 4 битов для символов QR Code или из числа битов, указанных в таблице 2, для символов Micro QRCode; индикатор числа знаков представлен числом битов в соответствии с таблицей 3. Число входных знаков данных преобразуют к его двоичному эквиваленту и добавляют как индикатор числа знаков после индикатора режима и перед последовательностью двоичных данных.

 

1 Для знаков со значениями Shift JIS от 8140
до 9FFC
:
 
a) вычитают 8140
из значения Shift JIS;
 
b) умножают старший байт значения, полученного на этапе а) на С0
;
 

c) прибавляют младший байт значения, вычисленного на этапе a) к значению, определенному на этапе b);

 

d) преобразуют значение в 13-битовую двоичную строку.

 

2 Для знаков со значениями Shift JIS от Е040
до EBBF
:
 
a) вычитают С140
из значения Shift JIS;
 
b) умножают старший байт значения, полученного на этапе a) на С0
;
 

c) прибавляют младший байт значения, вычисленному на этапе a) к значению, определенному на этапе b);

 

d) преобразуют значение в 13-битовую двоичную строку.

 

Пример

 

 

 

 

Входной знак

 
 

(значение Shift JIS):

935F

E4AA

1 Вычитают 8140 или С140

935F-8140=121F

E4AA-C140=236A

2 Умножают старший байт на С0

12
C0=D80
C0=D80
 
23…
C0=1A40
 

3 Складывают с младшим байтом

D80+1F=D9F

1A40+6A=1AAA

4 Преобразуют в 13-битовую строку

0D9F
1101 1001 1111
 
1AAA
1 1010 1010 1010
 

3 Для всех знаков:   

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

 

Для любого числа входных знаков данных размер двоичного потока для режима кандзи вычисляют по формуле

 

B=M+C+13D,

где B - число битов в двоичном потоке;

M - число битов в индикаторе режима (4 - для символов QR Code или значение, приведенное в таблице 2 для символов Micro QR Code);

 

C - число битов в индикаторе числа знаков (см. таблицу 3);

 

D - число знаков входных данных.

 

7.4.7 Смешанный режим

 

Для символа допускается начать кодирование последовательности данных в одном режиме и затем изменить режим, если этого требует содержание данных или для увеличения плотности кодирования. Подробное руководство приведено в приложении J. Каждый сегмент данных кодируется в соответствующем режиме как указано в разделах с 7.4.2 по 7.4.6 на базе структуры индикатор режима/индикатор числа знаков/данные и сопровождается индикатором режима, начинающим следующий сегмент. На рисунке 13 представлена структура данных, содержащих n сегментов.

 

 

 

 

 

 

 

 

 

 

 

 

Сегмент 1

Сегмент 2

Сегмент n

Ограни-

читель

Инди-

катор режима 1

Инди-

катор числа знаков

Дан-

ные

Инди-

катор режима 2

Инди-

катор числа знаков

Дан-

ные

Инди-

катор режима 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.

 

7.4.8.2 Знак FNC1 в первой позиции

 

Примечание - "Первая позиция" фактически такой не является, но исторически соотносится с положением знака символа FNC1 в символах Code 128.

 

Указанный индикатор режима предназначен для обозначения символов, кодирующих данные в формате стандарта GS1, устанавливающего идентификаторы применения (Application Identifiers, Al). Для этой цели данный индикатор следует использовать в символе только один раз, и он должен быть расположен перед самым первым индикатором режима, используемым для эффективного кодирования данных (в числовом, алфавитно-цифровом, байтовом режиме или режиме кандзи), а также после заголовков ECI и/или структурированного соединения, если они присутствуют. Если спецификации GS1 требуют применения знака FNC1 (в других символиках, которые используют этот специальный знак) в качестве разделителя полей данных (то есть в конце поля данных переменной длины), в символах QR Code следует использовать знак
%
в алфавитно-цифровом режиме или знак
GS
(шестнадцатеричное значение байта 1D
) в байтовом режиме для выполнения этой функции. Если знак
%
встречается как часть данных, он должен быть закодирован как
%%
. Если на вход декодера поступает знак
%
, то его следует интерпретировать как знак набора ASCII/JIS8 с шестнадцатеричным значением 1D
, а если
%%
, то как единственный знак
%
.
 

Пример 1

 

 

 

Входные данные:

0104912345123459 (идентификатор применения 01, указывающий глобальный номер предмета торговли GS1, поле фиксированной длины; данные: 04912345123459);

 

15970331 (идентификатор применения 15, указывающий дату реализации в формате ГГММДД, поле фиксированной длины; данные: 31 марта 1997);

 

30128 (идентификатор применения 30, указывающий число предметов, поле переменной длины; данные: 128) (требуется знак-разделитель);

 

10АВС123 (идентификатор применения 10, указывающий номер партии, поле переменной длины; данные: АВС123).

Данные для кодирования:

01049123451234591597033130128%10АВС123

Битовая последовательность в символе:

0101 (индикатор режима, знак FNC1 в 1-й позиции);

 

0001 (индикатор режима, цифровой режим);

 

0000011101 (индикатор числа знаков, 29) <двоичные данные для 01049123451234591597033130128>

 

0010 (индикатор режима, алфавитно-цифровой режим)

000001001 (индикатор числа знаков, 9) <двоичные данные для %10АВС123>

Передаваемые данные (см. 14.2 и приложение F)

]Q3
01049123451234591597033130128
<1D
>
10АВС123
 

 

Пример 2 - Кодирование/декодирование знака % в данных:

 

 

 

Входные данные:

123%;

Кодируют:

123%%;

Передают:

123%.

 

7.4.8.3 Знак FNC1 во второй позиции

 

Примечание - "Вторая позиция" фактически такой не является, но исторически соотносится с положением знака символа FNC1 в символах Code 128.

Данный индикатор режима указывает, что данные соответствуют определенным отраслевым спецификациям или спецификациям по применению, предварительно согласованным с организацией AIM International. Сразу после него следует однобайтовое кодовое слово, значение которого соответствует номеру прикладного индикатора (Application Indicator), присвоенному организацией AIM International, для указания этой спецификации. Для этой цели индикатор следует использовать в символе только один раз; и он должен быть расположен перед самым первым индикатором режима, используемым для эффективного кодирования данных (в числовом, алфавитно-цифровом, байтовом режиме или режиме кандзи), а также после заголовков ECI и/или структурированного соединения, если они присутствуют. Прикладной индикатор может иметь форму любой одиночной буквы латинского алфавита из набора {a-z, A-Z}, (представленной значением знака ASCII плюс 100) или двузначного числа (представленного его числовым значением) и должен быть передан декодером как первые один или два знака непосредственно перед данными. Если спецификации по применению требуют использования знака FNC1 (в других символиках, которые используют этот специальный знак) в качестве разделителя полей данных (то есть в конце поля данных переменной длины), в символах QR Code, следует использовать знак
%
в алфавитно-цифровом режиме или знак
GS
(шестнадцатеричное значение байта 1D
в байтовом режиме для выполнения этой функции. Если знак
%
является частью данных, он должен быть закодирован как
%%
. Если на вход декодера поступает знак
%
, то его следует интерпретировать как знак ASCII/JIS8 с шестнадцатеричным значением 1D
, а если
%%
, то как одиночный знак
%
.
 

Пример

 

Примечание - Прикладной индикатор 37 на момент публикации настоящего стандарта не был присвоен ни одной организации, поэтому в примере приведены условные значения.

 

 

 

Прикладной индикатор:

37

Входные данные:

AA1234BBB112text text text text<CR>
 

 

________________

CR - управляющий знак ВОЗВРАТ КАРЕТКИ (CARRIAGE RETURN).
 

 

 

Битовая последовательность в символе:

1001 (индикатор режима, знак FNC1 во второй позиции)

 

00100101 (прикладной индикатор, 37)

 

0010 (индикатор режима, алфавитно-цифровой режим)

 

000001100 (индикатор числа знаков, 12) <двоичные данные для АА1234ВВВ112>

 

0100 (индикатор режима, байтовый режим)

 

00010100 (индикатор числа знаков, 20) <двоичные данные для text text text

 

text<CR> >

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

]Q537AA1234BBB112text text text text<CR>

 

7.4.9 Ограничитель

 

Конец данных должен быть обозначен ограничителем, состоящим из последовательности нулевых битов согласно таблице 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 - Число знаков символа и емкость входных данных для QR Code

 

 

 

 

 

 

 

 

Вер-

сия

Уровень исправления ошибок

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

Число битов для данных

Емкость данных для разных режимов

 

 

 

 

Цифровой

Алфавитно-цифровой

Байтовый

Кандзи

M1

Только обнаружение ошибок

3

20

5

-

-

-

M2

L

5

40

10

6

-

-

 

M

4

32

8

5

-

-

M3

L

11

84

23

14

9

6

 

M

9

68

18

11

7

4

M4

L

16

128

35

21

15

9

 

M

14

112

30

18

13

8

 

Q

10

80

21

13

9

5

1

L

19

152

41

25

17

10

 

M

16

128

34

20

14

8

 

Q

13

104

27

16

11

7

 

H

9

72

17

10

7

4

2

L

34

272

77

47

32

20

 

M

28

224

63

38

26

16

 

Q

22

176

48

29

20

12

 

H

16

128

34

20

14

8

3

L

55

440

127

77

53

32

 

M

44

352

101

61

42

26

 

Q

34

272

77

47

32

20

 

H

26

208

58

35

24

15

4

L

80

640

187

114

78

48

 

M

64

512

149

90

62

38

 

Q

48

384

111

67

46

28

 

H

36

288

82

50

34

21

5

L

108

864

255

154

106

65

 

M

86

688

202

122

84

52

 

Q

62

496

144

87

60

37

 

H

46

368

106

64

44

27

6

L

136

1088

322

195

134

82

 

M

108

864

255

154

106

65

 

Q

76

608

178

108

74

45

 

H

60

480

139

84

58

36

7

L

156

1248

370

224

154

95

 

M

124

992

293

178

122

75

 

Q

88

704

207

125

86

53

 

H

66

528

154

93

64

39

8

L

194

1552

461

279

192

118

 

M

154

1232

365

221

152

93

 

Q

110

880

259

157

108

66

 

H

86

688

202

122

84

52

9

L

232

1856

552

335

230

141

 

M

182

1456

432

262

180

111

 

Q

132

1056

312

189

130

80

 

H

100

800

235

143

98

60

10

L

274

2192

652

395

271

167

 

M

216

1728

513

311

213

131

 

Q

154

1232

364

221

151

93

 

H

122

976

288

174

119

74

11

L

324

2592

772

468

321

198

 

M

254

2032

604

366

251

155

 

Q

180

1440

427

259

177

109

 

H

140

1120

331

200

137

85

12

L

370

2960

883

535

367

226

 

M

290

2320

691

419

287

177

 

Q

206

1648

489

296

203

125

 

H

158

1264

374

227

155

96

13

L

428

3424

1022

619

425

262

 

M

334

2672

796

483

331

204

 

Q

244

1952

580

352

241

149

 

H

180

1440

427

259

177

109

14

L

461

3688

1101

667

458

282

 

M

365

2920

871

528

362

223

 

Q

261

2088

621

376

258

159

 

H

197

1576

468

283

194

120

15

L

523

4184

1250

758

520

320

 

M

415

3320

991

600

412

254

 

Q

295

2360

703

426

292

180

 

H

223

1784

530

321

220

136

16

L

589

4712

1408

854

586

361

 

M

453

3624

1082

656

450

277

 

Q

325

2600

775

470

322

198

 

H

253

2024

602

365

250

154

17

L

647

5176

1548

938

644

397

 

M

507

4056

1212

734

504

310

 

Q

367

2936

876

531

364

224

 

H

283

2264

674

408

280

173

18

L

721

5768

1725

1046

718

442

 

M

563

4504

1346

816

560

345

 

Q

397

3176

948

574

394

243

 

H

313

2504

746

452

310

191

19

L

795

6360

1903

1153

792

488

 

M

627

5016

1500

909

624

384

 

Q

445

3560

1063

644

442

272

 

H

341

2728

813

493

338

208

20

L

861

6888

2061

1249

858

528

 

M

669

5352

1600

970

666

410

 

Q

485

3880

1159

702

482

297

 

H

385

3080

919

557

382

235

21

L

932

7456

2232

1352

929

572

 

M

714

5712

1708

1035

711

438

 

Q

512

4096

1224

742

509

314

 

H

406

3248

969

587

403

248

22

L

1006

8048

2409

1460

1003

618

 

M

782

6256

1872

1134

779

480

 

Q

568

4544

1358

823

565

348

 

H

442

3536

1056

640

439

270

23

L

1094

8752

2620

1588

1091

672

 

M

860

6880

2059

1248

857

528

 

Q

614

4912

1468

890

611

376

 

H

464

3712

1108

672

461

284

24

L

1174

9392

2812

1704

1171

721

 

M

914

7312

2188

1326

911

561

 

Q

664

5312

1588

963

661

407

 

H

514

4112

1228

744

511

315

25

L

1276

10208

3057

1853

1273

784

 

M

1000

8000

2395

1451

997

614

 

Q

718

5744

1718

1041

715

440

 

H

538

4304

1286

779

535

330

26

L

1370

10960

3283

1990

1367

842

 

M

102

8496

2544

1542

1059

652

 

Q

754

6032

1804

1094

751

462

 

H

596

4768

1425

864

593

365

27

L

1468

11744

3517

2132

1465

902

 

M

1128

9024

2701

1637

1125

692

 

Q

808

6464

1933

1172

805

496

 

H

628

5024

1501

910

625

385

28

L

1531

12248

3669

2223

1528

940

 

M

1193

9544

2857

1732

1190

732

 

Q

871

6968

2085

1263

868

534

 

H

661

5288

1581

958

658

405

29

L

1631

13048

3909

2369

1628

1002

 

M

1267

10136

3035

1839

1264

778

 

Q

911

7288

2181

1322

908

559

 

H

701

5608

1677

1016

698

430

30

L

1735

13880

4158

2520

1732

1066

 

M

1373

10984

3289

1994

1370

843

 

Q

985

7880

2358

1429

982

604

 

H

745

5960

1782

1080

742

457

31

L

1843

14744

4417

2677

1840

1132

 

M

1455

11640

3486

2113

1452

894

 

Q

1033

8264

2473

1499

1030

634

 

H

793

6344

1897

1150

790

486

32

L

1955

15640

4686

2840

1952

1201

 

M

1541

12328

3693

2238

1538

947

 

Q

1115

8920

2670

1618

1112

684

 

H

845

6760

2022

1226

842

518

33

L

2071

16568

4965

3009

2068

1273

 

M

1631

13048

3909

2369

1628

1002

 

Q

1171

9368

2805

1700

1168

719

 

H

901

7208

2157

1307

898

553

34

L

2191

17528

5253

3183

2188

1347

 

M

1725

13800

4134

2506

1722

1060

 

Q

1231

9848

2949

1787

1228

756

 

H

961

7688

2301

1394

958

590

35

L

2306

18448

5529

3351

2303

1417

 

M

1812

14496

4343

2632

1809

1113

 

Q

1286

10288

3081

1867

1283

790

 

H

986

7888

2361

1431

983

605

36

L

2434

19472

5836

3537

2431

1496

 

M

1914

15312

4588

2780

1911

1176

 

Q

1354

10832

3244

1966

1351

832

 

H

1054

8432

2524

1530

1051

647

37

L

2566

20528

6153

3729

2563

1577

 

M

1992

15936

4775

2894

1989

1224

 

Q

1426

11408

3417

2071

1423

876

 

H

1096

8768

2625

1591

1093

673

38

L

2702

21616

6479

3927

2699

1661

 

M

2102

16816

5039

3054

2099

1292

 

Q

1502

12016

3599

2181

1499

923

 

H

1142

9136

2735

1658

1139

701

39

L

2812

22496

6743

4087

2809

1729

 

M

2216

17728

5313

3220

2213

1362

 

Q

1582

12656

3791

2298

1579

972

 

H

1222

9776

2927

1774

1219

750

40

L

2956

23648

7089

4296

2953

1817

 

M

2334

18672

5596

3391

2331

1435

 

Q

1666

13328

3993

2420

1663

1024

 

H

1276

10208

3057

1852

1273

784

 

Примечание 1 - Все кодовые слова имеют размер 8 битов, за исключением последнего кодового слова данных для символов версии M1 и M3, длина которого составляет 4.

 

Примечание 2 - В число битов данных включены биты индикатора режима и индикатора числа знаков.

 

 

      7.5 Исправление ошибок

     

7.5.1 Способность к исправлению ошибок

 

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

 

Таблица 8 - Уровни исправления ошибок

 

 

Уровень исправления ошибок

Способность к восстановлению, % (прибл.)

L

7

M

15

Q

25

H

30

 

В приложении К.2 приведены рекомендации по выбору уровня исправления ошибок, который следует применить к символу.

 

Уровень исправления ошибок Н недоступен в символах Micro QR Code.

 

Кодовые слова исправления ошибок обеспечивают исправление двух типов поврежденных кодовых слов: стирания (ошибочные кодовые слова, которые находятся на известных позициях) и ошибки (ошибочные кодовые слова, которые находятся на неизвестных позициях). Стираниями являются неотсканированные или нераспознанные знаки символа. Ошибка замены - это неправильно декодированный знак символа. Так как QR Code - это матричная символика, несовершенство преобразования модуля из темного в светлый или наоборот приводит к тому, что в результате получается неправильно декодированный знак символа как вероятно допустимый, однако соответствующий другому кодовому слову. Такие ошибки, приводящие к изменениям данных, требуют применения двух кодовых слов исправления ошибок для исправления.

 

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

 

e+2t
d-p
,
 

где e - число стираний;

t - число ошибок;

 

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

 

p - число кодовых слов, зарезервированных для обнаружения ошибок.

 

В общем случае p=0. Если для исправления ошибок используется большая часть способности к исправлению, то увеличивается вероятность необнаружения ошибки. Всякий раз, когда число стираний больше половины числа кодовых слов исправления ошибок, используют p=3. Для небольших символов, где число кодовых слов исправления ошибок менее 8, не следует использовать исправление стираний (для исправления ошибок следует применять e=0 и p>0).

 

Например, в символе версии 6-Н всего 172 кодовых слова, из которых 112 - кодовые слова исправления ошибок, оставшиеся 60 - кодовые слова данных. 112 кодовых слов исправления ошибок позволяют исправить 56 ошибок, т.е. отношение 56/172 соответствует 32,6% емкости символа.

 

В вышеприведенной формуле p должно иметь следующие значения:

 

p=3 для символов версии 1-L и M2-L;

 

p=2 для символов версии 1-M, 2-L, M1, M2-М, 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
4)=10-2,
 

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

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

 

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

 

Таблица 9 - Характеристики исправления ошибок для QR Code

 

 

 

 

 

 

 

Вер-

сия

Общее число кодовых слов

Уровень исправления ошибок

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

Значе-

ние p

Число блоков исправления ошибок

Код исправления ошибок в блоке (c, k, r)
 

M1

5

Только обнаружение

2

2

1

(5, 3, 0)b

M2

10

L

5

3

1

(10, 5, 1)b

 

 

M

6

2

1

(10, 4, 2)b

М3

17

L

6

2

1

(17, 11, 2)b

 

 

M

8

 

1

(17, 9, 4)

M4

24

L

8

2

1

(24, 16, 3)b

 

 

M

10

0

1

(24, 14, 5)

 

 

Q

14

0

1

(24, 10, 7)

1

26

L

7

3

1

(26, 19, 2)b

 

 

M

10

2

1

(26, 16, 4)b

 

 

Q

13

1

1

(26, 13, 6)b

 

 

H

17

1

1

(26, 9, 8)b

2

44

L

10

2

1

(44, 34, 4)b

 

 

M

16

0

1

(44, 28, 8)

 

 

Q

22

0

1

(44, 22, 11)

 

 

H