Skip to content

Releases: aous72/OpenJPH

0.17.0

22 Sep 04:52
f9fdf80
Compare
Choose a tag to compare

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

  • Adding support for NLT marker segment of type 3 by @aous72 in #154

Full Changelog: 0.16.0...0.17.0

0.16.0

09 Sep 00:31
Compare
Choose a tag to compare

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

  • Add avx2 optimization for encoder and decoder by @tszumski in #153

New Contributors

Full Changelog: 0.15.0...0.16.0

0.15.0

21 Jul 10:59
Compare
Choose a tag to compare

This addresses a few small issues #146, #147, and #148.
The most important changes are:

  1. Added "-fexceptions" flag to subprojects/js/CMakeLists.txt, which I forgot to do.
  2. 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

04 Jul 06:49
Compare
Choose a tag to compare

This should fix installation folders for both relative and absolute folders.

0.14.1

03 Jul 08:11
Compare
Choose a tag to compare

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

20 Jun 03:35
4b964c1
Compare
Choose a tag to compare

This provides:
Documentation improvement.
A Bug fix.
Spelling corrections -- thanx @bradh.

What's Changed

Full Changelog: 0.13.2...0.14.0

0.13.3

22 May 07:27
2dae6ca
Compare
Choose a tag to compare

Fixes a mistake in the last commit.

Better preprocessor directives for ARM, supports 32 and 64 bits.

22 May 06:43
2dae6ca
Compare
Choose a tag to compare

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

  • Better preprocessor directives for ARM, supports 32 and 64 bits. by @aous72 in #140

Full Changelog: 0.13.1...0.13.2

0.13.1

15 May 05:18
Compare
Choose a tag to compare

This is a small change to the preprocess settings.

  1. It removes defining OJPH_DISABLE_SIMD by default for ARM.
  2. It prevents defining OJPH_DISABLE_SIMD twice, which may happen when building for WASM.

0.13.0

03 May 10:16
d4ea880
Compare
Choose a tag to compare

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