Баланс белого при дневном освещении

В комментариях к предыдущей заметке высказывалось сомнения в серьезности обсуждаемой проблемы. Дескать, динамический диапазон большой, вытянет. Быстрый поиск в архиве легко нашел картинку не очень контрастной сцены, которая была экспонирована с контролем пересвета средствами камеры (поканальная гистограмма, мигающие области пересвета), но при этом имеет вполне заметные проблемы с пересветом зеленого канала.

Давайте рассмотрим этот пример детально.

Инструментарий: Rawnalize

Для получения картинок без наложенного баланса белого обычно используют dcraw -4, однако этот путь очень долгий и неудобный, нужно конвертировать из PPM, домножать на константу (разную для разных камер). Быстро просмотреть полсотни файлов из архива таким способом невозможно.

Открытием дня стала программа Rawnalyze, которая позволяет посмотреть RAW as is, гистограммы, поиграться с балансом белого и так далее. Упоминание о ней я нашел в форумах Luminous Landscape, которые оказались крайне интересным чтением (в отличие от самого сайта).

Rawnalize поддерживает последние камеры Canon (формат CR2, начиная с 20D), некоторые камеры Nikon (нежатый NEF), все прочие поддержаны через формат DNG.

К сожалению, на файлах от Canon 30D и Kodak SLR/c (через DNG) при попытке работы с выделением (так, например, там ставится баланс белого) программа падала, но поиграться с данными от Canon 1Ds Mark II удалось без проблем.

Тестовое изображение

Рассматриваемая картинка была снята в Крыму на майские праздники, это первый "водопадик" на Черной Речке, если идти от водохранилища. Снято днем, при солнце за облаком. Картинка не безумно контрастная, в динамический диапазон камеры должна бы влезть (хотя и вплотную):

bb-sample1.jpg
(смотреть 1000x667 в новом окне)

Картинка получена Adobe Camera Raw (ACR), чтобы вытащить света потребовалось довольно много Highlight Recovery.

Если посмотреть на это же изображение с помощью Rawnalize, без наложения баланса белого, то видно, что оно зеленое (показана только центральная часть, в Rawanalize нет зума):

bb-raw-image.jpg
(смотреть скриншот 1196x1102 в новом окне)

На гистограмме, в свою очередь, видно, что зеленый канал передержан, а красный и синий - недоэкспонированы (каждое деление по оси X - это 1/3 стопа):

bb-hist.png
Если взять недодержаный на ступень вариант (у меня такой есть), и посмотреть коэффициенты баланса белого, то мы увидим:
  • красный канал недодержан на 1.1 стоп относительно зеленого;
  • синий канал недодержан на 0.5 стопа относительно зеленого же.

В RAW-конверторах с худшим восстановлением клиппинга, чем в ACR, видны большие проблемы в светах (пурпурные пятна), скриншот C1 Pro 3.7.3:

bb-cast.jpg

Конечно, можно было бы недодержать 0.5-0.7 стопа и все было бы отлично. Только как узнать, что кадр передержан ?

Суть проблемы

Если коротко, то проблема сводится к двум пунктам:

  • разбаланс чувствительности по каналам убивает около стопа динамического диапазона по недодержаным каналам;
  • (гораздо хуже) нет возможности диагностировать клиппинг при помощи доступных при съемке средств.

Но это же будет видно на гистограмме и в мигающих участках пересвета на камере?

Короткий ответ: увы, нет, во всяком случае при стандартных настройках камеры.

Дело в том, что и гистограммы и мигающая подсветка пересвеченных участков картинки делаются по 'jpeg preview' т.е. по изображению, к которому уже применен баланс белого. Если вы используете автоматический баланс белого или же баланс для дневного света (в рассматриваемом примере это практически одно и то же), то равномерный поканальный баланс в превьюшке уже будет как-то установлен, либо понижением зеленого канала, либо повышением двух остальных. Следовательно, нам покажут или пересвет по всем трем каналам (которого нет), или нормальную экспозицию по ним же (которой тоже нет). Решить эту проблему можно путем установки такого баланса, который не трогает каналы. Но стандартной возможности это сделать в камерах нет (про обход этой проблемы у меня запланирована отдельная статья, которая выйдет в ближайшие дни).

Более того, этот разбаланс не виден и в RAW-конверторе по той же самой причине. Картинка с highlight recovery, гистограмма хорошая:

bb-recovery.jpg

Но и без highlight recovery, с поправленной экспозицией (чтобы не было клиппинга) мы видим ровную гистограмму по каналам и отличный баланс в светах (смотреть на значения color samplers):

bb-norecovery.jpg

Как жить дальше?

Как мы видим, даже диагностировать проблему без специальных средств (вроде dcraw или Rawnalize) достаточно трудно, ее тщательно прячут от неподготовленного пользователя (что скажет пользователь, увидев зеленую картинку?). Конечно, пути решения есть.

Диагностику камерой в процессе схемки можно лечить установкой правильного (а если быть точным, то "никакого") баланса белого в камере (текст про это скоро будет, следите за анонсами!).

Сбалансировать чувствительность сенсора самим сенсором, очевидно, нельзя. Следовательно, нужно балансировать фильтрами (как я уже писал ранее). В частности, для рассмотренного примера:

  • фильтр CC10M уравнял бы зеленый и синий каналы, дав примерно полстопа прибавки к динамическому диапазону;
  • комбинация CC10M+81B(или KR3), либо комбинация CC20M+CC10Y, либо комбинация CC10M+CC10R вычли бы стоп из зеленого и полстопа из синего, уравняв чувствительность всех трех каналов.

Конечно, для очень многих сцен достаточно только хорошей диагностики. Без диагностики придется быть привязанным к Adobe и тамошнему Highlight Recovery (в остальных конверторах это сделано хуже), либо всегда недодерживать на полстопа-стоп "для гарантии".

Comments

Нда.... Что дело серьёзно, понятно было и из прошлого поста, но вот что настолько серьёзно... И ещё это отлично объясняет совершенно непонятное поведение моей d70s на некоторых снимках. Теперь многое становится ясно... Жаль только, что это означает, что с теми снимками уже действительно ничего в смысле исправления означенной беды не сделаешь, а я ведь думал, что это я что не так делаю при конверсии и обработке. Очень жаль...

Спасибо Вам большое за статью, очень интересная тема. Удачи!

Если в каком-то из каналов пересвет (даже если на гистограмме его не было), то уже приплыли. Ну или почти приплыли.

Лучше всего восстанавливает цвета ACR (или Lightroom, там одинаковый движок)

Да, спасибо. ACR пользуюсь.

Не понимает этот аналайзер DNG из Pentax K10D :(
Вообще на битость TIFF-заголовка ругается.

Не понимает этот аналайзер DNG из Pentax K10D :(
Вообще на битость TIFF-заголовка ругается.

Он вообще сильно глючный, ну а что делать.

Ну, я послал пару файлов (как ссылки) авторам, с баг-репортом, посмотрим. Ответа пока нет...
Половина файлов -- Inv TIFF Header, половина -- не понимает формат картинки, но мета-иформацию вытягивает.

По поводу "зеленой" картинки (вторая сверху). Не потому ли она зеленая, что количество R, G, B пикселов "увиденных" сенсором через Байес-матрицу составляет 1/3, 2/3 и 1/3 от их общего числа соответственно?

Нет, конечно.
Конкретно в dcraw значения "парных" зеленых пикселов усредняются.

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

Сначала надо договориться о терминах. Я не очень понимаю, что имеется в виду под "светокоррекцией"...