summaryrefslogtreecommitdiff
path: root/src/lib/openjp2/openjpeg.c
AgeCommit message (Collapse)Author
2024-01-05Fix compiler error on Windowsscaramallion
2023-03-09CMake: error out on warnings for strict/missing prototypes.Sebastian Rasmussen
And fix strict-prototypes/missing-prototypes warnings.
2022-02-10Add support for partial bitstream decoding (#1407) (fixes #715)Robert Gabriel Jakabosky
Add a -allow-partial option to opj_decompress utility and a opj_decoder_set_strict_mode() option to the API Co-authored-by: Chris Hafey <chafey@gmail.com>
2021-06-07openjpeg.c: avoid casts of function pointersEven Rouault
2020-05-20Add multithreading support in the T1 (entropy phase) encoderEven Rouault
- API wise, opj_codec_set_threads() can be used on the encoding side - opj_compress has a -threads switch similar to opj_uncompress
2020-04-21Add support for generation of PLT markers in encoderEven Rouault
* -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
2020-02-12Implement writing of IMF profilesEven Rouault
Add -IMF switch to opj_compress as well
2017-09-19opj_set_decoded_components(): add a provision for a apply_color_transforms ↵Even Rouault
parameter in case we support it in the future
2017-09-19Add capability to decode only a subset of all components of an image.Even Rouault
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.
2017-08-07Complementary fix to previous commitEven Rouault
2017-08-07Add opj_image_data_alloc() / opj_image_data_free()Even Rouault
As bin/common/color.c used to directly call malloc()/free(), we need to export functions dedicated to allocating/freeing image component data.
2017-05-09Reformat whole codebase with astyle.options (#128)Even Rouault
2016-09-14Fix some warnings (#838)Matthieu Darbois
Fix warnings introduced by uclouvain/openjpeg#786
2016-05-25Add opj_codec_set_threads() in public API and propagate resulting thread ↵Even Rouault
pool to tcd level By default, only the main thread is used. If opj_codec_set_threads() is not used, but the OPJ_NUM_THREADS environment variable is set, its value will be used to initialize the number of threads. The value can be either an integer number, or "ALL_CPUS". If OPJ_NUM_THREADS is set and this function is called, this function will override the behaviour of the environment variable.
2015-07-30Remove printf/fprintf to stdout/stderr throughout openjp2 libmayeut
Update uclouvain/openjpeg#246
2015-05-29[trunk] Fix wrong return value for opj_setup_encoder & ↵Matthieu Darbois
opj_set_decoded_resolution_factor (fixes issue 497) Thanks Aaron.
2014-09-19added memory allocation checks (fixes issue 355)Antonin Descampe
2014-09-16[trunk] improve memory management (fixes issue 359)Antonin Descampe
2014-09-16[trunk] allow compilation with MinGW32 (fixes issue 361)Antonin Descampe
2014-04-23[trunk]Replaced deprecated opj_stream_set_user_data function from APIAntonin Descampe
with its 'v3' version, and removed all other 'v3' suffixes from API.
2014-04-17[trunk] refactoring of rsiz, profiles, and extensions managementAntonin Descampe
2014-04-03[trunk] updated copyright and added copyright notice required by ISO, in ↵Antonin Descampe
each file; updated AUTHORS, NEWS
2014-03-25[trunk] Rework previous commit r2610Mathieu Malaterre
This way we are able to gently deprecate the old API, and preserve ABI Update issue 306
2014-03-07[trunk] Another round of fixes for sign conversion warnings.Mathieu Malaterre
Update issue 256
2014-03-07[trunk] un-deprecated opj_stream_destroy API, import patch manuallyMathieu Malaterre
In some case user still want to be able to call opj_stream_destroy. Fixes issue 227
2014-03-07[trunk] Update memory management mecanismMathieu Malaterre
Fixes issue 253
2014-03-03[trunk] Remove remaining conversion issues in mqc.cMathieu Malaterre
2014-03-03[trunk] remove all api with invalid FILE* parameters which could leads to ↵Mathieu Malaterre
issues when applications are compiled with different flags from openjpeg. Fixes issue 198
2014-02-25[trunk] Create a new static *_impl function to avoid a warning triggered by ↵Mathieu Malaterre
the deprecation mecanism Fixes issue 257
2013-09-26[trunk] Import patch from bug #241Mathieu Malaterre
2013-03-25[trunk] separate the opj_config file between public and private part to ↵Mickael Savinaud
avoid expose unused variables into the public API.
2013-02-16[trunk] add functions to avoid to use FILE* into the API (thanks winfried). Mickael Savinaud
Update issue 120 and update issue 198
2012-11-16[trunk] add opj_ prefix to some internal define and use the new opj type ↵Mickael Savinaud
instead of int and float in some files
2012-11-15[trunk]update the copyright, the authors and thanks to respect the licenseMickael Savinaud
2012-11-15[trunk] move opj_bool to OPJ_BOOL to follow the other typeMickael Savinaud
2012-11-15[trunk]remove OPJ_LIMIT_DECODING struct which is not useful for v2 APIMickael Savinaud
2012-11-15[trunk] rename public symbols with OPJ_ prefix (enum part)Mickael Savinaud
2012-11-15[trunk] rename public symbols with OPJ_ prefixMickael Savinaud
2012-10-29[trunk] Normalize the return type of opj_read_from_file regarding the test ↵Mickael Savinaud
in the calling function
2012-10-29[trunk] Merge back JPIP modification into v2Mathieu Malaterre
This commit imports changes from openjpip.c from r2122 into openjpeg.c
2012-10-25[trunk] rename opj_event_msg_v2 to opj_event_msgMickael Savinaud
2012-10-25[trunk] Fix remaining issue with OPJ_CALLCONVMathieu Malaterre
2012-10-24[trunk] add documentation to the message handler functionsMickael Savinaud
2012-10-15[trunk] Fix another set of issue with calling conventionMathieu Malaterre
2012-10-15[trunk] Fix issue on windows OS. Need to explicitely state the calling ↵Mathieu Malaterre
convention
2012-10-15[trunk] Remove some warnings about missing prototypes (gcc)Mathieu Malaterre
2012-10-15[trunk] remove left-over from ->jpip_on implementation. JPIP is now ↵Mathieu Malaterre
completely removed from openjp2 and openmj2. Document jpip_iptr_offset variable
2012-10-01[trunk] rename PACKAGE_VERSION to OPJ_PACKAGE_VERSIONMathieu Malaterre
This prevent conflicts with TIFF package which also defines PACKAGE_VERSION
2012-09-28[trunk] Start FolderReorgProposal taskMathieu Malaterre
Update issue 177