uShell
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору lelik007 Число после ключа -m означает порядок применения метода, причём начинать с нуля необязательно - важен лишь порядок чисел. -m<n> и -mf применяются ко всем файлам. -m0=BCJ2 -m1=LZMA:29 означает "сжать методом BCJ2, а потом методом LZMA:29", причём, раз BCJ2 выдаёт четыре потока, LZMA:29 будет относиться к первому потоку, а остальные три будут "подклеены" без дополнительного сжатия. Единственное, я не знаю, произойдёт это до LZMA:29 (и тогда эти потоки тоже будут сжаты как часть целого) или после. Кто прояснит? Аналогично -m0=LZMA:29 -m1=BCJ2 приведёт к тому, что данные сначала будут сжаты LZMA, а потом отфильтрованы BCJ2. Смысла в этой операции нет никакого: BCJ2 сам по себе не сжимает данные, а только меняет их структуру, чтобы они лучше сжимались другим алгоритмом. Более того, в сжатом потоке BCJ2 просто не увидит структуру и полученные данные вряд ли вообще можно будет дожать. -m0=LZMA:29 -mf=BCJ2 означает "сжать методом LZMA:29, а перед сжатием применить фильтр BCJ2", причём порядок ключей роли не играет. LZMA:29 опять будет применён только к первому потоку BCJ2, но, в отличие от первого варианта, оставшиеся три потока будут сжаты предопределёнными методами. Сейчас это LZMA:20:lc0:lp2 для второго и третьего потоков, а поведение для четвёртого такое же, как и в первом варианте. Цитата: можно наверное BCJ2 явно не указывать? | Если BCJ2 не указан явно, он будет применён в зависимости от ключей -mx и -myx - смотрите справку. 7-Zip при этом будет упаковывать файлы в два (или более, если потребуются другие фильтры) этапа: сначала -m0 применится к неисполняемым файлам, а затем - к первому потоку BCJ2 для исполняемых файлов (потоки 2 и 3 будут сжаты, как в третьем варианте). Что важно, при этом меняется способ сортировки: для каждой группы на упаковку сортировка применяется отдельно. Цитата: Правильный пример сжатия с BCJ2 приведен в справке | У этого примера есть подвох: ничего не говорится про четвёртый поток BCJ2, который обычно можно поджать на несколько десятков байт при помощи -m4=lzma:lc8:pb0 -mb0s3:4. Проблема в том, что сжатие четвёртого потока не поддерживается некоторыми модулями 7-Zip (например, старыми SFX) - и по словам автора это сделано намеренно для упрощения кода. Так что пример действительно самый правильный, хотя и не полный. | Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 21:45 21-02-2023 | Исправлено: uShell, 21:47 21-02-2023 |
|