KOMPRESJA JPEG
JPEG to skrót od Joint Photographic Experts Group. Organizacja ta opracowała metodę kompresji obrazów, która jest najczęściej stosowana w cyfrowych aparatach fotograficznych. Komitet JPEG powstał pod inspicjami ISO w roku 1986. ISO to z kolei skrót od International Standards Oraganization. I tu przypomnienie ISO jako skala czułości filmu, czy aparatu fotograficznego to skala zatwierdzona przez ów komitet ISO. A więc ISO to nie jest jednostka, jak metr, czy kilogram. Specyfikacja określająca kompresję typu JPEG jest bardzo ogólna. To takie wytyczne dla danego typu kompresji. Pierwsze takie wytyczne zostaly opublikowane przez JPEG w roku 1991.
JPEG jest najczęściej stosowany do kompresji obrazów w których skala kolorów jest 24 bitowa. 24 bitowa skala kolorów oznacza że mamy 2^24=16777216 kolorów. Każdy piksel może mieć jeden z tych ponda 16 milionów kolorów. Ta 24 bitowa skala lub głębia kolorów składa się z 3 nałożonych na siebie kolorów podstawowych RGB (Red-czerwony, Green-zielony, Blue-niebieski), każdy o intensywności od 0 do 255, czyli w skali 8 bitowej.
Uproszczony schemat kompresji JPEG
- Obraz jest transformowany (zamieniany) z systemu RGB na trzy inne składowe, jasność i dwie składowe barwy. Każdy piksel jest opisywany liczbą określającą jego jasność i dwoma liczbami określającymi barwę. Oko ludzkie jest bardziej czułe na zmianę janości, niż na małe zmiany barwy. Dlatego w pierwszym etapie kompresji odrzucane się co 2. lub co 4. wartość określające kolor. W kolejnym etapie kompresji piksele łaczy się w bloki o rozmiarach 8x8. Ponieważ mamy dwa "kanały" koloru, to bloki są 16x8.
- I teraz do tych bloków stosuje się Transformatę Fouriera lub Dyskretną Transformatę Kosinusową (DCT), która jest uproszczoną Transformatą Fouriera. To zbyt zaawansowane metody matemtyczne, by opisywać je szczegółowo ale warto wiedzieć, co one dają. Otóż z bloku 16x8=128 pikseli pozostają tylko wartość średnie kolorów i jak często zmieniają się one w obrębie tego bloku. Te wartości są liczbami dziesiętnymi i wymagają dla zapisu przynajmniej 4 bajtów, tym nie mniej liczba bajtów reprezentująca (z pewnym przybliżeniem) 128 pikseli jest zdecydowanie zmniejszona. Trzeba zaznaczyć, że operacja Transformacj Fouriera jak i DCT są odwracalna, czyli z liczb określających średnie kolory i częstość ich zmian można dotworzyć dokładnie układ wyjściowy kolorów. To odbywa się w momencie dekompresji, celem wyświetlenia pliku JPEG przez program graficzny na ekranie komputera, czy innego "czytnika" obrazów.
- Wartośći średnie kolorów w kolejnych blokach zastępuje się podaniem różnicy wartości w stosunku do bloku poprzedniego. To poprawia nieco stopień kompresji.
- W kolejnym kroku procesu kompresowania wartości średnie będące liczbami dziesiętnymi zamienia się liczbami całkowitymi, które wymagają mniej miejsca do ich zapisania w pamięci. Na tym etapie następuje największa strata jakości obrazu. Strata, której nie można odzyskać podczas "dekompresji".
- Jest jeszcze kilka etapów kompresji, ale ich opis niczego nie wyjaśni komuś, kto nie jest biegły w matematyce na "wysokim poziomie", więc je pomijamy.
Efektem ostatecznym kopresjitypu JPEG jest obraz złożony a kwadracików. Im większy stopień kompreasji, tym większe owe kwadraciki aż w końcu są tak duże, że obraz jest praktycznie nieczytelny. Jako ilustrację pokazujemy zdjęcie latarni morskiej na wyspie Hvar (Chorwacja) skompresowane ze współczynnikiem K=30 oraz K=99. Wpółczynnik K nie jest krotnością kompresji ale pokazuje względny jej stopień. Obrazem wyjściowym było zdjęcie o rozdzielczości 3255x2169 i wielkości 3,614MB. Zmniejszyliśmy je do rozmiaru 400x267 i przeprowadziliśmy jego kompresję dwa razy.
K=30, 32kB
K=99, 14kB
Zdjęcie po lewej stronie jest dobrej jakości, jak na potrzeby Internetu, natomiast zdjęcie ze wspólczynnikiek kompresii 99 jest absolutnie nieakceptowalne. Nieco więcej zdjęć o różnym stopniu kompresji pokazane jest w paragrafie kompresja obrazów.