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

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Spectralcalc iccGPU - впервые в истории компьютерного колорменеджмента считаю на представленном видео цветовой профиль icc на графическом ускорителе (Intel UHD Graphics 630 GPU, более мощный старичок Nvidia 1060 занят в процессе другими расчетами) причем параллельно пока всего две тяжелые операции с помощью клиентского яваскрипт (сервер отдыхает, чем быстрее ваш комп - тем быстрее расчеты). Не надо напоминать, что современные GPU здорово помощнее центральных процессоров на операциях, связанных с видео, графикой и цветом. Сам бог велел задействовать всю эту мощь при работе с цветовым профилем icc! Тот же Capture One от Phase One при задействовании серьезной графики уделывает центральный процессор i7 в 20-30 раз по скорости обработки цвета фотографий. Я равняюсь на лидеров.

В самом разгаре разработки, скоро будет опубликовано на сайте.
Видео 45 секунд завораживает любителей задействовать всю мощь хорошего компьютерного железа продвинутым современным софтом! 1080p честно на ютьюбе если хотите рассмотреть детали.


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

Рассмотрите рабочий промежуточный пример поканально и по слоям, кто знает в этом толк и ценит качественное цветоделение: https://cielab.xyz/thumbnails/1864_AK_test_v8.psd (26 мб, три слоя с результатами цветоделения лидеров по ISO Coated v2: Heidelberg (ECI), Argyll fogra 39, тест моего цветоделения в начальной всего 8 редакции стадии разработки).

<...>здесь часть сообщения удалена администрацией форума<...>

Кого заинтересовало - следите за обновлениями темы. Будет опубликовано скоро здесь.
 
Последнее редактирование модератором:

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Опубликовал под вечер 7 марта beta-версию Spectralcalc iccGPU для построения CMYK профилей. Можно тестировать.
Таблицы цветоделения строятся по принципу инверсии данных о цвете красок: задаются нужные краски с большой шириной черного и исключением в ней для телесных при выборе генерации Normal Skin 300 на 11 шаге. Находится цвет этих красок, и лишь затем из этих пар создается таблица цвет-краски. Генерация черного таким образом не похожа ни на один известный профилировщик, позволяет добиваться сепараций максимальной чистоты цвета: необычайно востребовано в классном офсетном цветоделении.
Обратите внимание помимо колориметрической таблицы Relative на особые таблицы цветоделения Perceptual и Saturation, они не просто так сделаны. В них воплощен при помощи алгоритма CIECAM02 мой любимый двуразмерный гамут-маппинг, когда для достижения максимальной насыщенности регулируется светлота: в модели RGB краски светлее, чем краски в модели CMYK, чтобы сохранить их насыщенность при цветоделении - можно сбавить их светлоту немного для достижения максимальной возможной насыщенности.
Обновление затронуло несколько скриптов спектрального калькулятора, если вы им регулярно пользуетесь - чтобы не посыпалось ошибок - почистите кэш браузера только от сохраненных файлов при закрытой странице со спектральным калькулятором.

iccGPU_2021_03_07.pngtest_iccGPU.png
 
  • Спасибо
Реакции: ch_alex, Dresden и alex103

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Вариант обычной генерации черного, как у ECI.
UCA для голубой и пурпурной и anti-UCA для желтой закладываются уже при генерации профиля в лучших традициях Гейдельберга. Программисты остального софта такие классные плюшки цветоделения не знают.
Сделано под фотошоп чтобы его роскошный BPC работал или не работал по желанию пользователя, используя или не используя самую правую область графика.

beta.png
 

alex103

PROцвет
15 лет на форуме
Сообщения
494
Реакции
86
@mihas Михаил, спасибо, очень интересно и обязательно проверю на цифре (на следующей неделе, если получится).
Скажите, а не планируется ли кнопочка "загрузить из файла промеров" и т.д., т.е. чуть-чуть более юзеро-добрый интерфейс? =)
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
А кнопочка загрузить просто чуть выше уже есть, в самом верху. А профиль в конце - просто как завершение всех манипуляций с колориметрическими данными. Проверьте плиз, я не жду, что в бета версии сразу все будет гладко, там кода многовато пришлось написать за 3 недели, и я конкретно думал в основном об офсетном цветоделении.
 
  • Спасибо
