7-Zip, a jego „fabryczna” kompresja

Dość mocna zajawka wzięła mnie by porównać sobie stopnie kompresji plików, przy użyciu jednego narzędzia – programu 7-zip. Jakiś czas temu poruszałem temat Najlepszy „paker” plików, wtenczas porównałem dwa programy archiwizujące:

  1. 7-zip
  2. WinRar

Bezapelacyjnie wygrał wówczas 7-zip, czy to ze względu na stopień kompresji przy użyciu flagowego rozszerzenia (7z), czy to również ze względu na cenę, gdyż jest on darmowy. Obecnie miałem taką „rozkminkę”, że skoro program ten wygrał i de facto jestem jego użytkownikiem do dłuższego czasu, to nasuwały mi się pewne pytania:

  • przy użyciu jakiego rozszerzenia zyskuję najlepszy stopień kompresji
  • zachowując tym samym najkrótszy czas, który muszę poświęcić na spakowanie pliku/ów
  • jak i również, jakie formaty plików opłaca się kompresować, a jakie nie (wiadome, że nie wszystko, co możliwe sprawdzałem)

Do testu użyłem oczywiście najnowszej stabilnej wersji programu 7-zip, oraz podstawowych ustawień do kompresji (przestawiałem tylko stopień kompresji i rozszerzenie). Sam test opieram na użyciu 4 rozszerzeń:

  1. Zip;
  2. 7z;
  3. BZip2;
  4. GZip.

Jaki jest najlepszy, jaki najgorszy… co warto, czego nie. Mam nadzieję, że jako tako dowiodłem tego, a na pewno zaspokoiłem swą własną ciekawość. Tak, zdaję sobie poniekąd sprawę, że „nie opłaca się czegoś takiego robić, bo to bez sensu i w ogóle ą, ę…„, czy po prostu (#pececik @ irc.freenode.net):

17:40 < alienek> na bloga wpis jakis? czy po co ci to
17:41 < inzaghi89> no na bloga
17:46 <@PiotrLegnica> bez sęsu ;p
17:46 < inzaghi89> ^^ no pewno
17:46 < inzaghi89> z czystej ciekawości chciałem to sprawdzić, a przy okazji opiszę to :D
17:46 < inzaghi89> może sie dyskusja wywinie jakaś :)
17:47 <@PiotrLegnica> http://www.maximumcompression.com/index.html
17:47 <@PiotrLegnica> nuff said

No ale… wziąłem się, zrobiłem i publikuję.

Na końcu wpisu znaleźć można plik PDF zawierający „roboczą” tabelkę porównującą stopnie kompresji plików dla poszczególnych rozszerzeń i stopni kompresji. Bezapelacyjnie – ponownie zresztą uważam, że wygrywa to zmaganie 7z, aczkolwiek mam co do i niego pewne zastrzeżenia. Chwilę minęło zanim doszedłem do ładu z tym, jak chcę przekazać te informacje, bo wyjść miałem kilka (aż dwa):

  1. przedstawię po kolei stopnie kompresji i rodzaj archiwów;
  2. będę opisywał po kolei rozszerzenia plików, które kompresowałem, a na koniec analiza.

Bez znaczenia, co Wy uważacie za bardziej słuszne, postanowiłem iść za głosem rozsądku i wybrać opcję 1.

Pragnę nadmienić jeszcze, że w każdym z plików  tekstowych: DOC, ODT oraz TXT użyłem dokładnie tego samego tekstu. Jest to tekst „Lorem ipsum…” powielony… bardzo powielony. W przypadku pozostałych plików są to wyciągnięte gdzieś z dysku pliki, a WAV jest zrobiony z pliku FLAC. Nie pytajcie, dlaczego wybrałem te/tylko te rozszerzenia. Jeśli chcecie, mogę poświęcić czas na inne, ale zaproponujcie coś.

7z i jego stopnie kompresji prezentują

Zacząłem od flagowego archiwa programu 7-zip. W całym teście brałem generalnie pod uwagę jedynie trzy stopnie kompresji – najszybszy, normalny, ultra. Z racji tego, że testy rozpoczynałem od najszybszej kompresji, a kończyłem zawsze na ultra, tak i od najszybszego zacznę swe wywody.

FLAC skompresowanym jest i skompresować się nie da

