brian@sdcsvax.UCSD.EDU (Brian Kantor) (01/10/88)
One way to do this is rather old technology - there are several on the market that do just this: Use a level detector and a couple of counters to count bits from the horizontal and vertical sync pulses, then when you reach coincidence (use a comparator) with a register for the current-cursor-position (stored in a latch), you use a sample-and-hold and digitize that with a nice slow A/D converter. When the conversion finishes, you store that value and update the current-cursor-position latch to the new screen location you want to digitize. This is slow for doing a whole screen at a high resolution - about 8 seconds or so for 256 x 256 with a 4MHz Z-80 - but it can give you real nice control over what area you want to digitize and it can be really fast if the area is small. The grey-scale resolution is up to you - just use whatever size A/D you want. Faster A/D converters will give you faster frame conversion. Only real drawback is that the video image and digitizer clocks must be rock stable, so real-time work is out unless you have an incredibly fast processor and a flash A/D converter. A couple of years ago we bought a product called the "Digisector" made by The Micro Works in Del Mar, California that works pretty much this way. For about $300, we got a 256x256x6 digitizer that takes in RS170 monochrome video, which I think was a pretty good deal! I'm told they have a new version that can grab and digitize an NTSC frame in colour on an IBM-PC card, but I've not yet tried one. Brian Kantor UCSD Computer Graphics Lab c/o B-028, La Jolla, CA 92093