Grok 10.0.5
grok.h File Reference
#include "grk_config.h"
#include <stdint.h>
#include <stdio.h>
#include <stdbool.h>
#include <limits.h>

Go to the source code of this file.

Classes

struct  _grk_object
 Grok ref-counted object. More...
 
struct  _grk_progression
 Progression order change. More...
 
struct  _grk_raw_comp_cparameters
 RAW component compress parameters. More...
 
struct  _grk_raw_cparameters
 RAW image compress parameters. More...
 
struct  _grk_component_mapping_comp
 Note: "component" refers to an image component as decompressed from the code stream, while "channel" refers to a component resulting from the application of a Palette box LUT and a Component mapping box. More...
 
struct  _grk_palette_data
 Palette data. More...
 
struct  _grk_channel_description
 Channel definition: channel index, type, association. More...
 
struct  _grk_channel_definition
 Channel definitions and number of definitions. More...
 
struct  _grk_color
 ICC profile, palette, channel definition. More...
 
struct  _grk_asoc
 Association box info. More...
 
struct  _grk_precision
 Precision. More...
 
struct  _grk_header_info
 Header info. More...
 
struct  _grk_io_buf
 
struct  _grk_io_init
 
struct  _grk_stream_params
 JPEG 2000 stream parameters - either file or buffer. More...
 
struct  _grk_decompress_core_params
 Core decompression parameters. More...
 
struct  _grk_decompress_params
 Decompression parameters. More...
 
struct  _grk_image_comp
 Image component. More...
 
struct  _grk_image_meta
 
struct  _grk_image
 
struct  _grk_plugin_pass
 Plugin pass. More...
 
struct  _grk_plugin_code_block
 Plugin code block. More...
 
struct  _grk_plugin_precinct
 Plugin precinct. More...
 
struct  _grk_plugin_band
 Plugin band. More...
 
struct  _grk_plugin_resolution
 Plugin resolution. More...
 
struct  grk_plugin_tile_component
 Plugin tile component. More...
 
struct  _grk_plugin_tile
 Plugin tile. More...
 
struct  _grk_cparameters
 Compress parameters. More...
 
struct  _grk_plugin_load_info
 
struct  _grk_plugin_init_info
 
struct  grk_plugin_compress_user_callback_info
 
struct  _grk_plugin_decompress_callback_info
 

Macros

#define GRK_CALLCONV
 Copyright (C) 2016-2023 Grok Image Compression Inc.
 
#define GRK_API   __attribute__((visibility("default")))
 
#define GRK_NUM_COMMENTS_SUPPORTED   256
 
#define GRK_NUM_ASOC_BOXES_SUPPORTED   256
 
#define GRK_MAX_COMMENT_LENGTH   (UINT16_MAX - 2)
 
#define GRK_PATH_LEN   4096 /* Maximum allowed filename size */
 
#define GRK_MAX_LAYERS   100 /* Maximum number of quality layers */
 
#define GRK_J2K_MAX_DECOMP_LVLS
 
#define GRK_J2K_MAXRLVLS    (GRK_J2K_MAX_DECOMP_LVLS + 1) /* Maximum number of resolution levels allowed by standard*/
 
#define GRK_J2K_MAXBANDS    (3 * GRK_J2K_MAXRLVLS - 2) /* Maximum number of sub-bands allowed by standard */
 
#define GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT   (UINT_MAX)
 
#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
 
#define GRK_MAX_SUPPORTED_IMAGE_PRECISION   16 /* Maximum supported precision in library */
 
#define GRK_IMG_INFO   1 /* Basic image information provided to the user */
 
#define GRK_J2K_MH_INFO   2 /* Codestream information based only on the main header */
 
#define GRK_J2K_TH_INFO   4 /* Tile information based on the current tile header */
 
#define GRK_J2K_TCH_INFO   8
 Tile/Component information of all tiles.
 
#define GRK_J2K_MH_IND   16
 Codestream index based only on the main header.
 
#define GRK_J2K_TH_IND   32
 Tile index based on the current tile.
 
#define GRK_JP2_INFO   128
 JP2 file information.
 
#define GRK_JP2_IND   256
 JP2 file index.
 
#define GRK_CBLKSTY_LAZY   0x001
 Selective arithmetic coding bypass.
 
#define GRK_CBLKSTY_RESET   0x002
 Reset context probabilities on coding pass boundaries.
 
#define GRK_CBLKSTY_TERMALL   0x004
 Termination on each coding pass.
 
#define GRK_CBLKSTY_VSC   0x008
 Vertical stripe causal context.
 
#define GRK_CBLKSTY_PTERM   0x010
 Predictable termination.
 
#define GRK_CBLKSTY_SEGSYM   0x020
 Segmentation symbols are used.
 
#define GRK_CBLKSTY_HT   0x040
 high throughput block coding
 
#define GRK_CBLKSTY_HT_MIXED   0x080
 high throughput block coding - mixed
 
#define GRK_CBLKSTY_HT_PHLD   0x100
 high throughput block coding - placeholder
 
#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
 
#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_24_CS   1302083U /** Maximum code stream length @ 24fps */
 JPEG 2000 cinema profile code stream and component size limits.
 
#define GRK_CINEMA_48_CS   651041U /** Maximum code stream length @ 48fps */
 
#define GRK_CINEMA_24_COMP   1041666U /** Maximum size per color component @ 24fps */
 
#define GRK_CINEMA_48_COMP   520833U /** Maximum size per color component @ 48fps */
 
#define GRK_CUSTOM_CIELAB_SPACE   0x0
 
#define GRK_DEFAULT_CIELAB_SPACE   0x44454600 /* 'DEF' */
 
#define GRK_CIE_DAY   ((((uint32_t)'C') << 24) + (((uint32_t)'T') << 16))
 
#define GRK_CIE_D50   ((uint32_t)0x00443530)
 
#define GRK_CIE_D65   ((uint32_t)0x00443635)
 
#define GRK_CIE_D75   ((uint32_t)0x00443735)
 
#define GRK_CIE_SA   ((uint32_t)0x00005341)
 
#define GRK_CIE_SC   ((uint32_t)0x00005343)
 
#define GRK_CIE_F2   ((uint32_t)0x00004632)
 
#define GRK_CIE_F7   ((uint32_t)0x00004637)
 
#define GRK_CIE_F11   ((uint32_t)0x00463131)
 
#define GRK_RANDOM_ACCESS_PLT   1 /* use PLT marker if present */
 Toggle random access markers.
 
#define GRK_RANDOM_ACCESS_TLM   2 /* use TLM marker if present */
 
#define GRK_RANDOM_ACCESS_PLM   4 /* use PLM marker if present */
 
#define GRK_PLUGIN_STATE_NO_DEBUG   0x0
 
#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 order.
 
typedef enum _GRK_COLOR_SPACE GRK_COLOR_SPACE
 Supported color spaces.
 
typedef enum _GRK_ENUM_COLOUR_SPACE GRK_ENUM_COLOUR_SPACE
 
typedef void(* grk_msg_callback) (const char *msg, void *client_data)
 Logging callback.
 
typedef struct _grk_object grk_object
 Grok ref-counted object.
 
typedef struct _grk_progression grk_progression
 Progression order change.
 
typedef struct _grk_raw_comp_cparameters grk_raw_comp_cparameters
 RAW component compress parameters.
 
typedef struct _grk_raw_cparameters grk_raw_cparameters
 RAW image compress parameters.
 
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: bisect with only feasible truncation points.
 
