| Age | Commit message (Collapse) | Author |
|
((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
|
|
directories, updating existing files to v2. See README.v2 for more info
|
|
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.
|
|
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.
|
|
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.
|
|
Patch from Callum Lewick. Basic gcc optimization flags in cmake and makefile match.
|
|
Thanks Callum !
|
|
|
|
|
|
Thanks to Callum Lerwick who provided all these great patches !
|
|
branchless code
|
|
output the proper types.
|
|
moved to the header to allow it to be inlined into the t1.
|
|
allocation, getting rid of some leftover debug code
|
|
bit files (t1.c and tcd.c) and the calculation of elapsed time for multiple tiles parts (tcd.c and tdc.h).
|
|
arrays dynamic, which greatly reduces cache thrashing. Also, some minor cleanup to prevent unnecessary casts"
|
|
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."
|
|
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."
|
|
LUTs static. I actually intend this as a prelude to possibly eliminating some or all of the LUTs entirely."
|
|
dzonux.net> and Callum Lerwick <seg at haxxed.com> for these great patches !
|
|
in the codestream. Thanks to Sylvain, Pascal and Parvatha !
|
|
Fixed t1_decode_cblks. Modifications in t1.c.
|
|
|
|
|
|
(thanks to Don Mimlitch for reporting this bug)
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
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.
|
|
than the 1024*1024 allocated integers of code-block. This optimization has been proposed by Dmitry Kolyadin. Thanks for your help !
|
|
|
|
|
|
|
|
* Multiplication bug fixed when dividing by 8192 (comment keyword : multbug1)
|
|
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
-----------------------------
|
|
|
|
|
|
|
|
|