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. Było o tym TU. 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. Te nieszczęsne gałęzie są często dość odległe od aparatu, czyli zaczyna dawać o sobie znać zjawisko przedstawione TU. 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)?
Cóż, zapraszam do dyskusji. Proszę traktować ten tekst jako wprowadzenie.
Szukaj
Skontaktuj się z nami