Реакции: alex103

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Иногда коллеги спрашивают, типа а как нам поменять таблицу просмотра рилейтив на таблицу перцепции, что-то в таком духе. Посылаю сейчас в iccMAX. Всегда хотелось иметь конструктор профилей, в котором можно влезть в расчеты на любом этапе, вот сделал себе такой конструктор с удобной отладкой как на стенде. Здесь специально сделано так, что функции берут массивы всякий раз из полей формы в интерфейсе, то есть можно поменять содержимое полей формы - и это будет учтено в последующих расчетах, такой хороший стенд для разработчика, для отладки, для технолога с нестандартными задачами. Всю скучную рутину на 4000 строк кода я написал, самое интересное начнется после - вносить всякие интеллектуальные исправления, пока вношу ежедневно, так что хотите свежайших скриптов - чистите кэш от сохраненных файлов почаще, скрипты хранятся в браузере там же, где прочие жпеги, чтобы их часто не подкачивать, на сервере я поставил время хранения скриптов браузером на сутки, чтобы и трафик был не бешенный с например почасовым обновлением, и чтобы все же обновления происходили достаточно часто. Отдельные скрипты с расширением min.js кешируются на месяц, те что редко нужно обновлять.
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Все дело в волшебных пузырьках!-)
Наконец взялся за отлаживание самого интересного - генерации черного в телесных.
Тут алгоритм инверсии как раз и позволяет идеально управлять тем, какие будут краски, почему в телесный будет добавлен голубой вместо черного, тогда как во всем остальном - черный будет преобладать над загрязняющей. Вариантик по той же ссылке, уже неплохо, но буду еще допиливать, там есть что еще допиливать. Именно на этом шаге у многих профайлеров, начиная с фотошопа, провал, именно тут весь цимес управления цветоделением - в этой табличке на 9 шаге конструирования. Самое интересное, что в этом пользователь может самостоятельно участвовать: на 9 шаге (достаточно лишь заполнить первый шаг, чтобы уже с девятого посчитать рилейтив цветоделения и пропустить таблицы отображения) сценарий генерит по нескольким циклам те нужные нам краски, для которых мы для начала найдем их цвет из замеров тесткарты. Сейчас 1600 сочетаний красок, где телесные и оранжевые в конце. Меняя эту таблицу на шаге 9 по своему усмотрению - мы меняем ширину черного, задаем ее например большую для всего, кроме телесного сектора. Такой возможности самостоятельно управлять генерацией таблиц цветоделения в профиле не предоставляет ни одна программа. Мне осталось лишь еще какое-то время помозговать над всеми сочетаниями красок, чтобы добиться ровно того, что я хочу получать при цветоделении и телесных, и всех остальных.

Если захотите сильно увеличить размер таблицы 9 шага и уменьшить степ - скорость расчетов будет снижаться, тут бы надо удержаться в диапазоне 1500-2000 полей, и это вполне реально. Чтобы быстро развернуть эту таблицу в 35937 полей таблицы профиля с гранулярностью 33 - она не должна быть слишком большой, описывать краски достаточно равномерно в охвате, причем содержать именно нужные краски, а не их вариации для одного и того же цвета. Цветоделение уже сейчас мне показывает, что я должен поменять в этой таблице в темных красноватых. Я именно что никак не поборю до конца конфликт между максимальной шириной черного для всего, и минимальной шириной для сектора телесных: то у меня избыток черной в темном оранжевом, то недостаток!-)) Тем более интересно будет наконец найти необходимый баланс между красками в этом секторе по цветовому кругу. И как и говорил: это в моем конструкторе даже можно сделать самостоятельно, не дождавшись, пока я сгенерю нужные краски, которые хочу видеть, и уберу те сочетания красок, которые видеть не хочу. Просто создайте свою таблицу нужных красок для девятого поля! Мне кажется, это самое интересное во всей истории с конструированием профиля, никакая из программ не позволяет колористу так глубоко самостоятельно влезть в процесс генерации таблиц цветоделения.

