Руководство пользователя ArgyllCMS

- -
- 100%
- +
Многие операционные системы (ОС) имеют встроенные средства работы с цветом, такие как ColorSync (Apple macOS). Это пионерская технология для согласования цветопередачи, разработанная компанией Apple Inc. Она работает на уровне операционной системы, заставляя все совместимые программы корректно отображать цвета.
В ОС Microsoft Windows для этих же целей используется базовая подсистема WCS/ICM (Windows Color System / Image Color Management), она позволяет применять ICC-профили, хотя зачастую требует ручной настройки сторонних программ.
В Linux применяются собственные технологии управления цветом, поддерживающие OpenICC для свободного программного обеспечения.
*** OpenICC — международное сообщество разработчиков и открытый проект, созданный для улучшения и стандартизации систем управления цветом (Color Management) в операционных системах с открытым исходным кодом, таких как Linux.
*** ColorSync — это встроенная в macOS технология управления цветом. Она обеспечивает точное и согласованное отображение цветов на мониторе, при печати или просмотре на разных устройствах. Технология автоматически адаптирует цвета, используя специальные ICC‐профили для каждого дисплея, принтера или сканера.
*** Движок ACE (Adobe Color Engine или Adobe Color Management Engine) — базовый модуль управления цветом в Adobe Photoshop и других программах компании Adobe. Отвечает за то, чтобы цвета на изображении выглядели одинаково при просмотре на мониторе, сохранении для Интернета или при подготовке к печати.
CMM LittleCMS
LittleCMS и ArgyllCMS — это два фундаментальных инструмента для работы с цветом в операционной системе Linux, но они выполняют принципиально разные задачи: LittleCMS работает как «транслятор» цвета (цветовой движок, CMM), ArgyllCMS как мощный комплекс для создания точных цветовых профилей и калибровки.
LittleCMS (LCMS) — это компактная, высокоточная и быстрая библиотека с открытым исходным кодом, предназначенная для управления цветом (CMM). Главная задача CMM — гарантировать, что цвет на входе (например, файл с изображением, сделанным фотоаппаратом) будет правильно и без искажений передан на выход, на монитор или принтер.
Библиотека является очень авторитетной и используется многими графическими программами, такими как ACDSee, Darktable, Digikam, Foxit Reader, GIMP, GraphicsMagick, ICC Examin, ImageMagick, Inkscape, Krita, Mozilla Firefox, OpenJDK, Opera, RawTherapee, Scribus, UFRaw, VueScan, Google Picasa, mpv.
Процесс трансформации цвета начинается с того, что LCMS загружает два ICC‐профиля: профиль источника описывает, как цвета воспринимаются конкретным устройством или пространством (например, Adobe RGB как профиль монитора); профиль приемника описывает цветовые возможности устройства, на которое нужно вывести изображение (допустим, профиль принтера FOGRA39 или стандартный sRGB).
LCMS переводит цвета из цветового пространства источника в независимое от устройств пространство PCS (Profile Connection Space). LCMS использует как связующее звено PCS пространство CIE Lab. Так как напрямую сопоставить цвета RGB монитора и CMYK принтера (или любые другие) математически сложно, LCMS переводит цвет в независимое цветовое пространство CIE Lab. Это пространство охватывает все цвета, которые способен различить человеческий глаз. Затем библиотека рассчитывает математическую цепочку конвертации: RGB ‐> Lab ‐> CMYK.
Также выбирается метод рендеринга (Rendering Intent), чтобы обработать сжатие цветового охвата, когда цвета выходят за пределы возможностей целевого устройства (например, перцепционное сжатие или относительно колориметрическое).
Кроме того, LCMS используются заранее вычисленные многомерные таблицы (LUT) и алгоритмы интерполяции, чтобы применять сложные цветовые преобразования к пикселям изображения как можно эффективнее.
LCMS выступает как движок CMM, математически сшивая профили друг с другом с учетом выбранного метода сжатия.
Разработчики LittleCMS предоставляют несколько дополнительных утилит. Это Color Translator, программа для пакетной конвертации изображений (TIFF, JPEG, PNG, WebP) и работы с профилями ICC; также Color Abstractor, программа для создания специальных цветовых эффектов и тонкой настройки цветопередачи при экранной цветопробе (soft‐proofing). Для визуального анализа содержимого файлов ICC‐профилей можно воспользоваться программой Insighter. Существует утилита для точной визуальной доработки калибровочных профилей монитора Monitor ICC Tweaker.
Подробно о рендеринге цвета
Программы, поддерживающие ICC, решают две задачи: (1) распознавания цветовых пространств и профилей устройств и (2) применения соответствующего сопоставления цветового охвата при передаче изображений.
Сопоставление цветового охвата выполняется с использованием одного из четырех методов (рендеринг цвета), распознаваемых стандартом ICC (см. в предыдущих главах).
Алгоритм сопоставления определяет, как обрабатываются цвета, присутствующие в исходном изображении, но выходящие за пределы цветового охвата в целевом изображении.
1. Перцепционный рендеринг сохраняет полный цветовой охват. Цветовой охват расширяется или сжимается при переходе между цветовыми пространствами для поддержания согласованного общего вида. Цвета с низкой насыщенностью изменяются очень незначительно. Более насыщенные цвета в пределах цветовых охватов обоих пространств могут быть изменены, чтобы отличить их от насыщенных цветов за пределами меньшего цветового охвата.
Перцепционный рендеринг применяет одинаковое сжатие цветового охвата ко всем изображениям, даже если изображение не содержит цветов, выходящих за пределы цветового охвата. Перцепционное сопоставление цветового охвата в основном обратимо; оно наиболее точно в 10‐битном режиме. Ни один из других способов рендеринга не является обратимым.
2. Относительная колориметрическая обработка (сохранением идентичного цвета и точки белого) точно воспроизводит цвета в пределах цветового охвата и обрезает цвета за его пределами до ближайшего воспроизводимого оттенка. Она необратима. Брюс Фрейзер также отмечает, что для изображения с ненасыщенными цветами, например, с пастельными оттенками, относительный колориметрический рендеринг может дать относительно точный результат.
Возможно, если изображение не содержит сильно насыщенных важных цветов, вы получите хороший результат, используя относительную колориметрическую обработку, лучший, чем при перцепционном рендеринге, пишет Норман Корен.
3. Абсолютная колориметрическая обработка точно воспроизводит цвета в пределах цветовой гаммы и обрезает цвета за пределами цветового охвата до ближайшего воспроизводимого оттенка, жертвуя насыщенностью и, возможно, яркостью. На тонированной бумаге белые цвета могут быть затемнены, чтобы сохранить оттенок идентичным оригиналу. Например, к белому цвету кремовой бумаги можно добавить голубой цвет, что фактически затемнит изображение. Редко представляет интерес для фотографов.
4. Насыщенность, также называемая графической или сохраняющей насыщенность сопоставляет насыщенные основные цвета в исходном изображении с насыщенными основными цветами в целевом изображении, игнорируя различия в оттенке, насыщенности или яркости. Подходит для блочной графики. Также редко представляет интерес для фотографов.
На практике фотографы почти всегда используют относительное колориметрическое или перцепционное намерения, так как для естественных изображений абсолютный рендеринг или насыщенность создают неестественные цвета. Относительное колориметрическое намерение отсекает цвета вне указанного диапазона, но оставляет цвета в гамуте неизменными; перцепционное намерение плавно перемещает цвета вне диапазона цветового охвата, сохраняя градации и цветовой охват.
*** Норман Корен написал программу Gamutvision, позволяющую оценить фактическую производительность рендеринга.
Одномерные и многомерные таблицы LUT
Таблица поиска (LUT, Look‐Up Table) характеризуется своей размерностью, то есть количеством индексов, необходимых для индексации выходного значения. Простейшие таблицы поиска индексируются одной переменной и поэтому называются одномерными (1D) таблицами поиска.
Одномерные таблицы поиска используются в обработке изображений, чаще всего в виде гамма‐таблиц монитора. Как правило, применяются три таблицы поиска — по одной для каждого цветового канала. Таблицы позволяют эффективно изменять интенсивность пикселей непосредственно перед тем, как изображение будет выведено на монитор.
Однако многие операторы работы с цветом не могут быть параметризованы одной переменной, и поэтому их невозможно реализовать с помощью одномерной таблицы поиска. Одномерные LUT‐таблицы работают по одной оси: они могут регулировать только значения яркости (люминесценции). При применении одномерной LUT‐таблицы тональное значение каждого цветового канала изменяется независимо, поэтому невозможно обеспечить межканальные взаимодействия. Одномерная LUT‐таблица может сделать красные цвета ярче, а синие темнее, но не может сместить красный цвет в сторону оранжевого или синий в сторону бирюзового. Поэтому мы получаем ограниченное изменение цвета, что хорошо подходит для простой коррекции яркости и контраста, но не для сложной цветокоррекции.
3D LUT‐таблицы применяет трехмерный цветовой куб, когда каждая ось представляет один из каналов RGB. Вместо того чтобы регулировать каждый канал, 3D LUT‐таблица перемещает координаты цвета внутри куба, позволяя одновременно управлять всеми тремя каналами.
3D LUT‐таблица способна изменять оттенки, яркость, регулировать насыщенность, создавая точные и реалистичные цветовые преобразования.
Ключевым параметром для 3D LUT считается размер сетки, определяющий количество точек выборки вдоль каждой оси цветового куба. Чем больше размер сетки, тем больше точек данных о цвете содержит LUT, тем плавнее и точнее будут цветовые переходы.
Профессиональные видеокарты и мониторы, программы для цветокоррекции используют объемные 3D LUT.
Современные графические процессоры допускают аппаратное ускорение поиска трехмерных текстур с трилинейной аппроксимацией.
Программы‐загрузчики (например, dispwin) позволяют управлять загрузкой профилей в системную таблицу GPU для получения точных цветов.
Для многих монтажных программ (DaVinci Resolve, Adobe Premiere Pro) загрузчики не нужны — модули программ сами загружают 3D LUT файлы. Хотя в некоторых случаях может потребоваться преобразование одного формата в другой.
Обратите внимание, если у вас встроенная графика от Intel, LUT‐загрузчики могут работать некорректно из‐за особенностей обработки команд драйвером.
*** LUT в видеокартах и мониторах — аппаратная таблица преобразования цветов. Например, такая таблица может быть встроена в GPU видеокарты. Она используется для коррекции цвета на уровне драйвера. Профессиональные мониторы с 10‐битной матрицей, способной отображать более 1 миллиарда цветов, могут иметь 12‐ или даже 16‐битную 3D LUT‐таблицу для критически важной работы с цветом, обеспечивая максимально плавные градиенты и высокую точность именно при аппаратной калибровке. Профессиональные мониторы сохраняют точные профили калибровки прямо во внутреннюю собственную память, что также обеспечивает независимость от видеокарты ПК и, как правило, хорошие результаты. Это также позволяет применять цветовые схемы (например, переключение между цветовыми охватами sRGB, DCI‐P3 или Adobe RGB) прямо на аппаратном уровне монитора.
Особенности ОС Linux
В современных операционных системах семейства Linux работа с цветом (просмотр сайтов Интернета, фотографий, видео, печать) настраивается не очень сложно, но следует понимать, что для получения максимально возможного результата потребуются монитор и видеокарта с интерфейсом DisplayPort или HDMI (версии выше 2.0) с поддержкой 10‐битного выхода и полноценной поддержкой DDC (Display Data Channel). При этом драйвера видеокарты также должны поддерживать 10‐битный выход.
*** 8‐битный выход указывает глубину цвета на один канал (красный, зеленый, синий). При этом в сумме получается 24. Таким образом, 24‐битный монитор указывает общую глубину цвета для одного пикселя (все три канала по 8 бит). Чаще всего, когда говорят о 8‐битном выходе, то формально подразумевают 24‐битный дисплей.
Если вы не перфекционист, вас устроит 8‐битный выход и видеокарта с поддержкой любого цифрового выхода. Однако при покупке монитора для фотографических работ сразу обращайте внимание на наличие входа DisplayPort или современного интерфейса HDMI, а также поддержку DDC.
Сегодня DisplayPort, возможно, все еще наилучший выбор, если вы собираетесь заниматься цифровой фотографией. А полноценная поддержка DDC дает гарантию качественной электроники монитора.
Однако в ближайшем будущем скорее всего произойдут изменения: даже сейчас доступны внешние видеокарты (eGPU), они подключаются через порты Thunderbolt, USB4 или OCuLink, ускоряя рендеринг, цветокоррекцию в программах, подобных DaVinci Resolve, и экспорт видео, хотя скорость передачи данных ограничивает их мощность.
*** Display Data Channel (DDC) — интерфейс обмена данными между компьютером и монитором. Существуют два варианта этого интерфейса: DDC 1 — односторонний, от монитора к компьютеру, передача данных о модели монитора и параметрах поддерживаемых видеорежимов; DDC 2 — двусторонний обмен данными. При возможности, следует выбирать монитор с полноценной поддержкой DDC.
*** DisplayPort (DP) — цифровой интерфейс для передачи высококачественного видео и аудио, разработанный VESA. Он используется в основном для подключения мониторов к ПК, обеспечивая высокую частоту обновления, разрешение и поддержку многомониторных конфигураций (MST). DP — стандарт для игровых мониторов и мощных рабочих станций.
*** OCuLink (Optical‐Copper Link) — это аппаратный интерфейс для прямого подключения устройств с шиной PCI Express (PCIe) к материнской плате с помощью внешних кабелей.
«Настоящие» 10‐битные устройства стоят очень дорого, как правило, это профессиональные устройства для телевидения или кинематографии. (См. мониторы фирмы Eizo, JVC, Sony для профессионального рынка.)
Представленные на потребительском рынке мониторы, рекламируемые как 10‐битные, чаще всего восьмибитные устройства с поддержкой технологии FRC.
*** 8 бит + FRC (Frame Rate Control) — технология имитации 10‐битного цвета (более 1 млрд оттенков) на 8‐битной матрице (16.7 млн оттенков). Это обеспечивает плавные градиенты, приближенные к профессиональным дисплеям, но в более доступном среднем ценовом сегменте, предотвращая артефакты цветопередачи.
С видеокартами тоже существуют известные проблемы при работе в Linux, в основном из‐за проприетарного программного обеспечения и недостатков драйверов.
Многие программы и функции (MadVR, Adobe BPC), так или иначе улучшающие работу с цветом в операционных системах, недоступны в Linux, это тоже следует учитывать.
*** Программа madVR — высококачественный видеорендерер (визуализатор) для MS Windows, работающий через GPU, обеспечивает высокое качество изображения при просмотре видео. Улучшает апскейлинг (масштабирование), цветопередачу, резкость и динамически преобразует HDR в SDR. Видеорендерер популярен среди владельцев домашних кинотеатров.
*** Adobe BPC — функция (настройка), встроенная в механизмы управления цветом Adobe (например, в программах Photoshop, InDesign, Illustrator при конвертации цветов или экспорте в PDF.)
Впрочем, с видеокартами ситуация чуть‐чуть изменилась к лучшему — даже NVIDIA, фирма, известная проталкиванием профессиональных карт Quadro в ущерб игровым и офисным видеокартам с ограничением битности, отказалась от своей прежней политики и теперь 10‐битный режим поддерживается на некоторых видеокартах, предназначенных для любительского сегмента. Более‐менее доступны мониторы, способные работать со встроенными 10‐битными (и выше) LUT‐таблицами, что сразу же дает ощутимые преимущества при просмотре фотографий или изображений (в частности, хорошее сглаживание). Однако выбор монитора и видеокарты — это отдельная сложная тема.
*** LUT (Look‐Up Table) — это таблица цветовых преобразований, используемая в мониторах для точного сопоставления входных RGB‐значений с выходными, что позволяет корректировать контрастность, гамму и цвет. Аппаратный LUT внутри монитора (часто 3D LUT) может применяться в обход видеокарты, обеспечивая профессиональную точность цветопередачи.
*** NVIDIA Quadro — серия профессиональных графических процессоров (GPU) от NVIDIA, разработанная для рабочих станций. В отличие от игровых GeForce, видеокарты оптимизированы для использования в CAD/CAM (САПР), 3D‐моделировании, рендеринге, видеомонтаже и научных вычислениях. Основные отличия: сертифицированные драйверы, большой объем видеопамяти (иногда ECC) и поддержка 10/12‐битного цвета.
Как включить поддержку 10‐битного вывода
В Linux потребуется включить поддержку 10‐битного режима. Но это возможно лишь в том случае, если такой режим доступен для драйвера видеокарты. (Например, их однозначно поддерживают карты серии Quadro, кроме самых ранних. А также, как утверждает производитель, современные видеокарты типа NVIDIA GeForce 10‐й серии и новее, AMD Radeon RX 400 и новее.)
По умолчанию в Linux программное обеспечение X11 настроено на 24‐битный цвет (True Color). Иными словами, это 8‐битный режим (3х8=24).
Если у вас поднят сервер X11, то создайте в директории /etc/X11/ файл (например, с именем color.conf) с необходимыми настройками, после этого следует перезагрузить графический сервер и проверить работу в 10‐битном режиме соответствующей командой.
В конфигурационном файле необходимо указать разрешение.
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 30
Option "Coolbits" "28"
SubSection "Display"
Depth 30
EndSubSection
EndSection
Затем можно проверить работу с помощью программ xwininfo, xdpyinfo:
xwininfo ‐root | grep Depth
Xorg можно запускать в режиме 30bpp (иногда называется «Deep Color») с открытыми драйверами, например, Nouveau или AMDGPU, и одним или двумя функциональными мониторами. Разумеется, требуется цифровой интерфейс DisplayPort.
Следующие команды сделают это:
Xorg ‐depth 30 ‐retro
startx ‐depth 30
*** AMDGPU — это современный свободный драйвер с открытым исходным кодом для видеокарт AMD Radeon (начиная с архитектуры GCN), встроенный непосредственно в ядро Linux. Он обеспечивает работу графики, 3D‐ускорение (через Mesa) и управление питанием, заменяя устаревшие драйверы radeon для новых карт.
*** Nouveau — это бесплатный драйвер с открытым исходным кодом для видеокарт NVIDIA, встроенный в ядро Linux. Он обеспечивает базовую 2D/3D‐графику, используется по умолчанию при установке Linux, но уступает проприетарным драйверам NVIDIA в играх и вычислительных задачах.
Обратите внимание, если вы собираетесь профилировать дисплей, то современные мониторы требуют, как правило, наличия спектрофотометра (пока еще дорогого); применять колориметр можно только в том случае, если доступны так называемые файлы спектральной коррекции. Последние можно скачать (если они предоставляются производителем) на соответствующих сайтах или даже сделать самому с помощью спектрофотометра и программ ArgyllCMS.
Так, на сайте X‐rite лежит программа для колориметра Colormunke, где содержатся следующие файлы поправок при работе с мониторами: CCFLFamily_07Feb11.edr, OLEDFamily_20Jul12.edr, PlasmaFamily_20Jul12.edr, ProjectorFamily_07Feb11.edr, RGBLEDFamily_07Feb11.edr, RG_Phosphor_Family_25Jul12.edr, TechnologyStrings.txt, WGCCFLFamily_07Feb11.edr, WLEDFamily_07Feb11.edr.
Как видно из названий, эти файлы предназначены для работы с мониторами с той или иной подсветкой или технологией.
Поддержка команд MCCS и DDC/CI
Большинство дисплеев, возможно, кроме встроенных в ноутбуки, имеют виртуальную панель управления (VCP), которая реализует функции, определенные в наборе команд управления монитором (MCCS).
Если монитор поддерживает двунаправленный протокол DDC/CI, то это позволит управлять монитором прямо из операционной системы, что может обеспечить некоторые дополнительные возможности, например, переключение режимов монитора и т.д. Кроме того, это свидетельствует о качестве самого монитора. Увы, на сегодняшний день полнофункциональных программ для работы DDC в Linux катастрофически мало.
В основном, для управления настройками монитора (яркость, контраст, переключение входов) по протоколу DDC/CI в Linux используются утилиты, позволяющие взаимодействовать с монитором через I2C шину. Основные инструменты: ddcutil (наиболее полная консольная утилита), ddccontrol (старая утилита, есть GUI) и Monic.
Так, ddcutil — это программа для Linux, позволяющая запрашивать и изменять настройки монитора. Как правило, ddcutil взаимодействует с VCP монитора по шине I2C в соответствии со стандартом интерфейса передачи данных/команд (DDC/CI).
В качестве альтернативы, некоторые мониторы (например, Eizo ColorEdge, Apple Cinema) предоставляют USB‐интерфейс для VCP, как описано в спецификации класса управления монитором по USB.
Один из вариантов применения таких программ — управление цветовыми профилями из операционной системы.
*** DDC/CI (Display Data Channel / Command Interface) — стандартный протокол, позволяющий управлять настройками монитора (яркость, контраст и т.д.) напрямую с компьютера через кабель (HDMI, DisplayPort, USB‐C) без использования регуляторов на корпусе или меню OSD. Он работает через двусторонний обмен данными, когда ПК посылает VCP‐коды, а монитор их выполняет.
*** MCCS (Monitor Control Command Set) — стандарт VESA, позволяет настраивать параметры монитора (яркость, контраст, цвета, выбор входа и т.д.) программно с компьютера по интерфейсам DDC/CI, I2C или USB.
*** VCP (Virtual Control Panel, виртуальная панель управления) — это стандартный цифровой код, используемый в мониторах для передачи команд управления через интерфейсы DisplayPort, HDMI или DVI (технология DDC/CI). Позволяет операционной системе компьютера управлять настройками дисплея напрямую.
Управление цветом в Linux
Управление цветом Linux, Linux color management
Управление цветом в Linux основывается на использовании точных профилей ICC (International Color Consortium), а также DCP (DNG Color Profile) и других технологий, описывающих поведение устройств ввода и вывода для приложений, умеющих с ними работать. Эти приложения выполняют преобразования между профилями устройств и цветовыми пространствами. Такое преобразование гамутов, основанное на профилях устройств, является сутью управления цветом.
Исторически управление цветом не входило в концепцию X Window System, на которой основывается большая часть графической поддержки Linux, и поэтому рабочие процессы с управлением цветом было несколько сложнее реализовать в Linux, чем в других ОС, таких как Microsoft Windows или macOS. В настоящее время Linux хорошо работает с профилями.
*** X Window System (X11 или просто X) — стандартная графическая подсистема для UNIX‐подобных ОС (Linux, FreeBSD), обеспечивающая отображение окон, работу мыши и клавиатуры. Она использует клиент‐серверную модель, где X‐сервер управляет дисплеем, а приложения‐клиенты отправляют запросы на отрисовку, что позволяет запускать программы удаленно по сети.
Обратите внимание, если вы используете графический сервер Wayland, то процесс работы с цветом отличается от Xorg. Поддержка ICC‐профилей в Wayland зависит от конкретного графического окружения (композитора), так как сам протокол Wayland по умолчанию не управляет цветом. Базовая поддержка есть в основных оболочках и плеерах. Кроме того, пока еще не решены некоторые проблемы сервера, о них пишет разработчик ArgyllCMS на своем сайте.
Поскольку профили ICC создаются в соответствии с открытой спецификацией, они совместимы с различными операционными системами. Следовательно, профиль, созданный в одной ОС, должен работать в любой другой при наличии программного обеспечения, необходимого для цветокоррекции и преобразования гаммы. Из этого также следует, что вы можете создавать профили в любой операционной системе и переносить их в последующем на другие операционные системы, работающие с тем же монитором.
Обратите внимание, что файлы .icm идентичны файлам .icc, разница только в расширении.



