EugeneRoshal
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Pasha_ZZZ Цитата: Неужели при наличии 1 тома для восстановления можно восстановить только 1 поврежденный том архива? Даже если в 2 частях архива изменить всего по 1 байту? | Только один. Я этим занимался давно и подробности подзабыл, но попробую что-то вспомнить. Чтобы даже один rev том мог исправить несколько rar томов, нам бы пришлось в RS(n,k) для кодов Рида-Соломона увеличивать и n, и k, что привело бы к снижению производительности. Для recovery record это имеет смысл, но у rev томов несколько другая специфика. Потом для определения поврежденных мест пришлось бы использовать контрольные суммы секторов вместо одной суммы на том, что привело бы к росту избыточности. Ведь эти контрольные суммы для всего набора данных должны храниться в каждом rev томе. Цитата: 1) почему для 2 томов архива по 50 МБ с отдельными данными восстановления необходимая избыточность ниже, чем для одного в 100 МБ (если представить виртуально многотомный архив одним целым)? | Потому что у RAR recovery record за счет контрольных сумм избыточность выше, чем у RAR recovery volumes. Для того чтобы исправить ошибки, нам сначала надо определить их местоположение. Собственные способности кода Рида-Соломона по определению ошибок меня на этапе разработки не устроили. Подробности 4 года спустя я не помню: или недостаточная способность к обнаружению, или низкая производительность, или сложность кода. Сразу сейчас не скажу. В любом случае было решено использовать контрольные суммы. REV, конечно, можно переделать на работу с несколькими томами сразу, но придется жертвовать избыточностью, скоростью, сложностью алгоритма. Цитата: 1) есть многотомный архив 2 х 50 МБ; 2) есть одиночный архив 100 МБ; Метод сжатия и исходное содержимое побитово идентично. У того и другого информации для восстановления 10% (10 МБ). | Нас для rev 10 мб не устраивает, нам целый том в 50 мб надо. А 50 мб RS кодов на 100 мб данных по методике recovery record это медленно. Если не путаю это RS(300,200), а один rev том на два rar это RS(2,1). Вычисляется намного быстрее. |