Moravian instruments
Main menu
Main page
CMOS & CCD cameras
Online Shop

Main pageProductsSoftware

SIPS version 2.1 released
 Scientific Image Processing System (SIPS for short) evolved from simple camera control software to rather complex system for acquiring and processing scientific and astrophotography images. SIPS evolution continues and v2.1 adds numerous new features designed to make observations simpler, more reliable and less demanding for observer attendance. The software is supplied with all Gx series of CCD cameras and can be also downloaded from this web site for free.

SIPS version 2.1 is the first minor release from the introduction of SIPS v2.0, adding many of new functions. It follows two “service” releases SIPS v2.0.1 and SIPS v2.0.2, which main purpose was fixing of some problems, caused by very significant architecture changes in SIPS v2, and which added only a few new features.


SIPS was always available as a set of executable files and DLLs, which could be placed (copied) to any directory (including for instance USB Flash Drive etc.). SIPS did not require installation, particular registry entries etc. This brought significant freedom on the one side (e.g. numerous versions could be used side by side), but at the same time this approach required all necessary libraries to be already installed on the particular computer. Beginning with version 2, SIPS is built using Microsoft Visual C++ 2008 compiler, so it requires particular runtime C-libraries are already installed to operate properly. These libraries are already installed on many systems (typically Windows 7) and if they are missing (e.g. on older Windows XP), it is possible to downloaded them from Microsoft web site for free and install them (exact package name is “Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)”). Still numerous users were left helpless when SIPS refused to launch due to missing runtime library.

This is why we decided to provide also proper installation package for SIPS. Running of this package checks whether all required libraries are already installed and installs them if they are missing. Then the installation package installs SIPS itself.

Still, the original SIPS distribution consisting of a bunch of executable files, DLLs and configuration files is still present on the USB Flash Drive shipped with cameras as well as it is downloadable from the web site.

New features

Some new features are not specific to any particular tool or algorithm and affect whole SIPS.

  • SIPS accepts command line arguments and interprets them as FIST file names. These files are then opened into SIPS upon launch. It is now possible to associate FITS files with SIPS.exe within Windows Explorer. Launching FIST file (e.g. by double-clicking it in Windows Explorer) then runs SIPS and lets it to open the particular file or files.


    If some file name contains spaces, it must be placed into quotes, e.g. "c:\My FITS Files\file.fits".

  • Numerous tools were enhanced with the possibility to play audio alarms (these alarms are described in details later). Because it is possible to play any sound file (e.g. whole MP3 songs beside simple WAV notifications), global Mute button was added to SIPS toolbar.

    Clicking this button stops any sounds played. Pressing of the <Esc> key also mutes all sounds.

Parallelized execution of critical algorithms

SIPS v2 moved all time consuming tasks (e.g. downloading images from camera, but also opening number of large images, calibration and transforming of image sets etc.) into background threads, so the user interface was no longer blocked by these tasks and become more responsible. Subsequent releases then added parallel execution of critical algorithms on multi-core processors. This is especially important when single-core processors disappeared from the market and even the slowest and cheapest PC can process at last two processes at once. If the software is capable to runt only single task at once, half of resources stay unused. Modern CPUs can run four, six or even eight tasks simultaneously, so proper division of work among multiple cores can speed up all tasks up to 8 times (this information will be outdated as early as more cores appear in common CPUs).

SIPS is designed to split the time consuming work among all available cores, there is no certain limit of number of cores. For instance if the PC is equipped with 2 CPUs, each capable to run 8 threads in parallel, SIPS splits hard work to 16 execution threads to use all CPU power modern PCs offer.

