В очередной раз занес руку купить книжку Файрчайлда Color Appearance Models, но увидел старую запись Алексея Шадрина в форуме rudtp, что "перевод скоро выходит" и дернуло меня поискать модели цветового восприятия в Яндексе.
На удивление, в первых четырех позициях выдачи нашлось два места, где можно скачать перевод, сделанный тем же Шадриным. Скачал. Поэкономил, получается, 150 баксов, две недели ожидания и кучу сил при чтении, ибо читать на басурманском медленнее, а книжка толстая.
Правда переводчик пишет:
...русскоязычный текст может быть открыт для широкого ознакомления, так как формально уже не является точной копией оригинального документа...
Теперь буду мучатся, то ли Шадрин привнес в текст что-то свое, то ли это формальная отмазка от копирайтов.
даже в простых условиях дневного освещения
возможен клиппинг по зеленому каналу, причем этот клиппинг не диагностируется средствами камеры (гистограммами
и индикацией пересвета);
средства контроля
экспозиции неадекватны: показ гистограммы зависит от установок баланса белого на камере, а сама гистограмма
имеет мало общего с реальным распределением значений в RAW-данных.
Решение первой проблемы (разбаланса чувствительности) возможно только путем коррекции спектра: либо
фильтрами на объективе, либо фильтрами на источниках света. Методика их применения аналогична использованию
при съемке на пленку, с поправкой на кривые чувствительности.
Вторая проблема - показ гистограммы, не соответствующей данным в RAW - может быть легко исправлена
средствами камеры, чему и посвящена данная статья.
На всякий случай повторю предуведомление: рекомендации из этой статьи имеют смысл только при съемке
в RAW, попытка использовать их при съемке в JPEG приведет к катастрофическому ухудшению снимков.
Upd: поправлены ключи dcraw, у меня, оказывается, была версия полугодовой давности и ключи командной строки успели поменяться
Предуведомление: если вы снимаете на цифровую камеру только в формат JPEG,
то вам не следует читать этот текст, а следование советам из него ухудшит ваши снимки.
Данная статья предназначена только снимающим в RAW (CRW, CR2, NEF, DNG и подобные форматы).
Принято считать, что снимающим в RAW-формат установки баланса белого (далее в тексте ББ)
не важны, ибо они не влияют на содержимое получающихся файлов. По этой причине баланс
обычно ставят или в "автоматическое" значение, или в какое-то из предустановленных (солнце,
облачно, лампы накаливания и т.п.) и забывают о нем (ведь на содержимое файлов ББ не влияет).
Если вас интересует результат, то так поступать не следует.
Для нормального использования возможностей камеры, баланс белого должен быть установлен
в очень специальное положение.
В первой части статьи хочется разобраться, почему не годятся стандартные настройки.
В комментариях к предыдущей заметке
высказывалось сомнения в серьезности
обсуждаемой проблемы. Дескать, динамический диапазон большой, вытянет. Быстрый поиск в архиве легко нашел
картинку не очень контрастной сцены, которая была экспонирована с контролем пересвета средствами камеры
(поканальная гистограмма, мигающие области пересвета), но при этом имеет вполне заметные проблемы с пересветом
зеленого канала.
Принято считать, что цифровым камерам не нужны цветные светофильтры. "Да я и так в фотошопе все сделаю". То же самое говорят про градиентные фильтры (и я сам говорил), современное мнение разрешает существовать только поляризаторам и эффектным фильтрам.
Действительно, высокая линейность цифровиков позволяет обходиться без синего фильтра при галогеновом свете и без утепляющего при съемке с голубым небом. Производители камер (и RAW-конверторов) приучили, что вполне приемлемый баланс ставится автоматически.
О цене, которую за это платят, задумываются редко. И уж тем более не задумываются о том, что эта цена есть, когда снимают при дневном свете. А цена очень простая: при неравномерной экспозиции по каналам мы теряем динамический диапазон (приобретаем шумы) в недодержаных каналах.
В предыдущих сериях мы рассматривали ошибки обработки цвета, возникающие при использовании матричных профилей, т.е. таких, где преобразование в PCS (profile connection space) и обратно задается простой матрицей 3x3. В реальной жизни матричные профили используются как рабочие пространства, а на стадиях импорта изображений и печати используются табличные профили, описывающие нелинейности реальных устройств.
Методология тестирования подробно описана в первой и второй статьях серии.
Upd: включены данные по Argyll для линейной гаммы.
В первой части CMM-эпопеи с дистанции была снята CMS Argyll: в области с высокими насыщенностями наблюдались видимые взглядом артефакты. В то же время, на 16-битных файлах Argyll показала великолепные результаты, сравнимые, а на части данных и сильно лучшие, чем у лучших коммерческих CMM.
Как и я и обещал, я заслал автору баг-репорт. К моему приятному изумлению, ответ был получен через час и содержал патч к cctiff (тестовому приложению, которое я использовал в тестах). В самой CMM-engine ничего править не пришлось, там все было правильно.
Из опыта известно, что цифровой шум в тенях чаще всего возникает при обработке данных с линейной «гаммой», а это те изображения, которые мы получаем с линейных сенсоров: цифровых камер и сканеров. Давайте посмотрим, что будет с ошибками на тестовых примерах.
sRGB был выбран по той причине, что все цвета sRGB входят в Lab, следовательно, при абсолютной точности преобразований, вышеописанное преобразование не должно приводить к потере данных. В то же время, в реальной жизни для редактирования и хранения используются RGB-пространства с более широким gamut: Adobe RGB, ProPhoto, BetaRGB, EktaSpace и так далее.
Пространство BetaRGB обладает массой достоинств в качестве пространства хранения и редактирования: большим охватом реальных цветов, большой эффективностью кодирования данных. Интересно посмотреть, как ведут себя CMM-модули с этим пространством.
В предыдущей публикации были рассмотрены ошибки, которые происходят в Color Management Modules (CMM) разных систем при обработке 8-битных данных. Было показано, что такое "неразрушающее" действие как конверсия из RGB в Lab и обратно оставляет от 3-5 значащих бит от восьми.
На сегодняшний день, 8 бит неактуальны, большинство изображений производятся с большей разрядностью. Следовательно, нужно изучить и их.
Начнем с гаммы 2.2, как наиболее часто используемой при редактировании изображений.
Все, кто работает с цветом, догадываются, что любая операция редактирования немножко разрушает изображение за счет округления дробных результатов вычислений до целых значений. Вот например, наложили вы кривую, таким образом, что значение 1 должно стать 1.8, а 2 — 2.2. После округления, оба результата будут округлены до 2, отчего вместо двух разных цветов получатся два одинаковых.
Неявно предполагается, что отклонения от идеала при цифровом редактировании невелики и влияют только на младшие биты значений, что практически незаметно на глаз. В то же время, мне никогда не попадались количественные исследования. Да, на практике я знаю, что инструмент Levels в фотошопе полностью разрушает тени, а остальные инструменты ведут себя приличнее, но это единственное знание, накопленное за 8 лет работы с цветом.
Неточность работы всех средств редактирования затрудняет корректную постановку задачи: нет идеала с которым можно было бы сравнивать. По счастью, задачу можно корректно поставить для преобразования, которое должно быть минимально разрушающим: преобразование цветовых пространств в ситуации, когда мы не выходим за gamut.
Простые упражнения с фотошопом (прогнать картинку по циклу RGB->LAB->RGB, а потом посмотреть разницу через Image—>Calculations) показали, что разница по красному каналу достигает 24 единиц т.е. речь идет о 5 битах ошибки в 8-битном изображении.
Дальнейшие упражнения потребовали создания инструментальных средств и аккуратной постановки эксперимента.