Kilka słów o kompresji

Kompresją obrazów nazywamy zmniejszenie rozmiaru zdjęcia lub filmu poprzez zmniejszenie jego objętości. Wyróżniamy dwa rodzaje kompresji:

  • stratną - obraz po dekompresji różni się od oryginału, jest jednak do niego podobny
  • bezstratną - obraz po dekompresji jest identyczny jak obraz oryginalny

Metody stratne mają jednak jedną ważną przewagę nad bezstratnymi: ich poziom kompresji jest kilku lub w niektórych przypadkach nawet kilkunastokrotnie większy, co przekłada się na znacznie mniejszy rozmiar pliku. Jedną z takich metod jest kompresja fraktalna.

Porównanie JPG i PNG

Porównanie kompresji
stratnej (format pliku: .JPG)
i bezstratnej (format pliku: .PNG)


Kompresja fraktalna

Bazuje ona na podobieństwie do siebie różnych elementów obrazu - dzięki temu, zamiast zapisywać wszystkie informacje, możemy zapisać jedynie kilka elementów i ich przekształcenia, które po dekompresji utworzą nam na powrót cały obraz.

Wyszukiwanie elementów podobnych do siebie odbywa się przy pomocy takich przekształceń jak w przypadku IFS, wzbogaconych o kilka współczynników.

Kompresja fraktalna znacznie zmniejsza rozmiar plików - przykładowo obraz "lenna" widoczny obokponiżej ważący pierwotnie 65536 bajtów, po kompresji waży jedynie 4351 bajty, co daje nam aż około 15 krotnie mniejszy plik, nie tracąc wiele na jakości!

Przykładowe elementy podobne

Obraz "lenna" wraz z przykładowymi elementami podobnymi

Przed i po kompresji

Obraz "lenna" przed i po kompresji


Rozwiązanie to jest lepsze od znanej wszystkim kompresji JPG pod względem jakości - przy podobnym rozmiarze skompresowanego pliku jakość kompresji fraktalnej jest wyższa.

Porównanie kompresji JPG i fraktalnej

Porównanie przybliżonego czterokrotnie fragmentu obrazu "lenna".
Po lewej skompresowany metodą JPG,
po prawej metodą fraktalną

Niestety, metoda nie jest pozbawiona wad. Jedną z najpoważniejszych jest czas wykonywania kompresji. O ile dla bardzo małych obrazów (rzędu 32x32 piksele) nie jest on znaczący, o tyle dla obrazów w jakości full HD (1920x1080 pikseli) może on wynosić nawet kilka dni! Oczywiście, mówimy tu o zastosowaniu do tego przeciętnego komputera/smartfona. Niestety, wyklucza to kompresję fraktalną z codziennego użytku, gdzie potrzebne są metody działające w czasie rzeczywistym.

Rozdzielczość obrazu Czas działania
256x256 4,4 minuty
512x512 74,5 minuty
1920x1080 (full HD) 3,36 dnia
4096x2160 (4K) 61,93 dni

Szacunkowy czas działania najbardziej czasochłonnego etapu algorytmu na przeciętnym komputerze

(Źródło - zarówno tekst jak i obrazy: kompresja fraktalna)