Спектральный калькулятор: 10 лет обновлений и улучшений

обсуждение, новости
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Хотел показать, в чем разница между типичной для программ профайлеров просто максимальная ширина черного 100%, и реальная максимальная ширина черного 100%, которой умеют достигать отнюдь не все.
Оригинал, голубой канал при обычной максимальной ширине и голубой канал при эксклюзивной максимальной ширине
Оригинал, голубой канал при обычной максимальной ширине и голубой канал при эксклюзивной максимальной ширине
• 980.1 КБ • 25964 просмотра
На картинке красный попугайчик как раз примерно на краю охвата офсетной печати на меловке, где-то капельку шире по охвату, но не экстремально шире. Конечно мы хотим в такой сочной картинке сохранить максимально красное брюшко птицы, чтобы и перышки были видны, и чтобы чистота красочной смеси не просела, и чтобы генерация черного была не чертежная MaxK, которая не справится с глубокими тенями. Мы просто не хотим, чтобы в насыщенный чистый красный бинар была подмешана загрязняющая голубая краска.
Голубой канал посередине показывает процентов 8 загрязняющей голубой в красном при типичном цветоделении GCR с максимальной шириной. И голубой канал справа на картинке - результат цветоделения редким на сегодня профилем с действительно максимальной шириной, голубой краски в нашем красном по нулям, как мы и хотели, перышки рисует черная и хорошие контрасты в пурпурном и желтом канале, которая регулирует светлоту, но не портит насыщенность красного, как голубая.

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

Я знаю на сегодня три варианта получить при цветоделении максимально чистые краски на красном брюшке нашего попугайчика:

1) Фотошоп MaxK. Самый плохой способ, но нужный голубой канал мы получим. Недостатки этого способа - неверная колористика (верную в фотошопе поди задай) и плохой контраст в глубоких тенях, потому как одной черной краски чертежного варианта MaxK мало, чтобы нарисовать суперчерный цвет фотоизображения.

2) ArgyllCMS. Реально в профиле от Argyll будет в красном по нулям голубой, правда, многовато шума. Я обратил на эту эксклюзивную ширину черного Argyll внимание еще несколько лет назад, и мне очень хотелось чего-то подобного, отсюда родился 3 вариант.

3) iccGPU - с помощью бета-версии первого отечественного профайлера несложно построить профиль в любой колористике и для любой печати (по фогре 39 готовый можно скачать), который будет обеспечивать эксклюзивно максимальную ширину черной краски, и где это только возможно в фотоизображении - не допускать в чистые цвета примесей третьей загрязняющей цветной триадной краски.

На картинке - просто рилейтив преобразование, если найти картинку со светлотой красного еще повыше - тот же профиль в режиме перцепции сохранит высокую насыщенность светлых колорантов RGB в чуть более темных красках CMYK благодаря особому перцепционному сжатию. И вот тут и Argyll и фотошоп начисто проигрывают iccGPU, ибо в них перцепция никакая, они не смогут самостоятельно посадить ни один светлый колорант RGB с коррекцией по светлоте и без потери насыщенности в более темные колоранты CMYK, как это сделает iccGPU. Если позже попадется красивый примерчик для демонстрации красивой перцепции для сжатия в меньший охват более темных красок - покажу на скринах, как это работает.

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

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

Пока не взялся за более простой модуль RGB-профайлов, но уж с учетом blue turns purple, поковыряю еще CMYK какое-то время, он мне важнее в работе.
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Перцепционный гамут-маппинг от iccGPU и от ColorToolbox
Перцепционный гамут-маппинг от iccGPU и от ColorToolbox
• 1003.14 КБ • 25889 просмотров
Обещал показать, как работает двумерный гамут-маппинг на основе CIECAM02 в перцепционной таблице профиля от iccGPU. Для сравнения взял перцепционную таблицу известного профиля от ECI - ISO Coated v2 300, для наглядности. Пробовал на фотоизображениях показать, но там не так наглядно сравнение, нежели когда вплотную придвигаешь результаты друг к другу и на границе хорошо различаешь разницу, поэтому пусть будут просто квадратики с градиентами.

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

