-m (Metóda) prepínač 7zip

Určuje kompresnú metódu.

Syntax

-m<parametre_metody>

Formát tohto prepínača závisí od typu archívu.

Zip

Parameter Predvolené Popis
x=[0 | 1 | 3 | 5 | 7 | 9 ] 5 Nastavuje úroveň kompresie.
m={MethodID} Deflate Nastavuje metódu: Copy, Deflate, Deflate64, BZip2, LZMA.
fb={NumFastBytes} 32 Nastavuje počet tzv. rýchlych bajtov pre kódovanie Deflate .
pass={NumPasses} 1 Nastavuje počet prechodov pre kódovanie Deflate.
d={Size}[b|k|m] 900000 Nastavuje veľkosť slovníka pre BZip2
mt=[off | on | {N}] on (zapnuté)
Nastavuje viacvláknový mód.
em={EncryptionMethodID} ZipCrypto Nastavuje metódu šifrovania: ZipCrypto, AES128, AES192, AES256
tc=[off | on] off (vypnuté)
Uloží časové razítka NTFS pre súbory: čas zmeny, čas vytvorenia, čas posledného prístupu.
cl=[off | on] off (vypnuté) Použitie kódovej stránky v menách súborov.
cu=[off | on] off (vypnuté) Použitie kódovania UTF-8 v menách súborov, ktoré neobsahujú ASCII symboly.

V predvolenom stave (ak nie sú nastavené prepínače cl a cu) 7-Zip použije UTF-8 kódovanie iba v menách súborov, ktoré obsahujú symboly, ktoré nepodporuje lokálna kódová stránka.

x=[0 | 1 | 3 | 5 | 7 | 9 ]

Nastavuje úroveň kompresie. x=0 znamená režim kopírovania (bez kompresie).

Nastavenia Deflate / Deflate64:

Úroveň Počet
rýchlych
bajtov
Počet
prechodov
Popis
1 32 1 Najrýchlejší
3 Rýchly
5 Normálny
7 64 3 Maximálny
9 128 10 Ultra

x=1 a x=3 pri metóde Deflate nastavujú rýchly mód kompresie.

Nastavenia BZip2:

Úroveň Slovník Počet
prechodov
Popis
1 100000 1 Najrýchlejší
3 500000 Rýchly
5 900000 Normálny
7 2 Maximálny
9 7 Ultra
fb={NumFastBytes}

Nastavuje počet rýchlych bajtov pre kódovanie Deflate/Deflate64. Môže to byť hodnota v rozsahu od 3 po 258 (257 pri Deflate64). Väčšia hodnota zvyčajne dáva o trochu lepší kompresný pomer a predĺži proces komprimovania. Vysoká hodnota parametra rýchle bajty môže významne zvýšiť kompresný pomer v prípade, keď sa v súbore opakujú dlhé sekvencie bajtov.

pass={NumPasses}

Nastaví počet prechodov pre kódovanie Deflate. Hodnota môže byť v rozsahu od 1 do 15 pri Deflate a od 1 do 10 pri BZip2. Vysoká hodnota zvyčajne dáva o trošku lepší kompresný pomer a predĺži čas komprimovania.

d={Size}[b|k|m]

Nastavuje veľkosť slovníka pre kódovanie BZip2. Veľkosť musí byť udaná v bajtoch, kilobajtoch alebo megabajtoch. Maximálna hodnota veľkosti slovníka je 900000b. Ak nezadáme symbol z množiny [b|k|m], veľkosť slovníka sa vypočíta DictionarySize = 2^Size bajtov.

mt=[off | on | {N}]

Nastaví viacvláknový mód. Ak máme viacprocesorový alebo viacjadrový systém, môžeme rýchlosť zvýšiť pomocou tohto prepínača. Táto možnosť sa uplatní iba pri komprimovaní (s ľubovoľnou metódou) a rozbaľovaní BZip2. Každé vlákno vo viacvláknovom móde používa 32 MB z RAM na vyrovnávaciu pamäť. Ak zadáte {N}, 7-Zip sa pokúsi použiť N vlákien.

GZip

