Ответ: i1+неродной софт: доверяю, но проверяюсь
Alex-rsr сказал(а):
Что вы понимаете под квадратичной интерполяцией?
В основе интегрирования по методу парабол лежит метод интерполяции табличной функции с помощью параболы, проведённой по 3 точкам на каждом отрезке интегрирования. Это достаточно эффективный метод для интерполяции, дающий вполне предсказуемую точность. И достаточную точность.
Неделю назад я реализовал таки метод прогноза-коррекции на основании двух замеров с учётом ошибки измерения. Первые результаты меня порадовали, ибо удалось учесть погрешность денситометра (вызванную дискретностью механизма округления данных) и получить гладенькую результирующую кривую, без заметных "всплесков" (или "загогулин"). По этому методу я выполнил линеаризацию плёночного ФНА и при этом получились достаточно гладкие градиенты, почти как без линеаризации. Буду двигаться дальше.
Идея коррекции не нова - в Харлекине есть возможность делать коррекцию кривой на основании последующих измерений после последнего шага линеаризации. Но я научился учитывать ошибку дискретизации без применения сложных алгоритмов - только на основе измерений.
По моему опыту эффективное построение кривой линеаризации (кривая, в смысле график, а не оценка результата) является spline-интерполяция.
Сплайн хорош до тех пор, пока отсутствуют ошибки измерений. В реальности достаточно округления (скачка), введённого измерительным прибором, чтобы вызвать "волну", которая изогнёт теоретически гладкую линию. Не годится. И отказ от режима сглаживания в Калибраторе (при построении компенсационных кривых для ФНА) только подтвердило вышесказанное. Чтобы исключить лишние разговоры, скажу, что некоторые плёночные ФНА всё же требуют компенсации средствами РИПа.
Что мы видим: M=90 на самом деле M=50, ведь есть кривая линеаризации.
То, что вы отметили "на самом деле" - это всего лишь входной сигнал для принтера, который должен нарисовать 90%. Поэтому не уравнивайте в правах стимулы, выданные из профилей в драйвер, и стимулы, поступающие на вход электроники принтера. Кроме того, линеаризация предполагает, что при любой кривой стимул в 100% даст на принтере его личные персональные 100% тона. Первый шаг - нормализация отклика принтера. Т.е. приведение диапазона 0-100% в диапазон подачи краски от 0 до N микрограмм. Тепрь внутри этого диапазона добивайтесь линейности хотя бы по ND тона для каждой краски - на 100%==Nкраски это не повлияет. Как и на 0%==0краски.
Как найти Nкраски для достижения максимального охвата принтера - задача инженеров-разработчиков принтера. При определённой щедрости, подкреплённой завышенной ценой устройства, они могут позволить юзеру регулировать параметр N и даже задавать начало и конец графика функции управления поканально.
Второй шаг - характеризация с помощью тестовых патчей, напечатанных с последней линеаризацией.
У меня были попытки выключить управление в драйвере и построить профиль названного мной принтера. Проблемы возникли в диапазонах, близких к периферии зоны цветового охвата и вблизи теней - всюду, где лилось слишком много краски. Все патчи, содержащие в любом из каналов более 60%, выглядели слишком плотными, а бинары вообще были тусклыми. Естественно, что баланс серого мне не удалось получить и охват был так себе. Нейтрально серый градиент синил начиная от 1/2 диапазона. Такой результат предсказуем, ибо не было возможности раздельного поканального управления тоновым диапазоном и линеаризацией. После линеаризации (достаточно грубой, как оказалось впоследствии) построение профиля дало уже более приятный результат - нейтрально серый градиент перестал полосить и стал более равномерно подкрашен.
По-моему, имеется величайшая путаница в умах. Она состоит в том, что реально линеаризация, во-первых, не должна влиять на граничные участки тонового диапазона печатающего устройства. Если кому-то охота поуправлять, то хорошо иметь некие управляющие параметры, задающие максимальный расход краски. Т.е. как в кране - вентиль отвёрнут на расход 2 л/час, но давление в трубе поднято и расходуется 5 л/час. Не факт, что зависимость расхода от величины открытости заслонки при разных давлениях сохранится. Вот с этой целью и выполняется линеаризация. Давлением в гипотетической трубе должен управлять совершенно иной параметр, никак не связанный ни с профилями, ни с процентами.
Во-вторых, линеаризация является исключительно аппаратно-зависимой, т.е. должна составлять единое целое с железом, образуя некий "чёрный ящик". Хорошое, если разработчики дают возможность подстроить кривули для другого типа бумаги и расхода пигментов.
Что должен сделать профиль - это учесть характеристики чёрного ящика, который был заранее линеаризован. И подавать соответствующие сигналы на его вход.
И вообще, этот плотный цвет имеет суммарно 135% и это предел, для данного цвета, установленный total ink limit = 260% и линеаризацией. А ведь если бы не было линеаризации, мы бы могли получить гораздо более плотный цвет и больший цветовой охват при том же самом total ink limit = 260%. Первую часть доказали.
Не доказали.
Не факт, что большее количество краски даст больший охват. Нескомпенсированные кривые иногда показывают снижение плотности, замерянной по статусам T/E, начиная с входных CMYK-стимулов 75-80%. Поэтому полезно было бы, к примеру, представить аппаратные 0-80% как диапазон стимулов 0-100%. Но такой явной возможности драйвер моего принтера не предоставляет. Дорогостоящий Приндрайв (средство, мягко говоря, не для цветовоспроизведения), реализует это
до принтера, но
после собственного CMS, как и должно быть. И как ни странно, именно с его помощью я добился внятных результатов, ибо смог раздельно управлять максимумом подачи краски и тоновой передачей.
Итак,
механизм линеаризации обязан быть реализован на выходе CMS и до электроники принтера.
Вторая часть - в новом сообщении.