Локальные проблемы цвета в цифровой фотографии

1. Некорректное определение баланса белого

Знакома ли вам проблема «красных лиц» и «фиолетовых теней»? Если да, скорее всего вы стали жертвой некорректных вычислений баланса белого в вашем Raw-конвертере. Особенно явно эта проблема проявляется в Adobe Camera Raw и Adobe Lightroom. В меньшей степени – в Capture One, Aperture и других конвертерах.

Бытует мнение, что «Canon краснит», а «Nikon зеленит». Безусловно, у каждой камеры есть свой характер цветопередачи, что особенно заметно при съемке в JPEG. Но нельзя недооценивать влияние процесса Raw-проявки, который обычно вносит существенные изменения в итоговую картинку. Основу цветового решения при этом составляет баланс белого.

Илл. 17. 1. RGBG-структура байеровской матрицы

Что такое баланс белого? Это поправка цвета, компенсирующая неспособность камеры к цветовой адаптации, которая является естественным свойством человеческого восприятия. В процессе Raw-конвертации это достигается установкой 4 коэффициентов экспозиции (умножения сигнала) для каждого канала исходных данных RGBG (илл. 17.1). Если посмотреть на сырой Raw-файл без приводки баланса белого, то в большинстве сюжетов полученная картинка будет зеленоватой (илл. 17.2 [а]). Это связано с тем, что для восприятия человека самым важным (информационно насыщенным) спектральным диапазоном является именно зеленый. Причины этого чисто эволюционные и связаны с историей развития человека как биологического вида.

Илл. 17.2 [а, б]

Современные фотокамеры разрабатываются с учетом особенностей восприятия человека и при экспонировании отдают предпочтение зеленому каналу. По этой же причине зеленых пикселей на классической «байеровской» матрице в 2 раза больше, чем синих и красных. По сравнению с результирующим зеленым каналом (который вычисляется из двух) красный и синий экспонированы, как правило, меньше (илл. 17.2 [б]).

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

Илл. 17. 3

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

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

Проблема некорректного баланса белого многократно усиливается при повышении контраста. Большинство операций, которые мы производим в конвертере, так или иначе сводятся к определенной форме контрастной кривой, которая применяется к изображению. Начиная от непосредственно кривой Curves, как правило, доступной в одной из панелей управления, и заканчивая основными ползунками – яркость, контраст, экспозиция, черная точка и другими.

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

Илл. 17. 4

Предположим, на определенном этапе обработки в Raw-конвертере мы решили сделать лица азиатских детей светлее и контрастнее (илл. 17.4). Неважно, делаем мы это в Raw-конвертере или в Adobe Photoshop, результат для рассматриваемых операций будет по сути одинаковым. Для этого необходимо применить примерно следующую форму кривой (илл. 17.5).

Илл. 17. 5

Посмотрим, что при этом произойдет (илл. 17.6).

Илл. 17. 6

Изображение действительно стало светлее и контрастнее, но цвет лиц, на мой взгляд, получился слишком красным. Почему это произошло? Внимательно посмотрите на гистограмму лица мальчика в исходной фотографии (илл. 17.7).

Илл. 17. 7

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

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

Результат – избыточно красные лица, которые, полагаю, многим из вас хорошо знакомы. По этой же причине часто приходиться сталкиваться с излишне фиолетовыми тенями и другими чисто техническими проблемами цвета.

Казалось бы, напрашивается решение – применять светлотно-контрастные преобразования к каналу L из Lab или в режиме наложения Luminocity. Посмотрим, что бы из этого вышло в нашем примере. Для этого просто изменим режим наложения слоя Curves (илл. 17.5) с Normal на Luminocity. Сравните результат (илл. 17.8) с тем, который получается при аналогичной операции, но в режиме наложения Normal (илл. 17.6).

Илл. 17. 8

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

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

В приведенном выше примере минимизация насыщенности красного цвета сработала на руку, так как цвет лиц был изначально слишком красным. Но в общем виде повышение контраста без повышения насыщенности будет доставлять куда больше проблем, чем приближать нас к хорошему результату. При повышении контраста исходно малоконтрастного изображения с помощью L-кривой, картинка будет всегда оставаться достаточно бледной. Для повышения насыщенности придется применять соответствующие инструменты, что в итоге неизбежно будет приводить к плохо сбалансированным цветовым решениям. Как мы уже знаем из первых глав, работа с цветовой насыщенностью в обход светлоты – это ложный путь в поиске гармоничного результата.

Казалось бы, другой очевидный выход – дать пользователю возможность управлять поканальными кривыми и индивидуально для каждого файла регулировать цветовые установки. Более того, такая возможность реализована, например, в Apple Aperture и Capture One, а также с недавних пор в Adobe Camera Raw и Lightroom. Однако и это не решает проблемы, так как управлять светлотой и контрастом фотографии через поканальные кривые еще сложнее. Попробуйте себе представить, что для каждой фотографии вам придется вручную настраивать все три кривые RGB. Это не только трудоемко, но и неизбежно будет уводить нас от стабильного результата в рамках серии фотографий. Работа с поканальными кривыми – попытка борьбы с плесенью, а не с сыростью. Это еще один дополнительный инструмент, который преподносится разработчиками как новая возможность, фактически же является попыткой поставить заплатку на проблемные места.

2. Отказ от качества Raw-конвертации в угоду скорости

