Básicamente, no microcontrolador, incluso la raspberry pi, es lo suficientemente rápido. La raspberry pi tiene una GPU incorporada que genera la salida HDMI. Y aparte de eso, la capacidad de e/S de la raspberry pi es increíblemente limitado - el mayor ancho de banda de la interfaz aparte de HDMI USB. Muchos de los proyectos de conversión HDMI implican tomar otra secuencia de vídeo en un extraño formato y la reformulación de que en algo que puede ser enviado a un estándar de HDTV a través de HDMI. Esto requiere alguna especificación de interfaz de la lógica de la lectura en la señal de vídeo, el procesamiento de la señal lógica de volver a formatear, HDMI TMDS la codificación de la lógica, y luego de alta velocidad serializadores a la realidad de la unidad del puerto HDMI.
Trabajando con streaming, sin comprimir, vídeo de alta definición requiere el procesamiento de una gran cantidad de datos, algo que no es factible en una CPU de uso general. Una de la señal de vídeo de 1080p a 30 fotogramas por segundo tiene unos 62 millones de píxeles por segundo. La raspberry pi se ejecuta en 700 MHz, por lo que usted tiene, oh, 11 instrucciones por píxel. Y que del 11 instrucciones para leer en el "bicho raro" formato de vídeo en tiempo real, escalarlo, etc., etc. No es posible. Período.
En un FPGA, es posible generar una larga línea de procesamiento que puede procesar uno o más píxeles por ciclo de reloj, y todo ello en un altamente manera determinista (sin interrupciones o cambiar de tarea!) de modo que los datos de píxeles está listo para la transmisión a través de HDMI en el momento justo. Si usted ha trabajado extensamente con el propósito general de la Cpu de la ejecución de cualquier tipo de sistema operativo, usted sabrá que llegar el momento exacto en un milisecond nivel es más o menos factible, pero en un microsegundo nivel es casi imposible. Para HDMI, usted necesita nanosegundos escala de precisión. No se puede hacer en una CPU de uso general. También, echa un vistazo al HDMI de audio/vídeo para el proyecto de neo geo. Esto no sólo tiene que reescalar el video, también tiene que volver a muestrear el audio y la inserta en la secuencia de vídeo HDMI. Esto requiere de una gran precisión de orquestación para conseguir que funcione correctamente.
Y esto todavía no está considerando la lógica personalizada necesaria para leer en cualquier formato de datos de entrada que tiene. Usted necesitará hardware personalizado para interpretar este. El Software no es lo suficientemente rápido, o determinista suficiente. Usted podría ser capaz de, digamos, formatear en algún tipo de USB basado en flujo, pero esto requerirá personalizado a la lógica digital de todos modos, así que usted puede ser que también acaba de salida HDMI directamente.
Para implementar todo esto, a la lógica digital es realmente la única solución viable. Y si usted está haciendo a la lógica digital, los FPGAs son la única solución viable, ya que es demasiado rápido y demasiado complejo para discretos 7400 lógica y de ASICs son, así, varios órdenes de magnitud más caro.
Otro componente necesario de la alta velocidad serializadores y diferencial de los conductores para generar el paralelo serie de flujos de datos que se envían a lo largo del cable. No es posible bits-bang serie de datos en el orden de un gigabit por segundo de una CPU de propósito general, esto requiere hardware especializado. La raspberry pi tiene una GPU incorporada que hace esto, pero es limitado en términos de lo que la GPU es capaz de hacer, por no hablar de lo que está documentado. La mayoría de los FPGAs contener al menos la necesaria diferencial de los conductores y DDR chanclas que son suficientes para el mantenimiento de vídeo de baja resolución y hay bastante un par de FPGAs que también contienen la necesaria serializadores (es decir, Xilinx OSERDES bloques) para generar full HD. No olvides que la serie stream no es 'banda' como un puerto serie en donde los datos reales se envía verbatim con algunos encuadre de la información, pero los datos codificados con TMDS (transición minimizada señalización diferencial) para dar la señal de determinadas características eléctricas. Un poco de lógica, se requiere implementar esto en adición a la alta velocidad serializadores. Todo esto es relativamente sencillo de realizar, en pura lógica digital (así, la codificación de todos modos - serialzers son, posiblemente, análogo, o, al menos, de señal mixta) en un ASIC o un FPGA.
En realidad es una parte muy importante del total de la digital/diseño de sistemas embebidos proceso de averiguar qué partes de un sistema puede ser implementado en el software y que requieren de hardware, ya sea en forma de off-the-shelf especializada los chips, los FPGAs, la costumbre de ASICs, duro o blando IP (HDL, listas, GDSII), etc. En este caso es clara: la señal de vídeo generación requiere hardware especializado, una GPU emparejado con una CPU de uso general, un FPGA con un integrante duro o blando núcleo de la CPU o emparejado con un externo de la CPU, o algo más especializado.
Edit: me acabo de dar cuenta que el fpga4fun sitio y la neo geo proyecto de vídeo de tanto correr en 640x480 en lugar de full HD. Sin embargo, esta realidad no hacen esto, mientras que la operación mucho más sencilla. El mínimo de reloj de píxel es de 25 MHz, con un bit de reloj de 250 MHz. Esto significa que la FPGA en realidad no requiere serializadores para transmitir HDMI, sólo DDR chanclas. Esto todavía no aliviar el problema de la lectura en los datos de vídeo, sin embargo. Si quieres hacer que en la raspberry pi con ningún hardware asistencia, tendría que leer de GPIO de forma continua a 25 MHz. Que es una lectura de cada 175 instrucciones. Entrar en el reino de la posibilidad, pero la única manera en la que podría hacer que el trabajo es en bare metal (no Linux) con la mano el código de la asamblea.