Иконка ресурса

lolz test22c4b

Нет прав для скачивания

elit0101

Новичок
Спасибо за ответ. Но stdio отлично работает для меня - я никогда не видел проблем, может быть, вы имеете в виду (4x4: внешний), то да. У меня на самом деле более частые проблемы с CLS +, они часто несовместимы с другими вариантами.
К вашему удивлению, например: ztool (stdio) + lolz (stdio) в FA (без srep). = прямая потоковая передача в lolz во время упаковки без необходимости создавать файл 'in' = direct write to 'out'.
 

elit0101

Новичок
О, мой ... поэтому я понял, по крайней мере, почему CLS не сработал. Lolz !!!! И в cls.ini, и arc.ini > Lolz не lolz! Это жестко закодировано, другие имена не работают. Так что по крайней мере распаковка теперь лучше. Тем не менее, я бы предпочел 1 exe с stdio, но большое спасибо.
 

elit0101

Новичок
Кажется, я был слишком быстр. Это сработало, потому что оно обходилось cls. Вот как выглядит мой arc.ini:

[External compressor: Lolz]
packcmd = lolz_x64.exe {options} $$ arcdatafile $$. tmp $$ arcpackedfile $$. tmp

И это файл cls.ini:

[Lolz]
Bufsize = 512k
transfer_ReadBufSize = 512k
transfer_WriteBufSize = 512k
MaxThreadsUsage = 100%
MaxMemoryUsage = 100%

Я также попробовал header = 0 в arc.ini и TempPath =. \ In cls.ini.

Lolz может сжимать правильно, но во время декомпрессии 2 происходит:
1: нет аварии, но распаковать бесконечно (это никогда не заканчивается). Даже если исходный файл был намного меньше.
2: во время тестирования архива он все еще создает временные файлы. Это нормально? Я надеялся, что по крайней мере cls использует <stdio>?

Что-то не так с вышеуказанными настройками?
Спасибо.
 

Simorq

Новичок
elit0101 Use Fazip

[External compressor:Lolz]
header = 0
unpackcmd = FAZip32 -i0 decompress:lolzx{:options} <stdin> <stdout>
 
Последнее редактирование:

elit0101

Новичок
Thank you Simon but it also doesn't work:

[External compressor:Lolz]
header = 0
packcmd = FAZip -i0 compress:Lolz{:options} $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = FAZip -i0 decompress:Lolz{:options} <stdin> <stdout>

This does not even compress, not even with compress:lolz_x64.exe{:options}...
It give general error.
 

78372

Новичок
Thank you Simon but it also doesn't work:

[External compressor:Lolz]
header = 0
packcmd = FAZip -i0 compress:Lolz{:options} $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = FAZip -i0 decompress:Lolz{:options} <stdin> <stdout>

This does not even compress, not even with compress:lolz_x64.exe{:options}...
It give general error.
It should be lolz, not Lolz, fa is case sensitive afaik
 

78372

Новичок
3 more things
1. You don't need arc.ini if you have cls with fa.
2. AFAIK you can't unpack with stdio without cls
3. Fazip can't work without cls
 
Последнее редактирование:

Ramiro Cruzo

Новичок
In theory, FAzip allows usage of all external compressors using cls and cls.ini. And we have used SREP as srep, LZMA as lzma, Lzma, etc many times, FA isn't case sensitive as we are not talking about FA anyways.
 

elit0101

Новичок
I just tried most of possible combinations I could think of. First I downloaded FaZip 0.3 and placed both fazip.exe and fazip64.exe into FA dir. I even tried to replace facompress.dll and facompress_mt.dll during tests from ones with fazip. Using "lolz" aways crashed while using "Lolz" could compress but never decompress without error(I think with "Lolz" its bypassing cls).
I also placed arc-fazip.ini in FA dir to see if it help. With arc.ini I tried following combinations:

[External compressor:lolz(Lolz)]
header = 0 <- and without this line
packcmd = lolz_x64.exe(lolz/Lolz) {options} $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = fazip.exe(fazip64.exe) -i0 decompress:lolz(Lolz){:options} <stdin> <stdout>

With arc-fazip.ini I tried: (first without this file altogether)

[External compressor:lolz(or Lolz)]
header = 0
packcmd = fazip(64) -i0 compress:lolz_x64.exe(lolz/Lolz){:option} $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = fazip(64) -i0 decompress:lolz(Lolz){:option} <stdin> <stdout>

cls.ini:

[Lolz(lolz)]...

I also tried without arc.ini and/or only with arc-fazip.ini and vice versa. Or without both and only cls.ini.
So really, I dont know what more to do. I think at this point best solution would be if someone was kind enough to post me their arc.ini, cls.ini, arc-fazip.ini and also preferably screenshot of his FA dir or list of files in it. Because I dont think there is any other way anymore. Thanks.
 

ProFrager

Знаток
Проверенный
elit0101,
for compression:
just unpack archive with the latest version of lolz in some directory, add to folder pack/ any version of arc.exe, put data for compression into the folder data/ and run pack.bat. After compression is created test.arc file.
for decompression:
Add unarc.exe to unpack/ folder from corresponding freearc version. Copy archive test.arc from pack/ folder to unpack/ and run unpack.bat.
 

elit0101

