<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openjpeg/src/lib/openjp2/jp2.c, branch floating_point_irreversible_encoding</title>
<subtitle>Fork of openjpeg library for JPEG2000 encoding and decoding</subtitle>
<id>https://git.carlh.net/cgit/openjpeg/atom?h=floating_point_irreversible_encoding</id>
<link rel='self' href='https://git.carlh.net/cgit/openjpeg/atom?h=floating_point_irreversible_encoding'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/'/>
<updated>2020-04-21T13:55:44Z</updated>
<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>struct opj_j2k: remove unused fields, and add some documentation</title>
<updated>2020-04-18T16:25:44Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-04-18T16:25:44Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=64689d05dfaaf52105581d93fb1eb173b20829a4'/>
<id>urn:sha1:64689d05dfaaf52105581d93fb1eb173b20829a4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix some potential overflow issues (#1161)</title>
<updated>2018-10-31T19:44:30Z</updated>
<author>
<name>Stefan Weil</name>
<email>sw@weilnetz.de</email>
</author>
<published>2018-10-31T19:44:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=948332e6ed17565100d1df5f6fdbf66865218e36'/>
<id>urn:sha1:948332e6ed17565100d1df5f6fdbf66865218e36</id>
<content type='text'>
* Fix some potential overflow issues

Put sizeof to the beginning of the multiplication to enforce that
size_t instead of smaller integer types is used for the calculation.

This fixes warnings from LGTM:

    Multiplication result may overflow 'unsigned int'
    before it is converted to 'unsigned long'.

It also allows removing some type casts.

Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt;

* Fix code indentation

Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt;
</content>
</entry>
<entry>
<title>opj_jp2_apply_pclr(): remove useless assert that can trigger on some files (fixes #1125)</title>
<updated>2018-09-22T21:47:56Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2018-09-22T21:47:56Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=8fc09e50e557fa6af4c099b9c6d36bb1071ee1ed'/>
<id>urn:sha1:8fc09e50e557fa6af4c099b9c6d36bb1071ee1ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>openjp2/jp2: Fix two format strings</title>
<updated>2018-09-05T19:52:43Z</updated>
<author>
<name>Stefan Weil</name>
<email>sw@weilnetz.de</email>
</author>
<published>2018-09-05T19:51:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=31a03b390a77bfbe4b0f140121d1296acb611f76'/>
<id>urn:sha1:31a03b390a77bfbe4b0f140121d1296acb611f76</id>
<content type='text'>
Compiler warnings:

src/lib/openjp2/jp2.c:1008:35: warning:
 too many arguments for format [-Wformat-extra-args]
src/lib/openjp2/j2k.c:1928:73: warning:
 format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘OPJ_OFF_T {aka long int}’ [-Wformat=]

Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt;
</content>
</entry>
<entry>
<title>Merge pull request #1022 from rouault/partial_component_decoding</title>
<updated>2017-09-26T21:30:20Z</updated>
<author>
<name>Antonin Descampe</name>
<email>antonin@descampe.net</email>
</author>
<published>2017-09-26T21:30:20Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=d45ccb048bb2166c5d975f4e1b8acaf8ba3d198d'/>
<id>urn:sha1:d45ccb048bb2166c5d975f4e1b8acaf8ba3d198d</id>
<content type='text'>
Add capability to decode only a subset of all components of an image.</content>
</entry>
<entry>
<title>Fix badly named variable in function prototype (raised by cppcheck)</title>
<updated>2017-09-19T16:35:07Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2017-09-19T16:35:07Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=c84e594cffb181b96f522becf1ba0302e2cc6da7'/>
<id>urn:sha1:c84e594cffb181b96f522becf1ba0302e2cc6da7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add capability to decode only a subset of all components of an image.</title>
<updated>2017-09-19T15:06:19Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2017-09-19T14:52:07Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=7e2b6bebff12eab8bdc17fc9af017e8c11652f4f'/>
<id>urn:sha1:7e2b6bebff12eab8bdc17fc9af017e8c11652f4f</id>
<content type='text'>
This adds a opj_set_decoded_components(opj_codec_t *p_codec,
OPJ_UINT32 numcomps, const OPJ_UINT32* comps_indices) function,
and equivalent "opj_decompress -c compno[,compno]*" option.

When specified, neither the MCT transform nor JP2 channel transformations
will be applied.

Tests added for various combinations of whole image vs tiled-based decoding,
full or reduced resolution, use of decode area or not.
</content>
</entry>
<entry>
<title>Use opj_image_data_free() where appropriate (adapted from https://github.com/uclouvain/openjpeg/pull/1015/commits/dab9db0723a5bb9f3d745f9dd7a0b8b3b18b8054, #1014)</title>
<updated>2017-09-08T07:16:51Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2017-09-08T07:16:51Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=b73ce715d2a484d7355639d863d0418a0e5b8858'/>
<id>urn:sha1:b73ce715d2a484d7355639d863d0418a0e5b8858</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix invalid access out of bounds, and bad behaviour, when calling repeatdly opj_get_decoded_tile() on an image with a color palette</title>
<updated>2017-09-06T15:33:38Z</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2017-09-06T15:33:38Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/openjpeg/commit/?id=c67e1cd73f6c1fca081f5445af4f65b240c40edc'/>
<id>urn:sha1:c67e1cd73f6c1fca081f5445af4f65b240c40edc</id>
<content type='text'>
</content>
</entry>
</feed>
