Здравствуйте, sysprg, Вы писали:
S>Дублирование данных дает rate = 1/2, но не защищает даже от двойной ошибки и поэтому вообще не интересно. Если каждый блок просто продублирован на другом носителе, то для того, чтобы разрушить целостность данных достаточно убить всего ДВА произвольных блока! Если же, скажем, применен код Рида-Соломона RS(64,32) (полученный из RS(255, k) over GF(2^8)), то для разрушения данных придется убить 33 блока. Согласитесь, это намного лучше, чем разрушение данных при убитии всего двух блоков/носителей.
Основные преимущеста RS достигаются за счет применения перемежителя. Именно благодаря ему RS по общему мнению борется с блочными ошибками лучше остальных. Вероятность появления ошибки размазывается по времени и соответственно вероятность ошибки канала в конкретный момент времени снижается до приемлемой(если физические характеристики канала позволяют конечно), когда ПУ код способен эффективно работать. Особеность в том, что нужны вероятностные характеристики канала и именно они в конечном итоге влияют на выбор реализации ПУ кода. Для канала связи пользуют мягкие решения демодулятора и с их использованием повышат вероятностные характеристики, но в вашем случае(система хранения) аналогом будут именно жесткие решения. Природу не обманешь, одним проверочным битом больше одной ошибки не исправишь

в идеальном теоритическом случае (при условии что проверочный бит не поврежден

, на что тоже следует затратить ресурс избыточности).
Если вы считаете высокой степенью верояности разрушения одних и тех же данных на параллельных носителеях, то вероятность некритичного разрушения данных в информационной части и в проверочной области одного кодированного пакета ведущего к потере пакета, будут по крайней мере соизмеримы.
Ну а если вы настроены повышать скорость, то надо определится с вероятностю появления ошибки и характером распределения. И вероятней всего склонится к RS (как при записи на CD

). А повышение скорости алгоритма декодирования возможно будет только при рассмотрении конкретной реализации кода, характера данных, их распределением в памяти и тучей других параметров характерных именно для вашей системы. Только вот окупятся ли затраты на оптимизацию алгоритма с выйгрышем, который он даст

.
Если данные настолько важны может лучше из продублировать в трех независимых местах? В целом выйдет дешевле чем потеря данных ?