Comment mon curseur est-il plus blanc que blanc?

21

J'ai récemment remarqué que mon curseur était plus blanc que le fond blanc (0xFFFFFF pur). À l'origine, je pensais que c'était une illusion d'optique car la capture d'écran montrait que l'arrière-plan et le curseur étaient à 0xFFFFFF. Ensuite, j'ai pris une photo du curseur et cela montre clairement une différence de luminosité:

Photo du curseur

J'ai mis un filtre mosaïque sur l'image pour mieux voir la luminosité moyenne:

Photo du curseur avec filtre mosaïque

L'intérieur de la flèche est d'environ 191 gris (0xBF) et l'arrière-plan est d'environ 177 gris (0xB1), ce qui signifie que le blanc du curseur est environ 8% plus lumineux que le blanc pur de l'arrière-plan.

Quel matériel fait cela et comment? Les informations de couleur sont-elles transmises avec plus de 8 bits par canal?

L'ordinateur est Windows XP avec une carte graphique NVIDEA GeForce 8500 GT connectée à un téléviseur Samsung 5100 via un câble HDMI.

Autre photo:

Deux curseurs et un carré ombré

Un curseur matériel, une capture d'écran du curseur matériel et un carré 16x16 de chaque valeur d'échelle de gris de 0 à 0xFF en blocs 2x2.

Deux curseurs et un carré ombragé avec filtre mosaïque

Identique à l'image précédente mais avec un filtre mosaïque appliqué. Il devrait être évident quel est le curseur réel et quelle est la capture d'écran du curseur sur la photo. La luminosité est cette fois de 185 et 170, toujours une différence d'environ 8%. À l'aide d'un sélecteur de couleurs, la couleur qui est 170 sur la photo est 0xFFFFFF à l'écran. Je ne peux pas utiliser le sélecteur de couleurs sur le curseur lui-même car il échantillonne la couleur directement sous le curseur.

CJ Dennis
la source
Avez-vous joué avec les paramètres de luminosité ou de contraste de votre moniteur?
Ron
1
Si les images ci-dessus du problème ont été capturées à l'aide de n'importe quel élément de caméra qui traite les images brutes de Sencor (elles le font toutes même lorsqu'elles sont stockées dans des formats de fichier bruts), les résultats visuels ont déjà été modifiés par le traitement des données de Sencor de la caméra. Atténuer ce problème, ce serait avoir un "contrôle". Sur le fond blanc, affichez l'image d'un curseur (pas un curseur séparé rendu) et observez comment ils sont différents. En utilisant diverses méthodes et en appliquant des contrôles, vous pouvez alors supposer où cela s'est produit.
Psycogeek
@Psycogeek Je suppose que le logiciel à mes yeux fait alors la même chose. Comment accéder aux données brutes de mon œil? Sérieusement, la seule chose que j'ai faite à l'image a été de la recadrer dans le bit correspondant. Je pourrais télécharger une image d'une capture d'écran du curseur avec le curseur réel à côté, mais ce ne serait pas plus éclairant que je l'ai déjà expliqué. La luminosité (comme je l'ai déjà compris) va entre 0 et 255 (0xFF) par canal de couleur. Si le blanc à l'intérieur du curseur était à la même échelle, il serait d'environ 275 (0x113) et il n'y a tout simplement pas assez de place en 8 bits pour coder cela.
CJ Dennis
@ user2714915 Je n'ai ajusté la luminosité ou le contraste nulle part ! Cela ne va pas vraiment au cœur de ma question: comment le curseur peut-il être plus brillant que la couleur la plus lumineuse qui peut être encodée en 8 bits lorsque mon mode graphique est de 8 bits par couleur de canal?
CJ Dennis
@CJDennis: Quels programmes sont concernés? Cela ressemble à un problème d'étalonnage gamma pour moi.
James P

Réponses:

10

Comme mentionné dans la réponse de Psychogeek, il s'agit d'un problème avec un paramètre de profil de couleur par le système d'exploitation.

Les profils de couleurs peuvent être appliqués par l'application, le système d'exploitation, la carte vidéo et le matériel d'affichage.

