Як мій курсор біліший від білого?


21

Нещодавно я помітив, що курсор був білішим, ніж білий фон (чистий 0xFFFFFF). Спочатку я вважав, що це оптична ілюзія, оскільки знімки екрана показували, що і фон, і курсор знаходяться в 0xFFFFFF. Потім я сфотографував курсор і на ньому чітко видно різницю яскравості:

Фото курсору

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

Фото курсору з мозаїчним фільтром

Внутрішня частина стрілки становить приблизно 191 сірого (0xBF), а фон - близько 177 сірого (0xB1), тобто білий курсор приблизно на 8% яскравіший, ніж чисто білий фон.

Яке обладнання це робить і як? Чи передається кольорова інформація з більш ніж 8 бітами на канал?

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

Ще одне фото:

Два курсори та затінений квадрат

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

Два курсори та затінений квадрат з мозаїчним фільтром

Те саме, що і попереднє зображення, але із застосованим мозаїчним фільтром. Повинно бути очевидним, який є фактичним курсором та який є скріншот курсора на фотографії. Яскравість цього разу становить 185 і 170, все ще приблизно 8% різниці. За допомогою вибору кольорів колір на фотографії становить 170 разів на екрані 0xFFFFFF. Я не можу використовувати інструмент вибору кольору на самому курсорі, оскільки він відбирає колір безпосередньо під курсором.


Ви грали з налаштуваннями яскравості чи контрасту на моніторі?
Рон

1
Якщо вищезазначені зображення проблеми були зняті за допомогою будь-якого елемента камери, який обробляє неочищені зображення сенсора (вони все роблять навіть при збереженні у сировинних форматах файлів), то візуальні результати вже були змінені при обробці даних камери сенсора. Щоб усунути це питання, було б мати "контроль". На білому тлі майте зображення курсера (а не винесеного окремого курсера) та спостерігайте, як вони відрізняються. Використовуючи різні методи та застосовуючи елементи керування, ви можете припустити, де вона відбулася.
Psycogeek

@Psycogeek Я думаю, що програмне забезпечення в моїх очах робить те саме. Як отримати доступ до вихідних даних очей? Якщо серйозно, то єдине, що я зробив із зображенням - це обрізати його на відповідний шматочок. Я міг би завантажити зображення скріншоту курсора з фактичним курсором поруч, але це не буде більш світлим, ніж я вже пояснив. Яскравість (як я раніше це розуміла) коливається в межах від 0 до 255 (0xFF) на кольоровий канал. Якщо біле всередині курсору було в одному масштабі, воно було б приблизно 275 (0x113), і просто не вистачає місця в 8 біт для його кодування.
CJ Dennis

@ User2714915 я не відрегулював яскравість або контрастність де - небудь ! Це насправді не доходить до мого питання: Як курсор може бути яскравішим за найяскравіший колір, який можна закодувати в 8 біт, коли мій графічний режим становить 8 біт на колір каналу?
CJ Dennis

@CJDennis: На які програми впливають? Це схоже на проблему калібрування гамми.
Джеймс П

Відповіді:


10

Як згадується у відповіді Psychogeek, це питання щодо налаштування кольорового профілю операційною системою.

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

Для кольорових профілів ОС у Windows при надсиланні на відеокарту кольоровий профіль застосовується по-іншому до курсору, ніж до екранного зображення, що може спричинити різні кольори, якщо кольоровий профіль змінить білу точку. У вашому випадку курсор надсилається як справжній білий, тоді як зображення під ним нанесено кольоровий профіль, змінюючи білу точку на нижчий рівень.

Курсор надсилається на відеокарту окремо від решти відображених даних і змішується відеокартою на більш пізньому етапі під час надання, перш ніж надсилатися на дисплей.

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

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

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

Нормальну поведінку, яку ви бачите, можна виправити за допомогою монітора чи відеокарти з апаратним LUT для калібрування кольорів або змусивши малювати курсор у іншій точці візуалізації, див. Це питання Photo.SE . Ви також можете редагувати зображення курсору та змінювати рівень білого, якщо він вас дратує. Однак я думаю, що це робить курсор помітнішим на екрані.


Я згоден, що курсор помітніший. Мене це не дратує, мені просто цікаво, як це можливо технічно. Чи переносить HDMI більше 8 біт на канал або залишок зображення стискається (як при стисненні звуку, а не цифровому стисненні даних), щоб деякі рівні були еквівалентні їх сусідньому рівню?
CJ Dennis

