insorg
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Нашёл вот такую дичь, которой сейчас стало модно делать репаки игр https://krinkels.org/resources/lolz.264/ Цитата: lolz - компрессор, созданный на основе адаптивного rans, подходящий для любых данных, но наилучшие результаты показывает на структурированных данных. Сделаны специальные модели для dxt текстур и raw графики (в отдаленном будущем, возможно, и для raw аудио появится). Имеется возможность сжимать и разжимать многопоточно. В lolz имеется довольно много опций, но некоторая часть из них уже не работает из-за отсутствия необходимости в них, однако они пока не убраны из кодека. Опции по умолчанию в большинстве случаев оптимальны. Краткое описание опций: Опции детекта данных: -dt[0..1] - включает/выключает детект pos_ctx/dxt/raw. никаких заголовков, все детектится на основе анализа статистики данных. По умолчанию: -dt1; -dtp[0..1] - включает/выключает передачу последующим блокам в детекте статистику от предыдущих блоков. По умолчанию: -dtp1; -dtb[0..1] - включает/выключает перебор всех вариантов вне зависимости от эвристик. По умолчанию: dtb0; -dto[0..1] - включает/выключает детект лучшего позиционного o1 контекста. По умолчанию: -dto1; -dtm[0..1] - включает/выключает детект мультимедиа raw графики. По умолчанию: -dtm1; -dtw[0..1] - включает/выключает детект ширины для raw графики и dxt текстур; -dtd[0..1] - включает/выключает детект dxt текстур;​ Опции многопотока: -mtt[0..1] - при многопоточной обработке указывает используемый режим работы. При 0 размер словаря должен быть как минимум в 2 раза больше размера блока. В этом режиме данные для каждого потока будут загружаться чередуясь размером в блок. В этом режиме в большинстве случаев можно добиться лучшего сжатия, чем во втором, однако для распаковки потребуется такое число потоков, как и при сжатии. При 1 каждый блок сжимается отдельно, без зависимостей от соседних данных, соответственно сжатие тут получается обычно хуже, чем в первом режиме, но количество потоков на распаковку можно указывать любое. Именно для этого режима применяются опции из cls.ini MaxThreadsUsage и MaxMemoryUsage. По умолчанию: -mtt0; -mt[1..16] - задает число потоков для обработки. При -mt1 и -mtt0 получается обычное последовательное сжатие без потерь в сжатии на разделение потока на блоки. По умолчанию: -mt1; -mtb[2..512] - задает размер блока в Мб. При -mt1 -mtt0 так же играет значение, но минимальное. И больше - не значит лучше. Обычно для -mtt0 оптимальное значение порядка 32-64мб, соответственно размер словаря должен быть более, чем в 2 раза больше. Для режима mtt1 размер словаря должен быть не более размера блока;​ Основные опции: -d[16..2032] - размер словаря в Мб. По умолчанию: -d64; -tt[1..256] - количество рассматриваемых путей в оптимальном парсере. Очень сильно влияет на скорость и степень сжатия, но не на распаковку. Не стоит задавать больше 16, уверяю, оно того не стоит. По умолчанию: -tt4; -oh[8..14] - задает максимальное количество байт, которое оптимальный парсер обработает за раз (2^X). По умолчанию: -oh12; -os[0..-oh] - задает минимальное количетсво байт, которое парсер обработает за раз (2^X). По умолчанию: -os8; -fba[0..4096] - задает размер минимального совпадения, при котором парсер не станет сильно утруждаться в расчетах. Прилично ускоряется сжатие (раза в 2) с небольшой потерей сжатия. При 0 эти упрощения отключаются. По умолчанию: -fba256; -fbb[0..4096] - ЭТА ОПЦИЯ НА ДАННЫЙ МОМЕНТ НЕ РАБОТАЕТ. Задавала еще большие упрощения; -al[0..1] - включает/выключает просчет цены литерала даже при rep0 совпадении. По умолчанию: -al1; -x[0..2] - включает медленные режимы работы парсера с просчетом (почти) всех длин найденного матча, а так же вариантов match+lit+rep0match. Очень медленно и беспощадно. А выгода очень небольшая. Проще -tt добавить; По умолчанию: -x0;​ Опции поиска совпадений (matchfinder): -rt[0..2] - ЭТА ОПЦИЯ НА ДАННЫЙ МОМЕНТ НЕ РАБОТАЕТ. Задавала тип matchfinder'а - lz, rolz либо гибридный режим, однако rolz не оправдал ожиданий и все изменения я проводил без его учета его, поэтому он сейчас не работает; По умолчанию: -rt0; -mc[2..1023] - Задает максимальное количество обходов бинарного дерева совпадений, после которого совпадения для данного положения больше не ищутся; По умолчанию: -mc128;​ Опции моделей: -cm[0..1] - включает/выключает простой context mixer в некоторых критических местах, который смешивает по паре моделей в каждом месте. При включении улучшает сжатие, но замедляется распаковка. По умолчанию: -cm1; -bc[0..8] - задает уровень влияния предыдущего байта на миксер; По умолчанию: -bc4; -lm[0..4] - ЭТА ОПЦИЯ НА ДАННЫЙ МОМЕНТ НЕ РАБОТАЕТ. Задавала тип "элементарного" литерала. Сложные высоко-порядковые модели с cm показали себя не очень, поэтому их забросил, так же как и rolz. По умолчанию: -lm0; -blo[0..8] - задает степень влияния предыдущего байта на кодирование верхней части литерала. По умолчанию: -blo8; -bll[0..8] - задает степень влияния предыдущего байта на кодирование нижней части литерала. По умолчанию: -bll8; -blr[0..8] - задает степень влияния rep0lit байта на кодирование верхней части литерала. По умолчанию: -blr4; -bm[0..8] - задает степень влияния rep0lit байта на кодирование флага типа совпадения. По умолчанию: -bm4; -pc[0..4] - задает позиционный контекст для всех операций кодирования. Автоматически игнорируется при включенном детекте. По умолчанию: -pc2; -dmXY (X[0..3], Y[0..4]) - задает модель для кодирования пар цветов (X) и пар альфа-канала(Y). При максимальном значении каждого параметра используется адаптивное переключение между моделями, при чем скорость распаковки уменьшается, но и сжатие в большинстве случаев лучше. По умолчанию: -dm34; -gmXY (X[0..2], Y[0..1]) - X - задает модель для кодирования raw графики. при максимальном значении включается адаптивное переключение между моделями. Однако в данном случае редко когда можно увидеть выигрыш у адаптивного режима. В основном лидирует 0 режим, но его распаковка в 2 раза медленнее 1го режима. Y - включает обновление статистики моделей когда они не использовались (например было длинное совпадение). Для X0 и X1 обычно дает небольшой выигрыш в сжатии, но скорость падает раза в 2(все зависит от данных). В общем самым оптимальным является -gm00, он же - и режим по умолчанию; | Только скачать доступа нет чтоб потестить. Есть у кого? |