Кодовые слова коррекции ошибок формируют с помощью приведенной ниже процедуры и вычисляют на основе значений всех кодовых слов данных, включая дескриптор длины символа и все кодовые слова-заполнители. Последовательность кодовых слов должна быть представлена в виде:
, , …,
где - дескриптор длины символа.
Полином данных символа представляет собой
.
Ниже приведено математическое описание вычисления кодовых слов коррекции ошибок для конкретного потока данных и выбранного уровня коррекции ошибок. Все арифметические действия должны быть выполнены по модулю 929.
Кодовые слова коррекции ошибки являются дополнением коэффициентов остатка, получающегося в результате деления полинома данных символа , умноженного на , на порождающий полином . Отрицательные значения отражаются в поле Галуа GF (929) прибавлением 929 до получения значения большего или равного нулю.
Для вычисления коэффициентов для кодовых слов коррекции ошибки , необходимых для уровня коррекции ошибок, используют порождающий полином:
где - порождающий полином;
- неизвестная переменная;
- общее число кодовых слов коррекции ошибок;
- коэффициент показателей степеней , образованный порождающим полиномом .
Пример вычисления коэффициентов приведен в приложении Q.
В приложении F приведены все значения коэффициентов, необходимые для кодирования символа PDF417 для всех уровней коррекции ошибок.
Кодовые слова коррекции ошибок должны вычисляться в соответствии с приведенным ниже алгоритмом с использованием следующих обозначений:
- кодовое слово данных ... ;
- кодовые слова коррекции ошибок ... ;
- коэффициент показателей степени числа , из порождающего полинома (пояснения приведены ниже, а значения - в приложении F);
, , - временные переменные.
Алгоритм:
а) обозначают последовательность кодовых слов данных , ... ;
b) устанавливают в исходное состояние кодовые слова коррекции ошибки , ..., для значения, равного нулю;
c) для каждого кодового слова данных (data) :