Wide-gamut монитор и интерфейс ОС

rkurbatov

Участник
Топикстартер
Сообщения
8
Реакции
1
Насколько я понял, современные ОС не умеют полноценно работать с Color Management. Ну кроме MacOS, пожалуй (ретина - она ведь DCI-P3?) Как вы живете с широкохватными мониторами в повседневной жизни? Браузеры научились нормально воспроизводить картинки, но при этом видео получается вырвиглазным (как и все элементы, цвет которых задан в RGB), так же обои рабочего стола, интерфейсы практически всех программ - ну и игры.

В моем случае задача осложняется еще и тем, что монитора два (Dell UP2516D) и оба сильно разнятся по точке белого на одинаковых настройках и это очень раздражает, при переводе взгляда один монитор всегда краснит, второй всегда зеленит. Если перевести оба в sRGB, то категорически не получается уравнять, потому что в этом режиме мониторы позволяют подстройку только яркости-контраста и расходятся даже после калибровки под одинаковые целевые параметры. В родном режиме, где максимум настроек - вылезают проблемы с охватом. В фотошопе-лайтруме-3D Lut Creator все хорошо, но это хобби, а игры и рабочий софт дико пестрит.

Пока решил для себя проблему так - откалибровал один монитор под свой свет (визуально белый выглядит белым), второй уравнял с первым по белому и яркости и калибровал с целевыми As Measured - наконец-то они сошлись. В Windows насыщенность давлю при помощи novideo_srgb. Насколько я понял, она может средствами полускрытого API драйвера nVidia выполнять своего рода clamp всех цветов до профиля sRGB (хотя можно подсунуть и профиль монитора, вероятно должна работать точнее). Наверное, это можно считать гамут-меппингом, только непонятно каким. В этом режиме меня не интересует точность цветопередачи - только комфорт работы и визуальное равенство точки белого двух мониторов - это работает. Но как раз тут все то, что использует Color Management проседает по насыщенности - типа картинок в браузере, к которым приделан профиль. Для фотозадач в два клика отжимаю все назад до полного цветового охвата.

Для Linux, кстати, тоже можно провернуть подобное - команда типа

xrandr --output DP-2 --set CscMatrix 54650,11079,-194,0,3043,62152,340,0,815,3259,61460,0

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

Может быть у кого-то есть менее извращенные способы?
 

sasa

15 лет на форуме
Сообщения
2 009
Реакции
824
Насколько я понял, современные ОС не умеют полноценно работать с Color Management. Ну кроме MacOS, пожалуй (ретина - она ведь DCI-P3?) Как вы живете с широкохватными мониторами в повседневной жизни?
Насколько я понял, современные ОС не умеют полноценно работать с Color Management. Ну кроме MacOS, пожалуй
---
Далее можно не читать.
Ведь современные OS умеют работать с CMS. Примерно с 1997-го года....
 

rkurbatov

Участник
Топикстартер
Сообщения
8
Реакции
1
Далее можно не читать.

Спасибо. Как средствами полноценно поддерживающих CMS ОС адаптировать интерфейс ОС и прикладных программ, не поддерживающих СMS, к профилю широкохватного монитора? Чтобы много не читать и по сути.
 

sasa

15 лет на форуме
Сообщения
2 009
Реакции
824
Спасибо. Как средствами полноценно поддерживающих CMS ОС адаптировать интерфейс ОС и прикладных программ, не поддерживающих СMS, к профилю широкохватного монитора? Чтобы много не читать и по сути.
Много не читать не получится.
На этот счёт есть целая книжка:
Колориметрическая настройка мониторов - Теория и практика - А. Френкель, А. Шадрин
Вот её-то и нужно предварительно почитать. Ссылка на бесплатное скачивание.
 

rkurbatov

Участник
Топикстартер
Сообщения
8
Реакции
1
Снова спасибо. Подожду ответ того, кто прочитает вопрос.
 

koraalex

