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

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

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

Сообщение mihas »

Последовательность действий. Жмем Spot с нужным пантоном. Потом жмем CMYK. Потом жмем по надписи dE и получаем в новом окне репорт о цветовых различиях
Последовательность действий. Жмем Spot с нужным пантоном. Потом жмем CMYK. Потом жмем по надписи dE и получаем в новом окне репорт о цветовых различиях
• 207.34 КБ • 6913 просмотров
Спасибо вам за хороший своевременный вопрос.

Я поюстировал немного функцию dE конвертера на предмет безупречного взаимодействия с кнопками CMYK и Spot, работает:

https://cielab.xyz/report.php?69.40&-28.55&60.18&70.20&-37.18&73.38

В принципе показал на картинке и вашем 376 пантоне, в какой последовательности жать кнопки чтобы получить репорт о цветовых различиях между пантоном и его ближайшим триадным вариантом.
JDS
Сообщения: 9
Зарегистрирован: 08 июн 2021, 10:23

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

Сообщение JDS »

Благодарю, Михаил!
Дельта в 15,79 радует креативных креативистов заказчика. Именно 15,79 будет способствовать увеличению продаж. Сотка в сторону и носки в сказочной упаковке зависнут на полках.
Аватара пользователя
mihas
Администратор
Сообщения: 1462
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

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

Сообщение mihas »

CTV в интерфейсе спектрального калькулятора. Вычисляются данные по профилю ISO Coated v2 (он же - фогра 39)
CTV в интерфейсе спектрального калькулятора. Вычисляются данные по профилю ISO Coated v2 (он же - фогра 39)
• 459.04 КБ • 6794 просмотра
Сделал калибровочные кривые CTV под фогру 39, кривые AB, фогру 51. Также крайняя колонка rel39AB - относительная поправка к точке с целевой усредненной фогры 39 и кривых AB офсетного стандарта (меловка). Последняя колонка сделана для практической сверки результатов калибровки через CTV и традиционных через TVI.

CTV - это равноконтрастные размеры точек для измеренных лабов. Впервые CTV упоминает проект стандарта 12647-2 в 2024 году (обсуждение по ссылке), базируется CTV на равноконтрастной градационной метрике SCTV, обсуждалась в 2020 году по ссылке, с формулами и калькулятором. CTV по проекту офсетного стандарта 12647-2 сезона 2024 вводит нелинейные коэффициенты для приведения результата равноконтрастной Perceptual Uniformity метрики SCTV к техногенным привычным целевым TVI.

В таблицах приведены CTV по данным фогры 39 для проверки, соответственно при целевых все той же фогры 39 поправки остаются линейными, и лишь исправляют крохотную ошибку сглаживания Гейдельбергом голубого 55% полутона:

