Fotografia/Zmiana wymiarów i kompresowanie

Z Wikibooks, biblioteki wolnych podręczników.

Zmniejszanie wymiarów, głębi bitowej i kompresowanie zdjęcia są czynnościami służącymi głównie zmniejszaniu rozmiarów pliku, w którym jest ono zapisane. W większości aparatów cyfrowych można w opcjach zmieniać rozmiar i stopień kompresji plików. Generalnie im mniejszy plik i bardziej skompresowany, tym mniej miejsca zajmuje w pamięci, ale też zawartych jest w nim mniej informacji.

Zmniejszanie wymiarów w pikselach[edytuj]

Zmniejszanie wymiarów zdjęcia w pikselach zmniejsza radykalnie rozmiar pliku, ale kosztem utraty wielu zawartych w nim detali. Warto pamiętać, że w przypadku plików zapisanych bez kompresowania wielkość pliku jest równa liczbie pikseli użytych do zapisu pomnożonych przez ich głębię bitową, ich liczbę można natomiast łatwo obliczyć, mnożąc szerokość i wysokość zdjęcia podaną w pikselach. W związku z tym proporcjonalne zmniejszenie rozmiarów zdjęcia o połowę skutkuje czterokrotnym zmniejszeniem rozmiarów pliku. Jeśli zatem chcemy zmniejszyć rozmiary pliku o połowę, wystarczy, że zmniejszymy jego wymiary w pikselach o pierwiastek z 2 (ok 1,41).

W trakcie procedury zmniejszania oprogramowanie musi zdecydować, które z pikseli usunąć z oryginalnego pliku i w jaki sposób to zrobić.

  • Pierwszą opcją jest zwykle zachowywanie lub nie oryginalnych proporcji zdjęcia. Przy wyborze oryginalnych proporcji wystarczy przy zmniejszaniu podać tylko jeden z wymiarów zdjęcia, a drugi zostanie automatycznie przez oprogramowanie obliczony. Zachowanie proporcji daje zwykle lepsze rezultaty niż podanie obu docelowych wymiarów ręcznie. Jeśli chcemy zdjęcie sztucznie "ścisnąć" lub "rozciągnąć" lepiej jest to zrobić na oryginalnym pliku przy pomocy odpowiednich narzędzi (filtrów) deformacyjnych i dopiero po tej operacji zmienić jego rozmiary w pikselach.
  • Drugą opcją jest wybór sposobu interpolacji; sposób ten określa, wg jakiego algorytmu program będzie usuwał i uśredniał piksele w trakcie zmniejszania; najczęściej stosowane sposoby to:
    • najbliższy sąsiad – najprostsza metoda polegająca w przybliżeniu na tym, że gdy z dwóch pikseli zostaje usunięty jeden, to ten pozostawiony otrzymuje średnią wartość ich dwóch; piksele do usunięcia są losowane od lewej do prawej; jest to metoda, która najlepiej zachowuje ostre krawędzie między różnymi obszarami zdjęcia; usuwa jednak małe detale (np. może usunąć całkowicie, krótką cienką linię o szerokości jednego piksela) i obniża zakres tonalny zdjęcia
    • dwuliniowa – oprogramowanie stosuje do usuwania i uśredniania pikseli metody regresji dwuliniowej; powoduje to mniejsze problemy z przejściami tonalnymi przy jednoczesnym zachowaniu ostrości krawędzi; jest to najlepsza metoda do zdjęć zawierających liczne cienkie linie (architektura, zdjęcia obiektów technicznych, zdjęcia makro)
    • dwusześcienna – do uśredniania i wyboru pikseli do usunięcia stosowana jest regresja dwusześcienna; zdjęcie zachowuje oryginalne przejścia tonalne, ale niektóre krawędzie mogą ulec rozmyciu; daje dobre rezultaty przy zdjęciach "miękkich obiektów" (portrety, pejzaże, ogólne plany)

Zmniejszanie głębi bitowej[edytuj]

