# Is it reasonable to use Ethernet or USB to input video into FPGA?

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

• This is not how you define specifications for a project. Do you have some requirements? – Eugene Sh. Aug 9 '17 at 13:41
• USB and Ethernet don't transmit "Video". They transmit a digitally encoded stream of data. – R Drast Aug 9 '17 at 13:46
• @R Drast. I know they transmit data. My question is if they transmit data fast enough and the extra steps you need to take in order to encode and decode the data at the source and the destination is worth svaing $300. – Alireza Aug 9 '17 at 13:56 • Ignore the pedants, we know what you mean. Yes, it's perfectly possible and reasonable, I've seen it done very successfully with Ethernet. – DiBosco Aug 9 '17 at 13:56 • @DiBosco You can call me pedant (well, I am), but starting the design from this point is just wrong. Realtime processing of HD video data has to be defined from the aspect of the processing power at the very first place. And the factor setting the price will be this power, and not the interface. – Eugene Sh. Aug 9 '17 at 14:26 ## 2 Answers 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. • In addition to this, if cost is a major factor, it seems that cards with multiple HDMI interfaces are currently significantly cheaper than boards that support 10 G Ethernet or USB 3 – alex.forencich Aug 9 '17 at 19:42 Of course, it is possible. You have to implement USB/ETHERNET interface on your FPGA (or purchase the IP, though it is cheaper to buy a board) and also develop some custom IP (or a program if you use ZYNQ or Mircroblase) to convert input data into the pixel stream. From there on, you can use a standard approach for developing image processing IPs. • Is developing the interface straight forward for someone who doesn't have much experience with FPGAs? – Alireza Aug 9 '17 at 14:02 • I think developing anything on the FPGA is extremely difficult for someone who has little experience. Even getting to work "ready" examples is quite challenging. I also think that a$150 FPGA board will probably have Artrix smallest PL (if you mean Xilinx products). And this may be limited to the amount of resources needed for your image processing. – Nazar Aug 9 '17 at 14:06
• Realtime HD video processing (even the lightest one) with a \$150 board seem unrealistic to me. – Eugene Sh. Aug 9 '17 at 14:22
• @EugeneSh. I agree. It just depends on what exactly means "light" processing. – Nazar Aug 9 '17 at 14:25
• @Naz By light processing I mean edge detection which is basically first turning into grayscale then 3*3 filtering then applying a threshold. – Alireza Aug 9 '17 at 21:31