CyanTVI zTVISCTVCTV-39CTV-ABCTV-51rel39AB
100001001001001000
981.381.0598.1298.0097.8197.260.10
953.362.6195.3795.0094.7593.870.12
906.354.9990.6890.0089.9088.080.05
858.907.0485.8085.0085.0982.51-0.04
8010.968.7080.6780.0080.1777.34-0.08
7512.539.9175.2675.0075.1672.06-0.08
7013.7710.8269.7770.0070.2466.93-0.12
6015.0211.7258.7960.0060.2956.97-0.15
5515.1011.6053.1454.9055.1951.71-0.04
5014.9811.4347.8150.0050.3446.70-0.17
4013.9510.5237.5440.0040.5336.99-0.27
3011.548.5127.2730.0030.4427.06-0.22
2510.177.3922.4325.0025.4622.30-0.23
208.706.3217.8920.0020.5917.92-0.29
156.874.8413.1515.0015.5013.25-0.25
104.863.328.6210.0010.438.82-0.21
73.542.345.967.007.346.24-0.17
52.561.674.215.005.234.39-0.12
31.510.942.473.003.142.68-0.07
20.970.581.602.002.061.86-0.03
00000000
MagentaTVISCTVCTV-39CTV-ABCTV-51rel39AB
10001001001001000
981.2598.3898.0097.5997.810.20
953.0795.9495.0094.2294.840.39
905.8991.7690.0089.0589.630.47
858.3487.2285.0084.1284.470.44
8010.2282.1180.0078.9979.320.50
7511.5776.5975.0073.7373.940.63
7012.6871.1170.0068.7668.920.62
6013.8159.8660.0058.8658.430.57
5513.9054.2755.0053.9653.160.52
5013.6748.7450.0049.0547.910.48
4012.3137.8240.0039.1337.380.43
3010.1527.4630.0029.3627.310.32
258.8022.4625.0024.4822.400.26
207.2217.6020.0019.5617.610.22
155.6312.9815.0014.7213.030.14
103.938.5210.009.878.620.06
72.845.907.006.956.100.02
52.034.175.004.964.350.02
31.162.443.002.932.660.03
20.721.582.001.921.760.04
0000000
YellowTVISCTVCTV-39CTV-ABCTV-51rel39AB
10001001001001000
981.2998.1598.0097.6297.570.19
953.1895.4395.0094.3694.490.32
906.1290.8090.0089.4389.570.28
858.6985.8785.0084.6984.890.16
8010.7780.5380.0079.8580.190.08
7512.3274.8475.0074.8474.980.08
7013.5269.1870.0069.9269.920.04
6014.6357.8060.0059.8359.470.09
5514.6352.2054.9754.7754.160.13
5014.4246.8150.0049.8248.960.09
4013.1336.4240.0039.8938.610.06
3010.7726.3930.0029.8628.220.07
259.2521.5925.0024.8423.210.08
207.5616.9520.0019.8118.230.09
155.9112.5615.0014.9113.540.05
104.028.2310.009.948.910.03
72.775.667.006.916.160.05
51.994.005.004.934.370.03
31.182.363.002.952.610.02
20.741.532.001.941.680.03
0000000
BlackTVISCTVCTV-39CTV-ABCTV-51rel39AB
10001001001001000
981.4697.2198.0098.0097.78-0.00
953.5193.0695.0094.9595.050.02
906.6386.4590.0090.0490.46-0.02
859.3280.0985.0085.0385.91-0.02
8011.5573.9080.0079.9381.280.04
7513.5168.2075.0075.0576.55-0.03
7015.0162.6270.0070.0471.67-0.02
6016.6051.7160.0059.7061.350.15
5017.1542.0050.0049.8651.270.07
4016.0032.5540.0039.7240.720.14
3013.9023.9030.0029.8830.440.06
2512.2719.6625.0024.8825.210.06
2010.2315.4520.0019.8119.980.09
158.2111.5315.0014.9314.950.03
105.817.6310.009.989.920.01
74.175.307.006.986.950.01
53.013.765.004.984.910.01
31.792.233.002.972.950.02
21.161.462.001.961.920.02
0000000
Вложения
Аватара пользователя
mihas
Администратор
Сообщения: 1462
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

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

Сообщение mihas »

Добавил к расчетам градационных обратную функцию от SCTV - а именно SCTV Transfer Curves или калибровочные кривые SCTV-TC.
Вложения
Аватара пользователя
mihas
Администратор
Сообщения: 1462
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

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

Сообщение mihas »

Чекбокс интерполяции в интерфейсе
Чекбокс интерполяции в интерфейсе
• 290.2 КБ • 5074 просмотра
Добавил к градационным таблицам интерполяцию с шагом 1.

Надо сказать, я и так интерполирую всегда эти кривые с шагом 0.01 для качественной сплайновой отрисовки в интерфейсе плавных кривых, состоящих из точек. Тот же php вообще не знает, что такое кривая, у него есть примитивы: точка, линия, круг, многоугольник. Ну я и рисую кривую от 0 до 100 с помощью 10 000 круглых точек, и их просто просчитываю интерполяцией, причем и на сервере тоже для красивой отрисовки, 10 000 значений между клиентом и сервером не перетаскиваю неэкономно: у клиента своя кубическая интерполяция, у сервера - своя, а набор данных для обмена между ними минимальный.

Если в данных осцилляции - вредная штука в целом для печати - то на графике от php это видно, что линия прерывистая из точек, а не сплошная. Тут даже дискретности 10 000 точек не хватает отрисовать осцилляцию непрерывно. И может и к лучшему, кстати, сразу понимаешь графически, что тут с полутонами будет беда, если даже повышенной дискретности не хватает.
Вложения
JDS
Сообщения: 9
Зарегистрирован: 08 июн 2021, 10:23

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

