iskatel: (Default)
iskatel ([personal profile] iskatel) wrote2009-11-21 01:42 am

"Калибровка мониторов: правка профиля и загрузка в LUT"

Калибровка мониторов: правка профиля и загрузка в LUT
Примечание. 1-й метод дает настолько кривой результат, что, по моему скромному мнению, лучше его вообще не применять. Возникающие в результате правки (5 точек на всю кривую от 0 до 255 - это ж смешно) искажения оттенков явно более существенны, чем подправленные самые темные (обычно 0..5) тона. 2-й проверю и отпишу. Олегу в любом случае спасибо. текст статьи.
------------------------------------

Калибровка мониторов: правка профиля и загрузка в LUT



Олег Артамонов, 27 октября 2009 в 15:45
Рубрика: Мониторы

Решил написать небольшое руководство по ручной правке результатов аппаратной калибровки мониторов. Зачем оно надо? Например, для коррекции воспроизведения тёмных оттенков на мониторах с PVA-матрицами — они там, как правило, несколько прибиты. Писать буду применительно именно к PVA, как наиболее актуальному случаяю.

Необходимое пояснение: аппаратная калибровка — это настройка цветопередачи монитора с помощью специального датчика (калибратора), крепящегося на экран. Датчик замеряет реально показываемые монитором цвета, а поставляемое с ним ПО рассчитывает корректировочную таблицу так, чтобы реально показываемый цвет совпадал с тем цветом, которое оно отправляет на видеокарту. Таблица сохраняется в ICC(ICM)-файл и загружается в видеокарту, чтобы в дальнейшем коррекция цветов происходила автоматически.

Калибратор можно купить, а можно взять в аренду (Spyder 2, i1Display).

В принципе, монитор можно откалибровать вручную, но право слово, железкой — проще.

Итак, откалибровались. Полутона выглядят аккуратно, баланс белого правильный, всё красиво, кроме одного — у нас PVA, и детали в тенях у нас не видны. Точнее, видны, но только если поглядеть сбоку. Калибратор эту проблему исправить не может, так как у него не хватает точности для аккуратной корректировки теней, поэтому он туда и не лезет — максимум, можно попытаться поднять с его помощью уровень чёрного, но в большинстве случаев мы получим просто белёсое изображение.

Как я уже писал, проблема PVA объективно видна при рассмотрении участка гамма-кривых около нуля (на том размере графика, что строит типичное ПО калибратора, этого участка почти не видно) и в принципе решается небольшим подъёмом уровня чёрного. Вопрос в том, как этот подъём сделать поаккуратнее...

Поднять уровень чёрного позволяет драйвер видеокарты, но он при этом тупо перезаписывает таблицу LUT, в которой хранятся данные калибровки — то есть чёрный-то мы поднимем, но калибровку грохнем. Оно нам надо? Не надо. Тогда остаётся один способ — вручную править созданный калибратором ICC-профиль.

Есть два способа, попроще и получше.

Попроще:

  1. Калибруем монитор, сохраняем профиль.
  2. Регистрируемся на basICColor.de и качаем basICColor display 4
  3. Там же получаем 14-дневную бесплатную лицензию для него.
  4. Запускаем basICColor display, «Файл» → «Выбрать прибор измерения» → если калибратор ещё подключён, то выбираем его, иначе — «Virtual device (gamma)».
  5. Идём в «Просмотр» → «Редактировать калибровку», выбираем пункты «Кривые» и «Все», после чего мышкой поднимаем точки «0» и «25 %» на такую высоту, чтобы на мониторе появились чёрные тона в достат. кол.
  6. Сохраняем профиль и делаем его профилем по умолчанию.

Плюс — минимум возни. Минус — грубая регулировка кривых (всего по пяти точкам) и платность программы.

Если после сохранения профиля родное ПО калибратора его принимать отказывается, для загрузки таблицы в LUT видеокарты можно использовать консольные xcalib или dispwin из Argyll CMS. Если профиль слетает после «сна», вызова UAC или чего-то ещё — пропишите соответствующую программу в запуск по расписанию с маленьким интервалом.

Получше:

  1. Калибруем монитор.
  2. Качаем программу CLTest, запускаем.
  3. Смотрим на отдельное окошко, в котором видны гамма-кривые, соответствующие тому, что сейчас загружено в LUT видеокарты, жмём на нём пару раз кнопку «x2», чтобы было видно ещё лучше (если окна нет, то «Curves» → «Show graph».
  4. Теперь, тыкая в график мышкой, мы можем перемещать серый вертикальный курсор, а меняя циферки под графиком, двигать гамма-кривые в этой точке вверх или вниз.
  5. Запоминаем числа на участке, правее которого мы гамму трогать не хотим (она уже настроена калибратором!).
  6. Аккуратно поднимаем уровень чёрного и вообще как угодно крутим гамму в области тёмных тонов. Периодически возвращаем числа в правой части графика к исходным.
  7. Добившись устраивающего нас результата, можно сделать «Curves» → «Save and set startup», после чего СLTest будет загружаться при каждом запуске Windows и подгружать таблицу в видеокарту. Разумеется, родное ПО калибратора после этого не нужно.

Минус — много возни, результат хранится в отдельном от ICC-профиля файле (по крайней мере, я не знаю программы, которая позволила бы без долгой возни запихнуть корректировочную таблицу внутрь ICC). Плюс — получаем корректировку столь точную, насколько хватит терпения. В отличие от чисто ручной калибровки с CLTest, мы в данном случае имеем и ICC-профиль, в котором указан цветовой охват монитора, и коррекцию цветовой температуры под нужное значение.



------------------------------------

[identity profile] xobeliskx.livejournal.com 2010-02-08 01:49 pm (UTC)(link)
Столкнулся со следующей проблемой: basICColor'овский профайл не видится спайдеровской утилитой, но калибрует он лучше, заметно на тенях и вообще гамма кривых. У Вас написано что нужно воспользоваться сторонней программой для подгрузки профайла с LUT через определённый интервал времени, а как это реализовать? У меня WinXP и никаких вроде бы средств для поминутной загрузки профайла я не имею.

[identity profile] iskatel.livejournal.com 2010-02-08 02:04 pm (UTC)(link)
так там же написано - "для загрузки таблицы в LUT видеокарты можно использовать консольные xcalib или dispwin из Argyll CMS."
пробовали ?

[identity profile] xobeliskx.livejournal.com 2010-02-08 04:55 pm (UTC)(link)
У меня проблема больше не в том чем грузить, а в том как сделать так чтобы подгрузка была раз в минуту, так как любое полноэкранное 3D приожения ресеттит все настройки.

[identity profile] iskatel.livejournal.com 2010-02-08 04:57 pm (UTC)(link)
вот насчет "подгрузка была раз в минуту" ...
попробуй по крону консольной утилитой, тем же xcalib .

[identity profile] xobeliskx.livejournal.com 2010-02-08 07:41 pm (UTC)(link)
Спасибо, я правда не понял, что такое "по крону". Короче, я поставил себе Monitor Calibration Wizard какого-то лохматого года, она не трогает icm, берёт только LUT - но разницы нет, так как профиль и так по умолчанию один. Она не просто подгружает себя, а просто сидит в систем трее и форсит установленный провайл настолько хорошо, что никаким макаром его уже ни одна программа не сбивает!

[identity profile] iskatel.livejournal.com 2010-02-08 07:43 pm (UTC)(link)
в Винде это Планировщик, Sheduler .

http://caravan.ru/reference/faq/hosting/cron/
http://cronw.sourceforge.net/