Version 2 has been optimized to take advantage of multiple-core processors for improved performance. Here is a typical example of processor usage in Windows 7 Pro, 64-bit version of Version 1 and Version 2.
The tests consisted of 100 deconvolution iterations on a quad-core Nehalem processor machine running ar 2.66 GHz (8 virtual cores). Note Version 2's CPU Usage compared to Version 1. This performance enhancement translates into a massive time saving. The 100 iterations of a 4096 x 4096 image took 39 minutes with version 1 and 105 seconds with version 2! Even using 2 cores at 2.66 GHz, the same 100 iterations completed in 4.5 minutes.
CCDStack accepts image-file formats FITS, SBIG, TIFF, JPEG, BMP and DSLR RAW. Depending on the format, CCDStack reads 8, 16 and 32
bit monochrome or color files to create 32-bit floating-point image data
and 24, 48, and 96 bit color files to create three 32-bit
floating-point data structures.
Internal calculations are all performed in 32-bit floating point to maximize data precision. Data can be saved in a number of precisions, including 32-bit floating point.
The display bitmap is the immediate source of the image seen
on your screen, though it is not the screen image itself. The
display bitmap consists of 8-bits/color and is derived from the
image data primarily via adjust display. Note that adjust
display has no effect on the underlying image data (e.g. DDP or
sharpen does not modify the underlying 32-bit image data).
An image stack is a group of individual exposures framing the
same object or field. Image stacks are typically used to
accumulate long total exposure times that would otherwise be
impractical or impossible in a single exposure. Such individual
exposures are registered/aligned, normalized, data reject and
combined to create a composite image.
Image stacks can be processed to remove undesirable artifacts
(such as cosmic rays or airplane trails) from the composite
image. CCDStack implements several data rejection procedures to
detect artifacts, pixel by pixel, and reject those pixels in the
Raw CCD images are calibrated to remove systematic artifacts
from the camera and lens. Calibration consists of dark
subtraction and flat fielding. Dark subtraction removes the
pixel-to-pixel variation due to dark-current accumulation. Flat
fielding compensates for variations in illumination across the
CCD and pixel-to-pixel variations in sensitivity. Bias frames
allow calibration of flat frames as well as scaling darks for minimum RMS noise.
Star Bloom Removal:
Star bloom removal can be done in the traditional fashion in
which all blooms are automatically recognized and removed while
interpolating the data underneath.
With CCDStack's advanced star bloom removal, images of
different exposures can be added to the stack that do not
contain blooms. Blooms are identified and the underlying data is
retrieved from shorter exposures. This allows for the actual
image data underneath blooms to be revealed and not
CCDStack supports a number of different registration algorithms. These include
CCDStack's new Star Snap technology aligns all the images to
the reference image by matching one or more reference stars.
Star Snap can be done with one click using the shift only
option, or multiple stars can be selected in the base image, and
all other images in the stack will snap precisely to the base
image using shift, scale and rotation parameters.
Once images are registered, they need to be re-sampled.
CCDStack offers several re-sampling methods to optimize image
integrity for various conditions and purposes (e.g. preserve
noise profiles, maximize resolution, or minimize artifacts and
Normalizing the stack results in all images having similar
ADU values for corresponding pixels (and area and features).
Normalization mathematically compensates for variations in sky
background, sky transparency, exposure times and so on. Such
compensation is often necessary to produce optimal data
rejection and image combines.
For example, after normalization the average ADU of a
5-minute exposure will approximate the average ADU of a
10-minute exposure (that’s what normalization does). If these
images are summed without weights then the 10-minute exposure
will contribute the same S/N as the 5-minute exposure, thus
resulting in sub-optimal S/N. But a weighted sum preserves this
difference to produce optimal S/N.
Data rejection is used to remove or attenuate undesirable
artifacts in the images in your stack. CCDStack implements a variety of data
rejection procedures to detect undesirable pixels and mark them
as rejected. Rejected pixels are graphically displayed for each
image so that the effects of data rejection procedures are
The following lists rejection methods used on the data from
the image itself:
- Reject hot/cold pixels
- Reject blooms
- Reject range
- Clear range
- Freehand draw
- Impute rejected pixels
- Set rejects to Missing Value
Pixel stack data rejections operate on pixel stacks, which
are a collection of pixels from a single location in all images
in the stack. These procedures determine rejection based on the
statistics of the pixel stack only (i.e. near by pixels within
an image have no influence). There are basically 2 different
types of stack rejections: Sigma-reject and clip.:
- STD sigma-reject
- Poisson sigma-reject
- Linear factor reject
- Min/Max Clip
These procedures combine all included images in the stack to
create a new image:
Sum Combine- A new image is created from the weighted sum of
all included images in the stack.
Mean Combine - A new image is created from the weighted mean
of all included images in the stack.
Median Combine - A new image is created from the un-weighted
median of all included images:
Different methods for computing the counter-gradient are
used, based on the number of selected areas:
- nothing occurs when only one area is selected
- two areas define a linear gradient running between the
two points (centers of the areas)
- three areas define a tilted plane that passess thru the
- four or more areas define a complex space where every
point is weighted by a psudo-gravitational model.
Deconvolution is a process that sharpens the
image via a modified maximum entropy deconvolution algorithm
developed by Benoit Schillings. Maximum entropy deconvolution
minimizes a smoothness function in the image. Resolution depends
on the signal-to-noise and thus is dependent on image
particulars (sampling, object flux, noise) and varies across the
Version 2 adds new deconvolution controls, PSF visualization and option for asymmetrical empirical PSF, which can be used to correct small tracking errors.
Unsharp mask is a method to sharpen and
increase fine-scale contrast. A blurred (unsharp) mask is
combined with the image to produce the sharpened image. CCDStack
implements two different methods of combining the image and
mask: DDP and non-DDP (traditional):
CCDStack handles color images using a psuedo-Lab scheme. The
image data consists of a Luminance (L) 32-bit floating-point
2-dimensional array and two color-ratio 32-bit floating-point
arrays. These psuedo-Lab values are converted to RGB for the
display bitmap, output files, and color controls.
DSLR and One-Shot Color (OSC):
Version 2 contains special procedures for OSC and DSLR
(e.g. RAW Canon, Nikon, Olympus, etc.). Flat calibration is optimized for
RAW DSLR/OSC. There are several options for converting DSLR/OSC to color or
grayscale images, including color interpolation and pixel extractions. DSLR
and OSC images are typically very large, for which a 64-bit version of Windows is