The following algorithms are parallelized:

  • Calculation image statistics (mean values, extremes, standard deviation etc.) and converting 16 or 32 bit FITS files into stretched 8 bit bitmaps, which can be displayed on computer screen. This speeds up both opening of files as well as image processing performed when new image is downloaded from the camera.

  • Software binning (downscaling) and resampling (upscaling).

  • Searching of stars within images. Star search algorithm is executed in many situations—e.g. when multiple images are aligned before they are added, but also when performing astrometry reduction and when each guiding image is downloaded and either the brightest star is searched of a whole star pattern is matched to reference frame. This algorithm is generally quite demanding and parallelization brought significant time savings.

  • Sub-pixel shift and arbitrary angle rotation, used when matching multiple images before they are blinked or added.

  • Image calibration including dark frame subtraction and flat-field correction. Let us note that these algorithms in SIPS preserve saturated pixels to indicate subsequent processing algorithms that particular pixels cannot be used for astrometry or photometry measurements.

So how fast is SIPS on various computers? We assembled a test consisting of identifying of all stars on a single 3072 × 3072 pixels FITS file. There are almost 25,000 stars on the image, detected with predefined settings (requires S/N ratio etc.). Although this test is well parallelized (runs on all available cores), it is not typical GPU-like test, simply performing some operation with every pixel of the image (e.g. like Gaussian blur etc.). After all, stars are not placed in regular pattern and have different FWHM etc. This test also pretty well utilizes all CPU resources, like caches (FIST file has ~18 MB of data), majority of calculations are performed with integer numbers but also floating point algorithms are present (e.g. calculation of pixels RMS within each aperture) are performed.

CPU Cores Threads Frequency [GHz] Time [s]
AMD C50 2 2 1.00 12.03
Intel Atom D525 (HT off) 2 2 1.80 9.65
AMD E-450 2 2 1.66 7.14
Intel Atom D525 2 4 1.80 6.28
Intel Core 2 Duo T6600 2 2 2.20 3.56
AMD Athlon X2 5200+ 2 2 2.70 3.08
Intel Pentium E6300 2 2 2.80 2.61
Intel Core i5 2410M 2 4 2.30/2.90 1.90
Intel Core 2 Quad Q6600 4 4 2.40 1.89
AMD A8-3870 4 4 3.00 1.66
Intel Core i5 2500 4 4 3.30/3.60 0.89
Intel Core i5 3570K 4 4 3.40/3.80 0.80
Intel Core i7 3770 (HT off) 4 4 3.40/3.90 0.78
Intel Core i7 3770 4 8 3.40/3.90 0.69

Standard SIPS test time on various CPUs (lower is better)


Intel Core i5 and i7 CPUs frequency is boosted if the power envelope allows it. Stated frequencies are nominal for all cores running at 100% and maximal single thread frequency.

Result is clear—modern four-core Intel Core i5 and i7 processors offer highest computational power and modest power consumption. Speed advantage of Core i7 relative to i5, caused by ability to run two threads on single core (so-called HyperThreading technology), is only about 10%.

CCD Camera tool

Majority of new features were added to CCD Camera control tool.

Exposure tab

SIPS v2.1 was enhanced to support preflash feature of Gx cameras. If the particular camera model supports preflash, two new controls are enabled: Preflash [s] and Num. clear. Preflash is intended to suppress so- called Residual Bulk Image (RBI) effect. RBI is thoroughly described elsewhere, we have not enough space to describe it in detail here. Simply put, majority of CCDs keep some charge after light exposure in CCD substrate. Such charge only slowly disappears (the cooler the CCD, the longer the process takes). The result is a star pattern, exposed for long time, could be seen even on dark frames acquired immediately after light images. While it is enough to wait for a certain time before dark frames are exposed (and to adjust observing program so no dark frames are taken immediately after light or flat field exposures), RBI in some CCD detectors disappears so slowly, that the problem must be handled different way. Instead of waiting for detector “empty” state, CCD is saturated by near-IR light using LEDs inside the CCD chamber. This leaves CCD in “full” state, which unifies conditions before any exposure regardless if dark or light frame was exposed.

