Kompresja plików graficznych. Zalety, wady i jak ją przeprowadzić

Kompresja plików graficznych może być rozwiązaniem wielu problemów, jakie trapią współczesne systemy teleinformatyczne. Niestety rozwój technologii nie jest równomierny na wszystkich polach. Gwałtowny rozwój aparatów cyfrowych i rozdzielczości współczesnych monitorów sprawiły, że przyzwyczailiśmy się do tego, że zdjęcia muszą być „duże”. Pliki graficzne zajmują w związku z tym coraz więcej miejsca, a dyski komputerowe, a raczej nasze portfele nie nadążają trochę za obiektywami. Zwłaszcza gdy ktoś lubi dużo pstrykać. Na szczęście umiemy przynajmniej częściowo obejść ten problem, a jego rozwiązaniem jest kompresja plików graficznych. Jakie ma zalety, jakie wady i jak ją przeprowadzić?

Czym jest kompresja danych w ogóle i plików graficznych w szczególności?

W skrócie rzecz ujmując, kompresja danych to zmiana ich objętość wykonywana w celu zmniejszenia zajętości nośników przeznaczonych do ich przechowywania. Tłumacząc to z polskiego na nasze, chodzi o to, by nie naruszając istotnych danych niezbędnych do idealnego odtworzenia przechowywanego pliku pozbyć się wszystkiego, co niepotrzebne. Dzięki odpowiednim technikom po kompresji informacja wyjściowa zakodowana jest przy użyciu mniejszej ilości bitów (bit to najmniejsza ilość informacji) niż informacja wejściowa.

Z punktu widzenia użytkownika kompresja danych powinna być odwracalna, czyli przy następnym otwarciu danego pliku powinniśmy zobaczyć (jeśli to np. plik graficzny) dokładnie to samo. Nie tylko w sferze wizualnej, ale również „informatycznej”. Każdy wyświetlany naszym oczom piksel powinien być na swoim miejscu i posiadać te same parametry jak przed kompresją.

Najprościej kompresję zaobserwować możemy, wrzucając zdjęcia do folderu i kompresując go do postaci .rar lub .zip. Efekt takiego zabiegu powinien zajmować znacznie mniej miejsca na dysku niż pierwotny nieskompresowany folder zawierający te same zdjęcia.

Dlaczego decydujemy się na kompresję plików graficznych?

Podstawowym argumentem za kompresją plików graficznych jest zmniejszenie zajętości dysków komputerowych. W związku z tym, że telefony wymieniamy częściej niż komputery, to taka kompresja dla kogoś, kto przechowuje bardzo duże ilości zdjęć, może mieć szczególne znaczenie. Będzie to istotne, zwłaszcza gdy zdjęcia takie będą przechowywane w tzw. chmurze. Musimy bowiem pamiętać, że ta cała mityczna chmura to nic innego jak „komputer”, który zamiast u nas w domu stoi gdzieś w idealnych dla siebie „cieplarnianych warunkach” wielkiej serwerowni. Mimo wszystko to dalej jest dysk twardy, to dalej są procesor, pamięć RAM i to dalej jest transfer plików. Wszystko to kosztuje, a gdy lubimy pstrykać fotki, a nie da się ukryć, że współczesne aparaty nam na to pozwalają, to zaczynam nam się robić poważny problem i nasza chmura robi się pełna.

Idąc dalej tym samym tropem, jeśli jesteśmy dużym portalem i niekiedy obsługujemy tysiące klientów na godzinę, to chcemy, by każdemu z nich strona wyświetliła się błyskawicznie. Nikt nie lubi czekać na wlekące się ślamazarnie strony. Jedną z przyczyn stojących za powolnym ładowanie stron są właśnie niewłaściwie zoptymalizowane zdjęcia.

Jak zatem widać na kompresji zdjęć zależy prawie wszystkim. Piszemy prawie, gdyż graficy i zawodowi fotografowie z racji swojej pracy niekonieczne są zainteresowani takimi oszczędnościami na dysku. Nigdy nie wiadomo kiedy trzeba będzie wrócić do danej fotografii i ponownie ją obrobić i stąd lepiej mieć pod ręką oryginalne zdjęcie bez jakichkolwiek śladów manipulacji.

Jakie rodzaje kompresji plików graficznych wyróżniamy?

Jeśli chcemy skompresować plik graficzny to do wyboru mamy w zasadzie dwa typy kompresji. Gdy po obróbce jesteśmy w stanie uzyskać dokładne odzwierciedlenie danych jak przed obróbką, to mówimy o kompresji bezstratnej. Ten typ kompresji wymagany jest na przykład w sytuacji, gdy dany obraz traktowany jest jako dokument np. obraz medyczny. Podobnie rzecz się ma, gdy wykonanie danego zdjęcia jest z jakichś powodów bardzo kosztowne. Wtedy chcemy zawsze mieć do dyspozycji idealną wersję pierwotną.

