GNOME Color Manager 2.29.1

На этой неделе после примерно месяца работы была выпущена первая публичная версия GNOME Color Manager. Предварительный обзор GCM заставил себя ждать :)

Проект GNOME Color Manager был начат Ричардом Хьюсом (Richard Hughes) в конце октября этого года, обнаружившим, что цвета на лэптопе T61 и свежеприобретённом 28″ мониторе не совпадают, а простого средства исправить это в Linux нет. Другой бы на этом остановился, но разработчика DeviceKit так просто не взять :)

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

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

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

Для того, чтобы хоть как-то скомпенсировать неидеальность мира, и используется управление цветом. Объяснять принцип можно бесконечно долго, количество нюансов огромно, и ни один человек в мире не может похвастать, что знает об управлении цветом всё. Ну, может быть, Брюс Фрейзер мог, но Великого Шотландца уже три года как нет с нами.

Так что если коротко, то ключевым объектом в управлении цветом можно считать профили ICC (International Color Consortium), которые тем (LUT) или иным (matrix) образом описывают характеристики цветовоспроизведения того или иного устройства (монитора, принтера, сканера и т.д.) через аппаратно-независимое цветовое пространство CIE LAB или CIE XYZ.

Уже страшно? Вот поэтому Ричард и занялся созданием GNOME Color Manager, который, по его же словам, позволяет 90% людей запросто сделать 90% того, что им нужно. Само собой, если вы — профессионал, вместо GCM вы скорее всего захотите использовать dispcalGUI для калибровки и профилирования и ICC Examin — для подробного исследования созданных профилей.

Сборка

Если вы собираетесь собирать GCM самостоятельно, вам понадобится GNOME 2.28. Готовые пакеты есть для Fedora 12 (см. здесь) и Ubuntu 9.10 (в репозитории Паскаля де Бруйна).

Как оно работает

Сначала посмотрим, какие приложения входят в состав GCM.

Апплет gcm-prefs живёт в меню «Система > Параметры > Цветовые профили» и позволяет управлять всем, что касается управления цвета в GNOME: назначать разные устройствам профили, создавать новые профили при помощи измерительных устройств, указывать способ применения цветовых профилей для монитора.

Он же показывает стандартную диаграмму CIE, демонстрирующую треугольник цветового охвата (т.е. какие именно цвета можно сохранить в цветовом пространстве, определянном профилем). Начиная с пока ещё не выпущенной версии 2.29.2 там же отображается график кривой тоновоспроизведения (TRC).

Небольшое приложение gcm-import, которое вызывается через Nautilus и показывает метаданные профиля, диаграмму CIE и позволяет импортировать профиль (что позволяет затем выбирать его для того или иного устройства в gcm-prefs).

Программа gcm-session, которая является службой D-BUS, загружаемой по требованию. С её помощью из GCM можно получать, к примеру, данные о рекомендованном профиле рабочего пространства и т.д. Этому интерфейсу сейчас тоскливо и одиноко, потому что его никто пока не использует.

Ближайшие кандидаты — GIMP, который ограниченно пользуется D-BUS с верси 2.4, и Inkscape, в котором в ближайшее время появится поддержка D-BUS, реализованная Сореном Бергом в рамках программы Google Summer of Code 2009.

Программа gcm-apply, которая восстанавливает применённые изменения, разрушенные по той или иной причине. Две наиболее распространённые причины — засыпание компьютера (hibernate) и скринсейвер.

В пакет входят ещё несколько служебных программ, работать с которыми вам скорее всего не придётся.

Теперь давайте посмотрим, что происходит при запуске апплета Цветовые профили. Апплет читает sysfs и использует udev для определения производителей устройств. Типы определяемых устройств таковы:

  • мониторы, поддерживаемые XRandR;
  • принтеры, пока только HP;
  • сканеры, поддерживаемые SANE;
  • цифровые фотоаппараты, поддерживаемые gPhoto;
  • видеокамеры, поддерживаемые video4linux;

Здесь возникает две необходимых ремарки. Во-первых, применение профиля к принтеру всё равно пока не работает, потому что необходимо взаимодействие с проектом CUPS, где с управлением цветом пока не всё гладко. Во-вторых, ограничение принтерами HP существует только потому, что других принтеров у Ричарда нет.

Если вы умеете создавать правила udev, не откажите в любезности добавить поддержку принтеров других производителей и поделиться ею :)

Итак, обнаружив устройства, апплет тем или иным способом читает данные о них. В случае с монитором, к примеру, апплет читает данные из EDID через pnp.ids (пакет hwdata), которого в той же Ubuntu 9.10, стыд и позор, почему-то нет.

Выбрав устройство, вы можете указать профиль, а также скорректировать некоторые параметры — гамму, яркость, контраст. Дальнейшее проще объяснить на живом примере.

Калибровка и профилирование монитора

Давайте сразу внесём ясность. То, что обычно называют калибровкой монитора, на самом деле является калибровкой и профилированием. Собственно калибровка — это приведение монитора в типовое состояние, обычно соответствующее заводским настройкам. А вот всё последующее измерение и создание по его результатом профиля называется профилированием (английский термин — characterization).