На градиенте слева - результат работы перцепционной таблицы от первого отечественного профайлера iccGPU. На градиенте справа - результат работы перцепции профиля ECI от ColorToolbox - ISO Coated v2 300. Внизу для наглядности результаты двух разных перцепционных таблиц разных профайлеров встречаются вместе, образуя границу, на которой хорошо надежно видно разницу.

Что мы видим: обе перцепционные таблицы просадили светлоту L оригинала, недостижимую в триадном офсете, но при этом двумерный гамут-маппинг профиля iccGPU попытался максимально сохранить насыщенность C, а перцепция профиля ISO Coated v2 справилась с сохранением насыщенности хуже, и в верхней и в нижней части градиента с дельтой Е около 8 хуже по Chroma. Верхний и нижний края градиентов по цвету CIE LCh подписаны, смотрим на Chroma (насыщенность) C в цифрах и визуально по границе сравнения и делаем выводы.

Создавая программу-профайлер iccGPU я максимальное внимание постарался уделить именно беспрецедентной чистоте и насыщенности красок, и в относительной колориметрической таблице, и конечно в таблицах Perceptual и Saturation. Сравнительный пример цветоделения с очень хорошим профилем от ECI и Heidelberg - ISO Coated v2 300 - показывает, что мне удалось достичь именно того, что я и задумывал.

Профили с этими особыми перцепционными таблицами и особыми таблицами Saturation впервые были представлены по ссылке.
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Принадлежность цветового образца охвату тесткарты - новая функция Спектрального калькулятора. Позволяет определить, входит ли тот или иной пантон например в охват (Gamut) цветопробного принтера или нет. И если не входит - то с какой разницей по насыщенности от края охвата принтера.
Вложения
Скриншот работы функции
Скриншот работы функции
• 41.97 КБ • 25610 просмотров
3D-представление: видно во всех направлениях при поворачивании, где именно находится цветной шарик относительно массива серых шариков - нужный нам цвет по отношению к охвату нужного нам принтера
3D-представление: видно во всех направлениях при поворачивании, где именно находится цветной шарик относительно массива серых шариков - нужный нам цвет по отношению к охвату нужного нам принтера
• 184.9 КБ • 25597 просмотров
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Сделал еще приятную фишку - весь массив пантонов сравнивать с охватом принтера и разделять пантоны в алфавитном порядке на три группы: те кто однозначно влезают в охват принтера, те кто влезают лишь условно с определенной пользователем разницей в насыщенности дельта C, и теми, что совсем вне охвата (за границами установленной пользователем дельты по насыщенности).
Так любопытно, что 5000 принтер с фиолетом, который я недавно калибровал через RGB драйвер в Эфи при дельте Хрома 4-8 всего 11 пантонов считает заохватными

8 пантонов условно принадлежат охвату принтера с превышением насыщенности с delta C от 4 до 8:
PANTONE Rhodamine Red C
PANTONE Violet C
PANTONE 246 C
PANTONE 247 C
PANTONE 253 C
PANTONE 805 C
PANTONE 806 C
PANTONE 2385 C

3 пантонов не принадлежат охвату принтера с delta C более 8:
PANTONE Purple C
PANTONE 807 C
PANTONE 2395 C

С дельтой C = 5 - уже 134 заохватных, а вот с дельтой 10 лишь один PANTONE 807 C не укладывается в охват. Дельта 11-12 - вообще все влезли.
То есть эти расчеты хорошо коррелируют с представленными пару лет назад нашим другом Лешей Грибуниным и Александром Дроздовым на презентации этих принтеров. Также там обсуждался вопрос, что с дельтой 10 влезают все пантоны в охват.
Мне такое немного лень считать в Экселе, а вот запрограммировать такие расчеты и приятно и хорошая практика для мозгов, а то все лето перерыв делал в написании кода.

