Cómo calcular el brillo de la imagen para usar con un panel LED

Estoy usando una matriz LED RGB de 64x64 para la que estoy preparando algunos contenidos. El firmware existente lee archivos de video RGB888.

Me gustaría analizar estos archivos antes de cargarlos, para asegurarme de que el brillo general no supere un umbral para mantener el amperaje en una zona feliz.

Hasta ahora, estoy pensando en obtener el brillo máximo en función del brillo promedio de cada cuadro de video.

Mi pregunta es sobre cómo calcular el brillo de una manera que tenga sentido en términos de electrónica (con lo que no tengo mucha experiencia).

¿Cuál es el mejor método para calcular el brillo de un píxel RGB888 en relación con el amperaje utilizado por un LED RGB?

Hay múltiples espacios de color que tienen un canal de luminancia (YUV,YCrCb,XYZ,Luv,L*a*b*,HLS,HSV), pero ¿tiene sentido usar alguno de estos en términos de cuánta potencia consumirá un LED? ?

¿Estaría más cerca simplemente promediar los valores R, G, B?

Respuestas (1)

La pregunta que debe hacerse no es "cuán brillantes serán los LED", sino "cuál será el ciclo de trabajo de los LED", ya que es el ciclo de trabajo el que define tanto el brillo como el consumo de corriente. El brillo puede ser algo divertido de resolver, ya que lo que percibes no es lo mismo que la corriente utilizada.

Puede estimar una relación 1:1 entre el ciclo de trabajo de la señal PWM de cualquier LED y la corriente consumida (0 % de servicio = apagado = 0 % de corriente máxima, 50 % de servicio = medio encendido = 50 % de corriente máxima, 100 % de servicio = encendido completo = 100% de corriente máxima).

Entonces, suponiendo que sepa cuánta corriente consume cada canal de R, G y B cuando está completamente encendido por LED, puede calcular cuál sería el consumo de corriente para un cuadro completo.

Es importante mantener los tres canales separados, ya que la corriente de cada canal puede ser muy diferente; por ejemplo, el azul se percibe más brillante que el rojo y puede iluminarse con menos corriente para compensarlo.

Entonces, para cada píxel en la imagen, toma cada uno de R, G y B, y calcula la intensidad promedio de ese canal en toda la imagen. Digamos que funciona como 20 % rojo, 15 % verde y 45 % azul. Entonces, en general, tendría el 20% de la corriente roja total, el 15% de la corriente verde total y el 45% de la corriente azul total.

Digamos que cada LED rojo y verde toma 10 mA y cada uno azul toma 5 mA (en aras de la simplicidad y el argumento) cuando está completamente encendido. Eso sería 10 metro A × 64 2 para cada uno de rojo y verde, y 5 metro A × 64 2 para azul

Haciendo los cálculos, esa es una corriente total de 40,96 A para cada rojo y verde, y 20,48 A para el azul.

Con un brillo promedio del 20 % y, por lo tanto, un ciclo de trabajo promedio del 20 %, eso sería el 20 % de 40,96 A, que es 8,192 A para el rojo. Para verde, al 15%, sería 6.144A y azul, al 45% sería 9.216A. Súmalos y obtienes 23.552A.

Por supuesto, esa es solo una cifra aproximada, y los números que he elegido para demostrar son probablemente total y absolutamente erróneos.

También eso supone que cada LED es una entidad separada y se controla individualmente.

Sin embargo, lo que puede encontrar es que la pantalla se escanea una línea, una columna o un bloque arbitrario a la vez, y solo una línea está realmente iluminada en un momento dado.

En esta situación, el sorteo actual en cualquier momento es el sorteo actual de la línea que se muestra en ese momento. Por lo tanto, necesitaría encontrar la línea más brillante, o cualquiera que sea la unidad MUX, y calcular la corriente solo para esa subsección, ya que ese sería el consumo máximo para su marco.

Digamos que la pantalla escanea a través de una línea a la vez: esa es una línea de 64 píxeles a la vez, por lo que le gustaría encontrar el brillo promedio y, por lo tanto, el consumo de corriente promedio (corriente máxima por LED * 64 * % de servicio promedio) para cada individuo línea de tu imagen. Luego, averigüe qué línea tiene el consumo de corriente total máximo y tome eso como el máximo para su marco.

¡Guau! Esa es una respuesta muy exhaustiva (+1). Entiendo la mayor parte. Supongo que no me interesa el brillo percibido, sino la relación entre el color y el brillo de un píxel en formato RGB88 y el consumo actual. El punto que hizo con diferente corriente por canal tiene sentido y parece que no debería convertir a un espacio de color diferente y calcular el brillo, sino mantener los valores r, g, b y calcular los valores r, g, b por cuadro en separación (ya que cada canal puede consumir diferente potencia). No estoy 100% seguro de haber entendido la última parte sobre el multiplexor y el brillo promedio por línea...
... ¿eso significa que no debería preocuparme por los valores de todos los píxeles, sino por una línea a la vez?
Depende de cómo funcione tu pantalla. Si (como probablemente lo haga) solo ilumina un pequeño grupo de píxeles en un momento dado, entonces sí, solo debe preocuparse por la imagen como secciones. Piense en ello como un televisor antiguo escaneando la imagen: solo se ilumina un punto, pero la persistencia de la visión hace que parezca que todo está iluminado. Con una pantalla LED, puede ser una línea completa la que se ilumina en un momento dado, o parte de una línea, o un bloque de píxeles; tendrías que consultar el manual para que la pantalla lo sepa.