Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers

Save Video

Altera_Forum
Honored Contributor II
1,038 Views

Hi~ 

 

I want to save my video to SD card. 

I don't need to high frame rate, and I can use any video format, so far as I can save it. 

Is there any fast way or reference design to make it? 

 

 

Thanks for your advice.
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
203 Views

I'm sure there are video encoding / video streaming pipeline interface reference designs or IP cores, 

and there are SD access IP cores and probably reference designs too. I don't have specific recommendations on particular SD / encoder offerings, but some options are easy to look up on the website and in the IP directory.  

http://www.altera.com/products/ip/dsp/image_video_processing/ipm-index.jsp 

http://www.altera.com/products/ip/peripherals/ipm-index.jsp 

http://opencores.org/projects 

 

Of course this is the Altera forum, so I'm sure you have some reason to be choosing such a FPGA platform. Nevertheless, since you mentioned wanting fast ways to accomplish the task, and the task as you've defined it is very much an "off the shelf" sort of thing, it seems worth mentioning that most multimedia oriented SOC "hard" processors (as opposed to FPGAs) now have both multiple fast SD card interfaces and often video encoding accelerators (MPEG / H.264 / ...) built into their CPUs/GPUs, and very inexpensive development boards with these capabilities and ready to run software like LINUX / Android are very common. The DRAM and boot flash memory storage interfaces are of course provided "ready to go" as well. 

 

I suspect that it would be easier / faster / less expensive for the SOC development hardware & IP/SW and higher performance to look at one of those sorts of solutions, say with an ARM Cortex A8/A9 rather than trying to cobble together SD I/O / video encoder IP cores, get a custom FPGA PCB layout done, maybe do any required software in NIOS and an OS, etc. The MX53 quickstart board, the BeagleBoard, PandaBoard, CraneBoard, LeopardBoard all come to mind as possible open source / open hardware reference designs some of which likely have one or more SD cards supported as well as various possibilities for ARM software or VPU/GPU hardware encoder accelerated video input / encoding / output support. I'm pretty sure they're all in the $100-$200 range for entry level reference design dev-kits, and at least some would do what you've asked for more or less out of the box -- software and hardware. I'm sure a Cyclone III/IV/V could work (at lower performance for very advanced encoder algorithms) too, but it seems like it'd be a bit less fast/easy vs the CPU options even if using commercial SD I/O and video encoding IP cores / reference designs. The AMD Fusion based embedded and industrial oriented SBCs and chips ought to do this sort of thing easily as well, though at a higher size / performance / power / cost level relative to Cyclone / ARM CORTEX A9. 

 

The problem with SD card I/O is that it is only a few megabytes per second write speed at best using average cards, and the common capacities are only several gigabytes, so it usually pays to do fairly high compression encoding if the source has relatively high resolution / color depth / frame rate, and the best of such encoding algorithms typically run faster / better and more cost effectively in dedicated silicon rather than in soft-hardware / software. Actually if I recall correctly there are even commodity dedicated digital camcorder chips these days that encode video and can easily be coupled to save to something like SD card or USB flash. 

 

Actually some of the digital camera sensors themselves can put out very simply encoded outputs like MJPEG or such, at which point even a CPLD could be used to interface the streaming encoded 'video' output from such a sensor to a SD card, though typically a distinct encoder chip would give better video encoding, and that's the 

sort of thing the camcorcer chipsets are targeting.
0 Kudos
Reply