updated: 05/03/2004
Dithering is a process whereby the guide star is moved between successive exposures, causing the resultant image to land on a different set of pixels from one to the other. The advantage of dithering is chip artifacts can be minimized when the sub-exposures are combined. This technique has been used by advanced imagers using manual techniques to reposition the guide star.
Here is an example of the impact of dithering.

Undithered Dithered by ±2.5 pixels
Above are comparison images of the vicinity of NGC7331. Each consists of 8 x 10m exposures dark subtracted, flat fielded, aligned and sigma reject combined. The left was taken around 5 days ago without dithering and the right was taken last night with ±2.5 pixel random dithering at the guide chip (binned 2x2). Roughly equivalent to 3 at the image chip, if I did the math right. AO-7 guiding was used and the dithering was achieved under software control via a new version of Sequencer. The 8 frames were acquired without manual intervention. As of this writing, this is a CCDSoft exclusive capability, as far as I know.
Here is a link to the completed image with dithered luminance. There are also links to the undithered image.
For the future, I intend to use CCDSoft with Sequencer 2.0 for dithered luminance acquisition based on these experiments. In addition to dithering, I will be adding additional capabilities to Sequencer. I will include filter focus offsets compatible with temperature-compensated focusing. I will add the ability to close the shutter (and disable guiding) during filter changes to minimize stray light from the SBIG filter wheel sensor.
9/20/2003 Update: I repeated this comparison in the same evening to minimize seeing and other conditions. Again NGC7331 was the target. I took two sets of 8 x 5m exposures, 1x1 at .74 arc-sec./pixel. For my system, a 5-minute exposure is sufficient to overcome readout noise. In one case, the image was undithered, in the other the image was dithered to the maximum. Given the algorithm, this turned out to be around 2 pixels in each direction on the guider, corresponding to 12 pixels at the imager.
The resultant sets of images were reduced and aligned in Mira and Sigma Reject combined in Maxim. To avoid any dark subtraction anomalies, 40 dark frames were taken subsequent to the exposures and sigma reject combined. A linear stretch was used to center the region of interest in the TIF/GIF 8-bit range. A second processing routine was conducted, which added a hot/cold pixel removal in Maxim (10%/90% threshold), between the reduction and alignment step. The below animations with 2 sec. pauses compare the dithered and undithered images. The undithered noise is readily apparent.
![]()
Standard Processing Hot/Cold Pixel processing included
Over the course of these exposures, seeing was around 2.7 arc-sec. I computed some SNR (signal-to-noise ratios) by using a non-stellar background and defining the average value of a 2500 pixel region as signal and the standard deviation of the same region as noise. Here are the results of that analysis:
| Undithered | 80.3 |
| Dithered | 103.9 |
| Undithered, hot/cold pixel removal | 92.0 |
| Dithered, hot/cold pixel removal | 105.0 |
In scanning over the undithered vs. dithered images, I found SNR improvements ranging from 15-30%. The data in the above table represents an average improvement of 15% with hot/cold pixels removed and up to 30% without removing them. It is interesting to note that the SNR improvement was maintained as the resultant combined images were processed through 2 interations of CCDSharp. After CCDSharp, the star sizes measured around 2.2 arc-sec.
Some concluding thoughts: By all means, remove hot and cold pixels, although dithering gets you most of the way there without it. Also, dithering has the ability to increase the background SNR by a significant amount. Even with a 15% improvement, that is equivalent to increasing your exposure time by 32%, assuming you are sky noise, and not readout noise limited. That is a significant advantage to be sure.
More...
Later in the day, Ray Gralak sent me a copy of Sigma pre-beta 11 and asked that I run the data through it. I also was asked to take a look at Ron Wodaski's pixel scrubber. I reran all the data and then computed the SNR as above on four different background regions of approximately 2500 pixels. The regions were measured in Mira and the results averaged. There is a consistent SNR improvement of dithered vs. non-dithered images. Hot/cold pixel removal also shows considerable improvement. But, Sigma gives the highest SNR by far. Here are the results of that comparison.
| Data | Average SNR | Dithering Improvement |
| Undithered, SR combined | 82.7 | |
| Undithered, hot/cold pixel removal, SR combined | 93.1 | |
| Undithered, scrubbed, SR combined | 96.6 | |
| Undithered, Sigma combined | 111.5 | |
| Dithered, SR combined | 106.8 | 29.2% |
| Dithered, hot/cold pixel removal, SR combined | 108.3 | 16.3% |
| Dithered, scrubbed, SR combined | 112.5 | 16.5% |
| Dithered, Sigma combined | 132.5 | 18.9% |
| Sigma improvement without dithering | 34.9% | |
| Sigma plus dithering improvement | 60.3% |
SR refers to Sigma Reject combine from RC Console by Russ Croman. Default settings were used and background normalization was on.
Hot/cold pixel removal was from Maxim with thresholds set at 10%/90% respectively.
Scrubbed was from Ron Wodaski's pixel scrubber for CCDSoft v5 with aggressiveness of90.
Sigma is from Ray Gralak's Sigma combine program. Settings used were:
Combine Method: Standard Deviation Masking
Pixel Arithmetic: Sum
Smoothing: Despeckle Hi: 3, Despeckle Low: 1.0
Normalize: Checked with 60%
Sigma Threshold: 0.5
I consider this data very significant. Note the improvement in background SNR, a measure of overall smoothness, of 60% with Sigma and dithering. Dithering alone is 35%. Here is an animation between the simple SR combine without dithering and Sigma combine with dithering.

