Spectralcalc iccGPU - впервые в истории компьютерного колорменеджмента расчет icc на графическом ускорителе

mihas

Топикстартер
15 лет на форуме
Сообщения
4 117
Реакции
2 544
Ещё бы доработанный аналог fogra39_GCR70_skin (с ещё более ранним стартом и высокой генерацией чёрного) с расширенным исключением телесных.
Сделал и такой.
ISO Coated v2 Less GCR in Skintones - профиль с тяжелой (Heavy) генерацией черного GCR и максимальной шириной черного, при этом для телесных сделано исключение, и в цвет кожи черная краска не попадает. Удобно применять для цветоделения художественных портретов на сером фоне.
ISOcoated_v2_Less_GCR_in_Skintones_iccGPU.jpg
На картинке снизу представлен черный канал в результате цветоделения этим профилем, в телесных черной краски нет, а в сером фоне - выше крыши.
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 117
Реакции
2 544
По просьбам трудящихся.

ISO Coated v2 MaxK MaxWidth iccGPU - профиль с максимальной шириной Max Width и со скелетным черным MaxK. Цветные краски в балансе подмешиваются в черный для достижения максимального контраста лишь ниже светлоты 25, до этого порога нейтраль рисует одна единственная черная краска.
Таким образом все четыре краски не встречаются при цветоделении нигде, кроме как в глубоких нейтральных тенях. Совсем без примеси толики цветных в суперчерном решил не оставлять, иначе светлота самой черной точки одной черной краской будет высоковата и пострадает контраст фотоизображения в печати. Но для чертежей потом сделаю еще Pure K.
MaxK_MaxWidth.png
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 117
Реакции
2 544
По просьбам трудящихся.

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

colorprint

Участник
Сообщения
2 090
Реакции
422
На хакамаде профиль ISO Coated v2 Less GCR in Skintones просто безбожного шума наделал:
primer.jpg
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 117
Реакции
2 544
Вообще интересно конечно, что профили с разной генерацией черного шумят в каналах по-разному, один профиль в одном красочном канале больше шумит, другой в другом. На входе шумит красный канал, на выходе - у каждого профиля свои шумы в красочных каналах, особенно в таких конструкциях, как тяжелый GCR и исключение в нем. Но на хакамаде шумит даже обычный профиль, не имеющий никакого отношения к исключению светлых телесных из тяжелой генерации GCR (аттач).
Также как и у Гейделя - конечно есть дилема, где провести границу телесных, какая светлота грязного оранжевого оттенка - это еще телесный, а какая уже нет. Например светлота 40-50, и я и Гейдель с опцией Less GCR in Skintones уже выводим такой темный цвет из рамок исключения для телесных, определяем сектор телесных более светлым, фигачим вовсю черную краску в темный оранжеватый. Хотя можно на эту тему поэкспериментировать и снизить светлоту исключения например до L=20-30 в профиле с тяжелым GCR и исключением в нем для телесных. Нужно ли - это можно пообсуждать со специалистами в цветокоррекции: где та граница светлоты, за который вступит в действие GCR и заканчивается исключение в нем для телесных.
Так что внимательно смотрим при цветокоррекции на светлоту телесного цвета, это светлый оттенок, темные телесные тона хорошо смотрятся только на экране с задранной яркостью и ужасно в печати, мой друг Герман правильно говорил тут на форуме, что хакамада не для печати, слишком выбивается из мейнстрима обработки телесных, что принят для офсета. Пробовал напечатать по стандарту - она мертвая на оттисках.
Примеров исключения телесных из общей тяжелой генерации черного в профиле существует только два: ColorTool от Heidelberg и iccGPU от CIELab.XYZ. Результаты по границе отсечки GCR от его противоположности примерно пока одинаковые (аттач).
 

Вложения

  • Y_Lgcr.png
    Y_Lgcr.png
    942.3 КБ · Просм.: 62
  • Y_Lgcr_Heidel.png
    Y_Lgcr_Heidel.png
    943.6 КБ · Просм.: 70
  • Y300.png
    Y300.png
    938.1 КБ · Просм.: 61

mihas

Топикстартер
15 лет на форуме
Сообщения
4 117
Реакции
2 544
Я использую GCR с исключением обычно в рекламе, там часто такое бывает, что хорошо обработанный телесный сидит на сером фоне без единого процента черной краски, эдакий экстрим как правило для типографии, чтобы удержать серый фон без черной краски в балансе без разнотона.
Именно на такой случай я и имею в арсенале профили, которые и в телесный не наливают много черной (или вообще не наливают), и в сером фоне преобладает черная краска, а не цветные. Конечно, я всегда оговариваю область применения таких специфических профилей, их нельзя применять к чему попало. Одни профили для фоток чб, другие для чертежей, третьи для телесных, но категорически не на сером фоне. Есть для художественных портретов на сером фоне, для красивой обработки телесных. И только для них. Не для чертежей, не для серобуромалиновых лиц без обработки цветокорректором, темных и за рамками европейского баланса телесного, для всего этого не подойдет.

