Как различные части файла ICC работают вместе?

Я взял ICC-файл из http://www.brucelindbloom.com/index.html?MunsellCalcHelp.html с таблицей поиска, используя ICC Profile Inspector. Файл ICC должен конвертировать Lab в Uniform LAB.

Файлы, которые он выводит, включают заголовки, матрицу (матрица тождественности 3x3), кривые ввода и вывода и справочную таблицу. Что означают эти файлы? И как они связаны с преобразованием цвета?

Содержимое заголовка:

InputChan: 3
OutputChan: 3
Input_Entries: 258
Output_Entries: 256
Clut_Size: 51

Файл InputCurves имеет следующие записи:

0 0 0 0 
1 256 255 255 
2 512 510 510 
...
256 65535 65280 65280 
257 65535 65535 65535 

Файл OutputCurves имеет следующие записи:

0 0 0 0 
1 256 257 257 
2 512 514 514 
...
254 65024 65278 65278 
255 65280 65535 65535 

И записи таблицы поиска выглядят так:

0 0 0 25968 
1 0 0 26351 
2 0 0 26789 
...
132649 65535 65535 49667 
132650 65535 65535 50603 

Я хотел бы понять, как цвет входного LAB отображается на выходное значение. Я особенно смущен, потому что a & bзначения могут быть отрицательными.

1 ответ

Решение

Мне кажется, я понимаю, как это работает после пролистывания http://www.color.org/specification/ICC1v43_2010-12.pdf

Это объяснение может иметь некоторые ошибки на 1, но в целом оно должно быть правильным.

Входными значениями являются LAB, а значения L отображаются с использованием таблиц 39 и 40 в разделе 10.8 lut16Type. Затем 258 значений на входных кривых равномерно распределены между этими диапазонами L, a, & b. Выходные значения 16 бит, поэтому 0-65535.

То же самое относится к CLUT. Есть 51^3 записи (51 был выбран автором файла ICC). Каждое измерение (L,a,b) также равномерно разбивается по этому пространству. Таким образом, 0 = 0 & 50 (примечание 0 - 50 - это 51 запись) = 65535 из предыдущего раздела. Первые 51 строка для L =0 и a =0, но инкримент b. Каждые 51 ряд a значение увеличивается на 1, и каждые 51*51 строк значения L увеличиваются на 1.

Поэтому, учитывая значения L, a и b, скорректированные по входным кривым, определите их индекс (0-50) и найдите их в CLUT (l_ind*51*51+a_ind*51+b_ind), который даст вам 3 больше ценностей.

Теперь выходные кривые входят. Это еще один набор кривых, которые работают так же, как входные кривые. Затем выходы могут быть сопоставлены с использованием тех же значений из таблиц 39 и 40.

Другие вопросы по тегам