Почему программное обеспечение может корректировать баланс белого более точно для файлов RAW, чем с JPEG? - Фотопедия
11 голосов
/ 22 августа 2018

Почему постобработка поправок баланса белого в формате JPEG не так точна, как баланс белого в режиме Raw?

Насколько я понимаю, при съемке в формате JPEG внутренняя камера выполняет следующие действия:

  1. Преобразование необработанных данных датчика с помощью (демозаицирование / разложение) алгоритм.
  2. Преобразовать в линейное пространство

    а. Использование необработанного значения таблицы соответствия для линейного пространства

    б. Уровень черного для каждого пикселя затем вычисляется и вычитается.

    с. Затем значение для каждого пикселя изменяется до 0,0-1,0 с использованием Whitelevel

    д. Масштабируемые значения обрезаются до логического диапазона от 0,0 до 1,0.

  3. Отображение цветового пространства камеры в пространство CIE XYZ с регулировкой баланса белого

    а. Преобразовать в XYZ (D50) с помощью CameraToXYZ_D50 = Chromatic_adapatation_matrix * CameraToXYZ_matrix

  4. Конвертировать CIE XYZ в sRGB

    а. Вычислить линейный RGB с использованием матрицы CIE XYZ для линейного RGB

    б. Вычислить Rec709 sRGB с использованием преобразования гамма-кривой на линейном RGB

  5. Преобразование sRGB в 8 бит и сжатие с использованием JPEG

Если это правильно, я не понимаю, почему Jpeg не может корректировать баланс белого так же, как Raw!

Это просто из-за сжатия JPEG с потерями и 32-битного файла TIFF не будет иметь этой проблемы?

enter image description here

Ответы [ 3 ]

9 голосов
/ 22 августа 2018

Почему программное обеспечение может корректировать баланс белого более точно для файлов RAW, чем с JPEG?

Существует принципиальная разница между работой с фактическими необработанными данными для получения иной интерпретации необработанных данных, чем первоначальная 8-битная интерпретация необработанного файла, который вы видите на экране, по сравнению с работой с 8-битным jpeg, где вся информация в файле - это то, что вы видите на экране.

Когда вы используете белый кликер на «сыром» файле, вы не исправляете изображение, отображаемое на вашем экране (это 8-битный рендеринг в формате jpeg, из многих возможных интерпретаций данных в сыром файле изображения). Вы говорите приложению необработанного преобразования вернуться и преобразовать данные в необработанном файле в отображаемое изображение, используя другой набор множителей цветовых каналов.

Вы создаете другое изображение из тех же необработанных данных, которые использовались для создания первой версии, которую вы видите на экране. Но приложение возвращается к началу и использует все данные в необработанном файле, чтобы создать вторую, другую интерпретацию необработанных данных, основанную на ваших разных инструкциях относительно того, как эти данные должны обрабатываться. Это не начинается с ограниченной информации, отображаемой на вашем экране, и не корректируется. Если это так, вы получите тот же результат, что и при работе с jpeg. ¹

Необработанный файл содержит гораздо больше информации, чем отображается на вашем мониторе при «открытии» необработанного файла. Необработанные файлы изображений содержат достаточно данных, чтобы создать почти бесконечное число различных интерпретаций этих данных, которые поместятся в 8-битный файл JPEG .²

Каждый раз, когда вы открываете необработанный файл и просматриваете его на своем экране, вы не просматриваете «THE raw file». ³ Вы просматриваете один из почти бесчисленного количества возможных интерпретаций. данных в необработанном файле. Сами необработанные данные содержат одно (монохромное) значение яркости, измеряемое каждым пикселем. С датчиками маскированных камер Байера (подавляющее большинство цветных цифровых камер используют фильтры Байера) в каждом пикселе имеется цветной фильтр перед , который является либо «красным», «зеленым», либо «синим» ( Фактические «цвета» фильтров в большинстве масок Байера варьируются от слегка желтовато-зеленого до оранжево-желтого для «красного», слегка голубовато-зеленого для «зеленого» и слегка голубовато-фиолетового для «голубого» - эти цвета более или менее соответствуют центру чувствительности для трех типов колбочек в наших сетчатках ). Для более полного обсуждения того, как мы получаем информацию о цвете из отдельных значений яркости, измеренных в каждой лунке пикселя см. RAW-файлы хранят 3 цвета на пиксель или только один?