This is not without trade off, “preflashed” CCD exhibits higher dark current compared to empty detector. Keeping the Preflash [s] box on zero eliminates preflash feature at all. If the value is non-zero, NIR LEDs switched on for several seconds saturate the CCD and then it is necessary to perform CCD clear operation several times before real exposure starts. Second parameter Num. clear allows definition of number of clear operations performed before real exposure. Optimal values depend on particular CCD detector, its temperature etc. As general rule, preflashing for a few seconds is enough to completely saturate the CCD and clearing several times unifies the conditions. But every user can experiment with these parameters or even not to use preflashing at all, depending on the observing program.


Preflash and subsequent clear is performed before every single exposure (bias, dark, light, flat). Time to perform several seconds preflash and the several clears significantly prolongs the time necessary to take every exposure. This influences especially short exposures, where such overhead can exceed normal exposure and download times.

New check-box Download if interrupted was added. While the Save if interrupted option was included into previous versions, image was always downloaded even if exposure was aborted. New check box allows the user to determine if the interrupted exposure is immediately abandoned or at last downloaded to the PC. Only if it is downloaded, it is possible to choose whether it should be saved or not.

The last new feature is the ability to define sound, which is to be played when the exposure finishes and image is downloaded into PC. The sound can be any WAV, WMA or MP3 sound file. Sound files are stored individually for each exposure type (light, dark, etc.).

Series tab

Exposure series can also notify its finish with sound. Just check the Play sound on series end control and define the sound file.

Frame tab

Frame tab allows much faster definition of binning. First it is much simpler to return to full resolution (binning 1 × 1) by clicking the command button, e.g. after finding of the desired field of view, which is often performed at maximal binning to achieve faster download.

Also newly introduced common XY-binning count box controls binning in both axes. Please note the common binning count box allows definition of binning only up to lower of bot horizontal and vertical limits. If for instance camera offers 1..4 horizontal binning and 1..16 vertical binning, common binning can be set only in the 1..4 range.


The Focus Frame command button sets the sub-frame dimensions to 192 × 192 pixels, which is the size of image displayed in Focus tab. But Focusing was enhanced to enable scrolling of bigger sub-frame, so it is no longer necessary to read such small sub frame. This feature is described in the next section.

Focus tab

Focusing tab underwent most significant changes. First, the sub-frame size for focusing is no longer limited to 192 × 192 pixels. Focus area image pane displays scroll-bars if the subframe read from camera is larger (or possibly the whole frame could be read). However, the Brightest pixel profile pane shows history of profiles only from the visible portion of the downloaded images.

The Brightest pixel profile pane height was halved and the remaining space occupies new pane Brightest pixel history. This pane shows previous exposures history of the brightest pixel value, which allows choosing of the optimal focus position.

The most important enhancement is the ability to automatically focus star images. Automatic focusing is based on the assumption that the best focused image of a star creates the highest pixel value(s). So the task of the autofocus procedure is to find a focuser position in which the brightest star displayed in the Focus area pane achieves highest pixel values. Autofocus is performed in three steps:

  1. SIPS tries to find the “slope” of the maximal pixel values on subsequent images acquired with different focuser positions. This provides the information about direction the focuser must be moved to improve focus.


    Autofocus must start from a focuser position, which ensures a suitable star image is acquired and the S/N ratio is high enough. This means the brightest pixel value must be well above the background noise level. The current algorithm is not intended for finding proper focus starting from totally defocused images, on which only uniform noise is detected.

  2. Then the software performs series of exposures in different focuser positions until distinct peak of maximal pixel values can be clearly detected. SIPS tries to fit a quadratic function y = a.x2 + b.x + c to the set brightest pixel history values and if the function maximum lies within the center third of all measured focuser positions, the best focusing point is considered found.


    Both steps 1 and 2 moves focuser for defined number of steps (Focuser steps per move parameter) between exposures. Using small movement does not automatically lead to best focus. In fact the single move should be relatively large to cause significant changes in the image. Brightest pixel value is affected by seeing, telescope mount tracking irregularities, by star image position relative CCD pixels etc. These irregularities affect maximal pixel value around proper focus much more than the value of images out of focus. It is desirable that the sampled values span wide range of maximal pixel values, from clearly defocused to properly focused.

  3. The focuser is then moved to the point of maximum value of the fitted quadratic function. Let us note that while the distance of focuser positions among individual exposures used for focusing is defined by the Focuser steps per move parameter, the best focus position is always calculated to the maximal precision allowed by the particular motorized focuser hardware.


