Alat baris perintah 7z memungkinkan Anda menentukan beberapa metode kompresi , misalnya:
# 7-zip archive type, strongest (9) compression, methods PPMd, BCJ2, LZMA2
$ 7z a -t7z -mx=9 -m0=PPMd -m1=BCJ2 -m2=LZMA2 myarchive.7z somefile.xml
Semua metode digunakan dengan cara tertentu, atau setidaknya ditentukan dalam metadata:
$ 7z l -slt myarchive.7z
7-Zip [64] 9.22 beta Copyright (c) 1999-2011 Igor Pavlov 2011-04-18
Listing archive: myarchive.
7z
--
Path = myarchive.7z
Type = 7z
Method = LZMA2 PPMD BCJ2
[..]
----------
Path = somefile.xml
[..]
Method = PPMD:o32:mem192m BCJ2 LZMA2:48m
Block = 0
Itu tidak muncul untuk menjalankan file melalui semua tiga metode, memilih yang terbaik. Sebaliknya, itu tampaknya selalu memilih yang pertama, karena mengubah urutan metode mempengaruhi ukuran file secara signifikan.
Sekalipun saya menambahkan banyak file, seperti satu file XML (PPMd menghasilkan kompresi terbaik) dan satu file biner (LZMA2), masih mencantumkan semua metode untuk kedua file, dan tampaknya tidak beralih secara dinamis per file.
Bahkan, dokumentasi secara khusus mengatakan bahwa "Anda dapat menggunakan sejumlah metode.", Tetapi tidak mengatakan karenanya .
Apa yang saya coba capai adalah arsip "coba beberapa metode, pilih yang mana yang terbaik" arsip. Tentu saja saya dapat secara manual mencapai ini dengan sedikit skrip, tetapi mungkin, metode kompresi chaining harus melakukan hal itu?
sumber
Jawaban:
Secara umum, data terkompresi tidak dapat dikompres (lebih lanjut) secara efisien. Setelah metode kompresi pertama diterapkan, ukuran file tidak dapat dikurangi secara signifikan.
The
-mN=X
terutama untuk menentukan filter (diambil dari bantuan Windows file):Juga dari file bantuan, contoh lanjutan yang meningkatkan beberapa aliran output dari filter BCJ2:
sumber
Tampaknya Anda dapat menerapkan filter secara berurutan.
Posting ini dari tahun lalu memiliki penjelasan yang bagus:
Apa arti angka setelah saklar 7-zip's -m?
sumber