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

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

5.4 Высокоуровневое кодирование данных

Высокоуровневое кодирование преобразовывает знаки данных в соответствующие им значения кодовых слов.

При высокоуровневом кодировании используют схемы уплотнения данных. Соответствие заданных пользователем данных и последовательностей кодовых слов в PDF417 устанавливают три режима уплотнения данных:

- текстовое уплотнение (5.4.2 <1>);

--------------------------------

<1> В ISO/IEC 15438 ошибочно приведена ссылка на 5.4.1.5.

 

- байтовое уплотнение (5.4.3);

- цифровое уплотнение (5.4.4).

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

В каждом режиме предусмотрены 900 кодовых слов (со значениями от 0 до 899) для кодирования данных и иных функций в рамках этого режима. Оставшиеся 29 кодовых слов предназначены для специальных функций (5.4.1), независимых от текущего режима уплотнения.

Символика PDF417 также поддерживает систему интерпретации в расширенном канале, позволяющую точно кодировать разные интерпретации данных в символе (5.5).

5.4.1 Функциональные кодовые слова

Кодовые слова со значениями от 900 до 928 (далее - кодовые слова от 900 до 928) используются в качестве функциональных кодовых слов:

- для переключения между режимами (5.4.1.1);

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

- для других усовершенствованных приложений (5.4.1.3 и 5.4.1.4).

В настоящее время кодовые слова от 903 до 912, от 914 до 917 и 919 зарезервированы. В таблице 2 приведен полный список назначенных и зарезервированных функциональных кодовых слов, функции которых установлены в 5.4.1.1 - 5.4.1.5. Зарезервированные кодовые слова представлены в 5.4.6.

 

Таблица 2

 

Назначение функциональных кодовых слов PDF417

 

Значение кодового слова

Функция

Пункт настоящего стандарта

900

Фиксация режима текстового уплотнения

5.4.1.1

901

Фиксация режима байтового уплотнения

5.4.1.1, 5.4.3.1

902

Фиксация режима цифрового уплотнения

5.4.1.1

903 - 912

Зарезервированы

 

913

Переключение регистра в режим байтового уплотнения

5.4.1.1

914 - 917, 919

Зарезервированы

-

918

Признак наличия связанного линейного компонента в композитном символе (отличном от композитного символа GS1 <1>)

5.4.1.5

920

Признак наличия связанного линейного компонента в композитном символе GS1 <1>

5.4.1.5

921

Инициализация считывающего устройства

5.4.1.4

922

Конечное кодовое слово для управляющего блока Макро PDF417

5.13.13

923

Метка последовательности для идентификации необязательных полей в управляющем блоке Макро PDF417

5.13

924

Фиксация режима байтового уплотнения (используется отлично от функции с кодовым словом 901)

5.4.1.1, 5.4.3.1

925 - 927

Идентификатор для интерпретации в расширенном канале

5.5

928

Кодовое слово - макро-метка для указания начала управляющего блока Макро PDF

5.13

 

--------------------------------

<1> В ISO/IEC 15438 указано устаревшее наименование EAN.UCC.

 

5.4.1.1 Функциональные кодовые слова для переключения режимов уплотнения

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

Для переключения из текущего режима в требуемый режим (который будет оставаться в действии до тех пор, пока он не будет изменен на другой) должно использоваться кодовое слово фиксации режима. Для этой функции предназначены кодовые слова 900 - 902 и 924 (таблица 3).

Кодовое слово 913 регистра байтового уплотнения вызывает временный переход из режима текстового уплотнения в режим байтового уплотнения. Этот переход действует только для следующего кодового слова, после чего происходит возврат в прежний подрежим режима текстового уплотнения. Кодовое слово 913 может применяться только в режиме текстового уплотнения; его использование установлено в 5.4.2.4.

 

Таблица 3

 

Кодовые слова установления режима и перехода между режимами

 

Требуемый режим

Фиксация режима

Регистр режима

Текстовое уплотнение

900

-

Байтовое уплотнение

901/924

913

Цифровое уплотнение

902

-

 

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

 

Порядок перехода между тремя режимами установлен в таблице 4 и приведен в рисунке 5.

 

Таблица 4

 

Таблица переходов между режимами, представляющая

кодовые слова и их функции

 

Исходный режим

Кодовое слово, используемое для перехода в требуемый режим

Текстового уплотнения

Байтового уплотнения

Цифрового уплотнения

Текстовое уплотнение

900 (фиксация режима текстового уплотнения)