Pour les profils de couleurs du système d'exploitation dans Windows, lorsqu'il est envoyé à la carte vidéo, le profil de couleurs est appliqué différemment au curseur que sur l'image à l'écran, ce qui peut entraîner des couleurs différentes si le profil de couleurs change le point blanc. Dans votre cas, le curseur est envoyé comme du vrai blanc, tandis que l'image en dessous a un profil de couleur appliqué, changeant le point blanc à un niveau inférieur.

Le curseur est envoyé à la carte vidéo séparément du reste des données d'affichage, et est mélangé par la carte vidéo à un stade ultérieur pendant le rendu, avant d'être envoyé à l'affichage.

À un niveau simplifié:

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

Une capture d'écran n'applique pas le profil de couleur du système d'exploitation aux données de "prise de vue", car il est capturé au stade du fenêtrage. Généralement, la capture d'écran ne montrera pas le curseur, car elle capture même avant l'application du profil OS. Cependant, certains outils (que je suppose que vous avez utilisés) pour capturer l'écran mélangeront le curseur sur l'image de la même manière que la carte vidéo. Étant donné que les niveaux de blanc du curseur et de l'arrière-plan sont tous deux à 100%, la capture d'écran a le même niveau de blanc pour les deux.

Le comportement normal que vous voyez peut être corrigé en utilisant un moniteur ou une carte vidéo avec une LUT matérielle pour l'étalonnage des couleurs, ou en forçant le tirage du curseur à se produire à un point de rendu différent, voir cette question Photo.SE . Vous pouvez également modifier l'image du curseur et modifier le niveau de blanc si cela vous dérange. Je pense cependant que cela rend le curseur plus visible à l'écran.

Cadre Richie
la source
Je suis d'accord que le curseur est plus visible. Cela ne me dérange pas, j'étais simplement curieux de savoir comment c'est possible techniquement. HDMI transporte-t-il plus de 8 bits par canal ou le reste de l'image est-il compressé (comme dans la compression audio, pas la compression de données numériques) de sorte que certains niveaux soient équivalents à leur niveau voisin?
CJ Dennis
1
HDMI transporte des données non compressées, probablement à 8 bits par canal dans votre cas, mais il est capable d'en transporter plus. Ce problème se produit avant le signal HDMI
Richie Frame
en.wikipedia.org/wiki/Uncompressed_video mentionne que HDMI peut être de 24, 30, 36 ou 48 bits par pixel (8, 10, 12 ou 16 bits par canal). Donc, s'il est envoyé sous forme de 10 bits par canal sur mon système, le blanc "pur" peut être 0x3B3 par canal, tandis que le blanc du curseur est 0x3FF. Cela permettrait aux 256 niveaux 8 bits d'être distincts tout en laissant de la place pour des couleurs très vives pour le curseur. La plupart des niveaux adjacents auraient une différence de 0x4, mais quelques-uns ne seraient que de 0x3.
CJ Dennis
Si votre carte vidéo est configurée pour émettre des canaux 10 bits, elle est 10 bits, mais il est peu probable que ce soit le cas
Richie Frame
J'ai trouvé un paramètre dans le panneau de configuration NVIDIA qui me permet de régler la luminosité. Cela n'affecte que l'image de l'écran, pas le curseur. Je peux abaisser la luminosité jusqu'à ce que le blanc soit, à une supposition, environ 0xC0, ce qui fait vraiment ressortir le curseur! Cependant, je ne vois rien sur les bits par canal de transmission.
CJ Dennis
1

Cette réponse commence par une analyse des raisons pour lesquelles les choses ne sont pas 1: 1 avec le numérique, et se termine par des moyens possibles de changer les choses en fonction de votre question réelle.

  • Prenez une photo avec votre appareil photo, toutes les données du capteur sont traitées.
  • Ensuite, il est comprimé à mort.
  • Il se déplace ensuite 1: 1 vers votre ordinateur.
  • L'endroit où il est affiché est ajusté par les profils de couleur du système d'exploitation.
  • Où il est dessiné numériquement sur une carte vidéo qui non seulement peut être ajustée par l'utilisateur, mais qui peut avoir ses propres astuces de couleur.
  • Envoyé au moniteur 1: 1.
  • Où il peut être complètement agressé lors du traitement, avant de se rendre à un panneau d'affichage.
  • Le panneau d'affichage lui-même n'est pas en mesure d'en restituer tous les aspects.
  • Les couleurs de rétro-éclairage varient par d'énormes pourcentages en fonction du spectre de couleurs émis par le rétro-éclairage.

