ГОСТ Р 54708—2011
О ,
_
.
I*»... I
* . ш .
к
1сГ
z = с-
к
-1:
Sr*, = MIN !MTU -h jдля m > 0;
f =
/ + c p +z I ,
’ / - c - p +z
•7
(
1
)
(
2
)
(3)
<«)
Sma, = MTU - hдля m = 0;
IS)
(
6
)
(7)
П р и м е ч а н и е — В предыдущей версии настоящегостандарта алгоритм расчета smaxдля случая (т > 0)
определялся следующим образом
Следствием этой формулы является то. что даже при низких степенях защиты т ■ 1 (т. е. предназначенных
для защитыотпотериодного фрагмента)DCP кодергенерировал большее количество фрагментов, чем технически
было необходимо, a DCP декодер исправлял два фрагмента вместо необходимого одного фрагмента. Кроме того,
для каждого более высокого значения т еще один потерянный фрагмент, чем указанное значение т. могло быть
восстановлено ОСР декодером за счет неоправданно большого количества сгенерированных фрагментов.
Для копирования точного поведения DCP кодера постарой версии алгоритма значение т может быть выбра
но на единицу выше, чем на самом деле необходимо. Например, чтобы копировать прежнюю ’защиту против потери
одного единственного пакета’ (т = 1), m должно быть установлено в значение 2 вместо 1с новой версией алгорит
ма. однако тогда фактическая защита будет от потерь двух фрагментов.
7.3 Кодирование
Следующие шаги должны быть выполнены, чтобы закодировать один AF пакет. Когда опция
(например, кодРида-Соломона) недоступна, этот шаг просто не выполняется.
7.3.1 Код Рида-Соломона
Оригинальный пакет сначала делится на с фрагментов Рида-Соломона по /с-байтов каждый; г
нулевых байтов заполнения добавляются к последнему фрагменту при необходимости. Четные байты
Рида-Соломона тогда рассчитываются идобавляются к каждомуфрагменту, иполученный RSблокпод
вергается перемежениюдо формы RS пакета. Схематически это показано на рисунке 12.
Полный код Рида-Соломона должен быть RS (255. 207). вычисленный через поле Галуа (Galois
Field GF)(23) с использованием полиномиального генератора
Р(х) = хй* х* + х3+ х2+ 1.
Когда расчетное значениедля
к
меньше чем 207. байты
к
до 206 (включительно), закодированные
RS (255. 207) кодом, должны все быть равны нулю и не должны быть включены в результирующий RS
блок, таким образом производя RS (
к
+ р.
к
) код.
Полиномиальный коддолжен быть
48
<3(Х) = П ( * - “ ’)■(8)
г-1
Байты /сданных ир проверочныебайты кодаРида-Соломона отражаются каккоэффициенты соот
ветствующих полиномиалов в порядке уменьшения степени х. Если порядок байтов данных в RS бло
ке— от
d0
до £/»
_
,, сопровождаемому проверочными байтами от rs0 до rsp
_
,, то от
d0
до dk
_
,
— коэффициенты отх2Мдох255- ‘ соответственно, иотrs0до rsp , — коэффициенты оту?-’ дох0в
кодовом слове полинома, который имеет G(x) какфактор.
и