3 More details in the [Changelog](https://github.com/uclouvain/openjpeg/blob/master/CHANGELOG.md)
7 No API/ABI break compared to v2.1.2 but additional symbols for multithreading support (hence the MINOR version bump).
9 ### Codebase improvements
11 * Memory consumption reduction at decoding side [\#968](https://github.com/uclouvain/openjpeg/pull/968)
12 * Multi-threading support at decoding side [\#786](https://github.com/uclouvain/openjpeg/pull/786)
13 * Tier-1 speed optimizations (encoder and decoder) [\#945](https://github.com/uclouvain/openjpeg/pull/945)
14 * Tier-1 decoder further optimization [\#783](https://github.com/uclouvain/openjpeg/pull/783)
15 * Inverse 5x3 DWT speed optimization: single-pass lifting and SSE2/AVX2 implementation [\#957](https://github.com/uclouvain/openjpeg/pull/957)
16 * Fixed a bug that prevented OpenJPEG to compress losslessly in some situations [\#949](https://github.com/uclouvain/openjpeg/pull/949)
17 * Fixed BYPASS/LAZY, RESTART/TERMALL and PTERM mode switches
18 * Many other bug fixes (including security fixes)
20 ### Maintenance improvements
22 * Benchmarking scripts to automatically compare the speed of latest OpenJPEG build with latest release and/or Kakadu binaries [\#917](https://github.com/uclouvain/openjpeg/pull/917)
23 * CPU and RAM usage profiling scripts [\#918](https://github.com/uclouvain/openjpeg/pull/918)
24 * Codebase reformatting (with astyle) and scripts to automatically check that new commits comply with formatting guidelines [\#919](https://github.com/uclouvain/openjpeg/pull/919)
25 * Register OpenJPEG at Google OSS Fuzz initiative, so as to automatically have OpenJPEG tested against Google fuzzer [\#965](https://github.com/uclouvain/openjpeg/issues/965)
29 * Bug fixes (including security fixes)
30 * No API/ABI break compared to v2.1.1
34 * Huge amount of critical bugfixes
36 * No API/ABI break compared to v2.1
42 * Digital Cinema profiles have been fixed and updated
43 * New option to disable MCT if needed
44 * extended RAW support: it is now possible to input raw images
45 with subsampled color components (422, 420, etc)
46 * New way to deal with profiles
48 ### API/ABI modifications
49 (see [here](http://www.openjpeg.org/abi-check/timeline/openjpeg/) for details)
51 * Removed deprecated functions
52 * opj_stream_create_default_file_stream(FILE*,...)
53 * opj_stream_create_file_stream(FILE*,...)
54 * opj_stream_set_user_data (opj_stream_t* p_stream, void * p_data)
56 * opj_stream_create_default_file_stream(char*,...)
57 * opj_stream_create_file_stream(char*,...)
58 * opj_stream_destroy(opj_stream_t*)
59 * opj_stream_set_user_data (opj_stream_t* p_stream, void * p_data,
60 ... opj_stream_free_user_data_fn p_function)
61 * JPEG 2000 profiles and Part-2 extensions defined through '#define'
63 * 'alpha' field added to 'opj_image_comp' structure
64 * 'OPJ_CLRSPC_EYCC' added to enum COLOR_SPACE
65 * 'OPJ_CLRSPC_CMYK' added to enum COLOR_SPACE
66 * 'OPJ_CODEC_JPP' and 'OPJ_CODEC_JPX' added to CODEC_FORMAT
68 * 'max_cs_size' and 'rsiz' fields added to opj_cparameters_t
72 * OpenJPEG is now officially conformant with JPEG 2000 Part-1
73 and will soon become official reference software at the
75 * Huge amount of bug fixes. See CHANGES for details.
82 * streaming capabilities
86 (see [here](http://www.openjpeg.org/abi-check/timeline/openjpeg/) for details)
88 * Use a 64bits capable API
92 * removed autotools build system
93 * folders hierarchies reorganisation
94 * Huge amount of bug fixes. See CHANGES for details.