Когда вы изменяете баланс белого необработанного файла, вы не вносите изменения в 8-битную интерпретацию необработанного файла, который видите на экране, вы вносите изменения в линейный 14-битный Монохроматические необработанные данные интерпретируются и затем отображаются на экране с обновленным балансом белого. То есть вы используете все преимущества тех 16,384 дискретных монохроматических линейных шагов, которые необработанный файл содержит для каждого пикселя, а не 256 дискретных гамма-коррекция шагов в трех цветовых каналах для каждого пикселя, который вы видите на своем 8-битном экране как представление этого необработанного файла. Вы также используете все остальную информацию, содержащуюся в необработанных данных изображения, включая такие вещи, как замаскированные пиксели и другую информацию, которая отбрасывается при преобразовании файла в 8-битный формат для отображения на экране.

Как будет выглядеть изображение, которое вы видите на мониторе при открытии необработанного файла, определяется тем, как приложение, которое вы использовали для открытия файла, интерпретирует необработанные данные в файле для создания видимого изображения. Но это не единственный способ отобразить «исходный необработанный файл». Это просто способ, которым ваше приложение - или камера, которая произвела предварительный просмотр jpeg, прикрепленный к необработанному файлу, - обрабатывали информацию в необработанном файле, чтобы отобразить ее на экране.

Каждое приложение имеет свой собственный набор параметров по умолчанию, которые определяют, как обрабатываются необработанные данные. Одним из наиболее значимых параметров является выбор баланса белого , который используется для преобразования необработанных данных. Большинство приложений имеют множество различных наборов параметров, которые могут быть выбраны пользователем, который затем может свободно изменять отдельные параметры в наборе инструкций, используемых для первоначальной интерпретации данных в необработанном файле. Во многих приложениях используются множители баланса белого / цветового канала, оцененные камерой (при использовании AWB в камере) или введенные пользователем (при использовании CT + WB коррекции в камере) во время съемки. Но это не законный баланс белого only , который можно использовать для интерпретации необработанных данных.

При использовании 14-битного необработанного файла имеется 16 384 дискретных значения между 0 (чисто черный) и 1 (чисто белый). Это позволяет очень маленькие шаги между каждым значением. Но это монохромные значения яркости. Когда данные демозаизированы, применяются гамма-кривые и выполняется преобразование в конкретное цветовое пространство, к этим 14-битным значениям обычно применяются множители преобразования ББ. Последний шаг в этом процессе заключается в переназначении результирующих значений до 8 бит перед выполнением сжатия файла с потерями. 8-битные значения допускают только 256 дискретных значений от 0 (чистый черный) до 1 (чистый белый). Таким образом, каждый шаг между значениями в 64 раза больше, чем у 14-битных.

Если мы затем попытаемся изменить WB с таким большим количеством градаций, то области, которые мы пытаемся расширить, продвигают каждый из шагов в данных, которые мы используем, дальше, чем один шаг в результирующем файле. Таким образом, градации в этих областях становятся еще более грубыми. Области, которые мы сжимаем, выдвигают каждый из этих шагов на меньшее пространство, чем один шаг в полученном файле. Но затем все эти шаги выровняются так, чтобы соответствовать 256 ступенчатой ​​градации между «0» и «1». Это часто приводит к полосатости или постеризации, а не к плавным переходам.

¹ Чтобы быть быстрее и менее ресурсоемкими, некоторые приложения для необработанной обработки будут иметь «быстрый» режим, который фактически изменяет существующее 8-битное представление на экране при перемещении ползунка настройки. Это часто приводит к полосатости или другим нежелательным артефактам, таким как фиолетовый оттенок, который вы видите в jpeg со смещенным цветом в вопросе. Это применимо только к предварительному просмотру, который вы просматриваете. Когда файл конвертируется и сохраняется (экспортируется), те же самые инструкции фактически применяются к необработанным данным, так как они обрабатываются повторно, а также к полосам или другим артефактам не видны (или не так серьезны).

