FPGA Portable video recorder?

Requests, not necessarily related to fpga4fun...

FPGA Portable video recorder?

Postby LD_Out » Wed Sep 08, 2010 2:49 am

Hi everyone, I am new here and I dont know if this is the right place to post this, but I was suggested by Jean Nicolle to come here for assistance and hoping that you lot can help me on something that I have originally ask Jean Nicolle themselve. Also I would like to apologize in advance for my ambitious target and lack of knowlege in this area, but as what fpga4fun.com has described I believe an FPGA could be the solution, thus please forgive on this :D Just want to be honest.

Now, from what I've gathered and if i am correct, FPGAs are used in almost every electrical equipment that has logic behind it. I am emailing you because I (and possbly a few others) was wondering if you can help me out with something relating to FPGAs as there is something I would indeed very much like to create BUT I believe its more complex or complicated to do and was wondering if you can help me on this.

What I am aiming to create is a portable recorder, meaning a portable device that receives digital video data for it to be coverted (via internal encoder) by the device to a specific fileformat outputted onto a hard drive. The device is to be designed to handle large data input and to convert this video in realtime.

That is more or less the basic function I am aiming for speaking in simple terms (just worried some of you might not understand video technology, but please let me know of your knowlege on this :D ), I hope you can understand what I am talking about, I wont say much for now but the reason why I was lead here was because after discussions on creating such device as mentioned the one thing that was brought up was a 'Field-programmable gate array', this has lead me into doing small research and thus it lead me to fpga4fun.com (that also says that FPGAs was expensive and not an easy thing, but your claim states otherwise because of the era we are in now) and eventually here to this forums :D

Sorry for this being slightly lengthy (i like going into detail :D), I hope you are not put off by it, hahaha, but I would really really appreciate it if you can help me on this, I know it sounds very ambitious (especially for me as I do not know very much of programming) but it would actually be of great help not only to me but for others and I am trying to see if this is possible.

Thanks for your time, I look forward hearing back :)
Posts: 7
Joined: Tue Sep 07, 2010 8:50 pm

Postby Case23 » Wed Sep 08, 2010 8:27 am

hi LD_Out,

welcome to the world of fpgas :)

first of all, you are not correct :) . fpgas are used today almost only in prototypes because they are to expensive for a mass product.

For your project an fpga seams a reasonable choise. I guess it will be a lot of work (especially the video encoder) and it will be average to hard work, which depends on what kind of video signal you want to process, vhs quality or 3d 1080p HDTV .

knowing only a bit about writing software is the best point to start writing hardware (very good software engineers are bad hardware engineers)

you will get a lot of help if you have a problem to solve, but none if you have work to do :)
Posts: 75
Joined: Wed May 19, 2004 9:41 am

Postby LD_Out » Fri Sep 10, 2010 12:59 am

Hi Case23,

thanks so much for the warm welcome, and also thanks for the correction as well :D Althpugh understandable, if one was to make a fully functional FPGA in the prototype stage, could it be 'professionally' manufactered from the same design but onto an actual circuit board?

And yes, i did indeed think FPGA's would seem like a reasonable choice, I am very glad and greatful to finally find out that FPGA's could make it a possibility and at the samr time, yes it will be alot of work, however at the moment i am merely asking for a basic function.

To answer your question, the kind of signal it will be fed will be direct from the HDMI port of a camcorder, so therefore it will be pure uncompressed footage and no, not 3D 1080p, hahaha. What I am asking for, depending on the camera, one should be able to have the footage taken straight into a hard drive as uncompressed footage, OR (preferably) in Cineform RAW which would involve some video encoding and would need a CPU implmented, all via. Real-time. That is the basic function.

Writing software would probably be the best point to start, from what I'm asking should in theory be quite simple as it's not really doing anything too much other than that.

As I have mentioned I do not know very much of programming, thus why I am seeking help here, but I would indeed contribute as much as I can and try not to ask too much :D But really thanks for your post and I look forward hearing back once again! :)
Posts: 7
Joined: Tue Sep 07, 2010 8:50 pm

Postby LD_Out » Thu Oct 28, 2010 11:55 pm

bump! :D

anyone at all may i ask? :)
Posts: 7
Joined: Tue Sep 07, 2010 8:50 pm

Postby rberek » Fri Oct 29, 2010 4:40 pm


I think the reason you are not getting much response is that, in spite of your assertion that you like getting into detail, you have actually given us almost no detail regarding what you want to do!