Визуально табличка с нужными красками и посчитанным для них цветом исходя из замеров выглядит так пока, но думаю скоро изменится благодаря моим упражнениям на этом стенде. В самом низу - как раз вариации на тему телесного сектора цветового круга, видно сразу, что надо еще над совсем темными hue 45 градусов поработать. Все самое интересное только начинается! Еще семь лет назад хотел такую штуковину, чтобы реально управлять созданием профиля цветоделения, но не было опыта запрограммировать. За семь лет набрался опыта достаточно, чтобы начинать эксперименты с собственным профайлером.
sRGB_colortable_2021_03_10_01_03_53_AM.png
 
  • Спасибо
Реакции: alex103

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Уделяю свободное время когда оно есть генерации нужных красок, и это творчество требует времени, раздумий и тестов. Стенд есть - тестирую.

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

Понял теперь почему у Грэма есть артефакты в очень чистых сепарациях от его профилей, построенных очевидно по какому-то схожему принципу инверсии.
Если намешать разных рецептур оранжевого и с голубым и с черным - дело не пойдет. Не должно быть близких цветов с сильно разными рецептурами. И если заставить мультиразмерную сплайновую интерполяцию просчитать например пространство между 20-70-80-0 и 0-90-100-20 без каких-то переходов от минимальной ширины черного до максимальной - тоже возникают артефакты.

Крайне интересная тема. Вот тут уже цвета считай вроде все охвачены в оранжевой области, но пока не оптимальные переходы от телесных к темным теплого оттенка именно в красках. Буду конструировать требуемые мне массивы красочных сочетаний для телесных, оранжевых и красных дальше. Именно на этом этапе генерации таблиц цветоделения все профайлеры считают по-разному, именно тут ужасен фотошоп, чуть менее ужасны копра с профайлмейкером, неплох Хейдельберг, и совсем хороши Грэм с иксрайтовским i1-профайлером.

Меня сегодня на онлайн-консультации как раз спросили: почему красная плашка цмик 100 на 100 при переделивании на саму себя в фотошопе превращается уже не в плашку 100 на 100, а во что-то другое трех- и четырехкрасочное. А вот потому, что представленная на картинке табличка сочетаний красок внутри тех или иных профайлеров просчитана не идеально, а порой и очень скверно просчитана. Посмотрите, как переделит на себя красную плашку Грэм, и как переделит копра или Гейдельберг - отпадут все сомнения, кто сделал более хороший профайлер для цветоделения. Я постараюсь добиться идеала в скором времени, главное примерно понятно, что именно надо делать.

Еще подумал, что профайлеры все сделаны в Америке и Германии, пожалуй я наверное первый, кто написал свой CMYK профайлер с интерфейсом для свободного коммерческого использования (на первый год взаимодействия с сайтом вообще бесплатно) на территории РФ, РБ, Украины, Казахстана и Прибалтийских стран. Поправьте, если до меня в указанных регионах мира кто-то сделал подобное.

sRGB_colortable_2021_03_10_17_15_52_PM.png
 
  • Спасибо
Реакции: alex103

Gadalka

15 лет на форуме
Сообщения
2 316
Реакции
787
Мне хочется и телесный без черного, и красного попугайчика без голубого, и чтобы при этом артефактов не возникало при переходе в темных оранжевых от одной ширины черного к принципиально другой в красном. Подбираю короче красочные сочетания, никак идеала не добьюсь в переходе.
И если заставить мультиразмерную сплайновую интерполяцию просчитать например пространство между 20-70-80-0 и 0-90-100-20 без каких-то переходов от минимальной ширины черного до максимальной - тоже возникают артефакты.

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

