Barwne obrazy to najbardziej "pamięciożerny" typ danych. Większe wymagania mają już tylko ... ruchome barwne obrazy. Dlatego obrazy zapisywane są i przenoszone zwykle w postaci skompresowanej.

Algorytmy bezstratnej kompresji danych, jak np. GIF, stanowią obojętne "opakowanie" wielokrotnego użytku i polegają na szczególnym sposobie oszczędnego zapisu oryginalnej informacji w możliwie małym pliku. Podobnie jak to robią programy do archiwizacji danych. Oszczędność polega na wyszukaniu regularności w układzie barwnych pikseli. Na przykład zamiast zapisywać wartości RGB szeregu pikseli o jednakowej barwie, wystarczy raz zapisać te wartości oraz podać, ilu kolejnych pikseli dotyczą.

Kompresja stratna, jak np. JPG, to w istocie stworzenie pochodnego obrazu, który jest uproszczony w tak wyszukany sposób, by dla ludzkiego oka owo uproszczenie było niezauważalne lub nieznaczne, stanowiąc jednak znaczną oszczędność z punktu widzenia komputerowego zapisu. Na podstawie obrazu skompresowanego taką metodą nie sposób odtworzyć obrazu oryginalnego. Informacja o szczegółach, choćby nieistotnych, jest tracona. Ta metoda kompresji dobrze służy jako sposób doraźnej prezentacji obrazów, których oryginały przechowujemy w sposób nieskompresowany, lub skompresowany bezstratnie.

Kompresja JPG dzieli obraz na kwadraty różnej wielkości i układu -- zależnie od lokalnego zróżnicowania pikseli. W ich ramach dokonuje redukcji do pasm tonalnych lub do jednej barwy. Natężenie tych przekształceń jest regulowane.

Różne stopnie kompresji JPG oryginału o objętości 47 KB

 

50%

85%

95%

99%

powiększenie
twarzy (99%)

 

 

 

 

 

3,96 KB

2,17 KB

1,23 KB

0,96 KB

 

Kompresja JPG opracowana została z myślą o fotografiach z natury. Jest bardzo efektywna, ale wymaga ustalenia optymalnego stopnia kompresji dla każdego obrazu i jest stratna (nieodwracalna).

Drugi popularny algorytm kompresji, GIF, redukuje obraz do palety 256 barw i jest mało efektywny dla obrazów o miękkich przejściach tonalnych, za to dobrze odtwarza ostre kontrasty i jest bezstratny. Poniżej przykład grafiki, dla której algorytm GIF daje lepszy stosunek jakości do objętości niż JPG.

 

GIF, 256 barw, 2,41 KB

 

GIF, 16 barw, 0,98 KB

JPG, 10%, 4,07 KB

 

JPG, 50%, 2,24 KB

Zauważmy, że nawet minimalna (10%) kompresja algorytmem JPG powoduje tu niepożądane rozmycia. Jednocześnie 50% tej kompresji doskonale sprawdzało się przy obrazie "z natury" w poprzednim przykładzie, na co z kolei GIF potrzebował by 14 KB zamiast 4 KB.

Terminologia
W przeciwieństwie do zabiegów edycyjnych optymalizujących grafikę, algorytm kompresji działa automatycznie podczas zapisu edytowanego obrazu do pliku. Stąd przyjęło się nazywanie różnych algorytmów kompresji
formatami plików graficznych. Jest to nieścisłe i może być mylące o tyle, że formatami danych bywa też nazywany ich wyłączny związek z jakimś programem (np. format "DOC" z Wordem, "PDF" z Acrobatem). Termin "format" odnosi się także do fizycznych aspektów zapisu (stąd "formatowanie" dysku i różne "formaty" zapisu na CD-ROM). Grafika o jakiej mówimy, to nie format lecz typ danych -- bitmapa. Dane takie mogą być w różny sposób kompresowane i "formatowane" do pliku dyskowego, dla jakiegoś programu lub jakiegoś protokołu transmisji.
Warto przy okazji zauważyć, że rozszerzenie nazwy pliku (np. *.jpg czy *.gif) nie ma istotnego związku z typem danych ani sposobem kompresji, choć jest pomocne przy ich identyfikowaniu w ramach jakiegoś systemu operacyjnego. Łatwo sprawdzić.
Dodatkowe zamieszanie wokół terminu format wynika stąd, że zapis grafiki bitmapowej bywa często włączany w dokumenty o swoistym formacie. Na przykład, można zetknąć się w dokumentem Worda (*.doc), którego zawartością jest wyłącznie grafika skompresowana GIF, albo otrzymać plik Acrobata (*.pdf) z grafiką skompresowaną JPG.

[w:G.Koba "Informatyka-Podstawowe tematy" wyd.2005]