FPGA es un dispositivo lógico, por lo tanto, tiene que alimentar su video como una señal digital. Entonces, supongamos que su sensor de imagen (fuente de video) le proporciona una resolución de profundidad de 12 bits (por píxel), 640x480 píxeles y 30 fotogramas por segundo, por lo que su velocidad de píxeles se alimenta en 640x480x30 píxeles por segundo.
Life stream es un proceso píxel por píxel (así es como se lee en el registro del sensor de imagen como una señal analógica). Luego, un ADC lo convierte internamente o externamente y termina con una salida digital en paralelo o en serie. En paralelo, lees todos los 12 bits de un píxel a la vez (a una velocidad de píxeles). En serie, puede leer 1 bit a la vez, pero 12 veces la velocidad de píxeles. Hay algunos sensores que tienen una salida mixta serie / paralelo, por ejemplo, 4 salidas paralelas que proporcionan datos seriales de 3 bits a la velocidad de píxeles. En cualquier caso, desea deserializar su señal, que generalmente se implementa en el FPGA.
Supongamos que tiene una entrada de video paralela (¿utiliza un bus de 12 bits?) y se alimenta píxel por píxel. Obviamente, para realizar algún procesamiento, debe recopilar la cantidad necesaria de píxeles, el fotograma completo o varios fotogramas, según el tipo de operación de procesamiento. Aquí es donde entran los búferes de línea (línea de imagen) y las memorias. Después de recopilar la cantidad de píxeles que realiza el filtrado / procesamiento, esta es una pregunta completamente diferente que relaciona las técnicas de implementación de algoritmos.
Sin una gran experiencia en el procesamiento de video FPGA, es difícil predecir qué tamaño del dispositivo será suficiente. Por eso, diseña la lógica y luego realiza una estimación de los recursos requeridos (usando vivado), y luego verás qué dispositivos FPGA tienen suficientes recursos. Todo esto depende de la complejidad del procesamiento del video, la tasa de bits del video, la velocidad, el paralelismo y algunos otros factores que no conozco.
Yo diría que para un principiante que escribe a mano una implementación de VHDL de procesamiento de video es un simple suicidio. Aún no he escrito nada, soy un titular como tú. La forma en que planeo acercarme es realizar primero el procesamiento de video en C (matlab), luego traducir el código a Simulink (como un diagrama de bloques) y luego intentar convertirlo a Systems Generator (un complemento de Xilinx para Simulink). Esta no es la única opción, pero para un principiante es correcto.
No para desalentar, pero 4 meses para este proyecto con cero experiencia será intenso, necesitarás un gran apoyo.
EDITAR:
La elección de la placa dependerá de los requisitos de interconexión. Por lo general, la placa está diseñada para explotar completamente los recursos del dispositivo FPGA que está en ella. Vea si tiene suficientes entradas / salidas accesibles para su aplicación, opciones de reloj maestro, presencia de SRAM / DRAM (por ejemplo, para el búfer de video), capacidad para realizar simulaciones en tiempo real.
La elección del FPGA depende de muchos factores específicos de su aplicación: lea la última oración del párrafo 4. Después de que tenga una descripción de sus datos y una mejor definición de sus procesos de video, un ingeniero experimentado podría darle una opinión (suponga) si un tablero determinado (FPGA) debería tener suficientes recursos para hacer el trabajo.
Sugeriría comenzar con la creación de una implementación de VHDL y luego, en función de los recursos estimados, podría elegir la placa que cumpla con los requisitos. No creo que obtener el consejo antes sea de ninguna ayuda.