913 (регистр режима байтового уплотнения)

901 (фиксация режима байтового уплотнения)

924 (фиксация режима байтового уплотнения)

902 (фиксация режима цифрового уплотнения)

Байтовое уплотнение

900 (фиксация режима текстового уплотнения)

901 (фиксация режима байтового уплотнения)

924 (фиксация режима байтового уплотнения)

902 (фиксация режима цифрового уплотнения)

Цифровое уплотнение

900 (фиксация режима текстового уплотнения)

901 (фиксация режима байтового уплотнения)

924 (фиксация режима байтового уплотнения)

902 (фиксация режима цифрового уплотнения)

 

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

 

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

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

 

Рисунок 5 - Возможные переходы между режимами

 

Правила перехода в режим байтового уплотнения более подробно приведены в 5.4.3.1.

5.4.1.2 Функциональные кодовые слова для перехода к интерпретациям в расширенном канале

Кодовое слово интерпретации в расширенном канале (кодовое слово ECI) может быть использовано для перехода к особой интерпретации, которая будет действовать до другого кодового слова ECI или до окончания данных. Для этой функции назначены кодовые слова от 925 до 927 (5.5).

5.4.1.3 Функциональные кодовые слова для Макро PDF417

Символы Макро PDF417 (в соответствии с 5.13) должны использовать кодовое слово 928 в начале управляющего блока Макро PDF417. Кодовые слова 922 и 923 используют для особых функций в Макро PDF417.

5.4.1.4 Функциональное кодовое слово для инициализации считывающего устройства

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

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

5.4.1.5 Функциональные кодовые слова для признака связи в композитном символе

Кодовое слово 920 должно использоваться как признак наличия связанного линейного компонента в символике штрихового кода GS1 Composite <1> в соответствии с ISO/IEC 24723.

--------------------------------

<1> В ISO/IEC 15438 указано устаревшее наименование EAN.UCC.

 

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

Кодовые слова 918 или 920 могут присутствовать в любом месте символа. В конкретной спецификации по применению композитной символики может быть явно указана позиция признака наличия связанного компонента.

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

5.4.2 Режим текстового уплотнения

Режим текстового уплотнения включает все графические знаки набора ASCII (версии КОИ-7) (т.е. знаки с десятичными значениями от 32 до 126) и три управляющих знака набора ASCII (версии КОИ-7): HT (ГТ или ГОРИЗОНТАЛЬНОЕ ТАБУЛИРОВАНИЕ) (десятичное значение знака 9), LF (ПС или ПЕРЕВОД СТРОКИ) (десятичное значение знака 10), и CR (ВК или ВОЗВРАТ КАРЕТКИ) (десятичное значение знака 13).

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

В режиме текстового уплотнения осуществляется кодирование до двух знаков в кодовом слове. Правила уплотнения для преобразования данных в кодовые слова PDF417 приведены в 5.4.2.2. Переключения подрежимов приведены в 5.4.2.3.

5.4.2.1 Подрежимы режима текстового уплотнения

Режим текстового уплотнения предусматривает четыре подрежима:

- прописных букв (Alpha) (прописные буквы латинского алфавита);

- строчных букв (Lower) (строчные буквы латинского алфавита);

- смешанных знаков (Mixed) (числа и некоторые знаки пунктуации);

- знаков пунктуации (Punctuation).

В каждом подрежиме содержится 30 знаков, в том числе знаки фиксации подрежима (sub-mode latch) и регистра подрежима (sub-mode shift).

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

Все знаки и их значения приведены в таблице 5.

 

Таблица 5

 

Определения подрежимов режима текстового уплотнения

 

30 базовых значений

Подрежимы режима текстового уплотнения

Прописные буквы (Alpha)

Строчные буквы (Lower)

Специальные знаки (Mixed)

Знаки пунктуации (Punctuation)

Знак

ASCII

Знак

ASCII

Знак

ASCII

Знак

ASCII

0

A

65

a

97

0

48

;

59

1

B

66

b

98

1

49

<

60

2

C

67

c

99

2

50

>

62

3

D

68

d

100

3

51

@

64

4

E

69

e

101

4

52

[

91

5

F

70

f

102

5

53

\

92

6

G

71

g

103

6

54

]

93

7

H

72

h

104

7

55

_

95

8

I

73

i

105

8

56

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

96

9

J

74

j

106

9

57

~

126

10

K

75

k

107

&

38

!

33

11

L

76

l

108

CR

13

CR

