Jakie ustawienia należy zastosować podczas tworzenia plików 7zip, aby uzyskać maksymalną kompresję podczas kompresji plików PDF?

15

Jakie ustawienia należy zastosować podczas tworzenia plików 7zip, aby uzyskać maksymalną kompresję? Kompresuję dokumenty PDF zawierające zeskanowane obrazy. Zastanawiam się nad użyciem LZMA2, ale nie wiem, co ustawić w wielkości słownika, wielkości słowa itp. Czy LZMA lub PPMd byłyby lepszymi opcjami?

Muszę przesłać niektóre pliki (~ 200 MB) przez sieć, a prędkości przesyłania są tutaj bardzo wolne, więc chciałbym jak najbardziej skompresować dane. Zużyty czas procesora nie jest bardzo ważny.

EDYTOWAĆ

Oto, co otrzymałem po przetestowaniu różnych metod kompresji:

Rozmiar nieskompresowany wynosił: 25 462 686 B

Mój procesor to Intel Core 2 Due T8100 i mam 4GiB pamięci RAM.

Najlepszą kompresją był PeaZip wykorzystujący algorytm PAQ8O. Wynikowy rozmiar pliku to 19 994,325B. Zastosowano ustawienia poziomu kompresji: maksimum. Niestety szybkość kompresji wynosiła około 5 kB / s, więc kompresja danych zajęła ponad godzinę.

Następnie był eksperymentalny kompresor PAQ9O. Używając go, otrzymałem 20.126.660B po około 3 minutach kompresji. Niestety program jest tylko wierszem poleceń i niewiele innych programów korzysta z tego algorytmu kompresji. Zużywa również około 1,5 GB pamięci RAM przy używanych ustawieniach (a -9-c)

Potem był 7-Zip 9.15 beta (2010-06-20) przy użyciu LZMA2. Korzystając z niego, dostałem 20.518.802B w około 3 minuty. Zastosowano ustawienia rozmiaru słowa 273, rozmiaru słownika 64 MB, a do kompresji użyłem 2 wątków.

Wracając do mojego pierwotnego pytania: w moim przypadku bryła nie przyniosła zauważalnych rezultatów. Zwiększenie rozmiaru słowa dało pewne wyniki. Różnica między najwyższym rozmiarem słowa a najmniejszym wyniosła 115 260 B. Uważam, że takie oszczędności uzasadniają wysiłek potrzebny do wykonania dwóch niezbędnych kliknięć i zmiany rozmiaru słowa.

Próbowałem użyć innych algorytmów kompresji obsługiwanych przez 7zip i PeaZip, a one produkują pliki w rozmiarach od 19,8 Mb do 21,5 Mb.

W końcu doszedłem do wniosku, że podczas kompresji dokumentów PDF zawierających głównie obrazy wysiłek potrzebny do użycia egzotycznych algorytmów kompresji nie jest uzasadniony. Kompresja za pomocą LZMA2 w 7zip dała całkiem akceptowalne wyniki w jak najkrótszym czasie.

AndrejaKo
źródło
Czym różni się korzystanie z PeaZip? To tylko opakowanie GUI wokół 7zip i wielu innych narzędzi
Cole Johnson
@Cole „Cole9” Johnson Cóż, różnica polega na tym, że w moim przypadku użyłem „innych” narzędzi PeaZip, które nie posiadały wówczas GUI. Jeśli dobrze pamiętam, tylko PeaZip oferował algorytm PAQ8O z GUI.
AndrejaKo,

Odpowiedzi:

7

Zawartość plików PDF (tekst i obrazy) prawdopodobnie jest już skompresowana - więc nie będzie wiele do zyskania, próbując je ponownie skompresować.

afrazier
źródło
3
Więc nie. Zrobiłem trochę testów i wziąłem 24 MB plików PDF i skompresowałem je przy użyciu ustawień domyślnych. Rezultatem był plik 19 MiB. W moim przypadku te 5 MiB ma znaczenie w moim przypadku.
AndrejaKo,
1
Wygląda na to, że masz rację. Nie mogłem uzyskać wyników znacznie lepszych niż domyślne ustawienia 7zip, bez względu na to, co zrobiłem. Nadal jestem przekonany, że pewna kompresja jest lepsza niż żadna.
AndrejaKo,
3
Jeśli możesz zaoszczędzić tyle miejsca, prawdopodobnie można by wykonać pracę z samymi plikami PDF, aby zaoszczędzić prawie całe to miejsce bez 7-Zip. Podróż przez program Acrobat PDF Optimizer może zdziałać cuda.
afrazier
Zobacz odpowiedź usr - kompresję zastosowaną w PDF (zlib) można przywrócić, aby ją jeszcze bardziej skompresować (i zastosować ponownie przy rekonstrukcji). Często skutkuje to zmniejszeniem wielkości o około 50%
schnaader
@schnaader: To naprawdę interesujące. Widziałem i używałem narzędzi takich jak Acrobat's PDF Optimizer i MuPDF do modyfikowania plików PDF przy jednoczesnym zachowaniu ich widoczności, ale możliwość bezstratnej ich transformacji jest również bardzo cenna i może być wykorzystana z wielką korzyścią.
afrazier
8

Spróbuj wstępnie skompresować - najpierw dekompresuje już skompresowane dane w plikach PDF. Następnie 7z może wykonać swoją magię na nieskompresowanych danych.

Spróbuj także nanozipa, który zweryfikowałem jako bardzo skuteczny, ale bardzo wydajny (400 kb / s przy współczynnikach kompresji algorytmów PAQ).

usr
źródło
2

7za a -t7z -mx-9 -mfb = 258 -mpass = 15 nazwa pliku. 7z podkatalog

W razie potrzeby dostosuj pierwsze słowo w nazwie pliku wykonywalnego wiersza poleceń i dostosuj części po „-mpass = 15”, aby dostosować nazwę pliku i co powinno zawierać.

Ta odpowiedź nie jest specyficzna dla dokumentów PDF.
To używa LZMA, a nie PPM. Trzymałem się z dala od PPM, ponieważ istnieje zbyt wiele odmian, które nie są kompatybilne z innymi odmianami. LZMA wydaje się być bardziej stabilny, a kompatybilność jest szerzej obsługiwana. Dlatego trzymałem się z dala od PPM właśnie dlatego, że, jak powiedziałeś, moim zdaniem „wysiłek potrzebny do użycia egzotycznych algorytmów kompresji nie jest uzasadniony”.

TOOGAM
źródło
2
LZMA2 jest znacznie lepszy niż LZMA, ale służy (efektywnie) tylko w systemach 64-bitowych.
OMY,
-3

Kompresja LZMA jest najlepsza, ponieważ można utworzyć plik SFX lub pakiet MSI o wysokim stopniu kompresji. w twoim przypadku nie kompresujesz dużego pliku, więc różnica jest dość mała, szczególnie jeśli plik został skompresowany, np .: mp3 lub png

spróbuj wygrać łuk, jest bezpłatny i daje współczynnik kompresji Gret

nader
źródło