Archiwum zostało utworzone szybko, a co można wywnioskować z wyników – efektownie. W przypadku choćby najszybszej kompresji udało się utrzeć „rywalom” nosa. W każdym stopniu kompresji, dla każdego z testowanych przeze mnie pliku 7z wygrywał, no… jednak nie dla każdego. Ku mojemu zdziwieniu okazało się, że 7z nie zdaje się w roli archiwizera plików FLAC, ku mojemu zdziwieniu również okazało się, że te pliki już są skompresowane, dlaczego się zdziwiłem? Bo żyłem w przekonaniu, że FLAC, to taki lepszy WAV, a tu proszę, różnica jest i to duża, bo to pierwsze już jest skompresowane. Co ciekawsze również, jedynie 7z w żadnym stopniu kompresji nie zaradził sobie z jakimkolwiek pomniejszeniu pliku FLAC, pozostali rywale, co prawda nie byli o wiele lepsi, ale udało im się w stopniu „ultra” nieco pomniejszyć plik. W pozostałych stopniach kompresji, skompresowany plik FLAC zajmował więcej miejsca niż przed. Wprawdzie są to minimalne różnice, ale są!

DOCobyła tekstowa

Zacząłem co prawda od opisywania FLAC, zamiast po kolei zaczynając od DOC, ale już się poprawiam. Otóż kompresja dokumentu DOC przebiegła dość dobrze. Ba! W przypadku żadnego innego rozszerzenia stopień kompresji nie był aż tak duży! Z około 80MB zrobiło się około 10KB.

„Otwarty dokument tekstowy” to szałowy plik

Kolejnym był FLAC, o którym pisałem wcześniej. Następnie ODT, którego kompresja za pomocą programu mnie nie zaskoczyła, zaskoczył mnie natomiast fakt, że OpenOffice z grubo ponad 7000 stron tekstu „zapisał” się w niecałych 300KB i mimo to, udało się ten plik jeszcze pomniejszyć – brawo, dla programistów.

A TXT dalej swoje

Kolejny, plik TXT. Zważcie na pewien paradoks. Plik TXT nie ma żadnej kompresji, a na dysku zajmuje ~38MB, a DOC z tą samą zawartością dwa razy tyle! No cóż, głupi bym był, jakbym napisał, że mnie to zaskoczyło – nie, nie zaskoczyło mnie. Spodziewałem się dużej kompresji, z racji na zerową kompresję plików TXT, a właśnie wiązało się to z tym, że archiwizery potrafią podołać oczekiwaniom i „okroić” plik.

Udźwiękowienie bezstratno-niekompresujące

Ostatni plik, to plik dźwiękowy WAV. Tutaj zdziwienie. Dużo lepszych wyników oczekiwałem, bo plik jest największym spośród reszty testowanych, a przy okazji WAV niby nie ma kompresji. Niby, bo z tego testu wynikło, że jest kompresja, a przy okazji wrzucanie tych plików do archiwów w celu przyoszczędzenia miejsca na dysku – nie ma sensu. Podobnie, jak w przypadku FLAC, kompresja nie jest na tyle zadowalająca, by tracić na nią czas.

BZip2 – czasouniemilacz!

Nie najgorszy, ale najdłużej pakujący. W moim rankingu archiwum to zajmuje ostatnie miejsce! Tak, ostatnie. Mimo dość dobrego stopnia kompresji, czy to w najszybszym sposobie kompresji, czy w ultra – archiwa tworzą się strasznie długo. W czasie tworzenia jednego archiwa, używając 7z, czy Zip spakowałbym spokojnie kilka dodatkowych plików, czy nawet folderów. Cóż, nie ma ideału.

Bzzzzzzzz DOC

Wyprzedzając fakty, rozszerzenie to wypada w wypadku plików DOC gorzej (na pewno) od 7z, aczkolwiek na pewno lepiej od pozostałych archiwów. Ale cóż z tego, skoro jeden plik pakuje się kilka/naście minut. Nie no, sorry ale ja podziękuję.

Bezzzzstratny i bezzzkompressssji

Historia się powtarza, nie ma większej różnicy w przypadku FLAC, tutaj również.

Długo, dłużej, ODT…

Niemalże identyczne rozmiary plików, co w przypadku 7z – niemalże, bo nie identyczne, popatrzcie uważnie na rozmiary i % kompresji. Ale powtórzę to po raz kolejny i powtórzę jeszcze nie raz – za długo pakuje pliki!

TXT się ugiął pod naporem

Drugi co do stopnia kompresji TXT. Pozostali „rywale” mogą tym dwóm archiwom pogratulować i popatrzeć zza rogu, jak sobie radzą z kompresją. Nic poza tym, kompletnie nic poza tym nie zrobią – fucking lame. Chciałbym rzec, że wreszcie coś lepszego z tym się dzieje, ale nie! Znowu strasznie długo pakuje, a na dodatek jest gorszy od 7z.