13

12

M

77

m

109

HT

9

HT

9

13

N

78

n

110

,

44

,

44

14

O

79

o

111

:

58

:

58

15

P

80

p

112

#

35

LF

10

16

Q

81

q

113

-

45

-

45

17

R

82

r

114

.

46

.

46

18

S

83

s

115

$

36

$

36

19

T

84

t

116

/

47

/

47

20

U

85

u

117

+

43

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

34

21

V

86

v

118

%

37

|

124

22

W

87

w

119

*

42

*

42

23

X

88

x

120

=

61

(

40

24

Y

89

y

121

^

94

)

41

25

Z

90

z

122

pl

?

63

26

space

32

space

32

space

32

{

123

27

ll

as

ll

}

125

28

ml

ml

al

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

39

29

ps

ps

ps

al

al - знак фиксации подрежима прописных букв (latch to Alpha);

as - знак регистра подрежима прописных букв (shift to Alpha);

ll - знак фиксации подрежима строчных букв (latch to Lower);

ml - знак фиксации подрежима смешанных знаков (latch to Mixed);

pl - знак фиксации подрежима знаков пунктуации (latch to Punctuation);

ps - знак регистра подрежима знаков пунктуации (shift to Punctuation).

 

Примечание - В графах "Знак" по умолчанию представлена интерпретация в расширенном канале ECI 000003 для значений байтов, представленных в соседних графах "ASCII". Каждая величина, указанная в таблице, представляет собой половину кодового слова, т.е. значения от 0 до 29 (см. 5.4.2.2).

 

5.4.2.2 Правила уплотнения для кодирования в режиме текстового уплотнения

В режиме текстового уплотнения пары знаков данных должны быть представлены одним кодовым словом. Значения знаков данных находятся в диапазоне от 0 до 29 (т.е. 30 базовых значений) и указаны в таблице 5. В каждой паре из 30 базовых значений первое или находящееся слева значение пары должно обозначать значение h более высокого порядка, следующее значение пары - значение более низкого порядка l.

Значение закодированного кодового слова в PDF417 определяется по формуле

 

d = h·30 + l,

 

где d установлено в разделе 4.

Эта формула также распространяется на 30 базовых значений для функций фиксации подрежима (sub-mode latch) и регистра подрежима (sub-mode shift) в рамках режима текстового уплотнения. Для переключения между подрежимами следует использовать соответствующие значения знаков фиксации подрежима (sub-mode latch) и регистра подрежима (sub-mode shift). Если в результате кодирования последовательности знаков не получено четное число 30 базовых значений, следует использовать специальную методику, приведенную в 5.4.2.4.

Приведенный пример кодирования представляет, каким образом достигается уплотнение в режиме текстового уплотнения.

Пример - Подлежащие кодированию данные: PDF417.

 

Таблица 6

 

Пример кодирования в режиме текстового уплотнения

 

Пары знаков

h

l

h·30 + l

Кодовое слово

P D

15

3

15 x 30 + 3

453

F ml

5

28

5 x 30 + 28

178

4 1

4

1

4 x 30 + 1

121

7 ps

7

29

7 x 30 + 29

239

 

Примечание 1 - ml - знак фиксации подрежима смешанных знаков используется для переключения с целью кодирования цифровых знаков.

Примечание 2 - Знак ps используется в этом примере как значение-заполнитель, могут использоваться и другие значения знаков регистра подрежима и фиксации подрежима (см. 5.4.2.4).

 

Данные PDF417 представлены кодовыми словами 453, 178, 121, 239.

5.4.2.3 Переключение подрежимов режима текстового уплотнения (функции фиксации подрежима и регистра подрежима)

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

Знак регистра подрежима должен использоваться для переключения из одного подрежима режима текстового уплотнения в другой только для одного знака данных. Последующие кодовые слова возвращаются в подрежим, который использовался непосредственно до знака регистра подрежима (кроме случая, когда знак ps используется в качестве знака-заполнителя, в соответствии с 5.4.2.4). Функции знака регистра подрежима:

- ps - переключение регистра в подрежим знаков пунктуации (shift to punctuation sub-mode);

- as - переключение регистра в подрежим прописных букв (shift to uppercase alphabetic sub-mode).

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

- al - фиксация подрежима прописных букв (latch to uppercase alphabetic sub-mode);

- ll - фиксация подрежима строчных букв (latch to lowercase alphabetic sub-mode);

- ml - фиксация подрежима смешанных знаков [цифровые или другие знаки пунктуации (latch to mixed sub-mode)];