² Конечно, вы можете сделать снимок, который содержит один чистый цвет во всем поле зрения. но большинство фотографий содержат широкий спектр оттенков, оттенков и уровней яркости.

³ Пожалуйста, см .: Почему мои изображения RAW уже цветные, если еще не завершен распай?

Это могло бы объяснить полосатость или постеризацию изображения, вызванную снижением точности, но все же должна быть возможность переместить белую точку в правильное положение, нет?

Вы можете изменить цвет jpeg до определенной степени, но большая часть информации, необходимой для получения всех цветов, которые вы можете получить с необработанными данными, больше не существует. Он был отброшен во время преобразования в RGB и сокращения до 8 бит до сжатия. Единственное, с чем вам осталось работать - это значения каждого пикселя в этих трех цветовых каналах. Кривые отклика для каждого из этих каналов могут быть перерисованы, но все, что делает, это увеличивает или уменьшает значение этого цветового канала в каждом из пикселей изображения. Он не возвращается и не восстанавливает демозаику на основе новых множителей канала, потому что эта информация не сохраняется в JPEG.

Важно понимать, что в примере изображения, добавленном к вопросу, второе изображение не является производным от первого изображения. Оба первое и второе изображения являются двумя разными интерпретациями одних и тех же необработанных данных. Ни один из них не является более оригинальным, чем другие. Ни один из них не является более «правильным», чем другой, с точки зрения правильного представления данных, содержащихся в необработанном файле. Оба являются совершенно законными способами использования данных в необработанном файле для получения 8-битного изображения. Первый - это способ, которым ваше сырое конверсионное приложение и / или предварительный просмотр JPEG, сгенерированный в вашей камере, выбрали для интерпретации данных. Второе - это то, как ваше сырое конверсионное приложение интерпретировало данные после того, как вы сказали ему, какие необработанные значения датчика вы хотите перевести как серый / белый. Когда вы щелкнули по той же части изображения jpeg, большая часть информации о цвете, необходимой для исправления изображения, чтобы он выглядел так, как будто вторая версия необработанного файла больше не существует, и, следовательно, не может быть использована.

Это просто из-за сжатия JPEG с потерями и 32-битного файла TIFF не будет иметь этой проблемы?

Нет, хотя сжатие с потерями - большая его часть. То же самое относится и к уменьшению до 8 бит, что делает каждый шаг между «0» (чисто черный) и «1» (полное насыщение) в 64 раза больше, чем при использовании 14-битного необработанного файла. Но это выходит за рамки сжатия JPEG.

Пара абзацев от этот ответ до RAW в TIFF или PSD 16 бит теряет глубину цвета :

Как только данные в необработанном файле преобразованы в файл TIFF с демосамической гамма-коррекцией, процесс становится необратимым.

В файлах TIFF все эти этапы обработки «запекаются» с информацией, которую они содержат. Несмотря на то, что несжатый 16-битный файл TIFF намного больше, чем типичный необработанный файл, из которого он получен, из-за того, как каждый хранит данные, он не содержит всей информации, необходимой для обратного преобразования и воспроизведения одинаковых точных данных. содержится в необработанном файле. Существует почти бесконечное количество различных значений в данных уровня пикселей необработанного файла, которые можно было бы использовать для создания определенного TIFF. Аналогично, существует почти бесконечное количество файлов TIFF, которые могут быть получены из данных в необработанном файле изображения, в зависимости от решений, принятых для обработки необработанных данных для получения TIFF.

Преимущество 16-битных TIFF по сравнению с 8-битными TIFF заключается в количестве шагов между самыми темными и самыми яркими значениями для каждого цветового канала в изображении. Эти более точные шаги позволяют выполнить дополнительные манипуляции перед тем, как в конечном итоге выполнить преобразование в 8-битный формат, не создавая артефактов, таких как полосатость в областях тональной градации.

