<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openjpeg/src/lib/openjp2/openjpeg.h, branch v2.5.0</title>
<subtitle>Fork of openjpeg library for JPEG2000 encoding and decoding</subtitle>
<id>https://git.carlh.net/cgit/openjpeg/atom?h=v2.5.0</id>
<link rel='self' href='https://git.carlh.net/cgit/openjpeg/atom?h=v2.5.0'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/'/>
<updated>2022-02-10T13:27:17Z</updated>
<entry>
<title>Add support for partial bitstream decoding (#1407) (fixes #715)</title>
<updated>2022-02-10T13:27:17Z</updated>
<author>
<name>Robert Gabriel Jakabosky</name>
<email>rjakabosky+github@neoawareness.com</email>
</author>
<published>2022-02-10T13:27:17Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=883c31dbe09771aab043744ac2b490d7386878e3'/>
<id>urn:sha1:883c31dbe09771aab043744ac2b490d7386878e3</id>
<content type='text'>
Add a -allow-partial option to opj_decompress utility and a opj_decoder_set_strict_mode() option to the API

Co-authored-by: Chris Hafey &lt;chafey@gmail.com&gt;</content>
</entry>
<entry>
<title>opj_encoder_set_extra_options(): add a GUARD_BITS=value option</title>
<updated>2022-01-23T16:54:44Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2022-01-23T16:53:55Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=1de5fc6c51617f49515ef80708dd074432a27a6a'/>
<id>urn:sha1:1de5fc6c51617f49515ef80708dd074432a27a6a</id>
<content type='text'>
and add a -GuardBits option to opj_compress.

The recently-released SMPTE DCP Bv2.1 Application Profile (link below)
says that the number of guard bits in the QCD marker shall be 1 for 2K
content and 2 for 4K content. This change allows the number of guard bits
to be configured, so that users of openjpeg have the control they need to meet the specification.

https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9161348

This is an alternative implementation of https://github.com/uclouvain/openjpeg/pull/1388
that keeps ABI unchanged.
</content>
</entry>
<entry>
<title>Fix some typos (found by codespell)</title>
<updated>2021-12-05T12:14:33Z</updated>
<author>
<name>Stefan Weil</name>
<email>sw@weilnetz.de</email>
</author>
<published>2021-12-05T12:04:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=667149ffa11f0255db92f522bc5b5fc8aefb16ec'/>
<id>urn:sha1:667149ffa11f0255db92f522bc5b5fc8aefb16ec</id>
<content type='text'>
Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt;
</content>
</entry>
<entry>
<title>API: deprecate 'bpp' member in favor of 'prec'</title>
<updated>2021-10-21T12:13:58Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-10-21T10:43:50Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=0b5d62684fe360e098e3bccaef02ee3e9781cec4'/>
<id>urn:sha1:0b5d62684fe360e098e3bccaef02ee3e9781cec4</id>
<content type='text'>
in opj_image_comp and opj_image_comptparm structures.

bpp was redundant with prec, and almost never set by the library, except
by opj_image_create(). This change should hopefully not impact existing,
working, users of the API, which should already have used prec to get
things working.

Fixes #1379
</content>
</entry>
<entry>
<title>Add support for enabling generation of TLM markers in encoder</title>
<updated>2021-06-07T13:49:08Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-06-07T13:16:53Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=a36ae0386066c9ddd089788930be5a42a176446e'/>
<id>urn:sha1:a36ae0386066c9ddd089788930be5a42a176446e</id>
<content type='text'>
Support was already there, but restricted to Cinema and IMF profiles,
and 255 tiles

* Add -TLM switch added to opj_compress
* Make opj_encoder_set_extra_options() function accept a TLM=YES option.
</content>
</entry>
<entry>
<title>Change defined WIN32</title>
<updated>2020-12-21T06:59:12Z</updated>
<author>
<name>Jamaika1</name>
<email>lukaszcz18@wp.pl</email>
</author>
<published>2020-12-21T06:59:12Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=0c2b633992417c8794470c9932e3c75447c8ab13'/>
<id>urn:sha1:0c2b633992417c8794470c9932e3c75447c8ab13</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add multithreading support in the T1 (entropy phase) encoder</title>
<updated>2020-05-20T18:30:21Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-04-29T09:50:17Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=97eb7e0bf17b476d516262e0af462ec7eeb8f505'/>
<id>urn:sha1:97eb7e0bf17b476d516262e0af462ec7eeb8f505</id>
<content type='text'>
- API wise, opj_codec_set_threads() can be used on the encoding side
- opj_compress has a -threads switch similar to opj_uncompress
</content>
</entry>
<entry>
<title>Add support for generation of PLT markers in encoder</title>
<updated>2020-04-21T13:55:44Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-04-21T13:55:44Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=4edb8c83374f52cd6a8f2c7c875e8ffacccb5fa5'/>
<id>urn:sha1:4edb8c83374f52cd6a8f2c7c875e8ffacccb5fa5</id>
<content type='text'>
* -PLT switch added to opj_compress
* Add a opj_encoder_set_extra_options() function that
  accepts a PLT=YES option, and could be expanded later
  for other uses.

-------

Testing with a Sentinel2 10m band, T36JTT_20160914T074612_B02.jp2,
coming from S2A_MSIL1C_20160914T074612_N0204_R135_T36JTT_20160914T081456.SAFE

Decompress it to TIFF:
```
opj_uncompress -i T36JTT_20160914T074612_B02.jp2 -o T36JTT_20160914T074612_B02.tif
```

Recompress it with similar parameters as original:
```
opj_compress -n 5 -c [256,256],[256,256],[256,256],[256,256],[256,256] -t 1024,1024 -PLT -i T36JTT_20160914T074612_B02.tif -o T36JTT_20160914T074612_B02_PLT.jp2
```

Dump codestream detail with GDAL dump_jp2.py utility (https://github.com/OSGeo/gdal/blob/master/gdal/swig/python/samples/dump_jp2.py)
```
python dump_jp2.py T36JTT_20160914T074612_B02.jp2 &gt; /tmp/dump_sentinel2_ori.txt
python dump_jp2.py T36JTT_20160914T074612_B02_PLT.jp2 &gt; /tmp/dump_sentinel2_openjpeg_plt.txt
```

The diff between both show very similar structure, and identical number of packets in PLT markers

Now testing with Kakadu (KDU803_Demo_Apps_for_Linux-x86-64_200210)

Full file decompression:
```
kdu_expand -i T36JTT_20160914T074612_B02_PLT.jp2 -o tmp.tif

Consumed 121 tile-part(s) from a total of 121 tile(s).
Consumed 80,318,806 codestream bytes (excluding any file format) = 5.329697
bits/pel.
Processed using the multi-threaded environment, with
    8 parallel threads of execution
```

Partial decompresson (presumably using PLT markers):
```
kdu_expand -i T36JTT_20160914T074612_B02.jp2 -o tmp.pgm -region "{0.5,0.5},{0.01,0.01}"
kdu_expand -i T36JTT_20160914T074612_B02_PLT.jp2 -o tmp2.pgm  -region "{0.5,0.5},{0.01,0.01}"
diff tmp.pgm tmp2.pgm &amp;&amp; echo "same !"
```

-------

Funded by ESA for S2-MPC project
</content>
</entry>
<entry>
<title>Fix warnings about signed/unsigned casts in pi.c</title>
<updated>2020-04-16T21:34:10Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-04-16T18:52:44Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=271a71ef0f1dd4740c9f4474279c7da8d15850c9'/>
<id>urn:sha1:271a71ef0f1dd4740c9f4474279c7da8d15850c9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement writing of IMF profiles</title>
<updated>2020-02-12T14:55:25Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-02-12T14:55:16Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=84f3bebbff515f2b00ccf0c817930ebb10b91760'/>
<id>urn:sha1:84f3bebbff515f2b00ccf0c817930ebb10b91760</id>
<content type='text'>
Add -IMF switch to opj_compress as well
</content>
</entry>
</feed>