Głębia bitowa to liczba bitów, która została użyta do zapisu jednego piksela na zdjęciu. Wartość ta decyduje o tym, ile różnych kolorów może potencjalnie przybrać każdy piksel tworzący zdjęcie. Liczbę dostępnych kolorów można obliczyć podnosząc 2 do potęgi równej głębi bitowej. Czasami przez głębię bitową rozumie się liczbę bitów służących do zapisu wartości jasności w każdym z kanałów barw podstawowych oddzielnie.

Głębia bitowa
(sumaryczna)
Głębia bitowa w przeliczeniu na kanały RGB Liczba kolorów Zastosowanie
1 tylko dwa kolory 2 proste rysunki dwubarwne
2 kolory indeksowane 4 proste ilustracje i wykresy
4 kolory indeksowane 16 bardziej złożone ilustracje i wykresy
8 kolory indeksowane 256 złożone, wielobarwne ilustracje, miniaturki zdjęć niskiej jakości, zdjęcia czarno-białe lub tzw. duotonowe z małą skalą odcieni.
16 (high color) zmienna 65 536 zdjęcia niskiej jakości
wystarcza do stworzenia wrażenia, że ogląda się prawdziwe zdjęcia na ekranie
24 (true color) 8 16 777 216 (16 milionów) zdjęcia dobrej jakości;
głębia wystarczająca do przedstawienia zdjęć w pełnym modelu RGB;
maksymalna głębia oferowana przez współczesne monitory
48 16 281 474 976 710 656 (281 miliardów) zdjęcia do druku z użyciem bardziej złożonych modeli barw niż sRGB
zdjęcia, które mają być poddane złożonej obróbce
96 32 stosowana głównie w technice HDR
pełna paleta tonów niemożliwa do oddania nawet w druku

Minimalna głębia bitowa dająca wrażenie, że ogląda się zdjęcie a nie grafikę wykonaną na podstawie zdjęcia to 16 (tzw. high color); głębia bitowa 48 umożliwia natomiast zapis porównywalny z tym, co można zrobić przy użyciu tradycyjnej, kolorowej kliszy fotograficznej wysokiej jakości; głębia 96 znacznie przekracza to, co można było kiedyś uzyskać na nawet najczulszych kliszach. Głębie bitowe 48 i 96 nie mogą być skutecznie wyświetlane na ekranach komputerów. Zdjęcia wykonane z taką głębią są przez programy do edycji zdjęć w trakcie ich wyświetlana na ekranie automatycznie konwertowane w locie do 24. Głębie 48 i 96 przydają się praktycznie tylko w momencie konwertowania zdjęć między różnymi przestrzeniami barw, a także przy technice HDR. Aparaty fotograficzne zapisują na ogół zdjęcia z głębią bitową 24 lub maksymalnie 48.

Program do korekty i edycji zdjęć zwykle posiadają funkcję umożliwiającą zmianę głębi bitowej. Przejście do głębi o jedną niżej skutkuje dwukrotnym zmniejszeniem rozmiarów pliku. W prostszych programach do edycji zdjęć istnieje zwykle funkcja, przy pomocy której można dokonać zmniejszenia głębi w sposób automatyczny, bez wyboru opcji. Rezultat takiej operacji jest zwykle trudny do przewidzenia i powoduje zazwyczaj rozmaite nieprzewidywalne zmiany kolorów widocznych na zdjęciu. W programach bardziej złożonych można sterować tym procesem albo za pomocą wyboru jednej z metod zmiany, albo w sposób przypominający wywoływanie zdjęcia z negatywu – czyli poprzez ręczny wybór ekspozycji, korekty gamma, korekcyjnej krzywej tonalnej itp., co umożliwia precyzyjne uzyskanie pożądanego efektu.

Kompresja[edytuj]

Kompresja to taki sposób zapisu zdjęć w pliku, że jego wymiary w pikselach pozostają bez zmian, ale plik jest zmniejszany poprzez rozmaite algorytmy matematyczne. Algorytmy te dzielą się na:

  • bezstratne -– tzn. takie, które zachowują wszystkie informacje o wszystkich pikselach tworzących zdjęcie
  • stratne – tzn. takie, które usuwają na zawsze część informacji zawartych w pierwotnym zdjęciu.