typedef enum _GRK_SUPPORTED_FILE_FMT GRK_SUPPORTED_FILE_FMT
 All supported file formats.
 
typedef struct _grk_component_mapping_comp grk_component_mapping_comp
 Note: "component" refers to an image component as decompressed from the code stream, while "channel" refers to a component resulting from the application of a Palette box LUT and a Component mapping box.
 
typedef struct _grk_palette_data grk_palette_data
 Palette data.
 
typedef enum _GRK_CHANNEL_TYPE GRK_CHANNEL_TYPE
 
typedef enum _GRK_CHANNEL_ASSOC GRK_CHANNEL_ASSOC
 
typedef struct _grk_channel_description grk_channel_description
 Channel definition: channel index, type, association.
 
typedef struct _grk_channel_definition grk_channel_definition
 Channel definitions and number of definitions.
 
typedef struct _grk_color grk_color
 ICC profile, palette, channel definition.
 
typedef struct _grk_asoc grk_asoc
 Association box info.
 
typedef enum _grk_precision_mode grk_precision_mode
 Precision mode.
 
typedef struct _grk_precision grk_precision
 Precision.
 
typedef struct _grk_header_info grk_header_info
 Header info.
 
typedef struct _grk_io_buf grk_io_buf
 
typedef struct _grk_io_init grk_io_init
 
typedef bool(* grk_io_callback) (uint32_t threadId, grk_io_buf buffer, void *io_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)
 
typedef bool(* grk_io_pixels_callback) (uint32_t threadId, grk_io_buf buffer, void *user_data)
 
typedef struct _grk_stream_params grk_stream_params
 JPEG 2000 stream parameters - either file or buffer.
 
typedef enum _GRK_TILE_CACHE_STRATEGY GRK_TILE_CACHE_STRATEGY
 
typedef struct _grk_decompress_core_params grk_decompress_core_params
 Core decompression parameters.
 
typedef enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT
 Supported JPEG 2000 formats.
 
typedef struct _grk_decompress_params grk_decompress_parameters
 Decompression parameters.
 
typedef struct _grk_image_comp grk_image_comp
 Image component.
 
typedef struct _grk_image_meta grk_image_meta
 
typedef struct _grk_image grk_image
 
typedef struct _grk_plugin_pass grk_plugin_pass
 Plugin pass.
 
typedef struct _grk_plugin_code_block grk_plugin_code_block
 Plugin code block.
 
typedef struct _grk_plugin_precinct grk_plugin_precinct
 Plugin precinct.
 
typedef struct _grk_plugin_band grk_plugin_band
 Plugin band.
 
typedef struct _grk_plugin_resolution grk_plugin_resolution
 Plugin resolution.
 
typedef struct grk_plugin_tile_component grk_plugin_tile_component
 Plugin tile component.
 
typedef struct _grk_plugin_tile grk_plugin_tile
 Plugin tile.
 
typedef struct _grk_cparameters grk_cparameters
 Compress parameters.
 
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 bool(* GRK_PLUGIN_COMPRESS_USER_CALLBACK) (grk_plugin_compress_user_callback_info *info)
 
typedef int(* GROK_INIT_DECOMPRESSORS) (grk_header_info *header_info, grk_image *image)
 
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)
 

Enumerations

enum  _GRK_PROG_ORDER {
  GRK_PROG_UNKNOWN = -1 , GRK_LRCP = 0 , GRK_RLCP = 1 , GRK_RPCL = 2 ,
  GRK_PCRL = 3 , GRK_CPRL = 4 , GRK_NUM_PROGRESSION_ORDERS = 5
}
 Progression order. More...
 
enum  _GRK_COLOR_SPACE {
  GRK_CLRSPC_UNKNOWN = 0 , GRK_CLRSPC_SRGB = 2 , GRK_CLRSPC_GRAY = 3 , GRK_CLRSPC_SYCC = 4 ,
  GRK_CLRSPC_EYCC = 5 , GRK_CLRSPC_CMYK = 6 , GRK_CLRSPC_DEFAULT_CIE = 7 , GRK_CLRSPC_CUSTOM_CIE = 8 ,
  GRK_CLRSPC_ICC = 9
}
 Supported color spaces. More...
 
enum  _GRK_ENUM_COLOUR_SPACE {
  GRK_ENUM_CLRSPC_UNKNOWN = 0xFFFFFFFF , GRK_ENUM_CLRSPC_BILEVEL1 = 0 , GRK_ENUM_CLRSPC_YCBCR1 = 1 , GRK_ENUM_CLRSPC_YCBCR2 = 3 ,
  GRK_ENUM_CLRSPC_YCBCR3 = 4 , GRK_ENUM_CLRSPC_PHOTO_YCC = 9 , GRK_ENUM_CLRSPC_CMY = 11 , GRK_ENUM_CLRSPC_CMYK = 12 ,
  GRK_ENUM_CLRSPC_YCCK = 13 , GRK_ENUM_CLRSPC_CIE = 14 , GRK_ENUM_CLRSPC_BILEVEL2 = 15 , GRK_ENUM_CLRSPC_SRGB = 16 ,
  GRK_ENUM_CLRSPC_GRAY = 17 , GRK_ENUM_CLRSPC_SYCC = 18 , GRK_ENUM_CLRSPC_CIEJAB = 19 , GRK_ENUM_CLRSPC_ESRGB = 20 ,
  GRK_ENUM_CLRSPC_ROMMRGB = 21 , GRK_ENUM_CLRSPC_YPBPR60 = 22 , GRK_ENUM_CLRSPC_YPBPR50 = 23 , GRK_ENUM_CLRSPC_EYCC = 24
}
 
enum  _GRK_RATE_CONTROL_ALGORITHM { GRK_RATE_CONTROL_BISECT , GRK_RATE_CONTROL_PCRD_OPT }
 Rate control algorithms GRK_RATE_CONTROL_BISECT: bisect with all truncation points GRK_RATE_CONTROL_PCRD_OPT: bisect with only feasible truncation points. More...
 
enum  _GRK_SUPPORTED_FILE_FMT {
  GRK_FMT_UNK , GRK_FMT_J2K , GRK_FMT_JP2 , GRK_FMT_PXM ,
  GRK_FMT_PGX , GRK_FMT_PAM , GRK_FMT_BMP , GRK_FMT_TIF ,
  GRK_FMT_RAW , GRK_FMT_PNG , GRK_FMT_RAWL , GRK_FMT_JPG
}
 All supported file formats. More...
 
enum  _GRK_CHANNEL_TYPE { GRK_CHANNEL_TYPE_COLOUR = 0 , GRK_CHANNEL_TYPE_OPACITY = 1 , GRK_CHANNEL_TYPE_PREMULTIPLIED_OPACITY = 2 , GRK_CHANNEL_TYPE_UNSPECIFIED = 65535U }
 
enum  _GRK_CHANNEL_ASSOC {
  GRK_CHANNEL_ASSOC_WHOLE_IMAGE = 0 , GRK_CHANNEL_ASSOC_COLOUR_1 = 1 , GRK_CHANNEL_ASSOC_COLOUR_2 = 2 , GRK_CHANNEL_ASSOC_COLOUR_3 = 3 ,
  GRK_CHANNEL_ASSOC_UNASSOCIATED = 65535U
}
 
enum  _grk_precision_mode { GRK_PREC_MODE_CLIP , GRK_PREC_MODE_SCALE }
 Precision mode. More...
 
enum  _GRK_TILE_CACHE_STRATEGY { GRK_TILE_CACHE_NONE , GRK_TILE_CACHE_IMAGE }
 
