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:
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ń:
- {{Zip}};
- {{7z}};
- {{BZip2}};
- {{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):
- przedstawię po kolei stopnie kompresji i rodzaj archiwów;
- 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 80{{MB}} zrobiło się około 10{{KB}}.
„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 300{{KB}} 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 ~38{{MB}}, 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 70{{KB}}, gdzie w przypadku {{7z}} i {{BZip2}} rozmiar ten dochodzi do 20{{KB}} – 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-2{{KB}}, 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 20{{KB}}, 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.
- jest dostępny na wiele platform: {{Windows}}, {{Linux}}, {{MacOS}}, {{BeOS}}, {{Amiga}}, {{DOS}}, {{WinCE}};
- obsługuje wiele rodzajów archiwów – w tym również {{RAR}}, {{CAB}}, {{ISO}}…;
- jest darmowy;
- ma otwarty kod;
- 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ł:
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 :)
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
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.
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 ;).
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.
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.
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:-(
Ponieważ avi jest już skompresowane. Nic nie nawojujesz :).
szkoda,miałem nadzieje zaoszczędzic troche miejsca
ale chyba czas kupić nowy wielki zewnętrzny dysk i po kłopocie