Но то, что 16-битный TIFF имеет больше шагов между «0» и «65 535», чем 12-битный (0-4095) или 14-битный (0-16383) необработанный файл, это не означает, что Файл TIFF показывает такой же или больший диапазон яркости. Когда данные в 14-битном необработанном файле были преобразованы в файл TIFF, черная точка могла быть выбрана с таким значением, как 2048. Любому пикселю в необработанном файле со значением ниже 2048 будет присвоено значение 0 в TIFF. Аналогично, если бы белая точка была установлена, скажем, на 8 191, то любое значение в необработанном файле выше, чем 8191, было бы установлено на 65 535, и самый яркий останов света в необработанном файле был бы безвозвратно потерян. Все, что ярче в необработанном файле, чем выбранная белая точка, имеет то же значение в TIFF, поэтому детали не сохраняются.

Здесь существует большое количество существующих вопросов, которые охватывают большую часть той же темы. Вот некоторые из них, которые могут вам пригодиться:

Файлы RAW хранят 3 цвета на пиксель или только один?
RAW в TIFF или PSD 16 бит теряет глубину цвета
Как начать с настройками JPEG в камере в Lightroom?
Почему внешний вид файлов RAW изменяется при переключении с «светлого» на «темное помещение» в Darktable?
Ручной WB nikon d810 - это не то же самое, что "Как выстрел" в Lightroom
Почему изображения RAW выглядят хуже, чем JPEG в программах редактирования?
Сопоставление цветов в Lightroom с другими инструментами редактирования
При съемке в формате RAW нужно ли обрабатывать его повторно, чтобы изображение выглядело хорошо?

Почему происходит потеря качества с камеры на экран компьютера
Почему мои фотографии выглядят по-разному в Photoshop / Lightroom против утилиты Canon EOS / в камере?
Почему мои изображения выглядят по-другому на моей камере, чем при импорте на мой ноутбук?
Как эмулировать обработку в камере в Lightroom?
Nikon в камере против преобразования jpg lightroom
Почему мой предварительный просмотр Lightroom / Photoshop меняется после загрузки?

3 голосов
/ 22 августа 2018

Простой ответ заключается в том, что ваша камера и ваш процессор RAW (LR, Darktable и другие) используют разные алгоритмы для обработки файлов RAW. Причин много, и мы не можем оценить эти алгоритмы, потому что многие из них являются коммерческой тайной. Например, цветовая температура дневного света Canon (EOS 700D) составляет около 5200K, а Lightroom - 5500K. В некоторых ситуациях это имеет значение.

Если быть точным, файлы RAW не имеют предварительно заданной цветовой температуры. Он включен в качестве метаинформации. Процессоры RAW применяют определенный WB при выполнении описанных вами операций.

Редактировать: и на основании вашего комментария: Вы не можете изменить цветовую температуру в файле JPEG, потому что он уже "приготовлен". Цветовая температура уже применена, и вам не хватает глубины цвета для «смещения» цветов.

1 голос
/ 23 августа 2018

Это возможно для баланса белого JPEG, но инструменты редактирования, используемые для работы с RAW по сравнению с другими изображениями, ведут себя по-разному (разные алгоритмы). Далее:

  • Инструмент для пипетки является неточным, , что затрудняет копирование результатов.

  • Глубина в битах JPEG-файлов ограничивает, сколько цветов можно сдвигать по сравнению с RAW.

  • гамма-кривая все испортила.

  • Расчеты по линейным и логарифмическим данным ведут себя по-разному.

Это не совсем как это работает, но для иллюстрации:

  • Предположим, вы хотите умножить некоторые данные (1, 4, 8) на 2. В результате (2, 8, 16). Для линейных данных максимальный результат 16 в четыре раза превышает минимальный результат 2.

  • Но при логарифмическом представлении разрыв между соседними значениями, такими как 2 5 и 2 6 , намного больше, чем разница между линейными значениями 5 и 6 Кроме того, максимальный результат, 2 16 , не только в 32768 раз больше минимального результата, 2 2 , но также в 256 раз превышает исходное значение, 2 8. .

...