vcgt editor • редактор video card gamma tag • cielab.xyz/vcgt.php

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

vcgt editor • редактор video card gamma tag • cielab.xyz/vcgt.php

Сообщение mihas »

При калибровке мониторов зачастую не совсем верно определяется цвет черной точки (при крайне низких значениях светлоты прибор отдает программе скорее шум, нежели достоверную информацию о спектре суперчерного), и в профиль в результате ошибочно прописываются кривые, которые окрашивают глубокий черный в посторонний оттенок, например в красно-фиолетовый. Кривая, которая отвечает за этот глюк, располагается в частном теге от Apple под названием vcgt или video card gamma tag. Редакторов этой кривой не много, так например basICColor позволяет двинуть кривую, но делает это крайне топорно: двигает весь диапазон 0-25%, когда поправить надо например изгиб в диапазоне 0-10%.
vcgt до исправления красноватого черного на мониторе и после, визуализация Excel
vcgt до исправления красноватого черного на мониторе и после, визуализация Excel
• 20.18 КБ • 5108 просмотров
Столкнувшись с тем, что ни одна программа не позволяет мне поправить кривую именно так как я хочу - написал простую утилитку, которая распаковывает vcgt в таблицу, таблицу мы удобно редактируем в табличном редакторе, и той же утилиткой запаковываем обратно в vcgt.

Остается решить, как распаковать сам профиль ICC и как запаковать его обратно с отредактированным тегом vcgt.

Для распаковки профиля можно использовать чудесную бесплатную утилиту IccXML. Также ее можно скачать тут со страницы iccMax. Созданный ею файл xml из профиля открываем в любом удобном вам редакторе, я открывал в Adobe Dreamweaver. Находим поиском vcgt, копируем все содержимое этого тега в эдитор https://cielab.xyz/vcgt.php и создаем простую понятную таблицу для редактирования в любом привычном вам табличном редакторе, просто через буфер тянем размеченную табуляторами таблицу копипастом.
vcgt до правки и после в готовом профиле в отображении программы basICColor
vcgt до правки и после в готовом профиле в отображении программы basICColor
• 44.77 КБ • 5108 просмотров
Рисуем какие мы хотим кривые в тенях, обратно копипастом тянем в vcgt editor и упаковываем в тег.

Важное и полезное дополнение: iccMax прекрасно умеет запаковывать обратно из XML в icc профили монитора. То есть вообще шикарно, и никакой возни с hex не нужно.
Чуть подробнее о конвертациях из icc в XML и обратно было по ссылке.

По какой-то причине IccXML пока не умеет корректно упаковать в ICC-профиль тег vcgt, с другими профилями хорошо справляется, а с мониторами что-то не дружит. Берем любой HEX-редактор, их полно в сети, я взял первый подвернувшийся Hex Editor Neo, открываем профиль в нем, осваиваемся первый раз минут 10, находим блок данных vcgt, отмечаем себе начало и конец этого блока, подменяем его на свой (удаляем имеющийся и вставляем свой прямо из буфера). Проверяем что нет сдвига (offset) и начало и конец нашего блока vcgt находится на тех же по порядку байтах.

Потом можем тут же в hex-редакторе поправить тег desc, чтобы имя нашего нового профиля в системе отличалось от оригинального и они не конфликтовали друг с другом (имя файла для профиля - это не все, система смотрит имя по тегу desc внутри профиля). Достаточно поменять всего один символ, а вот добавлять или вырезать не стоит символы, все сдвинется в байтах и не будет работать, в профиле каждый байт на своем месте и начало и конец каждого тега прописаны в заголовке профиля.
иллюстрация отображения кривых vcgt в Argyll для профиля 2 версии: xicclu -g -V monitor.icc Отредактировать vcgt нельзя. Справа Calibration Tester
иллюстрация отображения кривых vcgt в Argyll для профиля 2 версии: xicclu -g -V monitor.icc Отредактировать vcgt нельзя. Справа Calibration Tester
• 17.49 КБ • 5108 просмотров
Ну и все собственно, сохраняем профиль в новый файл с именем желательно как прописано в desc чтобы не путаться самому. Проверяем - все работает, кривые в видеокарту грузятся. Для проверки на Mac вообще ничего делать не надо, при выборе профиля в свойствах цвета монитора Mac сам загружает кривые vcgt в видеокарту. Для Windows есть полезная утилитка DisplayProfile от GretagMacbeth, загружающая кривые профиля в видеокарту без перезагрузки компьютера и автоматом назначающая профиль по умолчанию для системы, и дополнение к ней CalibrationTester, показывающая как раз кривые vcgt, загруженные в видеокарту.

На скриншотах кривые vcgt до и после редактирования, графики из Excel (прилагается) и те же графики в исправленном профиле в отображении программы basICColor. Сам поправить нормально не умеет, но тоже показывает, что у нас сейчас в видеокарте за кривые. Бесплатный Argyll SMS кривые vcgt показывает, но не позволяет поправить; профили 4 версии не показывает и не правит, естественно.

Проблема неверного оттенка черной точки при калибровке монитора не частная, а общая, поэтому пусть будет утилита для продвинутого калибровщика:

https://cielab.xyz/vcgt.php • VCGT editor • free, online, open source
Инструкция по вставке новых данных в профиль в программе winhex
Инструкция по вставке новых данных в профиль в программе winhex
• 71.8 КБ • 5108 просмотров
Вложения
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: vcgt editor • редактор video card gamma tag • cielab.xyz/vcgt.php

Сообщение mihas »

Мой друг Алекс Сикорский подсказал еще один путь, помимо HEX-редактора, как подменить содержимое vcgt тега в профиле.
К этому способу нужна подробная инструкция, ибо без нее сложновато разобраться.
Берем бесплатную программу Calibrilla, начиная с версии 5.0 b 2231, до нее до 27 ноября 2020 программа делала ступеньки в плавных 16-битных кривых vcgt, сейчас это исправлено, старые версии не берем. Скрины сделаны по более старой версии вчера и на них видны ступеньки, они и в файле экспорта - повторяющиеся одинаковые значения соседних тонов на кривой, когда в оригинале профиля этого нет. Теперь исправлено.
Чтобы извлечь кривую из профиля делаем следующее:
Открываем кнопкой From File нужный нам профиль
Открываем кнопкой From File нужный нам профиль
• 198.81 КБ • 4981 просмотр
Кнопкой To File сохраняем кривые в текстовый файл с разметкой табуляторами (прекрасно для перекидывания в Excel через буфер)
Кнопкой To File сохраняем кривые в текстовый файл с разметкой табуляторами (прекрасно для перекидывания в Excel через буфер)
• 138.42 КБ • 4981 просмотр
Обратите внимание, что кривые в 16-битном диапазоне от нуля до 65535. Если хотим поработать с обычными десятичными в диапазоне 0-100 - делим значения на 655.35, но это не обязательно. Корректируем как угодно наши кривые и в том же виде сохраняем текстовый файл кривых, поправленных нами.
Несмотря на то, что я работал с профилем iMac - внутри текстового файла откуда-то появилось имя моего монитора PA246, при этом кривые там точно от iMac, а не от PA246. Этот характерный изгиб в тенях я контролировал в течении всего процесса.
Вот теперь начинается самое интересное! Открываем редактируемый профиль кнопкой From File и сразу жмем жмем To File, выбираем нужный профиль и сразу в строке с именем задаем ему новое имя! Чтобы не переписать существующий профиль. И вот тогда вылезет нужное окно с редактируемым тегом vcgt.
Сохраняем перед редактирование открытый профиль кнопкой To File и сразу же задаем новое имя ему
Сохраняем перед редактирование открытый профиль кнопкой To File и сразу же задаем новое имя ему
• 205.37 КБ • 4981 просмотр
Появляется окно, в котором выбираем тег vcgt.
Появляется окно, в котором выбираем тег vcgt.
• 145.36 КБ • 4981 просмотр
Кнопкой импорт заносим сюда наши новые кривые из текстового файла
Кнопкой импорт заносим сюда наши новые кривые из текстового файла
• 137.19 КБ • 4981 просмотр
Жмем ОК и Save в файле с нашим новым именем и новыми vcgt
Жмем ОК и Save в файле с нашим новым именем и новыми vcgt
• 157.45 КБ • 4981 просмотр
Я проверил - работает. Заметили ступеньки на кривой при чтении ее из профиля и автор поправил, спасибо.
Помимо этого функционала есть еще дополнительный: правой кнопкой по графику - и предлагает 4 типа сглаживания кривых, можно с ними также поэкспериментировать.