You mentioned in very general terms that you need to get HDMI input from a camera, encode the real time data, and store it on a mass storage device. That is a very high level description with no detail really at all. You don't tell us the bandwidth of the signals, the types of interfaces you'd like to use (other than HDMI), you don't mention the encoding algortihm(s) you'd like to use, how you want to store the data on the disk, or how you want to play it back, or how this device is to interact with the user.

You also give little hint as to your abilities in electrical engineering. You mention you don't know much about programming, but you don't tell us if you know much about hardware design either. If you do not know much about either, recruiting people to work with you will be difficult, as they will be doing almost all the work. If this is a hobby project, and someone with knowledge found the idea interesting, they'd just go off and design it themselves, as you would be contributing little. If this is a commercial idea, then that person would want to be paid.

If you do know some hardware/software engineering, then, as Case23 pointed out, you will be expected to start working and ask fairly specific questions about your work.

More to the point though, this would be a complex project for an experienced person. HDMI is a high speed 10Gbit/s interface. Working with this at a PCB, interconnect and FPGA level is complex. I design ASICs and FPGAs for systems that use interfaces of this and faster bandwidths, and it takes a team of people just to get the interface working correctly.

Then you mention real-time video encoding. A CPU probably won't cut it at higher data rates. you'll have to hard code your encoding algorithm. Again, something that is a lot of work for even an experienced FPGA designer to do.

Storing data on a hard drive is a bit easier, but here is where more info would be required. If you are truly using the entire bandwith of the HDMI interface, you'll have to come up with an encoding scheme that reduces the 10Gbit/s to something more like 3-6 Gb/s, which high speed SATA drives can handle. Or perhaps you're thinking of SSDs, which have their own challenges. Then if you want to read the drive with a PC, you'll have to implement a file system (FAT, NTFS, ext3) in the FPGA, or with external chips.

And finally, there is the question of support circuitry, like power supplies, a system for flashing the FPGA on powerup each time, glue logic, analog components, LCDs, etc. This will require a lot of diverse knowledge to implement.

I have outlined the worst case, but without more details, I have to assume the worst.

This will be a lot of work, and if you want to design it, you'll have to do a lot of research and learn a lot of new things. I'm just letting you know that you've picked quite the project for your first crack at FPGAs. If you are unable to do most of the work, then don't be shocked that few will step up to help you, as it is a lot to ask of a total stranger.

However, dreams are good things to have, so perhaps you could give all of us more detailed requirements on the system you want to design. Hopefully you've got a better idea of what you want to do over the last 2 months.

And, as an aside, Case23, I don't agree at all that FPGAs are only used for prototypes. If that were the case, then the FPGA industry wouldn't be a $3B dollar industry, and ASIC starts wouldn't have dropped to 1/3 of what they were 10 years ago.

I can tell you that my company ships millions of units which have FPGAs and ASICs and microcontrollers/processors on board. Each have their own uses. Individual FPGAs might be expensive, but an ASIC might take 200 man-years to design and $3M dollars just for the mask set. This is a huge barrier for entry in these economic times. Plus, FPGAs are great for implementing algorithms and features that might change over time.

Posts: 65
Joined: Wed May 23, 2007 5:32 pm

Postby LD_Out » Sat Nov 20, 2010 5:48 am

Hi rberek, thank you so much for replying this has helped greatly, I also would like to sya sorry for the late reply and sorry once again that I havent actually given the almost no detail regarding on what I want to do, so I will try my best here to fulfil those, of course hoping to hear back at the same time :D

As from what I said and you've reiterate, to elaborate sightly, I am wanting to feed live video from a HD camera to be stored on a storage device, inbetween the two, there most likely be a process of encoding which would require somesort of CPU, but at the moment I am looking at for it only to be wrapped into a file format, thus the processing might not need to be that heavy.

Now for you lot, the bandwidth for thr HDMI 1.3 specification is at 340Mhz (10.2Gbit/s) and its highest resolution it can handle is 2560×1600 at 75fps. There is now the either upcoming or already in use a version 1.4 which is similar in terms of the interface but is adapted to go for 4096×2160 resolutions at 24p.

All of these signals are for uncompressed video which means it merely doesnt have a file format i.e. RAW, therefore that's where somesort of processing would come in. Now, whilst taking in uncompressed video to a hard drive does not require any sort of encoding and thus not dealing with any processing, because of its raw state it needs to be contained in a certain file format OR somesort of compression is needed but at the same time retaining its desired quality. Encoding with a codec that compresses highly willindeed require some heavy processing power, therefore a suggested codec I would like to mention is the 'Cineform RAW' which is a light wavelet codec and whilst it still compresses it is visually lossless, it is optimized for fast CPU performance and can handle 4K resolution video up to 35MB/s.

