RAW-данные имеют большой поканальный разбаланс, связанный с различной чувствиительностью цветовых каналов. На рисунке слева показан пример неверной диагностики - камера диагностирует вылет по красному каналу, а на самом деле имеется даже небольшой запас.
Как мы видим, внутрикамерные средства контроля экспозиции - гистограмма и индикация пересвета - не отражают реального состояния данных RAW:
- камера может показать нормальную гистограмму и отсутствие пересвета, тогда как на самом деле в одном или двух каналов имеет место клиппинг (ситуация типична для съемки при дневном освещении)
- и наоборот, камера может диагностировать пересвет, которого на самом деле нет (это часто бывает при искусственном свете).
Таким образом, любимый прием многих цифровых фотографов - контроль светов по гистограмме (Expose To The Right / ETTR) - начинает работать плохо, ибо реальных средств диагностики клиппинга у фотографа нет.
Частичным решением проблемы является установка баланса белого в камере, которая не исправляет разбаланс чувствительности по каналам. Другими словами, поканальные множители баланса должны быть одинаковыми или практически одинаковыми (при стандартных настройках множители у красного и зеленого каналов могут отличаться в 2-2.5 раза). Этот подход получил название UniWB и постепенно приобретает популярность у цифровых фотографов. Стандартного средства установки UniWB в современных цифровых камерах нет, однако камеру можно обмануть.
Необходимые приборы и материалы
- калибруемая фотокамера
- компьютер с цветным монитором
- графический редактор (фотошоп подойдет)
- программа dcraw скомпилированная под вашу операционную систему (скомпилированные варианты под Windows и Mac OS X можно взять отсюда).
Определение нейтральной точки камеры
Возьмем файл мишени с большим количеством цветов, например зафиксируем зеленый компонент на уровне 64, а красной и синей компонентами переберем все возможные значения от 0 до 255 (картинка слева; png-файл мишени можно скачать из attachments данной статьи внизу текста). Откроем этот файл фотошопом, выведем на экран в полный размер (100%) и сфотографируем:
- в RAW-формате
- со штатива
- максимально длиннофокусным объективом (используемое фокусное расстояние зависит от размеров комнаты с компюьтером) - чтобы максимально избежать виньетирования за счет косого падения света на матрицу;
- на максимально закрытой диафрагме (тоже для подавления виньетирования);
- слегка расфокусировавшись (чтобы не словить интерференцию между матрицей камеры и регулярной структурой экрана компьютера);
- ось объектива должна быть перпендикулярна плоскости монитора - нам нужно получить квадрат без искажений, проще всего это обеспечить вертикальностью монитора, горизонтальностью оси объектива и подбором высоты штативом;
- с достаточно длинной выдержкой, чтобы гарантировать непопадание в мерцание монитора (длинную выдержку обеспечит закрытая диафрагма)
По опыту автора, объектив с фокусным расстоянием 135 мм уже удовлетворяет критериям по виньетированию и искажениямю.
Далее сконвертируем RAW файл в формат tiff (16 бит, линейная гамма) с минимально-возможными преобразованиями и заданными единичными коэффициентами баланса белого:
dcraw -h -T -r 1 1 1 1 -k 0 -o 0 -4 имя-файла
Далее:
- Открываем полученный tiff-файл в Фотошопе, присваиваем ему какой-то RGB-профиль с гаммой 1.0 (в конце статьи можно скачать профиль AdobeRGB с гаммой 1.0).
- Выделяем снятую мишень (если снимали аккуратно, она должна получиться квадратной), остальное отрезаем.
- Делаем ресайз в размер исходной мишени (768x768)
- Переводим в Lab (для удобства дальнейшей обработки), на экране должно получиться что-то похожее на картинку слева: цвета сдвинуты (мы отключили баланс белого) и более блеклые.
Делаем следующие три операции:
1. Gaussian Blur с радиусом 2-3, чтобы шум и муар дальше не мешали
2. Корректирующий слой: подъем кривыми контрастности по каналам a-b (должна сохраняться нейтральная точка, например -127/-26 -- 127/26 по обоим каналам):
3. Еще один корректирующий слой с подъемом насыщенности до 98-99:
Далее находим точку, насыщенность которой не поднялась (она и есть самая нейтральная), запоминаем ее координаты по пикселям:
На исходной мишени (она того же размера, мы же делали ресайз) находим точку с теми же координатами X-Y и считываем RGB-значения (в том цветовом пространстве, в котором исходная мишень):
Генерация мишени для установки баланса
Создаем новое изображение (в том же цветовом пространстве, что и исходная мишень), заливаем его целиком найденным на предыдущем шаге цветом (у меня это 108-64-111 RGB для камеры Kodak SLR/c и 143-64-101 для камеры Canon 1D Mark III), получаем на экране мишеньку цвета magenta.
Фотографируем мишень (опять, лучше расфокусировавшись, длиннофокусной оптикой и т.п., все как выше) и ставим по ней мишени баланс белого. Проверяем результат:
- cнятая нами мишень с новым балансом должна стать серой;
- нейтральные объекты, снятые при дневном свете, - должны позеленеть (на экране камеры и при конверсии RAW c балансом 'as shot');
- dcraw -w -v должна показывать коэффициенты конверсии близкие к 1.0 по всем каналам:
/dcraw_dist -w -v _81E0897.CR2 Loading Canon EOS-1D Mark III image from _81E0897.CR2 ...
Scaling with darkness 1026, saturation 15280, and
multipliers 1.000000 1.013814 1.018557 1.013814
Как видно по выдаче dcraw, полученный баланс белого отклоняется от идеального примерно на 2%, что для всех практических применений более чем приемлемо.
Полученный баланс белого нужно запомнить в камере как один из пресетов (если камера это позволяет), либо же установить навсегда.
Демонстрация результатов
Как мы помним из предыдущей статьи, стандартные камерные установки ошибаются и при показе гистограммы и при индикации пересвета. Проверим новую установку для двух стандартных случаев.
Дневной свет
На картинке, сверху вниз, показаны (задний экранчик камеры грязный, да):
- Гистограмма камеры при установке Auto White Balance - впечатление сбалансированности по каналам
- Гистограмма камеры при установке UniWB - зеленый канал проработан куда лучше
- Реальная гистограмма RAW-данных - повторяет UniWB
Как мы видим, UniWB-гистограмма куда лучше показывает реальный взаимный баланс каналов, хотя конечно гистограмма в линейном пространстве (нижняя) и гамма-скорректированная гистограмма (средняя) выглядят принципиально по разному.
Лампы накаливания
При свете ламп накаливания автоматический баланс белого провирается в другую сторону, а опять UniWB дает почти реальную картинку (сверху вниз):
- Auto White Balance показывает передержку по красному каналу (черные пятна вокруг куклы - области передержки)
- UniWB показывает хорошую проработку по красному и зеленому
- В реальных данных есть еще полстопа запаса по красному и зеленому.
Опять, UniWB гораздо ближе к реальности. И опять подстройка настроек контрастности помогла бы получить еще более точное приближение камеры к реальности.
Что мы потеряли и что приобрели
Приобретения
Поканальная гистограмма и области пересвета стали гораздо ближе к реальным данным RAW. Это позволяет лучше контролировать экспозицию сразу после съемки при любых условиях освещения.
Потери
- Потерян реально выглядящий просмотр на камерном экранчике, показать результат модели (или, тем более, жене) уже нельзя, увидят зеленый оттенок и выцарапают глаза.
- Снимать в JPEG с такой настройкой бессмысленно.
- Потеряна возможность конверсии с балансом белого 'As Shot'.
Среди всех потерь, наиболее серьезная - последняя, ибо конверсия As Shot сильно ускоряет постобработку. Можно рекомендовать снимать первый кадр в новых световых условиях с автонастройкой, а остальные - уже с UniWB.