5.7.1 Исправление ошибок Рида-Соломона
В символах версии ЕСС 200 используют исправление ошибок Рида-Соломона.
Для символов версии ЕСС 200 с общим числом кодовых слов менее 255 кодовые слова исправления ошибки вычисляют с помощью кодовых слов данных без процедуры чередования.
Для символов версии ЕСС 200 с общим числом кодовых слов более 255 кодовые слова исправления ошибки вычисляют с помощью кодовых слов данных с использованием процедуры чередования (приложение А). Каждый символ версии ЕСС 200 характеризуется особым числом кодовых слов данных и исправления ошибок, которые разделены в определенном числе блоков (таблица 7) и к которым применяется процедура чередования (приложение А).
Полиномиальные арифметические вычисления для символов версии ЕСС 200 должны проводиться с использованием побитового арифметического устройства для битовых операций по модулю 2 и арифметического устройства для байтовых операций по модулю 100101101 (десятичное значение 301). Это поле Галуа 2, где 100101101 соответствует простому минимальному многочлену поля . Используют 16 различных порождающих многочленов для вычисления соответствующих кодовых слов исправления ошибок, приведенных в приложении Е, раздел Е.1.
5.7.2 Генерация кодовых слов исправления ошибок
Кодовые слова исправления ошибок являются остатком отделения кодовых слов данных на полиномиальную функцию , используемую для кодов Рида-Соломона (приложение Е, раздел Е.1).
Примечание - При вычислении полином данных символа сначала должен быть дополнительно умножен на , после чего проводят деление многочлена на многочлен.
Кодовые слова данных являются коэффициентами полинома с коэффициентом при наивысшей степени равным первому кодовому слову данных и с коэффициентом при низшей степени равным последнему кодовому слову данных перед первым кодовым словом исправления ошибок. Коэффициент при наивысшей степени оставшейся части полинома является первым кодовым словом исправления ошибок и коэффициент при нулевой степени является последним кодовым словом исправления ошибок и последним кодовым словом. Это может быть выполнено с помощью схемы деления, приведенной на рисунке 5. Регистры от до инициализируют нулями. Существуют две стадии генерации кодирования. На первой стадии при положении ключа в нижней позиции кодовые слова данных передаются как на выход, так и на схему. Первая стадия завершается за синхронизирующих импульсов. На второй стадии (, синхронизирующих импульсов) при положении ключа в верхнем положении, кодовые слова исправления ошибок ,..., генерируются путем выдачи значений из всех регистров по порядку с сохранением нулевых данных на входе. Кодовые слова на выходе регистра сдвига должны быть расположены в порядке, в котором они будут размещены в символе. При использовании процедуры чередования указанные кодовые слова не будут размещены последовательно в знаках символа (приложение А).
Примечание - и определены в 3.2 как число кодовых слов данных и число кодовых слов исправления ошибок соответственно.
Рисунок 5 - Схема генерации кодовых слов исправления ошибки
5.7.3 Возможности исправления ошибок
Кодовые слова исправления ошибок позволяют исправлять два типа ошибочных кодовых слов: стирания (ошибочные кодовые слова с известными позициями) и ошибки (ошибочные кодовые слова с неизвестными позициями). Стирание представляет собой не сканированный или не поддающийся декодированию знак символа. Ошибка представляет собой неправильно декодированный знак символа. Число стираний и ошибок, которые одновременно можно исправить, вычисляют по следующей формуле
,
где - число стираний;
- число ошибок;
- число кодовых слов исправления ошибок;
- число кодовых слов, зарезервированных для обнаружения ошибок.
В общем случае 0. Однако если большая часть возможности исправления ошибок, свойственных коду, используется для исправления стираний, то возрастает возможность необнаружения ошибки. Если число стираний больше половины числа кодовых слов исправления ошибок, то 3. Для символов небольших размеров (10x10, 12x12, 8x18, 8x32) не следует использовать исправление стираний (0 и 1).