У меня почему-то Calibrilla выкинула из оригинального профиля теги типа A2B0 и оставила лишь TRC и vcgt. Причем на скрине видно, что у меня отображаются кривые нужного профиля, и это не системный профиль PA246, и не sRGB, а тот iMac что редактировался, я нигде не выбирал профиль sRGB, тем не менее в итоговом профиле оказалась не нужная мне колористика калиброванного спектрофотометром монитора iMac, а колористика sRGB. Я что-то сделал видимо не так, хотя даже не пытался открывать sRGB - в нем все равно нет vcgt и неоткуда в sRGB vcgt взяться: просто открыл профиль iMac, пересохранил c поправленным именем как на скрине ниже, видел свои vcgt, видел тег vcgt (которого нет в sRGB) - так что даже мыслей не было, что редактирую sRGB, а не свой профиль. Повторил на своем мониторе PA246 то же самое.
Из-за этого операционная система Windows не может опознать профиль как корректный, не хочет его видеть даже при принудительном на него указании, не хочет ставить дефолтным в системе. Поэтому при перезагрузке рабочий профиль системы может сбиваться, раз виндовс отказывается его видеть, даже не смотря на сторонние лоадеры.
Поэтому просто будьте внимательны и не повторяйте моих ошибок, я не могу объяснить, почему они случились, откуда взялась колористика sRGB, и даже пытаться не буду.
Что я предприму: новый усредненный vsgt мне жутко нравится, но переписывать vcgt мне кажется надежнее все же в профиле от штатных программ калибровки монитора типа ProfileMaker или i1Profiler через редактирование данных hex, как описано в первом посте темы.
В любом случае, проверьте результат внимательно. Если в процессе как на четвертом сверху скриншоте инструкции часть тегов куда-то пропали (A2B и B2A исчезли из редактируемого профиля), при этом на всех этапах были явно видны нужные кривые vcgt на графике - значит что-то пошло не так.
Список тегов профиля монитора до и после редактирования калибриллой тега vcgt. Нижний профиль от Calibrilla операционная система не признает
Список тегов профиля монитора до и после редактирования калибриллой тега vcgt. Нижний профиль от Calibrilla операционная система не признает
• 32.68 КБ • 4981 просмотр
Поэтому наиболее безопасным на сегодня я вижу редактирование vcgt профиля в hex-редакторе:
Готовим данные vcgt в эдиторе и копируем их в буфер
Готовим данные vcgt в эдиторе и копируем их в буфер
• 239.09 КБ • 4981 просмотр
Подменяем содержимое vcgt через winhex перезаписью поверх с нужного байта: Edit/Clipboard Data/Write
Подменяем содержимое vcgt через winhex перезаписью поверх с нужного байта: Edit/Clipboard Data/Write
• 270.64 КБ • 4981 просмотр
Так операционная система видит профиль из списка.
Vfrcbv
Сообщения: 3
Зарегистрирован: 25 янв 2021, 23:59

Re: vcgt editor • редактор video card gamma tag • cielab.xyz/vcgt.php

Сообщение Vfrcbv »

mihas писал(а): 27 ноя 2020, 13:25 У меня почему-то Calibrilla выкинула из оригинального профиля теги типа A2B0 и оставила лишь TRC и vcgt.
Она не выкинула. Вы просто создали новый шаблонный sRGB-профиль,

Кнопка «Из файла» открывает профиль либо для простого считывания из него тега VCGT и загрузки его в таблицу программы (базовый функционал программы — работа с LUT), либо для его редактирования (дополнительный режим, появившийся недавно). Выбор из этих двух вариантов происходит соответствующей установкой фильтра в окне выбора файла. Поэтому, для того, чтобы реально открыть профиль, установите фильтр соответствующим образом.
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: vcgt editor • редактор video card gamma tag • cielab.xyz/vcgt.php

Сообщение mihas »

Да, все верно! Программа писала в заголовке про мой монитор Асус, в какой-то момент я ей не указал явно еще раз From File взять профиль монитора Асус, и программа молча создала профиль с колористикой sRGB по дефолту, сообщая в заголовке, что работает с Асус, а не с sRGB. Хотя я нигде при открытии не указывал профиль sRGB и в заголовке не было прописано, что программа в режиме шаблона sRGB.
Очень хорошо что такой профиль хоть и с правильными моими vcgt-кривыми, но с неправильной колористикой, операционная система Windows 10 не может поместить в список дефолтных для устройства, я обратил на это внимание - и стал рыть, что не так с профилем от калибриллы.
Наверное, чтобы подобных ошибок не возникало, надо так и писать в заголовке программы, что она в дефолтном режиме sRGB, а не в режиме твоего действующего монитора. А уж когда ты правишь вообще профиль с другого компа типа iMac, а программа все равно сохраняет из него кривые под именем текущего активного девайса Асус прямо внутри файла с таблицей - тут уж вообще понятно, что что-то не так.
Vfrcbv
Сообщения: 3
Зарегистрирован: 25 янв 2021, 23:59

Re: vcgt editor • редактор video card gamma tag • cielab.xyz/vcgt.php

Сообщение Vfrcbv »

mihas писал(а): 26 янв 2021, 17:57 Наверное, чтобы подобных ошибок не возникало, надо так и писать в заголовке программы, что она в дефолтном режиме sRGB, а не в режиме твоего действующего монитора. А уж когда ты правишь вообще профиль с другого компа типа iMac, а программа все равно сохраняет из него кривые под именем текущего активного девайса Асус прямо внутри файла с таблицей - тут уж вообще понятно, что что-то не так.
Если честно, не очень понимаю. Программа в основном окне отображает текущую видеокарту и текущий монитор, да. Но когда ты открываешь и правишь посторонний профиль, то при сохранении его тега vcgt в текстовый файл, туда никакие имена активных девайсов не вписываются, только имена файла профиля и его описание. А вот если сохранение идёт не из открытого профиля, а непосредственно из LUT, то есть, из главного окна программы, вот тогда имена карты и монитора, естественно, в текстовый файл записываются.
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: vcgt editor • редактор video card gamma tag • cielab.xyz/vcgt.php

Сообщение mihas »

Да все верно. При экспорте кривых vcgt например из профиля iMac в заголовок текстовой экспортированной таблицы вписывается не iMac, а текущий монитор типа Асус у меня. То есть на всех этапах происходит путанница, с каким именно профилем мы работаем: экспортировали кривую из iMac - в описании этой кривой откуда-то взялся Asus. И так во всем. Тут еще есть что поисправлять помимо исправленных ступенек на кривой.
Vfrcbv
Сообщения: 3
Зарегистрирован: 25 янв 2021, 23:59

Re: vcgt editor • редактор video card gamma tag • cielab.xyz/vcgt.php

Сообщение Vfrcbv »

mihas писал(а): 27 янв 2021, 16:25 Да все верно. При экспорте кривых vcgt например из профиля iMac в заголовок текстовой экспортированной таблицы вписывается не iMac, а текущий монитор типа Асус у меня. То есть на всех этапах происходит путанница, с каким именно профилем мы работаем: экспортировали кривую из iMac - в описании этой кривой откуда-то взялся Asus. И так во всем. Тут еще есть что поисправлять помимо исправленных ступенек на кривой.
Ну вот версия 5.1, сборка 2516 — не воспроизводится. В файл пишется имя файла профиля. Ранее, может, и были какие-то сборки с глюком. У вас какая сборка?
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: vcgt editor • редактор video card gamma tag • cielab.xyz/vcgt.php

Сообщение mihas »

2237, но пользовался и более старой. Обновлюсь как понадобится снова воспользоваться.
Я пишу немного авторам чего не так мне кажется, они исправляют, думаю со временем все станет круто.
На момент написания инструкции во втором посте более надежным было на мой взгляд заменить исправленный тег vcgt в hex-редакторе, слишком много глюков было в калибрилле. Так что я просто терпеливо жду, все конструкторы профилей - это то что мне нужно, когда программы по созданию профилей что-то не могут или где-то ошибаются - пользуюсь конструкторами, и калибрилла в их ряду для монитора - вещь полезная.
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

vcgt editor • редактор video card gamma tag • cielab.xyz/vcgt.php

Сообщение mihas »

Важное и полезное дополнение: я только что проверил - iccMax прекрасно умеет запаковывать обратно из XML в icc профили монитора. То есть вообще шикарно, и никакой возни с hex не нужно.
Чуть подробнее о конвертациях из icc в XML и обратно было по ссылке.
Ответить

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