W grafice do dyspozycji mamy również kompresję stratną. W takim przypadku po przeprowadzeniu całej operacji kompresowany obraz nie będzie idealnym odzwierciedleniem pliku wejściowego, ale będzie do niego zbliżony. Stopień utraty jakości i „podobieństwa” dobieramy podczas samego kompresowania. Programy do obróbki graficznej zazwyczaj umożliwiają podgląd efektu i dzięki temu sami możemy zdecydować, na jak dużą utratę jakości jesteśmy gotowi się zgodzić.

Dla zwykłego użytkownika i przy możliwościach współczesnych aparatów fotograficznych akceptowalna utrata „jakości” zdjęcia może być stosunkowo duża. I tak będzie ono prezentowało wysoki poziom i pozwalało na ewentualny wydruk, a na monitorze nadal wyglądać będzie pięknie. Przy tym wszystkim i tak obroniony plik będzie zajmował jedynie część pierwotnej objętości w megabajtach. W porównaniu z kompresją bezstratną kompresja stratna potrafi znacznie bardziej zmniejszyć wielkość kompresowanego pliku.

Zaznaczyć tutaj trzeba, że algorytmy przewidziane do kompresji w ogóle, niekoniecznie sprawdzą się przy kompresji plików graficznych. Dzieje się tak, gdyż obrazy są dwuwymiarowe, w przeciwieństwie do na przykład tekstu, który jest jednowymiarowym ciągiem symboli. By móc skompresować obraz standardowym algorytmem, najpierw musimy przerobić go do postaci lepiej się do tego nadającej, czyli utworzyć jednowymiarowy ciąg pikseli, czyli mówią fachowo dokonać linearyzacji. Najczęściej linearyzacja przebiega w porządku rastrowym (od góry, od lewej, do prawej).

Formaty i standardy kompresji plików graficznych

Kompresja bezstratna może być przeprowadzona na przykład w standardzie JPEG (Lossless JPEG), czy też FELICS (ang. Fast, Efficient, Lossless Image Compression System) dla obrazów w stopniach szarości, lub nowszym JPEG-LS również w stopniach szarości.

Najpopularniejszym formatem kompresji stratnej jest zwykły format JPEG, ale obecnie w Internecie jest on wypierany przez nowy standard WebP. Metoda ta opracowywana jest przez Google i cechuje się zachowaniem porównywalnej z JPEG jakości, przy mniejszym rozmiarze danego pliku. Docelowo format ten może również zastąpić takie pliki jak PNG i GIF dzięki zastosowaniu kompresji bezstratnej i przezroczystości.

Wracając jednak do standardów kompresji, to w przypadku plików PNG, MNG i TIFF stosuje się bezstratną kompresję DEFLATE.

Dla GIF i TIFF może to być LZW.

Jedną z prostych metod kompresji jest RLE (Run-length encoding) stosowana przy plikach BMP, TGA, TIFF.

Czym skompresować plik graficzny?

Do kompresowania plików graficznych wykorzystujemy programy do obróbki grafiki. Wśród nich wyróżniamy programy płatne i bezpłatne, które możemy zainstalować na naszym komputerze. Do naszej dyspozycji są również narzędzia online. Zazwyczaj dostępne są one w jakimś zakresie w formie bezpłatnej, a większe możliwości oferują przy uiszczeniu opłaty.

Popularne programy do zainstalowania na dysku komputera

Gimp

Prawdziwym kombajnem, za który nie musimy uiścić nawet złotówki, jest Gimp. Charakteryzuje się on sporymi możliwościami już w wersji bazowej, ale program jest napisany w taki sposób, że umożliwia instalację dodatkowych wtyczek pozwalających dalej podnieść jego możliwości.

Najciekawszym rozszerzeniem, jakie można do niego doinstalować, jest Save for Web. Jak sama nazwa wskazuje, jest to dodatek pozwalający na szybką kompresje plików graficznych na potrzeby umieszczania ich w sieci.

Trzeba zaznaczyć, że nawet bez tej wtyczki przy każdorazowym zapisywaniu możemy wybrać rozszerzenie pliku graficznego i w dedykowanych dla każdego rozszerzenia ustawieniach zmniejszyć jakość grafiki, usunąć meta dane, czy „podłubać” przy kompresji kosztem jakości. Wtyczka Save for Web załatwia to za nas, znacząco przyspieszając pracę, gdyż wszystkie niezbędne opcje mamy wygodnie umiejscowione w jednym oknie.

