35#include "grk_config.h"
39#define GRK_CALLCONV __stdcall
44#define GRK_API __declspec(dllexport)
46#define GRK_API __declspec(dllimport)
52#define GRK_API __attribute__((visibility("hidden")))
54#define GRK_API __attribute__((visibility("default")))
122#define GRK_NUM_COMMENTS_SUPPORTED 256
127#define GRK_NUM_ASOC_BOXES_SUPPORTED 256
132#define GRK_MAX_COMMENT_LENGTH (UINT16_MAX - 2)
137#define GRK_MAX_SUPPORTED_IMAGE_PRECISION 16
153#define GRK_BIBO_EXTRA_BITS 7
158#define GRK_MAX_PASSES (3 * (GRK_MAX_SUPPORTED_IMAGE_PRECISION + GRK_BIBO_EXTRA_BITS) - 2)
313#define GRK_PATH_LEN 4096
314#define GRK_MAX_LAYERS 256
320#define GRK_MAX_DECOMP_LVLS \
323#define GRK_MAXRLVLS \
324 (GRK_MAX_DECOMP_LVLS + 1)
325#define GRK_MAXBANDS (3 * GRK_MAXRLVLS - 2)
492 void* io_user_data,
void* reclaim_user_data);
509typedef size_t (*
grk_stream_read_fn)(uint8_t* buffer,
size_t numBytes,
void* user_data);
518typedef size_t (*
grk_stream_write_fn)(
const uint8_t* buffer,
size_t numBytes,
void* user_data);
579#define GRK_TILE_CACHE_NONE 0
580#define GRK_TILE_CACHE_IMAGE 1
581#define GRK_TILE_CACHE_BLOCK 2
582#define GRK_TILE_CACHE_ALL 4
590 uint8_t reduction,
void* user_data);
595#define GRK_RANDOM_ACCESS_PLT 1
596#define GRK_RANDOM_ACCESS_TLM 2
597#define GRK_RANDOM_ACCESS_PLM 4
633#define GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT (UINT_MAX)
919#define GRK_DECODE_HEADER (1 << 0)
920#define GRK_DECODE_T2 (1 << 1)
921#define GRK_DECODE_T1 (1 << 2)
922#define GRK_DECODE_POST_T1 (1 << 3)
923#define GRK_PLUGIN_DECODE_CLEAN (1 << 4)
924#define GRK_DECODE_ALL \
925 (GRK_PLUGIN_DECODE_CLEAN | GRK_DECODE_HEADER | GRK_DECODE_T2 | GRK_DECODE_T1 | GRK_DECODE_POST_T1)
1058 uint16_t tile_index,
bool wait);
1080 double start_y,
double end_x,
double end_y);
1260 FILE* output_stream);
1272 int32_t* dc_shift, uint32_t nb_comp);
1275#define GRK_IMG_INFO 1
1276#define GRK_MH_INFO 2
1277#define GRK_TH_INFO 4
1278#define GRK_TCH_INFO 8
1279#define GRK_MH_IND 16
1280#define GRK_TH_IND 32
1283#define GRK_CBLKSTY_LAZY 0x01
1284#define GRK_CBLKSTY_RESET 0x02
1285#define GRK_CBLKSTY_TERMALL 0x04
1286#define GRK_CBLKSTY_VSC 0x08
1287#define GRK_CBLKSTY_PTERM 0x10
1288#define GRK_CBLKSTY_SEGSYM 0x20
1289#define GRK_CBLKSTY_HT_ONLY 0x40
1290#define GRK_CBLKSTY_HT_MIXED 0xC0
1291#define GRK_JPH_RSIZ_FLAG 0x4000
1313#define GRK_PROFILE_NONE 0x0000
1314#define GRK_PROFILE_0 0x0001
1315#define GRK_PROFILE_1 0x0002
1316#define GRK_PROFILE_CINEMA_2K 0x0003
1317#define GRK_PROFILE_CINEMA_4K 0x0004
1318#define GRK_PROFILE_CINEMA_S2K 0x0005
1319#define GRK_PROFILE_CINEMA_S4K 0x0006
1320#define GRK_PROFILE_CINEMA_LTS \
1322#define GRK_PROFILE_BC_SINGLE 0x0100
1323#define GRK_PROFILE_BC_MULTI 0x0200
1324#define GRK_PROFILE_BC_MULTI_R \
1326#define GRK_PROFILE_BC_MASK 0x030F
1327#define GRK_PROFILE_IMF_2K 0x0400
1328#define GRK_PROFILE_IMF_4K 0x0500
1329#define GRK_PROFILE_IMF_8K 0x0600
1330#define GRK_PROFILE_IMF_2K_R \
1332#define GRK_PROFILE_IMF_4K_R \
1334#define GRK_PROFILE_IMF_8K_R \
1336#define GRK_PROFILE_MASK 0x0FFF
1337#define GRK_PROFILE_PART2 0x8000
1338#define GRK_PROFILE_PART2_EXTENSIONS_MASK 0x3FFF
1343#define GRK_EXTENSION_NONE 0x0000
1344#define GRK_EXTENSION_MCT 0x0100
1345#define GRK_IS_PART2(v) ((v) & GRK_PROFILE_PART2)
1347#define GRK_IS_CINEMA(v) (((v) >= GRK_PROFILE_CINEMA_2K) && ((v) <= GRK_PROFILE_CINEMA_S4K))
1348#define GRK_IS_STORAGE(v) ((v) == GRK_PROFILE_CINEMA_LTS)
1402#define GRK_GET_IMF_OR_BROADCAST_PROFILE(v) \
1405#define GRK_LEVEL_MAX 11U
1406#define GRK_GET_LEVEL(v) ((v) & 0xf)
1410#define GRK_IS_BROADCAST(v) \
1411 (((v) >= GRK_PROFILE_BC_SINGLE) && ((v) <= (GRK_PROFILE_BC_MULTI_R | 0x000b)) && \
1412 (((v) & 0xf) <= 0xb))
1415#define GRK_BROADCAST_LEVEL_1_MBITSSEC 200U
1416#define GRK_BROADCAST_LEVEL_2_MBITSSEC 200U
1417#define GRK_BROADCAST_LEVEL_3_MBITSSEC 200U
1418#define GRK_BROADCAST_LEVEL_4_MBITSSEC 400U
1419#define GRK_BROADCAST_LEVEL_5_MBITSSEC 800U
1420#define GRK_BROADCAST_LEVEL_6_MBITSSEC 1600U
1421#define GRK_BROADCAST_LEVEL_7_MBITSSEC 3200U
1422#define GRK_BROADCAST_LEVEL_8_MBITSSEC 6400U
1423#define GRK_BROADCAST_LEVEL_9_MBITSSEC 12800U
1424#define GRK_BROADCAST_LEVEL_10_MBITSSEC 25600U
1425#define GRK_BROADCAST_LEVEL_11_MBITSSEC 51200U
1427#define GRK_BROADCAST_LEVEL_1_MSAMPLESSEC 64U
1428#define GRK_BROADCAST_LEVEL_2_MSAMPLESSEC 130U
1429#define GRK_BROADCAST_LEVEL_3_MSAMPLESSEC 195U
1430#define GRK_BROADCAST_LEVEL_4_MSAMPLESSEC 260U
1431#define GRK_BROADCAST_LEVEL_5_MSAMPLESSEC 520U
1432#define GRK_BROADCAST_LEVEL_6_MSAMPLESSEC 1200U
1433#define GRK_BROADCAST_LEVEL_7_MSAMPLESSEC 2400U
1434#define GRK_BROADCAST_LEVEL_8_MSAMPLESSEC 4800U
1435#define GRK_BROADCAST_LEVEL_9_MSAMPLESSEC 9600U
1436#define GRK_BROADCAST_LEVEL_10_MSAMPLESSEC 19200U
1437#define GRK_BROADCAST_LEVEL_11_MSAMPLESSEC 38400U
1441#define GRK_IS_IMF(v) \
1442 (((v) >= GRK_PROFILE_IMF_2K) && ((v) <= (GRK_PROFILE_IMF_8K_R | 0x009b)) && \
1443 (((v) & 0xf) <= 0xb) && (((v) & 0xf0) <= 0x90))
1446#define GRK_IMF_MAINLEVEL_1_MSAMPLESSEC 65U
1447#define GRK_IMF_MAINLEVEL_2_MSAMPLESSEC 130U
1448#define GRK_IMF_MAINLEVEL_3_MSAMPLESSEC 195U
1449#define GRK_IMF_MAINLEVEL_4_MSAMPLESSEC 260U
1450#define GRK_IMF_MAINLEVEL_5_MSAMPLESSEC 520U
1451#define GRK_IMF_MAINLEVEL_6_MSAMPLESSEC 1200U
1452#define GRK_IMF_MAINLEVEL_7_MSAMPLESSEC 2400U
1453#define GRK_IMF_MAINLEVEL_8_MSAMPLESSEC 4800U
1454#define GRK_IMF_MAINLEVEL_9_MSAMPLESSEC 9600U
1455#define GRK_IMF_MAINLEVEL_10_MSAMPLESSEC 19200U
1456#define GRK_IMF_MAINLEVEL_11_MSAMPLESSEC 38400U
1458#define GRK_IMF_SUBLEVEL_MAX 9U
1459#define GRK_GET_IMF_SUBLEVEL(v) (((v) >> 4) & 0xf)
1462#define GRK_IMF_SUBLEVEL_1_MBITSSEC 200U
1463#define GRK_IMF_SUBLEVEL_2_MBITSSEC 400U
1464#define GRK_IMF_SUBLEVEL_3_MBITSSEC 800U
1465#define GRK_IMF_SUBLEVEL_4_MBITSSEC 1600U
1466#define GRK_IMF_SUBLEVEL_5_MBITSSEC 3200U
1467#define GRK_IMF_SUBLEVEL_6_MBITSSEC 6400U
1468#define GRK_IMF_SUBLEVEL_7_MBITSSEC 12800U
1469#define GRK_IMF_SUBLEVEL_8_MBITSSEC 25600U
1470#define GRK_IMF_SUBLEVEL_9_MBITSSEC 51200U
1477#define GRK_CINEMA_DCI_MAX_BANDWIDTH 250000000
1479#define GRK_CINEMA_24_CS 1302083
1480#define GRK_CINEMA_24_COMP 1041666
1482#define GRK_CINEMA_48_CS 651041
1483#define GRK_CINEMA_48_COMP 520833
1485#define GRK_CINEMA_4K_DEFAULT_NUM_RESOLUTIONS 7
1490#define GRK_CUSTOM_CIELAB_SPACE 0x0
1491#define GRK_DEFAULT_CIELAB_SPACE 0x44454600
1523#define GRK_PLUGIN_STATE_NO_DEBUG 0x0
1540#define GRK_PLUGIN_STATE_DEBUG 0x1
1541#define GRK_PLUGIN_STATE_PRE_TR1 0x2
1542#define GRK_PLUGIN_STATE_DWT_QUANTIZATION 0x4
1543#define GRK_PLUGIN_STATE_MCT_ONLY 0x8
struct _grk_plugin_init_info grk_plugin_init_info
_GRK_SUPPORTED_FILE_FMT
All Grok supported file formats.
Definition grok.h:286
@ GRK_FMT_BMP
Definition grok.h:293
@ GRK_FMT_JP2
Definition grok.h:289
@ GRK_FMT_J2K
Definition grok.h:288
@ GRK_FMT_PNG
Definition grok.h:296
@ GRK_FMT_YUV
Definition grok.h:299
@ GRK_FMT_RAWL
Definition grok.h:297
@ GRK_FMT_UNK
Definition grok.h:287
@ GRK_FMT_TIF
Definition grok.h:294
@ GRK_FMT_JPG
Definition grok.h:298
@ GRK_FMT_PXM
Definition grok.h:290
@ GRK_FMT_RAW
Definition grok.h:295
@ GRK_FMT_PAM
Definition grok.h:292
@ GRK_FMT_PGX
Definition grok.h:291
GRK_API bool GRK_CALLCONV grk_decompress_set_window(grk_object *codec, double start_x, double start_y, double end_x, double end_y)
Specifies area to be decompressed.
Definition grok.cpp:478
struct _grk_cparameters grk_cparameters
struct _grk_progression grk_progression
struct _grk_image grk_image
Definition grok.h:583
void(* grk_io_register_reclaim_callback)(grk_io_init io_init, grk_io_callback reclaim_callback, void *io_user_data, void *reclaim_user_data)
Grok IO register reclaim callback.
Definition grok.h:489
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_compress(void)
Stops batch compress.
Definition grok.cpp:974
GRK_API grk_object *GRK_CALLCONV grk_object_ref(grk_object *obj)
Increments ref count.
Definition grok.cpp:217
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_decompress(void)
Stops batch decompress.
Definition grok.cpp:1071
void(* grk_decompress_callback)(void *codec, uint16_t tile_index, grk_image *tile_image, uint8_t reduction, void *user_data)
Callback called when decompression of a tile has completed.
Definition grok.h:588
struct _grk_channel_description grk_channel_description
#define GRK_NUM_COMMENTS_SUPPORTED
maximum Grok supported number of comments
Definition grok.h:122
void(* grk_msg_callback)(const char *msg, void *client_data)
Logging callback.
Definition grok.h:165
enum _GRK_CHANNEL_TYPE GRK_CHANNEL_TYPE
struct _grk_stream_params grk_stream_params
GRK_API bool GRK_CALLCONV grk_decompress_set_progression_state(grk_object *codec, grk_progression_state state)
Sets grk_progression_state for a tile.
Definition grok.cpp:580
bool(* grk_io_pixels_callback)(uint32_t worker_id, grk_io_buf buffer, void *user_data)
Grok IO pixels callback.
Definition grok.h:499
GRK_API void GRK_CALLCONV grk_plugin_cleanup(void)
Cleans up plugin resources.
Definition grok.cpp:892
GRK_API void GRK_CALLCONV grk_set_msg_handlers(grk_msg_handlers msg_handlers)
Sets log message handlers.
Definition grok.cpp:235
GRK_API bool GRK_CALLCONV grk_plugin_load(grk_plugin_load_info info)
Loads plugin.
Definition grok.cpp:850
uint64_t(* GRK_PLUGIN_COMPRESS_USER_CALLBACK)(grk_plugin_compress_user_callback_info *info)
Plugin compress user callback.
Definition grok.h:1588
#define GRK_MAXRLVLS
Definition grok.h:322
bool(* grk_io_callback)(uint32_t worker_id, grk_io_buf buffer, void *io_user_data)
Grok IO callback.
Definition grok.h:480
enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT
Grok Supported JPEG 2000 formats.
enum _GRK_ENUM_COLOUR_SPACE GRK_ENUM_COLOUR_SPACE
JPEG 2000 enumerated color spaces.
GRK_API void GRK_CALLCONV grk_decompress_wait(grk_object *codec, grk_wait_swath *swath)
Waits for an asynchronous decompression to complete.
GRK_API void GRK_CALLCONV grk_dump_codec(grk_object *codec, uint32_t info_flag, FILE *output_stream)
Dumps codec information to file.
Definition grok.cpp:518
GRK_API uint32_t GRK_CALLCONV grk_plugin_get_debug_state()
Gets debug state of plugin.
Definition grok.cpp:877
struct _grk_precision grk_precision
#define GRK_MAX_PASSES
Grok maximum number of passes.
Definition grok.h:158
GRK_API int32_t GRK_CALLCONV grk_plugin_batch_decompress(void)
Initiates batch decompress.
Definition grok.cpp:1057
enum _GRK_PROG_ORDER GRK_PROG_ORDER
Progression orders.
struct _grk_object grk_object
GRK_API grk_image *GRK_CALLCONV grk_decompress_get_image(grk_object *codec)
Gets decompressed image.
Definition grok.cpp:587
GRK_API bool GRK_CALLCONV grk_initialize(const char *pluginPath, uint32_t num_threads)
Initializes Grok library Must be called before any Grok API calls.
Definition grok.cpp:159
struct _grk_raw_cparameters grk_raw_cparameters
GRK_API bool GRK_CALLCONV grk_decompress_read_header(grk_object *codec, grk_header_info *header_info)
Decompresses JPEG 2000 header.
Definition grok.cpp:464
GRK_API int32_t GRK_CALLCONV grk_plugin_compress(grk_cparameters *compress_parameters, GRK_PLUGIN_COMPRESS_USER_CALLBACK callback)
Compresses with plugin.
Definition grok.cpp:926
_GRK_CHANNEL_ASSOC
Channel association.
Definition grok.h:374
@ GRK_CHANNEL_ASSOC_COLOUR_1
Definition grok.h:376
@ GRK_CHANNEL_ASSOC_COLOUR_2
Definition grok.h:377
@ GRK_CHANNEL_ASSOC_COLOUR_3
Definition grok.h:378
@ GRK_CHANNEL_ASSOC_WHOLE_IMAGE
Definition grok.h:375
@ GRK_CHANNEL_ASSOC_UNASSOCIATED
Definition grok.h:379
enum _GRK_RATE_CONTROL_ALGORITHM GRK_RATE_CONTROL_ALGORITHM
Rate control algorithms.
struct _grk_decompress_core_params grk_decompress_core_params
size_t(* grk_stream_read_fn)(uint8_t *buffer, size_t numBytes, void *user_data)
Read stream callback.
Definition grok.h:508
struct _grk_image_meta grk_image_meta
struct _grk_asoc grk_asoc
enum _GRK_SUPPORTED_FILE_FMT GRK_SUPPORTED_FILE_FMT
All Grok supported file formats.
GRK_API grk_progression_state GRK_CALLCONV grk_decompress_get_progression_state(grk_object *codec, uint16_t tile_index)
Gets grk_progression_state for a tile.
Definition grok.cpp:572
GRK_API grk_image *GRK_CALLCONV grk_decompress_get_tile_image(grk_object *codec, uint16_t tile_index, bool wait)
Gets decompressed tile image.
struct _grk_palette_data grk_palette_data
GRK_API bool GRK_CALLCONV grk_decompress_detect_format(const char *file_name, GRK_CODEC_FORMAT *fmt)
Detects JPEG 2000 format from file Format is either GRK_FMT_J2K, GRK_FMT_JP2 or GRK_FMT_MJ2.
Definition grok.cpp:343
GRK_API bool GRK_CALLCONV grk_decompress_tile(grk_object *codec, uint16_t tile_index)
Decompresses a specific tile.
Definition grok.cpp:507
#define GRK_API
Definition grok.h:54
struct _grk_component_mapping_comp grk_component_mapping_comp
struct _grk_image_comp grk_image_comp
struct _grk_raw_comp_cparameters grk_raw_comp_cparameters
GRK_API void GRK_CALLCONV grk_deinitialize()
De-initializes Grok library Not usually necessary to explicitly call this to de-initialize.
Definition grok.cpp:211
GRK_API void GRK_CALLCONV grk_object_unref(grk_object *obj)
Definition grok.cpp:226
#define GRK_MAX_LAYERS
Definition grok.h:314
GRK_API void GRK_CALLCONV grk_compress_set_default_params(grk_cparameters *parameters)
Sets compression parameters to default values: Lossless Single tile Size of precinct : 2^15 x 2^15 Si...
Definition grok.cpp:617
struct _grk_plugin_precinct grk_plugin_precinct
grk_plugin_precinct
GRK_API const char *GRK_CALLCONV grk_version(void)
Gets library version.
Definition grok.cpp:296
_GRK_COLOR_SPACE
Grok supported color spaces.
Definition grok.h:80
@ GRK_CLRSPC_SRGB
unknown
Definition grok.h:82
@ GRK_CLRSPC_EYCC
standard YCC (YUV)
Definition grok.h:85
@ GRK_CLRSPC_UNKNOWN
Definition grok.h:81
@ GRK_CLRSPC_SYCC
grayscale
Definition grok.h:84
@ GRK_CLRSPC_DEFAULT_CIE
CMYK.
Definition grok.h:87
@ GRK_CLRSPC_ICC
custom CIE LAB
Definition grok.h:89
@ GRK_CLRSPC_CMYK
extended YCC
Definition grok.h:86
@ GRK_CLRSPC_GRAY
sRGB
Definition grok.h:83
@ GRK_CLRSPC_CUSTOM_CIE
default CIE LAB
Definition grok.h:88
GRK_API bool GRK_CALLCONV grk_plugin_init(grk_plugin_init_info init_info)
Initializes plugin.
Definition grok.cpp:897
GRK_API bool GRK_CALLCONV grk_set_MCT(grk_cparameters *parameters, const float *encoding_matrix, int32_t *dc_shift, uint32_t nb_comp)
Sets MCT matrix.
Definition grok.cpp:529
GRK_API bool GRK_CALLCONV grk_decompress(grk_object *codec, grk_plugin_tile *tile)
Decompresses image from a JPEG 2000 code stream.
Definition grok.cpp:490
struct _grk_io_buf grk_io_buf
_grk_precision_mode
Definition grok.h:420
@ GRK_PREC_MODE_SCALE
Definition grok.h:422
@ GRK_PREC_MODE_CLIP
Definition grok.h:421
GRK_API grk_image_meta *GRK_CALLCONV grk_image_meta_new(void)
Creates meta.
Definition grok.cpp:307
enum _GRK_COLOR_SPACE GRK_COLOR_SPACE
Grok supported color spaces.
#define GRK_PATH_LEN
Definition grok.h:313
GRK_API grk_image *GRK_CALLCONV grk_image_new(uint16_t numcmpts, grk_image_comp *cmptparms, GRK_COLOR_SPACE clrspc, bool alloc_data)
Creates image.
Definition grok.cpp:301
GRK_API int32_t GRK_CALLCONV grk_plugin_decompress(grk_decompress_parameters *decompress_parameters, grk_plugin_decompress_callback callback)
Decompresses single image with plugin.
Definition grok.cpp:1022
bool(* grk_stream_seek_fn)(uint64_t offset, void *user_data)
Seek (absolute) callback.
Definition grok.h:524
GRK_API grk_object *GRK_CALLCONV grk_decompress_init(grk_stream_params *stream_params, grk_decompress_parameters *params)
Initializes decompressor.
Definition grok.cpp:427
_GRK_ENUM_COLOUR_SPACE
JPEG 2000 enumerated color spaces.
Definition grok.h:96
@ GRK_ENUM_CLRSPC_ESRGB
Definition grok.h:112
@ GRK_ENUM_CLRSPC_CMY
Definition grok.h:103
@ GRK_ENUM_CLRSPC_EYCC
Definition grok.h:116
@ GRK_ENUM_CLRSPC_CIEJAB
Definition grok.h:111
@ GRK_ENUM_CLRSPC_GRAY
Definition grok.h:109
@ GRK_ENUM_CLRSPC_CIE
Definition grok.h:106
@ GRK_ENUM_CLRSPC_UNKNOWN
Definition grok.h:97
@ GRK_ENUM_CLRSPC_YCBCR3
Definition grok.h:101
@ GRK_ENUM_CLRSPC_ROMMRGB
Definition grok.h:113
@ GRK_ENUM_CLRSPC_YPBPR60
Definition grok.h:114
@ GRK_ENUM_CLRSPC_SRGB
Definition grok.h:108
@ GRK_ENUM_CLRSPC_BILEVEL2
Definition grok.h:107
@ GRK_ENUM_CLRSPC_SYCC
Definition grok.h:110
@ GRK_ENUM_CLRSPC_PHOTO_YCC
Definition grok.h:102
@ GRK_ENUM_CLRSPC_YCBCR1
Definition grok.h:99
@ GRK_ENUM_CLRSPC_CMYK
Definition grok.h:104
@ GRK_ENUM_CLRSPC_YCCK
Definition grok.h:105
@ GRK_ENUM_CLRSPC_YPBPR50
Definition grok.h:115
@ GRK_ENUM_CLRSPC_BILEVEL1
Definition grok.h:98
@ GRK_ENUM_CLRSPC_YCBCR2
Definition grok.h:100
struct _grk_color grk_color
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)
Initializes batch decompress with plugin.
Definition grok.cpp:1039
struct _grk_decompress_params grk_decompress_parameters
_GRK_CHANNEL_TYPE
Definition grok.h:363
@ GRK_CHANNEL_TYPE_OPACITY
Definition grok.h:365
@ GRK_CHANNEL_TYPE_PREMULTIPLIED_OPACITY
Definition grok.h:366
@ GRK_CHANNEL_TYPE_COLOUR
Definition grok.h:364
@ GRK_CHANNEL_TYPE_UNSPECIFIED
Definition grok.h:367
_GRK_RATE_CONTROL_ALGORITHM
Rate control algorithms.
Definition grok.h:277
@ GRK_RATE_CONTROL_PCRD_OPT
Definition grok.h:279
@ GRK_RATE_CONTROL_BISECT
Definition grok.h:278
GRK_API bool GRK_CALLCONV grk_decompress_update(grk_decompress_parameters *params, grk_object *codec)
Updates decompressor.
Definition grok.cpp:706
GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress(grk_plugin_compress_batch_info info)
Batch-compresses with plugin.
Definition grok.cpp:942
struct _grk_channel_definition grk_channel_definition
int(* GROK_INIT_DECOMPRESSORS)(grk_header_info *header_info, grk_image *image)
Plugin init decompressors.
Definition grok.h:1630
_GRK_CODEC_FORMAT
Grok Supported JPEG 2000 formats.
Definition grok.h:306
@ GRK_CODEC_J2K
unknown format
Definition grok.h:308
@ GRK_CODEC_MJ2
JPEG 2000 JP2 file format.
Definition grok.h:310
@ GRK_CODEC_JP2
JPEG 2000 code-stream.
Definition grok.h:309
@ GRK_CODEC_UNK
Definition grok.h:307
struct _grk_plugin_tile grk_plugin_tile
#define GRK_CALLCONV
Definition grok.h:50
GRK_API uint64_t GRK_CALLCONV grk_compress(grk_object *codec, grk_plugin_tile *tile)
Compresses an image into a JPEG 2000 code stream using plugin.
Definition grok.cpp:723
void(* grk_stream_free_user_data_fn)(void *user_data)
Free user data callback.
Definition grok.h:530
#define GRK_NUM_ASOC_BOXES_SUPPORTED
maximum Grok supported number of asoc boxes
Definition grok.h:127
_GRK_PROG_ORDER
Progression orders.
Definition grok.h:66
@ GRK_RPCL
resolution-layer-component-precinct order
Definition grok.h:70
@ GRK_CPRL
precinct-component-resolution-layer order
Definition grok.h:72
@ GRK_RLCP
layer-resolution-component-precinct order
Definition grok.h:69
@ GRK_PROG_UNKNOWN
Definition grok.h:67
@ GRK_LRCP
unknown progression order
Definition grok.h:68
@ GRK_NUM_PROGRESSION_ORDERS
component-precinct-resolution-layer order
Definition grok.h:73
@ GRK_PCRL
resolution-precinct-component-layer order
Definition grok.h:71
size_t(* grk_stream_write_fn)(const uint8_t *buffer, size_t numBytes, void *user_data)
Write stream callback.
Definition grok.h:517
GRK_API void GRK_CALLCONV grk_plugin_wait_for_batch_complete(void)
Waits for batch job to complete.
Definition grok.cpp:960
struct _grk_plugin_pass grk_plugin_pass
enum _GRK_CHANNEL_ASSOC GRK_CHANNEL_ASSOC
Channel association.
GRK_API grk_object *GRK_CALLCONV grk_compress_init(grk_stream_params *stream_params, grk_cparameters *parameters, grk_image *image)
Initializes compression process.
Definition grok.cpp:646
struct _grk_header_info grk_header_info
int32_t(* grk_plugin_decompress_callback)(grk_plugin_decompress_callback_info *info)
Plugin decompress callback.
Definition grok.h:1664
const char * label
Definition grok.h:410
uint8_t * xml
Definition grok.h:411
uint32_t level
Definition grok.h:409
uint32_t xml_len
Definition grok.h:412
uint16_t num_channel_descriptions
Definition grok.h:400
grk_channel_description * descriptions
Definition grok.h:399
uint16_t typ
Definition grok.h:389
uint16_t asoc
Definition grok.h:390
uint16_t channel
Definition grok.h:388
grk_channel_definition * channel_definition
Definition grok.h:704
char * icc_profile_name
Definition grok.h:703
uint32_t icc_profile_len
Definition grok.h:702
uint8_t * icc_profile_buf
Definition grok.h:701
grk_palette_data * palette
Definition grok.h:705
bool has_colour_specification_box
Definition grok.h:706
uint16_t component
Definition grok.h:335
uint8_t palette_column
Definition grok.h:337
uint8_t mapping_type
Definition grok.h:336
uint32_t cblockw_init
Definition grok.h:1149
uint8_t numgbits
Definition grok.h:1144
grk_progression progression[GRK_MAXRLVLS]
Definition grok.h:1146
char outfile[GRK_PATH_LEN]
Definition grok.h:1162
bool apply_icc
Definition grok.h:1200
GRK_PROG_ORDER prog_order
Definition grok.h:1145
uint16_t comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition grok.h:1140
uint32_t repeats
Definition grok.h:1207
uint32_t prch_init[GRK_MAXRLVLS]
Definition grok.h:1160
bool verbose
Definition grok.h:1210
uint32_t image_offset_x0
Definition grok.h:1163
uint64_t max_cs_size
Maximum size (in bytes) for the whole code stream.
Definition grok.h:1182
grk_synthesis synth
Definition grok.h:1212
grk_raw_cparameters raw_cp
Definition grok.h:1169
uint8_t numresolution
Definition grok.h:1148
uint32_t image_offset_y0
Definition grok.h:1164
GRK_SUPPORTED_FILE_FMT decod_format
Definition grok.h:1167
uint32_t cblockh_init
Definition grok.h:1150
uint32_t roi_shift
Definition grok.h:1156
bool shared_memory_interface
Definition grok.h:1211
uint8_t subsampling_dy
Definition grok.h:1166
uint32_t prcw_init[GRK_MAXRLVLS]
Definition grok.h:1159
bool tile_size_on
Definition grok.h:1126
uint32_t t_height
Definition grok.h:1130
bool write_capture_resolution_from_file
Definition grok.h:1193
uint32_t res_spec
Definition grok.h:1158
uint64_t max_comp_size
Maximum size (in bytes) for each component.
Definition grok.h:1187
uint32_t num_threads
Definition grok.h:1203
uint8_t mct
Definition grok.h:1172
uint16_t numlayers
Definition grok.h:1131
GRK_SUPPORTED_FILE_FMT cod_format
Definition grok.h:1168
double capture_resolution_from_file[2]
Definition grok.h:1194
bool irreversible
Definition grok.h:1152
uint32_t t_width
Definition grok.h:1129
bool write_display_resolution
Definition grok.h:1197
uint8_t cblk_sty
Definition grok.h:1151
uint8_t csty
Definition grok.h:1143
uint8_t new_tile_part_progression_divider
Definition grok.h:1171
bool is_binary_comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition grok.h:1141
uint16_t rsiz
RSIZ value To be used to combine GRK_PROFILE_*, GRK_EXTENSION_* and (sub)levels values.
Definition grok.h:1190
char infile[GRK_PATH_LEN]
Definition grok.h:1161
double layer_distortion[GRK_MAX_LAYERS]
Definition grok.h:1138
GRK_RATE_CONTROL_ALGORITHM rate_control_algorithm
Definition grok.h:1202
uint32_t kernel_build_options
Definition grok.h:1206
bool write_plt
Definition grok.h:1208
void * mct_data
Naive implementation of MCT restricted to a single reversible array based compressing without offset ...
Definition grok.h:1175
uint32_t tx0
Definition grok.h:1127
char * comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition grok.h:1139
bool write_capture_resolution
Definition grok.h:1195
uint8_t subsampling_dx
Definition grok.h:1165
int32_t device_id
Definition grok.h:1204
size_t num_comments
Definition grok.h:1142
uint16_t framerate
Definition grok.h:1191
bool allocation_by_rate_distortion
rate control allocation by rate/distortion curve
Definition grok.h:1133
bool allocation_by_quality
Definition grok.h:1137
bool write_tlm
Definition grok.h:1209
double display_resolution[2]
Definition grok.h:1198
int32_t roi_compno
region of interest: affected component in [0..3]; -1 indicates no ROI
Definition grok.h:1155
uint32_t ty0
Definition grok.h:1128
uint32_t duration
Definition grok.h:1205
double layer_rate[GRK_MAX_LAYERS]
layers rates expressed as compression ratios.
Definition grok.h:1136
bool enable_tile_part_generation
Definition grok.h:1170
uint32_t numpocs
Definition grok.h:1147
double capture_resolution[2]
Definition grok.h:1196
grk_io_pixels_callback io_buffer_callback
Definition grok.h:623
uint16_t layers_to_decompress
Set the maximum number of quality layers to decompress.
Definition grok.h:619
bool skip_allocate_composite
Definition grok.h:622
uint32_t disable_random_access_flags
Definition grok.h:621
uint32_t tile_cache_strategy
Definition grok.h:620
void * io_user_data
Definition grok.h:624
uint8_t reduce
Set the number of highest resolution levels to be discarded.
Definition grok.h:612
grk_io_register_reclaim_callback io_register_client_callback
Definition grok.h:625
double dw_x0
Definition grok.h:650
bool io_xml
Definition grok.h:661
grk_precision * precision
Definition grok.h:656
uint32_t compression_level
Definition grok.h:663
bool asynchronous
Definition grok.h:641
GRK_SUPPORTED_FILE_FMT cod_format
Definition grok.h:649
uint16_t tile_index
Definition grok.h:654
uint32_t num_precision
Definition grok.h:657
char infile[GRK_PATH_LEN]
Definition grok.h:646
double dw_x1
Definition grok.h:651
bool force_rgb
Definition grok.h:658
uint32_t compression
Definition grok.h:662
uint32_t num_threads
Definition grok.h:666
int32_t device_id
Definition grok.h:669
uint32_t kernel_build_options
Definition grok.h:668
void * user_data
Definition grok.h:670
bool single_tile_decompress
Definition grok.h:655
uint32_t repeats
Definition grok.h:665
bool simulate_synchronous
Definition grok.h:642
bool upsample
Definition grok.h:659
grk_decompress_core_params core
Definition grok.h:640
grk_decompress_callback decompress_callback
Definition grok.h:643
double dw_y1
Definition grok.h:653
uint32_t duration
Definition grok.h:664
double dw_y0
Definition grok.h:652
void * decompress_callback_user_data
Definition grok.h:644
bool split_pnm
Definition grok.h:660
GRK_CODEC_FORMAT decod_format
Definition grok.h:648
char outfile[GRK_PATH_LEN]
Definition grok.h:647
uint32_t h
Definition grok.h:683
uint8_t dy
Definition grok.h:685
GRK_CHANNEL_ASSOC association
Definition grok.h:689
GRK_CHANNEL_TYPE type
Definition grok.h:688
uint8_t dx
Definition grok.h:684
bool sgnd
Definition grok.h:687
uint32_t w
Definition grok.h:681
uint8_t prec
Definition grok.h:686
uint16_t crg_x
Definition grok.h:690
int32_t * data
Definition grok.h:692
uint32_t x0
Definition grok.h:679
uint32_t y0
Definition grok.h:680
uint16_t crg_y
Definition grok.h:691
uint32_t stride
Definition grok.h:682
uint64_t packed_row_bytes
Definition grok.h:759
grk_precision * precision
Definition grok.h:747
bool has_capture_resolution
Definition grok.h:740
uint16_t numcomps
Definition grok.h:736
bool force_rgb
Definition grok.h:745
uint32_t y0
Definition grok.h:733
bool split_by_component
Definition grok.h:750
GRK_COLOR_SPACE color_space
Definition grok.h:737
uint32_t rows_per_task
Definition grok.h:758
uint32_t rows_per_strip
Definition grok.h:757
bool upsample
Definition grok.h:746
grk_image_comp * comps
Definition grok.h:761
uint8_t decompress_prec
Definition grok.h:754
bool has_multiple_tiles
Definition grok.h:749
grk_io_buf interleaved_data
Definition grok.h:756
GRK_COLOR_SPACE decompress_colour_space
Definition grok.h:755
uint32_t x0
Definition grok.h:732
grk_object obj
Definition grok.h:731
uint32_t num_precision
Definition grok.h:748
uint16_t decompress_num_comps
Definition grok.h:751
bool has_display_resolution
Definition grok.h:742
GRK_SUPPORTED_FILE_FMT decompress_fmt
Definition grok.h:744
double display_resolution[2]
Definition grok.h:743
uint32_t y1
Definition grok.h:735
uint32_t decompress_width
Definition grok.h:752
uint32_t decompress_height
Definition grok.h:753
double capture_resolution[2]
Definition grok.h:741
grk_image_meta * meta
Definition grok.h:760
uint32_t x1
Definition grok.h:734
bool palette_applied
Definition grok.h:738
bool channel_definition_applied
Definition grok.h:739
size_t alloc_len
Definition grok.h:459
bool pooled
Definition grok.h:460
size_t len
Definition grok.h:458
size_t offset
Definition grok.h:457
uint8_t * data
Definition grok.h:456
uint32_t index
Definition grok.h:461
uint32_t max_pooled_requests
Definition grok.h:470
grk_msg_callback info_callback
Definition grok.h:179
void * warn_data
Definition grok.h:186
grk_msg_callback warn_callback
Definition grok.h:185
grk_msg_callback error_callback
Definition grok.h:187
void * trace_data
Definition grok.h:184
void * error_data
Definition grok.h:188
grk_msg_callback debug_callback
Definition grok.h:181
grk_msg_callback trace_callback
Definition grok.h:183
void * debug_data
Definition grok.h:182
void * info_data
Definition grok.h:180
void * wrapper
Definition grok.h:196
grk_component_mapping_comp * component_mapping
Definition grok.h:348
uint8_t num_channels
Definition grok.h:349
int32_t * lut
Definition grok.h:346
uint16_t num_entries
Definition grok.h:347
bool * channel_sign
Definition grok.h:350
uint8_t * channel_prec
Definition grok.h:351
uint64_t num_precincts
Definition grok.h:892
float stepsize
Definition grok.h:894
uint8_t orientation
Definition grok.h:891
grk_plugin_precinct ** precincts
Definition grok.h:893
uint32_t y0
Definition grok.h:862
uint8_t num_passes
Definition grok.h:870
uint32_t compressed_data_length
Definition grok.h:868
grk_plugin_pass passes[GRK_MAX_PASSES]
Definition grok.h:871
unsigned int sorted_index
Definition grok.h:872
uint32_t x0
Definition grok.h:862
uint8_t * compressed_data
Definition grok.h:867
uint32_t y1
Definition grok.h:862
uint32_t x1
Definition grok.h:862
unsigned int * context_stream
Definition grok.h:863
uint32_t num_pix
Definition grok.h:866
uint8_t num_bit_planes
Definition grok.h:869
uint32_t full_image_y0
Definition grok.h:1655
GRK_CODEC_FORMAT decod_format
Definition grok.h:1643
unsigned int error_code
Definition grok.h:1652
grk_decompress_parameters * decompressor_parameters
Definition grok.h:1648
grk_header_info header_info
Definition grok.h:1647
GRK_SUPPORTED_FILE_FMT cod_format
Definition grok.h:1645
grk_plugin_tile * tile
Definition grok.h:1651
size_t device_id
Definition grok.h:1638
uint32_t full_image_x0
Definition grok.h:1654
grk_object * codec
Definition grok.h:1646
void * user_data
Definition grok.h:1656
bool plugin_owns_image
Definition grok.h:1650
uint32_t decompress_flags
Definition grok.h:1653
const char * output_file_name
Definition grok.h:1641
GROK_INIT_DECOMPRESSORS init_decompressors_func
Definition grok.h:1639
const char * input_file_name
Definition grok.h:1640
grk_image * image
Definition grok.h:1649
bool verbose
Definition grok.h:1556
const char * server
Definition grok.h:1558
int32_t device_id
Definition grok.h:1555
const char * license
Definition grok.h:1557
const char * pluginPath
Definition grok.h:1503
bool verbose
Definition grok.h:1504
size_t rate
Definition grok.h:849
size_t length
Definition grok.h:850
double distortion_decrease
Definition grok.h:848
grk_plugin_precinct
Definition grok.h:880
uint64_t num_blocks
Definition grok.h:881
grk_plugin_code_block ** blocks
Definition grok.h:882
uint8_t num_bands
Definition grok.h:904
uint8_t level
Definition grok.h:903
grk_plugin_band ** band
Definition grok.h:905
uint16_t num_components
Definition grok.h:933
uint32_t decompress_flags
Definition grok.h:932
grk_plugin_tile_component ** tile_components
Definition grok.h:934
grk_precision_mode mode
Definition grok.h:432
uint8_t prec
Definition grok.h:431
uint16_t comp[256]
Definition grok.h:445
bool single_tile
Definition grok.h:446
uint8_t num_resolutions
Definition grok.h:442
uint16_t tile_index
Definition grok.h:447
uint16_t numcomps
Definition grok.h:444
uint16_t layers_per_resolution[33]
Definition grok.h:443
uint16_t comp_temp
Definition grok.h:239
uint32_t tx1
Definition grok.h:213
uint64_t prec_e
Definition grok.h:222
GRK_PROG_ORDER specified_compression_poc_prog
Definition grok.h:207
uint16_t comp_s
progression order bounds specified by POC
Definition grok.h:217
uint8_t res_temp
Definition grok.h:240
uint32_t tp_ty_e
Definition grok.h:234
uint32_t tp_tx_s
Definition grok.h:231
uint8_t res_s
Definition grok.h:219
uint32_t tx0
tile dimensions
Definition grok.h:211
uint8_t tp_res_s
Definition grok.h:227
uint64_t prec_temp
Definition grok.h:241
uint64_t tp_prec_e
Definition grok.h:229
uint32_t tp_ty_s
Definition grok.h:233
uint8_t tp_res_e
Definition grok.h:228
uint32_t ty0
Definition grok.h:212
uint32_t ty1
Definition grok.h:214
uint32_t ty0_temp
Definition grok.h:244
uint16_t comp_e
Definition grok.h:218
uint32_t dy
Definition grok.h:236
GRK_PROG_ORDER progression
Definition grok.h:205
uint32_t dx
Definition grok.h:235
uint16_t tp_comp_e
Definition grok.h:226
uint64_t prec_s
Definition grok.h:221
uint32_t tp_tx_e
Definition grok.h:232
uint32_t tx0_temp
Definition grok.h:243
uint16_t tp_lay_e
Definition grok.h:230
uint32_t tileno
Definition grok.h:208
uint16_t lay_temp
Definition grok.h:242
uint16_t tp_comp_s
Definition grok.h:225
uint16_t lay_e
Definition grok.h:224
uint16_t lay_s
Definition grok.h:223
char progression_str[5]
Definition grok.h:206
uint8_t res_e
Definition grok.h:220
uint8_t dy
subsampling in X direction
Definition grok.h:254
uint8_t dx
Definition grok.h:253
uint8_t prec
number of components
Definition grok.h:266
uint32_t width
Definition grok.h:263
uint16_t numcomps
height
Definition grok.h:265
grk_raw_comp_cparameters * comps
signed/unsigned
Definition grok.h:268
bool sgnd
bit depth
Definition grok.h:267
uint32_t height
width
Definition grok.h:264
uint8_t * buf
Definition grok.h:554
grk_stream_read_fn read_fn
Definition grok.h:559
size_t buf_len
Definition grok.h:555
const char * custom_header
Definition grok.h:570
bool use_stdio
Definition grok.h:551
const char * username
Definition grok.h:567
grk_stream_free_user_data_fn free_user_data_fn
Definition grok.h:562
const char * bearer_token
Definition grok.h:569
size_t double_buffer_len
Definition grok.h:542
size_t initial_offset
Definition grok.h:541
bool is_read_stream
Definition grok.h:547
size_t stream_len
Definition grok.h:564
grk_stream_write_fn write_fn
Definition grok.h:560
const char * password
Definition grok.h:568
const char * file
Definition grok.h:550
size_t initial_double_buffer_len
Definition grok.h:544
const char * region
Definition grok.h:571
grk_stream_seek_fn seek_fn
Definition grok.h:561
void * user_data
Definition grok.h:563
bool from_network
Definition grok.h:546
size_t buf_compressed_len
Definition grok.h:556
uint32_t width
Definition grok.h:1114
uint32_t height
Definition grok.h:1115
bool do_synthesis
Definition grok.h:1113
uint8_t precision
Definition grok.h:1116
uint16_t numcomps
Definition grok.h:1117
Channel definition: channel index, type, association.
ICC profile, palette, channel definition.
Component mappings: component index, mapping type, palette column Note: "component" refers to an imag...
Core decompression parameters.
Decompression parameters.
Grok image Note: do not directly create a grk_image object.
Opaque reference-counted object.
Plugin batch compress info.
Definition grok.h:1594
grk_cparameters * compress_parameters
Definition grok.h:1597
GRK_PLUGIN_COMPRESS_USER_CALLBACK callback
Definition grok.h:1598
const char * output_dir
Definition grok.h:1596
const char * input_dir
Definition grok.h:1595
Plugin compress user callback info.
Definition grok.h:1572
bool transfer_exif_tags
Definition grok.h:1581
grk_cparameters * compressor_parameters
Definition grok.h:1576
grk_image * image
Definition grok.h:1577
grk_plugin_tile * tile
Definition grok.h:1578
const char * output_file_name
Definition grok.h:1575
grk_stream_params stream_params
Definition grok.h:1579
unsigned int error_code
Definition grok.h:1580
const char * input_file_name
Definition grok.h:1573
bool output_file_name_is_relative
Definition grok.h:1574
Plugin decompress callback info.
Plugin tile component.
Definition grok.h:913
uint8_t numresolutions
Definition grok.h:914
grk_plugin_resolution ** resolutions
Definition grok.h:915
Stores progression state information Note: limited to 256 components.
Progression order change (POC)
RAW component compress parameters.
RAW image compress parameters.
JPEG 2000 stream parameters There are three methods of streaming: by file, buffer or callback Client ...
compressed image synthesis parameters
Specify swath to wait on Holds swath coordinates and tile indices covering swath Tile indices are set...
Definition grok.h:831
uint32_t y0
Definition grok.h:833
uint16_t num_tile_cols
Definition grok.h:840
uint32_t x1
Definition grok.h:834
uint32_t y1
Definition grok.h:835
uint16_t tile_y0
Definition grok.h:837
uint16_t tile_y1
Definition grok.h:839
uint16_t tile_x0
Definition grok.h:836
uint16_t tile_x1
Definition grok.h:838
uint32_t x0
Definition grok.h:832