Electronic – Is it reasonable to use Ethernet or USB to input video into FPGA

embeddedethernetfpga

I want to use FPGA to do video processing and I need one video input and one output. The problem is most FPGA boards have one (HDMI or VGA) port and the price significantly rises with the boards which have two HDMI\VGA.
So my question is: Is it reasonable to use Ethernet or USB to input the video from PC to the FPGA considering the extra development complexity?
Edit: The video is 1080p and 30fps. The processing is rather light. By using Ethenet, I can go from a $400 board to a $150 board and I want to develop the interface myself to save cost

Best Answer

The video is 1080p and 30fps.

So, assuming 8 bit per color channel, 3 color channels, that's

$$1920\cdot 1080\frac{\text{px}}{\text{frame}}\cdot 3\frac{\text{channel}}{\text{px}}\cdot 8\frac{\text{b}}{\text{channel}}\cdot30\frac{\text{frame}}{\text s}\approx 1.5 \,\frac{\text{Gb}}{\text s}\text.$$

That's more than Gigabit Ethernet can carry.

So, no, that's not possible with what you'd call "Ethernet", unless you compress the video, but then you need to do HD video decompression (and probably compression) on the FPGA, and that is not what one would call "light processing".

1.5 Gb/s is also faster than USB2 can work.

Thus, you're either up for USB3 or 10 Gigabit Ethernet. Both very complex buses, and I can't recommend integrating either in the first FPGA design you do – and based on the lack of concept in how you're trying to specify your project, I guess this is your first serious project.

HDMI/DVI/DP isn't all that complex a bus, if you restrict yourself to only one frame format. There's open source projects that implement that, so having an FPGA with such an interface built yourself sounds more promising than going for an universal bus.