List of changes in each version
v1.14.0
- Fix mono bmp reader and writer
v1.13.1
- Fix dynamic loader broken when included without being enabled
v1.13
- Add AVX2 color correction for RGB8 and BGR8 and optimized RGBa8 and BGRa8
- Fix some return codes having the wrong prefix when converted to a string using StringFromPEAK_IPL_RETURN_CODE
v1.12.1
- Fix a crash when the factors are changed while a binning instance currently bins an image
- Fix ARM NEON debayering in fast mode
v1.12
- Add the Mono16 pixelformat
- It can be converted from and into
- Can be saved and read from/to png, bmp and tiff files
- Add IsFloat Function to check if a pixelformat uses the floating point data type
- Add support for writing and reading a limited number of TIFF (Tagged Image File Format) files
- No compression and compressions according to TIFF Baseline are supported
- Supported color spaces: RGB and black as zero
- Support for 8 and 16-Bit per sample (10 and 12-Bit are supported by the Tag
TIFFTAG_BITSPERSAMPLE)
- Image construction from stripes
- Python Bindings:
- The bindings now embed their direct runtime dependencies. With this change the python package can be used without requiring any setup to be installed.
v1.11
- Fix debayer artifacts for fast conversion with image widths not divisible by 8 on some embedded systems and when converting into mono formats
- Change the python bindings to use the Python Limited API
- The minimum required python version is 3.11. They can be installed on any later 3.x version
- Fix an error that prevented the use of the dynamic loader
v1.10
- Add support for pixelformat PixelFormatName::YUV422_8_UYVY
- Fix debayer artifacts for fast conversion with image widths not divisable by 8 (10 and 12 bit AVX2)
v1.9.3
- Add digital signature to dotnet assemblies
- Fix debayer artifacts for fast conversion with image widths not divisable by 8 (8 bit AVX2)
- Fix SharpnessAlgorithm::HistogramVariance returning NaN for black images
v1.9.2
- Add static functions to peak::ipl::Library to configure multithreading and simd, and get the library version.
v1.9.1
- Fix [ImageConverter::SupportedOutputPixelFormatNames] to return only the supported pixel formats for the set conversion mode.
- Fix reading beyond the source buffer for specific image sizes when using one of the SIMD unpacking algorithms
v1.9
v1.8
- Add method PixelFormat::BayerPattern() to receive the corresponding BayerPattern.
- Add RGB/BGR(A) to mono converter
- Add reference counting to classes, so they can be shallow copied
- Improve the performance of the histogram
- Improve performance of mirror and rotate inplace functions
- Fix compilation error with dynamic loader.
v1.7
- Add a EdgeEnhancement implementation
- Changed the dotnet bindings to use .NET Standard 2.0.
- Adjust move constructor and move assignment to not call the internal destruct function
- Add new methods [HotpixelCorrection::CorrectInPlace] and [HotpixelCorrection::CorrectAdaptiveInPlace] for in place hotpixel correction
- Add new methods [Image::Scale], [Image::ScaleInto] and [Image::Crop] for image processing
- Add multithreading support for detecting hotpixel within a given image.
- Add SSE2/AVX2 implementation for a Bayer10p/Mono10p to Bayer10/Mono10 decoder and Bayer12p/Mono12p to Bayer12/Mono12 decoder
- Optimized 8/10/12 bit BayerRG and BayerGR debayering. Added optimized 8/10/12 bit BayerGB and BayerBG debayering
- Optimization of image rotation and image mirroring
- Changed the python bindings to release the GIL for long-running functions
- Add NEON implementation for debayering and color correction
- Fix MSVC 2015 unable to compile some of the provided header implementations
- Fix unnecessary buffer copy in [ImageConverter::Convert] when passing an output buffer.
- Fix some functions of the binding not working correctly (notably Sharpness, VideoWriter and Histogram)
- Fix Histogram not working correctly
- Breaking changes
- Renamed the member functions of the Range class
v1.6
- Add a signed .NET binding library for strong-named assemblies support
- Add saturation feature to ColorCorrector
- Add the Decimation algorithm for mono, bayer and some color images
- Add new operators for comparison to the Image class
- Add a Sharpness implementation which can be used to measure the sharpness of images
- Add multithreading support to the library and use it for some functions e.g. Sharpness
- Add method Image::Timestamp to receive the corresponding timestamp.
- Remove the RGB10p32 format from Binning as it was not actually supported
- Improve performance of 10/12 bit BayerRG and BayerGR debayering (x86 systems with SSE/AVX)
- Improve performance of 10/12 bit color correction (x86 systems with SSE/AVX)
- Fix HotpixelCorrection functions crashing if image dimension is smaller than 3 pixels for bayer images or smaller than 2 pixels for mono images
- Fix images converted with Image::ConvertTo were actually converted inplace, when a destination image was given
- Fix images converted with Image::ConvertTo were not set to the correct alpha value, when channels were expanded.
- Fix wrong file size in the file header when writing bmp files
- Breaking changes
v1.5
- Add a VideoWriter implementation which can be used to save images in an avi container encoded as mjpeg
v1.4
- Add new function ImageConverter::PreAllocateConversion which can be used to pre-allocate the internal buffer pools of the converter in order to save time on the first conversion
- Add new function Binning::ExpectedOutputSize which can be used to calculate the output size after binning of a given input size and pixelformat
- New CMake packages for both windows and linux, which now take care of adding their respective include directories
- Add new CMake function ids_peak_ipl_deploy to take care of copying dependent files(i.e. DLL's) into your targets output directory
- Add corresponding function ids_peak_ipl_dotnet_deploy when using dotnet
- Add the Binning algorithm for mono, bayer, some color and RGB10p32 images
- Fix HotpixelCorrection algorithms not working on the borders of an image
- Fix ImageWriter saving 10 Bit formats, although not supported, resulting in a broken bmp file with wrong colors
- Fix an issue with user defined hotpixels
- Fix images converted with Image::ConvertTo not freed when leaving the scope
- Fix images cloned with Image::Clone not freed when leaving the scope
- Fix images converted with Image::ConvertTo taking up 5 times more memory than necessary
- Fix images cloned with Image::Clone taking up 5 times more memory than necessary
- Breaking changes
- Due to previously mentioned fixes, the calls to Image::ConvertTo and Image::Clone are now allocating memory on every use, causing additional overhead and will take more time. Users are advised to construct an ImageConverter which keeps internal memory pools.
v1.3.2
v1.3.1
- Fix issues regarding peak_dynamic_loader.h
- Fix problem with ImageTransformer::RotateInPlace throwing exception when passing raw image buffers
- Add color correction support for pixel formats RGB10p32, RGB10 and RGB12
- Add gamma support for RGB10p32
- Fix breaking change: Add backwards compatibility for stdcall symbols
v1.3
v1.2
- Add Python binding
- Add methods for image rotation in 90° steps
- Improve performance of BayerGR debayering
- Rework internal buffer management to more efficiently free unused buffers
- Fix possible memory leaks in PNG and JPEG related functions
- Fix PNG IO functions for 10-bit and 12-bit pixel formats
- Improve stability and error safety
- Improve Doxygen documentation
- Breaking changes
v1.1
- Add .NET binding
- Add ColorCorrector algorithm
- Major performance improvement for various algorithms
- Breaking changes
- Various Bugfixes
v1.0