A.S.:
G=Gamma Monitora + gamma LUT VA + gamma CRT ICM, где
Gamma Monitora - колеблется от 2 до 2,5
gamma CRT ICM = 2,2199 (две последние цыфры отбросил)
Gamma LUT VA - это компенсация заложенная для линейности всей системы при визуальной в нашем случае или аппаратной калибровке.
Конечно. после того как вы прорсто замените gamma CRT ICM на gamma LUT VA ничего не произойдёт! Вам нужно сложить два графика как цифровой ряд и уже эти данные скормить в тег СRT. А в LUT VA тогда ничего грузить не нужно.
Авторы Калибриллы вам предложили удобоваримый формат для такого пересчёта в EXEl, для дальнейшего скармливания в пересчитанных данных в тег СRT профиля монитора. У них в справке это не расписывалось, а просто предлагался более простой путь - сохранить, как автозагрузку сразу в реестр. что програма с успехом и делает.
Я уже пробовал так делать!
на счёт глюков єто к Windows 7
--------------------------------------------------------------------------
Из справки к программе Calibrilla v.3.3
66. Внедрение кривых тонопередачи в профиль устройства отображения.
Последовательность операций по экспорту кривых в мониторный профиль:
1) Сохранить в текстовый файл curve_*.сrv1 результаты визуальной калибровки монитора. При этом данные LUT VA будут автоматически сохранены в три отдельных файла — один файл для одного канала цветности:
curve_r.сrv1 (соответствует данным красного канала цветности)
curve_g.сrv1 (соответствует зелёному каналу)
curve_b.сrv1 (соответствует синему каналу)
Эти данные легко импортировать в *.xls для дальнейшего математического преобразования согласно данным, что уже содержатся в тегах (r_TRC, g_TRC, g_TRC).
Данные из этих тегов профиля преобразуются как последовательность чисел, где Y=(f)X^Gamma для каждого из значений от 1го до 256го. При этом числа приводятся к диапазону, аналогичному LUT VA (0~ 65536) X=x*256
Экспортировав данные тегов CRT из ICC Profile Inspector в конечный файл curve.txt получим следующее содержимое этого тега:
Data_Type: curv
Count: 1
2.199219
Попробуем разобраться подробно:
G_TRC := Gamma ICM (из тега *TRC)
Наш диапазон доступних значений F от 0 до 255, где числа идут в порядке n от 1 до 256
И любое число можно записать как Fn т.е. F(128):= 127; а для минимального и максимального значений, как Fmin=F(1):= 0; Fmax=F(256):= 255;
Если преобразовать любое число к виду LUT VA получим Fn(LUT_VA):=Fn*256
G_LUT_0 := Gamma LUT VA при 1 (когда данные обнулены и в LUT VA прямая диагональ) т.е. FN_0= n*256
Преобразуем значения G_TRC к виду всех доступных значений FN(CRT):= Fn(LUT_VA) в диапазоне Nmin~Nmax (т.е. опишем градационную кривую содержимого тега TRC, как ряд значений для всего диапазона значений RGB от 1го до 256го)
FN(CRT):= Fmax*(Fn/Fmax)^G_TRC*256 – так выглядит данные кривой тонопередачи, на выходе, если LUT обнулена
G_LUT := Gamma LUT VA построенная в Сalibrilla (из *.crv1) при этом мы сразу имеем её как набор значений точек FN(LUT_VA) в диапазоне Nmin~Nmax
D_P:= G_LUT(Nn)- G_LUT_0(n) или
DP= FN(LUT_VA) - FN_0 := Прирост к уже имеющимся значениям в G_TRC именно в виде таких данных его считают некоторые программы визуальной калибровки.
G_TRC_New := Gamma ICM New (то, что вы должны подсчитать и подставить в теги *TRC, т.е. пересчитать нужно для каждого канала цветности RGB отдельно)
G_TRC_New=MaxFN*((FN_0+D_P-MinFN)/MaxFN)^G_TRC – эту формулу можно упростить, в случае с нашей программой, т.к. FN(LUT_VA)=FN_0+D_P , до:
G_TRC_New=MaxFN*(( FN(LUT_VA) -MinFN)/MaxFN)^G_TRC – вот и всё что нам нужно сделать с данными из *.СRV1
MaxFN – максимальное значение, взятое из канала цветности (из файла *.СRV1),
MinFN – минимальное значение, взятое из канала цветности (из файла *.СRV1),
G_TRC – по сути наша целевая гамма из главного окна программы, которая и должна быть прописана в теге CRT профиля монитора *.icm,
FN(LUT_VA) – данные из файла *.СRV1
Полученные данные можно импортировать в профиль *.icm монитора. (Как разделитель должна быть точка, с точностью до 6го знака за запятой).
Конечный файл имеет вид, алогичный структуре файла *.crv1 но с пересчитанными данными. Затем эти файлы с помощью программы ICC Profile Inspector (версии не ниже 2.4), импортируются в соответствующие теги xTRC (чтобы увидеть в окне Read Curve файлы *.crv1, смените в фильтре тип файла с *.txt на *.*), а сам профиль монитора пересохраняется с иным именем *.icm.
2) Наши файлы приведены к виду, читаемому программой
ICC Profile Inspector (freeware) http://www.color.org/profileinspector.xalter
Данные о кривых тонопередачи LUT VA каждого из каналов цветности могут быть сохранены как отдельные текстовые файлы, даже если они были изначально сохранены в одном файле (например, с расширением *.crv3) или были созданы в другой программе. Тогда такой текстовый файл можно экспортировать в табличный редактор Excel, где его удобно будет разделить в три отдельных файла, например: curve_1_red.txt, curve_1_green.txt, curve_1_blue.txt
3) Открыть профиль монитора (например, Nec1990sv_D60G22_035-796_5.icm) в программе
ICC Profile Inspector.
4) Импортировав в его теги полученные путём пересчёта (см. п. 1)файлы (два раза щёлкните мышью по названию нужного тега, для открытия возможных действий с ним):
curve_r.сrv1 (или curve_1_red.txt) импортировать в тег rTRC
curve_g.сrv1 (или curve_1_green.txt) импортировать в тег gTRC
curve_b.сrv1 (или curve_1_blue.txt) импортировать в тег bTRC
5) При помощи программы
Monitor Asset Manager (freeware) http://www.entechtaiwan.com/files/moninfo.exe
Вы можете уточнить координаты хроматических красного, зелёного и синего цветов, а также точки белого, измеренных при выпуске вашего монитора и прошитых в него на заводе.
Пример данных, которые считывает программа Monitor Asset Manager:
Color characteristics
Default color space...... sRGB
Display gamma............ 2,20
Red chromaticity......... Rx 0,640 - Ry 0,330
Green chromaticity....... Gx 0,300 - Gy 0,600
Blue chromaticity........ Bx 0,150 - By 0,060
White point (default).... Wx 0,313 - Wy 0,329
Additional descriptors... None
Эти данные вы тоже можете исправить в соответствующих тегах профиля при помощи программы ICC Profile Inspector (в качестве профиля, подлежащего правке, можно использовать заводской профиль монитора).
6) Сохранить профиль, добавив в его название "_TRC" и получить профиль
(например, Nec1990sv_D60G22_035-796_5_TRC.icm),
после чего подгрузить его в систему (нажать правую кнопку мыши, и выбрать «Загрузить в систему»)
G_TRC_New=MaxFN*((Fmax*(Fn/Fmax)^G_TRC*256)+(FN(LUT_VA) - n*256))/MaxFN)^G_TRC
Fn - значени одного из каналов RGB относительно диапазона n, где n от 1 до 256 (или 0~255 как значение)
Fmax=255
FN(LUT_VA) - данные из *.crv1 этого же канала цветности для n (0~255)
MaxFN=65280 (но может и отличаться от этого значения - зависит как от положения минимальной, так и от максимальной точек!)
G_TRC=2.199219 (может быть и иным!) - данные из тега TRC профиля монитора для этого же канала цветности
VERTIGO, iambizkit, SanX78, Marc Crass, Noweol, cspb, Odessit
Все время использовал CLTest и вот на тебе. Я даже не заметил, что он перестал устанавливать профиль при загрузке системы. Пришлось сегодня потратить некоторое время на копание в коде, благо программа всего лишь сжата UPX. Нашел 6 временных бомб на разные функции программы и каждая на свою дату, например, сохранение профиля в автозагрузку не будет работать с 18.04.2011, а автозагрузка профиля при старте системы уже не работает на 10 дней раньше - с 8.04.2011. Я обезвредил 6 бомб. Теперь все нужные функции работают как нужно (в том числе и Export to ICM(ICC)). Также нашел еще 7-ю бомбу, но она не установлена ни на одну из дат. Отвечает она за нечто под названием "TN compensation". Что это такое не знаю и желания ковыряться дальше в алгоритме нет, поэтому сделал 2 версии: CLTest.exe с активированной "TN compensation" и CLTest_without_TN_Compensation.exe с выключенной фунцией (разница между версиями проявляется в заголовке окна. Для активированной фукнции указывается TN Compensation 0). 6 бомб обезврежены в каждой из версий. Модификацию делал для версии 2.0 beta 54. Лицензионного соглашения, где запрещается дизассемблировать и модифицировать код в этой программе нет, поэтому я ничего не нарушил. Обе версии сжал обратно UPX. Если кому-то будет полезна программа, пожалуйста, используйте. Если боитесь, что вирус, тогда распакуйте мою версию и оригинал (upx) и сравните побайтово. Я менял по 3 байта на каждую из бомб.
И все же, зачем нужно было делать такие временные бомбы для такой замечательной программы?
http://depositfiles.com/files/4btkkd69k
http://ifolder.ru/23106893
Спасибо за исправления! А то проверял версию и думал, что просто что-то не работает...vlad001:
VERTIGO
А что именно не понятно в calibrilla?
в ней есть возможность сделать файл icc/icm при помощи ICC Profile Inspector версии не ниже 2.4. Так вот ICC Profile Inspector не воспринимает файлы от Calibrilla, хотя написано что должна как обычные текстовые данные.
ну зачем же так делать то... понятно, что файл выданный на гора калибриллой нужно ещё пересчитывать, ведь это только значения LUT VA, потому как в теге СRT профиля ICM уже есть гамма-кривая описанная значением гаммы. По спецификации ICC, в этот тег можно давать данные как значение самой гаммы. или как последовательно все значения описывающие кривую, что и предлагают авторы программы. Понятно, что если вы не хотите чтобы общая гамма системы состояла изVERTIGO
А что именно не понятно в calibrilla?
в ней есть возможность сделать файл icc/icm при помощи ICC Profile Inspector версии не ниже 2.4. Так вот ICC Profile Inspector не воспринимает файлы от Calibrilla, хотя написано что должна как обычные текстовые данные.
G=Gamma Monitora + gamma LUT VA + gamma CRT ICM, где
Gamma Monitora - колеблется от 2 до 2,5
gamma CRT ICM = 2,2199 (две последние цыфры отбросил)
Gamma LUT VA - это компенсация заложенная для линейности всей системы при визуальной в нашем случае или аппаратной калибровке.
Конечно. после того как вы прорсто замените gamma CRT ICM на gamma LUT VA ничего не произойдёт! Вам нужно сложить два графика как цифровой ряд и уже эти данные скормить в тег СRT. А в LUT VA тогда ничего грузить не нужно.
Авторы Калибриллы вам предложили удобоваримый формат для такого пересчёта в EXEl, для дальнейшего скармливания в пересчитанных данных в тег СRT профиля монитора. У них в справке это не расписывалось, а просто предлагался более простой путь - сохранить, как автозагрузку сразу в реестр. что програма с успехом и делает.
Я уже пробовал так делать!
на счёт глюков єто к Windows 7
--------------------------------------------------------------------------
Из справки к программе Calibrilla v.3.3
66. Внедрение кривых тонопередачи в профиль устройства отображения.
Последовательность операций по экспорту кривых в мониторный профиль:
1) Сохранить в текстовый файл curve_*.сrv1 результаты визуальной калибровки монитора. При этом данные LUT VA будут автоматически сохранены в три отдельных файла — один файл для одного канала цветности:
curve_r.сrv1 (соответствует данным красного канала цветности)
curve_g.сrv1 (соответствует зелёному каналу)
curve_b.сrv1 (соответствует синему каналу)
Эти данные легко импортировать в *.xls для дальнейшего математического преобразования согласно данным, что уже содержатся в тегах (r_TRC, g_TRC, g_TRC).
Данные из этих тегов профиля преобразуются как последовательность чисел, где Y=(f)X^Gamma для каждого из значений от 1го до 256го. При этом числа приводятся к диапазону, аналогичному LUT VA (0~ 65536) X=x*256
Экспортировав данные тегов CRT из ICC Profile Inspector в конечный файл curve.txt получим следующее содержимое этого тега:
Data_Type: curv
Count: 1
2.199219
Попробуем разобраться подробно:
G_TRC := Gamma ICM (из тега *TRC)
Наш диапазон доступних значений F от 0 до 255, где числа идут в порядке n от 1 до 256
И любое число можно записать как Fn т.е. F(128):= 127; а для минимального и максимального значений, как Fmin=F(1):= 0; Fmax=F(256):= 255;
Если преобразовать любое число к виду LUT VA получим Fn(LUT_VA):=Fn*256
G_LUT_0 := Gamma LUT VA при 1 (когда данные обнулены и в LUT VA прямая диагональ) т.е. FN_0= n*256
Преобразуем значения G_TRC к виду всех доступных значений FN(CRT):= Fn(LUT_VA) в диапазоне Nmin~Nmax (т.е. опишем градационную кривую содержимого тега TRC, как ряд значений для всего диапазона значений RGB от 1го до 256го)
FN(CRT):= Fmax*(Fn/Fmax)^G_TRC*256 – так выглядит данные кривой тонопередачи, на выходе, если LUT обнулена
G_LUT := Gamma LUT VA построенная в Сalibrilla (из *.crv1) при этом мы сразу имеем её как набор значений точек FN(LUT_VA) в диапазоне Nmin~Nmax
D_P:= G_LUT(Nn)- G_LUT_0(n) или
DP= FN(LUT_VA) - FN_0 := Прирост к уже имеющимся значениям в G_TRC именно в виде таких данных его считают некоторые программы визуальной калибровки.
G_TRC_New := Gamma ICM New (то, что вы должны подсчитать и подставить в теги *TRC, т.е. пересчитать нужно для каждого канала цветности RGB отдельно)
G_TRC_New=MaxFN*((FN_0+D_P-MinFN)/MaxFN)^G_TRC – эту формулу можно упростить, в случае с нашей программой, т.к. FN(LUT_VA)=FN_0+D_P , до:
G_TRC_New=MaxFN*(( FN(LUT_VA) -MinFN)/MaxFN)^G_TRC – вот и всё что нам нужно сделать с данными из *.СRV1
MaxFN – максимальное значение, взятое из канала цветности (из файла *.СRV1),
MinFN – минимальное значение, взятое из канала цветности (из файла *.СRV1),
G_TRC – по сути наша целевая гамма из главного окна программы, которая и должна быть прописана в теге CRT профиля монитора *.icm,
FN(LUT_VA) – данные из файла *.СRV1
Полученные данные можно импортировать в профиль *.icm монитора. (Как разделитель должна быть точка, с точностью до 6го знака за запятой).
Конечный файл имеет вид, алогичный структуре файла *.crv1 но с пересчитанными данными. Затем эти файлы с помощью программы ICC Profile Inspector (версии не ниже 2.4), импортируются в соответствующие теги xTRC (чтобы увидеть в окне Read Curve файлы *.crv1, смените в фильтре тип файла с *.txt на *.*), а сам профиль монитора пересохраняется с иным именем *.icm.
2) Наши файлы приведены к виду, читаемому программой
ICC Profile Inspector (freeware) http://www.color.org/profileinspector.xalter
Данные о кривых тонопередачи LUT VA каждого из каналов цветности могут быть сохранены как отдельные текстовые файлы, даже если они были изначально сохранены в одном файле (например, с расширением *.crv3) или были созданы в другой программе. Тогда такой текстовый файл можно экспортировать в табличный редактор Excel, где его удобно будет разделить в три отдельных файла, например: curve_1_red.txt, curve_1_green.txt, curve_1_blue.txt
3) Открыть профиль монитора (например, Nec1990sv_D60G22_035-796_5.icm) в программе
ICC Profile Inspector.
4) Импортировав в его теги полученные путём пересчёта (см. п. 1)файлы (два раза щёлкните мышью по названию нужного тега, для открытия возможных действий с ним):
curve_r.сrv1 (или curve_1_red.txt) импортировать в тег rTRC
curve_g.сrv1 (или curve_1_green.txt) импортировать в тег gTRC
curve_b.сrv1 (или curve_1_blue.txt) импортировать в тег bTRC
5) При помощи программы
Monitor Asset Manager (freeware) http://www.entechtaiwan.com/files/moninfo.exe
Вы можете уточнить координаты хроматических красного, зелёного и синего цветов, а также точки белого, измеренных при выпуске вашего монитора и прошитых в него на заводе.
Пример данных, которые считывает программа Monitor Asset Manager:
Color characteristics
Default color space...... sRGB
Display gamma............ 2,20
Red chromaticity......... Rx 0,640 - Ry 0,330
Green chromaticity....... Gx 0,300 - Gy 0,600
Blue chromaticity........ Bx 0,150 - By 0,060
White point (default).... Wx 0,313 - Wy 0,329
Additional descriptors... None
Эти данные вы тоже можете исправить в соответствующих тегах профиля при помощи программы ICC Profile Inspector (в качестве профиля, подлежащего правке, можно использовать заводской профиль монитора).
6) Сохранить профиль, добавив в его название "_TRC" и получить профиль
(например, Nec1990sv_D60G22_035-796_5_TRC.icm),
после чего подгрузить его в систему (нажать правую кнопку мыши, и выбрать «Загрузить в систему»)
Добавление от 01.07.2011 18:16:
Если кратко: DP= FN(LUT_VA) - n*256G_TRC_New=MaxFN*((Fmax*(Fn/Fmax)^G_TRC*256)+(FN(LUT_VA) - n*256))/MaxFN)^G_TRC
Fn - значени одного из каналов RGB относительно диапазона n, где n от 1 до 256 (или 0~255 как значение)
Fmax=255
FN(LUT_VA) - данные из *.crv1 этого же канала цветности для n (0~255)
MaxFN=65280 (но может и отличаться от этого значения - зависит как от положения минимальной, так и от максимальной точек!)
G_TRC=2.199219 (может быть и иным!) - данные из тега TRC профиля монитора для этого же канала цветности
Добавление от 01.07.2011 18:40:
[q]atori:VERTIGO, iambizkit, SanX78, Marc Crass, Noweol, cspb, Odessit
Все время использовал CLTest и вот на тебе. Я даже не заметил, что он перестал устанавливать профиль при загрузке системы. Пришлось сегодня потратить некоторое время на копание в коде, благо программа всего лишь сжата UPX. Нашел 6 временных бомб на разные функции программы и каждая на свою дату, например, сохранение профиля в автозагрузку не будет работать с 18.04.2011, а автозагрузка профиля при старте системы уже не работает на 10 дней раньше - с 8.04.2011. Я обезвредил 6 бомб. Теперь все нужные функции работают как нужно (в том числе и Export to ICM(ICC)). Также нашел еще 7-ю бомбу, но она не установлена ни на одну из дат. Отвечает она за нечто под названием "TN compensation". Что это такое не знаю и желания ковыряться дальше в алгоритме нет, поэтому сделал 2 версии: CLTest.exe с активированной "TN compensation" и CLTest_without_TN_Compensation.exe с выключенной фунцией (разница между версиями проявляется в заголовке окна. Для активированной фукнции указывается TN Compensation 0). 6 бомб обезврежены в каждой из версий. Модификацию делал для версии 2.0 beta 54. Лицензионного соглашения, где запрещается дизассемблировать и модифицировать код в этой программе нет, поэтому я ничего не нарушил. Обе версии сжал обратно UPX. Если кому-то будет полезна программа, пожалуйста, используйте. Если боитесь, что вирус, тогда распакуйте мою версию и оригинал (upx) и сравните побайтово. Я менял по 3 байта на каждую из бомб.
И все же, зачем нужно было делать такие временные бомбы для такой замечательной программы?
http://depositfiles.com/files/4btkkd69k
http://ifolder.ru/23106893
Ничего нового в идее "TN compensation" нет, её внедряют на своих мониках с такой матрицей Eizo. Идея простая - меряется погрешность в самом верху монитора и в самом низу. Для этого Виктор внедрил возможность проверки поля по 9ти точкам. Дальше относительно центрального значения и отличий по горизонтали и вертикали производится апроксимация линейная, где вертикальное разрешение и будет таблицей для подстановки таких данных... но машина считать покадрово запарится, а вот для окошка с тестом реализовать можно. НО не нужно, это и так будет видно по средней точки. А вот как дополнительный корректирующий LUT, для мониторов с матрицей TN, где для каждого кадра бы надевались корректирующие данные построчно, я бы ввёл это ноу-хау в обвязку дисплея, - ничего в этом сложного не вижу!
Добавление от 01.07.2011 18:58:
вообще имеет смысл сравнивать схожие программы и подобных немало, но freeware: СLTest v.2b0.48 (Создана программистом из Минска) и Сalibrilla v.3 (Создана Московским программистом) - оптимальны с моей точки зрения. С учётом анализа последней СLTest (исправленной версии): - нужно убрать все лишние пункты меню, добавить русский язык в интерфейс, приложить справку. И... Побольше таких программ!Исправлено: A.S., 01.07.2011 20:58