Performance

PixInsight is an advanced image processing platform specialized in astrophotography and other technical imaging fields. It is the result of a dynamic collaboration between like-minded astrophotographers and software developers, who are constantly pushing the boundaries of astronomical image processing with the most powerful toolset available.


Open-Architecture, Modular, Portable Image Processing Platform

A rich, versatile, ever-evolving environment.

PixInsight is available as a native 64-bit application on FreeBSD, Linux, Apple Mac OS X and Microsoft Windows operating systems. PixInsight is a strongly multithreaded environment able to exploit all processors and processor cores available on all platforms and hardware architectures.

PixInsight is a modular, open-architecture system, where the entire processing and file handling capabilities are implemented as external, installable modules. PixInsight is both an image processing environment and a software development framework. The PixInsight core application integrates three user interfaces: a graphical interface, a command-line interface, and a scripting interface based on the JavaScript language. As a development platform, PixInsight provides the PixInsight Class Library (PCL), an open-source, ISO C++ framework for development of PixInsight modules, and the PixInsight JavaScript Runtime (PJSR), an ECMA 262-5 compliant environment readily available in the PixInsight core application.

Its open architecture makes PixInsight an extremely evolving and versatile platform. Software developers can author new PixInsight modules and scripts to meet any image processing needs. PixInsight is being extended to the fields of CCD photometry, astrometry, and beyond astronomical imaging.

The PixInsight project originates from the inside of astrophotography: PixInsight is a software platform made by astrophotographers, for astrophotographers.

Object-Oriented Platform

Manage processes and images independently to gain full control over your processing workflow.

PixInsight's graphical user interface (GUI) lets you handle images and processes independently through specific interface tools and resources. This gives you full control over all of the elements that take part in your processing workflow. Nothing is lost in PixInsight: every aspect of your work can be rescued at any point to modify and reuse it as you decide. Isolation between images and processes plays a key role in the PixInsight platform.

For example, you can extract an arbitrary subset of the processes that you have applied to a particular image to edit, organize and store them as disk files in XML format. Processes are reusable in multiple processing tasks in PixInsight. You can document your processes with user-defined textual information, so you can share them with other users, giving them detailed information about your processing strategies. Once you gain some experience with PixInsight's GUI, you'll hate having to use other simplistic approaches.

Process icons are characteristic of the PixInsight interface. A process icon encapsulates a process instance and allows you to handle all of its properties through an intuitive and flexible interface. The implementation of process icons in PixInsight LE has been widely acclaimed as a fresh, innovative contribution to graphical interfaces for imaging applications. The current PixInsight platform further boosts process icons, and introduces more iconic metaphors to key elements in the image processing workflow: image icons and image containers.

Projects allow you to save the entire state of PixInsight as a bundle of XML files and binary data on disk. Once you have saved a project, you can reload it to recover the state of PixInsight exactly as it was when you saved it. This includes all of your images, previews, processes, icons and processing histories on all workspaces. PixInsight projects are independent units that can be transported and shared across different machines and storage devices.

Workspaces allow you to organize your work by distributing images, tools and processes conveniently into separate containers. Workspaces can be managed, created and removed dynamically to fit your needs.

Five Pixel Data Formats Supported Transparently

Use the most adequate data format for each processing task, from 8-bit integers up to 64-bit floating point real and complex pixel data.

PixInsight's core processing engine supports five numeric types for internal storage and manipulation of pixel values:

  • 8-bit, 16-bit and 32-bit unsigned integer pixels
  • 32-bit and 64-bit IEEE 754 floating point real pixels
  • 32-bit and 64-bit IEEE 754 floating point complex pixels

With the exception of complex images, which are only supported in the C++ and JavaScript programming interfaces, all processes in PixInsight can be applied to any data format without distinction from the graphical and command-line interfaces. To put a few well-known examples, you can apply unsharp mask, curves, histogram transformations and wavelet transforms irrespectively to 8, 16 or 32-bit integer images, and to 32 or 64-bit floating point images.

The 8-bit format allows you to save RAM and disk space to store some masks and intermediate images not requiring more than 256 discrete sample values. With 64-bit floating point images you can perform accurate and complex transformations into a huge dynamic range of 1015 discrete sample values. With PixInsight you have the freedom to select the pixel data format that best suits to each element of your processing workflow.

Advanced Masking System

Build and use masks to process your images selectively, with the most powerful and flexible masking system.

Any image can work as a mask in PixInsight. It's just that simple. Masking is an essential feature for virtually any nontrivial image processing task. When you activate a mask for a target image in PixInsight, black mask pixels protect target pixels completely, while white mask pixels allow full processing. A gray mask pixel yields a proportional mixture of original and processed target pixel values. This allows you to modulate image processing algorithms using fuzzy logic criteria. Masks are powerful tools to adapt each process to the natural uncertainty inherent to the data, where the signal coexists with noise as a function of illumination.