Участник
Сообщения
218
Реакции
133
rkurbatov, вам надо просто с нуля рассказывать, что и как делать, делясь профессиональными секретами. Сейчас у меня на это мало времени. Стандартные формулы расчёта ЦТ действительно могут выдавать разный оттенок белого на разных типах матриц даже при замере хорошим спектрофотометром, но проблемы обычно возникают с экранами, у которых либо цветовой охват "sRGB минус", либо сверхширокий, есть и другие тонкости, которые типовые калибрующие программы не учитывают. Вас также может обманывать серьёзная неоднородность экранов, залейте их серым цветом и осмотрите издалека. В целом же проблемы сведения отображения на двух мониторах одной модели нет, т.к. базовая коррекция (три кривые) должна грузиться при логине некой утилитой в аппаратные блоки при каждом выводе видеокарты, а коррекция по профилю, которую делают цветоуправляемые приложения, поверх "линеаризованного экрана" в обоих профилях выходит одинаковой. Не исключено, что подобная утилита у вас не работает, разные калибровочные программы ставят свою утилиту, хотя есть и встроенная в Винду. Вам следует проверить, не принимают ли оба монитора сигнал разного типа от видеокарты. А чтобы все программы "работали с профилями" можно включить эмуляцию стандартного профиля (sRGB чаще всего) на основе профилей ваших экранов, задав при этом самим экранам этот стандартный профиль. Она, кстати, неплохо исправляет проблему отрисовки с учётом экранного профиля - устраняет грязные градиенты. Есть программная эмуляция (свободная утилита dwm_lut), за счёт скрытой возможности Винды, она не всегда работает в последних выпусках (также в пиратских "оптимизированных" сборках), и есть аппаратная (утилита novideo_srgb), средствами относительно новых карт nVidia. Последняя работает с игровой скоростью, но имеет свои огрехи, не всегда качественная. Впрочем, меня возмущает, когда иные клиенты прекрасного пола мне говорят: "у меня муж на компьютере играет", может ему ещё соску дать? От себя скажу следующее: меня хорошо отучило от геймерской наркомании правило, принятое в лицее, где я учился: в его стенах можно было играть только в те игры, которые написал сам.
 
  • Спасибо
Реакции: Imageman72 и sasa

rkurbatov

Участник
Топикстартер
Сообщения
8
Реакции
1
Ясно почему Шадрин отсюда ушел. Профиль можете удалять. Спасибо за обстоятельные и бесполезные ответы.
 

koraalex

Участник
Сообщения
218
Реакции
133
Ясно почему Шадрин отсюда ушел. Профиль можете удалять. Спасибо за обстоятельные и бесполезные ответы.
Не хамите. Алексей Евгеньевич, кстати, серьёзным опытом с посторонними делится на платных курсах и в качестве поддержки после их прохождения. Конкретно по вашему вопросу: вы упускаете элементарный момент в color management workflow, включив аппаратную эмуляцию sRGB через novideo_srgb (а для неё как раз нужен реальный профиль монитора, желательно типа single curve + matrix, но не всегда), вы не прописываете в качестве системного профиля sRGB для ваших мониторов. В итоге, Фотошопы считают, что у основного монитора (который они берут для коррекции вывода при старте приложения) такой-то кастомный профиль и пересчитывают открываемые с разными стандартными профилями изображения под него, а не под sRGB-эмуляцию. А попсовые проги показывают как Paint - просто отправляют RGB-значения на видеокарту, но покуда та устраивает эмуляцию sRGB, то картинки с sRGB отрисовываются верно. Вот только картинки с Image P3, AdobeRGB, ролики с Rec.709 с разными гаммами и т.п. будут отрисовываться неверно. В целом, дизайн сайтов должен делаться под sRGB, игрушки тоже в основном под sRGB, но вероятно с гаммой 2.2, хотя нельзя исключить, что часть дизайна делается на Маках и соответствует Image P3, убеждён, существенная часть делается безо всякого контроля цвета. Ещё важный момент: в Виндах до 11-й и в Маках, кроме самых свежих, родные проги запрашивают систему, какой у неё профиль по умолчанию для основного монитора и корректируют цвет по нему до закрытия. В последних системах последние версии Фотошопа научились менять отрисовку на лету при перетаскивании окна на второй и т.д. мониторы. В Линуксе всё, сами знаете, зависит от типа и версии рабочего стола, версии приложения и багов. Крита и GIMP под Виндой умеют определять системный профиль как Фотошоп, но сдаётся мне, что это не всегда работает. Благо, в цветоуправляемых линуксовых прогах как правило профиль экрана можно задать явно и сменить во время работы. В целом на потребительском рынке не заботятся о верной передаче цвета потому что выгоднее, когда "пипл хавает", государственного же регулирования, видимо, нигде нет. И при работе с цветом надо отталкиваться от той самой психофизиологии, о которой любит говорить Шадрин, и непосредственно физики, смотря на компьютерную сторону как на техническую реализацию, притом сильно зависящую от производственных укладов. Настроить комп, чтобы он "просто правильно работал", не получится, увы.
 
