<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openjpeg/src/lib/openjp2/dwt.h, branch cancel</title>
<subtitle>Fork of openjpeg library for JPEG2000 encoding and decoding</subtitle>
<id>https://git.carlh.net/cgit/openjpeg/atom?h=cancel</id>
<link rel='self' href='https://git.carlh.net/cgit/openjpeg/atom?h=cancel'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/'/>
<updated>2025-01-24T12:26:40Z</updated>
<entry>
<title>wip</title>
<updated>2025-01-24T12:26:40Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-01-24T12:26:40Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=e53debb0a1b49af365cd9b67b7161d343c872ecd'/>
<id>urn:sha1:e53debb0a1b49af365cd9b67b7161d343c872ecd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Irreversible compression/decompression DWT: use 1/K constant as per standard</title>
<updated>2020-05-20T18:31:28Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-05-20T16:00:45Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=3cd1305596f191a01afdc11f9355f9c6590065dd'/>
<id>urn:sha1:3cd1305596f191a01afdc11f9355f9c6590065dd</id>
<content type='text'>
The previous constant opj_c13318 was mysteriously equal to 2/K , and in
the DWT, we had to divide K and opj_c13318 by 2... The issue was that the
band-&gt;stepsize computation in tcd.c didn't take into account the log2gain of
the band.

The effect of this change is expected to be mostly equivalent to the previous
situation, except some difference in rounding. But it leads to a dramatic
reduction of the mean square error and peak error in the irreversible encoding
of issue141.tif !
</content>
</entry>
<entry>
<title>Add multithreaded support in the DWT encoder.</title>
<updated>2020-05-20T18:30:21Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-04-30T09:52:42Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=07d1f775a1ef95496b0c78b18f671dac41983320'/>
<id>urn:sha1:07d1f775a1ef95496b0c78b18f671dac41983320</id>
<content type='text'>
Update the bench_dwt utility to have a -decode/-encode switch

Measured performance gains for DWT encoder on a
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz (4 cores, hyper threaded)

Encoding time:
$ ./bin/bench_dwt -encode -num_threads 1
time for dwt_encode: total = 8.348 s, wallclock = 8.352 s

$ ./bin/bench_dwt -encode -num_threads 2
time for dwt_encode: total = 9.776 s, wallclock = 4.904 s

$ ./bin/bench_dwt -encode -num_threads 4
time for dwt_encode: total = 13.188 s, wallclock = 3.310 s

$ ./bin/bench_dwt -encode -num_threads 8
time for dwt_encode: total = 30.024 s, wallclock = 4.064 s

Scaling is probably limited by memory access patterns causing
memory access to be the bottleneck.
The slightly worse results with threads==8 than with thread==4
is due to hyperthreading being not appropriate here.
</content>
</entry>
<entry>
<title>Sub-tile decoding: only allocate tile component buffer of the needed dimension</title>
<updated>2017-09-01T14:30:29Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2017-09-01T14:30:29Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=f9e9942330f476b66ac4a35d0ae521200878f343'/>
<id>urn:sha1:f9e9942330f476b66ac4a35d0ae521200878f343</id>
<content type='text'>
Instead of being the full tile size.

* Use a sparse array mechanism to store code-blocks and intermediate stages of
  IDWT.
* IDWT, DC level shift and MCT stages are done just on that smaller array.
* Improve copy of tile component array to final image, by saving an intermediate
  buffer.
* For full-tile decoding at reduced resolution, only allocate the tile buffer to
  the reduced size, instead of the full-resolution size.
</content>
</entry>
<entry>
<title>Subtile decoding: only do 9x7 IDWT computations on relevant areas of tile-component buffer.</title>
<updated>2017-08-20T20:02:41Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2017-08-20T20:02:41Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=f87c5ef7ebef3d7a908e98f2de1b6a0336ae57ae'/>
<id>urn:sha1:f87c5ef7ebef3d7a908e98f2de1b6a0336ae57ae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Subtile decoding: only do 5x3 IDWT computations on relevant areas of tile-component buffer.</title>
<updated>2017-08-18T13:08:51Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2017-08-18T13:08:51Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=5d403250561398f7ba3041d9eb8c893bd680dd72'/>
<id>urn:sha1:5d403250561398f7ba3041d9eb8c893bd680dd72</id>
<content type='text'>
This lowers 'bin/opj_decompress -i ../MAPA.jp2 -o out.tif -d 0,0,256,256'
down to 0.860s
</content>
</entry>
<entry>
<title>src/lib/openjp2/*.h: use OPJ_ prefix for inclusion guards instead of reserved __ (#587)</title>
<updated>2017-07-30T17:46:52Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2017-07-30T17:46:52Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=13cde9fa37249628af6b6f10601b733f87a025f4'/>
<id>urn:sha1:13cde9fa37249628af6b6f10601b733f87a025f4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Reformat: apply reformattin on .h files (#128)</title>
<updated>2017-05-15T10:21:30Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2017-05-15T10:21:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=3c2972f924857016bb454201c7e92f25de9105ee'/>
<id>urn:sha1:3c2972f924857016bb454201c7e92f25de9105ee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'master' of https://github.com/uclouvain/openjpeg into tier1_optimizations_multithreading_2</title>
<updated>2016-09-08T08:30:09Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2016-09-08T08:30:09Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=48c16b2c199210a3c20b306a737eac5fc2c8f6c9'/>
<id>urn:sha1:48c16b2c199210a3c20b306a737eac5fc2c8f6c9</id>
<content type='text'>
Conflicts:
	src/lib/openjp2/t1.c
</content>
</entry>
<entry>
<title>Change 'restrict' define to 'OPJ_RESTRICT' (#816)</title>
<updated>2016-09-05T22:49:53Z</updated>
<author>
<name>Matthieu Darbois</name>
<email>mayeut@users.noreply.github.com</email>
</author>
<published>2016-09-05T22:49:53Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=9f24b078c7193e886f6cfb329d3469eb1facf68d'/>
<id>urn:sha1:9f24b078c7193e886f6cfb329d3469eb1facf68d</id>
<content type='text'>
Visual Studio 2015 does not pass regression tests with `__restrict` so kept disabled for MSVC.
Need to check proper usage of OPJ_RESTRICT (if correct then there’s
probably a bug  in vc14)

Closes #661 </content>
</entry>
</feed>
