В одну реку не войти дважды или почему результат жима всегда разный ?

zapsip

Участник
Почему из одинакового сырья и при одном и том же алгоритме или сочетании способов сжатия информации получается продукт разного размера ?

Сырье : установленная игра http://rustorka.com/forum/viewtopic.php?t=215839
(при приготовлении раздачи на торенте по этой ссылке ещё не применялись указанные ниже методы сжатия)
На неё воздействовали четырьмя способами :
1 srep + NanoZip
2 Precomp + srep + lzmaMTD
3 PrecompMT + srep + lzmaMTD
4 MSC + srep + lzmaMTD
Потом ещё повоздействовали.
Всего проведено несколько десятков актов сжатия каждым способом.
Продукт всегда выходил разного размера, например :
Причём при разворачивании жима в исходную форму размер оказывался всегда одинаковым с точностью до байта.
 
Последнее редактирование:

vint56

Ветеран
Проверенный
zapsip, распакуй архивы pk3 сожми просто лзма я так делал на call of duty 1 и 2
при распаковке в модуле исдоне укажи запаковать архивы обратно
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\Main\pak0\*'), ExpandConstant('{app}\Main\pak0.pk3'), 2, false ) then break;
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\Main\pak1\*'), ExpandConstant('{app}\Main\pak1.pk3'), 2, false ) then break;
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\Main\pak2\*'), ExpandConstant('{app}\Main\pak2.pk3'), 2, false ) then break; и так далее все архивы которые ты распакуеш
 

zapsip

Участник
vint56, Спасибо за совет. Как освою, тогда применю.
А факт всегда разного пожатого размера с использование одного и того же алгоритма жима должен ли тревожить ?
Сравнить одинаковые строчки (1,2,3,4) левого и правого столбца.
Может, всегда разный результат готового размера зависит от времени создания файла или метода сортировки в просмотрщике файлов ?
 

Булат Зиганшин

Developer
Модератор
1. lzma например использует двухпоточный алгоритм сжатия и afair, результаты могут немного меняться из-за синхронизации этих потоков. хотя разница вроде гнбольшая должна быть
2. возможно между архивациями ты например запускал игру, она делала сейвы или обновляла какую-то инфу. попробуй исползовать скажем 7z h для получения хеша дерева перед каждой архивацией и сравни их
 

zapsip

Участник
1. lzma например использует двухпоточный алгоритм сжатия и afair, результаты могут немного меняться из-за синхронизации этих потоков. хотя разница вроде гнбольшая должна быть
Звучит умно и вроде такой ответ мне нравится :)
Насчёт второго пункта - такого у меня не было. Сырьё для жима не менялось никак )
Ведь :
Причём при разворачивании жима в исходную форму размер оказывался всегда одинаковым с точностью до байта.
 

zapsip

Участник
я уточню : в эти файлы и папки, подвергнутые жиму, "не играли", "игру не запускали", хотя, да, это часть от игры.
Это как бы эталонные данные. В них не "поиграешь".
Кроме того,
Мной также замечено, что если опять снова запустить жим того же самого сырья, (переименовав готовый продукт во избежание утраты), то результат хоть немного будет иным по размеру.
 
Сверху