Последнее редактирование:
  • Спасибо
Реакции: sasa

koraalex

Участник
Сообщения
218
Реакции
133

Не по теме:
извините, но
Ерунда. Регулярно смотрю англоязычные форумы, в большинстве случаев ответы оставляют желать лучшего. А касательно манеры общения, она зависит и от менталитета (в Штатах принято всем, кто к тебе обращается, улыбаться, что вовсе не является честным выражением чувств, скорее привычкой их подменять на "бизнес, и ничего личного"), и особенностями профессионального сообщества, и конкретными участниками форума (например, на форуме DisplayCAL есть постоянный комментатор Vincent, он много знает, но общаться с ним трудно, он регулярно отвечает не на поставленный вопрос, а смысл его ответов на английском подчас остаётся никому не понятным). В данном случае человек хочет, чтобы ему сделали дебаг его настроек, притом к разбору пёстрых ответов на форуме он не готов, хотя на любом форуме вы получите подобный букет ответов, также как и не готов к критике. (Фактически ему нужен не форум, а профессиональные услуги.) Есть общее правило - не понравился чей-то ответ в твой адрес, так не общайся с этим участником, не отвечай ему, "не корми тролля", в конце концов, а общайся с другими. Проштудировав форум RuDTP вполне можно понять, что команда тут интересная, и если на твой вопрос сейчас не ответили или ответили как-то не так, это не означает, что тут всё плохо. Зачем разворачиваться и напоказ хлопать дверью?
 
Последнее редактирование:
  • Спасибо
Реакции: Jeine и sasa

Sergant155

10 лет на форуме
Сообщения
464
Реакции
224
англоязычные форумы

Не по теме:
в разных версиях анекдота(в том числе на разных языках) используются разные страны. Анекдот же универсальный.
Критика скорее в адрес sas-ы, который сразу зашел с тяжелой артиллерии в виде УЧИМАТЧАСТЬ.
На сим заканчиваю офтоп, думаю это именно тот случай, когда можно писать, что тему можно закрывать(хотя тема интересная, и я бы с удовольствием почитал бы других коллег с форума)

 

koraalex

Участник
Сообщения
218
Реакции
133

Не по теме:
хотя тема интересная, и я бы с удовольствием почитал бы других коллег с форума
Слушайте, я просто сейчас не высыпаюсь ни дня, поэтому, конечно, отрезал не по делу. Плюс, хорошая мысля ко мне всегда приходит опосля. И ещё важен момент, на который часть людей не обращает внимания: текст, особенно быстрая переписка, часто не передаёт интонацию, из-за этого в чатах случается много ссор. Я не хотел сказать, что rkurbatov ничего не знает или всё перепутал. Он как раз довольно хорошо погружен в настройку, но чтобы провести дебаг, надо разобрать всю ситуацию от корня, и показать, где у него фундаментальные пробелы в понимании процесса. Если он, вдруг, ещё читает ответы, то:

