Символы MaxiCode используют исправление ошибок Рида-Соломона на одном из двух уровней:
стандартная коррекция ошибок (SEC);
расширенная коррекция ошибок (EEC).
Деление символов MaxiCode на первичное и вторичное сообщения и подразделение вторичного сообщения на два чередующихся подмножества позволяет применять исправление ошибок. Исправление ошибок применяют независимо для каждой из трех частей деления.
Для заданной последовательности кодовых слов данных (т.е. первичного сообщения или подмножества вторичного сообщения) кодовые слова коррекции ошибок должны быть вычислены с использованием алгоритма кода с исправлением ошибок Рида-Соломона.
Полиномиальная арифметика для MaxiCode выполняет вычисления с использованием арифметики по битам по модулю 2 и арифметику по словам по модулю 1000011 (десятичное 67). Эта арифметика основана на поле Галуа 2 с 1000011 представлением полинома простого модуля этого поля: .
4.10.1 Расширенная коррекция ошибок (EEC) в первичном сообщении
Расширенная коррекция ошибок (EEC) должна использоваться в первичном сообщении. Она требует 10 кодовых слов коррекции ошибок.
Порождающий полином для расширенной коррекции ошибок (EEC) в первичном сообщении:
4.10.2 Исправление ошибок во вторичном сообщении
Во вторичном сообщении используют один из следующих уровней коррекции ошибок:
- расширенная коррекция ошибок (EEC), требующая 28 кодовых слов коррекции ошибок на подмножество;
- стандартная коррекция ошибок (SEC), требующая 20 кодовых слов коррекции ошибок на подмножество.
Порождающий полином для расширенной коррекции ошибок (EEC) во вторичном сообщении:
Порождающий полином для стандартной коррекции ошибок (SEC) во вторичном сообщении:
4.10.3 Генерация кодовых слов коррекции ошибок
Кодовые слова коррекции ошибок являются остатком от деления кодовых слов данных на порождающий полином k-й степени. В MaxiCode это осуществляется отдельно для каждой части деления коррекции ошибок.
Кодовые слова данных являются коэффициентами для членов полинома, причем коэффициент при члене старшего порядка является первым кодовым словом, а коэффициент при члене младшего порядка - последним кодовым словом, стоящим перед первым кодовым словом коррекции ошибок. Коэффициент при члене старшей степени остатка от деления является первым кодовым словом коррекции ошибок, коэффициент при члене нулевой степени остатка от деления - последним кодовым словом коррекции ошибок из регистра.
Кодовые слова коррекции ошибок могут быть генерированы с использованием схемы деления (рисунок 7). Регистры с по обнуляют. Существуют две фазы генерации кодирования. В первой фазе с переключением в нижнее положение данные символа передаются как на выход, так и в схему. Первая фаза заканчивается после тактовых импульсов. Во второй фазе (... тактовых импульсов) с переключением в верхнее положение кодовые слова коррекции ошибок генерируются поочередным сбрасыванием регистров, в то время как входные данные сохраняются нулевыми. Кодовые слова, выходящие из регистра переключения, находятся в том порядке, в каком они будут размещаться в символе. Из-за того, что вторичное сообщение является чередующимся, кодовые слова не будут размещаться в последовательных знаках символа.
Рисунок 7 - Схема кодирования кодовых слов коррекции ошибок