- Add support for generation of PLT markers in encoder
-
- * -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 > /tmp/dump_sentinel2_ori.txt
- python dump_jp2.py T36JTT_20160914T074612_B02_PLT.jp2 > /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 && echo "same !"
- ```
-
- -------