+ New profile:
+
+ n4: 1885648469 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+ n1: 1610689344 0x4E78287: opj_aligned_malloc (opj_malloc.c:61)
+ n1: 1610689344 0x4E71D7B: opj_alloc_tile_component_data (tcd.c:676)
+ n1: 1610689344 0x4E7272C: opj_tcd_init_decode_tile (tcd.c:816)
+ n1: 1610689344 0x4E4BDD9: opj_j2k_read_tile_header (j2k.c:8618)
+ n1: 1610689344 0x4E4C8A2: opj_j2k_decode_tiles (j2k.c:10349)
+ n1: 1610689344 0x4E4E36E: opj_j2k_decode (j2k.c:7847)
+ n1: 1610689344 0x4E52FA2: opj_jp2_decode (jp2.c:1564)
+ n0: 1610689344 0x40374E: main (opj_decompress.c:1459)
+ n1: 219232541 0x4E4BBF0: opj_j2k_read_tile_header (j2k.c:4685)
+ n1: 219232541 0x4E4C8A2: opj_j2k_decode_tiles (j2k.c:10349)
+ n1: 219232541 0x4E4E36E: opj_j2k_decode (j2k.c:7847)
+ n1: 219232541 0x4E52FA2: opj_jp2_decode (jp2.c:1564)
+ n0: 219232541 0x40374E: main (opj_decompress.c:1459)
+ n1: 39822000 0x4E727A9: opj_tcd_init_decode_tile (tcd.c:1219)
+ n1: 39822000 0x4E4BDD9: opj_j2k_read_tile_header (j2k.c:8618)
+ n1: 39822000 0x4E4C8A2: opj_j2k_decode_tiles (j2k.c:10349)
+ n1: 39822000 0x4E4E36E: opj_j2k_decode (j2k.c:7847)
+ n1: 39822000 0x4E52FA2: opj_jp2_decode (jp2.c:1564)
+ n0: 39822000 0x40374E: main (opj_decompress.c:1459)
+ n0: 15904584 in 52 places, all below massif's threshold (1.00%)
+
+commit 373520db309430b68dd9ff09cba03a25f711a88e
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-07-06 13:23:29 +0200
+
+ Add documentation for magic values in the code
+
+commit 434ace4ff74cc3eee401d4d3c02668c1d85f2a0d
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-07-06 02:17:26 +0200
+
+ opj_jp2_apply_pclr() also needs to use opj_image_data_alloc/opj_image_data_free
+
+commit 0c1fc0593ef5b918068709fd74d76e4824c90e7c
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-07-06 02:02:25 +0200
+
+ Complementary fix to previous commit
+
+commit f58aab9d6a57e48bdc60e15dd373c24de74719a9
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-07-06 01:47:40 +0200
+
+ Add opj_image_data_alloc() / opj_image_data_free()
+
+ As bin/common/color.c used to directly call malloc()/free(), we need
+ to export functions dedicated to allocating/freeing image component data.
+
+commit 61fb5dd7f81c2e3dfabbb99f59dc89572d59fa37
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-07-06 01:05:24 +0200
+
+ Fix crash on Windows due to b7594c0fcb9dd3aa6356d72c4a525d76168da689
+
+ b7594c0fcb9dd3aa6356d72c4a525d76168da689 may put opj_tcd_tilecomp_t->data
+ allocated by opj_alloc_tile_component_data() as the image->comps[].data. As
+ opj_alloc_tile_component_data() use opj_aligned_malloc() we must be sure to
+ ue opj_alined_malloc()/_free() in all places where we alloc/free
+ image->comps[].data.
+
+ Note: this might have some compatibility impact in case user code does itself
+ the allocation/free of image->comps[].data
+
+commit 793edc38e41700e9b4cda4b7f9c79aba95b8d989
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-07-05 23:48:28 +0200
+
+ Decrease memory consumption for whole image single tile decoding.
+
+ We can use the same buffer for the tile decoding and the final image, and
+ save the intermediate buffer to transfer between those.
+
+ Effect on the decoding of MAPA (9944 x 13498 x 3 components of size byte)
+
+ Peak memory from 4.5 GB to 2.7 GB
+
+ Now:
+ n5: 2699708767 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+ n1: 1610689344 0x4E77E07: opj_aligned_malloc (opj_malloc.c:61) <-- final image
+ n1: 1610689344 0x4E7195B: opj_alloc_tile_component_data (tcd.c:676)
+ n1: 1610689344 0x4E722D2: opj_tcd_init_decode_tile (tcd.c:816)
+ n1: 1610689344 0x4E4BCF1: opj_j2k_read_tile_header (j2k.c:8597)
+ n1: 1610689344 0x4E4C742: opj_j2k_decode_tiles (j2k.c:10324)
+ n1: 1610689344 0x4E4E20E: opj_j2k_decode (j2k.c:7826)
+ n1: 1610689344 0x4E52E42: opj_jp2_decode (jp2.c:1564)
+ n0: 1610689344 0x40369E: main (opj_decompress.c:1459)
+ n1: 815554560 0x4E72231: opj_tcd_init_decode_tile (tcd.c:1217) <-- working memory for code blocks: 9944*13498/64/64*8192*3
+ n1: 815554560 0x4E4BCF1: opj_j2k_read_tile_header (j2k.c:8597)
+ n1: 815554560 0x4E4C742: opj_j2k_decode_tiles (j2k.c:10324)
+ n1: 815554560 0x4E4E20E: opj_j2k_decode (j2k.c:7826)
+ n1: 815554560 0x4E52E42: opj_jp2_decode (jp2.c:1564)
+ n0: 815554560 0x40369E: main (opj_decompress.c:1459)
+ n1: 219758391 0x4E4C0BF: opj_j2k_read_tile_header (j2k.c:4661) <-- ingestion of code stream
+ n1: 219758391 0x4E4C742: opj_j2k_decode_tiles (j2k.c:10324)
+ n1: 219758391 0x4E4E20E: opj_j2k_decode (j2k.c:7826)
+ n1: 219758391 0x4E52E42: opj_jp2_decode (jp2.c:1564)
+ n0: 219758391 0x40369E: main (opj_decompress.c:1459)
+ n1: 39822000 0x4E7224F: opj_tcd_init_decode_tile (tcd.c:1224) <-- OPJ_J2K_DEFAULT_NB_SEGS*sizeof(opj_tcd_seg_t) per codeblock
+ n1: 39822000 0x4E4BCF1: opj_j2k_read_tile_header (j2k.c:8597)
+ n1: 39822000 0x4E4C742: opj_j2k_decode_tiles (j2k.c:10324)
+ n1: 39822000 0x4E4E20E: opj_j2k_decode (j2k.c:7826)
+ n1: 39822000 0x4E52E42: opj_jp2_decode (jp2.c:1564)
+ n0: 39822000 0x40369E: main (opj_decompress.c:1459)
+ n0: 13884472 in 49 places, all below massif's threshold (1.00%)
+
+ Before:
+ n5: 4493329848 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+ n2: 1610709160 0x4E77C87: opj_aligned_malloc (opj_malloc.c:61)
+ n1: 1610689344 0x4E717DB: opj_alloc_tile_component_data (tcd.c:676)
+ n1: 1610689344 0x4E72152: opj_tcd_init_decode_tile (tcd.c:816)
+ n1: 1610689344 0x4E4BCF1: opj_j2k_read_tile_header (j2k.c:8597)
+ n1: 1610689344 0x4E4C64A: opj_j2k_decode_tiles (j2k.c:10318)
+ n1: 1610689344 0x4E4E08E: opj_j2k_decode (j2k.c:7826)
+ n1: 1610689344 0x4E52CC2: opj_jp2_decode (jp2.c:1564)
+ n0: 1610689344 0x40369E: main (opj_decompress.c:1459)
+ n0: 19816 in 2 places, all below massif's threshold (1.00%)
+ n1: 1610689344 0x4E43F36: opj_j2k_update_image_data.isra.7 (j2k.c:8743)
+ n1: 1610689344 0x4E4C5C1: opj_j2k_decode_tiles (j2k.c:10358)
+ n1: 1610689344 0x4E4E08E: opj_j2k_decode (j2k.c:7826)
+ n1: 1610689344 0x4E52CC2: opj_jp2_decode (jp2.c:1564)
+ n0: 1610689344 0x40369E: main (opj_decompress.c:1459)
+ n1: 815554560 0x4E720B1: opj_tcd_init_decode_tile (tcd.c:1217)
+ n1: 815554560 0x4E4BCF1: opj_j2k_read_tile_header (j2k.c:8597)
+ n1: 815554560 0x4E4C64A: opj_j2k_decode_tiles (j2k.c:10318)
+ n1: 815554560 0x4E4E08E: opj_j2k_decode (j2k.c:7826)
+ n1: 815554560 0x4E52CC2: opj_jp2_decode (jp2.c:1564)
+ n0: 815554560 0x40369E: main (opj_decompress.c:1459)
+ n1: 402672336 0x4E4C545: opj_j2k_decode_tiles (j2k.c:10336)
+ n1: 402672336 0x4E4E08E: opj_j2k_decode (j2k.c:7826)
+ n1: 402672336 0x4E52CC2: opj_jp2_decode (jp2.c:1564)
+ n0: 402672336 0x40369E: main (opj_decompress.c:1459)
+ n0: 53704448 in 58 places, all below massif's threshold (1.00%)