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

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

Тема в разделе "Алгоритмы сжатия", создана пользователем zapsip, 10 янв 2017.

  1. Пользователь

    Регистрация:
    25 дек 2016
    Сообщения:
    66
    Симпатии:
    14
    Почему из одинакового сырья и при одном и том же алгоритме или сочетании способов сжатия информации получается продукт разного размера ?

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

    Регистрация:
    18 июн 2011
    Сообщения:
    820
    Симпатии:
    588
    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 нравится это.
  3. Пользователь

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

    Регистрация:
    26 июн 2011
    Сообщения:
    163
    Симпатии:
    82
    1. lzma например использует двухпоточный алгоритм сжатия и afair, результаты могут немного меняться из-за синхронизации этих потоков. хотя разница вроде гнбольшая должна быть
    2. возможно между архивациями ты например запускал игру, она делала сейвы или обновляла какую-то инфу. попробуй исползовать скажем 7z h для получения хеша дерева перед каждой архивацией и сравни их
     
    zapsip нравится это.
  5. Пользователь

    Регистрация:
    25 дек 2016
    Сообщения:
    66
    Симпатии:
    14
    Звучит умно и вроде такой ответ мне нравится :)
    Насчёт второго пункта - такого у меня не было. Сырьё для жима не менялось никак )
    Ведь :
     
  6. Developer Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    163
    Симпатии:
    82
    размер!=сожердимое. может там файлы внутри обновлялись
     
    zapsip нравится это.
  7. Пользователь

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

Поделиться этой страницей