enum  _GRK_CODEC_FORMAT { GRK_CODEC_UNK = -1 , GRK_CODEC_J2K = 0 , GRK_CODEC_JP2 = 2 }
 Supported JPEG 2000 formats. More...
 

Functions

GRK_API const char *GRK_CALLCONV grk_version (void)
 Library version.
 
GRK_API bool GRK_CALLCONV grk_initialize (const char *pluginPath, uint32_t numthreads)
 Initialize library.
 
GRK_API void GRK_CALLCONV grk_deinitialize ()
 De-initialize library.
 
GRK_API grk_object *GRK_CALLCONV grk_object_ref (grk_object *obj)
 Increment ref count.
 
GRK_API void GRK_CALLCONV grk_object_unref (grk_object *obj)
 
GRK_API void GRK_CALLCONV grk_set_msg_handlers (grk_msg_callback info_callback, void *info_user_data, grk_msg_callback warn_callback, void *warn_user_data, grk_msg_callback error_callback, void *error_user_data)
 
GRK_API grk_image *GRK_CALLCONV grk_image_new (uint16_t numcmpts, grk_image_comp *cmptparms, GRK_COLOR_SPACE clrspc)
 Create image.
 
GRK_API grk_image_meta *GRK_CALLCONV grk_image_meta_new (void)
 
GRK_API bool GRK_CALLCONV grk_decompress_detect_format (const char *fileName, GRK_CODEC_FORMAT *fmt)
 Detect jpeg 2000 format from file Format is either GRK_FMT_J2K or GRK_FMT_JP2.
 
GRK_API bool GRK_CALLCONV grk_decompress_buffer_detect_format (uint8_t *buffer, size_t len, GRK_CODEC_FORMAT *fmt)
 Detect jpeg 2000 format from buffer Format is either GRK_FMT_J2K or GRK_FMT_JP2.
 
GRK_API void GRK_CALLCONV grk_decompress_set_default_params (grk_decompress_core_params *parameters)
 Initialize decompress parameters with default values.
 
GRK_API grk_codec *GRK_CALLCONV grk_decompress_init (grk_stream_params *stream_params, grk_decompress_core_params *core_params)
 Initialize decompressor.
 
GRK_API bool GRK_CALLCONV grk_decompress_read_header (grk_codec *codec, grk_header_info *header_info)
 Decompress JPEG 2000 header.
 
GRK_API grk_image *GRK_CALLCONV grk_decompress_get_tile_image (grk_codec *codec, uint16_t tileIndex)
 Get decompressed tile image.
 
GRK_API grk_image *GRK_CALLCONV grk_decompress_get_composited_image (grk_codec *codec)
 Get decompressed composite image.
 
GRK_API bool GRK_CALLCONV grk_decompress_set_window (grk_codec *codec, float start_x, float start_y, float end_x, float end_y)
 Set the given area to be decompressed.
 
GRK_API bool GRK_CALLCONV grk_decompress (grk_codec *codec, grk_plugin_tile *tile)
 Decompress image from a JPEG 2000 code stream.
 
GRK_API bool GRK_CALLCONV grk_decompress_tile (grk_codec *codec, uint16_t tileIndex)
 Decompress a specific tile.
 
GRK_API void GRK_CALLCONV grk_compress_set_default_params (grk_cparameters *parameters)
 Set compressing parameters to default values:
 
GRK_API grk_codec *GRK_CALLCONV grk_compress_init (grk_stream_params *stream_params, grk_cparameters *parameters, grk_image *p_image)
 Set up the compressor parameters using the current image and user parameters.
 
GRK_API bool GRK_CALLCONV grk_compress (grk_codec *codec, grk_plugin_tile *tile)
 Compress an image into a JPEG 2000 code stream using plugin.
 
GRK_API void GRK_CALLCONV grk_dump_codec (grk_codec *codec, uint32_t info_flag, FILE *output_stream)
 Dump codec information to file.
 
GRK_API bool GRK_CALLCONV grk_set_MCT (grk_cparameters *parameters, float *encodingMatrix, int32_t *dc_shift, uint32_t nbComp)
 Set the MCT matrix to use.
 
GRK_API bool GRK_CALLCONV grk_plugin_load (grk_plugin_load_info info)
 Load plugin.
 
GRK_API void GRK_CALLCONV grk_plugin_cleanup (void)
 Release plugin resources.
 
GRK_API uint32_t GRK_CALLCONV grk_plugin_get_debug_state ()
 Get debug state of plugin.
 
GRK_API bool GRK_CALLCONV grk_plugin_init (grk_plugin_init_info initInfo)
 Initialize plugin.
 
GRK_API int32_t GRK_CALLCONV grk_plugin_compress (grk_cparameters *compress_parameters, GRK_PLUGIN_COMPRESS_USER_CALLBACK callback)
 Compress with plugin.
 
GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress (const char *input_dir, const char *output_dir, grk_cparameters *compress_parameters, GRK_PLUGIN_COMPRESS_USER_CALLBACK callback)
 Batch compress with plugin.
 
GRK_API bool GRK_CALLCONV grk_plugin_is_batch_complete (void)
 Check if batch job is complete.
 
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_compress (void)
 Stop batch compress.
 
GRK_API int32_t GRK_CALLCONV grk_plugin_decompress (grk_decompress_parameters *decompress_parameters, grk_plugin_decompress_callback callback)
 Decompress 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)
 Initialize batch decompress.
 
GRK_API int32_t GRK_CALLCONV grk_plugin_batch_decompress (void)
 Initiate batch decompress.
 
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_decompress (void)
 Stop batch decompress.
 

Macro Definition Documentation

◆ GRK_API

#define GRK_API   __attribute__((visibility("default")))

◆ GRK_BROADCAST_LEVEL_10_MBITSSEC

#define GRK_BROADCAST_LEVEL_10_MBITSSEC   25600U /** Mbits/sec for level 10 */

◆ GRK_BROADCAST_LEVEL_10_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_10_MSAMPLESSEC   19200U /** MSamples/sec for level 10 */

◆ GRK_BROADCAST_LEVEL_11_MBITSSEC

#define GRK_BROADCAST_LEVEL_11_MBITSSEC   51200U /** Mbits/sec for level 11 */

◆ GRK_BROADCAST_LEVEL_11_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_11_MSAMPLESSEC   38400U /** MSamples/sec for level 11 */

◆ GRK_BROADCAST_LEVEL_1_MBITSSEC

#define GRK_BROADCAST_LEVEL_1_MBITSSEC   200U /** Mbits/sec for level 1 */

◆ GRK_BROADCAST_LEVEL_1_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_1_MSAMPLESSEC   64U /** MSamples/sec for level 1 */

◆ GRK_BROADCAST_LEVEL_2_MBITSSEC

#define GRK_BROADCAST_LEVEL_2_MBITSSEC   200U /** Mbits/sec for level 2 */

◆ GRK_BROADCAST_LEVEL_2_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_2_MSAMPLESSEC   130U /** MSamples/sec for level 2 */

◆ GRK_BROADCAST_LEVEL_3_MBITSSEC

#define GRK_BROADCAST_LEVEL_3_MBITSSEC   200U /** Mbits/sec for level 3 */

◆ GRK_BROADCAST_LEVEL_3_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_3_MSAMPLESSEC   195U /** MSamples/sec for level 3 */

◆ GRK_BROADCAST_LEVEL_4_MBITSSEC

#define GRK_BROADCAST_LEVEL_4_MBITSSEC   400U /** Mbits/sec for level 4 */

◆ GRK_BROADCAST_LEVEL_4_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_4_MSAMPLESSEC   260U /** MSamples/sec for level 4 */

◆ GRK_BROADCAST_LEVEL_5_MBITSSEC

#define GRK_BROADCAST_LEVEL_5_MBITSSEC   800U /** Mbits/sec for level 5 */

◆ GRK_BROADCAST_LEVEL_5_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_5_MSAMPLESSEC   520U /** MSamples/sec for level 5 */

◆ GRK_BROADCAST_LEVEL_6_MBITSSEC

#define GRK_BROADCAST_LEVEL_6_MBITSSEC   1600U /** Mbits/sec for level 6 */

◆ GRK_BROADCAST_LEVEL_6_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_6_MSAMPLESSEC   1200U /** MSamples/sec for level 6 */

◆ GRK_BROADCAST_LEVEL_7_MBITSSEC

#define GRK_BROADCAST_LEVEL_7_MBITSSEC   3200U /** Mbits/sec for level 7 */

◆ GRK_BROADCAST_LEVEL_7_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_7_MSAMPLESSEC   2400U /** MSamples/sec for level 7 */

◆ GRK_BROADCAST_LEVEL_8_MBITSSEC

#define GRK_BROADCAST_LEVEL_8_MBITSSEC   6400U /** Mbits/sec for level 8 */

◆ GRK_BROADCAST_LEVEL_8_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_8_MSAMPLESSEC   4800U /** MSamples/sec for level 8 */

◆ GRK_BROADCAST_LEVEL_9_MBITSSEC

#define GRK_BROADCAST_LEVEL_9_MBITSSEC   12800U /** Mbits/sec for level 9 */

◆ GRK_BROADCAST_LEVEL_9_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_9_MSAMPLESSEC   9600U /** MSamples/sec for level 9 */

◆ GRK_CALLCONV

#define GRK_CALLCONV

Copyright (C) 2016-2023 Grok Image Compression Inc.

This source code is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License, version 3, as published by the Free Software Foundation.

This source code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

◆ GRK_CBLKSTY_HT

#define GRK_CBLKSTY_HT   0x040

high throughput block coding

◆ GRK_CBLKSTY_HT_MIXED

#define GRK_CBLKSTY_HT_MIXED   0x080

high throughput block coding - mixed

◆ GRK_CBLKSTY_HT_PHLD

#define GRK_CBLKSTY_HT_PHLD   0x100

high throughput block coding - placeholder

◆ GRK_CBLKSTY_LAZY

#define GRK_CBLKSTY_LAZY   0x001

Selective arithmetic coding bypass.

◆ GRK_CBLKSTY_PTERM

#define GRK_CBLKSTY_PTERM   0x010

Predictable termination.

◆ GRK_CBLKSTY_RESET

#define GRK_CBLKSTY_RESET   0x002

Reset context probabilities on coding pass boundaries.

◆ GRK_CBLKSTY_SEGSYM

#define GRK_CBLKSTY_SEGSYM   0x020

Segmentation symbols are used.

◆ GRK_CBLKSTY_TERMALL

#define GRK_CBLKSTY_TERMALL   0x004

Termination on each coding pass.

◆ GRK_CBLKSTY_VSC

#define GRK_CBLKSTY_VSC   0x008

Vertical stripe causal context.

◆ GRK_CIE_D50

#define GRK_CIE_D50   ((uint32_t)0x00443530)

◆ GRK_CIE_D65

#define GRK_CIE_D65   ((uint32_t)0x00443635)

◆ GRK_CIE_D75

#define GRK_CIE_D75   ((uint32_t)0x00443735)

◆ GRK_CIE_DAY

#define GRK_CIE_DAY   ((((uint32_t)'C') << 24) + (((uint32_t)'T') << 16))

◆ GRK_CIE_F11

#define GRK_CIE_F11   ((uint32_t)0x00463131)

◆ GRK_CIE_F2

#define GRK_CIE_F2   ((uint32_t)0x00004632)

◆ GRK_CIE_F7

#define GRK_CIE_F7   ((uint32_t)0x00004637)

◆ GRK_CIE_SA

#define GRK_CIE_SA   ((uint32_t)0x00005341)

◆ GRK_CIE_SC

#define GRK_CIE_SC   ((uint32_t)0x00005343)

◆ GRK_CINEMA_24_COMP

#define GRK_CINEMA_24_COMP   1041666U /** Maximum size per color component @ 24fps */

◆ GRK_CINEMA_24_CS

#define GRK_CINEMA_24_CS   1302083U /** Maximum code stream length @ 24fps */

JPEG 2000 cinema profile code stream and component size limits.

◆ GRK_CINEMA_48_COMP

#define GRK_CINEMA_48_COMP   520833U /** Maximum size per color component @ 48fps */

◆ GRK_CINEMA_48_CS

#define GRK_CINEMA_48_CS   651041U /** Maximum code stream length @ 48fps */

◆ GRK_CUSTOM_CIELAB_SPACE

#define GRK_CUSTOM_CIELAB_SPACE   0x0

◆ GRK_DECODE_ALL

#define GRK_DECODE_ALL
Value:
#define GRK_DECODE_T1
Definition TileCache.h:729
#define GRK_DECODE_POST_T1
Definition TileCache.h:730
#define GRK_DECODE_T2
Definition TileCache.h:728
#define GRK_DECODE_HEADER
Definition TileCache.h:727
#define GRK_PLUGIN_DECODE_CLEAN
Definition TileCache.h:731

◆ GRK_DECODE_HEADER

#define GRK_DECODE_HEADER   (1 << 0)

◆ GRK_DECODE_POST_T1

#define GRK_DECODE_POST_T1   (1 << 3)

◆ GRK_DECODE_T1

#define GRK_DECODE_T1   (1 << 2)

◆ GRK_DECODE_T2

#define GRK_DECODE_T2   (1 << 1)

◆ GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT

#define GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT   (UINT_MAX)

◆ GRK_DEFAULT_CIELAB_SPACE

#define GRK_DEFAULT_CIELAB_SPACE   0x44454600 /* 'DEF' */

◆ GRK_EXTENSION_MCT

#define GRK_EXTENSION_MCT   0x0100 /** Custom MCT support */

◆ GRK_EXTENSION_NONE

#define GRK_EXTENSION_NONE   0x0000 /** No Part-2 extension */

JPEG 2000 Part-2 extensions.

◆ GRK_GET_IMF_OR_BROADCAST_PROFILE

#define GRK_GET_IMF_OR_BROADCAST_PROFILE ( v)
Value:
((v)&0x0f00)

◆ GRK_GET_IMF_SUBLEVEL

#define GRK_GET_IMF_SUBLEVEL ( v)
Value:
(((v) >> 4) & 0xf)

◆ GRK_GET_LEVEL

#define GRK_GET_LEVEL ( v)
Value:
((v)&0xf)

◆ GRK_IMF_MAINLEVEL_10_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_10_MSAMPLESSEC   19200U /** MSamples/sec for main level 10 */

◆ GRK_IMF_MAINLEVEL_11_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_11_MSAMPLESSEC   38400U /** MSamples/sec for main level 11 */

◆ GRK_IMF_MAINLEVEL_1_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_1_MSAMPLESSEC   65U /** MSamples/sec for main level 1 */

◆ GRK_IMF_MAINLEVEL_2_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_2_MSAMPLESSEC   130U /** MSamples/sec for main level 2 */

◆ GRK_IMF_MAINLEVEL_3_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_3_MSAMPLESSEC   195U /** MSamples/sec for main level 3 */

◆ GRK_IMF_MAINLEVEL_4_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_4_MSAMPLESSEC   260U /** MSamples/sec for main level 4 */

◆ GRK_IMF_MAINLEVEL_5_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_5_MSAMPLESSEC   520U /** MSamples/sec for main level 5 */

◆ GRK_IMF_MAINLEVEL_6_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_6_MSAMPLESSEC   1200U /** MSamples/sec for main level 6 */

◆ GRK_IMF_MAINLEVEL_7_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_7_MSAMPLESSEC   2400U /** MSamples/sec for main level 7 */

◆ GRK_IMF_MAINLEVEL_8_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_8_MSAMPLESSEC   4800U /** MSamples/sec for main level 8 */

◆ GRK_IMF_MAINLEVEL_9_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_9_MSAMPLESSEC   9600U /** MSamples/sec for main level 9 */

◆ GRK_IMF_SUBLEVEL_1_MBITSSEC

#define GRK_IMF_SUBLEVEL_1_MBITSSEC   200U /** Mbits/s for IMF sub level 1 */

Maximum compressed bit rate (Mbits/s) per IMF sub level.

◆ GRK_IMF_SUBLEVEL_2_MBITSSEC

#define GRK_IMF_SUBLEVEL_2_MBITSSEC   400U /** Mbits/s for IMF sub level 2 */

◆ GRK_IMF_SUBLEVEL_3_MBITSSEC

#define GRK_IMF_SUBLEVEL_3_MBITSSEC   800U /** Mbits/s for IMF sub level 3 */

◆ GRK_IMF_SUBLEVEL_4_MBITSSEC

#define GRK_IMF_SUBLEVEL_4_MBITSSEC   1600U /** Mbits/s for IMF sub level 4 */

◆ GRK_IMF_SUBLEVEL_5_MBITSSEC

#define GRK_IMF_SUBLEVEL_5_MBITSSEC   3200U /** Mbits/s for IMF sub level 5 */

◆ GRK_IMF_SUBLEVEL_6_MBITSSEC

#define GRK_IMF_SUBLEVEL_6_MBITSSEC   6400U /** Mbits/s for IMF sub level 6 */

◆ GRK_IMF_SUBLEVEL_7_MBITSSEC

#define GRK_IMF_SUBLEVEL_7_MBITSSEC   12800U /** Mbits/s for IMF sub level 7 */

◆ GRK_IMF_SUBLEVEL_8_MBITSSEC

#define GRK_IMF_SUBLEVEL_8_MBITSSEC   25600U /** Mbits/s for IMF sub level 8 */

◆ GRK_IMF_SUBLEVEL_9_MBITSSEC

#define GRK_IMF_SUBLEVEL_9_MBITSSEC   51200U /** Mbits/s for IMF sub level 9 */

◆ GRK_IMF_SUBLEVEL_MAX

#define GRK_IMF_SUBLEVEL_MAX   9U /** Maximum IMF sublevel */

◆ GRK_IMG_INFO

#define GRK_IMG_INFO   1 /* Basic image information provided to the user */

◆ GRK_IS_BROADCAST

#define GRK_IS_BROADCAST ( v)
Value:
(((v) >= GRK_PROFILE_BC_SINGLE) && ((v) <= (GRK_PROFILE_BC_MULTI_R | 0x000b)) && \
(((v)&0xf) <= 0xb))
#define GRK_PROFILE_BC_MULTI_R
Definition TileCache.h:1154
#define GRK_PROFILE_BC_SINGLE
Definition TileCache.h:1152

◆ GRK_IS_CINEMA

#define GRK_IS_CINEMA ( v)
Value:
#define GRK_PROFILE_CINEMA_2K
Definition TileCache.h:1146
#define GRK_PROFILE_CINEMA_S4K
Definition TileCache.h:1149

◆ GRK_IS_IMF

#define GRK_IS_IMF ( v)
Value:
(((v) >= GRK_PROFILE_IMF_2K) && ((v) <= (GRK_PROFILE_IMF_8K_R | 0x009b)) && \
(((v)&0xf) <= 0xb) && (((v)&0xf0) <= 0x90))
#define GRK_PROFILE_IMF_8K_R
Definition TileCache.h:1164
#define GRK_PROFILE_IMF_2K
Definition TileCache.h:1157

◆ GRK_IS_PART2

#define GRK_IS_PART2 ( v)
Value:
#define GRK_PROFILE_PART2
Definition TileCache.h:1167

◆ GRK_IS_STORAGE

#define GRK_IS_STORAGE ( v)
Value:
#define GRK_PROFILE_CINEMA_LTS
Definition TileCache.h:1150

◆ GRK_J2K_MAX_DECOMP_LVLS

#define GRK_J2K_MAX_DECOMP_LVLS
Value:
32 /* Maximum number of decomposition levels allowed by standard \
*/

◆ GRK_J2K_MAXBANDS

#define GRK_J2K_MAXBANDS    (3 * GRK_J2K_MAXRLVLS - 2) /* Maximum number of sub-bands allowed by standard */

◆ GRK_J2K_MAXRLVLS

#define GRK_J2K_MAXRLVLS    (GRK_J2K_MAX_DECOMP_LVLS + 1) /* Maximum number of resolution levels allowed by standard*/

◆ GRK_J2K_MH_IND

#define GRK_J2K_MH_IND   16

Codestream index based only on the main header.

◆ GRK_J2K_MH_INFO

#define GRK_J2K_MH_INFO   2 /* Codestream information based only on the main header */

◆ GRK_J2K_TCH_INFO

#define GRK_J2K_TCH_INFO   8

Tile/Component information of all tiles.

◆ GRK_J2K_TH_IND

#define GRK_J2K_TH_IND   32

Tile index based on the current tile.

◆ GRK_J2K_TH_INFO

#define GRK_J2K_TH_INFO   4 /* Tile information based on the current tile header */

◆ GRK_JP2_IND

#define GRK_JP2_IND   256

JP2 file index.

◆ GRK_JP2_INFO

#define GRK_JP2_INFO   128

JP2 file information.

◆ GRK_JPH_RSIZ_FLAG

#define GRK_JPH_RSIZ_FLAG   0x4000

for JPH, bit 14 of RSIZ must be set to 1

◆ GRK_LEVEL_MAX

#define GRK_LEVEL_MAX   11U /** Maximum (main) level */

◆ GRK_MAX_COMMENT_LENGTH

#define GRK_MAX_COMMENT_LENGTH   (UINT16_MAX - 2)

◆ GRK_MAX_LAYERS

#define GRK_MAX_LAYERS   100 /* Maximum number of quality layers */

◆ GRK_MAX_SUPPORTED_IMAGE_PRECISION

#define GRK_MAX_SUPPORTED_IMAGE_PRECISION   16 /* Maximum supported precision in library */

◆ GRK_NUM_ASOC_BOXES_SUPPORTED

#define GRK_NUM_ASOC_BOXES_SUPPORTED   256

◆ GRK_NUM_COMMENTS_SUPPORTED

#define GRK_NUM_COMMENTS_SUPPORTED   256

◆ GRK_PATH_LEN

#define GRK_PATH_LEN   4096 /* Maximum allowed filename size */

◆ GRK_PLUGIN_DECODE_CLEAN

#define GRK_PLUGIN_DECODE_CLEAN   (1 << 4)

◆ GRK_PLUGIN_STATE_DEBUG

#define GRK_PLUGIN_STATE_DEBUG   0x1

◆ GRK_PLUGIN_STATE_DWT_QUANTIZATION

#define GRK_PLUGIN_STATE_DWT_QUANTIZATION   0x4

◆ GRK_PLUGIN_STATE_MCT_ONLY

#define GRK_PLUGIN_STATE_MCT_ONLY   0x8

◆ GRK_PLUGIN_STATE_NO_DEBUG

#define GRK_PLUGIN_STATE_NO_DEBUG   0x0

◆ GRK_PLUGIN_STATE_PRE_TR1

#define GRK_PLUGIN_STATE_PRE_TR1   0x2

◆ GRK_PROFILE_0

#define GRK_PROFILE_0   0x0001 /** Profile 0 as described in 15444-1,Table A.45 */

◆ GRK_PROFILE_1

#define GRK_PROFILE_1   0x0002 /** Profile 1 as described in 15444-1,Table A.45 */

◆ GRK_PROFILE_BC_MASK

#define GRK_PROFILE_BC_MASK   0x030F /** Mask for broadcast profile including main level */

◆ GRK_PROFILE_BC_MULTI

#define GRK_PROFILE_BC_MULTI   0x0200 /** Multi Tile Broadcast profile defined in 15444-1 AMD3 */

◆ GRK_PROFILE_BC_MULTI_R

#define GRK_PROFILE_BC_MULTI_R    0x0300 /** Multi Tile Reversible Broadcast profile defined in 15444-1 AMD3 */

◆ GRK_PROFILE_BC_SINGLE

#define GRK_PROFILE_BC_SINGLE   0x0100 /** Single Tile Broadcast profile defined in 15444-1 AMD3 */

◆ GRK_PROFILE_CINEMA_2K

#define GRK_PROFILE_CINEMA_2K   0x0003 /** 2K cinema profile defined in 15444-1 AMD1 */

◆ GRK_PROFILE_CINEMA_4K

#define GRK_PROFILE_CINEMA_4K   0x0004 /** 4K cinema profile defined in 15444-1 AMD1 */

◆ GRK_PROFILE_CINEMA_LTS

#define GRK_PROFILE_CINEMA_LTS    0x0007 /** Long term storage cinema profile defined in 15444-1 AMD2 */

◆ GRK_PROFILE_CINEMA_S2K

#define GRK_PROFILE_CINEMA_S2K   0x0005 /** Scalable 2K cinema profile defined in 15444-1 AMD2 */

◆ GRK_PROFILE_CINEMA_S4K

#define GRK_PROFILE_CINEMA_S4K   0x0006 /** Scalable 4K cinema profile defined in 15444-1 AMD2 */

◆ GRK_PROFILE_IMF_2K

#define GRK_PROFILE_IMF_2K   0x0400 /** 2K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */

◆ GRK_PROFILE_IMF_2K_R

#define GRK_PROFILE_IMF_2K_R    0x0700 /** 2K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */

◆ GRK_PROFILE_IMF_4K

#define GRK_PROFILE_IMF_4K   0x0500 /** 4K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */

◆ GRK_PROFILE_IMF_4K_R

#define GRK_PROFILE_IMF_4K_R    0x0800 /** 4K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */

◆ GRK_PROFILE_IMF_8K

#define GRK_PROFILE_IMF_8K   0x0600 /** 8K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */

◆ GRK_PROFILE_IMF_8K_R

#define GRK_PROFILE_IMF_8K_R    0x0900 /** 8K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */

◆ GRK_PROFILE_MASK

#define GRK_PROFILE_MASK   0x0FFF /** Mask for profile bits */

◆ GRK_PROFILE_NONE

#define GRK_PROFILE_NONE   0x0000 /** no profile, conform to 15444-1 */

◆ GRK_PROFILE_PART2

#define GRK_PROFILE_PART2   0x8000 /** At least 1 extension defined in 15444-2 (Part-2) */

◆ GRK_PROFILE_PART2_EXTENSIONS_MASK

#define GRK_PROFILE_PART2_EXTENSIONS_MASK   0x3FFF

◆ GRK_RANDOM_ACCESS_PLM

#define GRK_RANDOM_ACCESS_PLM   4 /* use PLM marker if present */

◆ GRK_RANDOM_ACCESS_PLT

#define GRK_RANDOM_ACCESS_PLT   1 /* use PLT marker if present */

Toggle random access markers.

◆ GRK_RANDOM_ACCESS_TLM

#define GRK_RANDOM_ACCESS_TLM   2 /* use TLM marker if present */

Typedef Documentation

◆ grk_asoc

typedef struct _grk_asoc grk_asoc

Association box info.

◆ GRK_CHANNEL_ASSOC

◆ grk_channel_definition

Channel definitions and number of definitions.

◆ grk_channel_description

Channel definition: channel index, type, association.

◆ GRK_CHANNEL_TYPE

◆ GRK_CODEC_FORMAT

Supported JPEG 2000 formats.

◆ grk_color

typedef struct _grk_color grk_color

ICC profile, palette, channel definition.

◆ GRK_COLOR_SPACE

Supported color spaces.

◆ grk_component_mapping_comp

Note: "component" refers to an image component as decompressed from the code stream, while "channel" refers to a component resulting from the application of a Palette box LUT and a Component mapping box.

Component mappings: component index, mapping type, palette column

◆ grk_cparameters

Compress parameters.

◆ grk_decompress_core_params

Core decompression parameters.

◆ grk_decompress_parameters

Decompression parameters.

◆ GRK_ENUM_COLOUR_SPACE

◆ grk_header_info

Header info.

◆ grk_image

typedef struct _grk_image grk_image

◆ grk_image_comp

Image component.

◆ grk_image_meta

◆ grk_io_buf

typedef struct _grk_io_buf grk_io_buf

◆ grk_io_callback

typedef bool(* grk_io_callback) (uint32_t threadId, grk_io_buf buffer, void *io_user_data)

◆ grk_io_init

typedef struct _grk_io_init grk_io_init

◆ grk_io_pixels_callback

typedef bool(* grk_io_pixels_callback) (uint32_t threadId, grk_io_buf buffer, void *user_data)

◆ grk_io_register_reclaim_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)

◆ grk_msg_callback

typedef void(* grk_msg_callback) (const char *msg, void *client_data)

Logging callback.

Parameters
msgmessage
client_dataclient data passed to callback

◆ grk_object

typedef struct _grk_object grk_object

Grok ref-counted object.

◆ grk_palette_data

Palette data.

◆ grk_plugin_band

Plugin band.

◆ grk_plugin_code_block

Plugin code block.

◆ GRK_PLUGIN_COMPRESS_USER_CALLBACK

typedef bool(* GRK_PLUGIN_COMPRESS_USER_CALLBACK) (grk_plugin_compress_user_callback_info *info)

◆ grk_plugin_compress_user_callback_info

typedef struct grk_plugin_compress_user_callback_info grk_plugin_compress_user_callback_info

◆ grk_plugin_decompress_callback

typedef int32_t(* grk_plugin_decompress_callback) (grk_plugin_decompress_callback_info *info)

◆ grk_plugin_decompress_callback_info

◆ grk_plugin_init_info

◆ grk_plugin_load_info

◆ grk_plugin_pass

Plugin pass.

◆ grk_plugin_precinct

Plugin precinct.

◆ grk_plugin_resolution

Plugin resolution.

◆ grk_plugin_tile

Plugin tile.

◆ grk_plugin_tile_component

typedef struct grk_plugin_tile_component grk_plugin_tile_component

Plugin tile component.

◆ grk_precision

typedef struct _grk_precision grk_precision

Precision.

◆ grk_precision_mode

Precision mode.

◆ GRK_PROG_ORDER

Progression order.

◆ grk_progression

Progression order change.

◆ GRK_RATE_CONTROL_ALGORITHM

Rate control algorithms GRK_RATE_CONTROL_BISECT: bisect with all truncation points GRK_RATE_CONTROL_PCRD_OPT: bisect with only feasible truncation points.

◆ grk_raw_comp_cparameters

RAW component compress parameters.

◆ grk_raw_cparameters

RAW image compress parameters.

◆ grk_stream_params

JPEG 2000 stream parameters - either file or buffer.

◆ GRK_SUPPORTED_FILE_FMT

All supported file formats.

◆ GRK_TILE_CACHE_STRATEGY

◆ GROK_INIT_DECOMPRESSORS

typedef int(* GROK_INIT_DECOMPRESSORS) (grk_header_info *header_info, grk_image *image)

Enumeration Type Documentation

◆ _GRK_CHANNEL_ASSOC

Enumerator
GRK_CHANNEL_ASSOC_WHOLE_IMAGE 
GRK_CHANNEL_ASSOC_COLOUR_1 
GRK_CHANNEL_ASSOC_COLOUR_2 
GRK_CHANNEL_ASSOC_COLOUR_3 
GRK_CHANNEL_ASSOC_UNASSOCIATED 

◆ _GRK_CHANNEL_TYPE

Enumerator
GRK_CHANNEL_TYPE_COLOUR 
GRK_CHANNEL_TYPE_OPACITY 
GRK_CHANNEL_TYPE_PREMULTIPLIED_OPACITY 
GRK_CHANNEL_TYPE_UNSPECIFIED 

◆ _GRK_CODEC_FORMAT

Supported JPEG 2000 formats.

Enumerator
GRK_CODEC_UNK 

place-holder

GRK_CODEC_J2K 

JPEG 2000 code stream : read/write.

GRK_CODEC_JP2 

JP2 file format : read/write.

◆ _GRK_COLOR_SPACE

Supported color spaces.

Enumerator
GRK_CLRSPC_UNKNOWN 

unknown

GRK_CLRSPC_SRGB 

sRGB

GRK_CLRSPC_GRAY 

grayscale

GRK_CLRSPC_SYCC 

standard YCC (YUV)

GRK_CLRSPC_EYCC 

extended YCC

GRK_CLRSPC_CMYK 

CMYK.

GRK_CLRSPC_DEFAULT_CIE 

default CIE LAB

GRK_CLRSPC_CUSTOM_CIE 

custom CIE LAB

GRK_CLRSPC_ICC 

ICC profile.

◆ _GRK_ENUM_COLOUR_SPACE

Enumerator
GRK_ENUM_CLRSPC_UNKNOWN 
GRK_ENUM_CLRSPC_BILEVEL1 
GRK_ENUM_CLRSPC_YCBCR1 
GRK_ENUM_CLRSPC_YCBCR2 
GRK_ENUM_CLRSPC_YCBCR3 
GRK_ENUM_CLRSPC_PHOTO_YCC 
GRK_ENUM_CLRSPC_CMY 
GRK_ENUM_CLRSPC_CMYK 
GRK_ENUM_CLRSPC_YCCK 
GRK_ENUM_CLRSPC_CIE 
GRK_ENUM_CLRSPC_BILEVEL2 
GRK_ENUM_CLRSPC_SRGB 
GRK_ENUM_CLRSPC_GRAY 
GRK_ENUM_CLRSPC_SYCC 
GRK_ENUM_CLRSPC_CIEJAB 
GRK_ENUM_CLRSPC_ESRGB 
GRK_ENUM_CLRSPC_ROMMRGB 
GRK_ENUM_CLRSPC_YPBPR60 
GRK_ENUM_CLRSPC_YPBPR50 
GRK_ENUM_CLRSPC_EYCC 

◆ _grk_precision_mode

Precision mode.

Enumerator
GRK_PREC_MODE_CLIP 
GRK_PREC_MODE_SCALE 

◆ _GRK_PROG_ORDER

Progression order.

Enumerator
GRK_PROG_UNKNOWN 

place-holder

GRK_LRCP 

layer-resolution-component-precinct order

GRK_RLCP 

resolution-layer-component-precinct order

GRK_RPCL 

resolution-precinct-component-layer order

GRK_PCRL 

precinct-component-resolution-layer order

GRK_CPRL 

component-precinct-resolution-layer order

GRK_NUM_PROGRESSION_ORDERS 

◆ _GRK_RATE_CONTROL_ALGORITHM

Rate control algorithms GRK_RATE_CONTROL_BISECT: bisect with all truncation points GRK_RATE_CONTROL_PCRD_OPT: bisect with only feasible truncation points.

Enumerator
GRK_RATE_CONTROL_BISECT 
GRK_RATE_CONTROL_PCRD_OPT 

◆ _GRK_SUPPORTED_FILE_FMT

All supported file formats.

Enumerator
GRK_FMT_UNK 
GRK_FMT_J2K 
GRK_FMT_JP2 
GRK_FMT_PXM 
GRK_FMT_PGX 
GRK_FMT_PAM 
GRK_FMT_BMP 
GRK_FMT_TIF 
GRK_FMT_RAW 
GRK_FMT_PNG 
GRK_FMT_RAWL 
GRK_FMT_JPG 

◆ _GRK_TILE_CACHE_STRATEGY

Enumerator
GRK_TILE_CACHE_NONE 
GRK_TILE_CACHE_IMAGE 

Function Documentation

◆ grk_compress()

GRK_API bool GRK_CALLCONV grk_compress ( grk_codec * codec,
grk_plugin_tile * tile )

Compress an image into a JPEG 2000 code stream using plugin.

Parameters
codeccompression codec
tileplugin tile
Returns
Returns true if successful, returns false otherwise

◆ grk_compress_init()

GRK_API grk_codec *GRK_CALLCONV grk_compress_init ( grk_stream_params * stream_params,
grk_cparameters * parameters,
grk_image * p_image )

Set up the compressor parameters using the current image and user parameters.

Parameters
codeccompression codec
parameterscompression parameters
imageinput image

◆ grk_compress_set_default_params()

GRK_API void GRK_CALLCONV grk_compress_set_default_params ( grk_cparameters * parameters)

Set compressing parameters to default values:

Lossless Single tile Size of precinct : 2^15 x 2^15 (i.e. single precinct) 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
parametersCompression parameters

◆ grk_decompress()

GRK_API bool GRK_CALLCONV grk_decompress ( grk_codec * codec,
grk_plugin_tile * tile )

Decompress image from a JPEG 2000 code stream.

Parameters
codecdecompression codec
tiletile struct from plugin
Returns
true if successful, otherwise false

◆ grk_decompress_buffer_detect_format()

GRK_API bool GRK_CALLCONV grk_decompress_buffer_detect_format ( uint8_t * buffer,
size_t len,
GRK_CODEC_FORMAT * fmt )

Detect jpeg 2000 format from buffer Format is either GRK_FMT_J2K or GRK_FMT_JP2.

Parameters
bufferbuffer
lenbuffer length
fmtpointer to detected format
Returns
true if format was detected, otherwise false

◆ grk_decompress_detect_format()

GRK_API bool GRK_CALLCONV grk_decompress_detect_format ( const char * fileName,
GRK_CODEC_FORMAT * fmt )

Detect jpeg 2000 format from file Format is either GRK_FMT_J2K or GRK_FMT_JP2.

Parameters
fileNamefile name
fmtpointer to detected format
Returns
true if format was detected, otherwise false

◆ grk_decompress_get_composited_image()

GRK_API grk_image *GRK_CALLCONV grk_decompress_get_composited_image ( grk_codec * codec)

Get decompressed composite image.

Parameters
codecdecompression codec
Returns
pointer to decompressed image

◆ grk_decompress_get_tile_image()

GRK_API grk_image *GRK_CALLCONV grk_decompress_get_tile_image ( grk_codec * codec,
uint16_t tileIndex )

Get decompressed tile image.

Parameters
codecdecompression codec
tileIndextile index
Returns
pointer to decompressed image

◆ grk_decompress_init()

GRK_API grk_codec *GRK_CALLCONV grk_decompress_init ( grk_stream_params * stream_params,
grk_decompress_core_params * core_params )

Initialize decompressor.

Parameters
stream_paramssource stream parameters
core_paramsdecompress core parameters
Returns
grk_codec* if successful, otherwise NULL

◆ grk_decompress_read_header()

GRK_API bool GRK_CALLCONV grk_decompress_read_header ( grk_codec * codec,
grk_header_info * header_info )

Decompress JPEG 2000 header.

Parameters
codecdecompression codec
header_infoinformation read from JPEG 2000 header.
Returns
true if the main header of the code stream and the JP2 header is correctly read.

◆ grk_decompress_set_default_params()

GRK_API void GRK_CALLCONV grk_decompress_set_default_params ( grk_decompress_core_params * parameters)

Initialize decompress parameters with default values.

Parameters
parametersdecompression parameters

◆ grk_decompress_set_window()

GRK_API bool GRK_CALLCONV grk_decompress_set_window ( grk_codec * codec,
float start_x,
float start_y,
float end_x,
float end_y )

Set the given area to be decompressed.

This function should be called right after grk_decompress_read_header is called, and before any tile header is read.

Parameters
codecdecompression codec
start_xleft position of the rectangle to decompress (in image coordinates).
end_xthe right position of the rectangle to decompress (in image coordinates).
start_yup position of the rectangle to decompress (in image coordinates).
end_ybottom position of the rectangle to decompress (in image coordinates).
Returns
true if the area could be set.

◆ grk_decompress_tile()

GRK_API bool GRK_CALLCONV grk_decompress_tile ( grk_codec * codec,
uint16_t tileIndex )

Decompress a specific tile.

Parameters
codecdecompression codec
tileIndexindex of the tile to be decompressed
Returns
true if successful, otherwise false

◆ grk_deinitialize()

GRK_API void GRK_CALLCONV grk_deinitialize ( )

De-initialize library.

References grk::grk_plugin_cleanup(), and ExecSingleton::release().

◆ grk_dump_codec()

GRK_API void GRK_CALLCONV grk_dump_codec ( grk_codec * codec,
uint32_t info_flag,
FILE * output_stream )

Dump codec information to file.

Parameters
codecdecompression codec
info_flagtype of information dump.
output_streamcodec information is dumped to output stream

◆ grk_image_meta_new()

◆ grk_image_new()

GRK_API grk_image *GRK_CALLCONV grk_image_new ( uint16_t numcmpts,
grk_image_comp * cmptparms,
GRK_COLOR_SPACE clrspc )

Create image.

Parameters
numcmptsnumber of components
cmptparmscomponent parameters
clrspcimage color space
Returns
returns a new image if successful, otherwise nullptr

◆ grk_initialize()

GRK_API bool GRK_CALLCONV grk_initialize ( const char * pluginPath,
uint32_t numthreads )

Initialize library.

Parameters
pluginPathpath to plugin
numthreadsnumber of threads to use for compress/decompress

References grk::grk_plugin_load(), ExecSingleton::instance(), is_plugin_initialized, and grk::_grk_plugin_load_info::pluginPath.

◆ grk_object_ref()

GRK_API grk_object *GRK_CALLCONV grk_object_ref ( grk_object * obj)

Increment ref count.

◆ grk_object_unref()

GRK_API void GRK_CALLCONV grk_object_unref ( grk_object * obj)

◆ grk_plugin_batch_compress()

GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress ( const char * input_dir,
const char * output_dir,
grk_cparameters * compress_parameters,
GRK_PLUGIN_COMPRESS_USER_CALLBACK callback )

Batch compress with plugin.

Parameters
input_dirdirectory holding input images
output_dirdirectory holding compressed output images
compress_parameterscompress parameters
callbackcallback
Returns
0 if successful

◆ grk_plugin_batch_decompress()

GRK_API int32_t GRK_CALLCONV grk_plugin_batch_decompress ( void )

◆ grk_plugin_cleanup()

GRK_API void GRK_CALLCONV grk_plugin_cleanup ( void )

Release plugin resources.

References grk::minpf_cleanup_plugin_manager(), and pluginLoaded.

◆ grk_plugin_compress()

GRK_API int32_t GRK_CALLCONV grk_plugin_compress ( grk_cparameters * compress_parameters,
GRK_PLUGIN_COMPRESS_USER_CALLBACK callback )

Compress with plugin.

Parameters
compress_parameterscompress parameters
callbackcallback

◆ grk_plugin_decompress()

GRK_API int32_t GRK_CALLCONV grk_plugin_decompress ( grk_decompress_parameters * decompress_parameters,
grk_plugin_decompress_callback callback )

Decompress with plugin.

Parameters
decompress_parametersdecompress parameters
callbackcallback

◆ grk_plugin_get_debug_state()

◆ grk_plugin_init()

GRK_API bool GRK_CALLCONV grk_plugin_init ( grk_plugin_init_info initInfo)

Initialize plugin.

◆ grk_plugin_init_batch_decompress()

GRK_API int32_t GRK_CALLCONV grk_plugin_init_batch_decompress ( const char * input_dir,
const char * output_dir,
grk_decompress_parameters * decompress_parameters,
grk_plugin_decompress_callback callback )

Initialize batch decompress.

Parameters
input_dirinput directory holding compressed images
output_diroutput directory holding decompressed images
decompress_parametersdecompress parameters
callbackcallback
Returns
0 if successful

◆ grk_plugin_is_batch_complete()

GRK_API bool GRK_CALLCONV grk_plugin_is_batch_complete ( void )

◆ grk_plugin_load()

GRK_API bool GRK_CALLCONV grk_plugin_load ( grk_plugin_load_info info)

Load plugin.

Parameters
infoplugin loading info

◆ grk_plugin_stop_batch_compress()

GRK_API void GRK_CALLCONV grk_plugin_stop_batch_compress ( void )

◆ grk_plugin_stop_batch_decompress()

GRK_API void GRK_CALLCONV grk_plugin_stop_batch_decompress ( void )

◆ grk_set_MCT()

GRK_API bool GRK_CALLCONV grk_set_MCT ( grk_cparameters * parameters,
float * encodingMatrix,
int32_t * dc_shift,
uint32_t nbComp )

Set the MCT matrix to use.

Parameters
parametersthe parameters to change.
encodingMatrixthe compressing matrix.
dc_shiftthe dc shift coefficients to use.
nbCompthe number of components of the image.
Returns
true if the parameters could be set.

◆ grk_set_msg_handlers()

GRK_API void GRK_CALLCONV grk_set_msg_handlers ( grk_msg_callback info_callback,
void * info_user_data,
grk_msg_callback warn_callback,
void * warn_user_data,
grk_msg_callback error_callback,
void * error_user_data )

◆ grk_version()

GRK_API const char *GRK_CALLCONV grk_version ( void )

Library version.