Ну вот а теперь мы можем поточнее оценить и с дельтой Хрома и 8 и 5 и какой хотим - кто в охвате, а кто слишком отдалился от границ охвата принтера. Для цветопроберов может быть весьма полезно.
Вложения
Работа функции в интерфейсе, скриншот
Работа функции в интерфейсе, скриншот
• 36.05 КБ • 25569 просмотров
3D-отображение: серым - охват принтера, зеленым - краски библиотеки Pantone v4
3D-отображение: серым - охват принтера, зеленым - краски библиотеки Pantone v4
• 268.91 КБ • 25569 просмотров
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Раскрасил разными оттенками в 3D-модели цветового охвата краски, которые принадлежат охвату принтера (зеленым), краски, которые близко к охвату с установленной пользователем дельтой от края (голубым), и краски совсем уж за охватом принтера (сиреневым).
На скриншотах большой охват цветопробного принтера SC-5000V, где почти все пантоны имеют координаты зеленого цвета, и обычный охват триадной офсетной печати, где полно заохватных пантонов. И старый Ультрахром К3 для сравнения.
Вложения
Пантоты и охват цветопробного принтера Epson SC-5000V
Пантоты и охват цветопробного принтера Epson SC-5000V
• 207.54 КБ • 25467 просмотров
Пантоны v4 и охват обычной триадной печати
Пантоны v4 и охват обычной триадной печати
• 277.75 КБ • 25467 просмотров
Сопоставление охватов массива пантонов и старых чернил Ультрахром К3
Сопоставление охватов массива пантонов и старых чернил Ультрахром К3
• 168.76 КБ • 25456 просмотров
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

С помощью воркеров ускорил раза в три расчеты пантонов в охвате принтера и конструирование профиля в iccGPU.
Оказалось удобно распараллелить некоторые задачи на 3 и 4 потока (Lab и CMYK соответственно), оставаясь при этом в многомерном пространстве.

Чтобы задействовать несколько ядер процессора на яваскрипте - придумали воркеры, одновременно выполняющиеся изолированные потоки расчетов, я ими воспользовался. Плюс как и ранее немного параллельно и GPU помогает с интерфейсом, немного разгружая процессор.
Видео с экрана по ссылке:
https://www.facebook.com/watch/?v=915763229327836

Яваскрипт был изначально однозадачным, последовательно выполнял инструкции, теперь появились воркеры, позволяющие выполнять изолированно друг от друга одновременно несколько (до 256) задач, задействуя таким образом центральный процессор по максимуму, и увеличивая скорость вычислений в несколько потоков.

Обычный однозадачный яваскрипт в браузере "отъедает" процентов 17 ресурсов 8-ядерного процессора i7. С воркерами удалось добиться полной загрузки свободных ресурсов проца, ускорившись в конструировании icc-профиля раза в 3-4. Три и четыре потока - это Lab или CMYK, в зависимости от того, какого направления таблицу профиля интерполируем.

Задействование GPU кое где оставил на коротких операциях и как дань традиции, но в целом сократил его присутствие: воркеры на нескольких ядрах процессора считают немного быстрее, чем графический ускоритель.

Чтобы пользователю было не скучно ожидать до 20 секунд самых тяжелых операций - сплайновых многомерных интерполяций в количестве 3 * 65 тысяч - сделал "соревнование воркеров": чей прогресс быстрее придет к финишу - L, a или b
https://www.youtube.com/watch?v=8h6ZWq8mVqQ
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Результат работы таблиц перцепции и сатурейшен по цветоделению в меньший охват мелованной бумаги обычной связки профилей sRGB и ISO Coated v2 и связки профилей от профайлера iccGPU
Результат работы таблиц перцепции и сатурейшен по цветоделению в меньший охват мелованной бумаги обычной связки профилей sRGB и ISO Coated v2 и связки профилей от профайлера iccGPU
• 1.9 МБ • 25264 просмотра
В спектральном калькуляторе значительное обновление: теперь можно строить профили RGB устройств печати.

