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

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

Приложение N

(справочное)

 

АЛГОРИТМ МИНИМИЗАЦИИ ЧИСЛА КОДОВЫХ СЛОВ

 

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

a) принимают, что P указывает на начало потока данных;

b) устанавливают текущий режим кодирования в режим текстового уплотнения;

c) принимают, что N - число последовательных цифр, начинающихся от P;

d) если N >= 13, тогда:

1) фиксируют режим цифрового уплотнения;

2) кодируют N знаков с использованием цифрового уплотнения;

3) передвигают указатель P вперед на N знаков;

4) переходят к этапу c);

e) в противном случае, если N < 13, тогда:

1) принимают, что T - длина последовательности знаков в режиме текстового уплотнения, начинающейся с P. Последовательность заканчивается в том случае, если будут обнаружены либо знак, не находящийся в режиме текстового уплотнения, либо цифровая последовательность длиной 13 и более разрядов;

2) если T >= 5, тогда

i) фиксируют режим текстового уплотнения;

ii) кодируют T знаков с использованием режима текстового уплотнения;

iii) перемещают указатель P вперед на T знаков;

iv) переходят к этапу c);

3) если T < 5, тогда:

i) принимают, что B - длина кодируемой в двоичном виде последовательности, начинающейся с P. Последовательность заканчивают в случаях, если будут найдены либо последовательность в режиме текстового уплотнения, длиной 5 и более, либо цифровая последовательность, длиной 13 и более;

ii) если B = 1 и текущий режим текстового уплотнения, тогда;

I) переводят регистр в режим байтового уплотнения;

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

III) перемещают вперед указатель P на B;

IV) переходят к этапу c);

iii) иначе

I) фиксируют режим байтового уплотнения;

II) кодируют B байтов с использованием режима байтового уплотнения;

III) перемещают вперед указатель P на B;

IV) переходят к этапу c).