Because dealing with 'complex' tecnicals here, I was told by another user on a camcorder forum regarding creating a FPGAs, he mentions (and I quote) If you want uncompressed video, it really isn't all that hard. Just tie a HDMI interface like the AD9398 (if you want 8-bit), AD9984A (10-bit), or an ADV7604 (12 bit) and pump it into a FPGA. Inside the FPGA you process the video however you need to then you set up a number of buffers for the number of drives you want so that the card or drive will always complete the write before the buffer fills (Flash is better for this as you don't have to deal with seek times) past that you set up a interface to the media.

With thaty said, this should make sense to many of you, also this should potentially deal when using the entire bandwith of the HDMI interface, and the encoding scheme i.e. Cineform RAW codec is what will reduce the 10Gbit/s to something more like 3-6 Gb/s of what a SATA hard drive is. In regards to the storage medium of the Hard Drive, they will be formatted to NTFS so they can be accessible to a PC and mainly ecause of their ability to have filesizes over 4GB, this is very important when it comes to video, especially if one wants to record at an incredibly high resolution which at the same time produces large files themselves :D

Of course there would have to be somesort of interface to overview what one is doing exactly, i.e. an LCD screen, but it merely is just a very simple interface, so long its able to detect that there is a video signal, a timecode with additional metadata information to be set when booting the device first hand, Battery remain and most importantly to display wheather the device is on Record or not :D A few simple buttons to navigate through all this (a one strip LCD screen) might do?

As for power, I have not exactly thought this one out, but it definately needs to be able to power a hard drive to last for a few hours and the device itself, most likely it will be an external source.

Whilst I totally understand about recruiting people to work with and inwhich will be difficult and probably be doing almost all the work. It is a hobby project and if i had the knowlege then I would certainly go off and design it myself, my abilities in electrical engineering, I have stated I do not know much about programming, the same unfortunately goes for hard design all in relation to FPGAs, my main knowlege relies on the video technicals which I will always do my best to help out and as I menntioned that even though it's a hobby project, this would benifit me (and otrhers) greatly for the long term and I will be ever so appreciated to anyone who will like to help me out, I am only just a non-working (full-time) student and but I am willing to pay what I can for this project as I am ever so greatful.

The information I provide this time should hopefully give a clear or better idea what I'm seeking and wanting, but to you rberek, I like to thank you so much for posting here with alot of information which I was not totally aware of in the first place and has indeed helped me as well and I hope to hear more from you again very soon. It is indeed a dream of mine (probably because of its great potential benifit towards me), I hope what I have mentioned here helped, of course it took me awhile as I had a few things going on here (sad times :( ) but that doesnt mean I lost interest or neither does it mean for delayed responses too, I will be here more frequently hoping to hear more from you and others :) In addition, if there is anything that I have missed on detailing requirements on the system that is to be designed, please let me know (maybe a bullet point list of things you want to know will help) and once again I'll do what I can.

Thanks very much, please dont be put off from this long reply, it was quite difficult for me but managed to do so :) Hope to hear back.
Posts: 7
Joined: Tue Sep 07, 2010 8:50 pm

Postby LD_Out » Thu Feb 03, 2011 8:16 pm

To slaute, I am very glad to hear someone also here is interested as well on what I'm wanting to do very soon, and I assume we both know that this would also benifit a few others as well if we can get this going very soon :D

I have checked your link, and whilst it was abit hard to understand I have done alittle more research on it and discovered that whilst it's good, it can only process video signals at up 1080p whereas I am wanting to record at a resolution of 4K (4096×2160) which yes (again) would need components to handle this kind of bandwidth and an interface to carry this aswell i.e. HDMI 1.4.

If anyone here, like user rberek, can provide me somesort of list that would enable them to understand what I'm asking for in technical terms, please let me know asap :D I have also a much firm and better idea what I am wanting, but doesnt mean it would be anything more complex, hehehe :D
Posts: 7
Joined: Tue Sep 07, 2010 8:50 pm

Postby LD_Out » Wed Feb 23, 2011 6:39 am


anyone at all may i ask? :D

I would really like to try and get this going through, and again I would really appreciate it if anyone can help me on this. Possibly, can anyone give me a small list on what they need to know before this progresses? :)
Posts: 7
Joined: Tue Sep 07, 2010 8:50 pm

Postby rberek » Wed Feb 23, 2011 10:12 pm

Sorry my friend, I have 2 very large FPGA and ASIC design projects going at work and another large design project on the side. I do not have any time to help you in your design. But I wish you good luck...

Posts: 65
Joined: Wed May 23, 2007 5:32 pm

Return to Help requests