99
D пакетов данных последовательно вводятся в таблицу данных приложений, начиная с первого байта первого пакета, поступающего в ряд 1, столбец 1, и далее двигаясь вниз ряд за рядом и вправо столбец за столбцом. Как только все D пакетов заведены, остающееся пространство заполняется байтами заполнения со значением 0x00. Процесс размещения пакетов данных показан на рисунке 23.
Таблица данных RS заполняется данными четности Рида-Соломона, вычисленными из каждого ряда данных таблицы данных приложений (т. е. для каждого кодового слова Рида-Соломона). Код, используемый для этих расчетов, — систематический код Рида-Соломона (255, 239, t = 8) или сокращенная версия этого кода. Этот код позволяет исправить любые 8 ошибочных байтов в любом месте кодового слова.
Для вычисления байтов четности Рида-Соломона применяются следующие определения:
- полином генератора кода: g(x) = (x + X0)(x + X1)(x + X2)...(x + X15), где X = 0x02,
- полином генератора поля: p(x) = x8 + x4 + x3 + x2 + 1.
Если число столбцов С таблицы данных приложений меньше 239, должен использоваться укороченный код Рида-Соломона ((C + 16), C, t = 8). Укороченный код Рида-Соломона может быть получен добавлением к кодовому слову (239 - C) байтов, установленных в нуль, в ключевое слово перед столбцом 1 таблицы данных приложений на входе RS (255, 239, t = 8) кодера. После процедуры RS кодирования эти нулевые байты будут отброшены, что даст длину RS кодового слова (C + 16) байтов. Данный процесс показан на рисунке 24.
В завершение информация четности Рида-Соломона интегрируется в пакеты F EC. Байты из таблицы данных RS вставляются в пакеты FEC таким образом, чтобы каждый ряд байтов из таблицы данных RS распределялся по наибольшему числу пакетов F EC.