В этой статье автор делится тем, что узнал сам, когда заинтересовался темой о калибровке монитора и создании его цветового профиля в домашних условиях. Автор применил свои знания при создании программы предназначенной для визуальной калибровки монитора.
В чём существенные отличия между профилированием и калибровкой? Доступны ли эти процедуры домашнему пользователю компьютера?
Суть профилирования и калибровки
У тех, кому требуется правильная цветопередача на мониторе, возникает задача выбора способа достижения такой цветопередачи.
Если это монитор профессионала, то ничто не мешает приобрести спектрофотометр или колориметр с соответствующим программным обеспечением, или заказать услугу профилировщика.
Для фотографа любителя такой путь может оказаться неприемлемым с финансовой точки зрения.
Кроме того, есть пользователи ПК, которым просто интересно разобраться в тонкостях процесса профилирования и калибровки. Ради любопытства покупать дорогие средства профилирования и калибровки обычно не очень хочется.
Среди бесплатных программ использующих аппаратные средства особое место занимает DisplayCal совместно с AgrillCms. Для калибровки требуется колориметр, система создаёт профиль монитора и videoLUT.
Есть программы и не требующие применения аппаратных средств. В этом случае контроль процесса калибровки выполняется визуально по специальным тестам.
Среди таких программ есть не дорогие, и даже бесплатные программы для выполнения визуальной калибровки. Эти программы предлагают выполнить некоторое количество шагов для достижения результата.
Прежде чем выбирать способ калибровки или профилирования есть смысл разобраться в сути этих процедур, узнать отличия в применяемых методиках, и тогда сделать выбор в пользу той или другой программы, или методики.
Цветовой профиль ICC
Цветовой профиль монитора это небольшой файл (*.icm), который может использовать система управления цветом операционной системы или другая, установленная отдельно, например AgrillCms.
Прежде всего надо понимать, что цвет на экране монитора формируется из комбинаций сигналов видеокарты, соответствующих различным уровням красного, зелёного и синего цветов. Применяется понятие цветового пространства, которое используется в файле профиля. Обычно это пространство sRGB. Это цветовое пространство применяется для мониторов работающих с фотографиями и изображениями в интернете.
Цветовое пространство стандартизировано. Каждая точка цветового пространства может быть поставлена в соответствие координате цвета в системе «CIE x y», которая применяется для определения цвета, как физической величины. Она содержит координаты всех возможных цветов, которых многократно больше, чем способен воспроизвести монитор. Мониторы могут с большим или меньшим успехом воспроизвести цвета содержащиеся в системе sRGB.
Границы области воспроизведения цветов монитором называют цветовым охватом монитора. Для правильной передачи цветов фотографий и графики в интернете необходимо совпадение цветового охвата монитора и системы sRGB хотя бы на 90 процентов.
В файле цветового профиля содержится информация о том, как должна себя вести видеокарта компьютера получая информацию о цвете из графического файла. Например, для передачи правильного стандартного зелёного видеокарте приходится кроме зелёных пикселей подключать красные и синие для того, чтобы глаз ощутил предлагаемый стандартный цвет.
Кроме того, на экране могут отображаться белый цвет и градации серого вплоть до чёрного.
В аппаратных калибраторах заложены параметры «точки белого». Обычно белый воспринимается белым, если его цветовая температура соответствует свету солнечного дня. Эта цветовая температура равна 6500K. Под такую цветовую температуру обычно настраиваются цветовые профили.
При изменении условий освещения оператор наблюдает изменение тональности белого на экране. По этой причине есть смысл иметь возможность корректировки точки белого в зависимости от условий внешнего освещения. Изменение яркости внешнего освещения влияет и на точку чёрного. Самые тёмные тона, которые можно увидеть на мониторе при приглушённом освещении, могут оказаться незаметными при более ярком освещении. Есть смысл иметь возможность корректировки уровня чёрного в зависимости от условий освещения.
Если применяется созданный калибратором единственный профиль, то точка белого и точка чёрного не могут быть изменены.
Ещё один важный параметр, который содержится в профиле, это кривая тонального отклика.
Для правильной передачи светлоты цвета необходимо корректировать сигнал видеокарты, чтобы яркость пикселей на экране соответствовала светлоте исходного цвета. С учётом того, что для получения нейтрального цвета уровни сигнала видеокарты уже скорректированы, остаётся установить правильную кривую тонального отклика. Тогда стандартная серая шкала на мониторе будет отображаться верно.
Таблица videoLUT
Но есть и способ показать видеокарте, как надо корректировать свои сигналы для правильной цветопередачи, передать видеокарте таблицу соответствия координат цвета в системе sRGB с координатами цвета видимого на мониторе. Этот способ может применяться совместно с уже описанным.
Если система управления цветом определила некоторый режим работы видеокарты, то таблица videoLUT может внести коррективы в этот режим. Например, она может скорректировать передачу точки белого и точки чёрного для условий освещения не предусмотренных профилем.
При этом может происходить дополнительное снижение уровня сигналов и соответствующее дополнительное снижение яркости на экране.
Рассмотрим случай, когда профиль был создан для нового монитора, но со временем «подсела» яркость синих пикселей. Изображение приобрело желтоватый оттенок. С помощью videoLUT могут быть снижены уровни сигналов для красного и зелёного цвета. Передача цвета стала верной, но общая яркость при этом понизится.
Таблица videoLUT может быть записана и в сам файл профиля. Но это не обязательно. Система управления цветом не читает эту таблицу. А загрузить в видеокарту её можно и без профиля.
Чтобы обеспечить нормальную работу системы управления цветом, необходимо в сам файл профиля поместить всю необходимую информацию о передаче цвета. Тогда графические редакторы смогут воспользоваться этой информацией для правильного отображения цвета на изображении.
Если система управления цветом не применяется, то графические программы применяют к изображениям профиль sRGB, а передача цвета на экране при этом определяется полностью таблицей videoLUT. Если вы, и ваш монитор можете обойтись без системы управления цветом, то устаревший файл профиля можно удалить, все корректировки выполнять только в таблице videoLUT, при этом общая яркость изображения при правильной передаче цветов будет несколько выше, чем с применённым профилем (ограничения на входе видеокарты будут сняты).
Как поступать в каждом конкретном случае, решать вам.
А мы рассмотрим один из способов калибровки монитора с помощью создания videoLUT, который не требует применения аппаратных средств. Он может быть применён как для работы с системой управления цветом и загруженным профилем, так и самостоятельно, без использования системы управления цветом и без профилей.
Если вы считаете, что профиль всё-таки необходим, но у вас нет нормального профиля для вашего монитора, моете использовать профиль, который не очень сильно ограничивает возможности монитора, но в какой-то степени упорядочивает работу видеокарты. Это может быть один из файлов sRGB.icc которые можно найти в сети.
Если известно, что реальный цветовой охват монитора значительно превосходит sRGB, то можно установить профиль AdobeRGB1998.icc .
Некоторые CMS не распознают профили версии 4, например agrillCMS. Но в разработке стандартов ICC принимала участие компания Microsoft, поэтому все поддерживаемые версии Windows должны в своей CMS поддерживать эти версии.
Таблицы videoLUT могут быть созданы в разных форматах. Даже при загрузке такой таблицы в профиль (для этого предназначен не стандартизованный тег vcgt) можно применять различные форматы. Сейчас используются в основном два формата таблиц, если не считать отличия в их заголовочных строках. Возможны таблицы содержащие 256 строк. В них описана корректировка, которую должна выполнить видеокарта для каждого уровня сигнала о цвете, от нуля до 255. Другой формат содержит 1025 строк. Корректировка определена в них не только для целых значений входного сигнала о цвете, но и для четырёх промежуточных уровней.
Для загрузки таких таблиц в видеокарту требуются программы загрузчики. Сейчас доступны три бесплатных загрузчика.
1. dispwin из комплекта файлов agrillcms. У этой программы больше возможностей, чем просто загрузка таблицы. Но нас интересует пока именно эта её способность. Таблица, с которой работает dispwin, содержит 1025 строк, и специальные строки, позволяющие программе распознать рабочую таблицу.
Начальный фрагмент таблицы доступный программе dispwin:
0.0 0.0 0.0 0.0 0.0
00980.00082 0.00082 0.00082
0.00195 0.00165 0.00165 0.00165
0.00293 0.00249 0.00249 0.00249
0.00391 0.00333 0.00332 0.00333
2. xcalib. Это самостоятельная программа командной строки, которая формирует и загружает таблицу по девяти параметрам, передаваемым программе при запуске.xcalib -red 1.01 0.0 90.0 -green 1.01 0.0 89.973 -blue 1.01 0.0 90.054 -a
3. LUTLoader.exe. Это подпрограмма из состава бесплатной программы Калибрилла предназначенной для визуальной калибровки мониторов. Существуют как платные, так и бесплатные программы для выполнения визуальной калибровки. Эти программы предлагают выполнить некоторое количество шагов для достижения результата. Калибрилла, в результате корректировки пользователем отображаемой программой кривой по точкам, формирует таблицу из 256 строк.
Начальный фрагмент таблицы доступный программе LUTLoader:
0 0 0 0.0
1 0.333 0.332 0.333
2 0.67 0.67 0.67
3 1.009 1.009 1.009
4 1.349 1.349 1.35
Для создания таблицы videoLUT автор предлагает собственную бесплатную программу работающую по авторской методике, и написанную на Python 3 с применением Qt5 (исходники в комплекте файлов).
Программа не требует установки. Вполне приемлемый результат достигается за время не превышающее время необходимое для профилирования с аппаратными средствами. А если вы хорошо представляете себе суть калибровки и принцип действия визуальных тестов для контроля процесса, можно получить первый приблизительный результат за… 10 минут.
Variables использует просмотрщик изображений установленный в системе по умолчанию. Не все просмотрщики передают цвет без искажений. Автор, работая в Linux, выбрал qViev.
В качестве загрузчика таблиц videoLUT можно использовать любой из трёх выше перечисленных. Все они включены в состав программного комплекса. Dispwin должен соответствовать разрядности системы.
Принцип работы предлагаемой программы состоит в том, чтобы по коэффициентам для математических формул, которые зашиты в программу, изменять вид калибровочных кривых, и визуально по тестам наблюдать их воздействие на систему. При этом выводить калибровочные кривые из системы нет необходимости. Их форма в точности соответствует тем, что показаны в интерфейсе программы.
Прежде всего необходимо подобрать вид кривых по трём коэффициентам (регулировка гаммы). После удачного подбора должен быть положительным тест на гамму. В программу встроен этот визуальный тест, который появляется каждый раз после загрузки таблицы. При первичной настройке достаточно получить приблизительный результат, над которым позднее можно ещё поработать.
Затем следует ограничить контраст для каждой кривой цветопередачи по тесту, который показывает наличие или отсутствие насыщения в канале. Для этого используются ещё три переменных (регулировка контраста).
Теперь требуется согласовать кривые цветопередачи для правильной передачи цветовой температуры. Во время этой процедуры глаза должны адаптироваться к освещению, например взглядом в течение нескольких минут в окно в солнечный день. После адаптации будет ясно видно, что белый цвет имеет оттенок, который необходимо убрать. Это достигается дополнительной регулировкой контраста, но с условием, что контраст для каждой кривой не превышает значения возникновения насыщения.
Теперь можно подправить гамму каналов для более точного прохождения теста на гамму.
Следующий этап, это корректировка уровня чёрного. Для этого есть ещё три коэффициента для каждого канала и один общий коэффициент управляющий скоростью схождения кривых к нулевой точке. Тестовый тёмный почти чёрный монохроматический цвет не должен иметь каких-либо оттенков.
Теперь можно отдохнуть, а вернувшись к монитору немного поправить настройки в деталях, которые после отдыха станут заметными.
Вся работа выполняется по встроенным в программу статическим тестам (картинкам).
Когда калибровка завершена, есть смысл сохранить файлы настройки. Это три файла, в которых записаны все применяемые коэффициенты. Также сохранить надо файлы с таблицей (их два в разных форматах). Можно сохранить и файл с параметрами для запуска xcalib.
Можно создать исполняемый файл содержащий команду загрузки результата калибровки одной из трёх программ. Поместив этот файл в автозагрузку, вы получите всегда настроенный и готовый к работе монитор. При необходимости можно, используя сохранённые файлы, делать поправки для текущих условий освещения или выполнения каких-то специфических задач.
А что делает профилировщик?
Программы для профилирования мониторов делают то же самое. Только делают они это посредством аппаратных средств (спектрофотометры, колориметры). Устанавливается точка белого и точка чёрного, устанавливается необходимая форма кривых цветопередачи с контролем по тестовым плашкам, которые программы генерируют самостоятельно.
Существенным отличием является то, что программы профилировщики помещают полученные сведения из таблицы соответствия входящих и выходящих цветов прямо в цветовой профиль, который может использовать система управления цветом.
Ещё одно отличие заключается в том, что после получения результата посредством аппаратных средств нельзя изменять яркость и контрастность монитора, а также условия освещения, что не очень согласуется с возможностью применять ноутбук для обработки изображений в походных условиях.
Существуют два пути изображения от графического файла к монитору:
1. Графический файл, графическая подсистема (X-сервер), система управления цветом, видеокарта, монитор.
2. Графический файл, графическая подсистема (X-сервер), видеокарта с загруженной таблицей videoLUT, монитор.
Возможен третий комбинированный путь:
3. Графический файл, графическая подсистема (X-сервер), система управления цветом, видеокарта с загруженной таблицей videoLUT, монитор.
По данным калибровки заполняются следующие теги цветового профиля:
rXYZ, gXYZ, bXYZ — кардиналы (координаты цвета в системе XYZ); rTRC, gTRC, bTRC — значения гаммы для каждого канала передачи цвета; wtpt — параметры точки белого; bkpt — параметры точки чёрного; vcgt — тег для записи таблицы videoLUT (обычно не заполняется, зарегистрирован Apple); chad — Хроматическая адаптация. Этот тег показывает отличие точки белого от стандартного значения 5000K, которое обычно помещается в тег wtpt. Для бытовых мониторов и мониторов для работы с фотографиями рекомендуется 6500K.
Можно ли создать профиль по данным визуальной калибровки? Насколько мне известно, последние версии программы Калибрилла позволяют это делать. Достаточно Калибрилле показать созданную таблицу и попросить сохранить в файл профиля. Версия создаваемого профиля 4.4.
Если у вас не запущена система управления цветом (и даже когда запущена), этот профиль может быть загружен программой xcalib.
Профиль можно установить профилем по умолчанию.
В Linux профиль созданный Калибриллой установился штатными средствами (gnome-color-manager) без проблем. Dispvin профиль версии 4 не загружает.
Для Linux хорошее описание работы с профилями есть на странице.
Установка профиля монитора в Windows описана здесь.
Dispwin может загрузить данные таблицы для профиля, но если они совпадают с данными в установленном профиле, никаких изменений не произойдёт. Если Variables содержит данные текущего профиля, то в режиме dispwin можно их корректировать, например изменять контрастность. Сбросить данные загруженные dispwin можно только изменив эти данные.
С профилем версии 4 dispwin не работает, но загружает вместо данных профиля свои данные в систему управления цветом. Калибрилла и xcalib позволяют загрузить данные поверх данных профиля (третий путь обработки изображения). Эти дополнительные данные можно сбросить (их сбрасывает xcalib).
В Windows всё работает как обычно. Сброс данных выполняет xcalib. Видимо, дело в версиях dispwin и различной функциональности этих версий. Данные загруженные windows версией dispwin в Linux сбрасываются xcalib Linux версии.
Для версии variables для Linux перезапустить установленный профиль можно командой xiccd - -edid
в отдельном окне терминала.
Если профиль установлен в системе и запускается системой управления цветом, то при запуске Калибриллы вы увидите прямую линию на графике. В LUT нет никаких данных. При этом данные калибровочных кривых из профиля применены.
Программа Curve Viewer из состава DisplayCal показывает калибровочные кривые внедрённые в профиль (рисунок Рис. 1. "Графики цветопередачи на основе таблиц videoLUT" из неё). Программа ICC Profile Info (тоже из состава DisplayCal) показывает данные загруженного профиля.
Выводы
Тщательная визуальная калибровка позволяет получить результат не уступающий калибровке аппаратной, если ваш монитор предназначен для работы с фотографиями и подобными графическими материалами. Один из удобных и эффективных методов предлагает программа Variables.
Если в системе установлен цветовой профиль имеющий в своём составе данные калибровочных кривых, которые вас не устраивают, то лучшим решением будет заменить на время калибровки этот профиль «пустым» профилем с цветовым охватом sRGB.
Когда данные калибровки корректны и проверены по соответствующим тестам, их можно включить в цветовой профиль монитора. Создать профиль поможет программа Калибрилла.
Профили создаваемые Калибриллой имеют цветовой охват sRGB. Это значит, что замена временного профиля не изменит цветовой охват монитора и калибровка будет применена правильно.
Если в системе установлен профиль без данных калибровочных кривых, и вы по каким-то причинам хотите его оставить, можно проводить калибровку при установленном профиле. После завершения калибровки данные LUT можно загружать отдельно от профиля, или записать эти данные в существующий профиль с помощью программы Калибрилла. Не забудьте сделать резервную копию файла профиля на всякий случай.
Если потребуется незначительная корректировка данных профиля через LUT видеокарты, то при запуске Variables надо сохранить в файл переменные которые установлены в форме по умолчанию. Применение этого набора переменных в режимах 2 и 3 (управление загрузчиками) ничего не изменит в системе. Но вы сможете временно изменять контраст, цветовую температуру и другие параметры в режимах 2 и 3.
Изменения параметров будут накладываться поверх данных профиля, и могут быть сброшены. Если хотите проверить действие совсем нового набора данных, то делайте это в режиме 1. В этом режиме данные не накладываются, а заменяются. Сохраняется только цветовой охват указанный в профиле.
Наложение корректировок цвета приводит к некоторому снижению общей яркости экрана. Чем больше корректировка, тем больше снижение яркости.
Спектрофотометры могут определить спектральный состав каждого мониторного цвета. Профилировщик пересчитывает необходимые для получения стандартного цвета количества мониторных цветов. Но обычный монитор не может полноценно учесть эти поправки.
Профессиональные мониторы в которых для управления можно применять 3DLUT, могут учесть все поправки к насыщенности цветов. В нашем случае можно применять 3DLUT но уже на этапе обработки изображений. Глаз человека хорошо видит отличия между цветами на экране. Сами цвета он может определить условно. Кроме того, фотокамеры имеют спектральные максимумы чувствительности к цветам спектра не такие, как максимумы цветов монитора. Это можно обнаружить с помощью утилиты созданной как дополнение к Variables. В результате даже чистый мониторный цвет объекта съёмки после обработки кадра будет составлен из трёх цветов. Насыщенность цветов в изображении объекта всегда ниже, чем у самого объекта.
Конечно, современные фотографы создают произведения с чрезвычайно насыщенными закатами и восходами. Но в этих случаях применяются специальные технологии съёмки и/или обработки. Для результата такой обработки необходима правильная калибровка монитора, но не только она определяет конечный результат.
P.S.
Автор тестировал программу Variables, оказывая некоторое время услугу по калибровке. Случалось, что обращались люди после аппаратного профилирования не довольные её результатом, и результат программной калибровки их устроил полностью.