Для профилирования GCM использует приложение dispcal из пакета Argyll CMS. Поддерживаемые измерительные устройства таковы:

  • Gretag-Macbeth Eye-One Pro;
  • Gretag-Macbeth Eye-One Monitor;
  • Gretag-Macbeth Eye-One Display 1, 2 или LT;
  • X-Rite ColorMunki;
  • Pantone Huey;
  • MonacoOPTIX;
  • ColorVision Spyder 2 и 3;
  • Colorimètre HCFR.

Из них поддержка Spyder3 и ColorMunki реализована только в Argyll 1.1.0 RC2. На момент публикации обзора в продаже можно с лёгкостью найти i1 Display 2, Spyder3 и ColorMunki в разных его вариациях (если вас не отпугнёт ценник).

Итак, нажимаем кнопку «Создать профиль для устройства». Появляется диалог, который внятно описывает шаги по ручной калибровке монитора.

В идеале, этот шаг должен быть автоматизирован путём передачи монитору нужных команд по DDC/CI. К сожалению, проект DDCcontrol, который здесь был бы очень уместен (тем более что в его состав входит апплет GNOME для переключения режимов монитора), «немножко» загнулся по причине отсутствия разработчиков.

Далее вам предлагается присоединить устройство измерения и разместить его а центре экрана. Здесь же следует отметить, что при сборке GCM может указать волшебный ключик --enable-hardware-detection, который требует пропатченную версию Argyll, могущую определять подключенность устройств измерения. Готовая пропатченная версия Argyll, опять же, доступна в репозитории Паскаля де Бруйна. Можно обойтись и без неё, поскольку весь смысл в том, что она автоматически делает доступной кнопку «Создать профиль для устройства» при наличии подключенного устройства измерения.

Собственно профилирование выполняется в два этапа. Сначала —предварительное измерение:

Затем — вторая серия измерений:

Снаружи это выглядит примерно так:

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

На всё уходит около двенадцати минут. Результат — созданный, автоматически импортированный и применённый профиль:

Основные данные профиля

Переключившись на вкладку «Профили», можно посмотреть метаданные, диаграмму CIE и кривую тонкоррекции.

График цветового охвата и кривая отклика

На последней вкладке можно задать параметры, используемые по умолчанию. Та их часть, что касается монитора, нуждается в расшифровке.

Дополнительные параметры управления цветом

Загруженный профиль делает ровно следующее: содержимое его тэга vcgt загружается в справочную таблицу видеокарты, храняющую соотношение цветов (VideoLUT). Таким образом выполняется глобальная цветокоррекция. Но цветоуправляемым приложениям нужно знать об этом, чтобы не выполнять лишнюю коррекцию, поэтому в сервер X дополнительно пишется атом _ICC_PROFILE, который и читается приложениями. Приложения таких пока что два: GIMP и Inkscape. Ровно по этой причине реализовано такое богатство вариантов.

В диалоге настройки GIMP нужно включить эту галку:

GIMP

В диалоге настройки Inkscape — эту:

Inkscape

Между прочим, для нормальной работы многомониторной конфигурации вам понадобится поддержка видеодрайвером XRandR 1.3. Для одномониторной достаточно и XRandR 1.2.

Калибровка сканеров и цифровиков

Через gcm-prefs вы можете создать профиль для сканера или цифровика средствами Argyll. Для этого вам нужен файл скана или фотографии мишени IT8 на отражение (reflective) в формате TIFF и референсный файл к этой мишени.

Самый дешёвый вариант на российском рынке — мишени X-Rite и LaserSoft размером 5 на 7 дюймов с шкалой, напечатанной на бумаге KODAK или Fuji. Стоят они примерно 2,5 тысячи рублей. Референсный файл, содержащий описание мишени, качается на сайте. Если торопиться некуда, вы можете заказать мишень у Вольфа Фауста. Вместе с пересылкой стоимость получается вдвое дешевле.

Сам процесс упрощён до неприличия: слева выбираете устройство, справа нажимаете кнопку запуска профилирования. Затем последовательно указываете файл изображения и референсный файл. Всё.

Правда, прямо сейчас толку от этого мало, поскольку ни XSane, ни Gnome Scan, ни новомодный Simple Scan пока что не умеют работать с GCM, а цветоуправляемым из них является только первое приложение.

Будущее проекта, отдалённое и не очень

Прямо сейчас в git происходит ряд изменений. Во-первых, код, отвечающий за разбор файлов цветовых профилей переписывается: вместо собственных функций понемногу используются функции библиотеки LittleCMS. Во-вторых, в новой версии будет зашита зависимость на пакет shared-color-profiles, выпущенный всего пару дней назад. Уже готовится вторая версия этого пакета, где более свободно распространяемые профили отделены от менее свободно распространяемых. В-третьих, как уже указано выше, добавлено отображение кривой тонкоррекции.

Что касается более отдалённого будущего, ожидается взаимодействие с такими проектами как CUPS, HPLIP, GIMP, Inkscape. Калибровка принтеров принципиальной проблемой не является: Argyll поддерживает некоторые измерительные устройства X-Rite, да и ColorMunki, как известно, является универсальным измерителем.

По ряду причин Ричард не стал использовать фреймворк Oyranos, позволяющий определять гибкие политики централизованного управления цветом. Oyranos сейчас используется только в разрабатываемом апплете для KDE4, но скорость разработки апплета такова, что в KDE 4.4 мы его скорее всего не увидим. Собственно, GCM и сам не попадает в GNOME 2.30, а вот вхождение его в состав GNOME 3 уже вполне реально.

Скачать

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*


Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.