In convert.c, corrected imagetobmp() conversion for grayscale. In tcd.c, corrected...
[openjpeg.git] / ChangeLog
index 85af2acf4922f57f15f662ff7a63f2be3d1c317e..b97905f2fd1a0af0778853e24054579ba2980c64 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,8 +5,89 @@ What's New for OpenJPEG
 ! : changed
 + : added
 
+February 5, 2008
+! [Parvatha] In convert.c, corrected imagetobmp() conversion for grayscale. In tcd.c, corrected Rate modification in
+  tcd_init_encode(). Thanks to Jeremy Furtek and J�r�me Fimes.
+
+January 31, 2008
+! [GB] In opjviewer, unification of JPEG 2000 family handlers (*.jp2, *.mj2, *.j2k) in a single file
+
+January 22, 2008
+! [FOD] In image.c, changed the opj_image_create0() memory allocation from malloc() to calloc() in order
+               to avoid segfaults when freeing the memory allocated for the coding of bad images.
+               Thanks to Christopher Layne for this improvement. 
+
+January 17, 2008
++ [antonin] Initial commit of Xcode project directory (XCode 2.5 for macosx)
+                       available targets : libopenjpeg (stat and dyn), image_to_j2k, j2k_to_image
+
+January 16, 2008
+* [antonin] fixed opj_malloc.h for macosx (bugfix provided by janpeder, thanks)
+
+January 11, 2008
++ [FOD] Added missing files to JavaOpenJPEG project (files from Patrick Piscaglia)
+
+January 4, 2008
+* [Parvatha] Patch by Callum Lerwick. Fixed bug during encoding using tile option in tcd.c
+
+----------------------
+December 21, 2007
+VERSION 1.3.0 RELEASED
+----------------------
+
+December 21, 2007
+* [FOD] Bug fixed by David Bruken. Fixed memory allocation issue in opj_malloc.h
+! [FOD] Possible errors in pi_create_encode handled
+
+December 19, 2007
+* [Antonin] changed variables names alpha, beta, gamma, delta in dwt.c to avoid re-declarations on Macosx
+! [Parvatha] In pi.c, removed the Recursive function pi_check_next_level() and modified the code.
+* [FOD] Fixed allocation problem in pi.c
+
+December 19, 2007
++ [FOD] In mqc.h, changed MQC_NUMCTXS from 32 to 19 as there are only 19 possible contexts
+
+December 10, 2007
++ [FOD] First import of JAVAOpenJPEG, a Java wrapper of OpenJPEG, developed by Patrick Piscaglia of Telemis (www.telemis.com). 
+               Thank you Patrick for this new module !
+
+November 29, 2007
+! [GB] Added index.h and index.c in VC6 projects; wrapped index.h in the C++ preprocessor; modified OPJViewer project and some files.
+
+November 14, 2007
++ [FOD] Created the file index.c in the codec directory. This file handles the creation of index files, 
+               at encoding and decoding. 
+* [FOD] Fixed bugs during the creation of the index (PCRL progression order)
+* [FOD] Fixed the maximum number of resolutions a user can discard while decoding.
+               Added an error state in J2K_STATE (j2k.c)
+
+November 14, 2007
+! [FOD] - First Patch by Callum Lerwick. Instead of reinventing realloc, j2k_read_sod now just uses opj_realloc in j2k.c
+               - Second Patch by Callum Lerwick. This patch rearranges the largest memory allocations so they're allocated as 
+               late as possible, and freed as soon as possible. This cuts memory usage by about half on two large test images.
+               - Third Patch by Callum Lerwick. The opj_tcd_cblk array is one of the largest allocations, because it
+               contains a bunch of static buffers. This also makes it a major source of cache thrashing. This patch allocates 
+               the buffers from the heap, and dynamically sizes them in the decoder. I have not yet managed to dynamically size 
+               them in the encoder, getting the decoder to do it was tricky enough... I also split opj_tcd_cblk_t into separate 
+               encode and decode versions. A lot of fields were not used by both, so this cuts its size even further.
+
+* [FOD] Avoided ABI breakage
+
+November 13, 2007
+! [FOD] Patch by Dzonatas and Callum Lerwick.
+        Fp/vectorization patch which basically converts most of the irreversible decode codepath to floating point,
+        eliminating a few rounds of int/fp conversion, resulting in a vast performance improvement,
+       and an increase in accuracy.
+
+November 8, 2007
+! [FOD] In t1.c, small change to avoid calling twice t1_getwmsedec()
+        Patches from Callum Lewick:
+               - Basic gcc optimization flags in cmake and makefile match.
+               - Fixed some spelling errors in dwt.c.
+
 November 5, 2007