Сообщение JDS »

Добрый день.
Снова вопрос по циферкам и дельте.

Берем для примера 186 пантон.
Выходит за охват, жмем цмик: М99 У85 К6, получаю ΔE 2.5.
Но если ручками поставлю М100, У85, К2, то ΔE уже 1.9.
Добавлю проблем и поставлю С2 М100 У85 К2 — получаю ΔE 1.8.

Собственно, почему не минимальная дельта при расчетах? Или не стоит за ней гнаться?

Вопрос «чистого препресса» — понятно, что в этом примере останется только М100 У86 и будем катать в 2 секции с ΔE 2.7.
Аватара пользователя
mihas
Администратор
Сообщения: 1462
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

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

Сообщение mihas »

Сравните результаты цветовых различий по формулам ΔE 1976 и ΔE 2000 для примеров
Сравните результаты цветовых различий по формулам ΔE 1976 и ΔE 2000 для примеров
• 270.39 КБ • 2234 просмотра
> Собственно, почему не минимальная дельта при расчетах? Или не стоит за ней гнаться?

Это интересно! Когда мы строим модель заохватных в цветовом профиле CMYK - мы не оперируем простой евклидовой дельтой 1976. Я оперирую более привязанным к восприятию CIECAM02 для расчета заохватных. И как бы результат на скриншоте таблицы цветовых различий наглядно подтверждает, что цветовой конвертер все же вывел по профилю минимальную визуальную дельту Е 2000 среди трех предложенных вами вариантов. Но эта же дельта максимальная в евклидовом варианте 1976. Так бывает. Конвертер не использует формулы ΔE 2000 для ускорения расчетов, и это ускорение нам крайне важно, если мы начнем двигать рычажками светлоты, насыщенности и тона: конвертер успевает налету просчитывать все эти перемещения в реалтайме на современном процессоре. Именно поэтому я использую в конвертере самую простую и скоростную дельту 1976, а не более продвинутую, сложную и медленную дельту Е 2000. Однако по визуальной дельте 2000 первый результат конвертера выигрывает у предложенного перебора дополнительных вариантов, в силу особенностей таблиц профиля CMYK конвертера, никак не завязанных на ΔE 1976 за охватом триады.

Изображение
Схематичная иллюстрация того, какие разные заохватные цвета создают в цветовых профилях разные программы и их алгоритмы. Слева - сбалансированный CIECAM02, примерно как в обсуждаемом конвертере мной посчитаны таблицы за охватом для CMYK fogra 39
Когда мы жмем кнопку SPOT для расчета его триадных значений - происходит одноразовое вычисление по профилю, просто CMM отрабатывает многомерные интерполяции - вот Lab, вот из него CMYK. Тут нет перебора близлежащих значений CMYK и их сравнения по дельте 1976 с пантоном, нет расчетов CMYK➔Lab при нажатии кнопки SPOT. А при нажатии кнопки CMYK - уже CMYK➔Lab таблица работает. То есть мы задействуем разные таблицы профиля по кнопкам SPOT и CMYK, разные направления преобразования Lab➔CMYK или CMYK➔Lab. Учитывая то, что пантон 186 капельку заохватный и возникают изученные вами разночтения по разным таблицам профиля за охватом триады и в охвате триады. Вообще все что за охватом в таблицах профиля так или иначе виртуально: при построении профиля этих данных по цвету нет вообще, и программа их додумывает как-то (у меня по CIECAM02), тут экстраполяция за границы модели, и точно не по евклидовой ΔE 1976 экстраполяция, от того и не идеальная корреляция с формулой ΔE 1976.

Гнаться за самой лучшей дельтой той или иной, думаю, стоит. Но пока вручную для заохватных. У меня пока нет в алгоритме после расчета Lab➔CMYK для заохватных такого, чтобы провести серию близлежащих расчетов CMYK➔Lab и выбрать из них какой-то результат по дельте той или иной в конвертере. Но как идея такой перебор вариантов вполне себе нормальная. Я обдумаю и возможно воплощу в коде.
Аватара пользователя
mihas
Администратор
Сообщения: 1462
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

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

Сообщение mihas »