Stratna kompresja jest zazwyczaj dużo bardziej efektywna od bezstratnej, ale jej użycie zawsze wiąże się z pewnym pogorszeniem jakości zdjęcia.

Bezstratna[edytuj]

Do najczęściej stosowanych metod kompresji bezstratnej zaliczaj się:

  • GIF – którego wadą jest to, że można za jego pomocą zapisywać obrazki z maksimum 8-bitową ogólną głębią (256 kolorów) – praktycznie nie nadaje się do zdjęć
  • rodzina metod LZ, z najpopularniejszą: LZW na czele, która jest niezbyt wydajna, ale umożliwia kompresję dowolnych plików i jest na tyle popularna, że tak skompresowane pliki rozpakuje nam prawie każdy program do obróbki zdjęć; kompresja ta jest standardową opcją formatu TIFF, najbardziej popularnego przy zapisie zdjęć do druku
  • PNG – aktualnie najwydajniejsza metoda spośród popularnie stosowanych, obsługuje 48 bitową głębie kolorów, czyli do 16 bitów na każdy z kanałów koloru w RGB; obsługuje też osadzone profile kolorów icc, icm i dane exif[1]. Jest to prawdopodobnie najlepsza metoda zapisu bezstratnego zdjęć, jeśli twoje oprogramowanie poprawnie obsługuje ten format.
Stratna[edytuj]

Standardem w zakresie kompresowania stratnego zdjęć jest metoda JPEG. Opiera się ona na obserwacji, że na zdjęciu można uśrednić niektóre jego mniej kontrastowe fragmenty w niezauważalny dla ludzkiego oka sposób. Dzięki temu – zwłaszcza w przypadku zdjęć obiektów naturalnych – metoda JPEG pozwala na dziesięciokrotne zmniejszenie rozmiaru pliku bez łatwo zauważalnej dla człowieka różnicy. Pogorszenie jakości jest jednak zauważalne przy dokładniejszym przyjrzeniu się zdjęciu – zwłaszcza w powiększeniu, gdyż kompresja JPEG powoduje powstawanie wokół ostrych krawędzi charakterystycznych plamek zwanych artefaktami.

Zaletą kompresji JPEG jest jej skalowalność. Przy jej stosowaniu można bowiem wybrać jej stopień (zazwyczaj w skali od 100 – jakość oryginalna do 1 – maksymalne skompresowanie) i znaleźć metodą prób i błędów optymalną jej wartość dla danego zdjęcia i jego potencjalnego zastosowania. Efekt wzrostu stopnia kompresji na wielkość pliku i jego jakość prezentuje poniższa tabela:

Obrazek Stopień kompresji Rozmiar [bajty] Komentarz
0 350 002 Artefakty niezauważalne nawet przy powiększeniu
50 66 405 Artefakty zauważalne przy silnym powiększeniu
75 41 280 Artefakty słabo zauważalne przy normalnej skali obrazka,
ale dobrze zauważalne przy powiększeniu
90 27 746 Dobrze widoczna utrata jakości, ale zdjęcie wciąż jest akceptowalne
99 21 296 Silna i łatwo zauważalna utrata jakości:
zatarte i nieczytelne szczegóły,
zauważalne gołym okiem artefakty przy ostrych krawędziach

Jak widać, artefakty i ogólna utrata jakości zdjęcia oglądanego na ekranie w oryginalnej rozdzielczości zdjęcia są zauważalne dopiero przy bardzo wysokim stopniu kompresji. Z drugiej strony – zależność rozmiarów pliku od jego stopnia kompresji nie jest proporcjonalna – zmiana z 90 do 99% daje niewielką zmianę rozmiaru pliku za to bardzo już zauważalne pogorszenie jego jakości. Z drugiej strony użycie kompresji 50% – radykalnie zmniejsza rozmiary pliku (ponad 5-krotnie) przy wciąż całkiem akceptowalnej jakości przy normalnym jego oglądaniu.

Przypisy