I'm trying to create a project where the arduino has an input of either composite video or component video and determines if there is movement on the composite/component video. I assume this means variations in signal level. I do not have a good understanding of how composite or component video actually works, so i need some suggestions on how to start investigating. Everything i've come across online seems to be for composite video out from the arduino. I need to get it as an input. Does anyone have a suggestion of how to do it, or what hardware/chip i may need to interface the arduino to the signal?
May not be suitable due to the bandwidth (speed) of video being so much greater than what an Arduino can handle.
(A) use external video processing chipset, in which case the chipset will be so much more powerful that Arduino becomes irrelevant.
(B) simple detectors to extract average chroma and luma, in which case youre treating the entire video as a single pixel and waiting for brightness or color to change. It would be a poor kind of machine vision indeed.
I don't need a high bandwidth sampling, i'm basically trying to make a box that i can connect to the video out of a cable box and monitor to make sure the channel is still playing. When the screen either goes black or the picture freezes, i want the arduino to output a signal for alert. this will scan through all channels on the cable box and alert when one channel is not working. I was thinking of maybe having it sit on a channel for 5 or 10 seconds to determine if the picture is frozen (full black screen would also be considered frozen). I figured if i can get some sort of a baseline value plus or minus a threshold, i could determine if the channel is working or not.
The eye shield looks interesting, and i think it may do for my needs, but i don't need a high resolution or high speed, i'm mainly looking for if this signal doesn't change more than X amount in Y amount of time, alert me. The AD811 is the most expensive piece of this being $7 each and you need 3 of them. Much more than i was expecting to pay for them, especially since the author used it for PAL and i need it for NTSC, so he stated it should work for NTSC but wasn't sure.
Being that i don't need a fast sampling, does anyone have any other suggestions?
Thanks for the input. I guess i figured that since i don't care if i get 20 samples per second or 1 sample every 10 seconds i assumed it was not high bandwidth sampling.
i don't care if i get 20 samples per second or 1 sample every 10 seconds i assumed it was not high bandwidth sampling.
An even bigger barrier is that the arduino does not have near enough SRAM to hold even a single image to be compared with the next image to detect a change, no matter how slow a sample you take. Wrong technology.
Lefty
You said it doesn't have enough sram to store the image... if i take the concept that the Eye Shield has on his first example video where he has the image output on an 8x8 led display, would that not work, and only have to store 16 data points per image?
You can afford something on the order of 512 bytes of image data. My personal opinion is that you want more than one bit per pixel, or it would be too difficult to decide if there is motion, or just a subtle change to lighting.
You could do 3 or 3-1/2 bit A2D by having 8 or 10 comparators running against the video signals, comparing to different pre-set levels. Then getting a sample means reading the values, doing a lookup to a table (in progmem) and you have your sample.
As the samples come in, compare to the one you have from the previous frame, then use some algorithm to count the differences -- you can have a level threshold and pixel count threshold. Simultaneously store the incoming pixel back to the frame buffer. All that should take just a few hundred instructions.