Идея Гейдельберга сделать такое исключение для телесных из GCR здравая, но реализована так, что все равно в светлом телесном есть черная краска, пусть ее и меньше. Я попытался сделать так, чтобы черной краски не было вообще в красивом портрете на сером фоне, получилось. Отсечка одной генерации черного от принципиально другой так или иначе будет вылезать в каналах на чередующихся пикселях разной светлоты как при дизеринге, не на светлоте пикселей 40-50, так на светлоте пикселей 20-30. Если изображение не подходит под параметры профиля - ну и не парюсь, оставляю его либо целиком в GCR с кучей черной краски в темном лице, или делю скелетом вместе с серым фоном, и типография мучается с удержанием серого в балансе (так не делаю конечно), либо селективно складываю картинку из двух с разными генерациями, если профиль с двумя правилами сразу к картинке не применим. Есть много вариантов, цветокоррекцией тоже не пренебрегаю: если картинка не годится для печати - так и говорю заказчику, и почему не годится. Не далее как вчера отправил кучу полос серобуромалиновых президентов на профессиональную цветокоррекцию, хорошо хоть люди на пробе посмотрели, а не в тираже, на экране многие не видят, чего не так, обычный эффект теста хакамада, на плохокалиброванном экране - приемлемо, в печати (и по пипетке) - недопустимо. Когда хоть с черной подели, хоть без черной - ни так ни так не годно.
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 117
Реакции
2 544
Хотел показать, в чем разница между типичной для программ профайлеров просто максимальная ширина черного 100%, и реальная максимальная ширина черного 100%, которой умеют достигать отнюдь не все.
pg3.jpg
На картинке красный попугайчик как раз примерно на краю охвата офсетной печати на меловке, где-то капельку шире по охвату, но не экстремально шире. Конечно мы хотим в такой сочной картинке сохранить максимально красное брюшко птицы, чтобы и перышки были видны, и чтобы чистота красочной смеси не просела, и чтобы генерация черного была не чертежная MaxK, которая не справится с глубокими тенями. Мы просто не хотим, чтобы в насыщенный чистый красный бинар была подмешана загрязняющая голубая краска.
Голубой канал посередине показывает процентов 8 загрязняющей голубой в красном при типичном цветоделении GCR с максимальной шириной. И голубой канал справа на картинке - результат цветоделения редким на сегодня профилем с действительно максимальной шириной, голубой краски в нашем красном по нулям, как мы и хотели, перышки рисует черная и хорошие контрасты в пурпурном и желтом канале, которая регулирует светлоту, но не портит насыщенность красного, как голубая.

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

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

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

2) ArgyllCMS. Реально в профиле от 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

Топикстартер
15 лет на форуме
Сообщения
4 117
Реакции
2 544

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

Начну с вопросов и ответов, а далее видно будет.
 
  • Спасибо
Реакции: alex103

mihas

Топикстартер
15 лет на форуме
Сообщения
4 117
Реакции
2 544
Обещал показать, как работает двумерный гамут-маппинг на основе CIECAM02 в перцепционной таблице профиля от iccGPU. Для сравнения взял перцепционную таблицу известного профиля от ECI - ISO Coated v2 300, для наглядности. Пробовал на фотоизображениях показать, но там не так наглядно сравнение, нежели когда вплотную придвигаешь результаты друг к другу и на границе хорошо различаешь разницу, поэтому пусть будут просто квадратики с градиентами.

Perceptual_iccGPU_and_ECI.png
Перцепционный гамут-маппинг от iccGPU и от ColorToolbox

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

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

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

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

mihas

Топикстартер
15 лет на форуме
Сообщения
4 117
Реакции
2 544
Яваскрипт был изначально однозадачным, последовательно выполнял инструкции, теперь появились воркеры, позволяющие выполнять изолированно друг от друга одновременно несколько (до 256) задач, задействуя таким образом центральный процессор по максимуму, и увеличивая скорость вычислений в несколько потоков.
Обычный однозадачный яваскрипт в браузере "отъедает" процентов 17 ресурсов 8-ядерного процессора i7. С воркерами удалось добиться полной загрузки свободных ресурсов проца, ускорившись в конструировании icc-профиля раза в 3-4. Три и четыре потока - это Lab или CMYK, в зависимости от того, какого направления таблицу профиля интерполируем.
Задействование GPU кое где оставил на коротких операциях и как дань традиции, но в целом сократил его присутствие: воркеры на нескольких ядрах процессора считают немного быстрее, чем графический ускоритель.
Чтобы пользователю было не скучно ожидать до 20 секунд самых тяжелых операций - сплайновых многомерных интерполяций в количестве 3 * 65 тысяч - сделал "соревнование воркеров": чей прогресс быстрее придет к финишу - L, a или b