Причём достаточно интеллектуальный, дабы распознать на скриншоте экрана с открытым сайтом где имеются и элементы интерфейса и разнообразные картинки и диаграммы и чертежи...
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
цветоделитель, который будет разрезать картинку на отдельные области, цветоделить их несколько разными методами (с разной генерацией чёрного, например) и собирать опять в единое целое.
Ну этот прием мы можем применять, но я хочу хотя бы во всем, что не GCR и не чб сделать так, чтобы и телесный был по-моему, и у красного попугайчика на брюшке был черный затемняющий, а не голубой. И в принципе я уже вариант сделал сегодня по той же ссылке, но пока с артефактами в супертемных телесных, вроде крашенных черных ресниц и подводок, там пока артефакты словил, вижу там неудачный переход от одной генерации к другой, прибью его сегодня-завтра, должно стать чисто. Пока заметил поканальные артефакты цветоделения только в указанных темных телесного оттенка.
Табличка требуемых мне красок на сегодня выглядит так в цвете, хорошо видно, что я уделил много места телесным (и соседним с ним на цветовом круге) с голубым без черного, здесь сортировка в порядке CMYK по возрастанию.
sRGB_colortable_2021_03_11_19_34_13_PM.png
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Пофиксил сегодня баги переходов от нулевой ширины для телесного, как мне хочется, до максимальной ширины в красном и темно-красном. Слева профиль с багами максимальной ширины черного в темных телесных, справа - небольшая сегодняшняя рихтовка сценария. Посмотрю еще что там в волосах осталось. На картинке голубой канал. В результате все же скрещу ужа с ежом и сделаю красивое плавное исключение для скинтонов в общей максимальной ширине и не суперпозднем старте черного, это приятная работа - доводить постепенно сценарий до совершенства.

cyan_test 37 and 38с.png
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Вчера убирал артефакты из телесных, переходящих в глубокую тень, сегодня баланс выровнял весьма ровно, причем смысл кривой не менялся - увеличилась только ее дискретность на входе мультиразмерной интерполяции. Это оказалась очень интересная творческая работа - отлаживать нюансы построения профиля цветоделения. И это надолго! И в этом фактически может любой участвовать, большинство из того, что я вношу в код - можно внести извне в виде так или иначе подготовленных таблиц. Сделал даже три кнопочки Load для трех таблиц промежуточного экспорта результата для исследователя. Со временем хорошо прокачаю интеллектуально этот стенд конструирования профиля цветоделения.
balance_new.png
 
  • Спасибо
Реакции: alex103

alex103

PROцвет
15 лет на форуме
Сообщения
494
Реакции
86
Михаил, а подскажите, что за Грэм и его труды по профайлам? Я ничего похожего не слышал, а было бы интересно ликвидировать пробел.
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Graeme W. Gill пишет ArgyllCMS.У него есть очень интересные моменты в том же цветоделении: он также как и я всегда фигачит профили с максимальной шириной и даже не предлагает неправильного выбора, что создает максимальную чистоту сепараций, свободу от третьей цветной загрязняющей краски. Судя по результату цветоделения, как он это пишет я не знаю, я не умею чужой код читать, тем более на незнакомом языке.

У сплайновой мультиинтерполяции, которой мы все однозначно пользуемся, есть замечательный феномен: магнетизм групп цифр. Если например задать кривую баланса из позапрошлого поста 30 значениями или 180 значениями, ни капли не меняя формы кривой, то в первом случае соседние небалансовые сложения красок с небольшой хромой будут портить кривую, а во втором случае - нет. Приоритет отдается тем областям, которые большим числом данных и подробнее описаны. Вот пытаюсь этот феномен поставить на службу, чтобы интерполяция явно разделяла телесный с голубым и красный с черным, это практически один сектор по hue, там надо очень тщательно развести в разные стороны загрязенение телесного голубым и затемнение красного черной. При этом нельзя сильно перебирать с размерами таблиц, иначе расчеты долговаты могут быть. То есть равномерное заполнение цветового круга, плюс какие-то акценты с большей детализацией тех или иных красочных соотношений, притягивающих многомерную интерполяцию как магнитом.
 
Последнее редактирование:
  • Спасибо
