Действующий

ГОСТ Р ИСО/МЭК 16022-2008 Автоматическая идентификация. Кодирование штриховое. Спецификация символики Data Matrix (с Изменением N 1)

    
Приложение K
(обязательное)

     
Алгоритмы обнаружения и исправления ошибок для символов версии ЕСС 000-140

K.1 Символы уровня ЕСС 000

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

K.2 Символы уровня ЕСС 050

Двоичный поток с исправлением ошибок 'v' для символов уровня ЕСС 050 должен быть создан путем обработки незащищенного двоичного потока 'u', через конечный автомат, соответствующий сверточному коду структуры 4-3-3 (рисунок K.1).

K.3 Символы уровня ЕСС 080

Двоичный поток с исправлением ошибок 'v' для символов уровня ЕСС 080 должен быть создан путем обработки незащищенного двоичного потока 'u', через конечный автомат, соответствующий сверточному коду структуры 3-2-11 (рисунок K.2).

K.4 Символы уровня ЕСС 100

Двоичный поток с коррекцией ошибок 'v' для символов уровня ЕСС 100 должен быть создан путем обработки незащищенного двоичного потока 'u', через конечный автомат, соответствующий сверточному коду структуры 2-1-15 (рисунок K.3).

K.5 Символы уровня ЕСС 140

Двоичный поток с коррекцией ошибок 'v' для символов уровня ЕСС 140 должен быть создан путем обработки незащищенного двоичного потока 'u', через конечный автомат, соответствующий сверточному коду структуры 4-1-13 (рисунок K.4).

K.6 Обработка сверточных кодов

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

- однобитовый регистр памяти;

- однобитовый сумматор с выводом на выходе младших битов, что эквивалентно генератору проверки четности;

или  - соединение линий;

 - пересечение не соединяющихся линий.

Конечный автомат действует следующим образом:

a) регистры памяти () заполняют нулевыми значениями перед началом процесса;

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

c) после ввода всех входных битов выполняют выходной цикл. Выходной цикл заключается в считывании выходных битов исправления ошибок при каждом возможном положении выходного ключа-переключателя, т.е. для битов. При каждом положении ключа-переключателя выходной бит вычисляют путем выполнения операции "исключающего ИЛИ" (XOR) над подключенными к сумматору разрядами регистра сдвига;

d) после одного цикла ввода и вывода выполняют операцию сдвига, состоящую в переносе всех значений регистров сдвига вправо на одну позицию;

e) повторяют действия, указанные в перечислениях b)-d) - до тех пор, пока не будут введены все входные биты:

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

2) добавляют на вход соответствующее количество дополнительных нулевых битов до тех пор, пока все регистры сдвига не вернутся к нулевым значениям. Выходные данные этапов, указанные в перечислениях е) 1) и 2), представляют собой часть закодированных данных. Процесс завершают после того, как все истинные входные биты данных прошли через последний крайний правый регистр памяти.

K.7 Рекомендуемый алгоритм декодирования на основе сверточных кодов

Для декодирования данных, защищенных с помощью сверточных кодов, может использоваться алгоритм Фано, исправляющий ошибки. Описание действия алгоритма Фано приведено в [1].

Построение декодера сверточного кодирования рекомендуется проводить следующим образом.