Распаковка архива методом PZlib+Srep+Lzma

Edison007

Ветеран
Модератор
Сжимал я значить файл в 351мб
при использовании -mpzlib+srep+4x4:b256mb:lzma:a1:mfbt4:d256m:fb273:mc10000:lc8 файл сжался за 2 минуты в размер 259мб
а при -mpzlib+srep:mem256mb:l1024+delta+lzma:680mb:max:bt4:1024:mc10000:lc8 файл сжался за 4 минуты но размер 254мб
Вопрос: можно как то сделать так, что бы скорость сжатия была как у первого варианта а размер как у второго?
Ого сказочники, может сразу - сжатиe уровня PAQ, а скорость распаковки как у LZ4?
 

makst

Новичок
ShTeCvV, вряд ли. Можно использовать lzma2, и размер хороший и скорость упаковки тоже хорошая по сравнению с lzma.
 

Edison007

Ветеран
Модератор
LZMA2 это всё тот же LZMA, только с поддержкой псевдо-многопоточной упаковки, более или менее нормальной обработкой несжимаемых данных и ограничением lc+lp<=4
 

ShTeCvV

Новичок
знает кто, как поправит проценты в батнике, а то они как то странно скачут, сразу на половину, и потом на конец?
 

ExPlayer

Старожил
Доброго времени суток!
Сжимаю архивы (.pak) "Styx: Shards of Darkness" вот так (использую pZlib v3):
Код:
arc.exe a -w.\ -ep1 -dses --dirs -s; -lc- -di -i2 -r "-hpPassword" -mpzlib+srep+lzma:a1:mfbt4:d200m:fb273:mc10000:lc8 "Data\data-3.bin" "D:\Games\Styx Shards of Darkness\*"
data-1.bin распаковался нормально, а во время распаковки 3-го архива (data-3.bin), произошла ошибка:
Снимок.PNG
[External compressor:precomp]
header = 0
packcmd = precomp -intense0 -c- {options} -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = precomp -o$$arcdatafile$$.tmp -r $$arcpackedfile$$.tmp

[External compressor:srep]
header = 0
packcmd = srep {options} -m3f -a2 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = srep {options} -d -s - - <stdin> <stdout>

[External compressor:srep64]
header = 0
packcmd = srep64 {options} -m3f -a2 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = srep64 {options} -d -s - - <stdin> <stdout>

[External compressor:lzma64]

header = 0

packcmd = lzma64 e lzma{:option} <stdin> <stdout>
unpackcmd = lzma64 d lzma{:option} <stdin> <stdout>

[External compressor:pzlib]
header = 0
packcmd = pZLib e -m2 -t8 - -o - <stdin> <stdout>
unpackcmd = pZLib d -t8 - -o - <stdin> <stdout>

if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data-3.bin'), ExpandConstant('{app}'), '', False, 'Password', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), notPCFonFLY {PCFonFLY} ) then Break;

Из-за чего во время распаковки может появляться ошибка?
 
Последнее редактирование:

dixen18

Ветеран
ExPlayer, Эта ошибка появляется почти везде где использован пзлиб...Данную игру лучше сжимать многопоточным прекомпом..
В принципе можно попробовать подружить пзлиб с LZMA2 - в таком варианте вероятность ошибки CRC Error уменьшится но не факт что все пройдет гладко..
 

dixen18

Ветеран
makst,
Честно говоря, нет. Я так понимаю что процесс распаковки просто прекращается?
ExPlayer,
О как)) Еще веселее)))
Кстати говорят что игра работает с распакованнымии архивами, но я еще не пробовал
 

makst

Новичок
dixen18, распаковка идет, но очень медленно. LZMA умирает. Не понимаю почему. Сниму видео позже чтобы было ясно.
 

Edison007

Ветеран
Модератор
Ага, корявый режим stdin/out и корявый pZlib, может еще руки. xD
 

nik1967

Old Men
Проверенный
Сергей, на сколько я понимаю/помню, за использование пароля отвечает не unarc.dll, а IsDone.dll. Может, конечно и ошибаюсь. На всякий пожарный, длл'ки которыми пользуюсь я.
 

Вложения

SBalykov

Старожил
Сергей, на сколько я понимаю/помню, за использование пароля отвечает не unarc.dll, а IsDone.dll. Может, конечно и ошибаюсь. На всякий пожарный, длл'ки которыми пользуюсь я.
Спасибо, Николай!
Попробую ...
P.S.
Николай,
еще раз спасибо, все работает нормально ...
 

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

Developer
Модератор
у unarc.dll точно такие же опции как у unarc.exe. и вообще если что-то с dll не работает - первым делом прверяйте ту же команду с unarc.exe. а последний как видно из хелпа, поддерживает -p, а не -hp. для распаковки-то какая разница - просто задаёте пароль и программа суёт его всюду где что-то зашифровано

ну и естественно свежий dll берите - дешифрование там всего лет 5 назад появилось :)
 

L-e-o-N

Старожил
pzlib v3+msc+srepinside+lzma При распаковке через ISDone: Неизвестный метод сжатия pzlib (если переместить pzlib на второе место то будет неизвестній метод сжатия msc и т.д), без pzlib все работает через arc.exe распаковывает хорошо а через unarc.dll нет.
Все файлы в temp-е появляются (проверял)
[External compressor:pzlib]
header = 0
packcmd=pzlib e -m2 -t75p -st75p -ct75p -r6 -x -c200m - -o - <stdin> <stdout>
unpackcmd = pzlib d -t75p - -o - <stdin> <stdout>
Если паковать/распаковывать не через stdin/stdout тоже самое. помогите пожалуйста.
Библиотеки на результат не влияют (пробовал и сними и без них)
Пробовал упаковать разные данные
 
Сверху