PixInsight – Interview with Juan Conejero (Pleiades Astrophoto, S.L.)

Today is a very big day for Share Astronomy!  First, we're proud to announce the addition of several new features:

  • Image Galleries
  • Articles (The Share Astronomy Guide to Observatory Site Selection)
  • Vendor Showcase

We are very excited about these changes; please take some time to check them out! (If you're an astrophotographer please be sure to upload some of your images; just go to the My Images page to get started.)

Second, as part of our celebration, we have a great interview. Today's interview is with Juan Conejero of Pleiades Astrophoto, S.L.  Pleiades Astrophoto is based in Valencia Spain and is the company responsible for PixInsight.   PixInsight has attracted a lot of attention from astrophotographers all over the world and many people think it is rapidly becoming the "next big thing" when it comes to astro image processing software. We are very honored that Juan would take the time to answer our questions and we are sure you will find this interview interesting and thought provoking.

How did Pleiades Astrophoto get started and how has it changed over the years?

My wife Maribel Carracedo and I co-founded the company in December 2007, just before starting to sell PixInsight commercial licenses in January 2008.

We became involved in image processing software in 2001, with a little freeware noise reduction utility called SGBNR. It was a very simple utility that we designed to automate some tasks that we had been carrying out in other imaging applications as manual procedures. SGBNR worked better than expected and had some success among the astrophotography community.

The nice feedback we got with this little utility encouraged us to start a more ambitious project. I started working on PixInsight in 2003, and we published PixInsight LE as a freeware application in 2004. PixInsight LE allowed us to learn and understand many important things about image processing in astrophotography, about the astrophotography community and how it has evolved, and about us and our own potential to make a significant contribution in this field. Most PTeam members joined us during this epoch. We continued working very intensely on the PixInsight project during 2005, 2006 and 2007, where we settled the foundations of the current PixInsight platform.

You have an international team of software developers. How is your application development team organized and "managed"?
One of our premises is that working on PixInsight must always be an exciting and enriching experience for all of us. PixInsight development is like a permanent brainstorming session. We grow as PixInsight grows, both personally and professionally, because we really enjoy and believe in what we are doing.

We have a broad concept of software development. I am the main developer, responsible for the architecture and overall design of the platform, and most of the implementations. PTeam members are friends and colleagues who have had a deep understanding of the project and its philosophy for a long time, some of them since the beginning. All of them are astrophotographers and some of them are also scientists and software developers, and the PixInsight project is constantly being fed by their experiences, ideas and knowledge. We are always devising and searching for new algorithms and techniques that we discuss, implement and test in a collaborative effort.

Our users play an essential role in the PixInsight project. If you take a look at PixInsight Forum, the official PixInsight users community, you'll realize that our users are actually members of our development team. PixInsight wouldn't be as it is now without their support, and more importantly, our project wouldn't have its current potential of future development without their feedback and collaboration.

What are the principal benefits of using PixInsight instead of other imaging applications?
Instead of comparing PixInsight to other imaging applications, I prefer to enumerate some of the key features of PixInsight. In this way everybody can make their own conclusions:

  • PixInsight has been conceived and designed for astronomy and other technical imaging fields.
  • PixInsight is multiplatform software. It is available as a native application on FreeBSD, Linux, Mac OS X and Windows.
  • PixInsight is available in 32-bit and 64-bit versions for all supported platforms.
  • The PixInsight Core application and all standard process modules use parallel algorithms and multithreaded implementations, so our software can use all processors and processor cores available.
  • PixInsight supports five pixel data types transparently: 8-bit, 16-bit and 32-bit unsigned integers, plus 32-bit and 64-bit floating point. Transparent support here means that (1) each image is stored and handled with its own data type in memory, and (2) all image processing tools can work equally with all data types.
  • PixInsight can work with both real-valued and complex-valued images. Complex images are necessary to implement algorithms in the frequency domain.
  • PixInsight provides a comprehensive set of more than 70 tools and 30 scripts, included in all standard distributions for all supported platforms.
  • The standard set of PixInsight tools includes many advanced implementations of modern image processing algorithms and techniques, such as wavelet-regularized deconvolution, wavelets processing, HDR wavelet transforms, GREYCstoration and contrast-driven noise reduction, and many more.
  • PixInsight has a powerful and flexible, object-oriented graphical user interface with multiple user-definable workspaces.
  • Previews are versatile GUI elements that allow trying out processes on temporary copies of images. You can define multiple previews on selected regions of interest and compare the results of different processing strategies for the same image quickly and accurately.
  • PixInsight integrates a graphical user interface and a command-line interface in the same environment. Each interface is best suited for a specific type of tasks, and we allow you to use both.
  • PixInsight provides a powerful, easy-to-use scripting engine based on the JavaScript language, directly available in the PixInsight Core application.
  • PixInsight is both an image processing environment and a development platform. Its modular design allows implementing new processing tools with a specific development framework in the C++ programming language (the PixInsight Class Library, PCL).
  • For developers, the PCL guarantees portability of PixInsight modules to all supported platforms without changing a single line of source code.
  • Our commercial software license allows installing and using PixInsight on all supported platforms and operating systems, on all machines owned by the licensed user. We treat our users as we would like to be treated.

Would you care to comment on PixInsight versus Photoshop for astronomical image processing?
Astrophotography is an extremely demanding discipline in every aspect, from its instrumental requirements to all stages of image acquisition and image processing. General-purpose imaging applications can do a reasonable job in astrophotography at the cost of forcing them to do things they have not been designed to do. For this reason common wisdom in digital astrophotography is nowadays plagued by tricky procedures and arbitrary manual manipulations that either are not necessary – or not admissible in my opinion – or reflect the inadequacy of the tools being used to the data being processed. Most of the problems that these procedures try to address are much easier to solve and understand with the appropriate software tools.

As I've said before, PixInsight has been conceived and designed as an image processing platform for astronomy and other technical imaging fields. It provides rigorous implementations of advanced image processing algorithms and techniques designed to address the specific problems that arise in astrophotography. Two good examples are our HDRWaveletTransform and HDRComposition tools, which implement algorithms created by PTeam member Vicent Peris. Both tools provide efficient solutions to the specific dynamic range problems posed by astrophotography. Just to name a couple more notable examples, our Deconvolution tool implements state-of-the-art regularized deconvolution algorithms, and our AtrousWaveletTransform tool is probably the most advanced implementation of a wavelet-based image processing tool available, with simultaneous, mutually adaptable image restoration, noise reduction and deringing regularization. Even tools that have been traditionally regarded as simple, as histogram and curves transformations, are more sophisticated and accurate in PixInsight than the corresponding tools in other general-purpose applications.

Finally, something that distinguishes PixInsight from other general-purpose applications is the fact that our users can talk to us just as they would talk to a fellow imager. We share their passion and are involved in astrophotography as they are, so we can understand and support their requirements and ideas much better than a company for which astrophotography means just a tiny fraction of the market.

Does PixInsight address all areas of astronomical image processing or do you suggest using PixInsight along with other image processing software?
Astronomical image processing is too vast and complex as to affirm that a single package can do everything. We currently provide a reasonably complete coverage in all main areas of image processing for astrophotography, including both preprocessing and postprocessing. In fact, a large number of our users are currently using PixInsight exclusively, and many more are only applying other products for accessory tasks, such as framing or labeling their processed images.

In the preprocessing part, we have specific tools for image calibration, registration (including seamless mosaic construction) and integration. It is true that other packages provide automated solutions that make preprocessing as easy as a few clicks, while PixInsight requires more user intervention. However, our tools are more capable, more accurate and efficient, and provide full control on all preprocessing stages. We are also working on batch image preprocessing scripts that will facilitate these tasks considerably.

Regarding postprocessing, I think PixInsight is currently a quite complete package. We provide efficient and powerful tools for a large set of image processing tasks: pixel intensity transformations (histograms, curves, color saturation, etc.), pixel math, background modeling, deconvolution, wavelets processing, morphological transformations, geometric transformations, noise reduction, dynamic range composition and compression, color management, and more. And we have many new tools under development.

We still lack tools to address important problems and fields of astronomical imaging. For example, we currently lack some necessary image analysis tools that we must implement as soon as possible, and we don't have a coherent set of tools specific to alignment and integration of planetary and lunar images, which is an important 'gap' that must be fixed in the short/medium term. Some users also lack layers in PixInsight, so we plan on implementing a layered composition tool soon. In the medium/long term, we also would like to have tools for photometry and astrometry.

PixInsight has an "object-oriented graphical user interface". What does that really mean to the average user? What are the benefits?
Object orientation pervades the whole architecture of PixInsight, not just its graphical user interface. For the end user, the main practical consequence of this object oriented design is that images and processes are completely independent each other. In PixInsight, a process is an independent, self-defined and self-contained object that does not need or depend on any image to exist or work.

For example, you can define a histogram transformation in purely abstract terms: you define the shadows and highlights histogram clipping points and a midtones balance (these are the main parameters of a histogram transformation in PixInsight) with a dedicated interface (a tool window). Then you can generate an instance of the HistogramTransformation process with just these data. You can then store the instance as a disk file (in XML format) for later use, generate a script from it automatically, or include it in larger objects that are heterogeneous collections of processes (ProcessContainer) to define a processing sequence or workflow. Process instances can be executed on images – obviously this is the most frequent action – on other objects, and also on special objects that change the behavior of the whole PixInsight platform. When you execute a process on an image, a processing history is automatically generated. Histories store all processes applied to images along with the corresponding image states, and can be traversed in random order. You can extract a process from a history and reuse it as you want.

In other applications, workflows are basically linear: you open an image, select a menu item, a modal dialog box opens where you change some parameters, and then you either click Cancel or OK.

In PixInsight, you don't have to follow any predefined sequence of operations. You just have some objects and play with them. Processing workflows are always nonlinear in PixInsight. Some objects are images, others are processes, others are collections of images or collections of processes. Each object has its own properties and can perform its own actions, which you can explore and use as you want. Thanks to this architecture, image processing is an exciting and creative activity in PixInsight. We want you to enjoy your processing sessions; we want you to see image processing as part of the fun, not as a problem.

Some people think PixInsight is difficult to learn but many others disagree. What is the best way for a new user to learn PixInsight?
As a highly specialized software application, I don't think PixInsight is particularly difficult. All applications have a learning curve, and PixInsight is no exception. We realize that PixInsight still has a reputation of being difficult, although this is changing quickly as we are becoming more visible within the astrophotography community. Our user interface is different from what is customary, but different does not necessarily mean more difficult. Another reason for that reputation can be that we tend to use more rigorous terminology than other applications (e.g. 'histogram transformation' instead of 'levels'), which is part of the PixInsight culture.

The best way to learn PixInsight is just starting using it. There are many written tutorials, video tutorials and processing examples that provide a wealth of material to learn PixInsight, from the very basics to advanced techniques. To get your feet wet with PixInsight, an excellent resource is Harry Page's collection of video tutorials. Watching Harry's videos is a real must for all prospective and new PixInsight users.

Finally, PixInsight Forum is a friendly, dynamic community where constructive criticism is encouraged as the best way to improve both PixInsight and the skills of our users to get the most out of our software. We invite all our users – or non-users, as everybody is always welcome – to participate actively in our official forums.

Is PixInsight a good tool for people new to astro-imaging or is it for "advanced" imagers?
I think PixInsight is an excellent tool for all imagers, from newbies to experienced astrophotographers.

Experienced imagers are often accustomed to other applications where some basic things are quite different, and they sometimes feel somewhat 'lost' in PixInsight at the beginning. A little practice overcomes this difficulty easily though, along with some changes in the way they understand some fundamental image processing tasks.

In this sense new imagers often have an advantage, as PixInsight provides them with solid foundations to develop their knowledge of image processing techniques since the beginning. There are no tricky procedures in PixInsight, just implementations of the algorithms that are necessary for each task.

PixInsight has a command-line interface along with a graphical user interface. Why? What functions are best performed with the command-line interface?
A command-line interface is more powerful and efficient than a graphical interface for certain types of tasks. Both interfaces are necessary in our opinion, and work extremely well as we have integrated them in PixInsight.

For example, in PixInsight you can open all JPEG images in the current folder by just entering "open *.jpg" in the command line. No menu selections or button clicks are necessary; just typing what you want to do and pressing Enter. Or suppose you want to rotate 90 degrees counter-clockwise all images whose identifiers end with "_r" (each image has a unique identifier in PixInsight). Instead of selecting the images manually and applying the same process several times, you can enter "r90 *_r" and press Enter. In general, the command-line interface is best suited for tasks that operate on groups of images, either image files or open images in PixInsight's workspaces.

PixInsight seems to have a huge amount of flexibility. Is there a recommended workflow for LRGB processing with PixInsight? If no, what would be a "common" workflow? How about DSLR image processing?
We have a specific tool for LRGB combination. Our LRGBCombination tool is free from the hue changes that cause so many problems in other applications (including 'salmon pinks' and similar issues), so in this aspect our implementation is much easier to use and in general it provides better results with just its default parameters. Our tool also includes some features that save additional processing steps, such as a color saturation boost, a nonlinear luminance transformation that allows an accurate adaptation of luminance and chrominance, and a wavelet-based noise reduction specific to the chrominance.

We recommend working with linear images during most of the initial stages of processing. For example, there are algorithms that make no sense with nonlinear images, such as deconvolution and color calibration routines. Some algorithms and tools, such as background modeling tools and wavelet-based noise reduction and sharpening, tend to work much better with linear images. Besides this general recommendation on preserving linearity and other basic things about avoiding histogram clippings and the like, we don't recommend any specific workflow with PixInsight. In our opinion, fixed workflows tend to be too restrictive; astrophotography requires an open-minded attitude toward image processing, and each image is usually a completely different world.

DSLR and one-shot color CCD raw images can be calibrated and processed just as other digital images in PixInsight. The only difference is an additional debayering step after calibration and integration (just before image registration). Other than this, DSLR and OSC images are just RGB images.

What is the new PixInsight Reference Documentation System? Does this mean PixInsight will have a reference manual soon?
We are currently working on an official reference documentation for PixInsight. The lack of documentation has been a big problem for a long time, and we are aimed at solving it once and for all, as soon as possible.

Writing a reference documentation for a large software project like PixInsight is a hard and complex task. Consider that we have more than 70 standard tools and more than 30 official scripts as of answering this interview, and other software developers are creating new tools, which also require their own reference documentation. Along with documentation on PixInsight tools we have to write more tutorials, more processing examples and documentation on our software development frameworks.

To facilitate creation of a large amount of coherent documentation, we need a system that allows us to concentrate exclusively on documentation contents, releasing us from anything related to the appearance of the documents. With this purpose we have created PIDoc, a new document generation language tightly adapted to our documentation requirements and idiosyncrasies. PIDoc has an easy-to-learn syntax that is superficially similar to TeX. We have implemented a documentation compiler that translates PIDoc documents into XHTML/CSS documents integrated with PixInsight's documentation system.

The documentation system consists of PIDoc, the documentation compiler, and a set of graphical interface resources that allow browsing the existing documentation from within the PixInsight Core application. A first version of the documentation system, although still incomplete, will be released officially with the next version of PixInsight.

PixInsight is described as "both an image processing environment and a software development framework". As I understand it, the open architecture of PixInsight means that anyone can develop PixInsight modules. What are PixInsight modules and how would a software developer get started?

PixInsight is a modular system. The PixInsight Core application has no image processing tools; it just provides the necessary infrastructure to implement them. All processing capabilities are provided by installable modules implementing processing tools and file formats support. A PixInsight module integrates with the whole PixInsight platform as a living component, interacting with all core resources and the rest of modules. Our modular architecture allows for much more sophisticated and flexible implementations than the usual plugins scheme used in most applications.

We provide a specific development framework for creation of PixInsight modules: the PixInsight Class Library (PCL). PCL is a C++ library that provides a high-level interface between modules and the PixInsight Core application. PCL also provides a large set of ready-to-use implementations of image processing algorithms, ranging from geometrical transformations to wavelet transforms. The PCL is available for all platforms supported by PixInsight: FreeBSD, Linux, Mac OS X and Windows, in both 32-bit and 64-bit versions, and guarantees direct portability of modules without changing a single line of source code.

PCL is free and readily available to all interested developers. We release PCL under a BSD-like license, so it can be used to develop open-source or closed-source freeware or commercial products; the decision as to how to distribute newly created modules is completely up to their authors. We release many standard PixInsight modules as open-source products, with the twofold intention of providing good PCL programming examples and stimulating PCL development.

Can you give us some examples of available PixInsight modules?
Standard PixInsight modules group several image processing tools by categories. The current set of standard categories is: BackgroundModelization, ChannelManagement, ColorCalibration, ColorManagement, ColorSpaceConversion, ColorSpaces, Convolutions, Deconvolution, Geometry, Global, Image, ImageCalibration, ImageIntegration, ImageRegistration, IntensityTransformations, MaskGeneration, Morphology, NoiseGeneration, NoiseReduction, Painting, PixelMath, Render and Wavelets.

In addition, we have a Compatibility category that groups old versions of existing tools, which must be maintained for compatibility with existing scripts, and an Obsolete category, which includes old tools implementing techniques that have been superseded by new algorithms and tools in PixInsight; an example is DDP.

You provide a scripting environment (the PixInsight JavaScript Runtime Environment – PJSR) with the product. What types of processes could be scripted? What skills or knowledge would I need to use the PJSR?
All installed processes (that is, all processes defined by installed modules) are automatically scriptable in PixInsight. This means that you can write a simple script that generates instances of existing processes, populates them with the desired parameters, and applies them to one or more images. This is the simplest application of scripts in PixInsight, and requires just the ability to write source code – PixInsight includes a full-featured code editor – and an entry-level knowledge of the JavaScript language. Any user can implement sophisticated batch processing scripts in this way, by just following the examples we provide.

For users with more programming experience, the PJSR provides a huge set of image processing routines and predefined objects. For example, you can perform Fourier transforms, convolutions, wavelet transforms, morphological transforms, and much more tasks with just a few lines of code. The PJSR also provides efficient pixel-level access to images, which allows implementing virtually any processing algorithm.

In a future version of PixInsight we'll release a new scripting engine with support for native routines written in C and C++. Native routines will be compiled on-demand by the PixInsight Core application in a completely transparent way. With this feature, the PixInsight scripting engine will rival the performance of PCL-based modules.

Editor's Note:

The PixInsight Home Page is: http://www.pixinsight.com/

You can find Harry Page's PixInsight video tutorials at: http://www.harrysastroshed.com/pixinsighthome.html

This entry was posted in Imaging, Interviews, Software. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s