summaryrefslogtreecommitdiff
path: root/src/lib
AgeCommit message (Collapse)Author
2017-09-04Replace uses of size_t by OPJ_SIZE_TEven Rouault
2017-09-02Improve error message when specifying a too big cp_reduce parameter (#474)Even Rouault
2017-09-01opj_v4dwt_decode_step1_sse(): rework a bit to improve code generationEven Rouault
2017-09-01opj_j2k_update_image_data(): avoid allocating image buffer if we can just ↵Even Rouault
reuse the tile buffer one
2017-09-01opj_t1_clbl_decode_processor(): use SSE2 in subtile decoding code path, for ↵Even Rouault
irreversible
2017-09-01Replace error message 'Not enough memory for tile data' by 'Size of tile ↵Even Rouault
data exceeds system limits' (refs https://github.com/uclouvain/openjpeg/pull/730#issuecomment-326654188)
2017-09-01opj_t1_decode_cblk(): move some code to codeblock processor for ↵Even Rouault
(theoretical) better multi-threading in subtile decoding
2017-09-01sparse_array: optimizations for lossy caseEven Rouault
2017-09-01opj_tcd_rateallocate(): make sure to use all passes for a lossless layer (#1009)Even Rouault
And save a useless loop, which should be a tiny faster.
2017-09-01opj_j2k_setup_encoder(): emit warnings if tcp_rates are not decreasing or ↵Even Rouault
tcp_distoratio are not increasing (#1009)
2017-09-01opj_j2k_setup_encoder(): avoid potential int overflow in computations ↵Even Rouault
related to max_cs_size
2017-09-01opj_compress help: revert 32572617765cb9d77302384653a48d793b8f657f and ↵Even Rouault
indicate 1 again as being the value to get lossless for -r. In opj_j2k_setup_encoder(), make sure that ll rates[] <= 1.0 are set to 0. Document 0 as being lossless for -q / tcp_distoratio (#1009)
2017-09-01opj_v4dwt_decode_step2_sse(): loop unrollEven Rouault
2017-09-01opj_dwt_decode_partial_97(): simplify/more efficient use of sparse arrays in ↵Even Rouault
vertical pass
2017-09-01opj_tcd_dc_level_shift_decode(): optimize lossy caseEven Rouault
2017-09-01opj_dwt_decode_partial_1_parallel(): add SSE2 optimizationEven Rouault
2017-09-01Sub-tile decoding: speed up vertical pass in IDWT5x3 by processing 4 cols at ↵Even Rouault
a time
2017-09-01Tiny perf improvement in T1 stage for subtile decodingEven Rouault
2017-09-01Optimize opj_dwt_decode_partial_1() when cas == 0Even Rouault
2017-09-01opj_j2k_update_image_data(): avoid zero-ing the buffer if not neededEven Rouault
2017-09-01Optimize reading/write into sparse arrayEven Rouault
2017-09-01Allow several repeated calls to opj_set_decode_area() and opj_decode() for ↵Even Rouault
single-tiled images * Only works for single-tiled images --> will error out cleanly, as currently in other cases * Save re-reading the codestream for the tile, and re-use code-blocks of the previous decoding pass. * Future improvements might involve improving opj_decompress, and the image writing logic, to use this strategy.
2017-09-01opj_j2k_decode_tiles(): apply whole single tile image decoding optimization ↵Even Rouault
to reading at reduced resolution as well
2017-09-01Various changes to allow tile buffers of more than 4giga pixelsEven Rouault
Untested though, since that means a tile buffer of at least 16 GB. So there might be places where uint32 overflow on multiplication still occur...
2017-09-01TCD: allow tile buffer to be greater than 4GB on 64 bit hosts (but number of ↵Even Rouault
pixels must remain under 4 billion)
2017-09-01Fix compiler warning in release modeEven Rouault
2017-09-01Remove limitation that prevents from opening images bigger than 4 billion pixelsEven Rouault
However the intermediate buffer for decoding must still be smaller than 4 billion pixels, so this is useful for decoding at a lower resolution level, or subtile decoding.
2017-09-01opj_tcd_init_tile(): fix typo on overflow detection condition (introduced in ↵Even Rouault
previous commit)
2017-09-01opj_dwt_decode_partial_tile(): avoid undefined behaviour in lifting ↵Even Rouault
operation by properly initializing working buffer
2017-09-01Sub-tile decoding: only allocate tile component buffer of the needed dimensionEven Rouault
Instead of being the full tile size. * Use a sparse array mechanism to store code-blocks and intermediate stages of IDWT. * IDWT, DC level shift and MCT stages are done just on that smaller array. * Improve copy of tile component array to final image, by saving an intermediate buffer. * For full-tile decoding at reduced resolution, only allocate the tile buffer to the reduced size, instead of the full-resolution size.
2017-09-01opj_j2k_setup_encoder(): validate code block width/heightEven Rouault
2017-09-01opj_t1_allocate_buffers(): remove useless overflow checksEven Rouault
2017-09-01Fix undefined shift behaviour in opj_dwt_is_whole_tile_decoding(). Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3255. Credit to OSS Fuzz
2017-08-29Use IDWT whole tile decoding if the area of interest equals to the image ↵Even Rouault
bounds, taking into account the reduced resolution factor
2017-08-28Subtile decoding: fix overflows in subband coordinate computation that cause ↵Even Rouault
later buffer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3115. Credit to OSS Fuzz. master only
2017-08-28Make opj_set_decode_area() and opj_decode() take into account ↵Even Rouault
opj_set_decoded_resolution_factor() (#1006, affect API use) * Better document usage of opj_set_decode_area(), ie expecting coordinates in full resolution/reference grid even if requesting at a lower resolution factor * Make sure that image->comps[].factor is set by opj_set_decode_area() and opj_decode() from the value specified in opj_set_decoded_resolution_factor() * opj_decompress: add 2 environmenet variables to test alternate ways of using the API, namely USE_OPJ_SET_DECODED_RESOLUTION_FACTOR=YES to use opj_set_decoded_resolution_factor() instead of parameters.cp_reduce, and SKIP_OPJ_SET_DECODE_AREA=YES to not call opj_set_decode_area() if -d is not specified.
2017-08-23opj_dwt_decode_partial_97(): perf improvement: limit copy of coefficients at ↵Even Rouault
end of horizontal pass to actual range of interest
2017-08-21j2k.c: fix comment, and remove FIXMEEven Rouault
2017-08-21Add commentEven Rouault
2017-08-21Add comments for filter_width valuesEven Rouault
2017-08-20Subtile decoding: only do 9x7 IDWT computations on relevant areas of ↵Even Rouault
tile-component buffer.
2017-08-18Subtile decoding: only do 5x3 IDWT computations on relevant areas of ↵Even Rouault
tile-component buffer. This lowers 'bin/opj_decompress -i ../MAPA.jp2 -o out.tif -d 0,0,256,256' down to 0.860s
2017-08-17opj_j2k_update_rates(): grow tile size buffer for some situationsEven Rouault
2017-08-17Zero-initialize tile buffer regions of skipped code-blocks, so as to make ↵Even Rouault
Valgrind happy
2017-08-17Sub-tile decoding: only decode precincts and codeblocks that intersect the ↵Even Rouault
window specified in opj_set_decode_area()
2017-08-17bench_dwt.c: fix signedness related warningsEven Rouault
2017-08-17Avoid asserting on assert(i == pcol) in opj_jp2_apply_pclr() by adding new ↵Even Rouault
check in opj_jp2_check_color(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3068. Credit to OSS Fuzz
2017-08-16opj_t1_encode_cblk(): avoid uint32 overflow when numbps = 0 (which is well ↵Even Rouault
defined behaviour, and is properly handled here, but better avoid it to detect real issues)
2017-08-16Fix build issue of JPWL by adding opj_image_data_alloc() and ↵Even Rouault
opj_image_data_free() to src/lib/openmj2 (#994)
2017-08-16opj_t2_encode_packet(): fix potential write heap buffer overflow (#992)Even Rouault