Poradnik
fotografa
Aberacja - zależności
|
Czy tylko obiektywy
powodują aberracje chromatyczne? Jaki obiektyw wybrać, aby
uniknąć problemu z aberracją chromatyczną? Jak robić zdjęcia,
aby aberracje chromatyczne minimalizować? Zapewne niektórzy z
nas stawiają sobie podobne pytania, ale odpowiedzi bywają
różne. Najczęściej pada odpowiedź w formie pytania. Jak taki
drogi obiektyw może dawać takie koszmarne aberracje? Na analogu
był dużo lepszy. Ale, czy taka odpowiedź na pytanie zawsze ma
sens i czy tylko obiektyw jest za aberracje odpowiedzialny?
Na początek taka mała ściąga. W tym tekście występują pojęcia
punkt światłoczuły, sensor i piksel. Używam ich w następującym
znaczeniu:
sensor – pojedynczy
element czuły na światło rejestrujący jedną składową koloru.
punkt światłoczuły –
obszar 2 na 2 sensory rejestrujący pełną informację o kolorze.
piksel – najmniejszy
kolorowy element składowy zarejestrowanego zdjęcia.
Pojęcia te są dość zbliżone, ale w istotny sposób różne, a jak
różne, to widać między innymi, w różnych materiałach
reklamowych, gdzie matryca o 6 milionach sensorów jest
zachwalana i sprzedawana jako matryca o 6 milionach pikseli
RGB.
Jak już prawie wszyscy wiedzą, jeden punkt światłoczuły matrycy
(zespół sensorów rejestrujący kolorowy fragment obrazu na
potrzeby jednego nie interpolowanego piksela RGB) naświetlany
jest przez rzeczywisty obszar zależny od kąta widzenia
obiektywu, rozmiaru i rozdzielczości matrycy oraz odległości
obiektu od aparatu. Nigdy nie jest to teoretyczny, idealny
punkt, a zawsze kwadrat, okrąg lub coś pośredniego, a tak
naprawdę to, co na zdjęciu będziemy odbierali jako kwadrat o
rozmiarach jednego piksela RGB. Rozmiarach, które można odnieść
do fotografowanego obiektu i w przybliżeniu obliczyć. Powstaje
jednak pytanie, co to jest jeden punkt światłoczuły matrycy? Z
punktu widzenia konstruktora matryc, najmniejszy element
światłoczuły, to pojedynczy sensor, który w zależności od
ilości światła, które na niego pada zwraca pojedynczą wartość
liczbową. W dokumentacjach aparatów podawane są wielkości
matryc (np. 6 Mpix, 10 Mpix, 12 Mpix) oraz ilości „punktów” w
pionie i w poziomie. Te informacje nie dotyczą jednak ilości
punktów rejestrujących kolor obrazu, czy ilości pikseli RGB,
ale właśnie sumarycznej ilości pojedynczych sensorów czułych na
światło. Wszystko byłoby prawdziwe, gdyby nie fakt, że
pojedynczy sensor, czyli element światłoczuły w matrycach z
interpolacją Bayera nie rejestruje koloru tylko poziom
jasności. Aby zarejestrować kolor trzeba użyć co najmniej
trzech sensorów, które będą rejestrowały kolory dla potrzeb
pojedynczego piksela RGB (R-czerwony, G-zielony i B-niebieski).
Matryca to prostokątna siatka pojedynczych sensorów, które
rozłożone są w jej węzłach. Przyjęto więc, że w matrycach obok
siebie znajdą się cztery sensory tworzące kwadrat 2 na 2, które
będą rejestrowały składowe koloru RGBG. Taki zespół czterech
sensorów można nazwać punktem światłoczułym matrycy, ponieważ
to właśnie on rejestruje kompletny zestaw informacji barwnej,
która przekształcana jest następnie na jeden piksel RGB. Wynika
z tego, że sensorów rejestrujących kolor zielony będzie dwa
razy więcej niż sensorów dla koloru czerwonego i niebieskiego.
Taki układ sensorów wygląda następująco:
RGRGRGRGRGRG
GBGBGBGBGBGB
RGRGRGRGRGRG
GBGBGBGBGBGB
RGRGRGRGRGRG
GBGBGBGBGBGB
Wyraźnie widać, że dowolny kwadrat o wymiarach 2 na 2 sensory
pozwala na odczytanie jednej składowej R, jednej składowej B i
dwóch składowych G. Bez trudu można zauważyć, że faktyczna
rozdzielczość matrycy D50/D70, której zadaniem jest
rejestrowanie kolorowych pikseli RGB, to nie 3008 na 2000
pikseli RGB, tylko 1504 na 1000 pikseli RGB. Czyli rzeczywista
wielkość matrycy wyrażona w pikselach RGB, powinna być w
odniesieniu do ilości pojedynczych sensorów, podzielona przez
4, bo tylko tyle jest sensorów czerwonych i niebieskich, czyli
tylko tyle pikseli RGB można zarejestrować. Bez rejestracji
koloru czerwonego lub niebieskiego trudno raczej mówić o
rejestracji koloru piksela RGB. Wielkość matrycy taka właśnie
by była, gdyby nie zastosowano rozwiązania interpolacyjnego,
które powoduje, że ilość uzyskiwanych pikseli RGB wzrasta
czterokrotnie. Ale wzrasta tylko pozornie. Każdy element
światłoczuły leży w środku większego kwadratu o wymiarach 3 na
3 sensory, czyli można utworzyć aż cztery zestawy RGBG z
udziałem każdego pojedynczego sensora. Pozornie wracamy do
rozdzielczości 3008 na 2000 punktów, ale to już nie jest to
samo. Są to już piksele interpolowane. Można zapytać, co w tym
złego. Odpowiedź jest bardzo prosta – spada ostrość
rejestrowanego obrazu i nie tylko ostrość, ale o tym później.
Jeśli jeden fizyczny sensor ma wpływ na kolor aż czterech
sąsiednich pikseli, to oznacza, że następny sensor też na wpływ
na cztery sąsiednie piksele i tak dalej, i tak dalej. W efekcie
następuje rozmycie obrazu. Jeśli w idealnych warunkach uda się
nam zarejestrować pionową czarną linię o grubości dokładnie
jednego teoretycznego piksela, narysowaną na białym tle, czyli
linię, która ma grubość dwóch sensorów, to oczekujemy, że w
efekcie na zdjęciu zobaczymy bardzo ostrą linię pionową o
grubości jednego piksela. Nic bardziej mylnego. Ta ostra
pionowa linia, ze względu na interpolację, rozmyje się i da
obraz pionowego pasa o grubości aż trzech sąsiednich pikseli -
pikseli przekształconych przez algorytm interpolacji. Przy czym
kolor środka tego pasa o grubości trzech pikseli będzie czarny,
a kolor dwóch zewnętrznych pikseli będzie szary (50% bieli tła
i 50% czerni linii). W efekcie coś, co chcieliśmy zarejestrować
w sposób idealnie ostry, wyjdzie rozmyte (bez ostrych
krawędzi), a ten obszar rozmycia wyrażony w pikselach RGB
będzie trzy razy większy niż linia wzorcowa.
Można więc iść dalej w ograniczaniu rozdzielczości naszej
matrycy i powiedzieć, że jej faktyczna rozdzielczość w poziomie
leży gdzieś pomiędzy 1504, a 1002 pikseli RGB. Po uśrednieniu
tych wartości (połowa rozmycia powodowanego przez interpolację
dotyczy koloru linii, a połowa koloru tła) daje to
rozdzielczość około 1253 pikseli RGB. Dla rozdzielczości
pionowej musimy zrobić takie same przeliczenia i w efekcie
otrzymamy 1253 na 833 pikseli RGB. Ale to jeszcze nie koniec.
Przed matrycą mamy filtr AA, który nieco „rozmywa” nasz obraz.
W zależności od modelu aparatu i zastosowanego filtra AA te
„rozmycia” są różne, ale tu przyjmiemy, że zasięg filtra AA to
tylko jeden sąsiedni sensor matrycy. W rzeczywistości jest to
zapewne zdecydowanie większy obszar oddziaływania – co najmniej
jeden piksel RGB, czyli dwa sensory, ale tu do obliczeń
przyjmijmy, że tylko jeden sensor. Co więc otrzymamy? Otrzymamy
informację, że jeden zestaw RGBG, czyli jeden naświetlany punkt
matrycy ma wpływ na kolor aż pięciu sąsiednich pikseli RGB w
poziomie – taki właśnie pionowy pas o grubości pięciu pikseli
na białym tle zostawi na matrycy wzorcowa czarna linia o
grubości jednego piksela RGB. W efekcie otrzymamy rzeczywistą
rozdzielczość naszej matrycy z D50/D70 i będzie to około 602 na
400 pikseli RGB. Można dyskutować, jaka część rozmytego,
szarego pasa należy do linii, a jaka jeszcze do białego tła,
ale nie zmienia ta faktu, że nasza idealna pionowa linia o
grubości jednego piksela zostanie zarejestrowana jako pionowy
pas złożony z pięciu pikseli o różnej skali szarości na białym
tle. Należy przy tym pamiętać, że zasięg działania filtra AA,
założony podczas obliczeń, to tylko jeden sensor (jeśli
przyjąć, że ten zasięg to dwa sensory, to nasza wzorcowa cienka
linia dałaby szary pas o szerokości siedmiu pikseli RGB).
Rozdzielczość 3008 na 2000 pikseli RGB o 12-to bitowej głębi
koloru jest więc tylko chwytem marketingowym, który bez żadnych
dodatkowych wyjaśnień zastąpił w folderach reklamowych i w
dokumentacji pojęcie ilości sensorów, ilością interpolowanych
pikseli RGB (dla D200 będzie trochę lepiej, ale nadal niewiele,
bo odpowiada to wartościom około 774 na 518 pikseli RGB).
Zastanówmy się co z tego wszystkiego wynika. Zastosowanie
filtra Bayera i filtra AA powoduje nie tylko rozmycie obrazu,
ale również to, że kolor naszej wzorcowej cienkiej czarnej
linii na białym tle będzie się rozkładał na pięć sąsiednich
pikseli RGB, zapewne w sposób zbliżony do krzywej Gaussa, choć
o tym decyduje w dużej mierze oprogramowanie interpretujące
obraz. Na krawędziach tej linii będzie kolor jasnoszary, bliżej
środka - nieco ciemniejszy, ale taż szary, a w środku tego
obszaru - najciemniejszy, ale nie czarny. Tu swoją rolę odgrywa
filtr AA, który powoduje, że nawet ten środkowy piksel, który w
powinien być czarny, zostanie rozjaśniony przez wpływ
sąsiednich białych pikseli należących do tła. Aby otrzymać
rzeczywiście czarną linię (choćby jeden czarny piksel w środku
tej linii), musimy zrobić zdjęcie linii grubszej niż jeden
piksel, grubszej o wartość wynikającą z rzeczywistego zasięgu
działania filtra AA, czyli z punktu widzenia odwzorowania
koloru realna rozdzielczość matrycy będzie jeszcze mniejsza.
Czas na wnioski. Jeśli chcemy otrzymać linię o właściwym
odwzorowaniu koloru (przynajmniej w środku tej linii), to w
założonych warunkach, linia musi mieć grubość co najmniej
siedmiu interpolowanych pikseli RGB. Każda linia ostra w
oryginale, stanie się nieostra na zdjęciu i będzie miała
łagodne przejście od koloru linii do koloru tła, wymagające co
najmniej dwóch pikseli po każdej stronie. To samo dotyczy
granic dowolnych kolorowych obszarów. Problem nieco się
komplikuje, jeśli linia lub granica obszaru nie jest pozioma,
ani pionowa, tylko leży pod innym kątem do poziomego układu
sensorów matrycy. Najgorszym przypadkiem jest położenie tej
linii pod kątem 45 stopni do poziomu – minimalny obszar
rozmycia zwiększa się wówczas o pierwiastek z dwóch, czyli z
dwóch do około trzech pikseli RGB, po każdej stronie linii.
Przejście od koloru zbliżonego do koloru oryginalnej linii do
koloru tła wymaga więc aż trzech pikseli po obu stronach tej
linii. Jeśli chcemy zarejestrować czarny punkt i spowodować,
żeby w środku zarejestrowanego obszaru znalazł się rzeczywiście
choć jeden piksel koloru czarnego, to na zdjęciu zobaczymy go
jako obszar o rozmiarze 7 na 7 pikseli. Pamiętać też trzeba o
tym, że matryca rejestruje kolory pośrednie, których w
rzeczywistości nie ma. Te odcienie szarości z powyższego
przykładu, to jedynie idealny model. W rzeczywistości kolor
każdego piksela RGB jest wyznaczany w drodze interpolacji
koloru kilkunastu sąsiednich pikseli, a otrzymywany w ten
sposób kolor wynikowy takiego piksela niejednokrotnie potrafi
zadziwić.
Jaki to wszystko ma wpływ na efekty uzyskiwane na zdjęciach.
Ten wpływ jest dość intuicyjny i nazywa się aberracja
chromatyczna. Jeśli robimy zdjęcie ciemnej gałęzi na tle
jasnego nieba to spodziewamy się ostrej krawędzi pomiędzy
ciemną gałęzią i jasnoniebieskim niebem. Innych barw nie
przewidujemy. W rzeczywistości przejście pomiędzy kolorem
ciemnobrązowym lub ciemnoszarym, a jasnoniebieskim kolorem
nieba wymaga dwóch, trzech lub więcej pikseli z każdej strony
gałęzi. Kolor tych pikseli będzie się stopniowo zmieniał od
jasnoniebieskiego nieba do ciemno brązowej gałęzi, przechodząc
przez odcienie pośrednie, które będą wypadkową wartości wielu
sensorów matrycy. Jeśli obraz gałęzi będzie niezbyt ostry
(problemy z ostrością obiektywu, głębią ostrości, lub z
wielkością rzeczywistego obszaru naświetlającego pojedynczy
punkt matrycy i uśrednianiem koloru), to ta liczba pikseli
znajdujących się w obszarze przejścia od koloru gałęzi do
koloru nieba będzie jeszcze większa. W pewnych warunkach nie
zobaczymy nawet koloru gałęzi, tylko nieostry obszar o kolorze
szaroniebieskim lub fioletowym. Taka rzeczywista gałąź może być
znacznie cieńsza niż to, co może zarejestrować jeden punkt
światłoczuły matrycy, czyli zestaw czterech sąsiednich
sensorów. W tym przypadku, już uśredniony kolor wejściowy
padający na matrycę, będzie zmieniony w takich proporcjach, w
jakich gałąź wypełnia obszar rejestrowany przez jeden punkt
światłoczuły matrycy. Jeśli ta gałąź jest dostatecznie cienka,
to nie zostanie zarejestrowany kolor gałęzi, tylko, na
przykład, 30% koloru gałęzi i 70% jasnoniebieskiego koloru
nieba. Co więcej często nie jesteśmy nawet w stanie przewidzieć
jaki będzie ten uśredniony kolor. Jedno jest pewne – będzie to
jakiś kolor z dużym udziałem składowej niebieskiej. Co z tego
wyjdzie nie trzeba chyba nikomu tłumaczyć - dostaniemy piękny „fiolecik”.
I ten „fiolecik” będzie przetwarzany przez algorytm
interpolacji oraz przez filtr AA, w połączeniu z niebieskim
kolorem tła (niebo) dając jeszcze inne odcienie pośrednie.
Wrażenie „fioletowej” obwódki będzie jeszcze bardziej
wzmacniane, poprzez dodatkowe rozmycie granic kolorowych plam.
A co będzie, jeśli na tle bardzo jasnego nieba sfotografujemy
żółtego ptaszka? Oczywiście też będzie kolorowa obwódka, tyle
że o innym zestawie barw – mniej kłujących w oczy.
Takie przejścia pomiędzy kolorami na naszych zdjęciach są
wszędzie, można je wyraźnie obserwować powiększając w programie
graficznym dowolne zdjęcie. Powiększając je znacznie bardziej,
niż do 100%, aż zobaczymy poszczególne piksele RGB.
Różnokolorowe interpolowane piksele w obszarach przejść
pomiędzy obszarami będą wszędzie (najlepiej widoczne w tych
miejscach, gdzie zdjęcie jest ostre), ale nie wszędzie są tak
dobrze widoczne jak w przypadku ciemnych gałęzi, czy drutów na
tle jasnego nieba. A wniosek? Wniosek jest prosty. Ten rodzaj
aberracji chromatycznej nie dotyczy obiektywu tylko cyfrowej
matrycy. Aberracja powodowana przez obiektyw tylko się na to
nakłada i jest bardzo skutecznie wzmacniana. Wiedzą o tym
producenci aparatów, wie również Nikon. Ta wiedza skłoniła go
do wprowadzenia do programu Nikon Capture funkcji minimalizacji
aberracji chromatycznej, którą można włączyć na stałe. Funkcja
programu, jak to funkcja, działa automatycznie i nie zawsze
jest w stanie automatycznie wszystko wykryć i skorygować.
Korygować może tylko te błędy, których mechanizm powstawania
jest znany projektantom, czyli te, które są wprowadzane przez
interpolację pikseli i filtr AA. Natomiast tego, co dociera do
matrycy z obiektywu (wpływ uśredniania koloru dla pojedynczych
punktów światłoczułych i rzeczywiste aberracje chromatyczne
obiektywu) programowo korygować zazwyczaj się już nie da.
Dlatego pomimo zastosowania algorytmu korekcji, na zdjęciach
widzimy piękne kolorowe (najczęściej fioletowe) obwódki wokół
różnych ciemnych detali. Te fioletowe najszybciej wpadają nam w
oko. Jak działa taki program? Stara się on analizować obraz i
wykrywać granice kolorowych plam, a jeśli takie granice
znajdzie, stara się możliwie maksymalnie, ale bez przesady,
zmniejszać obszar przejścia jednego koloru w drugi. Ale nie
może robić tego zawsze i wszędzie, bo to również wzmacniałoby
szum. Algorytm nie wie gdzie była oryginalna krawędź, czyli
zazwyczaj robi ją gdzieś w środku obszaru przejścia, o ile taki
obszar prawidłowo wykryje. Działania takie, w połączeniu z
interpolacją koloru pikseli mogą czasem dawać wrażenie
nieznacznego pogrubiania cienkich linii. Ale te wszystkie
korekcje są możliwe tylko wówczas, jeśli różnice kolorów dwóch
sąsiednich obszarów są na tyle duże, aby algorytm mógł
rozpoznać je jako krawędź – jako granicę dwóch różnych
kolorowych obszarów. Jeśli te kolory są do siebie zbliżone lub
obszary są niewielkie to algorytm musi potraktować je jako
łagodne przejścia tonalne i po prostu je pominie, a tym samym
pozostawi na zdjęciu nieostrości. To były jedynie rozważania o
możliwych do zastosowania algorytmach. Każdy program robi to
inaczej i rzeczywiste metody wyszukiwania i minimalizacji
aberracji na pewno są bardziej skomplikowane.
Czas na wnioski końcowe. Rzeczywista rozdzielczość matryc
cyfrowych wyrażona w rzeczywistych (nie interpolowanych)
pikselach RGB jest dużo mniejsza od tej, którą producenci
podają w materiałach reklamowych i w dokumentacji – ot, taki
bajer reklamowy związany z interpolacja Bayera. Metoda
interpolacji koloru poszczególnych pikseli RGB oraz filtr AA są
bezpośrednią i bardzo istotną przyczyną powstawania aberracji
chromatycznych w fotografii cyfrowej, obiektywy są tu winne w
mniejszym stopniu niż matryca i dlatego w fotografii analogowej
aberracja stanowiła o wiele mniejszy problem. Interpolacja
koloru pikseli RGB i filtr AA powodują istotny spadek ostrości
rejestrowanego obrazu związany z celowym rozmywaniem informacji
docierających do obiektywu z zewnątrz. Recepta na poprawę
ostrości zdjęć i eliminację aberracji chromatycznej powodowanej
przez matrycę wydaje się prosta – to rezygnacja z interpolacji
koloru pikseli oraz rezygnacja z filtra AA, ale kto by wówczas
kupił lustrzankę cyfrową ze wszechobecną morą i matrycą o
rzeczywistej wielkości 1,5 Mpix (D50/D70), czy 2,5 Mpix (D200)?
Jacek Kardasiewicz -
JK
|
|