Author Topic: PCL 01.00.01.081 Standard Distribution Released  (Read 19155 times)

Offline Pleiades

  • Administrator
  • PixInsight Enthusiast
  • *****
  • Posts: 88
PCL 01.00.01.081 Standard Distribution Released
« on: 2006 October 10 02:28:22 »
We are excited to announce that the first release version of the PixInsight Class Library, PCL 1.0.1.81, is now available:

http://pleiades-astrophoto.com/download/STD/index.html

PCL is an ISO C++ framework to build PixInsight modules implementing new processes, file formats, and their associated user interfaces.

With this new release, PCL has all you need to write extremely sophisticated and versatile image processing tools. In a glance, major features of PCL 1.0 include:

- A platform-independent development framework. PCL is highly portable code and has virtually no dependence on any particular operating system or hardware architecture. When the core PixInsight application is ported to Linux 32/64 and Mac OS X, modules developed with PCL will be directly portable to those platforms, besides MS Windows, without changing a line of code.

- Seven pixel formats (sample formats) supported transparently:

* Real images, 8, 16 and 32-bit integers.
* Real images, 32 and 64-bit IEEE 754 floating point.
* Complex images, 32 and 64-bit IEEE 754 floating point.

To support all of these formats, developers have to code their processes just once. PCL generates the necessary support code automatically, thanks to sophisticated C++ templates.

- A comprehensive set of image processing algorithms. PCL includes high-performance implementations for a wide range of ready-to-use algorithms, from geometrical transforms to advanced multiscale processing techniques (e.g., wavelets), with integrated support of the FITS, TIFF and JPEG image formats.

- A high-level, secure interface to the core PixInsight application. Modules written around the PCL can communicate with the core application to manage image windows, views, previews, process instances, processing consoles, and all major elements of the platform and its graphical and command-line user interfaces.

- Definition of processes by means of an abstract interface that automatizes all tasks related to the integration of processes in the PixInsight platform. Developers only have to concentrate on defining the formal parameters and functionality of their processes, and PixInsight automatically manages process icons and scripts, and integrates each process and its associated user interfaces in the platform environment.

- A rich set of powerful tools for definition of user interfaces. PCL provides a complete set of GUI controls that allow developers to build complex and highly interactive interfaces: from all kind of buttons to tree views, tab boxes, combo boxes, aggregate controls for easy handling of numerical parameters, and much more. Developers have full control over painting and user interaction through a complete set of interface events, including mouse, keyboard, and internal events.

- Static and dynamic processing interfaces. In the PixInsight platform, static interfaces allow gathering process parameters and defining how instances of a process are generated. This is all that most processes need. For example, HistogramTransform, Resample and ColorManagementSetup are static interfaces. Dynamic interfaces add the ability to interact with image windows through a rich and versatile protocol. A dynamic interface is able to generate arbitrary graphics on image windows and receive interface events generated on them. DynamicCrop, DynamicBackgroundExtraction and CloneStamp are three examples of dynamic interfaces.

- Module developers can define GUI and command-line interfaces for their processes. Of course a graphical interface is always necessary, and especially in a graphics-oriented environment like PixInsight. However, command-line interfaces are powerful and provide some unique advantages that experienced users know very well. With PCL, PixInsight developers have access to the best of both worlds.

- Support for parallel processing with threads and thread synchronization classes. With the new Thread, Lock and AutoLock PCL classes, module developers can incorporate parallel processing capabilities to their implementations. Many standard processes are being developed using these classes by the Pleiades Software team; DynamicBackgroundExtraction and DynamicAlignment are two good examples.

- PCL is completely free and readily available to everybody. It does not impose any limit, neither on the kind of works nor on how they are distributed and/or commercialized. Developers are free to distribute their PCL-based PixInsight modules as freeware, shareware or commercial products, either as open-source or proprietary projects, without having to pay any fee or royalty to use PCL.

*************************

IMPORTANT

Existing modules must be recompiled and linked against PCL build 81 before attempting to install them on the latest build 223 of the core application.

Modules linked against PCL 1.0.1.81 will be binary-compatible with the final release of the PixInsight 1.0 core application.

*************************

The new PixInsight Standard Distribution package includes:

* PixInsight Standard 1.0.1.223 time-limited beta application. It expires on 2006 October 31. A new release will be available before the expiration date of this version.

* The entire PCL framework version 1.0.1.81, ready for production of PixInsight modules.

* The complete source code of the following standard PixInsight modules:

- Standard File format modules: FITS, JPEG, JPEG2000 and TIFF

- Standard process modules: Geometry, Global, Image, and TransferCurves (except the AutoHistogram process).

Note that the TransferCurves module includes the complete source codes of the HistogramTransform, CurvesTransform, DigitalDevelopment, and ExponentialTransform processes and their interfaces, among others. The Geometry module includes complete sources for all geometric transformations. This is indeed a good amount of source code, including many advanced algorithms and sophisticated implementations that we are releasing as free reference material for PixInsight developers.

The source codes of the DynamicCrop and TransferCurves processes and interfaces provide you with enough information and coding examples to implement virtually any image processing tool on the PixInsight/PCL framework, even extremely sophisticated ones.
__________________________________________________________________________________

Feel free to write on PixInsight Forum to let us know your suggestions, opinions, complaints, criticisms, and of course bug discoveries.

Enjoy it!

The Pleiades Software Development Team