
Полная версия
Руководство пользователя ArgyllCMS
Характеризация (или профилирование) — это фиксация того, как устройство воспроизводит цвет или реагирует на него. Как правило, результат сохраняется в профиле устройства формата ICC. Сам по себе такой профиль никак не изменяет цвет. Но это позволяет системе, такой как CMM (Color Matching Module, модуль управления цветом) или приложению изменять цвет при работе с профилями устройств.
Зная характеристики двух устройств или цветовых пространств, можно осуществить перенос цвета из одного устройства в другое.
Имея исходный профиль (например, фотокамеры) и профиль назначения (например, дисплея), можно вычислить прямое преобразование между ними. В терминологии ICC это называется Device Link (связь устройств).
Преимущество такого способа управления цветом заключается в том, что преобразования могут создаваться на лету между любым исходным цветовым пространством и дисплеем, и все результаты отображаются в одном и том же выходном изображении.
Многие источники с разными цветовыми пространствами (или неизвестные на момент профилирования дисплея) могут быть отображены корректно.
При этом, если у вас есть N исходных цветовых пространств и M дисплеев, то для отображения любого источника на любом дисплее необходимо создать N + M профилей.
Следует отметить, что характеристика (профиль) будет действительна для устройства только в том случае, если устройство находится в том же состоянии калибровки, в котором находилось на момент проведения характеризации/профилирования.
В случае с профилями дисплея возникает дополнительная путаница, поскольку информация о калибровке часто для удобства хранится в профиле. По общепринятой практике информация хранится в теге, называемом vcgt. Хотя информация содержится в профиле, ни один из обычных инструментов (программ или приложений), основанных на ICC, не знает о ней и ничего с ней не делает, она просто «присутствует». Аналогично типичные инструменты и приложения для калибровки дисплея не будут знать о характеристиках ICC (профиле) и ничего с ними не будут делать.
*** Тег VCGT (Video Card Gamma Table) в ICC‐профиле монитора — это частный тег, содержащий, например, калибровочные кривые (таблицу гамма‐коррекции), которые загружаются непосредственно в видеокарту (GPU) для исправления цветопередачи и яркости. Он обеспечивает приведение монитора к целевым значениям, исправляя цвета на уровне видеосигнала. При этом, как сказано выше, программное обеспечение и операционная система не участвуют в процессе, кроме загрузки тега на каком‐то этапе работы.
Искажения черного цвета
Иногда после создания профиля самые темные черные тона изображения сливаются с черным цветом дисплея (установленным, например, через меню OSD).
Почему это происходит?
Причин может быть несколько, но самая распространенная: в изображении есть черные цвета, которые темнее черного цвета дисплея, поэтому алгоритм управления цветом обрезает цвета, выходящие за пределы гамута.
Некоторые популярные синтетические цветовые пространства имеют идеальный (и нереалистичный) нулевой черный цвет, например, sRGB и Adobe RGB. В реальных профилях черные цвета не равны нулю, поэтому преобразование между ними с применением колориметрического алгоритма приведет к обрезанию черных тонов и потере деталей теней. Такие темные тона отображаются как максимально черный цвет.
*** «Нулевой» черный цвет на мониторе (абсолютно черный) означает отсутствие свечения (или пропускания света) пикселей. Достижение этого уровня, если оно возможно, зависит от типа матрицы, настроек видеокарты и параметров самого монитора.
Чтобы избежать этого, необходимо применить алгоритм сопоставления цветового охвата, который будет переносить черный цвет исходного изображения с черным цветом дисплея, но сохранит различие между всеми остальными цветами.
*** Сопоставление цветового охвата (Gamut Mapping), сопоставление или маппинг цветового охвата — процесс перевода цветов из одного цветового пространства в другое, когда исходный диапазон шире целевого. Требуется, чтобы цвета, которые не может показать устройство или формат, не обрезались, но переносились в допустимые с сохранением правильного визуального восприятия.
Как правило, для сопоставления цветового охвата доступны только два способа. Основной метод: предварительно настроенное (статическое) сопоставление цветового охвата, встроенное в профили ICC типа cLUT. Второй метод подразумевает сопоставление цветового охвата «на лету» (динамически), выполняемое модулями управления цветом (CMM). Например, так делает Adobe BPC (с помощью метода компенсации точки черного), но иногда такие методы применяются в программах‐приложениях, или системами с поддержкой LCM (Little CMS).
*** Little CMS (LCMS) — это библиотека программного обеспечения с открытым исходным кодом, предназначенная для управления цветом. Она позволяет программам корректно работать с цветами, используя международные стандарты ICC (International Color Consortium) для преобразования цветовых профилей.
Установка программы Adobe BPC иногда невозможна, программа доступна не для всех операционных систем. Однако можно создать профиль дисплея с соответствующим сопоставлением цветового охвата и установить его.
Профили ICC типа шейпера/матрицы не поддерживают сопоставление цветового охвата, поскольку в них применяется только одно доступное преобразование (рендеринг); такие профили не обладают необходимой гибкостью для включения сопоставления цветового охвата, всегда имеют колориметрическую направленность. Поэтому, если требуется включить сопоставление цветового охвата, необходимо создать профиль дисплея на основе cLUT. (Обратите внимание, что не все программы или системы принимают профили cLUT).
С помощью ArgyllCMS нетрудно создать профиль cLUT, но программе colprof необходимо указать, какое цветовое пространство будет применяться в исходном файле.
Например, если исходные изображения находятся в пространстве sRGB, то команда следующая:
colprof ‐v ‐S sRGB.icm ‐D "My Display" MyDisplayProfile
Как видите, опция ‐S включит файл sRGB.icm в профиль. (Безопаснее применять профиль sRGB, предоставляемый ArgyllCMS, чем профиль sRGB неизвестного происхождения. Найдите профиль sRGB в каталоге ref.)
В данном случает создаются 3 отдельные таблицы cLUT B2A: одна для колориметрического режима, одна для перцепционного и одна для режима насыщенность.
Две таблицы (для перцепционного и насыщенности) будут иметь соответствующее сопоставление цветового охвата для исходного цветового пространства sRGB. Таким образом, остается только убедиться, что при включении профиля дисплея используется либо перцепционный рендеринг, либо насыщенность.
*** Таблицы CLUT B2A (Color Look‐Up Table, Business‐to‐Administration или в контексте ICC‐профилей — «Device to PCS») — это компоненты цветовых профилей ICC для точного преобразования цветов из цветового пространства устройства (например, принтера или монитора) в независимое цветовое пространство связи (PCS, обычно Lab или XYZ).
Оценка целевых входных данных
Существует множество мишеней цветового профилирования, созданных для характеристики входных данных, но иногда бывает сложно решить, какая из них лучше всего подойдет для конкретной задачи.
Полученный профиль будет точным только в пределах или вблизи цветовых значений, содержащихся на тестовой таблице. Это означает, что если цвета, которые вы фактически обрабатываете устройством, выходят за пределы гамута тестовой таблицы, цветовые значения будут экстраполированы профилем и, следовательно, окажутся не очень точными.
*** Гамут (Color Gamut) — это конкретный диапазон или часть всех существующих цветов, которую может отобразить устройство (монитор, проектор, принтер) или воспроизвести материал (краска, ткань). Здесь и далее гамут и цветовой охват идентичны.
*** Покрытие гамута — это процент от заданного цветового пространства, который может воспроизвести устройство. Так, если на устройстве указано, что оно покрывает 100% sRGB, оно должно отображать полный диапазон цветов sRGB.
Профиль будет точным только для цветов, близких к цветам, представленным на мишени. Чем ближе и равномернее расположены значения тестовой диаграммы в пределах цветового охвата, тем точнее будет диаграмма в целом. Таким образом, как правило, чем больше тестовых значений (больше разнообразия цветов), тем качественнее результат.
Подобно гамуту, профиль будет точным только в диапазоне уровней яркости, используемых тестовой таблицей. В темной части идеальное значение черного на тестовой таблице будет работать как световой барьер. В белой части идеальное значение белого на тестовой таблице станет идеальным 100% отражающим рассеивателем.
На практике следует учитывать еще один момент: по умолчанию точка белого профиля устанавливается значением белого тестовой таблицы, и любые значения, превышающие это значение, могут быть обрезаны профилем. Поэтому в идеале белые участки должны представлять значение белого именно для тех условий работы, для которых вы будете использовать входное устройство.
Одна из основных проблем колориметрической характеристики устройств ввода заключается в том, что такие устройства не обладают спектральной чувствительностью человеческого глаза. Приборы «видят» цвет по‐другому, чем человек, нет способа идеально компенсировать различия в профиле устройства. Некоторые спектральные значения будут выглядеть одинаково для устройства, но иначе для нас, и наоборот.
Колориметрический профиль лучше всего компенсирует различия, когда целевые тестовые цвета (ввод) имеют спектральные характеристики отражения, характерные для предполагаемого вывода. Вы получите наилучшие результаты, если тестовая мишень использует процесс печати, аналогичный применяемому вами устройству (принтеру).
Так, если вы собираетесь сканировать фотографии, вам следует использовать тестовую мишень, основанную на фотографических данных. Если вы сканируете произведения искусства, то вам следует применить тестовую таблицу с пигментами, аналогичными краскам для произведений искусства и т.д.
При характеристике фотокамер дополнительным источником спектральных различий является источник освещения. Лучше всего выбрать источник света для мишени похожим на тот, при котором вы обычно делаете фотографии.
Настройка производительности
Некоторые операции в ArgyllCMS могут выполняться медленно, поэтому имеет смысл изучить способы повышения быстродействия или нахождения компромисса между потреблением памяти и производительностью.
Например, при создании связей между устройствами или таблицами B2A профилей время выполнения часто определяется инверсией значений прямого поиска цвета. Для ускорения подобных операций предоставляется кэш в оперативной памяти, где хранятся вычисленные значения на случай, если их можно применить более одного раза. Объем памяти кэширования задается в коде и составляет половину доступной оперативной памяти системы с минимальным значением 50 Мбайт.
Размер выделенной памяти можно изменить, установив переменную среды ARGYLL_REV_CACHE_MULT на число больше или меньше 1,0. Это умножит размер кэша на указанное число. Например, 1,5 увеличит размер кэша на 50%, 0,5 уменьшит его вдвое.
Если вы заметили, что программы colprof или colink работают медленно, при этом процессоры компьютера простаивают, это будет признаком активной работы файла подкачки на жестком диске и запроса слишком большого объема памяти.
Такое поведение может быть связано с тем, что другие приложения также занимают место в памяти, или же программы ArgyllCMS пытаются запросить больше памяти, чем фактически доступно.
В таких случаях можно попробовать закрыть другие приложения или уменьшить объем памяти, предоставленной для программ ArgyllCMS, установив ARGYLL_REV_CACHE_MULT на значение меньше 1,0 (например, 0,5).
Если у вас много доступной памяти, можно попробовать увеличить размер кэша, чтобы предоставить программе больше доступной оперативной памяти (особенно если во время обработки появляется предупреждающее сообщение).
При этом, если вы установите значение близкое к 2,0, вы рискуете вызвать активную подкачку на твердотельный накопитель компьютера, что может значительно замедлить работу.
Известна настройка, способная существенно повлиять на время создания таблиц B2A — разрешение сетки обратного поиска. Чем мельче сетка, тем меньше требуется ресурсов на поиск для определения значений входного цветового пространства, соответствующих целевому значению выходного цвета, но тем больше требуется памяти и тем больше времени уходит на инициализацию сетки.
Переменная среды ARGYLL_REV_ACC_GRID_RES_MULT позволяет изменять разрешение по умолчанию с помощью масштабного коэффициента. Например, значение 0,5 уменьшит разрешение вдвое (обычно 1/8 от общего количества элементов сетки), а значение 2,0 удвоит его, что приводит к восьмикратному увеличению требуемой памяти. Слишком большое увеличение разрешения уменьшит доступную память для обратного кэша и значительно увеличит время настройки.
Форматы файлов ArgyllCMS
Argyll использует для своей работы несколько форматов файлов, некоторые определены внешними стандартами, а некоторые уникальны для ArgyllCMS.
Это следующие форматы и расширения: .ti1, .ti2, .ti3, .cal, .cht, .gam, .sp, .cmf, CGATS, ICC, MPP, TIFF, VRML, X3D, X3DOM.
Файлы .ti1, .ti2, .ti3, .cal, .cht, .gam, .sp, .cmf, .ccmx, .ccss — это специфичные для ArgyllCMS текстовые файлы ASCII CGATS.
*** CGATS ASCII — формат обмена данными, основанный на текстовом стандарте ASCII, который широко используется в полиграфии, колориметрии и цифровой печати для передачи результатов измерений цвета (например, данных спектрофотометра).
Файлы .ti1, .ti2, .ti3 — файлы для хранения значений устройства, необходимых для создания тестовой диаграммы профилирования.
Файлы создаются с помощью программ targen, chartread, dispread, filmread, scanin, fakeread, cb2ti3, kodak2ti3, txt2ti3, dispcal, printcal, synthcal.
Формат .cal содержит данные о калибровке устройства, такой файл создается программами dispcal, printcal, synthcal.
Файл с расширением .cht — это файл распознавания тестовой таблицы, в нем сохраняются описания тестовой таблицы, чтобы растровое изображение таблицы (мишени) могло быть преобразовано в значения параметров тестирования устройства с помощью программы scanin.
Формат .gam — это описание цветового охвата, в нем хранится трехмерное описание гамута. Создается с помощью программ iccgamut, tiffgamut или mpplu. Просматривается с помощью viewgam, например, для визуального преобразования одного или нескольких гамутов в файл VRML, или в качестве входных данных colink (для описания гамута исходного цветового пространства).
Файл формата .sp хранит описание спектрального источника света. Обычно он используется для записи пользовательского источника света, например, для расчета компенсации флуоресцентного отбеливающего агента для отражающих образцов, а также для расчета значений трехкомпонентной индикации CIE на основе спектральных образцов.
Файл .cmf применяется для хранения трех кривых спектрального отклика, определяющих трехстимульного наблюдателя. Формат совпадает с форматом .sp.
Формат .ccmx это матрица коррекции колориметра. Матрица создается для конкретных дисплея и колориметра, используется для преобразования значений XYZ прибора, чтобы они лучше соответствовали измерениям эталонного спектрометра для данного дисплея. Файл содержит описание дисплея, колориметра и эталонного спектрометра.
Формат .ccss это набор спектральных данных для калибровки колориметра. Для колориметров с известной спектральной чувствительностью сенсора (таких как i1d3, Spyder4 и Spyder5) этот файл позволяет создать калибровку, настроенную для конкретного дисплея. Файл содержит описание дисплея, тип технологии дисплея и тип спектрометра, используемого для снятия показаний. Дополнительную информацию см. в файлах oeminst и ccxxmake. Формат аналогичен формату .sp.
*** Колориметр i1d3 (или X‐Rite i1Display Pro / Calibrite Display Pro) — высокоточный колориметр‐зонд, предназначенный для калибровки и профилирования мониторов, дисплеев ноутбуков, мобильных устройств и проекторов.
Формат CGATS это формат обмена данными CGATS.5 из Приложения J стандарта ANSI CGATS.5‐1993, подходящий для представления данных о цвете и широко используемый для хранения значений цветовых тестов. Программа ArgyllCMS применяет его в качестве базового удобочитаемого формата для различных целей.
Файлы ICC соответствуют формату файлов цветовых профилей Международного консорциума по цвету (ICC). Формат ICC призван обеспечить кросс‐платформенный формат профилей устройств, который можно использовать для преобразования цветовых данных, созданных на одном устройстве, в собственное цветовое пространство другого устройства. Помимо профилей устройств, формат ICC также может хранить профили связи устройств, абстрактные профили и именованные цветовые профили. Этот файл обычно создается с помощью инструментов colprof или colink. Профиль связи устройств также является способом указания пользовательской цветовой модуляции чернил, например, из CMYK в 6 или более цветовых сред.
Формат TIFF (Tag Image File Format) — широко применяемый в полиграфической отрасли формат для хранения графических данных. Он поддерживает различные формы сжатия и различные цветовые пространства, включая RGB, CMYK и многоканальные.
Формат JPEG (Joint Photographic Experts Group) широко используется в полиграфической и фотографической отраслях для хранения изображений. Он поддерживает различные формы сжатия и различные цветовые пространства, включая RGB и CMYK.
Формат VRML это файл языка моделирования виртуальной реальности (VRML). Переносимый способ кодирования трехмерных объектов (таких как поверхности с цветовым охватом). Как правило, такие файлы можно просматривать с помощью подходящей автономной программы для просмотра VRML или плагина для веб‐браузера. VRML97 — это международный стандарт ISO/IEC 14772‐1:1997.
*** VRML (Virtual Reality Modeling Language) — старый текстовый формат файлов (обычно с расширением .wrl) для создания 3D‐сцен и интерактивных объектов, разработанный в 1990‐х для веб‐браузеров. Просматривать их можно, например, через специализированные просмотрщики (FreeWRL, Cosmo Player), современные 3D‐редакторы (Blender) или онлайн‐конвертеры.
X3D X3D — свободный стандартный XML‐формат файлов ISO для представления трехмерной компьютерной графики. Он является преемником языка моделирования виртуальной реальности (VRML).
X3DOM — фреймворк и среда выполнения с открытым исходным кодом для 3D‐графики в Интернете. Может свободно использоваться как в некоммерческих, так и в коммерческих целях и распространяется под двойными лицензиями: MIT и GPL. Среда выполнения JavaScript отображает встроенные файлы X3D в браузерах, поддерживающих WebGL.
Установка переменных среды
*** Переменные среды (environment variables) — это именованные текстовые объекты, хранящие информацию, используемую операционной системой и программами: пути к файлам, настройки пользователя, язык системы и т.д. Они наследуются процессами и позволяют гибко управлять поведением программ.
Чтобы установить переменную среды в командной оболочке MS Windows DOS, используйте команду set, например, set ARGYLL_REV_CACHE_MULT=1.5
Команда установит значение для данной сессии, но вы можете определить их как системные переменные.
Вы можете просмотреть отдельные переменные в командной оболочке, применяя команду echo %VARIABLE_NAME% или set ARGYLL_REV_CACHE_MULT.
Все переменные можно посмотреть с помощью команды set.
Для Mac OS X или Linux точная команда будет зависеть от оболочки командной строки, но обычно это делается так: export ARGYLL_REV_CACHE_MULT=1.5 set ARGYLL_REV_CACHE_MULT=1.5 ARGYLL_REV_CACHE_MULT=1.5
Иногда может потребоваться отдельный экспорт, например: export ARGYLL_REV_CACHE_MULT
Если вы хотите, чтобы конфигурация применялась для каждой сессии, ее следует указать в скрипте запуска оболочки. Точный файл будет зависеть от командной оболочки, чаще всего это ~/.bash_profile, ~/.zshrc, ~/.profile или что‐то аналогичное.
*** Командная оболочка (shell) в Linux — это интерпретатор, он принимает команды пользователя и передает их операционной системе. Основной оболочкой в большинстве дистрибутивов является Bash. Bash (Bourne Again Shell) — сегодня почти стандарт де‐факто. Bash совместим с языком sh, обеспечивает работу в терминале, выполнение скриптов и управление процессами.
В Mac OS X, если вам необходимо, чтобы переменная окружения была видна всем приложениям (например, DisplayCAL), придется изменить файл ~/.MacOSX/environment.plist или файл /etc/launchd.conf (в поздних системах).
В OS X 10.11 (El Capitan) и более поздних версиях необходимо создать скрипт командной строки, который устанавливает переменные окружения.
Вы можете просмотреть отдельные переменные с помощью команды echo $VARIABLE_NAME, или увидеть все переменные set ARGYLL_REV_CACHE_MULT.
Вы также можете удалить переменную окружения с помощью команды unset.
Если переменная окружения применяется как флаг, включение ее любого значения (например, "true") приведет к той или иной установке флага. Удалите переменную, чтобы снять флаг.
Переменная ARGYLL_NOT_INTERACTIVE
Обычно работа программ ArgyllCMS предполагает прямое взаимодействие с пользователем, поэтому существует несколько методов работы через консоль (командную строку). Один из методов — вывод информации о ходе выполнения функций программы. Другой метод — разрешение на запуск действия или прерывание операций одним нажатием клавиши.
Если программа запускается в исполняемом скрипте, это потребует определенной настройки.
Если переменная среды ARGYLL_NOT_INTERACTIVE установлена (имеет значение "1", "true"), то в конец каждой строки хода выполнения будет добавлен символ перевода строки вместо символа возврата каретки.
Символ перевода строки не добавляется к строкам подсказок. Строки подсказок выводятся в стандартный поток вывода.
Всякий раз, когда программа ожидает консольный ввод, она будет ожидать и считывать следующий символ и символ возврата каретки из стандартного потока ввода. При этом все последующие символы будут проигнорированы.
Во время измерения ввод символа может прервать процесс, как в обычном интерактивном режиме.
Переменная ARGYLL_3D_DISP_FORMAT
Переменная ARGYLL_3D_DISP_FORMAT определяет формат файла 3D‐визуализации для таких инструментов, как iccgamut или viewgam. Установите значение VRML, X3D или X3DOM, чтобы были созданы файлы с расширениями .wrl, .x3d и .x3d.html.
Переменная ARGYLL_COLMTER_CAL_SPEC_SET
Переменные ARGYLL_COLMTER_CAL_SPEC_SET и ARGYLL_COLMTER_COR_MATRIX можно применять для установки файла калибровки колориметра в формате CCMX (или CCSS), что эквивалентно передаче аргумента ‐X утилитам spotread, dispcal, dispread и любой другой утилите, работающей с колориметром. Если установлены два параметра, приоритет будет иметь ARGYLL_COLMTER_CAL_SPEC_SET.
Переменная ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS
ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS определяет задержку. Обычно допускается задержка в 200 мс между изменением цвета патча в программном обеспечении и отображением этого изменения на мониторе. Для некоторых приборов (например, i1d3, i1pro, ColorMunki, Klein K10‐A) ArgyllCMS автоматически измеряет и устанавливает соответствующую задержку обновления во время калибровки. В редких случаях указанной по умолчанию задержки может быть недостаточно. Допускается установить большую задержку с помощью соответствующего параметра. Так, переменная среды ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS=400 установит минимальную задержку 400 мс.
Переменная ARGYLL_DISPLAY_SETTLE_TIME_MULT
Параметр ARGYLL_DISPLAY_SETTLE_TIME_MULT — время изменения цвета окна. Обычно тип технологии отображения определяет допустимое время между появлением изменения цвета окна на дисплее и моментом, когда это изменение стабилизируется и фактически завершается в пределах допустимых отклонений. Например, ЭЛТ или плазменный дисплей могут иметь довольно большую задержку стабилизации из‐за характеристик затухания используемого люминофора, в то время как ЖК‐дисплей может иметь заметную задержку стабилизации из‐за времени отклика жидких кристаллов и любых схем повышения времени отклика.

