Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
8 years ago

How to stream video (and process) into FPGA

Hi,

I want to take a camera... (IDS camera) and stream video into my FPGA.

Camera interface will be GigE or USB3 depending on FPS i will decide.

in the FPGA i would like to do (what i believe is) simple image processing of... lets say frame subtraction i.e. subtract frame k from frame k+1.

resolution: ideally i would like to work with 640x512 with 300 FPS gray scale 8 bit.

I know its a lot of data and eventually i will probably downgrade significantly the SPEC but this is the ideal parameters i would like to work with.

I have a few questions:

1. Interface: how do stream the frames into the FPGA?

what component should i look for in order to take the GigE or USB3 output interface of my camera and connect it to my board so i can do something with it?

2.I assume i will need an external DDR? can you give me some pointers on how to choose what i need and the main principle on how to use it?

Maybe 2 DDR's and erasing the older frame every a new frame comes along?

3. can you give me an advice on which FPGA should i choose? i worked mainly with LATTICE so far and want to cross to ALTERA.

4. any suggestions/ reading material/ comment will be most welcome

Thanks!

21 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    1. Forget about USB, especially USB3. It is very complicated to implement or the core would be expensive to purchase. Also, its not really a video interface. When you mention GigE, do you mean Ethernet or GigE vision? If it's ethernet, how are you expecting to stream the video into the FPGA? Any Particular video format via RTP? like SMPTE 2022-6? SMPTE 2110-20?

    You might be better off using a dedicated video link like HDMI

    2. Possibly. It will depend on what processing you're doing. If you only need to store 1 frame then DDR will be overkill - you might be able to fit it into internal ram, depending on what device you chose. Otherwise a small SRAM should suffice. But it will depend how much buffering you really need.

    3. Depends on your budget.

    4. It really depends on your skill level.