Merge pull request #1518 from dg0yt/static-windows
[openjpeg.git] / NEWS.md
1 # OpenJPEG NEWS
2
3 More details in the [CHANGELOG](https://github.com/uclouvain/openjpeg/blob/master/CHANGELOG.md)
4
5 ## OpenJPEG 2.5.1 (Feb 2024)
6
7 No API/ABI break compared to v2.5.0
8
9 * CMake: drop support for cmake < 3.5
10 * Several bugfixes, including [\#1509](https://github.com/uclouvain/openjpeg/pull/1509) for CVE-2021-3575
11 * Significant speed-up rate allocation by rate/distoratio ratio [\#1440](https://github.com/uclouvain/openjpeg/pull/1440)
12
13 ## OpenJPEG 2.5.0 (May 2022)
14
15 No API/ABI break compared to v2.4.0, but additional symbols for subset of components decoding (hence the MINOR version bump).
16
17 * Encoder: add support for generation of TLM markers [\#1359](https://github.com/uclouvain/openjpeg/pull/1359)
18 * Decoder: add support for high throughput \(HTJ2K\) decoding. [\#1381](https://github.com/uclouvain/openjpeg/pull/1381)
19 * Decoder: add support for partial bitstream decoding [\#1407](https://github.com/uclouvain/openjpeg/pull/1407)
20 * Bug fixes (including security fixes)
21
22 ## OpenJPEG 2.4.0 (December 2020)
23
24 No API/ABI break compared to v2.3.1, but additional symbols for subset of components decoding (hence the MINOR version bump).
25
26 * Encoder: add support for multithreading [\#1248](https://github.com/uclouvain/openjpeg/pull/1248)
27 * Encoder: add support for generation of PLT markers [\#1246](https://github.com/uclouvain/openjpeg/pull/1246)
28 * Encoder: single-threaded performance improvements in forward DWT for 5-3 and 9-7 (and other improvements) [\#1253](https://github.com/uclouvain/openjpeg/pull/1253)
29 * Encoder: support IMF profiles [\#1235](https://github.com/uclouvain/openjpeg/pull/1235)
30 * Many bug fixes (including security fixes)
31
32 ## OpenJPEG 2.3.1 (April 2019)
33
34 No API/ABI break compared to v2.3.0
35
36 * Many bug fixes (including security fixes)
37
38 ## OpenJPEG 2.3.0 (October 2017)
39
40 No API/ABI break compared to v2.2.0 but additional symbols for subset of components decoding (hence the MINOR version bump).
41
42 * Sub-tile decoding: when setting a window of interest through the API function opj_set_decode_area(), only codeblocks that intersect this window are now decoded (i.e. MCT, IDWT, and entropy decoding are only done on the window of interest). Moreover, memory allocation now depends on the size of the window of interest (instead of the full tile size). 
43 [\#990](https://github.com/uclouvain/openjpeg/pull/990) [\#1001](https://github.com/uclouvain/openjpeg/pull/1001) [\#1010](https://github.com/uclouvain/openjpeg/pull/1010)
44 * Ability to decode only a subset of components. This adds the following function `opj_set_decoded_components(opj_codec_t p_codec, OPJ_UINT32 numcomps, const OPJ_UINT32 comps_indices, OPJ_BOOL apply_color_transforms)` and equivalent `opj_decompress -c compno[,compno]*` 
45 option. 
46 [\#1022](https://github.com/uclouvain/openjpeg/pull/1022)
47 * Many bug fixes (including security fixes)
48
49 ## OpenJPEG 2.2.0 (August 2017)
50
51 No API/ABI break compared to v2.1.2 but additional symbols for multithreading support (hence the MINOR version bump).
52
53 ### Codebase improvements
54
55 * Memory consumption reduction at decoding side [\#968](https://github.com/uclouvain/openjpeg/pull/968)
56 * Multi-threading support at decoding side [\#786](https://github.com/uclouvain/openjpeg/pull/786)
57 * Tier-1 speed optimizations (encoder and decoder) [\#945](https://github.com/uclouvain/openjpeg/pull/945)
58 * Tier-1 decoder further optimization [\#783](https://github.com/uclouvain/openjpeg/pull/783)
59 * Inverse 5x3 DWT speed optimization: single-pass lifting and SSE2/AVX2 implementation [\#957](https://github.com/uclouvain/openjpeg/pull/957)
60 * Fixed a bug that prevented OpenJPEG to compress losslessly in some situations [\#949](https://github.com/uclouvain/openjpeg/pull/949)
61 * Fixed BYPASS/LAZY, RESTART/TERMALL and PTERM mode switches
62 * Many other bug fixes (including security fixes)
63
64 ### Maintenance improvements
65
66 * 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)
67 * CPU and RAM usage profiling scripts [\#918](https://github.com/uclouvain/openjpeg/pull/918)
68 * Codebase reformatting (with astyle) and scripts to automatically check that new commits comply with formatting guidelines [\#919](https://github.com/uclouvain/openjpeg/pull/919)
69 * 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)
70
71 ## OpenJPEG 2.1.2 (September 2016)
72
73 * Bug fixes (including security fixes)
74 * No API/ABI break compared to v2.1.1
75
76 ## OpenJPEG 2.1.1 (July 2016)
77
78 * Huge amount of critical bugfixes
79 * Speed improvements
80 * No API/ABI break compared to v2.1
81
82 ## OpenJPEG 2.1.0 (April 2014)
83
84 ### New Features
85
86     * Digital Cinema profiles have been fixed and updated
87         * New option to disable MCT if needed
88     * extended RAW support: it is now possible to input raw images
89           with subsampled color components (422, 420, etc)
90     * New way to deal with profiles
91           
92 ### API/ABI modifications
93 (see [here](http://www.openjpeg.org/abi-check/timeline/openjpeg/) for details)
94
95     * Removed deprecated functions 
96             * opj_stream_create_default_file_stream(FILE*,...)
97         * opj_stream_create_file_stream(FILE*,...)
98         * opj_stream_set_user_data (opj_stream_t* p_stream, void * p_data)
99         * Added 
100         * opj_stream_create_default_file_stream(char*,...)
101         * opj_stream_create_file_stream(char*,...)
102         * opj_stream_destroy(opj_stream_t*)
103         * opj_stream_set_user_data (opj_stream_t* p_stream, void * p_data, 
104             ... opj_stream_free_user_data_fn p_function)
105         * JPEG 2000 profiles and Part-2 extensions defined through '#define'
106     * Changed
107         * 'alpha' field added to 'opj_image_comp' structure
108         * 'OPJ_CLRSPC_EYCC' added to enum COLOR_SPACE
109         * 'OPJ_CLRSPC_CMYK' added to enum COLOR_SPACE
110         * 'OPJ_CODEC_JPP' and 'OPJ_CODEC_JPX' added to CODEC_FORMAT
111           (not yet used in use)
112         * 'max_cs_size' and 'rsiz' fields added to opj_cparameters_t
113     
114 ### Misc
115
116     * OpenJPEG is now officially conformant with JPEG 2000 Part-1
117           and will soon become official reference software at the 
118           JPEG committee.
119         * Huge amount of bug fixes. See CHANGES for details.
120
121
122 ## OpenJPEG 2.0.0
123
124 ### New Features
125
126     * streaming capabilities
127     * merge JP3D
128
129 ### API modifications
130 (see [here](http://www.openjpeg.org/abi-check/timeline/openjpeg/) for details)
131
132     * Use a 64bits capable API
133     
134 ### Misc
135
136     * removed autotools build system
137     * folders hierarchies reorganisation
138     * Huge amount of bug fixes. See CHANGES for details.