Algunos antecedentes rápidos:
Ambilight es un sistema en algunos televisores Philips que analiza la información de color en la pantalla y luego configura algunos LED en la parte posterior de la pantalla para proyectar el color de la pantalla en la pared. Es un efecto bastante ingenioso. Ahora hay clones de este sistema que usan una PC para procesar el video y controlar los LED. Encuentro que esto es un poco exagerado: usar una máquina completa para bailar algunos LED ...
Me gustaría modificar el NeTV de bunnie para procesar un encriptadoEl video HDMI alimenta y maneja algunos LED. Sé que el NeTV ha sido diseñado para otros fines, pero creo que se puede modificar para lograr mi objetivo. No me importa el subsistema Linux subyacente, la suplantación de identidad I2C, la superposición de video, etc. En este momento, no me preocupa trabajar con transmisiones cifradas HDCP.
Diagrama de bloques de FPGA
Este es un diagrama de bloques de una de las diapositivas de presentación de bunnie.
El resto del conjunto de diapositivas está aquí .
Esta diapositiva parece implicar que los píxeles de video están, de hecho, decodificados (no necesariamente descifrados ) .
Finalmente ... algunos de mis pensamientos y preguntas:
¿Se puede hacer esto en mi hardware deseado? Si "sí", ¡continúa! Si "no", ¡dime qué más necesito!
¿Podré procesar información de video sin memoria externa? No hay memoria a la que el FPGA pueda acceder directamente, por lo que puedo decir. Esto probablemente depende de qué algoritmo use para procesar los datos de video: para usar la menor cantidad de RAM de bloque FPGA posible, supongo que me gustaría usar algún tipo de 'suma iterativa' de los píxeles que entran, en lugar de almacenar un todo marco de datos de imagen y luego promediando los colores. ¿Alguna pista con respecto a la implementación de este algoritmo? Cómo comenzar con esto es mi mayor obstáculo.
He investigado el código fuente en cuanto a dónde debo 'aprovechar' los datos del video.
Este parece ser el lugar apropiado:
lo sé, esta imagen es larga, es lo mejor que puedo hacer al mismo tiempo que la hago clara para leer. ¡Culpa a la herramienta de Xilinx por eso!
Esto parece incluir los datos TMDS y la salida de 8 bits para cada color.Debería tener algún tipo de máquina de estado para el controlador LED: en cada ciclo de reloj, obtiene la información de píxeles de cualquier módulo que cree para procesar los datos de video.
Lo siento si esto es extenso o largo, estoy tratando de ser minucioso ... Solo necesito ayuda para despegar con esto. Este es mi primer intento en un proyecto de FPGA, algunos pueden decir que es demasiado difícil para un principiante, pero yo digo ... tengo que comenzar en alguna parte :) Gracias por leer.