- pl - фиксация подрежима знаков пунктуации (latch to punctuation sub-mode).

Внутри каждого подрежима режима текстового уплотнения допускается ограниченный набор функций фиксации подрежима и переключения регистра подрежима (таблица 5). В таблице 7 представлены переключения подрежимов режима текстового уплотнения; на рисунке 6 приведена схема данного процесса.

Примечание - После знака фиксации подрежима может следовать другой знак фиксации подрежима или знак регистра подрежима; но после знака регистра подрежима не может следовать ни знак фиксации подрежима, ни знак регистра подрежима.

 

Таблица 7

 

Переключения подрежимов в режиме текстового уплотнения

 

Исходный подрежим

Знаки для переключения в требуемый подрежим

Прописные буквы

Строчные буквы

Смешанные знаки

Знаки пунктуации

Прописные буквы

 

ll

ml

ps

Строчные буквы

as

 

ml

ps

Смешанные знаки

al

ll

 

ps

pl

Знаки пунктуации

al

 

 

 

 

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

 

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

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

ll - знак фиксации подрежима строчных букв;

ps - знак регистра подрежима знаков пунктуации;

ml - знак фиксации подрежима смешанных знаков;

as - знак регистра подрежима прописных букв;

al - знак фиксации подрежима прописных букв;

pl - знак фиксации подрежима знаков пунктуации

 

Рисунок 6 - Переключения подрежимов в режиме

текстового уплотнения

 

5.4.2.4 Методика применения знака-заполнителя в режиме текстового уплотнения

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

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

b) если за последовательностью знаков в режиме текстового уплотнения следует функция переключения регистра в режим байтового уплотнения (кодовое слово 913) для кодирования одного знака в режиме байтового уплотнения, то можно применять два способа в зависимости от подрежима режима текстового уплотнения, использованного до переключения регистра в режим байтового уплотнения:

1) если подрежим режима текстового уплотнения не является подрежимом знаков пунктуации, то должен использоваться знак со значением 29 (ps) из 30 базовых значений, при условии, что кодирование вернется к тому же подрежиму режима текстового уплотнения. Декодер должен игнорировать знак ps, который непосредственно предшествует кодовому слову 913;

2) если подрежимом режима текстового уплотнения является подрежим знаков пунктуации, то используют знак со значением 29 (al) из 30 базовых значений. Декодер не должен игнорировать знак (al) и таким образом должен осуществиться возврат в подрежим прописных букв. Переключение из режима текстового уплотнения.

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

- 900 (фиксация режима текстового уплотнения);

- 901 (фиксация режима байтового уплотнения);

- 902 (фиксация режима цифрового уплотнения);

- 924 (фиксация режима байтового уплотнения);

- 928 (начало управляющего блока Макро PDF417);

- 923 (начало необязательного поля Макро PDF417);

- 922 (ограничитель Макро PDF417).

Последние три кодовых слова могут встречаться только внутри управляющего блока Макро PDF417 символа Макро PDF417 (5.13.1). На режим текстового уплотнения также влияет присутствие зарезервированного кодового слова (5.4.6).

Если декодер находится в режиме текстового уплотнения и встречается кодовое слово 913 (регистр режима байтового уплотнения), он декодирует кодовое слово, которое следует за кодовым словом 913, как отдельный двоичный байт, и затем возвращается к режиму текстового уплотнения. Подрежим, в который возвращается декодер, является самым последним фиксированным подрежимом, который действовал до кодового слова 913; знак регистра подрежима ps, непосредственно предшествующий кодовому слову 913, игнорируют.

Если декодер находится в режиме текстового уплотнения и встречает кодовое слово 900 (фиксация режима текстового уплотнения), то декодер вернется в подрежим прописных букв.

5.4.3 Режим байтового уплотнения

Режим байтового уплотнения позволяет кодировать последовательность 8-битового набора байтов в последовательность кодовых слов преобразованием базы 256 в базу 900, при этом достигается коэффициент уплотнения, равный шести байтам на пять кодовых слов (1,2:1).

Набор знаков и их значения (от 0 до 255) приведены в приложении B. Они должны рассматриваться как заданная по умолчанию интерпретация графических и управляющих знаков. При вызове интерпретаций в расширенном канале (ECI) (см. 5.5) эта интерпретация задана как ECI 000003 (см. 5.5.2).

Примечание - В исходной версии спецификации символики PDF417 ([3] и [4]), набор знаков по умолчанию соответствовал ECI 000002 (кодовая страница операционной системы MS-DOS). Интерпретация байтов со значениями меньше 128 не изменилась и оборудование для операций печати и сканирования PDF417 не требует доработки. Новые приложения, которые обрабатывают байты со значениями больше 127, должны подразумевать ECI 000003 как интерпретацию по умолчанию для совместимости с большинством существующих систем. Существующие приложения, использующие байты со значениями более 127, могут продолжать кодировать и обрабатывать данные как прежде. Приложения, которые полагаются на предшествующую заданную по умолчанию интерпретацию значений больше 127, могут явно кодировать ECI 000002, если они желают сообщить об этой интерпретации.

 

5.4.3.1 Переход в режим байтового уплотнения

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

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

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

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

5.4.3.2 Правила уплотнения для кодирования одиночного знака в режиме байтового уплотнения (с использованием кодового слова регистра режима байтового уплотнения 913)

Для кодирования одиночного знака в режиме байтового уплотнения значение кодового слова должно соответствовать десятичному значению (от 0 до 255) знака из расширенного набора ASCII (версия КОИ-8) в соответствии с приложением B.

5.4.3.3 Правила уплотнения для кодирования протяженных цепочек знаков в режиме байтового уплотнения (с использованием кодовых слов фиксации режима байтового уплотнения 924 или 901)

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

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

b) при наличии числа, кратного шести, используют кодовое слово 924 (фиксация режима байтового уплотнения), в противном случае используют кодовое слово 901 (фиксация режима байтового уплотнения);

c) количество знаков в режиме байтового уплотнения разбивают на последовательности из шести знаков слева направо (от позиций старших разрядов к младшим). Если количество знаков менее шести, следует перейти к этапу g);

d) десятичные значения шести байтов данных, подлежащих кодированию в режиме байтового уплотнения, обозначают как ряд от b5 до b0 (где b5 является первым байтом данных);

e) преобразуют базу 256 в базу 900 для получения последовательности из пяти кодовых слов (в приложении C определен алгоритм и приведен пример);

f) при необходимости повторяют операцию на этапе c);

g) для оставшихся знаков режима байтового уплотнения при использовании кодового слова фиксации режима байтового уплотнения 901 (т.е. когда количество знаков режима байтового уплотнения в последней группе менее шести) значением (значениями) кодового слова (слов) должно быть десятичное значение (десятичные значения) (от 0 до 255) знака (знаков) в соответствии с примером кодирования, приведенным в приложении B, от позиций старших разрядов к младшим.

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

 

Если в режимах текстового или цифрового уплотнения требуется дополнительное кодирование, следует использовать соответствующие знаки фиксации режима (5.4.1.1).

5.4.3.4 Переход из режима байтового уплотнения

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

- 900 (фиксация режима текстового уплотнения);

- 901 (фиксация режима байтового уплотнения);

- 902 (фиксация режима цифрового уплотнения);

- 924 (фиксация режима байтового уплотнения);

- 928 (начало управляющего блока Макро PDF417);

- 923 (начало необязательного поля Макро PDF417);

- 922 (ограничитель Макро PDF417).

Три последних кодовых слова могут встречаться только внутри управляющего блока Макро PDF417 символа Макро PDF417 (5.13.1). На режим байтового уплотнения также влияет присутствие зарезервированного кодового слова (5.4.6).

Повторный вызов режима байтового уплотнения (посредством использования кодового слова 901 или 924 во время действия режима байтового уплотнения) служит для завершения предыдущего режима байтового уплотнения группирования в шести знаках режима байтового уплотнения, как указано в 5.4.3.3, и, затем, для начала нового группирования. Эта процедура может быть необходима при кодировании номера назначения интерпретации в расширенном канале (ECI assignment number) в соответствии с 5.5.3.2.

В ходе процесса декодирования в режиме байтового уплотнения обработка последней группы кодовых слов различается в зависимости от того, каким кодовым словом (901 или 924) был вызван режим байтового уплотнения:

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

Если режим байтового уплотнения вызван кодовым словом 901, то последнюю группу кодовых слов строго интерпретируют как один байт на кодовое слово, без уплотнения. Следовательно, если последняя группа состоит из пяти кодовых слов, группу интерпретируют как 5 байтов, а не 6 байтов.

5.4.4 Режим цифрового уплотнения

