БИБЛИОТЕКА НОРМАТИВНЫХ ДОКУМЕНТОВ

ГОСТ ISO/IEC 15438-2018. Межгосударственный стандарт. Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода PDF417

5.11 Низкоуровневое кодирование

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

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

 

ГОСТ ISO/IEC 15438-2018. Межгосударственный стандарт. Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода PDF417

 

Lr - левый индикатор строки; Rr - правый индикатор строки;

затененная область - область кодовых слов данных;

незатененная область под областью кодовых слов данных -

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

 

Рисунок 8 - Схема размещения кодовых слов

типового символа PDF417

 

5.11.1 Кластеры

В PDF417 используют систему распознавания локальной строки для определения перехода от строки к строке.

Наборы кодовых слов представлены в каждом из трех кластеров. Кластеры имеют номера 0, 3 и 6. В приложении A приведены соответствующие последовательности штрихов и пробелов для каждого знака символа, представляющие каждое кодовое слово и кластер.

Для кодирования индикаторов строк и других кодовых слов каждая строка должна содержать знаки символа (комбинации в виде штрихов и пробелов) только одного кластера. В первой строке используют знаки символа из кластера 0, во второй строке - из кластера 3, в третьей строке - из кластера 6, в четвертой строке - из кластера 0 и так далее. Последовательность кластеров 0, 3, 6 должна постоянно повторяться. Номер кластера K для любой строки вычисляют по формуле:

 

K = [(номер строки - 1) mod 3]·3,

 

где все строки пронумерованы от 1 до r (в соответствии с 4.1)

Так как любые две смежные строки имеют разные кластеры, во время декодирования символа PDF417 декодер может использовать пути сканирования, которые пересекают строки.

5.11.2 Определение матрицы символа

Матрицу строк и столбцов символа окончательно определяют в соответствии с процедурами, приведенными в 5.9.2. Они обеспечивают получение значений r и c.

5.11.3 Определение значений левого и правого индикаторов строк

Индикаторы строк в символе PDF417 - кодовые слова, которые должны кодировать несколько основных параметров: номер строки (F), число строк (r), число столбцов (c) и уровень коррекции ошибки (s). Эта информация должна быть отнесена к трем строкам, и цикл должен повторяться непрерывно. Номер строки (F) должен быть закодирован в каждой строке.

5.11.3.1 Левый индикатор строк

Левый индикатор строк вычисляют по формулам:

при KF = 0; LF = 30·((F - 1) div 3) + (r - 1) div 3;

при KF = 3; LF = 30·((F - 1) div 3) + (s x 3) + (r - 1) mod 3;

при KF = 6; LF = 30·((F - 1) div 3) + (c - 1),

где c, F, r, s и K соответствуют определениям, приведенным в 4.1

5.11.3.2 Правый индикатор строк

Правый индикатор строк вычисляют по формулам:

при KF = 0; RF = 30·((F - 1) div 3) + (c - 1);

при KF = 3; RF = 30·((F - 1) div 3) + (r - 1) div 3;

при KF = 6; RF = 30·((F - 1) div 3) + (s x 3) + (r - 1) mod 3,

где c, F, r, s и K соответствуют определениям, приведенным в 4.1

5.11.4 Кодирование строки

В каждой строке должны быть согласованы с номером кластера следующие знаки символа:

- левый индикатор строки;

- знаки символа, представляющие кодовые слова данных и (или) коррекции ошибок, в количестве, равном числу столбцов;

- правый индикатор строки.

Знаки СТАРТ и СТОП должны быть одинаковы для всех строк.

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