Я храню множество файлов различной длины на блочно-ориентированном носителе (фиксированный размер, например, 1024 байта). При чтении файла каждый блок будет либо отсутствовать, либо исправляться (без битовых ошибок и т. П.). Пропущенные блоки являются случайными, и необязательно какая-либо последовательность к пропущенным блокам. Я хотел бы иметь возможность повторно собрать весь файл, если количество отсутствующих блоков ниже некоторого порога, который, вероятно, зависит от схемы кодирования.
Большая часть литературы, которую я видел, имеет дело с последовательностями битовых ошибок в потоке данных, так что это, похоже, неприменимо.
Простой подход состоит в том, чтобы взять N блоков за раз, а затем сохранить блок, содержащий XOR из N блоков. Если один из N блоков отсутствует, а контрольный блок отсутствует, то отсутствующий блок может быть восстановлен.
Существуют ли схемы исправления ошибок, которые хорошо подходят для этой проблемы? Ссылки на литературу или код приветствуются.