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

11

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

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

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

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

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

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

    д. Масштабируемые значения обрезаются до логического диапазона от 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 не будет иметь этой проблемы?

введите описание изображения здесь

Skyde
источник
1
С чего вы взяли, что JPEG WB не такой точный, как необработанный? Что вы имеете в виду точный ? Вы имеете в виду, что камера обычно не догадывается так же хорошо, как квалифицированный специалист, использующий приложение для конвертации? Или что-то другое?
Michael C
Я имею в виду, что если я скажу своей камере сохранить необработанную и JPEG-копию одного и того же изображения, а затем открыть их в светлой комнате и попытаться откорректировать баланс белого с помощью палитры цветов, щелкнув точно такое же место на изображении, получится необработанное изображение. идеально, в то время как у JPEG все еще есть странный цвет к этому.
Skyde
2
Это очень другой вопрос. Я буду редактировать название , чтобы отразить то , что я думаю , что вы на самом деле просят ...
Пожалуйста , прочитайте Мой профиль
5
Первое изображение НЕ является «исходным необработанным файлом». Это одно из бесконечно возможного числа интерпретаций необработанных данных, которые ваше необработанное приложение преобразования создавало и отображало на экране в 8-битном формате.
Майкл C
2
Возможно , не самый важный момент, но ваш шаг 2 на самом деле два отдельных шагов, и они не могут быть выполнены в том порядке , в котором вы представляете их (что было бы дополнительным способом , в котором ВБ «запеченный» в окончательном формате JPEG цвет).
junkyardsparkle

Ответы:

9

Почему программное обеспечение может корректировать баланс белого более точно для файлов 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 коррекции в камере) во время съемки. Но это не единственный законный баланс белого, который можно использовать для интерпретации необработанных данных.

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

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

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

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

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

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

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

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

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

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

Несколько пунктов из этого ответа на RAW в TIFF или PSD 16bit теряет глубину цвета :

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

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

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

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

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

RAW файлы хранят 3 цвета на пиксель или только один?
RAW в TIFF или PSD 16bit теряет глубину цвета
Как начать с в камере настройки JPEG в Lightroom?
Почему внешний вид файлов RAW меняется при переключении с «светлого стола» на «темный зал» в Darktable?
никон D810 руководство ВБ не то же самое , как «Как выстрел» в Lightroom
Почему RAW изображения выглядят хуже , чем в формате JPEG при редактировании программ?
Матч цвета в Lightroom для других инструментов редактирования Во
время съемки в RAW, вы должны пост-процесс, чтобы это сделать картину хорошо выглядеть?

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

Майкл С
источник
2
Это могло бы объяснить полосатость или постеризацию изображения, вызванную снижением точности, но все же должна быть возможность переместить белую точку в правильное положение.
Skyde
2
Да, это имеет смысл, это говорит о том, что цвет необработанного текста может быть обрезан при преобразовании в цветовую гамму TIFF. И из-за этого мы все еще потеряли информацию, которая может понадобиться для коррекции цветового баланса.
Skyde
1
Я с неба: просто меньше дискретных шагов в цветовом разрешении не означает, что баланс белого приводит к хорошим видимым разным результатам. Особенно, если версия JPEG имеет тяжелый фиолетовый тон. Более подходящей теорией будет то, что возможные значения внутренней коррекции ограничены более узким диапазоном в формате JPEG, чем в формате RAW, что приводит к тому, что исходный код интерпретируется из необработанных данных датчика, а формат JPEG представляет собой дискретные значения цвета.
Хорицу
1
Я тоже присоединяюсь к Skyde. Это просто длинная, не относящаяся к делу история о различиях между форматами raw и jpeg. Здесь нет ничего, что действительно отвечает на оригинальный вопрос.
jarnbjo
1
@jarnbjo Большая часть ответа посвящена объяснению разницы между фактическими необработанными данными в файле изображения и тем, что вы видите на их экране, когда «просматриваете» одну из многих возможных интерпретаций необработанных данных. По моему опыту, большинство вопросов такого типа возникает из-за фундаментального отсутствия понимания того, что то, что вы видите на экране, никогда не является «САМОЕ» необработанным файлом. Кроме того, по моему опыту, изложение этого несколькими различными способами повышает вероятность того, что лампочка, наконец, загорится для спрашивающего. YMMV.
Майкл С.
3

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

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

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

Ромео Нинов
источник
Алгоритмы Darktable не являются коммерческими секретами.
Пожалуйста, прочитайте мой профиль
@mattdm, правда. Но таковые из LR, ON1, CaptureOne и других неоправданных процессоров RAW ...
Ромео Нинов
Но действительно ли что-то из этого имеет отношение к вопросу? Основы коррекции баланса белого широко известны и реализуются в открытом программном обеспечении.
Пожалуйста, прочитайте мой профиль
Основы да. Но реализация может быть разной. И именно эти детали обычно держатся в секрете (для неопубликованного программного обеспечения)
Ромео Нинов
1

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

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

  • Битовая глубина в формате JPEG ограничивает , сколько цветов могут быть смещены против RAW.

  • Гамма - кривая мур все вверх.

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

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

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

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

xiota
источник