1. Касательно несведения двух мониторов одной модели по белой точке: либо в видюхе на одном из выводов не работает vcgt (он же 1D LUT, он же блок коррекции по трём кривым), либо на этом выходе сигнал существенно отличается от сигнала на другом выводе (16-235 вместо 0-255, а то и YCbCr, другой тип снихронизации, другая частота вертикальной развёртки, - всё это может привести к другой встроенной трансформации сигнала внутри монитора), либо попросту мониторы не сброшены и не выведены в одинаковый "юзерский" режим работы (с минимальной коррекцией внутри монитора), может быть и обманчивая существенная неоднородность матриц, но наиболее вероятно, что rkurbatov послушал Шадрина, а Алексей Евгеньевич, когда перешёл на DisplayCAL, не очень в нём разобрался (был на его платном онлайн-курсе). Именно: Шадрин рекомендовал ставить минимальную скорость калибровки и профилирование чуть более, чем минимальным числом плашек, даже не конкретизируя тип профиля (а так получается XYZLUT+mtx). Однако, алгоритм DisplayCAL приводит к целевому белому с огрехами, и при "очень быстрой калибровке" отклонение может быть большим, для мониторов с разными исходными белыми - существенно разным. Не говоря о том, что в этом режиме калибровочные кривые "гонят волну", такой дурной алгоритм. В целом, для достижения нужного белого регулярно приходится делать несколько итераций. Черновой профиль следует делать в режиме с "быстрой калибровкой" и либо single curve + mtx профилем (34 патча), либо XYZLUT+mtx (175 патчей), задав в доп. настройках "относительный колориметрический" по умолчанию. Чистовой под 3D LUT - cо средней или низкой скоростью калибровки и полутора тысячами патчей и размером таблиц 33x33x33 в доп. настройках, под novideo_srgb такой тоже может сработать, но штатно должен быть типа single curve + mtx.

2. Собственно, уже написал, что ошибка автора темы состояла в том, что включив эмуляцию по sRGB, он не задал sRGB для мониторов, а оставил их собственные профили. Кстати, эмуляция убирает часть косяков при отрисовке градиентов во всяких Фотошопах, потому что при открытии sRGB-шной картинки они её для вывода на экран не преобразуют (а 8-битный контент Фотошоп преобразует по профилям с ощутимой погрешностью). Но также есть проблема 8-битной коррекции в блоке вывода видеокарты, при эмуляции через novideo_srgb тут может использоваться аппаратный дизеринг того-иного вида. А при эмуляции через 3D LUT (dwm_lut) калибровочные кривые встраиваются в лут, видюха ничего не корректирует. Отмечу, что nVidia не умеет правильно корректировать под ограниченный контраст (осветлённый чёрный), а это актуально в полиграфии для современных экранов с большой контрастностью.

3. Работать с novideo_srgb нужно осторожно, если вдруг не отключить эмуляцию и дизеринг (что не то же, что закрыть утилиту), калибровка/профилирование выдаст неадекват.
 
Последнее редактирование:

sasa

15 лет на форуме
Сообщения
2 009
Реакции
824

Не по теме:
в разных версиях анекдота(в том числе на разных языках) используются разные страны. Анекдот же универсальный.
Критика скорее в адрес sas-ы, который сразу зашел с тяжелой артиллерии в виде УЧИМАТЧАСТЬ.
На сим заканчиваю офтоп, думаю это именно тот случай, когда можно писать, что тему можно закрывать(хотя тема интересная, и я бы с удовольствием почитал бы других коллег с форума)

Критика скорее в адрес sas-ы, который сразу зашел с тяжелой артиллерии в виде УЧИМАТЧАСТЬ.
---
В этом случае - по-другому - никак нельзя. Я же не сам ставил вопрос... :)
Цитата топикстартера: "Насколько я понял, современные ОС не умеют полноценно работать с Color Management."
Она означает, что он многое не понял.
КАК можно ответить непонимающему сам вопрос человеку, который его задал?
@koraalex достаточно подробно расписал список задач, которые надо решать по ходу дела...
Он смог найти время на такие комментарии.
И про А. Шадрина.
Зря топикстартер на него ссылается в таком тоне.
Я, также, как и многие другие у него лично учился, получал поддержку, и не скажу ни одного плохого слова в адрес Алексея.
 

dmitry2

Участник
Сообщения
11
Реакции
12
Ведь современные OS умеют работать с CMS. Примерно с 1997-го года....
Windows управляет цветом на уровне системы лишь начиная с Windows 10, version 2004. В настоящий момент даже последняя версия Windows 11 не включает управление цветом по умолчанию, а лишь предоставляет ICC-профиль по запросу приложения и предоставляет приложениям API для использования этого профиля. Приложение может воспользоваться сторонней CMS.

Может быть у кого-то есть менее извращенные способы?

