Editing OpenHDCapture
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
== Description == | == Description == | ||
− | This project will capture High Definition Video 1280x720 at 30fps, and hopefully be capable of 60fps and maybe even 1080p. I intend to use a cheap FPGA, A HiSpeed USB PHY, and an Analog Devices Video A/D chip. I will nail down exact chip numbers later. The target platform driver and example code will be written for | + | This project will capture High Definition Video 1280x720 at 30fps, and hopefully be capable of 60fps and maybe even 1080p. I intend to use a cheap FPGA, A HiSpeed USB PHY, and an Analog Devices Video A/D chip. I will nail down exact chip numbers later. The target platform driver and example code will be written for linux. This project is more a proof of concept and more for fun and excercise rather than to be practical. But I will take any advice and help that I can get and who knows what we might create here. Entire BOM should be less than $40 but we'll see. |
Yes I know about the Hauppage HD-PVR or whatever its called that Capures Component video at 720p. The problem is that device uses H.264 encoding, which is just way too expensive to decode, it takes a Dual Core 1GHz Machine at 99%. It is also not totally open to hacking. | Yes I know about the Hauppage HD-PVR or whatever its called that Capures Component video at 720p. The problem is that device uses H.264 encoding, which is just way too expensive to decode, it takes a Dual Core 1GHz Machine at 99%. It is also not totally open to hacking. | ||
− | + | == Current Status == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == Current Status | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
I am in the planning/brainstorming stages, although I have been researching this for at least the last 6-8 months. | I am in the planning/brainstorming stages, although I have been researching this for at least the last 6-8 months. | ||
− | I have a working Forward/Reverse | + | I have a working Forward/Reverse DCT algorithm in matlab that can compress an image 5:1 with little loss in quality. I have also done much research on putting a DCT in hardware. Currently the DCT will be broken down into 2 stages, and all multiplies/adds will likely be done using a very parallel bit-wide pipeline to keep clock speeds high. |
'''Data Bandwidth Issues''' | '''Data Bandwidth Issues''' | ||
[http://en.wikipedia.org/wiki/YUV YUV422] 720p data comes in at roughly 1280*720*30*16 = 443 MegaBits/s. HiSpeed USB is 480Mbits/s which, after taxes, is probably not enough. Note that 720p60 is twice that. Either way using the DCT and some Huffman coding along with other simple compression techniques we can squeeze the data down a little without hurting quality too bad. My goal is to get it down to 150Mbits/s | [http://en.wikipedia.org/wiki/YUV YUV422] 720p data comes in at roughly 1280*720*30*16 = 443 MegaBits/s. HiSpeed USB is 480Mbits/s which, after taxes, is probably not enough. Note that 720p60 is twice that. Either way using the DCT and some Huffman coding along with other simple compression techniques we can squeeze the data down a little without hurting quality too bad. My goal is to get it down to 150Mbits/s | ||
+ | |||
== Improvements == | == Improvements == | ||
Line 70: | Line 20: | ||
− | == | + | == Hardware (Under constant review) == |
− | * Spartan Xilinx FPGA | + | * Spartan Xilinx FPGA |
− | * HiSpeed USB PHY like the | + | * HiSpeed USB PHY like the USB3318 |
− | * Analog Devices Video A/D chip similar to an ad9883 | + | * Analog Devices Video A/D chip similar to an ad9883 |
− | + | ||
== Software == | == Software == | ||
− | An example program will be written using the SDL library. | + | An example program will be written using the SDL library. Linux Drivers will likely use libusb unless I have to go lower level. I am newb to Linux kernel drivers but I ain't scared ;) |
+ | |||
+ | Also I ain't a newb to linux or programming, just haven't written a driver yet, other than one for a parallel port a while back but that was for a simple I/O project w/ a PC. | ||
+ | |||
== Current Plan of Action == | == Current Plan of Action == | ||
Line 91: | Line 44: | ||
'''Phase 3''' | '''Phase 3''' | ||
* Profit! | * Profit! | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |