Is it possible to protect large files from errors, without chunking them into smaller pieces
В зависимости от кода. С bytewise RS необходимы куски (но этот lib работает для вас).
As you can see I want to protect the image from 20% errors that might occur. The problem here?
Да. В первую очередь это не означает, что это процентная вещь. Вы действительно должны прочитать примеры lib и немного узнать, как работает RS.
Число, которое должно быть использовано для исправления ошибок, должно быть указано в байтах из 255. Например. 40 означает, что для каждого 215-байтового данных будет 40-байтовый код RS (около 20%), а в этом 255 байтах он может исправить ошибку до 20 байтов.
И, наконец, принцип LDPC может быть чем-то, что вы хотите изучить. Немного хуже, чем RS в исправлении ошибок, но ноч много, и это намного быстрее.
Дополнение от комментариев:
Если его можно исправить, зависит от местоположения ошибки, да. Если полные 255 блоков исчезли, он не сможет исправить это. Чтобы увеличить масштаб, можно использовать коды RS-кода более высокого порядка (например, один независимый блок может иметь 65536 байт вместо 255), , но a) это снова намного медленнее, чем (уже медленный) 255-RS, и b) Я знаю, что RS libs не может этого сделать (ваш inslded). Вы должны написать это сами.
Опять же, LDPC может помочь, если это вас не беспокоит, что это совсем другая вещь. Например. он не имеет четких значений, сколько ошибок слишком много для исправления/обнаружения, это также зависит от шаблона ошибки. И поскольку он новее RS, в Интернете меньше кодов/библиотек, возможно, для вашего дела нет.
((Ну, это тоже старомодно, но на протяжении десятилетий его никто не интересовал, пока кто-то не понял, что это полезно)).
Об избирателях: Здесь нет ничего слишком широкого. – deviantfan
Если вы не против накладных расходов на копирование/разделение данных в матричный формат, может быть использована двухуровневая схема обнаружения/коррекции. Строки будут содержать байты CRC или RS ECC для обнаружения ошибок, и в матрице будут добавлены строки RS ECC для исправления стираний, обнаруженных CRC/RS ECC, ориентированных на строки, для исправления только одной строки четности на каждую ошибочную строку. Перемещение может использоваться для борьбы с большими отсева. – rcgldr