Новичок
elit0101,
for compression:
just unpack archive with the latest version of lolz in some directory, add to folder pack/ any version of arc.exe, put data for compression into the folder data/ and run pack.bat. After compression is created test.arc file.
for decompression:
Add unarc.exe to unpack/ folder from corresponding freearc version. Copy archive test.arc from pack/ folder to unpack/ and run unpack.bat.
Thank you so much ProFrager, finally with your help I found what was the problem:
When you compress, you cannot have cls-lolz.dll in the same dir as lolz_x64.exe - inside FA's /bin folder! Or it will crash. You can replicate this, place .dll and cls files into /pack dir and try to pack - it will crash. Since FA GUI normally have all files in the same directory called "/bin", this created conflicts. Once it pack, it can unpack properly without even any .ini including cls.ini though.

But its a problem because arc.ini is ignored and it is trying to use cls* files for compression. Even if I place lolz_x64.exe to another subfolder and do something like:
packcmd = .\a\lolz_x64.exe {options} $$arcdatafile$$.tmp $$arcpackedfile$$.tmp ,
it will try to use cls...dll because cls* are in main /bin folder. Is there way to force usage of arc.ini / lolz_x64.exe for compression even if they are in same directory with cls* files?

EDIT: @78372 if you read this, your version does work under FA GUI, but have one issue: it does not respect parameters passed, neither in Encode = ... nor if I pass them manually
 
Последнее редактирование:

Mickey1s

Ветеран
Модератор
ProFrager, будут ли обновления или это финальная версия?
 

elit0101

Новичок
Thank you @Simorq! Yes this seems the only way for now, I was hoping for more direct/clean solution but I guess there is no other way to bypass cls for compression if .dll's are in main directory. So I understand that idea is to put lolz_x64.exe in _EC and cls* + fazip in _CLS, then call them all from arc.ini. Very clever actually.

EDIT: and it work well, thank you again
 
Последнее редактирование:

ProFrager

Знаток
Проверенный
будут ли обновления или это финальная версия?
пока есть некоторые идеи и желание их воплотить, будут и релизы. Ближайший - помимо обычного поиска совпадений внутри окна словаря добавлю поиск сверхдальних, расстояний больше размера словаря - что-то вроде srep'а, но все совпадения будут обрабатываться внутри все того же оптимального парсера, который парсит литералы и ближние дистанции. При этом можно будет задавать некий коэффициент отношения сжатия/памяти для распаковки. В итоге сжатие получается лучше, чем srep+lolz, либо отдельно lolz. Но за это нужно платить) Вы же давно мечтали, чтобы lolz на сжатии был еще медленнее, ну вот, скоро дождетесь :D
 

elit0101

Новичок
Счастливой Пасхи. @ProFrager, если я это понимаю, самое главное - объединить srep с lolz, но чтобы заголовки dds были сохранены. Может быть, просто добавление srep в lolz с дополнительными проверками сделает это, так как srep уже очень хорош. Я могу дать вам источники srep, если вы не можете их найти.
 

ProFrager

Знаток
Проверенный
Счастливой Пасхи
Спасибо. Принесу в жертву пару девственниц за твое здоровье :yes:

самое главное - объединить srep с lolz, но чтобы заголовки dds были сохранены
не в заголовках дело, а в том, что srep портит структурированность, что очень важно для lolz'а. В lolz детект данных сделан не по заголовкам. Можешь отрезать заголовок от DDS файла, он от этого не перестанет корректно детектироваться. Структурированность - это сохранение постоянного размера структуры данных. В хекс редакторе невооруженным глазом видно различие до srep'а и после него, например на DDS.

Может быть, просто добавление srep в lolz с дополнительными проверками сделает это, так как srep уже очень хорош
оригинальный srep не подойдет в данном случае, слишком многое пришлось бы менять. Проще создать с нуля свое, чем переделывать чужое. Поиск совпадений, менеджер памяти и модель для сжатия статистики уже готовы, осталось сделать только декомпрессию и долгими ночами все это дебажить, чтобы корректно работало.


algo | compr size | compr time | additional dec mem usage
dxt1 uncompressed data | 1 000 000 000 | |
srep:l64+lolz -d16 | 330 304 759 | 25m25s | 63 000kb
srep:l256+lolz -d16 | 322 454 237 | 28m00s | 54 000kb
srep:l512+lolz -d16 | 321 391 049 | 27m38s | 43 000kb
lolz -d16 -ldmf0 | 326 672 596 | 38m52s |
lolz -d16 -ldmf1 -ldl12 | 320 605 119 | 39m01s | 6 755kb
lolz -d16 -ldmf1 -ldl10 | 318 140 286 | 40m01s | 8 960kb
lolz -d16 -ldmf1 -ldl8 | 309 014 973 | 42m14s | 17 627kb
lolz -d16 -ldmf1 -ldl5 | 302 452 702 | 51m33s | 28 081kb
Время неточное, т.к. что-то тестировалось с высокой загрузкой процессора, а что-то на почти простаивающем. Дополнительная память на сжатие помимо обычной для lolz для -ldl5 (задает минимальный размер совпадения 2 ^ X) получается равной половине входного размера файла. с -ldl6 - четверть и т.д.
 

Ramiro Cruzo

Новичок
>Спасибо. Принесу в жертву пару девственниц за твое здоровье :yes:
:rofl:

Can we get the test data to run a few trials of our own?
 

elit0101

Новичок
Спасибо. Принесу в жертву пару девственниц за твое здоровье :yes:


не в заголовках ...
Я вижу, это было очень полезно, спасибо, у меня сложилось впечатление, что заголовки наиболее важны и что, если они отсутствуют, lolz будет обрабатывать его как сырое изображение.
Поэтому единственной полезной вещью является размножение в полном объеме. Кстати, еще один прирост в 10% впечатляет! Lolz уже около 7-14% по сравнению с lzma, этот новый может сделать это на 15-25%.
 
Сверху