16 to 256 razy więcej jak 8
Pytanie czy robienie zdjęć w RAW ma sens doczekało się wielu odpowiedzi
na łamach kilku portali fotograficznych. Zazwyczaj wyciągany jest argu-
ment dotyczący możliwości forsowania takiego cyfrowego „negatywu”, po-
prawy parametrów zdjęcia mimo, że w chwili wykonania został popełniony
błąd (nie ważne, czy przez komputer aparatu, czy przez operatora).
Obraz rastrowy wyświetlany na ekranie w technologii cyfrowej opisywany
jest trzema parametrami. Są to wartości nasycenia koloru czerwonego,
zielonego i niebieskiego. Dodając do siebie te trzy składowe (mieszając
je) możemy osiągnąć większość widzialnych przez oko ludzkie kolorów.
Ten model koloru nazywany jest RGB.
Proponuję wyobrazić sobie ekran jako szachownicę. Trzy szachownice.
Czerwoną, zieloną i niebieską. Na każdej szachownicy możliwe jest zapa-
lenie dowolnego pola. Można regulować natężenie świecenia tego pola w
zakresie od czerni (0) do maksymalnej jasności (maks). Rysunek 1 poka-
zuje kilka przykładowych pikseli o różnych proporcjach czerwieni, zieleni i
niebieskiego.
Rys. 1. Przykłady kilku pikseli o różnych proporcjach składowych R, G, B
16777216
W cyfrowej rzeczywistości każdy piksel jest opisywany numerycznie. Natę-
żenia świecenia trzech barw składowych zapisywane są z dokładnością,
wynikającą z ilości bitów przeznaczonych dla zapisu jednego piksela. Naj-
częściej używa się 3 bajtów do zapisania trzech kolorów składowych. Po 8
bitów (jeden bajt) na jeden kolor. Z użyciem ośmiu bitów można zapisać
256 różnych liczb całkowitych – tak więc w pliku 8-bit/kolor można zareje-
strować 256 walorów koloru składowego.
256 walorów x 3 kolory składowe daje 16777216 możliwych kombinacji i
tyle właśnie kolorów można odwzorować z użyciem 8 bitowego systemu
zapisu RGB.
256 walorów to bardzo dużo, skoro ludzkie oko jest w stanie rozróżnić nie
więcej jak 100. Dlatego właśnie 8 bitowy zapis koloru jest podstawą naj-
popularniejszego formatu fotografii cyfrowej – JPG.
Rys. 2. Przykładowe dwa gradienty od czerni do bieli zapisane z dokładno-
ścią 4 i 8 bitów.
"Schody" pojawiają się kiedy spróbujemy edytować taki 8-bitowy obraz.
Jakiekolwiek operacje korekcyjne – zmiana jasności, kontrastu, operacje
na krzywych powodują „przesuwanie” danych przechowywanych z dokład-
nością do 8 bitów. Podczas działań arytmetycznych na danych, dokładność
8 bitów powoduje powstawanie dużych uśrednień. Jednolite przejścia to-
nalne są szatkowane.
Na rysunku 3 przedstawiam gradient (w 8 bitach na kanał), który poddam
obróbce funkcją Levels (rys. 4).
Rys. 3. Przykładowy gradient, który poddam działaniu funkcji Levels.
Rys. 4. Transformacja zastosowana w oknie dialogowym Levels, na nor-
malnym zdjęciu wyciągnęła by szczegóły w cieniach.
Po wykonaniu operacji Levels środkowy fragment obrazu 8-bitowego wy-
gląda jak na rys. 5.
Rys. 5. Skutek działania funkcji levels na obrazie 8-bitowym.
Przyjrzyj się dokładnie obrazowi. Zauważysz pionowe wstęgi, które po-
wstały w wyniku zbyt małej dokładności obliczeń 8-bitowych. Na rys. 6.
widać wykres histogramu po wykonaniu operacji Levels. Zauważ „grze-
bień” jaki powstał w jej wyniku.
Rys. 6. Skutek działania Levels na pliku 8-bitowym.
281474976710656
Gdyby na jeden kolor składowy przeznaczyć nie jeden bajt (8 bitów) lecz
dwa bajty, ilość odwzorowywanych walorów wzrosła by do 65536! 65536
x 65536 x 65536 = 281474976710656 dostępnych kolorów!
Aparaty fotograficzne stosują przetworniki analogowo cyfrowe o dokładno-
ści od 10 do 14 bitów. Jak łatwo zauważyć 10 jest większe od 8 bitów.
Kiedy stosowany jest format JPG procesor aparatu upraszcza informację
rejestrowaną z dokładnością większą do 8 bitów na kanał, które obsługuje
JPG. Dodatkowe walory giną bezpowrotnie!
Można dobrać się do dodatkowych danych, rejestrowanych przez matrycę
aparatu przy użyciu formatu RAW. Podczas konwersji z RAW do formatu
TIFF należy wybrać wersję TIFF 48 bit/16 bit na kanał (zależnie od używa-
nego oprogramowania).
PhotoShop już w poprzednich wersjach udostępniał 16 bitowy tryb pracy.
W wersji CS udoskonalono pracę w tym trybie, teraz wszystkie narzędzia i
znacząca część filtrów pracują w trybie 16-bitowym.
Popatrzmy, co się stanie, kiedy wykonam funkcję Levels na obrazie 16-
bitowym (rys. 7).
Rys. 7. Gradient przetworzony funkcją levels w trybie 16-bitowym.
Pewnie nie widzisz dużej różnicy (widzisz jakąkolwiek? :-) ). Zerknijmy w
histogram przetworzonego gradientu (rys. 8). Nie widać grzebyka zgubio-
nych wartości.
Rys. 8. Histogram gradientu w trybie 16-bitowym.
Teraz porównajmy obrazy przetwarzane w 8 i 16 bitach twarzą w twarz
(rys. 9).
Rys. 9a. 8-bitów.
Rys. 9b. 16-bitów.
Rysunek 9a to plik 8-bitowy. Dolna partia to plik 16-bitowy. Obraz prze-
twarzany w 16 bitach przed zapisaniem został przekonwertowany do 8-
bitów (dla formatu JPG). Oba obrazy zostały zapisane z tą samą jakością
(100%).]]
Widzisz teraz różnicę? To tylko jedna operacja. Im więcej transformacji,
tym większe dewiacje obrazu w trybie 8-bitowym.
Jeżeli chcesz najwyższej jakości warto używać formatu RAW podczas foto-
grafowania. Jeżeli masz JPGa, przed korekcją przejdź do trybu 16-
bitowego (rys. 10).
Rys. 10. Przejście do edycji w trybie 16-bitowym.
Po korekcji możesz śmiało wrócić do trybu 8-bitowego.
Jedyną wadą pracy w 16-bitach jest pamięciożerność. Niestety, bez dużej
ilości RAM i przyzwoitego procesora 16 bitów na kanał może być udręką.