Градационные таблицы в интерфейсе спектрального калькулятора, удобный простой табличный копипаст между программой и любым табличным редактором
Градационные таблицы в интерфейсе спектрального калькулятора, удобный простой табличный копипаст между программой и любым табличным редактором
• 429.42 КБ • 579 просмотров
Написал функцию трансфер-кривой или калибровочной по данным TVI в теле спектрального калькулятора.

Функция не отменяет интегрированного калькулятора dlp, в нем и 10 уровней сглаживания, и побольше целевых кривых, включая произвольные, и кривые профиля фогры 39; в калькуляторе dlp и запись в девайс-линк icc, помимо расчета таблиц.

Функция TVI-TC (transfer curves) в общих расчетах спектрального калькулятора использует другую математику, интерполяции с подменами осей, нежели математика перебора по циклу 10000 значений градационной шкалы в калькуляторе dlp по этой стандартной схеме.

На вскидку - проверенный за десятилетие калькулятор dlp будет явно поточнее, и продвинутые рипы считают как он.

Целевая кривая для расчетов TVI-TC выбирается в первом спойлере селектором "Кривые TVI и допуски (tolerance)", по умолчанию кривые A-B (14-17, цветные-черная) для меловки стандарта 2004 года, идут первыми в списке как кривая А для цветных.
Вложения
Аватара пользователя
mihas
Администратор
Сообщения: 1462
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

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

Сообщение mihas »

Две интерполяции и перебор по циклу dgcor
Две интерполяции и перебор по циклу dgcor
• 101.47 КБ • 526 просмотров
Перепроверил алгоритм расчета интерполяцией TVI-TC независимо от своих расчетов на яваскрипте - в LibreOffice с плагином сплайновых интерполяций (функция CERCHA).

Первые выводы пока такие:

⬢ Интерполяции считают в принципе одинаково, то есть тут подвоха нет.

⬢ Интерполяции в тенях могут чудить и ошибаться, метод перебора по циклам 10000 значений на измеренной шкале и на целевой шкале с нахождением равенств, работает правильнее (зеленая кривая графика). Принципиальная схема такого перебора значений публиковалась тут.

На скриншоте и в Экселе привел разночтения между интеполяционными расчетами калибровочной и расчетами перебором по циклу калькуляторов семейства dgcor и dlp. Обратите внимание, что для 95% точки измеренное растискивание 4.04 и целевое 3.45. То есть точка 95% на пластине явно должна быть уменьшена, как на зеленой кривой графика, а не прибавлена, как на синей и красной кривых интерполяционных расчетов.

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

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

Сообщение mihas »

Добавлена интерполяция с шагом 1%
Добавлена интерполяция с шагом 1%
• 149.04 КБ • 486 просмотров
Немного разбираюсь с особенностями калибровки через сплайновые интерполяции. Кое-какое уже имеется решение, осталось запрограммировать.

Идея в том, чтобы до начала расчетов калибровочной TVI-TC интерполировать сплайнами целевые и измеренные кривые TVI в частый шаг, например в 1% как на графике. И сразу картина меняется, калибровочная TVI-TC как результат интеполяционных (фиолетовая кривая) расчетов становится более менее адекватной и похожей в тенях на зеленую кривую классических расчетов калибровочной перебора по циклам.

Почему я так решил действовать? Перебор по циклам любую измеренную шкалу от 0 до 100 интерполирует в 10 000 значений с шагом 0.01% и лишь потом ищет соответствия с целевой кривой TVI.

Подумал, что то же самое применимо к интерполяционным расчетам калибровочной TVI-TC, не прогадал. Наверное когда буду программировать - интерполирую не в шаг 1% на графике, а в шаг 0.01% как в классических расчетах. Это в Экселе несколько громоздко работать с таблицами 10 000 значений, а при программировании особо роли не играет, какой именно шаг интерполяции я укажу. Всего двумерные сплайновые интерполяции - довольно быстрая штука (в отличие от многомерных для расчета профиля в iccGPU).

Думаю, на этой неделе уже и поправлю немного расчеты TVI-TC для пущей их точности. Все-таки кривые синего и красного цвета на графике никуда не годятся, это ошибка типа осцилляции, а не хорошие расчеты. Я прописал как мне показали в Эксель, этого не достаточно для нормальной точности, надо улучшить немного за Экселем расчеты на яваскрипте.
Аватара пользователя
mihas
Администратор
Сообщения: 1462
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

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