Adobe Photoshop

Opisując narzędzia pozwalające na skompresowanie plików graficznych, nie sposób nie wspomnieć o pakiecie Adobe. Jest to rozwiązanie płatne i kosztujące w sumie jak na nasze warunki, niemało. Tak to już niestety jest, że za jakość i standaryzację trzeba płacić.

Cała operacja kompresji pliku graficznego przebiega podobnie jak w przypadku Gimpa. Nie będziemy podawać dokładnej ścieżki, gdyż zmieniała się ona nieco wraz z kolejnymi wydaniami Photoshopa, ale niezależnie od tego, z której wersji programu korzystacie, zasada jest ta sama. Najpierw zdjęcie docinamy do zadanej rozdzielczości, a następnie przy pomocy menu rozwijanego znajdujemy opcję eksport i Save for Web i… gotowe!

Programy do kompresji grafiki dostępne online

Photopea

Jeśli nie chcecie instalować dodatkowego oprogramowania, to do naszej dyspozycji jest kolejny kombajn, ale tym razem w wersji online. Chodzi o aplikację Photopea. Wystarczy wejść na stronę photopea.com, przeciągnąć zdjęcie do okna edycji, a następnie skorzystać ze skrótu klawiszowego SHIFT+CTRL+ALT+S. Po jednoczesnym wciśnięciu wszystkich klawiszy pojawia się nam okno zapisywania obrazów na potrzeby sieci. Możemy w nim zmienić rozdzielczość, suwakiem ustalić jakość oraz wybrać format pliku docelowego. Jak już wspomnieliśmy, Photopea to prawdziwy kombajn graficzny wprost w oknie naszej przeglądarki więc warto z niego korzystać również do bardziej zaawansowanych działań na plikach. Dzięki niemu możemy na przykład edytować pliki przygotowane wcześniej w pakiecie Adobe, więc warto sobie zapamiętać to rozwiązanie, gdy sytuacja nas do takiej edycji przymusi.

TinyPng, Compress JPEG i im podobne

Jeśli nie interesują was zaawansowane funkcje związane z obróbką zdjęć dostępne w aplikacji Photopea, a dalej wolicie konwertować pliki online, zamiast instalować dodatkowe programy, to mamy i na to sposób.

W sieci jest mnóstwo serwisów oferujących szybką kompresję grafiki, a my możemy polecić TinyPng i CompressJPEG. Ich obsługa jest bajecznie prosta. Po wejściu na stronę przeciągamy zdjęcie na wyznaczone okno i ułamek sekundy później możemy ja pobrać. Prawda, że mało skomplikowane? W porównaniu ze stroną Photopea nie mamy możliwości „dostrojenia” kompresowanych obrazów do naszych potrzeb, ale nie każdy będzie zainteresowany zagłębianiem się w takie detale.

Łyżka dziegciu do beczki miodu serwisów online

Na koniec warto zaznaczyć, że wszystkie serwisy Internetowe oferujące nam swoje usługi nie mogą działać „za darmo”. Choć z naszej perspektywy działają bezpłatnie, czyli nie korzystamy z portfela, przesyłając tam pliki do obróbki, to warto zapoznać się z regulaminami stron do kompresji danych i dowiedzieć się, co dzieje się z naszymi surowymi plikami i z tymi już skompresowanymi. Poza reklamami jakoś takie serwisy muszą zarabiać na życie.

Podsumowując, kompresja ma wiele zalet i warto z niej korzystać

Kompresja plików graficznych jest odpowiedzią na wyścig zbrojeń wśród producentów aparatów fotograficznych i trzeba przyznać, że odpowiedzią całkiem skuteczną. Dobrze zoptymalizowane i skompresowane pliki zajmują zaledwie ułamek pierwotnej przestrzeni dyskowej. Przy tym prezentują jakość, która pozwala na wydruk nawet w dużym formacie. Również na ekranie monitora o bardzo wysokiej rozdzielczości takie zdjęcie będzie prezentować się bardzo dobrze.

Jeśli macie jeszcze jakieś ciekawe sposoby na kompresję plików graficznych, to koniecznie dajcie znać w komentarzach.

Źródła:
  • https://sun.aei.polsl.pl/~akd/artykuly/zn-kobrazow.pdf
  • https://www.adobe.com/pl/creativecloud/file-types/image.html
  • https://www.szkolnictwo.pl/szukaj,Kompresja_(informatyka)
  • https://computer.howstuffworks.com/file-compression.htm
  • https://zsp.polanow.pl/pliki/plik/kompresja-danych-1590695338.pdf
  • https://en.wikipedia.org/wiki/Image_compression