chAlx
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Раз уж речь зашла о смысле жизни и, в частности, архивирования, озвучу старую идею повышения степени сжатия. Суть в том, что в "реальных задачах" (ну, во многих) большие архивы получаются путём упаковки нескольких директорий диска со множеством разнородных файлов. При этом упаковываемые файлы часто не просто похожи, а повторяются (целиком или большей частью): копии документов, версии библиотек, раскиданные по разным директориям медиафайлы и т.д. Классические алгоритмы будут формировать словарь из фрагментов этих файлов, но упакуют их по-отдельности (в т.ч. ввиду своей потоковой природы). В результате, в архиве останется избыточность: информация об одинаковых файлах будет продублирована. Однако, даже на существующей базе ПО можно сварганить скрипт, который сформирует список уникальных файлов для упаковки обычным архиватором, а при распаковке создаст дубли нужных файлов (например, средствами sfx). А уж если это всё будет делать сам архиватор, то можно учесть и почти-уникальность (если бинарники отличаются только метаданными, а медиафайлы тегами). Да, придётся добавить "лишний" проход при упаковке и усложнить структуру архива, не говоря уж о сложности угадывания похожих файлов (потребуется учитывать их форматы). Но ведь и выигрыш должен получиться существенный -- за что ещё бороться на этом рынке, если у всех конкурентов "примерно одно и то же"? |