Реакции: alex103

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Провел 3 дня в экспериментах с исключением телесного из общей максимальной ширины. Посадил эту функцию на таблицу Perceptual. Уже начинает профиль нравиться! По Relative и Saturation задал просто максимальную ширину во всем охвате, в перцепционной таблице - традиционный телесный с минимумом черного при общей остальной максимальной ширине. Трехмерное представление очень помогало развести краски с одной и другой генерацией так, чтобы они нигде не встречались близко.
Профиль для тестов тут по фогре 39.
skin_2021_03_15.png
 
Последнее редактирование:
  • Спасибо
Реакции: almastu и alex103

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Сделал для обкатки в Spectralcalc iccGPU™ три профиля цветоделения по FOGRA 39:

ISO Coated v2 Perceptual Skintones iccGPU - для максимальной ширины черного сделано принципиальное исключение в перцепционной таблице для достижения традиционных телесных с минимумом черной краски. Колориметрическая таблица Relative не делает исключения в максимальной ширине черного для телесных, как это сделано в таблице Perceptual.

ISO Coated v2 Heavy GCR iccGPU - профиль с максимальной шириной черного и тяжелой (Heavy) генерацией GCR для монохромных и ахроматичных изображений.

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

Во всех трех профилях применена UCA пурпурной и голубой красок и анти-UCA желтой краски для достижения максимального возможного контраста оттиска с сепарациями от представленных профилей. Во всех профилях в таблицах Relative применена совершенно особенная максимальная ширина черной краски, позволяющая вытягивать из триадной печати максимально возможный чистый насыщенный цвет. Третья загрязняющая цветная краска везде, где это только возможно, заменяется на черную, которая меньше влияет на снижение насыщенности и лишь регулирует светлоту. Таким образом все 4 краски встречаются в цветоделении практически лишь в балансовой нейтрали и близких к ней слабонасыщенных околонейтральных цветах.

В создании неколориметрических таблиц Perceptual и Saturation задействованы уникальные возможности алгоритма хроматической адаптации CIECAM02. Профиль Perceptual Skintones делает телесные немного почище при цветоделении с перцепционным Rendering Intent. Колоранты RGB обычно светлее, чем колоранты CMY, поэтому таблицы Perceptual и Saturation, чтобы сохранить насыщенность оригинала, немного понижают светлоту колорантов для сохранения их максимальной насыщенности в более темных триадных красках CMYK. Схематично этот перцепционный гамут-маппинг представлен на скриншоте.

На скрине - генерация черного в балансе трех представленных профилей по FOGRA 39.
GrayBalance_3_new_profiles_iccGPU_2021_03_17.png
 

Gadalka

15 лет на форуме
Сообщения
2 316
Реакции
787
Ещё бы доработанный аналог fogra39_GCR70_skin (с ещё более ранним стартом и высокой генерацией чёрного) с расширенным исключением телесных. Если получится при этом в самых глубоких нейтральных тенях получить аналог BTAC240 -- вообще шикарно будет
 

mihas

Топикстартер
15 лет на форуме
Сообщения
4 024
Реакции
2 477
Ещё бы доработанный аналог fogra39_GCR70_skin
Уже думал об этом, сделаю в скором времени, спасибо за классную подсказку. Все-таки у любимого гейделя функция "Less GCR in Skintones" слабенько работает, черный вычищает, но мало. Мы часто пользуемся в переделивании рекламы девушек на сером фоне таким профилем, но его точно можно теперь будет сделать лучше.

P.S. Вау, мне Октобердрюк из Берлина задонейтил сегодня через PayPal за новый функционал сайта. Это особенно приятно, что на родине Хейдельберга будут пользоваться моим узкоспециальным софтом. Наши продвинутые многие подсели, это удобно и совсем не дорого.
leistungen-4-1300.jpg
 

Gadalka

15 лет на форуме
Сообщения
2 316
Реакции
787
Мы часто пользуемся в переделивании рекламы девушек на сером фоне
С ним очень хорошо ювелирка получается. И золото и серебро.
Да и печатникам он нравится не только в таких сюжетах.
 
  • Спасибо
Реакции: dev9togo и mihas