Статус документа
Статус документа

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

     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, даже при том, что это фактически может представлять нечисловые данные. Для определения значения индикатора числа знаков следует использовать несколько байтов (в режиме кандзи - пар байтов).