Bum, bum, bzzz – WAV

Gorzej, dłużej, jak 7z, lepiej ale wciąż dłużej, jak pozostałe archiwa.

Weź GZip i zrób ZIP

GZip rywalizuje doskonale z Zip’em. Tak, niewiele lepszy od niego, na szybkość narzekać bardziej nie można, bo źle nie jest. Szkoda tylko, że różnica między rozmiarami i % kompresji plików w porównaniu do Zip nie jest taka wielka, bo granica ta jest generalnie niezauważalna. Z racji, na niewielką różnicę postanowiłem opisać te archiwa razem. Mam nawet odczucie, że GZip, to taki nieco lepszy Zip, gdyż różnica na prawdę jest niezauważalna.

Źle, gorze, DOCrzej, najgorzej

Fatalnie wypadły te archiwa. Najgorzej spośród wszystkich czterech testowanych. Nie mam tu na myśli prędkości archiwizacji, ale samego stopnia. Jest najgorzej. Tutaj pliki zajmują około 70KB, gdzie w przypadku 7z i BZip2 rozmiar ten dochodzi do 20KB – niemal czterokrotnie mniej!

Odbili sobie na FLAC

Tak, tutaj role się odmieniły, bo Zip i GZip, jako jedyni skompresowali choć trochę plik poniżej jego oryginalnych rozmiarów. Co prawda dopiero w „ultra” kompresji, ale dokonali tego. Cud? Możliwe ;) .

Łeb w łeb z ODT

Nie dostrzegam tu większej różnicy. Najlepiej oczywiście 7z sobie poradził kompresując plik o ponad 4%, ale są to różnice między 1-2KB, więc nie jest to coś, o co można się tłuc.

Trzymaj kredens, bo TXT nie ustąpi

He, czy to kompresja najszybsza, normalna, czy ultra… za każdym razem to samo, a co ciekawe – nie zaskakuje. Pliki zajmują niecałe 20KB, co świadczy o tym, że są one 20 razy większe od tych skompresowanych 7-zip’em.

Idealna para z WAV’em

Najniższy stopień kompresji spośród wszystkich czterech, ale za to przyznać trzeba, że Zip i GZip dobrali się idealnie mając niemalże identyczny % kompresji pliku i w rozmiarach plików.

Podsumowanie

Ostatnie były foldery, które „pakowałem”, ale ich nie opisywałem. Zrobiłem to tylko i wyłącznie dlatego, by zaspokoić ostatecznie swą ciekawość kompresując cały folder z tymi plikami, a z drugiej strony nie dyskryminując BZip2 i GZip, które to nie mają możliwości archiwizowania folderów. Owszem, mogłem zaznaczyć wszystkie pliki w folderze i je zarchiwizować – ale nie taka była moja idea.

Podsumowanie, podsumowanie, podsumowanie… cóż podsumowywać. Jeśli zależałoby mi na czasie i na stopniu kompresji – wybrałbym 7z, jeśli na samym stopniu kompresji to wybrałbym również 7z, jeśli zależałoby mi na samym czasie – to również wybrałbym 7z z najszybszym stopniem kompresji, bądź bez kompresji. Choć Zip również tutaj kusi :) , jak i Tar, którego tutaj nie opisywałem z racji na brak kompresji.

Jaki jest kolejny argument ogólnie skłaniający do korzystania z samego programu? Ach, nie jeden argument a kilka nawet.

  1. jest dostępny na wiele platform: Windows, Linux, MacOS, BeOS, Amiga, DOS, WinCE;
  2. obsługuje wiele rodzajów archiwów – w tym również RAR, CAB, ISO…;
  3. jest darmowy;
  4. ma otwarty kod;
  5. jest po polsku.

Liczę na jakąś kulturalną dyskusję związaną z tym tematem :) . Mam nadzieję, że dowiem się jeszcze czegoś nowego i ciekawego. A no i byłbym zapomniał:


Komentarze