The improvement in noise is dramatic!
4/26/2004 Update: Recently, I took a series of 50 exposures of M100 on both sides of the meridian. I compared the background SNR for various types of combine algorithms for sets of 5, 10, 30 and 50 frames. I also measured the FWHM of a candidate star in the combines. Here is a summary of the data:
| Image | Mean | Median | Std Dev | SNR | SNR | FWHM | FWHM loss | FWHM | FWHM Loss | ||
| De-Speckle | Despeckle | ||||||||||
| 5 frames combined | |||||||||||
| Lum_M100_5_Mean.fit | 464.8 | 464.7 | 7.1 | 65 | 143 | 4.1 | 0.0% | 4.3 | 4.5% | ||
| Lum_M100_5_Med.fit | 464.6 | 464.6 | 8.0 | 58 | 123 | 4.1 | 0.7% | 4.3 | 4.3% | ||
| Lum_M100_5_MMClip.fit | 464.7 | 464.8 | 7.1 | 65 | 137 | 4.1 | 0.4% | 4.3 | 4.2% | ||
| Lum_M100_5_StdDevMean32.fit | 454.1 | 454.1 | 6.0 | 76 | 4.4 | 7.2% | |||||
| 10 frames combined | |||||||||||
| Lum_M100_10_Mean.fit | 473.3 | 473.2 | 4.9 | 96 | 213 | 4.1 | 0.0% | 4.3 | 5.4% | ||
| Lum_M100_10_Med.fit | 473.2 | 473.1 | 5.5 | 85 | 187 | 4.1 | 0.9% | 4.3 | 5.8% | ||
| Lum_M100_10_MMClip.fit | 473.2 | 473.3 | 4.8 | 98 | 211 | 4.1 | 0.1% | 4.3 | 5.6% | ||
| Lum_M100_10_StdDevMean32.fit | 456.7 | 456.7 | 4.1 | 111 | 4.4 | 6.7% | |||||
| 30 frames combined | |||||||||||
| Lum_M100_30_Mean.fit | 505.5 | 505.4 | 3.1 | 163 | 348 | 4.1 | 0.0% | 4.2 | 3.9% | ||
| Lum_M100_30_Med.fit | 505.4 | 505.4 | 3.7 | 137 | 293 | 4.0 | -0.9% | 4.2 | 3.8% | ||
| Lum_M100_30_MMClip.fit | 505.5 | 505.4 | 3.1 | 164 | 344 | 4.1 | -0.2% | 4.2 | 3.8% | ||
| Lum_M100_30_StdDevMean32.fit | 451.2 | 451.2 | 2.7 | 170 | 4.3 | 5.5% | |||||
| 50 frames combined | |||||||||||
| Lum_M100_50_Mean.fit | 546.9 | 546.9 | 2.6 | 212 | 446 | 4.0 | 0.0% | 4.1 | 3.9% | ||
| Lum_M100_50_Med.fit | 546.8 | 546.8 | 3.1 | 175 | 368 | 3.9 | -0.7% | 4.1 | 3.8% | ||
| Lum_M100_50_MMClip.fit | 546.9 | 546.9 | 2.6 | 213 | 442 | ||||||