¿Cómo es mi cursor más blanco que blanco?


21

Recientemente noté que mi cursor era más blanco que el fondo blanco (0xFFFFFF puro). Originalmente pensé que era una ilusión óptica ya que tomar capturas de pantalla mostró que tanto el fondo como el cursor estaban en 0xFFFFFF. Luego tomé una foto del cursor y muestra claramente una diferencia de brillo:

Foto del cursor

Puse un filtro de mosaico en la imagen para ver mejor el brillo promedio:

Foto del cursor con filtro de mosaico

El interior de la flecha es aproximadamente 191 gris (0xBF) y el fondo es aproximadamente 177 gris (0xB1), lo que significa que el blanco del cursor es aproximadamente un 8% más brillante que el blanco puro del fondo.

¿Qué hardware está haciendo esto y cómo? ¿La información de color se transmite con más de 8 bits por canal?

La computadora es Windows XP con una tarjeta gráfica NVIDEA GeForce 8500 GT conectada a un televisor Samsung 5100 a través de un cable HDMI.

Otra foto:

Dos cursores y un cuadrado sombreado.

Un cursor de hardware, una captura de pantalla del cursor de hardware y un cuadrado de 16x16 de cada valor de escala de grises de 0 a 0xFF en bloques de 2x2.

Dos cursores y un cuadrado sombreado con filtro de mosaico.

Lo mismo que la imagen anterior pero con un filtro de mosaico aplicado. Debería ser obvio cuál es el cursor real y cuál es la captura de pantalla del cursor en la foto. El brillo esta vez es de 185 y 170, todavía alrededor del 8% de diferencia. Usando un selector de color, el color que es 170 en la foto es 0xFFFFFF en la pantalla. No puedo usar el selector de color en el cursor porque muestra el color directamente debajo del cursor.


¿Has jugado con los ajustes de brillo o contraste en tu monitor?
Ron

1
Si las imágenes anteriores del problema se capturaron con cualquier elemento de la cámara que procesa las imágenes del sensor sin formato (todas lo hacen incluso cuando se almacenan en formatos de archivo sin formato). Luego, los resultados visuales ya han sido alterados por el procesamiento de los datos del sensor de la cámara. Para aliviar ese problema, sería tener un "control". En el fondo blanco, tenga una imagen de un cursor (no un cursor separado) y observe cómo son diferentes. Usando varios métodos y aplicando controles, puede suponer dónde ocurrió.
Psycogeek

@Psycogeek Supongo que el software en mis ojos está haciendo lo mismo entonces. ¿Cómo accedo a los datos sin procesar de mi ojo? En serio, sin embargo, lo único que le hice a la imagen fue recortarlo en la parte relevante. Podría subir una imagen de una captura de pantalla del cursor con el cursor real al lado, pero no sería más esclarecedor de lo que ya he explicado. El brillo (como lo he entendido anteriormente) oscila entre 0 y 255 (0xFF) por canal de color. Si el blanco dentro del cursor estuviera en la misma escala, sería aproximadamente 275 (0x113) y simplemente no hay suficiente espacio en 8 bits para codificar esto.
CJ Dennis

@ user2714915 ¡No he ajustado el brillo o el contraste en ninguna parte ! Eso realmente no llega al meollo de mi pregunta: ¿cómo puede el cursor ser más brillante que el color más brillante que se puede codificar en 8 bits cuando mi modo de gráficos es de 8 bits por color de canal?
CJ Dennis

@CJDennis: ¿Qué programas están afectados? Esto me parece un problema de calibración gamma.
James P

Respuestas:


10

Como se menciona en la respuesta de Psychogeek, este es un problema con una configuración de perfil de color por el sistema operativo.

La aplicación, el sistema operativo, la tarjeta de video y el hardware de la pantalla pueden aplicar perfiles de color.

Para los perfiles de color del sistema operativo en Windows, cuando se envía a la tarjeta de video, el perfil de color se aplica de manera diferente al cursor que a la imagen de la pantalla, lo que puede dar como resultado diferentes colores si el perfil de color cambia el punto blanco. En su caso, el cursor se envía como blanco verdadero, mientras que la imagen debajo tiene un perfil de color aplicado, cambiando el punto blanco a un nivel inferior.

El cursor se envía a la tarjeta de video por separado del resto de los datos de la pantalla, y la tarjeta de video lo mezcla en una etapa posterior durante el renderizado, antes de enviarlo a la pantalla.

En un nivel simplificado:

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

Una captura de pantalla no aplica el perfil de color del sistema operativo a los datos de "disparo", ya que se captura en la etapa de ventanas. En general, la captura de pantalla no mostrará el cursor, ya que captura incluso antes de aplicar el perfil del sistema operativo. Sin embargo, ciertas herramientas (que supongo que usó) para capturar la pantalla mezclarán el cursor sobre la imagen de la misma manera que lo hace la tarjeta de video. Dado que los niveles de blanco del cursor y el fondo son ambos 100%, la captura de pantalla tiene el mismo nivel de blanco para ambos.

El comportamiento normal que está viendo puede solucionarse utilizando un monitor o una tarjeta de video con una LUT de hardware para la calibración del color, o forzando que el cursor se dibuje en un punto de representación diferente, consulte esta pregunta de Photo.SE . También puede editar la imagen del cursor y cambiar el nivel de blanco si le molesta. Sin embargo, creo que hace que el cursor sea más notable en la pantalla.


Estoy de acuerdo en que el cursor es más notable. No me molesta, simplemente tenía curiosidad sobre cómo es técnicamente posible. ¿HDMI transporta más de 8 bits por canal o el resto de la imagen está comprimida (como en la compresión de audio, no la compresión de datos digitales) para que algunos niveles sean equivalentes a su nivel vecino?
CJ Dennis