Есть. Начиная с Windows 10, version 2004 поддерживаются т.н. MHC-ICC-profiles с тегом MHC2. В этом теге хранится матрица преобразования цветового пространства XYZ->XYZ и три одномерных лута. Всё это применяется аппаратно в видеокарте. Если вы работаете в SDR, при помощи MHC-ICC-профиля можно привести мониторы к sRGB. Подробности я описал здесь: Приведение цветового охвата дисплея к sRGB в режиме SDR. Если вы работаете в режиме HDR, управление цветом осуществляется автоматически на уровне всей системы, никаких действий от пользователя не требуется. Это работает начиная с Windows 10, version 1703.
 
  • Спасибо
Реакции: Slx1 и eugeny

dmitry2

Участник
Сообщения
11
Реакции
12
И буквально сегодня вышло обновление Windows 11 23H2, в котором доступен режим Auto Color Management (ACM) для SDR-мониторов:
Accurate and consistent color appearance on all apps
All colors on all windows applications appear accurate and consistent with Auto Color Management (ACM). To turn ACM on, go to Settings > Display > Advanced display. Choose the SDR display and turn on Automatically manage color for apps.
При включении Auto Color Management приложения без управления цветом отображают цвета в sRGB, приложения с управлением цветом могут использовать весь цветовой охват дисплея. Для подавляющего большинства пользователей этот режим решает все проблемы, связанные с широкоохватными SDR-дисплеями. Для HDR-дисплеев аналогичное решение вышло в Windows 10, version 1703.
 
  • Спасибо
Реакции: eugeny, jazzy и Slx1

jazzy

Участник
Сообщения
328
Реакции
175

Вложения

  • Screenshot 2023-11-01 231431.png
    Screenshot 2023-11-01 231431.png
    33.8 КБ · Просм.: 94

jazzy

Участник
Сообщения
328
Реакции
175
Возможно на более свежих мониторах заработает или как-то нужно твикнуть реестр 🤷

Напомню, что эта функция была в бете 11 винды и все прекрасно работало (просто всю остальную систему управления цветом тогда поломали).

Вцелом - лично мне пофигу, давно привык что нормальный цвет только если у приложения своя CMS. Но геймеры судя по форуму поддержки MS зудят (играть в некоторые игры на wide gamut без аппаратной поддержки HDR ещё та боль для глаз), возможно сами MS позже что-то подкрутят.
 
  • Спасибо
Реакции: dmitry2 и Slx1

jazzy

Участник
Сообщения
328
Реакции
175
Кажется, нашел'dans))'

Proper way to enable ACM with modified profile? · Issue #10 · dantmnf/MHC2

For devices that do legitimately have ACM on build 22621, like the Surface Pro 9, they actually depend on the the presence of an alternative registry DWORD, MicrosoftApprovedAcmSupport, being present and set to 1. That DWORD needs to be present in the following regkey: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96e-e325-11ce-bfc1-08002be10318}\000x
with 000x being the index of the currently active/desired display (e.g. 0001 would be valid). This appears to be set by the OEM during device provisioning, and doesn't rely on a valid MHC2 color profile's presence interestingly enough.

То есть при установке дисплея винда должна определить, поддерживает он нативно ACM или нет. К счастью, можно залезть в реестр и вручную добавить MicrosoftApprovedAcmSupport в параметры любого диспеля (у меня в этом разделе было несколько записей реестра с индексами от 0000 до 0005, тупо добавил во все (так понимаю, это хвосты от старых подключений монитора к другим портам)). И всё заработало. УРА!!!!

Почти 10 лет видел виндовый интерфейс натянутым на +/- AdobeRGB, сейчас очень непривычно... программы с собственной CMS работают корректно и могут при желании показать больший охват, чем десктоп (проверил первым делом).
 
Последнее редактирование:
  • Спасибо
Реакции: almastu, dmitry2 и Slx1

dmitry2

Участник
Сообщения
11
Реакции
12
У меня тоже заработало 'cooll)' Но сразу вылез один нюанс. Если приложение не управляет цветом, ему отдается профиль sRGB Color Space Profile.icm, как и задумано. Но если приложение управляет цветом, в свойствах ярлыка нужно поставить галку "Use legacy display ICC color management". В этом случае должен отдаваться текущий профиль, а по факту отдается сгенерированный на лету из EDID (ну вот зачем?). Для большинства пользователей это ОК. Но профиль, полученный в результате калибровки использовать не получится. Продолжаем наблюдение.
 
Последнее редактирование:
  • Спасибо
Реакции: almastu, jazzy и Slx1