GZip používa rovnaké parametre ako Zip, ale pri GZip kompresii je možné použiť iba metódu Deflate.

BZip2

Parameter Predvolené Popis
x=[1 | 3 | 5 | 7 | 9 ] 5 Nastaví úroveň kompresie.
pass={NumPasses} 1 Nastaví počet prechodov pre kódovanie Bzip2.
mt=[off | on | {N}] on Nastaví viacvláknový mód.
x=[1 | 3 | 5 | 7 | 9 ]

Nastaví úroveň kompresie.

Úroveň Počet
prechodov
Popis
5 1 Predvolená metóda kompresie.
7 2 Maximálna metóda kompresie.
9 7 Ultra metóda kompresie.
pass={NumPasses}

Nastaví počet prechodov. Hodnota môže byť v rozsahu od 1 do 10. Predvolené hodnoty sú 1 - normálny mód, 2 - maximálny mód, 7 ultra mód  Vyššia hodnota zvyčajne dáva o trošku lepší kompresný pomer a predĺži čas komprimovania. 

mt=[off | on | {N}]

Nastaví viacvláknový mód. Ak máme viacprocesorový alebo viacjadrový systém, môžeme rýchlosť zvýšiť pomocu tohto prepínača. Ak zadáte {N}, napríklad mt=4, 7-Zip sa pokúsi použiť 4 vlákna.

7z

