<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openjpeg/src/bin, branch v2.4.0</title>
<subtitle>Fork of openjpeg library for JPEG2000 encoding and decoding</subtitle>
<id>https://git.carlh.net/cgit/openjpeg/atom?h=v2.4.0</id>
<link rel='self' href='https://git.carlh.net/cgit/openjpeg/atom?h=v2.4.0'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/'/>
<updated>2020-11-30T21:31:51Z</updated>
<entry>
<title>pngtoimage(): fix wrong computation of x1,y1 if -d option is used, that would result in a heap buffer overflow (fixes #1284)</title>
<updated>2020-11-30T21:31:51Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-11-30T21:31:51Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=b2072402b7e14d22bba6fb8cde2a1e9996e9a919'/>
<id>urn:sha1:b2072402b7e14d22bba6fb8cde2a1e9996e9a919</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #1253 from rouault/floating_point_irreversible_encoding</title>
<updated>2020-10-09T11:25:27Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-10-09T11:25:27Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=491299eb073c80602ca8ee333303a31a581d3fa8'/>
<id>urn:sha1:491299eb073c80602ca8ee333303a31a581d3fa8</id>
<content type='text'>
Single-threaded performance improvements in forward DWT for 5-3 and 9-7 (and other improvements)</content>
</entry>
<entry>
<title>Bump Java compatibility from 1.5 to 1.6 (#1263)</title>
<updated>2020-09-23T09:34:31Z</updated>
<author>
<name>Pei JIA</name>
<email>jiapei@longervision.com</email>
</author>
<published>2020-09-23T09:34:31Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=65c8f577d2f057e80040e98958eae80ca76c6b94'/>
<id>urn:sha1:65c8f577d2f057e80040e98958eae80ca76c6b94</id>
<content type='text'>
</content>
</entry>
<entry>
<title>opj_decompress: fix double-free on input directory with mix of valid and invalid images (CVE-2020-15389)</title>
<updated>2020-06-30T19:31:19Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-06-28T12:19:59Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=e8e258ab049240c2dd1f1051b4e773b21e2d3dc0'/>
<id>urn:sha1:e8e258ab049240c2dd1f1051b4e773b21e2d3dc0</id>
<content type='text'>
Fixes #1261

Credits to @Ruia-ruia for reporting and analysis.
</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>color_apply_icc_profile: add checks on the number of components (#1236)</title>
<updated>2020-04-16T22:37:33Z</updated>
<author>
<name>szukw000</name>
<email>szukw000@arcor.de</email>
</author>
<published>2020-04-16T22:37:33Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=b6b7e96b0cf7819ef6a2e8ba2f8bdaaf938326ed'/>
<id>urn:sha1:b6b7e96b0cf7819ef6a2e8ba2f8bdaaf938326ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>jp3d/jpwl/mj2/jpip: Fix resource leaks (#1226)</title>
<updated>2020-04-16T22:09:40Z</updated>
<author>
<name>Eduardo Barretto</name>
<email>edusbarretto@gmail.com</email>
</author>
<published>2020-04-16T22:09:40Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=040e142288e90c9c2d46d25d0a27f828f968bb93'/>
<id>urn:sha1:040e142288e90c9c2d46d25d0a27f828f968bb93</id>
<content type='text'>
This issues were found by cppcheck and coverity.</content>
</entry>
<entry>
<title>opj_decompress: add sanity checks to avoid segfault in case of decoding error</title>
<updated>2020-04-01T19:11:36Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-04-01T18:58:55Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=1c54024165fd5db0e6047f28903274eb27d0980f'/>
<id>urn:sha1:1c54024165fd5db0e6047f28903274eb27d0980f</id>
<content type='text'>
Prevent crashes like:
opj_decompress -i 0722_5-1_2019.jp2 -o out.ppm -r 4 -t 0

where 0722_5-1_2019.jp2 is
https://drive.google.com/file/d/1ZxOUZg2-FKjYwa257VFLMpTXRWxEoP0a/view?usp=sharing
</content>
</entry>
<entry>
<title>opj_compress: improve help message regarding new IMF switch</title>
<updated>2020-02-13T08:59:36Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-02-13T08:59:17Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=563ecfb55ca77c0fc5ea19e4885e00f55ec82ca9'/>
<id>urn:sha1:563ecfb55ca77c0fc5ea19e4885e00f55ec82ca9</id>
<content type='text'>
</content>
</entry>
</feed>