1
HDMI transporta datos sin comprimir, probablemente a 8 bits por canal en su caso, pero es capaz de transportar más. Este problema ocurre antes de la señal HDMI
Richie Frame,

en.wikipedia.org/wiki/Uncompressed_video menciona que HDMI puede ser de 24, 30, 36 o 48 bits por píxel (8, 10, 12 o 16 bits por canal). Entonces, si se envía como 10 bits por canal en mi sistema, el blanco "puro" podría ser 0x3B3 por canal, mientras que el blanco del cursor es 0x3FF. Esto permitiría que todos los 256 niveles de 8 bits fueran distintos al tiempo que deja espacio para colores extra brillantes para el cursor. La mayoría de los niveles adyacentes tendrían una diferencia de 0x4, pero algunos serían solo 0x3.
CJ Dennis

Si tiene su tarjeta de video configurada para emitir canales de 10 bits, entonces es de 10 bits, pero no es probable que ese sea el caso
Richie Frame

Encontré una configuración en el panel de control de NVIDIA que me permite ajustar el brillo. Solo afecta la imagen de la pantalla, no el cursor. ¡Puedo reducir el brillo hasta que el blanco sea, supongo, aproximadamente 0xC0, haciendo que el cursor realmente se destaque! Sin embargo, no puedo ver nada sobre bits por canal de transmisión.
CJ Dennis

1

Esta respuesta comienza con un análisis de por qué las cosas no son 1: 1 con digital, y termina con posibles formas de cambiar las cosas en función de su pregunta real.

  • Tome una foto con su cámara, se procesarán todos los datos del sensor.
  • Luego se comprime hasta la muerte.
  • Luego se mueve 1: 1 a su computadora.
  • Donde se muestra siendo ajustado por cualquier perfil de color del sistema operativo.
  • Donde se dibuja digitalmente en una tarjeta de video que no solo puede ser ajustada por el usuario sino que puede tener algunos trucos de color propios.
  • Enviado al monitor 1: 1.
  • Donde puede ser completamente atacado en el procesamiento, antes de llegar a un panel de visualización.
  • El panel de visualización en sí no puede procesar todos los aspectos del mismo.
  • Los colores de la retroiluminación varían en grandes porcentajes en función del espectro de color que emite la retroiluminación.

En este caso, el cursor es (probablemente) un elemento representado por hardware que se superpone en el hardware de las tarjetas de video. Lo primero que debe analizar o intentar ajustar para cambiarlo es el perfil del monitor o los perfiles de color aplicados por el sistema operativo. Los perfiles de color se encuentran en el Panel de control, Todos los elementos del panel de control, Administración de color allí encontrará perfiles de color que cambian el color antes de que llegue al monitor.
Los perfiles se pueden desactivar, para que pueda observar el efecto que tiene.

Ajustes en el software de la tarjeta de video. El escritorio, el 3D y el material de dibujo directo de video son controlables, incluso si estas cosas no se ajustaron en el software de la tarjeta de video, podría ser que tenerlo todo configurado en 0 0 0 todavía exista algún procesamiento. Podría intentar usarlo para que coincida con la superposición del cursor, si hubiera alguna razón real para molestarse con él.

La tarjeta de video está superponiendo el cursor procesado por hardware, y no está usando los mismos parámetros para eso que el resto del fondo, y así es como funciona.

--con base en la imagen de control, nada del resto se aplica a esta pregunta específica--

Otra posibilidad es la configuración del monitor, aunque esto es menos probable. El contraste automático, los elementos de color automático en monitores y televisores pueden equilibrar grandes áreas brillantes u oscuras, y a menudo causan cambios no deseados. Los ajustes automáticos de color y nivelación en los monitores no siempre son ajustables, y usan muchos nombres lindos diferentes para las acciones que realizan.

Los perfiles en monitores como juegos, películas, computadoras de escritorio o cualquier nombre que usen para los perfiles establecen configuraciones específicas de color y contraste y brillo que consideran útiles para el perfil seleccionado, y nuevamente pueden ser cambios no deseados incluso para las selecciones de perfil adecuadas.

Los algoritmos de nitidez en la cámara, probablemente no en la tarjeta de visualización de video, pero de nuevo en el monitor pueden crear una matriz de resaltado alrededor de las áreas aumentando los contrastes originales o (por supuesto) reduciéndolo. En esta pregunta, es menos probable porque el blanco se expande más allá de los píxeles a los que se aplicaría una matriz de nitidez, a menos que se tratara de 2 procesamientos diferentes.

La lista se hace aún más larga cuando no se requiere que el software tenga fondos blancos, se pueden ajustar. El sistema operativo y los programas pueden tener un fondo que no sea blanco, pero ya sabe que no es así, en esta pregunta, si seleccionó el color del fondo, en el escritorio o programa original.

La selección de color en el escritorio le muestra el color del píxel (o píxeles) que existen allí, proporcionando al usuario los datos sobre lo que el programa está mostrando. La imagen en color aparece antes de que cualquier perfil de color ajuste la salida. Por lo tanto, la elección del color es una excelente manera de descubrir el color real. Entonces todavía pasa por el procesamiento nuevamente.

Existen programas que harán una captura de pantalla con el cursor superpuesto. a partir de eso, una persona puede hacer una selección de colores de las cosas, pero nuevamente el cursor puede ser dibujado usando un método diferente y procesado de la misma manera que el resto. Entonces, si bien es posible hacer una captura digital de software de la pantalla e incluir el cursor, puede cambiar lo que realmente se ve aquí.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.