Comment on How can I implement video processing on my FPGA
Lee@retrolemmy.com 16 hours ago
Outputting to VGA with an FPGA is fairly easy, but depending on what you mean by “image processing”, this may be too big of a project given you’re the only hardware engineer or maybe all you mean is to take the video input and output it to VGA without any further processing. You did mention wishbone, so I guess if you’re planning to reuse a bunch of Open Cores, that could simplify some things.
How much RAM do you have on your dev board? How long of a video do you want to do?
USB2 is fast enough for uncompressed 640x480 @ 24 fps @ 24bit color: 640 * 480 * 24 * 24 = ~177Mbit/s (plus misc overhead) USB isn’t so bad to get working on an FPGA dev board (I didn’t see you mention which you’re using) as it probably has a transceiver chip already along with drivers available. Even if not, you could add a cheap USB interface chip (FTDI makes some popular ones, but there’s many others like CP2102, etc). I’d not try to do more modern USB (3+) as it’s not needed, but also higher speeds bring more problems. I’d actually try lower quality video (lower res, framerate, and not 24bit color). As you increase the amount of data you need to transfer, you have more potential for issues related to buffering the video (and the extra memory required) or timing requirements (ensuring the video is arriving by the time it needs to, but not too much before).
If I’m understanding your main concern, it’s how to get the video data in to your hardware? Generally:
- camera module (that outputs uncompressed image/pixel data, idk how difficult these are to get running, drivers often abstract a lot of complexity)
- video stored on memory chip like an eeprom (may be impractical given size)
- storage device like SD, compact flash, or even an IDE hard drive (idk how difficult SATA is to work with). if you go this route, I recommend avoiding file systems.
- stream over USB2 from a laptop (whether it’s pre recorded file, built in camera, some USB camera or capture device kind of doesn’t matter from your hardware perspective)
Other communication interfaces (like ethernet) are probably going to be a lot more effort although I’ve seen a serial to ethernet interface that worked similarly to those UART <-> USB chips. idk cost or how easy they are to use though.