Hi all,
I am glad to announce a new version of the PixInsight core application: 1.8.8-9. This is an important maintenance release providing bug fixes, new features and stability improvements on all platforms.
Installation packages for PixInsight 1.8.8-9 are now available to all licensed users for Linux, macOS and Windows:
https://pixinsight.com/dist/
As happens with all updates to the PixInsight core application, this version cannot be downloaded as an application update. You have to install version 1.8.8-9 manually:
Main Improvements
This version is an important maintenance release focused on performance and stability improvements, paving the way towards PixInsight 1.8.9. Version 1.8.8-9 fixes all confirmed bugs since the previous 1.8.8-8 release and provides some relevant new features. A partial list follows with the most important changes.
Separate CFA Channel Alignment Feature
With this feature, which was initially suggested by John Pane on this forum, you can demosaic calibrated raw CFA frames as separate red, green and blue components. This allows you to register all channels in a data set as independent images with distortion corrections, which is useful to fix channel misalignments caused by optical defects, such as lateral chromatic aberration, and differential atmospheric dispersion. The general procedure is as follows:
The use of noise reduction for image registration is crucial in this specific case to achieve an accurate distortion correction. This is because the high amount of noise present in each demosaiced channel image, especially in red and blue frames, prevents the accurate determination of centroid coordinates for each alignment star. The following screenshot compares the results of image registration applied to the following images:
(Click on the image to see a full-size version)
The separate CFA channel alignment feature involves critical changes to the Debayer, StarAlignment, ImageIntegration and DrizzleIntegration processes. With the only exception of Debayer, the rest of processes implement this feature in a completely automatic and transparent way. Special thanks to John Pane for suggesting this functionality and assisting us with testing and working data.
WeightedBatchPreprocessing Script version 2.2.0
With version 2.2.0 we have the new separate CFA channel alignment feature directly available in the Weighted Batch Preprocessing script. To implement this feature the script applies a series of process parameters that we have found to work well in most practical cases, removing the need to perform the entire channel demosaicing and alignment procedure manually, as described above, except for difficult data sets.
WBPP 2.2.0 also includes a long list of important bug fixes and improvements, which we prefer to describe in a dedicated announcement post. Once more we must point out the superb work carried out by Roberto Sartori and Adam Block, with the help of other PTeam members.
Other Improvements
Debayer. We have removed the Save/Load buttons since their functionality was not coherent with platform design guidelines. You can use process icons to save and restore different CFA settings and configurations.
CosmeticCorrection. We have implemented a robust trimmed average deviation from the median to improve reliability of this tool in AutoDetect mode. Previously a simple average deviation from the median was being used, which is a non-robust estimator of scale.
ImageCalibration. The default dark frame optimization window parameter has now a default value of zero, which means that entire frames are now used for dark frame optimization by default, for improved accuracy and robustness. Besides that, the dark frame optimization window parameter is no longer exposed on the tool's graphical interface. Previously this parameter had a default value of 1024 pixels, which was selected to limit noise estimation to a 1 Mpx square central region of the image, in order to accelerate the process. With today's common computing power this is no longer necessary. The same changes apply to the WBPP script, where we have removed the dark frame optimization window parameter since version 2.2.0.
PixelMath. The
will generate an image where each pixel will be equal to the arc tangent of y/x in radians, in the range [−π,+π], where y and x are, respectively, the corresponding pixels in the Y and X images. The signs of the arguments are used to determine the correct quadrant of the result. The generated image will always be in 64-bit floating point format.
JavaScript Runtime. A new method of the
An unclipped rotation preserves the entire target image without clipping any pixels after rotating it. The unclipped rotation task doesn't have a rotation center parameter because it always rotates images with respect to their geometric centers. To accommodate all rotated pixels in the result, the unclipped rotated image will always be bigger than the original except for the trivial cases of rotations by 0 and 180 degrees.
PhotometricMosaic Script version 3.3.1, by John Murphy. See the dedicated forum thread.
NormalizeScaleGradient Script version 1.4.2, by John Murphy. See the dedicated forum thread.
Main Bug Fixes
Version 1.8.8-9 of PixInsight includes more than 100 bug fixes, most of them unnoticed by our users and hence unreported. Here are the most important bugs that we have fixed in this version:
Windows: silent crash on application exit. This bug was being caused by an incorrect finalization of the Chromium web browser component of the PixInsight core application. The bug was causing a crash each time the application was launched and terminated, fortunately without any consequences to the user. However, of course these crashes were being registered and could be reported by the Event Viewer application. This bug was only present on Windows, not on macOS and Linux. See one of the many bug reports.
Windows: RAW format support module unable to open files with non-ASCII characters in their file paths. This bug has been present in version 1.8.8-8 since the adoption of the latest LibRAW 202101-snapshot version. This bug was not present on macOS and Linux, and is now fixed on Windows. There are multiple reports and complaints about this bug, very especially from our Japanese, Chinese, Russian and French users, among many others. I apologize for the trouble.
Grayscale images were not being saved correctly as grayscale bitmaps in PNG format. This is now fixed. See the original bug report.
Rotation center coordinates wrongly applied by the pcl::Rotation class (C++), Image.rotate() method (JavaScript), and PixelMath's rotate() generator. This is now fixed and all of these functions work correctly. See the original bug report.
Breaking Changes
We always make big efforts to preserve backwards compatibility scrupulously in our development frameworks across successive versions of PixInsight. However, sometimes there are changes that are unavoidable and can generate problems with existing implementations. We have verified that the following change cannot cause any problems with the current source code pertaining to the official PixInsight 1.8.8-9 distribution (we already have implemented the necessary changes). However, we must inform about it because it could break unofficial third-party modules and scripts, although with very small probability. We apologize in advance for any possible trouble that this may generate.
pcl::Rotation class (C++) and PixelMath's rotate() generator: the meaning of center of rotation coordinates has changed. In previous versions the coordinates of the center of rotation were specified as displacements in pixels relative to the geometric center of the image. From now on the center of rotation is specified directly in the image coordinate system, where the origin is located at the top left corner of the image, and coordinates grow toward the right and bottom edges.
Updated Support Libraries
* Qt updated to version 5.15.5 LTS on Linux, macOS and Windows.
* Clang version 12.0.5 with the macOS 11.3 SDK used for all macOS development.
* Microsoft Visual Studio 2019 version 16.11.2 used for all Windows development.
Recommended Platforms and Supported Operating Systems
The reference implementation of PixInsight, where you may expect the maximum performance and best user experience, is the Linux version. Currently our primary development platforms are:
On FreeBSD and Linux we strongly recommend running PixInsight on the KDE Plasma desktop environment.
PixInsight 1.8.8-9 for Linux requires GLIBC 2.27 or a newer version.
PixInsight 1.8.8-9 for macOS is only compatible with macOS 10.14, 10.15 and 11.x Big Sur. macOS 10.13 and older versions are no longer supported. All of our macOS installation packages are digitally signed with our corporate Apple developer certificates and have been notarized by Apple.
PixInsight 1.8.8-9 for Windows is compatible with Windows 10 exclusively. Windows 8.1, Windows 7 and older versions are not supported. The application might run on Windows 7, but there is no guarantee and please do not report problems on Windows 7 and Windows 8. All of our Windows installation executables have been digitally signed with our corporate extended validation (EV) code signing certificate.
Known Issues
FreeBSD and Linux
macOS
You only have to do this once, since the scaling factor will be stored in application preferences automatically. Of course, if you already are using a version 1.8.6 or later and the interface looks correct, then you don't need to do this; this is only required for new installations.
Windows and macOS
All Platforms
Enter the following command from a terminal:
macOS
Remove the following file:
Windows
Remove the following file:
In all cases you need administrative privileges to remove the required file, which you also need to install PixInsight. After this simple action, PixInsight will run without problems on your old machine.
—————————————
Thank you for your attention.
I am glad to announce a new version of the PixInsight core application: 1.8.8-9. This is an important maintenance release providing bug fixes, new features and stability improvements on all platforms.
Installation packages for PixInsight 1.8.8-9 are now available to all licensed users for Linux, macOS and Windows:
https://pixinsight.com/dist/
As happens with all updates to the PixInsight core application, this version cannot be downloaded as an application update. You have to install version 1.8.8-9 manually:
- Linux: The installation packages are xz-compressed tar archives (.tar.xz). To install one of these archives, just extract its full contents on any directory, preferably on one located under your home directory. Then become root and run the installer program from a terminal. Normally you should just type "yes" and press Enter to accept the default settings. Say './installer --help' for detailed information on command-line arguments.
- macOS: If you have a previous version of PixInsight already installed, you must uninstall it by moving the /Applications/PixInsight folder to trash (also known as bin on macOS 10.15 and later). Run the .pkg installation package and follow the instructions. All our macOS installation packages are digitally signed with our corporate Apple developer certificate and have been notarized by Apple.
- Windows: If you have a previous version of PixInsight already installed, please uninstall it using Control Panel or Add or Remove Programs. Then run the installation package for version 1.8.8-9 and follow the instructions. All executable files in the PixInsight distribution for Windows, as well as our installation packages, have been signed with our corporate Extended Validation (EV) code signing certificate.
Main Improvements
This version is an important maintenance release focused on performance and stability improvements, paving the way towards PixInsight 1.8.9. Version 1.8.8-9 fixes all confirmed bugs since the previous 1.8.8-8 release and provides some relevant new features. A partial list follows with the most important changes.
Separate CFA Channel Alignment Feature
With this feature, which was initially suggested by John Pane on this forum, you can demosaic calibrated raw CFA frames as separate red, green and blue components. This allows you to register all channels in a data set as independent images with distortion corrections, which is useful to fix channel misalignments caused by optical defects, such as lateral chromatic aberration, and differential atmospheric dispersion. The general procedure is as follows:
Debayer
Version 1.8.8-9 includes a new version of the Debayer tool with a new output mode parameter that you can use to select the separate RGB channels option. When this option is selected, Debayer will write three files for each demosaiced frame with the _R, _G and _B suffixes, respectively for the red, green and blue channels of the demosaiced image. These files will contain new metadata items that the StarAlignment and DrizzleIntegration tools will detect automatically.
StarAlignment
Now you should register all of the individual (demosaiced) channel images with respect to the same reference image, which should be one of the green channels since green has the highest SNR. Depending on your data, you'll probably have to increase the noise reduction parameter of StarAlignment (Star Detection section) to 2 pixels or more, since demosaiced channel data have quite low SNR in general, especially for the red and blue channels. Select the thin plate splines registration model and enable distortion correction. You normally can disable local distortion if your channel misalignment issues are not very strong. Of course, make sure that the generate drizzle data parameter is enabled.
ImageIntegration
Integrate your red, green and blue channel images separately to generate the corresponding integrated channels. Make sure that you are updating the .xdrz files generated by StarAlignment.
DrizzleIntegration
Select the .xdrz files for your red, green and blue channels to generate three separate drizzle integrations. Enable the CFA drizzle option. This will produce your three drizzle-integrated channels.
ChannelCombination
Use this tool to combine the three drizzle-integrated or normally integrated images into an RGB color image.
The use of noise reduction for image registration is crucial in this specific case to achieve an accurate distortion correction. This is because the high amount of noise present in each demosaiced channel image, especially in red and blue frames, prevents the accurate determination of centroid coordinates for each alignment star. The following screenshot compares the results of image registration applied to the following images:
RGB
: Unaligned demosaiced CFA channels.RGB_DC
: Demosaiced CFA channels aligned with distortion correction and no noise reduction.RGB_DC_NR
: Demosaiced CFA channels aligned with distortion correction and noise reduction set to 2 pixels.RGB_DC_NR4
: Demosaiced CFA channels aligned with distortion correction and noise reduction set to 4 pixels.
(Click on the image to see a full-size version)
The separate CFA channel alignment feature involves critical changes to the Debayer, StarAlignment, ImageIntegration and DrizzleIntegration processes. With the only exception of Debayer, the rest of processes implement this feature in a completely automatic and transparent way. Special thanks to John Pane for suggesting this functionality and assisting us with testing and working data.
WeightedBatchPreprocessing Script version 2.2.0
With version 2.2.0 we have the new separate CFA channel alignment feature directly available in the Weighted Batch Preprocessing script. To implement this feature the script applies a series of process parameters that we have found to work well in most practical cases, removing the need to perform the entire channel demosaicing and alignment procedure manually, as described above, except for difficult data sets.
WBPP 2.2.0 also includes a long list of important bug fixes and improvements, which we prefer to describe in a dedicated announcement post. Once more we must point out the superb work carried out by Roberto Sartori and Adam Block, with the help of other PTeam members.
Other Improvements
Debayer. We have removed the Save/Load buttons since their functionality was not coherent with platform design guidelines. You can use process icons to save and restore different CFA settings and configurations.
CosmeticCorrection. We have implemented a robust trimmed average deviation from the median to improve reliability of this tool in AutoDetect mode. Previously a simple average deviation from the median was being used, which is a non-robust estimator of scale.
ImageCalibration. The default dark frame optimization window parameter has now a default value of zero, which means that entire frames are now used for dark frame optimization by default, for improved accuracy and robustness. Besides that, the dark frame optimization window parameter is no longer exposed on the tool's graphical interface. Previously this parameter had a default value of 1024 pixels, which was selected to limit noise estimation to a 1 Mpx square central region of the image, in order to accelerate the process. With today's common computing power this is no longer necessary. The same changes apply to the WBPP script, where we have removed the dark frame optimization window parameter since version 2.2.0.
PixelMath. The
combine()
generator has now a new op_atan2()
operator. This feature has been suggested on this forum. The op_atan2()
function represents a pixel wise arc tangent operation. Given two images X and Y, the expression:combine( Y, X, op_atan2() )
will generate an image where each pixel will be equal to the arc tangent of y/x in radians, in the range [−π,+π], where y and x are, respectively, the corresponding pixels in the Y and X images. The signs of the arguments are used to determine the correct quadrant of the result. The generated image will always be in 64-bit floating point format.
JavaScript Runtime. A new method of the
Image
object is now available:void Image.rotateUnclipped( Number angleRadians[, Number fill0[, Number fill1[, ..., Number fillN]]]] )
void Image.rotateUnclipped( Number angleRadians[, Array fillValues]] )
An unclipped rotation preserves the entire target image without clipping any pixels after rotating it. The unclipped rotation task doesn't have a rotation center parameter because it always rotates images with respect to their geometric centers. To accommodate all rotated pixels in the result, the unclipped rotated image will always be bigger than the original except for the trivial cases of rotations by 0 and 180 degrees.
PhotometricMosaic Script version 3.3.1, by John Murphy. See the dedicated forum thread.
NormalizeScaleGradient Script version 1.4.2, by John Murphy. See the dedicated forum thread.
Main Bug Fixes
Version 1.8.8-9 of PixInsight includes more than 100 bug fixes, most of them unnoticed by our users and hence unreported. Here are the most important bugs that we have fixed in this version:
Windows: silent crash on application exit. This bug was being caused by an incorrect finalization of the Chromium web browser component of the PixInsight core application. The bug was causing a crash each time the application was launched and terminated, fortunately without any consequences to the user. However, of course these crashes were being registered and could be reported by the Event Viewer application. This bug was only present on Windows, not on macOS and Linux. See one of the many bug reports.
Windows: RAW format support module unable to open files with non-ASCII characters in their file paths. This bug has been present in version 1.8.8-8 since the adoption of the latest LibRAW 202101-snapshot version. This bug was not present on macOS and Linux, and is now fixed on Windows. There are multiple reports and complaints about this bug, very especially from our Japanese, Chinese, Russian and French users, among many others. I apologize for the trouble.
Grayscale images were not being saved correctly as grayscale bitmaps in PNG format. This is now fixed. See the original bug report.
Rotation center coordinates wrongly applied by the pcl::Rotation class (C++), Image.rotate() method (JavaScript), and PixelMath's rotate() generator. This is now fixed and all of these functions work correctly. See the original bug report.
Breaking Changes
We always make big efforts to preserve backwards compatibility scrupulously in our development frameworks across successive versions of PixInsight. However, sometimes there are changes that are unavoidable and can generate problems with existing implementations. We have verified that the following change cannot cause any problems with the current source code pertaining to the official PixInsight 1.8.8-9 distribution (we already have implemented the necessary changes). However, we must inform about it because it could break unofficial third-party modules and scripts, although with very small probability. We apologize in advance for any possible trouble that this may generate.
pcl::Rotation class (C++) and PixelMath's rotate() generator: the meaning of center of rotation coordinates has changed. In previous versions the coordinates of the center of rotation were specified as displacements in pixels relative to the geometric center of the image. From now on the center of rotation is specified directly in the image coordinate system, where the origin is located at the top left corner of the image, and coordinates grow toward the right and bottom edges.
Updated Support Libraries
* Qt updated to version 5.15.5 LTS on Linux, macOS and Windows.
* Clang version 12.0.5 with the macOS 11.3 SDK used for all macOS development.
* Microsoft Visual Studio 2019 version 16.11.2 used for all Windows development.
Recommended Platforms and Supported Operating Systems
The reference implementation of PixInsight, where you may expect the maximum performance and best user experience, is the Linux version. Currently our primary development platforms are:
On FreeBSD and Linux we strongly recommend running PixInsight on the KDE Plasma desktop environment.
PixInsight 1.8.8-9 for Linux requires GLIBC 2.27 or a newer version.
PixInsight 1.8.8-9 for macOS is only compatible with macOS 10.14, 10.15 and 11.x Big Sur. macOS 10.13 and older versions are no longer supported. All of our macOS installation packages are digitally signed with our corporate Apple developer certificates and have been notarized by Apple.
PixInsight 1.8.8-9 for Windows is compatible with Windows 10 exclusively. Windows 8.1, Windows 7 and older versions are not supported. The application might run on Windows 7, but there is no guarantee and please do not report problems on Windows 7 and Windows 8. All of our Windows installation executables have been digitally signed with our corporate extended validation (EV) code signing certificate.
Known Issues
FreeBSD and Linux
- Recent versions of the KDE Plasma desktop environment include a morphing popups desktop effect that causes problems with recent PixInsight versions. If this effect is enabled, it slows down some dragging operations in the PixInsight core application, such as dragging icons and view selectors. You should disable this effect, which is very easy from KDE's System Settings panel.
- On recent versions of the KDE Plasma desktop environment, a display tearing prevention option (v-sync) is enabled by default. This option can cause input lag problems, such as slow cursor movement over image windows, with certain hardware configurations. If you experience these problems, this option should be disabled for optimal PixInsight performance:
- System Settings > Display and Monitor > Tearing prevention: set to 'Never'
- Click Apply
- PixInsight is not compatible with the open-source Nouveau graphics driver. If your distribution is using Nouveau, you must remove it to use the proprietary NVIDIA driver in order to use PixInsight.
macOS
- On Apple MacBook laptops with dual graphics cards,we recommend disabling the integrated Intel HD graphics adapter before running PixInsight for maximum performance and stability. This can be done very easily:
- System Preferences > Energy Saver > Automatic graphics switching: disable.
- On some laptops with nonstandard screen resolutions, such as the Microsoft Surface, PixInsight cannot find valid screen scaling factors automatically. On these machines, you may have to run the PixInsight core application with the --ui-scaling command-line argument. For example, to apply a UI scaling factor of 2:
C:\Program Files\PixInsight\bin\PixInsight.exe --ui-scaling=2
You only have to do this once, since the scaling factor will be stored in application preferences automatically. Of course, if you already are using a version 1.8.6 or later and the interface looks correct, then you don't need to do this; this is only required for new installations.
Windows and macOS
- There is a known bug in the Blink module that leads to a crash on Windows and macOS, but not on Linux. Steps to reproduce:
- Load some RGB color images into Blink
- Click on the 'Link RGB channels' icon in Blink
- Click on the 'Apply an automatic histogram stretch to all images' icon in Blink
- Click on the 'Link RGB channels' icon in Blink again
All Platforms
- The StarNet module uses the TensorFlow library, which requires a processor with support of AVX2 and FMA instructions. This excludes very old machines with Intel processors released before 2013 and Apple machines with M1 processors (because the Rosetta emulator on macOS Big Sur does not support AVX2 instructions). The macOS installation package for version 1.8.8-9 includes a post-install script that will delete the StarNet module automatically when the host machine runs an ARM processor, so there should be no problems on Apple Silicon computers.
UPDATE — We are receiving reports of Apple machines with M1 processors where the StarNet module is not being deleted automatically by the installer (probably because the system is not reporting the actual hardware architecture of the host machine to our post-installation script). In these cases you'll have to remove the StarNet module manually as described below. Sorry for the inconvenience.
If you are using a vintage pre-2013 Intel processor, or if the StarNet module has not been deleted automatically on your M1 machine, PixInsight 1.8.8-9 won't work as it is installed by default. However, this problem is very easy to fix: just remove the StarNet module. Do the following:
Enter the following command from a terminal:
sudo rm /opt/PixInsight/bin/StarNet-pxm.so
macOS
Remove the following file:
/Applications/PixInsight/bin/StarNet-pxm.dylib
Windows
Remove the following file:
C:\Program Files\PixInsight\bin\StarNet-pxm.dll
In all cases you need administrative privileges to remove the required file, which you also need to install PixInsight. After this simple action, PixInsight will run without problems on your old machine.
—————————————
Thank you for your attention.