-*+ [GB] Fixed a bug which prevented JPWL from working on multi-tiled images; added some more fields in the interface info structures (keep a list of markers, save start packet number for each tile)
+*+ [GB] Fixed a bug which prevented JPWL from working on multi-tiled images; added some more fields in the interface info structures 
+(keep a list of markers, save start packet number for each tile)
 
 October 23, 2007
 * [GB] Improved success for the linux build; OPJViewer shows all the COM contents
@@ -33,7 +114,8 @@ October 12, 2007
 
 October 10, 2007
 * [FOD] Patch from Callum Lewick. Clean up of j2klib.h for the aligned malloc stuff. 
-        It makes it work right with mingw, as _mm_malloc() isn't a macro, attempts to pave the way to using cmake to check for this stuff and combines a patch from Dana Fagerstrom at Sun that makes it use memalign() on Solaris
+        It makes it work right with mingw, as _mm_malloc() isn't a macro, attempts to pave the way to using cmake 
+        to check for this stuff and combines a patch from Dana Fagerstrom at Sun that makes it use memalign() on Solaris
         convert.c: Changed some error comments for TIFF images
 
 September 27, 2007
@@ -85,10 +167,12 @@ September 6, 2007
 * [Mathieu Malaterre] Fix unitialized read in img_fol (we may need a smarter initialize than memset)
 
 September 4, 2007
-+ [GB] Added some fields in the codestream_info structure: they are used to record the position of single tile parts. Changed also the write_index function in the codec, to reflect the presence of this new information.
++ [GB] Added some fields in the codestream_info structure: they are used to record the position of single tile parts. 
+               Changed also the write_index function in the codec, to reflect the presence of this new information.
 
 September 3, 2007
-+ [GB] Added the knowledge of JPSEC SEC and INSEC markers (you have to compile the JPWL project). Management of these markers is limited to skipping them without crashing: no real security function at this stage. Deprecated USE_JPSEC will be removed next
++ [GB] Added the knowledge of JPSEC SEC and INSEC markers (you have to compile the JPWL project). Management of these markers is limited to skipping them without crashing: 
+               no real security function at this stage. Deprecated USE_JPSEC will be removed next
 
 August 31, 2007
 * [GB] Fixed save capabilities in OPJViewer due to recent code upgrade
@@ -140,12 +224,15 @@ July 17, 2007
 + [FOD] Added support for RAW images. This module has been developped by the University of Perugia team. Thanks to them ! [image_to_j2k.c j2k_to_image.c convert.c convert.h]
 
 July 13, 2007
-! [FOD] Modified the memory allocation for codestreams containing multiple tiles. The memory is now allocated for each tile indenpendently, leading to an important decrease of the virtual memory needed. [j2k.c tcd.h tcd.c]
+! [FOD] Modified the memory allocation for codestreams containing multiple tiles. The memory is now allocated for each tile indenpendently, 
+               leading to an important decrease of the virtual memory needed. [j2k.c tcd.h tcd.c]
 ! [FOD] Modified old comments about the ability to decode mega-images and comments about the disk size necessary to do this. [image_to_j2k.c and frames_to_mj2.c]
 * [FOD] Added 2000 bytes for the memory allocation in cio.c for the minimum size of headers (useful in case of very small images) [cio.c]
 
 July 12, 2007
-* [GB] fixed a bug in JPWL module, which prevented to exploit the full error correction capability of RS codes (e.g. it gave up at 5 errors, even if 6 were correctable); defined a JPWL_MAXIMUM_EPB_ROOM for better customization of the maximum dimension of EPBs (the dimension is pre-calculated on an hypothesis, if it goes beyond 65535 there will be problems, thus we give a little less than the max, let's say 65450)
+* [GB] fixed a bug in JPWL module, which prevented to exploit the full error correction capability of RS codes (e.g. it gave up at 5 errors, 
+               even if 6 were correctable); defined a JPWL_MAXIMUM_EPB_ROOM for better customization of the maximum dimension of EPBs (the dimension 
+               is pre-calculated on an hypothesis, if it goes beyond 65535 there will be problems, thus we give a little less than the max, let's say 65450)
 
 July 8, 2007
 * [ANTONIN] fixed the size of the memory allocation in cio.c (confusion between bits and bytes)
@@ -180,13 +267,16 @@ May 31, 2007
 * [FOD] Fixed the parameters used for cinema compression (9-7 transform used instead of 5-3). Modified "image_to_j2k.c"
 
 May 24, 2007
-* [FOD] Bug fixed by Sylvain Munaut. Change in the reading of the POC marker. Since COD/COC can be anywhere in the header, the decoder cannot always know while decoding the POC marker the value of numlayers and numresolution.
+* [FOD] Bug fixed by Sylvain Munaut. Change in the reading of the POC marker. Since COD/COC can be anywhere in the header, the decoder cannot always know while decoding the POC marker 
+               the value of numlayers and numresolution.
 
 May 23, 2007
 ! [FOD] Patch suggested by Callum Lerwick <seg@haxxed.com>: "This makes the t1 data arrays dynamic, which greatly reduces cache thrashing. Also, some minor cleanup to prevent unnecessary casts"
 
 May 22, 2007
-! [FOD] Patch suggested by Callum Lerwick <seg@haxxed.com>: "Some formatting cleanups, so that the long function definitions and calls fit on screen. Use of prefix increment which is theoretically faster, in practice any sane compiler can optimize a postfix increment but its best not to count on such things. Consolidation of some redundant calculations in the inner loops, which becomes very useful in the future autovectorize patch."
+! [FOD] Patch suggested by Callum Lerwick <seg@haxxed.com>: "Some formatting cleanups, 
+               so that the long function definitions and calls fit on screen. Use of prefix increment which is theoretically faster, in practice any sane compiler can optimize a postfix 
+               increment but its best not to count on such things. Consolidation of some redundant calculations in the inner loops, which becomes very useful in the future autovectorize patch."
 ! [FOD] Patch suggested by Callum Lerwick <seg@haxxed.com>: "This changes the flag code in t1 to use a flag_t type, which can then be changed to reduce RAM usage. It is now typedef to a short."
 ! [FOD] Patch suggested by Callum Lerwick <seg@haxxed.com>: "This patch makes the t1 LUTs static. I actually intend this as a prelude to possibly eliminating some or all of the LUTs entirely."
 
@@ -235,14 +325,17 @@ March 29, 2007
 * [Parvatha] Equation to check multiple tile precincts. Modification pi.c
 ! [Parvatha] array size generation of pi->include in pi_initialise_encode().Modification in pi.c
 * [Parvatha] modification in pi_create_encode for tile part generation.Modification in pi.c
-+ [Parvatha] In tcd_rateallocate a variable stable_threshold which holds the valid threshold value. This is used to avoid error in case of a wrong threshold value in the last iteration. Modification in tcd.c.
++ [Parvatha] In tcd_rateallocate a variable stable_threshold which holds the valid threshold value. 
+                        This is used to avoid error in case of a wrong threshold value in the last iteration. Modification in tcd.c.
 
 March 28, 2007
 * [FOD] Fixed an historical bug in t1.c that leaded to the inclusion of useless 0xFF in the codestream. Thanks to Sylvain, Pascal and Parvatha !
 
 March 27, 2007
-+ [GB] Improved parsing in OPJViewer, as well some minor aesthetic modifications; support for image rendering with bit depths lower than 8 bits; can display an arbitrary frame of an MJ2 file (only in B/W, though); can reload a file; better resizing capabilities
-* [GB] Following to Herv�'s suggestions, all the exit() calls, added by JPWL strict checking in t2.c and j2k.c, have been substituted with (object free'ing + opj_evt_message(EVT_ERROR) + return)
++ [GB] Improved parsing in OPJViewer, as well some minor aesthetic modifications; support for image rendering with bit depths lower than 8 bits; 
+               can display an arbitrary frame of an MJ2 file (only in B/W, though); can reload a file; better resizing capabilities
+* [GB] Following to Herv�'s suggestions, all the exit() calls, added by JPWL strict checking in t2.c and j2k.c, 
+               have been substituted with (object free'ing + opj_evt_message(EVT_ERROR) + return)
 + [GB] Added linking to TIFF library in the JPWL VC6 workspaces
 
 March 23, 2007
@@ -288,7 +381,8 @@ VERSION 1.1.1 RELEASED
 ----------------------
 
 February 23, 2007
-* [GB] Fixed a copy-and-paste type assignment error (bool instead of int) in the JPWL section of decoder parameters structure in openjpeg.h; minor type-casting in jpwl_lib.c. As a result, now OPJViewer should run correctly when built against the most current SVN trunk of LibOpenJPEG.lib
+* [GB] Fixed a copy-and-paste type assignment error (bool instead of int) in the JPWL section of decoder parameters structure in openjpeg.h; minor type-casting in jpwl_lib.c. 
+               As a result, now OPJViewer should run correctly when built against the most current SVN trunk of LibOpenJPEG.lib
 + [GB] Linux makefile for the JPWL module; newlines at end of JPWL files
 
 February 22, 2007