Skip to content

Releases: aous72/OpenJPH

Adding a simple RTP client that is compliant with draft-ietf-avtcore-rtp-j2k-scl-00

30 Apr 02:21
104c8a7
Compare
Choose a tag to compare

Recently, there have been activities around using HTJ2K for low-latency media delivery -- some of these activities are related to my PhD, and therefore is close to my heart.

The pull request adds a new executable, ojph_stream_expand.
ojph_stream_expand is compliant with the draft proposal of IETF RTP Payload Format for sub-codestream latency JPEG 2000 streaming, but it is by no means a complete implementation.
ojph_stream_expand enables testing with a source that produces such a stream.

ojph_stream_expand receives RTP packets and can optionally store them into .j2c files.
In its current phase, it does not expand images nor display them, despite what the name suggests.
The name is chosen to correspond to Kakadu's kdu_stream_expand, and in fact ojph_stream_expand has been tested to work with kdu_stream_send.

The executable is currently hidden, as I do not think many people would be interested. To enable it, you need to pass
-DOJPH_BUILD_STREAM_EXPAND=ON to cmake when you first invoke it.

What's Changed

  • doc: trivial typo fixes by @bradh in #136
  • Adding a simple RTP client that is compliant with draft-ietf-avtcore-rtp-j2k-scl-00. by @aous72 in #137

Full Changelog: 0.11.0...0.12.0

Adding DFS support and partial ATK support.

14 Apr 00:42
4e13575
Compare
Choose a tag to compare

This is major update; I hope I did not break anything. Please let me know if I did.
Most people will not notice the difference.

This update is to add DECODE support for DFA and to some extent ATK, which are needed to decode low latency JPEG2000 images, examples of which are given by the open-access work of T. Edwards and Michael Smith. The author Michael Smith has contributed to this repository in the past.

This is also needed to support testing with IETF Draft.

The DFS marker segment is supported now.
The ATK marker segment is partially supported -- some/many of its options are not support.
Support of ATK required the re-implementation of the wavelet transform.
The new design is modular and symmetric; I also re-implemented all SIMD implementations of DWT, and added AVX512 DWT.
There might be a small performance regression. However the bottleneck was and still is the block decoder.
The addition of DFS and ATK required changes to COD, COC, QCD, and QCC markers.

What's Changed

  • This removes the hardcoded TIFF_PATH, must use CMAKE_PREFIX_PATH. by @aous72 in #130
  • Adding DFS support and partial support for ATK to support low-latency HTJ2K images. by @aous72 in #134

Full Changelog: 0.10.5...0.11.0

0.10.5

13 Feb 10:34
Compare
Choose a tag to compare

This release addresses issues #127 and #128.

In the past, during compilation, I used to put compiled code in the ./bin folder.
Apparently, this is a behavior not expected by other developers.
This release should remove that folder and most of the copying -- I still need to copy files to the inside of ./build/tests, if not, the tests will not work.

I find the requirements imposed by cmake/other developers rather restrictive.
I also find that Visual Studio, and Microsoft in general, do not play nicely with the requirements of Linux installation; this because, MSVC creates the Release and Debug folder.

0.10.4

07 Feb 21:14
Compare
Choose a tag to compare

This s an important release because it fixes two bugs in the wavelet transform used during the encoding; see pull request #126.

  • One of these conditions is not common, and can happen when the image origin is not at {0,0} (-image_offset is not {0,0}) and there are enough decomposition levels such that the coarser resolutions have one row.
  • The other happens when you have enough decomposition levels such that coarser resolutions have two rows only.

There is also a change in how tile dimensions are calculated when they are not specified; see pull request #125. This happens if the origin is not at {0,0} (-image_offset is not {0,0}), which is not common for most users. It is not a bug, but, I think, the new design is better.

What's Changed

  • trivial typo fixes by @bradh in #117
  • add getter for TLM marker request by @bradh in #118
  • make comment_exchange string const by @bradh in #119
  • add accessors for tilepart division by @bradh in #120
  • include ojph_arch.h in ojph_codestream.h and ojph_params.h to compensate for OJPH_EXPORT definition by @bradh in #123
  • Update ojph_codestream_local.cpp, fix typo by @atzlinux in #124
  • This fixes tile_size calculation. by @aous72 in #125
  • Fixing irv97 transform by @aous72 in #126

New Contributors

0.10.3

09 Jan 09:13
Compare
Choose a tag to compare

Another small change to CMakeLists.txt to better handle PKG-Config.

0.10.2

08 Jan 11:03
Compare
Choose a tag to compare

Small modification to PKG-Config Setting.

0.10.1

06 Jan 21:53
Compare
Choose a tag to compare

Small Change to pkg-config.

What's Changed

New Contributors

Full Changelog: 0.10.0...0.10.1

0.10.0

06 Jan 08:57
Compare
Choose a tag to compare

There are many additions and modifications over time.
The following list is automatically generated for changes since version 0.9.0

What's Changed

  • Refactor codestream_local into multiple source/header files by @chafey in #93
  • Options to insert a TLM marker, and create tileparts by @aous72 in #87
  • Adds AVX512 support by @RodneyGuo in #103
  • Walk around overflow when block width is bigger than 64 by @RodneyGuo in #104
  • Add support for writing a user-specified COM marker by @palemieux in #105
  • CMake tweaks -- Adding a CMake option to disable building executables. by @thewtex in #109
  • Feature - dpx file input support for ojph_compress by @michaeldsmith in #110
  • Improving the way CMakeLists.txt files are arranged, and also addressing issues with building for MinGW and MSYS. by @aous72 in #115

New Contributors

Full Changelog: 0.9.0...0.10.0

0.9.0

25 May 13:07
Compare
Choose a tag to compare

This release focuses primarily on improving the speed of the decoder.
This is an improvement of between 30-50% in decode time, or 40-80% in throughput.
A lot has changed in certain places.

  • Large parts of the block decoder has been rewritten.
  • SSSE3 optimized version of the block decoder has been written.
  • Accelerated functions that transfer from and to the block decoder has been added, as suggested by Chris.
  • Accelerated functions that write to pgm and ppm; the code can be used for other file types, but I was too tired to include this as well. This was suggest by Mike.
  • Slightly modified the internal structure of buffers returned when codestream::pull is invoked; this allows buffers from different components to coexist (can be used concurrently). This is needed for the accelerated functions above. Previous designs using this feature should continue working without issues.
  • For WASM, we have now accelerated all the decode path including the block decoder using SIMD instructions.
  • A bug fix for an issue reported by Pierre, where an empty subband can cause a segmentation fault.
  • For windows, added a flag for disable exported functions when static build is used, as suggested by Lucas.
  • There might be other issues that I forgot.

0.8.3

07 Apr 02:35
Compare
Choose a tag to compare

This patch adds wasm simd support for the color and wavelet transform.
The subjprojects/js/html/index.html can detect browser support for wasm simd and dynamically load the simd version if simd support is available.