Согласно опросу, проведенному мною в своем блоге относительно Raw-конвертеров, в котором приняло участие 1700 фотографов, порядка 60 % пользователей предпочитают Adobe Camera Raw и Adobe Photoshop Lightroom, 15 % – «родные» конвертеры производителей фотокамер, около 6,5 % – RPP, 6 % – Phase One Capture One, 3,5 % – Apple Aperture и примерно 5 % – с десяток малоизвестных. Почти все они, кроме RPP и, может быть, Apple Aperture, используют при вычислениях целочисленные математические операции. Что это такое?

Любые параметры, которые мы задаем в процессе конвертации с помощью ползунков, вводимых чисел или кривой, так или иначе сводятся к определенным математическим операциям. Целочисленная математика отбрасывает в результате расчетов все цифры после запятой. В такой математике, например, 5:2 = 2. Математика же с плавающей точкой дает другой ответ: 5:2 = 2,5.

Насколько важна эта точность, учитывая, что в основном работа идет с большими числами, а конвертеры используют различные ухищрения, позволяющие в некоторой степени повысить точность математических операций?

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

Во-вторых, для восприятия человека значительно важнее теневой диапазон, который в силу меньшего количества используемых бит характеризуется меньшими числовыми значениями. Например, самая светлая точка в 12-битном представлении имеет значение 4096 уровней. Но уже 8-битное число, которым описываются более темные тона, соответствует всего лишь 256 уровням. То есть в тенях ошибка всегда будет больше, к тому же она будет заметнее глазу. Подобные ошибки, в частности, могут проявляться в снижении детализации и повышении уровня шума.

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

Особенно актуальной становится проблема неточной математики при работе с высоким контрастом, значительными сдвигами экспозиции и особенно в случае ее увеличения.

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

Не стоит забывать, что основные разработчики Raw-конвертеров – коммерческие компании. Их первоочередная задача – завоевать массового потребителя, а создание качественного инструмента для фотографов отходит на второй план. Хотя в теории одно другому не мешает, на практике вступает в силу вопрос приоритетов. Качеством изображения пренебрегают ради скорости и визуального контроля за результатом в режиме реального времени. Считается, что артефакты скоростной конвертации большинство потребителей не в состоянии заметить и тем более оценить.

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

Есть и другие, чисто технические и организационные сложности в реализации точной математики. Производители могли бы с ними справиться, если бы в этом была необходимость. Но этому не уделяется должного внимания из-за отсутствия достаточного спроса на высокое качество конвертации и неготовности пользователя платить скоростью за качество.

3. Техническая, а не фотографическая логика работы инструментов

Исторически цифровые фотокамеры переняли у пленочных фотографические параметры и терминологию: экспозиция, диафрагма, выдержка, ISO, цветовая температура освещения и другие. С некоторыми нюансами логика съемки на цифровую камеру в целом похожа на логику пленочного периода. Появившиеся вместе с цифровой фотографией Raw-конвертеры в целом сохранили эту логику, однако в процессе их эволюции часть важных фотографических принципов была значительно упрощена.

Тем не менее эти принципы заняли свое место в фотографии неспроста. Они изначально отражали особенности восприятия человека и помогали фотографу мыслить художественно.

Например, при повышении фотографического контраста тени всегда затемняются сильнее, чем осветляются света. Именно так происходит при разноконтрастной проявке фотопленки, где на контраст мы можем влиять температурой проявителя и скоростью перемешивания, а также исходной экспозицией при съемке. Аналогичным образом происходит повышение контраста при печати на бумагу, т. к. характеристические кривые бумаги также имеют форму с приоритетом теней.

Если же рассматривать современные Raw-конвертеры, то в большинстве из них контраст повышается либо одинаково для светов и теней, либо адаптированно в зависимости от распределения светлот на фотографии. Что в целом не соответствует восприятию человека и значительно уводит фотографа в сторону от правильной и быстрой работы с изображением. В итоге приходится использовать различные ухищрения, чтобы компенсировать воздействие на света слишком примитивного «лобового» контраста. Это усложняет работу, делает ее более долгой, а результат – сомнительным. Еще один важный нюанс связан с формами контрастных кривых. Как мы знаем, изображение, которое регистрирует цифровая камера, равно как изображение на негативной фотопленке, очень малоконтрастное. В процессе его приведения к некоторому привычному виду используются определенной формы контрастные кривые. В случае фотопленки это довольно сложной формы характеристические кривые пленки и бумаги в соответствии со стандартами проявки и печати. В случае цифрового файла – это некоторая базовая кривая в Raw-конвертере. Мы уже рассматривали подобную кривую в главе «Честность» в фотографии», когда говорили о параметрах по умолчанию в Adobe Camera Raw (Lightroom).

Аналогичной формы кривые используются в большинстве распространенных конвертеров. Такие кривые довольно примитивны и практически не связаны с остальными параметрами Raw-конвертации, т. к. являются дополнительной обработкой, накладываемой внутри конвертера на результат расшифровки Raw-данных, тогда как фотографическая логика воздействия кривой напрямую связана с параметрами проявки (температура, скорость перемешивания и т. д.). Результат воздействия таких кривых приходится довольно долго визуально согласовывать с остальными параметрами конвертации, а сами кривые задавать вручную. Чисто техническая, а не фотографическая логика работы с кривыми опять-таки уводит фотографа в сторону от быстрого достижения хорошего результата.

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

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

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