Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for generation of PLT markers in encoder #1246

Merged
merged 1 commit into from
May 20, 2020

Commits on Apr 21, 2020

  1. 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 !"
    ```
    
    -------
    
    Funded by ESA for S2-MPC project
    rouault committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    4edb8c8 View commit details
    Browse the repository at this point in the history