Сообщение mihas »

Все получилось.
Запрограммировал интерполяционную калибровку с измерениями TVI с шагом 0.01%, как в dlp калькуляторе.
Добавил 4 строчки по коду для функции TVI-TC.

Максимальная разница TVI-TC с классическими расчетами калибровочной - 0.31% точки, средняя разница - 0.06%.
Я думаю что погрешностью три десятых процента точки (менее одного степа в 8 битах) можно смело пренебречь, это не три процента разницы, когда одни расчеты показывают в 98% минус полтора а другие плюс полтора.
Теперь все сходится при расчетах кривых с шагом 0.01%, а не с шагом измеренной тесткарты.

Сглаживание в калькуляторах калибровки
Сглаживание в калькуляторах калибровки
• 230.22 КБ • 461 просмотр
Файлики контроля прикрепляю в Экселе и ЛибреОффисе.
Спектральный калькулятор с новейшей функцией TVI-TC на сервере обновлен.

Мне так на вскидку показалось, что при расчете калибровочной интерполяцией с подменой осей происходит в тенях осцилляция, ну просто так выглядит график. Возможно так оно и есть при шаге таблицы замеров тесткарты, просто без подмены осей мы этих осцилляций не ловим, а с подменой они вылезают. Хорошо что быстро нашлось адекватное задаче решение интерполировать шаг тесткарты в шаг 0.01% (10 000 значений на шкале 0-100).
На плавной и даже не очень плавной кривой с шагом 0.01 в диапазоне 0-100 уже трудно устроить осцилляцию, разве что только кривая будет гребенкой. Но в данной ситуации это исключено, шаг 0.01 получен не шумными измерениями, а плавными сплайнами. Осцилляции ловили на пластинах коллеги, когда им один чувак посоветовал вносить в рип измеренные точки 0-1-2-3-4-5-6-7-8, а не как я учил 0-2-5-10. Осцилляции от сплайновых интерполяций рипа на печатных формах страшное дело, их очень трудно повторить при желании, даже "завязывая узлом" калибровочную.

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

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

Сообщение mihas »

Изображение
Пример отрисовки кривых на чистом php с применением кубических сплайнов
Подчеркнуты параметры контроля
Подчеркнуты параметры контроля
• 242.67 КБ • 432 просмотра
Примеры осцилляции и постеризации на одном графике тонопередающих кривых
Примеры осцилляции и постеризации на одном графике тонопередающих кривых
• 144.11 КБ • 432 просмотра
Расскажу презабавную вещь.

У меня по коду спектрального калькулятора сотни раз вызывается кубическая интерполяция, она самая быстрая из тех сплайнов, что я запрограммировал, и я ее задействую на любой чих. Такие полезные функции вообще бы надо включать просто в язык программирования, как возведение в степень или вычисление косинуса. Я ее как 12 лет назад написал на яваскрипте, так и юзаю активно везде. Даже потом и на серверном языке php написал ее же чисто для отрисовки сплайновых кривых на графиках.

И TVI-TC я считаю также с применением кубического сплайна к таблице замеров, для преобразования ее в шаг 0.01.

А когда я проверял в калибровочном калькуляторе - то по привычке пользовался монотонной интерполяцией Hermite по умолчанию.

Отсюда разночтения средние 0.06% между разными алгоритмами. Попробовал кубический сплайн и в калькуляторе калибровки - и среднее разночтение упало до 0.02% между традиционными расчетами с перебором ответа по вложенным циклам и с расчетами интерполяцией с подменой осей.

Hermite помедленнее, поэтому я ее не задействую с большими массивами в тысячи и десятки тысяч строк спектров.

Тем не менее, в чем смысл этой монотонной интерполяции. У Hermite выполняется как раз правило монотонности, так что функция на отрезке не переходит от минуса к плюсу. То есть не подвержена осцилляциям. Еще более жестко и я бы сказал угловато выдерживают правило монотонности сплайны Акимы. А вот кубическая интерполяция, многочлены Лагранжа и так далее - все они могут не выполнять правила монотонности и подвержены осцилляциям, синусоидам, в википедии описана как Феномен Рунге эта подверженность осцилляциям. И по косвенным признакам (в код не заглянуть), рипы для подготовки печатных пластин также считают проблемные кривые с осцилляциями.

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

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