Pokaż wyniki od 21 do 30 z 72

Wątek: #22 Liniowość matrycy i co z tego wynika

Widok wątkowy

  1. #1
    Moderator Awatar Janusz Body
    Dołączył
    Apr 2004
    Miasto
    Szczecin
    Wiek
    72
    Posty
    5 757

    Lightbulb #22 Liniowość matrycy i co z tego wynika

    Oczy.

    Chcąc nie chcąc, żeby móc sensownie pisać o widzeniu świata przez aparat cyfrowy, trzeba zacząć od tego jak działają nasze oczy. Widzimy mały wycinek z całego zakresu fal elektromagnetycznych. Na dodatek nasze oczy mają ogromne zdolności adaptacyjne a mózg potrafi sygnały z nerwów ocznych zinterpretować w sposób nieosiągalny dla współczesnych kamer cyfrowych. W ludzkim oku są dwa typy "sensorów"". Jedne potrafią zmierzyć tylko luminancję (świeci czy nie i jak silnie) - to tak zwane pręciki (ang. rods). Drugie kolor. To czopki (ang. cones). Pobudzenie czopków jest zależne od długości fali. Podział jest zbliżony do RGB ale czopkii "zielone", "czerwone" i "niebieskie" widzą pewien zakres długości fali. Zakresy zachodzą na siebie a ich maksima przypadają w pobliżu tego co nazywamy RGB.

    Sensorów od luminancji (pręcików) jest w oku od 70 do 140 milionów (różne źródła różnie podają). Czopków rozróżniających kolor jest znacznie mniej, tylko 6-7 milionów. Nasze "czujniki" koloru pozwalają nam rozróżnić od 120 do 200 odcieni dla każdego z kolorów w zależności od natężenia. Przy słabym świetle działają dobrze tylko pręciki luminancji, stąd czarno-białe widzenie w słabym świetle i "w nocy wszystkie koty są czarne". Ich czułość wielokrotnie przewyższa zdolność postrzegania kolorów. Widzimy w bardzo słabym świetle nie tak dobrze jak pies czy kot ale daleko lepiej niż się zwykle wydaje. Dodatkowo nasze oczy inaczej - lepiej widzą kolor zielony - potrafimy rozróżnić dwukrotnie więcej odcieni zieleni niż czerwieni czy błękitów. Nic dziwnego jeśli wyjrzeć przez okno latem. Według obecnej wiedzy mamy ok. 64% czerwonych, 32% zielonych i tylko 2% niebieskich czopków (tu też są różnice pomiędzy źródłami). Różnice pojawiają się w "czułości" - najbardziej czułe są "sensory"" niebieskie. Pręciki (rods) w ogóle nie widzą pasma czerwonego. To dlatego instrumenty w samochodzie, na statku czy w samolocie świecą na czerwono - nie ma to wpływu na zdolność nocnego widzenia.

    Gamma i rozpiętość tonalna

    Kamera cyfrowa (sensor CCD lub CMOS) widzi światło inaczej niż oczy ludzkie. Sensor kamery zlicza fotony padające na poszczególne foto-elementy i liniowo (wprost-proporcjonalnie) do tego zapisuje obraz. To zliczanie fotonów nie jest taką dużą przenośnią bo każdy foton uderzający w fotocelę powoduje powstanie jakiegoś napięcia elektrycznego. Wielkość tego napięcia jest wprost proporcjonalna do liczby fotonów. Oczy w połączeniu z przetwornikiem jakim jest nasz mózg działają inaczej. Nasze widzenie jest mocno nieliniowe. Im więcej światła pada na czopki (ang. cones) na dnie oka tym mocniej jest ono tłumione. Taki wzmacniacz o różnym współczynniku amplifikacji - im słabszy sygnał tym większe wzmocnienie a silny sygnał powoduje najpierw tłumienie a potem "zatkanie" wzmacniacza. Właściwie to "odwrotność" wzmacniacza - osłabiacz raczej. Oczy potrafią łatwiej ocenić drobne różnice przy małych poziomach sygnału. Dużo gorzej oceniamy różnice poziomów przy silnym świetle. Nasze oczy są dobre "w cieniach" i słabsze "w światłach". Błona filmowa została stworzona 'na obraz i podobieństwo' naszych oczu i w zbliżony sposób reaguje na światło. Pewnie dlatego, że to też chemia.

    Kodowanie gamma to nic innego jak próba sprowadzenia obrazu zapisanego przez sensor kamery do sposobu widzenia naszych oczu. Gamma 1.0 to liniowe widzenie sensora. Nasze oczy to gamma gdzieś pomiędzy 2.0 a 3.0
    Gamma to funkcja:

    Output = Input ↑ Gamma

    Gdzie: Input – poziom sygnału na wejściu normalizowany do przedziału <0, 1>.
    a symbol ↑ oznacza "do potęgi.

    Tak naprawdę funkcja jest nieco bardziej skomplikowana – zwykle przedstawiana jest jako wielomian – ale praktycznie przybliżenie tak jak wyżej w zupełności wystarczy. Jak wygląda wykres takiej funkcji to chyba wszyscy wiedzą ale „w razie czego” warto zajrzeć tu:
    http://www.dpreview.com/learn/?/Glos...g/Gamma_01.htm

    Skutek naszego logarytmicznego widzenia w porównaniu z kamerą cyfrową jest łatwy do przewidzenia. Liniowe widzenie kamery powoduje, że proporcjonalnie mniej bitów jest wykorzystywanych do zapisu różnych poziomów luminancji w cieniach. Stosunkowo duża część "pola widzenia" - i duża liczba bitów - poświęcona jest zapisowi świateł. Stąd już prosta droga do stwierdzenia, że cyfra jest dobra "w światłach" i słabsza "w cieniach". Około 3/4 ogółu bitów zużytych na zapis to "światła" - cienie to tylko pozostała 1/4.

    Dalszą konsekwencją tego sposobu zapisu jest wniosek, że przyciemnianie obrazu cyfrowego jest dużo bezpieczniejsze od rozjaśniania. Przyciemnianie przesuwa więcej bitów w kierunku cieni, gdzie nasze oczy są bardziej czułe, niejako "scieśnia" bity i zwiększa ilość informacji w miejscu w którym oczy wspaniale to wykorzystają. Rozjaśnianie natomiast "rozciąga" niewielką ilość bitów zużytych do zapisu cieni na szersze pole bitowe zwiększając rozpiętość tonalną. Co się więc dzieje? "Produkujemy" informację, której w oryginalnym zapisie po prostu nie ma, zwiększamy tym samym szumy i posteryzację. Często pojawia się "banding" (paskowanie). Nasze oczy doskonale widzą nawet drobne różnice w cieniach więc z łatwością spostrzegamy wszystko co złe.

    No i mamy całe wyjaśnienie dlaczego w fotografii cyfrowej musimy naświetlać "odwrotnie" jak w analogu. Naświetlać na światła i wywoływać na cienie.
    Tak widzą nasze oczy. Półcienie leżą w środku zakresu (zaznaczone kropką)


    A tak widzi kamera:


    Pójdźmy teraz o krok dalej. Rozłóżmy liniowy obrazek z kamery na "czynniki pierwsze". Załóżmy, że rozpiętość tonalna matrycy wynosi 6 f-stopów. Wiem, że niektórzy powiedzą "to nieprawda, nie ma tyle...". Napisałem "załóżmy" bo chodzi o pokazanie czegoś gdzie parzysta ilość akurat ułatwia wyjaśnienia. Zresztą współczesne (2006) dSLRy mają taką rozpiętość tonalną. To, że często tego nie dostrzegamy wynika również z tego co poniżej.

    Jeśli przyjąć, że kamera jednak ma te 6 f-stopów i zapisuje w 12 bitach to górna połówka (tak, tak, całe pół paska na obrazku) to jeden f-stop czyli 4096/2 = 2048 odcieni. Tylko wtrącę, że tak jest zdefiniowany f-stop. Każdy kolejny to dwukrotnie więcej (lub dwukrotnie mniej) światła. Z dolnej połówki kolejny jeden f-stop zabiera połowę to jest 1024 odcieni. I tak dalej i tak dalej. W ostatnim najniższym na cały jeden f-stop przypada tylko 64 odcienie. Ilustruje to obrazek poniżej.

    Kamera w rozbiciu na f-stopy



    Można to również przedstawić w postaci tabelki:


    Tu pojawia się mały problem. Ten najniższy f-stop to TYLKO 64 odcienie. Jak się to rozciągnie na marne 256 odcieni monitora w sRGB to nie dziwota, że pojawia się posteryzacja, paskowanie, szumy i wszystko co złe.
    Większość współczesnych kamer zapisuje co najmniej 12 bitów na kanał. To daje 4096 poziomów w każdym z kanałów. JPEG to 8 bitów i 256 poziomów w kanale. To szesnaście!!! razy mniej. Wyrzucasz do kubła tylko 4 bity informacji o kolorze ale aż 3840 możliwych odcieni. To bardzo ale to bardzo dużo – blisko 94%. Trochę dba o Ciebie sam aparat bo zdjęcie tak naprawdę to RAW przerabiany wewnątrz w aparacie na JPEG ale wszelka dalsza obróbka w Photoshopie, GIMPie czy innym programie zwykle powoduje katastrofalne wręcz szkody. Niestety nieodwracalne.

    Nieco „przy okazji” warto zwrócić uwagę na położenie środka (półtonów) na obrazku liniowego widzenia matrycy. To wyjaśnia m. in. kwestię dlaczego balans bieli powinien być ustawiany na jasno szary wzorzec. To co my widzimy jako jasno szare leży dokładnie pośrodku zakresu tonalnego sensora. Tak właśnie zrobiony jest np. WhiBal – jego szarość wydaje się dość jasna bo leży w pobliżu „środka zakresu sensora”.

    Janusz
    Ostatnio edytowane przez Janusz Body ; 19-07-2006 o 19:39

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •