Как влияет гранулярность на точность цветового профиля ICC

теоретические и практические аспекты колориметрии, системы управления цветом
Ответить
Аватара пользователя
RAn
Сообщения: 28
Зарегистрирован: 15 май 2013, 22:16

Как влияет гранулярность на точность цветового профиля ICC

Сообщение RAn »

Прочитал у вас про гранулярность цветовых icc профилей и связанную с этим точность вычислений цвета. Ничего не понял. Профили бывают 8-ми и 16-и битные. Как гранулярность та или иная может улучшить 16-битную точность цветовых преобразований? Где и как посмотреть гранулярность профиля icc и в чем смысл гранулярности?
Аватара пользователя
mihas
Администратор
Сообщения: 1383
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Как влияет гранулярность на точность цветового профиля ICC

Сообщение mihas »

Посмотреть гранулярность профиля не сложно - показал на скриншотах ниже по топику, это все бесплатный софт: Profile Inspector, iccMAX.
Что же касается точности цветовых преобразований в зависимости от гранулярности профиля, то тут такие пара соображений.

Давайте взглянем в небольшой табличке на связанное с гранулярностью напрямую число "узлов" многомерного CLUT (в данном случае трехмерного) тега профиля, взглянем на шаг или степ по осям ab CIELab координат цвета в профиле:

ГранулярностьШаг по осям abЧисло узлов куба LabТипично для программы
17164913CoPrA (с малым размером профиля)
2510.715625iccGPU, i1Profiler с приоритетом размера
33835937EFI 3cc, 3cc creator, Heidelberg ColorTool
377.150653iccGPU, i1Profiler с приоритетом качества
416.4689213cc41 creator в бесплатной версии
515.11326513cc51 creator в коммерческой версии

Гранулярность - это число шагов или степов по каждой размерности массива, трехмерного для Lab и RGB, четырехмерного для CMYK, с еще большим кол-вом размерностей для многоканальных типа CMYKog (гексахром и прочие струйники). Для координаты L - диапазон 0-100 делится на гранулярность, для координат ab - диапазон 256 значений от -128 до 128. Гранулярность возводится в степень числа каналов - это и будет кол-вом узлов таблицы CLUT цветового профиля. При высокой гранулярности шаг между узлами меньше, и таким образом цвет прописывается точнее, но растет размер цветового профиля и растет время вычисления профиля. Поэтому обычно профили RGB точнее профилей CMYK, в цмике с возведением гранулярности в 4 степень числа каналов несколько экономят на размере и времени вычислений профиля, тогда как третья степень числа каналов Lab и RGB жрет куда меньше килобайт и мегабайт под таблицу профиля, жрет меньше компьютерных ресурсов при вычислении, гранулярность RGB профилей в программах всегда ощутимо выше, чем у CMYK. Очевидно у многоканальных со степенями более 4 совсем хилые показатели по точности при низкой гранулярности но при огромных таблицах.
Profile Inspector. Гранулярность CLUT, равная 41 в данном теге, помечена желтым
Profile Inspector. Гранулярность CLUT, равная 41 в данном теге, помечена желтым
• 64.47 КБ • 1729 просмотров
XML того же профиля, созданный при помощи iccMAX, гранулярность таблиц CLUT GridGranularity 41 выделена
XML того же профиля, созданный при помощи iccMAX, гранулярность таблиц CLUT GridGranularity 41 выделена
• 253.92 КБ • 1729 просмотров
iccMAX, wxProfileDump, гранулярность 41 выделена
iccMAX, wxProfileDump, гранулярность 41 выделена
• 185.59 КБ • 1729 просмотров


16-битное кодирование значений таблицы профиля - это все хорошо и правильно, это в десятичном исчислении точность до тысячных долей. Но если шаг таблицы большой, то есть гранулярность низкая - то никакая 16-битная точность описания редко стоящих в таблице значений не спасет. Так например i1Profiler в режиме приоритета качества и большом размере профиля задает гранулярность 37 для Lab-таблиц, а это шаг по осям ab равный 7.1, какая уж тут точность до тысячных долей 16-битного способа записи. Для некоторых целей повышенной точности специалисты задают в профиле при его расчете гранулярность и 41, и 51. Так например, хорошие показатели получаются по точности цветопробы при расчете dlp 3cc не со штатной для EFI гранулярностью 33, а с повышенной - 41 и 51. Так мы выходим за рамки точности i1Profiler и точности цветопробного рипа EFI с их гранулярностями 37 и 33, и добиваемся эксклюзивной точности на повышенной гранулярности 41 или 51 корректирующего девайс-линка Lab➔Lab с расширением 3cc (просто разновидность icc). Симуляция одного измерительного прибора другим также предполагает девайс линк с гранулярностью 51, не менее.

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

Таким образом, записать значения CLUT-таблицы профиля можно 8-битными, 16-битными, 32-битными, 64-битными, но точность профиля будет складываться не из способа записи, а в первую очередь из гранулярности: чем выше - тем точнее. Однако размер профиля растет по степенной функции от гранулярности в основании функции и степени числа каналов, скорость вычисления профиля с повышенной гранулярностью, с бОльшим числом каналов, также может быть ощутимо долгой, поэтому чаще всего мы имеем дело с профилями со средней не чемпионской гранулярностью. В большинстве случаев эта экономия времени и размеров оправдана, но бывают ситуации когда гранулярность требуется повыше типичной для мейнстримных профилей обычного назначения: уже упомянутые межприборная симуляция и цветопроба эксклюзивной точности требуют гранулярность повыше. Я свою коммерческую пробу вывожу обычно именно на такие уровни точности, благо с годами упорных тренировок овладел понемногу навыками программирования в колориметрии. Я написал коммерческий профайлер и RGB, и CMYK, и бесплатный Lab➔Lab, все естественно 16-битные, и везде гранулярность принималась во внимание как наиважнейшая величина.

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

