Mathieu Malaterre
cc01949777
The original v1.3 branch had:
...
((int*)tiledp)[(j * tile_w) + i] = tmp / 2;
while v2 had:
((OPJ_INT32*)tiledp)[(j * tile_w) + i] = tmp >> 1;
Divide by two and a right shift operation are only equivalent when the data
is unsigned. In this case the data is signed, so the right shift operation
is incorrectly clearing the sign bit.
Patch from: Sheet Spotter
2010-10-07 17:45:04 +00:00
Antonin Descampe
7caaea18b7
Deleting obsolete files and directories, adding v2-specific files and directories, updating existing files to v2. See README.v2 for more info
2008-07-31 18:47:41 +00:00
Francois-Olivier Devaux
010ae27471
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.
2007-11-14 10:52:02 +00:00
Francois-Olivier Devaux
24e189e4d8
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.
2007-11-14 08:45:00 +00:00
Francois-Olivier Devaux
dbeebe72b9
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.
2007-11-13 17:35:12 +00:00
Francois-Olivier Devaux
c38de0728d
In t1.c, small change to avoid calling twice t1_getwmsedec()
...
Patch from Callum Lewick. Basic gcc optimization flags in cmake and makefile match.
2007-11-08 14:26:03 +00:00
Francois-Olivier Devaux
9e114bcaa4
Patch from Callum Lewick. Memset patch. See ChangeLog for more details. Thanks Callum !
2007-10-18 12:26:11 +00:00
Francois-Olivier Devaux
3816e0edf4
Indexes can now be generated when decoding J2K codestreams.
2007-09-07 15:01:55 +00:00
Francois-Olivier Devaux
1d02a8b595
Use <xmmintrin.h> for WIN32, else use <mm_malloc.h>
2007-08-21 12:57:39 +00:00
Francois-Olivier Devaux
07be749bf2
Moved the orient flipping into the ctxno_zc table.
...
Thanks to Callum Lerwick who provided all these great patches !
2007-08-21 12:51:57 +00:00
Francois-Olivier Devaux
2952874cb8
Replaced the large ctxno_mag lookup table with a small bit of inline-able branchless code
2007-08-21 12:42:55 +00:00
Francois-Olivier Devaux
1cfbdcc9ce
Consolidated some calls to mqc_setcurctx. Cleaned up t1_generate_luts to output the proper types.
2007-08-21 12:36:05 +00:00
Francois-Olivier Devaux
d4d23c7eb5
Reworks of t1_updateflags to get rid of the shift operation. mqc_setcurctx moved to the header to allow it to be inlined into the t1.
2007-08-21 12:30:08 +00:00
Francois-Olivier Devaux
3810e943b1
Aligned malloc using Intel's _mm_malloc(), cleanup on the t1 memory allocation, getting rid of some leftover debug code
2007-08-21 12:13:54 +00:00
Francois-Olivier Devaux
ea9335ff48
Bugs corrected in decoding of command line (getopt.c), in the handling of 16 bit files (t1.c and tcd.c) and the calculation of elapsed time for multiple tiles parts (tcd.c and tdc.h).
2007-06-04 13:23:26 +00:00
Francois-Olivier Devaux
8be8111008
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"
2007-05-22 13:14:13 +00:00
Francois-Olivier Devaux
1bec8fe082
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."
2007-05-21 13:08:10 +00:00
Francois-Olivier Devaux
7d06d7fb5d
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."
2007-05-21 12:50:03 +00:00
Francois-Olivier Devaux
e0ee9becb4
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."
2007-05-21 09:44:10 +00:00
Francois-Olivier Devaux
0930d9886b
fix.h, dwt.c and t1.c optimized. Thanks a lot to Dzonatas <dzonatas at dzonux.net> and Callum Lerwick <seg at haxxed.com> for these great patches !
2007-04-05 14:24:19 +00:00
Francois-Olivier Devaux
5a3c1ffe7d
Fixed an historical bug in t1.c that leaded to the inclusion of useless 0xFF in the codestream. Thanks to Sylvain, Pascal and Parvatha !
2007-03-28 08:44:21 +00:00
Parvatha Elangovan
6045158ce6
Fixed j2k_prog_order_list[]. Modifications in j2k.c.
...
Fixed t1_decode_cblks. Modifications in t1.c.
2007-03-21 13:01:15 +00:00
Francois-Olivier Devaux
7cb2194c8e
Algorithmic optimizations in t1.c, thanks to Guido J. !
2007-02-21 07:57:27 +00:00
Francois-Olivier Devaux
ed3aec55fd
Copyright update
2007-01-15 09:55:40 +00:00
Antonin Descampe
817681fb98
fixed a bug in t1.c that prevented in some cases a true lossless compression (thanks to Don Mimlitch for reporting this bug)
2006-03-19 18:51:32 +00:00
Antonin Descampe
72de930d08
fixed two initialization problems in t1.c and tcd.c
2006-01-27 16:29:41 +00:00
Antonin Descampe
fe33ebe83c
fixed a bug in t1_getwmsedec (stepsize was divided by 8192)
2005-12-08 11:01:59 +00:00
Antonin Descampe
95bc884365
OpenJPEG version 1.1
2005-12-08 09:38:47 +00:00
Antonin Descampe
f61cda9b7d
openjpeg version 1.0 (previous version still available with tag opj0-97)
2005-12-02 13:34:15 +00:00
Antonin Descampe
0ea26e7ba6
small change to avoid signed/unsigned warning during compilation
2005-11-04 11:10:38 +00:00
Antonin Descampe
8f3bd54c3d
Changes proposed by Mathieu Malaterre from the GDCM project... Thanks a lot Mathieu
...
- '//' replaced by '/* */'
- inclusion of int.h in int.c
- inclusion of j2k.h in int.h in order to export symbols
- adding (void) var when a variable is declared but not used
- some explicit cast
- CLOCKS_PER_SEC is declared as float in bcc55, so there is a need to cast it to int for the modulo operation
- some variables changed from float -> double
2005-11-01 10:15:34 +00:00
Antonin Descampe
7ee36c3a4c
1) quantization stepsizes stored as float instead of shifted integers -> fixes a pb of precision when using very small stepsizes. 2) bug fixed when decoding until bitplane 0 -> r-value (1/2) added to the coefficient.
2005-10-27 07:49:29 +00:00
Francois-Olivier Devaux
32ba9920db
At lines 577, 692 and 699, zeroing of effective region of code-block rather than the 1024*1024 allocated integers of code-block. This optimization has been proposed by Dmitry Kolyadin. Thanks for your help !
2005-06-02 15:28:37 +00:00
Francois-Olivier Devaux
f9eb8f93c2
Code optimization: t1_flags and t1_data set to zero with memset
2005-05-24 12:15:52 +00:00
Francois-Olivier Devaux
1bdb07cefe
fprintf correctly redirected to stderr or stdout
2004-11-15 12:41:35 +00:00
Antonin Descampe
8d2121606d
Minor changes for RESET mode
2004-07-16 09:08:27 +00:00
Antonin Descampe
bc563fc5ba
* Quantization bug fixed when using 9x7 DWT (comment keyword : quantizbug1)
...
* Multiplication bug fixed when dividing by 8192 (comment keyword : multbug1)
2004-07-13 09:17:17 +00:00
Antonin Descampe
a4911967eb
* Fixed_quality option added : specifying -q psnr1,psnr2,psnr3,... at the command line when encoding an image generates layers with the corresponding psnr. You have to specify values in the increase order. This option is incompatible with "-r" or "-f" options.
...
* Old -q option is now available with -f
* The INDEX-file structure has been modified and is now like this :
------------------------------
image_width image_height
progression order
tile_width tile_height
nb_tiles_width nb_tiles_height
nb_components
nb_layers
nb_decompositions
foreach resolution_level {[precinct_width,precinct_height]}
main_header_end
codestream_size
foreach tile {
tileno start_pos end_header end_pos squarred_error_total nb_pixels mean_squarred_error
}
foreach tile {
foreach packet {
packetno tileno layerno resno compno precinctno start_pos end_pos SE_reduction
}
}
SE max
SE total
-----------------------------
2004-05-07 13:50:47 +00:00
Sebastien Lugan
64c34e0d52
Reformatage : indent -kr -i2 -ci2 $(find . -name '*.c') $(find . -name '*.h')
2004-04-29 13:27:24 +00:00
Sebastien Lugan
ec9bd9f6a4
Reformatage : indent -kr $(find . -name '*.c') $(find . -name '*.h')
2004-04-29 13:10:05 +00:00
Yannick Verschueren
bb349b2cee
Update for version 0.8
2004-02-13 09:47:40 +00:00
Sebastien Lugan
2ad6a9770a
Initial revision
2003-11-27 10:10:17 +00:00