9 odpowiedzi na „7-Zip, a jego „fabryczna” kompresja”

  1. Sam używam 7zip’a od dłuższego czasu, z powodzeniem zastępuje płatnego WinZIPa czy WinRARa. Poza tym pozwala nieco zaoszczędzić na transferze, jeżeli ma się serwis ze sporym downloadem :)

  2. Ciekawy artykuł.
    Tylko małe uzupełnienie:
    FLAC to nie żadne „lepsze WAV”. FLAC specjalny kodek do kompresji pliów WAV, czyli coś jak rar czy zip, ale przeznaczony specjalnie do muzyki. Dlatego pliki WAV skompresowane FLAC-em mają bardzo wysoki stopień kompresji (rarem czy zipem tak dobrze pliku WAV nie spakujesz jak FLAC-em). Dodatkowa zaleta FLAC-ów to możliwość odtwarzania i słuchania muzy prosto z tych plików, bez rozpakowywania. FLAC od MP3 różni się tym, że gdy oryginalną płytę CD zapisujesz w postaci MP3, bezpowrotnie tracisz jakość dźwięku (MP3- kompresja stratna). FLAC natomiast zapisuje dźwięk w niezmienionej jakości (kompresja bezstratna). Dlatego FLAC zajmuje dużo więcej niż MP3 ale mniej niż WAV, a jakość ma DOKŁADNIE jak WAV.

    Pozdrawiam

  3. Wybrakowany ten test… Tekst trochę bez sensu tak powielony – przydałby się „normalny” tekst, czyli książka, instrukcja, e-maile (plik programu pocztowego) itp.
    Przydałyby się wykresy, bo w tekście gubią się te stopnie kompresji, a od cyfr w tabeli bolą oczy. Przykład: http://www.pcmod.pl/thread-test-kompresor%C3%B3w-kompresja-plik%C3%B3w–212, chociaż jak dla mnie za bardzo rozwleczony ten tekst i też sporo niepotrzebnych rzeczy.
    Piszesz też: „przy użyciu jakiego rozszerzenia zyskuję najlepszy stopień kompresji” – co to ma oznaczać? Rozszerzenie (sufiks nazwy pliku) nie wpływa na stopień kompresji, jest tylko sugestią dla systemu operacyjnego o zawartości pliku i jaki z programów kojarzyć w celu 'otwarcia’.
    Do bezstratnej kompresji pcm wav też się kompletnie nie nadaje, duużo lepsze rezultaty uzyskuje się za pomącą RARa. Najlepsze wyniki uzyskuje się za pomocą kompresorów dedykowanych jak Flac, chociaż Monkey’s Audio robi jeszcze mniejsze pliki (rozszerzenie ape). Piszę pcm wav, bo wav jest formatem – kontenerem, a co w nim siedzi i czy jest skompresowane to już trzeba odczytać – tego też nie podałeś przy wav.
    No to tak słowem krytyki. Wielka za to pochwała, że upubliczniłeś wyniki kawałka przydatnej roboty.

    1. Myślałem nad wykresami, jednakże nie znalazłem dobrego sposobu na ich sporządzenie.

      Masz rację, nie jest to jakiś profesjonalny tekst, dużo mu generalnie brakuje. Raczej jest to taki ogólny zarys co i jak. Twój komentarz jest dobrym uzupełnieniem braków w tekście. Nie sądzę jednak bym podjął się ponownie zabawy z archiwizerami.

      Odnośnie flac, na blogu już ktoś w komentarzach poruszał ten temat. W sumie, jakby nie patrzeć to Twój przedmówca ;).

  4. Awatar Dustgrow

    jak dla mnie brakuje podstawowego testu na pakowanie obrazów ISO np. plik iso mieszczący się na plycie DVD5 okolo 4,5GB skompresowany do 1,6 bo takie sa przypadki. I porownanie roznych programow i sposobow jaki uzyskalby taki lub lepszy wynik. Szkoda, ze tego brakuje bo niewiele mi mowi pakowanie dokumentow o programie.

    1. W przypadku *.iso też różnie bywa. Jest to również archiwum, więc obraz, obrazowi nie będzie równy. Jeden skompresujesz do 1,6G jak napisałeś, a drugi będzie 3G zajmował.

      Tekst owszem jest wybrakowany, sporo mu brakuje do ideału, ale aktualnie nie mam czasu i chęci na jego poprawkę. Dużo czasu potrzeba na sprawdzenie każdej opcji.

  5. poszukuje programu do najmocniejszej kompresji plików AVI(mam ich ze 2TB)
    próbowałem 7-zip,winrar i KGBarchiwizer wszystkie z marnym skutkiem- po kilka%kompresji
    miałem nadzieje że tutaj znajde odpowiedź…niestety:-(

    1. Ponieważ avi jest już skompresowane. Nic nie nawojujesz :).

  6. szkoda,miałem nadzieje zaoszczędzic troche miejsca
    ale chyba czas kupić nowy wielki zewnętrzny dysk i po kłopocie

Skomentuj LukasAMD Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *