|
Grok 15.1.0
|
#include <stdint.h>#include <stdio.h>#include <stdbool.h>#include <limits.h>#include "grk_config.h"Go to the source code of this file.
Macros | |
| #define | GRK_CALLCONV |
| #define | GRK_API __attribute__((visibility("default"))) |
| #define | GRK_NUM_COMMENTS_SUPPORTED 256 |
| maximum Grok supported number of comments | |
| #define | GRK_NUM_ASOC_BOXES_SUPPORTED 256 |
| maximum Grok supported number of asoc boxes | |
| #define | GRK_MAX_COMMENT_LENGTH (UINT16_MAX - 2) |
| maximum Grok supported comment length | |
| #define | GRK_MAX_SUPPORTED_IMAGE_PRECISION 16 |
| maximum Grok supported precision | |
| #define | GRK_BIBO_EXTRA_BITS 7 |
| BIBO analysis - extra bits needed to avoid overflow: Lossless: without colour transform: 4 extra bits with colour transform: 5 extra bits. | |
| #define | GRK_MAX_PASSES (3 * (GRK_MAX_SUPPORTED_IMAGE_PRECISION + GRK_BIBO_EXTRA_BITS) - 2) |
| Grok maximum number of passes. | |
| #define | GRK_PATH_LEN 4096 /* Grok maximum supported filename size */ |
| #define | GRK_MAX_LAYERS 256 /* Grok maximum number of quality layers */ |
| #define | GRK_MAX_DECOMP_LVLS |
| #define | GRK_MAXRLVLS (GRK_MAX_DECOMP_LVLS + 1) /* Maximum number of resolution levels allowed by standard*/ |
| #define | GRK_MAXBANDS (3 * GRK_MAXRLVLS - 2) /* Maximum number of sub-bands allowed by standard */ |
| #define | GRK_TILE_CACHE_NONE 0 /* no tile caching */ |
| Grok tile cache strategy. | |
| #define | GRK_TILE_CACHE_IMAGE 1 /* cache final tile image */ |
| #define | GRK_TILE_CACHE_BLOCK 2 /* cache each code block output */ |
| #define | GRK_TILE_CACHE_ALL 4 /* cache everything */ |
| #define | GRK_RANDOM_ACCESS_PLT 1 /* Disable PLT marker if present */ |
| Decompression: disable random access markers. | |
| #define | GRK_RANDOM_ACCESS_TLM 2 /* Disable TLM marker if present */ |
| #define | GRK_RANDOM_ACCESS_PLM 4 /* Disable PLM marker if present */ |
| #define | GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT (UINT_MAX) |
| default compression level for decompression output file formats that support compression | |
| #define | GRK_DECODE_HEADER (1 << 0) |
| #define | GRK_DECODE_T2 (1 << 1) |
| #define | GRK_DECODE_T1 (1 << 2) |
| #define | GRK_DECODE_POST_T1 (1 << 3) |
| #define | GRK_PLUGIN_DECODE_CLEAN (1 << 4) |
| #define | GRK_DECODE_ALL (GRK_PLUGIN_DECODE_CLEAN | GRK_DECODE_HEADER | GRK_DECODE_T2 | GRK_DECODE_T1 | GRK_DECODE_POST_T1) |
| #define | GRK_IMG_INFO 1 /* Basic image information provided to the user */ |
| #define | GRK_MH_INFO 2 /* Codestream information based only on the main header */ |
| #define | GRK_TH_INFO 4 /* Tile information based on the current tile header */ |
| #define | GRK_TCH_INFO 8 /** Tile/Component information of all tiles */ |
| #define | GRK_MH_IND 16 /** Codestream index based only on the main header */ |
| #define | GRK_TH_IND 32 /** Tile index based on the current tile */ |
| #define | GRK_CBLKSTY_LAZY 0x01 /** Selective arithmetic coding bypass */ |
| #define | GRK_CBLKSTY_RESET 0x02 /** Reset context probabilities on coding pass boundaries */ |
| #define | GRK_CBLKSTY_TERMALL 0x04 /** Termination on each coding pass */ |
| #define | GRK_CBLKSTY_VSC 0x08 /** Vertical stripe causal context */ |
| #define | GRK_CBLKSTY_PTERM 0x10 /** Predictable termination */ |
| #define | GRK_CBLKSTY_SEGSYM 0x20 /** Segmentation symbols are used */ |
| #define | GRK_CBLKSTY_HT_ONLY 0x40 /** high throughput only block coding */ |
| #define | GRK_CBLKSTY_HT_MIXED 0xC0 /** mixed high throughput block coding */ |
| #define | GRK_JPH_RSIZ_FLAG 0x4000 /**for JPH, bit 14 of RSIZ must be set to 1 */ |
| #define | GRK_PROFILE_NONE 0x0000 /** no profile, conform to 15444-1 */ |
| #define | GRK_PROFILE_0 0x0001 /** Profile 0 as described in 15444-1,Table A.45 */ |
| #define | GRK_PROFILE_1 0x0002 /** Profile 1 as described in 15444-1,Table A.45 */ |
| #define | GRK_PROFILE_CINEMA_2K 0x0003 /** 2K cinema profile defined in 15444-1 AMD1 */ |
| #define | GRK_PROFILE_CINEMA_4K 0x0004 /** 4K cinema profile defined in 15444-1 AMD1 */ |
| #define | GRK_PROFILE_CINEMA_S2K 0x0005 /** Scalable 2K cinema profile defined in 15444-1 AMD2 */ |
| #define | GRK_PROFILE_CINEMA_S4K 0x0006 /** Scalable 4K cinema profile defined in 15444-1 AMD2 */ |
| #define | GRK_PROFILE_CINEMA_LTS 0x0007 /** Long term storage cinema profile defined in 15444-1 AMD2 */ |
| #define | GRK_PROFILE_BC_SINGLE 0x0100 /** Single Tile Broadcast profile defined in 15444-1 AMD3 */ |
| #define | GRK_PROFILE_BC_MULTI 0x0200 /** Multi Tile Broadcast profile defined in 15444-1 AMD3 */ |
| #define | GRK_PROFILE_BC_MULTI_R 0x0300 /** Multi Tile Reversible Broadcast profile defined in 15444-1 AMD3 */ |
| #define | GRK_PROFILE_BC_MASK 0x030F /** Mask for broadcast profile including main level */ |
| #define | GRK_PROFILE_IMF_2K 0x0400 /** 2K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */ |
| #define | GRK_PROFILE_IMF_4K 0x0500 /** 4K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */ |
| #define | GRK_PROFILE_IMF_8K 0x0600 /** 8K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */ |
| #define | GRK_PROFILE_IMF_2K_R 0x0700 /** 2K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */ |
| #define | GRK_PROFILE_IMF_4K_R 0x0800 /** 4K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */ |
| #define | GRK_PROFILE_IMF_8K_R 0x0900 /** 8K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */ |
| #define | GRK_PROFILE_MASK 0x0FFF /** Mask for profile bits */ |
| #define | GRK_PROFILE_PART2 0x8000 /** At least 1 extension defined in 15444-2 (Part-2) */ |
| #define | GRK_PROFILE_PART2_EXTENSIONS_MASK 0x3FFF /* Mask for Part-2 extension bits */ |
| #define | GRK_EXTENSION_NONE 0x0000 /** No Part-2 extension */ |
| JPEG 2000 Part-2 extensions. | |
| #define | GRK_EXTENSION_MCT 0x0100 /** Custom MCT support */ |
| #define | GRK_IS_PART2(v) |
| #define | GRK_IS_CINEMA(v) |
| #define | GRK_IS_STORAGE(v) |
| #define | GRK_GET_IMF_OR_BROADCAST_PROFILE(v) |
| #define | GRK_LEVEL_MAX 11U /** Maximum (main) level */ |
| #define | GRK_GET_LEVEL(v) |
| #define | GRK_IS_BROADCAST(v) |
| #define | GRK_BROADCAST_LEVEL_1_MBITSSEC 200U /** Mbits/sec for level 1 */ |
| #define | GRK_BROADCAST_LEVEL_2_MBITSSEC 200U /** Mbits/sec for level 2 */ |
| #define | GRK_BROADCAST_LEVEL_3_MBITSSEC 200U /** Mbits/sec for level 3 */ |
| #define | GRK_BROADCAST_LEVEL_4_MBITSSEC 400U /** Mbits/sec for level 4 */ |
| #define | GRK_BROADCAST_LEVEL_5_MBITSSEC 800U /** Mbits/sec for level 5 */ |
| #define | GRK_BROADCAST_LEVEL_6_MBITSSEC 1600U /** Mbits/sec for level 6 */ |
| #define | GRK_BROADCAST_LEVEL_7_MBITSSEC 3200U /** Mbits/sec for level 7 */ |
| #define | GRK_BROADCAST_LEVEL_8_MBITSSEC 6400U /** Mbits/sec for level 8 */ |
| #define | GRK_BROADCAST_LEVEL_9_MBITSSEC 12800U /** Mbits/sec for level 9 */ |
| #define | GRK_BROADCAST_LEVEL_10_MBITSSEC 25600U /** Mbits/sec for level 10 */ |
| #define | GRK_BROADCAST_LEVEL_11_MBITSSEC 51200U /** Mbits/sec for level 11 */ |
| #define | GRK_BROADCAST_LEVEL_1_MSAMPLESSEC 64U /** MSamples/sec for level 1 */ |
| #define | GRK_BROADCAST_LEVEL_2_MSAMPLESSEC 130U /** MSamples/sec for level 2 */ |
| #define | GRK_BROADCAST_LEVEL_3_MSAMPLESSEC 195U /** MSamples/sec for level 3 */ |
| #define | GRK_BROADCAST_LEVEL_4_MSAMPLESSEC 260U /** MSamples/sec for level 4 */ |
| #define | GRK_BROADCAST_LEVEL_5_MSAMPLESSEC 520U /** MSamples/sec for level 5 */ |
| #define | GRK_BROADCAST_LEVEL_6_MSAMPLESSEC 1200U /** MSamples/sec for level 6 */ |
| #define | GRK_BROADCAST_LEVEL_7_MSAMPLESSEC 2400U /** MSamples/sec for level 7 */ |
| #define | GRK_BROADCAST_LEVEL_8_MSAMPLESSEC 4800U /** MSamples/sec for level 8 */ |
| #define | GRK_BROADCAST_LEVEL_9_MSAMPLESSEC 9600U /** MSamples/sec for level 9 */ |
| #define | GRK_BROADCAST_LEVEL_10_MSAMPLESSEC 19200U /** MSamples/sec for level 10 */ |
| #define | GRK_BROADCAST_LEVEL_11_MSAMPLESSEC 38400U /** MSamples/sec for level 11 */ |
| #define | GRK_IS_IMF(v) |
| #define | GRK_IMF_MAINLEVEL_1_MSAMPLESSEC 65U /** MSamples/sec for main level 1 */ |
| #define | GRK_IMF_MAINLEVEL_2_MSAMPLESSEC 130U /** MSamples/sec for main level 2 */ |
| #define | GRK_IMF_MAINLEVEL_3_MSAMPLESSEC 195U /** MSamples/sec for main level 3 */ |
| #define | GRK_IMF_MAINLEVEL_4_MSAMPLESSEC 260U /** MSamples/sec for main level 4 */ |
| #define | GRK_IMF_MAINLEVEL_5_MSAMPLESSEC 520U /** MSamples/sec for main level 5 */ |
| #define | GRK_IMF_MAINLEVEL_6_MSAMPLESSEC 1200U /** MSamples/sec for main level 6 */ |
| #define | GRK_IMF_MAINLEVEL_7_MSAMPLESSEC 2400U /** MSamples/sec for main level 7 */ |
| #define | GRK_IMF_MAINLEVEL_8_MSAMPLESSEC 4800U /** MSamples/sec for main level 8 */ |
| #define | GRK_IMF_MAINLEVEL_9_MSAMPLESSEC 9600U /** MSamples/sec for main level 9 */ |
| #define | GRK_IMF_MAINLEVEL_10_MSAMPLESSEC 19200U /** MSamples/sec for main level 10 */ |
| #define | GRK_IMF_MAINLEVEL_11_MSAMPLESSEC 38400U /** MSamples/sec for main level 11 */ |
| #define | GRK_IMF_SUBLEVEL_MAX 9U /** Maximum IMF sublevel */ |
| #define | GRK_GET_IMF_SUBLEVEL(v) |
| #define | GRK_IMF_SUBLEVEL_1_MBITSSEC 200U /** Mbits/s for IMF sub level 1 */ |
| Maximum compressed bit rate (Mbits/s) per IMF sub level. | |
| #define | GRK_IMF_SUBLEVEL_2_MBITSSEC 400U /** Mbits/s for IMF sub level 2 */ |
| #define | GRK_IMF_SUBLEVEL_3_MBITSSEC 800U /** Mbits/s for IMF sub level 3 */ |
| #define | GRK_IMF_SUBLEVEL_4_MBITSSEC 1600U /** Mbits/s for IMF sub level 4 */ |
| #define | GRK_IMF_SUBLEVEL_5_MBITSSEC 3200U /** Mbits/s for IMF sub level 5 */ |
| #define | GRK_IMF_SUBLEVEL_6_MBITSSEC 6400U /** Mbits/s for IMF sub level 6 */ |
| #define | GRK_IMF_SUBLEVEL_7_MBITSSEC 12800U /** Mbits/s for IMF sub level 7 */ |
| #define | GRK_IMF_SUBLEVEL_8_MBITSSEC 25600U /** Mbits/s for IMF sub level 8 */ |
| #define | GRK_IMF_SUBLEVEL_9_MBITSSEC 51200U /** Mbits/s for IMF sub level 9 */ |
| #define | GRK_CINEMA_DCI_MAX_BANDWIDTH 250000000 |
| JPEG 2000 cinema profile code stream and component size limits. | |
| #define | GRK_CINEMA_24_CS 1302083 /** Maximum code stream length @ 24fps */ |
| #define | GRK_CINEMA_24_COMP 1041666 /** Maximum size per color component @ 24fps */ |
| #define | GRK_CINEMA_48_CS 651041 /** Maximum code stream length @ 48fps */ |
| #define | GRK_CINEMA_48_COMP 520833 /** Maximum size per color component @ 48fps */ |
| #define | GRK_CINEMA_4K_DEFAULT_NUM_RESOLUTIONS 7 /* Default number of resolutions for 4K cinema */ |
| #define | GRK_CUSTOM_CIELAB_SPACE 0x0 |
| #define | GRK_DEFAULT_CIELAB_SPACE 0x44454600 /* 'DEF' */ |
| #define | GRK_PLUGIN_STATE_NO_DEBUG 0x0 |
| No debug is done on plugin. | |
| #define | GRK_PLUGIN_STATE_DEBUG 0x1 |
| #define | GRK_PLUGIN_STATE_PRE_TR1 0x2 |
| #define | GRK_PLUGIN_STATE_DWT_QUANTIZATION 0x4 |
| #define | GRK_PLUGIN_STATE_MCT_ONLY 0x8 |
Typedefs | |
| typedef enum _GRK_PROG_ORDER | GRK_PROG_ORDER |
| Progression orders. | |
| typedef enum _GRK_COLOR_SPACE | GRK_COLOR_SPACE |
| Grok supported color spaces. | |
| typedef enum _GRK_ENUM_COLOUR_SPACE | GRK_ENUM_COLOUR_SPACE |
| JPEG 2000 enumerated color spaces. | |
| typedef void(* | grk_msg_callback) (const char *msg, void *client_data) |
| Logging callback. | |
| typedef struct _grk_msg_handlers | grk_msg_handlers |
| typedef struct _grk_object | grk_object |
| typedef struct _grk_progression | grk_progression |
| typedef struct _grk_raw_comp_cparameters | grk_raw_comp_cparameters |
| typedef struct _grk_raw_cparameters | grk_raw_cparameters |
| typedef enum _GRK_RATE_CONTROL_ALGORITHM | GRK_RATE_CONTROL_ALGORITHM |
| Rate control algorithms. | |
| typedef enum _GRK_SUPPORTED_FILE_FMT | GRK_SUPPORTED_FILE_FMT |
| All Grok supported file formats. | |
| typedef enum _GRK_CODEC_FORMAT | GRK_CODEC_FORMAT |
| Grok Supported JPEG 2000 formats. | |
| typedef struct _grk_component_mapping_comp | grk_component_mapping_comp |
| typedef struct _grk_palette_data | grk_palette_data |
| typedef enum _GRK_CHANNEL_TYPE | GRK_CHANNEL_TYPE |
| typedef enum _GRK_CHANNEL_ASSOC | GRK_CHANNEL_ASSOC |
| Channel association. | |
| typedef struct _grk_channel_description | grk_channel_description |
| typedef struct _grk_channel_definition | grk_channel_definition |
| typedef struct _grk_asoc | grk_asoc |
| typedef enum _grk_precision_mode | grk_precision_mode |
| typedef struct _grk_precision | grk_precision |
| typedef struct _grk_progression_state | grk_progression_state |
| typedef struct _grk_io_buf | grk_io_buf |
| typedef struct _grk_io_init | grk_io_init |
| typedef bool(* | grk_io_callback) (uint32_t worker_id, grk_io_buf buffer, void *io_user_data) |
| Grok IO callback. | |
| typedef 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. | |
| typedef bool(* | grk_io_pixels_callback) (uint32_t worker_id, grk_io_buf buffer, void *user_data) |
| Grok IO pixels callback. | |
| typedef size_t(* | grk_stream_read_fn) (uint8_t *buffer, size_t numBytes, void *user_data) |
| Read stream callback. | |
| typedef size_t(* | grk_stream_write_fn) (const uint8_t *buffer, size_t numBytes, void *user_data) |
| Write stream callback. | |
| typedef bool(* | grk_stream_seek_fn) (uint64_t offset, void *user_data) |
| Seek (absolute) callback. | |
| typedef void(* | grk_stream_free_user_data_fn) (void *user_data) |
| Free user data callback. | |
| typedef struct _grk_stream_params | grk_stream_params |
| typedef struct _grk_image | grk_image |
| typedef 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. | |
| typedef struct _grk_decompress_core_params | grk_decompress_core_params |
| typedef struct _grk_decompress_params | grk_decompress_parameters |
| typedef struct _grk_image_comp | grk_image_comp |
| typedef struct _grk_color | grk_color |
| typedef struct _grk_image_meta | grk_image_meta |
| typedef struct _grk_header_info | grk_header_info |
| typedef struct grk_wait_swath | grk_wait_swath |
| typedef struct _grk_plugin_pass | grk_plugin_pass |
| typedef struct _grk_plugin_code_block | grk_plugin_code_block |
| typedef struct _grk_plugin_precinct | grk_plugin_precinct |
| grk_plugin_precinct | |
| typedef struct _grk_plugin_band | grk_plugin_band |
| typedef struct _grk_plugin_resolution | grk_plugin_resolution |
| typedef struct grk_plugin_tile_component | grk_plugin_tile_component |
| typedef struct _grk_plugin_tile | grk_plugin_tile |
| typedef struct _grk_synthesis | grk_synthesis |
| typedef struct _grk_cparameters | grk_cparameters |
| typedef struct _grk_plugin_load_info | grk_plugin_load_info |
| typedef struct _grk_plugin_init_info | grk_plugin_init_info |
| typedef struct grk_plugin_compress_user_callback_info | grk_plugin_compress_user_callback_info |
| typedef uint64_t(* | GRK_PLUGIN_COMPRESS_USER_CALLBACK) (grk_plugin_compress_user_callback_info *info) |
| Plugin compress user callback. | |
| typedef struct grk_plugin_compress_batch_info | grk_plugin_compress_batch_info |
| Plugin batch compress info. | |
| typedef int(* | GROK_INIT_DECOMPRESSORS) (grk_header_info *header_info, grk_image *image) |
| Plugin init decompressors. | |
| typedef struct _grk_plugin_decompress_callback_info | grk_plugin_decompress_callback_info |
| typedef int32_t(* | grk_plugin_decompress_callback) (grk_plugin_decompress_callback_info *info) |
| Plugin decompress callback. | |
Functions | |
| GRK_API const char *GRK_CALLCONV | grk_version (void) |
| Gets library version. | |
| 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. | |
| GRK_API void GRK_CALLCONV | grk_deinitialize () |
| De-initializes Grok library Not usually necessary to explicitly call this to de-initialize. | |
| GRK_API grk_object *GRK_CALLCONV | grk_object_ref (grk_object *obj) |
| Increments ref count. | |
| GRK_API void GRK_CALLCONV | grk_object_unref (grk_object *obj) |
| GRK_API void GRK_CALLCONV | grk_set_msg_handlers (grk_msg_handlers msg_handlers) |
| Sets log message handlers. | |
| 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. | |
| GRK_API grk_image_meta *GRK_CALLCONV | grk_image_meta_new (void) |
| Creates meta. | |
| 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. | |
| GRK_API grk_object *GRK_CALLCONV | grk_decompress_init (grk_stream_params *stream_params, grk_decompress_parameters *params) |
| Initializes decompressor. | |
| GRK_API bool GRK_CALLCONV | grk_decompress_update (grk_decompress_parameters *params, grk_object *codec) |
| Updates decompressor. | |
| 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. | |
| GRK_API bool GRK_CALLCONV | grk_decompress_set_progression_state (grk_object *codec, grk_progression_state state) |
| Sets grk_progression_state for a tile. | |
| GRK_API bool GRK_CALLCONV | grk_decompress_read_header (grk_object *codec, grk_header_info *header_info) |
| Decompresses JPEG 2000 header. | |
| GRK_API grk_image *GRK_CALLCONV | grk_decompress_get_tile_image (grk_object *codec, uint16_t tile_index, bool wait) |
| Gets decompressed tile image. | |
| GRK_API grk_image *GRK_CALLCONV | grk_decompress_get_image (grk_object *codec) |
| Gets decompressed image. | |
| 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. | |
| GRK_API bool GRK_CALLCONV | grk_decompress (grk_object *codec, grk_plugin_tile *tile) |
| Decompresses image from a JPEG 2000 code stream. | |
| GRK_API void GRK_CALLCONV | grk_decompress_wait (grk_object *codec, grk_wait_swath *swath) |
| Waits for an asynchronous decompression to complete. | |
| GRK_API bool GRK_CALLCONV | grk_decompress_tile (grk_object *codec, uint16_t tile_index) |
| Decompresses a specific tile. | |
| 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 Size of code block : 64 x 64 Number of resolutions: 6 No SOP marker in the code stream No EPH marker in the code stream No mode switches Progression order: LRCP No ROI upshifted Image origin lies at (0,0) Tile origin lies at (0,0) Reversible DWT 5-3 transform. | |
| GRK_API grk_object *GRK_CALLCONV | grk_compress_init (grk_stream_params *stream_params, grk_cparameters *parameters, grk_image *image) |
| Initializes compression process. | |
| 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. | |
| GRK_API void GRK_CALLCONV | grk_dump_codec (grk_object *codec, uint32_t info_flag, FILE *output_stream) |
| Dumps codec information to file. | |
| 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. | |
| GRK_API bool GRK_CALLCONV | grk_plugin_load (grk_plugin_load_info info) |
| Loads plugin. | |
| GRK_API void GRK_CALLCONV | grk_plugin_cleanup (void) |
| Cleans up plugin resources. | |
| GRK_API uint32_t GRK_CALLCONV | grk_plugin_get_debug_state () |
| Gets debug state of plugin. | |
| GRK_API bool GRK_CALLCONV | grk_plugin_init (grk_plugin_init_info init_info) |
| Initializes plugin. | |
| GRK_API int32_t GRK_CALLCONV | grk_plugin_compress (grk_cparameters *compress_parameters, GRK_PLUGIN_COMPRESS_USER_CALLBACK callback) |
| Compresses with plugin. | |
| GRK_API int32_t GRK_CALLCONV | grk_plugin_batch_compress (grk_plugin_compress_batch_info info) |
| Batch-compresses with plugin. | |
| GRK_API void GRK_CALLCONV | grk_plugin_wait_for_batch_complete (void) |
| Waits for batch job to complete. | |
| GRK_API void GRK_CALLCONV | grk_plugin_stop_batch_compress (void) |
| Stops batch compress. | |
| GRK_API int32_t GRK_CALLCONV | grk_plugin_decompress (grk_decompress_parameters *decompress_parameters, grk_plugin_decompress_callback callback) |
| Decompresses single image with plugin. | |
| 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. | |
| GRK_API int32_t GRK_CALLCONV | grk_plugin_batch_decompress (void) |
| Initiates batch decompress. | |
| GRK_API void GRK_CALLCONV | grk_plugin_stop_batch_decompress (void) |
| Stops batch decompress. | |
| #define GRK_API __attribute__((visibility("default"))) |
| #define GRK_BIBO_EXTRA_BITS 7 |
BIBO analysis - extra bits needed to avoid overflow: Lossless: without colour transform: 4 extra bits with colour transform: 5 extra bits.
Lossy: 1 extra bit
Worst-case scenario is lossless with colour transform : add 5 more bits to prec to avoid overflow. Add two more bits for good measure.
Referenced by grk::decompress_synch_plugin_with_host().
| #define GRK_BROADCAST_LEVEL_10_MBITSSEC 25600U /** Mbits/sec for level 10 */ |
| #define GRK_BROADCAST_LEVEL_10_MSAMPLESSEC 19200U /** MSamples/sec for level 10 */ |
| #define GRK_BROADCAST_LEVEL_11_MBITSSEC 51200U /** Mbits/sec for level 11 */ |
| #define GRK_BROADCAST_LEVEL_11_MSAMPLESSEC 38400U /** MSamples/sec for level 11 */ |
| #define GRK_BROADCAST_LEVEL_1_MBITSSEC 200U /** Mbits/sec for level 1 */ |
| #define GRK_BROADCAST_LEVEL_1_MSAMPLESSEC 64U /** MSamples/sec for level 1 */ |
| #define GRK_BROADCAST_LEVEL_2_MBITSSEC 200U /** Mbits/sec for level 2 */ |
| #define GRK_BROADCAST_LEVEL_2_MSAMPLESSEC 130U /** MSamples/sec for level 2 */ |
| #define GRK_BROADCAST_LEVEL_3_MBITSSEC 200U /** Mbits/sec for level 3 */ |
| #define GRK_BROADCAST_LEVEL_3_MSAMPLESSEC 195U /** MSamples/sec for level 3 */ |
| #define GRK_BROADCAST_LEVEL_4_MBITSSEC 400U /** Mbits/sec for level 4 */ |
| #define GRK_BROADCAST_LEVEL_4_MSAMPLESSEC 260U /** MSamples/sec for level 4 */ |
| #define GRK_BROADCAST_LEVEL_5_MBITSSEC 800U /** Mbits/sec for level 5 */ |
| #define GRK_BROADCAST_LEVEL_5_MSAMPLESSEC 520U /** MSamples/sec for level 5 */ |
| #define GRK_BROADCAST_LEVEL_6_MBITSSEC 1600U /** Mbits/sec for level 6 */ |
| #define GRK_BROADCAST_LEVEL_6_MSAMPLESSEC 1200U /** MSamples/sec for level 6 */ |
| #define GRK_BROADCAST_LEVEL_7_MBITSSEC 3200U /** Mbits/sec for level 7 */ |
| #define GRK_BROADCAST_LEVEL_7_MSAMPLESSEC 2400U /** MSamples/sec for level 7 */ |
| #define GRK_BROADCAST_LEVEL_8_MBITSSEC 6400U /** Mbits/sec for level 8 */ |
| #define GRK_BROADCAST_LEVEL_8_MSAMPLESSEC 4800U /** MSamples/sec for level 8 */ |
| #define GRK_BROADCAST_LEVEL_9_MBITSSEC 12800U /** Mbits/sec for level 9 */ |
| #define GRK_BROADCAST_LEVEL_9_MSAMPLESSEC 9600U /** MSamples/sec for level 9 */ |
| #define GRK_CALLCONV |
Referenced by grk_compress(), grk_compress_create(), grk_compress_init(), grk_compress_set_default_params(), grk_decompress(), grk_decompress_detect_format(), grk_decompress_get_image(), grk_decompress_get_progression_state(), grk_decompress_get_tile_image(), grk_decompress_get_tile_image(), grk_decompress_init(), grk_decompress_read_header(), grk_decompress_set_progression_state(), grk_decompress_set_window(), grk_decompress_tile(), grk_decompress_update(), grk_decompress_wait(), grk_decompress_wait(), grk_deinitialize(), grk_dump_codec(), grk_image_meta_new(), grk_image_new(), grk_object_ref(), grk_object_unref(), grk_plugin_batch_compress(), grk_plugin_batch_decompress(), grk_plugin_cleanup(), grk_plugin_compress(), grk_plugin_decompress(), grk_plugin_get_debug_state(), grk_plugin_init(), grk_plugin_init_batch_decompress(), grk_plugin_load(), grk_plugin_stop_batch_compress(), grk_plugin_stop_batch_decompress(), grk_plugin_wait_for_batch_complete(), grk_set_msg_handlers(), and grk_version().
| #define GRK_CBLKSTY_HT_MIXED 0xC0 /** mixed high throughput block coding */ |
| #define GRK_CBLKSTY_HT_ONLY 0x40 /** high throughput only block coding */ |
| #define GRK_CBLKSTY_LAZY 0x01 /** Selective arithmetic coding bypass */ |
| #define GRK_CBLKSTY_PTERM 0x10 /** Predictable termination */ |
Referenced by grk::T1::compress_cblk(), and grk::T1::decompress_cblk().
| #define GRK_CBLKSTY_RESET 0x02 /** Reset context probabilities on coding pass boundaries */ |
Referenced by grk::T1::compress_cblk(), and grk::T1::decompress_cblk().
| #define GRK_CBLKSTY_SEGSYM 0x20 /** Segmentation symbols are used */ |
Referenced by grk::T1::compress_cblk(), and grk::T1::dec_clnpass_check_segsym().
| #define GRK_CBLKSTY_TERMALL 0x04 /** Termination on each coding pass */ |
Referenced by grk::T1::enc_is_term_pass(), and grk::PacketParser::initSegment().
| #define GRK_CBLKSTY_VSC 0x08 /** Vertical stripe causal context */ |
| #define GRK_CINEMA_24_COMP 1041666 /** Maximum size per color component @ 24fps */ |
Referenced by grk::Profile::set_cinema_parameters().
| #define GRK_CINEMA_24_CS 1302083 /** Maximum code stream length @ 24fps */ |
Referenced by grk::Profile::set_cinema_parameters().
| #define GRK_CINEMA_48_COMP 520833 /** Maximum size per color component @ 48fps */ |
| #define GRK_CINEMA_48_CS 651041 /** Maximum code stream length @ 48fps */ |
| #define GRK_CINEMA_4K_DEFAULT_NUM_RESOLUTIONS 7 /* Default number of resolutions for 4K cinema */ |
| #define GRK_CINEMA_DCI_MAX_BANDWIDTH 250000000 |
JPEG 2000 cinema profile code stream and component size limits.
| #define GRK_CUSTOM_CIELAB_SPACE 0x0 |
Referenced by grk::FileFormatDecompress::read_colr().
| #define GRK_DECODE_ALL (GRK_PLUGIN_DECODE_CLEAN | GRK_DECODE_HEADER | GRK_DECODE_T2 | GRK_DECODE_T1 | GRK_DECODE_POST_T1) |
| #define GRK_DECODE_HEADER (1 << 0) |
| #define GRK_DECODE_POST_T1 (1 << 3) |
Referenced by grk::TileProcessor::decompressT2T1(), and grk::CodeStreamDecompress::findNextSOT().
| #define GRK_DECODE_T1 (1 << 2) |
Referenced by grk::TileProcessor::decompressT2T1().
| #define GRK_DECODE_T2 (1 << 1) |
Referenced by grk::TileProcessor::decompressT2T1().
| #define GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT (UINT_MAX) |
default compression level for decompression output file formats that support compression
| #define GRK_DEFAULT_CIELAB_SPACE 0x44454600 /* 'DEF' */ |
| #define GRK_EXTENSION_MCT 0x0100 /** Custom MCT support */ |
Referenced by grk_set_MCT(), grk::CodeStreamCompress::init(), and grk::CodeStreamCompress::init_header_writing().
| #define GRK_EXTENSION_NONE 0x0000 /** No Part-2 extension */ |
JPEG 2000 Part-2 extensions.
Referenced by grk::CodeStreamCompress::init().
| #define GRK_GET_IMF_OR_BROADCAST_PROFILE | ( | v | ) |
| #define GRK_GET_IMF_SUBLEVEL | ( | v | ) |
Referenced by grk::Profile::is_imf_compliant().
| #define GRK_GET_LEVEL | ( | v | ) |
Referenced by grk::Profile::is_broadcast_compliant(), and grk::Profile::is_imf_compliant().
| #define GRK_IMF_MAINLEVEL_10_MSAMPLESSEC 19200U /** MSamples/sec for main level 10 */ |
| #define GRK_IMF_MAINLEVEL_11_MSAMPLESSEC 38400U /** MSamples/sec for main level 11 */ |
| #define GRK_IMF_MAINLEVEL_1_MSAMPLESSEC 65U /** MSamples/sec for main level 1 */ |
| #define GRK_IMF_MAINLEVEL_2_MSAMPLESSEC 130U /** MSamples/sec for main level 2 */ |
| #define GRK_IMF_MAINLEVEL_3_MSAMPLESSEC 195U /** MSamples/sec for main level 3 */ |
| #define GRK_IMF_MAINLEVEL_4_MSAMPLESSEC 260U /** MSamples/sec for main level 4 */ |
| #define GRK_IMF_MAINLEVEL_5_MSAMPLESSEC 520U /** MSamples/sec for main level 5 */ |
| #define GRK_IMF_MAINLEVEL_6_MSAMPLESSEC 1200U /** MSamples/sec for main level 6 */ |
| #define GRK_IMF_MAINLEVEL_7_MSAMPLESSEC 2400U /** MSamples/sec for main level 7 */ |
| #define GRK_IMF_MAINLEVEL_8_MSAMPLESSEC 4800U /** MSamples/sec for main level 8 */ |
| #define GRK_IMF_MAINLEVEL_9_MSAMPLESSEC 9600U /** MSamples/sec for main level 9 */ |
| #define GRK_IMF_SUBLEVEL_1_MBITSSEC 200U /** Mbits/s for IMF sub level 1 */ |
Maximum compressed bit rate (Mbits/s) per IMF sub level.
| #define GRK_IMF_SUBLEVEL_2_MBITSSEC 400U /** Mbits/s for IMF sub level 2 */ |
| #define GRK_IMF_SUBLEVEL_3_MBITSSEC 800U /** Mbits/s for IMF sub level 3 */ |
| #define GRK_IMF_SUBLEVEL_4_MBITSSEC 1600U /** Mbits/s for IMF sub level 4 */ |
| #define GRK_IMF_SUBLEVEL_5_MBITSSEC 3200U /** Mbits/s for IMF sub level 5 */ |
| #define GRK_IMF_SUBLEVEL_6_MBITSSEC 6400U /** Mbits/s for IMF sub level 6 */ |
| #define GRK_IMF_SUBLEVEL_7_MBITSSEC 12800U /** Mbits/s for IMF sub level 7 */ |
| #define GRK_IMF_SUBLEVEL_8_MBITSSEC 25600U /** Mbits/s for IMF sub level 8 */ |
| #define GRK_IMF_SUBLEVEL_9_MBITSSEC 51200U /** Mbits/s for IMF sub level 9 */ |
| #define GRK_IMF_SUBLEVEL_MAX 9U /** Maximum IMF sublevel */ |
| #define GRK_IMG_INFO 1 /* Basic image information provided to the user */ |
Referenced by grk::CodeStreamDecompress::dump().
| #define GRK_IS_BROADCAST | ( | v | ) |
Referenced by grk::CodeStreamCompress::init(), and grk::SIZMarker::read().
| #define GRK_IS_CINEMA | ( | v | ) |
Referenced by grk::TileProcessor::canWritePocMarker(), grk::PacketIter::enable_tile_part_generation(), grk::CodeStreamCompress::init(), and grk::PacketManager::PacketManager().
| #define GRK_IS_IMF | ( | v | ) |
Referenced by grk::PacketIter::enable_tile_part_generation(), grk::CodeStreamCompress::init(), and grk::SIZMarker::read().
| #define GRK_IS_PART2 | ( | v | ) |
Referenced by grk_set_MCT(), and grk::CodeStreamCompress::init().
| #define GRK_IS_STORAGE | ( | v | ) |
Referenced by grk::CodeStreamCompress::init().
| #define GRK_JPH_RSIZ_FLAG 0x4000 /**for JPH, bit 14 of RSIZ must be set to 1 */ |
Referenced by grk::CodeStreamCompress::init().
| #define GRK_LEVEL_MAX 11U /** Maximum (main) level */ |
Referenced by grk::Profile::is_broadcast_compliant(), and grk::Profile::is_imf_compliant().
| #define GRK_MAX_COMMENT_LENGTH (UINT16_MAX - 2) |
maximum Grok supported comment length
Referenced by grk::CodeStreamCompress::init(), and grk::CodeStreamCompress::write_com().
| #define GRK_MAX_DECOMP_LVLS |
Referenced by grk::CodeStreamDecompress::read_SPCod_SPCoc().
| #define GRK_MAX_LAYERS 256 /* Grok maximum number of quality layers */ |
| #define GRK_MAX_PASSES (3 * (GRK_MAX_SUPPORTED_IMAGE_PRECISION + GRK_BIBO_EXTRA_BITS) - 2) |
Grok maximum number of passes.
| #define GRK_MAX_SUPPORTED_IMAGE_PRECISION 16 |
maximum Grok supported precision
Referenced by grk::GrkImage::allComponentsSanityCheck(), grk::clip(), grk::SIZMarker::read(), grk::CodeStreamDecompress::read_cbd(), grk::FileFormatDecompress::read_ihdr(), and grk::FileFormatDecompress::read_palette_clr().
| #define GRK_MAXBANDS (3 * GRK_MAXRLVLS - 2) /* Maximum number of sub-bands allowed by standard */ |
| #define GRK_MAXRLVLS (GRK_MAX_DECOMP_LVLS + 1) /* Maximum number of resolution levels allowed by standard*/ |
Referenced by grk::LayerIncludeBuffers::clear(), grk::CodeStreamCompress::compressValidation(), grk::CodeStreamCompress::init(), grk::LayerIncludeBuffers::LayerIncludeBuffers(), grk::PacketManager::PacketManager(), grk::CodeStreamDecompress::read_poc(), grk::IncludeTracker::resetNumPrecinctsPerRes(), grk::TileComponentCodingParams::TileComponentCodingParams(), and grk::LayerIncludeBuffers::update().
| #define GRK_MH_IND 16 /** Codestream index based only on the main header */ |
Referenced by grk::CodeStreamDecompress::dump().
| #define GRK_MH_INFO 2 /* Codestream information based only on the main header */ |
Referenced by grk::CodeStreamDecompress::dump().
| #define GRK_NUM_ASOC_BOXES_SUPPORTED 256 |
maximum Grok supported number of asoc boxes
Referenced by grk::FileFormatDecompress::serializeAsoc().
| #define GRK_NUM_COMMENTS_SUPPORTED 256 |
maximum Grok supported number of comments
Referenced by grk::CodeStreamDecompress::read_com().
| #define GRK_PATH_LEN 4096 /* Grok maximum supported filename size */ |
| #define GRK_PLUGIN_DECODE_CLEAN (1 << 4) |
| #define GRK_PLUGIN_STATE_DEBUG 0x1 |
| #define GRK_PLUGIN_STATE_DWT_QUANTIZATION 0x4 |
| #define GRK_PLUGIN_STATE_MCT_ONLY 0x8 |
Referenced by grk::TileProcessor::doCompress().
| #define GRK_PLUGIN_STATE_NO_DEBUG 0x0 |
| #define GRK_PLUGIN_STATE_PRE_TR1 0x2 |
Referenced by grk::TileProcessor::pcrdBisectSimple().
| #define GRK_PROFILE_0 0x0001 /** Profile 0 as described in 15444-1,Table A.45 */ |
| #define GRK_PROFILE_1 0x0002 /** Profile 1 as described in 15444-1,Table A.45 */ |
| #define GRK_PROFILE_BC_MASK 0x030F /** Mask for broadcast profile including main level */ |
| #define GRK_PROFILE_BC_MULTI 0x0200 /** Multi Tile Broadcast profile defined in 15444-1 AMD3 */ |
Referenced by grk::Profile::is_broadcast_compliant().
| #define GRK_PROFILE_BC_MULTI_R 0x0300 /** Multi Tile Reversible Broadcast profile defined in 15444-1 AMD3 */ |
Referenced by grk::Profile::set_broadcast_parameters().
| #define GRK_PROFILE_BC_SINGLE 0x0100 /** Single Tile Broadcast profile defined in 15444-1 AMD3 */ |
Referenced by grk::Profile::is_broadcast_compliant().
| #define GRK_PROFILE_CINEMA_2K 0x0003 /** 2K cinema profile defined in 15444-1 AMD1 */ |
Referenced by grk::Profile::is_cinema_compliant(), and grk::Profile::set_cinema_parameters().
| #define GRK_PROFILE_CINEMA_4K 0x0004 /** 4K cinema profile defined in 15444-1 AMD1 */ |
| #define GRK_PROFILE_CINEMA_LTS 0x0007 /** Long term storage cinema profile defined in 15444-1 AMD2 */ |
Referenced by grk::SIZMarker::read().
| #define GRK_PROFILE_CINEMA_S2K 0x0005 /** Scalable 2K cinema profile defined in 15444-1 AMD2 */ |
Referenced by grk::CodeStreamCompress::init().
| #define GRK_PROFILE_CINEMA_S4K 0x0006 /** Scalable 4K cinema profile defined in 15444-1 AMD2 */ |
Referenced by grk::CodeStreamCompress::init().
| #define GRK_PROFILE_IMF_2K 0x0400 /** 2K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */ |
| #define GRK_PROFILE_IMF_2K_R 0x0700 /** 2K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */ |
| #define GRK_PROFILE_IMF_4K 0x0500 /** 4K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */ |
| #define GRK_PROFILE_IMF_4K_R 0x0800 /** 4K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */ |
| #define GRK_PROFILE_IMF_8K 0x0600 /** 8K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */ |
| #define GRK_PROFILE_IMF_8K_R 0x0900 /** 8K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */ |
| #define GRK_PROFILE_MASK 0x0FFF /** Mask for profile bits */ |
Referenced by grk::SIZMarker::read().
| #define GRK_PROFILE_NONE 0x0000 /** no profile, conform to 15444-1 */ |
Referenced by grk_compress_set_default_params(), and grk::CodeStreamCompress::init().
| #define GRK_PROFILE_PART2 0x8000 /** At least 1 extension defined in 15444-2 (Part-2) */ |
| #define GRK_PROFILE_PART2_EXTENSIONS_MASK 0x3FFF /* Mask for Part-2 extension bits */ |
| #define GRK_RANDOM_ACCESS_PLM 4 /* Disable PLM marker if present */ |
| #define GRK_RANDOM_ACCESS_PLT 1 /* Disable PLT marker if present */ |
Decompression: disable random access markers.
| #define GRK_RANDOM_ACCESS_TLM 2 /* Disable TLM marker if present */ |
| #define GRK_TCH_INFO 8 /** Tile/Component information of all tiles */ |
Referenced by grk::CodeStreamDecompress::dump().
| #define GRK_TH_IND 32 /** Tile index based on the current tile */ |
| #define GRK_TH_INFO 4 /* Tile information based on the current tile header */ |
| #define GRK_TILE_CACHE_ALL 4 /* cache everything */ |
| #define GRK_TILE_CACHE_BLOCK 2 /* cache each code block output */ |
| #define GRK_TILE_CACHE_IMAGE 1 /* cache final tile image */ |
| #define GRK_TILE_CACHE_NONE 0 /* no tile caching */ |
Grok tile cache strategy.
Referenced by grk::CodeStreamDecompress::decompressTiles(), grk::TileProcessor::release(), grk::TileCache::TileCache(), and grk::TileProcessor::~TileProcessor().
| typedef struct _grk_asoc grk_asoc |
| typedef enum _GRK_CHANNEL_ASSOC GRK_CHANNEL_ASSOC |
Channel association.
| typedef struct _grk_channel_definition grk_channel_definition |
| typedef struct _grk_channel_description grk_channel_description |
| typedef enum _GRK_CHANNEL_TYPE GRK_CHANNEL_TYPE |
| typedef enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT |
Grok Supported JPEG 2000 formats.
| typedef struct _grk_color grk_color |
| typedef enum _GRK_COLOR_SPACE GRK_COLOR_SPACE |
Grok supported color spaces.
| typedef struct _grk_component_mapping_comp grk_component_mapping_comp |
| typedef struct _grk_cparameters grk_cparameters |
| typedef 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.
| typedef struct _grk_decompress_core_params grk_decompress_core_params |
| typedef struct _grk_decompress_params grk_decompress_parameters |
| typedef enum _GRK_ENUM_COLOUR_SPACE GRK_ENUM_COLOUR_SPACE |
JPEG 2000 enumerated color spaces.
| typedef struct _grk_header_info grk_header_info |
| typedef struct _grk_image grk_image |
| typedef struct _grk_image_comp grk_image_comp |
| typedef struct _grk_image_meta grk_image_meta |
| typedef struct _grk_io_buf grk_io_buf |
| typedef bool(* grk_io_callback) (uint32_t worker_id, grk_io_buf buffer, void *io_user_data) |
Grok IO callback.
| worker_id | worker id |
| buffer | io buffer (see grk_io_buf) |
| io_user_data | user data |
| typedef struct _grk_io_init grk_io_init |
| typedef bool(* grk_io_pixels_callback) (uint32_t worker_id, grk_io_buf buffer, void *user_data) |
Grok IO pixels callback.
| worker_id | worker id |
| buffer | Grok io buffer (see grk_io_buf) |
| user_data | user data |
| typedef 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.
| io_init | io initialization (see grk_io_init) |
| reclaim_callback | (see grk_io_callback) |
| io_user_data | io user data |
| reclaim_user_data | reclaim user data |
| typedef void(* grk_msg_callback) (const char *msg, void *client_data) |
Logging callback.
| msg | message |
| client_data | client data passed to callback |
| typedef struct _grk_msg_handlers grk_msg_handlers |
| typedef struct _grk_object grk_object |
| typedef struct _grk_palette_data grk_palette_data |
| typedef struct _grk_plugin_band grk_plugin_band |
| typedef struct _grk_plugin_code_block grk_plugin_code_block |
| typedef struct grk_plugin_compress_batch_info grk_plugin_compress_batch_info |
Plugin batch compress info.
| typedef uint64_t(* GRK_PLUGIN_COMPRESS_USER_CALLBACK) (grk_plugin_compress_user_callback_info *info) |
Plugin compress user callback.
| info | callback info (see grk_plugin_compress_user_callback_info) |
| typedef struct grk_plugin_compress_user_callback_info grk_plugin_compress_user_callback_info |
| typedef int32_t(* grk_plugin_decompress_callback) (grk_plugin_decompress_callback_info *info) |
Plugin decompress callback.
| info | callback info (see grk_plugin_decompress_callback_info) |
| typedef struct _grk_plugin_decompress_callback_info grk_plugin_decompress_callback_info |
| typedef struct _grk_plugin_init_info grk_plugin_init_info |
| typedef struct _grk_plugin_load_info grk_plugin_load_info |
| typedef struct _grk_plugin_pass grk_plugin_pass |
| typedef struct _grk_plugin_precinct grk_plugin_precinct |
Plugin precinct
| typedef struct _grk_plugin_resolution grk_plugin_resolution |
| typedef struct _grk_plugin_tile grk_plugin_tile |
| typedef struct grk_plugin_tile_component grk_plugin_tile_component |
| typedef struct _grk_precision grk_precision |
| typedef enum _grk_precision_mode grk_precision_mode |
| typedef enum _GRK_PROG_ORDER GRK_PROG_ORDER |
Progression orders.
| typedef struct _grk_progression grk_progression |
| typedef struct _grk_progression_state grk_progression_state |
| typedef enum _GRK_RATE_CONTROL_ALGORITHM GRK_RATE_CONTROL_ALGORITHM |
Rate control algorithms.
| GRK_RATE_CONTROL_BISECT | bisect with all truncation points |
| GRK_RATE_CONTROL_PCRD_OPT | PCRD: bisect with only feasible truncation points |
| typedef struct _grk_raw_comp_cparameters grk_raw_comp_cparameters |
| typedef struct _grk_raw_cparameters grk_raw_cparameters |
| typedef void(* grk_stream_free_user_data_fn) (void *user_data) |
Free user data callback.
| user_data | user data |
| typedef struct _grk_stream_params grk_stream_params |
| typedef size_t(* grk_stream_read_fn) (uint8_t *buffer, size_t numBytes, void *user_data) |
Read stream callback.
| buffer | buffer to write stream to |
| numBytes | number of bytes to write to buffer |
| user_data | user data |
| typedef bool(* grk_stream_seek_fn) (uint64_t offset, void *user_data) |
Seek (absolute) callback.
| offset | absolute stream offset |
| user_data | user data |
| typedef size_t(* grk_stream_write_fn) (const uint8_t *buffer, size_t numBytes, void *user_data) |
Write stream callback.
| buffer | buffer to read stream from |
| numBytes | number of bytes to read from buffer |
| user_data | user data |
| typedef enum _GRK_SUPPORTED_FILE_FMT GRK_SUPPORTED_FILE_FMT |
All Grok supported file formats.
| typedef struct _grk_synthesis grk_synthesis |
| typedef struct grk_wait_swath grk_wait_swath |
| typedef int(* GROK_INIT_DECOMPRESSORS) (grk_header_info *header_info, grk_image *image) |
Plugin init decompressors.
| enum _GRK_CHANNEL_ASSOC |
| enum _GRK_CHANNEL_TYPE |
| enum _GRK_CODEC_FORMAT |
| enum _GRK_COLOR_SPACE |
JPEG 2000 enumerated color spaces.
| enum _grk_precision_mode |
| enum _GRK_PROG_ORDER |
Progression orders.
| 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.
| codec | compression codec (see grk_object) |
| tile | plugin tile (see grk_plugin_tile) |
References GrkCodec::getImpl(), and GRK_CALLCONV.
| GRK_API grk_object *GRK_CALLCONV grk_compress_init | ( | grk_stream_params * | stream_params, |
| grk_cparameters * | parameters, | ||
| grk_image * | image ) |
Initializes compression process.
| stream_params | Stream parameters (see grk_stream_params) |
| parameters | Compression parameters (see grk_cparameters) |
| image | Input image (see grk_image) |
References grk::create_mem_stream(), GrkCodec::getImpl(), GRK_CALLCONV, GRK_CODEC_J2K, GRK_CODEC_JP2, grk_compress_create(), grk_compress_start(), GRK_FMT_J2K, GRK_FMT_JP2, grk_object_unref(), grk_stream_create_file_stream(), grk_stream_create_stream(), and grk::grklog.
| 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 Size of code block : 64 x 64 Number of resolutions: 6 No SOP marker in the code stream No EPH marker in the code stream No mode switches Progression order: LRCP No ROI upshifted Image origin lies at (0,0) Tile origin lies at (0,0) Reversible DWT 5-3 transform.
| parameters | Compression parameters (see grk_cparameters) |
References GRK_CALLCONV, grk::GRK_COMP_PARAM_DEFAULT_CBLOCKH, grk::GRK_COMP_PARAM_DEFAULT_CBLOCKW, grk::GRK_DEFAULT_NUMRESOLUTION, grk::GRK_DEFAULT_PROG_ORDER, GRK_FMT_UNK, and GRK_PROFILE_NONE.
| GRK_API bool GRK_CALLCONV grk_decompress | ( | grk_object * | codec, |
| grk_plugin_tile * | tile ) |
Decompresses image from a JPEG 2000 code stream.
| codec | decompression codec (see grk_object) |
| tile | tile struct from plugin (see grk_plugin_tile) |
References GrkCodec::getImpl(), and GRK_CALLCONV.
| 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.
| file_name | file name |
| fmt | pointer to detected format (see GRK_CODEC_FORMAT) |
References GRK_CALLCONV, grk_decompress_buffer_detect_format(), and grk::grklog.
| GRK_API grk_image *GRK_CALLCONV grk_decompress_get_image | ( | grk_object * | codec | ) |
Gets decompressed image.
| codec | decompression codec (see grk_object) |
References GrkCodec::getImpl(), and GRK_CALLCONV.
| 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.
| codec | codec (see grk_object) |
| tile_index | tile index |
References GRK_CALLCONV.
| GRK_API grk_image *GRK_CALLCONV grk_decompress_get_tile_image | ( | grk_object * | codec, |
| uint16_t | tile_index, | ||
| bool | wait ) |
Gets decompressed tile image.
| codec | decompression codec (see grk_object) |
| tile_index | tile index |
References GRK_API, and GRK_CALLCONV.
| GRK_API grk_object *GRK_CALLCONV grk_decompress_init | ( | grk_stream_params * | stream_params, |
| grk_decompress_parameters * | params ) |
Initializes decompressor.
| stream_params | source stream parameters (see grk_stream_params) |
| params | decompress parameters (see grk_decompress_parameters) object will be created, otherwise the codec object stored in *codec will be re-initialized |
References GrkCodec::getImpl(), GRK_CALLCONV, grk_decompress_create_from_buffer(), grk_decompress_create_from_callbacks(), grk_decompress_create_from_file(), and grk_object_unref().
| GRK_API bool GRK_CALLCONV grk_decompress_read_header | ( | grk_object * | codec, |
| grk_header_info * | header_info ) |
Decompresses JPEG 2000 header.
| codec | decompression codec (see grk_object) |
| header_info | information read from JPEG 2000 header (see grk_header_info) |
References GrkCodec::getImpl(), and GRK_CALLCONV.
| GRK_API bool GRK_CALLCONV grk_decompress_set_progression_state | ( | grk_object * | codec, |
| grk_progression_state | state ) |
Sets grk_progression_state for a tile.
| codec | codec (see grk_object) |
| state | grk_progression_state |
References GRK_CALLCONV.
| 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.
This function should be called right after grk_decompress_read_header is called, and before any tile header is read.
| codec | decompression codec (see grk_object) |
| start_x | left position of the rectangle to decompress (in image coordinates). |
| end_x | the right position of the rectangle to decompress (in image coordinates). |
| start_y | up position of the rectangle to decompress (in image coordinates). |
| end_y | bottom position of the rectangle to decompress (in image coordinates). |
References GrkCodec::getImpl(), and GRK_CALLCONV.
| GRK_API bool GRK_CALLCONV grk_decompress_tile | ( | grk_object * | codec, |
| uint16_t | tile_index ) |
Decompresses a specific tile.
| codec | decompression codec (see grk_object) |
| tile_index | index of the tile to be decompressed |
References GrkCodec::getImpl(), and GRK_CALLCONV.
| GRK_API bool GRK_CALLCONV grk_decompress_update | ( | grk_decompress_parameters * | params, |
| grk_object * | codec ) |
Updates decompressor.
| params | decompress parameters (see grk_decompress_parameters) |
| codec | codec (see grk_object) |
References GRK_CALLCONV.
| GRK_API void GRK_CALLCONV grk_decompress_wait | ( | grk_object * | codec, |
| grk_wait_swath * | swath ) |
Waits for an asynchronous decompression to complete.
| codec | codec grk_object |
| swath | grk_wait_swath to wait for. If null, then wait for entire decompression to complete |
References GRK_API, and GRK_CALLCONV.
| GRK_API void GRK_CALLCONV grk_deinitialize | ( | ) |
De-initializes Grok library Not usually necessary to explicitly call this to de-initialize.
References ExecSingleton::destroy(), GRK_API, GRK_CALLCONV, and grk_plugin_cleanup().
| GRK_API void GRK_CALLCONV grk_dump_codec | ( | grk_object * | codec, |
| uint32_t | info_flag, | ||
| FILE * | output_stream ) |
Dumps codec information to file.
| codec | decompression codec (see grk_object) |
| info_flag | type of information dump. |
| output_stream | codec information is dumped to output stream |
References GrkCodec::getImpl(), and GRK_CALLCONV.
| GRK_API grk_image_meta *GRK_CALLCONV grk_image_meta_new | ( | void | ) |
Creates meta.
References GRK_CALLCONV.
Referenced by grk::CodeStreamDecompress::CodeStreamDecompress(), and grk::FileFormatCompress::init().
| 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.
| numcmpts | number of components |
| cmptparms | component parameters (see grk_image_comp) |
| clrspc | image color space (see GRK_COLOR_SPACE) |
| alloc_data | if true, allocate component data buffers |
References grk::GrkImage::create(), and GRK_CALLCONV.
| 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.
| pluginPath | path to plugin |
| num_threads | number of threads to use for compress/decompress |
References ExecSingleton::create(), debugCallback(), errorCallback(), grk_plugin_load(), grk_set_msg_handlers(), grk::grklog, infoCallback(), initState_, traceCallback(), and warningCallback().
| GRK_API grk_object *GRK_CALLCONV grk_object_ref | ( | grk_object * | obj | ) |
Increments ref count.
| obj | Grok object (see grk_object) |
References GRK_API, and GRK_CALLCONV.
Referenced by grk::GrkImage::copyHeader(), and grk::FileFormatCompress::init().
| GRK_API void GRK_CALLCONV grk_object_unref | ( | grk_object * | obj | ) |
References GRK_API, GRK_CALLCONV, and grk::GrkObjectWrapper::unref().
Referenced by grk::GrkImage::cieLabToRGB(), grk::CodeStreamDecompress::createOutputImage(), grk::TileProcessor::generateImage(), grk_compress_init(), grk_decompress_create_from_buffer(), grk_decompress_create_from_callbacks(), grk_decompress_create_from_file(), grk_decompress_init(), grk::TileProcessor::release(), grk::GrkImage::sycc420_to_rgb(), grk::GrkImage::sycc422_to_rgb(), grk::GrkImage::sycc444_to_rgb(), grk::CodeStream::~CodeStream(), grk::CodeStreamDecompress::~CodeStreamDecompress(), grk::FileFormatCompress::~FileFormatCompress(), GrkCodec::~GrkCodec(), grk::GrkImage::~GrkImage(), and grk::TileCache::~TileCache().
| GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress | ( | grk_plugin_compress_batch_info | info | ) |
Batch-compresses with plugin.
| info | batch compress info (see grk_plugin_compress_batch_info) |
References grk_plugin_compress_batch_info::callback, GRK_CALLCONV, grk_plugin_internal_encode_callback(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_batch_encode_method_name, pluginLoaded, and userEncodeCallback.
| GRK_API int32_t GRK_CALLCONV grk_plugin_batch_decompress | ( | void | ) |
Initiates batch decompress.
References GRK_CALLCONV, grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_batch_decode_method_name, and pluginLoaded.
| GRK_API void GRK_CALLCONV grk_plugin_cleanup | ( | void | ) |
Cleans up plugin resources.
References GRK_CALLCONV, grk::minpf_cleanup_plugin_manager(), and pluginLoaded.
Referenced by grk_deinitialize().
| GRK_API int32_t GRK_CALLCONV grk_plugin_compress | ( | grk_cparameters * | compress_parameters, |
| GRK_PLUGIN_COMPRESS_USER_CALLBACK | callback ) |
Compresses with plugin.
| compress_parameters | compress parameters (see grk_cparameters) |
| callback | callback (see GRK_PLUGIN_COMPRESS_USER_CALLBACK) |
References GRK_CALLCONV, grk_plugin_internal_encode_callback(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_encode_method_name, pluginLoaded, and userEncodeCallback.
| GRK_API int32_t GRK_CALLCONV grk_plugin_decompress | ( | grk_decompress_parameters * | decompress_parameters, |
| grk_plugin_decompress_callback | callback ) |
Decompresses single image with plugin.
| decompress_parameters | decompress parameters (see grk_decompress_parameters) |
| callback | callback (see grk_plugin_decompress_callback) |
References decodeCallback, GRK_CALLCONV, grk_plugin_internal_decode_callback(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_decode_method_name, and pluginLoaded.
| GRK_API uint32_t GRK_CALLCONV grk_plugin_get_debug_state | ( | ) |
Gets debug state of plugin.
References GRK_CALLCONV, GRK_PLUGIN_STATE_NO_DEBUG, grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_get_debug_state_method_name, and pluginLoaded.
Referenced by grk::compress_synch_with_plugin(), grk::TileProcessor::doCompress(), grk::TileProcessor::init(), grk::TileProcessor::pcrdBisectSimple(), and grk::tile_equals().
| GRK_API bool GRK_CALLCONV grk_plugin_init | ( | grk_plugin_init_info | init_info | ) |
Initializes plugin.
| init_info | plugin init info (see grk_plugin_init_info) |
References GRK_API, GRK_CALLCONV, grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_init_method_name, and pluginLoaded.
| 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.
| input_dir | input directory holding compressed images |
| output_dir | output directory holding decompressed images |
| decompress_parameters | decompress parameters (see grk_decompress_parameters) |
| callback | callback (see grk_plugin_decompress_callback) |
References decodeCallback, GRK_CALLCONV, grk_plugin_internal_decode_callback(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_init_batch_decode_method_name, and pluginLoaded.
| GRK_API bool GRK_CALLCONV grk_plugin_load | ( | grk_plugin_load_info | info | ) |
Loads plugin.
| info | plugin loading info (see grk_plugin_load_info) |
References GRK_CALLCONV, grk::minpf_cleanup_plugin_manager(), grk::minpf_get_dynamic_library_extension(), grk::minpf_load_from_path(), pathSeparator(), and pluginLoaded.
Referenced by grk_initialize().
| GRK_API void GRK_CALLCONV grk_plugin_stop_batch_compress | ( | void | ) |
Stops batch compress.
References GRK_CALLCONV, grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_stop_batch_encode_method_name, and pluginLoaded.
| GRK_API void GRK_CALLCONV grk_plugin_stop_batch_decompress | ( | void | ) |
Stops batch decompress.
References GRK_CALLCONV, grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_stop_batch_decode_method_name, and pluginLoaded.
| GRK_API void GRK_CALLCONV grk_plugin_wait_for_batch_complete | ( | void | ) |
Waits for batch job to complete.
References funcPluginWaitForBatchComplete, GRK_API, GRK_CALLCONV, grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_wait_for_batch_complete_method_name, and pluginLoaded.
| 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.
| parameters | compression parameters (see grk_cparameters) |
| encoding_matrix | matrix |
| dc_shift | dc shift coefficients to use |
| nb_comp | number of components of the image. |
References GRK_EXTENSION_MCT, GRK_IS_PART2, grk::grk_malloc(), and GRK_PROFILE_PART2.
| GRK_API void GRK_CALLCONV grk_set_msg_handlers | ( | grk_msg_handlers | msg_handlers | ) |
Sets log message handlers.
| msg_handlers | see grk_msg_handlers |
References GRK_API, GRK_CALLCONV, and grk::grklog.
Referenced by grk_initialize().
| GRK_API const char *GRK_CALLCONV grk_version | ( | void | ) |