1
HDMI передає нестиснені дані, швидше за все, у вашому випадку 8 біт на канал, але він може переносити більше. Ця проблема виникає до сигналу HDMI
Richie Frame

en.wikipedia.org/wiki/Uncompression_video зазначає, що HDMI може бути 24, 30, 36 або 48 біт на піксель (8, 10, 12 або 16 біт на канал). Отже, якщо він надсилається як 10 біт на канал у моїй системі, "чистий" білий може бути 0x3B3 на канал, тоді як білий курсор - 0x3FF. Це дозволило б розрізнити всі 256 8-бітових рівнів, в той час як надавати місце для надзвичайно яскравих кольорів для курсору. Більшість сусідніх рівнів мали б різницю в 0x4, але кілька - лише 0x3.
CJ Dennis

Якщо у вас відеокарта налаштована для виведення 10-бітових каналів, то вона є 10-розрядною, але це, мабуть, так
Richie Frame

Я знайшов налаштування на панелі управління NVIDIA, що дозволяє мені регулювати яскравість. Це впливає лише на екранне зображення, а не на курсор. Я можу знизити яскравість до тих пір, поки білий не стане приблизно 0xC0, завдяки чому курсор дійсно виділиться! Я не бачу нічого про біти на канал передачі.
CJ Dennis

1

Ця відповідь починається з аналізу того, чому речі не є 1: 1 з цифровим, і закінчується можливими способами змінити речі, виходячи з вашого фактичного запитання.

  • Зробіть знімок за допомогою камери, всі дані датчика обробляються.
  • Потім його стискають до смерті.
  • Потім він переміщується 1: 1 до вашого комп’ютера.
  • Там, де він відображається, регулюється будь-якими кольоровими профілями ОС.
  • Там, де це цифрово намальовано на відеокарті, не тільки можна налаштувати користувач, але може мати деякі кольорові хитрощі.
  • Надіслано на монітор 1: 1.
  • Там, де вона може бути повністю атакована при обробці, перед тим, як перенести її на панель дисплея.
  • Сама панель дисплея не зможе відобразити всі її аспекти.
  • Кольори підсвічування змінюються на величезні відсотки залежно від спектру кольорів, який випромінює підсвічування.

У цьому випадку курсор є (ймовірно) елементом, що надається обладнанням, накладеним на апаратне забезпечення відеокарт. Перше, на що слід звернути увагу або спробувати налаштувати його, - це профіль монітора та кольорові профілі, застосовані в ОС. Кольорові профілі знаходяться на панелі керування, Усі елементи панелі керування, Керування кольорами, там ви знайдете кольорові профілі, які змінюють колір, перш ніж потрапляти на сам монітор.
Профілі можна відключити, тож ви можете спостерігати за ефектом, який він має.

Регулювання програмного забезпечення для відеокарт. Настільний робочий стіл, 3D та речі прямого малювання відео керовані, навіть якщо ці речі не були відрегульовані у програмному забезпеченні відеокарти, можливо, якщо встановити все це на 0 0 0, існує ще деяка обробка, яка існує. Ви можете спробувати використати його, щоб відповідати накладці курсора, якщо є якась реальна причина заважати.

Відеокарта накладається на апаратно візуалізований курсор і не використовує ті самі параметри, що і для іншого фону, і саме так воно працює.

- на основі контрольної картинки жодне інше не стосується цього конкретного питання--

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

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

Алгоритми різкості в камері, швидше за все, на картці з відображенням відео, але знову ж таки в моніторі можуть створити матрицю виділення навколо областей, що збільшують початкові контрасти, або (звичайно) зменшують її. У цьому питанні це менше ймовірність, оскільки білий розширюється за межі пікселів, до якого застосовуватиметься матриця заточування, якщо тільки це не було дві різні обробки.

Список стає ще довшим, коли програмне забезпечення насправді не вимагає яскравих білих фонів, їх можна відрегулювати. У ОС і програм може бути фон, який не є білим, але ви вже знаєте, що це не так, у цьому питанні, якщо ви робили колір тла на оригінальному робочому столі або програмі.

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

Існують програми, які зроблять знімок екрана з накладеним курсором. з цього людина могла б вибрати кольори речей, але знову курсор може бути намальований іншим методом і оброблятися так само, як і решта. Тож поки можливо зробити програмне цифрове захоплення екрана та включно курсор, це може змінити те, що насправді бачиться тут.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.