Режим цифрового уплотнения является методом уплотнения данных с базы 10 в базу 900 и должен использоваться для кодирования протяженных цепочек последовательных цифровых разрядов. Режим цифрового уплотнения позволяет кодировать до 2,93 цифровых разрядов на кодовое слово.

5.4.4.1 Переключение в режим цифрового уплотнения

Вызов режима цифрового уплотнения может быть осуществлен из режимов байтового или текстового уплотнения с использованием кодового слова фиксации режима цифрового уплотнения 902.

5.4.4.2 Правила уплотнения для кодирования протяженных цепочек последовательных цифровых разрядов

Для уплотнения цифровых данных используют следующую процедуру:

a) следует разделить цепочку цифр на группы из 44 цифр, за исключением последней группы, которая может содержать меньшее количество цифр;

b) в каждой группе к позиции старшего разряда должна быть добавлена цифра 1 для исключения потери начальных нулей.

 

Пример -

Исходные данные:

00246812345678

После выполнения этапа b):

1 00246812345678

 

Примечание - Начальная цифра 1 исключается в алгоритме декодирования.

 

c) следует провести преобразование базы 10 в базу 900. В приложении D установлен алгоритм преобразования и приведен пояснительный пример;

d) при необходимости повторяют операцию на этапе b).

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

- группы из 44 цифровых разрядов уплотнены в 15 кодовых слов;

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

 

кодовые слова = INT (количество цифр/3) + 1

 

Пример - Для последовательности из 28 разрядов

 

INT (28/3) + 1 = 9 + 1 = 10 кодовых слов

 

5.4.4.3 Переключение из режима цифрового уплотнения

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

- 900 (фиксация режима текстового уплотнения);

- 901 (фиксация режима байтового уплотнения);

- 902 (фиксация режима цифрового уплотнения);

- 924 (фиксация режима байтового уплотнения);

- 928 (начало управляющего блока Макро PDF417);

- 923 (начало необязательного поля Макро PDF417);

- 922 (ограничитель Макро PDF417).

Последние три кодовых слова могут встречаться только внутри управляющего блока Макро PDF417 символа Макро PDF417 (5.13.1). На режим цифрового уплотнения также влияет присутствие зарезервированного кодового слова (5.4.6).

Повторный вызов режима цифрового уплотнения (путем использования кодового слова 902, не выходя из режима цифрового уплотнения) служит для завершения группирования текущего режима цифрового уплотнения, как указано в 5.4.4.2, и для начала новой группировки. Эта процедура может быть необходима при кодировании номера назначения интерпретации в расширенном канале (в соответствии с 5.5.3.4).

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

5.4.5 Рекомендации по выбору подходящего режима уплотнения

Все базовые разработки при печати и сканировании символов PDF417 должны предусматривать три режима: текстовое уплотнение, байтовое уплотнение, цифровое уплотнение. Набор знаков по умолчанию для режима текстового уплотнения должен соответствовать приведенному в таблице 5, а для режима байтового уплотнения - установленному в приложении B. Режим текстового уплотнения обычно эффективнее режима байтового уплотнения для кодирования текстовых файлов типового набора ASCII (версии КОИ-7) в связи с большим уплотнением знаков ASCII с десятичными значениями 9, 10, 13 и от 32 до 126.

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

Рекомендации по переключению между режимами для получения наименьшего числа кодовых слов приведены в виде алгоритма в приложении N.

5.4.6 Обработка зарезервированных кодовых слов PDF417

5.4.6.1 Краткий обзор

Символы PDF417, предназначенные для использования в открытых системах, не должны использовать кодовые слова, которые обозначены как зарезервированные (5.4.1) в настоящем стандарте. Однако декодирующее оборудование должно поддерживать передачу зарезервированных кодовых слов, используя управляющие последовательности в соответствии с 5.17.4. Декодирующее оборудование также может поддерживать опцию обработки таких символов как дефектных, что может произойти при работе в режиме базового канала.

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

5.4.6.2 Расширение перечня зарезервированных кодовых слов для будущих версий

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

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

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

1) если присутствуют интерпретации в расширенном канале - ECI управляющего блока Макро PDF417 (Macro PDF417 Control Block), то они будут использоваться для компоновки полного набора байтов в соответствующем порядке;

2) кодовые слова управления данными будут преобразованы декодером ECI в соответствии с правилами нового режима уплотнения или сигнальной ECI. Полученные в результате байты данных будут вставлены в соответствующие места внутри потока байтов;

3) к полученному в результате потоку байтов будет применяться набор знаков или другие интерпретируемые ECI.