Dans ce cas, le curseur est (probablement) un élément rendu matériel qui est superposé dans le matériel des cartes vidéo. La première chose à examiner ou à essayer d'ajuster pour le changer est le profil du moniteur et / ou les profils de couleurs appliqués par le système d'exploitation. Les profils de couleur se trouvent dans Panneau de configuration, Tous les éléments du panneau de commande, Gestion des couleurs, vous y trouverez des profils de couleur qui changent la couleur avant qu'elle n'atteigne le moniteur lui-même.
Les profils peuvent être désactivés, vous pouvez donc en observer l'effet.

Réglages dans le logiciel de la carte vidéo. Le bureau, la 3D et les trucs de tirage vidéo direct sont tous contrôlables, même si ces choses n'ont pas été ajustées dans le logiciel de la carte vidéo, il se pourrait que tout étant réglé sur 0 0 0, il existe encore un certain traitement. Vous pouvez essayer de l'utiliser pour faire correspondre la superposition de curseurs, s'il y a vraiment une raison de s'en préoccuper.

La carte vidéo superpose le curseur de rendu matériel et n'utilise pas les mêmes paramètres pour cela que le reste de l'arrière-plan, et c'est exactement comme cela que cela fonctionne.

- sur la base de la photo de contrôle, aucun des autres ne s'applique à cette question spécifique -

Une autre possibilité est les paramètres du moniteur, bien que cela soit moins probable. Le contraste automatique, les éléments de couleur automatique sur les moniteurs et les téléviseurs peuvent équilibrer les zones lumineuses ou sombres énormes, et provoquent souvent des changements indésirables. Les réglages automatiques de couleur et de mise à niveau dans les moniteurs ne sont pas toujours réglables et utilisent de nombreux noms mignons différents pour les actions qu'ils effectuent.

Les profils dans les moniteurs comme le jeu, le film, le bureau ou tout autre nom qu'ils utilisent pour les profils définissent des paramètres de couleur et de contraste et de luminosité spécifiques qu'ils jugent utiles pour le profil sélectionné, et peuvent encore être des modifications indésirables, même pour les sélections de profil appropriées.

Des algorithmes de netteté dans l'appareil photo, peu probables dans la carte d'affichage vidéo, mais à nouveau dans le moniteur peuvent créer une matrice de surbrillance autour des zones augmentant les contrastes originaux, ou (bien sûr) les réduisant. Dans cette question, il est moins probable car le blanc s'étend au-delà des pixels auxquels une matrice de netteté s'appliquerait, à moins qu'il ne s'agisse de 2 traitements différents.

La liste s'allonge encore plus lorsque le logiciel n'a pas réellement besoin d'avoir un arrière-plan blanc, ils peuvent être ajustés. Le système d'exploitation et les programmes peuvent avoir un arrière-plan qui n'est pas blanc, mais vous savez déjà que ce n'est pas le cas, dans cette question si vous avez fait un choix de couleur de l'arrière-plan, sur le bureau ou le programme d'origine.

La sélection des couleurs sur le bureau vous montre la couleur du pixel (ou des pixels) qui y existent, fournissant à l'utilisateur les faits sur ce que le programme affiche. L'image en couleur vient avant que n'importe quel profil de couleur ne règle la sortie. La sélection des couleurs est donc un excellent moyen de découvrir la couleur réelle. Ensuite, il passe encore par le traitement.

Il existe des programmes qui feront une capture d'écran avec le curseur superposé. à partir de là, une personne pourrait faire un choix de couleurs, mais encore une fois, le curseur peut être dessiné en utilisant une méthode différente et être traité de la même manière que le reste. Donc, bien qu'il soit possible de faire une capture numérique de l'écran de l'écran et du curseur, cela peut changer ce qui est réellement vu ici.

Psycogeek
la source