Releases: aous72/OpenJPH
0.17.0
Adding support for NLT marker segment of type 3.
The code is not very complete, but it is in a useful state for publishing.
To make use of the NLT marker segment for type 3, partial support for the .pfm file format has been added.
For .pfm files, lossy compression is not supported -- it is possible to add support at some future point.
Reversible coding of .pfm files is supported, where the NLT marker is automatically inserted.
The current implementation supports no less than 27 bit for encoding and 26 bits decoding; you can get more precision if you disable colour transform (1 bit) and use no more than 5 levels of decomposition (1 bit). If more than that is required, a complete new path must be developed that uses 64-bit integers instead of 32-bit integers; this requires changes to all arithmetic and also changes to the block encoder and decoder.
Therefore floating point values stored in a .pfm file, which are 32-bit, need to be truncated.
Using the '-bit_depth' option, ojph_compress can perform this truncation.
'ojph_compress' should work correctly with codestreams generated with ojph_compress, converting truncated values back to normal floating point values.
All other features should be working.
Importantly, the code also fixes an important bug in the block decoder in commit 9f8011c
What's Changed
Full Changelog: 0.16.0...0.17.0
0.16.0
This is an important addition by Tomasz @tszumski. It passed all existing tests, and accomplishes the following:
- It adds AVX2 support for block encoding and decoding.
- It also fixes what I think is a bug in AVX512 block encoding.
According to Tomasz tests, we get
Encoder: performance gain ~37% vs C-code, (~7.5% performance drop vs AVX512-code)
Decoder: performance gain ~7%
What's Changed
New Contributors
Full Changelog: 0.15.0...0.16.0
0.15.0
This addresses a few small issues #146, #147, and #148.
The most important changes are:
- Added "-fexceptions" flag to subprojects/js/CMakeLists.txt, which I forgot to do.
- Added a function "set_message_level()" to ojph_message.h, which controls the severity level at which info/warn/error messages are printed. By adjusting the message level, users can tailor the verbosity of the output to their specific needs.
0.14.2
0.14.1
A small modification to CMakeLists.txt in response to PR #145.
What's Changed
- Fix includedir/libdir in pkg-config file when CMAKE_INSTALL_INCLUDEDIR/CMAKE_INSTALL_LIBDIR are absolute paths by @abustany in #145
New Contributors
Full Changelog: 0.14.0...0.14.1
0.14.0
0.13.3
Better preprocessor directives for ARM, supports 32 and 64 bits.
Better preprocessor directives for ARM, supports 32 and 64 bits.
This also sets the default memory to 128MB for WASM-based javascript programs in the subprojects/js directory.
What's Changed
Full Changelog: 0.13.1...0.13.2
0.13.1
0.13.0
The main contribution of this PR is to improve the build process.
This was instigated by changes in GitHub runners, whereby Intel-based Mac machines are not longer employed.
We modify two options from CMakeLists.txt, which are
- Replacing OJPH_DISABLE_INTEL_SIMD with OJPH_DISABLE_SIMD. The new option should be architecture agnostic.
- Replacing OJPH_ENABLE_INTEL_AVX512 with OJPH_DISABLE_AVX512. This is because AVX512 is supported by both Intel and AMD.
We also added a few options to disable using particular instruction sets: SSE, SSE2, SSSE3, SSE4, AVX, AVX2 and AVX512. It is left to the end user to decide what best suits them. Removing an option can be due to that it is missing from the compiler, or to reduce the resulting code size.
Notice that all instructions are enabled by default and need to be disabled if desired,
We add better support for ARM -- No NEON code yet.
Also added more Actions.
This should address issues #111 and #121.
What's Changed
Full Changelog: 0.12.0...0.13.0