Autofocus requires SIPS can control motorized focuser. This means a focuser driver must be installed and the focuser must be online.

Guiding setup

Guiding setup tab was redesigned to utilize somewhat larger CCD Camera tool window. Tool buttons, used in previous SIPS versions due to limited space for proper buttons, were removed and standard command buttons with text labels are used instead.

New parameters Min. pulse [s] were introduced in addition to already existing Max. pulse [s]. These parameters allow definition of a minimal pulse used to guide the mount. If the detected difference leads to a correction pulse shorter than the value of minimal pulse, correction action is entirely skipped and new guiding exposure is started.

Important addition is the ability to play sound in the case of guiding failure. It is possible to define a number of subsequent failures not to cause alarm too early, e.g. when a single exposure fails.


Alarm caused by guiding failure is a very good indicator of weather conditions, because the most frequent cause of guiding failure is missing guide star due to clouds.

GPS Control

GPS control lost the ability to propagate location coordinates to New FITS Header tool. In fact, it is still possible to use coordinates from GPS in New FITS header, only the direction was swapped. Instead to GPS tool propagating coordinates to other tools, other tools has the capability to update coordinates from GPS. This change was motivated increasing number of tools, which need coordinates (e.g. Telescope control tool), so the responsibility was moved to individual tools.


Windows Vista and Window 7 introduced somewhat complicated system of user rights (privileges). Because outdated and poorly designed software often requires rights like write access to Program Files directory, many users of Windows systems worked at Administrator privileges to allow such software to run. But this almost eliminated the security protection of the whole system—Administrators could update any portion of the system, so computer viruses running within the context of users with administrative privileges could compromise all operating system files. This is why Microsoft introduced a concept of super-administrator. Even administrators are somewhat restricted and only processes, explicitly launched with super-administrator rights, can modify operating system files, protected portions of Registry database etc.

Among the blocked functions is the capability to alter system time. So if SIPS has to update system time according to very precise GPS time, it must be run at super-administrator privileges (right-click the SIPS icon and choose “Run as administrator” item in the pop-up menu). Otherwise the system time remains unchanged despite the checked Synchronize PC time with GPS time option.

New FITS Header tool

Command button Get location from GPS reads coordinates and elevation from GPS and fills the LONG-OBS, LAT-OBS and ELEV-OBS keyword values. This function is of course enabled only if GPS driver is installed and particular GPS receiver is online and provides location data.

Telescope control

Telescope tool significantly reduced the amount of information read from the telescope controller. Previous SIPS versions read also Azimuth/Elevation and time in addition to equatorial coordinates (R.A. and Dec.) from the telescope controller. But telescope controllers often utilize low performance processors and calculation of azimuth and elevation could consume quite a long time. On the other hand computational power of modern PCs is awesome and calculation of azimuth and altitude every few seconds takes almost unmeasurable small amount of CPU time. This is why SIPS took over these algorithms and computes telescope azimuth and elevation itself.

Time used for calculation is taken from PC system time. If GPS tool synchronizes this time, it is very precise.

Another information necessary for calculation is telescope geographic coordinates. Telescope control tool newly contains Longitude and Latitude controls allowing the user to define these coordinates. Also Get location from GPS button is present. This function is of course enabled only if GPS driver is installed and particular GPS receiver is online and provides location data.

Another new feature of the Telescope tool is the ability to play sound alarms on two conditions. One condition is related to azimuth, another to altitude. It is possible to play alarm when a telescope coordinate is lower or greater than a predefined limit value. These alarms can be used e.g. to swap German Equatorial Mount if azimuth passes local meridian or to terminate the observation if the altitude of observed objects is lower that defined minimal altitude etc.

