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

lolz test21a7

universal compressor

Метки:
  1. Новичок

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

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

    Регистрация:
    12 янв 2018
    Сообщения:
    15
    Симпатии:
    0
    Кажется, я был слишком быстр. Это сработало, потому что оно обходилось 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>?

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

    Регистрация:
    21 фев 2015
    Сообщения:
    12
    Симпатии:
    5
    Пол:
    Мужской
    elit0101 Use Fazip

    [External compressor:Lolz]
    header = 0
    unpackcmd = FAZip32 -i0 decompress:lolzx{:options} <stdin> <stdout>
     
    Последнее редактирование: 31 мар 2018
    elit0101 нравится это.
  5. Новичок

    Регистрация:
    12 янв 2018
    Сообщения:
    15
    Симпатии:
    0
    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.
     
  6. Пользователь

    Регистрация:
    23 июн 2017
    Сообщения:
    15
    Симпатии:
    16
    Пол:
    Мужской
    It should be lolz, not Lolz, fa is case sensitive afaik
     
    elit0101 и Simorq нравится это.
  7. Пользователь

    Регистрация:
    23 июн 2017
    Сообщения:
    15
    Симпатии:
    16
    Пол:
    Мужской
    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
     
    Последнее редактирование: 1 апр 2018
    elit0101 нравится это.
  8. Модератор Модераторы

    Регистрация:
    8 июл 2015
    Сообщения:
    96
    Симпатии:
    99
    Пол:
    Мужской
    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 нравится это.
  9. Пользователь

    Регистрация:
    23 июн 2017
    Сообщения:
    15
    Симпатии:
    16
    Пол:
    Мужской
    cls.ini isn't case sensitive, I told about the arc.ini settings he made for fazip though
     
    elit0101 нравится это.
  10. Новичок

    Регистрация:
    12 янв 2018
    Сообщения:
    15
    Симпатии:
    0
    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.
     
  11. Знаток R.G. Revenants

    Регистрация:
    16 июн 2011
    Сообщения:
    351
    Симпатии:
    693
    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 и Simorq нравится это.
  12. Новичок

    Регистрация:
    12 янв 2018
    Сообщения:
    15
    Симпатии:
    0
    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
     
    Последнее редактирование: 1 апр 2018
  13. Старожил

    Регистрация:
    21 фев 2015
    Сообщения:
    12
    Симпатии:
    5
    Пол:
    Мужской
    sergey3695 и elit0101 нравится это.
  14. Ветеран Модератор

    Регистрация:
    11 июн 2012
    Сообщения:
    432
    Симпатии:
    160
    Пол:
    Мужской
    ProFrager, будут ли обновления или это финальная версия?
     
  15. Новичок

    Регистрация:
    12 янв 2018
    Сообщения:
    15
    Симпатии:
    0
    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
     
    Последнее редактирование: 2 апр 2018
  16. Знаток R.G. Revenants

    Регистрация:
    16 июн 2011
    Сообщения:
    351
    Симпатии:
    693
    пока есть некоторые идеи и желание их воплотить, будут и релизы. Ближайший - помимо обычного поиска совпадений внутри окна словаря добавлю поиск сверхдальних, расстояний больше размера словаря - что-то вроде srep'а, но все совпадения будут обрабатываться внутри все того же оптимального парсера, который парсит литералы и ближние дистанции. При этом можно будет задавать некий коэффициент отношения сжатия/памяти для распаковки. В итоге сжатие получается лучше, чем srep+lolz, либо отдельно lolz. Но за это нужно платить) Вы же давно мечтали, чтобы lolz на сжатии был еще медленнее, ну вот, скоро дождетесь :D
     
    Ckil, Hunter и Mickey1s нравится это.
  17. Новичок

    Регистрация:
    12 янв 2018
    Сообщения:
    15
    Симпатии:
    0
    Счастливой Пасхи. @ProFrager, если я это понимаю, самое главное - объединить srep с lolz, но чтобы заголовки dds были сохранены. Может быть, просто добавление srep в lolz с дополнительными проверками сделает это, так как srep уже очень хорош. Я могу дать вам источники srep, если вы не можете их найти.
     
  18. Знаток R.G. Revenants

    Регистрация:
    16 июн 2011
    Сообщения:
    351
    Симпатии:
    693
    Спасибо. Принесу в жертву пару девственниц за твое здоровье :yes:

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

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

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

    Регистрация:
    8 июл 2015
    Сообщения:
    96
    Симпатии:
    99
    Пол:
    Мужской
    >Спасибо. Принесу в жертву пару девственниц за твое здоровье :yes:
    :rofl:

    Can we get the test data to run a few trials of our own?
     
    sergey3695 нравится это.
  20. Новичок

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

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