PixInsight implements the richest and most flexible masking system that you've ever seen in a technical imaging application: any image can work as a mask for an unlimited number of images, with the condition that the mask and all masked images must have the same pixel dimensions.

The GUI manages masking relations in a completely transparent and automatic way. You can modify a mask, and as long as mask changes don't invalidate masking relations, all masked images are notified and updated automatically.

Color Management

Work in a color-managed environment to achieve consistent color renditions across output devices and color spaces.

PixInsight is a fully color-managed application based on standard ICC profiles. Color management is applied automatically to all screen and printer image renditions, and is fully configurable through dedicated tools and core application resources. PixInsight's color management uses the open-source LittleCMS engine to implement multiprofile color transformations, color proofing and gamut check functionality on all supported platforms.

Multiple Preview Interface

PixInsight's previews are accurate, modular and versatile image processing tools.

A preview is a temporary subimage that you can freely define over any image in PixInsight. You can use a preview to try out and accumulate any number of processes without modifying its parent image.

Previews are accurate: Every process that you apply to a preview works with actual pixels, just as it will do when you apply it to its parent image. You can obtain accurate histograms, statistics and any kind of numeric readouts from previews.

Previews are modular processing tools: In all respects, a preview behaves exactly as a regular image does. You can duplicate a preview as another preview or as an independent image, or explore and extract a preview's processing history to store it as a ProcessContainer object that can be edited, managed and saved as a process icon, converted to JavaScript source code automatically, etc.

Finally, previews are versatile: A preview's processing history can be reused to apply it to other previews or images without limitations. You can define an unlimited number of previews for any image, where you can try out different processing strategies to compare their results rigorously.

Command-Line Interface

The best of two worlds: A powerful command-line interface coexisting with a sophisticated GUI.

The Process Console window in PixInsight provides a powerful command-line interface that can be used along with the GUI. When you learn how to use PixInsight's command line, you'll realize that nothing can beat it to perform a large number of advanced, complex operations, especially when groups or sets of images and disk files have to be processed quickly and easily.

For example, you can open all JPEG images on the current directory by simply entering this command:

open *.jpg

So simple, and so powerful. How about rotating a set of images 90 degrees counter-clockwise? Try this command:

FastRotation -r90 M33*

The command above would apply the FastRotation process to rotate +90 degrees every image whose name begins with "M33".

Along with a large set of internal and emulated UNIX commands, all installed processes can be invoked from the command-line in PixInsight. Tired to type the "FastRotation" word? No problem:

alias r FastRotation

Now you can use a command like "r -r90 M33*". What about running an operating system command without having to open a terminal window? No problem: PixInsight's console can execute any external process by just prefixing it with a bang sign (!). For example:

