19

Я недавно заметил, что мой курсор был белее фона белого (чистый 0xFFFFFF). Первоначально я думал, что это оптическая иллюзия, поскольку снимки экрана показали, что фон и курсор были в 0xFFFFFF. Затем я сфотографировал курсор, и он ясно показывает разницу в яркости:

Фотография курсора

Я поместил мозаичный фильтр на изображение, чтобы лучше видеть среднюю яркость:

Фотография курсора с мозаичным фильтром

Внутренняя часть стрелки имеет примерно 191 серый (0xBF), а фон - около 177 серых (0xB1), что означает, что белый цвет курсора примерно на 8% ярче, чем чистый белый цвет фона.

Какое оборудование делает это и как? Передается ли информация о цвете с более чем 8 битами на канал?

Компьютер - Windows XP с графической картой NVIDEA GeForce 8500 GT, подключенной к телевизору Samsung 5100 с помощью кабеля HDMI.

Другая фотография:

Два курсора и заштрихованный квадрат

Один аппаратный курсор, один скриншот аппаратного курсора и квадрат 16x16 каждого значения серой шкалы от 0 до 0xFF в блоках 2x2.

Два курсора и заштрихованный квадрат с мозаичным фильтром

То же, что и на предыдущем изображении, но с применением фильтра мозаики. Должно быть очевидно, какой именно курсор является действительным, а какой - скриншот курсора на фотографии. Яркость на этот раз составляет 185 и 170, разница все равно примерно 8%. Используя палитру цветов, цвет 170 на фотографии равен 0xFFFFFF на экране. Я не могу использовать палитру цветов на самом курсоре, потому что он выбирает цвет непосредственно под курсором.

2 ответа2

9

Как упоминалось в ответе Psychogeek, это проблема с настройкой цветового профиля операционной системой.

Цветовые профили могут применяться приложением, операционной системой, видеокартой и оборудованием дисплея.

Для цветовых профилей ОС в Windows при отправке на видеокарту цветовой профиль применяется к курсору иначе, чем к изображению на экране, что может привести к различным цветам, если цветовой профиль меняет точку белого. В вашем случае курсор отправляется как истинно белый, в то время как к изображению внизу применяется цветовой профиль, изменяя точку белого на более низкий уровень.

Курсор отправляется на видеокарту отдельно от остальной части данных дисплея и смешивается видеокартой на более поздней стадии во время рендеринга перед отправкой на дисплей.

На упрощенном уровне:

[Cursor Draw]   --   --   --   --   --   --   --
                                               ˅
[Windowing] --> [OS Profile] --> [Video Driver] --> [Video Card] --> [Hardware Profile] --> ...

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

Нормальное поведение, которое вы видите, может быть исправлено с помощью монитора или видеокарты с аппаратным LUT для калибровки цвета или с помощью принудительного рисования курсора в другой точке рендеринга, см. Эту фотографию.SE вопрос. Вы также можете отредактировать изображение курсора и изменить уровень белого, если он вас раздражает. Однако я думаю, что это делает курсор более заметным на экране.

1

Этот ответ начинается с анализа того, почему вещи не соответствуют цифровому формату 1:1, и заканчивается возможными способами изменить ситуацию в зависимости от вашего фактического вопроса.

  • Снимите фото с вашей камерой, все данные датчика обрабатываются.
  • Тогда это сжато до смерти.
  • Затем он перемещается 1:1 к вашему компьютеру.
  • Где это отображается, корректируется с помощью любых цветовых профилей ОС.
  • Там, где он нарисован на видеокарте в цифровом виде, он не только может быть настроен пользователем, но может иметь свои собственные цветовые трюки.
  • Отправляется на монитор 1:1.
  • Где это может быть полностью атаковано при обработке, прежде чем перейти на панель дисплея.
  • Сама панель дисплея не способна отобразить все ее аспекты.
  • Цвета подсветки изменяются в огромных процентах в зависимости от цветового спектра, который излучает подсветка.

В этом случае курсор (скорее всего) представляет собой аппаратный визуализированный элемент, который накладывается на видеокарту. Первое, на что нужно обратить внимание или попытаться настроить его, - это профиль монитора и / или примененные цветовые профили ОС. Цветовые профили находятся в Панели управления, Все элементы панели управления, Управление цветом, там вы найдете цветовые профили, которые меняют цвет, прежде чем он попадет на сам монитор.
Профили можно отключить, чтобы вы могли наблюдать эффект, который он оказывает.

Настройки в программном обеспечении видеокарты. Управление рабочим столом, трехмерным изображением и прямым просмотром видео - все это управляемо, даже если эти вещи не были настроены в программном обеспечении видеокарты, возможно, что при установке всего 0 0 0 все еще существует некоторая обработка. Вы можете попробовать использовать его для наложения курсора, если есть какая-либо реальная причина для беспокойства.

Видеокарта накладывает курсор на аппаратную визуализацию и не использует те же параметры для этого, что и для остального фона, и именно так она и работает.

- на контрольном снимке все остальное не относится к этому конкретному вопросу -

Другая возможность - настройки монитора, хотя это менее вероятно. Автоконтраст, автоцветные элементы на мониторах и телевизорах могут уравновешивать огромные яркие или темные области и часто вызывают нежелательные изменения. Автоматические настройки цвета и уровня в мониторах не всегда регулируются и используют много разных симпатичных имен для действий, которые они выполняют.

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

Алгоритмы повышения резкости в камере, маловероятно в видеокарте, но опять же в мониторе, могут создать матрицу выделения вокруг областей, увеличивая исходные контрасты или (конечно) уменьшая их. В этом вопросе это менее вероятно, потому что белый цвет выходит за пределы пикселей, к которым будет применяться матрица резкости, если только это не было 2-х различных обработок.

Список становится еще длиннее, когда на самом деле не требуется, чтобы программное обеспечение имело четкие белые фоны, их можно настроить. ОС и программы могут иметь не белый фон, но вы уже знаете, что это не так, в этом вопросе, если вы выбрали цвет фона на исходном рабочем столе или программе.

Выбор цвета на рабочем столе показывает цвет пикселя (или пикселей), который там существует, предоставляя пользователю информацию о том, что показывает программа. Цветная картинка появляется до того, как какой-либо цветовой профиль корректирует вывод. Таким образом, выбор цвета - отличный способ узнать настоящий цвет. Затем он все еще проходит обработку снова.

Существуют программы, которые делают снимок экрана с наложенным курсором. Исходя из этого, человек может выбирать цвета, но снова курсор может быть нарисован другим способом и обрабатываться так же, как и все остальное. Таким образом, хотя программную цифровую съемку экрана и включения курсора можно выполнять программно, это может изменить то, что на самом деле здесь видно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .