27#include "grk_config.h"
34#define GRK_CALLCONV __stdcall
39#define GRK_API __declspec(dllexport)
41#define GRK_API __declspec(dllimport)
47#define GRK_API __attribute__((visibility("hidden")))
49#define GRK_API __attribute__((visibility("default")))
108#define GRK_NUM_COMMENTS_SUPPORTED 256
109#define GRK_NUM_ASOC_BOXES_SUPPORTED 256
110#define GRK_MAX_COMMENT_LENGTH (UINT16_MAX - 2)
111#define GRK_MAX_SUPPORTED_IMAGE_PRECISION 16
126#define BIBO_EXTRA_BITS 7
128#define GRK_MAX_PASSES (3 * (GRK_MAX_SUPPORTED_IMAGE_PRECISION + BIBO_EXTRA_BITS) - 2)
251#define GRK_PATH_LEN 4096
252#define GRK_MAX_LAYERS 100
258#define GRK_J2K_MAX_DECOMP_LVLS \
261#define GRK_J2K_MAXRLVLS \
262 (GRK_J2K_MAX_DECOMP_LVLS + 1)
263#define GRK_J2K_MAXBANDS \
264 (3 * GRK_J2K_MAXRLVLS - 2)
482 void* io_user_data,
void* reclaim_user_data);
493typedef size_t (*
grk_stream_read_fn)(uint8_t* buffer,
size_t numBytes,
void* user_data);
503typedef size_t (*
grk_stream_write_fn)(
const uint8_t* buffer,
size_t numBytes,
void* user_data);
584#define GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT (UINT_MAX)
796#define GRK_DECODE_HEADER (1 << 0)
797#define GRK_DECODE_T2 (1 << 1)
798#define GRK_DECODE_T1 (1 << 2)
799#define GRK_DECODE_POST_T1 (1 << 3)
800#define GRK_PLUGIN_DECODE_CLEAN (1 << 4)
801#define GRK_DECODE_ALL \
802 (GRK_PLUGIN_DECODE_CLEAN | GRK_DECODE_HEADER | GRK_DECODE_T2 | GRK_DECODE_T1 | \
850 void* error_user_data);
949 float end_x,
float end_y);
1164 int32_t* dc_shift, uint32_t nbComp);
1166#define GRK_IMG_INFO 1
1167#define GRK_J2K_MH_INFO 2
1168#define GRK_J2K_TH_INFO 4
1169#define GRK_J2K_TCH_INFO 8
1170#define GRK_J2K_MH_IND 16
1171#define GRK_J2K_TH_IND 32
1172#define GRK_JP2_INFO 128
1173#define GRK_JP2_IND 256
1175#define GRK_CBLKSTY_LAZY 0x001
1176#define GRK_CBLKSTY_RESET 0x002
1177#define GRK_CBLKSTY_TERMALL 0x004
1178#define GRK_CBLKSTY_VSC 0x008
1179#define GRK_CBLKSTY_PTERM 0x010
1180#define GRK_CBLKSTY_SEGSYM 0x020
1181#define GRK_CBLKSTY_HT 0x040
1182#define GRK_CBLKSTY_HT_MIXED 0x080
1183#define GRK_CBLKSTY_HT_PHLD 0x100
1184#define GRK_JPH_RSIZ_FLAG 0x4000
1206#define GRK_PROFILE_NONE 0x0000
1207#define GRK_PROFILE_0 0x0001
1208#define GRK_PROFILE_1 0x0002
1209#define GRK_PROFILE_CINEMA_2K 0x0003
1210#define GRK_PROFILE_CINEMA_4K 0x0004
1211#define GRK_PROFILE_CINEMA_S2K 0x0005
1212#define GRK_PROFILE_CINEMA_S4K 0x0006
1213#define GRK_PROFILE_CINEMA_LTS \
1215#define GRK_PROFILE_BC_SINGLE 0x0100
1216#define GRK_PROFILE_BC_MULTI 0x0200
1217#define GRK_PROFILE_BC_MULTI_R \
1219#define GRK_PROFILE_BC_MASK 0x030F
1220#define GRK_PROFILE_IMF_2K 0x0400
1221#define GRK_PROFILE_IMF_4K 0x0500
1222#define GRK_PROFILE_IMF_8K 0x0600
1223#define GRK_PROFILE_IMF_2K_R \
1225#define GRK_PROFILE_IMF_4K_R \
1227#define GRK_PROFILE_IMF_8K_R \
1229#define GRK_PROFILE_MASK 0x0FFF
1230#define GRK_PROFILE_PART2 0x8000
1231#define GRK_PROFILE_PART2_EXTENSIONS_MASK 0x3FFF
1236#define GRK_EXTENSION_NONE 0x0000
1237#define GRK_EXTENSION_MCT 0x0100
1238#define GRK_IS_PART2(v) ((v)&GRK_PROFILE_PART2)
1240#define GRK_IS_CINEMA(v) (((v) >= GRK_PROFILE_CINEMA_2K) && ((v) <= GRK_PROFILE_CINEMA_S4K))
1241#define GRK_IS_STORAGE(v) ((v) == GRK_PROFILE_CINEMA_LTS)
1295#define GRK_GET_IMF_OR_BROADCAST_PROFILE(v) \
1298#define GRK_LEVEL_MAX 11U
1299#define GRK_GET_LEVEL(v) ((v)&0xf)
1303#define GRK_IS_BROADCAST(v) \
1304 (((v) >= GRK_PROFILE_BC_SINGLE) && ((v) <= (GRK_PROFILE_BC_MULTI_R | 0x000b)) && \
1308#define GRK_BROADCAST_LEVEL_1_MBITSSEC 200U
1309#define GRK_BROADCAST_LEVEL_2_MBITSSEC 200U
1310#define GRK_BROADCAST_LEVEL_3_MBITSSEC 200U
1311#define GRK_BROADCAST_LEVEL_4_MBITSSEC 400U
1312#define GRK_BROADCAST_LEVEL_5_MBITSSEC 800U
1313#define GRK_BROADCAST_LEVEL_6_MBITSSEC 1600U
1314#define GRK_BROADCAST_LEVEL_7_MBITSSEC 3200U
1315#define GRK_BROADCAST_LEVEL_8_MBITSSEC 6400U
1316#define GRK_BROADCAST_LEVEL_9_MBITSSEC 12800U
1317#define GRK_BROADCAST_LEVEL_10_MBITSSEC 25600U
1318#define GRK_BROADCAST_LEVEL_11_MBITSSEC 51200U
1320#define GRK_BROADCAST_LEVEL_1_MSAMPLESSEC 64U
1321#define GRK_BROADCAST_LEVEL_2_MSAMPLESSEC 130U
1322#define GRK_BROADCAST_LEVEL_3_MSAMPLESSEC 195U
1323#define GRK_BROADCAST_LEVEL_4_MSAMPLESSEC 260U
1324#define GRK_BROADCAST_LEVEL_5_MSAMPLESSEC 520U
1325#define GRK_BROADCAST_LEVEL_6_MSAMPLESSEC 1200U
1326#define GRK_BROADCAST_LEVEL_7_MSAMPLESSEC 2400U
1327#define GRK_BROADCAST_LEVEL_8_MSAMPLESSEC 4800U
1328#define GRK_BROADCAST_LEVEL_9_MSAMPLESSEC 9600U
1329#define GRK_BROADCAST_LEVEL_10_MSAMPLESSEC 19200U
1330#define GRK_BROADCAST_LEVEL_11_MSAMPLESSEC 38400U
1334#define GRK_IS_IMF(v) \
1335 (((v) >= GRK_PROFILE_IMF_2K) && ((v) <= (GRK_PROFILE_IMF_8K_R | 0x009b)) && \
1336 (((v)&0xf) <= 0xb) && (((v)&0xf0) <= 0x90))
1339#define GRK_IMF_MAINLEVEL_1_MSAMPLESSEC 65U
1340#define GRK_IMF_MAINLEVEL_2_MSAMPLESSEC 130U
1341#define GRK_IMF_MAINLEVEL_3_MSAMPLESSEC 195U
1342#define GRK_IMF_MAINLEVEL_4_MSAMPLESSEC 260U
1343#define GRK_IMF_MAINLEVEL_5_MSAMPLESSEC 520U
1344#define GRK_IMF_MAINLEVEL_6_MSAMPLESSEC 1200U
1345#define GRK_IMF_MAINLEVEL_7_MSAMPLESSEC 2400U
1346#define GRK_IMF_MAINLEVEL_8_MSAMPLESSEC 4800U
1347#define GRK_IMF_MAINLEVEL_9_MSAMPLESSEC 9600U
1348#define GRK_IMF_MAINLEVEL_10_MSAMPLESSEC 19200U
1349#define GRK_IMF_MAINLEVEL_11_MSAMPLESSEC 38400U
1351#define GRK_IMF_SUBLEVEL_MAX 9U
1352#define GRK_GET_IMF_SUBLEVEL(v) (((v) >> 4) & 0xf)
1355#define GRK_IMF_SUBLEVEL_1_MBITSSEC 200U
1356#define GRK_IMF_SUBLEVEL_2_MBITSSEC 400U
1357#define GRK_IMF_SUBLEVEL_3_MBITSSEC 800U
1358#define GRK_IMF_SUBLEVEL_4_MBITSSEC 1600U
1359#define GRK_IMF_SUBLEVEL_5_MBITSSEC 3200U
1360#define GRK_IMF_SUBLEVEL_6_MBITSSEC 6400U
1361#define GRK_IMF_SUBLEVEL_7_MBITSSEC 12800U
1362#define GRK_IMF_SUBLEVEL_8_MBITSSEC 25600U
1363#define GRK_IMF_SUBLEVEL_9_MBITSSEC 51200U
1370#define GRK_CINEMA_DCI_MAX_BANDWIDTH 250000000
1372#define GRK_CINEMA_24_CS 1302083
1373#define GRK_CINEMA_24_COMP 1041666
1375#define GRK_CINEMA_48_CS 651041
1376#define GRK_CINEMA_48_COMP 520833
1378#define GRK_CINEMA_4K_DEFAULT_NUM_RESOLUTIONS 7
1384#define GRK_CUSTOM_CIELAB_SPACE 0x0
1385#define GRK_DEFAULT_CIELAB_SPACE 0x44454600
1386#define GRK_CIE_DAY ((((uint32_t)'C') << 24) + (((uint32_t)'T') << 16))
1387#define GRK_CIE_D50 ((uint32_t)0x00443530)
1388#define GRK_CIE_D65 ((uint32_t)0x00443635)
1389#define GRK_CIE_D75 ((uint32_t)0x00443735)
1390#define GRK_CIE_SA ((uint32_t)0x00005341)
1391#define GRK_CIE_SC ((uint32_t)0x00005343)
1392#define GRK_CIE_F2 ((uint32_t)0x00004632)
1393#define GRK_CIE_F7 ((uint32_t)0x00004637)
1394#define GRK_CIE_F11 ((uint32_t)0x00463131)
1399#define GRK_RANDOM_ACCESS_PLT 1
1400#define GRK_RANDOM_ACCESS_TLM 2
1401#define GRK_RANDOM_ACCESS_PLM 4
1430#define GRK_PLUGIN_STATE_NO_DEBUG 0x0
1447#define GRK_PLUGIN_STATE_DEBUG 0x1
1448#define GRK_PLUGIN_STATE_PRE_TR1 0x2
1449#define GRK_PLUGIN_STATE_DWT_QUANTIZATION 0x4
1450#define GRK_PLUGIN_STATE_MCT_ONLY 0x8
struct _grk_plugin_init_info grk_plugin_init_info
enum _GRK_TILE_CACHE_STRATEGY GRK_TILE_CACHE_STRATEGY
_GRK_SUPPORTED_FILE_FMT
All supported file formats.
Definition grok.h:226
@ GRK_FMT_BMP
Definition grok.h:233
@ GRK_FMT_JP2
Definition grok.h:229
@ GRK_FMT_J2K
Definition grok.h:228
@ GRK_FMT_PNG
Definition grok.h:236
@ GRK_FMT_RAWL
Definition grok.h:237
@ GRK_FMT_UNK
Definition grok.h:227
@ GRK_FMT_TIF
Definition grok.h:234
@ GRK_FMT_JPG
Definition grok.h:238
@ GRK_FMT_PXM
Definition grok.h:230
@ GRK_FMT_RAW
Definition grok.h:235
@ GRK_FMT_PAM
Definition grok.h:232
@ GRK_FMT_PGX
Definition grok.h:231
struct _grk_cparameters grk_cparameters
Compress parameters.
GRK_API void GRK_CALLCONV grk_decompress_set_default_params(grk_decompress_parameters *parameters)
Initialize decompress parameters with default values.
Definition grok.cpp:335
struct _grk_progression grk_progression
Progression order change.
enum _grk_precision_mode grk_precision_mode
Precision mode.
struct _grk_image grk_image
void(* grk_io_register_reclaim_callback)(grk_io_init io_init, grk_io_callback reclaim_callback, void *io_user_data, void *reclaim_user_data)
Definition grok.h:479
GRK_API bool GRK_CALLCONV grk_set_MCT(grk_cparameters *parameters, float *encodingMatrix, int32_t *dc_shift, uint32_t nbComp)
Set the MCT matrix to use.
Definition grok.cpp:435
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_compress(void)
Stop batch compress.
Definition grok.cpp:853
GRK_API grk_object *GRK_CALLCONV grk_object_ref(grk_object *obj)
Increment ref count.
Definition grok.cpp:133
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_decompress(void)
Stop batch decompress.
Definition grok.cpp:950
struct _grk_channel_description grk_channel_description
Channel definition: channel index, type, association.
#define GRK_NUM_COMMENTS_SUPPORTED
Definition grok.h:108
void(* grk_msg_callback)(const char *msg, void *client_data)
Logging callback.
Definition grok.h:136
enum _GRK_CHANNEL_TYPE GRK_CHANNEL_TYPE
bool(* grk_io_pixels_callback)(uint32_t threadId, grk_io_buf buffer, void *user_data)
Definition grok.h:482
struct _grk_stream_params grk_stream_params
JPEG 2000 stream parameters.
GRK_API void GRK_CALLCONV grk_plugin_cleanup(void)
Release plugin resources.
Definition grok.cpp:771
GRK_API bool GRK_CALLCONV grk_plugin_load(grk_plugin_load_info info)
Load plugin.
Definition grok.cpp:729
GRK_API uint64_t GRK_CALLCONV grk_compress(grk_codec *codec, grk_plugin_tile *tile)
Compress an image into a JPEG 2000 code stream using plugin.
Definition grok.cpp:601
struct grk_plugin_compress_batch_info grk_plugin_compress_batch_info
uint64_t(* GRK_PLUGIN_COMPRESS_USER_CALLBACK)(grk_plugin_compress_user_callback_info *info)
Definition grok.h:1485
GRK_API bool GRK_CALLCONV grk_decompress_detect_format(const char *fileName, GRK_CODEC_FORMAT *fmt)
Detect jpeg 2000 format from file Format is either GRK_FMT_J2K or GRK_FMT_JP2.
Definition grok.cpp:256
enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT
Supported JPEG 2000 formats.
enum _GRK_ENUM_COLOUR_SPACE GRK_ENUM_COLOUR_SPACE
GRK_API void GRK_CALLCONV grk_set_msg_handlers(grk_msg_callback info_callback, void *info_user_data, grk_msg_callback warn_callback, void *warn_user_data, grk_msg_callback error_callback, void *error_user_data)
Definition grok.cpp:151
GRK_API uint32_t GRK_CALLCONV grk_plugin_get_debug_state()
Get debug state of plugin.
Definition grok.cpp:756
struct _grk_precision grk_precision
Precision.
struct _grk_plugin_decompress_callback_info grk_plugin_decompress_callback_info
#define GRK_MAX_PASSES
Definition grok.h:128
GRK_API int32_t GRK_CALLCONV grk_plugin_batch_decompress(void)
Initiate batch decompress.
Definition grok.cpp:936
enum _GRK_PROG_ORDER GRK_PROG_ORDER
Progression order.
struct _grk_object grk_object
Grok ref-counted object.
struct _grk_raw_cparameters grk_raw_cparameters
RAW image compress parameters.
struct _grk_plugin_load_info grk_plugin_load_info
GRK_API int32_t GRK_CALLCONV grk_plugin_compress(grk_cparameters *compress_parameters, GRK_PLUGIN_COMPRESS_USER_CALLBACK callback)
Compress with plugin.
Definition grok.cpp:805
_GRK_CHANNEL_ASSOC
Definition grok.h:313
@ GRK_CHANNEL_ASSOC_COLOUR_1
Definition grok.h:316
@ GRK_CHANNEL_ASSOC_COLOUR_2
Definition grok.h:317
@ GRK_CHANNEL_ASSOC_COLOUR_3
Definition grok.h:318
@ GRK_CHANNEL_ASSOC_WHOLE_IMAGE
Definition grok.h:315
@ GRK_CHANNEL_ASSOC_UNASSOCIATED
Definition grok.h:319
enum _GRK_RATE_CONTROL_ALGORITHM GRK_RATE_CONTROL_ALGORITHM
Rate control algorithms GRK_RATE_CONTROL_BISECT: bisect with all truncation points GRK_RATE_CONTROL_P...
struct _grk_decompress_core_params grk_decompress_core_params
Core decompression parameters.
size_t(* grk_stream_read_fn)(uint8_t *buffer, size_t numBytes, void *user_data)
read stream callback
Definition grok.h:492
struct _grk_image_meta grk_image_meta
struct _grk_asoc grk_asoc
Association box info.
grk_object grk_codec
Definition grok.h:815
enum _GRK_SUPPORTED_FILE_FMT GRK_SUPPORTED_FILE_FMT
All supported file formats.
#define GRK_J2K_MAXRLVLS
Definition grok.h:260
struct _grk_palette_data grk_palette_data
Palette data.
#define GRK_API
Definition grok.h:49
GRK_API bool GRK_CALLCONV grk_decompress_read_header(grk_codec *codec, grk_header_info *header_info)
Decompress JPEG 2000 header.
Definition grok.cpp:375
struct _grk_component_mapping_comp grk_component_mapping_comp
Note: "component" refers to an image component as decompressed from the code stream,...
GRK_API grk_codec *GRK_CALLCONV grk_compress_init(grk_stream_params *stream_params, grk_cparameters *parameters, grk_image *p_image)
Set up the compressor parameters using the current image and user parameters.
Definition grok.cpp:533
struct _grk_image_comp grk_image_comp
Image component.
struct _grk_raw_comp_cparameters grk_raw_comp_cparameters
RAW component compress parameters.
GRK_API void GRK_CALLCONV grk_deinitialize()
De-initialize library.
Definition grok.cpp:127
struct grk_plugin_tile_component grk_plugin_tile_component
Plugin tile component.
GRK_API void GRK_CALLCONV grk_object_unref(grk_object *obj)
Definition grok.cpp:142
#define GRK_MAX_LAYERS
Definition grok.h:252
GRK_API grk_codec *GRK_CALLCONV grk_decompress_init(grk_stream_params *stream_params, grk_decompress_core_params *core_params)
Initialize decompressor.
Definition grok.cpp:346
GRK_API void GRK_CALLCONV grk_compress_set_default_params(grk_cparameters *parameters)
Set compressing parameters to default values:
Definition grok.cpp:504
GRK_API void GRK_CALLCONV grk_set_default_stream_params(grk_stream_params *params)
Initialize stream parameters with default values.
Definition grok.cpp:274
struct _grk_plugin_precinct grk_plugin_precinct
Plugin precinct.
GRK_API void GRK_CALLCONV grk_initialize(const char *pluginPath, uint32_t numthreads, bool verbose)
Initialize library.
Definition grok.cpp:115
struct grk_plugin_compress_user_callback_info grk_plugin_compress_user_callback_info
GRK_API const char *GRK_CALLCONV grk_version(void)
Library version.
Definition grok.cpp:211
_GRK_COLOR_SPACE
Supported color spaces.
Definition grok.h:71
@ GRK_CLRSPC_SRGB
sRGB
Definition grok.h:73
@ GRK_CLRSPC_EYCC
extended YCC
Definition grok.h:76
@ GRK_CLRSPC_UNKNOWN
unknown
Definition grok.h:72
@ GRK_CLRSPC_SYCC
standard YCC (YUV)
Definition grok.h:75
@ GRK_CLRSPC_DEFAULT_CIE
default CIE LAB
Definition grok.h:78
@ GRK_CLRSPC_ICC
ICC profile.
Definition grok.h:80
@ GRK_CLRSPC_CMYK
CMYK.
Definition grok.h:77
@ GRK_CLRSPC_GRAY
grayscale
Definition grok.h:74
@ GRK_CLRSPC_CUSTOM_CIE
custom CIE LAB
Definition grok.h:79
struct _grk_io_buf grk_io_buf
_grk_precision_mode
Precision mode.
Definition grok.h:370
@ GRK_PREC_MODE_SCALE
Definition grok.h:372
@ GRK_PREC_MODE_CLIP
Definition grok.h:371
GRK_API grk_image_meta *GRK_CALLCONV grk_image_meta_new(void)
Definition grok.cpp:222
enum _GRK_COLOR_SPACE GRK_COLOR_SPACE
Supported color spaces.
#define GRK_PATH_LEN
Definition grok.h:251
GRK_API grk_image *GRK_CALLCONV grk_image_new(uint16_t numcmpts, grk_image_comp *cmptparms, GRK_COLOR_SPACE clrspc, bool alloc_data)
Create image.
Definition grok.cpp:216
GRK_API bool GRK_CALLCONV grk_decompress_set_window(grk_codec *codec, float start_x, float start_y, float end_x, float end_y)
Set the given area to be decompressed.
Definition grok.cpp:389
GRK_API int32_t GRK_CALLCONV grk_plugin_decompress(grk_decompress_parameters *decompress_parameters, grk_plugin_decompress_callback callback)
Decompress with plugin.
Definition grok.cpp:901
bool(* grk_stream_seek_fn)(uint64_t offset, void *user_data)
seek (absolute) callback
Definition grok.h:511
struct _grk_io_init grk_io_init
GRK_API grk_image *GRK_CALLCONV grk_decompress_get_composited_image(grk_codec *codec)
Get decompressed composite image.
Definition grok.cpp:474
GRK_API void GRK_CALLCONV grk_dump_codec(grk_codec *codec, uint32_t info_flag, FILE *output_stream)
Dump codec information to file.
Definition grok.cpp:424
_GRK_ENUM_COLOUR_SPACE
Definition grok.h:85
@ GRK_ENUM_CLRSPC_ESRGB
Definition grok.h:101
@ GRK_ENUM_CLRSPC_CMY
Definition grok.h:92
@ GRK_ENUM_CLRSPC_EYCC
Definition grok.h:105
@ GRK_ENUM_CLRSPC_CIEJAB
Definition grok.h:100
@ GRK_ENUM_CLRSPC_GRAY
Definition grok.h:98
@ GRK_ENUM_CLRSPC_CIE
Definition grok.h:95
@ GRK_ENUM_CLRSPC_UNKNOWN
Definition grok.h:86
@ GRK_ENUM_CLRSPC_YCBCR3
Definition grok.h:90
@ GRK_ENUM_CLRSPC_ROMMRGB
Definition grok.h:102
@ GRK_ENUM_CLRSPC_YPBPR60
Definition grok.h:103
@ GRK_ENUM_CLRSPC_SRGB
Definition grok.h:97
@ GRK_ENUM_CLRSPC_BILEVEL2
Definition grok.h:96
@ GRK_ENUM_CLRSPC_SYCC
Definition grok.h:99
@ GRK_ENUM_CLRSPC_PHOTO_YCC
Definition grok.h:91
@ GRK_ENUM_CLRSPC_YCBCR1
Definition grok.h:88
@ GRK_ENUM_CLRSPC_CMYK
Definition grok.h:93
@ GRK_ENUM_CLRSPC_YCCK
Definition grok.h:94
@ GRK_ENUM_CLRSPC_YPBPR50
Definition grok.h:104
@ GRK_ENUM_CLRSPC_BILEVEL1
Definition grok.h:87
@ GRK_ENUM_CLRSPC_YCBCR2
Definition grok.h:89
struct _grk_color grk_color
ICC profile, palette, channel definition.
GRK_API int32_t GRK_CALLCONV grk_plugin_init_batch_decompress(const char *input_dir, const char *output_dir, grk_decompress_parameters *decompress_parameters, grk_plugin_decompress_callback callback)
Initialize batch decompress.
Definition grok.cpp:918
struct _grk_decompress_params grk_decompress_parameters
Decompression parameters.
_GRK_CHANNEL_TYPE
Definition grok.h:303
@ GRK_CHANNEL_TYPE_OPACITY
Definition grok.h:305
@ GRK_CHANNEL_TYPE_PREMULTIPLIED_OPACITY
Definition grok.h:306
@ GRK_CHANNEL_TYPE_COLOUR
Definition grok.h:304
@ GRK_CHANNEL_TYPE_UNSPECIFIED
Definition grok.h:307
_GRK_RATE_CONTROL_ALGORITHM
Rate control algorithms GRK_RATE_CONTROL_BISECT: bisect with all truncation points GRK_RATE_CONTROL_P...
Definition grok.h:217
@ GRK_RATE_CONTROL_PCRD_OPT
Definition grok.h:219
@ GRK_RATE_CONTROL_BISECT
Definition grok.h:218
GRK_API bool GRK_CALLCONV grk_decompress_tile(grk_codec *codec, uint16_t tileIndex)
Decompress a specific tile.
Definition grok.cpp:413
GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress(grk_plugin_compress_batch_info info)
Batch compress with plugin.
Definition grok.cpp:821
struct _grk_channel_definition grk_channel_definition
Channel definitions and number of definitions.
int(* GROK_INIT_DECOMPRESSORS)(grk_header_info *header_info, grk_image *image)
Definition grok.h:1531
struct _grk_plugin_band grk_plugin_band
Plugin band.
_GRK_CODEC_FORMAT
Supported JPEG 2000 formats.
Definition grok.h:245
@ GRK_CODEC_J2K
JPEG 2000 code stream format.
Definition grok.h:247
@ GRK_CODEC_JP2
JP2 file format.
Definition grok.h:248
@ GRK_CODEC_UNK
unknown format
Definition grok.h:246
struct _grk_plugin_tile grk_plugin_tile
Plugin tile.
#define GRK_CALLCONV
Definition grok.h:45
GRK_API grk_image *GRK_CALLCONV grk_decompress_get_tile_image(grk_codec *codec, uint16_t tileIndex)
Get decompressed tile image.
Definition grok.cpp:464
void(* grk_stream_free_user_data_fn)(void *user_data)
free user data callback
Definition grok.h:519
#define GRK_NUM_ASOC_BOXES_SUPPORTED
Definition grok.h:109
_GRK_PROG_ORDER
Progression order.
Definition grok.h:57
@ GRK_RPCL
resolution-precinct-component-layer order
Definition grok.h:61
@ GRK_CPRL
component-precinct-resolution-layer order
Definition grok.h:63
@ GRK_RLCP
resolution-layer-component-precinct order
Definition grok.h:60
@ GRK_PROG_UNKNOWN
place-holder
Definition grok.h:58
@ GRK_LRCP
layer-resolution-component-precinct order
Definition grok.h:59
@ GRK_NUM_PROGRESSION_ORDERS
Definition grok.h:64
@ GRK_PCRL
precinct-component-resolution-layer order
Definition grok.h:62
size_t(* grk_stream_write_fn)(const uint8_t *buffer, size_t numBytes, void *user_data)
write stream callback
Definition grok.h:502
GRK_API void GRK_CALLCONV grk_plugin_wait_for_batch_complete(void)
Wait for batch job to complete.
Definition grok.cpp:839
struct _grk_plugin_pass grk_plugin_pass
Plugin pass.
enum _GRK_CHANNEL_ASSOC GRK_CHANNEL_ASSOC
bool(* grk_io_callback)(uint32_t threadId, grk_io_buf buffer, void *io_user_data)
Definition grok.h:478
struct _grk_header_info grk_header_info
Header info.
int32_t(* grk_plugin_decompress_callback)(grk_plugin_decompress_callback_info *info)
Definition grok.h:1556
_GRK_TILE_CACHE_STRATEGY
Definition grok.h:549
@ GRK_TILE_CACHE_IMAGE
Definition grok.h:551
@ GRK_TILE_CACHE_NONE
Definition grok.h:550
struct _grk_plugin_resolution grk_plugin_resolution
Plugin resolution.
struct _grk_plugin_code_block grk_plugin_code_block
Plugin code block.
GRK_API bool GRK_CALLCONV grk_plugin_init(grk_plugin_init_info initInfo)
Initialize plugin.
Definition grok.cpp:776
GRK_API bool GRK_CALLCONV grk_decompress(grk_codec *codec, grk_plugin_tile *tile)
Decompress image from a JPEG 2000 code stream.
Definition grok.cpp:401
Association box info.
Definition grok.h:359
const char * label
Definition grok.h:361
uint8_t * xml
Definition grok.h:362
uint32_t level
Definition grok.h:360
uint32_t xml_len
Definition grok.h:363
Channel definitions and number of definitions.
Definition grok.h:337
uint16_t num_channel_descriptions
Definition grok.h:339
grk_channel_description * descriptions
Definition grok.h:338
Channel definition: channel index, type, association.
Definition grok.h:327
uint16_t typ
Definition grok.h:329
uint16_t asoc
Definition grok.h:330
uint16_t channel
Definition grok.h:328
ICC profile, palette, channel definition.
Definition grok.h:346
grk_channel_definition * channel_definition
Definition grok.h:350
char * icc_profile_name
Definition grok.h:349
uint32_t icc_profile_len
Definition grok.h:348
uint8_t * icc_profile_buf
Definition grok.h:347
grk_palette_data * palette
Definition grok.h:351
bool has_colour_specification_box
Definition grok.h:352
Note: "component" refers to an image component as decompressed from the code stream,...
Definition grok.h:275
uint8_t palette_column
Definition grok.h:278
uint8_t mapping_type
Definition grok.h:277
uint16_t component_index
Definition grok.h:276
Compress parameters.
Definition grok.h:976
uint32_t cblockw_init
initial code block width (default to 64)
Definition grok.h:1015
uint8_t numgbits
Definition grok.h:1005
char outfile[GRK_PATH_LEN]
output file name
Definition grok.h:1037
bool allocationByRateDistoration
rate control allocation by rate/distortion curve
Definition grok.h:990
GRK_PROG_ORDER prog_order
progression order (default is LRCP)
Definition grok.h:1007
uint16_t comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition grok.h:999
uint32_t repeats
Definition grok.h:1094
uint32_t numThreads
Definition grok.h:1090
bool verbose
Definition grok.h:1097
uint32_t image_offset_x0
subimage compressing: origin image offset in x direction
Definition grok.h:1039
uint64_t max_cs_size
Maximum size (in bytes) for the whole code stream.
Definition grok.h:1066
grk_raw_cparameters raw_cp
Definition grok.h:1050
uint8_t numresolution
number of resolutions
Definition grok.h:1013
uint32_t image_offset_y0
subimage compressing: origin image offset in y direction
Definition grok.h:1041
GRK_SUPPORTED_FILE_FMT decod_format
input file format
Definition grok.h:1047
uint8_t newTilePartProgressionDivider
new tile part progression divider
Definition grok.h:1054
uint32_t cblockh_init
initial code block height (default to 64)
Definition grok.h:1017
GRK_RATE_CONTROL_ALGORITHM rateControlAlgorithm
Definition grok.h:1089
bool allocationByQuality
rate control allocation by fixed_PSNR quality
Definition grok.h:995
uint32_t roi_shift
region of interest: upshift value
Definition grok.h:1027
uint8_t subsampling_dy
subsampling value for dy
Definition grok.h:1045
bool tile_size_on
size of tile: tile_size_on = false (not in argument) or = true (in argument)
Definition grok.h:978
uint32_t t_height
YTsiz.
Definition grok.h:986
bool write_capture_resolution_from_file
Definition grok.h:1078
bool enableTilePartGeneration
Tile part generation.
Definition grok.h:1052
uint32_t res_spec
Definition grok.h:1029
uint64_t max_comp_size
Maximum size (in bytes) for each component.
Definition grok.h:1071
bool sharedMemoryInterface
Definition grok.h:1098
uint8_t mct
MCT (multiple component transform)
Definition grok.h:1056
uint16_t numlayers
number of layers
Definition grok.h:988
int32_t deviceId
Definition grok.h:1091
GRK_SUPPORTED_FILE_FMT cod_format
output file format
Definition grok.h:1049
double capture_resolution_from_file[2]
Definition grok.h:1079
bool irreversible
1 : use the irreversible DWT 9-7, 0 : use lossless compression (default)
Definition grok.h:1022
uint32_t t_width
XTsiz.
Definition grok.h:984
bool write_display_resolution
Definition grok.h:1084
uint8_t cblk_sty
code block style
Definition grok.h:1019
uint8_t csty
csty : coding style
Definition grok.h:1003
uint32_t prch_init[GRK_J2K_MAXRLVLS]
initial precinct height
Definition grok.h:1033
bool is_binary_comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition grok.h:1000
uint16_t rsiz
RSIZ value To be used to combine GRK_PROFILE_*, GRK_EXTENSION_* and (sub)levels values.
Definition grok.h:1074
char infile[GRK_PATH_LEN]
input file name
Definition grok.h:1035
double layer_distortion[GRK_MAX_LAYERS]
layer PSNR values
Definition grok.h:997
void * mct_data
Naive implementation of MCT restricted to a single reversible array based compressing without offset ...
Definition grok.h:1059
uint32_t tx0
XTOsiz.
Definition grok.h:980
char * comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition grok.h:998
bool write_capture_resolution
Definition grok.h:1081
uint8_t subsampling_dx
subsampling value for dx
Definition grok.h:1043
bool writeTLM
Definition grok.h:1096
uint32_t prcw_init[GRK_J2K_MAXRLVLS]
initial precinct width
Definition grok.h:1031
size_t num_comments
Definition grok.h:1001
uint16_t framerate
Definition grok.h:1075
double display_resolution[2]
Definition grok.h:1085
bool writePLT
Definition grok.h:1095
int32_t roi_compno
region of interest: affected component in [0..3]; -1 indicates no ROI
Definition grok.h:1025
uint32_t ty0
YTOsiz.
Definition grok.h:982
uint32_t duration
Definition grok.h:1092
bool apply_icc_
Definition grok.h:1087
double layer_rate[GRK_MAX_LAYERS]
layers rates expressed as compression ratios.
Definition grok.h:993
uint32_t kernelBuildOptions
Definition grok.h:1093
grk_progression progression[GRK_J2K_MAXRLVLS]
progressions
Definition grok.h:1009
uint32_t numpocs
number of progression order changes (POCs), default to 0
Definition grok.h:1011
double capture_resolution[2]
Definition grok.h:1082
Core decompression parameters.
Definition grok.h:558
uint32_t randomAccessFlags_
Definition grok.h:576
grk_io_pixels_callback io_buffer_callback
Definition grok.h:578
GRK_TILE_CACHE_STRATEGY tileCacheStrategy
Definition grok.h:574
uint16_t layers_to_decompress_
Set the maximum number of quality layers to decompress.
Definition grok.h:573
void * io_user_data
Definition grok.h:579
uint8_t reduce
Set the number of highest resolution levels to be discarded.
Definition grok.h:566
grk_io_register_reclaim_callback io_register_client_callback
Definition grok.h:580
Decompression parameters.
Definition grok.h:589
float dw_y1
Decompress window bottom boundary.
Definition grok.h:607
int32_t deviceId
Definition grok.h:629
float dw_x0
Decompress window left boundary.
Definition grok.h:601
bool io_xml
Definition grok.h:620
grk_precision * precision
Definition grok.h:611
uint32_t numThreads
Definition grok.h:633
GRK_SUPPORTED_FILE_FMT cod_format
output file format
Definition grok.h:599
uint32_t kernelBuildOptions
Definition grok.h:631
char infile[GRK_PATH_LEN]
input file name
Definition grok.h:593
uint32_t compressionLevel
Definition grok.h:626
bool force_rgb
Definition grok.h:614
uint32_t compression
Definition grok.h:621
bool singleTileDecompress
Definition grok.h:610
void * user_data
Definition grok.h:634
uint32_t repeats
Definition grok.h:632
bool upsample
Definition grok.h:616
grk_decompress_core_params core
core library parameters
Definition grok.h:591
uint16_t tileIndex
tile number of the decompressed tile
Definition grok.h:609
bool verbose_
Verbose mode.
Definition grok.h:628
uint32_t duration
Definition grok.h:630
float dw_y0
Decompress window up boundary.
Definition grok.h:605
uint32_t numPrecision
Definition grok.h:612
bool split_pnm
Definition grok.h:618
GRK_CODEC_FORMAT decod_format
input file format
Definition grok.h:597
float dw_x1
Decompress window right boundary.
Definition grok.h:603
char outfile[GRK_PATH_LEN]
output file name
Definition grok.h:595
Image component.
Definition grok.h:641
uint32_t h
data height
Definition grok.h:651
uint8_t dy
YRsiz: vertical separation of a sample of component with respect to the reference grid.
Definition grok.h:657
GRK_CHANNEL_ASSOC association
Definition grok.h:663
GRK_CHANNEL_TYPE type
Definition grok.h:662
uint8_t dx
XRsiz: horizontal separation of a sample of component with respect to the reference grid.
Definition grok.h:654
bool sgnd
Definition grok.h:661
uint32_t w
data width
Definition grok.h:647
uint8_t prec
precision
Definition grok.h:659
uint16_t Ycrg
Definition grok.h:665
int32_t * data
image component data
Definition grok.h:667
uint32_t x0
x component offset compared to the whole image
Definition grok.h:643
uint16_t Xcrg
Definition grok.h:665
uint32_t y0
y component offset compared to the whole image
Definition grok.h:645
uint32_t stride
data stride
Definition grok.h:649
uint16_t decompressNumComps
Definition grok.h:710
grk_precision * precision
Definition grok.h:706
bool has_capture_resolution
Definition grok.h:699
uint16_t numcomps
number of components in the image
Definition grok.h:695
uint64_t packedRowBytes
Definition grok.h:718
uint32_t y0
YOsiz: vertical offset from the origin of the reference grid to the top side of the image area.
Definition grok.h:689
GRK_COLOR_SPACE color_space
Definition grok.h:696
bool upsample
Definition grok.h:705
grk_image_comp * comps
Definition grok.h:720
bool splitByComponent
Definition grok.h:709
bool channelDefinitionApplied_
Definition grok.h:698
uint32_t decompressWidth
Definition grok.h:711
grk_io_buf interleavedData
Definition grok.h:715
GRK_COLOR_SPACE decompressColourSpace
Definition grok.h:714
bool hasMultipleTiles
Definition grok.h:708
uint32_t x0
XOsiz: horizontal offset from the origin of the reference grid to the left side of the image area.
Definition grok.h:686
uint8_t decompressPrec
Definition grok.h:713
grk_object obj
Definition grok.h:683
uint32_t numPrecision
Definition grok.h:707
bool has_display_resolution
Definition grok.h:701
double display_resolution[2]
Definition grok.h:702
uint32_t y1
Ysiz: height of the reference grid.
Definition grok.h:693
double capture_resolution[2]
Definition grok.h:700
grk_image_meta * meta
Definition grok.h:719
uint32_t x1
Xsiz: width of the reference grid.
Definition grok.h:691
GRK_SUPPORTED_FILE_FMT decompressFormat
Definition grok.h:703
bool forceRGB
Definition grok.h:704
uint32_t rowsPerTask
Definition grok.h:717
uint32_t rowsPerStrip
Definition grok.h:716
uint32_t decompressHeight
Definition grok.h:712
bool paletteApplied_
Definition grok.h:697
bool pooled_
Definition grok.h:468
size_t offset_
Definition grok.h:465
size_t allocLen_
Definition grok.h:467
uint8_t * data_
Definition grok.h:464
size_t len_
Definition grok.h:466
uint32_t index_
Definition grok.h:469
uint32_t maxPooledRequests_
Definition grok.h:474
Grok ref-counted object.
Definition grok.h:144
void * wrapper
Definition grok.h:145
Palette data.
Definition grok.h:285
grk_component_mapping_comp * component_mapping
Definition grok.h:288
uint8_t num_channels
Definition grok.h:289
int32_t * lut
Definition grok.h:286
uint16_t num_entries
Definition grok.h:287
bool * channel_sign
Definition grok.h:290
uint8_t * channel_prec
Definition grok.h:291
Plugin band.
Definition grok.h:769
float stepsize
Definition grok.h:773
uint8_t orientation
Definition grok.h:770
uint64_t numPrecincts
Definition grok.h:771
grk_plugin_precinct ** precincts
Definition grok.h:772
Plugin code block.
Definition grok.h:740
uint8_t * compressedData
Definition grok.h:748
uint32_t y0
Definition grok.h:744
size_t numPasses
Definition grok.h:751
unsigned int sortedIndex
Definition grok.h:753
uint8_t numBitPlanes
Definition grok.h:750
grk_plugin_pass passes[GRK_MAX_PASSES]
Definition grok.h:752
uint32_t x0
Definition grok.h:744
unsigned int * contextStream
Definition grok.h:745
uint32_t y1
Definition grok.h:744
uint32_t numPix
Definition grok.h:747
uint32_t x1
Definition grok.h:744
uint32_t compressedDataLength
Definition grok.h:749
grk_codec * codec
Definition grok.h:1543
uint32_t full_image_y0
Definition grok.h:1552
GRK_CODEC_FORMAT decod_format
Definition grok.h:1540
unsigned int error_code
Definition grok.h:1549
grk_decompress_parameters * decompressor_parameters
Definition grok.h:1545
grk_header_info header_info
Definition grok.h:1544
GRK_SUPPORTED_FILE_FMT cod_format
Definition grok.h:1542
size_t deviceId
Definition grok.h:1535
grk_plugin_tile * tile
Definition grok.h:1548
uint32_t full_image_x0
Definition grok.h:1551
void * user_data
Definition grok.h:1553
bool plugin_owns_image
Definition grok.h:1547
uint32_t decompress_flags
Definition grok.h:1550
const char * output_file_name
Definition grok.h:1538
GROK_INIT_DECOMPRESSORS init_decompressors_func
Definition grok.h:1536
const char * input_file_name
Definition grok.h:1537
grk_image * image
Definition grok.h:1546
bool verbose
Definition grok.h:1462
const char * server
Definition grok.h:1464
int32_t deviceId
Definition grok.h:1461
const char * license
Definition grok.h:1463
const char * pluginPath
Definition grok.h:1412
bool verbose
Definition grok.h:1413
Plugin pass.
Definition grok.h:730
size_t rate
Definition grok.h:732
size_t length
Definition grok.h:733
double distortionDecrease
Definition grok.h:731
Plugin precinct.
Definition grok.h:760
grk_plugin_code_block ** blocks
Definition grok.h:762
uint64_t numBlocks
Definition grok.h:761
Plugin resolution.
Definition grok.h:780
size_t numBands
Definition grok.h:782
size_t level
Definition grok.h:781
grk_plugin_band ** band
Definition grok.h:783
Plugin tile.
Definition grok.h:808
uint32_t decompress_flags
Definition grok.h:809
grk_plugin_tile_component ** tileComponents
Definition grok.h:811
size_t numComponents
Definition grok.h:810
Precision.
Definition grok.h:379
grk_precision_mode mode
Definition grok.h:381
uint8_t prec
Definition grok.h:380
Progression order change.
Definition grok.h:153
uint16_t comp_temp
Definition grok.h:184
uint32_t tx1
Definition grok.h:161
uint32_t tp_txE
Definition grok.h:179
uint8_t res_temp
Definition grok.h:185
GRK_PROG_ORDER specifiedCompressionPocProg
Definition grok.h:156
uint32_t tx0
tile dimensions
Definition grok.h:159
uint16_t compE
Definition grok.h:165
uint8_t resS
Definition grok.h:166
uint64_t prec_temp
Definition grok.h:186
uint32_t tp_tyE
Definition grok.h:181
uint64_t precE
Definition grok.h:169
uint64_t precS
Definition grok.h:168
uint32_t ty0
Definition grok.h:160
uint32_t ty1
Definition grok.h:162
uint32_t ty0_temp
Definition grok.h:189
uint16_t tpCompE
Definition grok.h:173
uint32_t tp_tyS
Definition grok.h:180
uint32_t dy
Definition grok.h:183
GRK_PROG_ORDER progression
Definition grok.h:154
uint32_t dx
Definition grok.h:182
uint16_t layE
Definition grok.h:171
uint16_t layS
Definition grok.h:170
char progressionString[5]
Definition grok.h:155
uint8_t tpResE
Definition grok.h:175
uint32_t tx0_temp
Definition grok.h:188
uint32_t tileno
Definition grok.h:157
uint16_t lay_temp
Definition grok.h:187
uint16_t tpLayE
Definition grok.h:177
uint64_t tpPrecE
Definition grok.h:176
uint16_t tpCompS
Definition grok.h:172
uint16_t compS
progression order bounds specified by POC
Definition grok.h:164
uint32_t tp_txS
Definition grok.h:178
uint8_t resE
Definition grok.h:167
uint8_t tpResS
Definition grok.h:174
RAW component compress parameters.
Definition grok.h:194
uint8_t dy
subsampling in X direction
Definition grok.h:196
uint8_t dx
Definition grok.h:195
RAW image compress parameters.
Definition grok.h:202
uint8_t prec
number of components of the raw image
Definition grok.h:206
uint32_t width
Definition grok.h:203
uint16_t numcomps
height of the raw image
Definition grok.h:205
grk_raw_comp_cparameters * comps
signed/unsigned raw image
Definition grok.h:208
bool sgnd
bit depth of the raw image
Definition grok.h:207
uint32_t height
width of the raw image
Definition grok.h:204
JPEG 2000 stream parameters.
Definition grok.h:528
uint8_t * buf
Definition grok.h:533
grk_stream_read_fn read_fn
Definition grok.h:539
size_t buf_len
Definition grok.h:534
grk_stream_free_user_data_fn free_user_data_fn
Definition grok.h:542
size_t double_buffer_len
Definition grok.h:545
size_t stream_len
Definition grok.h:544
grk_stream_write_fn write_fn
Definition grok.h:540
const char * file
Definition grok.h:530
grk_stream_seek_fn seek_fn
Definition grok.h:541
void * user_data
Definition grok.h:543
size_t buf_compressed_len
Definition grok.h:536
grk_cparameters * compress_parameters
Definition grok.h:1491
GRK_PLUGIN_COMPRESS_USER_CALLBACK callback
Definition grok.h:1492
const char * output_dir
Definition grok.h:1490
const char * input_dir
Definition grok.h:1489
bool outputFileNameIsRelative
Definition grok.h:1475
grk_cparameters * compressor_parameters
Definition grok.h:1477
grk_image * image
Definition grok.h:1478
grk_plugin_tile * tile
Definition grok.h:1479
const char * output_file_name
Definition grok.h:1476
bool transferExifTags
Definition grok.h:1482
grk_stream_params stream_params
Definition grok.h:1480
unsigned int error_code
Definition grok.h:1481
const char * input_file_name
Definition grok.h:1474
Plugin tile component.
Definition grok.h:790
grk_plugin_resolution ** resolutions
Definition grok.h:792
size_t numResolutions
Definition grok.h:791