!ls -l /home/john/astroimages/2007/*.fit?

and you'll get a list of all FITS files on the specified directory, using the standard ls program. The output of ls is sent to PixInsight's console, which acts as a system terminal.

You can even launch a new instance of the PixInsight core application as a detached process (double bang prefix):

!!$PXI_BINDIR/PixInsight -n

Or use PixInsight's JavaScript runtime as a powerful calculator with the js command:

js Math.sqrt(1/Math.PI);

This is just a small sample of the large capabilities of PixInsight's command-line.

Advanced JavaScript Runtime

The only limit is your imagination: Create your own processing tools with a popular, easy-to-use and efficient scripting language.

PixInsight's JavaScript Runtime Environment (PJSR) allows users to create their own tools to meet their specific needs, try out new algorithms, generate high-quality graphics, or perform complex tasks involving thousands of images.

This obviously makes the PixInsight platform much more powerful and versatile. Imagine for example, that you have to open and process one hundred images, adapting the applied processes to individual image properties. Wouldn't it be easier to have a script that makes it for you?

The Script Editor interface is an integrated development environment that includes a fully configurable code editor, syntax highlighting, an object browser tree that provides access to all properties and methods of core and installed objects, code completion, and much more.

Scripts are smoothly integrated with the whole PixInsight platform: all installed processes are automatically scriptable. You can apply any sequence of processes to an image, extract its processing history, and generate a script automatically with just a couple clicks. Imagine the power of this: imagine the power of your creativity.

Comprehensive Set of Image Processing Tools

PixInsight comes with a rich set of rigorous and efficient implementations to meet the needs of advanced CCD and DSLR astrophotography.

Included in the default set of processes you'll find, among many others:

  • ImageCalibration tool including the following corrections: overscan (up to 4 user-definable overscan regions), master bias, master darks, and master flats. Our image calibration tool includes a powerful dark optimization/scaling algorithm based on multiscale noise evaluation.
  • Automatic image registration and mosaic construction with the StarAlignment tool. StarAlignment performs automatic registration of deep-sky images under arbitrary translation, rotation, scaling and local distortions.
  • ImageIntegration tool with average, median, minimum and maximum image combination operators; automatic image weighting/optimization based on multiscale noise evaluation; optional 64-bit integration result; automatic persistent file caching for fast retrieval of statistical data; min/max, percentile clipping, sigma clipping, Winsorized sigma clipping, averaged (Poisson-based) sigma clipping, linear fit clipping and CCD noise model rejection algorithms; automatic image normalization and scaling, generation of pixel rejection maps and exhaustive pixel rejection and SNR statistics.
  • DrizzleIntegration tool. The Variable-Pixel Linear Reconstruction algorithm, better known as drizzle, was originally developed at the Space Telescope Science Institute to process Hubble Deep Field images. Drizzle is an algorithm for the linear reconstruction of images from undersampled, dithered data. Our implementation includes all the power and flexibility of our StarAlignment and ImageIntegration tools with arbitrary distortion correction, pixel rejection and automatic weighting based on multiscale noise evaluation.
  • Bayer Drizzle algorithm for demosaicing of DSLR and OSC raw images without interpolation.
  • Interactive and automatic gradient correction with enhanced implementations of our widely acclaimed DynamicBackgroundExtraction (DBE) and AutomaticBackgroundExtractor (ABE) tools.
  • DynamicPSF tool for interactive point spread function (PSF) fitting with elliptical Gaussian and Moffat model functions.
  • SubframeSelector script for batch evaluation, selection and weighting of images based on several subframe quality related measurements, including estimates of star profile full width at half maximum (FWHM), star profile eccentricity, and subframe signal to noise ratio weight.
  • Blink tool for interactive visual inspection and statistical analysis of images, with integrated video generation functionality.
  • ImageSolver script for automatic image plate solving of deep-sky images.
  • MosaicByCoordinates script for automatic generation of wide field mosaics based on WCS plate solving.
  • AperturePhotometry script for automatic measurement and analysis of flux intensities for known stars.
  • GradientMergeMosaic tool for generation of seamless mosaics using gradient domain manipulation algorithms.
  • Complete set of geometric transformations: resample, binning, crop/expand, arbitrary rotatation, fast rotations, translation, and dynamic cropping/rotation/scaling. Available pixel interpolation algorithms include: nearest neighbor, bilinear, bicubic spline, variable-order Lanczos with linear clamping for ringing suppression, cubic filter interpolations (parameterized Mitchell-Netravali, Catmull-Rom and cubic B-spline interpolations) with user-defined smoothness level, and Bourke's bicubic B-spline.
  • High-precision histogram and curves transformations with full real-time previsualization, full real-time previsualization of output histogram functions, real-time readouts, luminance, hue and saturation curves, zoomable histogram functions and curves up to 1000:1.
  • Iterative MaskedStretch algorithm for nonlinear image stretching with automatic protection of highlights.
  • Advanced noise reduction algorithms: TGVDenoise tool for total generalized variation regularization, ACDNR (Adaptive Contrast-Driven Noise Reduction), MultiscaleMedianTransform, wavelet denoising, GREYCstoration image normalization and SCNR (Subtractive Chromatic Noise Reduction).
  • Advanced multiscale processing. AtrousWaveletTransform tool with user-defined scaling functions, per-layer adaptive noise reduction and deringing, large-scale transfer functions, automatic significant structure detection and visualization, and the possibility of working with very large dimensional scales (only limited by the available RAM). MultiscaleMedianTransform tool for advanced multiscale morphological noise reduction and ringing-free sharpening.
  • HDRComposition tool for automatic generation of high-dynamic range linear images.
  • High-performance HDRWaveletTransform algorithm implementation that allows you to deal with any high dynamic range problem.
  • State-of-the-art regularized Richardson-Lucy and Van Cittert deconvolution algorithms with fully customizable PSF, wavelet regularization parameters, and efficient deringing algorithms. Optional step-by-step interactive control of deconvolution procedures with full previewing and evaluation of results.
  • Sophisticated PixelMath process with enhanced C syntax, multiple expressions, user-defined variables and constants, a large set of mathematical functions and operators, and an equation editor interface.
  • Morphological transformations (erosion, dilation, opening, closure, median and selection filters) with customizable n-way structuring elements, including a structuring element editor and a structure database manager.
  • Convolution tool for Gaussian and user-defined convolution filters with a powerful filter definition language and a large library of predefined, ready-to-use kernel filters.
  • CloneStamp tool for cosmetic correction of images.

Besides this default set created by the PixInsight Development Team (PTeam), new processes, scripts, tools and utilities are being written by a growing community of developers, thanks to the open architecture of the PixInsight platform.

GPU Acceleration

In preparation: Acceleration with Graphics Processing Units.

We plan on implementing GPU acceleration using the CUDA development platform. GPU acceleration will be integrated at a low level with our PixInsight Class Library C++ development framework, so it will be available to the PixInsight core application—including native implementations of JavaScript runtime objects—and most existing tools. Hopefully the first GPU-accelerated versions of PixInsight will become available during 2015. Stay tuned!