Forum Discussion

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

Camera Design

I am working on a project that involves inputing data from 3-6 machine vision cameras (6 monochrome or 3 color) performing some basic image processing on the streams from the cameras and then saving data out to storage. The cameras need to operate with video frame rates. I was just wondering if I could get some suggestions on if this is even possible with FPGA, or what kind of hardware could be used to accomplish this.

Thanks for any help!

14 Replies

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

    He did specify a scaling. Depending on what kind of scaling can mean buffering is required - eg. if its camerlink to PAL or NTSC - a standard conversion.

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

    Yes. I took scaling to mean a gain factor, not a format conversion.

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

    Yes, scaling does mean just a gain factor. Would buffering be required, or could I just pass the data straight in and do the processing, which would be a matrix operation on each pixel using all 6 streams?

    Also, Figuring out where the data will go after processing is another issue I need to figure out. I basically just want to send it off to some storage medium, but because the data will all be combined at that point into a spectral estimation, which means it will have up to 30 channels/pixel, the final output will be rather large, looking at up to 1 GB/s of data. What would you guys suggest for a final storage medium?

    Thanks again for all your help with this.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Yes, the matrix operation and gain can easily be done on live video with little buffering (you'll need a few line delays, but thats fairly straightforward internal to the FPGA).

    As for output - thats a lot of data. How about Gigabit Ethernet? or PCIe?