Во многих случаях RGB-профилирование типичных CMYK (и более каналов) устройств точнее не по причине "черного ящика драйвера", а по банальной причине большей гранулярности априори у профиля с меньшим числом каналов: шаг между значениями узлов таблицы CLUT меньше - точность выше. Я калибровкой цветопробы занимаюсь лет 20, последние годы еще и обучением калибровке цветопробы: совсем не редки случаи, когда типичная CMYK цветопроба для полиграфии получается точнее на 3-канальном RGB профиле, чем на 4-канальном CMYK профиле. И ответ прост: гранулярность а значит точность профиля RGB априори при прочих равных всегда выше гранулярности профиля CMYK устройства печати.
Vesee
Сообщения: 46
Зарегистрирован: 28 апр 2012, 06:29

Как влияет гранулярность на точность цветового профиля ICC

Сообщение Vesee »

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

Как влияет гранулярность на точность цветового профиля ICC

Сообщение mihas »

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

Да зачастую в цветовых преобразованиях используются профили и их таблицы CLUT с разной гранулярностью. Но это нисколько не мешает преобразовывать цвет точно и правильно в силу особенностей интерполяционных многомерных расчетов.

Ведь как происходит преобразование в модуле CMM: модуль для того, чтобы определить значение красок для цвета или цвета для значений каналов, берет из таблицы профиля не 3-4 значения, а пару десятков близлежащих значений сетки LUT, и по длиннющей, но очень быстрой формуле многомерной линейной интерполяции типа трилинейной вычисляет требуемое точное значение не из трех узлов сетки, а из ~20 узлов сетки. Поэтому сетка CLUT одного профиля никак не пересекается с сеткой CLUT другого профиля, в PCS попадает точное интерполированное значение. Да, быстрые многомерные линейные интерполяции в таких нелинейных вещах, как цвет или даже красочные каналы, менее точны, чем интерполяции многомерные сплайновые, которые применяются при построении профиля. Именно поэтому построение профиля сплайновой многомерной интерполяцией обозначено при наивысшей возможной в профайлере гранулярности как наивысшее качество. Потом простые линейные интерполяции применения профиля будут точнее из сетки CLUT, по десяткам ее значений определят цвет или содержание каналов на сетке с частым шагом точнее, чем на сетке с редким шагом.

Как примерно работает быстро налету трилинейная интерполяция в модуле CMM - можно подсмотреть в открытом коде этого моего цветового конвертера. Здесь тоже налету вычисляется огромное число значений при перемещении слайдеров или range цвета, каждый крохотный степ перемещения успевает полноценно просчитываться по CLUT для CMYK.

Изображение
Ну и как это происходит на практике. Например профиль офсетной печати типа ISO Coated v2 ECI имеет небольшую гранулярность 16 таблиц CMYK➔Lab, там особо больше и не нужно.
А вот профиль, который преобразует лабы наших офсетных красок в каналы драйвера принтера имеет уже гранулярность 33 или 37, и даже этого немного маловато для наиточнейшей цветопробы. Но как таковая низкая гранулярность 16 офсетного профиля не является препятствием для повышения точности пробы ее профилем с гранулярностью 33 или 37. А встроенное в эту цепочку уточняющее Lab➔Lab преобразование с гранулярностью 41 или 51 еще дополнительно поднимает точность имитации по цвету красочных каналов нашего офсетного профиля ISO Coated v2 с низкой гранулярностью. И повышать гранулярность ISO Coated v2 смысла математического нет особо, а вот повышать гранулярность профиля назначения для пробы по части таблиц Lab➔каналы, и повышать гранулярность Lab➔Lab корректирующих таблиц - очень даже имеет смысл.

Все замечали, что профили цветопробного принтера от EFI с гранулярностью 33 менее точны, чем профили по тем же спектральным данным тех же тесткарт от i1Profiler с гранулярностью 37 (приоритет качества а не размера в настройках профайлера). И это логично, с учетом всего того, что мы обсудили про гранулярность выше. Профиль источника ISO Coated v2 с гранулярностью 16 остался прежним, а точность возросла при применении повышенной гранулярности таблиц Lab➔краски (каналы) профиля назначения цветопробного принтера. И точность еще возрастает, когда на уровне PCS мы вмешиваемся с еще более высокой гранулярностью Lab➔Lab уточнения и юстировки особым профилем 3cc. Даже штатный профиль 3cc Lab➔Lab уточнения от EFI с гранулярностью 33 дает неплохую прибавку 2-3 десятых ΔE 1976 к точности, а профиль специальный с гранулярностью 41-51 дает прибавку в точности на 4-5 десятых по ΔE 1976 при прочих равных.
Примерно так это работает.
Аватара пользователя
mihas
Администратор
Сообщения: 1383
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Как влияет гранулярность на точность цветового профиля ICC

Сообщение mihas »

Гранулярность упоминается мельком также в этом эссе CIE Lab: куб? шар? гексагон? "голова лошади"? "подкова"?
Мне кажется эта тема несложная в целом не достаточно внимательно рассмотрена в пабликах, народ с шаром и кубом Lab путается.
Мои 5 копеек в копилочку полезных знаний.
Ответить

Вернуться в «Колориметрия - наука о цвете: теория и практика»