Parameter Predvolené Popis
x=[0 | 1 | 3 | 5 | 7 | 9 ] 5 Nastavuje úroveň kompresie.
s=[off | on | [e] [{N}f] [{N}b | {N}k | {N}m | {N}g] on (zapnuté)
Nastavuje solid mód.
f=[off | on] on (zapnuté) Zapne alebo vypne filtre kompresie pre spustiteľné súbory.
hc=[off | on] on (zapnuté) Zapne alebo vypne komprimovanie hlavičky.
he=[off | on] off (vypnuté) Zapne alebo vypne šifrovanie hlavičky.
b{C1}[s{S1}]:{C2}[s{S2}]   Nastaví previazanie medzi kódovačmi.
{N}={MethodID}[:param1][:param2][..] LZMA Nastaví metódu: LZMA, PPMd, BZip2, Deflate, BCJ, BCJ2, Copy.
mt=[off | on | {N}] on (zapnuté) Nastaví viacvláknový mód.
tc=[off | on] off (vypnuté) Uloží časovú pečiatku vytvorenia.
x=[0 | 1 | 3 | 5 | 7 | 9 ]

Nastavuje úroveň kompresie.

Úroveň Metóda Slovník Rýchle bajty
Vyhľadávač zhody Filter Popis
0 Copy         Bez kompresie.
1 LZMA 64 KB 32 HC4 BCJ Najrýchlejšia kompresia.
3 LZMA 1 MB 32 HC4 BCJ Rýchla kompresia.
5 LZMA 16 MB 32 BT4 BCJ Normálna kompresia.
7 LZMA 32 MB 64 BT4 BCJ Maximálna kompresia.
9 LZMA 64 MB 64 BT4 BCJ2 Ultra kompresia.
s=[off | on | [e] [{N}f] [{N}b | {N}k | {N}m | {N}g)]

Zapne alebo vypne solid mód. V predvolenom stave je mód zapnutý s=on. Pri móde solid sú súbory zoskupené do jedného. Zvyčajne sa tým zlepší kompresný pomer.

e Použije oddelené solid bloky pre každú novú príponu
{N}f Nastaví obmedzenie počtu súborov v jednom solid bloku
{N}b | {N}k | {N}m | {N}g Nastaví obmedzenie pre celkovú veľkosť solid bloku v bajtoch

Toto sú predvolené limity pre veľkosť solid blokov:

Úroveň kompresie Veľkosť solid bloku
Kópia 0 B
Najrýhlejšia 16 MB
Rýchla 128 MB
Normálna 2 GB
Maximálna 4 GB
Ultra 4 GB

Obmedzenie veľkosti solid blokov síce zníži kompresný pomer, ale má nasledujúce výhody:

  • Zníži možné straty, ak sa poškodí archív.
  • Skráti čas potrebný na rozbalenie skupiny súborov (alebo jedného súboru).

Aktuálna verzia 7-Zip nepodporuje aktualizáciu solid archívov, v prípade potreby aktualízácie je nutné znova skomprimovať celé solid bloky.

Príklad:

        s=100f10m

nastaví solid mód so 100 súbormi a 10 MB obmedzením na jeden solid blok.

f=[off | on]

Zapne alebo vypne kompresné filtre pre spúšťateľné súbory: dll, exe, ocx, sfx, sys. V móde Ultra použije filter BCJ2 a v ostatných módoch použije filter BCJ. Predvolená hodnota je f=on (zapnuté).

hc=[off | on]

Zapne alebo vypne kompresiu hlavičky. Predvolený režim je hc=on (zapnuté). Ak je zapnuté komprimovanie hlavičky, niektoré časti hlavičky archívu budú skomprimované metódou LZMA.

he=[off | on]

Zapne alebo vypne šifrovanie hlavičky archívu. Predvolený režim je he=off (vypnuté).

{N}

Nastavuje poradie metód. Používa sa tiež na priradenie parametrov k metódam. Čísla musia začínať od 0. Metóda, ktorá nesie menšie číslo, sa použije skôr.

b{C1}[s{S1}]:{C2}[s{S2}]

Previaže výstupný tok S1 z kódovača C1 so vstupným tokom S2 kódovača C2. Ak nie je zadané číslo toku, použije sa tok s číslom 0.

Kódovač má zvyčajne jeden vstupný a jeden výstupný tok dát. V programe 7z môžu niektoré kódovače mať viacero vstupných a výstupných tokov.

Napríklad kódovanie BCJ2 má jeden vstupný tok a štyri výstupné toky.

mt=[off | on | {N}]

Nastaví viacvláknový mód. Ak máte viacjadrový alebo viacprocesorový systém, môžete to využiť pomocou tohto prepínača. 7-Zip podporuje viacvláknový režim iba pri LZMA kompresii a BZip2 kompresii / rozbaľovaní. Ak zadáte {N}, napríklad mt=4, 7-Zip sa pokúsi použiť 4 vlákna. LZMA kompresia môže použiť najviac 2 vlákna.

{N}={MethodID}[:param1][:param2] ... [:paramN]

Nastaví metódu kompresie. Môžete použiť ktorékoľvek číslo metódy. Predvolenou metódou je LZMA.

Parametre musia byť v jednom z nasledujúcich tvarov:

  • {MenoParametra}={HodnotaParametra}.
  • {MenoParametra}{HodnotaParametra}, ak {HodnotaParametra} je číslo a {MenoParametra} neobsahuje číslo.

Podporované metódy:

Metóda Popis
LZMA Algoritmus založený na LZ algoritme
PPMd Algoritmus PPMdH od Dmitryho Shkarinsa s malými zmenami
BZip2 BWT algoritmus
Deflate LZ+Huffman
Copy Bez kompresie

Podporované filtre:

Metóda Popis
BCJ konvertor pre spustiteľné súbory x86
BCJ2 konvertor pre spustiteľné súbory x86 (verzia 2)
ARM konvertor pre spustiteľné súbory ARM (little endian)
ARMT konvertor pre spustiteľné súbory ARM Thumb (little endian)
IA64 konvertor pre spustiteľné súbory IA-64
PPC konvertor pre spustiteľné súbory PowerPC (big endian)
SPARC konvertor pre spustiteľné súbory SPARC

Filtre zvyšujú kompresný pomer niektorých typov súborov. Filtre musia byť použité spolu s niektorou z kompresných metód (napríklad BCJ + LZMA).

LZMA

LZMA je algoritmus založený na Lempel-Ziv algoritme. Umožňuje veľmi rýchle rozbaľovanie (10-20-krát rýchlejšie ako pri kompresii). Požiadavky na pamäť pri kompresii a rozbaľovaní sú tiež rôzne (pozrite prepínač d={Size}[b|k|m] ).

Parameter Predvolené Popis
a=[0|1] 1 Nastaví mód kompresie
d={Size}[b|k|m] 24 Nastaví veľkosť slovníka
mf={MF_ID} bt4 Nastaví vyhľadávač zhody
fb={N} 32 Nastaví počet rýchlych bajtov
mc={N} 32 Nastaví počet cyklov pre vyhľadávač zhody
lc={N} 3 Nastaví počet kontextových bitov znaku - [0, 8]
lp={N} 0 Nastaví počet bitov z aktuálneho znaku  - [0, 4]
pb={N} 2 Nastaví počet bitov z aktuálne pozície  - [0, 4]
a=[0|1]

Nastavuje mód kompresie: 0 = rýchla, 1 = normálna. Predvolená hodnota je 1.

d={Size}[b|k|m]

Nastavuje veľkosť slovníka pre LZMA. Musíte zadať veľkosť v bajtoch, kilobajtoch alebo megabajtoch. Maximálna veľkosť slovníka je 1 GB = 2^30 bajtov. Predvolená hodnota pre LZMA je 24 (16 MB) v normálnom móde, 25 (32 MB) v maximálnom móde (-mx=7) a 26 (64 MB) v ultra móde (-mx=9). Ak nezadáte žiadny symbol z množiny [b|k|m], veľkosť slovníka sa vypočíta spôsobom DictionarySize = 2^veľkosť bajtov. Pri rozbaľovaní súboru skomprimovaného metódou LZMA so slovníkom veľkosti N, je potrebných približne N bajtov voľnej pamäte (RAM).

mf={MF_ID}

Nastavuje Vyhľadávač zhody pre LZMA. Predvolená metóda je bt4. Algoritmus skupiny hc* neposkytuje dobrý kompresný pomer, ale je často veľmi rýchly v kombinácii s rýchlym módom (a=0). Požiadavky na pamäť sú závislé od veľkosti slovníka (parameter "s" v tabuľke nižšie).

MF_ID Pamäť Popis
bt2 s*9.5 + 4 MB Binárny strom s 2 bajtovým hashovaním.
bt3 s*11.5 + 4 MB Binárny strom s 3 bajtovým hashovaním.
bt4 s*11.5 + 4 MB Binárny strom so 4 bajtovým hashovaním.
hc4 s*7.5 + 4 MB Hashovanie vetiev 4 bajtovým hashovaním.

Poznámka: Váš operačný systém potrebuje určité množstvo fyzickej pamäte pre vnútorné potreby. Preto je potrebné ponechať mu aspoň 32MB nevyužitej fyzickej pamäte.

fb={N}

Nastavuje počet rýchlych bajtov pre LZMA. Hodnota môže byť v rozsahu od 5 do 273. Predvolená hodnota je 32 pre normálny mód a 64 pre maxímálny a ultra mód. Väčšia hodnota zvyčajne spôsobí o trochu lepší kompresný pomer a spomalenie kompresie.

mc={N}

Nastavuje počet cyklov (prechodov) pre vyhľadávač zhody. Hodnota môže byť v rozsahu od 0 do 1000000000. Predvolená hodnota je (16 + počet_rýchlych_bajtov / 2) pre vyhľadávať BT* a (8 + počet_rýchlych_bajtov / 4) pre vyhľadávač HC4. Ak zadáte mc=0, LZMA použije predvolenú hodnotu. Vyššia hodnota spôsobí o trochu  lepší kompresný pomer a spomalí proces kompresie. Napríklad mf=HC4 a mc=10000 môže poskytnúť rovnaký kompresný pomer ako mf=BT4.

lc={N}

Nastavuje počet kontextových bitov znaku (najvyššie bity predchádzajúceho znaku). Hodnota môže byť v rozsahu od 0 po 8. Predvolená hodnota je 3. Niekedy lc=4 dáva lepšie výsledky pri veľkých súboroch.

lp={N}

Nastavuje počet bitov z aktuálneho znaku (najnižšie bity na aktuálnej pozícii znaku). Hodnota môže byť v rozsahu od 0 po 4. Predvolená hodnota je 0. Prepínač lp sa hodí pri opakujúcich sa dátach, keď perióda je 2^hodnota (kde lp=hodnota). Napríklad pre 32-bitové (4 bajtové) periodické dáta môžete použiť lp=2. Ak zmeníte prepínač lp, je častokrát lepšie nastaviť lc=0.

pb={N}

Nastavuje počet bitov z aktuálnej pozície (najnižšie bity na aktuálnej pozícii). Hodnota môže byť v rozsahu od 0 po 4. Predvolená hodnota je 2. Prepínač pb sa hodí pri opakujúcich sa dátach, keď períóda je 2^hodnota (kde lp=hodnota).

PPMd

PPMd je varianta PPN algoritmu. Tento algoritmus je založený hlavne na zdrojovom kóde Dmitryho Shkarinsa. PPMd poskytuje veľmi dobrý kompresný pomer pre textové súbory. Rýchlosť kompresie je rovnako rýchla ako rýchlosť rozbaľovania. Pamäťové nároky na kompresiu a rozbalenie sú tiež rovnaké.

Parameter Predvolené Popis
mem={Size}[b|k|m] 24 Nastaví veľkosť použitej pamäte pre PPMd.
o={Size} 6 Nastaví poradie modelov PPMd.
mem={Size}[b|k|m]

Nastavuje veľkosť použitej pamäte pre PPMd. Musíte určiť veľkosť v bajtoch, kilobajtoch alebo megabajtoch. Maximálna hodnota je 2GB = 2^31 bajtov. Predvolená hodnota je 24 (16MB). Ak nezadáte žiadny symbol z množiny [b|k|m], veľkosť pamäte sa určí spôsobom (2^veľkosť) bajtov. PPMd používa rovnakú veľkosť pamäte na kompresiu aj na rozbaľovanie.

o={Size}

Nastavuje poradie modelov pre PPMd. Veľkosť musí byť v rozsahu [2,32]. Predvolená hodnota je 6.

BCJ2

BCJ2 je konvertor vetiev pre 32 bitové spustiteľné súbory x86 (verzia 2). Konvertuje niektoré vetvy inštrukcií, čím zvýši možnosť lepšej kompresie.

Kódovanie BCJ2 má jeden vstupný tok a štyri výstupné dátové toky:

  • s0: hlavný tok. Požadovaný pre kompresiu.
  • s1: tok pre konvertované hodnoty CALL. Požadovaný pre kompresiu.
  • s2: tok pre konvertované hodnoty JUMP. Požadovaný pre kompresiu.
  • s3: tok služieb. Už je komprimovaný.

Ak je použité LZMA, veľkosť slovníka pre tok s1 a s2 môže byť oveľa menší (512 KB vo väčšine prípadov postačuje) ako veľkosť slovníka pre hlavný dátový tok s0.

Príklady

7z a -tzip archiv.zip *.jpg -mx0

pridá súbory s príponou .jpg do archívu archiv.zip bez použitia kompresie.

7z a -t7z archiv.7z *.exe *.dll -m0=BCJ -m1=LZMA:d=21 -ms -mmt

pridá súbory s príponou .exe a .dll do solid archívu archiv.7z pričom použije metódu LZMA s 2 MB slovníkom a BCJ konvertorom. Kompresia bude používať optimalizáciu pre viacero vlákien.

7z a -t7z archiv.7z *.exe *.dll -m0=BCJ2 -m1=LZMA:d23 -m2=LZMA:d19 -m3=LZMA:d19  -mb0:1 -mb0s1:2 -mb0s2:3

pridá súbory s príponou .exe a .dll do archívu archiv.7z pričom použije BCJ2 konvertor, LZMA s 8 MB slovníkom pre hlavný výstupný tok(s0), a LZMA s 512 KB slovníkom pre výstupné toky BCJ2 s1 a s2.

7z a -t7z archiv.7z *.txt -m0=PPMd

pridá súbory s príponou .txt do archívu archiv.7z pričom použije metódu PPMd.

Príkazy, ktoré môžu použiť tento prepínač

a (Add – Pridať), d (Delete – Odstrániť)u  (Update – Aktualizovať)

Pozrite tiež

Prepínač: -t (Typ archívu)