uShell
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Хочу добавить свои 5 копеек в срач дискуссию по поводу оптимизации сжатия разных сжатых файлов. По сути, rzt предлагает добавить в WinRAR новый фильтр наряду с Delta и EXE, который будет работать аналогично Precomp. Обратимый алгоритм распаковки Deflate, как ни странно, существует (доказать самостоятельно, ибо тут это оффтоп), поэтому он существует и для ZIP с методами Store и Deflate. Плюс от его внедрения один - лучшее сжатие всяких ZIP'ов. Минусов я вижу два: трудоёмкость реализации и возможная потеря совместимости со старыми версиями WinRAR. Первый минус, ИМХО, примерно уравновешивается плюсом. Второй минус можно обойти, если использовать возможность WinRAR хранить алгоритм сжатия в архиве. Я думаю, что если кто-нибудь (нет, не я - по крайней мере, не в ближайшем будущем) напишет этот самый алгоритм на языке виртуальной машины WinRAR и даст ему публичную лицензию, разработчику не составит труда реализовать запрашиваемую функцию. Ну и напомню своё старое пожелание - поддержку разреженных файлов. Было бы здорово, видя у файла флаг sparse и имея на то разрешение пользователя, при распаковке вызвать FSCTL, а затем вместо длинных последовательностей нулей делать seek. Кстати говоря, если алгоритм сжатия Rar опирается на LZ77, обнаружение длинных последовательностей нулей можно вести прямо по ходу распаковки, а не сканировать заново выходной буфер. |