ГОСТ Р ИСО/МЭК 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 Область применения
________________
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 Нормативные ссылки
В настоящем стандарте использованы нормативные ссылки на следующие стандарты и другие нормативные документы*, которые необходимо учитывать при использовании настоящего стандарта. В случае ссылок на документы, у которых указана дата утверждения, необходимо пользоваться только указанной редакцией. В случае, когда дата утверждения не приведена, следует пользоваться последней редакцией ссылочных документов, включая любые поправки и изменения к ним:
________________
ИСО/МЭК 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.15 остаточный бит (remainder bit): Нулевой бит, не представляющий данные, используемый для заполнения оставшихся незаполненными позиций в области кодирования после последнего знака символа в случае, если область кодирования, предназначенная для знаков символа, не полностью распределена для размещения 8-битовых знаков символа.
________________
4.17 сегмент (segment): Последовательность данных, закодированная согласно правилам одной интерпретации в расширенном канале (ECI) или режима кодирования.
4.18 разделитель (separator): Функциональный шаблон, состоящий из светлых модулей, шириной один модуль, отделяющий шаблоны поиска от остального содержимого символа.
4.19 номер символа (symbol number): Поле из трех битов, указывающее версию символа и уровень исправления ошибок, используемое как часть информации о формате в символах Micro QR Code.
4.20 ограничитель (terminator): Битовый шаблон, состоящий из некоторого числа (зависящего от символа) нулевых битов, используемый для индикации окончания двоичной строки, представляющей данные.
4.21 шаблон синхронизации (timing pattern): Чередующаяся последовательность темных и светлых модулей, предназначенная для определения координат модулей в символе.
Примечание - Уровень исправления ошибок, применимый к символу, может быть добавлен к обозначению версии, например, версия 4-L или версия M3-Q.
4.23 информация о версии (version information): Шаблон, закодированный в некоторых символах QR Code, содержащий информацию о версии символа вместе с битами исправления ошибок для этих данных.
5 Математические и логические символы, обозначения и соглашения об обозначениях
5.1 Математические и логические символы
Определения математических символов, используемых в формулах и уравнениях, приведены после соответствующих формул и уравнений.
Кроме того, в настоящем стандарте применяются следующие математические и логические операторы:
div - оператор деления на целое число;
mod - оператор вычисления остатка от деления на целое число;
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 и девять специальных графических знаков: пробел, $, %, *, +, -, ., /, :);
________________
________________
c) представление данных:
темный модуль, как правило, является двоичной единицей, а светлый модуль - двоичным нулем. В случаях обратимого изображения - см. 6.2;
d) размеры символа (не включая свободную зону):
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
Рисунок 5 - Символы версий 1 и 2
Рисунок 6 - Символ версии 6
Рисунок 7 - Символ версии 7
Рисунок 8 - Символ версии 14
Рисунок 9 - Символ версии 21
Рисунок 10 - Символ версии 40
6.3.2.2 Символы Micro QR Code
Примечание - Представлены два формата символа M3, отличающиеся только размещением кодовых слов согласно уровню исправления ошибок.
Рисунок 11 - Версии символов Micro QR Code
6.3.3. Шаблон поиска
6.3.3.1 Символы 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 Направляющие шаблоны
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 бита. |
7.2 Анализ данных
Анализируют строку входных данных с целью определения ее содержания и выбирают установленную по умолчанию или другую соответствующую ECI и соответствующий режим, чтобы закодировать каждую последовательность знаков в соответствии с 7.4. Каждый режим последовательно от числового до режима кандзи требует большего числа битов на знак. Допускается переключение с режима на другой в пределах символа с целью уменьшить длину выходного потока данных, некоторые части которых могут более эффективно кодироваться в одном режиме, в отличие от других частей, например числовые последовательности, сопровождаемые алфавитно-цифровыми последовательностями. Теоретически наиболее эффективно кодировать данные в режиме, требующем наименьшего числа битов на знак входных данных, но так как есть некоторая избыточность в виде индикатора режима и индикатора числа знаков, связанного с каждым изменением режима, то в результате не всегда может получиться самый короткий двоичный поток, если изменить режимы для нескольких знаков. Кроме того, так как емкость символов увеличивается дискретным ступенчатым образом от одной версии до следующей, не всегда требуется обеспечивать максимальную эффективность. Руководство по уменьшению длины двоичного потока приведено в приложении J. В символах Micro QR Code есть ограничения на использование режимов, доступных в версиях с меньшими номерами. В J.2 приведены версии символов Micro QR Code, соответствующим различным комбинациям двух режимов.
7.3 Режимы
7.3.1 Общие положения
7.3.2 Интерпретация в расширенном канале (ECI)
________________
Для QR Code по умолчанию принята интерпретация ECI 000003, соответствующая набору знаков в ИСО/МЭК 8859-1.
________________
Эффективность применения режима ECI заключается во вставке в данные управляющей последовательности ECI. Непосредственно за ней должен стоять индикатор другого режима (например, для эффективного кодирования); режим ECI действует до конца сообщения или до следующего индикатора режима ECI.
7.3.3 Числовой режим
7.3.4 Алфавитно-цифровой режим
В символике 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-битовое кодовое слово.
В символике 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 Общие положения
________________
Интерпретации в расширенном канале могут быть использованы только с устройствами считывания, позволяющими передавать идентификатор символики. Устройства считывания, которые не могут передавать идентификатор символики, не обеспечивают передачу данных из любого символа, содержащего ECI.
Входные данные ECI должны быть обработаны в системе кодирования как ряд байтовых значений.
7.4.2.2 Обозначение ECI
При декодировании двоичный шаблон первого кодового слова обозначения 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
________________
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 |
Примечания
________________
Перед двоичными данными вставляют индикатор режима и индикатор числа знаков. Размер и числовое значение индикатора режима для байтового режима указаны в таблице 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. Число входных знаков данных преобразуют к его двоичному эквиваленту и добавляют как индикатор числа знаков после индикатора режима и перед последовательностью двоичных данных.
c) прибавляют младший байт значения, вычисленного на этапе a) к значению, определенному на этапе b);
d) преобразуют значение в 13-битовую двоичную строку.
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.
Пример 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.
Пример
Примечание - Прикладной индикатор 37 на момент публикации настоящего стандарта не был присвоен ни одной организации, поэтому в примере приведены условные значения.
|
|
Прикладной индикатор: | 37 |
Входные данные: | AA1234BBB112text text text text<CR> |
________________
|
|
Битовая последовательность в символе: | 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 - число стираний;
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). Подставляют в вышеуказанную формулу
учитывая, что для исправления четырех ошибок требуется только 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 | 28 | 0 | 1 | (44, 16, 14) |
3 | 70 | L | 15 | 1 | 1 | (70, 55, 7)b |
|
| M | 26 | 0 | 1 | (70, 44, 13) |
|
| Q | 36 | 0 | 2 | (35, 17, 9) |
|
| H | 44 | 0 | 2 | (35, 13, 11) |
4 | 100 | L | 20 | 0 | 1 | (100, 80, 10) |
|
| M | 36 |
| 2 | (50, 32, 9) |
|
| Q | 52 |
| 2 | (50, 24, 13) |
|
| H | 64 |
| 4 | (25, 9, 8) |
5 | 134 |
|
| 0 | 1 | (134, 108, 13) |
|
| L | 26 |
| 2 | (67, 43, 12) |
|
| M | 48 |
| 2 | (33, 15, 9) |
|
| Q | 72 |
| 2 | (34, 16, 9) |
|
| H | 88 |
| 2 | (33, 11, 11) |
|
|
|
|
| 2 | (34, 12, 11) |
6 | 172 | L | 36 | 0 | 2 | (86, 68, 9) |
|
| M | 64 |
| 4 | (43, 27, 8) |
|
| Q | 96 |
| 4 | (43, 19, 12) |
|
| H | 112 |
| 4 | (43, 15, 14) |
7 | 196 | L | 40 | 0 | 2 | (98, 78, 10) |
|
| M | 72 |
| 4 | (49, 31, 9) |
|
| Q | 108 |
| 2 | (32, 14, 9) |
|
|
|
|
| 4 | (33, 15, 9) |
|
| H | 130 |
| 4 | (39, 13, 13) |
|
|
|
|
| 1 | (40, 14, 13) |
8 | 242 | L | 48 | 0 | 2 | (121, 97, 12) |
|
| M | 88 |
| 2 | (60, 38, 11) |
|
|
|
|
| 2 | (61, 39, 11) |
|
| Q | 132 |
| 4 | (40, 18, 11) |
|
|
|
|
| 2 | (41, 19, 11) |
|
| H | 156 |
| 4 | (40, 14, 13) |
|
|
|
|
| 2 | (41, 15, 13) |
9 | 292 | L | 60 | 0 | 2 | (146, 116, 15) |
|
| M | 110 |
| 3 | (58, 36, 11) |
|
|
|
|
| 2 | (59, 37, 11) |
|
| Q | 160 |
| 4 | (36, 16, 10) |
|
|
|
|
| 4 | (37, 17, 10) |
|
| H | 192 |
| 4 | (36, 12, 12) |
|
|
|
|
| 4 | (37, 13, 12) |
10 | 346 | L | 72 | 0 | 2 | (86, 68, 9) |
|
|
|
|
| 2 | (87, 69, 9) |
|
| M | 130 |
| 4 | (69, 43, 13) |
|
|
|
|
| 1 | (70, 44, 13) |
|
| Q | 192 |
| 6 | (43, 19, 12) |
|
|
|
|
| 2 | (44, 20, 12) |
|
| H | 224 |
| 6 | (43, 15, 14) |
|
|
|
|
| 2 | (44, 16, 14) |
11 | 404 | L | 80 | 0 | 4 | (101, 81, 10) |
|
| M | 150 |
| 1 | (80, 50, 15) |
|
|
|
|
| 4 | (81, 51, 15) |
|
| Q | 224 |
| 4 | (50, 22, 14) |
|
|
|
|
| 4 | (51, 23, 14) |
|
| H | 264 |
| 3 | (36, 12, 12) |
|
|
|
|
| 8 | (37, 13, 12) |
12 | 466 | L | 96 | 0 | 2 | (116, 92, 12) |
|
|
|
|
| 2 | (117, 93, 12) |
|
| M | 176 |
| 6 | (58, 36, 11) |
|
|
|
|
| 2 | (59, 37, 11) |
|
| Q | 260 |
| 4 | (46, 20, 13) |
|
|
|
|
| 6 | (47, 21, 13) |
|
| H | 308 |
| 7 | (42, 14, 14) |
|
|
|
|
| 4 | (43, 15, 14) |
13 | 532 | L | 104 | 0 | 4 | (133, 107, 13) |
|
| M | 198 |
| 8 | (59, 37, 11) |
|
|
|
|
| 1 | (60, 38, 11) |
|
| Q | 288 |
| 8 | (44, 20, 12) |
|
|
|
|
| 4 | (45, 21, 12) |
|
| H | 352 |
| 12 | (33, 11, 11) |
|
|
|
|
| 4 | (34, 12, 11) |
14 | 581 | L | 120 | 0 | 3 | (145, 115, 15) |
|
|
|
|
| 1 | (146, 116, 15) |
|
| M | 216 |
| 4 | (64, 40, 12) |
|
|
|
|
| 5 | (65, 41, 12) |
|
| Q | 320 |
| 11 | (36, 16, 10) |
|
|
|
|
| 5 | (37, 17, 10) |
|
| H | 384 |
| 11 | (36, 12, 12) |
|
|
|
|
| 5 | (37, 13, 12) |
15 | 655 | L | 132 | 0 | 5 | (109, 87, 11) |
|
|
|
|
| 1 | (110, 88, 11) |
|
| M | 240 |
| 5 | (65, 41, 12) |
|
|
|
|
| 5 | (66, 42, 12) |
|
| Q | 360 |
| 5 | (54, 24, 15) |
|
|
|
|
| 7 | (55, 25, 15) |
|
| H | 432 |
| 11 | (36, 12, 12) |
|
|
|
|
| 7 | (37, 13, 12) |
16 | 733 | L | 144 | 0 | 5 | (122, 98, 12) |
|
|
|
|
| 1 | (123, 99, 12) |
|
| M | 280 |
| 7 | (73, 45, 14) |
|
|
|
|
| 3 | (74, 46, 14) |
|
| Q | 408 |
| 15 | (43, 19, 12) |
|
|
|
|
| 2 | (44, 20, 12) |
|
| H | 480 |
| 3 | (45, 15, 15) |
|
|
|
|
| 13 | (46, 16, 15) |
17 | 815 | L | 168 | 0 | 1 | (135, 107, 14) |
|
|
|
|
| 5 | (136, 108, 14) |
|
| M | 308 |
| 10 | (74, 46, 14) |
|
|
|
|
| 1 | (75, 47, 14) |
|
| Q | 448 |
| 1 | (50, 22, 14) |
|
|
|
|
| 15 | (51, 23, 14) |
|
| H | 532 |
| 2 | (42, 14, 14) |
|
|
|
|
| 17 | (43, 15, 14) |
18 | 901 | L | 180 | 0 | 5 | (150, 120, 15) |
|
|
|
|
| 1 | (151, 121, 15) |
|
| M | 338 |
| 9 | (69, 43, 13) |
|
|
|
|
| 4 | (70, 44, 13) |
|
| Q | 504 |
| 17 | (50, 22, 14) |
|
| H | 588 |
| 1 | (51, 23, 14) |
|
|
|
|
| 2 | (42, 14, 14) |
|
|
|
|
| 19 | (43, 15, 14) |
19 | 991 | L | 196 | 0 | 3 | (141, 113, 14) |
|
|
|
|
| 4 | (142, 114, 14) |
|
| M | 364 |
| 3 | (70, 44, 13) |
|
|
|
|
| 11 | (71, 45, 13) |
|
| Q | 546 |
| 17 | (47, 21, 13) |
|
|
|
|
| 4 | (48, 22, 13) |
|
| H | 650 |
| 9 | (39, 13, 13) |
|
|
|
|
| 16 | (40, 14, 13) |
20 | 1085 | L | 224 | 0 | 3 | (135, 107, 14) |
|
|
|
|
| 5 | (136, 108, 14) |
|
| M | 416 |
| 3 | (67, 41, 13) |
|
|
|
|
| 13 | (68, 42, 13) |
|
| Q | 600 |
| 15 | (54, 24, 15) |
|
|
|
|
| 5 | (55, 25, 15) |
|
| H | 700 |
| 15 | (43, 15, 14) |
|
|
|
|
| 10 | (44, 16, 14) |
21 | 1156 | L | 224 | 0 | 4 | (144, 116, 14) |
|
|
|
|
| 4 | (145, 117, 14) |
|
| M | 442 |
| 17 | (68, 42, 13) |
|
| Q | 644 |
| 17 | (50, 22, 14) |
|
|
|
|
| 6 | (51, 23, 14) |
|
| H | 750 |
| 19 | (46, 16, 15) |
|
|
|
|
| 6 | (47, 17, 15) |
22 | 1258 | L | 252 | 0 | 2 | (139, 111, 14) |
|
|
|
|
| 7 | (140, 112, 14) |
|
| M | 476 |
| 17 | (74, 46, 14) |
|
| Q | 690 |
| 7 | (54, 24, 15) |
|
|
|
|
| 16 | (55, 25, 15) |
|
| H | 816 |
| 34 | (37, 13, 12) |
23 | 1364 | L | 270 | 0 | 4 | (151, 121, 15) |
|
|
|
|
| 5 | (152, 122, 15) |
|
| M | 504 |
| 4 | (75, 47, 14) |
|
|
|
|
| 14 | (76, 48, 14) |
|
| Q | 750 |
| 11 | (54, 24, 15) |
|
|
|
|
| 14 | (55, 25, 15) |
|
| H | 900 |
| 16 | (45, 15, 15) |
|
|
|
|
| 14 | (46, 16, 15) |
24 | 1474 | L | 300 | 0 | 6 | (147, 117, 15) |
|
|
|
|
| 4 | (148, 118, 15) |
|
| M | 560 |
| 6 | (73, 45, 14) |
|
|
|
|
| 14 | (74, 46, 14) |
|
| Q | 810 |
| 11 | (54, 24, 15) |
|
|
|
|
| 16 | (55, 25, 15) |
|
| H | 960 |
| 30 | (46, 16, 15) |
|
|
|
|
| 2 | (47, 17, 15) |
25 | 1588 | L | 312 | 0 | 8 | (132, 106, 13) |
|
|
|
|
| 4 | (133, 107, 13) |
|
| M | 588 |
| 8 | (75, 47, 14) |
|
|
|
|
| 13 | (76, 48, 14) |
|
| Q | 870 |
| 7 | (54, 24, 15) |
|
|
|
|
| 22 | (55, 25, 15) |
|
| H | 1050 |
| 22 | (45, 15, 15) |
|
|
|
|
| 13 | (46, 16, 15) |
26 | 1706 | L | 336 | 0 | 10 | (142, 114, 14) |
|
|
|
|
| 2 | (143, 115, 14) |
|
| M | 644 |
| 19 | (74, 46, 14) |
|
|
|
|
| 4 | (75, 47, 14) |
|
| Q | 952 |
| 28 | (50, 22, 14) |
|
|
|
|
| 6 | (51, 23, 14) |
|
| H | 1110 |
| 33 | (46, 16, 15) |
|
|
|
|
| 4 | (47, 17, 15) |
27 | 1828 | L | 360 | 0 | 8 | (152, 122, 15) |
|
|
|
|
| 4 | (153, 123, 15) |
|
| M | 700 |
| 22 | (73, 45, 14) |
|
|
|
|
| 3 | (74, 46, 14) |
|
| Q | 1020 |
| 8 | (53, 23, 15) |
|
|
|
|
| 26 | (54, 24, 15) |
|
| H | 1200 |
| 12 | (45, 15, 15) |
|
|
|
|
| 28 | (46, 16, 15) |
28 | 1921 | L | 390 | 0 | 3 | (147, 117, 15) |
|
|
|
|
| 10 | (148, 118, 15) |
|
| M | 728 |
| 3 | (73, 45, 14) |
|
|
|
|
| 23 | (74, 46, 14) |
|
| Q | 1050 |
| 4 | (54, 24, 15) |
|
|
|
|
| 31 | (55, 25, 15) |
|
| H | 1260 |
| 11 | (45, 15, 15) |
|
|
|
|
| 31 | (46, 16, 15) |
29 | 2051 | L | 420 | 0 | 7 | (146, 116, 15) |
|
|
|
|
| 7 | (147, 117, 15) |
|
| M | 784 |
| 21 | (73, 45, 14) |
|
|
|
|
| 7 | (74, 46, 14) |
|
| Q | 1140 |
| 1 | (53, 23, 15) |
|
|
|
|
| 37 | (54, 24, 15) |
|
| H | 1350 |
| 19 | (45, 15, 15) |
|
|
|
|
| 26 | (46, 16, 15) |
30 | 2185 | L | 450 | 0 | 5 | (145, 115, 15) |
|
|
|
|
| 10 | (146, 116, 15) |
|
| M | 812 |
| 19 | (75, 47, 14) |
|
|
|
|
| 10 | (76, 48, 14) |
|
| Q | 1200 |
| 15 | (54, 24, 15) |
|
|
|
|
| 25 | (55, 25, 15) |
|
| H | 1440 |
| 23 | (45, 15, 15) |
|
|
|
|
| 25 | (46, 16, 15) |
31 | 2323 | L | 480 |
| 13 | (145, 115, 15) |
|
|
|
|
| 3 | (146, 116, 15) |
|
| M | 868 |
| 2 | (74, 46, 14) |
|
|
|
|
| 29 | (75, 47, 14) |
|
| Q | 1290 |
| 42 | (54, 24, 15) |
|
|
|
|
| 1 | (55, 25, 15) |
|
| H | 1530 |
| 23 | (45, 15, 15) |
|
|
|
|
| 28 | (46, 16, 15) |
32 | 2465 | L | 510 | 0 | 17 | (145, 115, 15) |
|
| M | 924 |
| 10 | (74, 46, 14) |
|
|
|
|
| 23 | (75, 47, 14) |
|
| Q | 1350 |
| 10 | (54, 24, 15) |
|
|
|
|
| 35 | (55, 25, 15) |
|
| H | 1620 |
| 19 | (45, 15, 15) |
|
|
|
|
| 35 | (46, 16, 15) |
33 | 2611 | L | 540 | 0 | 17 | (145, 115, 15) |
|
|
|
|
| 1 | (146, 116, 15) |
|
| M | 980 |
| 14 | (74, 46, 14) |
|
|
|
|
| 21 | (75, 47, 14) |
|
| Q | 1440 |
| 29 | (54, 24, 15) |
|
|
|
|
| 19 | (55, 25, 15) |
|
| H | 1710 |
| 11 | (45, 15, 15) |
|
|
|
|
| 46 | (46, 16, 15) |
34 | 2761 | L | 570 | 0 | 13 | (145, 115, 15) |
|
|
|
|
| 6 | (146, 116, 15) |
|
| M | 1036 |
| 14 | (74, 46, 14) |
|
|
|
|
| 23 | (75, 47, 14) |
|
| Q | 1530 |
| 44 | (54, 24, 15) |
|
|
|
|
| 7 | (55, 25, 15) |
|
| H | 1800 |
| 59 | (46, 16, 15) |
|
|
|
|
| 1 | (47, 17, 15) |
35 | 2876 | L | 570 | 0 | 12 | (151, 121, 15) |
|
|
|
|
| 7 | (152, 122, 15) |
|
| M | 1064 |
| 12 | (75, 47, 14) |
|
|
|
|
| 26 | (76, 48, 14) |
|
| Q | 1590 |
| 39 | (54, 24, 15) |
|
|
|
|
| 14 | (55, 25, 15) |
|
| H | 1890 |
| 22 | (45, 15, 15) |
|
|
|
|
| 41 | (46, 16, 15) |
36 | 3034 | L | 600 | 0 | 6 | (151, 121, 15) |
|
|
|
|
| 14 | (152, 122, 15) |
|
| M | 1120 |
| 6 | (75, 47, 14) |
|
|
|
|
| 34 | (76, 48, 14) |
|
| Q | 1680 |
| 46 | (54, 24, 15) |
|
|
|
|
| 10 | (55, 25, 15) |
|
| H | 1980 |
| 2 | (45, 15, 15) |
|
|
|
|
| 64 | (46, 16, 15) |
37 | 3196 | L | 630 | 0 | 17 | (152, 122, 15) |
|
|
|
|
| 4 | (153, 123, 15) |
|
| M | 1204 |
| 29 | (74, 46, 14) |
|
|
|
|
| 14 | (75, 47, 14) |
|
| Q | 1770 |
| 49 | (54, 24, 15) |
|
|
|
|
| 10 | (55, 25, 15) |
|
| H | 2100 |
| 24 | (45, 15, 15) |
|
|
|
|
| 46 | (46, 16, 15) |
38 | 3362 | L | 660 | 0 | 4 | (152, 122, 15) |
|
|
|
|
| 18 | (153, 123, 15) |
|
| M | 1260 |
| 13 | (74, 46, 14) |
|
|
|
|
| 32 | (75, 47, 14) |
|
| Q | 1860 |
| 48 | (54, 24, 15) |
|
|
|
|
| 14 | (55, 25, 15) |
|
| H | 2220 |
| 42 | (45, 15, 15) |
|
|
|
|
| 32 | (46, 16, 15) |
39 | 3532 | L | 720 | 0 | 20 | (147, 117, 15) |
|
|
|
|
| 4 | (148, 118, 15) |
|
| M | 1316 |
| 40 | (75, 47, 14) |
|
|
|
|
| 7 | (76, 48, 14) |
|
| Q | 1950 |
| 43 | (54, 24, 15) |
|
|
|
|
| 22 | (55, 25, 15) |
|
| H | 2310 |
| 10 | (45, 15, 15) |
|
|
|
|
| 67 | (46, 16, 15) |
40 | 3706 | L | 750 | 0 | 19 | (148, 118, 15) |
|
|
|
|
| 6 | (149, 119, 15) |
|
| M | 1372 |
| 18 | (75, 47, 14) |
|
|
|
|
| 31 | (76, 48, 14) |
|
| Q | 2040 |
| 34 | (54, 24, 15) |
|
|
|
|
| 34 | (55, 25, 15) |
|
| H | 2430 |
| 20 | (45, 15, 15) |
|
|
|
|
| 61 | (46, 16, 15) |
c - общее число кодовых слов; k - число кодовых слов данных; r - способность к исправлению ошибок. Для уменьшения вероятности ошибочного декодирования способность к исправлению ошибок должна быть менее половины числа кодовых слов исправления ошибок. |
Для получения доступа к полной версии без ограничений вы можете выбрать подходящий тариф или активировать демо-доступ.