В разделе RGB профилей iccGPU реализована возможность включать подавление blue turns purple по Hung & Berns или выравнивать тон по Hue Linearized CIELab от Fairchild & Ebner. Подробности в научной статье Рочестерского института, которой я пользовался при создании алгоритмов. Статья по ссылке.

Для быстрого знакомства с новыми возможностями icc профилей, прикладываю два типичных цветовых охвата Display P3 и sRGB с особенными таблицами Perceptual и Saturation для эффективного применения в полиграфии при цветоделении.
Настоятельно рекомендую проверять красивую таблицу Saturation профилей без задействования CMYK профилей от ECI - в программе Color Tool от Heidelberg таблица Saturation профилей типа ISO Coated v2 ужасающая. Вы можете проверить цветоделение в связке RGB->CMYK Saturation например с любым из представленных по ссылке профилей CMYK с нормальной таблицей Saturation, красиво посчитанной в CIECAM02.


На картинке справа показано, как работает подавление blue turns purple по Hung & Berns при цветоделении в меньший цветовой охват офсетной печати из приложенных профилей с включенной настройкой suppress btp при построении профиля для неколориметрических таблиц.
Подавление эффекта blur turns purple на графике Hue-Chroma с шагом 8 градусов, по Hung & Berns
Подавление эффекта blur turns purple на графике Hue-Chroma с шагом 8 градусов, по Hung & Berns
• 321.98 КБ • 25264 просмотра
В векторе график по ссылке из статьи отсюда.

Собственно вот что происходит при включении опции, здесь по оси X у нас тон Hue, а по вертикальной оси - насыщенность Chroma. Hung and Berns это опубликовали, не я эту "зебру" с шагом 8 градусов по Hue придумал. Но я ее запрограммировал и "натянул на глобус" - скормил многомерной интерполяции.
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Добавил функцию подавления (suppress) эффекта Blue Turns Purple для любой тесткарты, не только при построении профиля в модуле iccGPU.
Анимированный GIF того, что происходит с синими прикладываю. Основано вот на этом графике отсюда.
Вызов функции в интерфейсе спектрального калькулятора
Вызов функции в интерфейсе спектрального калькулятора
• 123.69 КБ • 25019 просмотров
Анимированный GIF по клику
Анимированный GIF по клику
• 482.87 КБ • 25019 просмотров
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Цветоделение обычное и с подавлением BTP
Цветоделение обычное и с подавлением BTP
• 1.11 МБ • 24868 просмотров
Прикрутил подавление эффекта Blue Turns Purple по Hung and Berns к построению профилей CMYK, так же как и RGB.
Образец такого профиля по данным FOGRA 39L прилагаю, с включенной опцией Suppress BTP для всех 6 таблиц преобразования - 3 в одну сторону и три в другую.




Чтобы вдвое усилить эффект подавления пурпура в синем - можно воспользоваться RGB профилем из позапрошлого поста: при цветоделении в паре из профиля с пометкой BTP в профиль с пометкой BTP смещение пурпурного синего в голубую область усилится вдвое, при перцепционном рендеринге будет особенно высокая насыщенность нового синего цвета в печати.
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Обсуждали с коллегой равноконтрастные по восприятию или perceptual uniformity цветовые пространства. По результату включил бонусом к расчетам вывод таблиц в перцепционно равноконтрастной модели Oklab от Björn Ottosson. Чтобы можно было при необходимости вычислить массивы Oklab. Потом еще напишу утилитку, которая будет переводить массивы Oklab в традиционные колориметрические единицы. В чем смысл: расположили в модели Oklab на равных расстояниях по hue патчи - получили массив цветов или красок равноконтрастных по восприятию, это весьма интересно и может быть полезно.
Скриншот из спектрального калькулятора
Скриншот из спектрального калькулятора
• 233.54 КБ • 20393 просмотра
Также вы можете посмотреть очень неплохие примеры генерации цветового круга в равноконтрастной модели Oklab, например:
https://observablehq.com/@shan/oklab-color-wheel
https://observablehq.com/@earthbound19/ ... olor-wheel