The last new feature of Telescope tool is simple catalog function. A new file 'catalog.ini' is shipped with SIPS v2.1. This is simple text file, so every user can modify it or create his/her own catalog files. SIPS always reads file named 'catalog.ini', if any changes are made or multiple catalog files are created, it is always necessary to rename the desired file to 'catalog.ini' and place it into SIPS directory (from which 'sips.exe' is launched).

Function of catalog file is simple. Every time the user chooses particular catalog entry, coordinates of the entry are copied to New R.A. and New Dec. controls. It is then possible to GOTO or Synchronize the telescope with new coordinates.

Structure of 'catalog.ini' file is as follows. Individual sections are used as individual catalogs, displayed in the first combo box. Section names are in square brackets in the file. Following lines represent individual catalog entries and they are displayed in the second combo-box.

1 5 34 30 22 01 0 Tau 8.4m Pl (Crab Nb)
2 21 33 30 -00 49 0 Aqr 6.5m Gb
3 13 42 12 28 23 0 CVn 6.4m Gb

1 0 7 18 27 43 0 Peg Gx 12.9m
6 0 9 30 33 19 0 And Gx 13m
14 0 8 48 15 49 0 Peg Gx 12.1m

The example above defines two catalogs named M and NGC with three items in each. Each item line contains following fields separated by space:

  • Item name, displayed in the second combo-box. As a coincidence, item names are ordinal numbers in both Messier and NGC catalogs, but the first item may by any identifier. Just keep on mind that space delimits items, so the name cannot contain space. If e.g. [GCVS] catalog is created and the desired item name is “MR Aur”, it is necessary to use e.g. MR_Aur or similar name without spaces.

  • Next three items are R.A. coordinate hours, minutes and seconds. The last number (seconds) can contain decimal places if more precision is desired.

  • Following three items are Dec. coordinate degrees, minutes and seconds. Again the last number (seconds) can contain decimal places.

  • Rest of the line is considered as comment and is displayed in a line below catalog combo boxes. Spaces no longer delimits any items and are properly displayed.

Focuser control

Focuser controller tool windows newly displays focuser state (Moving or Steady). Also if the focuser controller provides temperature measurement, the temperature is displayed in the tool window.

Dome control

SIPS Dome control tool was also slightly altered. If the dome controller electronic provides information about dome temperature and/or cloud cover, particular information is displayed in the tool window. Another functionality like sound alarms when cloud cover passes certain limit will be implemented in the following versions.

Bug fixes

The following problems were fixed:

  • Serial line (COM port) driver, used by numerous hardware drivers (telescope, GPS, ...), was updated to work properly with some USB/RS-232C adapters, especially on 64-bit Windows systems.

  • Serial line driver automatically inserts '\\.\' prefix before the COM port name if it is not possible to open the desired port. Again this function is implemented to work properly with various USB/RS-232C adapters, which drivers do not handle standard COM file name properly.

  • NMEA GPS driver handles number of satellites correctly. Previous version of the driver could display wrong number of satellites in view.

  • GPS, telescope, dome and focuser driver could remain active even if the user choose different driver.

  • NexStar telescope driver did not properly restore tracking mode when GOTO operation was aborted.

  • FITS images were not displayed correctly on multi-monitor systems, where the secondary monitor was placed on the left side of the primary monitor (secondary monitor x-coordinate was negative relative to primary monitor).

  • Portion of image displayed in the Focus tab of the CCD Camera tool did not display content of the selected sub-frame properly (it used inverted y coordinate of the sub-frame).

  • New FITS Header and Transform New Image tools updated state only upon selection of another tool window or tool window closing. This means changes did not appear in continuously read images until the tool was deselected.

  • SIPS controls were reworked to render correctly when a ClearType technology is used to display texts on computer screen. ClearType smooths letter shapes by blending of letter edges with background color. But programs must not draw the same text more than once without also clearing its background.

SIPS v2.1 is a freeware and can be downloaded from the download section of this WWW site.

 | Main page | Products |