Hello, I am currently working on a project using the Omnivision OV6620 CMOS color image sensor (the same one used by the CMUcam). I have the OV6620 interfaced to an Atmel AVR microcontroller, and I am able to extract images from the camera and display them on a PC (through a PC app I wrote...the images get sent up over the serial port).
Anyway...my question has to do with the Bayer image format used by the camera. The datasheets claim that the camera is a progressive scan camera (some of the later models such as the OV7620 offer both interlaced and progressive). However, there is an FODD output of the camera (which is used to indicate when the "odd" portion of the frame is being output). Further, this output toggles with every tick of VSYNC (vertical synch pulse), which would seem to indicate that the camera is really doing an interlaced output. The datasheet even makes mention in its register definition section of several things that are active in only progressive or interlaced mode. Also, the first Note on page 20 of the data sheet makes reference to the Even/Odd field timing when interlaced mode is active, and my oscilloscope shows the same timing pulses as they mention for interlaced mode.
Incidentally, I am using the camera in its 16-bit mode, utilizing both the Y and the UV busses of the camera. Thus, for each tick of the pixel clock, I read one red and one green (or one green and one blue) pixel, depending on where I'm at in the current line. This is different than the CMUcam, which uses the 8-bit mode.
This whole thing is causing my headaches because the color images I am extracting from the camera are not quite right. For example, when I hold a red object up to the camera, the image I capture with it has green lines every fourth line that shouldn't be there (I believe my display code thinks that green pixels should be displayed for these lines, but is somehow out of synch and is reading red values, thus ending up with bright green lines). I've viewed both the raw Bayer data as well as a bi-linear interpolation of the data (to smooth things out) and neither looks quite right.
One possible culprit is that I am sampling a line of pixels (actually, two lines of pixels), sending them up over serial, waiting for the next frame, sampling the next two lines of pixels, etc...which is why I am wondering if there is something I'm not understanding regarding the possibility of the images being interlaced.
Are there any OV6620 experts out there? I've emailed Omnivision but haven't heard back from them. If they only knew...oh well...
Any help would be appreciated. I'd be more than happy to give as much detail as needed regarding this project if someone could offer some help.
Thanks in advance!
John