Tuesday, May 19, 2009

Test nowego algorytmu kompresji zipx w WinZip 12

Dawno już w kompresję się nie bawiłem a informacja o nowym algorytmie wzbudziła moje zainteresowanie z kilku powodów. Po pierwsze ponieważ obecnie temat mam omawiany w ramach kilku wykładów prowadzonych na uczelni, po drugiej ponieważ mam sentyment do WinZipa. Głównie ze względu na sympatyczny interfejs.
Na co dzień jednak używam 7zip. Przyszedł czas aby na chwilę zagościło u mnie i płatne oprogramowanie (Windowsa nie licząc). Test nie będzie bardzo wyszukany - od kompresja kilku plików starą i nową metodą a następnie przyjrzenie się wynikom.

Na wstępie już podczas instalacji jesteśmy pytani o domyślną metodę kompresji oraz o zaletach nowej, zipx, ujawniającej się podczas kompresowania obrazów jpeg.


Podczas instalacji jesteśmy pytani o domyślną metodę kompresji.

Zanim jednak testy pewna uwaga. Wszystko wykonywałem na Windows 7. Aby było "wygodniej" poprosiłem WinZipa w opcjach (po instalacji) aby ładnie zintegrował się jako "explorer extension" w celu ułatwienia mi tworzenia archiwów. Nie wyobrażacie sobie jaki byłem zdziwiony gdy - opcja nie do końca działała. Konkretnie: gdy wywołałem menu kontekstowe dla pliku na pulpicie miałem podmenu Winzip i możliwość dodania pliku do archiwum. WinZip nie dał sobie jednak rady z Windowsowym "Libraries" z którego korzystam bardzo często aby uzyskać dostęp do Obrazków, Muzyki czy właśnie Dokumentów - i tutaj niestety menu się nie pojawiało. W tym samym folderze, wywołanym z pełną ściężką (C:\Users\ itd...) - wszystko działało ok :)

Można byłoby przemilczeć temat - wszak Windows 7 jeszcze nie wyszedł - ale piszę o tym gdyż darmowy 7-zip w przeciwieństwie do WinZip radzi sobie tutaj znakomicie. Brawo !

Przejdźmy do testów. W tym celu przygotowałem sobie foldery z 4 rodzajami danych. Dokumenty: tutaj głównie były pliki PDF i kilka odt. Zazwyczaj prezentacje mojej roboty lub jakieś z wykładów z uczelni więc nafaszerowane sporą ilością grafiki, muzyka: 10 plików mp3 średnio po 30 minut każdy z kazaniami ks. Piotra Pawlukiewicza, obrazki: polskie tapety z Windows 7 każdy o wymiarach 1920x1200 w sumie 5 sztuk i 7 skryptów Pythona, niewielkich programików po kilka kilkaset kibibajtów. Wyniki malują się następująco.

Dokumenty



Kompresja zip






Kompresja zipx






Nie da się ukryć, że kompresja zipx dała sobie radę znacznie lepiej. Należy jednak wspomnieć, że we wszystkich przypadkach użycie tej metody było bardzo czasochłonne i tworzenie archiwum trwało zdecydowanie dłużej. Różnica w czasie była tak duża że aż rzucająca się w oczy. Po analizie kompresji poszczególnych plików widać, że zyskaliśmy głównie na zwiększonym stopniu upakowania dużych plików - małe były pakowane tak samo. Jest to pierwszy sygnał mogący świadczyć o tym iż przy nowej metodzie zyskujemy pakując mniej większych porcji danych niż więcej mniejszych. Może być to też kwestia faktu iż w tych plikach PDF występowało więcej obrazków niż w innych chociaż naprawdę ciężko mi to określić - to tylko jakaś propozycja hipotezy. Skąd akurat taki pomysł ? Zobaczycie w następnym teście.

Obrazy



Kompresja zip






Kompresja zipx






To tutaj zipx ma osiągać lepsze wyniki i trzeba przyznać, że zipx pokazał pazur. O ile w przypadku dokumentów różnica wynosiła 1% na korzyść pierwszego o tyle tutaj - 18%, robi wrażenie. Z jednej strony można się domyślać, że tapety Microsoftu nie są jakoś specjalnie skompresowane jako JPGi do użytku na ekranach dużej rozdzielczości jednak mówimy o kompresji bezstratnej !. Wszak po rozpakowaniu mamy te same obrazki - bez pogorszenia jakości. Sprawne algorytmy kompresji obrazu: jedne komercyjne, inne darmowe, są znane nie od wczoraj. Wiele mądrych głów zajmowało się tym zagadnieniem i wiele w tej dziedzinie osiągnięto. Domyślam się, że to co tutaj obserwujemy to po prostu skorzystanie z tych doświadczeń. Dwie "dziedziny kompresji": plików w ogóle i obrazów - łączą siły. Bardzo dobry ruch ! Zobaczmy co dalej.

Pliki mp3


Kompresja zip







Kompresja zipx





Skrypt Pythona


Kompresja zip









Kompresja zip




Analizując powyższe dane można zauważyć, że przy kompresji plików, które upakowują się bardzo słabo albo bardzo dobrze, stosując zipx, zyskujemy i w tym i w tym przypadku 1% na naszą korzyść.

Zipx miał lepiej kompresować obrazy i robi to w rzeczywistości dużo lepiej niż starszy brat. To może niewielka nowość jak na "nowy format kompresji" z krzykliwą literką "x" na końcu jednak zawsze powód do radości i pogratulowania. Algorytm został też poprawiony na oko "w ogóle" gdyż również przy kompresji innego rodzaju formatów zyskujemy ten 1%. Tak więc nigdy nie tracimy na jakości kompresji - kosztem jest jednak przenośność gdyż obecnie archiwum zipx otworzymy wyłącznie za pomocą najnowszego WinZipa. Na razie coś za coś - z biegiem miesięcy kwestia czasu :]

No comments: