Image Display Functional Requirements
Software Requirements
Overview
The size and complexity of the full mosaic (8K x 8K pixels, 8 CCDs) present
several problems not encountered by existing images and displays.
For the purpose of displaying DEIMOS images, we
propose two display windows, each running on its own dedicated monitor at
the telescope. One will be used
to display the full image (block-averaged or subsampled), which will
serve the function currently handled by the "panner box"; we will calll this
the "full-image display." The second
monitor (which we refer to as the "work display") will handle the
functions currently handled by the main display of various display tools.
With DEIMOS, however, it will rarely -- if ever -- display any more
than a small portion of the entire mosaic, as it will normally display
at full pixel or magnified scales.
These general rules apply:
- control of the display will be by GUI inputs (ie, graphical buttons, text
boxes) and/or mouse;
- mouse button functions will be continuously updated/displayed;
- default parameters should be accessible for user modification and
resetting to nominal values.
Built-in analysis functions are described
under Quick-Look Requirements.
Nomenclature
An image (or frame) is read into shared memory by the image display --
or other -- process. From here, the image display writes it into an effective
video memory using a specified transfer function to perform an
intensity transformation or mapping.
The transfer function can be described by both a form
(eg, linear, log, sqrt) and limiting values
(minimum and maximum values outside of which the intensities
are effectively floor-ed and ceiling-ed with the limiting values).
Once in the effective video memory,
the actual mapping of intensity values into specific grey levels
or colors on the screen (ie, control of the gun voltages) is under the control
of a look-up table (LUT).
The user adjusts the contrast and brightness levels by changing the LUT.
An image plane refers to a section of the effective video memory
which is treated as a single image. Blinking alternates between image planes.
An autoscaling algorithm will automatically
compute limits (and potentially the form) of the transfer function.
Specific Requirements
- Full-image display of 8K x 8K mosaic at reasonable compression level.
Image should be compressed and/or subsampled in such a way that the
object information is not strongly modified -- that is, stars should all
appear at close to their relative brightnesses. Both 1K x 1K and 2K x 2K
display formats should be supported, at 8x and 4x compression/subsampling
respectively.
- "Work display:" Display at least one area at full pixel (or zoomed) scale.
The selected region must be graphically marked on the full image (above).
- Images should be displayed in real-time as they are received from the
detector ("raw"). There should should be a user override option to
defeat or delay this automatic display (note: this does not affect
the read-out process). Images stored on disk can also be called back for
display.
- There should be an option to gracefully interrupt (ie, terminate)
the "loading" of an image. This applies either to the reading of an
image from disk into memory or application of the transfer function
to an image already in memory. (This does not affect CCD read-out.)
- There should be a erase option, to clear the display before loading
a new image.
- Mouse-driven cursor must be able to travel between the two display
monitors.
- Incremental movements of the cursor can also be made by keystrokes
(eg, arrow keys) in whole pixel units.
- Pixel coordinates and true pixel DN values should be accessible from both
the full-screen and "work" displays, via a continuously-updated display
of the mouse cursor position.
The default coordinate system displayed will be that necessary for accessing
a given pixel with other tools (eg. IRAF implot, imstatistics or epix
tasks). Other coordinate systems (eg, x,y pixels; chip,x,y pixels; RA and Dec)
should be user-selectible
(see Quick-Look Requirements).
Also, whole pixel or fractional pixel readouts should be a user option.
- For display of "raw" images, saturated pixels should be flagged (eg, set
to specific color).
- It is a desirable option that CCD defects can be similarly flagged.
- An optional zoom box (saoimage-style), including a marker for the
central pixel, is desirable.
- Blink capability between at least two (preferably four) image planes.
If three or more planes, the user can select which planes are to be blinked,
and the order (forward or reverse).
Blinking will be under the control of a mouse button click or keystroke.
- User can optionally "lock" 2 or more planes together for purposes of
panning and zooming (ie, spatial registration).
User can also lock the lookup tables for two or more planes.
(These options are extremely useful for blinking.)
- Standard functions:
- optional pseudo color-mapping;
- mouse-driven LUT control;
- mouse-driven panning;
- mouse-driven zooming (with user-selectible zoom factors);
- transfer functions will include linear, log, gamma and other (TBD) forms.
Note that graphical overlays must follow the image during pan/zoom.
- Intelligent autoscaling computation of the transfer function,
which may require knowledge of the image type to avoid regions of no interest.
For example, a direct image should ignore the "shadowed" regions of the
chip in deciding on grayscale mapping. Similarly, for a direct image through a
slitmask, only the illuminated regions should be considered.
(Some form of histogram equilization is suggested as the most appropriate
autoscaling algorithm for the transfer function.)
- Other transfer function options should be:
- fix the transfer function limits at current or user specified values;
- limit computation of autoscale transfer function to a user-specified
region;
- automatically adjust the transfer function of one image to match the
appearance of another image already displayed (see Design Notes).
- An interactive, fast selection of transfer-function limits is under
investigation (see Design Notes).
- The user should be able to select (via mouse clicks) one or many
small regions (of adjustable size) which are then mosaiqued or tiled.
This is useful for examining, eg. PSFs across the field. Another use
would be displaying focus sequences side-by-side.
This tiling should occur for all locked planes
The size/shape of the box will be determined by dragging out the
desired box on the screen. (Note that this is a display option, completely
separate from multi-subraster readout of the CCDs.)
- For the slitmask alignment sequence, all alignment stars should be
displayed simultaneously, with residual vectors overplotted.
(See mask alignment procedure.)
- We should have the capability of removing variations in chip-to-chip
gain and bias levels.
- We will need graphics overlay planes both for individual image planes
and globally (ie, for graphics which are to appear for all image planes).
- Hardcopy of either display screen, with filename/user/time/date stamp.
Design Notes
The transfer function control could be implemented fairly easily. There will
be a pull-down menu of forms -- linear, log, etc. There will
be (always displayed) two text boxes for the limits, ie, minimum and maximum.
These limits are either typed in the box by the user, or -- most commonly --
provided by the autoscaling algorithm.
There will also be a pair of radio
buttons, "auto" and "fixed", for selecting between the automatic algorithm
or user-forced values. These latter can be specified by the user, or
the current values simply "locked" in. There should also be a "redisplay"
button, for applying any modifications to the min/max limits or forms.
The appearance matching is selected by a third button. The user
drags out a box around the region of interest, and clicks on the
"match appearance" button. The pixel values within the boxed region in
each image are compared, and the transfer function for the second image
is derived from the transfer function for the first image combined
with the scaling and offset values from the comparison of the two images.
The second image is redisplayed with the new transfer function values.
The highly-interactive limits selection would be chosen by another button.
In this case, the user drags out a box around the image region of interest.
This selected region is then reloaded into video memory with a transfer function
running from the minimum to maximum intensity encompassed by the box,
and the LUT is reset to full ramp.
The user will then adjust the LUT (via standard mouse control)
to bracket the intensities of interest. When ready, the user selects this
range (either by another mouse button or a graphical button),
and the LUT ramp is mapped backwards to estimate the min and max value of
interest to the user. These values become the new transfer function limits,
the boxed region is redisplayed
(using the new limits) and the LUT ramp is reset to full range. This
procedure is repeated until the user selects the "redisplay" button,
when the (final) transfer function limits are applied to the entire
image. Note that an "undo" option, to reverse the last change, will probably
be required.
Hardware Requirements
Two dedicated monitors will be required. We prefer at least one
2K x 2K monitor for the "full image" display; however, the current cost of
these monitors is very high. Therefore, the system must work with two
1K x 1K monitors.
8-bit display grayscales or colors are probably adequate, but we
should allow for the possibility of 24-bit display.
Three (?) button mouse.
Lots of memory (TBD).
Last modified: 07 Mar 96
phillips@ucolick.org