2026-10-03 APP 2.0.0-beta47 has been released !
This is a very big release... many code optimizations/rewrites, many parts of APP are much faster and more precise, especially star analysis and registration are much faster ! Big mosaics will go much faster 🙂
And we introduce a new preview filter, which includes the new Adaptive Deep Sky Stretch and a General Levels Stretch, this has been long over due. The old preview filter (the panel on the right side to stretch and preview your data) has not been updated for a couple of years and it is a critical part of any APP session.
Adaptive Deep Sky Stretch or ADSS is a much more intuitive stretch algorithm. It is also color preserving (which is a great new addition in itself ! ) which means that the highlights are no longer bleached, color is maintained from the linear data while stretching. You can simply stretch your data using the sky background level and signal width sliders which work much easier and more intuitive. You no longer need to fiddle with the old complicated sliders with zoom buttons. All the zoom buttons for the sliders are made redundant. And you can enter slider values in the slider value fields yourself. I will make a youtube video in the coming days to explain and fully introduce ADSS. Once the video is ready, it will be highlighted on the forum.
RGB Combine upgrade !. The RGB Combine Tool has been rewritten mostly. The tool is faster and easier to use and most importantly, the Luminance slider to inject a luminance channel or channels into the RGB composite is now working correctly. It no longer bleaches the RGB colors. Combined with the new ADSS preview, you will get much better and easier great composites with great color! I will also explain this in a new youtube video.
2026-10-03- UPDATE FROM MABULA
I am glad to announce that I am finally fully healed, my energy and strength are really back now !
In the past 3 weeks while recovering, I have prioritzed the release of 2.0.0-beta47. So much work has accumulated into this release that it needed to be tested extensively, but also it needed to be available for all of you. Unless a big problem is reported for this release, I expect it will be the final release, finally !, before the official 2.0.0 release.
Astro Pixel Processor 2.0.0-beta47 release notes
This release is huge, it is a culmination of much work on different parts of APP. Many code optimizations, many parts of APP were rewritten. Most importantly, we introduce a new preview panel with 2 options, Adaptive Deep Sky Stretch and General Levels Stretch:
- Adaptive Deep Sky Stretch or ADSS
ADSS is a new color-preserving stretch filter with data adaptive contrast injection and adaptive highlight protection to protect the stars, so the star sizes will stay smaller while stretching. Simply stretch the data now with 2 easy and intuitive sliders called background level and signal width. With the background level slider you can control where the peak of the histogram is. For instance, if you set it at 20%, the peak will be at 20% of the data range. The signal width slider controls the actual black point adjustment of the stretch and how strongly the data will be stretched around the sky background level. When adjusting contrast, the brightness of the stretch is maintained versus the old behaviour where the stretch brightness was darkened when injecting contrast. And the contrast injection is automatically done centered around 2 standard deviations above the sky background level where real and interesting signal starts. It is not the same as the old contrast slider at all. You will be able to enhance object details much easier with this adaptive control. You can easily switch between color preserving and not preserving stretching with a 0-100% color preservation slider. Extra color saturation is similar to the old preview filter, but you do not need to click anything to enable it. Simply move the saturation slider. You can protect the lowlights for color saturation with the background threshold slider. The actual saturation injection is also improved and more adaptive to the data. The saturation control wlll automatically protect bright star cores from oversaturation. We also added to sliders to enhance large detailed structures in the data. It is slighly similar to the old sharpen slide, but it works much faster ! and has control to protect the stars. You can enhance big nebula/galaxy details much easier now with the detail scale slider. You can set the default stretch at any time by clicking on the reset button, and you can reset each slider individually by double clicking the slider. Finally you can easily set the slider value yourself, if you want the sky background to be at 25% of the data range, simply enter 25 in the background level field and enter.
- General Levels Stretch
Simply change the preview algorithm to a general levels stretch by clicking on the General Levels Stretch button. The panel will be changed with new controls for a general stretch. If you need to look at your data unstretched, use the General Levels Stretch with the default settings which can always be set with the reset button. This is easy when looking a saved stretch files, like your JPGs, PNGs or TIFFs that were stretched earlier. You can still use contrast, color preservation, saturation, lowlight/highlight protection and detail scale sliders in this stretch mode as well. So you can also still easily modfy saturation or contrast perhaps in already stretched images. See the below screenshot, I have saved the stretched as shown above for ADSS to a stretched JPG. This JPG now has added saturation and contrast without using the basic levels stretch for black, white and gamma.
The actual linear data that was stretched in the above note for ADSS can be seen by loading it into the image viewer and setting the General Levels Stretch and clicking reset for no modification of the data at all:
-
- RGB Combine update ! Fixed luminance injection
We have given the RGB Combine tool a big update. All the internal calculations have been rewritten from scratch, they are faster now, more precise and most importantly, the luminance injection into the RGB composite using 1 or more luminance channels now works as expected. The colors are no longer bleached when using L injection. The window for channel input has been improved, it should look more clear now what you are loading and what composite formula you would like to use. Please look at the below screenshots. One image shows a narrowband SHO composite with formula SHO (Hubble) 3. This formula is not using the L injection/modification of the output RGB data. The other screenshot shows the same data with the formulat SHO (Hubble) 4 where L injection is done using the hihgest quality channel, which is H-alpha. It evens uses 100% L injection. Notice that the colors are maintained, not bleached, the stars are better and there is much less noise. This is what L injection should do.
- UPGRADED & IMPROVED performance camera RAW support with LibRaw 0.22.1
We have upgraded RAW support (Canon, Nikon, Sony etc.. RAW filetypes ) by updating our dependency on LibRaw to the most recent 0.22.1 version from the 202502 snapshot release. On Windows, the RAW read performance is improved by 25% by optimizing our build process of the Libraw DLL. On linux and macOS, the RAW read performance improvement is 5-10%. This update was long overdue and this update has more support for newer cameras, which will be detailed below in these release notes and it includes many bug fixes.
- CANON RAW SUPPORT (fully tested)
added support for model EOS R1, EOS R5 MARK II, EOS R6 MARK III, EOS R50 V
- KODAK KDC & DCR SUPPORT
We have added support now for KODAK KDC & DCR files. The File Chooser has 2 new filters for these filetypes as well. The camera models that are supported can be found here: https://www.astropixelprocessor.com/community/camerasupport/kodak-kdc-dcr-tested-camera-models/#post-34820
- FITS READ/WRITE support updated to nom.tam.fits 1.23.0
- FITS READ Performance boost
We have adjusted the way fits files are read which gives a nice performance boost of 20-25% for reading fits files.
- IMAGE LOADER concurrency improvedÂ
We have updated/adjusted many concurrency code related to how images are loaded because we realized that some of the code was giving perfromance overhead that we could avoid. Overall it means that everywhere in APP where images are loaded, they are executed a bit faster. Allthough this release note is tiny, the work to improve this everywhere in APP was significant and it does give a nice boost to overall performance of APP. Users with less powerfull machines should benefit most from this improvement.
- INTEGRATOR concurrency improved
Similar to the previous release note, image integration gets a performance boost as well by modifying our concurrency code.
- CALIBRATION concurrency improved
All calibration paths with bias, flatdarks, darks, flats and Bad Pixel mapping are updated in the same with more efficient concurrency code making the whole calibration engine perform a bit faster.
- Multi-Band Blending code optimized
We have further optimized the code for Multi-Band Blending. MBB was not a big performance bottleneck, but this improvement makes MBB significantly faster which does help with light frame integration performance when MBB is enabled.
- Statistics median calculation, better performance and more robust
In the previous APP versions, we implemented many code optimizations including faster median calculations. These are now further enhanced in terms of robustness to find the median properly even in data with many duplicate values. A simple way to calculate the median, is to sort the dataset completely and then to take the middle value. The new median finders in APP avoid needing to sort the whole dataset and can still find the real median so they perform quite a bit faster. Modules that benefit from this clearly are Local Normalization Correction in 6) Integrate, 5) Normalize and also Star Analysis.
- Statistics Multi-Resolution Support Gaussian Noise estimate completely rewritten, more performance and more accurateÂ
We have completely renewed the whole code to calculate noise estimates. The estimates are much more robust now and they are found much faster. Depending on hardware the calculations are 2x-5x faster. Of course, precision is most important here so the new code really is focused on precision and less on performance. But the performance gain is still clearly noticable when running 5) Normalize.
- Statistics sorting of data using LSD RADIX sorting, big performance improvement !
In many parts of APP we need to sort data to calculate robust statistics, like sorting pixels values in integration to do outlier rejection or to calculate the lokation/sky background of the light frames. We have now implemented several different versions of LSD Radix sorting ( https://en.wikipedia.org/wiki/Radix_sort ). When APP is started, APP will run a couple of little benchmarks to see which implementations will perform the best, on what kind of data set size, on the hardware on which it is run. More modern machines with bigger cache can benefit from different algorithms compared to older machines or machines with less cache. Especially in 5) Normalize, this gives a big performance boost now where we need to sort the pixels of complete images. The radix sort is now done using a single thread and still outperforms the previous sorting method that we used that was using multiple threads, so on less powerfull/older computers this improvement gives a very noticable performance gain. It also means that once we can make this new Radix sorter concurrent, the performance improvement will again be big going forward. In the below screenshot you can see in the startup log that APP perfroms the calibration for the hardware based sorting strategy.
- Image integration uses MSD RADIX sorting for floats between 0-1, performance improvement !
Due to further optimization of the pixel stack statistics while integrating with outlier rejection turned on, image integration performs faster. This holds both for integration of calibration frames like bias, dark, flat and for light frames. The pixelstacks with or without weights are now sorted more quickly using specialized MSD radix sorting where we use the knowledge that pixel values are limited to the 0-1 range. That really helps with getting more performance in sorting. Integrating 10-50 images will not show much performance improvement, but integrating 100s of frames or more should really show good performance improvement.
- LNC2 rejection has been optimized, again performance improvement !
We have optimized LNC2 rejection in terms of performance. It runs clearly faster now. In integration, the LNC2 rejection phase is the phase just before the actual pixel integration starts. You will see that it goes much faster.
- Star Analysis big performance improvement !Â
We have optimized and or rewritten many code parts of star analysis. It runs quite a bit faster now which is great, because Star Analysis was a bit of a bottle neck for performance of APP.
- Registration 2-view big performance improvement !
We have rewritten many parts of the registration engine making it perform much faster and more precise as well. It will also consume less memory will registering frames. When processing mosaics where 100s of 2-view registrations need to be done, you will notice that is performing much faster !
- Registration Calibrated Projective performane improvement !
We have optimized the steps to calculate the focal lenghts for all the images and the actual calibrated projective mosaic calculations. They run quite a bit faster now.
- RGB/Multi-Channel data interpolation performance improvement !
We have optimized data interpolation for RGB images so it will run a bit faster. This increases performance for advanced normalization and light frame integration.
- Monochrome data interpolation fixed for Multi-Narrowband data
We have fixed an issue with data interpolation of monochrome data coming from Multi-Narrowband filters. This issue would manifest if you only extract 1 channel, like H-alpha from H-alpha + O3 data.
- Optimized all projections like Mercator, Hammer-Aitoff in 4) Register, performance improvement !
We have implemented very good algebra improvements in the projection code for all the different projections. The code will perform much faster for all these projections in the calibrated projective calibration mode. It means that image integration of this kind of data will perfrom quite a bit faster.
- Preview Stretch, optimized invert data and neutralize-BG options
The preview filter has 2 simple options to quickly study your Multi-Channel/RGB/COLOR data. Neutralize-BG will quickly neutralize the sky background based on the sky background values that APP finds in the R,G,B channels. And invert will simply invert all pixel values, black becomes white, green becomes magenta etc... Both these algorithms have been optimized, they will consume less memory and will perform a bit faster.
- HSL Selective Color Tool fixed
We fixed a big in the HSL Selective Color tool that could sometimes give inconsistent results.
- RGB Combine update ! Fixed luminance injection