Formaty zapisu plików graficznych
W wyniku stosowania kombinacji różnych metod kompresji uzyskuje się popularnie stosowane formaty zapisu plików graficznych. Wśród nich wyróżniamy takie które stosują wyłącznie metody kompresji bezstratnej, w której wyniku powstają obrazy bezstratne, lub metody kompresji stratnej i bezstratnej, dla obrazów o gorszej jakości niż obraz oryginalny.
JPEG - przykładowy format statnego zapisu grafiki
Zalety: Szeroki zakres barw i dobra prezentacja płynnych przejść tonalnych występująych w plikach uzyskanych za pomocą urządzeń rejestrujących obraz. Taki typ obrazu, jeżeli dodatkowo nie zawiera zbyt dużo drobnych detali i kontrastowych krawędzi, może zostać dość mocno skompresowany metodami stosowanymi tym formacie bez zauważalnego pogorszenia jakości.
Algorytm: Kompresja stosowana w formacie JPEG zakładna wykonanie następujących kroków:
- Obraz jest konwertowany z kanałów czerwony-zielony-niebieski (RGB) na jasność (luminancję) i 2 kanały barwy (chrominancje)
- Wstępnie odrzucana jest część pikseli kanałów barwy, ponieważ ludzkie oko ma znacznie niższą rozdzielczość barwy niż rozdzielczość jasności
- Kanały są dzielone na bloki 8 × 8 pikseli
- Na blokach wykonywana jest dyskretna transformata kosinusowa (DCT). Wartości pikseli są zastąpione średnią wartość wewnątrz bloku oraz częstotliwości zmian wewnątrz bloku, obie wyrażone przez liczby zmiennoprzecinkowe. Transformata DCT jest odwracalna, więc na razie nie tracimy żadnych danych
- Kwantyzacja, czyli zastąpienie danych zmiennoprzecinkowych przez liczby całkowite. Jest to jedyny krok który powoduje utratę danych
- Kompresja algorytmem Huffmana niezerowych współczynników, uprzednio wykonanej transformaty kosinusowej (DCT)
Zastosowanie: Zapis wszelkiego rodzaju fotografii, zarówno miniatury jak i wielkoformatowe obrazy
PNG - przykładowe format bezstratnego zapisu grafiki
Zalety: Format PNG obsługuje obrazy 24-bitowe oraz stopniowaną przezroczystość, dzięki czemu pozwala uzyskać półprzezroczystość i niepostrzępione krawędzie.
Algorytm: Kompresji polega na dokonaniu jednej z transformacji każdej z linii obrazu, po czym wynik jest kompresowany za pomocą algorytmu deflate(oparte na kodowaniu Huffmana oraz arytmetycznym).
Zastosowanie: Wysokiej jakości ikony, loga i stany przycisków z przezroczystym tłem oraz przezroczystymi elementami obrazka.