Получить конечно одновременно и светлый желтый и темный синий в этих утилитах нельзя, но я потом напишу, как можно получить оттенки еще и на нормальной светлоте. Новое дополнение к спектральному калькулятору - только начало. Для начала можно посмотреть неравноконтрастный по тону круг с правильными углами по hue в модели CIE LCh - в нем светлоты для модели sRGB сделаны верно на максимальной насыщенности.
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

8 апреля 2022 года добавил функцию визуализации спектра иллюминантов на php с задействованием сплайновой кубической интерполяции. Вызывается по кнопке IES -> Graph
Вложения
Спектр иллюминанта
Спектр иллюминанта
• 29.22 КБ • 12123 просмотра
Спектр иллюминанта
Спектр иллюминанта
• 29.65 КБ • 12123 просмотра
Спектр иллюминанта
Спектр иллюминанта
• 34.66 КБ • 12123 просмотра
Вызов функции: IES -> Graph
Вызов функции: IES -> Graph
• 266.51 КБ • 12123 просмотра
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Европа знает толк в полиграфических колориметрических программах. Теперь вот европейцы купили у меня много кода (продал пока не все) спектрального калькулятора и калькуляторов калибровки dlp и dgcor, так что в скором времени какие-то мои здешние программные наработки заработают в европейском софте. Приятные новости для нашего проекта, постепенно выхожу на европейский международный уровень со своим софтом. То что мой софт продолжит свою жизнь в других программах - дело хорошее, тут много чего полезного есть, чего нет пока у других, и чего нужно полиграфистам и колористам. Мой софт здесь остается естественно, частично бесплатно, частично по удивительно скромной годовой подписке, я не бренд и не домен продал, а лишь программный код на яваскрипте и PHP с разными колориметрическими калибровочными функциями. Возможно получится совместно поработать и над бета-функциями умного сглаживания и профайлера, там есть чего улучшать, там если команда программистов навалится, а не я один - можно до очень высокого уровня мои задумки довести. Некоторые функции особо сложные я пишу на пределе моих логических способностей, если европейцы и профессиональные программисты на рынке полиграфии и колориметрии помогут мне в программных решениях для моих идей - это было бы полезное сотрудничество для отрасли. Все только начинается. Началу моего программирования для колориметрии и полиграфии всего-то лет 10 отроду, чего-то выходит добился за это время на этом поприще.
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Если в браузере Chrome на любых вычислениях Спектрального калькулятора ошибки - скорее всего не работает как надо технология WebGL с видеокартой для отрисовки 3D-графика.
В браузере Chrome в разделе chrome:flags найдите Override Software Rendering List и включите его.
Проверить браузер на предмет поддержки WebGL можно по ссылке http://get.webgl.org/ и если видите вращающийся кубик - все хорошо, ничего предпринимать не надо.
Вложения
Your browser supports WebGL
Your browser supports WebGL
• 73.64 КБ • 10952 просмотра
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Спектральный калькулятор: 10 лет обновлений и улучшений

Сообщение mihas »

Lesson 3. Кастомизация градационных кривых цветового профиля icc
В ролике рассказано и показано, как пересчитать цветовой профиль icc на другие градационные (тонопередающие) кривые:
https://www.youtube.com/watch?v=C3Lj7YFn9Sc
Файлы, использованные в ролике
Lesson_3_snapshot.png
• 794.41 КБ • 6590 просмотров
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Спектральный калькулятор: 10 лет обновлений и улучшений

Сообщение mihas »

Lesson 4. Построение icc CMYK профиля
В ролике рассказано и показано, как построить профиль icc в модели CMYK с максимально чистыми красочными сепарациями:
https://www.youtube.com/watch?v=uWeOHi7GOlM
Lesson_4_snapshot.png
• 809.65 КБ • 6455 просмотров
Ответить

Вернуться в «Программное обеспечение для препресс»