From: schultz@halley.est.3m.com (John C. Schultz)
Subject: Re: Datacube
In-reply-to: mjb@mulka.ph.unimelb.edu.au's message of 21 Jul 92 03:03:29 GMT
Organization: 3M Company, 3M Center, Minnesota, USA
Date: Wed, 22 Jul 92 01:05:28 GMT

In article <2768@ariel.its.unimelb.EDU.AU> mjb@mulka.ph.unimelb.edu.au (Michael Beeching) writes:
...
   1 digimax - video acquisition and display module

Simple board to program.  Able to change output colors at frame rates (or
better) and also inputs.  TV RS170 (or equivalent PAL) only however.

   3 roi boards - frame stores

If you mean a FRAMESTORE board, the FRAMESTORE is simply 3 512 x 512 buffers
which can store RS170 data.  The FRAMESTORE is relatively easy to program.
Switch between storage banks at frame rates to average.  Just store the last
image to get a nice difference operation.

If you mean the ROISTORE (.5MB or 2MB) programming is a LOT harder.  You not
only have to control acquisition but also the data format, the length, the
interleave (RS170) and the operation of an 8 way cross-bar switch.  Relatively
difficult, particularly for RS170.  Accounting for processing delays is
potentially easier but in practice more difficult - you always lose an edge of
the image someplace.


   2 max sp's - real time signal processing module

MAXSP's are kind of cute.  Use the FRAMESTORE to feed the current and the old
image, add, right shift and you have what we call a "manager detector" - you
have to be stationary for 5-10 seconds to "appear" on the display.

Subtract the current and the previous image and you get an "engineer
detector" - a motion detector.

   1 feature max - feature list extractor and histogramming functions

The featuremax is ralatively simple in concept but indecently difficult to get
triggered correctly.  Many bugs in these boards.  Many versions.  The best
thing we found was to ignore single-shot mode and let it free-run and just
stop it during vertical blanking.  Histograms are pretty simple but the data
needs to be formatted in software.  Feature lists are limited by how much data
you can read out during vertical blanking.  It is faster to use the CPU to
write 0's to the histogram than have the FEATUREMAX do it.

   (plus software and the max box they all go into :-)

The software may or may not be worthwhile.  MAXWARE was generally considered
worthless because of bugs although some companies (Innovision perhaps?) fixed
the bugs and got proprietary versions working.  IMAGEFLOW is apparently much
better but I have no first hand experience with that.  We made our own
environment for interactively programming the earlier boards as did most of
the people using the early Datacube hardware.


	   I am a decent programmer (well its about all I do all
   day) but I can't seem to get around to reading/understanding the
   manuals as I have never done anything of this nature before.
   (a fast approaching PhD due date doesn't help :-)
   At present the boards are used to simply grab images from a camera
   and then "real time" FFT's are performed (by an array processor
   not the datacube boards!) this seems like a bit of a waste, so any

No way, no how do these boards do FFT's.  Datacube made an abortive attempt at
fast, general computational boards able to "do" FFT's with something called
EUCLID - an ADSP 2100 advertised with a MAXVIDEO buffer.  Not recommended but
we have two if you are masochistic :-)

   info would be greatly appreciated. (I'd like to do some background
   subtraction and then some averaging of an input signal if you want
   some specifics!)

   Michael

Should be pretty simple to do subtraction by piping the old (or a fixed
stored) image to the MAXSP and the live image to the MAXSP and doing a
SUBTRACT.  Then you can store and/or display the subtracted image.  If you
only want a constant subtracted, the MAXSP will do that by itself.  Averaging,
as I mentioned, just recirculates through the FRAMESTORE using the MAXSP for
addition and right shifts.

The biggest conceptual problem with the MAXVIDEO cards is that timing is
EVERYTHING.  Programming is OK, but you have to get the timing correct so that
the two desired pixels arrive at the adder (or whatever) at the same 10ns
increment relative to the RS170 H and V timing.  The easiest way with the
older boards such as you have is to simply make a function which allows you
interactive control of the delay lines and FRAMESTORE precess.  Then adjust
these interactively to get what you want.

Hope this is somewhat helpful and not too discouraging.
--
   John C. Schultz   +1 (612) 733-4047   schultz@halley.serc.3m.com
   How to include the taste of Glendronach in a multi-media system?
Newsgroups: sci.image.processing