Dlaczego korekty balansu bieli JPEG po przetwarzaniu nie są tak dokładne jak balans bieli w przypadku Raw?
Rozumiem, że podczas fotografowania JPEG kamera wykonuje następujące czynności:
- Konwertuj nieprzetworzone dane czujnika za pomocą algorytmu (demozaikowanie / debayering).
Konwertuj na przestrzeń liniową
za. Używanie tabeli przeglądowej odwzorowuje surową wartość na przestrzeń liniową
b. Poziom czerni dla każdego piksela jest następnie obliczany i odejmowany.
do. Wartość każdego piksela jest następnie przeskalowywana do 0,0 do 1,0 za pomocą Whitelevel
re. Skalowane wartości są przycinane do zakresu logicznego od 0,0 do 1,0.
Mapowanie przestrzeni kolorów kamery do przestrzeni CIE XYZ z regulacją balansu bieli
za. Konwertuj na XYZ (D50) za pomocą CameraToXYZ_D50 = Chromatic_adapatation_matrix * CameraToXYZ_matrix
Konwertuj CIE XYZ na sRGB
za. Oblicz liniowy RGB za pomocą CIE XYZ na liniową matrycę RGB
b. Oblicz Rec709 sRGB przy użyciu transformacji krzywej gamma na liniowym RGB
- Konwertuj sRGB na 8bit i kompresuj przy pomocy JPEG
Jeśli to prawda, nie rozumiem, dlaczego Jpeg nie mógł skorygować balansu bieli w taki sam sposób jak Raw!
Czy to po prostu ze względu na stratną kompresję JPEG i 32-bitowego pliku tiff nie miałby tego problemu?
źródło
Odpowiedzi:
Istnieje zasadnicza różnica między pracą z rzeczywistymi surowymi danymi w celu uzyskania innej interpretacji surowych danych niż początkowa 8-bitowa interpretacja surowego pliku widocznego na ekranie w porównaniu do pracy z 8-bitowym JPEG, w którym cała informacja jest plik jest tym, co widzisz na ekranie.
Kiedy używasz białego klikacza na „surowym” pliku, nie poprawiasz obrazu wyświetlanego na ekranie (który jest jak JPEG 8-bitowy rendering, który jest jedną z wielu możliwych interpretacji danych w surowym pliku obrazu ). Mówisz aplikacji do konwersji raw, aby cofnęła się i ponownie przekonwertowała dane w pliku raw na obraz do wyświetlenia przy użyciu innego zestawu mnożników kanałów kolorów.
Tworzysz kolejny obraz z tych samych nieprzetworzonych danych, które zostały użyte do utworzenia pierwszej wersji wyświetlanej na ekranie. Ale aplikacja wraca do samego początku i wykorzystuje wszystkie dane w pliku surowym do stworzenia drugiej, odmiennej interpretacji danych surowych w oparciu o różne instrukcje dotyczące sposobu przetwarzania tych danych. To nie zaczyna się od ograniczonej ilości informacji wyświetlanych na ekranie i ich poprawiania. Gdyby tak się stało, uzyskałbyś taki sam wynik jak podczas pracy z JPEG. ¹
Surowy plik zawiera znacznie więcej informacji niż jest wyświetlany na monitorze po „otwarciu” surowego pliku. Surowe pliki obrazów zawierają wystarczającą ilość danych, aby stworzyć prawie nieskończoną liczbę różnych interpretacji tych danych, które zmieszczą się w 8-bitowym pliku JPEG .²
Za każdym razem, gdy otwierasz surowy plik i patrzysz na niego na ekranie, nie wyświetlasz „Surowego pliku”. ³ Oglądasz jedną z niemal niezliczonej liczby możliwych interpretacji danych w surowym pliku. Same surowe dane zawierają pojedynczą (monochromatyczną) wartość jasności mierzoną przez każdy dołek piksela. W przypadku zamaskowanych czujników aparatu Bayer (zdecydowana większość kolorowych aparatów cyfrowych korzysta z filtrów Bayera) każda studnia pikseli ma przed sobą filtr kolorów , który jest albo „czerwony”, „zielony”, albo „niebieski” (rzeczywiste „kolory” filtry w większości masek Bayera są od lekko żółtawo-zielonego do pomarańczowo-żółtego dla „czerwonego”, lekko niebieskawo-zielonego dla „zielonego” i lekko niebieskawo-fioletowego dla „niebieskiego” -kolory te mniej więcej odpowiadają środkowi wrażliwości trzech rodzajów stożków w naszych siatkówkach ). Aby uzyskać pełniejsze omówienie tego, w jaki sposób uzyskujemy informacje o kolorze z pojedynczych wartości jasności mierzonych przy każdym dobrze pikselu, zobacz pliki RAW przechowujące 3 kolory na piksel, czy tylko jeden?
Zmieniając balans bieli surowego pliku, nie wprowadzamy zmian do 8-bitowej interpretacji surowego pliku widocznej na ekranie, wprowadzamy zmiany w sposobie interpretacji liniowych 14-bitowych monochromatycznych nieprzetworzonych danych i następnie wyświetlane na ekranie ze zaktualizowanym balansem bieli.Oznacza to, że w pełni wykorzystujesz 16384 dyskretne monochromatyczne kroki liniowe, które zawiera nieprzetworzony plik dla każdego piksela, a nie 256 dyskretnych kroków z korekcją gamma w trzech kanałach kolorów dla każdego piksela widocznego na 8-bitowym ekranie jako reprezentacja tego surowego pliku. Korzystasz również ze wszystkich innych informacji zawartych w surowych danych obrazu, w tym takich jak zamaskowane piksele i inne informacje, które są odrzucane, gdy plik jest konwertowany na format 8-bitowy, aby wyświetlić go na ekranie.
To, jak będzie wyglądał obraz widziany na monitorze po otwarciu pliku raw, zależy od tego, jak aplikacja użyta do otwarcia pliku interpretuje dane surowe w pliku, aby uzyskać widoczny obraz. Ale to nie jest „jedyny” sposób wyświetlania „oryginalnego pliku raw”. W ten sposób twoja aplikacja - lub kamera, która utworzyła podgląd JPEG dołączony do pliku raw - przetworzyła informacje w pliku raw, aby wyświetlić je na ekranie.
Każda aplikacja ma własny zestaw domyślnych parametrów, które określają sposób przetwarzania nieprzetworzonych danych. Jednym z najważniejszych parametrów jest sposób wyboru balansu bieli używanego do konwersji surowych danych. Większość aplikacji ma wiele różnych zestawów parametrów, które może wybrać użytkownik, który może swobodnie zmieniać indywidualne ustawienia w ramach zestawu instrukcji używanych do początkowej interpretacji danych w surowym pliku. Wiele aplikacji będzie korzystać z mnożników balansu bieli / kanałów kolorów oszacowanych przez aparat (w przypadku korzystania z aparatu AWB) lub wprowadzonych przez użytkownika (w przypadku korzystania z aparatu z korekcją CT + WB) w momencie wykonania zdjęcia. Ale to nie jedyny uzasadniony balans bieli, który można wykorzystać do interpretacji surowych danych.
W przypadku 14-bitowego nieprzetworzonego pliku istnieje 16 384 dyskretnych wartości między 0 (czysta czerń) a 1 (czysta biel). Pozwala to na bardzo małe kroki między każdą wartością. Ale są to monochromatyczne wartości luminancji. Kiedy dane są demozaikowane, stosowane są krzywe gamma i następuje konwersja do określonej przestrzeni kolorów, mnożniki konwersji WB są zwykle stosowane do tych 14-bitowych wartości. Ostatnim krokiem w tym procesie jest ponowne mapowanie uzyskanych wartości do 8-bitów przed wykonaniem stratnej kompresji pliku. 8 bitów dopuszcza tylko 256 dyskretnych wartości między 0 (czysta czerń) a 1 (czysta biel). Zatem każdy krok między wartościami jest 64 razy większy niż w przypadku 14-bitów.
Jeśli następnie spróbujemy zmienić balans bieli przy tych stopniach stopniowania, obszary, które próbujemy rozszerzyć, wypchną każdy z kroków w danych, których używamy, więcej niż jeden krok w wynikowym pliku. Tak więc gradacje w tych obszarach stają się jeszcze grubsze. Obszary, które zmniejszamy, popychają każdy z tych kroków na mniejszą przestrzeń niż pojedynczy krok w wynikowym pliku. Ale wtedy wszystkie te kroki są ponownie dopasowywane, aby pasowały do 256 stopniowej gradacji między „0” a „1”. Często skutkuje to paskowaniem lub posteryzacją zamiast płynnych przejść.
¹ Aby być szybszym i mniej wymagającym zasobów, niektóre aplikacje do przetwarzania surowego będą miały tryb „szybki”, który faktycznie modyfikuje istniejącą 8-bitową reprezentację na ekranie po przesunięciu suwaka ustawień. Często skutkuje to pasemkami lub innymi niepożądanymi artefaktami, takimi jak purpurowy odcień widoczny w przesuniętym kolorze jpeg w pytaniu. Jest to jednak stosowane tylko do oglądanego podglądu. Kiedy plik jest konwertowany i zapisywany (eksportowany), te same instrukcje są w rzeczywistości stosowane do surowych danych, ponieważ są ponownie przetwarzane, a pasmowanie lub inne artefakty nie są widoczne (lub nie są tak poważne).
² Pewnie, możesz zrobić zdjęcie, które zawiera jeden czysty kolor w całym polu widzenia. ale większość zdjęć zawiera szeroką gamę odcieni, odcieni i poziomów jasności.
³ Proszę zobaczyć: Dlaczego moje obrazy RAW są już kolorowe, jeśli debajkowanie jeszcze się nie zakończyło?
Możesz zmienić kolor pliku JPEG w pewnym stopniu, ale nie ma już większości informacji potrzebnych do uzyskania wszystkich kolorów, które można wytworzyć przy użyciu surowych danych. Został odrzucony podczas konwersji do RGB i redukcji do 8 bitów przed kompresją. Jedyne, co pozostało ci do pracy, to wartości każdego piksela w tych trzech kanałach kolorów. Krzywe odpowiedzi dla każdego z tych kanałów mogą być przerysowane, ale wszystko to podnosi lub obniża wartość dla tego kanału kolorów w każdym pikselu obrazu. Nie wycofuje się i nie wykonuje ponownych prób demasowania na podstawie nowych mnożników kanałów, ponieważ te informacje nie są zachowane w JPEG.
Należy koniecznie zrozumieć, że w przykładowym obrazie dodanym do pytania drugi obraz nie pochodzi od pierwszego obrazu. Zarówno pierwszy, jak i drugi obraz to dwie różne interpretacje dokładnie tych samych surowych danych.Żadna z nich nie jest bardziej oryginalna niż druga. Żadne z nich nie jest bardziej „poprawne” niż inne pod względem bycia prawidłową reprezentacją danych zawartych w surowym pliku. Oba są całkowicie uzasadnionymi sposobami wykorzystania danych w surowym pliku do utworzenia obrazu 8-bitowego. Pierwszy to sposób, w jaki twoja aplikacja do konwersji raw i / lub podgląd JPEG generowany w kamerze zdecydował się na interpretację danych. Drugi to sposób, w jaki aplikacja do nieprzetworzonej konwersji zinterpretowała dane po tym, jak powiedziałeś, jakie surowe wartości czujników chcesz przetłumaczyć jako szary / biały. Po kliknięciu tej samej części obrazu JPEG, wiele informacji o kolorze potrzebnych do poprawienia obrazu tak, aby wyglądało na to, że druga wersja nieprzetworzonego pliku już tam nie była, a zatem nie mogła zostać użyta.
Nie, chociaż kompresja stratna stanowi jej dużą część. Podobnie jest z redukcją do 8 bitów, co sprawia, że każdy krok między „0” (czysta czerń) a „1” (pełne nasycenie) jest 64X tak duży, jak w przypadku 14-bitowego surowego pliku. Ale wykracza to poza kompresję JPEG.
Kilka akapitów tej odpowiedzi na RAW na TIFF lub PSD 16bit traci głębię kolorów :
Istnieje wiele istniejących pytań, które dotyczą w dużej mierze tego samego tematu. Oto kilka z nich, które mogą okazać się pomocne:
Pliki RAW przechowują 3 kolory na piksel, czy tylko jeden?
16-bitowy
format RAW na TIFF lub PSD traci głębię kolorów Jak zacząć od ustawień JPEG w aparacie w Lightroom?
Dlaczego wygląd plików RAW zmienia się po przejściu z „Lighttable” na „Darkroom” w Darktable?
Nikon d810 manual WB to nie to samo co „As Shot” w Lightroomie
Dlaczego obrazy RAW wyglądają gorzej niż JPEG w programach do edycji?
Dopasuj kolory w Lightroomie do innych narzędzi edycyjnych
Czy robiąc zdjęcie w formacie RAW, musisz go przetworzyć, aby zdjęcie wyglądało dobrze?
Dlaczego jakość obrazu między aparatem a ekranem komputera jest niższa
Dlaczego moje zdjęcia wyglądają inaczej w programie Photoshop / Lightroom vs narzędzie Canon EOS / w aparacie?
Dlaczego moje zdjęcia wyglądają inaczej w aparacie niż po zaimportowaniu do laptopa?
Jak emulować przetwarzanie w aparacie w Lightroom?
Konwersja jpg w aparacie vs. lightroom jpg
Dlaczego mój podgląd Lightroom / Photoshop zmienia się po załadowaniu?
źródło
Prosta odpowiedź polega na tym, że aparat i procesor RAW (LR, Darktable, by wymienić tylko kilka) używają różnych algorytmów do przetwarzania plików RAW. Powodów jest wiele i nie możemy ocenić tych algorytmów, ponieważ wiele z nich to tajemnice handlowe. Na przykład temperatura barwowa światła dziennego Canona (EOS 700D) wynosi około 5200 K, a Lightroom 5500 K. W niektórych sytuacjach robi to różnicę.
Mówiąc ściślej, pliki RAW nie mają wstępnie zdefiniowanej temperatury kolorów. Jest on zawarty jako meta informacje. Procesory RAW stosują określone balans bieli podczas wykonywania opisanych operacji.
Edycja: i na podstawie komentarza: Nie można zmienić dużej temperatury kolorów w pliku JPEG, ponieważ jest on już „ugotowany”. Temperatura kolorów jest już zastosowana i nie ma wystarczającej głębi kolorów, aby „przesunąć” kolory.
źródło
Możliwe jest balansowanie bieli JPEG, ale narzędzia edycyjne używane w RAW w porównaniu z innymi obrazami zwykle zachowują się inaczej (różne algorytmy). Dalej:
Narzędzie zakraplacz jest nieprecyzyjne, co sprawia, że trudne do powtórzenia wyników.
Bit-depth of JPEG ogranicza, ile kolory mogą być przesunięte vs RAW.
Krzywa gamma mes wszystko do góry.
Obliczenia danych liniowych i danych logarytmicznych zachowują się inaczej.
To nie jest dokładnie tak , jak to działa, ale aby zilustrować:
Załóżmy, że chcesz pomnożyć niektóre dane (1, 4, 8) przez 2. Wynikiem jest (2, 8, 16). W przypadku danych liniowych maksymalny wynik, 16, jest czterokrotnością minimalnego wyniku, 2.
Jednak w przypadku reprezentacji logarytmicznych odstęp między sąsiednimi wartościami, takimi jak 2 5 i 2 6 , jest znacznie większy niż różnica między wartościami liniowymi 5 i 6. Ponadto maksymalny wynik, 2 16 , jest nie tylko 32768 razy większy niż min wynik, 2 2 , jest to również 256-krotność pierwotnej wartości, 2 8 .
źródło