'Source' => 'cio.c',
'SourceLine' => '271'
},
- '174021' => {
+ '183223' => {
'Header' => 'openjpeg.h',
'Line' => '1096',
'Return' => '156',
'Source' => 'openjpeg.c',
'SourceLine' => '160'
},
- '174341' => {
+ '183543' => {
'Header' => 'openjpeg.h',
- 'Line' => '1648',
+ 'Line' => '1647',
'Param' => {
'0' => {
'name' => 'cstr_info',
- 'type' => '174359'
+ 'type' => '183561'
}
},
'Reg' => {
'Return' => '1',
'ShortName' => 'opj_destroy_cstr_info',
'Source' => 'openjpeg.c',
- 'SourceLine' => '997'
+ 'SourceLine' => '1003'
},
- '236939' => {
+ '247125' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_callback',
'Source' => 'openjpeg.c',
'SourceLine' => '44'
},
- '237037' => {
+ '247223' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_callback',
'Source' => 'openjpeg.c',
'SourceLine' => '59'
},
- '237123' => {
+ '247309' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_callback',
'Source' => 'openjpeg.c',
'SourceLine' => '74'
},
- '237238' => {
+ '247424' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_format',
- 'type' => '225945'
+ 'type' => '236131'
}
},
'Reg' => {
'0' => 'rdi'
},
- 'Return' => '237025',
+ 'Return' => '247211',
'ShortName' => 'opj_create_decompress',
'Source' => 'openjpeg.c',
'SourceLine' => '168'
},
- '237460' => {
+ '247646' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'parameters',
- 'type' => '76948'
+ 'type' => '85815'
}
},
'Reg' => {
'Source' => 'openjpeg.c',
'SourceLine' => '364'
},
- '237591' => {
+ '247777' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'num_threads',
'Source' => 'openjpeg.c',
'SourceLine' => '387'
},
- '237709' => {
+ '247895' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'parameters',
- 'type' => '76948'
+ 'type' => '85815'
}
},
'Reg' => {
'Source' => 'openjpeg.c',
'SourceLine' => '398'
},
- '237851' => {
+ '248037' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
},
'1' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'2' => {
'name' => 'p_image',
- 'type' => '76942'
+ 'type' => '85809'
}
},
'Reg' => {
'Source' => 'openjpeg.c',
'SourceLine' => '418'
},
- '238054' => {
+ '248240' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'numcomps',
},
'2' => {
'name' => 'comps_indices',
- 'type' => '76960'
+ 'type' => '85827'
},
'3' => {
'name' => 'apply_color_transforms',
'Source' => 'openjpeg.c',
'SourceLine' => '442'
},
- '238296' => {
+ '248482' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_stream',
},
'2' => {
'name' => 'p_image',
- 'type' => '21147'
+ 'type' => '21130'
}
},
'Reg' => {
'Source' => 'openjpeg.c',
'SourceLine' => '471'
},
- '238450' => {
+ '248636' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_image',
- 'type' => '21147'
+ 'type' => '21130'
},
'2' => {
'name' => 'p_start_x',
'Source' => 'openjpeg.c',
'SourceLine' => '492'
},
- '238658' => {
+ '248844' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_stream',
},
'4' => {
'name' => 'p_tile_x0',
- 'type' => '19208'
+ 'type' => '19191'
},
'5' => {
'name' => 'p_tile_y0',
- 'type' => '19208'
+ 'type' => '19191'
},
'6' => {
'name' => 'p_tile_x1',
'offset' => '0',
- 'type' => '19208'
+ 'type' => '19191'
},
'7' => {
'name' => 'p_tile_y1',
- 'type' => '19208'
+ 'type' => '19191'
},
'8' => {
'name' => 'p_nb_comps',
},
'9' => {
'name' => 'p_should_go_on',
- 'type' => '23247'
+ 'type' => '23230'
}
},
'Reg' => {
'Source' => 'openjpeg.c',
'SourceLine' => '515'
},
- '238864' => {
+ '249050' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_tile_index',
'Source' => 'openjpeg.c',
'SourceLine' => '546'
},
- '239064' => {
+ '249250' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_stream',
},
'2' => {
'name' => 'p_image',
- 'type' => '21147'
+ 'type' => '21130'
},
'3' => {
'name' => 'tile_index',
'Source' => 'openjpeg.c',
'SourceLine' => '572'
},
- '239241' => {
+ '249427' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'res_factor',
'Source' => 'openjpeg.c',
'SourceLine' => '596'
},
- '239350' => {
+ '249536' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_format',
- 'type' => '225945'
+ 'type' => '236131'
}
},
'Reg' => {
'0' => 'rdi'
},
- 'Return' => '237025',
+ 'Return' => '247211',
'ShortName' => 'opj_create_compress',
'Source' => 'openjpeg.c',
'SourceLine' => '614'
},
- '239575' => {
+ '249761' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'parameters',
- 'type' => '76971'
+ 'type' => '85838'
}
},
'Reg' => {
'Return' => '1',
'ShortName' => 'opj_set_default_encoder_parameters',
'Source' => 'openjpeg.c',
- 'SourceLine' => '722'
+ 'SourceLine' => '728'
},
- '239706' => {
+ '249892' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'parameters',
- 'type' => '76971'
+ 'type' => '85838'
},
'2' => {
'name' => 'p_image',
- 'type' => '21147'
+ 'type' => '21130'
}
},
'Reg' => {
'Return' => '2747',
'ShortName' => 'opj_setup_encoder',
'Source' => 'openjpeg.c',
- 'SourceLine' => '783'
+ 'SourceLine' => '789'
},
- '239844' => {
+ '250030' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'options',
- 'type' => '76977'
+ 'type' => '85844'
}
},
'Reg' => {
'Return' => '2747',
'ShortName' => 'opj_encoder_set_extra_options',
'Source' => 'openjpeg.c',
- 'SourceLine' => '803'
+ 'SourceLine' => '809'
},
- '239959' => {
+ '250145' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_image',
- 'type' => '21147'
+ 'type' => '21130'
},
'2' => {
'name' => 'p_stream',
'Return' => '2747',
'ShortName' => 'opj_start_compress',
'Source' => 'openjpeg.c',
- 'SourceLine' => '822'
+ 'SourceLine' => '828'
},
- '240113' => {
+ '250299' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_info',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_stream',
'Return' => '2747',
'ShortName' => 'opj_encode',
'Source' => 'openjpeg.c',
- 'SourceLine' => '841'
+ 'SourceLine' => '847'
},
- '240244' => {
+ '250430' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_stream',
'Return' => '2747',
'ShortName' => 'opj_end_compress',
'Source' => 'openjpeg.c',
- 'SourceLine' => '858'
+ 'SourceLine' => '864'
},
- '240375' => {
+ '250561' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_stream',
'Return' => '2747',
'ShortName' => 'opj_end_decompress',
'Source' => 'openjpeg.c',
- 'SourceLine' => '875'
+ 'SourceLine' => '881'
},
- '240506' => {
+ '250692' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'parameters',
- 'type' => '76971'
+ 'type' => '85838'
},
'1' => {
'name' => 'pEncodingMatrix',
},
'2' => {
'name' => 'p_dc_shift',
- 'type' => '19208'
+ 'type' => '19191'
},
'3' => {
'name' => 'pNbComp',
'Return' => '2747',
'ShortName' => 'opj_set_MCT',
'Source' => 'openjpeg.c',
- 'SourceLine' => '895'
+ 'SourceLine' => '901'
},
- '240852' => {
+ '251038' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'p_tile_index',
'Return' => '2747',
'ShortName' => 'opj_write_tile',
'Source' => 'openjpeg.c',
- 'SourceLine' => '925'
+ 'SourceLine' => '931'
},
- '241052' => {
+ '251238' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
}
},
'Reg' => {
'Return' => '1',
'ShortName' => 'opj_destroy_codec',
'Source' => 'openjpeg.c',
- 'SourceLine' => '952'
+ 'SourceLine' => '958'
},
- '241153' => {
+ '251339' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
},
'1' => {
'name' => 'info_flag',
},
'2' => {
'name' => 'output_stream',
- 'type' => '76988'
+ 'type' => '85855'
}
},
'Reg' => {
'Return' => '1',
'ShortName' => 'opj_dump_codec',
'Source' => 'openjpeg.c',
- 'SourceLine' => '970'
+ 'SourceLine' => '976'
},
- '241290' => {
+ '251476' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
}
},
'Reg' => {
'0' => 'rdi'
},
- 'Return' => '76994',
+ 'Return' => '85861',
'ShortName' => 'opj_get_cstr_info',
'Source' => 'openjpeg.c',
- 'SourceLine' => '986'
+ 'SourceLine' => '992'
},
- '241454' => {
+ '251640' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '237025'
+ 'type' => '247211'
}
},
'Reg' => {
'0' => 'rdi'
},
- 'Return' => '74696',
+ 'Return' => '83563',
'ShortName' => 'opj_get_cstr_index',
'Source' => 'openjpeg.c',
- 'SourceLine' => '1014'
+ 'SourceLine' => '1020'
},
- '241539' => {
+ '251725' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_cstr_index',
- 'type' => '241599'
+ 'type' => '251785'
}
},
'Reg' => {
'Return' => '1',
'ShortName' => 'opj_destroy_cstr_index',
'Source' => 'openjpeg.c',
- 'SourceLine' => '1025'
+ 'SourceLine' => '1031'
},
- '241605' => {
+ '251791' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'Return' => '14584',
'ShortName' => 'opj_stream_create_file_stream',
'Source' => 'openjpeg.c',
- 'SourceLine' => '1040'
+ 'SourceLine' => '1046'
},
- '241724' => {
+ '251910' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'Return' => '14584',
'ShortName' => 'opj_stream_create_default_file_stream',
'Source' => 'openjpeg.c',
- 'SourceLine' => '1033'
+ 'SourceLine' => '1039'
},
'3808' => {
'Header' => 'openjpeg.h',
'Source' => 'thread.c',
'SourceLine' => '300'
},
- '61142' => {
+ '70009' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'image',
- 'type' => '21147'
+ 'type' => '21130'
}
},
'Reg' => {
'Source' => 'image.c',
'SourceLine' => '92'
},
- '61308' => {
+ '70175' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
},
'1' => {
'name' => 'cmptparms',
- 'type' => '61658'
+ 'type' => '70525'
},
'2' => {
'name' => 'clrspc',
- 'type' => '18497'
+ 'type' => '18480'
}
},
'Reg' => {
'1' => 'rsi',
'2' => 'rdx'
},
- 'Return' => '21147',
+ 'Return' => '21130',
'ShortName' => 'opj_image_create',
'Source' => 'image.c',
'SourceLine' => '40'
},
- '63300' => {
+ '72167' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
},
'1' => {
'name' => 'cmptparms',
- 'type' => '61658'
+ 'type' => '70525'
},
'2' => {
'name' => 'clrspc',
- 'type' => '18497'
+ 'type' => '18480'
}
},
'Reg' => {
'1' => 'rsi',
'2' => 'rdx'
},
- 'Return' => '21147',
+ 'Return' => '21130',
'ShortName' => 'opj_image_tile_create',
'Source' => 'image.c',
'SourceLine' => '228'
},
- '63579' => {
+ '72446' => {
'Header' => 'openjpeg.h',
'Line' => '1153',
'Param' => {
'Return' => '1',
'ShortName' => 'opj_image_data_free',
'Source' => 'openjpeg.c',
- 'SourceLine' => '1092'
+ 'SourceLine' => '1098'
},
- '63643' => {
+ '72510' => {
'Header' => 'openjpeg.h',
'Line' => '1143',
'Param' => {
'Return' => '130',
'ShortName' => 'opj_image_data_alloc',
'Source' => 'openjpeg.c',
- 'SourceLine' => '1085'
+ 'SourceLine' => '1091'
}
},
'SymbolVersion' => {
'Size' => '1',
'Type' => 'Const'
},
- '174359' => {
- 'BaseType' => '76994',
- 'Name' => 'opj_codestream_info_v2_t**',
- 'Size' => '8',
- 'Type' => 'Pointer'
- },
- '18236' => {
+ '18230' => {
'BaseType' => '138',
'Header' => 'openjpeg.h',
'Line' => '114',
'Size' => '1',
'Type' => 'Typedef'
},
- '18280' => {
+ '18274' => {
'BaseType' => '52',
'Header' => 'stdint.h',
'Line' => '50',
'Size' => '2',
'Type' => 'Typedef'
},
- '18313' => {
- 'BaseType' => '18280',
+ '18307' => {
+ 'BaseType' => '18274',
'Header' => 'openjpeg.h',
'Line' => '124',
'Name' => 'OPJ_UINT16',
'Size' => '2',
'Type' => 'Typedef'
},
- '18379' => {
+ '183561' => {
+ 'BaseType' => '85861',
+ 'Name' => 'opj_codestream_info_v2_t**',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '18362' => {
'Header' => 'openjpeg.h',
'Line' => '297',
'Memb' => {
'Size' => '4',
'Type' => 'Enum'
},
- '18429' => {
- 'BaseType' => '18379',
+ '18412' => {
+ 'BaseType' => '18362',
'Header' => 'openjpeg.h',
'Line' => '304',
'Name' => 'OPJ_PROG_ORDER',
'Size' => '4',
'Type' => 'Typedef'
},
- '18441' => {
+ '18424' => {
'Header' => 'openjpeg.h',
'Line' => '309',
'Memb' => {
'Size' => '4',
'Type' => 'Enum'
},
- '18497' => {
- 'BaseType' => '18441',
+ '18480' => {
+ 'BaseType' => '18424',
'Header' => 'openjpeg.h',
'Line' => '317',
'Name' => 'OPJ_COLOR_SPACE',
'Size' => '4',
'Type' => 'Typedef'
},
- '18509' => {
+ '18492' => {
'Header' => 'openjpeg.h',
'Line' => '359',
'Memb' => {
'10' => {
'name' => 'progorder',
'offset' => '40',
- 'type' => '18989'
+ 'type' => '18972'
},
'11' => {
'name' => 'tile',
'8' => {
'name' => 'prg1',
'offset' => '32',
- 'type' => '18429'
+ 'type' => '18412'
},
'9' => {
'name' => 'prg',
'offset' => '36',
- 'type' => '18429'
+ 'type' => '18412'
}
},
'Name' => 'struct opj_poc',
'Size' => '148',
'Type' => 'Struct'
},
- '18989' => {
- 'BaseType' => '18236',
+ '18972' => {
+ 'BaseType' => '18230',
'Name' => 'OPJ_CHAR[5]',
'Size' => '5',
'Type' => 'Array'
},
- '19005' => {
- 'BaseType' => '18509',
+ '18988' => {
+ 'BaseType' => '18492',
'Header' => 'openjpeg.h',
'Line' => '382',
'Name' => 'opj_poc_t',
'Size' => '148',
'Type' => 'Typedef'
},
- '19017' => {
- 'BaseType' => '19005',
+ '19000' => {
+ 'BaseType' => '18988',
'Name' => 'opj_poc_t[32]',
'Size' => '4736',
'Type' => 'Array'
},
- '19033' => {
+ '19016' => {
'Header' => 'openjpeg.h',
'Line' => '671',
'Memb' => {
'11' => {
'name' => 'data',
'offset' => '48',
- 'type' => '19208'
+ 'type' => '19191'
},
'12' => {
'name' => 'alpha',
'offset' => '56',
- 'type' => '18313'
+ 'type' => '18307'
},
'2' => {
'name' => 'w',
'Size' => '64',
'Type' => 'Struct'
},
- '19208' => {
+ '19191' => {
'BaseType' => '9037',
'Name' => 'OPJ_INT32*',
'Size' => '8',
'Type' => 'Pointer'
},
- '19214' => {
- 'BaseType' => '19033',
+ '19197' => {
+ 'BaseType' => '19016',
'Header' => 'openjpeg.h',
'Line' => '698',
'Name' => 'opj_image_comp_t',
'Size' => '64',
'Type' => 'Typedef'
},
- '19226' => {
+ '19209' => {
'Header' => 'openjpeg.h',
'Line' => '703',
'Memb' => {
'5' => {
'name' => 'color_space',
'offset' => '20',
- 'type' => '18497'
+ 'type' => '18480'
},
'6' => {
'name' => 'comps',
'offset' => '24',
- 'type' => '19353'
+ 'type' => '19336'
},
'7' => {
'name' => 'icc_profile_buf',
'Size' => '48',
'Type' => 'Struct'
},
- '19353' => {
- 'BaseType' => '19214',
+ '19336' => {
+ 'BaseType' => '19197',
'Name' => 'opj_image_comp_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '19365' => {
- 'BaseType' => '19226',
+ '19348' => {
+ 'BaseType' => '19209',
'Header' => 'openjpeg.h',
'Line' => '722',
'Name' => 'opj_image_t',
'Size' => '48',
'Type' => 'Typedef'
},
- '19377' => {
+ '19360' => {
'BaseType' => '9048',
'Name' => 'OPJ_UINT32[33]',
'Size' => '132',
'Type' => 'Array'
},
- '21147' => {
- 'BaseType' => '19365',
+ '21130' => {
+ 'BaseType' => '19348',
'Name' => 'opj_image_t*',
'Size' => '8',
'Type' => 'Pointer'
'Size' => '216',
'Type' => 'Struct'
},
- '225895' => {
+ '23230' => {
+ 'BaseType' => '2747',
+ 'Name' => 'OPJ_BOOL*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '23264' => {
+ 'BaseType' => '9048',
+ 'Name' => 'OPJ_UINT32 const',
+ 'Size' => '4',
+ 'Type' => 'Const'
+ },
+ '236081' => {
'Header' => 'openjpeg.h',
'Line' => '322',
'Memb' => {
'Size' => '4',
'Type' => 'Enum'
},
- '225945' => {
- 'BaseType' => '225895',
+ '236131' => {
+ 'BaseType' => '236081',
'Header' => 'openjpeg.h',
'Line' => '329',
'Name' => 'OPJ_CODEC_FORMAT',
'Size' => '4',
'Type' => 'Typedef'
},
- '227702' => {
+ '237888' => {
'BaseType' => '130',
'Header' => 'openjpeg.h',
'Line' => '612',
'Size' => '8',
'Type' => 'Typedef'
},
- '23247' => {
- 'BaseType' => '2747',
- 'Name' => 'OPJ_BOOL*',
- 'Size' => '8',
- 'Type' => 'Pointer'
- },
- '23281' => {
- 'BaseType' => '9048',
- 'Name' => 'OPJ_UINT32 const',
- 'Size' => '4',
- 'Type' => 'Const'
- },
- '237025' => {
- 'BaseType' => '227702',
+ '247211' => {
+ 'BaseType' => '237888',
'Name' => 'opj_codec_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '241599' => {
- 'BaseType' => '74696',
+ '251785' => {
+ 'BaseType' => '83563',
'Name' => 'opj_codestream_index_t**',
'Size' => '8',
'Type' => 'Pointer'
'Size' => '2',
'Type' => 'Intrinsic'
},
- '58997' => {
+ '59' => {
+ 'Name' => 'unsigned int',
+ 'Size' => '4',
+ 'Type' => 'Intrinsic'
+ },
+ '66' => {
+ 'Name' => 'unsigned long',
+ 'Size' => '8',
+ 'Type' => 'Intrinsic'
+ },
+ '67864' => {
'Header' => 'openjpeg.h',
'Line' => '728',
'Memb' => {
'Size' => '36',
'Type' => 'Struct'
},
- '59' => {
- 'Name' => 'unsigned int',
- 'Size' => '4',
- 'Type' => 'Intrinsic'
- },
- '59120' => {
- 'BaseType' => '58997',
+ '67987' => {
+ 'BaseType' => '67864',
'Header' => 'openjpeg.h',
'Line' => '747',
'Name' => 'opj_image_cmptparm_t',
'Size' => '36',
'Type' => 'Typedef'
},
- '61658' => {
- 'BaseType' => '59120',
+ '70525' => {
+ 'BaseType' => '67987',
'Name' => 'opj_image_cmptparm_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '66' => {
- 'Name' => 'unsigned long',
- 'Size' => '8',
+ '73' => {
+ 'Name' => 'signed char',
+ 'Size' => '1',
'Type' => 'Intrinsic'
},
- '66818' => {
+ '75685' => {
'BaseType' => '2250',
'Header' => 'stdio.h',
'Line' => '49',
'Size' => '216',
'Type' => 'Typedef'
},
- '67557' => {
+ '76424' => {
'Header' => 'openjpeg.h',
'Line' => '276',
'Memb' => {
'Size' => '4',
'Type' => 'Enum'
},
- '67597' => {
- 'BaseType' => '67557',
+ '76464' => {
+ 'BaseType' => '76424',
'Header' => 'openjpeg.h',
'Line' => '281',
'Name' => 'OPJ_RSIZ_CAPABILITIES',
'Size' => '4',
'Type' => 'Typedef'
},
- '67609' => {
+ '76476' => {
'Header' => 'openjpeg.h',
'Line' => '287',
'Memb' => {
'Size' => '4',
'Type' => 'Enum'
},
- '67647' => {
- 'BaseType' => '67609',
+ '76514' => {
+ 'BaseType' => '76476',
'Header' => 'openjpeg.h',
'Line' => '292',
'Name' => 'OPJ_CINEMA_MODE',
'Size' => '4',
'Type' => 'Typedef'
},
- '68331' => {
+ '77198' => {
'Header' => 'openjpeg.h',
'Line' => '387',
'Memb' => {
'11' => {
'name' => 'prog_order',
'offset' => '52',
- 'type' => '18429'
+ 'type' => '18412'
},
'12' => {
'name' => 'POC',
'offset' => '56',
- 'type' => '19017'
+ 'type' => '19000'
},
'13' => {
'name' => 'numpocs',
'15' => {
'name' => 'tcp_rates',
'offset' => '4800',
- 'type' => '69195'
+ 'type' => '78062'
},
'16' => {
'name' => 'tcp_distoratio',
'offset' => '5200',
- 'type' => '69195'
+ 'type' => '78062'
},
'17' => {
'name' => 'numresolution',
'25' => {
'name' => 'prcw_init',
'offset' => '5632',
- 'type' => '69211'
+ 'type' => '78078'
},
'26' => {
'name' => 'prch_init',
'offset' => '5764',
- 'type' => '69211'
+ 'type' => '78078'
},
'27' => {
'name' => 'infile',
'offset' => '5896',
- 'type' => '69227'
+ 'type' => '78094'
},
'28' => {
'name' => 'outfile',
'offset' => '9992',
- 'type' => '69227'
+ 'type' => '78094'
},
'29' => {
'name' => 'index_on',
'30' => {
'name' => 'index',
'offset' => '14092',
- 'type' => '69227'
+ 'type' => '78094'
},
'31' => {
'name' => 'image_offset_x0',
'39' => {
'name' => 'jpwl_hprot_TPH_tileno',
'offset' => '18220',
- 'type' => '69244'
+ 'type' => '78111'
},
'4' => {
'name' => 'cp_tdy',
'40' => {
'name' => 'jpwl_hprot_TPH',
'offset' => '18284',
- 'type' => '69244'
+ 'type' => '78111'
},
'41' => {
'name' => 'jpwl_pprot_tileno',
'offset' => '18348',
- 'type' => '69244'
+ 'type' => '78111'
},
'42' => {
'name' => 'jpwl_pprot_packno',
'offset' => '18412',
- 'type' => '69244'
+ 'type' => '78111'
},
'43' => {
'name' => 'jpwl_pprot',
'offset' => '18476',
- 'type' => '69244'
+ 'type' => '78111'
},
'44' => {
'name' => 'jpwl_sens_size',
'48' => {
'name' => 'jpwl_sens_TPH_tileno',
'offset' => '18556',
- 'type' => '69244'
+ 'type' => '78111'
},
'49' => {
'name' => 'jpwl_sens_TPH',
'offset' => '18620',
- 'type' => '69244'
+ 'type' => '78111'
},
'5' => {
'name' => 'cp_disto_alloc',
'50' => {
'name' => 'cp_cinema',
'offset' => '18684',
- 'type' => '67647'
+ 'type' => '76514'
},
'51' => {
'name' => 'max_comp_size',
'52' => {
'name' => 'cp_rsiz',
'offset' => '18692',
- 'type' => '67597'
+ 'type' => '76464'
},
'53' => {
'name' => 'tp_on',
'59' => {
'name' => 'rsiz',
'offset' => '18716',
- 'type' => '18313'
+ 'type' => '18307'
},
'6' => {
'name' => 'cp_fixed_alloc',
'8' => {
'name' => 'cp_matrice',
'offset' => '32',
- 'type' => '69173'
+ 'type' => '78040'
},
'9' => {
'name' => 'cp_comment',
'Size' => '18720',
'Type' => 'Struct'
},
- '69173' => {
+ '78040' => {
'BaseType' => '87',
'Name' => 'int*',
'Size' => '8',
'Type' => 'Pointer'
},
- '69195' => {
+ '78062' => {
'BaseType' => '2236',
'Name' => 'float[100]',
'Size' => '400',
'Type' => 'Array'
},
- '69211' => {
+ '78078' => {
'BaseType' => '87',
'Name' => 'int[33]',
'Size' => '132',
'Type' => 'Array'
},
- '69227' => {
+ '78094' => {
'BaseType' => '138',
'Name' => 'char[4096]',
'Size' => '4096',
'Type' => 'Array'
},
- '69244' => {
+ '781' => {
+ 'Name' => 'void(*)(void*)',
+ 'Param' => {
+ '0' => {
+ 'type' => '130'
+ }
+ },
+ 'Return' => '1',
+ 'Size' => '8',
+ 'Type' => 'FuncPtr'
+ },
+ '78111' => {
'BaseType' => '87',
'Name' => 'int[16]',
'Size' => '64',
'Type' => 'Array'
},
- '69260' => {
- 'BaseType' => '68331',
+ '78127' => {
+ 'BaseType' => '77198',
'Header' => 'openjpeg.h',
'Line' => '538',
'Name' => 'opj_cparameters_t',
'Size' => '18720',
'Type' => 'Typedef'
},
- '69272' => {
+ '78139' => {
'Header' => 'openjpeg.h',
'Line' => '546',
'Memb' => {
'2' => {
'name' => 'infile',
'offset' => '8',
- 'type' => '69227'
+ 'type' => '78094'
},
'3' => {
'name' => 'outfile',
'offset' => '4104',
- 'type' => '69227'
+ 'type' => '78094'
},
'4' => {
'name' => 'decod_format',
'Size' => '8252',
'Type' => 'Struct'
},
- '69522' => {
- 'BaseType' => '69272',
+ '78389' => {
+ 'BaseType' => '78139',
'Header' => 'openjpeg.h',
'Line' => '606',
'Name' => 'opj_dparameters_t',
'Size' => '8252',
'Type' => 'Typedef'
},
- '70038' => {
+ '78905' => {
'Header' => 'openjpeg.h',
'Line' => '760',
'Memb' => {
'Size' => '32',
'Type' => 'Struct'
},
- '70104' => {
- 'BaseType' => '70038',
+ '78971' => {
+ 'BaseType' => '78905',
'Header' => 'openjpeg.h',
'Line' => '769',
'Name' => 'opj_packet_info_t',
'Size' => '32',
'Type' => 'Typedef'
},
- '70116' => {
+ '78983' => {
'Header' => 'openjpeg.h',
'Line' => '776',
'Memb' => {
'Size' => '24',
'Type' => 'Struct'
},
- '70169' => {
- 'BaseType' => '70116',
+ '79036' => {
+ 'BaseType' => '78983',
'Header' => 'openjpeg.h',
'Line' => '783',
'Name' => 'opj_marker_info_t',
'Size' => '24',
'Type' => 'Typedef'
},
- '70521' => {
- 'BaseType' => '70104',
+ '79388' => {
+ 'BaseType' => '78971',
'Name' => 'opj_packet_info_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '70527' => {
- 'BaseType' => '70169',
+ '79394' => {
+ 'BaseType' => '79036',
'Name' => 'opj_marker_info_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '70867' => {
+ '79734' => {
'Header' => 'openjpeg.h',
'Line' => '900',
'Memb' => {
'12' => {
'name' => 'prcw',
'offset' => '816',
- 'type' => '19377'
+ 'type' => '19360'
},
'13' => {
'name' => 'prch',
'offset' => '948',
- 'type' => '19377'
+ 'type' => '19360'
},
'2' => {
'name' => 'numresolutions',
'8' => {
'name' => 'stepsizes_mant',
'offset' => '32',
- 'type' => '71069'
+ 'type' => '79936'
},
'9' => {
'name' => 'stepsizes_expn',
'offset' => '420',
- 'type' => '71069'
+ 'type' => '79936'
}
},
'Name' => 'struct opj_tccp_info',
'Size' => '1080',
'Type' => 'Struct'
},
- '71069' => {
+ '79936' => {
'BaseType' => '9048',
'Name' => 'OPJ_UINT32[97]',
'Size' => '388',
'Type' => 'Array'
},
- '71101' => {
- 'BaseType' => '70867',
+ '79968' => {
+ 'BaseType' => '79734',
'Header' => 'openjpeg.h',
'Line' => '930',
'Name' => 'opj_tccp_info_t',
'Size' => '1080',
'Type' => 'Typedef'
},
- '71113' => {
+ '79980' => {
'Header' => 'openjpeg.h',
'Line' => '935',
'Memb' => {
'2' => {
'name' => 'prg',
'offset' => '8',
- 'type' => '18429'
+ 'type' => '18412'
},
'3' => {
'name' => 'numlayers',
'5' => {
'name' => 'tccp_info',
'offset' => '24',
- 'type' => '71205'
+ 'type' => '80072'
}
},
'Name' => 'struct opj_tile_v2_info',
'Size' => '32',
'Type' => 'Struct'
},
- '71205' => {
- 'BaseType' => '71101',
+ '80072' => {
+ 'BaseType' => '79968',
'Name' => 'opj_tccp_info_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '71211' => {
- 'BaseType' => '71113',
+ '80078' => {
+ 'BaseType' => '79980',
'Header' => 'openjpeg.h',
'Line' => '951',
'Name' => 'opj_tile_info_v2_t',
'Size' => '32',
'Type' => 'Typedef'
},
- '71223' => {
+ '80090' => {
'Header' => 'openjpeg.h',
'Line' => '956',
'Memb' => {
'7' => {
'name' => 'm_default_tile_info',
'offset' => '32',
- 'type' => '71211'
+ 'type' => '80078'
},
'8' => {
'name' => 'tile_info',
'offset' => '64',
- 'type' => '71352'
+ 'type' => '80219'
}
},
'Name' => 'struct opj_codestream_info_v2',
'Size' => '72',
'Type' => 'Struct'
},
- '71352' => {
- 'BaseType' => '71211',
+ '80219' => {
+ 'BaseType' => '80078',
'Name' => 'opj_tile_info_v2_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '71358' => {
- 'BaseType' => '71223',
+ '80225' => {
+ 'BaseType' => '80090',
'Header' => 'openjpeg.h',
'Line' => '980',
'Name' => 'opj_codestream_info_v2_t',
'Size' => '72',
'Type' => 'Typedef'
},
- '71370' => {
+ '80237' => {
'Header' => 'openjpeg.h',
'Line' => '986',
'Memb' => {
'Size' => '24',
'Type' => 'Struct'
},
- '71423' => {
- 'BaseType' => '71370',
+ '80290' => {
+ 'BaseType' => '80237',
'Header' => 'openjpeg.h',
'Line' => '994',
'Name' => 'opj_tp_index_t',
'Size' => '24',
'Type' => 'Typedef'
},
- '71435' => {
+ '80302' => {
'Header' => 'openjpeg.h',
'Line' => '999',
'Memb' => {
'4' => {
'name' => 'tp_index',
'offset' => '16',
- 'type' => '71579'
+ 'type' => '80446'
},
'5' => {
'name' => 'marknum',
'6' => {
'name' => 'marker',
'offset' => '32',
- 'type' => '70527'
+ 'type' => '79394'
},
'7' => {
'name' => 'maxmarknum',
'9' => {
'name' => 'packet_index',
'offset' => '48',
- 'type' => '70521'
+ 'type' => '79388'
}
},
'Name' => 'struct opj_tile_index',
'Size' => '56',
'Type' => 'Struct'
},
- '71579' => {
- 'BaseType' => '71423',
+ '80446' => {
+ 'BaseType' => '80290',
'Name' => 'opj_tp_index_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '71585' => {
- 'BaseType' => '71435',
+ '80452' => {
+ 'BaseType' => '80302',
'Header' => 'openjpeg.h',
'Line' => '1026',
'Name' => 'opj_tile_index_t',
'Size' => '56',
'Type' => 'Typedef'
},
- '71597' => {
+ '80464' => {
'Header' => 'openjpeg.h',
'Line' => '1031',
'Memb' => {
'4' => {
'name' => 'marker',
'offset' => '32',
- 'type' => '70527'
+ 'type' => '79394'
},
'5' => {
'name' => 'maxmarknum',
'7' => {
'name' => 'tile_index',
'offset' => '48',
- 'type' => '71715'
+ 'type' => '80582'
}
},
'Name' => 'struct opj_codestream_index',
'Size' => '56',
'Type' => 'Struct'
},
- '71715' => {
- 'BaseType' => '71585',
+ '80582' => {
+ 'BaseType' => '80452',
'Name' => 'opj_tile_index_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '71721' => {
- 'BaseType' => '71597',
+ '80588' => {
+ 'BaseType' => '80464',
'Header' => 'openjpeg.h',
'Line' => '1054',
'Name' => 'opj_codestream_index_t',
'Size' => '56',
'Type' => 'Typedef'
},
- '73' => {
- 'Name' => 'signed char',
- 'Size' => '1',
- 'Type' => 'Intrinsic'
- },
- '74696' => {
- 'BaseType' => '71721',
+ '83563' => {
+ 'BaseType' => '80588',
'Name' => 'opj_codestream_index_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '76942' => {
- 'BaseType' => '21147',
+ '85809' => {
+ 'BaseType' => '21130',
'Name' => 'opj_image_t**',
'Size' => '8',
'Type' => 'Pointer'
},
- '76948' => {
- 'BaseType' => '69522',
+ '85815' => {
+ 'BaseType' => '78389',
'Name' => 'opj_dparameters_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '76960' => {
- 'BaseType' => '23281',
+ '85827' => {
+ 'BaseType' => '23264',
'Name' => 'OPJ_UINT32 const*',
'Size' => '8',
'Type' => 'Pointer'
},
- '76971' => {
- 'BaseType' => '69260',
+ '85838' => {
+ 'BaseType' => '78127',
'Name' => 'opj_cparameters_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '76977' => {
- 'BaseType' => '76983',
+ '85844' => {
+ 'BaseType' => '85850',
'Name' => 'char const*const*',
'Size' => '8',
'Type' => 'Pointer'
},
- '76983' => {
+ '85850' => {
'BaseType' => '156',
'Name' => 'char const*const',
'Size' => '8',
'Type' => 'Const'
},
- '76988' => {
- 'BaseType' => '66818',
+ '85855' => {
+ 'BaseType' => '75685',
'Name' => 'FILE*',
'Size' => '8',
'Type' => 'Pointer'
},
- '76994' => {
- 'BaseType' => '71358',
+ '85861' => {
+ 'BaseType' => '80225',
'Name' => 'opj_codestream_info_v2_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '781' => {
- 'Name' => 'void(*)(void*)',
- 'Param' => {
- '0' => {
- 'type' => '130'
- }
- },
- 'Return' => '1',
- 'Size' => '8',
- 'Type' => 'FuncPtr'
- },
'87' => {
'Name' => 'int',
'Size' => '4',
<br/>
<h1>Changelog from Git</h1><br/><br/>
<div class='changelog'>
-<pre class='wrap'>commit 65c8f577d2f057e80040e98958eae80ca76c6b94
+<pre class='wrap'>commit 491299eb073c80602ca8ee333303a31a581d3fa8
+Merge: 65c8f57 1c5627e
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-10-09 13:25:27 +0200
+
+ Merge pull request #1253 from rouault/floating_point_irreversible_encoding
+
+ Single-threaded performance improvements in forward DWT for 5-3 and 9-7 (and other improvements)
+
+commit 65c8f577d2f057e80040e98958eae80ca76c6b94
Author: Pei JIA <jiapei@longervision.com>
Date: 2020-09-23 02:34:31 -0700
Testing for invalid values of width, height, numcomps (#1254)
+commit 1c5627ee7406f84cfb40809b7ac31c63342427df
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-24 15:38:21 +0200
+
+ T1 encoder: speed-up by aggressive inlining and more cache friendly data organization
+
+ ~ 9% speed improvement seen on 10980x10980 uint16 image, T36JTT_20160914T074612_B02.tif
+ opj_compress time from 17.2s to 15.8s
+
+commit 1e931fdb3655c64ab60ea5657f79309331a86485
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-22 23:57:51 +0200
+
+ Forward DWT 9-7: major speed up by vectorizing vertical pass
+
+ `bench_dwt -I -encode` times goes from 8.6s to 2.1s
+
+commit a38e970fa59abd796c703ec469e578b09f7ffa33
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-22 17:50:15 +0200
+
+ Forward DWT 5-3: major speed up by vectorizing vertical pass
+
+ `bench_dwt -encode` times goes from 7.9s to 1.7s
+
+commit e69fa09f604bc472f9fbff5c2b2db65e8dbe2418
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-22 15:58:47 +0200
+
+ Forward DWT: small code refactoring to allow future improvements for the vertical pass
+
+commit 33d3d0de07be710f53940c7548b9f2bd58ff3210
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-22 15:06:29 +0200
+
+ dwt.c: remove unused typedef
+
+commit 97b384aecdeea0c286213f5caf6244ec08ea32d7
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-22 15:03:40 +0200
+
+ Forward DWT 5x3: performance improvements in horizontal pass, and modest in vertical pass
+
+commit bd5f5ee7dea851aedae630fee094ef3b0ff0c888
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-21 21:20:19 +0200
+
+ Forward DWT: small code refactoring to allow future improvements for the horizontal pass
+
+commit 45a35223b79dee65a0059f999b690072e829669f
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-21 16:54:48 +0200
+
+ Speed-up 9x7 IDWD by ~30% with OPJ_NUM_THREADS=2
+
+ "bench_dwt -I" time goes from 2.2s to 1.5s
+
+commit 272b3e0fb2530ca8bffdc8c64f1505a8ff5f6ecc
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-21 11:24:29 +0200
+
+ Remove useless + 5U margin in opj_dwt_decode_tile_97()
+
+ Nothing in code analysis nor test suite shows that this margin is
+ needed.
+ It dates back to commit dbeebe72b9d35f6ff807c21c7f217b569fa894f6
+ where vector 9x7 decoding was introduced.
+
+commit 47943daa15983d20ab1ffd0a237125f1493c5658
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-21 11:23:00 +0200
+
+ Speed-up 9x7 IDWD by ~20%
+
+ "bench_dwt -I" time goes from 2.8s to 2.2s
+
+commit 0c09062464fe74f62fb9a4da829992c6a8bd7920
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-20 23:20:48 +0200
+
+ bench_dwt.c: add a -I switch to test irreversible FWDT/IDWT
+
commit 19ef7f26c43f689b627aad642da7f6150893b863
Merge: 1d358f2 f3ee448
Author: Even Rouault <even.rouault@spatialys.com>
Add check to validate SGcod/SPcoc/SPcod parameter values.
+commit adccbc8336ce5c46ca7de85ac364d9c992d337c7
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-20 19:24:09 +0200
+
+ Irreversible decoding: partially revert previous commit, to fix failures in test suite
+
+commit 3cd1305596f191a01afdc11f9355f9c6590065dd
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-20 18:00:45 +0200
+
+ Irreversible compression/decompression DWT: use 1/K constant as per standard
+
+ The previous constant opj_c13318 was mysteriously equal to 2/K , and in
+ the DWT, we had to divide K and opj_c13318 by 2... The issue was that the
+ band->stepsize computation in tcd.c didn't take into account the log2gain of
+ the band.
+
+ The effect of this change is expected to be mostly equivalent to the previous
+ situation, except some difference in rounding. But it leads to a dramatic
+ reduction of the mean square error and peak error in the irreversible encoding
+ of issue141.tif !
+
+commit f38c069547f1c41dc94ec4a273efb07997685c21
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-20 13:14:16 +0200
+
+ Irreversible decoding: align code more closely to the standard by avoid messing up with stepsize (no functional change)
+
+commit e46e300de55aa35279935ef9e8572949d725d833
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-20 11:36:05 +0200
+
+ opj_dwt_encode_1_real(): avoid many bound comparisons, similarly to decoding side
+
+commit 4ab2ed090747ad2f22e78d45a1db5640d40e6a34
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-19 22:26:22 +0200
+
+ opj_j2k_setup_encoder(): add validation of tile width and height to avoid potential division by zero
+
+commit c6a413a42394836b956846cc037dd8297b732f44
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-19 19:45:00 +0200
+
+ opj_mct_encode_real(): add SSE optimization
+
+commit fe4c15f12c562a42a6b0c4b0a0c5e42a25797235
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-19 18:03:58 +0200
+
+ Testing: revise testing of lossy encoding by comparing PEAK and MSE with original image
+
+commit c2b9d09c65ec5db4a94de961b0470923aec74e2e
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-19 18:03:29 +0200
+
+ compare_images.c: code reformatting
+
+commit 3d35d0f3af46ee206a3ea147298aad3d83a7775c
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-18 20:17:07 +0200
+
+ tcd.c: add comment
+
+commit 00cff6f5c02deabb64ccb15f15c13fcb773968fe
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-18 20:15:07 +0200
+
+ Encoder: use floating-point operations for irreversible transformation
+
+commit 99107d5e468beef3cf2f7db24633ba8b40732405
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-05-18 18:09:10 +0200
+
+ dwt.c: change sign of constants to match standard and compensate (no functional change)
+
+commit 07d1f775a1ef95496b0c78b18f671dac41983320
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-04-30 11:52:42 +0200
+
+ Add multithreaded support in the DWT encoder.
+
+ Update the bench_dwt utility to have a -decode/-encode switch
+
+ Measured performance gains for DWT encoder on a
+ Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz (4 cores, hyper threaded)
+
+ Encoding time:
+ $ ./bin/bench_dwt -encode -num_threads 1
+ time for dwt_encode: total = 8.348 s, wallclock = 8.352 s
+
+ $ ./bin/bench_dwt -encode -num_threads 2
+ time for dwt_encode: total = 9.776 s, wallclock = 4.904 s
+
+ $ ./bin/bench_dwt -encode -num_threads 4
+ time for dwt_encode: total = 13.188 s, wallclock = 3.310 s
+
+ $ ./bin/bench_dwt -encode -num_threads 8
+ time for dwt_encode: total = 30.024 s, wallclock = 4.064 s
+
+ Scaling is probably limited by memory access patterns causing
+ memory access to be the bottleneck.
+ The slightly worse results with threads==8 than with thread==4
+ is due to hyperthreading being not appropriate here.
+
+commit 97eb7e0bf17b476d516262e0af462ec7eeb8f505
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2020-04-29 11:50:17 +0200
+
+ Add multithreading support in the T1 (entropy phase) encoder
+
+ - API wise, opj_codec_set_threads() can be used on the encoding side
+ - opj_compress has a -threads switch similar to opj_uncompress
+
commit 1d358f25c8eabbc7c274bcc148f4f5d594ec13fe
Merge: 64689d0 4edb8c8
Author: Even Rouault <even.rouault@spatialys.com>
Fix multiple potential vulnerabilities and bugs
-commit 05be3084460e46282ee63f04c72c451f3271fd28
-Author: Young Xiao <YangX92@hotmail.com>
-Date: 2018-11-28 14:44:06 +0800
-
- [JPWL] tgatoimage(): avoid excessive memory allocation attempt,
- and fixes unaligned load
-
- Signed-off-by: Young Xiao <YangX92@hotmail.com>
-
-commit bd88611ed9ad7144ec4f3de54790cd848175891b
-Author: Young_X <YangX92@hotmail.com>
-Date: 2018-11-23 17:15:05 +0800
-
- [JP3D] To avoid divisions by zero / undefined behaviour on shift (CVE-2018-14423
-
- Signed-off-by: Young_X <YangX92@hotmail.com>
-
-commit ce9583d1d7627e007a34a31ae4e22a00d78bd153
-Author: Young_X <YangX92@hotmail.com>
-Date: 2018-11-23 17:12:06 +0800
-
- [JPWL] opj_compress: reorder checks related to code block dimensions to avoid potential int overflow
-
- Signed-off-by: Young_X <YangX92@hotmail.com>
-
-commit c58df149900df862806d0e892859b41115875845
-Author: Young_X <YangX92@hotmail.com>
-Date: 2018-11-23 16:24:19 +0800
-
- [OPENJP2] change the way to compute *p_tx0, *p_tx1, *p_ty0, *p_ty1 in function
- opj_get_encoding_parameters
-
- Signed-off-by: Young_X <YangX92@hotmail.com>
-
-commit c277159986c80142180fbe5efb256bbf3bdf3edc
-Author: Young_X <YangX92@hotmail.com>
-Date: 2018-11-23 16:12:53 +0800
-
- [MJ2] Avoid index out of bounds access to pi->include[]
-
- Signed-off-by: Young_X <YangX92@hotmail.com>
-
-commit e0f5212888c0c1abc5e060a75a3a4a5ff99afd1a
-Merge: 92023cd 2e5ab1d
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2018-11-28 00:04:30 +0100
-
- Merge pull request #1170 from rouault/fix_color_apply_icc_profile
-
- color_apply_icc_profile: avoid potential heap buffer overflow
-
-commit 2e5ab1d9987831c981ff05862e8ccf1381ed58ea
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2018-11-27 23:31:30 +0100
-
- color_apply_icc_profile: avoid potential heap buffer overflow
-
- Derived from a patch by Thuan Pham
-
-commit 46822d0eddc3324b2a056bc60ffa997027bebd66
-Author: Young_X <YangX92@hotmail.com>
-Date: 2018-11-23 15:58:23 +0800
-
- [JPWL] imagetotga(): fix read heap buffer overflow if numcomps < 3 (#987)
-
- Signed-off-by: Young_X <YangX92@hotmail.com>
-
-commit 619e1b086eaa21ebd9b23eb67deee543b07bf06f
-Author: Young_X <YangX92@hotmail.com>
-Date: 2018-11-23 15:02:26 +0800
-
- [JPWL] fix CVE-2018-16375
-
- Signed-off-by: Young_X <YangX92@hotmail.com>
-
-commit c5bd64ea146162967c29bd2af0cbb845ba3eaaaf
-Author: Young_X <YangX92@hotmail.com>
-Date: 2018-11-23 14:47:36 +0800
-
- [MJ2] To avoid divisions by zero / undefined behaviour on shift
-
- Signed-off-by: Young_X <YangX92@hotmail.com>
-
-commit 92023cd6c377e0384a7725949b25655d4d94dced
-Merge: c196b23 cab352e
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2018-11-16 09:42:19 +0100
-
- Merge pull request #1160 from hlef/master
-
- jp3d/jpwl convert: fix write stack buffer overflow
-
-commit c196b23b90321b5c7e3238294607a2e8626c503f
-Author: ichlubna <43234438+ichlubna@users.noreply.github.com>
-Date: 2018-11-16 09:40:31 +0100
-
- openjp3d: Int overflow fixed (#1159)
-
- When compressing a lot of slices (starting from 44 FullHD slices with 3 8bit components in our experiments) the rate values are high enough to cause an int overflow that leads to negative lengths and wrong results. The cast happens too late.
-
-commit cab352e249ed3372dd9355c85e837613fff98fa2
-Author: Hugo Lefeuvre <hle@debian.org>
-Date: 2018-11-07 18:48:29 +0100
-
- jp2: convert: fix null pointer dereference
-
- Tile components in a JP2 image might have null data pointer by defining a
- zero component size (for example using large horizontal or vertical
- sampling periods). This null data pointer leads to null image component
- data pointer, causing crash when dereferenced without != null check in
- imagetopnm.
-
- Add != null check.
-
- This commit addresses #1152 (CVE-2018-18088).
-
-commit 0bc90e4062a5f9258c91eca018c019b179066c62
-Author: Hugo Lefeuvre <hle@debian.org>
-Date: 2018-10-22 16:59:41 +0200
-
- jp3d/jpwl convert: fix write stack buffer overflow
-
- Missing buffer length formatter in fscanf call might lead to write
- stack buffer overflow.
-
- fixes #1044 (CVE-2017-17480)
-
-commit 948332e6ed17565100d1df5f6fdbf66865218e36
-Author: Stefan Weil <sw@weilnetz.de>
-Date: 2018-10-31 20:44:30 +0100
-
- Fix some potential overflow issues (#1161)
-
- * Fix some potential overflow issues
-
- Put sizeof to the beginning of the multiplication to enforce that
- size_t instead of smaller integer types is used for the calculation.
-
- This fixes warnings from LGTM:
-
- Multiplication result may overflow 'unsigned int'
- before it is converted to 'unsigned long'.
-
- It also allows removing some type casts.
-
- Signed-off-by: Stefan Weil <sw@weilnetz.de>
-
- * Fix code indentation
-
- Signed-off-by: Stefan Weil <sw@weilnetz.de>
-
-commit e52909f4c7896c5efff3340d707c12d0df55d3f9
-Merge: cd900d9 943db0f
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2018-10-31 20:41:52 +0100
-
- Merge pull request #1163 from nforro/memory-and-resource-leaks
-
- Fix several memory and resource leaks
-
-commit 943db0f1c28ca6a7df6d18483f97166a03be9bf7
-Author: Nikola Forró <nforro@redhat.com>
-Date: 2018-10-31 13:39:05 +0100
-
- Fix several memory and resource leaks
-
- Signed-off-by: Nikola Forró <nforro@redhat.com>
-
-commit cd900d96618ab77e79812db654731dd6b5fc7bd8
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2018-10-18 11:45:45 +0200
-
- opj_thread_pool_setup(): fix infinite waiting if a thread creation failed
-
-commit 0e6a5553cfef21b764d289585af2c6934a95456b
-Merge: 8fc09e5 ca16fe5
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2018-09-22 23:54:12 +0200
-
- Merge pull request #1148 from hlef/master
-
- CVE-2018-5785: fix issues with zero bitmasks
-
-commit 8fc09e50e557fa6af4c099b9c6d36bb1071ee1ed
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2018-09-22 23:47:56 +0200
-
- opj_jp2_apply_pclr(): remove useless assert that can trigger on some files (fixes #1125)
-
-commit aaf48ee6bae91032f025f9ac11592c4085a0d96b
-Merge: ee827ad cc38247
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2018-09-22 23:12:50 +0200
-
- Merge branch 'pr1095'
-
-commit cc3824767bde397fedb8a1ae4786a222ba860c8d
-Author: Karol Babioch <kbabioch@suse.de>
-Date: 2018-03-02 14:40:58 +0100
-
- opj_mj2_extract: Check provided output prefix for length
-
- This uses snprintf() with correct buffer length instead of sprintf(), which
- prevents a buffer overflow when providing a long output prefix. Furthermore
- the program exits with an error when the provided output prefix is too long.
-
- Fixes #1088.
-
-commit ee827ad3f32469d4854b2da71c9703a2af359f9f
-Merge: 5d94bcd 1eb9a57
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2018-09-22 23:05:54 +0200
-
- Merge branch 'pr1107'
-
-commit 1eb9a57ac1216209a4d9adf87bc47ba19810d3b3
-Author: szukw000 <szukw000@arcor.de>
-Date: 2018-03-13 18:11:54 +0100
-
- opj_mj2_extract: Avoid segfault for long filenames
-
-commit 5d94bcd89c6e281614955c56cbfebb11b866a9dd
-Merge: b54c06f 0fa7ebe
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2018-09-22 22:59:36 +0200
-
- Merge pull request #1136 from reverson/master
-
- Cast on uint ceildiv
-
...</pre></div>
</body>
'2.2.0' => '2017-08-10 00:31',
'2.3.0' => '2017-10-04 22:23',
'2.3.1' => '2019-04-02 10:08',
- 'current' => '2020-09-23 02:34:31'
+ 'current' => '2020-10-09 13:25:27'
},
'HeadersDiff' => {
'1.1' => {
'Maintainer' => 'OpenJPEG team',
'MaintainerUrl' => 'http://www.openjpeg.org/',
'PackageDiff' => {},
- 'ScmUpdateTime' => '1600854594',
+ 'ScmUpdateTime' => '1602243507',
'Soname' => {
'1.1' => {
'lib/libopenjpeg.so' => 'libopenjpeg.so'
<tr><td class="lineno"></td><td class="left">} opj_poc_t;</td><td> </td><td class="right">} opj_poc_t;</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
- <tr id="part-3" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-3"><em> line 1539<span class="hide"> ¶</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-3"><em> line 1573<span class="hide"> ¶</span></em></a></th><td></td></tr>
+ <tr id="part-3" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-3"><em> line 1307<span class="hide"> ¶</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-3"><em> line 1341<span class="hide"> ¶</span></em></a></th><td></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * Allocates worker threads for the compressor/decompressor.</td><td> </td><td class="right"> * Allocates worker threads for the compressor/decompressor.</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * By default, only the main thread is used. If this function is not used,</td><td> </td><td class="right"> * By default, only the main thread is used. If this function is not used,</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * but the OPJ_NUM_THREADS environment variable is set, its value will be</td><td> </td><td class="right"> * but the OPJ_NUM_THREADS environment variable is set, its value will be</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * used to initialize the number of threads. The value can be either an int
+eger</td><td> </td><td class="right"> * used to initialize the number of threads. The value can be either an int
+eger</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * number, or "ALL_CPUS". If OPJ_NUM_THREADS is set and this function is ca
+lled,</td><td> </td><td class="right"> * number, or "ALL_CPUS". If OPJ_NUM_THREADS is set and this function is ca
+lled,</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * this function will override the behaviour of the environment variable.</td><td> </td><td class="right"> * this function will override the behaviour of the environment variable.</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno"></td></tr>
+ <tr id="diff0007"><td></td></tr>
+ <tr><td class="lineno"></td><td class="lblock"> * <span class="delete">Currently this</span> function must be called after opj_setup_decoder() and</td><td> </td><td class="rblock"> * <span class="insert">This</span> function must be called after opj_setup_decoder() and</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="lblock"> * before <span class="delete">opj_read_header().</span></td><td> </td><td class="rblock"> * before <span class="insert">opj_read_header() for the decoding side, or after opj_setup_encod</span></td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="lblock"><span class="delete"> *</span></td><td> </td><td class="rblock"><span class="insert">er()</span></td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="lblock"> * <span class="delete">Note: currently only has effect on</span> the <span class="delete">decompressor.</span></td><td> </td><td class="rblock"> * <span class="insert">and before opj_start_compress() for</span> the <span class="insert">encoding side.</span></td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno"></td></tr>
+ <tr id="diff0008"><td></td></tr>
+ <tr><td class="lineno"></td><td class="lblock"> * @param p_codec decompressor handler</td><td> </td><td class="rblock"> * @param p_codec decompressor <span class="insert">or compressor </span>handler</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * @param num_threads number of threads.</td><td> </td><td class="right"> * @param num_threads number of threads.</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno"></td></tr>
+ <tr id="diff0009"><td></td></tr>
+ <tr><td class="lineno"></td><td class="lblock"> * @return OPJ_TRUE if the <span class="delete">decoder is correctly set</span></td><td> </td><td class="rblock"> * @return OPJ_TRUE if the <span class="insert">function is successful.</span></td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> */</td><td> </td><td class="right"> */</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_codec_set_threads(opj_codec_t *p_codec,</td><td> </td><td class="right">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_codec_set_threads(opj_codec_t *p_codec,</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> int num_threads);</td><td> </td><td class="right"> int num_threads);</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * Decodes an image header.</td><td> </td><td class="right"> * Decodes an image header.</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * @param p_stream the jpeg2000 stream.</td><td> </td><td class="right"> * @param p_stream the jpeg2000 stream.</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * @param p_codec the jpeg2000 codec to read.</td><td> </td><td class="right"> * @param p_codec the jpeg2000 codec to read.</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"> * @param p_image the image structure initialized with the charac
+teristics of encoded image.</td><td> </td><td class="right"> * @param p_image the image structure initialized with the charac
+teristics of encoded image.</td><td class="lineno"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr id="part-4" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-4"><em> line 1539<span class="hide"> ¶</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-4"><em> line 1572<span class="hide"> ¶</span></em></a></th><td></td></tr>
<tr><td class="lineno"></td><td class="left"> * Setup the encoder parameters using the current image and using user para
meters.</td><td> </td><td class="right"> * Setup the encoder parameters using the current image and using user para
meters.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> opj_image_t *image);</td><td> </td><td class="right"> opj_image_t *image);</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno"></td></tr>
- <tr id="diff0007"><td></td></tr>
+ <tr id="diff0010"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">* Specify extra options for the encoder.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * This may be called after opj_setup_encoder() and before opj_start_compre</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno"></td></tr>
<tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
- <tr id="end" bgcolor="gray"><th colspan="5" align="center"> End of changes. 7 change blocks. </th></tr>
- <tr class="stats"><td></td><th><i>9 lines changed or deleted</i></th><th><i> </i></th><th><i>97 lines changed or added</i></th><td></td></tr>
+ <tr id="end" bgcolor="gray"><th colspan="5" align="center"> End of changes. 10 change blocks. </th></tr>
+ <tr class="stats"><td></td><th><i>15 lines changed or deleted</i></th><th><i> </i></th><th><i>103 lines changed or added</i></th><td></td></tr>
<tr><td colspan="5" align="center" class="small"></td></tr>
</table>
<br/><div style='width:100%;' align='left' class='small'>This html diff was produced by rfcdiff 1.41.The latest version is available from <a href='http://tools.ietf.org/tools/rfcdiff/'>http://tools.ietf.org/tools/rfcdiff/</a></div>
* number, or "ALL_CPUS". If OPJ_NUM_THREADS is set and this function is called,
* this function will override the behaviour of the environment variable.
*
- * Currently this function must be called after opj_setup_decoder() and
- * before opj_read_header().
+ * This function must be called after opj_setup_decoder() and
+ * before opj_read_header() for the decoding side, or after opj_setup_encoder()
+ * and before opj_start_compress() for the encoding side.
*
- * Note: currently only has effect on the decompressor.
- *
- * @param p_codec decompressor handler
+ * @param p_codec decompressor or compressor handler
* @param num_threads number of threads.
*
- * @return OPJ_TRUE if the decoder is correctly set
+ * @return OPJ_TRUE if the function is successful.
*/
OPJ_API OPJ_BOOL OPJ_CALLCONV opj_codec_set_threads(opj_codec_t *p_codec,
int num_threads);
<th>Headers<br/>Diff</th>
</tr>
<tr id='current'><td>current</td>
-<td>2020-09-23<br/>02:34</td>
+<td>2020-10-09<br/>13:25</td>
<td>7</td>
<td><a href='../../changelog/openjpeg/current/log.html'>changelog</a></td>
<td class='ok'><a href='../../objects_report/openjpeg/2.3.1/current/report.html'>100%</a></td>
<td>N/A</td>
<td>N/A</td>
</tr>
-</table><br/>Maintained by <a href='http://www.openjpeg.org/'>OpenJPEG team</a>. Last updated on Wed Sep 23 09:50:31 2020.<br/>
+</table><br/>Maintained by <a href='http://www.openjpeg.org/'>OpenJPEG team</a>. Last updated on Fri Oct 9 11:39:03 2020.<br/>
<br/>
<hr/>
<div align='right'><a class='home' title="Andrey Ponomarenko's ABI laboratory" href='http://abi-laboratory.pro/'>abi-laboratory.pro</a></div>