<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openjpeg/src/lib/openjp2/j2k.c, 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-12-02T13:10:16Z</updated>
<entry>
<title>opj_j2k_write_sod(): avoid potential heap buffer overflow (fixes #1299) (probably master only)</title>
<updated>2020-12-02T13:10:16Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-12-02T13:10:16Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=73fdf28342e4594019af26eb6a347a34eceb6296'/>
<id>urn:sha1:73fdf28342e4594019af26eb6a347a34eceb6296</id>
<content type='text'>
</content>
</entry>
<entry>
<title>opj_j2k_setup_encoder(): validate POC compno0 (fixes #1293)</title>
<updated>2020-12-01T18:56:44Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-12-01T18:39:09Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=c9380ed0f8cc4794fc71d556ea23ae61e32247af'/>
<id>urn:sha1:c9380ed0f8cc4794fc71d556ea23ae61e32247af</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Decoding: deal with some SPOT6 images that have tiles with a single tile-part with TPsot == 0 and TNsot == 0, and with missing EOC</title>
<updated>2020-11-30T16:53:04Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-11-30T16:36:27Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=1aa3c60859ab2a3edb7a68682f131c6b3a91da72'/>
<id>urn:sha1:1aa3c60859ab2a3edb7a68682f131c6b3a91da72</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>Encoder: avoid uint32 overflow when allocating memory for codestream buffer (fixes #1243)</title>
<updated>2020-09-16T09:27:53Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-09-16T09:27:53Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=0863ccf291238de15ca00da366b4c40fa9ffb673'/>
<id>urn:sha1:0863ccf291238de15ca00da366b4c40fa9ffb673</id>
<content type='text'>
</content>
</entry>
<entry>
<title>openjp2: Plug image leak when failing to allocate codestream index.</title>
<updated>2020-06-22T19:42:25Z</updated>
<author>
<name>Sebastian Rasmussen</name>
<email>sebras@gmail.com</email>
</author>
<published>2020-06-22T18:18:19Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=b028e8d1ce7798f61c35b1b20d836f80d78a35d0'/>
<id>urn:sha1:b028e8d1ce7798f61c35b1b20d836f80d78a35d0</id>
<content type='text'>
This fixes issue #1259.
</content>
</entry>
<entry>
<title>Merge pull request #1211 from sebras/master</title>
<updated>2020-05-20T19:10:55Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-05-20T19:10:55Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=19ef7f26c43f689b627aad642da7f6150893b863'/>
<id>urn:sha1:19ef7f26c43f689b627aad642da7f6150893b863</id>
<content type='text'>
Add check to validate SGcod/SPcoc/SPcod parameter values.</content>
</entry>
<entry>
<title>opj_j2k_setup_encoder(): add validation of tile width and height to avoid potential division by zero</title>
<updated>2020-05-20T18:31:28Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-05-19T20:26:22Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=4ab2ed090747ad2f22e78d45a1db5640d40e6a34'/>
<id>urn:sha1:4ab2ed090747ad2f22e78d45a1db5640d40e6a34</id>
<content type='text'>
</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>Rename mis-named function opj_tcd_get_encoded_tile_size() to opj_tcd_get_encoder_input_buffer_size()</title>
<updated>2020-04-16T18:33:22Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-04-16T18:33:22Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=221a801a97a3ea968a311f7905c18a1eb7f034c4'/>
<id>urn:sha1:221a801a97a3ea968a311f7905c18a1eb7f034c4</id>
<content type='text'>
</content>
</entry>
</feed>
